-
+
@@ -643,7 +645,7 @@ class Video extends React.PureComponent {
@@ -670,3 +672,5 @@ class Video extends React.PureComponent {
}
}
+
+export default injectIntl(Video);
diff --git a/app/javascript/flavours/glitch/initial_state.js b/app/javascript/flavours/glitch/initial_state.js
index bbf25c8a8..8b135006d 100644
--- a/app/javascript/flavours/glitch/initial_state.js
+++ b/app/javascript/flavours/glitch/initial_state.js
@@ -55,7 +55,7 @@
* @property {boolean=} delete_modal
* @property {boolean=} disable_swiping
* @property {string=} disabled_account_id
- * @property {boolean} display_media
+ * @property {string} display_media
* @property {string} domain
* @property {boolean=} expand_spoilers
* @property {boolean} limited_federation_mode
@@ -75,6 +75,7 @@
* @property {boolean} timeline_preview
* @property {string} title
* @property {boolean} trends
+ * @property {boolean} trends_as_landing_page
* @property {boolean} unfollow_modal
* @property {boolean} use_blurhash
* @property {boolean=} use_pending_items
@@ -134,12 +135,13 @@ export const singleUserMode = getMeta('single_user_mode');
export const source_url = getMeta('source_url');
export const timelinePreview = getMeta('timeline_preview');
export const title = getMeta('title');
+export const trendsAsLanding = getMeta('trends_as_landing_page');
export const unfollowModal = getMeta('unfollow_modal');
export const useBlurhash = getMeta('use_blurhash');
export const usePendingItems = getMeta('use_pending_items');
export const version = getMeta('version');
-export const translationEnabled = getMeta('translation_enabled');
export const languages = initialState?.languages;
+export const statusPageUrl = getMeta('status_page_url');
// Glitch-soc-specific settings
export const maxChars = (initialState && initialState.max_toot_chars) || 500;
diff --git a/app/javascript/flavours/glitch/load_polyfills.js b/app/javascript/flavours/glitch/load_polyfills.js
index cc5bcd18f..7909dc4ea 100644
--- a/app/javascript/flavours/glitch/load_polyfills.js
+++ b/app/javascript/flavours/glitch/load_polyfills.js
@@ -12,10 +12,8 @@ function importExtraPolyfills() {
function loadPolyfills() {
const needsBasePolyfills = !(
- Array.prototype.includes &&
HTMLCanvasElement.prototype.toBlob &&
window.Intl &&
- Number.isNaN &&
Object.assign &&
Object.values &&
window.Symbol &&
@@ -23,15 +21,14 @@ function loadPolyfills() {
);
// Latest version of Firefox and Safari do not have IntersectionObserver.
- // Edge does not have requestIdleCallback and object-fit CSS property.
+ // Edge does not have requestIdleCallback.
// This avoids shipping them all the polyfills.
const needsExtraPolyfills = !(
window.AbortController &&
window.IntersectionObserver &&
window.IntersectionObserverEntry &&
'isIntersecting' in IntersectionObserverEntry.prototype &&
- window.requestIdleCallback &&
- 'object-fit' in (new Image()).style
+ window.requestIdleCallback
);
return Promise.all([
diff --git a/app/javascript/flavours/glitch/locales/af.js b/app/javascript/flavours/glitch/locales/af.js
deleted file mode 100644
index 4c97b644a..000000000
--- a/app/javascript/flavours/glitch/locales/af.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/af.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/af.json b/app/javascript/flavours/glitch/locales/af.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/af.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/an.json b/app/javascript/flavours/glitch/locales/an.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/an.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/ar.js b/app/javascript/flavours/glitch/locales/ar.js
deleted file mode 100644
index 1081147d5..000000000
--- a/app/javascript/flavours/glitch/locales/ar.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/ar.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/ar.json b/app/javascript/flavours/glitch/locales/ar.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/ar.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/ast.js b/app/javascript/flavours/glitch/locales/ast.js
deleted file mode 100644
index 41355c24c..000000000
--- a/app/javascript/flavours/glitch/locales/ast.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/ast.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/ast.json b/app/javascript/flavours/glitch/locales/ast.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/ast.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/be.json b/app/javascript/flavours/glitch/locales/be.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/be.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/bg.js b/app/javascript/flavours/glitch/locales/bg.js
deleted file mode 100644
index 979039376..000000000
--- a/app/javascript/flavours/glitch/locales/bg.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/bg.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/bg.json b/app/javascript/flavours/glitch/locales/bg.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/bg.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/bn.js b/app/javascript/flavours/glitch/locales/bn.js
deleted file mode 100644
index a453498b3..000000000
--- a/app/javascript/flavours/glitch/locales/bn.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/bn.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/bn.json b/app/javascript/flavours/glitch/locales/bn.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/bn.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/br.js b/app/javascript/flavours/glitch/locales/br.js
deleted file mode 100644
index 966bd1b2f..000000000
--- a/app/javascript/flavours/glitch/locales/br.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/br.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/br.json b/app/javascript/flavours/glitch/locales/br.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/br.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/bs.json b/app/javascript/flavours/glitch/locales/bs.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/bs.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/ca.js b/app/javascript/flavours/glitch/locales/ca.js
deleted file mode 100644
index baf76bd6f..000000000
--- a/app/javascript/flavours/glitch/locales/ca.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/ca.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/ca.json b/app/javascript/flavours/glitch/locales/ca.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/ca.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/ckb.js b/app/javascript/flavours/glitch/locales/ckb.js
deleted file mode 100644
index c2e177d5f..000000000
--- a/app/javascript/flavours/glitch/locales/ckb.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/ckb.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/ckb.json b/app/javascript/flavours/glitch/locales/ckb.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/ckb.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/co.js b/app/javascript/flavours/glitch/locales/co.js
deleted file mode 100644
index 6e9e46797..000000000
--- a/app/javascript/flavours/glitch/locales/co.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/co.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/co.json b/app/javascript/flavours/glitch/locales/co.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/co.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/cs.js b/app/javascript/flavours/glitch/locales/cs.js
deleted file mode 100644
index e789facb0..000000000
--- a/app/javascript/flavours/glitch/locales/cs.js
+++ /dev/null
@@ -1,180 +0,0 @@
-import inherited from 'mastodon/locales/cs.json';
-
-const messages = {
- 'about.fork_disclaimer': 'Glitch-soc je svobodnÃŊ software s otevÅenÃŊm zdrojovÃŊm kÃŗdem zaloÅženÃŊ na Mastodonu.',
- 'settings.layout_opts': 'MoÅžnosti rozvrÅženÃ',
- 'settings.layout': 'RozloÅženÃ:',
- 'layout.current_is': 'NastavenÊ rozloŞenà je:',
- 'layout.auto': 'AutomatickÊ',
- 'layout.desktop': 'Desktop',
- 'layout.mobile': 'Mobil',
- 'layout.hint.auto': 'Vybrat rozloÅženà automaticky v zÃĄvislosti na nastavenà âPovolit pokroÄilÊ webovÊ rozhranÃâ a velikosti obrazovky.',
- 'layout.hint.desktop': 'PouÅžÃt vÃcesloupcovÊ rozloÅženà nezÃĄvisle na nastavenà âPovolit pokroÄilÊ webovÊ rozhranÃâ a velikosti obrazovky.',
- 'layout.hint.single': 'PouÅžÃt jednosloupcovÊ rozloÅženà nezÃĄvisle na nastavenà âPovolit pokroÄilÊ webovÊ rozhranÃâ a velikosti obrazovky.',
- 'navigation_bar.app_settings': 'Nastavenà aplikace',
- 'navigation_bar.featured_users': 'Vybranà uŞivatelÊ',
- 'endorsed_accounts_editor.endorsed_accounts': 'VybranÊ ÃēÄty',
- 'navigation_bar.info': 'RozÅĄÃÅenÊ informace',
- 'navigation_bar.misc': 'RůznÊ',
- 'navigation_bar.keyboard_shortcuts': 'KlÃĄvesovÊ zkratky',
- 'getting_started.onboarding': 'UkaÅž mi to tu',
- 'onboarding.skip': 'PÅeskoÄit',
- 'onboarding.next': 'DalÅĄÃ',
- 'onboarding.done': 'Hotovo',
- 'onboarding.page_one.federation': '{domain} je \'instance\' Mastodonu. Mastodon je sÃÅĨ nezÃĄvislÃŊch serverů, kterÊ jsou spolu propojenÊ do jednÊ velkÊ sociÃĄlnà sÃtÄ. TÄmto serverům ÅÃkÃĄme instance.',
- 'onboarding.page_one.handle': 'Jste na instanci {domain}, takÅže celÃĄ adresa vaÅĄeho profilu je {handle}',
- 'onboarding.page_one.welcome': 'VÃtÃĄ vÃĄs {domain}!',
- 'onboarding.page_two.compose': 'PÅÃspÄvky se pÃÅĄÃ v levÊm sloupci. Pomocà ikon pod pÅÃspÄvkem k nÄmu můŞete pÅipojit obrÃĄzky, zmÄnit ÃēroveÅ soukromà nebo pÅidat varovÃĄnà o obsahu.',
- 'onboarding.page_three.search': 'Pomocà vyhledÃĄvacà liÅĄty můŞete hledat lidi nebo hashtagy. Pokud hledÃĄte nÄkoho z jinÊ instance, musÃte pouÅžÃt celou adresu jeho profilu.',
- 'onboarding.page_three.profile': 'Upravte si svůj profil a nastavte si profilovÃŊ obrÃĄzek, jmÊno, a krÃĄtkÃŊ text o sobÄ. Naleznete tam i dalÅĄÃ moÅžnosti nastavenÃ.',
- 'onboarding.page_four.home': 'DomovskÃĄ ÄasovÃĄ osa zobrazuje pÅÃspÄvky od lidÃ, kterÊ sledujete.',
- 'onboarding.page_four.notifications': 'Notifikace se zobrazÃ, kdyÅž s vÃĄmi nÄkdo interaguje.',
- 'onboarding.page_five.public_timelines': 'MÃstnà ÄasovÃĄ osa zobrazuje veÅejnÊ pÅÃspÄvky vÅĄech uÅživatelů instance {domain}. FederovanÃĄ ÄasovÃĄ osa zobrazà pÅÃspÄvky od vÅĄech, koho uÅživatelÊ instance {domain} sledujÃ. Tyto veÅejnÊ ÄasovÊ osy jsou skvÄlÃŊ způsob, jak objevit novÊ lidi.',
- 'onboarding.page_six.almost_done': 'Skoro hotovo...',
- 'onboarding.page_six.github': 'Na serveru {domain} bÄŞà Glitchsoc. Glitchsoc je pÅÃĄtelskÃŊ {fork} programu {Mastodon}, a je kompatibilnà s jakoukoliv jinou mastodonà instancà nebo aplikacÃ. Glitchsoc je zcela svobodnÃŊ a mÃĄ otevÅenÃŊ zdrojovÃŊ kÃŗd. Na strÃĄnce {github} můŞete hlÃĄsit chyby, ÅžÃĄdat o novÊ funkce, nebo ke kÃŗdu vlastnoruÄnÄ pÅispÄt.',
- 'onboarding.page_six.apps_available': 'Jsou dostupnÊ {apps} pro iOS, Android i jinÊ platformy.',
- 'onboarding.page_six.various_app': 'mobilnà aplikace',
- 'onboarding.page_six.appetoot': 'VeselÊ mastodonÄnÃ!',
- 'settings.auto_collapse': 'Automaticky sbalit',
- 'settings.auto_collapse_all': 'VÅĄechno',
- 'settings.auto_collapse_lengthy': 'DlouhÊ pÅÃspÄvky',
- 'settings.auto_collapse_media': 'PÅÃspÄvky s pÅÃlohami',
- 'settings.auto_collapse_notifications': 'OznÃĄmenÃ',
- 'settings.auto_collapse_reblogs': 'Boosty',
- 'settings.auto_collapse_replies': 'OdpovÄdi',
- 'settings.show_action_bar': 'Zobrazit ve sbalenÃŊch pÅÃspÄvcÃch tlaÄÃtka s akcemi',
- 'settings.close': 'ZavÅÃt',
- 'settings.collapsed_statuses': 'SbalenÊ pÅÃspÄvky',
- 'settings.confirm_boost_missing_media_description': 'Zobrazit potvrzovacà dialog pÅed boostnutÃm pÅÃspÄvku s chybÄjÃcÃmi popisky obrÃĄzků',
- 'boost_modal.missing_description': 'PÅÃspÄvek obsahuje obrÃĄzky bez popisků',
- 'settings.enable_collapsed': 'Povolit sbalenÊ pÅÃspÄvky',
- 'settings.enable_collapsed_hint': 'U sbalenÃŊch pÅÃspÄvků je ÄÃĄst jejich obsahu skrytÃĄ, aby zabraly mÊnÄ mÃsta na obrazovce. (Tohle nenà stejnÃĄ funkce jako varovÃĄnà o obsahu.)',
- 'settings.general': 'ObecnÊ',
- 'settings.hicolor_privacy_icons': 'BarevnÊ ikony soukromÃ',
- 'settings.hicolor_privacy_icons.hint': 'Zobrazit ikony ÃērovnÄ soukromà pÅÃspÄvků v jasnÃŊch, snadno rozliÅĄitelnÃŊch barvÃĄch',
- 'settings.image_backgrounds': 'ObrÃĄzkovÊ pozadÃ',
- 'settings.image_backgrounds_media': 'NÃĄhled mÊdià ve sbalenÃŊch pÅÃspÄvcÃch',
- 'settings.image_backgrounds_media_hint': 'Pokud jsou k pÅÃspÄvku pÅiloÅžena mÊdia, pouÅžije se prvnà z nich jako pozadÃ',
- 'settings.image_backgrounds_users': 'Nastavit sbalenÃŊm pÅÃspÄvkům obrÃĄzkovÊ pozadÃ',
- 'settings.inline_preview_cards': 'Zobrazit v ÄasovÊ ose nÃĄhledy externÃch odkazů',
- 'settings.media': 'MÊdia',
- 'settings.media_letterbox': 'NeoÅezÃĄvat obrÃĄzky',
- 'settings.media_letterbox_hint': 'MÃsto vÃŊÅezu obrÃĄzku zobrazit obrÃĄzek celÃŊ, doplnÄnÃŊ podle potÅeby o prÃĄzdnÊ okraje',
- 'settings.media_fullwidth': 'Zobrazit nÃĄhledy v plnÊ ÅĄÃÅce',
- 'settings.notifications_opts': 'MoÅžnosti oznÃĄmenÃ',
- 'settings.notifications.tab_badge': 'Zobrazit poÄet nepÅeÄtenÃŊch oznÃĄmenÃ',
- 'settings.notifications.tab_badge.hint': 'PoÄet nepÅeÄtenÃŊch oznÃĄmenà se viditelnÄ zobrazà na hlavnà strÃĄnce (pokud nenà seznam oznÃĄmenà viditelnÃŊ)',
- 'settings.notifications.favicon_badge': 'Zobrazit poÄet na ikonÄ serveru',
- 'settings.notifications.favicon_badge.hint': 'Zobrazà poÄet nepÅeÄtenÃŊch oznÃĄmenà na ikonÄ serveru',
- 'settings.preferences': 'PÅedvolby',
- 'settings.rewrite_mentions': 'PÅepsat zmÃnky v zobrazenÃŊch pÅÃspÄvcÃch',
- 'settings.rewrite_mentions_no': 'NepÅepisovat zmÃnky',
- 'settings.rewrite_mentions_acct': 'PÅepsat uÅživatelskÃŊm jmÊnem a domÊnou (pokud je ÃēÄet na jinÊm serveru)',
- 'settings.rewrite_mentions_username': 'PÅepsat uÅživatelskÃŊm jmÊnem',
- 'settings.show_reply_counter': 'Zobrazit odhad poÄtu odpovÄdÃ',
- 'settings.status_icons': 'Ikony u pÅÃspÄvků',
- 'settings.status_icons_language': 'Indikace jazyk',
- 'settings.status_icons_reply': 'Indikace odpovÄdi',
- 'settings.status_icons_local_only': 'Indikace lokÃĄlnÃho pÅÃspÄvku',
- 'settings.status_icons_media': 'Indikace obrÃĄzků a anket',
- 'settings.status_icons_visibility': 'Indikace ÃērovnÄ soukromÃ',
- 'settings.tag_misleading_links': 'OznaÄit zavÃĄdÄjÃcà odkazy',
- 'settings.tag_misleading_links.hint': 'Zobrazit skuteÄnÃŊ cÃl u kaÅždÊho odkazu, kterÃŊ ho explicitnÄ nezmiÅuje',
- 'settings.wide_view': 'ŠirokÊ sloupce (pouze v reŞimu Desktop)',
- 'settings.wide_view_hint': 'Sloupce se roztÃĄhnout, aby lÊpe vyplnily dostupnÃŊ prostor.',
- 'settings.navbar_under': 'NavigaÄnà liÅĄta vespod (pouze v reÅžimu Mobil)',
- 'settings.compose_box_opts': 'EditaÄnà pole',
- 'settings.always_show_spoilers_field': 'VÅždy zobrazit pole pro varovÃĄnà o obsahu',
- 'settings.prepend_cw_re': 'PÅi odpovÃdÃĄnà pÅidat pÅed varovÃĄnà o obsahu âre: â',
- 'settings.preselect_on_reply': 'PÅi odpovÄdi oznaÄit uÅživatelskÃĄ jmÊna',
- 'settings.preselect_on_reply_hint': 'PÅi odpovÃdÃĄnà na konverzaci s vÃce ÃēÄastnÃky se jmÊna vÅĄech kromÄ prvnÃho oznaÄÃ, aby ÅĄla jednoduÅĄe smazat',
- 'settings.confirm_missing_media_description': 'Zobrazit potvrzovacà dialog pÅi odesÃlÃĄnà pÅÃspÄvku, ve kterÊm chybà popisky obrÃĄzků',
- 'settings.confirm_before_clearing_draft': 'Zobrazit potvrzovacà dialog pÅed pÅepsÃĄnÃm prÃĄvÄ vytvÃĄÅenÊ zprÃĄvy',
- 'settings.show_content_type_choice': 'Zobrazit volbu formÃĄtu pÅÃspÄvku',
- 'settings.side_arm': 'VedlejÅĄÃ odesÃlacà tlaÄÃtko:',
- 'settings.side_arm.none': 'ÅŊÃĄdnÊ',
- 'settings.side_arm_reply_mode': 'PÅi odpovÃdÃĄnà na pÅÃspÄvek by vedlejÅĄÃ odesÃlacà tlaÄÃtko mÄlo:',
- 'settings.side_arm_reply_mode.keep': 'PouÅžÃt svou nastavenou ÃēroveÅ soukromÃ',
- 'settings.side_arm_reply_mode.copy': 'PouÅžÃt ÃēroveÅ soukromà pÅÃspÄvku, na kterÃŊ odpovÃdÃĄte',
- 'settings.side_arm_reply_mode.restrict': 'ZvÃŊÅĄit ÃēroveÅ soukromà nejmÊnÄ na ÃēroveÅ pÅÃspÄvku, na kterÃŊ odpovÃdÃĄte',
- 'settings.content_warnings': 'VarovÃĄnà o obsahu',
- 'settings.content_warnings_shared_state': 'Zobrazit/schovat vÅĄechny kopie narÃĄz',
- 'settings.content_warnings_shared_state_hint': 'TlaÄÃtko varovÃĄnà o obsahu bude mÃt efekt na vÅĄechny kopie pÅÃspÄvku narÃĄz, stejnÄ jako na bÄÅžnÊm Mastodonu. Nebude pak moÅžnÊ automaticky sbalit jakoukoliv kopii pÅÃspÄvku, kterÃĄ mÃĄ rozbalenÊ varovÃĄnà o obsahu',
- 'settings.content_warnings_media_outside': 'Zobrazit obrÃĄzky a videa mimo varovÃĄnà o obsahu',
- 'settings.content_warnings_media_outside_hint': 'ObrÃĄzky a videa z pÅÃspÄvku s varovÃĄnÃm o obsahu se zobrazà se separÃĄtnÃm pÅepÃnaÄem zobrazenÃ, stejnÄ jako na bÄÅžnÊm Mastodonu.',
- 'settings.content_warnings_unfold_opts': 'MoÅžnosti automatickÊho rozbalenÃ',
- 'settings.enable_content_warnings_auto_unfold': 'VÅždy rozbalit pÅÃspÄvky oznaÄenÊ varovÃĄnÃm o obsahu',
- 'settings.deprecated_setting': 'Tato moŞnost se nynà nastavuje v {settings_page_link}',
- 'settings.shared_settings_link': 'pÅedvolbÃĄch Mastodonu',
- 'settings.content_warnings_filter': 'Tato varovÃĄnà o obsahu automaticky nerozbalovat:',
- 'settings.content_warnings.regexp': 'RegulÃĄrnà vÃŊraz',
- 'settings.media_reveal_behind_cw': 'Automaticky zobrazit mÊdia oznaÄenÃĄ varovÃĄnÃm o obsahu',
- 'settings.pop_in_player': 'Povolit plovoucà okno pÅehrÃĄvaÄe',
- 'settings.pop_in_position': 'Pozice plovoucÃho okna:',
- 'settings.pop_in_left': 'Vlevo',
- 'settings.pop_in_right': 'Vpravo',
-
-
- 'status.collapse': 'Sbalit',
- 'status.uncollapse': 'Rozbalit',
- 'status.in_reply_to': 'Tento pÅÃspÄvek je odpovÄÄ',
- 'status.has_preview_card': 'Obsahuje nÃĄhled odkazu',
- 'status.has_pictures': 'Obsahuje obrÃĄzky',
- 'status.is_poll': 'Tento pÅÃspÄvek je anketa',
- 'status.has_video': 'Obsahuje video',
- 'status.has_audio': 'Obsahuje audio',
- 'status.local_only': 'ViditelnÊ pouze z vaÅĄÃ instance',
-
- 'media_gallery.sensitive': 'CitlivÃŊ obsah',
-
- 'favourite_modal.combo': 'PÅÃÅĄtÄ můŞete pro pÅeskoÄenà stisknout {combo}',
-
- 'home.column_settings.show_direct': 'Zobrazit pÅÃmÊ zprÃĄvy',
-
- 'notification_purge.start': 'ÄistÃcà reÅžim',
- 'notifications.mark_as_read': 'OznaÄit vÅĄechna oznÃĄmenà jako pÅeÄtenÃĄ',
-
- 'notification.markForDeletion': 'OznaÄit pro smazÃĄnÃ',
- 'notifications.clear': 'Vymazat vÅĄechna oznÃĄmenÃ',
- 'notifications.marked_clear_confirmation': 'UrÄitÄ chcete trvale smazat vÅĄechna vybranÃĄ oznÃĄmenÃ?',
- 'notifications.marked_clear': 'Smazat vybranÃĄ oznÃĄmenÃ',
-
- 'notification_purge.btn_all': 'Vybrat\nvÅĄe',
- 'notification_purge.btn_none': 'Nevybrat\nnic',
- 'notification_purge.btn_invert': 'ObrÃĄtit\nvÃŊbÄr',
- 'notification_purge.btn_apply': 'Smazat\nvybranÊ',
-
- 'compose.attach.upload': 'NahrÃĄt soubor',
- 'compose.attach.doodle': 'NÄco namalovat',
- 'compose.attach': 'PÅipojit...',
-
- 'advanced_options.local-only.short': 'LokÃĄlnà pÅÃspÄvek',
- 'advanced_options.local-only.long': 'NeposÃlat na jinÊ servery',
- 'advanced_options.local-only.tooltip': 'Tento pÅÃspÄvek je pouze lokÃĄlnÃ',
- 'advanced_options.icon_title': 'PokroÄilÃĄ nastavenÃ',
- 'advanced_options.threaded_mode.short': 'ReÅžim vlÃĄkna',
- 'advanced_options.threaded_mode.long': 'Po odeslÃĄnà automaticky otevÅe pole pro odpovÄÄ',
- 'advanced_options.threaded_mode.tooltip': 'ReÅžim vlÃĄkna je zapnutÃŊ',
-
- 'home.column_settings.advanced': 'PokroÄilÊ',
- 'home.column_settings.filter_regex': 'Filtrovat podle regulÃĄrnÃch vÃŊrazů',
-
- 'compose_form.poll.single_choice': 'Povolit jednu odpovÄÄ',
- 'compose_form.poll.multiple_choices': 'Povolit vÃce odpovÄdÃ',
-
- 'compose.content-type.plain': 'ProstÃŊ text',
- 'content-type.change': 'FormÃĄt pÅÃspÄvku',
- 'compose_form.spoiler': 'PÅidat varovÃĄnà o obsahu',
-
- 'direct.group_by_conversations': 'Seskupit do konverzacÃ',
- 'column.toot': 'PÅÃspÄvky a odpovÄdi',
- 'confirmation_modal.do_not_ask_again': 'PÅÃÅĄtÄ se uÅž neptat',
-
- 'keyboard_shortcuts.bookmark': 'PÅidat do zÃĄloÅžek',
- 'keyboard_shortcuts.toggle_collapse': 'Sbalit/rozbalit pÅÃspÄvek',
- 'keyboard_shortcuts.secondary_toot': 'Odeslat pÅÃspÄvek s druhotnÃŊm nastavenÃm soukromÃ',
-
- 'column.subheading': 'RůznÊ',
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/cs.json b/app/javascript/flavours/glitch/locales/cs.json
new file mode 100644
index 000000000..91fec35d6
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/cs.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc je svobodnÃŊ software s otevÅenÃŊm zdrojovÃŊm kÃŗdem zaloÅženÃŊ na Mastodonu.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "PokroÄilÃĄ nastavenÃ",
+ "advanced_options.local-only.long": "NeposÃlat na jinÊ servery",
+ "advanced_options.local-only.short": "LokÃĄlnà pÅÃspÄvek",
+ "advanced_options.local-only.tooltip": "Tento pÅÃspÄvek je pouze lokÃĄlnÃ",
+ "advanced_options.threaded_mode.long": "Po odeslÃĄnà automaticky otevÅe pole pro odpovÄÄ",
+ "advanced_options.threaded_mode.short": "ReÅžim vlÃĄkna",
+ "advanced_options.threaded_mode.tooltip": "ReÅžim vlÃĄkna je zapnutÃŊ",
+ "boost_modal.missing_description": "PÅÃspÄvek obsahuje obrÃĄzky bez popisků",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "RůznÊ",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "PÅipojit...",
+ "compose.attach.doodle": "NÄco namalovat",
+ "compose.attach.upload": "NahrÃĄt soubor",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "ProstÃŊ text",
+ "compose_form.poll.multiple_choices": "Povolit vÃce odpovÄdÃ",
+ "compose_form.poll.single_choice": "Povolit jednu odpovÄÄ",
+ "compose_form.spoiler": "PÅidat varovÃĄnà o obsahu",
+ "confirmation_modal.do_not_ask_again": "PÅÃÅĄtÄ se uÅž neptat",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "FormÃĄt pÅÃspÄvku",
+ "direct.group_by_conversations": "Seskupit do konverzacÃ",
+ "endorsed_accounts_editor.endorsed_accounts": "VybranÊ ÃēÄty",
+ "favourite_modal.combo": "PÅÃÅĄtÄ můŞete pro pÅeskoÄenà stisknout {combo}",
+ "getting_started.onboarding": "UkaÅž mi to tu",
+ "home.column_settings.advanced": "PokroÄilÊ",
+ "home.column_settings.filter_regex": "Filtrovat podle regulÃĄrnÃch vÃŊrazů",
+ "home.column_settings.show_direct": "Zobrazit pÅÃmÊ zprÃĄvy",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "PÅidat do zÃĄloÅžek",
+ "keyboard_shortcuts.secondary_toot": "Odeslat pÅÃspÄvek s druhotnÃŊm nastavenÃm soukromÃ",
+ "keyboard_shortcuts.toggle_collapse": "Sbalit/rozbalit pÅÃspÄvek",
+ "layout.auto": "AutomatickÊ",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Vybrat rozloÅženà automaticky v zÃĄvislosti na nastavenà âPovolit pokroÄilÊ webovÊ rozhranÃâ a velikosti obrazovky.",
+ "layout.hint.desktop": "PouÅžÃt vÃcesloupcovÊ rozloÅženà nezÃĄvisle na nastavenà âPovolit pokroÄilÊ webovÊ rozhranÃâ a velikosti obrazovky.",
+ "layout.hint.single": "PouÅžÃt jednosloupcovÊ rozloÅženà nezÃĄvisle na nastavenà âPovolit pokroÄilÊ webovÊ rozhranÃâ a velikosti obrazovky.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "CitlivÃŊ obsah",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "Nastavenà aplikace",
+ "navigation_bar.featured_users": "Vybranà uŞivatelÊ",
+ "navigation_bar.keyboard_shortcuts": "KlÃĄvesovÊ zkratky",
+ "navigation_bar.misc": "RůznÊ",
+ "notification.markForDeletion": "OznaÄit pro smazÃĄnÃ",
+ "notification_purge.btn_all": "Vybrat\nvÅĄe",
+ "notification_purge.btn_apply": "Smazat\nvybranÊ",
+ "notification_purge.btn_invert": "ObrÃĄtit\nvÃŊbÄr",
+ "notification_purge.btn_none": "Nevybrat\nnic",
+ "notification_purge.start": "ÄistÃcà reÅžim",
+ "notifications.marked_clear": "Smazat vybranÃĄ oznÃĄmenÃ",
+ "notifications.marked_clear_confirmation": "UrÄitÄ chcete trvale smazat vÅĄechna vybranÃĄ oznÃĄmenÃ?",
+ "onboarding.done": "Hotovo",
+ "onboarding.next": "DalÅĄÃ",
+ "onboarding.page_five.public_timelines": "MÃstnà ÄasovÃĄ osa zobrazuje veÅejnÊ pÅÃspÄvky vÅĄech uÅživatelů instance {domain}. FederovanÃĄ ÄasovÃĄ osa zobrazà pÅÃspÄvky od vÅĄech, koho uÅživatelÊ instance {domain} sledujÃ. Tyto veÅejnÊ ÄasovÊ osy jsou skvÄlÃŊ způsob, jak objevit novÊ lidi.",
+ "onboarding.page_four.home": "DomovskÃĄ ÄasovÃĄ osa zobrazuje pÅÃspÄvky od lidÃ, kterÊ sledujete.",
+ "onboarding.page_four.notifications": "Notifikace se zobrazÃ, kdyÅž s vÃĄmi nÄkdo interaguje.",
+ "onboarding.page_one.federation": "{domain} je 'instance' Mastodonu. Mastodon je sÃÅĨ nezÃĄvislÃŊch serverů, kterÊ jsou spolu propojenÊ do jednÊ velkÊ sociÃĄlnà sÃtÄ. TÄmto serverům ÅÃkÃĄme instance.",
+ "onboarding.page_one.handle": "Jste na instanci {domain}, takÅže celÃĄ adresa vaÅĄeho profilu je {handle}",
+ "onboarding.page_one.welcome": "VÃtÃĄ vÃĄs {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Skoro hotovo...",
+ "onboarding.page_six.appetoot": "VeselÊ mastodonÄnÃ!",
+ "onboarding.page_six.apps_available": "Jsou dostupnÊ {apps} pro iOS, Android i jinÊ platformy.",
+ "onboarding.page_six.github": "Na serveru {domain} bÄŞà Glitchsoc. Glitchsoc je pÅÃĄtelskÃŊ {fork} programu {Mastodon}, a je kompatibilnà s jakoukoliv jinou mastodonà instancà nebo aplikacÃ. Glitchsoc je zcela svobodnÃŊ a mÃĄ otevÅenÃŊ zdrojovÃŊ kÃŗd. Na strÃĄnce {github} můŞete hlÃĄsit chyby, ÅžÃĄdat o novÊ funkce, nebo ke kÃŗdu vlastnoruÄnÄ pÅispÄt.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobilnà aplikace",
+ "onboarding.page_three.profile": "Upravte si svůj profil a nastavte si profilovÃŊ obrÃĄzek, jmÊno, a krÃĄtkÃŊ text o sobÄ. Naleznete tam i dalÅĄÃ moÅžnosti nastavenÃ.",
+ "onboarding.page_three.search": "Pomocà vyhledÃĄvacà liÅĄty můŞete hledat lidi nebo hashtagy. Pokud hledÃĄte nÄkoho z jinÊ instance, musÃte pouÅžÃt celou adresu jeho profilu.",
+ "onboarding.page_two.compose": "PÅÃspÄvky se pÃÅĄÃ v levÊm sloupci. Pomocà ikon pod pÅÃspÄvkem k nÄmu můŞete pÅipojit obrÃĄzky, zmÄnit ÃēroveÅ soukromà nebo pÅidat varovÃĄnà o obsahu.",
+ "onboarding.skip": "PÅeskoÄit",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "VÅždy zobrazit pole pro varovÃĄnà o obsahu",
+ "settings.auto_collapse": "Automaticky sbalit",
+ "settings.auto_collapse_all": "VÅĄechno",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "DlouhÊ pÅÃspÄvky",
+ "settings.auto_collapse_media": "PÅÃspÄvky s pÅÃlohami",
+ "settings.auto_collapse_notifications": "OznÃĄmenÃ",
+ "settings.auto_collapse_reblogs": "Boosty",
+ "settings.auto_collapse_replies": "OdpovÄdi",
+ "settings.close": "ZavÅÃt",
+ "settings.collapsed_statuses": "SbalenÊ pÅÃspÄvky",
+ "settings.compose_box_opts": "EditaÄnà pole",
+ "settings.confirm_before_clearing_draft": "Zobrazit potvrzovacà dialog pÅed pÅepsÃĄnÃm prÃĄvÄ vytvÃĄÅenÊ zprÃĄvy",
+ "settings.confirm_boost_missing_media_description": "Zobrazit potvrzovacà dialog pÅed boostnutÃm pÅÃspÄvku s chybÄjÃcÃmi popisky obrÃĄzků",
+ "settings.confirm_missing_media_description": "Zobrazit potvrzovacà dialog pÅi odesÃlÃĄnà pÅÃspÄvku, ve kterÊm chybà popisky obrÃĄzků",
+ "settings.content_warnings": "VarovÃĄnà o obsahu",
+ "settings.content_warnings.regexp": "RegulÃĄrnà vÃŊraz",
+ "settings.content_warnings_filter": "Tato varovÃĄnà o obsahu automaticky nerozbalovat:",
+ "settings.content_warnings_media_outside": "Zobrazit obrÃĄzky a videa mimo varovÃĄnà o obsahu",
+ "settings.content_warnings_media_outside_hint": "ObrÃĄzky a videa z pÅÃspÄvku s varovÃĄnÃm o obsahu se zobrazà se separÃĄtnÃm pÅepÃnaÄem zobrazenÃ, stejnÄ jako na bÄÅžnÊm Mastodonu.",
+ "settings.content_warnings_shared_state": "Zobrazit/schovat vÅĄechny kopie narÃĄz",
+ "settings.content_warnings_shared_state_hint": "TlaÄÃtko varovÃĄnà o obsahu bude mÃt efekt na vÅĄechny kopie pÅÃspÄvku narÃĄz, stejnÄ jako na bÄÅžnÊm Mastodonu. Nebude pak moÅžnÊ automaticky sbalit jakoukoliv kopii pÅÃspÄvku, kterÃĄ mÃĄ rozbalenÊ varovÃĄnà o obsahu",
+ "settings.content_warnings_unfold_opts": "MoÅžnosti automatickÊho rozbalenÃ",
+ "settings.deprecated_setting": "Tato moŞnost se nynà nastavuje v {settings_page_link}",
+ "settings.enable_collapsed": "Povolit sbalenÊ pÅÃspÄvky",
+ "settings.enable_collapsed_hint": "U sbalenÃŊch pÅÃspÄvků je ÄÃĄst jejich obsahu skrytÃĄ, aby zabraly mÊnÄ mÃsta na obrazovce. (Tohle nenà stejnÃĄ funkce jako varovÃĄnà o obsahu.)",
+ "settings.enable_content_warnings_auto_unfold": "VÅždy rozbalit pÅÃspÄvky oznaÄenÊ varovÃĄnÃm o obsahu",
+ "settings.general": "ObecnÊ",
+ "settings.hicolor_privacy_icons": "BarevnÊ ikony soukromÃ",
+ "settings.hicolor_privacy_icons.hint": "Zobrazit ikony ÃērovnÄ soukromà pÅÃspÄvků v jasnÃŊch, snadno rozliÅĄitelnÃŊch barvÃĄch",
+ "settings.image_backgrounds": "ObrÃĄzkovÊ pozadÃ",
+ "settings.image_backgrounds_media": "NÃĄhled mÊdià ve sbalenÃŊch pÅÃspÄvcÃch",
+ "settings.image_backgrounds_media_hint": "Pokud jsou k pÅÃspÄvku pÅiloÅžena mÊdia, pouÅžije se prvnà z nich jako pozadÃ",
+ "settings.image_backgrounds_users": "Nastavit sbalenÃŊm pÅÃspÄvkům obrÃĄzkovÊ pozadÃ",
+ "settings.inline_preview_cards": "Zobrazit v ÄasovÊ ose nÃĄhledy externÃch odkazů",
+ "settings.layout": "RozloÅženÃ:",
+ "settings.layout_opts": "MoÅžnosti rozvrÅženÃ",
+ "settings.media": "MÊdia",
+ "settings.media_fullwidth": "Zobrazit nÃĄhledy v plnÊ ÅĄÃÅce",
+ "settings.media_letterbox": "NeoÅezÃĄvat obrÃĄzky",
+ "settings.media_letterbox_hint": "MÃsto vÃŊÅezu obrÃĄzku zobrazit obrÃĄzek celÃŊ, doplnÄnÃŊ podle potÅeby o prÃĄzdnÊ okraje",
+ "settings.media_reveal_behind_cw": "Automaticky zobrazit mÊdia oznaÄenÃĄ varovÃĄnÃm o obsahu",
+ "settings.notifications.favicon_badge": "Zobrazit poÄet na ikonÄ serveru",
+ "settings.notifications.favicon_badge.hint": "Zobrazà poÄet nepÅeÄtenÃŊch oznÃĄmenà na ikonÄ serveru",
+ "settings.notifications.tab_badge": "Zobrazit poÄet nepÅeÄtenÃŊch oznÃĄmenÃ",
+ "settings.notifications.tab_badge.hint": "PoÄet nepÅeÄtenÃŊch oznÃĄmenà se viditelnÄ zobrazà na hlavnà strÃĄnce (pokud nenà seznam oznÃĄmenà viditelnÃŊ)",
+ "settings.notifications_opts": "MoÅžnosti oznÃĄmenÃ",
+ "settings.pop_in_left": "Vlevo",
+ "settings.pop_in_player": "Povolit plovoucà okno pÅehrÃĄvaÄe",
+ "settings.pop_in_position": "Pozice plovoucÃho okna:",
+ "settings.pop_in_right": "Vpravo",
+ "settings.preferences": "PÅedvolby",
+ "settings.prepend_cw_re": "PÅi odpovÃdÃĄnà pÅidat pÅed varovÃĄnà o obsahu âre: â",
+ "settings.preselect_on_reply": "PÅi odpovÄdi oznaÄit uÅživatelskÃĄ jmÊna",
+ "settings.preselect_on_reply_hint": "PÅi odpovÃdÃĄnà na konverzaci s vÃce ÃēÄastnÃky se jmÊna vÅĄech kromÄ prvnÃho oznaÄÃ, aby ÅĄla jednoduÅĄe smazat",
+ "settings.rewrite_mentions": "PÅepsat zmÃnky v zobrazenÃŊch pÅÃspÄvcÃch",
+ "settings.rewrite_mentions_acct": "PÅepsat uÅživatelskÃŊm jmÊnem a domÊnou (pokud je ÃēÄet na jinÊm serveru)",
+ "settings.rewrite_mentions_no": "NepÅepisovat zmÃnky",
+ "settings.rewrite_mentions_username": "PÅepsat uÅživatelskÃŊm jmÊnem",
+ "settings.shared_settings_link": "pÅedvolbÃĄch Mastodonu",
+ "settings.show_action_bar": "Zobrazit ve sbalenÃŊch pÅÃspÄvcÃch tlaÄÃtka s akcemi",
+ "settings.show_content_type_choice": "Zobrazit volbu formÃĄtu pÅÃspÄvku",
+ "settings.show_reply_counter": "Zobrazit odhad poÄtu odpovÄdÃ",
+ "settings.side_arm": "VedlejÅĄÃ odesÃlacà tlaÄÃtko:",
+ "settings.side_arm.none": "ÅŊÃĄdnÊ",
+ "settings.side_arm_reply_mode": "PÅi odpovÃdÃĄnà na pÅÃspÄvek by vedlejÅĄÃ odesÃlacà tlaÄÃtko mÄlo:",
+ "settings.side_arm_reply_mode.copy": "PouÅžÃt ÃēroveÅ soukromà pÅÃspÄvku, na kterÃŊ odpovÃdÃĄte",
+ "settings.side_arm_reply_mode.keep": "PouÅžÃt svou nastavenou ÃēroveÅ soukromÃ",
+ "settings.side_arm_reply_mode.restrict": "ZvÃŊÅĄit ÃēroveÅ soukromà nejmÊnÄ na ÃēroveÅ pÅÃspÄvku, na kterÃŊ odpovÃdÃĄte",
+ "settings.status_icons": "Ikony u pÅÃspÄvků",
+ "settings.status_icons_language": "Indikace jazyk",
+ "settings.status_icons_local_only": "Indikace lokÃĄlnÃho pÅÃspÄvku",
+ "settings.status_icons_media": "Indikace obrÃĄzků a anket",
+ "settings.status_icons_reply": "Indikace odpovÄdi",
+ "settings.status_icons_visibility": "Indikace ÃērovnÄ soukromÃ",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "OznaÄit zavÃĄdÄjÃcà odkazy",
+ "settings.tag_misleading_links.hint": "Zobrazit skuteÄnÃŊ cÃl u kaÅždÊho odkazu, kterÃŊ ho explicitnÄ nezmiÅuje",
+ "settings.wide_view": "ŠirokÊ sloupce (pouze v reŞimu Desktop)",
+ "settings.wide_view_hint": "Sloupce se roztÃĄhnout, aby lÊpe vyplnily dostupnÃŊ prostor.",
+ "status.collapse": "Sbalit",
+ "status.has_audio": "Obsahuje audio",
+ "status.has_pictures": "Obsahuje obrÃĄzky",
+ "status.has_preview_card": "Obsahuje nÃĄhled odkazu",
+ "status.has_video": "Obsahuje video",
+ "status.in_reply_to": "Tento pÅÃspÄvek je odpovÄÄ",
+ "status.is_poll": "Tento pÅÃspÄvek je anketa",
+ "status.local_only": "ViditelnÊ pouze z vaÅĄÃ instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Rozbalit",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/cy.js b/app/javascript/flavours/glitch/locales/cy.js
deleted file mode 100644
index 09412bd72..000000000
--- a/app/javascript/flavours/glitch/locales/cy.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/cy.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/cy.json b/app/javascript/flavours/glitch/locales/cy.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/cy.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/da.js b/app/javascript/flavours/glitch/locales/da.js
deleted file mode 100644
index 2b08806be..000000000
--- a/app/javascript/flavours/glitch/locales/da.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/da.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/da.json b/app/javascript/flavours/glitch/locales/da.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/da.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/de.js b/app/javascript/flavours/glitch/locales/de.js
deleted file mode 100644
index ce6453623..000000000
--- a/app/javascript/flavours/glitch/locales/de.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/de.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/de.json b/app/javascript/flavours/glitch/locales/de.json
new file mode 100644
index 000000000..5851daaf7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/de.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc ist freie, quelloffene Software geforkt von Mastodon.",
+ "account.add_account_note": "Notiz fÃŧr @{name} hinzufÃŧgen",
+ "account.disclaimer_full": "Die folgenden Informationen kÃļnnten das Profil des Nutzers unvollständig wiedergeben.",
+ "account.follows": "Folgt",
+ "account.joined": "Beigetreten am {date}",
+ "account.suspended_disclaimer_full": "Dieser Nutzer wurde durch einen Moderator gesperrt.",
+ "account.view_full_profile": "Vollständiges Profil anzeigen",
+ "account_note.cancel": "Abbrechen",
+ "account_note.edit": "Bearbeiten",
+ "account_note.glitch_placeholder": "Kein Kommentar angegeben",
+ "account_note.save": "Speichern",
+ "advanced_options.icon_title": "Erweiterte Optionen",
+ "advanced_options.local-only.long": "Nicht auf anderen Instanzen posten",
+ "advanced_options.local-only.short": "Nur lokal",
+ "advanced_options.local-only.tooltip": "Dieser Post ist nur lokal",
+ "advanced_options.threaded_mode.long": "Ãffnet automatisch eine Antwort beim Schreiben",
+ "advanced_options.threaded_mode.short": "Thread-Modus",
+ "advanced_options.threaded_mode.tooltip": "Thread-Modus aktiviert",
+ "boost_modal.missing_description": "Dieser Toot enthält Medien ohne Beschreibung",
+ "column.favourited_by": "Favorisiert von",
+ "column.heading": "Sonstiges",
+ "column.reblogged_by": "Geteilt von",
+ "column.subheading": "Sonstige Optionen",
+ "column_header.profile": "Profil",
+ "column_subheading.lists": "Listen",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Nur-lokale Toots anzeigen",
+ "compose.attach": "Anhängen...",
+ "compose.attach.doodle": "Etwas zeichnen",
+ "compose.attach.upload": "Eine Datei hochladen",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Unformatierter Text",
+ "compose_form.poll.multiple_choices": "Mehrfachauswahl erlauben",
+ "compose_form.poll.single_choice": "Eine Auswahl erlauben",
+ "compose_form.spoiler": "Text hinter Warnung verbergen",
+ "confirmation_modal.do_not_ask_again": "Nicht erneut nach Bestätigung fragen",
+ "confirmations.deprecated_settings.confirm": "Mastodon-Einstellungen verwenden",
+ "confirmations.deprecated_settings.message": "Einige der von dir verwendeten, glitch-soc-spezifischen {app_settings} wurden durch Mastodon {preferences} ersetzt und werden Ãŧberschrieben:",
+ "confirmations.missing_media_description.confirm": "Trotzdem absenden",
+ "confirmations.missing_media_description.edit": "Anhänge bearbeiten",
+ "confirmations.missing_media_description.message": "Mindestens einem Anhang fehlt eine Beschreibung. Denke darÃŧber nach, alle Anhänge fÃŧr Sehbeeinträchtigte zu beschreiben, bevor du den Toot absendest.",
+ "confirmations.unfilter.author": "Urheber",
+ "confirmations.unfilter.confirm": "Anzeigen",
+ "confirmations.unfilter.edit_filter": "Filter bearbeiten",
+ "confirmations.unfilter.filters": "Passende{count, plural, one {r} other {}} Filter",
+ "content-type.change": "Inhaltstyp",
+ "direct.group_by_conversations": "Nach Unterhaltung gruppieren",
+ "endorsed_accounts_editor.endorsed_accounts": "Empfohlene Konten",
+ "favourite_modal.combo": "Mit {combo} wird dieses Fenster beim nächsten Mal nicht mehr angezeigt",
+ "getting_started.onboarding": "FÃŧhre mich herum",
+ "home.column_settings.advanced": "Erweitert",
+ "home.column_settings.filter_regex": "Mit regulären AusdrÃŧcken herausfiltern",
+ "home.column_settings.show_direct": "Direktnachrichten anzeigen",
+ "home.settings": "Spalteneinstellungen",
+ "keyboard_shortcuts.bookmark": "zu Lesezeichen hinzufÃŧgen",
+ "keyboard_shortcuts.secondary_toot": "Toot mit sekundärer Privatsphäreeinstellung absenden",
+ "keyboard_shortcuts.toggle_collapse": "Toots ein-/ausklappen",
+ "layout.auto": "Automatisch",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatisch das Layout anhand der Einstellung \"Erweitertes Webinterface verwenden\" und BildschirmgrÃļÃe auswählen.",
+ "layout.hint.desktop": "Das mehrspaltige Layout verwenden, unabhängig von der Einstellung \"Erweitertes Webinterface verwenden\".",
+ "layout.hint.single": "Das einspaltige Layout verwenden, unabhängig von der Einstellung \"Erweitertes Webinterface verwenden\".",
+ "layout.single": "Mobil",
+ "media_gallery.sensitive": "Empfindlich",
+ "moved_to_warning": "Dieses Konto ist als verschoben zu {moved_to_link} markiert und akzeptiert daher keine neuen Follower.",
+ "navigation_bar.app_settings": "App-Einstellungen",
+ "navigation_bar.featured_users": "Empfohlene Nutzer",
+ "navigation_bar.keyboard_shortcuts": "TastaturkÃŧrzel",
+ "navigation_bar.misc": "Sonstiges",
+ "notification.markForDeletion": "Zum Entfernen auswählen",
+ "notification_purge.btn_all": "Alle\nauswählen",
+ "notification_purge.btn_apply": "Ausgewählte\nentfernen",
+ "notification_purge.btn_invert": "Auswahl\numkehren",
+ "notification_purge.btn_none": "Auswahl\naufheben",
+ "notification_purge.start": "Benachrichtigungen-Aufräumen-Modus starten",
+ "notifications.marked_clear": "Ausgewählte Benachrichtigungen entfernen",
+ "notifications.marked_clear_confirmation": "MÃļchtest du wirklich alle auswählten Benachrichtigungen fÃŧr immer entfernen?",
+ "onboarding.done": "Fertig",
+ "onboarding.next": "Weiter",
+ "onboarding.page_five.public_timelines": "Die lokale Timeline zeigt Ãļffentliche Posts von allen auf {domain}. Die fÃļderierte Timeline zeigt Ãļffentliche Posts von allen, denen Leute auf {domain} folgen. Das sind die Ãļffentlichen Timelines, eine tolle MÃļglichkeit, neue Leute zu entdecken.",
+ "onboarding.page_four.home": "Die Startseite zeigt Posts von Leuten an, denen du folgst.",
+ "onboarding.page_four.notifications": "Die Benachrichtigungs-Spalte zeigt an, wenn jemand mit dir interagiert.",
+ "onboarding.page_one.federation": "{domain} ist eine \"Instanz\" von Mastodon. Mastodon ist ein Netzwerk aus unabhängigen Servern, die zusammen ein grÃļÃeres soziales Netzwerk bilden. Diese Server nennen wir Instanzen.",
+ "onboarding.page_one.handle": "Du bist auf {domain}, also ist dein vollständiger Nutzername {handle}",
+ "onboarding.page_one.welcome": "Willkommen auf {domain}!",
+ "onboarding.page_six.admin": "Dein Instanz-Admin ist {admin}.",
+ "onboarding.page_six.almost_done": "Fast geschafft...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "Es gibt {apps} fÃŧr iOS, Android und andere Plattformen.",
+ "onboarding.page_six.github": "{domain} läuft auf glitch-soc. glitch-soc ist ein freundlicher {fork} von {Mastodon}, und ist mit jeder Mastodon-App oder -Instanz kompatibel. glitch-soc ist komplett frei und quelloffen. Auf {github} kannst du Fehler melden, Features anfragen oder Code beitragen.",
+ "onboarding.page_six.guidelines": "Community-Richtlinien",
+ "onboarding.page_six.read_guidelines": "Bitte lies die {guidelines} von {domain}!",
+ "onboarding.page_six.various_app": "mobile Apps",
+ "onboarding.page_three.profile": "Bearbeite dein Profil, um deinen Avatar, \"Ãber mich\" und den Anzeigenamen zu ändern. Dort findest du auch andere Einstellungen.",
+ "onboarding.page_three.search": "Benutze die Suchleiste, um Leute zu finden und Hashtags anzusehen, wie etwa {illustration} und {introductions}. Um nach einer Person zu suchen, die nicht auf dieser Instanz ist, benutze deren vollständigen Nutzername.",
+ "onboarding.page_two.compose": "Schreibe Posts in der Verfassen-Spalte. Mit den Symbolen unten kannst du Bilder hochladen, Privatsphäre-Einstellungen ändern, und Inhaltswarnungen hinzufÃŧgen.",
+ "onboarding.skip": "Ãberspringen",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Das Inhaltswarnungs-Feld immer aktivieren",
+ "settings.auto_collapse": "Automatisches Einklappen",
+ "settings.auto_collapse_all": "Alles",
+ "settings.auto_collapse_height": "HÃļhe (in Pixeln), ab der ein Toot als lang gilt",
+ "settings.auto_collapse_lengthy": "Lange Toots",
+ "settings.auto_collapse_media": "Toots mit Anhängen",
+ "settings.auto_collapse_notifications": "Benachrichtigungen",
+ "settings.auto_collapse_reblogs": "Geteilte Toots",
+ "settings.auto_collapse_replies": "Antworten",
+ "settings.close": "SchlieÃen",
+ "settings.collapsed_statuses": "Eingeklappte Toots",
+ "settings.compose_box_opts": "Verfassen-Box",
+ "settings.confirm_before_clearing_draft": "Zeige einen Bestätigungsdialog, bevor der derzeitige Entwurf verworfen wird",
+ "settings.confirm_boost_missing_media_description": "Zeige einen Bestätigungsdialog, bevor Toots mit Anhängen ohne Beschreibung geteilt werden",
+ "settings.confirm_missing_media_description": "Zeige einen Bestätigungsdialog, bevor Toots mit Anhängen ohne Beschreibung abgesendet werden",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regulärer Ausdruck",
+ "settings.content_warnings_filter": "Inhaltswarnungen, die nicht ausgeklappt werden sollen:",
+ "settings.content_warnings_media_outside": "Medienanhänge auÃerhalb von Inhaltswarnungen anzeigen",
+ "settings.content_warnings_media_outside_hint": "Das ursprÃŧngliche Verhalten von Mastodon wiederherstellen, in welchem Inhaltswarnungen keine Auswirkungen auf Anhänge haben",
+ "settings.content_warnings_shared_state": "Inhalt aller Kopien auf einmal ein-/ausblenden",
+ "settings.content_warnings_shared_state_hint": "Das ursprÃŧngliche Verhalten von Mastodon wiederhertstellen, in welchem der Inhaltswarnungs-Knopf alle Kopien eines Posts auf einmal ein-/ausklappt. Das wird das automatische Einklappen jedweder Kopie eines Toots mit ausgeklappter Inhaltswarnung",
+ "settings.content_warnings_unfold_opts": "Optionen zum automatischen Ausklappen",
+ "settings.deprecated_setting": "Diese Einstellung wird nun von Mastodons {settings_page_link} gesteuert",
+ "settings.enable_collapsed": "Eingeklappte Toots aktivieren",
+ "settings.enable_collapsed_hint": "Eingeklappte Posts haben einen Teil ihres Inhalts verborgen, um weniger Platz am Bildschirm einzunehmen. Das passiert unabhängig von der Inhaltswarnfunktion",
+ "settings.enable_content_warnings_auto_unfold": "Inhaltswarnungen automatisch ausklappen",
+ "settings.general": "Allgemein",
+ "settings.hicolor_privacy_icons": "Eingefärbte Privatsphäre-Symbole",
+ "settings.hicolor_privacy_icons.hint": "Zeige Privatsphäre-Symbole in hellen und leicht zu unterscheidenden Farben",
+ "settings.image_backgrounds": "BildhintergrÃŧnde",
+ "settings.image_backgrounds_media": "Vorschau eingeklappter Toot-Anhänge",
+ "settings.image_backgrounds_media_hint": "Wenn der Post Anhänge hat, wird der erste als Hintergrund verwendet",
+ "settings.image_backgrounds_users": "Eingeklappten Toots einen Bild-Hintergrund geben",
+ "settings.inline_preview_cards": "Eingebettete Vorschaukarten fÃŧr externe Links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout-Optionen",
+ "settings.media": "Medien",
+ "settings.media_fullwidth": "Medienvorschau in voller Breite",
+ "settings.media_letterbox": "MediengrÃļÃe anpassen",
+ "settings.media_letterbox_hint": "Medien runterskalieren und einpassen um die Bildbehälter zu fÃŧllen anstatt zu strecken und zuzuschneiden",
+ "settings.media_reveal_behind_cw": "Empfindliche Medien hinter Inhaltswarnungen standardmäÃig anzeigen",
+ "settings.notifications.favicon_badge": "Favicon-Badge fÃŧr ungelesene Benachrichtigungen",
+ "settings.notifications.favicon_badge.hint": "Ein Badge fÃŧr ungelesene Benachrichtigungen zum Favicon hinzufÃŧgen",
+ "settings.notifications.tab_badge": "Badge fÃŧr ungelesene Benachrichtigungen",
+ "settings.notifications.tab_badge.hint": "Ein Badge fÃŧr ungelesene Benachrichtigungen in den Spaltensymbolen anzeigen, wenn die Benachrichtigungen nicht offen sind",
+ "settings.notifications_opts": "Benachrichtigungsoptionen",
+ "settings.pop_in_left": "Links",
+ "settings.pop_in_player": "Pop-In-Player aktivieren",
+ "settings.pop_in_position": "Position des Pop-In-Players:",
+ "settings.pop_in_right": "Rechts",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "\"re: \" beim Antworten an Inhaltswarnung voranstellen",
+ "settings.preselect_on_reply": "Nutzernamen bei Antwort vorauswählen",
+ "settings.preselect_on_reply_hint": "Beim Antworten auf eine Konversation alle Nutzernamen auswählen, die nach dem ersten kommen",
+ "settings.rewrite_mentions": "Erwähnungen in angezeigten Status umschreiben",
+ "settings.rewrite_mentions_acct": "Mit Nutzernamen und Domain umschreiben (wenn das Konto auf einer anderen Instanz ist)",
+ "settings.rewrite_mentions_no": "Erwähnungen nicht umschreiben",
+ "settings.rewrite_mentions_username": "Mit Nutzername umschreiben",
+ "settings.shared_settings_link": "Nutzereinstellungen",
+ "settings.show_action_bar": "Aktions-KnÃļpfe in eingeklappten Toots anzeigen",
+ "settings.show_content_type_choice": "Auswahl fÃŧr die Inhaltsart beim Verfassen von Toots anzeigen",
+ "settings.show_reply_counter": "Schätzung der Antwortanzahl anzeigen",
+ "settings.side_arm": "Sekundärer Toot-Knopf:",
+ "settings.side_arm.none": "Nichts",
+ "settings.side_arm_reply_mode": "Beim Antworten auf einen Toot sollte der sekundäre Toot-Knopf:",
+ "settings.side_arm_reply_mode.copy": "Privatsphäre-Einstellung des zu beantwortenden Toot verwenden",
+ "settings.side_arm_reply_mode.keep": "Die eingestellte Privatsphäre beibehalten",
+ "settings.side_arm_reply_mode.restrict": "Privatsphäre-Einstellung auf die des zu beantwortenden Toot beschränken",
+ "settings.status_icons": "Toot-Symbole",
+ "settings.status_icons_language": "Sprach-Indikator",
+ "settings.status_icons_local_only": "\"nur Lokal\"-Indikator",
+ "settings.status_icons_media": "Medien- und Umfragen-Indikatoren",
+ "settings.status_icons_reply": "Antwort-Indikator",
+ "settings.status_icons_visibility": "Toot-Privatsphäre-Indikator",
+ "settings.swipe_to_change_columns": "Das Wechseln der Spalte durch Wischen erlauben (nur fÃŧr die mobile Ansicht)",
+ "settings.tag_misleading_links": "IrrefÃŧhrende Links markieren",
+ "settings.tag_misleading_links.hint": "FÃŧge eine visuelle Indikation mit dem Ziel-Host des Links zu jedem Link hinzu, bei dem dieser nicht explizit genannt wird",
+ "settings.wide_view": "Breite Ansicht (nur fÃŧr den Desktop-Modus)",
+ "settings.wide_view_hint": "Verbreitert Spalten, um den verfÃŧgbaren Platz besser zu fÃŧllen.",
+ "status.collapse": "Einklappen",
+ "status.has_audio": "Hat angehängte Audiodateien",
+ "status.has_pictures": "Hat angehängte Bilder",
+ "status.has_preview_card": "Hat eine Vorschaukarte",
+ "status.has_video": "Hat angehängte Videos",
+ "status.in_reply_to": "Dieser Toot ist eine Antwort",
+ "status.is_poll": "Dieser Toot ist eine Umfrage",
+ "status.local_only": "Nur auf deiner Instanz sichtbar",
+ "status.sensitive_toggle": "Zum Anzeigen klicken",
+ "status.uncollapse": "Ausklappen",
+ "web_app_crash.change_your_settings": "Deine {settings} ändern",
+ "web_app_crash.content": "Du kannst folgende Dinge ausprobieren:",
+ "web_app_crash.debug_info": "Debug-Informationen",
+ "web_app_crash.disable_addons": "Browser-Add-ons oder eingebaute Ãbersetzungswerkzeuge deaktivieren",
+ "web_app_crash.issue_tracker": "Issue-Tracker",
+ "web_app_crash.reload": "neu laden",
+ "web_app_crash.reload_page": "Die Seite {reload}",
+ "web_app_crash.report_issue": "Einen Fehler im {issuetracker} melden",
+ "web_app_crash.settings": "Einstellungen",
+ "web_app_crash.title": "Es tut uns leid, aber mit der Mastodon-App ist etwas schiefgelaufen."
+}
diff --git a/app/javascript/flavours/glitch/locales/defaultMessages.json b/app/javascript/flavours/glitch/locales/defaultMessages.json
new file mode 100644
index 000000000..fe943f97f
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/defaultMessages.json
@@ -0,0 +1,1093 @@
+[
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "We're sorry, but something went wrong with the Mastodon app.",
+ "id": "web_app_crash.title"
+ },
+ {
+ "defaultMessage": "You could try any of the following:",
+ "id": "web_app_crash.content"
+ },
+ {
+ "defaultMessage": "Disable browser add-ons or built-in translation tools",
+ "id": "web_app_crash.disable_addons"
+ },
+ {
+ "defaultMessage": "Report a bug in the {issuetracker}",
+ "id": "web_app_crash.report_issue"
+ },
+ {
+ "defaultMessage": "issue tracker",
+ "id": "web_app_crash.issue_tracker"
+ },
+ {
+ "defaultMessage": "Debug information",
+ "id": "web_app_crash.debug_info"
+ },
+ {
+ "defaultMessage": "{reload} the current page",
+ "id": "web_app_crash.reload_page"
+ },
+ {
+ "defaultMessage": "Reload",
+ "id": "web_app_crash.reload"
+ },
+ {
+ "defaultMessage": "Change your {settings}",
+ "id": "web_app_crash.change_your_settings"
+ },
+ {
+ "defaultMessage": "settings",
+ "id": "web_app_crash.settings"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/components/error_boundary.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Sensitive",
+ "id": "media_gallery.sensitive"
+ },
+ {
+ "defaultMessage": "Click to view",
+ "id": "status.sensitive_toggle"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/components/media_gallery.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Select\nall",
+ "id": "notification_purge.btn_all"
+ },
+ {
+ "defaultMessage": "Select\nnone",
+ "id": "notification_purge.btn_none"
+ },
+ {
+ "defaultMessage": "Invert\nselection",
+ "id": "notification_purge.btn_invert"
+ },
+ {
+ "defaultMessage": "Clear\nselected",
+ "id": "notification_purge.btn_apply"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/components/notification_purge_buttons.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Collapse",
+ "id": "status.collapse"
+ },
+ {
+ "defaultMessage": "Uncollapse",
+ "id": "status.uncollapse"
+ },
+ {
+ "defaultMessage": "This toot is a reply",
+ "id": "status.in_reply_to"
+ },
+ {
+ "defaultMessage": "Features an attached preview card",
+ "id": "status.has_preview_card"
+ },
+ {
+ "defaultMessage": "Features attached pictures",
+ "id": "status.has_pictures"
+ },
+ {
+ "defaultMessage": "This toot is a poll",
+ "id": "status.is_poll"
+ },
+ {
+ "defaultMessage": "Features attached videos",
+ "id": "status.has_video"
+ },
+ {
+ "defaultMessage": "Features attached audio files",
+ "id": "status.has_audio"
+ },
+ {
+ "defaultMessage": "Only visible from your instance",
+ "id": "status.local_only"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/components/status_icons.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Are you sure you want to permanently clear all selected notifications?",
+ "id": "notifications.marked_clear_confirmation"
+ },
+ {
+ "defaultMessage": "Clear selected notifications",
+ "id": "notifications.marked_clear"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/containers/notification_purge_buttons_container.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Show",
+ "id": "confirmations.unfilter.confirm"
+ },
+ {
+ "defaultMessage": "Author",
+ "id": "confirmations.unfilter.author"
+ },
+ {
+ "defaultMessage": "Matching {count, plural, one {filter} other {filters}}",
+ "id": "confirmations.unfilter.filters"
+ },
+ {
+ "defaultMessage": "Edit filter",
+ "id": "confirmations.unfilter.edit_filter"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/containers/status_container.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Glitch-soc is free open source software forked from Mastodon.",
+ "id": "about.fork_disclaimer"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/about/index.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "No comment provided",
+ "id": "account_note.glitch_placeholder"
+ },
+ {
+ "defaultMessage": "Cancel",
+ "id": "account_note.cancel"
+ },
+ {
+ "defaultMessage": "Save",
+ "id": "account_note.save"
+ },
+ {
+ "defaultMessage": "Edit",
+ "id": "account_note.edit"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/account/components/account_note.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "This user has been suspended by a moderator.",
+ "id": "account.suspended_disclaimer_full"
+ },
+ {
+ "defaultMessage": "Information below may reflect the user's profile incompletely.",
+ "id": "account.disclaimer_full"
+ },
+ {
+ "defaultMessage": "View full profile",
+ "id": "account.view_full_profile"
+ },
+ {
+ "defaultMessage": "Follows",
+ "id": "account.follows"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/account/components/action_bar.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Add note for @{name}",
+ "id": "account.add_account_note"
+ },
+ {
+ "defaultMessage": "Joined {date}",
+ "id": "account.joined"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/account/components/header.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Profile",
+ "id": "column_header.profile"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/account/components/profile_column_header.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Filter out by regular expressions",
+ "id": "home.column_settings.filter_regex"
+ },
+ {
+ "defaultMessage": "Column settings",
+ "id": "home.settings"
+ },
+ {
+ "defaultMessage": "Advanced",
+ "id": "home.column_settings.advanced"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/community_timeline/components/column_settings.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "id": "confirmations.missing_media_description.message"
+ },
+ {
+ "defaultMessage": "Send anyway",
+ "id": "confirmations.missing_media_description.confirm"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/compose/components/compose_form.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "App settings",
+ "id": "navigation_bar.app_settings"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/compose/components/header.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Advanced options",
+ "id": "advanced_options.icon_title"
+ },
+ {
+ "defaultMessage": "Attach...",
+ "id": "compose.attach"
+ },
+ {
+ "defaultMessage": "Content type",
+ "id": "content-type.change"
+ },
+ {
+ "defaultMessage": "Draw something",
+ "id": "compose.attach.doodle"
+ },
+ {
+ "defaultMessage": "HTML",
+ "id": "compose.content-type.html"
+ },
+ {
+ "defaultMessage": "Do not post to other instances",
+ "id": "advanced_options.local-only.long"
+ },
+ {
+ "defaultMessage": "Local-only",
+ "id": "advanced_options.local-only.short"
+ },
+ {
+ "defaultMessage": "Markdown",
+ "id": "compose.content-type.markdown"
+ },
+ {
+ "defaultMessage": "Plain text",
+ "id": "compose.content-type.plain"
+ },
+ {
+ "defaultMessage": "Hide text behind warning",
+ "id": "compose_form.spoiler"
+ },
+ {
+ "defaultMessage": "Automatically opens a reply on posting",
+ "id": "advanced_options.threaded_mode.long"
+ },
+ {
+ "defaultMessage": "Threaded mode",
+ "id": "advanced_options.threaded_mode.short"
+ },
+ {
+ "defaultMessage": "Upload a file",
+ "id": "compose.attach.upload"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/compose/components/options.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Allow one choice",
+ "id": "compose_form.poll.single_choice"
+ },
+ {
+ "defaultMessage": "Allow multiple choices",
+ "id": "compose_form.poll.multiple_choices"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/compose/components/poll_form.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "id": "search_popout.tips.full_text"
+ },
+ {
+ "defaultMessage": "Simple text returns matching display names, usernames and hashtags",
+ "id": "search_popout.tips.text"
+ },
+ {
+ "defaultMessage": "Advanced search format",
+ "id": "search_popout.search_format"
+ },
+ {
+ "defaultMessage": "hashtag",
+ "id": "search_popout.tips.hashtag"
+ },
+ {
+ "defaultMessage": "user",
+ "id": "search_popout.tips.user"
+ },
+ {
+ "defaultMessage": "status",
+ "id": "search_popout.tips.status"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/compose/components/search.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "This post is local-only",
+ "id": "advanced_options.local-only.tooltip"
+ },
+ {
+ "defaultMessage": "Threaded mode enabled",
+ "id": "advanced_options.threaded_mode.tooltip"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/compose/components/textarea_icons.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "id": "confirmations.missing_media_description.message"
+ },
+ {
+ "defaultMessage": "Send anyway",
+ "id": "confirmations.missing_media_description.confirm"
+ },
+ {
+ "defaultMessage": "Edit media",
+ "id": "confirmations.missing_media_description.edit"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/compose/containers/compose_form_container.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Filter out by regular expressions",
+ "id": "home.column_settings.filter_regex"
+ },
+ {
+ "defaultMessage": "Column settings",
+ "id": "home.settings"
+ },
+ {
+ "defaultMessage": "Group by conversation",
+ "id": "direct.group_by_conversations"
+ },
+ {
+ "defaultMessage": "Advanced",
+ "id": "home.column_settings.advanced"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/direct_timeline/components/column_settings.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Favourited by",
+ "id": "column.favourited_by"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/favourites/index.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Misc",
+ "id": "column.heading"
+ },
+ {
+ "defaultMessage": "Miscellaneous options",
+ "id": "column.subheading"
+ },
+ {
+ "defaultMessage": "Show me around",
+ "id": "getting_started.onboarding"
+ },
+ {
+ "defaultMessage": "Keyboard shortcuts",
+ "id": "navigation_bar.keyboard_shortcuts"
+ },
+ {
+ "defaultMessage": "Featured users",
+ "id": "navigation_bar.featured_users"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/getting_started_misc/index.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Navigation",
+ "id": "column_subheading.navigation"
+ },
+ {
+ "defaultMessage": "App settings",
+ "id": "navigation_bar.app_settings"
+ },
+ {
+ "defaultMessage": "Keyboard shortcuts",
+ "id": "navigation_bar.keyboard_shortcuts"
+ },
+ {
+ "defaultMessage": "Lists",
+ "id": "column_subheading.lists"
+ },
+ {
+ "defaultMessage": "Misc",
+ "id": "navigation_bar.misc"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/getting_started/index.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Filter out by regular expressions",
+ "id": "home.column_settings.filter_regex"
+ },
+ {
+ "defaultMessage": "Column settings",
+ "id": "home.settings"
+ },
+ {
+ "defaultMessage": "Show DMs",
+ "id": "home.column_settings.show_direct"
+ },
+ {
+ "defaultMessage": "Advanced",
+ "id": "home.column_settings.advanced"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/home_timeline/components/column_settings.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "to bookmark",
+ "id": "keyboard_shortcuts.bookmark"
+ },
+ {
+ "defaultMessage": "to collapse/uncollapse toots",
+ "id": "keyboard_shortcuts.toggle_collapse"
+ },
+ {
+ "defaultMessage": "to send toot using secondary privacy setting",
+ "id": "keyboard_shortcuts.secondary_toot"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/keyboard_shortcuts/index.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "General",
+ "id": "settings.general"
+ },
+ {
+ "defaultMessage": "Compose box",
+ "id": "settings.compose_box_opts"
+ },
+ {
+ "defaultMessage": "Content Warnings",
+ "id": "settings.content_warnings"
+ },
+ {
+ "defaultMessage": "Collapsed toots",
+ "id": "settings.collapsed_statuses"
+ },
+ {
+ "defaultMessage": "Media",
+ "id": "settings.media"
+ },
+ {
+ "defaultMessage": "Preferences",
+ "id": "settings.preferences"
+ },
+ {
+ "defaultMessage": "Close",
+ "id": "settings.close"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/local_settings/navigation/index.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Auto",
+ "id": "layout.auto"
+ },
+ {
+ "defaultMessage": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "id": "layout.hint.auto"
+ },
+ {
+ "defaultMessage": "Desktop",
+ "id": "layout.desktop"
+ },
+ {
+ "defaultMessage": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "id": "layout.hint.desktop"
+ },
+ {
+ "defaultMessage": "Mobile",
+ "id": "layout.single"
+ },
+ {
+ "defaultMessage": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "id": "layout.hint.single"
+ },
+ {
+ "defaultMessage": "None",
+ "id": "settings.side_arm.none"
+ },
+ {
+ "defaultMessage": "Keep its set privacy",
+ "id": "settings.side_arm_reply_mode.keep"
+ },
+ {
+ "defaultMessage": "Copy privacy setting of the toot being replied to",
+ "id": "settings.side_arm_reply_mode.copy"
+ },
+ {
+ "defaultMessage": "Restrict privacy setting to that of the toot being replied to",
+ "id": "settings.side_arm_reply_mode.restrict"
+ },
+ {
+ "defaultMessage": "Regular expression",
+ "id": "settings.content_warnings.regexp"
+ },
+ {
+ "defaultMessage": "Do not rewrite mentions",
+ "id": "settings.rewrite_mentions_no"
+ },
+ {
+ "defaultMessage": "Rewrite with username and domain (when the account is remote)",
+ "id": "settings.rewrite_mentions_acct"
+ },
+ {
+ "defaultMessage": "Rewrite with username",
+ "id": "settings.rewrite_mentions_username"
+ },
+ {
+ "defaultMessage": "Left",
+ "id": "settings.pop_in_left"
+ },
+ {
+ "defaultMessage": "Right",
+ "id": "settings.pop_in_right"
+ },
+ {
+ "defaultMessage": "General",
+ "id": "settings.general"
+ },
+ {
+ "defaultMessage": "Display an estimate of the reply count",
+ "id": "settings.show_reply_counter"
+ },
+ {
+ "defaultMessage": "High color privacy icons",
+ "id": "settings.hicolor_privacy_icons"
+ },
+ {
+ "defaultMessage": "Display privacy icons in bright and easily distinguishable colors",
+ "id": "settings.hicolor_privacy_icons.hint"
+ },
+ {
+ "defaultMessage": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "id": "settings.confirm_boost_missing_media_description"
+ },
+ {
+ "defaultMessage": "Tag misleading links",
+ "id": "settings.tag_misleading_links"
+ },
+ {
+ "defaultMessage": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "id": "settings.tag_misleading_links.hint"
+ },
+ {
+ "defaultMessage": "Rewrite mentions in displayed statuses",
+ "id": "settings.rewrite_mentions"
+ },
+ {
+ "defaultMessage": "Notifications options",
+ "id": "settings.notifications_opts"
+ },
+ {
+ "defaultMessage": "Unread notifications badge",
+ "id": "settings.notifications.tab_badge"
+ },
+ {
+ "defaultMessage": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "id": "settings.notifications.tab_badge.hint"
+ },
+ {
+ "defaultMessage": "Unread notifications favicon badge",
+ "id": "settings.notifications.favicon_badge"
+ },
+ {
+ "defaultMessage": "Add a badge for unread notifications to the favicon",
+ "id": "settings.notifications.favicon_badge.hint"
+ },
+ {
+ "defaultMessage": "Toot icons",
+ "id": "settings.status_icons"
+ },
+ {
+ "defaultMessage": "Language indicator",
+ "id": "settings.status_icons_language"
+ },
+ {
+ "defaultMessage": "Reply indicator",
+ "id": "settings.status_icons_reply"
+ },
+ {
+ "defaultMessage": "Local-only indicator",
+ "id": "settings.status_icons_local_only"
+ },
+ {
+ "defaultMessage": "Media and poll indicators",
+ "id": "settings.status_icons_media"
+ },
+ {
+ "defaultMessage": "Toot privacy indicator",
+ "id": "settings.status_icons_visibility"
+ },
+ {
+ "defaultMessage": "Layout options",
+ "id": "settings.layout_opts"
+ },
+ {
+ "defaultMessage": "Layout:",
+ "id": "settings.layout"
+ },
+ {
+ "defaultMessage": "Wide view (Desktop mode only)",
+ "id": "settings.wide_view"
+ },
+ {
+ "defaultMessage": "Stretches columns to better fill the available space.",
+ "id": "settings.wide_view_hint"
+ },
+ {
+ "defaultMessage": "Compose box",
+ "id": "settings.compose_box_opts"
+ },
+ {
+ "defaultMessage": "Always enable the Content Warning field",
+ "id": "settings.always_show_spoilers_field"
+ },
+ {
+ "defaultMessage": "Prepend âre: â to content warnings when replying",
+ "id": "settings.prepend_cw_re"
+ },
+ {
+ "defaultMessage": "Pre-select usernames on reply",
+ "id": "settings.preselect_on_reply"
+ },
+ {
+ "defaultMessage": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "id": "settings.preselect_on_reply_hint"
+ },
+ {
+ "defaultMessage": "Show confirmation dialog before sending toots lacking media descriptions",
+ "id": "settings.confirm_missing_media_description"
+ },
+ {
+ "defaultMessage": "Show confirmation dialog before overwriting the message being composed",
+ "id": "settings.confirm_before_clearing_draft"
+ },
+ {
+ "defaultMessage": "Show content-type choice when authoring toots",
+ "id": "settings.show_content_type_choice"
+ },
+ {
+ "defaultMessage": "Secondary toot button:",
+ "id": "settings.side_arm"
+ },
+ {
+ "defaultMessage": "When replying to a toot, the secondary toot button should:",
+ "id": "settings.side_arm_reply_mode"
+ },
+ {
+ "defaultMessage": "Content warnings",
+ "id": "settings.content_warnings"
+ },
+ {
+ "defaultMessage": "Show/hide content of all copies at once",
+ "id": "settings.content_warnings_shared_state"
+ },
+ {
+ "defaultMessage": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "id": "settings.content_warnings_shared_state_hint"
+ },
+ {
+ "defaultMessage": "Display media attachments outside content warnings",
+ "id": "settings.content_warnings_media_outside"
+ },
+ {
+ "defaultMessage": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "id": "settings.content_warnings_media_outside_hint"
+ },
+ {
+ "defaultMessage": "Auto-unfolding options",
+ "id": "settings.content_warnings_unfold_opts"
+ },
+ {
+ "defaultMessage": "Automatically unfold content-warnings",
+ "id": "settings.enable_content_warnings_auto_unfold"
+ },
+ {
+ "defaultMessage": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "id": "settings.deprecated_setting"
+ },
+ {
+ "defaultMessage": "user preferences",
+ "id": "settings.shared_settings_link"
+ },
+ {
+ "defaultMessage": "Content warnings to not automatically unfold:",
+ "id": "settings.content_warnings_filter"
+ },
+ {
+ "defaultMessage": "Collapsed toots",
+ "id": "settings.collapsed_statuses"
+ },
+ {
+ "defaultMessage": "Enable collapsed toots",
+ "id": "settings.enable_collapsed"
+ },
+ {
+ "defaultMessage": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "id": "settings.enable_collapsed_hint"
+ },
+ {
+ "defaultMessage": "Show action buttons in collapsed toots",
+ "id": "settings.show_action_bar"
+ },
+ {
+ "defaultMessage": "Automatic collapsing",
+ "id": "settings.auto_collapse"
+ },
+ {
+ "defaultMessage": "Everything",
+ "id": "settings.auto_collapse_all"
+ },
+ {
+ "defaultMessage": "Notifications",
+ "id": "settings.auto_collapse_notifications"
+ },
+ {
+ "defaultMessage": "Lengthy toots",
+ "id": "settings.auto_collapse_lengthy"
+ },
+ {
+ "defaultMessage": "Boosts",
+ "id": "settings.auto_collapse_reblogs"
+ },
+ {
+ "defaultMessage": "Replies",
+ "id": "settings.auto_collapse_replies"
+ },
+ {
+ "defaultMessage": "Toots with media",
+ "id": "settings.auto_collapse_media"
+ },
+ {
+ "defaultMessage": "Height (in pixels) for a toot to be considered lengthy",
+ "id": "settings.auto_collapse_height"
+ },
+ {
+ "defaultMessage": "Image backgrounds",
+ "id": "settings.image_backgrounds"
+ },
+ {
+ "defaultMessage": "Give collapsed toots an image background",
+ "id": "settings.image_backgrounds_users"
+ },
+ {
+ "defaultMessage": "Preview collapsed toot media",
+ "id": "settings.image_backgrounds_media"
+ },
+ {
+ "defaultMessage": "If the post has any media attachment, use the first one as a background",
+ "id": "settings.image_backgrounds_media_hint"
+ },
+ {
+ "defaultMessage": "Media",
+ "id": "settings.media"
+ },
+ {
+ "defaultMessage": "Letterbox media",
+ "id": "settings.media_letterbox"
+ },
+ {
+ "defaultMessage": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "id": "settings.media_letterbox_hint"
+ },
+ {
+ "defaultMessage": "Full-width media previews",
+ "id": "settings.media_fullwidth"
+ },
+ {
+ "defaultMessage": "Inline preview cards for external links",
+ "id": "settings.inline_preview_cards"
+ },
+ {
+ "defaultMessage": "Reveal sensitive media behind a CW by default",
+ "id": "settings.media_reveal_behind_cw"
+ },
+ {
+ "defaultMessage": "Enable pop-in player",
+ "id": "settings.pop_in_player"
+ },
+ {
+ "defaultMessage": "Pop-in player position:",
+ "id": "settings.pop_in_position"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/local_settings/page/index.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Mark for deletion",
+ "id": "notification.markForDeletion"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/notifications/components/overlay.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Enter notification cleaning mode",
+ "id": "notification_purge.start"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/notifications/index.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Featured accounts",
+ "id": "endorsed_accounts_editor.endorsed_accounts"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/pinned_accounts_editor/index.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Filter out by regular expressions",
+ "id": "home.column_settings.filter_regex"
+ },
+ {
+ "defaultMessage": "Show local-only toots",
+ "id": "community.column_settings.allow_local_only"
+ },
+ {
+ "defaultMessage": "Advanced",
+ "id": "home.column_settings.advanced"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/public_timeline/components/column_settings.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Boosted by",
+ "id": "column.reblogged_by"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/reblogs/index.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "This toot contains some media without description",
+ "id": "boost_modal.missing_description"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/ui/components/boost_modal.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Do not ask for confirmation again",
+ "id": "confirmation_modal.do_not_ask_again"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/ui/components/confirmation_modal.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Use Mastodon preferences",
+ "id": "confirmations.deprecated_settings.confirm"
+ },
+ {
+ "defaultMessage": "Automatically unfold content-warnings",
+ "id": "settings.enable_content_warnings_auto_unfold"
+ },
+ {
+ "defaultMessage": "Allow swiping to change columns (Mobile only)",
+ "id": "settings.swipe_to_change_columns"
+ },
+ {
+ "defaultMessage": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "id": "confirmations.deprecated_settings.message"
+ },
+ {
+ "defaultMessage": "App settings",
+ "id": "navigation_bar.app_settings"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/ui/components/deprecated_settings_modal.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "You can press {combo} to skip this next time",
+ "id": "favourite_modal.combo"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/ui/components/favourite_modal.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "App settings",
+ "id": "navigation_bar.app_settings"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/ui/components/navigation_panel.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "Welcome to {domain}!",
+ "id": "onboarding.page_one.welcome"
+ },
+ {
+ "defaultMessage": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "id": "onboarding.page_one.federation"
+ },
+ {
+ "defaultMessage": "You are on {domain}, so your full handle is {handle}",
+ "id": "onboarding.page_one.handle"
+ },
+ {
+ "defaultMessage": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "id": "onboarding.page_two.compose"
+ },
+ {
+ "defaultMessage": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "id": "onboarding.page_three.search"
+ },
+ {
+ "defaultMessage": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "id": "onboarding.page_three.profile"
+ },
+ {
+ "defaultMessage": "The home timeline shows posts from people you follow.",
+ "id": "onboarding.page_four.home"
+ },
+ {
+ "defaultMessage": "The notifications column shows when someone interacts with you.",
+ "id": "onboarding.page_four.notifications"
+ },
+ {
+ "defaultMessage": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "id": "onboarding.page_five.public_timelines"
+ },
+ {
+ "defaultMessage": "Your instance's admin is {admin}.",
+ "id": "onboarding.page_six.admin"
+ },
+ {
+ "defaultMessage": "Please read {domain}'s {guidelines}!",
+ "id": "onboarding.page_six.read_guidelines"
+ },
+ {
+ "defaultMessage": "community guidelines",
+ "id": "onboarding.page_six.guidelines"
+ },
+ {
+ "defaultMessage": "Almost done...",
+ "id": "onboarding.page_six.almost_done"
+ },
+ {
+ "defaultMessage": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "id": "onboarding.page_six.github"
+ },
+ {
+ "defaultMessage": "There are {apps} available for iOS, Android and other platforms.",
+ "id": "onboarding.page_six.apps_available"
+ },
+ {
+ "defaultMessage": "mobile apps",
+ "id": "onboarding.page_six.various_app"
+ },
+ {
+ "defaultMessage": "Bon Appetoot!",
+ "id": "onboarding.page_six.appetoot"
+ },
+ {
+ "defaultMessage": "Next",
+ "id": "onboarding.next"
+ },
+ {
+ "defaultMessage": "Done",
+ "id": "onboarding.done"
+ },
+ {
+ "defaultMessage": "Skip",
+ "id": "onboarding.skip"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/ui/components/onboarding_modal.json"
+ },
+ {
+ "descriptors": [
+ {
+ "defaultMessage": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "id": "moved_to_warning"
+ }
+ ],
+ "path": "app/javascript/flavours/glitch/features/ui/index.json"
+ }
+]
\ No newline at end of file
diff --git a/app/javascript/flavours/glitch/locales/el.js b/app/javascript/flavours/glitch/locales/el.js
deleted file mode 100644
index 2d9bb829f..000000000
--- a/app/javascript/flavours/glitch/locales/el.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/el.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/el.json b/app/javascript/flavours/glitch/locales/el.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/el.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/en-GB.json b/app/javascript/flavours/glitch/locales/en-GB.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/en-GB.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/en.js b/app/javascript/flavours/glitch/locales/en.js
deleted file mode 100644
index 90e924d4a..000000000
--- a/app/javascript/flavours/glitch/locales/en.js
+++ /dev/null
@@ -1,67 +0,0 @@
-import inherited from 'mastodon/locales/en.json';
-
-const messages = {
- 'getting_started.open_source_notice': 'Glitchsoc is free open source software forked from {Mastodon}. You can contribute or report issues on GitHub at {github}.',
- 'layout.auto': 'Auto',
- 'layout.current_is': 'Your current layout is:',
- 'layout.desktop': 'Desktop',
- 'layout.mobile': 'Mobile',
- 'navigation_bar.app_settings': 'App settings',
- 'getting_started.onboarding': 'Show me around',
- 'onboarding.page_one.federation': '{domain} is an \'instance\' of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.',
- 'onboarding.page_one.welcome': 'Welcome to {domain}!',
- 'onboarding.page_six.github': '{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.',
- 'settings.auto_collapse': 'Automatic collapsing',
- 'settings.auto_collapse_all': 'Everything',
- 'settings.auto_collapse_lengthy': 'Lengthy toots',
- 'settings.auto_collapse_media': 'Toots with media',
- 'settings.auto_collapse_notifications': 'Notifications',
- 'settings.auto_collapse_reblogs': 'Boosts',
- 'settings.auto_collapse_replies': 'Replies',
- 'settings.show_action_bar': 'Show action buttons in collapsed toots',
- 'settings.close': 'Close',
- 'settings.collapsed_statuses': 'Collapsed toots',
- 'settings.enable_collapsed': 'Enable collapsed toots',
- 'settings.general': 'General',
- 'settings.image_backgrounds': 'Image backgrounds',
- 'settings.image_backgrounds_media': 'Preview collapsed toot media',
- 'settings.image_backgrounds_users': 'Give collapsed toots an image background',
- 'settings.media': 'Media',
- 'settings.media_letterbox': 'Letterbox media',
- 'settings.media_fullwidth': 'Full-width media previews',
- 'settings.preferences': 'User preferences',
- 'settings.wide_view': 'Wide view (Desktop mode only)',
- 'settings.navbar_under': 'Navbar at the bottom (Mobile only)',
- 'status.collapse': 'Collapse',
- 'status.uncollapse': 'Uncollapse',
-
- 'media_gallery.sensitive': 'Sensitive',
-
- 'favourite_modal.combo': 'You can press {combo} to skip this next time',
-
- 'home.column_settings.show_direct': 'Show DMs',
-
- 'notification.markForDeletion': 'Mark for deletion',
- 'notifications.clear': 'Clear all my notifications',
- 'notifications.marked_clear_confirmation': 'Are you sure you want to permanently clear all selected notifications?',
- 'notifications.marked_clear': 'Clear selected notifications',
-
- 'notification_purge.btn_all': 'Select\nall',
- 'notification_purge.btn_none': 'Select\nnone',
- 'notification_purge.btn_invert': 'Invert\nselection',
- 'notification_purge.btn_apply': 'Clear\nselected',
-
- 'compose.attach.upload': 'Upload a file',
- 'compose.attach.doodle': 'Draw something',
- 'compose.attach': 'Attach...',
-
- 'advanced_options.local-only.short': 'Local-only',
- 'advanced_options.local-only.long': 'Do not post to other instances',
- 'advanced_options.local-only.tooltip': 'This post is local-only',
- 'advanced_options.icon_title': 'Advanced options',
- 'advanced_options.threaded_mode.short': 'Threaded mode',
- 'advanced_options.threaded_mode.long': 'Automatically opens a reply on posting',
- 'advanced_options.threaded_mode.tooltip': 'Threaded mode enabled',
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/en.json b/app/javascript/flavours/glitch/locales/en.json
new file mode 100644
index 000000000..81d88ca65
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/en.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an 'instance' of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}, and is compatible with any Mastodon instance or app. Glitchsoc is entirely free and open-source. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content Warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "User preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/eo.js b/app/javascript/flavours/glitch/locales/eo.js
deleted file mode 100644
index 04192f506..000000000
--- a/app/javascript/flavours/glitch/locales/eo.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/eo.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/eo.json b/app/javascript/flavours/glitch/locales/eo.json
new file mode 100644
index 000000000..88396f186
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/eo.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Aldoni noton por @{name}",
+ "account.disclaimer_full": "Subaj informoj povas nekomplete prezenti la profilon de la uzanto.",
+ "account.follows": "Sekvatoj",
+ "account.joined": "KuniÄis {date}",
+ "account.suspended_disclaimer_full": "Äi tiu uzanto estis suspendita de moderiganto.",
+ "account.view_full_profile": "Vidi plenan profilon",
+ "account_note.cancel": "Nuligi",
+ "account_note.edit": "Redakti",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Konservi",
+ "advanced_options.icon_title": "Pliaj opcioj",
+ "advanced_options.local-only.long": "Ne afiÅi al aliaj instancoj",
+ "advanced_options.local-only.short": "Nur loka",
+ "advanced_options.local-only.tooltip": "Äi tiu afiÅo estas nur-loka",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Stelumita per",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Diskonigita de",
+ "column.subheading": "Diversaj agordoj",
+ "column_header.profile": "Profilo",
+ "column_subheading.lists": "Listoj",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Montri nur-lokajn afiÅojn",
+ "compose.attach": "AldoniâĻ",
+ "compose.attach.doodle": "Desegni ion",
+ "compose.attach.upload": "AlÅuti dosieron",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plata teksto",
+ "compose_form.poll.multiple_choices": "Permesi multajn elekteblojn",
+ "compose_form.poll.single_choice": "Permesi unu elekteblon",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "AÅtoro",
+ "confirmations.unfilter.confirm": "Montri",
+ "confirmations.unfilter.edit_filter": "Redakti filtrilon",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Fulmoklavoj",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Selekti Äiujn",
+ "notification_purge.btn_apply": "Forigi selektajn",
+ "notification_purge.btn_invert": "Inverti selekton",
+ "notification_purge.btn_none": "Elekti neniun",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Forigi selektajn sciigojn",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Sekva",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} estas \"instanco\" de Mastodon. Mastodon estas reto de sendependaj serviloj, ke kuniÄas por fari unu pli grandan socian reton. Ni nomas tiujn servilojn \"instancoj\".",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "La administranto de via instanco estas {admin}.",
+ "onboarding.page_six.almost_done": "PreskaÅ finitaâĻ",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "Estas {apps} disponeblaj por iOS, Android kaj aliaj sistemoj.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "poÅtelefonaj aplikaÄĩoj",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Äiuj",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Longaj afiÅoj",
+ "settings.auto_collapse_media": "AfiÅoj kun aÅdovidaÄĩoj",
+ "settings.auto_collapse_notifications": "Sciigoj",
+ "settings.auto_collapse_reblogs": "Diskonigoj",
+ "settings.auto_collapse_replies": "Respondoj",
+ "settings.close": "Fermi",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regula esprimo",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "preferoj de uzanto",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Duaranga butono por afiÅi:",
+ "settings.side_arm.none": "Neniu",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Ikonoj sur la afiÅoj",
+ "settings.status_icons_language": "Indikilo de lingvo",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Indikilo de aÅdovidaÄĩojn kaj balotenketo",
+ "settings.status_icons_reply": "Indikilo de respondoj",
+ "settings.status_icons_visibility": "Indikilo de privateco de afiÅo",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Videbla nur el via instanco",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "ÅanÄi viajn {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "ReÅarÄi",
+ "web_app_crash.reload_page": "{reload} la nunan paÄon",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "agordojn",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/es-AR.js b/app/javascript/flavours/glitch/locales/es-AR.js
deleted file mode 100644
index 0dffabcd4..000000000
--- a/app/javascript/flavours/glitch/locales/es-AR.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/es-AR.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/es-AR.json b/app/javascript/flavours/glitch/locales/es-AR.json
new file mode 100644
index 000000000..a802363f5
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/es-AR.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc es software gratuito, de cÃŗdigo abierto, bifurcado de Mastodon.",
+ "account.add_account_note": "AÃąadir nota para @{name}",
+ "account.disclaimer_full": "La informaciÃŗn aquà presentada puede reflejar de manera incompleta el perfil del usuario.",
+ "account.follows": "Sigue",
+ "account.joined": "Unido el {date}",
+ "account.suspended_disclaimer_full": "Este usuario ha sido suspendido por un moderador.",
+ "account.view_full_profile": "Ver perfil completo",
+ "account_note.cancel": "Cancelar",
+ "account_note.edit": "Editar",
+ "account_note.glitch_placeholder": "No se proporcionÃŗ comentario alguno",
+ "account_note.save": "Guardar",
+ "advanced_options.icon_title": "Opciones avanzadas",
+ "advanced_options.local-only.long": "No publicar a otras instancias",
+ "advanced_options.local-only.short": "Local",
+ "advanced_options.local-only.tooltip": "Este toot es local",
+ "advanced_options.threaded_mode.long": "Al publicar abre automÃĄticamente una respuesta",
+ "advanced_options.threaded_mode.short": "Modo hilo",
+ "advanced_options.threaded_mode.tooltip": "Modo hilo habilitado",
+ "boost_modal.missing_description": "Esta publicaciÃŗn contiene medios sin descripciÃŗn",
+ "column.favourited_by": "Marcado como favorito por",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Impulsado por",
+ "column.subheading": "Opciones miscelÃĄneas",
+ "column_header.profile": "Perfil",
+ "column_subheading.lists": "Listas",
+ "column_subheading.navigation": "NavegaciÃŗn",
+ "community.column_settings.allow_local_only": "Mostrar sÃŗlo toots locales",
+ "compose.attach": "Adjuntar...",
+ "compose.attach.doodle": "Dibujar algo",
+ "compose.attach.upload": "Subir un archivo",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Texto plano",
+ "compose_form.poll.multiple_choices": "Permitir mÃēltiples opciones",
+ "compose_form.poll.single_choice": "Permitir sÃŗlo una opciÃŗn",
+ "compose_form.spoiler": "Esconder el texto detrÃĄs de la advertencia",
+ "confirmation_modal.do_not_ask_again": "No preguntar por la confirmaciÃŗn de nuevo",
+ "confirmations.deprecated_settings.confirm": "Usar las preferencias de Mastodon",
+ "confirmations.deprecated_settings.message": "Algunas de las {app_settings} de glitch-soc, especÃficas para el dispositivo que estÃĄs usando han sido reemplazadas en las {preferences} de Mastodon y serÃĄn sobreescritas:",
+ "confirmations.missing_media_description.confirm": "Enviar de todos modos",
+ "confirmations.missing_media_description.edit": "Editar medios",
+ "confirmations.missing_media_description.message": "Al menos a un adjunto le falta una descripciÃŗn. Considera describir toda la multimedia para los dÊbiles visuales antes de mandar el toot.",
+ "confirmations.unfilter.author": "Publicado por",
+ "confirmations.unfilter.confirm": "Mostrar",
+ "confirmations.unfilter.edit_filter": "Editar filtro",
+ "confirmations.unfilter.filters": "Coincidencia con {count, plural, one {filtro} other {filtros}}",
+ "content-type.change": "Tipo de contenido",
+ "direct.group_by_conversations": "Agrupar por conversaciÃŗn",
+ "endorsed_accounts_editor.endorsed_accounts": "Cuentas destacadas",
+ "favourite_modal.combo": "Puedes presionar {combo} para omitir esto la prÃŗxima vez",
+ "getting_started.onboarding": "Paseo inicial",
+ "home.column_settings.advanced": "Avanzado",
+ "home.column_settings.filter_regex": "Filtrar por expresiones regulares",
+ "home.column_settings.show_direct": "Mostrar mensajes directos",
+ "home.settings": "Configuraciones de columna",
+ "keyboard_shortcuts.bookmark": "a marcadores",
+ "keyboard_shortcuts.secondary_toot": "para enviar un toot usando lac onfiguraciÃŗn de privacidad secundaria",
+ "keyboard_shortcuts.toggle_collapse": "para colapsar/descolapsar toots",
+ "layout.auto": "AutomÃĄtico",
+ "layout.desktop": "Escritorio",
+ "layout.hint.auto": "Seleccionar un diseÃąo automÃĄticamente basado en \"Habilitar interface web avanzada\" y tamaÃąo de pantalla",
+ "layout.hint.desktop": "Utiliza el diseÃąo multi-columna sin importar \"Habilitar interface web avanzada\" o tamaÃąo de pantalla",
+ "layout.hint.single": "Utiliza el diseÃąo de una columna sin importar \"Habilitar interface web avanzada\" o tamaÃąo de pantalla",
+ "layout.single": "MÃŗvil",
+ "media_gallery.sensitive": "Sensible",
+ "moved_to_warning": "Esta cuenta estÃĄ marcada como movida a {moved_to_link}, y por lo tanto no aceptarÃĄ nuevos seguimientos.",
+ "navigation_bar.app_settings": "Ajustes de aplicaciÃŗn",
+ "navigation_bar.featured_users": "Usuarios destacados",
+ "navigation_bar.keyboard_shortcuts": "Atajos de teclado",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Marcar para borrar",
+ "notification_purge.btn_all": "Seleccionar\ntodo",
+ "notification_purge.btn_apply": "Borrar\nselecciÃŗn",
+ "notification_purge.btn_invert": "Invertir\nselecciÃŗn",
+ "notification_purge.btn_none": "Seleccionar\nnada",
+ "notification_purge.start": "Entrar en modo de limpieza de notificaciones",
+ "notifications.marked_clear": "Limpiar notificaciones seleccionadas",
+ "notifications.marked_clear_confirmation": "ÂŋDeseas borrar permanentemente todas las notificaciones seleccionadas?",
+ "onboarding.done": "Hecho",
+ "onboarding.next": "Siguiente",
+ "onboarding.page_five.public_timelines": "La lÃnea de tiempo local muestra mensajes pÃēblicos de todos en {domain}. La lÃnea de tiempo federada muestra mensajes pÃēblicos de todos aquellos que en {domain} siguen a otros servidores. Estas son las lÃneas cronolÃŗgicas pÃēblicas, una gran manera de descubrir gente nueva.",
+ "onboarding.page_four.home": "La lÃnea de tiempo principal muestra los mensajes de la gente que sigues.",
+ "onboarding.page_four.notifications": "La columna de notificaciones muestra cuando alguien interactÃēa contigo.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "EstÃĄs en {domain}, asà que tu alias completo es {handle}",
+ "onboarding.page_one.welcome": "ÂĄBienvenidx a {domain}!",
+ "onboarding.page_six.admin": "El administrador de tu instancia es {admin}.",
+ "onboarding.page_six.almost_done": "Casi listo...",
+ "onboarding.page_six.appetoot": "ÂĄA tootear!",
+ "onboarding.page_six.apps_available": "Hay {apps} disponibles para iOS, Android y otras plataformas.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "normas de la comunidad",
+ "onboarding.page_six.read_guidelines": "ÂĄPor favor lee las {guidelines} de {domain}!",
+ "onboarding.page_six.various_app": "aplicaciones para mÃŗviles",
+ "onboarding.page_three.profile": "Edita tu perfil para cambiar tu avatar, biografÃa y nombre para mostrar. AhÃ, tambiÊn encontrarÃĄs otras preferencias.",
+ "onboarding.page_three.search": "Usa la barra de bÃēsqueda para encontrar gente y mirar las etiquetas (hashtags), como {illustration} y {introductions}. Para buscar a una persona que no estÊ en esta instancia, utiliza su alias completo.",
+ "onboarding.page_two.compose": "Escribe mensajes desde la columna de composiciÃŗn. Puedes subir imÃĄgenes, cambiar la configuraciÃŗn de privacidad y aÃąadir advertencias de contenido con los iconos de abajo.",
+ "onboarding.skip": "Saltar",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Siempre mostrar el campo de advertencia de contenido",
+ "settings.auto_collapse": "Colapsar automÃĄticamente",
+ "settings.auto_collapse_all": "Todo",
+ "settings.auto_collapse_height": "Altura (en pixeles) para que un toot sea considerado largo",
+ "settings.auto_collapse_lengthy": "Toots largos",
+ "settings.auto_collapse_media": "Toots con medios",
+ "settings.auto_collapse_notifications": "Notificaciones",
+ "settings.auto_collapse_reblogs": "Retoots",
+ "settings.auto_collapse_replies": "Respuestas",
+ "settings.close": "Cerrar",
+ "settings.collapsed_statuses": "Toots colapsados",
+ "settings.compose_box_opts": "Cuadro de redacciÃŗn",
+ "settings.confirm_before_clearing_draft": "Mostrar diÃĄlogo de confirmaciÃŗn antes de sobreescribir un mensaje estabas escribiendo",
+ "settings.confirm_boost_missing_media_description": "Mostrar diÃĄlogo de confirmaciÃŗn antes de retootear publicaciones con medios sin descripciÃŗn",
+ "settings.confirm_missing_media_description": "Mostrar diÃĄlogo de confirmaciÃŗn antes de publicar toots con medios sin descripciÃŗn",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regexp (expresiÃŗn regular)",
+ "settings.content_warnings_filter": "No descolapsar estas advertencias de contenido:",
+ "settings.content_warnings_media_outside": "Mostrar archivos adjuntos fuera de las advertencias de contenido",
+ "settings.content_warnings_media_outside_hint": "Reproduce el comportamiento normal de Mastodon teniendo al tener el interruptor de advertencia de contenido activado, no afectando los archivos adjuntos",
+ "settings.content_warnings_shared_state": "Mostrar/ocultar el contenido de todas las copias a la vez",
+ "settings.content_warnings_shared_state_hint": "Reproduce el comportamiento normal de Mastodon al hacer que el botÃŗn Advertencia de contenido afecte a todas las copias de un mensaje a la vez. Esto evitarÃĄ el colapso automÃĄtico de cualquier copia de un toot con CW desplegado",
+ "settings.content_warnings_unfold_opts": "Opciones de Auto-desplegado",
+ "settings.deprecated_setting": "Esta configuraciÃŗn ahora estÃĄ controlada desde {settings_page_link} de Mastodon",
+ "settings.enable_collapsed": "Habilitar toots colapsados",
+ "settings.enable_collapsed_hint": "Las publicaciones colapsadas tienen partes de su contenido ocultas para ocupar menos espacio en pantalla. Esto es distinto de la funciÃŗn Advertencia de Contenido",
+ "settings.enable_content_warnings_auto_unfold": "Descolapsar automÃĄticamente advertencias de contenido",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "Ãconos de privacidad mÃĄs visibles",
+ "settings.hicolor_privacy_icons.hint": "Mostrar iconos de privacidad en colores brillantes y fÃĄcilmente distinguibles",
+ "settings.image_backgrounds": "Fondos de imÃĄgenes",
+ "settings.image_backgrounds_media": "Vista previa de medios de toots colapsados",
+ "settings.image_backgrounds_media_hint": "Si la publicaciÃŗn tiene algÃēn archivo adjunto, utilice el primero como fondo",
+ "settings.image_backgrounds_users": "Darle fondo de imagen a toots colapsados",
+ "settings.inline_preview_cards": "Vista previa para enlaces externos",
+ "settings.layout": "DiseÃąo",
+ "settings.layout_opts": "Opciones de diseÃąo",
+ "settings.media": "Medios",
+ "settings.media_fullwidth": "Ancho completo al mostrar medios ",
+ "settings.media_letterbox": "Mantener proporciones al mostrar medios",
+ "settings.media_letterbox_hint": "Escalar medios para que llenen el espacio del contenedor sin cambiar sus proporciones sin recortarlos",
+ "settings.media_reveal_behind_cw": "Siempre mostrar medios sensibles dentro de las advertencias de contenido",
+ "settings.notifications.favicon_badge": "Marcador de notificaciones en el favicon",
+ "settings.notifications.favicon_badge.hint": "Muestra un marcador de notificaciones sin leer en el favicon",
+ "settings.notifications.tab_badge": "Marcador de notificaciones no leÃdas",
+ "settings.notifications.tab_badge.hint": "Muestra un marcador de notificaciones sin leer en el Ãcono de notificaciones cuando dicha columna no estÃĄ abierta",
+ "settings.notifications_opts": "Opciones de notificaciones",
+ "settings.pop_in_left": "Izquierda",
+ "settings.pop_in_player": "Habilitar reproductor emergente",
+ "settings.pop_in_position": "PosiciÃŗn del reproductor:",
+ "settings.pop_in_right": "Derecha",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Anteponer \"re: \" a las advertencias de contenido al responder",
+ "settings.preselect_on_reply": "Preseleccionar nombres de usuarix al responder",
+ "settings.preselect_on_reply_hint": "Al responder a conversaciones con mÃēltiples participantes, preselecciona los nombres de usuarix subsecuentes del/la primerx",
+ "settings.rewrite_mentions": "Reescribir menciones in publicaciones mostradas",
+ "settings.rewrite_mentions_acct": "Reescribir con nombre de usuarix y dominio (para cuentas remotas)",
+ "settings.rewrite_mentions_no": "No reescribir menciones",
+ "settings.rewrite_mentions_username": "Reescribir con nombre de usuarix",
+ "settings.shared_settings_link": "preferencias de usuario",
+ "settings.show_action_bar": "Mostrar botones de acciÃŗn en toots colapsados",
+ "settings.show_content_type_choice": "Mostrar selecciÃŗn de tipo de contenido al crear toots",
+ "settings.show_reply_counter": "Mostrar un conteo estimado de respuestas",
+ "settings.side_arm": "BotÃŗn secundario:",
+ "settings.side_arm.none": "Ninguno",
+ "settings.side_arm_reply_mode": "Al responder a un toot, el botÃŗn de toot secundario debe:",
+ "settings.side_arm_reply_mode.copy": "Copiar opciÃŗn de privacidad del toot al que estÃĄs respondiendo",
+ "settings.side_arm_reply_mode.keep": "Conservar opciÃŗn de privacidad",
+ "settings.side_arm_reply_mode.restrict": "Restringir la opciÃŗn de privacidad a la misma del toot al que estÃĄs respondiendo",
+ "settings.status_icons": "Iconos del toot",
+ "settings.status_icons_language": "Indicador de lenguaje",
+ "settings.status_icons_local_only": "Indicador de sÃŗlo local",
+ "settings.status_icons_media": "Indicadores de medios y encuestas",
+ "settings.status_icons_reply": "Indicador de respuesta",
+ "settings.status_icons_visibility": "Indicador de privacidad de toot",
+ "settings.swipe_to_change_columns": "Permitir deslizar para cambiar columnas (SÃŗlo en mÃŗvil)",
+ "settings.tag_misleading_links": "Marcar enlaces engaÃąosos",
+ "settings.tag_misleading_links.hint": "AÃąadir una indicaciÃŗn visual indicando el destino de los enlace que no los mencionen explÃcitamente",
+ "settings.wide_view": "Vista amplia (solo modo de escritorio)",
+ "settings.wide_view_hint": "Expande las columnas para llenar mejor el espacio disponible.",
+ "status.collapse": "Colapsar",
+ "status.has_audio": "Contiene archivos de audio",
+ "status.has_pictures": "Contiene imÃĄgenes adjuntas",
+ "status.has_preview_card": "Contiene una tarjeta de vista previa adjunta",
+ "status.has_video": "Contiene videos adjuntos",
+ "status.in_reply_to": "Esta publicaciÃŗn es una respuesta",
+ "status.is_poll": "Esta publicaciÃŗn es una encuesta",
+ "status.local_only": "SÃŗlo visible para tu instancia",
+ "status.sensitive_toggle": "Haga clic para ver",
+ "status.uncollapse": "Descolapsar",
+ "web_app_crash.change_your_settings": "Cambiar las {settings}",
+ "web_app_crash.content": "Puedes probar lo siguiente:",
+ "web_app_crash.debug_info": "InformaciÃŗn de depuraciÃŗn",
+ "web_app_crash.disable_addons": "Desactivar complementos del navegador o herramientas de traducciÃŗn integradas",
+ "web_app_crash.issue_tracker": "rastreador de problemas",
+ "web_app_crash.reload": "Recargar",
+ "web_app_crash.reload_page": "{reload} la pÃĄgina actual",
+ "web_app_crash.report_issue": "Reportar un bug en el {issuetracker}",
+ "web_app_crash.settings": "configuraciones",
+ "web_app_crash.title": "Lo sentimos, pero algo saliÃŗ mal con la app de Mastodon."
+}
diff --git a/app/javascript/flavours/glitch/locales/es-MX.js b/app/javascript/flavours/glitch/locales/es-MX.js
deleted file mode 100644
index eaefa20ef..000000000
--- a/app/javascript/flavours/glitch/locales/es-MX.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/es-MX.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/es-MX.json b/app/javascript/flavours/glitch/locales/es-MX.json
new file mode 100644
index 000000000..a1cadec41
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/es-MX.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc es software gratuito, de cÃŗdigo abierto, bifurcado de Mastodon.",
+ "account.add_account_note": "AÃąadir nota para @{name}",
+ "account.disclaimer_full": "La informaciÃŗn aquà presentada puede reflejar de manera incompleta el perfil del usuario.",
+ "account.follows": "Seguir",
+ "account.joined": "Unido {date}",
+ "account.suspended_disclaimer_full": "Este usuario ha sido suspendido por un moderador.",
+ "account.view_full_profile": "Ver perfil completo",
+ "account_note.cancel": "Cancelar",
+ "account_note.edit": "Editar",
+ "account_note.glitch_placeholder": "No se proporcionÃŗ comentario alguno",
+ "account_note.save": "Guardar",
+ "advanced_options.icon_title": "Opciones avanzadas",
+ "advanced_options.local-only.long": "No publicar a otras instancias",
+ "advanced_options.local-only.short": "Local",
+ "advanced_options.local-only.tooltip": "Este toot es local",
+ "advanced_options.threaded_mode.long": "Al publicar abre automÃĄticamente una respuesta",
+ "advanced_options.threaded_mode.short": "Modo hilo",
+ "advanced_options.threaded_mode.tooltip": "Modo hilo habilitado",
+ "boost_modal.missing_description": "Esta publicaciÃŗn contiene medios sin descripciÃŗn",
+ "column.favourited_by": "Marcado como favorito por",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Impulsado por",
+ "column.subheading": "Opciones miscelÃĄneas",
+ "column_header.profile": "Perfil",
+ "column_subheading.lists": "Listas",
+ "column_subheading.navigation": "NavegaciÃŗn",
+ "community.column_settings.allow_local_only": "Mostrar sÃŗlo toots locales",
+ "compose.attach": "Adjuntar...",
+ "compose.attach.doodle": "Dibujar algo",
+ "compose.attach.upload": "Subir un archivo",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Texto plano",
+ "compose_form.poll.multiple_choices": "Permitir mÃēltiples opciones",
+ "compose_form.poll.single_choice": "Permitir sÃŗlo una opciÃŗn",
+ "compose_form.spoiler": "Esconder el texto detrÃĄs de la advertencia",
+ "confirmation_modal.do_not_ask_again": "No preguntar por la confirmaciÃŗn de nuevo",
+ "confirmations.deprecated_settings.confirm": "Usar las preferencias de Mastodon",
+ "confirmations.deprecated_settings.message": "Algunas de las {app_settings} de glitch-soc, especÃficas para el dispositivo que estÃĄs usando han sido reemplazadas en las {preferences} de Mastodon y serÃĄn sobreescritas:",
+ "confirmations.missing_media_description.confirm": "Enviar de todos modos",
+ "confirmations.missing_media_description.edit": "Editar medios",
+ "confirmations.missing_media_description.message": "Al menos a un adjunto le falta una descripciÃŗn. Considera describir toda la multimedia para los dÊbiles visuales antes de mandar el toot.",
+ "confirmations.unfilter.author": "Publicado por",
+ "confirmations.unfilter.confirm": "Mostrar",
+ "confirmations.unfilter.edit_filter": "Editar filtro",
+ "confirmations.unfilter.filters": "Coincidencia con {count, plural, one {filtro} other {filtros}}",
+ "content-type.change": "Tipo de contenido",
+ "direct.group_by_conversations": "Agrupar por conversaciÃŗn",
+ "endorsed_accounts_editor.endorsed_accounts": "Cuentas destacadas",
+ "favourite_modal.combo": "Puedes presionar {combo} para omitir esto la prÃŗxima vez",
+ "getting_started.onboarding": "Paseo inicial",
+ "home.column_settings.advanced": "Avanzado",
+ "home.column_settings.filter_regex": "Filtrar por expresiones regulares",
+ "home.column_settings.show_direct": "Mostrar mensajes directos",
+ "home.settings": "Configuraciones de columna",
+ "keyboard_shortcuts.bookmark": "a marcadores",
+ "keyboard_shortcuts.secondary_toot": "para enviar un toot usando lac onfiguraciÃŗn de privacidad secundaria",
+ "keyboard_shortcuts.toggle_collapse": "para colapsar/descolapsar toots",
+ "layout.auto": "AutomÃĄtico",
+ "layout.desktop": "Escritorio",
+ "layout.hint.auto": "Seleccionar un diseÃąo automÃĄticamente basado en \"Habilitar interface web avanzada\" y tamaÃąo de pantalla",
+ "layout.hint.desktop": "Utiliza el diseÃąo multi-columna sin importar \"Habilitar interface web avanzada\" o tamaÃąo de pantalla",
+ "layout.hint.single": "Utiliza el diseÃąo de una columna sin importar \"Habilitar interface web avanzada\" o tamaÃąo de pantalla",
+ "layout.single": "MÃŗvil",
+ "media_gallery.sensitive": "Sensible",
+ "moved_to_warning": "Esta cuenta estÃĄ marcada como movida a {moved_to_link}, y por lo tanto no aceptarÃĄ nuevos seguimientos.",
+ "navigation_bar.app_settings": "Ajustes de aplicaciÃŗn",
+ "navigation_bar.featured_users": "Usuarios destacados",
+ "navigation_bar.keyboard_shortcuts": "Atajos de teclado",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Marcar para borrar",
+ "notification_purge.btn_all": "Seleccionar\ntodo",
+ "notification_purge.btn_apply": "Borrar\nselecciÃŗn",
+ "notification_purge.btn_invert": "Invertir\nselecciÃŗn",
+ "notification_purge.btn_none": "Seleccionar\nnada",
+ "notification_purge.start": "Entrar en modo de limpieza de notificaciones",
+ "notifications.marked_clear": "Limpiar notificaciones seleccionadas",
+ "notifications.marked_clear_confirmation": "ÂŋDeseas borrar permanentemente todas las notificaciones seleccionadas?",
+ "onboarding.done": "Hecho",
+ "onboarding.next": "Siguiente",
+ "onboarding.page_five.public_timelines": "La lÃnea de tiempo local muestra mensajes pÃēblicos de todos en {domain}. La lÃnea de tiempo federada muestra mensajes pÃēblicos de todos aquellos que en {domain} siguen a otros servidores. Estas son las lÃneas cronolÃŗgicas pÃēblicas, una gran manera de descubrir gente nueva.",
+ "onboarding.page_four.home": "La lÃnea de tiempo principal muestra los mensajes de la gente que sigues.",
+ "onboarding.page_four.notifications": "La columna de notificaciones muestra cuando alguien interactÃēa contigo.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "EstÃĄs en {domain}, asà que tu alias completo es {handle}",
+ "onboarding.page_one.welcome": "ÂĄBienvenidx a {domain}!",
+ "onboarding.page_six.admin": "El administrador de tu instancia es {admin}.",
+ "onboarding.page_six.almost_done": "Casi listo...",
+ "onboarding.page_six.appetoot": "ÂĄA tootear!",
+ "onboarding.page_six.apps_available": "Hay {apps} disponibles para iOS, Android y otras plataformas.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "normas de la comunidad",
+ "onboarding.page_six.read_guidelines": "ÂĄPor favor lee las {guidelines} de {domain}!",
+ "onboarding.page_six.various_app": "aplicaciones para mÃŗviles",
+ "onboarding.page_three.profile": "Edita tu perfil para cambiar tu avatar, biografÃa y nombre para mostrar. AhÃ, tambiÊn encontrarÃĄs otras preferencias.",
+ "onboarding.page_three.search": "Usa la barra de bÃēsqueda para encontrar gente y mirar las etiquetas (hashtags), como {illustration} y {introductions}. Para buscar a una persona que no estÊ en esta instancia, utiliza su alias completo.",
+ "onboarding.page_two.compose": "Escribe mensajes desde la columna de composiciÃŗn. Puedes subir imÃĄgenes, cambiar la configuraciÃŗn de privacidad y aÃąadir advertencias de contenido con los iconos de abajo.",
+ "onboarding.skip": "Saltar",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Siempre mostrar el campo de advertencia de contenido",
+ "settings.auto_collapse": "Colapsar automÃĄticamente",
+ "settings.auto_collapse_all": "Todo",
+ "settings.auto_collapse_height": "Altura (en pixeles) para que un toot sea considerado largo",
+ "settings.auto_collapse_lengthy": "Toots largos",
+ "settings.auto_collapse_media": "Toots con medios",
+ "settings.auto_collapse_notifications": "Notificaciones",
+ "settings.auto_collapse_reblogs": "Retoots",
+ "settings.auto_collapse_replies": "Respuestas",
+ "settings.close": "Cerrar",
+ "settings.collapsed_statuses": "Toots colapsados",
+ "settings.compose_box_opts": "Cuadro de redacciÃŗn",
+ "settings.confirm_before_clearing_draft": "Mostrar diÃĄlogo de confirmaciÃŗn antes de sobreescribir un mensaje estabas escribiendo",
+ "settings.confirm_boost_missing_media_description": "Mostrar diÃĄlogo de confirmaciÃŗn antes de retootear publicaciones con medios sin descripciÃŗn",
+ "settings.confirm_missing_media_description": "Mostrar diÃĄlogo de confirmaciÃŗn antes de publicar toots con medios sin descripciÃŗn",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regexp (expresiÃŗn regular)",
+ "settings.content_warnings_filter": "No descolapsar estas advertencias de contenido:",
+ "settings.content_warnings_media_outside": "Mostrar archivos adjuntos fuera de las advertencias de contenido",
+ "settings.content_warnings_media_outside_hint": "Reproduce el comportamiento normal de Mastodon teniendo al tener el interruptor de advertencia de contenido activado, no afectando los archivos adjuntos",
+ "settings.content_warnings_shared_state": "Mostrar/ocultar el contenido de todas las copias a la vez",
+ "settings.content_warnings_shared_state_hint": "Reproduce el comportamiento normal de Mastodon al hacer que el botÃŗn Advertencia de contenido afecte a todas las copias de un mensaje a la vez. Esto evitarÃĄ el colapso automÃĄtico de cualquier copia de un toot con CW desplegado",
+ "settings.content_warnings_unfold_opts": "Opciones de Auto-desplegado",
+ "settings.deprecated_setting": "Esta configuraciÃŗn ahora estÃĄ controlada desde {settings_page_link} de Mastodon",
+ "settings.enable_collapsed": "Habilitar toots colapsados",
+ "settings.enable_collapsed_hint": "Las publicaciones colapsadas tienen partes de su contenido ocultas para ocupar menos espacio en pantalla. Esto es distinto de la funciÃŗn Advertencia de Contenido",
+ "settings.enable_content_warnings_auto_unfold": "Descolapsar automÃĄticamente advertencias de contenido",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "Ãconos de privacidad mÃĄs visibles",
+ "settings.hicolor_privacy_icons.hint": "Mostrar iconos de privacidad en colores brillantes y fÃĄcilmente distinguibles",
+ "settings.image_backgrounds": "Fondos de imÃĄgenes",
+ "settings.image_backgrounds_media": "Vista previa de medios de toots colapsados",
+ "settings.image_backgrounds_media_hint": "Si la publicaciÃŗn tiene algÃēn archivo adjunto, utilice el primero como fondo",
+ "settings.image_backgrounds_users": "Darle fondo de imagen a toots colapsados",
+ "settings.inline_preview_cards": "Vista previa para enlaces externos",
+ "settings.layout": "DiseÃąo",
+ "settings.layout_opts": "Opciones de diseÃąo",
+ "settings.media": "Medios",
+ "settings.media_fullwidth": "Ancho completo al mostrar medios ",
+ "settings.media_letterbox": "Mantener proporciones al mostrar medios",
+ "settings.media_letterbox_hint": "Escalar medios para que llenen el espacio del contenedor sin cambiar sus proporciones sin recortarlos",
+ "settings.media_reveal_behind_cw": "Siempre mostrar medios sensibles dentro de las advertencias de contenido",
+ "settings.notifications.favicon_badge": "Marcador de notificaciones en el favicon",
+ "settings.notifications.favicon_badge.hint": "Muestra un marcador de notificaciones sin leer en el favicon",
+ "settings.notifications.tab_badge": "Marcador de notificaciones no leÃdas",
+ "settings.notifications.tab_badge.hint": "Muestra un marcador de notificaciones sin leer en el Ãcono de notificaciones cuando dicha columna no estÃĄ abierta",
+ "settings.notifications_opts": "Opciones de notificaciones",
+ "settings.pop_in_left": "Izquierda",
+ "settings.pop_in_player": "Habilitar reproductor emergente",
+ "settings.pop_in_position": "PosiciÃŗn del reproductor:",
+ "settings.pop_in_right": "Derecha",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Anteponer \"re: \" a las advertencias de contenido al responder",
+ "settings.preselect_on_reply": "Preseleccionar nombres de usuarix al responder",
+ "settings.preselect_on_reply_hint": "Al responder a conversaciones con mÃēltiples participantes, preselecciona los nombres de usuarix subsecuentes del/la primerx",
+ "settings.rewrite_mentions": "Reescribir menciones in publicaciones mostradas",
+ "settings.rewrite_mentions_acct": "Reescribir con nombre de usuarix y dominio (para cuentas remotas)",
+ "settings.rewrite_mentions_no": "No reescribir menciones",
+ "settings.rewrite_mentions_username": "Reescribir con nombre de usuarix",
+ "settings.shared_settings_link": "preferencias de usuario",
+ "settings.show_action_bar": "Mostrar botones de acciÃŗn en toots colapsados",
+ "settings.show_content_type_choice": "Mostrar selecciÃŗn de tipo de contenido al crear toots",
+ "settings.show_reply_counter": "Mostrar un conteo estimado de respuestas",
+ "settings.side_arm": "BotÃŗn secundario:",
+ "settings.side_arm.none": "Ninguno",
+ "settings.side_arm_reply_mode": "Al responder a un toot, el botÃŗn de toot secundario debe:",
+ "settings.side_arm_reply_mode.copy": "Copiar opciÃŗn de privacidad del toot al que estÃĄs respondiendo",
+ "settings.side_arm_reply_mode.keep": "Conservar opciÃŗn de privacidad",
+ "settings.side_arm_reply_mode.restrict": "Restringir la opciÃŗn de privacidad a la misma del toot al que estÃĄs respondiendo",
+ "settings.status_icons": "Iconos del toot",
+ "settings.status_icons_language": "Indicador de lenguaje",
+ "settings.status_icons_local_only": "Indicador de sÃŗlo local",
+ "settings.status_icons_media": "Indicadores de medios y encuestas",
+ "settings.status_icons_reply": "Indicador de respuesta",
+ "settings.status_icons_visibility": "Indicador de privacidad de toot",
+ "settings.swipe_to_change_columns": "Permitir deslizar para cambiar columnas (SÃŗlo en mÃŗvil)",
+ "settings.tag_misleading_links": "Marcar enlaces engaÃąosos",
+ "settings.tag_misleading_links.hint": "AÃąadir una indicaciÃŗn visual indicando el destino de los enlace que no los mencionen explÃcitamente",
+ "settings.wide_view": "Vista amplia (solo modo de escritorio)",
+ "settings.wide_view_hint": "Expande las columnas para llenar mejor el espacio disponible.",
+ "status.collapse": "Colapsar",
+ "status.has_audio": "Contiene archivos de audio",
+ "status.has_pictures": "Contiene imÃĄgenes adjuntas",
+ "status.has_preview_card": "Contiene una tarjeta de vista previa adjunta",
+ "status.has_video": "Contiene videos adjuntos",
+ "status.in_reply_to": "Esta publicaciÃŗn es una respuesta",
+ "status.is_poll": "Esta publicaciÃŗn es una encuesta",
+ "status.local_only": "SÃŗlo visible para tu instancia",
+ "status.sensitive_toggle": "Haga clic para ver",
+ "status.uncollapse": "Descolapsar",
+ "web_app_crash.change_your_settings": "Cambiar las {settings}",
+ "web_app_crash.content": "Puedes probar lo siguiente:",
+ "web_app_crash.debug_info": "InformaciÃŗn de depuraciÃŗn",
+ "web_app_crash.disable_addons": "Desactivar complementos del navegador o herramientas de traducciÃŗn integradas",
+ "web_app_crash.issue_tracker": "rastreador de problemas",
+ "web_app_crash.reload": "Recargar",
+ "web_app_crash.reload_page": "{reload} la pÃĄgina actual",
+ "web_app_crash.report_issue": "Reportar un bug en el {issuetracker}",
+ "web_app_crash.settings": "configuraciones",
+ "web_app_crash.title": "Lo sentimos, pero algo saliÃŗ mal con la app de Mastodon."
+}
diff --git a/app/javascript/flavours/glitch/locales/es.js b/app/javascript/flavours/glitch/locales/es.js
deleted file mode 100644
index f22062977..000000000
--- a/app/javascript/flavours/glitch/locales/es.js
+++ /dev/null
@@ -1,119 +0,0 @@
-import inherited from 'mastodon/locales/es.json';
-
-const messages = {
- 'advanced_options.icon_title': 'Opciones avanzadas',
- 'advanced_options.local-only.long': 'No publicar a otras instancias',
- 'advanced_options.local-only.short': 'Local',
- 'advanced_options.local-only.tooltip': 'Este toot es local',
- 'advanced_options.threaded_mode.long': 'Al publicar abre automÃĄticamente una respuesta',
- 'advanced_options.threaded_mode.short': 'Modo hilo',
- 'advanced_options.threaded_mode.tooltip': 'Modo hilo habilitado',
- 'compose.attach.doodle': 'Dibujar algo',
- 'compose.attach.upload': 'Subir un archivo',
- 'compose.attach': 'Adjuntar...',
- 'favourite_modal.combo': 'Puedes presionar {combo} para omitir esto la prÃŗxima vez',
- 'getting_started.onboarding': 'Paseo inicial',
- 'getting_started.open_source_notice': 'Glitchsoc es software libre y gratuito bifurcado de {Mastodon}. Puedes contribuir o reportar errores en GitHub en {github}.',
- 'home.column_settings.show_direct': 'Mostrar mensajes directos',
- 'layout.auto': 'AutomÃĄtico',
- 'layout.current_is': 'Tu diseÃąo actual es:',
- 'layout.desktop': 'Escritorio',
- 'layout.hint.auto': 'Seleccionar un diseÃąo automÃĄticamente basado en "Habilitar interface web avanzada" y tamaÃąo de pantalla',
- 'layout.hint.desktop': 'Utiliza el diseÃąo multi-columna sin importar "Habilitar interface web avanzada" o tamaÃąo de pantalla',
- 'layout.hint.single': 'Utiliza el diseÃąo de una columna sin importar "Habilitar interface web avanzada" o tamaÃąo de pantalla',
- 'layout.mobile': 'MÃŗvil',
- 'media_gallery.sensitive': 'Sensible',
- 'navigation_bar.app_settings': 'Ajustes de aplicaciÃŗn',
- 'notification_purge.btn_all': 'Seleccionar\ntodo',
- 'notification_purge.btn_apply': 'Borrar\nselecciÃŗn',
- 'notification_purge.btn_invert': 'Invertir\nselecciÃŗn',
- 'notification_purge.btn_none': 'Seleccionar\nnada',
- 'notification.markForDeletion': 'Marcar para borrar',
- 'notifications.clear': 'Limpiar notificaciones',
- 'notifications.marked_clear_confirmation': 'ÂŋDeseas borrar permanentemente todas las notificaciones seleccionadas?',
- 'notifications.marked_clear': 'Limpiar notificaciones seleccionadas',
- 'onboarding.page_one.federation': '{domain} es una "instancia" de Mastodon. Mastodon es una red de servidores independientes que se unen para crear una red social mÃĄs grande. A estos servidores los llamamos instancias.',
- 'onboarding.page_one.welcome': 'ÂĄBienvenidx a {domain}!',
- 'onboarding.page_six.github': '{domain} usa Glitchsoc. Glitchsoc es una bifurcaciÃŗn {fork} amigable de {Mastodon}, y es compatible con cualquier instancia o aplicaciÃŗn de Mastodon. Glitchsoc es completamente gratuito y de cÃŗdigo abierto. Puedes reportar errores, solicitar funciones o contribuir al cÃŗdigo en {github}.',
- 'settings.always_show_spoilers_field': 'Siempre mostrar el campo de advertencia de contenido',
- 'settings.auto_collapse_all': 'Todo',
- 'settings.auto_collapse_lengthy': 'Toots largos',
- 'settings.auto_collapse_media': 'Toots con medios',
- 'settings.auto_collapse_notifications': 'Notificaciones',
- 'settings.auto_collapse_reblogs': 'Retoots',
- 'settings.auto_collapse_replies': 'Respuestas',
- 'settings.auto_collapse': 'Colapsar automÃĄticamente',
- 'settings.close': 'Cerrar',
- 'settings.collapsed_statuses': 'Toots colapsados',
- 'settings.compose_box_opts': 'Cuadro de redacciÃŗn',
- 'settings.confirm_before_clearing_draft': 'Mostrar diÃĄlogo de confirmaciÃŗn antes de sobreescribir un mensaje estabas escribiendo',
- 'settings.confirm_boost_missing_media_description': 'Mostrar diÃĄlogo de confirmaciÃŗn antes de retootear publicaciones con medios sin descripciÃŗn',
- 'settings.confirm_missing_media_description': 'Mostrar diÃĄlogo de confirmaciÃŗn antes de publicar toots con medios sin descripciÃŗn',
- 'settings.content_warnings_filter': 'No descolapsar estas advertencias de contenido:',
- 'settings.content_warnings.regexp': 'Regexp (expresiÃŗn regular)',
- 'settings.content_warnings': 'Advertencias de contenido',
- 'settings.enable_collapsed': 'Habilitar toots colapsados',
- 'settings.enable_content_warnings_auto_unfold': 'Descolapsar automÃĄticamente advertencias de contenido',
- 'settings.filtering_behavior.cw': 'Mostrar el toot y agregar las palabras filtradas a la advertencia de contenido',
- 'settings.filtering_behavior.drop': 'Ocultar toots filtrados por completo',
- 'settings.filtering_behavior.hide': 'Mostrar "Filtrado" y agregar un botÃŗn para saber por quÊ',
- 'settings.filtering_behavior.upstream': 'Mostrar "Filtrado"',
- 'settings.filtering_behavior': 'ConfiguraciÃŗn de filtros',
- 'settings.filters': 'Filtros',
- 'settings.general': 'General',
- 'settings.hicolor_privacy_icons': 'Ãconos de privacidad mÃĄs visibles',
- 'settings.image_backgrounds_media': 'Vista previa de medios de toots colapsados',
- 'settings.image_backgrounds_users': 'Darle fondo de imagen a toots colapsados',
- 'settings.image_backgrounds': 'Fondos de imÃĄgenes',
- 'settings.inline_preview_cards': 'Vista previa para enlaces externos',
- 'settings.layout_opts': 'Opciones de diseÃąo',
- 'settings.layout': 'DiseÃąo',
- 'settings.media_fullwidth': 'Ancho completo al mostrar medios ',
- 'settings.media_letterbox_hint': 'Escalar medios para que llenen el espacio del contenedor sin cambiar sus proporciones sin recortarlos',
- 'settings.media_letterbox': 'Mantener proporciones al mostrar medios',
- 'settings.media_reveal_behind_cw': 'Siempre mostrar medios sensibles dentro de las advertencias de contenido',
- 'settings.media': 'Medios',
- 'settings.navbar_under': 'Barra de navegaciÃŗn en la parte inferior (solo mÃŗvil)',
- 'settings.notifications_opts': 'Opciones de notificaciones',
- 'settings.notifications.favicon_badge.hint': 'Muestra un marcador de notificaciones sin leer en el favicon',
- 'settings.notifications.favicon_badge': 'Marcador de notificaciones en el favicon',
- 'settings.notifications.tab_badge.hint': 'Muestra un marcador de notificaciones sin leer en el Ãcono de notificaciones cuando dicha columna no estÃĄ abierta',
- 'settings.notifications.tab_badge': 'Marcador de notificaciones no leÃdas',
- 'settings.preferences': 'Preferencias de usuarix',
- 'settings.prepend_cw_re': 'Anteponer "re: " a las advertencias de contenido al responder',
- 'settings.preselect_on_reply_hint': 'Al responder a conversaciones con mÃēltiples participantes, preselecciona los nombres de usuarix subsecuentes del/la primerx',
- 'settings.preselect_on_reply': 'Preseleccionar nombres de usuarix al responder',
- 'settings.rewrite_mentions_acct': 'Reescribir con nombre de usuarix y dominio (para cuentas remotas)',
- 'settings.rewrite_mentions_no': 'No reescribir menciones',
- 'settings.rewrite_mentions_username': 'Reescribir con nombre de usuarix',
- 'settings.rewrite_mentions': 'Reescribir menciones in publicaciones mostradas',
- 'settings.show_action_bar': 'Mostrar botones de acciÃŗn en toots colapsados',
- 'settings.show_content_type_choice': 'Mostrar selecciÃŗn de tipo de contenido al crear toots',
- 'settings.show_reply_counter': 'Mostrar un conteo estimado de respuestas',
- 'settings.side_arm_reply_mode.copy': 'Copiar opciÃŗn de privacidad del toot al que estÃĄs respondiendo',
- 'settings.side_arm_reply_mode.keep': 'Conservar opciÃŗn de privacidad',
- 'settings.side_arm_reply_mode.restrict': 'Restringir la opciÃŗn de privacidad a la misma del toot al que estÃĄs respondiendo',
- 'settings.side_arm_reply_mode': 'Al responder a un toot, el botÃŗn de toot secundario debe:',
- 'settings.side_arm.none': 'Ninguno',
- 'settings.side_arm': 'BotÃŗn secundario:',
- 'settings.swipe_to_change_columns': 'Permitir deslizar para cambiar columnas (SÃŗlo en mÃŗvil)',
- 'settings.tag_misleading_links.hint': 'AÃąadir una indicaciÃŗn visual indicando el destino de los enlace que no los mencionen explÃcitamente',
- 'settings.tag_misleading_links': 'Marcar enlaces engaÃąosos',
- 'settings.wide_view': 'Vista amplia (solo modo de escritorio)',
- 'status.collapse': 'Colapsar',
- 'status.uncollapse': 'Descolapsar',
- 'confirmations.unfilter': 'InformaciÃŗn del toot filtrado',
- 'confirmations.unfilter.author': 'Publicado por',
- 'confirmations.unfilter.filters': 'Coincidencia con {count, plural, one {filtro} other {filtros}}',
- 'confirmations.unfilter.edit_filter': 'Editar filtro',
- 'confirmations.unfilter.confirm': 'Mostrar',
- 'confirmations.delete.confirm': 'Borrar',
- 'confirmations.delete.message': 'Por favor confirma borrado',
- 'confirmations.redraft.confirm': 'Borrar y volver a borrador',
- 'confirmations.redraft.message': 'ÂŋBorrar y volver a borrador? PerderÃĄs todas las respuestas, retoots y favoritos asociados, y las respuestas a la publicaciÃŗn original quedarÃĄn huÊrfanos.',
- 'confirmations.reply.confirm': 'Responder',
- 'confirmations.reply.message': 'Responder no sobreescribirÃĄ el mensaje que estÃĄs escibiendo actualmente. ÂŋDeseas continuar?',
- 'status.show_filter_reason': '(mostrar por quÊ)',
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/es.json b/app/javascript/flavours/glitch/locales/es.json
new file mode 100644
index 000000000..0838496d2
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/es.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc es software gratuito, de cÃŗdigo abierto, bifurcado de Mastodon.",
+ "account.add_account_note": "AÃąadir nota para @{name}",
+ "account.disclaimer_full": "La informaciÃŗn aquà presentada puede reflejar de manera incompleta el perfil del usuario.",
+ "account.follows": "Sigue",
+ "account.joined": "Unido el {date}",
+ "account.suspended_disclaimer_full": "Este usuario ha sido suspendido por un moderador.",
+ "account.view_full_profile": "Ver perfil completo",
+ "account_note.cancel": "Cancelar",
+ "account_note.edit": "Editar",
+ "account_note.glitch_placeholder": "No se proporcionÃŗ comentario alguno",
+ "account_note.save": "Guardar",
+ "advanced_options.icon_title": "Opciones avanzadas",
+ "advanced_options.local-only.long": "No publicar a otras instancias",
+ "advanced_options.local-only.short": "SÃŗlo local",
+ "advanced_options.local-only.tooltip": "Esta publicaciÃŗn es sÃŗlo local",
+ "advanced_options.threaded_mode.long": "Abre automÃĄticamente una respuesta al publicar",
+ "advanced_options.threaded_mode.short": "Modo hilo",
+ "advanced_options.threaded_mode.tooltip": "Modo hilo habilitado",
+ "boost_modal.missing_description": "Esta publicaciÃŗn contiene medios sin descripciÃŗn",
+ "column.favourited_by": "Marcado como favorito por",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Impulsado por",
+ "column.subheading": "Opciones miscelÃĄneas",
+ "column_header.profile": "Perfil",
+ "column_subheading.lists": "Listas",
+ "column_subheading.navigation": "NavegaciÃŗn",
+ "community.column_settings.allow_local_only": "Mostrar sÃŗlo toots locales",
+ "compose.attach": "Adjuntar...",
+ "compose.attach.doodle": "Dibujar algo",
+ "compose.attach.upload": "Subir un archivo",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Texto plano",
+ "compose_form.poll.multiple_choices": "Permitir mÃēltiples opciones",
+ "compose_form.poll.single_choice": "Permitir sÃŗlo una opciÃŗn",
+ "compose_form.spoiler": "Esconder el texto detrÃĄs de la advertencia",
+ "confirmation_modal.do_not_ask_again": "No preguntar por la confirmaciÃŗn de nuevo",
+ "confirmations.deprecated_settings.confirm": "Usar las preferencias de Mastodon",
+ "confirmations.deprecated_settings.message": "Algunas de las {app_settings} de glitch-soc, especÃficas para el dispositivo que estÃĄs usando han sido reemplazadas en las {preferences} de Mastodon y serÃĄn sobreescritas:",
+ "confirmations.missing_media_description.confirm": "Enviar de todos modos",
+ "confirmations.missing_media_description.edit": "Editar medios",
+ "confirmations.missing_media_description.message": "Al menos a un adjunto le falta una descripciÃŗn. Considera describir toda la multimedia para los dÊbiles visuales antes de mandar el toot.",
+ "confirmations.unfilter.author": "Autor",
+ "confirmations.unfilter.confirm": "Mostrar",
+ "confirmations.unfilter.edit_filter": "Editar filtro",
+ "confirmations.unfilter.filters": "Coincidiendo {count, plural, one {filtro} other {filtros}}",
+ "content-type.change": "Tipo de contenido",
+ "direct.group_by_conversations": "Agrupar por conversaciÃŗn",
+ "endorsed_accounts_editor.endorsed_accounts": "Cuentas destacadas",
+ "favourite_modal.combo": "Puedes presionar {combo} para omitir esto la prÃŗxima vez",
+ "getting_started.onboarding": "Paseo inicial",
+ "home.column_settings.advanced": "Avanzado",
+ "home.column_settings.filter_regex": "Filtrar por expresiones regulares",
+ "home.column_settings.show_direct": "Mostrar mensajes directos",
+ "home.settings": "Configuraciones de columna",
+ "keyboard_shortcuts.bookmark": "a marcadores",
+ "keyboard_shortcuts.secondary_toot": "para enviar un toot usando lac onfiguraciÃŗn de privacidad secundaria",
+ "keyboard_shortcuts.toggle_collapse": "para colapsar/descolapsar toots",
+ "layout.auto": "AutomÃĄtico",
+ "layout.desktop": "Escritorio",
+ "layout.hint.auto": "Seleccionar un diseÃąo automÃĄticamente basado en \"Habilitar interface web avanzada\" y el tamaÃąo de la pantalla.",
+ "layout.hint.desktop": "Utiliza el diseÃąo multi-columna sin importar \"Habilitar interface web avanzada\" o el tamaÃąo de la pantalla.",
+ "layout.hint.single": "Utiliza el diseÃąo de una columna sin importar \"Habilitar interface web avanzada\" o el tamaÃąo de la pantalla.",
+ "layout.single": "MÃŗvil",
+ "media_gallery.sensitive": "Sensible",
+ "moved_to_warning": "Esta cuenta estÃĄ marcada como movida a {moved_to_link}, y por lo tanto no aceptarÃĄ nuevos seguimientos.",
+ "navigation_bar.app_settings": "Ajustes de la aplicaciÃŗn",
+ "navigation_bar.featured_users": "Usuarios destacados",
+ "navigation_bar.keyboard_shortcuts": "Atajos de teclado",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Marcar para borrado",
+ "notification_purge.btn_all": "Seleccionar\ntodo",
+ "notification_purge.btn_apply": "Borrar\nselecciÃŗn",
+ "notification_purge.btn_invert": "Invertir\nselecciÃŗn",
+ "notification_purge.btn_none": "Seleccionar\nninguno",
+ "notification_purge.start": "Entrar en modo de limpieza de notificaciones",
+ "notifications.marked_clear": "Limpiar las notificaciones seleccionadas",
+ "notifications.marked_clear_confirmation": "ÂŋEstÃĄs seguro de borrar permanentemente todas las notificaciones seleccionadas?",
+ "onboarding.done": "Hecho",
+ "onboarding.next": "Siguiente",
+ "onboarding.page_five.public_timelines": "La lÃnea de tiempo local muestra mensajes pÃēblicos de todos en {domain}. La lÃnea de tiempo federada muestra mensajes pÃēblicos de todos aquellos que en {domain} siguen a otros servidores. Estas son las lÃneas cronolÃŗgicas pÃēblicas, una gran manera de descubrir gente nueva.",
+ "onboarding.page_four.home": "La lÃnea de tiempo principal muestra los mensajes de la gente que sigues.",
+ "onboarding.page_four.notifications": "La columna de notificaciones muestra cuando alguien interactÃēa contigo.",
+ "onboarding.page_one.federation": "{domain} es una \"instancia\" de Mastodon. Mastodon es una red de servidores independientes uniÊndose para crear una red social mÃĄs grande. A estos servidores los llamamos instancias.",
+ "onboarding.page_one.handle": "EstÃĄs en {domain}, asà que tu alias completo es {handle}",
+ "onboarding.page_one.welcome": "ÂĄBienvenido a {domain}!",
+ "onboarding.page_six.admin": "El administrador de tu instancia es {admin}.",
+ "onboarding.page_six.almost_done": "Casi listo...",
+ "onboarding.page_six.appetoot": "ÂĄA tootear!",
+ "onboarding.page_six.apps_available": "Hay {apps} disponibles para iOS, Android y otras plataformas.",
+ "onboarding.page_six.github": "{domain} usa Glitchsoc. Glitchsoc es una bifurcaciÃŗn {fork} amigable de {Mastodon}, y es compatible con cualquier instancia o aplicaciÃŗn de Mastodon. Glitchsoc es completamente gratuito y de cÃŗdigo abierto. Puedes reportar errores, solicitar funciones o contribuir al cÃŗdigo en {github}.",
+ "onboarding.page_six.guidelines": "normas de la comunidad",
+ "onboarding.page_six.read_guidelines": "ÂĄPor favor lee las {guidelines} de {domain}!",
+ "onboarding.page_six.various_app": "aplicaciones para mÃŗviles",
+ "onboarding.page_three.profile": "Edita tu perfil para cambiar tu avatar, biografÃa y nombre para mostrar. AhÃ, tambiÊn encontrarÃĄs otras preferencias.",
+ "onboarding.page_three.search": "Usa la barra de bÃēsqueda para encontrar gente y mirar las etiquetas (hashtags), como {illustration} y {introductions}. Para buscar a una persona que no estÊ en esta instancia, utiliza su alias completo.",
+ "onboarding.page_two.compose": "Escribe mensajes desde la columna de composiciÃŗn. Puedes subir imÃĄgenes, cambiar la configuraciÃŗn de privacidad y aÃąadir advertencias de contenido con los iconos de abajo.",
+ "onboarding.skip": "Saltar",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Siempre mostrar el campo de advertencia de contenido",
+ "settings.auto_collapse": "Colapsar automÃĄticamente",
+ "settings.auto_collapse_all": "Todo",
+ "settings.auto_collapse_height": "Altura (en pixeles) para que un toot sea considerado largo",
+ "settings.auto_collapse_lengthy": "Publicaciones largas",
+ "settings.auto_collapse_media": "Publicaciones multimedia",
+ "settings.auto_collapse_notifications": "Notificaciones",
+ "settings.auto_collapse_reblogs": "Impulsos",
+ "settings.auto_collapse_replies": "Respuestas",
+ "settings.close": "Cerrar",
+ "settings.collapsed_statuses": "Publicaciones colapsadas",
+ "settings.compose_box_opts": "Cuadro de redacciÃŗn",
+ "settings.confirm_before_clearing_draft": "Mostrar diÃĄlogo de confirmaciÃŗn antes de sobreescribir el mensaje siendo redactado",
+ "settings.confirm_boost_missing_media_description": "Mostrar diÃĄlogo de confirmaciÃŗn antes de impulsar publicaciones con medios sin descripciones",
+ "settings.confirm_missing_media_description": "Mostrar diÃĄlogo de confirmaciÃŗn antes de enviar publicaciones con medios sin descripciones",
+ "settings.content_warnings": "Advertencias de contenido",
+ "settings.content_warnings.regexp": "Regexp (expresiÃŗn regular)",
+ "settings.content_warnings_filter": "No descolapsar estas advertencias de contenido:",
+ "settings.content_warnings_media_outside": "Mostrar archivos adjuntos fuera de las advertencias de contenido",
+ "settings.content_warnings_media_outside_hint": "Reproduce el comportamiento normal de Mastodon teniendo al tener el interruptor de advertencia de contenido activado, no afectando los archivos adjuntos",
+ "settings.content_warnings_shared_state": "Mostrar/ocultar el contenido de todas las copias a la vez",
+ "settings.content_warnings_shared_state_hint": "Reproduce el comportamiento normal de Mastodon al hacer que el botÃŗn Advertencia de contenido afecte a todas las copias de un mensaje a la vez. Esto evitarÃĄ el colapso automÃĄtico de cualquier copia de un toot con CW desplegado",
+ "settings.content_warnings_unfold_opts": "Opciones de Auto-desplegado",
+ "settings.deprecated_setting": "Esta configuraciÃŗn ahora estÃĄ controlada desde {settings_page_link} de Mastodon",
+ "settings.enable_collapsed": "Habilitar publicaciones colapsadas",
+ "settings.enable_collapsed_hint": "Las publicaciones colapsadas tienen partes de su contenido ocultas para ocupar menos espacio en pantalla. Esto es distinto de la funciÃŗn Advertencia de Contenido",
+ "settings.enable_content_warnings_auto_unfold": "Desplegar automÃĄticamente advertencias de contenido",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "Ãconos de privacidad mÃĄs visibles",
+ "settings.hicolor_privacy_icons.hint": "Mostrar iconos de privacidad en colores brillantes y fÃĄcilmente distinguibles",
+ "settings.image_backgrounds": "Fondos de imÃĄgenes",
+ "settings.image_backgrounds_media": "Vista previa de medios de publicaciones colapsadas",
+ "settings.image_backgrounds_media_hint": "Si la publicaciÃŗn tiene algÃēn archivo adjunto, utilice el primero como fondo",
+ "settings.image_backgrounds_users": "Darle fondo de imagen a publicaciones colapsadas",
+ "settings.inline_preview_cards": "Vista previa para enlaces externos",
+ "settings.layout": "DiseÃąo",
+ "settings.layout_opts": "Opciones de diseÃąo",
+ "settings.media": "Medios",
+ "settings.media_fullwidth": "Ancho completo al mostrar medios ",
+ "settings.media_letterbox": "Mantener proporciones al mostrar medios",
+ "settings.media_letterbox_hint": "Escalar medios para que llenen el espacio del contenedor sin cambiar sus proporciones sin recortarlos",
+ "settings.media_reveal_behind_cw": "Siempre mostrar medios sensibles dentro de las advertencias de contenido",
+ "settings.notifications.favicon_badge": "Marcador de notificaciones en el favicon",
+ "settings.notifications.favicon_badge.hint": "Muestra un marcador de notificaciones sin leer en el favicon",
+ "settings.notifications.tab_badge": "Marcador de notificaciones no leÃdas",
+ "settings.notifications.tab_badge.hint": "Muestra un marcador de notificaciones sin leer en el Ãcono de notificaciones cuando dicha columna no estÃĄ abierta",
+ "settings.notifications_opts": "Opciones de notificaciones",
+ "settings.pop_in_left": "Izquierda",
+ "settings.pop_in_player": "Habilitar reproductor emergente",
+ "settings.pop_in_position": "PosiciÃŗn del reproductor:",
+ "settings.pop_in_right": "Derecha",
+ "settings.preferences": "Preferencias del usuario",
+ "settings.prepend_cw_re": "Anteponer \"re: \" a las advertencias de contenido al responder",
+ "settings.preselect_on_reply": "Preseleccionar nombres de usuarios al responder",
+ "settings.preselect_on_reply_hint": "Al responder a conversaciones con mÃēltiples participantes, preselecciona los nombres de usuario subsecuentes al primero",
+ "settings.rewrite_mentions": "Reescribir menciones in publicaciones mostradas",
+ "settings.rewrite_mentions_acct": "Reescribir con el nombre de usuario y dominio (para las cuentas remotas)",
+ "settings.rewrite_mentions_no": "No reescribir menciones",
+ "settings.rewrite_mentions_username": "Reescribir con nombre de usuario",
+ "settings.shared_settings_link": "preferencias de usuario",
+ "settings.show_action_bar": "Mostrar botones de acciÃŗn en publicaciones colapsadas",
+ "settings.show_content_type_choice": "Mostrar selecciÃŗn de tipo de contenido al crear publicaciones",
+ "settings.show_reply_counter": "Mostrar un conteo estimado de respuestas",
+ "settings.side_arm": "BotÃŗn secundario:",
+ "settings.side_arm.none": "Ninguno",
+ "settings.side_arm_reply_mode": "Al responder a una publicaciÃŗn, el botÃŗn de publicaciÃŗn secundario debe:",
+ "settings.side_arm_reply_mode.copy": "Copiar opciÃŗn de privacidad de la publicaciÃŗn a la que estÃĄs respondiendo",
+ "settings.side_arm_reply_mode.keep": "Conservar opciÃŗn de privacidad",
+ "settings.side_arm_reply_mode.restrict": "Restringir la opciÃŗn de privacidad a la misma de la publicaciÃŗn a la que estÃĄs respondiendo",
+ "settings.status_icons": "Iconos del toot",
+ "settings.status_icons_language": "Indicador de lenguaje",
+ "settings.status_icons_local_only": "Indicador de sÃŗlo local",
+ "settings.status_icons_media": "Indicadores de medios y encuestas",
+ "settings.status_icons_reply": "Indicador de respuesta",
+ "settings.status_icons_visibility": "Indicador de privacidad de toot",
+ "settings.swipe_to_change_columns": "Permitir deslizar para cambiar columnas (SÃŗlo en mÃŗvil)",
+ "settings.tag_misleading_links": "Marcar enlaces engaÃąosos",
+ "settings.tag_misleading_links.hint": "AÃąadir una indicaciÃŗn visual indicando el destino de los enlace que no los mencionen explÃcitamente",
+ "settings.wide_view": "Vista amplia (solo modo de escritorio)",
+ "settings.wide_view_hint": "Expande las columnas para llenar mejor el espacio disponible.",
+ "status.collapse": "Colapsar",
+ "status.has_audio": "Contiene archivos de audio",
+ "status.has_pictures": "Contiene imÃĄgenes adjuntas",
+ "status.has_preview_card": "Contiene una tarjeta de vista previa adjunta",
+ "status.has_video": "Contiene videos adjuntos",
+ "status.in_reply_to": "Esta publicaciÃŗn es una respuesta",
+ "status.is_poll": "Esta publicaciÃŗn es una encuesta",
+ "status.local_only": "SÃŗlo visible para tu instancia",
+ "status.sensitive_toggle": "Haga clic para ver",
+ "status.uncollapse": "Descolapsar",
+ "web_app_crash.change_your_settings": "Cambiar las {settings}",
+ "web_app_crash.content": "Puedes probar lo siguiente:",
+ "web_app_crash.debug_info": "InformaciÃŗn de depuraciÃŗn",
+ "web_app_crash.disable_addons": "Desactivar complementos del navegador o herramientas de traducciÃŗn integradas",
+ "web_app_crash.issue_tracker": "rastreador de problemas",
+ "web_app_crash.reload": "Recargar",
+ "web_app_crash.reload_page": "{reload} la pÃĄgina actual",
+ "web_app_crash.report_issue": "Reportar un bug en el {issuetracker}",
+ "web_app_crash.settings": "configuraciones",
+ "web_app_crash.title": "Lo sentimos, pero algo saliÃŗ mal con la app de Mastodon."
+}
diff --git a/app/javascript/flavours/glitch/locales/et.js b/app/javascript/flavours/glitch/locales/et.js
deleted file mode 100644
index e3ea6b2a9..000000000
--- a/app/javascript/flavours/glitch/locales/et.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/et.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/et.json b/app/javascript/flavours/glitch/locales/et.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/et.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/eu.js b/app/javascript/flavours/glitch/locales/eu.js
deleted file mode 100644
index 946410b67..000000000
--- a/app/javascript/flavours/glitch/locales/eu.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/eu.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/eu.json b/app/javascript/flavours/glitch/locales/eu.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/eu.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/fa.js b/app/javascript/flavours/glitch/locales/fa.js
deleted file mode 100644
index d82461a1a..000000000
--- a/app/javascript/flavours/glitch/locales/fa.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/fa.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/fa.json b/app/javascript/flavours/glitch/locales/fa.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/fa.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/fi.js b/app/javascript/flavours/glitch/locales/fi.js
deleted file mode 100644
index 11c3cd082..000000000
--- a/app/javascript/flavours/glitch/locales/fi.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/fi.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/fi.json b/app/javascript/flavours/glitch/locales/fi.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/fi.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/fo.json b/app/javascript/flavours/glitch/locales/fo.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/fo.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/fr-QC.json b/app/javascript/flavours/glitch/locales/fr-QC.json
new file mode 100644
index 000000000..8ae47b49f
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/fr-QC.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc est un logiciel gratuit et open source, fork de Mastodon.",
+ "account.add_account_note": "Ajouter une note pour @{name}",
+ "account.disclaimer_full": "Les informations ci-dessous peuvent ÃĒtre incomplètes.",
+ "account.follows": "Abonnements",
+ "account.joined": "Ici depuis {date}",
+ "account.suspended_disclaimer_full": "Cet utilisateur a ÊtÊ suspendu par un modÊrateur.",
+ "account.view_full_profile": "Voir le profil complet",
+ "account_note.cancel": "Annuler",
+ "account_note.edit": "Ãditer",
+ "account_note.glitch_placeholder": "Aucun commentaire fourni",
+ "account_note.save": "Sauvegarder",
+ "advanced_options.icon_title": "Options avancÊes",
+ "advanced_options.local-only.long": "Ne pas envoyer aux autres instances",
+ "advanced_options.local-only.short": "Uniquement en local",
+ "advanced_options.local-only.tooltip": "Ce post est uniquement local",
+ "advanced_options.threaded_mode.long": "Ouvre automatiquement une rÊponse lors de la publication",
+ "advanced_options.threaded_mode.short": "Mode thread",
+ "advanced_options.threaded_mode.tooltip": "Mode thread activÊ",
+ "boost_modal.missing_description": "Ce post contient des mÊdias sans description",
+ "column.favourited_by": "AjoutÊ en favori par",
+ "column.heading": "Divers",
+ "column.reblogged_by": "PartagÊ par",
+ "column.subheading": "Autres options",
+ "column_header.profile": "Profil",
+ "column_subheading.lists": "Listes",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Afficher seulement les posts locaux",
+ "compose.attach": "JoindreâĻ",
+ "compose.attach.doodle": "Dessiner quelque chose",
+ "compose.attach.upload": "TÊlÊverser un fichier",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Text brut",
+ "compose_form.poll.multiple_choices": "Choix multiples",
+ "compose_form.poll.single_choice": "Choix unique",
+ "compose_form.spoiler": "Cacher le texte derrière un avertissement",
+ "confirmation_modal.do_not_ask_again": "Ne plus demander confirmation",
+ "confirmations.deprecated_settings.confirm": "Utiliser les prÊfÊrences de Mastodon",
+ "confirmations.deprecated_settings.message": "Certaines {app_settings} de glitch-soc que vous utilisez ont ÊtÊ remplacÊes par les {preferences} de Mastodon et seront remplacÊes :",
+ "confirmations.missing_media_description.confirm": "Envoyer quand mÃĒme",
+ "confirmations.missing_media_description.edit": "Modifier le mÊdia",
+ "confirmations.missing_media_description.message": "Au moins un mÊdia joint manque d'une description. Pensez à dÊcrire tous les mÊdias attachÊs pour les malvoyant¡e¡s avant de publier votre post.",
+ "confirmations.unfilter.author": "Auteur",
+ "confirmations.unfilter.confirm": "Afficher",
+ "confirmations.unfilter.edit_filter": "Modifier le filtre",
+ "confirmations.unfilter.filters": "Correspondance avec {count, plural, one {un filtre} other {plusieurs filtres}}",
+ "content-type.change": "Type de contenu",
+ "direct.group_by_conversations": "Grouper par conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Comptes mis en avant",
+ "favourite_modal.combo": "Vous pouvez appuyer sur {combo} pour passer ceci la prochaine fois",
+ "getting_started.onboarding": "Montre-moi les alentours",
+ "home.column_settings.advanced": "AvancÊ",
+ "home.column_settings.filter_regex": "Filtrer par expression rÊgulière",
+ "home.column_settings.show_direct": "Afficher les MPs",
+ "home.settings": "Paramètres de la colonne",
+ "keyboard_shortcuts.bookmark": "ajouter aux marque-pages",
+ "keyboard_shortcuts.secondary_toot": "Envoyer le post en utilisant les paramètres secondaires de confidentialitÊ",
+ "keyboard_shortcuts.toggle_collapse": "Plier/dÊplier les posts",
+ "layout.auto": "Auto",
+ "layout.desktop": "Ordinateur",
+ "layout.hint.auto": "Choisir automatiquement la mise en page selon l'option \"Activer l'interface Web avancÊe\" et la taille d'Êcran.",
+ "layout.hint.desktop": "Utiliser la mise en page en plusieurs colonnes indÊpendamment de l'option \"Activer l'interface Web avancÊe\" ou de la taille d'Êcran.",
+ "layout.hint.single": "Utiliser la mise en page à colonne unique indÊpendamment de l'option \"Activer l'interface Web avancÊe\" ou de la taille d'Êcran.",
+ "layout.single": "TÊlÊphone",
+ "media_gallery.sensitive": "Sensible",
+ "moved_to_warning": "Ce compte a dÊmÊnagÊ vers {moved_to_link} et ne peut donc plus accepter de nouveaux abonnÃŠÂˇe¡s.",
+ "navigation_bar.app_settings": "Paramètres de l'application",
+ "navigation_bar.featured_users": "Utilisateurs mis en avant",
+ "navigation_bar.keyboard_shortcuts": "Raccourcis clavier",
+ "navigation_bar.misc": "Autres",
+ "notification.markForDeletion": "Ajouter aux ÊlÊments à supprimer",
+ "notification_purge.btn_all": "SÊlectionner\ntout",
+ "notification_purge.btn_apply": "Effacer\nla sÊlection",
+ "notification_purge.btn_invert": "Inverser\nla sÊlection",
+ "notification_purge.btn_none": "Annuler\nla sÊlection",
+ "notification_purge.start": "Activer le mode de nettoyage des notifications",
+ "notifications.marked_clear": "Effacer les notifications sÊlectionnÊes",
+ "notifications.marked_clear_confirmation": "Voulez-vous vraiment effacer de manière permanente toutes les notifications sÊlectionnÊes ?",
+ "onboarding.done": "TerminÊ",
+ "onboarding.next": "Suivant",
+ "onboarding.page_five.public_timelines": "Le fil local affiche les posts publics de tout le monde sur {domain}. Le fil global affiche les posts publics de tous les comptes que les personnes de {domain} suivent. Ce sont les fils publics, une façon formidable de dÊcouvrir de nouvelles personnes.",
+ "onboarding.page_four.home": "L'accueil affiche les posts des personnes que vous suivez.",
+ "onboarding.page_four.notifications": "La colonne de notifications vous montre lorsque quelqu'un interagit avec vous.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "Vous ÃĒtes sur {domain}, donc votre nom d'utilisateur complet est {handle}",
+ "onboarding.page_one.welcome": "Bievenue sur {domain} !",
+ "onboarding.page_six.admin": "Votre admin dâinstance est {admin}.",
+ "onboarding.page_six.almost_done": "C'est bientôt fini...",
+ "onboarding.page_six.appetoot": "Bon appÊtoot !",
+ "onboarding.page_six.apps_available": "Il y a des {apps} disponibles pour iOS, Android et d'autres plateformes.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "règles de la communautÊ",
+ "onboarding.page_six.read_guidelines": "Veuillez lire les {guidelines} de {domain} !",
+ "onboarding.page_six.various_app": "applications mobiles",
+ "onboarding.page_three.profile": "Modifiez votre profil pour changer votre avatar, biographie et nom public. Ici, vous trouverez Êgalement d'autres options.",
+ "onboarding.page_three.search": "Utilisez la barre de recherche pour trouver des personnes et regarder les hashtags comme {illustration} et {introductions}. Pour chercher une personne n'Êtant pas sur cette instance, utilisez son nom d'utilisateur complet.",
+ "onboarding.page_two.compose": "Ãcrivez des posts depuis la colonne de rÊdaction. Vous pouvez tÊlÊverser des images, changer la confidentialitÊ et ajouter des avertissements de contenu avec les boutons ci-dessous.",
+ "onboarding.skip": "Passer",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Toujours activer le champ de rÊdaction de l'avertissement de contenu",
+ "settings.auto_collapse": "Repliage automatique",
+ "settings.auto_collapse_all": "Tout",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Posts longs",
+ "settings.auto_collapse_media": "Posts avec mÊdia",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "RÊponses",
+ "settings.close": "Fermer",
+ "settings.collapsed_statuses": "Posts repliÊs",
+ "settings.compose_box_opts": "Zone de rÊdaction",
+ "settings.confirm_before_clearing_draft": "Afficher une fenÃĒtre de confirmation avant d'Êcraser le message en cours de rÊdaction",
+ "settings.confirm_boost_missing_media_description": "Afficher une fenÃĒtre de confirmation avant de partager des posts manquant de description des mÊdias",
+ "settings.confirm_missing_media_description": "Afficher une fenÃĒtre de confirmation avant de publier des posts manquant de description de mÊdia",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Expression rationnelle",
+ "settings.content_warnings_filter": "Avertissement de contenu à ne pas automatiquement dÊplier :",
+ "settings.content_warnings_media_outside": "Afficher les mÊdias en dehors des avertissements de contenu",
+ "settings.content_warnings_media_outside_hint": "Reproduit le comportement par dÊfaut de Mastodon, les mÊdias attachÊs ne sont plus affectÊs par le bouton d'affichage d'un post avec avertissement",
+ "settings.content_warnings_shared_state": "Affiche/cache le contenu de toutes les copies à la fois",
+ "settings.content_warnings_shared_state_hint": "Reproduit le comportement par dÊfaut de Mastodon, le bouton d'avertissement de contenu affecte toutes les copies d'un post à la fois. Cela empÃĒchera le repliement automatique de n'importe quelle copie d'un post avec un avertissement dÊpliÊ",
+ "settings.content_warnings_unfold_opts": "Options de dÊpliement automatique",
+ "settings.deprecated_setting": "Cette option est maintenant dÊfinie par les {settings_page_link} de Mastodon",
+ "settings.enable_collapsed": "Activer le repliement des posts",
+ "settings.enable_collapsed_hint": "Les posts repliÊs ont une partie de leur contenu cachÊ pour libÊrer de l'espace sur l'Êcran. C'est une option diffÊrente de l'avertissement de contenu",
+ "settings.enable_content_warnings_auto_unfold": "DÊplier automatiquement les avertissements de contenu",
+ "settings.general": "GÊnÊral",
+ "settings.hicolor_privacy_icons": "Indicateurs de confidentialitÊ en couleurs",
+ "settings.hicolor_privacy_icons.hint": "Affiche les indicateurs de confidentialitÊ dans des couleurs facilement distinguables",
+ "settings.image_backgrounds": "Images en arrière-plan",
+ "settings.image_backgrounds_media": "PrÊvisualiser les mÊdias d'un post repliÊ",
+ "settings.image_backgrounds_media_hint": "Si le post a un mÊdia attachÊ, utiliser le premier comme arrière-plan du post",
+ "settings.image_backgrounds_users": "Donner aux posts repliÊs une image en arrière-plan",
+ "settings.inline_preview_cards": "Cartes d'aperçu pour les liens externes",
+ "settings.layout": "Mise en page :",
+ "settings.layout_opts": "Mise en page",
+ "settings.media": "MÊdia",
+ "settings.media_fullwidth": "Utiliser toute la largeur pour les aperçus",
+ "settings.media_letterbox": "Afficher les mÊdias en Letterbox",
+ "settings.media_letterbox_hint": "RÊduit le mÊdia et utilise une letterbox pour afficher l'image entière plutôt que de l'Êtirer et de la rogner",
+ "settings.media_reveal_behind_cw": "Toujours afficher les mÊdias sensibles avec avertissement",
+ "settings.notifications.favicon_badge": "Badge de notifications non lues dans la favicon",
+ "settings.notifications.favicon_badge.hint": "Ajoute un badge dans la favicon pour alerter d'une notification non lue",
+ "settings.notifications.tab_badge": "Badge de notifications non lues",
+ "settings.notifications.tab_badge.hint": "Affiche un badge de notifications non lues dans les icônes des colonnes quand la colonne n'est pas ouverte",
+ "settings.notifications_opts": "Options des notifications",
+ "settings.pop_in_left": "Gauche",
+ "settings.pop_in_player": "Activer le lecteur pop-in",
+ "settings.pop_in_position": "Position du lecteur pop-in :",
+ "settings.pop_in_right": "Droite",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "PrÊfixer les avertissements avec \"re: \" lors d'une rÊponse",
+ "settings.preselect_on_reply": "PrÊsÊlectionner les noms dâutilisateur¡rices lors de la rÊponse",
+ "settings.preselect_on_reply_hint": "PrÊsÊlectionner les noms d'utilisateurs après le premier lors d'une rÊponse à une conversation à plusieurs participants",
+ "settings.rewrite_mentions": "RÊÊcrire les mentions dans les posts affichÊs",
+ "settings.rewrite_mentions_acct": "RÊÊcrire avec le nom d'utilisateur¡rice et le domaine (lorsque le compte est distant)",
+ "settings.rewrite_mentions_no": "Ne pas rÊÊcrire les mentions",
+ "settings.rewrite_mentions_username": "RÊÊcrire avec le nom dâutilisateur¡rice",
+ "settings.shared_settings_link": "prÊfÊrences de l'utilisateur",
+ "settings.show_action_bar": "Afficher les boutons d'action dans les posts repliÊs",
+ "settings.show_content_type_choice": "Afficher le choix du type de contenu lors de la crÊation des posts",
+ "settings.show_reply_counter": "Afficher une estimation du nombre de rÊponses",
+ "settings.side_arm": "Bouton secondaire de publication :",
+ "settings.side_arm.none": "Aucun",
+ "settings.side_arm_reply_mode": "Quand vous rÊpondez à un post, le bouton secondaire de publication devrait :",
+ "settings.side_arm_reply_mode.copy": "Copier la confidentialitÊ du post auquel vous rÊpondez",
+ "settings.side_arm_reply_mode.keep": "Garder la confidentialitÊ Êtablie",
+ "settings.side_arm_reply_mode.restrict": "Restreindre la confidentialitÊ de la rÊponse à celle du post auquel vous rÊpondez",
+ "settings.status_icons": "Icônes des posts",
+ "settings.status_icons_language": "Indicateur de langue",
+ "settings.status_icons_local_only": "Indicateur de post local",
+ "settings.status_icons_media": "Indicateur de mÊdias et sondage",
+ "settings.status_icons_reply": "Indicateur de rÊponses",
+ "settings.status_icons_visibility": "Indicateur de la confidentialitÊ du post",
+ "settings.swipe_to_change_columns": "Glissement latÊral pour changer de colonne (mobile uniquement)",
+ "settings.tag_misleading_links": "Ãtiqueter les liens trompeurs",
+ "settings.tag_misleading_links.hint": "Ajouter une indication visuelle avec l'hôte cible du lien à chaque lien ne le mentionnant pas explicitement",
+ "settings.wide_view": "Vue Êlargie (mode ordinateur uniquement)",
+ "settings.wide_view_hint": "Ãtire les colonnes pour mieux remplir l'espace disponible.",
+ "status.collapse": "Replier",
+ "status.has_audio": "Contient des fichiers audio attachÊs",
+ "status.has_pictures": "Contient des images attachÊes",
+ "status.has_preview_card": "Contient une carte de prÊvisualisation attachÊe",
+ "status.has_video": "Contient des vidÊos attachÊes",
+ "status.in_reply_to": "Ce post est une rÊponse",
+ "status.is_poll": "Ce post est un sondage",
+ "status.local_only": "Visible uniquement depuis votre instance",
+ "status.sensitive_toggle": "Cliquer pour voir",
+ "status.uncollapse": "DÊplier",
+ "web_app_crash.change_your_settings": "Changez vos {settings}",
+ "web_app_crash.content": "Voici les diffÊrentes options qui s'offrent à vous :",
+ "web_app_crash.debug_info": "Informations de dÊbogage",
+ "web_app_crash.disable_addons": "DÊsactivez les extensions de votre navigateur, ainsi que les outils de traduction intÊgrÊs",
+ "web_app_crash.issue_tracker": "traqueur d'erreurs",
+ "web_app_crash.reload": "Rafraichir",
+ "web_app_crash.reload_page": "{reload} la page actuelle",
+ "web_app_crash.report_issue": "Signalez un bug dans le {issuetracker}",
+ "web_app_crash.settings": "paramètres",
+ "web_app_crash.title": "Nous sommes navrÊs, mais quelque chose s'est mal passÊ dans l'application Mastodon."
+}
diff --git a/app/javascript/flavours/glitch/locales/fr.js b/app/javascript/flavours/glitch/locales/fr.js
deleted file mode 100644
index 8562f5594..000000000
--- a/app/javascript/flavours/glitch/locales/fr.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/fr.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/fr.json b/app/javascript/flavours/glitch/locales/fr.json
new file mode 100644
index 000000000..8ae47b49f
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/fr.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc est un logiciel gratuit et open source, fork de Mastodon.",
+ "account.add_account_note": "Ajouter une note pour @{name}",
+ "account.disclaimer_full": "Les informations ci-dessous peuvent ÃĒtre incomplètes.",
+ "account.follows": "Abonnements",
+ "account.joined": "Ici depuis {date}",
+ "account.suspended_disclaimer_full": "Cet utilisateur a ÊtÊ suspendu par un modÊrateur.",
+ "account.view_full_profile": "Voir le profil complet",
+ "account_note.cancel": "Annuler",
+ "account_note.edit": "Ãditer",
+ "account_note.glitch_placeholder": "Aucun commentaire fourni",
+ "account_note.save": "Sauvegarder",
+ "advanced_options.icon_title": "Options avancÊes",
+ "advanced_options.local-only.long": "Ne pas envoyer aux autres instances",
+ "advanced_options.local-only.short": "Uniquement en local",
+ "advanced_options.local-only.tooltip": "Ce post est uniquement local",
+ "advanced_options.threaded_mode.long": "Ouvre automatiquement une rÊponse lors de la publication",
+ "advanced_options.threaded_mode.short": "Mode thread",
+ "advanced_options.threaded_mode.tooltip": "Mode thread activÊ",
+ "boost_modal.missing_description": "Ce post contient des mÊdias sans description",
+ "column.favourited_by": "AjoutÊ en favori par",
+ "column.heading": "Divers",
+ "column.reblogged_by": "PartagÊ par",
+ "column.subheading": "Autres options",
+ "column_header.profile": "Profil",
+ "column_subheading.lists": "Listes",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Afficher seulement les posts locaux",
+ "compose.attach": "JoindreâĻ",
+ "compose.attach.doodle": "Dessiner quelque chose",
+ "compose.attach.upload": "TÊlÊverser un fichier",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Text brut",
+ "compose_form.poll.multiple_choices": "Choix multiples",
+ "compose_form.poll.single_choice": "Choix unique",
+ "compose_form.spoiler": "Cacher le texte derrière un avertissement",
+ "confirmation_modal.do_not_ask_again": "Ne plus demander confirmation",
+ "confirmations.deprecated_settings.confirm": "Utiliser les prÊfÊrences de Mastodon",
+ "confirmations.deprecated_settings.message": "Certaines {app_settings} de glitch-soc que vous utilisez ont ÊtÊ remplacÊes par les {preferences} de Mastodon et seront remplacÊes :",
+ "confirmations.missing_media_description.confirm": "Envoyer quand mÃĒme",
+ "confirmations.missing_media_description.edit": "Modifier le mÊdia",
+ "confirmations.missing_media_description.message": "Au moins un mÊdia joint manque d'une description. Pensez à dÊcrire tous les mÊdias attachÊs pour les malvoyant¡e¡s avant de publier votre post.",
+ "confirmations.unfilter.author": "Auteur",
+ "confirmations.unfilter.confirm": "Afficher",
+ "confirmations.unfilter.edit_filter": "Modifier le filtre",
+ "confirmations.unfilter.filters": "Correspondance avec {count, plural, one {un filtre} other {plusieurs filtres}}",
+ "content-type.change": "Type de contenu",
+ "direct.group_by_conversations": "Grouper par conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Comptes mis en avant",
+ "favourite_modal.combo": "Vous pouvez appuyer sur {combo} pour passer ceci la prochaine fois",
+ "getting_started.onboarding": "Montre-moi les alentours",
+ "home.column_settings.advanced": "AvancÊ",
+ "home.column_settings.filter_regex": "Filtrer par expression rÊgulière",
+ "home.column_settings.show_direct": "Afficher les MPs",
+ "home.settings": "Paramètres de la colonne",
+ "keyboard_shortcuts.bookmark": "ajouter aux marque-pages",
+ "keyboard_shortcuts.secondary_toot": "Envoyer le post en utilisant les paramètres secondaires de confidentialitÊ",
+ "keyboard_shortcuts.toggle_collapse": "Plier/dÊplier les posts",
+ "layout.auto": "Auto",
+ "layout.desktop": "Ordinateur",
+ "layout.hint.auto": "Choisir automatiquement la mise en page selon l'option \"Activer l'interface Web avancÊe\" et la taille d'Êcran.",
+ "layout.hint.desktop": "Utiliser la mise en page en plusieurs colonnes indÊpendamment de l'option \"Activer l'interface Web avancÊe\" ou de la taille d'Êcran.",
+ "layout.hint.single": "Utiliser la mise en page à colonne unique indÊpendamment de l'option \"Activer l'interface Web avancÊe\" ou de la taille d'Êcran.",
+ "layout.single": "TÊlÊphone",
+ "media_gallery.sensitive": "Sensible",
+ "moved_to_warning": "Ce compte a dÊmÊnagÊ vers {moved_to_link} et ne peut donc plus accepter de nouveaux abonnÃŠÂˇe¡s.",
+ "navigation_bar.app_settings": "Paramètres de l'application",
+ "navigation_bar.featured_users": "Utilisateurs mis en avant",
+ "navigation_bar.keyboard_shortcuts": "Raccourcis clavier",
+ "navigation_bar.misc": "Autres",
+ "notification.markForDeletion": "Ajouter aux ÊlÊments à supprimer",
+ "notification_purge.btn_all": "SÊlectionner\ntout",
+ "notification_purge.btn_apply": "Effacer\nla sÊlection",
+ "notification_purge.btn_invert": "Inverser\nla sÊlection",
+ "notification_purge.btn_none": "Annuler\nla sÊlection",
+ "notification_purge.start": "Activer le mode de nettoyage des notifications",
+ "notifications.marked_clear": "Effacer les notifications sÊlectionnÊes",
+ "notifications.marked_clear_confirmation": "Voulez-vous vraiment effacer de manière permanente toutes les notifications sÊlectionnÊes ?",
+ "onboarding.done": "TerminÊ",
+ "onboarding.next": "Suivant",
+ "onboarding.page_five.public_timelines": "Le fil local affiche les posts publics de tout le monde sur {domain}. Le fil global affiche les posts publics de tous les comptes que les personnes de {domain} suivent. Ce sont les fils publics, une façon formidable de dÊcouvrir de nouvelles personnes.",
+ "onboarding.page_four.home": "L'accueil affiche les posts des personnes que vous suivez.",
+ "onboarding.page_four.notifications": "La colonne de notifications vous montre lorsque quelqu'un interagit avec vous.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "Vous ÃĒtes sur {domain}, donc votre nom d'utilisateur complet est {handle}",
+ "onboarding.page_one.welcome": "Bievenue sur {domain} !",
+ "onboarding.page_six.admin": "Votre admin dâinstance est {admin}.",
+ "onboarding.page_six.almost_done": "C'est bientôt fini...",
+ "onboarding.page_six.appetoot": "Bon appÊtoot !",
+ "onboarding.page_six.apps_available": "Il y a des {apps} disponibles pour iOS, Android et d'autres plateformes.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "règles de la communautÊ",
+ "onboarding.page_six.read_guidelines": "Veuillez lire les {guidelines} de {domain} !",
+ "onboarding.page_six.various_app": "applications mobiles",
+ "onboarding.page_three.profile": "Modifiez votre profil pour changer votre avatar, biographie et nom public. Ici, vous trouverez Êgalement d'autres options.",
+ "onboarding.page_three.search": "Utilisez la barre de recherche pour trouver des personnes et regarder les hashtags comme {illustration} et {introductions}. Pour chercher une personne n'Êtant pas sur cette instance, utilisez son nom d'utilisateur complet.",
+ "onboarding.page_two.compose": "Ãcrivez des posts depuis la colonne de rÊdaction. Vous pouvez tÊlÊverser des images, changer la confidentialitÊ et ajouter des avertissements de contenu avec les boutons ci-dessous.",
+ "onboarding.skip": "Passer",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Toujours activer le champ de rÊdaction de l'avertissement de contenu",
+ "settings.auto_collapse": "Repliage automatique",
+ "settings.auto_collapse_all": "Tout",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Posts longs",
+ "settings.auto_collapse_media": "Posts avec mÊdia",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "RÊponses",
+ "settings.close": "Fermer",
+ "settings.collapsed_statuses": "Posts repliÊs",
+ "settings.compose_box_opts": "Zone de rÊdaction",
+ "settings.confirm_before_clearing_draft": "Afficher une fenÃĒtre de confirmation avant d'Êcraser le message en cours de rÊdaction",
+ "settings.confirm_boost_missing_media_description": "Afficher une fenÃĒtre de confirmation avant de partager des posts manquant de description des mÊdias",
+ "settings.confirm_missing_media_description": "Afficher une fenÃĒtre de confirmation avant de publier des posts manquant de description de mÊdia",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Expression rationnelle",
+ "settings.content_warnings_filter": "Avertissement de contenu à ne pas automatiquement dÊplier :",
+ "settings.content_warnings_media_outside": "Afficher les mÊdias en dehors des avertissements de contenu",
+ "settings.content_warnings_media_outside_hint": "Reproduit le comportement par dÊfaut de Mastodon, les mÊdias attachÊs ne sont plus affectÊs par le bouton d'affichage d'un post avec avertissement",
+ "settings.content_warnings_shared_state": "Affiche/cache le contenu de toutes les copies à la fois",
+ "settings.content_warnings_shared_state_hint": "Reproduit le comportement par dÊfaut de Mastodon, le bouton d'avertissement de contenu affecte toutes les copies d'un post à la fois. Cela empÃĒchera le repliement automatique de n'importe quelle copie d'un post avec un avertissement dÊpliÊ",
+ "settings.content_warnings_unfold_opts": "Options de dÊpliement automatique",
+ "settings.deprecated_setting": "Cette option est maintenant dÊfinie par les {settings_page_link} de Mastodon",
+ "settings.enable_collapsed": "Activer le repliement des posts",
+ "settings.enable_collapsed_hint": "Les posts repliÊs ont une partie de leur contenu cachÊ pour libÊrer de l'espace sur l'Êcran. C'est une option diffÊrente de l'avertissement de contenu",
+ "settings.enable_content_warnings_auto_unfold": "DÊplier automatiquement les avertissements de contenu",
+ "settings.general": "GÊnÊral",
+ "settings.hicolor_privacy_icons": "Indicateurs de confidentialitÊ en couleurs",
+ "settings.hicolor_privacy_icons.hint": "Affiche les indicateurs de confidentialitÊ dans des couleurs facilement distinguables",
+ "settings.image_backgrounds": "Images en arrière-plan",
+ "settings.image_backgrounds_media": "PrÊvisualiser les mÊdias d'un post repliÊ",
+ "settings.image_backgrounds_media_hint": "Si le post a un mÊdia attachÊ, utiliser le premier comme arrière-plan du post",
+ "settings.image_backgrounds_users": "Donner aux posts repliÊs une image en arrière-plan",
+ "settings.inline_preview_cards": "Cartes d'aperçu pour les liens externes",
+ "settings.layout": "Mise en page :",
+ "settings.layout_opts": "Mise en page",
+ "settings.media": "MÊdia",
+ "settings.media_fullwidth": "Utiliser toute la largeur pour les aperçus",
+ "settings.media_letterbox": "Afficher les mÊdias en Letterbox",
+ "settings.media_letterbox_hint": "RÊduit le mÊdia et utilise une letterbox pour afficher l'image entière plutôt que de l'Êtirer et de la rogner",
+ "settings.media_reveal_behind_cw": "Toujours afficher les mÊdias sensibles avec avertissement",
+ "settings.notifications.favicon_badge": "Badge de notifications non lues dans la favicon",
+ "settings.notifications.favicon_badge.hint": "Ajoute un badge dans la favicon pour alerter d'une notification non lue",
+ "settings.notifications.tab_badge": "Badge de notifications non lues",
+ "settings.notifications.tab_badge.hint": "Affiche un badge de notifications non lues dans les icônes des colonnes quand la colonne n'est pas ouverte",
+ "settings.notifications_opts": "Options des notifications",
+ "settings.pop_in_left": "Gauche",
+ "settings.pop_in_player": "Activer le lecteur pop-in",
+ "settings.pop_in_position": "Position du lecteur pop-in :",
+ "settings.pop_in_right": "Droite",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "PrÊfixer les avertissements avec \"re: \" lors d'une rÊponse",
+ "settings.preselect_on_reply": "PrÊsÊlectionner les noms dâutilisateur¡rices lors de la rÊponse",
+ "settings.preselect_on_reply_hint": "PrÊsÊlectionner les noms d'utilisateurs après le premier lors d'une rÊponse à une conversation à plusieurs participants",
+ "settings.rewrite_mentions": "RÊÊcrire les mentions dans les posts affichÊs",
+ "settings.rewrite_mentions_acct": "RÊÊcrire avec le nom d'utilisateur¡rice et le domaine (lorsque le compte est distant)",
+ "settings.rewrite_mentions_no": "Ne pas rÊÊcrire les mentions",
+ "settings.rewrite_mentions_username": "RÊÊcrire avec le nom dâutilisateur¡rice",
+ "settings.shared_settings_link": "prÊfÊrences de l'utilisateur",
+ "settings.show_action_bar": "Afficher les boutons d'action dans les posts repliÊs",
+ "settings.show_content_type_choice": "Afficher le choix du type de contenu lors de la crÊation des posts",
+ "settings.show_reply_counter": "Afficher une estimation du nombre de rÊponses",
+ "settings.side_arm": "Bouton secondaire de publication :",
+ "settings.side_arm.none": "Aucun",
+ "settings.side_arm_reply_mode": "Quand vous rÊpondez à un post, le bouton secondaire de publication devrait :",
+ "settings.side_arm_reply_mode.copy": "Copier la confidentialitÊ du post auquel vous rÊpondez",
+ "settings.side_arm_reply_mode.keep": "Garder la confidentialitÊ Êtablie",
+ "settings.side_arm_reply_mode.restrict": "Restreindre la confidentialitÊ de la rÊponse à celle du post auquel vous rÊpondez",
+ "settings.status_icons": "Icônes des posts",
+ "settings.status_icons_language": "Indicateur de langue",
+ "settings.status_icons_local_only": "Indicateur de post local",
+ "settings.status_icons_media": "Indicateur de mÊdias et sondage",
+ "settings.status_icons_reply": "Indicateur de rÊponses",
+ "settings.status_icons_visibility": "Indicateur de la confidentialitÊ du post",
+ "settings.swipe_to_change_columns": "Glissement latÊral pour changer de colonne (mobile uniquement)",
+ "settings.tag_misleading_links": "Ãtiqueter les liens trompeurs",
+ "settings.tag_misleading_links.hint": "Ajouter une indication visuelle avec l'hôte cible du lien à chaque lien ne le mentionnant pas explicitement",
+ "settings.wide_view": "Vue Êlargie (mode ordinateur uniquement)",
+ "settings.wide_view_hint": "Ãtire les colonnes pour mieux remplir l'espace disponible.",
+ "status.collapse": "Replier",
+ "status.has_audio": "Contient des fichiers audio attachÊs",
+ "status.has_pictures": "Contient des images attachÊes",
+ "status.has_preview_card": "Contient une carte de prÊvisualisation attachÊe",
+ "status.has_video": "Contient des vidÊos attachÊes",
+ "status.in_reply_to": "Ce post est une rÊponse",
+ "status.is_poll": "Ce post est un sondage",
+ "status.local_only": "Visible uniquement depuis votre instance",
+ "status.sensitive_toggle": "Cliquer pour voir",
+ "status.uncollapse": "DÊplier",
+ "web_app_crash.change_your_settings": "Changez vos {settings}",
+ "web_app_crash.content": "Voici les diffÊrentes options qui s'offrent à vous :",
+ "web_app_crash.debug_info": "Informations de dÊbogage",
+ "web_app_crash.disable_addons": "DÊsactivez les extensions de votre navigateur, ainsi que les outils de traduction intÊgrÊs",
+ "web_app_crash.issue_tracker": "traqueur d'erreurs",
+ "web_app_crash.reload": "Rafraichir",
+ "web_app_crash.reload_page": "{reload} la page actuelle",
+ "web_app_crash.report_issue": "Signalez un bug dans le {issuetracker}",
+ "web_app_crash.settings": "paramètres",
+ "web_app_crash.title": "Nous sommes navrÊs, mais quelque chose s'est mal passÊ dans l'application Mastodon."
+}
diff --git a/app/javascript/flavours/glitch/locales/fy.json b/app/javascript/flavours/glitch/locales/fy.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/fy.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/ga.js b/app/javascript/flavours/glitch/locales/ga.js
deleted file mode 100644
index af2846ff8..000000000
--- a/app/javascript/flavours/glitch/locales/ga.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/ga.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/ga.json b/app/javascript/flavours/glitch/locales/ga.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/ga.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/gd.js b/app/javascript/flavours/glitch/locales/gd.js
deleted file mode 100644
index 604ee86dc..000000000
--- a/app/javascript/flavours/glitch/locales/gd.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/gd.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/gd.json b/app/javascript/flavours/glitch/locales/gd.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/gd.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/gl.js b/app/javascript/flavours/glitch/locales/gl.js
deleted file mode 100644
index 6a9140b1a..000000000
--- a/app/javascript/flavours/glitch/locales/gl.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/gl.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/gl.json b/app/javascript/flavours/glitch/locales/gl.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/gl.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/he.js b/app/javascript/flavours/glitch/locales/he.js
deleted file mode 100644
index 99516ee0c..000000000
--- a/app/javascript/flavours/glitch/locales/he.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/he.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/he.json b/app/javascript/flavours/glitch/locales/he.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/he.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/hi.js b/app/javascript/flavours/glitch/locales/hi.js
deleted file mode 100644
index 1a569495f..000000000
--- a/app/javascript/flavours/glitch/locales/hi.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/hi.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/hi.json b/app/javascript/flavours/glitch/locales/hi.json
new file mode 100644
index 000000000..3af3b73e2
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/hi.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "ā¤āĨā¤˛ā¤ŋā¤-ā¤¸āĨā¤ ā¤ā¤ ā¤ŽāĨā¤ĢāĨā¤¤ ā¤ā¤° ā¤ā¤Ēā¤¨ ā¤¸āĨā¤°āĨā¤¸ ā¤¸āĨā¤Ģā¤ŧāĨā¤ā¤ĩāĨā¤° ā¤šāĨ ā¤āĨ ā¤ŽāĨā¤¸āĨā¤āĨā¤ĄāĨā¤¨ ā¤¸āĨ ā¤ĢāĨā¤°āĨā¤ ā¤ā¤ŋā¤¯ā¤ž ā¤ā¤¯ā¤ž ā¤šāĨ",
+ "account.add_account_note": "@{name} ā¤āĨ ā¤˛ā¤ŋā¤ ā¤āĨā¤ ā¤¨āĨā¤ ā¤˛ā¤ŋā¤āĨā¤",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "ā¤Ģā¤ŧāĨā¤˛āĨā¤ā¤ŧ",
+ "account.joined": "ā¤ā¤ŧāĨā¤ā¤¨ ā¤ā¤°ā¤¨āĨ ā¤āĨ {date}",
+ "account.suspended_disclaimer_full": "ā¤¯ā¤š ā¤¯āĨā¤ā¤ŧā¤° ā¤ā¤ ā¤ŽāĨā¤Ąā¤°āĨā¤ā¤° ā¤ĻāĨā¤ĩā¤žā¤°ā¤ž ā¤¸ā¤¸āĨā¤ĒāĨā¤ā¤Ą ā¤ā¤° ā¤Ļā¤ŋā¤¯ā¤ž ā¤ā¤¯ā¤ž ā¤šāĨ",
+ "account.view_full_profile": "ā¤ĒāĨā¤°āĨ ā¤ĒāĨā¤°āĨā¤Ģā¤ŧā¤žā¤ā¤˛ ā¤ĻāĨā¤āĨā¤",
+ "account_note.cancel": "ā¤āĨā¤¨āĨā¤¸ā¤˛",
+ "account_note.edit": "ā¤ā¤Ąā¤ŋā¤ ā¤¯ā¤ž ā¤¸ā¤ŽāĨā¤Ēā¤žā¤Ļā¤¨ ā¤ā¤°āĨā¤",
+ "account_note.glitch_placeholder": "ā¤āĨā¤ ā¤āĨā¤ŽāĨā¤ā¤ ā¤¨ā¤šāĨā¤ ā¤Ļā¤ŋā¤¯ā¤ž ā¤ā¤¯ā¤ž ā¤šāĨ",
+ "account_note.save": "ā¤¸āĨā¤ĩ",
+ "advanced_options.icon_title": "ā¤ā¤Ąā¤ĩā¤žā¤ā¤¸āĨā¤Ą ā¤ā¤ĒāĨā¤ļā¤¨āĨā¤¸",
+ "advanced_options.local-only.long": "ā¤ĻāĨā¤¸ā¤°āĨ ā¤ā¤ā¤¸āĨā¤āĨā¤ā¤¸āĨā¤ ā¤ŽāĨā¤ ā¤ĒāĨā¤¸āĨā¤ ā¤¨ā¤ž ā¤ā¤°āĨā¤",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/hr.js b/app/javascript/flavours/glitch/locales/hr.js
deleted file mode 100644
index dbf9b4b9f..000000000
--- a/app/javascript/flavours/glitch/locales/hr.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/hr.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/hr.json b/app/javascript/flavours/glitch/locales/hr.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/hr.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/hu.js b/app/javascript/flavours/glitch/locales/hu.js
deleted file mode 100644
index 1f0849af3..000000000
--- a/app/javascript/flavours/glitch/locales/hu.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/hu.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/hu.json b/app/javascript/flavours/glitch/locales/hu.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/hu.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/hy.js b/app/javascript/flavours/glitch/locales/hy.js
deleted file mode 100644
index 96f6a4d19..000000000
--- a/app/javascript/flavours/glitch/locales/hy.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/hy.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/hy.json b/app/javascript/flavours/glitch/locales/hy.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/hy.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/id.js b/app/javascript/flavours/glitch/locales/id.js
deleted file mode 100644
index 07e5f7e56..000000000
--- a/app/javascript/flavours/glitch/locales/id.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/id.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/id.json b/app/javascript/flavours/glitch/locales/id.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/id.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/ig.json b/app/javascript/flavours/glitch/locales/ig.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/ig.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/io.js b/app/javascript/flavours/glitch/locales/io.js
deleted file mode 100644
index 74ea6fae6..000000000
--- a/app/javascript/flavours/glitch/locales/io.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/io.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/io.json b/app/javascript/flavours/glitch/locales/io.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/io.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/is.js b/app/javascript/flavours/glitch/locales/is.js
deleted file mode 100644
index b05a08ad0..000000000
--- a/app/javascript/flavours/glitch/locales/is.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/is.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/is.json b/app/javascript/flavours/glitch/locales/is.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/is.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/it.js b/app/javascript/flavours/glitch/locales/it.js
deleted file mode 100644
index 90f543093..000000000
--- a/app/javascript/flavours/glitch/locales/it.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/it.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/it.json b/app/javascript/flavours/glitch/locales/it.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/it.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/ja.js b/app/javascript/flavours/glitch/locales/ja.js
deleted file mode 100644
index 52aeed3d6..000000000
--- a/app/javascript/flavours/glitch/locales/ja.js
+++ /dev/null
@@ -1,158 +0,0 @@
-import inherited from 'mastodon/locales/ja.json';
-
-const messages = {
- 'getting_started.open_source_notice': 'Glitchsocã¯{Mastodon}ãĢããããĒãŧãĒãĒãŧããŗãŊãŧãšãŊãããĻã§ãĸã§ããčĒ°ã§ãGitHubīŧ{github}īŧããéįēãĢåå ããããåéĄãå ąåãããã§ããžãã',
- 'layout.auto': 'čĒå',
- 'layout.current_is': 'ããĒããŽįžå¨ãŽãŦã¤ãĸãĻã:',
- 'layout.desktop': 'ããšã¯ããã',
- 'layout.single': 'ãĸãã¤ãĢ',
- 'navigation_bar.app_settings': 'ãĸããĒč¨åŽ',
- 'navigation_bar.featured_users': 'į´šäģããĻãããĸãĢãĻãŗã',
- 'navigation_bar.misc': 'ããŽäģ',
- 'getting_started.onboarding': 'č§ŖčĒŦã襨į¤ē',
- 'onboarding.page_one.federation': '{domain}ã¯MastodonãŽã¤ãŗãšãŋãŗãšã§ããMastodonã¨ã¯ãįŦįĢãããĩãŧããéŖæēããĻäŊããŊãŧãˇãŖãĢãããã¯ãŧã¯ã§ããããããŽãĩãŧããŧãã¤ãŗãšãŋãŗãšã¨åŧãŗãžãã',
- 'onboarding.page_one.welcome': '{domain}ã¸ããããīŧ',
- 'onboarding.page_six.github': '{domain}ã¯GlitchsocãäŊŋį¨ããĻããžããGlitchsocã¯{Mastodon}ãŽããŦãŗããĒãŧãĒ{fork}ã§ããŠããĒMastodonãĸããĒãã¤ãŗãšãŋãŗãšã¨ãäēææ§ããããžããGlitchsocã¯åŽå
¨ãĢįĄæã§ããĒãŧããŗãŊãŧãšã§ãã{github}ã§ãã°å ąåãæŠčŊčĻæãããã¯č˛ĸįģããããã¨ãå¯čŊã§ãã',
- 'settings.always_show_spoilers_field': '常ãĢãŗãŗããŗãã¯ãŧããŗã°č¨åŽã襨į¤ēãã(æåŽããĒãå ´åã¯é常æį¨ŋ)',
- 'settings.auto_collapse': 'čĒåæããããŋ',
- 'settings.auto_collapse_all': 'ããšãĻ',
- 'settings.auto_collapse_lengthy': 'éˇãããĨãŧã',
- 'settings.auto_collapse_media': 'ãĄããŖãĸäģãããĨãŧã',
- 'settings.auto_collapse_notifications': 'éįĨ',
- 'settings.auto_collapse_reblogs': 'ããŧãšã',
- 'settings.auto_collapse_replies': 'čŋäŋĄ',
- 'settings.close': 'éãã',
- 'settings.collapsed_statuses': 'ããĨãŧãæããããŋ',
- 'settings.confirm_missing_media_description': 'įģåãĢ寞ããčŖåŠč¨čŧããĒãã¨ããĢæį¨ŋåãŽčĻåã襨į¤ēãã',
- 'settings.content_warnings': 'ãŗãŗããŗãã¯ãŧããŗã°',
- 'settings.content_warnings_filter': 'čĒŦæãĢæåŽããæåãåĢãžããĻããããŽãčĒåã§åąéããĒããããĢãã',
- 'settings.content_warnings.regexp': 'æŖčĻ襨įž',
- 'settings.enable_collapsed': 'ããĨãŧãæããããŋãæåšãĢãã',
- 'settings.enable_content_warnings_auto_unfold': 'ãŗãŗããŗãã¯ãŧããŗã°æåŽãããĻããæį¨ŋã常ãĢ襨į¤ēãã',
- 'settings.general': 'ä¸čŦ',
- 'settings.image_backgrounds': 'įģåčæ¯',
- 'settings.image_backgrounds_media': 'æãããžãããĄããŖãĸäģãããĨãŧããããŦããĨãŧ',
- 'settings.image_backgrounds_users': 'æãããžããããĨãŧããŽčæ¯ãå¤æ´ãã',
- 'settings.media': 'ãĄããŖãĸ',
- 'settings.media_letterbox': 'ãĄããŖãĸããŦãŋãŧããã¯ãšåŧã§čĄ¨į¤ē',
- 'settings.media_fullwidth': 'å
¨åš
ãĄããŖãĸããŦããĨãŧ',
- 'settings.navbar_under': 'ãããįģéĸä¸é¨ãĢį§ģåããã(ãĸãã¤ãĢ ãŦã¤ãĸãĻããŽãŋ)',
- 'settings.notifications.favicon_badge': 'éįĨãĸã¤ãŗãŗãĢæĒčĒäģļæ°ã襨į¤ēãã',
- 'settings.notifications_opts': 'éįĨãŽč¨åŽ',
- 'settings.notifications.tab_badge': 'æĒčĒãŽéįĨãããã¨ããéįĨãĸã¤ãŗãŗãĢããŧã¯ã襨į¤ēãã',
- 'settings.preferences': 'ãĻãŧãļãŧč¨åŽ',
- 'settings.wide_view': 'ã¯ã¤ãããĨãŧ(ããšã¯ããã ãŦã¤ãĸãĻããŽãŋ)',
- 'settings.compose_box_opts': 'ãŗãŗããŧãēããã¯ãšč¨åŽ',
- 'settings.show_reply_counter': 'æį¨ŋãĢ寞ãããĒããŠã¤ãŽæ°ã襨į¤ēãã',
- 'settings.side_arm': 'ãģãĢãŗããĒãŧããĨãŧãããŋãŗ',
- 'settings.side_arm.none': '襨į¤ēããĒã',
- 'settings.side_arm_reply_mode': 'čŋäŋĄæãŽæį¨ŋį¯å˛',
- 'settings.side_arm_reply_mode.copy': 'čŋäŋĄå
ãŽæį¨ŋį¯å˛ãåŠį¨ãã',
- 'settings.side_arm_reply_mode.keep': 'ãģãĢãŗããĒãŧããĨãŧãããŋãŗãŽč¨åŽãįļæãã',
- 'settings.side_arm_reply_mode.restrict': 'čŋäŋĄå
ãŽæį¨ŋį¯å˛ãĢåļéãã',
- 'settings.layout': 'ãŦã¤ãĸãĻã',
- 'settings.layout_opts': 'ãŦã¤ãĸãĻããŽč¨åŽ',
- 'status.collapse': 'æãããã',
- 'status.uncollapse': 'æããããŋãč§Ŗé¤',
-
- 'confirmations.missing_media_description.message': 'å°ãĒãã¨ã1ã¤ãŽįģåãĢčĻčĻéåŽŗč
ãŽãããŽįģåčĒŦæãäģä¸ãããĻããžãããããšãĻãŽįģåãĢ寞ããĻčĒŦæãäģä¸ãããã¨ãæãŋãžãã',
- 'confirmations.missing_media_description.confirm': 'ããŽãžãžæį¨ŋ',
- 'confirmations.missing_media_description.edit': 'ãĄããŖãĸãįˇ¨é',
-
- 'favourite_modal.combo': 'æŦĄãã㯠{combo} ãæŧãã°ãããããšãããã§ããžãã',
-
- 'home.column_settings.show_direct': 'DMã襨į¤ē',
- 'home.column_settings.advanced': 'éĢåēĻ',
- 'home.column_settings.filter_regex': 'æŖčĻ襨įžã§ããŖãĢãŋãŧ',
-
- 'notification.markForDeletion': 'é¸æ',
- 'notifications.clear': 'éįĨãå
¨ãĻã¯ãĒãĸãã',
- 'notifications.marked_clear_confirmation': 'åé¤ããå
¨ãĻãŽéįĨãåŽå
¨ãĢåé¤ããĻãããããã§ããīŧ',
- 'notifications.marked_clear': 'é¸æããéįĨãåé¤ãã',
-
- 'notification_purge.btn_all': 'ããšãĻ\né¸æ',
- 'notification_purge.btn_none': 'é¸æ\nč§Ŗé¤',
- 'notification_purge.btn_invert': 'é¸æã\nåčģĸ',
- 'notification_purge.btn_apply': 'é¸æããããŽã\nåé¤',
-
- 'compose.attach.upload': 'ããĄã¤ãĢããĸããããŧã',
- 'compose.attach.doodle': 'ãįĩĩæãããã',
- 'compose.attach': 'æˇģäģ...',
-
- 'advanced_options.local-only.short': 'ããŧãĢãĢéåŽ',
- 'advanced_options.local-only.long': 'äģãŽã¤ãŗãšãŋãŗãšãĢã¯æį¨ŋãããžãã',
- 'advanced_options.local-only.tooltip': 'ããŽæį¨ŋã¯ããŧãĢãĢéåŽæį¨ŋã§ã',
- 'advanced_options.icon_title': 'éĢåēĻãĒč¨åŽ',
- 'advanced_options.threaded_mode.short': 'ãšãŦãããĸãŧã',
- 'advanced_options.threaded_mode.long': 'æį¨ŋæãĢčĒåįãĢčŋäŋĄãããããĢč¨åŽããžã',
- 'advanced_options.threaded_mode.tooltip': 'ãšãŦãããĸãŧããæåšãĢãã',
-
- 'navigation_bar.direct': 'ãã¤ãŦã¯ããĄããģãŧã¸',
- 'navigation_bar.bookmarks': 'ããã¯ããŧã¯',
- 'column.bookmarks': 'ããã¯ããŧã¯',
-
- 'account.add_account_note': '@{name}ãŽãĄãĸãčŋŊå ',
- 'account.disclaimer_full': 'ããŽãĻãŧãļãŧæ
å ąã¯ä¸æŖįĸēãĒå¯čŊæ§ããããžãã',
- 'account.follows': 'ããŠããŧ',
- 'account.suspended_disclaimer_full': 'ããŽãĻãŧãļãŧã¯ãĸããŦãŧãŋãĢããåæĸãããžããã',
- 'account.view_full_profile': 'æŖįĸēãĒæ
å ąãčĻã',
- 'account_note.cancel': 'ããŖãŗãģãĢ',
- 'account_note.edit': 'įˇ¨é',
- 'account_note.glitch_placeholder': 'ãĄãĸããããžãã',
- 'account_note.save': 'äŋå',
- 'boost_modal.missing_description': 'ããŽããĨãŧããĢã¯å°ãĒãã¨ã1ã¤ãŽįģåãĢčĒŦæãäģä¸ãããĻããžãã',
- 'community.column_settings.allow_local_only': 'ããŧãĢãĢéåŽæį¨ŋã襨į¤ēãã',
- 'compose.content-type.html': 'HTML',
- 'compose.content-type.markdown': 'ããŧã¯ããĻãŗ',
- 'compose.content-type.plain': 'ããŦãŧãŗãããšã',
- 'compose_form.poll.multiple_choices': 'č¤æ°åįã訹å¯',
- 'compose_form.poll.single_choice': 'åä¸åįã訹å¯',
- 'compose_form.spoiler': 'æŦæã¯čĻåãŽåžããĢé ã',
- 'confirmation_modal.do_not_ask_again': 'ããīŧåēĻå°ããĒã',
- 'confirmations.discard_edit_media.confirm': 'į ´æŖ',
- 'confirmations.discard_edit_media.message': 'ãĄããŖãĸãŽčĒŦæãģããŦããĨãŧãĢäŋåããĻããĒãå¤æ´ããããžããį ´æŖããĻãããããã§ããīŧ',
- 'confirmations.unfilter': 'ããŽããŖãĢãŋãŧãããããĨãŧããĢã¤ããĻãŽæ
å ą',
- 'confirmations.unfilter.author': 'įč
',
- 'confirmations.unfilter.confirm': 'čĻã',
- 'confirmations.unfilter.edit_filter': 'ããŖãĢãŋãŧãįˇ¨é',
- 'confirmations.unfilter.filters': 'éŠį¨ãããããŖãĢãŋãŧ',
- 'content-type.change': 'ãŗãŗããŗãåŊĸåŧãå¤æ´',
- 'direct.conversations_mode': 'äŧ芹',
- 'direct.timeline_mode': 'ãŋã¤ã ãŠã¤ãŗ',
- 'endorsed_accounts_editor.endorsed_accounts': 'į´šäģããĻãããĻãŧãļãŧ',
- 'keyboard_shortcuts.bookmark': 'ããã¯ããŧã¯',
- 'keyboard_shortcuts.secondary_toot': 'ãģãĢãŗããĒãŧããĨãŧããŽå
Ŧéį¯å˛ã§ããĨãŧããã',
- 'keyboard_shortcuts.toggle_collapse': 'æãããã/æããããŋãč§Ŗé¤',
- 'moved_to_warning': 'ããŽãĸãĢãĻãŗã{moved_to_link}ãĢåŧãŖčļãããããæ°ããããŠãã¯ãŧãåãå
ĨããĻããžããã',
- 'settings.show_action_bar': 'ãĸã¯ãˇã§ãŗããŧã襨į¤ē',
- 'settings.filtering_behavior': 'ããŖãĢãŋãŧãŽæ¯ãčã',
- 'settings.filtering_behavior.cw': 'čĻåæãĢããŖãĢãŋãŧãããåčĒãäģå ããĻ襨į¤ēããžã',
- 'settings.filtering_behavior.drop': 'ããŖãĢãŋãŧãããããĨãŧããåŽå
¨ãĢé ããžã',
- 'settings.filtering_behavior.hide': '\'ããŖãĢãŋãŧãããžãã\'ã¨ããŽįįąãįĸēčĒããããŋãŗã襨į¤ēãã',
- 'settings.filtering_behavior.upstream': '\'ããŖãĢãŋãŧãããžãã\'ã¨ãããŠMastodonã¨åããããĢ襨į¤ēãã',
- 'settings.filters': 'ããŖãĢãŋãŧ',
- 'settings.hicolor_privacy_icons': 'ãã¤ãĢãŠãŧãŽå
Ŧéį¯å˛ãĸã¤ãŗãŗ',
- 'settings.hicolor_privacy_icons.hint': 'å
Ŧéį¯å˛ãĸã¤ãŗãŗãæãã襨į¤ēãčĻåããããč˛ãĢããžã',
- 'settings.confirm_boost_missing_media_description': 'ãĄããŖãĸãŽčĒŦæãæŦ ããĻããããĨãŧããããŧãšãããåãĢįĸēčĒãã¤ãĸãã°ã襨į¤ēãã',
- 'settings.tag_misleading_links': 'čĒ¤č§ŖãæããĒãŗã¯ãĢãŋã°ãã¤ãã',
- 'settings.tag_misleading_links.hint': 'æį¤ēįãĢč¨åããĻããĒãããšãĻãŽãĒãŗã¯ãĢããĒãŗã¯ãŋãŧã˛ããããšããåĢãčĻčĻįãĒ襨į¤ēãčŋŊå ããžã',
- 'settings.rewrite_mentions': '襨į¤ēãããããĨãŧããŽčŋäŋĄå
襨į¤ēãæ¸ãæãã',
- 'settings.rewrite_mentions_acct': 'ãĻãŧãļãŧåã¨ããĄã¤ãŗåīŧãĸãĢãĻãŗãããĒãĸãŧããŽå ´åīŧã襨į¤ēãããããĢæ¸ãæãã',
- 'settings.rewrite_mentions_no': 'æ¸ãæããĒã',
- 'settings.rewrite_mentions_username': 'ãĻãŧãļãŧåã襨į¤ēãããããĢæ¸ãæãã',
- 'settings.swipe_to_change_columns': 'ãšã¯ã¤ãã§ãĢãŠã ãåãæŋãå¯čŊãĢããīŧãĸãã¤ãĢãŽãŋīŧ',
- 'settings.prepend_cw_re': 'čŋäŋĄããã¨ãčĻåãĢ "re: "ãäģå ãã',
- 'settings.preselect_on_reply': 'čŋäŋĄããã¨ããĻãŧãļãŧåãäēåé¸æãã',
- 'settings.confirm_before_clearing_draft': 'äŊæããĻãããĄããģãŧã¸ãä¸æ¸ããããåãĢįĸēčĒãã¤ãĸãã°ã襨į¤ēãã',
- 'settings.show_content_type_choice': 'ããĨãŧããæ¸ãã¨ããŗãŗããŗãåŊĸåŧãŽé¸æããŋãŗã襨į¤ēãã',
- 'settings.inline_preview_cards': 'å¤é¨ãĒãŗã¯ãĢåãčžŧãŋããŦããĨãŧãæåšãĢãã',
- 'settings.media_reveal_behind_cw': 'æĸåŽã§čĻåæåŽãããĻããããĨãŧããŽé˛čĻ§æŗ¨æãĄããŖãĸã襨į¤ēãã',
- 'settings.pop_in_left': 'åˇĻ',
- 'settings.pop_in_player': 'ãããã¤ãŗããŦã¤ã¤ãŧãæåšåãã',
- 'settings.pop_in_position': 'ãããã¤ãŗããŦãŧã¤ãŧãŽäŊįŊŽ:',
- 'settings.pop_in_right': 'åŗ',
- 'status.show_filter_reason': '(įįąãčĻã)',
-
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/ja.json b/app/javascript/flavours/glitch/locales/ja.json
new file mode 100644
index 000000000..5a5365b13
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/ja.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "@{name}ãŽãĄãĸãčŋŊå ",
+ "account.disclaimer_full": "ããŽãĻãŧãļãŧæ
å ąã¯ä¸æŖįĸēãĒå¯čŊæ§ããããžãã",
+ "account.follows": "ããŠããŧ",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "ããŽãĻãŧãļãŧã¯ãĸããŦãŧãŋãĢããåæĸãããžããã",
+ "account.view_full_profile": "æŖįĸēãĒæ
å ąãčĻã",
+ "account_note.cancel": "ããŖãŗãģãĢ",
+ "account_note.edit": "įˇ¨é",
+ "account_note.glitch_placeholder": "ãĄãĸããããžãã",
+ "account_note.save": "äŋå",
+ "advanced_options.icon_title": "éĢåēĻãĒč¨åŽ",
+ "advanced_options.local-only.long": "äģãŽã¤ãŗãšãŋãŗãšãĢã¯æį¨ŋãããžãã",
+ "advanced_options.local-only.short": "ããŧãĢãĢéåŽ",
+ "advanced_options.local-only.tooltip": "ããŽæį¨ŋã¯ããŧãĢãĢéåŽæį¨ŋã§ã",
+ "advanced_options.threaded_mode.long": "æį¨ŋæãĢčĒåįãĢčŋäŋĄãããããĢč¨åŽããžã",
+ "advanced_options.threaded_mode.short": "ãšãŦãããĸãŧã",
+ "advanced_options.threaded_mode.tooltip": "ãšãŦãããĸãŧããæåšãĢãã",
+ "boost_modal.missing_description": "ããŽããĨãŧããĢã¯å°ãĒãã¨ã1ã¤ãŽįģåãĢčĒŦæãäģä¸ãããĻããžãã",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "ããŽäģ",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "ããŽäģãŽãĒããˇã§ãŗ",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "ãĒãšã",
+ "column_subheading.navigation": "ããã˛ãŧãˇã§ãŗ",
+ "community.column_settings.allow_local_only": "ããŧãĢãĢéåŽæį¨ŋã襨į¤ēãã",
+ "compose.attach": "æˇģäģ...",
+ "compose.attach.doodle": "ãįĩĩæãããã",
+ "compose.attach.upload": "ããĄã¤ãĢããĸããããŧã",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "ããŧã¯ããĻãŗ",
+ "compose.content-type.plain": "ããŦãŧãŗãããšã",
+ "compose_form.poll.multiple_choices": "č¤æ°åįã訹å¯",
+ "compose_form.poll.single_choice": "åä¸åįã訹å¯",
+ "compose_form.spoiler": "æŦæã¯čĻåãŽåžããĢé ã",
+ "confirmation_modal.do_not_ask_again": "ããīŧåēĻå°ããĒã",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "ããŽãžãžæį¨ŋ",
+ "confirmations.missing_media_description.edit": "ãĄããŖãĸãįˇ¨é",
+ "confirmations.missing_media_description.message": "å°ãĒãã¨ã1ã¤ãŽįģåãĢčĻčĻéåŽŗč
ãŽãããŽįģåčĒŦæãäģä¸ãããĻããžãããããšãĻãŽįģåãĢ寞ããĻčĒŦæãäģä¸ãããã¨ãæãŋãžãã",
+ "confirmations.unfilter.author": "įč
",
+ "confirmations.unfilter.confirm": "čĻã",
+ "confirmations.unfilter.edit_filter": "ããŖãĢãŋãŧãįˇ¨é",
+ "confirmations.unfilter.filters": "éŠį¨ãããããŖãĢãŋãŧ",
+ "content-type.change": "ãŗãŗããŗãåŊĸåŧãå¤æ´",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "į´šäģããĻãããĻãŧãļãŧ",
+ "favourite_modal.combo": "æŦĄãã㯠{combo} ãæŧãã°ãããããšãããã§ããžãã",
+ "getting_started.onboarding": "č§ŖčĒŦã襨į¤ē",
+ "home.column_settings.advanced": "éĢåēĻ",
+ "home.column_settings.filter_regex": "æŖčĻ襨įžã§ããŖãĢãŋãŧ",
+ "home.column_settings.show_direct": "DMã襨į¤ē",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "ããã¯ããŧã¯",
+ "keyboard_shortcuts.secondary_toot": "ãģãĢãŗããĒãŧããĨãŧããŽå
Ŧéį¯å˛ã§ããĨãŧããã",
+ "keyboard_shortcuts.toggle_collapse": "æãããã/æããããŋãč§Ŗé¤",
+ "layout.auto": "čĒå",
+ "layout.desktop": "ããšã¯ããã",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "ãĸãã¤ãĢ",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "ããŽãĸãĢãĻãŗã{moved_to_link}ãĢåŧãŖčļãããããæ°ããããŠãã¯ãŧãåãå
ĨããĻããžããã",
+ "navigation_bar.app_settings": "ãĸããĒč¨åŽ",
+ "navigation_bar.featured_users": "į´šäģããĻãããĸãĢãĻãŗã",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "ããŽäģ",
+ "notification.markForDeletion": "é¸æ",
+ "notification_purge.btn_all": "ããšãĻ\né¸æ",
+ "notification_purge.btn_apply": "é¸æããããŽã\nåé¤",
+ "notification_purge.btn_invert": "é¸æã\nåčģĸ",
+ "notification_purge.btn_none": "é¸æ\nč§Ŗé¤",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "é¸æããéįĨãåé¤ãã",
+ "notifications.marked_clear_confirmation": "åé¤ããå
¨ãĻãŽéįĨãåŽå
¨ãĢåé¤ããĻãããããã§ããīŧ",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain}ã¯MastodonãŽã¤ãŗãšãŋãŗãšã§ããMastodonã¨ã¯ãįŦįĢãããĩãŧããéŖæēããĻäŊããŊãŧãˇãŖãĢãããã¯ãŧã¯ã§ããããããŽãĩãŧããŧãã¤ãŗãšãŋãŗãšã¨åŧãŗãžãã",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "{domain}ã¸ããããīŧ",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain}ã¯GlitchsocãäŊŋį¨ããĻããžããGlitchsocã¯{Mastodon}ãŽããŦãŗããĒãŧãĒ{fork}ã§ããŠããĒMastodonãĸããĒãã¤ãŗãšãŋãŗãšã¨ãäēææ§ããããžããGlitchsocã¯åŽå
¨ãĢįĄæã§ããĒãŧããŗãŊãŧãšã§ãã{github}ã§ãã°å ąåãæŠčŊčĻæãããã¯č˛ĸįģããããã¨ãå¯čŊã§ãã",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "常ãĢãŗãŗããŗãã¯ãŧããŗã°č¨åŽã襨į¤ēãã(æåŽããĒãå ´åã¯é常æį¨ŋ)",
+ "settings.auto_collapse": "čĒåæããããŋ",
+ "settings.auto_collapse_all": "ããšãĻ",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "éˇãããĨãŧã",
+ "settings.auto_collapse_media": "ãĄããŖãĸäģãããĨãŧã",
+ "settings.auto_collapse_notifications": "éįĨ",
+ "settings.auto_collapse_reblogs": "ããŧãšã",
+ "settings.auto_collapse_replies": "čŋäŋĄ",
+ "settings.close": "éãã",
+ "settings.collapsed_statuses": "ããĨãŧãæããããŋ",
+ "settings.compose_box_opts": "ãŗãŗããŧãēããã¯ãšč¨åŽ",
+ "settings.confirm_before_clearing_draft": "äŊæããĻãããĄããģãŧã¸ãä¸æ¸ããããåãĢįĸēčĒãã¤ãĸãã°ã襨į¤ēãã",
+ "settings.confirm_boost_missing_media_description": "ãĄããŖãĸãŽčĒŦæãæŦ ããĻããããĨãŧããããŧãšãããåãĢįĸēčĒãã¤ãĸãã°ã襨į¤ēãã",
+ "settings.confirm_missing_media_description": "įģåãĢ寞ããčŖåŠč¨čŧããĒãã¨ããĢæį¨ŋåãŽčĻåã襨į¤ēãã",
+ "settings.content_warnings": "ãŗãŗããŗãã¯ãŧããŗã°",
+ "settings.content_warnings.regexp": "æŖčĻ襨įž",
+ "settings.content_warnings_filter": "čĒŦæãĢæåŽããæåãåĢãžããĻããããŽãčĒåã§åąéããĒããããĢãã",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "ããĨãŧãæããããŋãæåšãĢãã",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "ãŗãŗããŗãã¯ãŧããŗã°æåŽãããĻããæį¨ŋã常ãĢ襨į¤ēãã",
+ "settings.general": "ä¸čŦ",
+ "settings.hicolor_privacy_icons": "ãã¤ãĢãŠãŧãŽå
Ŧéį¯å˛ãĸã¤ãŗãŗ",
+ "settings.hicolor_privacy_icons.hint": "å
Ŧéį¯å˛ãĸã¤ãŗãŗãæãã襨į¤ēãčĻåããããč˛ãĢããžã",
+ "settings.image_backgrounds": "įģåčæ¯",
+ "settings.image_backgrounds_media": "æãããžãããĄããŖãĸäģãããĨãŧããããŦããĨãŧ",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "æãããžããããĨãŧããŽčæ¯ãå¤æ´ãã",
+ "settings.inline_preview_cards": "å¤é¨ãĒãŗã¯ãĢåãčžŧãŋããŦããĨãŧãæåšãĢãã",
+ "settings.layout": "ãŦã¤ãĸãĻã",
+ "settings.layout_opts": "ãŦã¤ãĸãĻããŽč¨åŽ",
+ "settings.media": "ãĄããŖãĸ",
+ "settings.media_fullwidth": "å
¨åš
ãĄããŖãĸããŦããĨãŧ",
+ "settings.media_letterbox": "ãĄããŖãĸããŦãŋãŧããã¯ãšåŧã§čĄ¨į¤ē",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "æĸåŽã§čĻåæåŽãããĻããããĨãŧããŽé˛čĻ§æŗ¨æãĄããŖãĸã襨į¤ēãã",
+ "settings.notifications.favicon_badge": "éįĨãĸã¤ãŗãŗãĢæĒčĒäģļæ°ã襨į¤ēãã",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "æĒčĒãŽéįĨãããã¨ããéįĨãĸã¤ãŗãŗãĢããŧã¯ã襨į¤ēãã",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "éįĨãŽč¨åŽ",
+ "settings.pop_in_left": "åˇĻ",
+ "settings.pop_in_player": "ãããã¤ãŗããŦã¤ã¤ãŧãæåšåãã",
+ "settings.pop_in_position": "ãããã¤ãŗããŦãŧã¤ãŧãŽäŊįŊŽ:",
+ "settings.pop_in_right": "åŗ",
+ "settings.preferences": "ãĻãŧãļãŧč¨åŽ",
+ "settings.prepend_cw_re": "čŋäŋĄããã¨ãčĻåãĢ \"re: \"ãäģå ãã",
+ "settings.preselect_on_reply": "čŋäŋĄããã¨ããĻãŧãļãŧåãäēåé¸æãã",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "襨į¤ēãããããĨãŧããŽčŋäŋĄå
襨į¤ēãæ¸ãæãã",
+ "settings.rewrite_mentions_acct": "ãĻãŧãļãŧåã¨ããĄã¤ãŗåīŧãĸãĢãĻãŗãããĒãĸãŧããŽå ´åīŧã襨į¤ēãããããĢæ¸ãæãã",
+ "settings.rewrite_mentions_no": "æ¸ãæããĒã",
+ "settings.rewrite_mentions_username": "ãĻãŧãļãŧåã襨į¤ēãããããĢæ¸ãæãã",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "ãĸã¯ãˇã§ãŗããŧã襨į¤ē",
+ "settings.show_content_type_choice": "ããĨãŧããæ¸ãã¨ããŗãŗããŗãåŊĸåŧãŽé¸æããŋãŗã襨į¤ēãã",
+ "settings.show_reply_counter": "æį¨ŋãĢ寞ãããĒããŠã¤ãŽæ°ã襨į¤ēãã",
+ "settings.side_arm": "ãģãĢãŗããĒãŧããĨãŧãããŋãŗ",
+ "settings.side_arm.none": "襨į¤ēããĒã",
+ "settings.side_arm_reply_mode": "čŋäŋĄæãŽæį¨ŋį¯å˛",
+ "settings.side_arm_reply_mode.copy": "čŋäŋĄå
ãŽæį¨ŋį¯å˛ãåŠį¨ãã",
+ "settings.side_arm_reply_mode.keep": "ãģãĢãŗããĒãŧããĨãŧãããŋãŗãŽč¨åŽãįļæãã",
+ "settings.side_arm_reply_mode.restrict": "čŋäŋĄå
ãŽæį¨ŋį¯å˛ãĢåļéãã",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "ãšã¯ã¤ãã§ãĢãŠã ãåãæŋãå¯čŊãĢããīŧãĸãã¤ãĢãŽãŋīŧ",
+ "settings.tag_misleading_links": "čĒ¤č§ŖãæããĒãŗã¯ãĢãŋã°ãã¤ãã",
+ "settings.tag_misleading_links.hint": "æį¤ēįãĢč¨åããĻããĒãããšãĻãŽãĒãŗã¯ãĢããĒãŗã¯ãŋãŧã˛ããããšããåĢãčĻčĻįãĒ襨į¤ēãčŋŊå ããžã",
+ "settings.wide_view": "ã¯ã¤ãããĨãŧ(ããšã¯ããã ãŦã¤ãĸãĻããŽãŋ)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "æãããã",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "æããããŋãč§Ŗé¤",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/ka.js b/app/javascript/flavours/glitch/locales/ka.js
deleted file mode 100644
index 3e06f4282..000000000
--- a/app/javascript/flavours/glitch/locales/ka.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/ka.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/ka.json b/app/javascript/flavours/glitch/locales/ka.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/ka.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/kab.js b/app/javascript/flavours/glitch/locales/kab.js
deleted file mode 100644
index 5ed1156ef..000000000
--- a/app/javascript/flavours/glitch/locales/kab.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/kab.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/kab.json b/app/javascript/flavours/glitch/locales/kab.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/kab.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/kk.js b/app/javascript/flavours/glitch/locales/kk.js
deleted file mode 100644
index 8d00fb035..000000000
--- a/app/javascript/flavours/glitch/locales/kk.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/kk.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/kk.json b/app/javascript/flavours/glitch/locales/kk.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/kk.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/kn.js b/app/javascript/flavours/glitch/locales/kn.js
deleted file mode 100644
index 1c50e3628..000000000
--- a/app/javascript/flavours/glitch/locales/kn.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/kn.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/kn.json b/app/javascript/flavours/glitch/locales/kn.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/kn.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/ko.js b/app/javascript/flavours/glitch/locales/ko.js
deleted file mode 100644
index a817044c1..000000000
--- a/app/javascript/flavours/glitch/locales/ko.js
+++ /dev/null
@@ -1,208 +0,0 @@
-import inherited from 'mastodon/locales/ko.json';
-
-const messages = {
- 'account.add_account_note': '@{name} ëė ëí ëŠëĒ¨ ėļę°',
- 'account.disclaimer_full': 'ėëė ėë ė ëŗ´ë¤ė ėŦėŠėė íëĄíė ėë˛Ŋíę˛ ëíë´ė§ ëĒģíęŗ ėė ėë ėėĩëë¤.',
- 'account.follows': 'íëĄė°',
- 'account.suspended_disclaimer_full': 'ė´ ėŦėŠėë ė¤ėŦėė ėí´ ė ė§ëėėĩëë¤.',
- 'account.view_full_profile': 'ė ė˛´ íëĄí ëŗ´ę¸°',
- 'account_note.cancel': 'ėˇ¨ė',
- 'account_note.edit': 'í¸ė§',
- 'account_note.glitch_placeholder': 'ėŊëŠí¸ę° ėėĩëë¤',
- 'account_note.save': 'ė ėĨ',
- 'advanced_options.icon_title': 'ęŗ ę¸ ėĩė
',
- 'advanced_options.local-only.long': 'ë¤ëĨ¸ ėë˛ė ę˛ėíė§ ė기',
- 'advanced_options.local-only.short': 'ëĄėģŦ ė ėŠ',
- 'advanced_options.local-only.tooltip': 'ė´ ę˛ėëŦŧė ëĄėģŦ ė ėŠė
ëë¤',
- 'advanced_options.threaded_mode.long': 'ę¸ė ėėąíęŗ ėëėŧëĄ ëĩę¸ ė´ę¸°',
- 'advanced_options.threaded_mode.short': 'ę¸íë ëĒ¨ë',
- 'advanced_options.threaded_mode.tooltip': 'ę¸íë ëĒ¨ë íėąíë¨',
- 'boost_modal.missing_description': 'ė´ ę˛ėëŦŧė ė¤ëĒ
ė´ ėë 미ëė´ëĨŧ íŦí¨íęŗ ėėĩëë¤',
- 'column.favourited_by': 'ėĻ겨ė°žę¸° í ėŦë',
- 'column.heading': '기í',
- 'column.reblogged_by': 'ëļė¤í¸ í ėŦë',
- 'column.subheading': 'ë¤ėí ėĩė
',
- 'column.toot': 'ę˛ėëŦŧęŗŧ ëĩę¸',
- 'column_header.profile': 'íëĄí',
- 'column_subheading.lists': 'ëĻŦė¤í¸',
- 'column_subheading.navigation': 'íė',
- 'community.column_settings.allow_local_only': 'ëĄėģŦ ė ėŠ ę¸ ëŗ´ę¸°',
- 'compose.attach': 'ė˛¨ëļâĻ',
- 'compose.attach.doodle': 'ëę° ęˇ¸ë ¤ëŗ´ė¸ė',
- 'compose.attach.upload': 'íėŧ ė
ëĄë',
- 'compose.content-type.html': 'HTML',
- 'compose.content-type.markdown': 'ë§íŦë¤ė´',
- 'compose.content-type.plain': 'ėŧë° í
ė¤í¸',
- 'compose_form.poll.multiple_choices': 'ėŦëŦ ę° ė í ę°ëĨ',
- 'compose_form.poll.single_choice': 'íëë§ ė í ę°ëĨ',
- 'compose_form.spoiler': 'ę˛Ŋęŗ ëŠėė§ëĄ ė¨ę¸°ę¸°',
- 'confirmation_modal.do_not_ask_again': 'ë¤ėëļí° íė¸ė°Ŋė ëė°ė§ ė기',
- 'confirmations.discard_edit_media.message': 'ė ėĨíė§ ėė 미ëė´ ė¤ëĒ
ė´ë 미ëĻŦëŗ´ę¸°ę° ėėĩëë¤, ꡸ëĨ ëĢėęšė?',
- 'confirmations.missing_media_description.confirm': '꡸ëĨ ëŗ´ë´ę¸°',
- 'confirmations.missing_media_description.edit': '미ëė´ í¸ė§',
- 'confirmations.missing_media_description.message': 'íë ė´ėė 미ëė´ė ëí´ ė¤ëĒ
ė ėėąíė§ ėėėĩëë¤. ėę°ėĨė ė¸ė ėí´ ëĒ¨ë 미ëė´ė ė¤ëĒ
ė ėļę°íë ę˛ė ęŗ ë ¤í´ėŖŧė¸ė.',
- 'confirmations.unfilter': 'ė´ íí°ë§ ë ę¸ė ëí ė ëŗ´',
- 'confirmations.unfilter.author': 'ėėąė',
- 'confirmations.unfilter.confirm': 'ëŗ´ę¸°',
- 'confirmations.unfilter.edit_filter': 'íí° í¸ė§',
- 'confirmations.unfilter.filters': 'ė ėŠë {count, plural, one {íí°} other {íí°ë¤}}',
- 'content-type.change': 'ėŊí
í¸ íė
',
- 'direct.conversations_mode': 'ëí',
- 'direct.timeline_mode': 'íėëŧė¸',
- 'endorsed_accounts_editor.endorsed_accounts': 'ėļė˛íë ęŗė ë¤',
- 'favourite_modal.combo': 'ë¤ėė {combo}ëĨŧ ëëŦ ęą´ëë¸ ė ėėĩëë¤',
- 'getting_started.onboarding': 'ëëŦëŗ´ę¸°',
- 'getting_started.open_source_notice': 'ę¸ëĻŦėšë {Mastodon}ė ėė ė¤íėė¤ íŦíŦë˛ė ė
ëë¤. {github}ėė ëŦ¸ė ëĨŧ ëĻŦíŦí
íęą°ë 기ėŦëĨŧ í ė ėėĩëë¤.',
- 'home.column_settings.advanced': 'ęŗ ę¸',
- 'home.column_settings.filter_regex': 'ė ęˇííėėŧëĄ íí°',
- 'home.column_settings.show_direct': 'DM ëŗ´ėŦėŖŧ기',
- 'home.settings': 'ėģŦëŧ ė¤ė ',
- 'keyboard_shortcuts.bookmark': 'ëļë§íŦ',
- 'keyboard_shortcuts.secondary_toot': 'ëŗ´ėĄ° íëŧė´ë˛ė ė¤ė ėŧëĄ ę¸ ëŗ´ë´ę¸°',
- 'keyboard_shortcuts.toggle_collapse': 'ę¸ ė ęą°ë íŧėšę¸°',
- 'layout.auto': 'ėë',
- 'layout.current_is': 'íėŦ ë ė´ėė:',
- 'layout.desktop': 'ë°ė¤íŦí',
- 'layout.hint.auto': 'âęŗ ę¸ ėš ė¸í°íė´ė¤ íėąíâ ė¤ė ęŗŧ í늴 íŦ기ė ë°ëŧ ėëėŧëĄ ë ė´ėėė ęŗ ëĻ
ëë¤.',
- 'layout.hint.desktop': 'âęŗ ę¸ ėš ė¸í°íė´ė¤ íėąíâ ė¤ė ė´ë í늴 íŦ기ė ę´ęŗ ėė´ ëŠí° ėģŦëŧ ë ė´ėėė ėŦėŠíŠëë¤.',
- 'layout.hint.single': 'âęŗ ę¸ ėš ė¸í°íė´ė¤ íėąíâ ė¤ė ė´ë í늴 íŦ기ė ę´ęŗ ėė´ ėąę¸ ėģŦëŧ ë ė´ėėė ėŦėŠíŠëë¤.',
- 'layout.single': 'ëĒ¨ë°ėŧ',
- 'media_gallery.sensitive': 'ë¯ŧę°í¨',
- 'moved_to_warning': 'ė´ ęŗė ė {moved_to_link}ëĄ ė´ëí ę˛ėŧëĄ íėëėęŗ , ė íëĄė°ëĨŧ ë°ė§ ėë ę˛ ę°ėĩëë¤.',
- 'navigation_bar.app_settings': 'ėą ė¤ė ',
- 'navigation_bar.featured_users': 'ėļė˛ë ęŗė ë¤',
- 'navigation_bar.misc': 'ë¤ėí ėĩė
ë¤',
- 'notification.markForDeletion': 'ėė í기 ėí´ íė',
- 'notification_purge.btn_all': 'ė ė˛´ė í',
- 'notification_purge.btn_apply': 'ė íë ėëĻŧ ėė ',
- 'notification_purge.btn_invert': 'ė íë°ė ',
- 'notification_purge.btn_none': 'ė ė˛´ė íí´ė ',
- 'notification_purge.start': 'ėëĻŧ ėė ëĒ¨ëëĄ ë¤ė´ę°ę¸°',
- 'notifications.clear': 'ë´ ėëĻŧ ëĒ¨ë ė§ė°ę¸°',
- 'notifications.marked_clear': 'ė íë ėëĻŧ ëĒ¨ë ėė ',
- 'notifications.marked_clear_confirmation': 'ė ë§ëĄ ė íë ėëĻŧë¤ė ėęĩŦė ėŧëĄ ėė í ęšė?',
- 'onboarding.done': 'ėëŖ',
- 'onboarding.next': 'ë¤ė',
- 'onboarding.page_five.public_timelines': 'ëĄėģŦ íėëŧė¸ė {domain}ė ėë ëĒ¨ë ėŦëė ęŗĩę°ę¸ė ëŗ´ėŦė¤ëë¤. ė°íŠ íėëŧė¸ė {domain}ė ėë ėŦëë¤ė´ íëĄė° íë ëĒ¨ë ėŦëė ęŗĩę°ę¸ė ëŗ´ėŦė¤ëë¤. ė´ę˛ë¤ė ęŗĩę° íėëŧė¸ė´ëŧęŗ ëļëĻŦ늰, ėëĄė´ ėŦëë¤ė ë°ę˛Ŧí ė ėë ėĸė ë°Šë˛ė
ëë¤.',
- 'onboarding.page_four.home': 'í íėëŧė¸ė ëšė ė´ íëĄė° í ėŦëë¤ė ę¸ė ëŗ´ėŦė¤ëë¤.',
- 'onboarding.page_four.notifications': 'ėëĻŧ ėģŦëŧė ëęĩ°ę°ę° ëšė ęŗŧ ėí¸ėėŠí ę˛ë¤ė ëŗ´ėŦė¤ëë¤.',
- 'onboarding.page_one.federation': '{domain}ė ë§ė¤í ëė \'ė¸ė¤í´ė¤\'ė
ëë¤. ë§ė¤í ëė íëė ęą°ëí ėė
ë¤í¸ėíŦëĨŧ ë§ë¤ę¸° ėí´ ė°¸ėŦí ėë˛ë¤ė ë¤í¸ėíŦė
ëë¤. ė°ëĻ° ė´ ėë˛ë¤ė ė¸ė¤í´ė¤ëŧęŗ ëļëĻ
ëë¤.',
- 'onboarding.page_one.handle': 'ëšė ė {domain}ė ėí´ ėėŧ늰, ė ė˛´ í¸ë¤ė {handle} ė
ëë¤.',
- 'onboarding.page_one.welcome': '{domain}ė ė¤ė ę˛ė íėíŠëë¤!',
- 'onboarding.page_six.admin': 'ė°ëĻŦ ėë˛ė ę´ëĻŦėë {admin} ëė
ëë¤.',
- 'onboarding.page_six.almost_done': 'ęą°ė ë¤ ëėėĩëë¤âĻ',
- 'onboarding.page_six.appetoot': 'ëŗ¸ ėííŋ!',
- 'onboarding.page_six.apps_available': 'iOS, ėëëĄė´ë, ꡸ëĻŦęŗ ë¤ëĨ¸ íëĢíŧë¤ė ėí {apps}ė´ ėĄ´ėŦíŠëë¤.',
- 'onboarding.page_six.github': '{domain}ė ę¸ëĻŦėšëĨŧ íĩí´ ęĩŦë ëŠëë¤. ę¸ëĻŦėšë {Mastodon}ė {fork}ė
ëë¤, ꡸ëĻŦęŗ ė´ë¤ ë§ė¤í ë ė¸ė¤í´ė¤ë ėąęŗŧë í¸í ëŠëë¤. ę¸ëĻŦėšë ėė í ėė ė¤íėė¤ė
ëë¤. {github}ėė ë˛ęˇ¸ëĨŧ ëĻŦíŦí
íęą°ë, 기ëĨė ė ėíęą°ë, ėŊëëĨŧ 기ėŦí ė ėėĩëë¤.',
- 'onboarding.page_six.guidelines': 'ėģ¤ëŽ¤ëí° ę°ė´ëëŧė¸',
- 'onboarding.page_six.read_guidelines': '{domain}ė {guidelines}ė ėŊė´ėŖŧė¸ė!',
- 'onboarding.page_six.various_app': 'ëĒ¨ë°ėŧ ėą',
- 'onboarding.page_three.profile': 'íëĄíė ėė í´ ėë°í, ë°ė´ė¤, íėëë ė´ëĻė ė¤ė íė¸ė. 깰기ėė ë¤ëĨ¸ ė¤ė ë¤ë ė°žė ė ėėĩëë¤.',
- 'onboarding.page_three.search': 'ę˛ėė°Ŋė ėŦėŠí´ ėŦëë¤ęŗŧ í´ėí꡸ëĨŧ ė°žėëŗ´ė¸ė. ėëĨŧ ë¤ëŠ´ {illustration}ė´ëŧë ė§ {introcustions} ę°ė ę˛ėŧëĄė. ė´ ė¸ė¤í´ė¤ė ėė§ ėė ėŦëė ė°žėŧë ¤ëŠ´, ė ė˛´ í¸ë¤ė ėŦėŠíė¸ė.',
- 'onboarding.page_two.compose': 'ėėą ėģŦëŧėė ę˛ėëŦŧė ėėąíė¸ė. ꡸ëĻŧė ė
ëĄë í ė ėęŗ , ęŗĩę°ė¤ė ė ë°ęŋ ėë ėėŧ늰, ėë ėė´ėŊė íĩí´ ė´ëėŖŧė í
ė¤í¸ëĨŧ ė¤ė í ė ėėĩëë¤.',
- 'onboarding.skip': 'ęą´ëë°ę¸°',
- 'settings.always_show_spoilers_field': 'ė´ëėŖŧė íëĒŠė ė¸ė ë íėąí',
- 'settings.auto_collapse': 'ėëėŧëĄ ė 기',
- 'settings.auto_collapse_all': 'ëĒ¨ë',
- 'settings.auto_collapse_lengthy': '긴 ę¸',
- 'settings.auto_collapse_media': '미ëė´ íŦí¨ ę¸',
- 'settings.auto_collapse_notifications': 'ėëĻŧ',
- 'settings.auto_collapse_reblogs': 'ëļė¤í¸',
- 'settings.auto_collapse_replies': 'ëĩę¸',
- 'settings.close': 'ëĢ기',
- 'settings.collapsed_statuses': 'ė í ę¸',
- 'settings.compose_box_opts': 'ėėą ėė',
- 'settings.confirm_before_clearing_draft': 'ėėą ė¤ė¸ ëŠėė§ëĨŧ ëŽė´ėė°ę¸° ė ė íė¸ė°Ŋė ëŗ´ėŦėŖŧ기',
- 'settings.confirm_boost_missing_media_description': '미ëė´ ė¤ëĒ
ė´ ėë ę¸ė ëļė¤í¸íë ¤ í ë íė¸ė°Ŋė ëŗ´ėŦėŖŧ기',
- 'settings.confirm_missing_media_description': '미ëė´ ė¤ëĒ
ė´ ėë ę¸ė ėėąíë ¤ í ë íė¸ė°Ŋė ëŗ´ėŦėŖŧ기',
- 'settings.content_warnings': 'ė´ëėŖŧė',
- 'settings.content_warnings.regexp': 'ė ęˇííė',
- 'settings.content_warnings_filter': 'ėëėŧëĄ íŧėšė§ ėė ė´ëėŖŧė ëŦ¸ęĩŦ:',
- 'settings.deprecated_setting': 'ė´ ė¤ė ė ë§ė¤í ëė {settings_page_link}ėė ę´ëĻŦëŠëë¤',
- 'settings.enable_collapsed': 'ė í ę¸ íėąí',
- 'settings.enable_content_warnings_auto_unfold': 'ėëėŧëĄ ė´ëėŖŧė íŧėšę¸°',
- 'settings.filtering_behavior': 'íí°ë§ ëė',
- 'settings.filtering_behavior.cw': 'ę˛ėëŦŧė ëŗ´ėŦėŖŧë, íí°ë ë¨ė´ëĨŧ ė´ëėŖŧėė ėļę°íŠëë¤',
- 'settings.filtering_behavior.drop': 'ėė í ė¨ęšëë¤',
- 'settings.filtering_behavior.hide': '\'íí°ë¨\'ė´ëŧęŗ íėíęŗ ė´ė ëĨŧ íėíë ë˛íŧė ėļę°íŠëë¤',
- 'settings.filtering_behavior.upstream': '\'íí°ë¨\'ė´ëŧęŗ ėŧë° ë§ė¤í ëė˛ëŧ íėíŠëë¤',
- 'settings.filters': 'íí°',
- 'settings.general': 'ėŧë°',
- 'settings.hicolor_privacy_icons': 'ëė ėąëė ęŗĩę°ė¤ė ėė´ėŊ',
- 'settings.hicolor_privacy_icons.hint': 'ęŗĩę°ė¤ė ėė´ėŊë¤ė ë°ęŗ ęĩŦëļí기 ėŦė´ ėėŧëĄ íėíŠëë¤',
- 'settings.image_backgrounds': 'ė´ë¯¸ė§ ë°°ę˛Ŋ',
- 'settings.image_backgrounds_media': 'ė í ę¸ė 미ëė´ 미ëĻŦëŗ´ę¸°',
- 'settings.image_backgrounds_users': 'ė í ę¸ė ė´ë¯¸ė§ ë°°ę˛Ŋ ėŖŧ기',
- 'settings.inline_preview_cards': 'ė¸ëļ ë§íŦė ëí 미ëĻŦëŗ´ę¸° ėš´ëëĨŧ ę°ė´ íė',
- 'settings.layout': 'ë ė´ėė:',
- 'settings.layout_opts': 'ë ė´ėė ėĩė
',
- 'settings.media': '미ëė´',
- 'settings.media_fullwidth': 'ėĩëí 미ëė´ 미ëĻŦëŗ´ę¸°',
- 'settings.media_letterbox': 'ë í°ë°ė¤ 미ëė´',
- 'settings.media_letterbox_hint': 'íëíęŗ ėëĨ´ë ëė ėļėíęŗ ë í°ë°ė¤ė ëŖė´ ė´ë¯¸ė§ëĨŧ ëŗ´ėŦė¤ëë¤',
- 'settings.media_reveal_behind_cw': 'ė´ëėŖŧėëĄ ę°ë ¤ė§ 미ëė´ëĨŧ 기ëŗ¸ėŧëĄ íŧėŗ ëĄëë¤',
- 'settings.navbar_under': 'ë´ëšë°ëĨŧ íë¨ė (ëĒ¨ë°ėŧ ė ėŠ)',
- 'settings.notifications.favicon_badge': 'ėŊė§ ėė ėëĻŧ íëšėŊ ë°°ė§',
- 'settings.notifications.favicon_badge.hint': 'ėŊė§ ėė ėëĻŧ ë°°ė§ëĨŧ íëšėŊė ėļę°íŠëë¤',
- 'settings.notifications.tab_badge': 'ėŊė§ ėė ėëĻŧ ë°°ė§',
- 'settings.notifications.tab_badge.hint': 'ėëĻŧ ėģŦëŧė´ ė´ë ¤ ėė§ ėė ë ėëĻŧ ėģŦëŧė ėëĻŧė´ ėë¤ë ë°°ė§ëĨŧ íėíŠëë¤',
- 'settings.notifications_opts': 'ėëĻŧ ėĩė
',
- 'settings.pop_in_left': 'ėŧėĒŊ',
- 'settings.pop_in_player': 'ë ėë ėŦė기 íėąí',
- 'settings.pop_in_position': 'ë ėë ėŦė기 ėėš:',
- 'settings.pop_in_right': 'ė¤ëĨ¸ėĒŊ',
- 'settings.preferences': 'ėŦėŠė ė¤ė ',
- 'settings.prepend_cw_re': 'ė´ëėŖŧėę° ëŦëĻ° ę¸ė ëĩėĨė í ë ė´ëėŖŧė ëŦ¸ęĩŦ ėė âre: âëĨŧ ėļę°íŠëë¤',
- 'settings.preselect_on_reply': 'ëĩę¸ ëŦ ë ėŦėŠėëĒ
미ëĻŦ ė í',
- 'settings.preselect_on_reply_hint': 'ëĩę¸ė ëŦ ë ė´ë¯¸ ëŠė
ë ėŦëė ėŦėŠėëĒ
ė 미ëĻŦ ë¸ëėŧëĄ ė¤ė í´ ëėĩëë¤',
- 'settings.rewrite_mentions': 'íėëë ę˛ėëŦŧė ëŠė
íė ë°ęž¸ę¸°',
- 'settings.rewrite_mentions_acct': 'ėŦėŠėëĒ
ęŗŧ ëëŠė¸ėŧëĄ ë°ęž¸ę¸°(ęŗė ė´ ė겊ėŧ ë)',
- 'settings.rewrite_mentions_no': 'ëŠė
ė ꡸ëëĄ ë기',
- 'settings.rewrite_mentions_username': 'ėŦėŠėëĒ
ėŧëĄ ë°ęž¸ę¸°',
- 'settings.shared_settings_link': 'ėŦėŠė ė¤ė ',
- 'settings.show_action_bar': 'ė í ę¸ė ėĄė
ë˛íŧë¤ ëŗ´ė´ę¸°',
- 'settings.show_content_type_choice': 'ę¸ė ėėąí ë ėŊí
í¸ íė
ė ęŗ ëĨŧ ė ėëëĄ íŠëë¤',
- 'settings.show_reply_counter': 'ëëĩė ė¸ ëĩę¸ ę°ėëĨŧ íėíŠëë¤',
- 'settings.side_arm': 'ëŗ´ėĄ° ėėą ë˛íŧ:',
- 'settings.side_arm.none': 'ėė',
- 'settings.side_arm_reply_mode': 'ëĩę¸ė ėėąí ë:',
- 'settings.side_arm_reply_mode.copy': 'ëĩę¸ė ëŦë ¤ë ę¸ė ęŗĩę°ė¤ė ė ëŗĩėŦíŠëë¤',
- 'settings.side_arm_reply_mode.keep': 'ëŗ´ėĄ° ėėą ë˛íŧė ęŗĩę°ė¤ė ė ė ė§íŠëë¤',
- 'settings.side_arm_reply_mode.restrict': 'ëĩę¸ė ëŦë ¤ë ę¸ė ęŗĩę°ė¤ė ė ë§ę˛ ė ííŠëë¤',
- 'settings.status_icons': 'ę˛ėëŦŧ ėė´ėŊ',
- 'settings.status_icons_language': 'ė¸ė´ íė',
- 'settings.status_icons_local_only': 'ëĄėģŦ ė ėŠ íė',
- 'settings.status_icons_media': '미ëė´ė íŦí íė',
- 'settings.status_icons_reply': 'ëĩę¸ íė',
- 'settings.status_icons_visibility': 'íŋ ęŗĩę°ė¤ė íė',
- 'settings.swipe_to_change_columns': 'ė¤ėė´ííėŦ ėģŦëŧę° ė íė íėŠíŠëë¤ (ëĒ¨ë°ėŧ ė ėŠ)',
- 'settings.tag_misleading_links': 'ė¤í´ė ėė§ę° ėë ë§íŦëĨŧ íėíŠëë¤',
- 'settings.tag_misleading_links.hint': 'ë§íŦė ëĒ
ėė ėŧëĄ ėŖŧėę° ėë ę˛Ŋė°ė ëė í¸ė¤í¸ëĨŧ ëŗ´ė´ëëĄ íėíŠëë¤',
- 'settings.wide_view': 'ëė 롰 (ë°ė¤íŦí ëĒ¨ë ė ėŠ)',
- 'settings.wide_view_hint': 'ėģŦëŧë¤ė ëë ¤ė íėŠ ę°ëĨí ęŗĩę°ė ėŦėŠíŠëë¤.',
- 'status.collapse': 'ė 기',
- 'status.has_audio': 'ėëĻŦ íėŧė´ ė˛¨ëļëė´ ėėĩëë¤',
- 'status.has_pictures': '꡸ëĻŧ íėŧė´ ė˛¨ëļëė´ ėėĩëë¤',
- 'status.has_preview_card': '미ëĻŦëŗ´ę¸° ėš´ëę° ė˛¨ëļëė´ ėėĩëë¤',
- 'status.has_video': 'ėėė´ ė˛¨ëļëė´ ėėĩëë¤',
- 'status.hide': 'ę¸ ę°ëĻŦ기',
- 'status.in_reply_to': 'ė´ ę¸ė ëĩę¸ė
ëë¤',
- 'status.is_poll': 'ė´ ę¸ė ė¤ëŦ¸ė
ëë¤',
- 'status.local_only': 'ëšė ė ėë˛ėėë§ ëŗ´ė
ëë¤',
- 'status.sensitive_toggle': 'í´ëĻí´ė ëŗ´ę¸°',
- 'status.show_filter_reason': '(ė´ė ëŗ´ę¸°)',
- 'status.uncollapse': 'íŧėšę¸°',
- 'upload_modal.applying': 'ė ėŠė¤âĻ',
- 'web_app_crash.change_your_settings': '{settings}ė ë°ęž¸ė¸ė',
- 'web_app_crash.content': 'ė´ę˛ë¤ė ėëí´ ëŗŧ ė ėėĩëë¤:',
- 'web_app_crash.debug_info': 'ëë˛ęˇ¸ ė ëŗ´',
- 'web_app_crash.disable_addons': 'ë¸ëŧė°ė ė ëė¨ė´ë 기ëŗ¸ ë˛ė ëęĩŦëĨŧ ëšíėąí íŠëë¤',
- 'web_app_crash.issue_tracker': 'ė´ė í¸ëėģ¤',
- 'web_app_crash.reload': 'ėëĄęŗ ėš¨',
- 'web_app_crash.reload_page': 'ė´ íė´ė§ëĨŧ {reload}',
- 'web_app_crash.report_issue': '{issuetracker}ė ë˛ęˇ¸ ė ëŗ´',
- 'web_app_crash.settings': 'ė¤ė ',
- 'web_app_crash.title': 'ėŖėĄíŠëë¤, íė§ë§ ë§ė¤í ë ėąė´ ëę° ėëĒģëėėĩëë¤.',
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/ko.json b/app/javascript/flavours/glitch/locales/ko.json
new file mode 100644
index 000000000..2b4f22c19
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/ko.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "ę¸ëĻŦėšë ë§ė¤í ëėė íŦíŦí ėė ė¤íėė¤ ėíí¸ė¨ė´ė
ëë¤.",
+ "account.add_account_note": "@{name} ëė ëí ëŠëĒ¨ ėļę°",
+ "account.disclaimer_full": "ėëė ėë ė ëŗ´ë¤ė ėŦėŠėė íëĄíė ėë˛Ŋíę˛ ëíë´ė§ ëĒģíęŗ ėė ėë ėėĩëë¤.",
+ "account.follows": "íëĄė°",
+ "account.joined": "{date}ė ę°ė
í¨",
+ "account.suspended_disclaimer_full": "ė´ ėŦėŠėë ė¤ėŦėė ėí´ ė ė§ëėėĩëë¤.",
+ "account.view_full_profile": "ė ė˛´ íëĄí ëŗ´ę¸°",
+ "account_note.cancel": "ėˇ¨ė",
+ "account_note.edit": "í¸ė§",
+ "account_note.glitch_placeholder": "ėŊëŠí¸ę° ėėĩëë¤",
+ "account_note.save": "ė ėĨ",
+ "advanced_options.icon_title": "ęŗ ę¸ ėĩė
",
+ "advanced_options.local-only.long": "ë¤ëĨ¸ ėë˛ė ę˛ėíė§ ė기",
+ "advanced_options.local-only.short": "ëĄėģŦ ė ėŠ",
+ "advanced_options.local-only.tooltip": "ė´ ę˛ėëŦŧė ëĄėģŦ ė ėŠė
ëë¤",
+ "advanced_options.threaded_mode.long": "ę¸ė ėėąíęŗ ėëėŧëĄ ëĩę¸ ė´ę¸°",
+ "advanced_options.threaded_mode.short": "ę¸íë ëĒ¨ë",
+ "advanced_options.threaded_mode.tooltip": "ę¸íë ëĒ¨ë íėąíë¨",
+ "boost_modal.missing_description": "ė´ ę˛ėëŦŧė ė¤ëĒ
ė´ ėë 미ëė´ëĨŧ íŦí¨íęŗ ėėĩëë¤",
+ "column.favourited_by": "ėĻ겨ė°žę¸° í ėŦë",
+ "column.heading": "기í",
+ "column.reblogged_by": "ëļė¤í¸ í ėŦë",
+ "column.subheading": "ë¤ėí ėĩė
",
+ "column_header.profile": "íëĄí",
+ "column_subheading.lists": "ëĻŦė¤í¸",
+ "column_subheading.navigation": "íė",
+ "community.column_settings.allow_local_only": "ëĄėģŦ ė ėŠ ę¸ ëŗ´ę¸°",
+ "compose.attach": "ė˛¨ëļâĻ",
+ "compose.attach.doodle": "ëę° ęˇ¸ë ¤ëŗ´ė¸ė",
+ "compose.attach.upload": "íėŧ ė
ëĄë",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "ë§íŦë¤ė´",
+ "compose.content-type.plain": "ėŧë° í
ė¤í¸",
+ "compose_form.poll.multiple_choices": "ėŦëŦ ę° ė í ę°ëĨ",
+ "compose_form.poll.single_choice": "íëë§ ė í ę°ëĨ",
+ "compose_form.spoiler": "ę˛Ŋęŗ ëŠėė§ëĄ ė¨ę¸°ę¸°",
+ "confirmation_modal.do_not_ask_again": "ë¤ėëļí° íė¸ė°Ŋė ëė°ė§ ė기",
+ "confirmations.deprecated_settings.confirm": "ë§ė¤í ë ė¤ė ėŦėŠ",
+ "confirmations.deprecated_settings.message": "ėŦėŠíë ëĒëĒ 기기ëŗ ę¸ëĻŦėš {app_settings}ė ë§ė¤í ë {preferences}ėŧëĄ ëė˛´ëėėĩëë¤:",
+ "confirmations.missing_media_description.confirm": "꡸ëĨ ëŗ´ë´ę¸°",
+ "confirmations.missing_media_description.edit": "미ëė´ í¸ė§",
+ "confirmations.missing_media_description.message": "íë ė´ėė 미ëė´ė ëí´ ė¤ëĒ
ė ėėąíė§ ėėėĩëë¤. ėę°ėĨė ė¸ė ėí´ ëĒ¨ë 미ëė´ė ė¤ëĒ
ė ėļę°íë ę˛ė ęŗ ë ¤í´ėŖŧė¸ė.",
+ "confirmations.unfilter.author": "ėėąė",
+ "confirmations.unfilter.confirm": "ëŗ´ę¸°",
+ "confirmations.unfilter.edit_filter": "íí° í¸ė§",
+ "confirmations.unfilter.filters": "ė ėŠë {count, plural, one {íí°} other {íí°ë¤}}",
+ "content-type.change": "ėŊí
í¸ íė
",
+ "direct.group_by_conversations": "ëíëŗëĄ ëŦļ기",
+ "endorsed_accounts_editor.endorsed_accounts": "ėļė˛íë ęŗė ë¤",
+ "favourite_modal.combo": "ë¤ėė {combo}ëĨŧ ëëŦ ęą´ëë¸ ė ėėĩëë¤",
+ "getting_started.onboarding": "ëëŦëŗ´ę¸°",
+ "home.column_settings.advanced": "ęŗ ę¸",
+ "home.column_settings.filter_regex": "ė ęˇííėėŧëĄ íí°",
+ "home.column_settings.show_direct": "DM ëŗ´ėŦėŖŧ기",
+ "home.settings": "ėģŦëŧ ė¤ė ",
+ "keyboard_shortcuts.bookmark": "ëļë§íŦ",
+ "keyboard_shortcuts.secondary_toot": "ëŗ´ėĄ° íëŧė´ë˛ė ė¤ė ėŧëĄ ę¸ ëŗ´ë´ę¸°",
+ "keyboard_shortcuts.toggle_collapse": "ę¸ ė ęą°ë íŧėšę¸°",
+ "layout.auto": "ėë",
+ "layout.desktop": "ë°ė¤íŦí",
+ "layout.hint.auto": "âęŗ ę¸ ėš ė¸í°íė´ė¤ íėąíâ ė¤ė ęŗŧ í늴 íŦ기ė ë°ëŧ ėëėŧëĄ ë ė´ėėė ęŗ ëĻ
ëë¤.",
+ "layout.hint.desktop": "âęŗ ę¸ ėš ė¸í°íė´ė¤ íėąíâ ė¤ė ė´ë í늴 íŦ기ė ę´ęŗ ėė´ ëŠí° ėģŦëŧ ë ė´ėėė ėŦėŠíŠëë¤.",
+ "layout.hint.single": "âęŗ ę¸ ėš ė¸í°íė´ė¤ íėąíâ ė¤ė ė´ë í늴 íŦ기ė ę´ęŗ ėė´ ėąę¸ ėģŦëŧ ë ė´ėėė ėŦėŠíŠëë¤.",
+ "layout.single": "ëĒ¨ë°ėŧ",
+ "media_gallery.sensitive": "ë¯ŧę°í¨",
+ "moved_to_warning": "ė´ ęŗė ė {moved_to_link}ëĄ ė´ëí ę˛ėŧëĄ íėëėęŗ , ė íëĄė°ëĨŧ ë°ė§ ėë ę˛ ę°ėĩëë¤.",
+ "navigation_bar.app_settings": "ėą ė¤ė ",
+ "navigation_bar.featured_users": "ėļė˛ë ęŗė ë¤",
+ "navigation_bar.keyboard_shortcuts": "í¤ëŗ´ë ë¨ėļ기",
+ "navigation_bar.misc": "ë¤ėí ėĩė
ë¤",
+ "notification.markForDeletion": "ėė í기 ėí´ íė",
+ "notification_purge.btn_all": "ė ė˛´ė í",
+ "notification_purge.btn_apply": "ė íë ėëĻŧ ėė ",
+ "notification_purge.btn_invert": "ė íë°ė ",
+ "notification_purge.btn_none": "ė ė˛´ė íí´ė ",
+ "notification_purge.start": "ėëĻŧ ėė ëĒ¨ëëĄ ë¤ė´ę°ę¸°",
+ "notifications.marked_clear": "ė íë ėëĻŧ ëĒ¨ë ėė ",
+ "notifications.marked_clear_confirmation": "ė ë§ëĄ ė íë ėëĻŧë¤ė ėęĩŦė ėŧëĄ ėė í ęšė?",
+ "onboarding.done": "ėëŖ",
+ "onboarding.next": "ë¤ė",
+ "onboarding.page_five.public_timelines": "ëĄėģŦ íėëŧė¸ė {domain}ė ėë ëĒ¨ë ėŦëė ęŗĩę°ę¸ė ëŗ´ėŦė¤ëë¤. ė°íŠ íėëŧė¸ė {domain}ė ėë ėŦëë¤ė´ íëĄė° íë ëĒ¨ë ėŦëė ęŗĩę°ę¸ė ëŗ´ėŦė¤ëë¤. ė´ę˛ë¤ė ęŗĩę° íėëŧė¸ė´ëŧęŗ ëļëĻŦ늰, ėëĄė´ ėŦëë¤ė ë°ę˛Ŧí ė ėë ėĸė ë°Šë˛ė
ëë¤.",
+ "onboarding.page_four.home": "í íėëŧė¸ė ëšė ė´ íëĄė° í ėŦëë¤ė ę¸ė ëŗ´ėŦė¤ëë¤.",
+ "onboarding.page_four.notifications": "ėëĻŧ ėģŦëŧė ëęĩ°ę°ę° ëšė ęŗŧ ėí¸ėėŠí ę˛ë¤ė ëŗ´ėŦė¤ëë¤.",
+ "onboarding.page_one.federation": "{domain}ė ë§ė¤í ëė 'ė¸ė¤í´ė¤'ė
ëë¤. ë§ė¤í ëė íëė ęą°ëí ėė
ë¤í¸ėíŦëĨŧ ë§ë¤ę¸° ėí´ ė°¸ėŦí ėë˛ë¤ė ë¤í¸ėíŦė
ëë¤. ė°ëĻ° ė´ ėë˛ë¤ė ė¸ė¤í´ė¤ëŧęŗ ëļëĻ
ëë¤.",
+ "onboarding.page_one.handle": "ëšė ė {domain}ė ėí´ ėėŧ늰, ė ė˛´ í¸ë¤ė {handle} ė
ëë¤.",
+ "onboarding.page_one.welcome": "{domain}ė ė¤ė ę˛ė íėíŠëë¤!",
+ "onboarding.page_six.admin": "ė°ëĻŦ ėë˛ė ę´ëĻŦėë {admin} ëė
ëë¤.",
+ "onboarding.page_six.almost_done": "ęą°ė ë¤ ëėėĩëë¤âĻ",
+ "onboarding.page_six.appetoot": "ëŗ¸ ėííŋ!",
+ "onboarding.page_six.apps_available": "iOS, ėëëĄė´ë, ꡸ëĻŦęŗ ë¤ëĨ¸ íëĢíŧë¤ė ėí {apps}ė´ ėĄ´ėŦíŠëë¤.",
+ "onboarding.page_six.github": "{domain}ė ę¸ëĻŦėšëĨŧ íĩí´ ęĩŦë ëŠëë¤. ę¸ëĻŦėšë {Mastodon}ė {fork}ė
ëë¤, ꡸ëĻŦęŗ ė´ë¤ ë§ė¤í ë ė¸ė¤í´ė¤ë ėąęŗŧë í¸í ëŠëë¤. ę¸ëĻŦėšë ėė í ėė ė¤íėė¤ė
ëë¤. {github}ėė ë˛ęˇ¸ëĨŧ ëĻŦíŦí
íęą°ë, 기ëĨė ė ėíęą°ë, ėŊëëĨŧ 기ėŦí ė ėėĩëë¤.",
+ "onboarding.page_six.guidelines": "ėģ¤ëŽ¤ëí° ę°ė´ëëŧė¸",
+ "onboarding.page_six.read_guidelines": "{domain}ė {guidelines}ė ėŊė´ėŖŧė¸ė!",
+ "onboarding.page_six.various_app": "ëĒ¨ë°ėŧ ėą",
+ "onboarding.page_three.profile": "íëĄíė ėė í´ ėë°í, ë°ė´ė¤, íėëë ė´ëĻė ė¤ė íė¸ė. 깰기ėė ë¤ëĨ¸ ė¤ė ë¤ë ė°žė ė ėėĩëë¤.",
+ "onboarding.page_three.search": "ę˛ėė°Ŋė ėŦėŠí´ ėŦëë¤ęŗŧ í´ėí꡸ëĨŧ ė°žėëŗ´ė¸ė. ėëĨŧ ë¤ëŠ´ {illustration}ė´ëŧë ė§ {introcustions} ę°ė ę˛ėŧëĄė. ė´ ė¸ė¤í´ė¤ė ėė§ ėė ėŦëė ė°žėŧë ¤ëŠ´, ė ė˛´ í¸ë¤ė ėŦėŠíė¸ė.",
+ "onboarding.page_two.compose": "ėėą ėģŦëŧėė ę˛ėëŦŧė ėėąíė¸ė. ꡸ëĻŧė ė
ëĄë í ė ėęŗ , ęŗĩę°ė¤ė ė ë°ęŋ ėë ėėŧ늰, ėë ėė´ėŊė íĩí´ ė´ëėŖŧė í
ė¤í¸ëĨŧ ė¤ė í ė ėėĩëë¤.",
+ "onboarding.skip": "ęą´ëë°ę¸°",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "ė´ëėŖŧė íëĒŠė ė¸ė ë íėąí",
+ "settings.auto_collapse": "ėëėŧëĄ ė 기",
+ "settings.auto_collapse_all": "ëĒ¨ë",
+ "settings.auto_collapse_height": "길ė´ę° 긴 ę˛ėŧëĄ ę°ėŖŧí íŋė ëė´ (íŊė
ë¨ė)",
+ "settings.auto_collapse_lengthy": "긴 ę¸",
+ "settings.auto_collapse_media": "미ëė´ íŦí¨ ę¸",
+ "settings.auto_collapse_notifications": "ėëĻŧ",
+ "settings.auto_collapse_reblogs": "ëļė¤í¸",
+ "settings.auto_collapse_replies": "ëĩę¸",
+ "settings.close": "ëĢ기",
+ "settings.collapsed_statuses": "ė í ę¸",
+ "settings.compose_box_opts": "ėėą ėė",
+ "settings.confirm_before_clearing_draft": "ėėą ė¤ė¸ ëŠėė§ëĨŧ ëŽė´ėė°ę¸° ė ė íė¸ė°Ŋė ëŗ´ėŦėŖŧ기",
+ "settings.confirm_boost_missing_media_description": "미ëė´ ė¤ëĒ
ė´ ėë ę¸ė ëļė¤í¸íë ¤ í ë íė¸ė°Ŋė ëŗ´ėŦėŖŧ기",
+ "settings.confirm_missing_media_description": "미ëė´ ė¤ëĒ
ė´ ėë ę¸ė ėėąíë ¤ í ë íė¸ė°Ŋė ëŗ´ėŦėŖŧ기",
+ "settings.content_warnings": "ė´ëėŖŧė",
+ "settings.content_warnings.regexp": "ė ęˇííė",
+ "settings.content_warnings_filter": "ėëėŧëĄ íŧėšė§ ėė ė´ëėŖŧė ëŦ¸ęĩŦ:",
+ "settings.content_warnings_media_outside": "미ëė´ ė˛¨ëļëĨŧ ė´ëėŖŧė ë°ęšĨė ëŗ´ė´ę¸°",
+ "settings.content_warnings_media_outside_hint": "ë§ė¤í ë ėëŗ¸ė˛ëŧ ė´ëėŖŧė í ę¸ė´ 미ëė´ ė˛¨ëļėë ėíĨė 미ėšė§ ėę˛ íŠëë¤",
+ "settings.content_warnings_shared_state": "ëėŧí ę¸ė ė´ëėŖŧėëĨŧ íë˛ė ė´ęŗ ëĢ기",
+ "settings.content_warnings_shared_state_hint": "ë§ė¤í ë ėëŗ¸ė˛ëŧ ė´ëėŖŧė ë˛íŧė´ ëėŧí ëĒ¨ë ę¸ė ëí´ ėíĨė 미ėšę˛ íŠëë¤. íŧėŗė§ ė´ëėŖŧė ę¸ė´ ėëėŧëĄ ë¤ė ė íë ę˛ė ë°Šė§íŠëë¤",
+ "settings.content_warnings_unfold_opts": "ėë íŧėšę¸° ėĩė
",
+ "settings.deprecated_setting": "ė´ ė¤ė ė ë§ė¤í ëė {settings_page_link}ėė ę´ëĻŦëŠëë¤",
+ "settings.enable_collapsed": "ė í ę¸ íėąí",
+ "settings.enable_collapsed_hint": "ė í ę˛ėëŦŧė ėŊí
ė¸ ė ėŧëļëļė ę°ë ¤ė ęŗĩę°ė ė ę˛ ė°¨ė§íŠëë¤. ė´ëėŖŧė 기ëĨęŗŧë ë¤ëĻ
ëë¤",
+ "settings.enable_content_warnings_auto_unfold": "ėëėŧëĄ ė´ëėŖŧė íŧėšę¸°",
+ "settings.general": "ėŧë°",
+ "settings.hicolor_privacy_icons": "ëė ėąëė ęŗĩę°ė¤ė ėė´ėŊ",
+ "settings.hicolor_privacy_icons.hint": "ęŗĩę°ė¤ė ėė´ėŊë¤ė ë°ęŗ ęĩŦëļí기 ėŦė´ ėėŧëĄ íėíŠëë¤",
+ "settings.image_backgrounds": "ė´ë¯¸ė§ ë°°ę˛Ŋ",
+ "settings.image_backgrounds_media": "ė í ę¸ė 미ëė´ 미ëĻŦëŗ´ę¸°",
+ "settings.image_backgrounds_media_hint": "ę˛ėëŦŧė´ 미ëė´ ė˛¨ëļëĨŧ íŦí¨íë¤ëŠ´, ė˛Ģë˛ė§¸ëĨŧ ë°°ę˛ŊėŧëĄ ėŦėŠíŠëë¤",
+ "settings.image_backgrounds_users": "ė í ę¸ė ė´ë¯¸ė§ ë°°ę˛Ŋ ėŖŧ기",
+ "settings.inline_preview_cards": "ė¸ëļ ë§íŦė ëí 미ëĻŦëŗ´ę¸° ėš´ëëĨŧ ę°ė´ íė",
+ "settings.layout": "ë ė´ėė:",
+ "settings.layout_opts": "ë ė´ėė ėĩė
",
+ "settings.media": "미ëė´",
+ "settings.media_fullwidth": "ėĩëí 미ëė´ 미ëĻŦëŗ´ę¸°",
+ "settings.media_letterbox": "ë í°ë°ė¤ 미ëė´",
+ "settings.media_letterbox_hint": "íëíęŗ ėëĨ´ë ëė ėļėíęŗ ë í°ë°ė¤ė ëŖė´ ė´ë¯¸ė§ëĨŧ ëŗ´ėŦė¤ëë¤",
+ "settings.media_reveal_behind_cw": "ė´ëėŖŧėëĄ ę°ë ¤ė§ 미ëė´ëĨŧ 기ëŗ¸ėŧëĄ íŧėŗ ëĄëë¤",
+ "settings.notifications.favicon_badge": "ėŊė§ ėė ėëĻŧ íëšėŊ ë°°ė§",
+ "settings.notifications.favicon_badge.hint": "ėŊė§ ėė ėëĻŧ ë°°ė§ëĨŧ íëšėŊė ėļę°íŠëë¤",
+ "settings.notifications.tab_badge": "ėŊė§ ėė ėëĻŧ ë°°ė§",
+ "settings.notifications.tab_badge.hint": "ėëĻŧ ėģŦëŧė´ ė´ë ¤ ėė§ ėė ë ėëĻŧ ėģŦëŧė ėëĻŧė´ ėë¤ë ë°°ė§ëĨŧ íėíŠëë¤",
+ "settings.notifications_opts": "ėëĻŧ ėĩė
",
+ "settings.pop_in_left": "ėŧėĒŊ",
+ "settings.pop_in_player": "ë ėë ėŦė기 íėąí",
+ "settings.pop_in_position": "ë ėë ėŦė기 ėėš:",
+ "settings.pop_in_right": "ė¤ëĨ¸ėĒŊ",
+ "settings.preferences": "ėŦėŠė ė¤ė ",
+ "settings.prepend_cw_re": "ė´ëėŖŧėę° ëŦëĻ° ę¸ė ëĩėĨė í ë ė´ëėŖŧė ëŦ¸ęĩŦ ėė âre: âëĨŧ ėļę°íŠëë¤",
+ "settings.preselect_on_reply": "ëĩę¸ ëŦ ë ėŦėŠėëĒ
미ëĻŦ ė í",
+ "settings.preselect_on_reply_hint": "ëĩę¸ė ëŦ ë ė´ë¯¸ ëŠė
ë ėŦëė ėŦėŠėëĒ
ė 미ëĻŦ ë¸ëėŧëĄ ė¤ė í´ ëėĩëë¤",
+ "settings.rewrite_mentions": "íėëë ę˛ėëŦŧė ëŠė
íė ë°ęž¸ę¸°",
+ "settings.rewrite_mentions_acct": "ėŦėŠėëĒ
ęŗŧ ëëŠė¸ėŧëĄ ë°ęž¸ę¸°(ęŗė ė´ ė겊ėŧ ë)",
+ "settings.rewrite_mentions_no": "ëŠė
ė ꡸ëëĄ ë기",
+ "settings.rewrite_mentions_username": "ėŦėŠėëĒ
ėŧëĄ ë°ęž¸ę¸°",
+ "settings.shared_settings_link": "ėŦėŠė ė¤ė ",
+ "settings.show_action_bar": "ė í ę¸ė ėĄė
ë˛íŧë¤ ëŗ´ė´ę¸°",
+ "settings.show_content_type_choice": "ę¸ė ėėąí ë ėŊí
í¸ íė
ė ęŗ ëĨŧ ė ėëëĄ íŠëë¤",
+ "settings.show_reply_counter": "ëëĩė ė¸ ëĩę¸ ę°ėëĨŧ íėíŠëë¤",
+ "settings.side_arm": "ëŗ´ėĄ° ėėą ë˛íŧ:",
+ "settings.side_arm.none": "ėė",
+ "settings.side_arm_reply_mode": "ëĩę¸ė ėėąí ë:",
+ "settings.side_arm_reply_mode.copy": "ëĩę¸ė ëŦë ¤ë ę¸ė ęŗĩę°ė¤ė ė ëŗĩėŦíŠëë¤",
+ "settings.side_arm_reply_mode.keep": "ëŗ´ėĄ° ėėą ë˛íŧė ęŗĩę°ė¤ė ė ė ė§íŠëë¤",
+ "settings.side_arm_reply_mode.restrict": "ëĩę¸ė ëŦë ¤ë ę¸ė ęŗĩę°ė¤ė ė ë§ę˛ ė ííŠëë¤",
+ "settings.status_icons": "ę˛ėëŦŧ ėė´ėŊ",
+ "settings.status_icons_language": "ė¸ė´ íė",
+ "settings.status_icons_local_only": "ëĄėģŦ ė ėŠ íė",
+ "settings.status_icons_media": "미ëė´ė íŦí íė",
+ "settings.status_icons_reply": "ëĩę¸ íė",
+ "settings.status_icons_visibility": "íŋ ęŗĩę°ė¤ė íė",
+ "settings.swipe_to_change_columns": "ė¤ėė´ííėŦ ėģŦëŧę° ė íė íėŠíŠëë¤ (ëĒ¨ë°ėŧ ė ėŠ)",
+ "settings.tag_misleading_links": "ė¤í´ė ėė§ę° ėë ë§íŦëĨŧ íėíŠëë¤",
+ "settings.tag_misleading_links.hint": "ë§íŦė ëĒ
ėė ėŧëĄ ėŖŧėę° ėë ę˛Ŋė°ė ëė í¸ė¤í¸ëĨŧ ëŗ´ė´ëëĄ íėíŠëë¤",
+ "settings.wide_view": "ëė 롰 (ë°ė¤íŦí ëĒ¨ë ė ėŠ)",
+ "settings.wide_view_hint": "ėģŦëŧë¤ė ëë ¤ė íėŠ ę°ëĨí ęŗĩę°ė ėŦėŠíŠëë¤.",
+ "status.collapse": "ė 기",
+ "status.has_audio": "ėëĻŦ íėŧė´ ė˛¨ëļëė´ ėėĩëë¤",
+ "status.has_pictures": "꡸ëĻŧ íėŧė´ ė˛¨ëļëė´ ėėĩëë¤",
+ "status.has_preview_card": "미ëĻŦëŗ´ę¸° ėš´ëę° ė˛¨ëļëė´ ėėĩëë¤",
+ "status.has_video": "ėėė´ ė˛¨ëļëė´ ėėĩëë¤",
+ "status.in_reply_to": "ė´ ę¸ė ëĩę¸ė
ëë¤",
+ "status.is_poll": "ė´ ę¸ė ė¤ëŦ¸ė
ëë¤",
+ "status.local_only": "ëšė ė ėë˛ėėë§ ëŗ´ė
ëë¤",
+ "status.sensitive_toggle": "í´ëĻí´ė ëŗ´ę¸°",
+ "status.uncollapse": "íŧėšę¸°",
+ "web_app_crash.change_your_settings": "{settings}ė ë°ęž¸ė¸ė",
+ "web_app_crash.content": "ė´ę˛ë¤ė ėëí´ ëŗŧ ė ėėĩëë¤:",
+ "web_app_crash.debug_info": "ëë˛ęˇ¸ ė ëŗ´",
+ "web_app_crash.disable_addons": "ë¸ëŧė°ė ė ëė¨ė´ë 기ëŗ¸ ë˛ė ëęĩŦëĨŧ ëšíėąí íŠëë¤",
+ "web_app_crash.issue_tracker": "ė´ė í¸ëėģ¤",
+ "web_app_crash.reload": "ėëĄęŗ ėš¨",
+ "web_app_crash.reload_page": "ė´ íė´ė§ëĨŧ {reload}",
+ "web_app_crash.report_issue": "{issuetracker}ė ë˛ęˇ¸ ė ëŗ´",
+ "web_app_crash.settings": "ė¤ė ",
+ "web_app_crash.title": "ėŖėĄíŠëë¤, íė§ë§ ë§ė¤í ë ėąė´ ëę° ėëĒģëėėĩëë¤."
+}
diff --git a/app/javascript/flavours/glitch/locales/ku.js b/app/javascript/flavours/glitch/locales/ku.js
deleted file mode 100644
index 19e0e95aa..000000000
--- a/app/javascript/flavours/glitch/locales/ku.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/ku.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/ku.json b/app/javascript/flavours/glitch/locales/ku.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/ku.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/kw.js b/app/javascript/flavours/glitch/locales/kw.js
deleted file mode 100644
index 1325ca825..000000000
--- a/app/javascript/flavours/glitch/locales/kw.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/kw.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/kw.json b/app/javascript/flavours/glitch/locales/kw.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/kw.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/la.json b/app/javascript/flavours/glitch/locales/la.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/la.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/lt.js b/app/javascript/flavours/glitch/locales/lt.js
deleted file mode 100644
index 47453aeeb..000000000
--- a/app/javascript/flavours/glitch/locales/lt.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/lt.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/lt.json b/app/javascript/flavours/glitch/locales/lt.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/lt.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/lv.js b/app/javascript/flavours/glitch/locales/lv.js
deleted file mode 100644
index cdbcdf799..000000000
--- a/app/javascript/flavours/glitch/locales/lv.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/lv.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/lv.json b/app/javascript/flavours/glitch/locales/lv.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/lv.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/mk.js b/app/javascript/flavours/glitch/locales/mk.js
deleted file mode 100644
index 55e510b59..000000000
--- a/app/javascript/flavours/glitch/locales/mk.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/mk.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/mk.json b/app/javascript/flavours/glitch/locales/mk.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/mk.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/ml.js b/app/javascript/flavours/glitch/locales/ml.js
deleted file mode 100644
index d00331a1a..000000000
--- a/app/javascript/flavours/glitch/locales/ml.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/ml.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/ml.json b/app/javascript/flavours/glitch/locales/ml.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/ml.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/mr.js b/app/javascript/flavours/glitch/locales/mr.js
deleted file mode 100644
index fb3cde92a..000000000
--- a/app/javascript/flavours/glitch/locales/mr.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/mr.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/mr.json b/app/javascript/flavours/glitch/locales/mr.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/mr.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/ms.js b/app/javascript/flavours/glitch/locales/ms.js
deleted file mode 100644
index 61033c521..000000000
--- a/app/javascript/flavours/glitch/locales/ms.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/ms.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/ms.json b/app/javascript/flavours/glitch/locales/ms.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/ms.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/my.json b/app/javascript/flavours/glitch/locales/my.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/my.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/nl.js b/app/javascript/flavours/glitch/locales/nl.js
deleted file mode 100644
index 17c371c58..000000000
--- a/app/javascript/flavours/glitch/locales/nl.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/nl.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/nl.json b/app/javascript/flavours/glitch/locales/nl.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/nl.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/nn.js b/app/javascript/flavours/glitch/locales/nn.js
deleted file mode 100644
index 4c42368cb..000000000
--- a/app/javascript/flavours/glitch/locales/nn.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/nn.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/nn.json b/app/javascript/flavours/glitch/locales/nn.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/nn.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/no.js b/app/javascript/flavours/glitch/locales/no.js
deleted file mode 100644
index 794b1da25..000000000
--- a/app/javascript/flavours/glitch/locales/no.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/no.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/no.json b/app/javascript/flavours/glitch/locales/no.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/no.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/oc.js b/app/javascript/flavours/glitch/locales/oc.js
deleted file mode 100644
index 8f161fd8c..000000000
--- a/app/javascript/flavours/glitch/locales/oc.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/oc.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/oc.json b/app/javascript/flavours/glitch/locales/oc.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/oc.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/pa.js b/app/javascript/flavours/glitch/locales/pa.js
deleted file mode 100644
index c3e0e2b84..000000000
--- a/app/javascript/flavours/glitch/locales/pa.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/pa.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/pa.json b/app/javascript/flavours/glitch/locales/pa.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/pa.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/pl.js b/app/javascript/flavours/glitch/locales/pl.js
deleted file mode 100644
index 770c5417a..000000000
--- a/app/javascript/flavours/glitch/locales/pl.js
+++ /dev/null
@@ -1,79 +0,0 @@
-import inherited from 'mastodon/locales/pl.json';
-
-const messages = {
- 'getting_started.open_source_notice': 'Glitchsoc jest wolnym i otwartoÅērÃŗdÅowym forkiem oprogramowania {Mastodon}. MoÅŧesz wspÃŗÅtworzyÄ projekt lub zgÅaszaÄ bÅÄdy na GitHubie pod adresem {github}.',
- 'layout.auto': 'Automatyczny',
- 'layout.current_is': 'TwÃŗj obecny ukÅad to:',
- 'layout.desktop': 'Desktopowy',
- 'layout.mobile': 'Mobilny',
- 'navigation_bar.app_settings': 'Ustawienia aplikacji',
- 'navigation_bar.bookmarks': 'ZakÅadki',
- 'getting_started.onboarding': 'Rozejrzyj siÄ',
- 'onboarding.page_one.federation': '{domain} jest \'instancjÄ
\' Mastodona. Mastodon to sieÄ dziaÅajÄ
cych niezaleÅŧnie serwerÃŗw tworzÄ
cych jednÄ
sieÄ spoÅecznoÅciowÄ
. Te serwery nazywane sÄ
instancjami.',
- 'onboarding.page_one.welcome': 'Witamy na {domain}!',
- 'onboarding.page_six.github': '{domain} jest oparty na Glitchsoc. Glitchsoc jest {forkiem} {Mastodon}a kompatybilnym z kaÅŧdym klientem i aplikacjÄ
Mastodona. Glitchsoc jest caÅkowicie wolnym i otwartoÅērÃŗdÅowym oprogramowaniem. MoÅŧesz zgÅaszaÄ bÅÄdy i sugestie funkcji oraz wspÃŗÅtworzyÄ projekt na {github}.',
- 'settings.auto_collapse': 'Automatyczne zwijanie',
- 'settings.auto_collapse_all': 'Wszystko',
- 'settings.auto_collapse_lengthy': 'DÅugie wpisy',
- 'settings.auto_collapse_media': 'Wpisy z zawartoÅciÄ
multimedialnÄ
',
- 'settings.auto_collapse_notifications': 'Powiadomienia',
- 'settings.auto_collapse_reblogs': 'Podbicia',
- 'settings.auto_collapse_replies': 'Odpowiedzi',
- 'settings.close': 'Zamknij',
- 'settings.collapsed_statuses': 'Zwijanie wpisÃŗw',
- 'settings.enable_collapsed': 'WÅÄ
cz zwijanie wpisÃŗw',
- 'settings.general': 'OgÃŗlne',
- 'settings.image_backgrounds': 'Obrazy w tle',
- 'settings.image_backgrounds_media': 'WyÅwietlaj zawartoÅÄ multimedialnÄ
zwiniÄtych wpisÃŗw',
- 'settings.image_backgrounds_users': 'Nadaj tÅo zwiniÄtym wpisom',
- 'settings.layout': 'UkÅad',
- 'settings.media': 'ZawartoÅÄ multimedialna',
- 'settings.media_letterbox': 'Letterbox media',
- 'settings.media_fullwidth': 'PodglÄ
d zawartoÅci multimedialnej o peÅnej szerokoÅci',
- 'settings.navbar_under': 'Pasek nawigacji na dole (tylko w trybie mobilnym)',
- 'settings.preferences': 'Preferencje uÅŧytkownika',
- 'settings.side_arm': 'Drugi przycisk wysyÅania',
- 'settings.side_arm.none': 'Åģaden',
- 'settings.wide_view': 'Szeroki widok (tylko w trybie desktopowym)',
- 'status.bookmark': 'Dodaj do zakÅadek',
- 'status.collapse': 'ZwiÅ',
- 'status.uncollapse': 'RozwiÅ',
-
- 'media_gallery.sensitive': 'ZawartoÅÄ wraÅŧliwa',
-
- 'favourite_modal.combo': 'MoÅŧesz nacisnÄ
Ä {combo}, aby pominÄ
Ä to nastÄpnym razem',
-
- 'home.column_settings.show_direct': 'PokaÅŧ wiadomoÅci bezpoÅrednie',
-
- 'notification.markForDeletion': 'Oznacz do usuniÄcia',
- 'notifications.clear': 'WyczyÅÄ wszystkie powiadomienia',
- 'notifications.marked_clear_confirmation': 'Czy na pewno chcesz bezpowrtonie usunÄ
Ä wszystkie powiadomienia?',
- 'notifications.marked_clear': 'UsuÅ zaznaczone powiadomienia',
-
- 'notification_purge.btn_all': 'Zaznacz\nwszystkie',
- 'notification_purge.btn_none': 'Odznacz\nwszystkie',
- 'notification_purge.btn_invert': 'OdwrÃŗÄ\nzaznaczenie',
- 'notification_purge.btn_apply': 'UsuÅ\nzaznaczone',
- 'notification_purge.start': 'PrzejdÅē do trybu usuwania powiadomieÅ',
-
- 'compose.attach.upload': 'WyÅlij plik',
- 'compose.attach.doodle': 'Narysuj coÅ',
- 'compose.attach': 'ZaÅÄ
cz coÅ',
-
- 'advanced_options.local-only.short': 'Tylko lokalnie',
- 'advanced_options.local-only.long': 'Nie wysyÅaj na inne instancje',
- 'advanced_options.local-only.tooltip': 'Ten wpis jest widoczny tylko lokalnie',
- 'advanced_options.icon_title': 'Ustawienia zaawansowane',
- 'advanced_options.threaded_mode.short': 'Tryb wÄ
tkÃŗw',
- 'advanced_options.threaded_mode.long': 'Przechodzi do tworzenia odpowiedzi po publikacji wpisu',
- 'advanced_options.threaded_mode.tooltip': 'WÅÄ
czono tryb wÄ
tkÃŗw',
-
- 'column.bookmarks': 'ZakÅadki',
- 'compose_form.sensitive': 'Oznacz zawartoÅÄ multimedialnÄ
jako wraÅŧliwÄ
',
- 'compose_form.spoiler': 'Ukryj tekst za ostrzeÅŧeniem',
- 'favourite_modal.combo': 'MoÅŧesz nacisnÄ
Ä {combo}, aby pominÄ
Ä to nastÄpnym razem',
- 'tabs_bar.compose': 'Napisz',
-
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/pl.json b/app/javascript/flavours/glitch/locales/pl.json
new file mode 100644
index 000000000..d28c62693
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/pl.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc jest wolnym i otwartym oprogramowaniem wywodzÄ
cym siÄ z Mastodonu.",
+ "account.add_account_note": "Dodaj notatkÄ dla @{name}",
+ "account.disclaimer_full": "PoniÅŧsze informacje mogÄ
niekompletnie odzwierciedlaÄ profil tego uÅŧytkownika.",
+ "account.follows": "Obserwuje",
+ "account.joined": "Konto utworzono {date}",
+ "account.suspended_disclaimer_full": "UÅŧytkownik zostaÅ zawieszony przez moderatora.",
+ "account.view_full_profile": "PokaÅŧ peÅny profil",
+ "account_note.cancel": "Anuluj",
+ "account_note.edit": "Edytuj",
+ "account_note.glitch_placeholder": "Brak komentarza",
+ "account_note.save": "Zapisz",
+ "advanced_options.icon_title": "Ustawienia zaawansowane",
+ "advanced_options.local-only.long": "Nie wysyÅaj na inne instancje",
+ "advanced_options.local-only.short": "Tylko lokalnie",
+ "advanced_options.local-only.tooltip": "Ten wpis jest widoczny tylko lokalnie",
+ "advanced_options.threaded_mode.long": "Przechodzi do tworzenia odpowiedzi po publikacji wpisu",
+ "advanced_options.threaded_mode.short": "Tryb wÄ
tkÃŗw",
+ "advanced_options.threaded_mode.tooltip": "WÅÄ
czono tryb wÄ
tkÃŗw",
+ "boost_modal.missing_description": "Ten wpis zawiera multimedialne zaÅÄ
czniki bez opisu",
+ "column.favourited_by": "Polubiony przez",
+ "column.heading": "RÃŗÅŧne",
+ "column.reblogged_by": "Podbity przez",
+ "column.subheading": "RÃŗÅŧne opcje",
+ "column_header.profile": "Profil",
+ "column_subheading.lists": "Listy",
+ "column_subheading.navigation": "Nawigacja",
+ "community.column_settings.allow_local_only": "Pokazuj wyÅÄ
cznie wpisy lokalne",
+ "compose.attach": "ZaÅÄ
cz coÅ",
+ "compose.attach.doodle": "Narysuj coÅ",
+ "compose.attach.upload": "WyÅlij plik",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Czysty tekst",
+ "compose_form.poll.multiple_choices": "PozwÃŗl na wybÃŗr wielokrotny",
+ "compose_form.poll.single_choice": "PozwÃŗl na tylko jeden wybÃŗr",
+ "compose_form.spoiler": "Ukryj tekst za ostrzeÅŧeniem",
+ "confirmation_modal.do_not_ask_again": "WiÄcej nie pytaj siÄ o potwierdzenie",
+ "confirmations.deprecated_settings.confirm": "UÅŧyj preferencji Mastodonu",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Zignoruj i wyÅlij",
+ "confirmations.missing_media_description.edit": "Edytuj zaÅÄ
cznik multimedialny",
+ "confirmations.missing_media_description.message": "Co najmniej jednemu zaÅÄ
cznikowi multimedialnemu brakuje opisu. Z uwagi na osoby z zaburzeniami widzenia rozwaÅŧ opisanie wszystkich zaÅÄ
cznikÃŗw przed opublikowaniem wpisu.",
+ "confirmations.unfilter.author": "Autor",
+ "confirmations.unfilter.confirm": "PokaÅŧ",
+ "confirmations.unfilter.edit_filter": "Edytuj filtr",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Typ zawartoÅci",
+ "direct.group_by_conversations": "Grupuj rozmowami",
+ "endorsed_accounts_editor.endorsed_accounts": "Wybrane konta",
+ "favourite_modal.combo": "MoÅŧesz nacisnÄ
Ä {combo}, aby pominÄ
Ä to nastÄpnym razem",
+ "getting_started.onboarding": "Rozejrzyj siÄ",
+ "home.column_settings.advanced": "Zaawansowane",
+ "home.column_settings.filter_regex": "Filtruj, uÅŧywajÄ
c wyraÅŧeÅ regularnych",
+ "home.column_settings.show_direct": "PokaÅŧ wiadomoÅci bezpoÅrednie",
+ "home.settings": "Ustawienia kolumn",
+ "keyboard_shortcuts.bookmark": "aby dodaÄ do ulubionych",
+ "keyboard_shortcuts.secondary_toot": "aby opublikowaÄ wpis uÅŧywajÄ
c dodatkowych ustawieÅ prywatnoÅci",
+ "keyboard_shortcuts.toggle_collapse": "aby zwinÄ
Ä/rozwinÄ
Ä wpisy",
+ "layout.auto": "Automatyczny",
+ "layout.desktop": "Desktopowy",
+ "layout.hint.auto": "Automatycznie wybierz ukÅad na podstawie ustawienia âWÅÄ
cz zaawansowany interfejs uÅŧytkownikaâ i rozmiaru ekranu.",
+ "layout.hint.desktop": "UÅŧyj ukÅadu wielokolumnowego niezaleÅŧnie od ustawienia âWÅÄ
cz zaawansowany interfejs uÅŧytkownikaâ i rozmiaru ekranu.",
+ "layout.hint.single": "UÅŧyj ukÅadu jednokolumnowego niezaleÅŧnie od ustawienia âWÅÄ
cz zaawansowany interfejs uÅŧytkownikaâ i rozmiaru ekranu.",
+ "layout.single": "Mobilny",
+ "media_gallery.sensitive": "ZawartoÅÄ wraÅŧliwa",
+ "moved_to_warning": "To konto oznaczone jest jako przeniesione do {moved_to_link} i moÅŧe z tego powodu nie akceptowaÄ nowych obserwujÄ
cych.",
+ "navigation_bar.app_settings": "Ustawienia aplikacji",
+ "navigation_bar.featured_users": "UÅŧytkownicy wyrÃŗÅŧnieni",
+ "navigation_bar.keyboard_shortcuts": "SkrÃŗty klawiszowe",
+ "navigation_bar.misc": "RÃŗÅŧne",
+ "notification.markForDeletion": "Oznacz do usuniÄcia",
+ "notification_purge.btn_all": "Zaznacz\nwszystkie",
+ "notification_purge.btn_apply": "UsuÅ\nzaznaczone",
+ "notification_purge.btn_invert": "OdwrÃŗÄ\nzaznaczenie",
+ "notification_purge.btn_none": "Odznacz\nwszystkie",
+ "notification_purge.start": "PrzejdÅē do trybu usuwania powiadomieÅ",
+ "notifications.marked_clear": "UsuÅ zaznaczone powiadomienia",
+ "notifications.marked_clear_confirmation": "Czy na pewno chcesz bezpowrtonie usunÄ
Ä wszystkie powiadomienia?",
+ "onboarding.done": "ZakoÅcz",
+ "onboarding.next": "NastÄpny",
+ "onboarding.page_five.public_timelines": "Lokalna oÅ czasu pokazuje publiczne posty wszystkich uÅŧytkownikÃŗw {domain}. Globalna oÅ czasu pokazuje publiczne posty wszystkich uÅŧytkownikÃŗw obserwowanych przez osoby z {domain}. Te publiczne osi czasu sÄ
dobrÄ
metodÄ
na poznawanie nowych ludzi.",
+ "onboarding.page_four.home": "Domowa oÅ czasowa pokazuje wpisy ludzi, ktÃŗrych obserwujesz.",
+ "onboarding.page_four.notifications": "Kolumna powiadomieÅ pokazuje interakcje innych z tobÄ
.",
+ "onboarding.page_one.federation": "{domain} jest 'instancjÄ
' Mastodona. Mastodon to sieÄ dziaÅajÄ
cych niezaleÅŧnie serwerÃŗw tworzÄ
cych jednÄ
sieÄ spoÅecznoÅciowÄ
. Te serwery nazywane sÄ
instancjami.",
+ "onboarding.page_one.handle": "JesteÅ na serwerze {domain}, wiÄc twÃŗj peÅny adres to {handle}",
+ "onboarding.page_one.welcome": "Witamy na {domain}!",
+ "onboarding.page_six.admin": "Administratorem twojego serwera jest {admin}.",
+ "onboarding.page_six.almost_done": "Prawie gotoweâĻ",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "Na Android, iOS i inne systemy sÄ
dostÄpne {apps}.",
+ "onboarding.page_six.github": "{domain} jest oparty na Glitchsoc. Glitchsoc jest {forkiem} {Mastodon}a kompatybilnym z kaÅŧdym klientem i aplikacjÄ
Mastodona. Glitchsoc jest caÅkowicie wolnym i otwartoÅērÃŗdÅowym oprogramowaniem. MoÅŧesz zgÅaszaÄ bÅÄdy i sugestie funkcji oraz wspÃŗÅtworzyÄ projekt na {github}.",
+ "onboarding.page_six.guidelines": "wytyczne spoÅecznoÅci",
+ "onboarding.page_six.read_guidelines": "ProszÄ przeczytaÄ {guidelines} {domain}!",
+ "onboarding.page_six.various_app": "aplikacje mobilne",
+ "onboarding.page_three.profile": "Edytuj TwÃŗj profil, aby zmieniÄ awatar, biogram i widocznÄ
nazwÄ. Znajdziesz tam rÃŗwnieÅŧ inne ustawienia.",
+ "onboarding.page_three.search": "UÅŧyj paska wyszukiwania aby znaleÅēÄ osoby i hasztagi, takie jak {illustration} i {introductions}. Aby znaleÅēÄ osobÄ niebÄdÄ
cÄ
na tym serwerze uÅŧyj jej peÅnego adresu.",
+ "onboarding.page_two.compose": "TwÃŗrz nowe wpisy w lewej kolumnie. MoÅŧesz wysÅaÄ zdjÄcia, zmieniÄ ustawienia prywatnoÅci i ukryÄ wpis za ostrzeÅŧeniem uÅŧywajÄ
c poniÅŧszych ikon.",
+ "onboarding.skip": "PomiÅ",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Zawsze pokazuj pole ostrzeÅŧenia o zawartoÅci",
+ "settings.auto_collapse": "Automatyczne zwijanie",
+ "settings.auto_collapse_all": "Wszystko",
+ "settings.auto_collapse_height": "WysokoÅÄ (w pikselach) powyÅŧej ktÃŗrej wpis bÄdzie uznawany za dÅugi",
+ "settings.auto_collapse_lengthy": "DÅugie wpisy",
+ "settings.auto_collapse_media": "Wpisy z zawartoÅciÄ
multimedialnÄ
",
+ "settings.auto_collapse_notifications": "Powiadomienia",
+ "settings.auto_collapse_reblogs": "Podbicia",
+ "settings.auto_collapse_replies": "Odpowiedzi",
+ "settings.close": "Zamknij",
+ "settings.collapsed_statuses": "Zwijanie wpisÃŗw",
+ "settings.compose_box_opts": "Pole edycji",
+ "settings.confirm_before_clearing_draft": "WymuÅ potwierdzenie przez nadpisaniem aktualnie edytowanego wpisu",
+ "settings.confirm_boost_missing_media_description": "WymuÅ potwierdzenie przed podbiciem wpisÃŗw z brakujÄ
cym opisem zaÅÄ
cznikÃŗw multimedialnych",
+ "settings.confirm_missing_media_description": "WymuÅ potwierdzenie przed opublikowaniem wpisu z brakujÄ
cymi opisami zaÅÄ
cznikÃŗw multimedialnych",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "WyraÅŧenie regularne",
+ "settings.content_warnings_filter": "OstrzeÅŧenia o zawartoÅci nieodkrywane automatycznie:",
+ "settings.content_warnings_media_outside": "WyÅwietlaj zaÅÄ
czniki multimedialne poza ostrzeÅŧeniem o zawartoÅci",
+ "settings.content_warnings_media_outside_hint": "Nie ukrywaj zaÅÄ
cznikÃŗw multimedialnych, gdy wpis jest ukryty za ostrzeÅŧeniem, tak jak robi to niezmodyfikowany Mastodon",
+ "settings.content_warnings_shared_state": "PokaÅŧ/ukryj zawartoÅÄ wszystkich kopii jednoczeÅnie",
+ "settings.content_warnings_shared_state_hint": "Zachowaj siÄ tak, jak niezmodyfikowany Mastodon, tj. wymuÅ dziaÅanie przycisku ostrzeÅŧenia o zawartoÅci na wszystkie kopie danego wpisu. WÅÄ
czenie tego ustawienia spowoduje wyÅÄ
czenie automatycznego zwijania kopii wpisÃŗw z odkrytym ostrzeÅŧeniem o zawartoÅci.",
+ "settings.content_warnings_unfold_opts": "Opcje automatycznego odkrywania",
+ "settings.deprecated_setting": "To ustawienie jest teraz kontrolowane przez {settings_page_link}",
+ "settings.enable_collapsed": "WÅÄ
cz zwijanie wpisÃŗw",
+ "settings.enable_collapsed_hint": "ZwiniÄte wpisy sÄ
czÄÅciowo ukryte, przez co zajmujÄ
mniej miejsca. Ta opcja rÃŗÅŧni siÄ od ukrywania wpisÃŗw za ostrzeÅŧeniem",
+ "settings.enable_content_warnings_auto_unfold": "Automatycznie odkrywaj wpisy ukryte za ostrzeÅŧeniem",
+ "settings.general": "OgÃŗlne",
+ "settings.hicolor_privacy_icons": "Ikony ustawieÅ prywatnoÅci o jaskrawych kolorach",
+ "settings.hicolor_privacy_icons.hint": "WyÅwietl ikony ustawieÅ prywatnoÅci uÅŧywajÄ
c Åatwo rozrÃŗÅŧnialnych kolorÃŗw",
+ "settings.image_backgrounds": "Obrazy w tle",
+ "settings.image_backgrounds_media": "WyÅwietlaj zawartoÅÄ multimedialnÄ
zwiniÄtych wpisÃŗw",
+ "settings.image_backgrounds_media_hint": "JeÅli wpis ma co najmniej jeden zaÅÄ
cznik multimedialny, uÅŧyj pierwszego z nich, jako tÅa.",
+ "settings.image_backgrounds_users": "Nadaj tÅo zwiniÄtym wpisom",
+ "settings.inline_preview_cards": "Karty podglÄ
du zewnÄtrznych linkÃŗw w tekÅcie",
+ "settings.layout": "UkÅad",
+ "settings.layout_opts": "Opcje ukÅadu",
+ "settings.media": "ZawartoÅÄ multimedialna",
+ "settings.media_fullwidth": "PodglÄ
d zawartoÅci multimedialnej o peÅnej szerokoÅci",
+ "settings.media_letterbox": "Dopasuj proporcje multimedialnych zaÅÄ
cznikÃŗw",
+ "settings.media_letterbox_hint": "Przeskaluj multimedialne zaÅÄ
czniki w sposÃŗb umoÅŧliwiajÄ
cy zachowanie proporcji.",
+ "settings.media_reveal_behind_cw": "DomyÅlnie odkrywaj zaÅÄ
czniki multimedialne wpisÃŗw ukrytych za ostrzeÅŧeniem",
+ "settings.notifications.favicon_badge": "Znacznik nieprzeczytanych powiadomieÅ ikony ulubionych",
+ "settings.notifications.favicon_badge.hint": "Dodaj znacznik nieprzeczytanych powiadomieÅ do ikony ulubionych.",
+ "settings.notifications.tab_badge": "Znacznik nieprzeczytanych powiadomieÅ",
+ "settings.notifications.tab_badge.hint": "Dodaj znacznik nieprzeczytanych powiadomieÅ do ikon kolumn, gdy kolumna powiadomieÅ jest zamkniÄta.",
+ "settings.notifications_opts": "Opcje powiadomieÅ",
+ "settings.pop_in_left": "Po lewej",
+ "settings.pop_in_player": "WÅÄ
cz odtwarzacz w wyskakujÄ
cym okienku",
+ "settings.pop_in_position": "Pozycja wyskakujÄ
cego okienka:",
+ "settings.pop_in_right": "Po prawej",
+ "settings.preferences": "Preferencje uÅŧytkownika",
+ "settings.prepend_cw_re": "Dodaj âre: â na poczÄ
tku ostrzeÅŧenia o zawartoÅci podczas odpowiadania na wpis z ostrzeÅŧeniem",
+ "settings.preselect_on_reply": "Automatycznie wybierz adresy podczas odpowiadania",
+ "settings.preselect_on_reply_hint": "Podczas odpowiadania w rozmowie z kilkoma uczestnikami automatycznie wybierz adresy inne niÅŧ pierwszy.",
+ "settings.rewrite_mentions": "Przerabianie nawiÄ
zaÅ w wyÅwietlonych statusach",
+ "settings.rewrite_mentions_acct": "PrzerÃŗb na peÅny adres, gdy konto jest z innego serwera",
+ "settings.rewrite_mentions_no": "Nie przerabiaj",
+ "settings.rewrite_mentions_username": "PrzerÃŗb na nazwÄ uÅŧytkownika",
+ "settings.shared_settings_link": "ustawienia uÅŧytkownika",
+ "settings.show_action_bar": "Pokazuj przyciski akcji pod zwiniÄtymi wpisami",
+ "settings.show_content_type_choice": "Podczas tworzenia wpisÃŗw umoÅŧliw wybÃŗr typu zawartoÅci",
+ "settings.show_reply_counter": "WyÅwietl szacowanÄ
iloÅci odpowiedzi",
+ "settings.side_arm": "Drugi przycisk wysyÅania",
+ "settings.side_arm.none": "Åģaden",
+ "settings.side_arm_reply_mode": "Podczas odpowiadania na wpis, dodatkowy przycisk publikowania powinien:",
+ "settings.side_arm_reply_mode.copy": "PowieliÄ ustawienia prywatnoÅci wpisu, na ktÃŗry publikowana jest odpowiedÅē",
+ "settings.side_arm_reply_mode.keep": "ZachowaÄ wczeÅniej ustawiony tryb prywatnoÅci",
+ "settings.side_arm_reply_mode.restrict": "OgraniczyÄ ustawienia prywatnoÅci do tych uÅŧywanych przez wpis, na ktÃŗry publikowana jest odpowiedÅē",
+ "settings.status_icons": "Ikony wpisÃŗw",
+ "settings.status_icons_language": "WskaÅēnik jÄzyka",
+ "settings.status_icons_local_only": "WskaÅēnik wpisu lokalnego",
+ "settings.status_icons_media": "WskaÅēniki zaÅÄ
cznikÃŗw multimedialnych i ankiet",
+ "settings.status_icons_reply": "WskaÅēnik odpowiedzi",
+ "settings.status_icons_visibility": "WskaÅēnik ustawieÅ prywatnoÅci wpisu",
+ "settings.swipe_to_change_columns": "W wypadku wersji mobilnej pozwÃŗl na zmianÄ kolumny przez przesuniÄcie palcem",
+ "settings.tag_misleading_links": "Oznacz mylÄ
ce linki",
+ "settings.tag_misleading_links.hint": "Dodaj oznaczenie domeny do kaÅŧdego linku, ktÃŗry nie ma jej w swojej treÅci",
+ "settings.wide_view": "Szeroki widok (tylko w trybie desktopowym)",
+ "settings.wide_view_hint": "Wykorzystaj wiÄcej dostÄpnego miejsca, rozciÄ
gajÄ
c kolumny.",
+ "status.collapse": "ZwiÅ",
+ "status.has_audio": "Posiada zaÅÄ
czone pliki dÅēwiÄkowe",
+ "status.has_pictures": "Posiada zaÅÄ
czone obrazki",
+ "status.has_preview_card": "Posiada zaÅÄ
czonÄ
kartÄ podglÄ
du",
+ "status.has_video": "Posiada zaÅÄ
czone wideo",
+ "status.in_reply_to": "Ten wpis jest odpowiedziÄ
",
+ "status.is_poll": "Ten wpis zawiera ankietÄ",
+ "status.local_only": "Widoczne tylko na twoim serwerze",
+ "status.sensitive_toggle": "Kliknij, aby zobaczyÄ",
+ "status.uncollapse": "RozwiÅ",
+ "web_app_crash.change_your_settings": "ZmieÅ swoje {settings}",
+ "web_app_crash.content": "MoÅŧesz sprÃŗbowaÄ:",
+ "web_app_crash.debug_info": "Informacje pomocne w debugowaniu",
+ "web_app_crash.disable_addons": "WyÅÄ
czyÄ dodatki Twojej przeglÄ
darki lub wbudowane narzÄdzia do tÅumaczenia",
+ "web_app_crash.issue_tracker": "stronie Åledzenia bÅÄdÃŗw",
+ "web_app_crash.reload": "OdÅwieÅŧyÄ",
+ "web_app_crash.reload_page": "{reload} tÄ
stronÄ",
+ "web_app_crash.report_issue": "ZgÅosiÄ bÅÄ
d na {issuetracker}",
+ "web_app_crash.settings": "ustawienia",
+ "web_app_crash.title": "Przepraszamy, ale coÅ jest nie tak z tÄ
stronÄ
Mastodonu."
+}
diff --git a/app/javascript/flavours/glitch/locales/pt-BR.js b/app/javascript/flavours/glitch/locales/pt-BR.js
deleted file mode 100644
index 6fed635f8..000000000
--- a/app/javascript/flavours/glitch/locales/pt-BR.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/pt-BR.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/pt-BR.json b/app/javascript/flavours/glitch/locales/pt-BR.json
new file mode 100644
index 000000000..d2fefcbff
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/pt-BR.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "O Glitch-soc Ê um software gratuito de cÃŗdigo aberto bifurcado a partir do Mastodon.",
+ "account.add_account_note": "Adicionar nota para @{name}",
+ "account.disclaimer_full": "As informaçÃĩes abaixo podem refletir o perfil do usuÃĄrio de forma incompleta.",
+ "account.follows": "Segue",
+ "account.joined": "Entrou em {date}",
+ "account.suspended_disclaimer_full": "Este usuÃĄrio foi suspenso por um moderador.",
+ "account.view_full_profile": "Ver o perfil completo",
+ "account_note.cancel": "Cancelar",
+ "account_note.edit": "Editar",
+ "account_note.glitch_placeholder": "Nenhum comentÃĄrio fornecido",
+ "account_note.save": "Salvar",
+ "advanced_options.icon_title": "OpçÃĩes avançadas",
+ "advanced_options.local-only.long": "NÃŖo publicar em outras instÃĸncias",
+ "advanced_options.local-only.short": "Apenas localmente",
+ "advanced_options.local-only.tooltip": "Este post Ê somente local",
+ "advanced_options.threaded_mode.long": "Abrir automaticamente uma resposta ao postar",
+ "advanced_options.threaded_mode.short": "Modo de discussÃŖo",
+ "advanced_options.threaded_mode.tooltip": "Modo de discussÃŖo ativado",
+ "boost_modal.missing_description": "Este toot contÊm algumas mÃdias sem descriçÃŖo",
+ "column.favourited_by": "Favoritado por",
+ "column.heading": "Diversos",
+ "column.reblogged_by": "Inpulsionado por",
+ "column.subheading": "OpçÃĩes diversas",
+ "column_header.profile": "Perfil",
+ "column_subheading.lists": "Listas",
+ "column_subheading.navigation": "NavegaçÃŖo",
+ "community.column_settings.allow_local_only": "Mostrar os toots apenas locais",
+ "compose.attach": "Anexar...",
+ "compose.attach.doodle": "Desenhe algo",
+ "compose.attach.upload": "Enviar um arquivo",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Texto sem formataçÃŖo",
+ "compose_form.poll.multiple_choices": "Permitir mÃēltipla escolha",
+ "compose_form.poll.single_choice": "Permitir uma escolha",
+ "compose_form.spoiler": "Ocultar texto atrÃĄs do aviso",
+ "confirmation_modal.do_not_ask_again": "NÃŖo pedir confirmaçÃŖo novamente",
+ "confirmations.deprecated_settings.confirm": "Usar preferÃĒncias do Mastodon",
+ "confirmations.deprecated_settings.message": "Alguns dos {app_settings} especÃficos do dispositivo que vocÃĒ estÃĄ usando foram substituÃdos por Mastodon {preferences} e serÃŖo substituÃdos:",
+ "confirmations.missing_media_description.confirm": "Enviar mesmo assim",
+ "confirmations.missing_media_description.edit": "Editar mÃdia",
+ "confirmations.missing_media_description.message": "Pelo menos um anexo de mÃdia nÃŖo tem uma descriçÃŖo. Considere descrever todos os anexos de mÃdia para deficientes visuais antes de enviar seu toot.",
+ "confirmations.unfilter.author": "Autor",
+ "confirmations.unfilter.confirm": "Exibir",
+ "confirmations.unfilter.edit_filter": "Editar filtro",
+ "confirmations.unfilter.filters": "CorrespondÃĒncia de {count, plural, one {filtro} other {filtros}}",
+ "content-type.change": "Tipo de conteÃēdo",
+ "direct.group_by_conversations": "Agrupar por conversa",
+ "endorsed_accounts_editor.endorsed_accounts": "Contas em destaque",
+ "favourite_modal.combo": "VocÃĒ pode pressionar {combo} para pular isso da prÃŗxima vez",
+ "getting_started.onboarding": "Mostre-me ao redor",
+ "home.column_settings.advanced": "Avançado",
+ "home.column_settings.filter_regex": "Filtrar com uma expressÃŖo regular",
+ "home.column_settings.show_direct": "Mostrar DMs",
+ "home.settings": "ConfiguraçÃĩes da coluna",
+ "keyboard_shortcuts.bookmark": "para marcar",
+ "keyboard_shortcuts.secondary_toot": "para enviar toot usando a configuraçÃŖo de privacidade secundÃĄria",
+ "keyboard_shortcuts.toggle_collapse": "para recolher/mostrar toots",
+ "layout.auto": "AutomÃĄtico",
+ "layout.desktop": "Ãrea de trabalho",
+ "layout.hint.auto": "Escolher automaticamente o layout baseado na configuraçÃŖo \"Habilitar interface web avançada\" e o tamanho da tela.",
+ "layout.hint.desktop": "Use o layout de vÃĄrias colunas independentemente da configuraçÃŖo \"Habilitar interface web avançada\" ou do tamanho da tela.",
+ "layout.hint.single": "Use o layout de uma coluna independentemente da configuraçÃŖo \"Habilitar interface web avançada\" ou do tamanho da tela.",
+ "layout.single": "Celular",
+ "media_gallery.sensitive": "SensÃvel",
+ "moved_to_warning": "Esta conta foi como movida para {moved_to_link} e, portanto, pode nÃŖo aceitar novos seguidores.",
+ "navigation_bar.app_settings": "ConfiguraçÃĩes do aplicativo",
+ "navigation_bar.featured_users": "UsuÃĄrios em destaque",
+ "navigation_bar.keyboard_shortcuts": "Atalhos de teclado",
+ "navigation_bar.misc": "Diversos",
+ "notification.markForDeletion": "Marcar para exclusÃŖo",
+ "notification_purge.btn_all": "Selecionar\ntudo",
+ "notification_purge.btn_apply": "Limpar\nselecionados",
+ "notification_purge.btn_invert": "Inverter\nseleçÃŖo",
+ "notification_purge.btn_none": "Selecionar\nnenhum",
+ "notification_purge.start": "Entrar no modo de limpeza de notificaçÃŖo",
+ "notifications.marked_clear": "Limpar as notificaçÃĩes selecionadas",
+ "notifications.marked_clear_confirmation": "Tem certeza que deseja limpar todas as notificaçÃĩes selecionadas permanentemente?",
+ "onboarding.done": "Feito",
+ "onboarding.next": "PrÃŗximo",
+ "onboarding.page_five.public_timelines": "A linha do tempo local mostra publicaçÃĩes pÃēblicas de todos em {domain}. A linha do tempo federada mostra publicaçÃĩes pÃēblicas de todos que as pessoas seguem em {domain}. Estas sÃŖo as linhas do tempo pÃēblicas, uma Ãŗtima maneira de descobrir novas pessoas.",
+ "onboarding.page_four.home": "A linha do tempo da casa mostra publicaçÃĩes de pessoas que vocÃĒ segue.",
+ "onboarding.page_four.notifications": "A coluna de notificaçÃĩes mostra quando alguÊm interage com vocÃĒ.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "VocÃĒ estÃĄ em {domain}, entÃŖo o seu identificador completo Ê {handle}",
+ "onboarding.page_one.welcome": "Bem-vindo ao {domain}!",
+ "onboarding.page_six.admin": "O administrador da sua instÃĸncia Ê {admin}.",
+ "onboarding.page_six.almost_done": "Quase pronto...",
+ "onboarding.page_six.appetoot": "Bom Appetoot!",
+ "onboarding.page_six.apps_available": "HÃĄ {apps} disponÃveis para iOS, Android e outras plataformas.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "diretrizes da comunidade",
+ "onboarding.page_six.read_guidelines": "Por favor, leia {domain} {guidelines}!",
+ "onboarding.page_six.various_app": "aplicativos mÃŗveis",
+ "onboarding.page_three.profile": "Edite seu perfil para alterar seu avatar, bio e nome de exibiçÃŖo. LÃĄ vocÃĒ tambÊm encontrarÃĄ outras preferÃĒncias.",
+ "onboarding.page_three.search": "Use a barra de busca para encontrar pessoas e procure hashtags, tais como {illustration} e {introductions}. Para procurar uma pessoa que nÃŖo esteja neste caso, use o identificador completo.",
+ "onboarding.page_two.compose": "Escreva as postagens a partir da coluna de composiçÃŖo. VocÃĒ pode enviar imagens, alterar as configuraçÃĩes de privacidade e adicionar avisos de conteÃēdo com os Ãcones abaixo.",
+ "onboarding.skip": "Pular",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Sempre ativar o campo Aviso de ConteÃēdo",
+ "settings.auto_collapse": "Colapso automÃĄtico",
+ "settings.auto_collapse_all": "Tudo",
+ "settings.auto_collapse_height": "Altura (em pixels) para um toot ser considerado longo",
+ "settings.auto_collapse_lengthy": "Toots longos",
+ "settings.auto_collapse_media": "Toots com mÃdia",
+ "settings.auto_collapse_notifications": "NotificaçÃĩes",
+ "settings.auto_collapse_reblogs": "Impulsos",
+ "settings.auto_collapse_replies": "Respostas",
+ "settings.close": "Fechar",
+ "settings.collapsed_statuses": "Toots recolhidos",
+ "settings.compose_box_opts": "Caixa de composiçÃŖo",
+ "settings.confirm_before_clearing_draft": "Mostrar diÃĄlogo de confirmaçÃŖo antes de sobrescrever a mensagem que estÃĄ sendo composta",
+ "settings.confirm_boost_missing_media_description": "Mostrar diÃĄlogo antes de inpulsionar os toots sem descriçÃĩes de mÃdia",
+ "settings.confirm_missing_media_description": "Mostrar diÃĄlogo antes de enviar toots sem descriçÃĩes de mÃdia",
+ "settings.content_warnings": "Aviso de ConteÃēdo",
+ "settings.content_warnings.regexp": "ExpressÃŖo regular",
+ "settings.content_warnings_filter": "Avisos de conteÃēdo para nÃŖo revelar automaticamente:",
+ "settings.content_warnings_media_outside": "Exibir anexos de mÃdia fora avisos de conteÃēdo",
+ "settings.content_warnings_media_outside_hint": "Reproduzir o comportamento do Mastodonte, fazendo com que a alternÃĸncia do Aviso de ConteÃēdo nÃŖo afete os anexos de mÃdia",
+ "settings.content_warnings_shared_state": "Mostrar/ocultar o conteÃēdo de todas as cÃŗpias de uma sÃŗ vez",
+ "settings.content_warnings_shared_state_hint": "Reproduzir o comportamento do Mastodonte fazendo com que o botÃŖo de Aviso de ConteÃēdo afete todas as cÃŗpias de um post de uma sÃŗ vez. Isto evitarÃĄ o colapso automÃĄtico de qualquer cÃŗpia de um toon com Aviso de ConteÃēdo revelado",
+ "settings.content_warnings_unfold_opts": "OpçÃĩes de auto-revelar",
+ "settings.deprecated_setting": "Essa configuraçÃŖo agora Ê controlada pelo {settings_page_link} do Mastodon",
+ "settings.enable_collapsed": "Habilitar toots recolhidos",
+ "settings.enable_collapsed_hint": "Posts recolhidos tÃĒm partes dos seus conteÃēdos ocultos para ocupar menos espaço na tela. Isto Ê diferente do recurso 'Aviso de ConteÃēdo'",
+ "settings.enable_content_warnings_auto_unfold": "Revelar automaticamente os avisos de conteÃēdo",
+ "settings.general": "Geral",
+ "settings.hicolor_privacy_icons": "Ãcones de privacidade com cores de alto contraste",
+ "settings.hicolor_privacy_icons.hint": "Exibir Ãcones de privacidade em cores brilhantes e facilmente distinguÃveis",
+ "settings.image_backgrounds": "Fundos de imagem",
+ "settings.image_backgrounds_media": "PrÊ-visualizaçÃŖo da mÃdia de toots colapsados",
+ "settings.image_backgrounds_media_hint": "Se o post tiver algum anexo de mÃdia, use o primeiro em um plano de fundo",
+ "settings.image_backgrounds_users": "Dar a toots recolhidos uma imagem de fundo",
+ "settings.inline_preview_cards": "CartÃĩes de prÊ-visualizaçÃŖo em linha para links externos",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "OpçÃĩes de layout",
+ "settings.media": "MÃdia",
+ "settings.media_fullwidth": "PrÊ-visualizaçÃŖo da mÃdia em largura total",
+ "settings.media_letterbox": "Caixa de mensagens",
+ "settings.media_letterbox_hint": "Escala para baixo para encher os recipientes de imagem em vez de esticÃĄ-los e cortÃĄ-los",
+ "settings.media_reveal_behind_cw": "Revelar mÃdia sensÃvel por trÃĄs de um Aviso de ConteÃēdo por padrÃŖo",
+ "settings.notifications.favicon_badge": "NotificaçÃĩes nÃŖo lidas como emblema do favicon",
+ "settings.notifications.favicon_badge.hint": "Adicionar um emblema para notificaçÃĩes nÃŖo lidas ao favicon",
+ "settings.notifications.tab_badge": "Emblema de notificaçÃĩes nÃŖo lidas",
+ "settings.notifications.tab_badge.hint": "Exibir um emblema para notificaçÃĩes nÃŖo lidas nos Ãcones de coluna quando a coluna de notificaçÃĩes nÃŖo estiver aberta",
+ "settings.notifications_opts": "OpçÃĩes de notificaçÃĩes",
+ "settings.pop_in_left": "Esquerda",
+ "settings.pop_in_player": "Ativar player pop-in",
+ "settings.pop_in_position": "PosiçÃŖo do player:",
+ "settings.pop_in_right": "Direita",
+ "settings.preferences": "PreferÃĒncias do usuÃĄrio",
+ "settings.prepend_cw_re": "Preparar \"re: \" para avisos de conteÃēdo quando responder",
+ "settings.preselect_on_reply": "Nome de usuÃĄrio prÊ-selecionado na resposta",
+ "settings.preselect_on_reply_hint": "Ao responder a uma conversa com vÃĄrios participantes, prÊ-selecionar nomes de usuÃĄrios apÃŗs o primeiro",
+ "settings.rewrite_mentions": "Reescrever as mençÃĩes nos status exibidos",
+ "settings.rewrite_mentions_acct": "Reescrever com nome de usuÃĄrio e domÃnio (quando a conta for remota)",
+ "settings.rewrite_mentions_no": "NÃŖo reescrever mençÃĩes",
+ "settings.rewrite_mentions_username": "Reescreva com nome de usuÃĄrio",
+ "settings.shared_settings_link": "preferÃĒncias do usuÃĄrio",
+ "settings.show_action_bar": "Mostrar botÃĩes de açÃŖo em toots recolhidos",
+ "settings.show_content_type_choice": "Exibir opçÃŖo do tipo de conteÃēdo ao autorar toots",
+ "settings.show_reply_counter": "Exibir uma estimativa da contagem de respostas",
+ "settings.side_arm": "BotÃŖo de toot secundÃĄrio:",
+ "settings.side_arm.none": "Nenhum",
+ "settings.side_arm_reply_mode": "Ao responder a um toot, o botÃŖo secundÃĄrio de toot deve:",
+ "settings.side_arm_reply_mode.copy": "Copiar configuraçÃŖo de privacidade do toot sendo respondido a",
+ "settings.side_arm_reply_mode.keep": "Mantenha sua privacidade definida",
+ "settings.side_arm_reply_mode.restrict": "Restringir configuraçÃŖo de privacidade ao toot sendo respondido a",
+ "settings.status_icons": "Ãcones de toot",
+ "settings.status_icons_language": "Indicador de idioma",
+ "settings.status_icons_local_only": "Indicador somente local",
+ "settings.status_icons_media": "Indicadores de mÃdia e enquete",
+ "settings.status_icons_reply": "Indicador de resposta",
+ "settings.status_icons_visibility": "Indicador de privacidade",
+ "settings.swipe_to_change_columns": "Permitir deslizar para alterar colunas (apenas celular)",
+ "settings.tag_misleading_links": "Marcar links enganosos",
+ "settings.tag_misleading_links.hint": "Acrescentar uma indicaçÃŖo visual com o link hospedeiro alvo a cada link que nÃŖo o mencione explicitamente",
+ "settings.wide_view": "VisualizaçÃŖo ampla (apenas no Modo desktop)",
+ "settings.wide_view_hint": "Estica as colunas para preencher melhor o espaço disponÃvel.",
+ "status.collapse": "Recolher",
+ "status.has_audio": "Possui um arquivo de ÃĄudio anexado",
+ "status.has_pictures": "Possui uma imagem anexada",
+ "status.has_preview_card": "Possui uma prÊ-visualizaçÃŖo anexada",
+ "status.has_video": "Possui um vÃdeo anexado",
+ "status.in_reply_to": "Este toot Ê uma resposta",
+ "status.is_poll": "Este toot Ê uma enquete",
+ "status.local_only": "VisÃvel apenas em sua instÃĸncia",
+ "status.sensitive_toggle": "Clique para ver",
+ "status.uncollapse": "Revelar",
+ "web_app_crash.change_your_settings": "Altere suas {settings}",
+ "web_app_crash.content": "VocÃĒ poderia tentar qualquer uma das seguintes opçÃĩes:",
+ "web_app_crash.debug_info": "InformaçÃĩes de depuraçÃŖo",
+ "web_app_crash.disable_addons": "Desativar complementos do navegador ou ferramentas de traduçÃŖo integradas",
+ "web_app_crash.issue_tracker": "rastreador de problemas",
+ "web_app_crash.reload": "Recarregar",
+ "web_app_crash.reload_page": "{reload} a pÃĄgina atual",
+ "web_app_crash.report_issue": "Relatar um erro no {issuetracker}",
+ "web_app_crash.settings": "configuraçÃĩes",
+ "web_app_crash.title": "Desculpe, mas algo deu errado com o aplicativo Mastodon."
+}
diff --git a/app/javascript/flavours/glitch/locales/pt-PT.js b/app/javascript/flavours/glitch/locales/pt-PT.js
deleted file mode 100644
index cf7afd17a..000000000
--- a/app/javascript/flavours/glitch/locales/pt-PT.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/pt-PT.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/pt-PT.json b/app/javascript/flavours/glitch/locales/pt-PT.json
new file mode 100644
index 000000000..9fc3d05b4
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/pt-PT.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "O Glitch-soc Ê um software livre de cÃŗdigo aberto, derivado (fork) do Mastodon.",
+ "account.add_account_note": "Juntar uma nota sobre @{name}",
+ "account.disclaimer_full": "As informaçÃĩes abaixo podem nÃŖo refletir completamente o perfil do utilizador.",
+ "account.follows": "A seguir",
+ "account.joined": "Juntou-se em {date}",
+ "account.suspended_disclaimer_full": "Este utilizador foi suspenso por um elemento da moderaçÃŖo.",
+ "account.view_full_profile": "Ver o perfil completo",
+ "account_note.cancel": "Cancelar",
+ "account_note.edit": "Editar",
+ "account_note.glitch_placeholder": "Nenhum comentÃĄrio dado",
+ "account_note.save": "Gravar",
+ "advanced_options.icon_title": "OpçÃĩes avançadas",
+ "advanced_options.local-only.long": "NÃŖo publicar noutras instÃĸncias",
+ "advanced_options.local-only.short": "Apenas local",
+ "advanced_options.local-only.tooltip": "Este post Ê apenas local",
+ "advanced_options.threaded_mode.long": "Abrir automaticamente uma resposta ao publicar",
+ "advanced_options.threaded_mode.short": "Modo de fio",
+ "advanced_options.threaded_mode.tooltip": "Modo de fio ativado",
+ "boost_modal.missing_description": "Este post contÊm alguns media sem descriçÃŖo",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/ro.js b/app/javascript/flavours/glitch/locales/ro.js
deleted file mode 100644
index a16446c6a..000000000
--- a/app/javascript/flavours/glitch/locales/ro.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/ro.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/ro.json b/app/javascript/flavours/glitch/locales/ro.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/ro.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/ru.js b/app/javascript/flavours/glitch/locales/ru.js
deleted file mode 100644
index 0e9f1de71..000000000
--- a/app/javascript/flavours/glitch/locales/ru.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/ru.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/ru.json b/app/javascript/flavours/glitch/locales/ru.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/ru.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/sa.js b/app/javascript/flavours/glitch/locales/sa.js
deleted file mode 100644
index 4cade0a07..000000000
--- a/app/javascript/flavours/glitch/locales/sa.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/sa.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/sa.json b/app/javascript/flavours/glitch/locales/sa.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/sa.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/sc.js b/app/javascript/flavours/glitch/locales/sc.js
deleted file mode 100644
index 88a83aa53..000000000
--- a/app/javascript/flavours/glitch/locales/sc.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/sc.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/sc.json b/app/javascript/flavours/glitch/locales/sc.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/sc.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/sco.json b/app/javascript/flavours/glitch/locales/sco.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/sco.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/si.js b/app/javascript/flavours/glitch/locales/si.js
deleted file mode 100644
index d43266254..000000000
--- a/app/javascript/flavours/glitch/locales/si.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/si.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/si.json b/app/javascript/flavours/glitch/locales/si.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/si.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/sk.js b/app/javascript/flavours/glitch/locales/sk.js
deleted file mode 100644
index 5fba6ab97..000000000
--- a/app/javascript/flavours/glitch/locales/sk.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/sk.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/sk.json b/app/javascript/flavours/glitch/locales/sk.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/sk.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/sl.js b/app/javascript/flavours/glitch/locales/sl.js
deleted file mode 100644
index c53c1bae8..000000000
--- a/app/javascript/flavours/glitch/locales/sl.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/sl.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/sl.json b/app/javascript/flavours/glitch/locales/sl.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/sl.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/sq.js b/app/javascript/flavours/glitch/locales/sq.js
deleted file mode 100644
index 2fb7a2973..000000000
--- a/app/javascript/flavours/glitch/locales/sq.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/sq.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/sq.json b/app/javascript/flavours/glitch/locales/sq.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/sq.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/sr-Latn.js b/app/javascript/flavours/glitch/locales/sr-Latn.js
deleted file mode 100644
index b42d5eaaf..000000000
--- a/app/javascript/flavours/glitch/locales/sr-Latn.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/sr-Latn.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/sr-Latn.json b/app/javascript/flavours/glitch/locales/sr-Latn.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/sr-Latn.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/sr.js b/app/javascript/flavours/glitch/locales/sr.js
deleted file mode 100644
index 8793d8d1e..000000000
--- a/app/javascript/flavours/glitch/locales/sr.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/sr.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/sr.json b/app/javascript/flavours/glitch/locales/sr.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/sr.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/sv.js b/app/javascript/flavours/glitch/locales/sv.js
deleted file mode 100644
index b62c353fe..000000000
--- a/app/javascript/flavours/glitch/locales/sv.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/sv.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/sv.json b/app/javascript/flavours/glitch/locales/sv.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/sv.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/szl.js b/app/javascript/flavours/glitch/locales/szl.js
deleted file mode 100644
index 0b50afe45..000000000
--- a/app/javascript/flavours/glitch/locales/szl.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/szl.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/szl.json b/app/javascript/flavours/glitch/locales/szl.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/szl.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/ta.js b/app/javascript/flavours/glitch/locales/ta.js
deleted file mode 100644
index d6ecdcb1b..000000000
--- a/app/javascript/flavours/glitch/locales/ta.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/ta.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/ta.json b/app/javascript/flavours/glitch/locales/ta.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/ta.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/tai.js b/app/javascript/flavours/glitch/locales/tai.js
deleted file mode 100644
index f26cec5bd..000000000
--- a/app/javascript/flavours/glitch/locales/tai.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/tai.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/tai.json b/app/javascript/flavours/glitch/locales/tai.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/tai.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/te.js b/app/javascript/flavours/glitch/locales/te.js
deleted file mode 100644
index afd6e4f7b..000000000
--- a/app/javascript/flavours/glitch/locales/te.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/te.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/te.json b/app/javascript/flavours/glitch/locales/te.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/te.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/th.js b/app/javascript/flavours/glitch/locales/th.js
deleted file mode 100644
index e939f8631..000000000
--- a/app/javascript/flavours/glitch/locales/th.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/th.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/th.json b/app/javascript/flavours/glitch/locales/th.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/th.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/tr.js b/app/javascript/flavours/glitch/locales/tr.js
deleted file mode 100644
index c2b740617..000000000
--- a/app/javascript/flavours/glitch/locales/tr.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/tr.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/tr.json b/app/javascript/flavours/glitch/locales/tr.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/tr.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/tt.js b/app/javascript/flavours/glitch/locales/tt.js
deleted file mode 100644
index ff74f6c29..000000000
--- a/app/javascript/flavours/glitch/locales/tt.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/tt.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/tt.json b/app/javascript/flavours/glitch/locales/tt.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/tt.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/ug.js b/app/javascript/flavours/glitch/locales/ug.js
deleted file mode 100644
index ab7ee0761..000000000
--- a/app/javascript/flavours/glitch/locales/ug.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/ug.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/ug.json b/app/javascript/flavours/glitch/locales/ug.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/ug.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/uk.js b/app/javascript/flavours/glitch/locales/uk.js
deleted file mode 100644
index ab6d9a7dc..000000000
--- a/app/javascript/flavours/glitch/locales/uk.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/uk.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/uk.json b/app/javascript/flavours/glitch/locales/uk.json
new file mode 100644
index 000000000..1304732f4
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/uk.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "ĐĐĩ Đ´ĐŧŅŅ
Đ°Ņи ŅĐĩ ĐŊĐ° ŅĐŊŅŅ ŅĐĩŅвĐĩŅи",
+ "advanced_options.local-only.short": "ĐиŅĐĩ ĐģĐžĐēĐ°ĐģŅĐŊĐĩ",
+ "advanced_options.local-only.tooltip": "ĐĻĐĩĐš Đ´ĐŧŅŅ
ĐģиŅĐĩ ĐģĐžĐēĐ°ĐģŅĐŊиК",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "ĐĐēĐģĐ°ŅŅи...",
+ "compose.attach.doodle": "ĐĐžĐŧĐ°ĐģŅваŅи",
+ "compose.attach.upload": "ĐаваĐŊŅĐ°ĐļиŅи ŅŅди ŅĐ°ĐšĐģ",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "Đи ĐŧĐžĐļĐĩŅĐĩ ĐŊĐ°ŅиŅĐŊŅŅи {combo}, ŅОй ĐŋŅĐžĐŋŅŅŅиŅи ŅĐĩ ĐŊĐ°ŅŅŅĐŋĐŊĐžĐŗĐž ŅаСŅ",
+ "getting_started.onboarding": "ШО ŅŅŅ",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "ĐĐžĐēаСаŅи ĐŋŅŅĐŧŅ ĐŋОвŅĐ´ĐžĐŧĐģĐĩĐŊĐŊŅ",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "ĐвŅĐžĐŧĐ°ŅиŅĐŊиК",
+ "layout.desktop": "ĐĐ°ŅŅŅĐģŅĐŊиК",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "ЧŅŅĐģивŅ",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "ĐĐ°ĐģĐ°ŅŅŅваĐŊĐŊŅ ĐŋŅĐžĐŗŅĐ°Đŧи",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "ĐОСĐŊĐ°ŅиŅи Đ´ĐģŅ видаĐģĐĩĐŊĐŊŅ",
+ "notification_purge.btn_all": "ĐийŅĐ°Ņи\nвŅĐĩ",
+ "notification_purge.btn_apply": "ĐŅиŅŅиŅи\nвийŅŅ",
+ "notification_purge.btn_invert": "ĐĐŊвĐĩŅŅŅваŅи\nвийŅŅ",
+ "notification_purge.btn_none": "ĐийŅĐ°Ņи\nĐŊŅŅĐžĐŗĐž",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "ĐŅиŅŅиŅи вийŅĐ°ĐŊŅ ŅĐŋОвŅŅĐĩĐŊĐŊŅ",
+ "notifications.marked_clear_confirmation": "Đи вĐŋĐĩвĐŊĐĩĐŊŅ, ŅĐž Ņ
ĐžŅĐĩŅĐĩ ĐŊĐĩСвОŅĐžŅĐŊŅĐž ĐžŅиŅŅиŅи вŅŅ вийŅĐ°ĐŊŅ ŅĐŋОвŅŅĐĩĐŊĐŊŅ?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} Ņ ŅĐĩŅвĐĩŅĐžĐŧ of Mastodon. Mastodon â ĐŧĐĩŅĐĩĐļĐ° ĐŊĐĩСаĐģĐĩĐļĐŊиŅ
ŅĐĩŅвĐĩŅŅв, ŅĐēŅ ĐŋŅĐ°ŅŅŅŅŅ ŅаСОĐŧ вĐĩĐģиĐēĐžŅ ŅĐžŅŅŅĐģŅĐŊĐžŅ ĐŧĐĩŅĐĩĐļĐžŅ. ĐĄĐĩŅвĐĩŅи Mastodon ŅĐ°ĐēĐžĐļ ĐŊаСиваŅŅŅ âŅĐŊŅŅĐ°ĐŊŅĐ°Đŧиâ.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "ĐĐ°ŅĐēавО ĐŋŅĐžŅиĐŧĐž Đ´Đž {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} виĐēĐžŅиŅŅОвŅŅ Glitchsoc. Glitchsoc â Đ´ŅŅĐļĐŊŅĐš {fork} {Mastodon}, ŅŅĐŧŅŅĐŊиК С ĐąŅĐ´Ņ-ŅĐēиĐŧ ŅĐĩŅвĐĩŅĐžĐŧ Mastodon айО ĐŋŅĐžĐŗŅĐ°ĐŧĐžŅ Đ´ĐģŅ ĐŊŅĐžĐŗĐž. Glitchsoc ĐŋОвĐŊŅŅŅŅ вŅĐģŅĐŊиК ŅĐ° вŅĐ´ĐēŅиŅиК. ĐОвŅĐ´ĐžĐŧĐģŅŅи ĐŋŅĐž йаĐŗи, ĐŋŅĐžŅиŅи ŅŅŅŅ, айО ĐŋŅĐ°ŅŅваŅи С ĐēОдОĐŧ ĐŧĐžĐļĐŊĐ° ĐŊĐ° {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "ĐвŅĐžĐŧĐ°ŅиŅĐŊĐĩ СĐŗĐžŅŅĐ°ĐŊĐŊŅ",
+ "settings.auto_collapse_all": "ĐŅĐĩ",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "ĐОвĐŗŅ Đ´ĐŧŅŅ
и",
+ "settings.auto_collapse_media": "ĐĐŧŅŅ
и С ĐŧĐĩĐ´ŅĐ°ŅĐ°ĐšĐģĐ°Đŧи",
+ "settings.auto_collapse_notifications": "ĐĄĐŋОвŅŅĐĩĐŊĐŊŅ",
+ "settings.auto_collapse_reblogs": "ĐĐĩŅĐĩĐ´ĐŧŅŅ
и",
+ "settings.auto_collapse_replies": "ĐŅĐ´ĐŋОвŅĐ´Ņ",
+ "settings.close": "ĐĐ°ĐēŅиŅи",
+ "settings.collapsed_statuses": "ĐĐŗĐžŅĐŊŅŅŅ Đ´ĐŧŅŅ
и",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "ĐŖвŅĐŧĐēŅŅи СĐŗĐžŅĐŊŅŅĐ°ĐŊĐŊŅ Đ´ĐŧŅŅ
Ņв",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "ĐŅĐŊОвĐŊĐĩ",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "ĐĐ°ŅŅиĐŊĐēи ĐŊĐ° ŅĐģŅ",
+ "settings.image_backgrounds_media": "ĐŅĐ´ĐŗĐģŅĐ´Đ°Ņи ĐŧĐĩĐ´ŅĐ° СŅ ŅŅ
ОваĐŊиŅ
Đ´ĐŧŅŅ
Ņв",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "ĐаваŅи ŅŅ
ОваĐŊиĐŧ Đ´ĐŧŅŅ
Đ°Đŧ ŅĐģĐž-ĐēĐ°ŅŅиĐŊĐēŅ",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "ĐĐĩĐ´ŅĐ°",
+ "settings.media_fullwidth": "ĐĐžĐēаСŅваŅи ĐŧĐĩĐ´ŅĐ° ĐŋОвĐŊĐžŅ ŅиŅиĐŊĐžŅ",
+ "settings.media_letterbox": "ĐĐąŅŅСаŅи ĐŧĐĩĐ´ŅĐ°",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "ĐĐžŅиŅŅŅваŅŅĐēŅ ĐŊĐ°ĐģĐ°ŅŅŅваĐŊĐŊŅ",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "ĐĐžĐēаСŅваŅи ĐēĐŊĐžĐŋĐēи Ņ СĐŗĐžŅĐŊŅŅиŅ
Đ´ĐŧŅŅ
Đ°Ņ
",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "ШиŅĐžĐēиК вид (ŅŅĐģŅĐēи в ŅĐĩĐļиĐŧŅ Đ´ĐģŅ ĐēĐžĐŧĐŋ'ŅŅĐĩŅŅв)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "ĐĐŗĐžŅĐŊŅŅи",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "РОСĐŗĐžŅĐŊŅŅи",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/ur.js b/app/javascript/flavours/glitch/locales/ur.js
deleted file mode 100644
index 97ba291b0..000000000
--- a/app/javascript/flavours/glitch/locales/ur.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/ur.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/ur.json b/app/javascript/flavours/glitch/locales/ur.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/ur.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/vi.js b/app/javascript/flavours/glitch/locales/vi.js
deleted file mode 100644
index 499a96727..000000000
--- a/app/javascript/flavours/glitch/locales/vi.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/vi.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/vi.json b/app/javascript/flavours/glitch/locales/vi.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/vi.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/whitelist_af.json b/app/javascript/flavours/glitch/locales/whitelist_af.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_af.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_an.json b/app/javascript/flavours/glitch/locales/whitelist_an.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_an.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_ar.json b/app/javascript/flavours/glitch/locales/whitelist_ar.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_ar.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_ast.json b/app/javascript/flavours/glitch/locales/whitelist_ast.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_ast.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_be.json b/app/javascript/flavours/glitch/locales/whitelist_be.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_be.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_bg.json b/app/javascript/flavours/glitch/locales/whitelist_bg.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_bg.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_bn.json b/app/javascript/flavours/glitch/locales/whitelist_bn.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_bn.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_br.json b/app/javascript/flavours/glitch/locales/whitelist_br.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_br.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_bs.json b/app/javascript/flavours/glitch/locales/whitelist_bs.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_bs.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_ca.json b/app/javascript/flavours/glitch/locales/whitelist_ca.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_ca.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_ckb.json b/app/javascript/flavours/glitch/locales/whitelist_ckb.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_ckb.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_co.json b/app/javascript/flavours/glitch/locales/whitelist_co.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_co.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_cs.json b/app/javascript/flavours/glitch/locales/whitelist_cs.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_cs.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_cy.json b/app/javascript/flavours/glitch/locales/whitelist_cy.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_cy.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_da.json b/app/javascript/flavours/glitch/locales/whitelist_da.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_da.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_de.json b/app/javascript/flavours/glitch/locales/whitelist_de.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_de.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_el.json b/app/javascript/flavours/glitch/locales/whitelist_el.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_el.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_en-GB.json b/app/javascript/flavours/glitch/locales/whitelist_en-GB.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_en-GB.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_en.json b/app/javascript/flavours/glitch/locales/whitelist_en.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_en.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_eo.json b/app/javascript/flavours/glitch/locales/whitelist_eo.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_eo.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_es-AR.json b/app/javascript/flavours/glitch/locales/whitelist_es-AR.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_es-AR.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_es-MX.json b/app/javascript/flavours/glitch/locales/whitelist_es-MX.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_es-MX.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_es.json b/app/javascript/flavours/glitch/locales/whitelist_es.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_es.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_et.json b/app/javascript/flavours/glitch/locales/whitelist_et.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_et.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_eu.json b/app/javascript/flavours/glitch/locales/whitelist_eu.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_eu.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_fa.json b/app/javascript/flavours/glitch/locales/whitelist_fa.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_fa.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_fi.json b/app/javascript/flavours/glitch/locales/whitelist_fi.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_fi.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_fo.json b/app/javascript/flavours/glitch/locales/whitelist_fo.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_fo.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_fr-QC.json b/app/javascript/flavours/glitch/locales/whitelist_fr-QC.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_fr-QC.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_fr.json b/app/javascript/flavours/glitch/locales/whitelist_fr.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_fr.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_fy.json b/app/javascript/flavours/glitch/locales/whitelist_fy.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_fy.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_ga.json b/app/javascript/flavours/glitch/locales/whitelist_ga.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_ga.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_gd.json b/app/javascript/flavours/glitch/locales/whitelist_gd.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_gd.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_gl.json b/app/javascript/flavours/glitch/locales/whitelist_gl.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_gl.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_he.json b/app/javascript/flavours/glitch/locales/whitelist_he.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_he.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_hi.json b/app/javascript/flavours/glitch/locales/whitelist_hi.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_hi.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_hr.json b/app/javascript/flavours/glitch/locales/whitelist_hr.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_hr.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_hu.json b/app/javascript/flavours/glitch/locales/whitelist_hu.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_hu.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_hy.json b/app/javascript/flavours/glitch/locales/whitelist_hy.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_hy.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_id.json b/app/javascript/flavours/glitch/locales/whitelist_id.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_id.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_ig.json b/app/javascript/flavours/glitch/locales/whitelist_ig.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_ig.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_io.json b/app/javascript/flavours/glitch/locales/whitelist_io.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_io.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_is.json b/app/javascript/flavours/glitch/locales/whitelist_is.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_is.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_it.json b/app/javascript/flavours/glitch/locales/whitelist_it.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_it.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_ja.json b/app/javascript/flavours/glitch/locales/whitelist_ja.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_ja.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_ka.json b/app/javascript/flavours/glitch/locales/whitelist_ka.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_ka.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_kab.json b/app/javascript/flavours/glitch/locales/whitelist_kab.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_kab.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_kk.json b/app/javascript/flavours/glitch/locales/whitelist_kk.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_kk.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_kn.json b/app/javascript/flavours/glitch/locales/whitelist_kn.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_kn.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_ko.json b/app/javascript/flavours/glitch/locales/whitelist_ko.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_ko.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_ku.json b/app/javascript/flavours/glitch/locales/whitelist_ku.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_ku.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_kw.json b/app/javascript/flavours/glitch/locales/whitelist_kw.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_kw.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_la.json b/app/javascript/flavours/glitch/locales/whitelist_la.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_la.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_lt.json b/app/javascript/flavours/glitch/locales/whitelist_lt.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_lt.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_lv.json b/app/javascript/flavours/glitch/locales/whitelist_lv.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_lv.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_mk.json b/app/javascript/flavours/glitch/locales/whitelist_mk.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_mk.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_ml.json b/app/javascript/flavours/glitch/locales/whitelist_ml.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_ml.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_mr.json b/app/javascript/flavours/glitch/locales/whitelist_mr.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_mr.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_ms.json b/app/javascript/flavours/glitch/locales/whitelist_ms.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_ms.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_my.json b/app/javascript/flavours/glitch/locales/whitelist_my.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_my.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_nl.json b/app/javascript/flavours/glitch/locales/whitelist_nl.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_nl.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_nn.json b/app/javascript/flavours/glitch/locales/whitelist_nn.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_nn.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_no.json b/app/javascript/flavours/glitch/locales/whitelist_no.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_no.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_oc.json b/app/javascript/flavours/glitch/locales/whitelist_oc.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_oc.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_pa.json b/app/javascript/flavours/glitch/locales/whitelist_pa.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_pa.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_pl.json b/app/javascript/flavours/glitch/locales/whitelist_pl.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_pl.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_pt-BR.json b/app/javascript/flavours/glitch/locales/whitelist_pt-BR.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_pt-BR.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_pt-PT.json b/app/javascript/flavours/glitch/locales/whitelist_pt-PT.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_pt-PT.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_ro.json b/app/javascript/flavours/glitch/locales/whitelist_ro.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_ro.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_ru.json b/app/javascript/flavours/glitch/locales/whitelist_ru.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_ru.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_sa.json b/app/javascript/flavours/glitch/locales/whitelist_sa.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_sa.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_sc.json b/app/javascript/flavours/glitch/locales/whitelist_sc.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_sc.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_sco.json b/app/javascript/flavours/glitch/locales/whitelist_sco.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_sco.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_si.json b/app/javascript/flavours/glitch/locales/whitelist_si.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_si.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_sk.json b/app/javascript/flavours/glitch/locales/whitelist_sk.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_sk.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_sl.json b/app/javascript/flavours/glitch/locales/whitelist_sl.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_sl.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_sq.json b/app/javascript/flavours/glitch/locales/whitelist_sq.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_sq.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_sr-Latn.json b/app/javascript/flavours/glitch/locales/whitelist_sr-Latn.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_sr-Latn.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_sr.json b/app/javascript/flavours/glitch/locales/whitelist_sr.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_sr.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_sv.json b/app/javascript/flavours/glitch/locales/whitelist_sv.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_sv.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_szl.json b/app/javascript/flavours/glitch/locales/whitelist_szl.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_szl.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_ta.json b/app/javascript/flavours/glitch/locales/whitelist_ta.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_ta.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_tai.json b/app/javascript/flavours/glitch/locales/whitelist_tai.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_tai.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_te.json b/app/javascript/flavours/glitch/locales/whitelist_te.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_te.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_th.json b/app/javascript/flavours/glitch/locales/whitelist_th.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_th.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_tr.json b/app/javascript/flavours/glitch/locales/whitelist_tr.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_tr.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_tt.json b/app/javascript/flavours/glitch/locales/whitelist_tt.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_tt.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_ug.json b/app/javascript/flavours/glitch/locales/whitelist_ug.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_ug.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_uk.json b/app/javascript/flavours/glitch/locales/whitelist_uk.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_uk.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_ur.json b/app/javascript/flavours/glitch/locales/whitelist_ur.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_ur.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_vi.json b/app/javascript/flavours/glitch/locales/whitelist_vi.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_vi.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_zgh.json b/app/javascript/flavours/glitch/locales/whitelist_zgh.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_zgh.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_zh-CN.json b/app/javascript/flavours/glitch/locales/whitelist_zh-CN.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_zh-CN.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_zh-HK.json b/app/javascript/flavours/glitch/locales/whitelist_zh-HK.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_zh-HK.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/whitelist_zh-TW.json b/app/javascript/flavours/glitch/locales/whitelist_zh-TW.json
new file mode 100644
index 000000000..0d4f101c7
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/whitelist_zh-TW.json
@@ -0,0 +1,2 @@
+[
+]
diff --git a/app/javascript/flavours/glitch/locales/zgh.js b/app/javascript/flavours/glitch/locales/zgh.js
deleted file mode 100644
index f2f15b1a4..000000000
--- a/app/javascript/flavours/glitch/locales/zgh.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/zgh.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/zgh.json b/app/javascript/flavours/glitch/locales/zgh.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/zgh.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/zh-CN.js b/app/javascript/flavours/glitch/locales/zh-CN.js
deleted file mode 100644
index 21a68fc01..000000000
--- a/app/javascript/flavours/glitch/locales/zh-CN.js
+++ /dev/null
@@ -1,201 +0,0 @@
-import inherited from 'mastodon/locales/zh-CN.json';
-
-const messages = {
- 'account.add_account_note': 'ä¸ē @{name} æˇģå å¤æŗ¨',
- 'account.disclaimer_full': 'äģĨä¸äŋĄæ¯å¯čŊæ æŗåŽæ´äģŖ襨äŊ įä¸Ēäēēčĩæã',
- 'account.follows': 'æŖå¨å
ŗæŗ¨',
- 'account.suspended_disclaimer_full': 'č¯Ĩį¨æˇåˇ˛čĸĢå°įĻã',
- 'account.view_full_profile': 'æĨįåŽæ´čĩæ',
- 'account_note.cancel': 'åæļ',
- 'account_note.edit': 'įŧčž',
- 'account_note.glitch_placeholder': 'ææ å¤æŗ¨',
- 'account_note.save': 'äŋå',
- 'advanced_options.icon_title': 'éĢįē§é饚',
- 'advanced_options.local-only.long': 'ä¸čĻåå¸åæå°å
ļäģåŽäž',
- 'advanced_options.local-only.short': 'æŦå°æ¨Ąåŧ',
- 'advanced_options.local-only.tooltip': 'čŋæĄåæäģ
éäēæŦåŽäž',
- 'advanced_options.threaded_mode.long': 'ååæļčĒå¨æåŧåå¤',
- 'advanced_options.threaded_mode.short': 'įēŋį¨æ¨Ąåŧ',
- 'advanced_options.threaded_mode.tooltip': 'įēŋį¨æ¨Ąåŧåˇ˛å¯į¨',
- 'boost_modal.missing_description': 'čŋæĄåææĒå
åĢåĒäŊæčŋ°',
- 'column.favourited_by': 'åæŦĸ',
- 'column.heading': 'æ éĸ',
- 'column.reblogged_by': 'čŊŦå',
- 'column.subheading': 'å
ļäģé饚',
- 'column.toot': 'åæååå¤',
- 'column_header.profile': 'ä¸Ēäēēčĩæ',
- 'column_subheading.lists': 'å襨',
- 'column_subheading.navigation': 'å¯ŧčĒ',
- 'community.column_settings.allow_local_only': 'åĒæžį¤ēæŦå°æ¨Ąåŧåæ',
- 'compose.attach': 'éä¸...',
- 'compose.attach.doodle': 'įģįšäģäš',
- 'compose.attach.upload': 'ä¸äŧ æäģļ',
- 'compose.content-type.html': 'HTML',
- 'compose.content-type.markdown': 'Markdown',
- 'compose.content-type.plain': 'įē¯ææŦ',
- 'compose_form.poll.multiple_choices': 'å
莸å¤é',
- 'compose_form.poll.single_choice': 'å
莸åé',
- 'compose_form.spoiler': 'éčä¸ēå
厚čĻå',
- 'confirmation_modal.do_not_ask_again': 'ä¸æŦĄä¸æžį¤ēįĄŽčŽ¤įĒåŖ',
- 'confirmations.discard_edit_media.confirm': 'įĄŽčŽ¤',
- 'confirmations.discard_edit_media.message': 'ææĒäŋåįåĒäŊæčŋ°æéĸč§īŧįĄŽčŽ¤čĻå
ŗéīŧ',
- 'confirmations.missing_media_description.confirm': 'įĄŽčŽ¤',
- 'confirmations.missing_media_description.edit': 'įŧčž',
- 'confirmations.missing_media_description.message': 'äŊ æ˛Ąæä¸ēä¸į§æå¤į§åĒäŊæ°åæčŋ°ãč¯ˇččä¸ēč§éäēēåŖĢæˇģå æčŋ°ã',
- 'confirmations.unfilter': 'å
ŗäēæ¤čŋæģ¤ååæįäŋĄæ¯',
- 'confirmations.unfilter.author': 'äŊč
',
- 'confirmations.unfilter.confirm': 'æĨį',
- 'confirmations.unfilter.edit_filter': 'įŧčžčŋæģ¤å¨',
- 'confirmations.unfilter.filters': 'åēį¨ {count, plural, one {čŋæģ¤å¨} other {čŋæģ¤å¨}}',
- 'content-type.change': 'å
厚įąģå ',
- 'direct.conversations_mode': '寚č¯æ¨Ąåŧ',
- 'direct.timeline_mode': 'æļé´įēŋæ¨Ąåŧ',
- 'endorsed_accounts_editor.endorsed_accounts': 'æ¨čį¨æˇ',
- 'favourite_modal.combo': 'ä¸æŦĄäŊ å¯äģĨæ {combo} čˇŗčŋčŋä¸Ē',
- 'getting_started.onboarding': 'åč§ä¸ä¸',
- 'getting_started.open_source_notice': 'Glitchsoc æ¯įą {Mastodon} åååēæĨįå
č´šåŧæēčŊ¯äģļãäŊ å¯äģĨå¨ GitHub ä¸č´ĄįŽææĨåéŽéĸīŧå°åæ¯ {github}ã',
- 'home.column_settings.advanced': 'éĢįē§',
- 'home.column_settings.filter_regex': 'ææŖå襨螞åŧčŋæģ¤',
- 'home.column_settings.show_direct': 'æžį¤ēį§äŋĄ',
- 'home.settings': 'å襨莞įŊŽ',
- 'keyboard_shortcuts.bookmark': 'äšĻįž',
- 'keyboard_shortcuts.secondary_toot': 'äŊŋį¨äēįē§éį§čŽžįŊŽåéåæ',
- 'keyboard_shortcuts.toggle_collapse': 'æå æåąåŧåæ',
- 'layout.auto': 'čĒå¨æ¨Ąåŧ',
- 'layout.current_is': 'äŊ įŽåįå¸åąæ¯īŧ',
- 'layout.desktop': 'æĄéĸæ¨Ąåŧ',
- 'layout.hint.auto': 'æ šæŽâå¯į¨éĢįē§ Web įéĸâ莞įŊŽååąåšå¤§å°čĒå¨éæŠå¸åąã',
- 'layout.hint.desktop': 'âäŊŋį¨å¤åå¸åąīŧæ čŽēâå¯į¨éĢįē§ Web įéĸâ莞įŊŽååąåšå¤§å°åĻäŊã',
- 'layout.hint.single': 'äŊŋį¨ååå¸åąīŧæ čŽēâå¯į¨éĢįē§ Web įéĸâ莞įŊŽååąåšå¤§å°åĻäŊã',
- 'layout.single': 'į§ģå¨æ¨Ąåŧ',
- 'media_gallery.sensitive': 'ææå
厚',
- 'moved_to_warning': 'æ¤å¸æˇåˇ˛čĸĢæ 莰ä¸ēį§ģčŗ {moved_to_link}īŧåšļä¸äŧŧäšæ˛Ąææļå°æ°å
ŗæŗ¨č
ã',
- 'navigation_bar.app_settings': 'åēį¨é饚',
- 'navigation_bar.featured_users': 'æ¨čį¨æˇ',
- 'navigation_bar.misc': 'æ饚',
- 'notification.markForDeletion': 'æ 莰äģĨå é¤',
- 'notification_purge.btn_all': 'å
¨é',
- 'notification_purge.btn_apply': 'æ¸
é¤åˇ˛é',
- 'notification_purge.btn_invert': 'ååéæŠ',
- 'notification_purge.btn_none': 'åæļå
¨é',
- 'notification_purge.start': 'čŋå
ĨéįĨæ¸
é¤æ¨Ąåŧ',
- 'notifications.clear': 'æ¸
é¤ææéįĨ',
- 'notifications.marked_clear': 'æ¸
é¤éæŠįéįĨ',
- 'notifications.marked_clear_confirmation': 'äŊ įĄŽåŽčĻæ°¸äš
æ¸
é¤ææéæŠįéįĨåīŧ',
- 'onboarding.done': 'åŽæ',
- 'onboarding.next': 'ä¸ä¸ä¸Ē',
- 'onboarding.page_five.public_timelines': 'æŦå°æļé´įēŋæžį¤ēæĨčĒ {domain} ä¸ææäēēįå
Ŧåŧåæã表įĢæļé´įēŋæžį¤ēäē {domain} į¨æˇå
ŗæŗ¨įæ¯ä¸Ēäēēįå
ŦåŧåæãčŋäēčĸĢį§°ä¸ēå
Ŧå
ąæļé´įēŋīŧæ¯åį°æ°æåįåĨŊæšæŗã',
- 'onboarding.page_four.home': 'äŊ įä¸ģéĄĩæļé´įēŋäŧæžį¤ēäŊ å
ŗæŗ¨įäēēįåæã',
- 'onboarding.page_four.notifications': 'éįĨæ æžį¤ēæäēēä¸äŊ äēå¨įå
厚ã',
- 'onboarding.page_one.federation': '{domain} æ¯ Mastodon įä¸ä¸ĒâåŽäžâãMastodon æ¯ä¸ä¸ĒįąįŦįĢæåĄå¨įģæįīŧéčŋä¸æčååŊĸæįį¤žäē¤įŊįģãæäģŦį§°čŋäēæåĄå¨ä¸ēåŽäžã',
- 'onboarding.page_one.handle': 'äŊ äŊäē {domain}īŧå æ¤äŊ įåŽæ´į¨æˇåæ¯ {handle} ã',
- 'onboarding.page_one.welcome': 'æŦĸčŋæĨå° {domain}īŧ',
- 'onboarding.page_six.admin': 'åŽäžįįŽĄįåæ¯ {admin}ã',
- 'onboarding.page_six.almost_done': 'å°ąåŋĢåŽæäē...',
- 'onboarding.page_six.appetoot': 'å°Ŋæ
äēĢį¨å§īŧ',
- 'onboarding.page_six.apps_available': 'æéį¨äē iOSãAndroid åå
ļäģåšŗå°įåēį¨į¨åēã',
- 'onboarding.page_six.github': '{domain} å¨ Glitchsoc ä¸čŋčĄãGlitchsoc æ¯ {Mastodon} įä¸ä¸ĒååĨŊ {fork}īŧä¸äģģäŊ Mastodon åŽäžæåēį¨å
ŧ厚ãGlitchsoc æ¯åŽå
¨å
č´šååŧæēįãäŊ å¯äģĨå¨ {github} ä¸æĨåéč¯¯ãč¯ˇæąåčŊæč´ĄįŽäģŖį ã',
- 'onboarding.page_six.guidelines': 'į¤žåēåå',
- 'onboarding.page_six.read_guidelines': 'č¯ˇé
č¯ģ {domain} į {guidelines}īŧ',
- 'onboarding.page_six.various_app': 'åēį¨į¨åē',
- 'onboarding.page_three.profile': 'įŧčžäŊ įä¸Ēäēēčĩæīŧæ´æšäŊ į头åãä¸ĒäēēįŽäģåæĩį§°ãå¨éŖéīŧäŊ čŋäŧåį°å
ļäģ莞įŊŽã',
- 'onboarding.page_three.search': 'äŊŋį¨æį´ĸæ æĨæžį¨æˇåšļæĨįæ įžīŧäžåĻ #illustration å #introductionsãčĻæĨæžä¸å¨æ¤åŽäžä¸įį¨æˇīŧč¯ˇäŊŋį¨äģäģŦįåŽæ´į¨æˇåã',
- 'onboarding.page_two.compose': 'å¨æ°åæĄä¸æ°ååæãäŊ å¯äģĨäŊŋį¨ä¸æšåžæ ä¸äŧ åžåãæ´æšéį§čŽžįŊŽåæˇģå å
厚čĻåã',
- 'onboarding.skip': 'čˇŗčŋ',
- 'settings.always_show_spoilers_field': 'å§įģæžį¤ēå
厚čĻåæĄ',
- 'settings.auto_collapse': 'čĒå¨æå ',
- 'settings.auto_collapse_all': 'ææ',
- 'settings.auto_collapse_lengthy': 'éŋåæ',
- 'settings.auto_collapse_media': 'å¸ĻåĒäŊæäģļįåæ',
- 'settings.auto_collapse_notifications': 'éįĨ',
- 'settings.auto_collapse_reblogs': 'čŊŦå',
- 'settings.auto_collapse_replies': 'åå¤',
- 'settings.close': 'å
ŗé',
- 'settings.collapsed_statuses': 'æå åæ',
- 'settings.compose_box_opts': 'æ°åæĄ',
- 'settings.confirm_before_clearing_draft': 'å¨čĻįæŖå¨åå
Ĩįåæäšåæžį¤ēįĄŽčŽ¤å¯šč¯æĄ',
- 'settings.confirm_boost_missing_media_description': 'å¨čŊŦåįŧēå°åĒäŊæčŋ°įåæäšåæžį¤ēįĄŽčŽ¤å¯šč¯æĄ',
- 'settings.confirm_missing_media_description': 'å¨åéįŧēå°åĒäŊæčŋ°įåæäšåæžį¤ēįĄŽčŽ¤å¯šč¯æĄ',
- 'settings.content_warnings': 'å
厚čĻå',
- 'settings.content_warnings.regexp': 'æŖå襨螞åŧ',
- 'settings.content_warnings_filter': 'ä¸äŧčĒå¨åąåŧįå
厚čĻåīŧ',
- 'settings.enable_collapsed': 'å¯į¨æå åæ',
- 'settings.enable_content_warnings_auto_unfold': 'čĒå¨åąåŧå
厚čĻå',
- 'settings.filtering_behavior': 'čŋæģ¤å¨čĄä¸ē',
- 'settings.filtering_behavior.cw': 'äģįļæžį¤ēåæīŧåšļå¨å
厚čĻåä¸æˇģå čŋæģ¤č¯',
- 'settings.filtering_behavior.drop': 'åŽå
¨éččŋæģ¤įåæ',
- 'settings.filtering_behavior.hide': 'æžį¤ēâåˇ˛čŋæģ¤âåšļæˇģå ä¸ä¸ĒæéŽæĨæžį¤ēåå ',
- 'settings.filtering_behavior.upstream': 'ååį Mastodon ä¸æ ˇæžį¤ēâåˇ˛čŋæģ¤â',
- 'settings.filters': 'čŋæģ¤å¨',
- 'settings.general': 'ä¸čŦ',
- 'settings.hicolor_privacy_icons': 'åŊŠč˛éį§åžæ ',
- 'settings.hicolor_privacy_icons.hint': 'äģĨæäēŽä¸æäēåēåįéĸč˛æžį¤ēéį§åžæ ',
- 'settings.image_backgrounds': 'åžįčæ¯',
- 'settings.image_backgrounds_media': 'éĸč§æå åæįåĒäŊæäģļ',
- 'settings.image_backgrounds_users': 'ä¸ēæå åæéå åžįčæ¯',
- 'settings.inline_preview_cards': 'å¤é¨éžæĨįå
åĩéĸč§åĄį',
- 'settings.layout': 'å¸åąīŧ',
- 'settings.layout_opts': 'å¸åąé饚',
- 'settings.media': 'åĒäŊ',
- 'settings.media_fullwidth': 'å
¨åŽŊåĒäŊéĸč§',
- 'settings.media_letterbox': 'äŋĄįŽąåĒäŊ',
- 'settings.media_letterbox_hint': 'įŧŠå°åĒäŊäģĨåĄĢå
åžå厚å¨čä¸æ¯æäŧ¸åčŖåĒåŽäģŦ',
- 'settings.media_reveal_behind_cw': 'éģ莤æžį¤ēå
厚čĻååįææåĒäŊ',
- 'settings.navbar_under': 'åēé¨å¯ŧčĒæ īŧäģ
éäēį§ģå¨æ¨Ąåŧīŧ',
- 'settings.notifications.favicon_badge': 'æĒč¯ģéįĨįŊįĢåžæ ',
- 'settings.notifications.favicon_badge.hint': 'å°æĒč¯ģéįĨæˇģå å°įŊįĢåžæ ',
- 'settings.notifications.tab_badge': 'æĒč¯ģéįĨåžæ ',
- 'settings.notifications.tab_badge.hint': 'åŊéįĨæ æĒæåŧæļīŧæžį¤ēæĒč¯ģéįĨåžæ ',
- 'settings.notifications_opts': 'éįĨé饚',
- 'settings.pop_in_left': 'åˇĻčžš',
- 'settings.pop_in_player': 'å¯į¨æŦæĩŽææžå¨',
- 'settings.pop_in_position': 'æŦæĩŽææžå¨äŊįŊŽīŧ',
- 'settings.pop_in_right': 'åŗčžš',
- 'settings.preferences': 'į¨æˇé饚',
- 'settings.prepend_cw_re': 'åå¤æļå¨å
厚čĻååå ä¸âre:â',
- 'settings.preselect_on_reply': 'åå¤æļéĸå
éæŠį¨æˇå',
- 'settings.preselect_on_reply_hint': 'åå¤ä¸å¤ä¸Ēåä¸č
į寚č¯æļīŧéĸå
éæŠįŦŦä¸ä¸Ēį¨æˇå',
- 'settings.rewrite_mentions': 'éååæä¸įæå',
- 'settings.rewrite_mentions_acct': 'éåä¸ēį¨æˇååååīŧåŊå¸æˇä¸ēčŋį¨æļīŧ',
- 'settings.rewrite_mentions_no': 'ä¸čĻéå',
- 'settings.rewrite_mentions_username': 'éåä¸ēį¨æˇå',
- 'settings.show_action_bar': 'å¨æå įåæä¸æžį¤ēæäŊæéŽ',
- 'settings.show_content_type_choice': 'å
莸äŊ å¨æ°ååææļéæŠæ ŧåŧįąģå',
- 'settings.show_reply_counter': 'æžį¤ēåå¤į大č´æ°é',
- 'settings.side_arm': 'čž
åŠååæéŽīŧ',
- 'settings.side_arm.none': 'æ ',
- 'settings.side_arm_reply_mode': 'åŊåå¤åææļīŧ',
- 'settings.side_arm_reply_mode.copy': 'å¤åļčĸĢåå¤åæįéį§čŽžįŊŽ',
- 'settings.side_arm_reply_mode.keep': 'äŋįčž
åŠååæéŽäģĨ莞įŊŽéį§',
- 'settings.side_arm_reply_mode.restrict': 'å°éį§čŽžįŊŽéåļä¸ēæŖå¨åå¤įéŖæĄåæ',
- 'settings.swipe_to_change_columns': 'å
莸æģå¨äģĨå¨åäšé´åæĸīŧäģ
éį§ģå¨æ¨Ąåŧīŧ',
- 'settings.tag_misleading_links': 'æ čŽ°č¯¯å¯ŧæ§éžæĨ',
- 'settings.tag_misleading_links.hint': 'å°å¸ĻæįŽæ įŊéĄĩéžæĨįč§č§æį¤ēæˇģå å°æ¯ä¸ĒæĒæįĄŽįéžæĨ',
- 'settings.wide_view': 'åŽŊč§åžīŧäģ
éäēæĄéĸæ¨Ąåŧīŧ',
- 'settings.wide_view_hint': 'æäŧ¸ååŽŊäģĨæ´åĨŊå°åĄĢå
å¯į¨įŠēé´ã',
- 'status.collapse': 'æå ',
- 'status.has_audio': 'éå¸Ļéŗéĸæäģļ',
- 'status.has_pictures': 'éå¸Ļåžįæäģļ',
- 'status.has_preview_card': 'éå¸Ļéĸč§åĄį',
- 'status.has_video': 'éå¸Ļč§éĸæäģļ',
- 'status.hide': 'éčå
厚',
- 'status.in_reply_to': 'æ¤åææ¯åå¤',
- 'status.is_poll': 'æ¤åææ¯æįĨ¨',
- 'status.local_only': 'æ¤åæäģ
æŦåŽäžå¯č§',
- 'status.sensitive_toggle': 'įšåģæĨį',
- 'status.show_filter_reason': 'īŧæžį¤ēåå īŧ',
- 'status.uncollapse': 'ä¸æå ',
- 'upload_modal.applying': 'æŖå¨åēį¨...',
- 'web_app_crash.change_your_settings': 'æ´æš {settings}',
- 'web_app_crash.content': 'äŊ å¯äģĨå°č¯čŋäēīŧ',
- 'web_app_crash.debug_info': 'č°č¯äŋĄæ¯',
- 'web_app_crash.disable_addons': 'įĻį¨æĩč§å¨æäģļææŦå°įŋģč¯åˇĨå
ˇ',
- 'web_app_crash.issue_tracker': 'éŽéĸčŋŊč¸Ēå¨',
- 'web_app_crash.reload': 'åˇæ°',
- 'web_app_crash.reload_page': '{reload} æ¤éĄĩéĸ',
- 'web_app_crash.report_issue': 'å°éč¯¯æĨåįģ {issuetracker}',
- 'web_app_crash.settings': '莞įŊŽ',
- 'web_app_crash.title': 'æąæīŧMastodon åēäēįšéŽéĸã',
-};
-
-export default Object.assign({}, inherited, messages);
\ No newline at end of file
diff --git a/app/javascript/flavours/glitch/locales/zh-CN.json b/app/javascript/flavours/glitch/locales/zh-CN.json
new file mode 100644
index 000000000..46a66c960
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/zh-CN.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-socæ¯äģMastodonæ´žįįå
č´šåŧæēčŊ¯äģļã",
+ "account.add_account_note": "ä¸ē @{name} æˇģå å¤æŗ¨",
+ "account.disclaimer_full": "äģĨä¸äŋĄæ¯å¯čŊæ æŗåŽæ´äģŖ襨äŊ įä¸Ēäēēčĩæã",
+ "account.follows": "æŖå¨å
ŗæŗ¨",
+ "account.joined": "å¨ {date} å å
Ĩ",
+ "account.suspended_disclaimer_full": "č¯Ĩį¨æˇåˇ˛čĸĢå°įĻã",
+ "account.view_full_profile": "æĨįåŽæ´čĩæ",
+ "account_note.cancel": "åæļ",
+ "account_note.edit": "įŧčž",
+ "account_note.glitch_placeholder": "ææ å¤æŗ¨",
+ "account_note.save": "äŋå",
+ "advanced_options.icon_title": "éĢįē§é饚",
+ "advanced_options.local-only.long": "ä¸čĻåå¸åæå°å
ļäģåŽäž",
+ "advanced_options.local-only.short": "æŦå°æ¨Ąåŧ",
+ "advanced_options.local-only.tooltip": "čŋæĄåæäģ
éäēæŦåŽäž",
+ "advanced_options.threaded_mode.long": "ååæļčĒå¨æåŧåå¤",
+ "advanced_options.threaded_mode.short": "įēŋį¨æ¨Ąåŧ",
+ "advanced_options.threaded_mode.tooltip": "įēŋį¨æ¨Ąåŧåˇ˛å¯į¨",
+ "boost_modal.missing_description": "čŋæĄåææĒå
åĢåĒäŊæčŋ°",
+ "column.favourited_by": "åæŦĸ",
+ "column.heading": "æ éĸ",
+ "column.reblogged_by": "čŊŦå",
+ "column.subheading": "å
ļäģé饚",
+ "column_header.profile": "ä¸Ēäēēčĩæ",
+ "column_subheading.lists": "å襨",
+ "column_subheading.navigation": "å¯ŧčĒ",
+ "community.column_settings.allow_local_only": "åĒæžį¤ēæŦå°æ¨Ąåŧåæ",
+ "compose.attach": "éä¸...",
+ "compose.attach.doodle": "įģįšäģäš",
+ "compose.attach.upload": "ä¸äŧ æäģļ",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "įē¯ææŦ",
+ "compose_form.poll.multiple_choices": "å
莸å¤é",
+ "compose_form.poll.single_choice": "å
莸åé",
+ "compose_form.spoiler": "éčä¸ēå
厚čĻå",
+ "confirmation_modal.do_not_ask_again": "ä¸æŦĄä¸æžį¤ēįĄŽčŽ¤įĒåŖ",
+ "confirmations.deprecated_settings.confirm": "äŊŋį¨ Mastodon ååĨŊ莞įŊŽ",
+ "confirmations.deprecated_settings.message": "æ¨æŖäŊŋį¨įglitch-socįįšåŽäēæ¤čŽžå¤į {app_settings} åˇ˛čĸĢMastodon {preferences} æŋæĸīŧåšļå°čĸĢčĻįīŧ",
+ "confirmations.missing_media_description.confirm": "įĄŽčŽ¤",
+ "confirmations.missing_media_description.edit": "įŧčž",
+ "confirmations.missing_media_description.message": "äŊ æ˛Ąæä¸ēä¸į§æå¤į§åĒäŊæ°åæčŋ°ãč¯ˇččä¸ēč§éäēēåŖĢæˇģå æčŋ°ã",
+ "confirmations.unfilter.author": "äŊč
",
+ "confirmations.unfilter.confirm": "æĨį",
+ "confirmations.unfilter.edit_filter": "įŧčžčŋæģ¤å¨",
+ "confirmations.unfilter.filters": "åēį¨ {count, plural, one {čŋæģ¤å¨} other {čŋæģ¤å¨}}",
+ "content-type.change": "å
厚įąģå ",
+ "direct.group_by_conversations": "äģĨ寚č¯åįģ",
+ "endorsed_accounts_editor.endorsed_accounts": "æ¨čį¨æˇ",
+ "favourite_modal.combo": "ä¸æŦĄäŊ å¯äģĨæ {combo} čˇŗčŋčŋä¸Ē",
+ "getting_started.onboarding": "åč§ä¸ä¸",
+ "home.column_settings.advanced": "éĢįē§",
+ "home.column_settings.filter_regex": "ææŖå襨螞åŧčŋæģ¤",
+ "home.column_settings.show_direct": "æžį¤ēį§äŋĄ",
+ "home.settings": "å襨莞įŊŽ",
+ "keyboard_shortcuts.bookmark": "äšĻįž",
+ "keyboard_shortcuts.secondary_toot": "äŊŋį¨äēįē§éį§čŽžįŊŽåéåæ",
+ "keyboard_shortcuts.toggle_collapse": "æå æåąåŧåæ",
+ "layout.auto": "čĒå¨æ¨Ąåŧ",
+ "layout.desktop": "æĄéĸæ¨Ąåŧ",
+ "layout.hint.auto": "æ šæŽâå¯į¨éĢįē§ Web įéĸâ莞įŊŽååąåšå¤§å°čĒå¨éæŠå¸åąã",
+ "layout.hint.desktop": "âäŊŋį¨å¤åå¸åąīŧæ čŽēâå¯į¨éĢįē§ Web įéĸâ莞įŊŽååąåšå¤§å°åĻäŊã",
+ "layout.hint.single": "äŊŋį¨ååå¸åąīŧæ čŽēâå¯į¨éĢįē§ Web įéĸâ莞įŊŽååąåšå¤§å°åĻäŊã",
+ "layout.single": "į§ģå¨æ¨Ąåŧ",
+ "media_gallery.sensitive": "ææå
厚",
+ "moved_to_warning": "æ¤å¸æˇåˇ˛čĸĢæ 莰ä¸ēį§ģčŗ {moved_to_link}īŧåšļä¸äŧŧäšæ˛Ąææļå°æ°å
ŗæŗ¨č
ã",
+ "navigation_bar.app_settings": "åēį¨é饚",
+ "navigation_bar.featured_users": "æ¨čį¨æˇ",
+ "navigation_bar.keyboard_shortcuts": "éŽįåŋĢæˇéŽ",
+ "navigation_bar.misc": "æ饚",
+ "notification.markForDeletion": "æ 莰äģĨå é¤",
+ "notification_purge.btn_all": "å
¨é",
+ "notification_purge.btn_apply": "æ¸
é¤åˇ˛é",
+ "notification_purge.btn_invert": "ååéæŠ",
+ "notification_purge.btn_none": "åæļå
¨é",
+ "notification_purge.start": "čŋå
ĨéįĨæ¸
é¤æ¨Ąåŧ",
+ "notifications.marked_clear": "æ¸
é¤éæŠįéįĨ",
+ "notifications.marked_clear_confirmation": "äŊ įĄŽåŽčĻæ°¸äš
æ¸
é¤ææéæŠįéįĨåīŧ",
+ "onboarding.done": "åŽæ",
+ "onboarding.next": "ä¸ä¸ä¸Ē",
+ "onboarding.page_five.public_timelines": "æŦå°æļé´įēŋæžį¤ēæĨčĒ {domain} ä¸ææäēēįå
Ŧåŧåæã表įĢæļé´įēŋæžį¤ēäē {domain} į¨æˇå
ŗæŗ¨įæ¯ä¸Ēäēēįå
ŦåŧåæãčŋäēčĸĢį§°ä¸ēå
Ŧå
ąæļé´įēŋīŧæ¯åį°æ°æåįåĨŊæšæŗã",
+ "onboarding.page_four.home": "äŊ įä¸ģéĄĩæļé´įēŋäŧæžį¤ēäŊ å
ŗæŗ¨įäēēįåæã",
+ "onboarding.page_four.notifications": "éįĨæ æžį¤ēæäēēä¸äŊ äēå¨įå
厚ã",
+ "onboarding.page_one.federation": "{domain} æ¯ Mastodon įä¸ä¸ĒâåŽäžâãMastodon æ¯ä¸ä¸ĒįąįŦįĢæåĄå¨įģæįīŧéčŋä¸æčååŊĸæįį¤žäē¤įŊįģãæäģŦį§°čŋäēæåĄå¨ä¸ēåŽäžã",
+ "onboarding.page_one.handle": "äŊ äŊäē {domain}īŧå æ¤äŊ įåŽæ´į¨æˇåæ¯ {handle} ã",
+ "onboarding.page_one.welcome": "æŦĸčŋæĨå° {domain}īŧ",
+ "onboarding.page_six.admin": "åŽäžįįŽĄįåæ¯ {admin}ã",
+ "onboarding.page_six.almost_done": "å°ąåŋĢåŽæäē...",
+ "onboarding.page_six.appetoot": "å°Ŋæ
äēĢį¨å§īŧ",
+ "onboarding.page_six.apps_available": "æéį¨äē iOSãAndroid åå
ļäģåšŗå°įåēį¨į¨åēã",
+ "onboarding.page_six.github": "{domain} å¨ Glitchsoc ä¸čŋčĄãGlitchsoc æ¯ {Mastodon} įä¸ä¸ĒååĨŊ {fork}īŧä¸äģģäŊ Mastodon åŽäžæåēį¨å
ŧ厚ãGlitchsoc æ¯åŽå
¨å
č´šååŧæēįãäŊ å¯äģĨå¨ {github} ä¸æĨåéč¯¯ãč¯ˇæąåčŊæč´ĄįŽäģŖį ã",
+ "onboarding.page_six.guidelines": "į¤žåēåå",
+ "onboarding.page_six.read_guidelines": "č¯ˇé
č¯ģ {domain} į {guidelines}īŧ",
+ "onboarding.page_six.various_app": "åēį¨į¨åē",
+ "onboarding.page_three.profile": "įŧčžäŊ įä¸Ēäēēčĩæīŧæ´æšäŊ į头åãä¸ĒäēēįŽäģåæĩį§°ãå¨éŖéīŧäŊ čŋäŧåį°å
ļäģ莞įŊŽã",
+ "onboarding.page_three.search": "äŊŋį¨æį´ĸæ æĨæžį¨æˇåšļæĨįæ įžīŧäžåĻ #illustration å #introductionsãčĻæĨæžä¸å¨æ¤åŽäžä¸įį¨æˇīŧč¯ˇäŊŋį¨äģäģŦįåŽæ´į¨æˇåã",
+ "onboarding.page_two.compose": "å¨æ°åæĄä¸æ°ååæãäŊ å¯äģĨäŊŋį¨ä¸æšåžæ ä¸äŧ åžåãæ´æšéį§čŽžįŊŽåæˇģå å
厚čĻåã",
+ "onboarding.skip": "čˇŗčŋ",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "å§įģæžį¤ēå
厚čĻåæĄ",
+ "settings.auto_collapse": "čĒå¨æå ",
+ "settings.auto_collapse_all": "ææ",
+ "settings.auto_collapse_height": "åæčĸĢč§äŊéŋåæį临įéĢåēĻ(åį´ )",
+ "settings.auto_collapse_lengthy": "éŋåæ",
+ "settings.auto_collapse_media": "å¸ĻåĒäŊæäģļįåæ",
+ "settings.auto_collapse_notifications": "éįĨ",
+ "settings.auto_collapse_reblogs": "čŊŦå",
+ "settings.auto_collapse_replies": "åå¤",
+ "settings.close": "å
ŗé",
+ "settings.collapsed_statuses": "æå åæ",
+ "settings.compose_box_opts": "æ°åæĄ",
+ "settings.confirm_before_clearing_draft": "å¨čĻįæŖå¨åå
Ĩįåæäšåæžį¤ēįĄŽčŽ¤å¯šč¯æĄ",
+ "settings.confirm_boost_missing_media_description": "å¨čŊŦåįŧēå°åĒäŊæčŋ°įåæäšåæžį¤ēįĄŽčŽ¤å¯šč¯æĄ",
+ "settings.confirm_missing_media_description": "å¨åéįŧēå°åĒäŊæčŋ°įåæäšåæžį¤ēįĄŽčŽ¤å¯šč¯æĄ",
+ "settings.content_warnings": "å
厚čĻå",
+ "settings.content_warnings.regexp": "æŖå襨螞åŧ",
+ "settings.content_warnings_filter": "ä¸äŧčĒå¨åąåŧįå
厚čĻåīŧ",
+ "settings.content_warnings_media_outside": "å¨å
厚čĻåå¤æžį¤ēåĒäŊéäģļ",
+ "settings.content_warnings_media_outside_hint": "éčŋ莊å
厚čĻååŧå
ŗä¸åŊąååĒäŊéäģļæĨå¤åļä¸æ¸¸MastodončĄä¸ē",
+ "settings.content_warnings_shared_state": "ä¸æŦĄæžį¤ē/éčææå¯æŦįå
厚",
+ "settings.content_warnings_shared_state_hint": "éčŋ莊å
厚čĻåæéŽåæļåŊąåææå¸åįå¯æŦæĨéį°ä¸æ¸¸MastodončĄä¸ēãčŋå°é˛æĸäģģäŊåąåŧå
厚čĻåįåæčĒå¨æå ã",
+ "settings.content_warnings_unfold_opts": "čĒå¨åąåŧ莞įŊŽéĄš",
+ "settings.deprecated_setting": "æ¤čŽžįŊŽį°å¨čĸĢ Mastodon į {settings_page_link} æ§åļ",
+ "settings.enable_collapsed": "å¯į¨æå åæ",
+ "settings.enable_collapsed_hint": "莊æå įå¸åéčé¨åå
厚äģĨå į¨čžå°įåąåšįŠēé´ãčŋä¸âå
厚čĻåâåčŊä¸åã",
+ "settings.enable_content_warnings_auto_unfold": "čĒå¨åąåŧå
厚čĻå",
+ "settings.general": "ä¸čŦ",
+ "settings.hicolor_privacy_icons": "åŊŠč˛éį§åžæ ",
+ "settings.hicolor_privacy_icons.hint": "äģĨæäēŽä¸æäēåēåįéĸč˛æžį¤ēéį§åžæ ",
+ "settings.image_backgrounds": "åžįčæ¯",
+ "settings.image_backgrounds_media": "éĸč§æå åæįåĒäŊæäģļ",
+ "settings.image_backgrounds_media_hint": "åĻæå¸åæäģģäŊåĒäŊéäģļīŧåäŊŋį¨įŦŦä¸ä¸ĒäŊä¸ēčæ¯",
+ "settings.image_backgrounds_users": "ä¸ēæå åæéå åžįčæ¯",
+ "settings.inline_preview_cards": "å¤é¨éžæĨįå
åĩéĸč§åĄį",
+ "settings.layout": "å¸åąīŧ",
+ "settings.layout_opts": "å¸åąé饚",
+ "settings.media": "åĒäŊ",
+ "settings.media_fullwidth": "å
¨åŽŊåĒäŊéĸč§",
+ "settings.media_letterbox": "äŋĄįŽąåĒäŊ",
+ "settings.media_letterbox_hint": "įŧŠå°åĒäŊäģĨåĄĢå
åžå厚å¨čä¸æ¯æäŧ¸åčŖåĒåŽäģŦ",
+ "settings.media_reveal_behind_cw": "éģ莤æžį¤ēå
厚čĻååįææåĒäŊ",
+ "settings.notifications.favicon_badge": "æĒč¯ģéįĨįŊįĢåžæ ",
+ "settings.notifications.favicon_badge.hint": "å°æĒč¯ģéįĨæˇģå å°įŊįĢåžæ ",
+ "settings.notifications.tab_badge": "æĒč¯ģéįĨåžæ ",
+ "settings.notifications.tab_badge.hint": "åŊéįĨæ æĒæåŧæļīŧæžį¤ēæĒč¯ģéįĨåžæ ",
+ "settings.notifications_opts": "éįĨé饚",
+ "settings.pop_in_left": "åˇĻčžš",
+ "settings.pop_in_player": "å¯į¨æŦæĩŽææžå¨",
+ "settings.pop_in_position": "æŦæĩŽææžå¨äŊįŊŽīŧ",
+ "settings.pop_in_right": "åŗčžš",
+ "settings.preferences": "į¨æˇé饚",
+ "settings.prepend_cw_re": "åå¤æļå¨å
厚čĻååå ä¸âre:â",
+ "settings.preselect_on_reply": "åå¤æļéĸå
éæŠį¨æˇå",
+ "settings.preselect_on_reply_hint": "åå¤ä¸å¤ä¸Ēåä¸č
į寚č¯æļīŧéĸå
éæŠįŦŦä¸ä¸Ēį¨æˇå",
+ "settings.rewrite_mentions": "éååæä¸įæå",
+ "settings.rewrite_mentions_acct": "éåä¸ēį¨æˇååååīŧåŊå¸æˇä¸ēčŋį¨æļīŧ",
+ "settings.rewrite_mentions_no": "ä¸čĻéå",
+ "settings.rewrite_mentions_username": "éåä¸ēį¨æˇå",
+ "settings.shared_settings_link": "į¨æˇååĨŊ莞įŊŽ",
+ "settings.show_action_bar": "å¨æå įåæä¸æžį¤ēæäŊæéŽ",
+ "settings.show_content_type_choice": "å
莸äŊ å¨æ°ååææļéæŠæ ŧåŧįąģå",
+ "settings.show_reply_counter": "æžį¤ēåå¤į大č´æ°é",
+ "settings.side_arm": "čž
åŠååæéŽīŧ",
+ "settings.side_arm.none": "æ ",
+ "settings.side_arm_reply_mode": "åŊåå¤åææļīŧ",
+ "settings.side_arm_reply_mode.copy": "å¤åļčĸĢåå¤åæįéį§čŽžįŊŽ",
+ "settings.side_arm_reply_mode.keep": "äŋįčž
åŠååæéŽäģĨ莞įŊŽéį§",
+ "settings.side_arm_reply_mode.restrict": "å°éį§čŽžįŊŽéåļä¸ēæŖå¨åå¤įéŖæĄåæ",
+ "settings.status_icons": "åæåžæ ",
+ "settings.status_icons_language": "č¯č¨æį¤ēå¨",
+ "settings.status_icons_local_only": "äģ
æŦå°æį¤ēå¨",
+ "settings.status_icons_media": "åĒäŊåæįĨ¨æį¤ēå¨",
+ "settings.status_icons_reply": "åå¤æį¤ēå¨",
+ "settings.status_icons_visibility": "åæéį§įļææį¤ēå¨",
+ "settings.swipe_to_change_columns": "å
莸æģå¨äģĨå¨åäšé´åæĸīŧäģ
éį§ģå¨æ¨Ąåŧīŧ",
+ "settings.tag_misleading_links": "æ čŽ°č¯¯å¯ŧæ§éžæĨ",
+ "settings.tag_misleading_links.hint": "å°å¸ĻæįŽæ įŊéĄĩéžæĨįč§č§æį¤ēæˇģå å°æ¯ä¸ĒæĒæįĄŽįéžæĨ",
+ "settings.wide_view": "åŽŊč§åžīŧäģ
éäēæĄéĸæ¨Ąåŧīŧ",
+ "settings.wide_view_hint": "æäŧ¸ååŽŊäģĨæ´åĨŊå°åĄĢå
å¯į¨įŠēé´ã",
+ "status.collapse": "æå ",
+ "status.has_audio": "éå¸Ļéŗéĸæäģļ",
+ "status.has_pictures": "éå¸Ļåžįæäģļ",
+ "status.has_preview_card": "éå¸Ļéĸč§åĄį",
+ "status.has_video": "éå¸Ļč§éĸæäģļ",
+ "status.in_reply_to": "æ¤åææ¯åå¤",
+ "status.is_poll": "æ¤åææ¯æįĨ¨",
+ "status.local_only": "æ¤åæäģ
æŦåŽäžå¯č§",
+ "status.sensitive_toggle": "įšåģæĨį",
+ "status.uncollapse": "ä¸æå ",
+ "web_app_crash.change_your_settings": "æ´æš {settings}",
+ "web_app_crash.content": "äŊ å¯äģĨå°č¯čŋäēīŧ",
+ "web_app_crash.debug_info": "č°č¯äŋĄæ¯",
+ "web_app_crash.disable_addons": "įĻį¨æĩč§å¨æäģļææŦå°įŋģč¯åˇĨå
ˇ",
+ "web_app_crash.issue_tracker": "éŽéĸčŋŊč¸Ēå¨",
+ "web_app_crash.reload": "åˇæ°",
+ "web_app_crash.reload_page": "{reload} æ¤éĄĩéĸ",
+ "web_app_crash.report_issue": "å°éč¯¯æĨåįģ {issuetracker}",
+ "web_app_crash.settings": "莞įŊŽ",
+ "web_app_crash.title": "æąæīŧMastodon åēäēįšéŽéĸã"
+}
diff --git a/app/javascript/flavours/glitch/locales/zh-HK.js b/app/javascript/flavours/glitch/locales/zh-HK.js
deleted file mode 100644
index b71c81f2b..000000000
--- a/app/javascript/flavours/glitch/locales/zh-HK.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/zh-HK.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/zh-HK.json b/app/javascript/flavours/glitch/locales/zh-HK.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/zh-HK.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/locales/zh-TW.js b/app/javascript/flavours/glitch/locales/zh-TW.js
deleted file mode 100644
index de2b7769c..000000000
--- a/app/javascript/flavours/glitch/locales/zh-TW.js
+++ /dev/null
@@ -1,7 +0,0 @@
-import inherited from 'mastodon/locales/zh-TW.json';
-
-const messages = {
- // No translations available.
-};
-
-export default Object.assign({}, inherited, messages);
diff --git a/app/javascript/flavours/glitch/locales/zh-TW.json b/app/javascript/flavours/glitch/locales/zh-TW.json
new file mode 100644
index 000000000..6fd7dc269
--- /dev/null
+++ b/app/javascript/flavours/glitch/locales/zh-TW.json
@@ -0,0 +1,206 @@
+{
+ "about.fork_disclaimer": "Glitch-soc is free open source software forked from Mastodon.",
+ "account.add_account_note": "Add note for @{name}",
+ "account.disclaimer_full": "Information below may reflect the user's profile incompletely.",
+ "account.follows": "Follows",
+ "account.joined": "Joined {date}",
+ "account.suspended_disclaimer_full": "This user has been suspended by a moderator.",
+ "account.view_full_profile": "View full profile",
+ "account_note.cancel": "Cancel",
+ "account_note.edit": "Edit",
+ "account_note.glitch_placeholder": "No comment provided",
+ "account_note.save": "Save",
+ "advanced_options.icon_title": "Advanced options",
+ "advanced_options.local-only.long": "Do not post to other instances",
+ "advanced_options.local-only.short": "Local-only",
+ "advanced_options.local-only.tooltip": "This post is local-only",
+ "advanced_options.threaded_mode.long": "Automatically opens a reply on posting",
+ "advanced_options.threaded_mode.short": "Threaded mode",
+ "advanced_options.threaded_mode.tooltip": "Threaded mode enabled",
+ "boost_modal.missing_description": "This toot contains some media without description",
+ "column.favourited_by": "Favourited by",
+ "column.heading": "Misc",
+ "column.reblogged_by": "Boosted by",
+ "column.subheading": "Miscellaneous options",
+ "column_header.profile": "Profile",
+ "column_subheading.lists": "Lists",
+ "column_subheading.navigation": "Navigation",
+ "community.column_settings.allow_local_only": "Show local-only toots",
+ "compose.attach": "Attach...",
+ "compose.attach.doodle": "Draw something",
+ "compose.attach.upload": "Upload a file",
+ "compose.content-type.html": "HTML",
+ "compose.content-type.markdown": "Markdown",
+ "compose.content-type.plain": "Plain text",
+ "compose_form.poll.multiple_choices": "Allow multiple choices",
+ "compose_form.poll.single_choice": "Allow one choice",
+ "compose_form.spoiler": "Hide text behind warning",
+ "confirmation_modal.do_not_ask_again": "Do not ask for confirmation again",
+ "confirmations.deprecated_settings.confirm": "Use Mastodon preferences",
+ "confirmations.deprecated_settings.message": "Some of the glitch-soc device-specific {app_settings} you are using have been replaced by Mastodon {preferences} and will be overriden:",
+ "confirmations.missing_media_description.confirm": "Send anyway",
+ "confirmations.missing_media_description.edit": "Edit media",
+ "confirmations.missing_media_description.message": "At least one media attachment is lacking a description. Consider describing all media attachments for the visually impaired before sending your toot.",
+ "confirmations.unfilter.author": "Author",
+ "confirmations.unfilter.confirm": "Show",
+ "confirmations.unfilter.edit_filter": "Edit filter",
+ "confirmations.unfilter.filters": "Matching {count, plural, one {filter} other {filters}}",
+ "content-type.change": "Content type",
+ "direct.group_by_conversations": "Group by conversation",
+ "endorsed_accounts_editor.endorsed_accounts": "Featured accounts",
+ "favourite_modal.combo": "You can press {combo} to skip this next time",
+ "getting_started.onboarding": "Show me around",
+ "home.column_settings.advanced": "Advanced",
+ "home.column_settings.filter_regex": "Filter out by regular expressions",
+ "home.column_settings.show_direct": "Show DMs",
+ "home.settings": "Column settings",
+ "keyboard_shortcuts.bookmark": "to bookmark",
+ "keyboard_shortcuts.secondary_toot": "to send toot using secondary privacy setting",
+ "keyboard_shortcuts.toggle_collapse": "to collapse/uncollapse toots",
+ "layout.auto": "Auto",
+ "layout.desktop": "Desktop",
+ "layout.hint.auto": "Automatically chose layout based on âEnable advanced web interfaceâ setting and screen size.",
+ "layout.hint.desktop": "Use multiple-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.hint.single": "Use single-column layout regardless of the âEnable advanced web interfaceâ setting or screen size.",
+ "layout.single": "Mobile",
+ "media_gallery.sensitive": "Sensitive",
+ "moved_to_warning": "This account is marked as moved to {moved_to_link}, and may thus not accept new follows.",
+ "navigation_bar.app_settings": "App settings",
+ "navigation_bar.featured_users": "Featured users",
+ "navigation_bar.keyboard_shortcuts": "Keyboard shortcuts",
+ "navigation_bar.misc": "Misc",
+ "notification.markForDeletion": "Mark for deletion",
+ "notification_purge.btn_all": "Select\nall",
+ "notification_purge.btn_apply": "Clear\nselected",
+ "notification_purge.btn_invert": "Invert\nselection",
+ "notification_purge.btn_none": "Select\nnone",
+ "notification_purge.start": "Enter notification cleaning mode",
+ "notifications.marked_clear": "Clear selected notifications",
+ "notifications.marked_clear_confirmation": "Are you sure you want to permanently clear all selected notifications?",
+ "onboarding.done": "Done",
+ "onboarding.next": "Next",
+ "onboarding.page_five.public_timelines": "The local timeline shows public posts from everyone on {domain}. The federated timeline shows public posts from everyone who people on {domain} follow. These are the Public Timelines, a great way to discover new people.",
+ "onboarding.page_four.home": "The home timeline shows posts from people you follow.",
+ "onboarding.page_four.notifications": "The notifications column shows when someone interacts with you.",
+ "onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
+ "onboarding.page_one.handle": "You are on {domain}, so your full handle is {handle}",
+ "onboarding.page_one.welcome": "Welcome to {domain}!",
+ "onboarding.page_six.admin": "Your instance's admin is {admin}.",
+ "onboarding.page_six.almost_done": "Almost done...",
+ "onboarding.page_six.appetoot": "Bon Appetoot!",
+ "onboarding.page_six.apps_available": "There are {apps} available for iOS, Android and other platforms.",
+ "onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
+ "onboarding.page_six.guidelines": "community guidelines",
+ "onboarding.page_six.read_guidelines": "Please read {domain}'s {guidelines}!",
+ "onboarding.page_six.various_app": "mobile apps",
+ "onboarding.page_three.profile": "Edit your profile to change your avatar, bio, and display name. There, you will also find other preferences.",
+ "onboarding.page_three.search": "Use the search bar to find people and look at hashtags, such as {illustration} and {introductions}. To look for a person who is not on this instance, use their full handle.",
+ "onboarding.page_two.compose": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.",
+ "onboarding.skip": "Skip",
+ "search_popout.search_format": "Advanced search format",
+ "search_popout.tips.full_text": "Simple text returns statuses you have written, favourited, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.",
+ "search_popout.tips.hashtag": "hashtag",
+ "search_popout.tips.status": "status",
+ "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags",
+ "search_popout.tips.user": "user",
+ "settings.always_show_spoilers_field": "Always enable the Content Warning field",
+ "settings.auto_collapse": "Automatic collapsing",
+ "settings.auto_collapse_all": "Everything",
+ "settings.auto_collapse_height": "Height (in pixels) for a toot to be considered lengthy",
+ "settings.auto_collapse_lengthy": "Lengthy toots",
+ "settings.auto_collapse_media": "Toots with media",
+ "settings.auto_collapse_notifications": "Notifications",
+ "settings.auto_collapse_reblogs": "Boosts",
+ "settings.auto_collapse_replies": "Replies",
+ "settings.close": "Close",
+ "settings.collapsed_statuses": "Collapsed toots",
+ "settings.compose_box_opts": "Compose box",
+ "settings.confirm_before_clearing_draft": "Show confirmation dialog before overwriting the message being composed",
+ "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting toots lacking media descriptions",
+ "settings.confirm_missing_media_description": "Show confirmation dialog before sending toots lacking media descriptions",
+ "settings.content_warnings": "Content warnings",
+ "settings.content_warnings.regexp": "Regular expression",
+ "settings.content_warnings_filter": "Content warnings to not automatically unfold:",
+ "settings.content_warnings_media_outside": "Display media attachments outside content warnings",
+ "settings.content_warnings_media_outside_hint": "Reproduce upstream Mastodon behavior by having the Content Warning toggle not affect media attachments",
+ "settings.content_warnings_shared_state": "Show/hide content of all copies at once",
+ "settings.content_warnings_shared_state_hint": "Reproduce upstream Mastodon behavior by having the Content Warning button affect all copies of a post at once. This will prevent automatic collapsing of any copy of a toot with unfolded CW",
+ "settings.content_warnings_unfold_opts": "Auto-unfolding options",
+ "settings.deprecated_setting": "This setting is now controlled from Mastodon's {settings_page_link}",
+ "settings.enable_collapsed": "Enable collapsed toots",
+ "settings.enable_collapsed_hint": "Collapsed posts have parts of their contents hidden to take up less screen space. This is distinct from the Content Warning feature",
+ "settings.enable_content_warnings_auto_unfold": "Automatically unfold content-warnings",
+ "settings.general": "General",
+ "settings.hicolor_privacy_icons": "High color privacy icons",
+ "settings.hicolor_privacy_icons.hint": "Display privacy icons in bright and easily distinguishable colors",
+ "settings.image_backgrounds": "Image backgrounds",
+ "settings.image_backgrounds_media": "Preview collapsed toot media",
+ "settings.image_backgrounds_media_hint": "If the post has any media attachment, use the first one as a background",
+ "settings.image_backgrounds_users": "Give collapsed toots an image background",
+ "settings.inline_preview_cards": "Inline preview cards for external links",
+ "settings.layout": "Layout:",
+ "settings.layout_opts": "Layout options",
+ "settings.media": "Media",
+ "settings.media_fullwidth": "Full-width media previews",
+ "settings.media_letterbox": "Letterbox media",
+ "settings.media_letterbox_hint": "Scale down and letterbox media to fill the image containers instead of stretching and cropping them",
+ "settings.media_reveal_behind_cw": "Reveal sensitive media behind a CW by default",
+ "settings.notifications.favicon_badge": "Unread notifications favicon badge",
+ "settings.notifications.favicon_badge.hint": "Add a badge for unread notifications to the favicon",
+ "settings.notifications.tab_badge": "Unread notifications badge",
+ "settings.notifications.tab_badge.hint": "Display a badge for unread notifications in the column icons when the notifications column isn't open",
+ "settings.notifications_opts": "Notifications options",
+ "settings.pop_in_left": "Left",
+ "settings.pop_in_player": "Enable pop-in player",
+ "settings.pop_in_position": "Pop-in player position:",
+ "settings.pop_in_right": "Right",
+ "settings.preferences": "Preferences",
+ "settings.prepend_cw_re": "Prepend âre: â to content warnings when replying",
+ "settings.preselect_on_reply": "Pre-select usernames on reply",
+ "settings.preselect_on_reply_hint": "When replying to a conversation with multiple participants, pre-select usernames past the first",
+ "settings.rewrite_mentions": "Rewrite mentions in displayed statuses",
+ "settings.rewrite_mentions_acct": "Rewrite with username and domain (when the account is remote)",
+ "settings.rewrite_mentions_no": "Do not rewrite mentions",
+ "settings.rewrite_mentions_username": "Rewrite with username",
+ "settings.shared_settings_link": "user preferences",
+ "settings.show_action_bar": "Show action buttons in collapsed toots",
+ "settings.show_content_type_choice": "Show content-type choice when authoring toots",
+ "settings.show_reply_counter": "Display an estimate of the reply count",
+ "settings.side_arm": "Secondary toot button:",
+ "settings.side_arm.none": "None",
+ "settings.side_arm_reply_mode": "When replying to a toot, the secondary toot button should:",
+ "settings.side_arm_reply_mode.copy": "Copy privacy setting of the toot being replied to",
+ "settings.side_arm_reply_mode.keep": "Keep its set privacy",
+ "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the toot being replied to",
+ "settings.status_icons": "Toot icons",
+ "settings.status_icons_language": "Language indicator",
+ "settings.status_icons_local_only": "Local-only indicator",
+ "settings.status_icons_media": "Media and poll indicators",
+ "settings.status_icons_reply": "Reply indicator",
+ "settings.status_icons_visibility": "Toot privacy indicator",
+ "settings.swipe_to_change_columns": "Allow swiping to change columns (Mobile only)",
+ "settings.tag_misleading_links": "Tag misleading links",
+ "settings.tag_misleading_links.hint": "Add a visual indication with the link target host to every link not mentioning it explicitly",
+ "settings.wide_view": "Wide view (Desktop mode only)",
+ "settings.wide_view_hint": "Stretches columns to better fill the available space.",
+ "status.collapse": "Collapse",
+ "status.has_audio": "Features attached audio files",
+ "status.has_pictures": "Features attached pictures",
+ "status.has_preview_card": "Features an attached preview card",
+ "status.has_video": "Features attached videos",
+ "status.in_reply_to": "This toot is a reply",
+ "status.is_poll": "This toot is a poll",
+ "status.local_only": "Only visible from your instance",
+ "status.sensitive_toggle": "Click to view",
+ "status.uncollapse": "Uncollapse",
+ "web_app_crash.change_your_settings": "Change your {settings}",
+ "web_app_crash.content": "You could try any of the following:",
+ "web_app_crash.debug_info": "Debug information",
+ "web_app_crash.disable_addons": "Disable browser add-ons or built-in translation tools",
+ "web_app_crash.issue_tracker": "issue tracker",
+ "web_app_crash.reload": "Reload",
+ "web_app_crash.reload_page": "{reload} the current page",
+ "web_app_crash.report_issue": "Report a bug in the {issuetracker}",
+ "web_app_crash.settings": "settings",
+ "web_app_crash.title": "We're sorry, but something went wrong with the Mastodon app."
+}
diff --git a/app/javascript/flavours/glitch/main.js b/app/javascript/flavours/glitch/main.jsx
similarity index 100%
rename from app/javascript/flavours/glitch/main.js
rename to app/javascript/flavours/glitch/main.jsx
diff --git a/app/javascript/flavours/glitch/middleware/errors.js b/app/javascript/flavours/glitch/middleware/errors.js
index ade529a4e..3639a5951 100644
--- a/app/javascript/flavours/glitch/middleware/errors.js
+++ b/app/javascript/flavours/glitch/middleware/errors.js
@@ -14,4 +14,4 @@ export default function errorsMiddleware() {
return next(action);
};
-};
+}
diff --git a/app/javascript/flavours/glitch/middleware/loading_bar.js b/app/javascript/flavours/glitch/middleware/loading_bar.js
index a98f1bb2b..da8cc4c7d 100644
--- a/app/javascript/flavours/glitch/middleware/loading_bar.js
+++ b/app/javascript/flavours/glitch/middleware/loading_bar.js
@@ -22,4 +22,4 @@ export default function loadingBarMiddleware(config = {}) {
return next(action);
};
-};
+}
diff --git a/app/javascript/flavours/glitch/middleware/sounds.js b/app/javascript/flavours/glitch/middleware/sounds.js
index 9f1bc02b9..7f2388983 100644
--- a/app/javascript/flavours/glitch/middleware/sounds.js
+++ b/app/javascript/flavours/glitch/middleware/sounds.js
@@ -43,4 +43,4 @@ export default function soundsMiddleware() {
return next(action);
};
-};
+}
diff --git a/app/javascript/flavours/glitch/packs/admin.js b/app/javascript/flavours/glitch/packs/admin.jsx
similarity index 100%
rename from app/javascript/flavours/glitch/packs/admin.js
rename to app/javascript/flavours/glitch/packs/admin.jsx
diff --git a/app/javascript/flavours/glitch/packs/public.js b/app/javascript/flavours/glitch/packs/public.jsx
similarity index 83%
rename from app/javascript/flavours/glitch/packs/public.js
rename to app/javascript/flavours/glitch/packs/public.jsx
index 843fd5163..335a0710d 100644
--- a/app/javascript/flavours/glitch/packs/public.js
+++ b/app/javascript/flavours/glitch/packs/public.jsx
@@ -42,6 +42,18 @@ function main() {
minute: 'numeric',
});
+ const dateFormat = new Intl.DateTimeFormat(locale, {
+ year: 'numeric',
+ month: 'short',
+ day: 'numeric',
+ timeFormat: false,
+ });
+
+ const timeFormat = new Intl.DateTimeFormat(locale, {
+ timeStyle: 'short',
+ hour12: false,
+ });
+
[].forEach.call(document.querySelectorAll('.emojify'), (content) => {
content.innerHTML = emojify(content.innerHTML);
});
@@ -54,15 +66,42 @@ function main() {
content.textContent = formattedDate;
});
+ const isToday = date => {
+ const today = new Date();
+
+ return date.getDate() === today.getDate() &&
+ date.getMonth() === today.getMonth() &&
+ date.getFullYear() === today.getFullYear();
+ };
+ const todayFormat = new IntlMessageFormat(messages['relative_format.today'] || 'Today at {time}', locale);
+
+ [].forEach.call(document.querySelectorAll('time.relative-formatted'), (content) => {
+ const datetime = new Date(content.getAttribute('datetime'));
+
+ let formattedContent;
+
+ if (isToday(datetime)) {
+ const formattedTime = timeFormat.format(datetime);
+
+ formattedContent = todayFormat.format({ time: formattedTime });
+ } else {
+ formattedContent = dateFormat.format(datetime);
+ }
+
+ content.title = formattedContent;
+ content.textContent = formattedContent;
+ });
+
[].forEach.call(document.querySelectorAll('time.time-ago'), (content) => {
const datetime = new Date(content.getAttribute('datetime'));
const now = new Date();
- content.title = dateTimeFormat.format(datetime);
+ const timeGiven = content.getAttribute('datetime').includes('T');
+ content.title = timeGiven ? dateTimeFormat.format(datetime) : dateFormat.format(datetime);
content.textContent = timeAgoString({
formatMessage: ({ id, defaultMessage }, values) => (new IntlMessageFormat(messages[id] || defaultMessage, locale)).format(values),
formatDate: (date, options) => (new Intl.DateTimeFormat(locale, options)).format(date),
- }, datetime, now, now.getFullYear(), content.getAttribute('datetime').includes('T'));
+ }, datetime, now, now.getFullYear(), timeGiven);
});
const reactComponents = document.querySelectorAll('[data-component]');
@@ -145,10 +184,10 @@ function main() {
if (sidebar.classList.contains('visible')) {
document.body.style.overflow = null;
- toggleButton.setAttribute('aria-expanded', false);
+ toggleButton.setAttribute('aria-expanded', 'false');
} else {
document.body.style.overflow = 'hidden';
- toggleButton.setAttribute('aria-expanded', true);
+ toggleButton.setAttribute('aria-expanded', 'true');
}
toggleButton.classList.toggle('active');
diff --git a/app/javascript/flavours/glitch/packs/settings.js b/app/javascript/flavours/glitch/packs/settings.js
index 31c88b2b5..55a8ae1c6 100644
--- a/app/javascript/flavours/glitch/packs/settings.js
+++ b/app/javascript/flavours/glitch/packs/settings.js
@@ -1,6 +1,5 @@
import 'packs/public-path';
import loadPolyfills from 'flavours/glitch/load_polyfills';
-import ready from 'flavours/glitch/ready';
import loadKeyboardExtensions from 'flavours/glitch/load_keyboard_extensions';
import 'cocoon-js-vanilla';
@@ -13,10 +12,10 @@ function main() {
if (sidebar.classList.contains('visible')) {
document.body.style.overflow = null;
- toggleButton.setAttribute('aria-expanded', false);
+ toggleButton.setAttribute('aria-expanded', 'false');
} else {
document.body.style.overflow = 'hidden';
- toggleButton.setAttribute('aria-expanded', true);
+ toggleButton.setAttribute('aria-expanded', 'true');
}
toggleButton.classList.toggle('active');
diff --git a/app/javascript/flavours/glitch/packs/share.js b/app/javascript/flavours/glitch/packs/share.jsx
similarity index 100%
rename from app/javascript/flavours/glitch/packs/share.js
rename to app/javascript/flavours/glitch/packs/share.jsx
diff --git a/app/javascript/flavours/glitch/performance.js b/app/javascript/flavours/glitch/performance.js
index 450a90626..2b7e1bda8 100644
--- a/app/javascript/flavours/glitch/performance.js
+++ b/app/javascript/flavours/glitch/performance.js
@@ -12,6 +12,7 @@ if (process.env.NODE_ENV === 'development') {
// See: https://bugzilla.mozilla.org/show_bug.cgi?id=1331135
performance.setResourceTimingBufferSize(Infinity);
}
+ // eslint-disable-next-line import/no-extraneous-dependencies
marky = require('marky');
// allows us to easily do e.g. ReactPerf.printWasted() while debugging
//window.ReactPerf = require('react-addons-perf');
diff --git a/app/javascript/flavours/glitch/permissions.js b/app/javascript/flavours/glitch/permissions.js
index 752ddd6c5..9ea149e5f 100644
--- a/app/javascript/flavours/glitch/permissions.js
+++ b/app/javascript/flavours/glitch/permissions.js
@@ -1,3 +1,4 @@
-export const PERMISSION_INVITE_USERS = 0x0000000000010000;
-export const PERMISSION_MANAGE_USERS = 0x0000000000000400;
-export const PERMISSION_MANAGE_REPORTS = 0x0000000000000010;
+export const PERMISSION_INVITE_USERS = 0x0000000000010000;
+export const PERMISSION_MANAGE_USERS = 0x0000000000000400;
+export const PERMISSION_MANAGE_FEDERATION = 0x0000000000000020;
+export const PERMISSION_MANAGE_REPORTS = 0x0000000000000010;
diff --git a/app/javascript/flavours/glitch/reducers/accounts.js b/app/javascript/flavours/glitch/reducers/accounts.js
index e02a5592e..07f45f98b 100644
--- a/app/javascript/flavours/glitch/reducers/accounts.js
+++ b/app/javascript/flavours/glitch/reducers/accounts.js
@@ -35,4 +35,4 @@ export default function accounts(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/accounts_counters.js b/app/javascript/flavours/glitch/reducers/accounts_counters.js
index 9ebf72af9..4e1256d1b 100644
--- a/app/javascript/flavours/glitch/reducers/accounts_counters.js
+++ b/app/javascript/flavours/glitch/reducers/accounts_counters.js
@@ -35,4 +35,4 @@ export default function accountsCounters(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/accounts_map.js b/app/javascript/flavours/glitch/reducers/accounts_map.js
index 444bbda19..8412ad4d0 100644
--- a/app/javascript/flavours/glitch/reducers/accounts_map.js
+++ b/app/javascript/flavours/glitch/reducers/accounts_map.js
@@ -17,4 +17,4 @@ export default function accountsMap(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/alerts.js b/app/javascript/flavours/glitch/reducers/alerts.js
index ee3d54ab0..f0a696164 100644
--- a/app/javascript/flavours/glitch/reducers/alerts.js
+++ b/app/javascript/flavours/glitch/reducers/alerts.js
@@ -23,4 +23,4 @@ export default function alerts(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/announcements.js b/app/javascript/flavours/glitch/reducers/announcements.js
index 34e08eac8..b53f93a4a 100644
--- a/app/javascript/flavours/glitch/reducers/announcements.js
+++ b/app/javascript/flavours/glitch/reducers/announcements.js
@@ -99,4 +99,4 @@ export default function announcementsReducer(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/compose.js b/app/javascript/flavours/glitch/reducers/compose.js
index 456674f2a..109e4c723 100644
--- a/app/javascript/flavours/glitch/reducers/compose.js
+++ b/app/javascript/flavours/glitch/reducers/compose.js
@@ -140,7 +140,7 @@ function statusToTextMentions(state, status) {
}
return set.union(status.get('mentions').filterNot(mention => mention.get('id') === me).map(mention => `@${mention.get('acct')} `)).join('');
-};
+}
function apiStatusToTextMentions (state, status) {
let set = ImmutableOrderedSet([]);
@@ -184,7 +184,7 @@ function clearAll(state) {
map.set('poll', null);
map.set('idempotencyKey', uuid());
});
-};
+}
function continueThread (state, status) {
return state.withMutations(function (map) {
@@ -233,7 +233,7 @@ function appendMedia(state, media, file) {
map.set('sensitive', true);
}
});
-};
+}
function removeMedia(state, mediaId) {
const prevSize = state.get('media_attachments').size;
@@ -246,7 +246,7 @@ function removeMedia(state, mediaId) {
map.set('sensitive', false);
}
});
-};
+}
const insertSuggestion = (state, position, token, completion, path) => {
return state.withMutations(map => {
@@ -273,20 +273,23 @@ const ignoreSuggestion = (state, position, token, completion, path) => {
};
const sortHashtagsByUse = (state, tags) => {
- const personalHistory = state.get('tagHistory');
+ const personalHistory = state.get('tagHistory').map(tag => tag.toLowerCase());
- return tags.sort((a, b) => {
- const usedA = personalHistory.includes(a.name);
- const usedB = personalHistory.includes(b.name);
+ const tagsWithLowercase = tags.map(t => ({ ...t, lowerName: t.name.toLowerCase() }));
+ const sorted = tagsWithLowercase.sort((a, b) => {
+ const usedA = personalHistory.includes(a.lowerName);
+ const usedB = personalHistory.includes(b.lowerName);
if (usedA === usedB) {
return 0;
} else if (usedA && !usedB) {
- return 1;
- } else {
return -1;
+ } else {
+ return 1;
}
});
+ sorted.forEach(tag => delete tag.lowerName);
+ return sorted;
};
const insertEmoji = (state, position, emojiData) => {
@@ -303,8 +306,8 @@ const insertEmoji = (state, position, emojiData) => {
const hydrate = (state, hydratedState) => {
state = clearAll(state.merge(hydratedState));
- if (hydratedState.has('text')) {
- state = state.set('text', hydratedState.get('text'));
+ if (hydratedState.get('text')) {
+ state = state.set('text', hydratedState.get('text')).set('focusDate', new Date());
}
return state;
@@ -421,8 +424,12 @@ export default function compose(state = initialState, action) {
map.set('preselectDate', new Date());
map.set('idempotencyKey', uuid());
- if (action.status.get('language')) {
+ map.update('media_attachments', list => list.filter(media => media.get('unattached')));
+
+ if (action.status.get('language') && !action.status.has('translation')) {
map.set('language', action.status.get('language'));
+ } else {
+ map.set('language', state.get('default_language'));
}
if (action.status.get('spoiler_text').length > 0) {
@@ -536,6 +543,8 @@ export default function compose(state = initialState, action) {
case TIMELINE_DELETE:
if (action.id === state.get('in_reply_to')) {
return state.set('in_reply_to', null);
+ } else if (action.id === state.get('id')) {
+ return state.set('id', null);
} else {
return state;
}
@@ -547,7 +556,7 @@ export default function compose(state = initialState, action) {
.setIn(['media_modal', 'dirty'], false)
.update('media_attachments', list => list.map(item => {
if (item.get('id') === action.media.id) {
- return fromJS(action.media).set('unattached', true);
+ return fromJS(action.media).set('unattached', !action.attached);
}
return item;
@@ -642,4 +651,4 @@ export default function compose(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/contexts.js b/app/javascript/flavours/glitch/reducers/contexts.js
index 62f2bbe4a..aea77ae41 100644
--- a/app/javascript/flavours/glitch/reducers/contexts.js
+++ b/app/javascript/flavours/glitch/reducers/contexts.js
@@ -102,4 +102,4 @@ export default function replies(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/conversations.js b/app/javascript/flavours/glitch/reducers/conversations.js
index 4407dcf04..48b70cc33 100644
--- a/app/javascript/flavours/glitch/reducers/conversations.js
+++ b/app/javascript/flavours/glitch/reducers/conversations.js
@@ -113,4 +113,4 @@ export default function conversations(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/custom_emojis.js b/app/javascript/flavours/glitch/reducers/custom_emojis.js
index f490d0db1..7f71ab791 100644
--- a/app/javascript/flavours/glitch/reducers/custom_emojis.js
+++ b/app/javascript/flavours/glitch/reducers/custom_emojis.js
@@ -12,4 +12,4 @@ export default function custom_emojis(state = initialState, action) {
}
return state;
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/domain_lists.js b/app/javascript/flavours/glitch/reducers/domain_lists.js
index eff97fbd6..6bf8cee68 100644
--- a/app/javascript/flavours/glitch/reducers/domain_lists.js
+++ b/app/javascript/flavours/glitch/reducers/domain_lists.js
@@ -22,4 +22,4 @@ export default function domainLists(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/dropdown_menu.js b/app/javascript/flavours/glitch/reducers/dropdown_menu.js
index a78a11acc..51bf9375b 100644
--- a/app/javascript/flavours/glitch/reducers/dropdown_menu.js
+++ b/app/javascript/flavours/glitch/reducers/dropdown_menu.js
@@ -4,12 +4,12 @@ import {
DROPDOWN_MENU_CLOSE,
} from '../actions/dropdown_menu';
-const initialState = Immutable.Map({ openId: null, placement: null, keyboard: false, scroll_key: null });
+const initialState = Immutable.Map({ openId: null, keyboard: false, scroll_key: null });
export default function dropdownMenu(state = initialState, action) {
switch (action.type) {
case DROPDOWN_MENU_OPEN:
- return state.merge({ openId: action.id, placement: action.placement, keyboard: action.keyboard, scroll_key: action.scroll_key });
+ return state.merge({ openId: action.id, keyboard: action.keyboard, scroll_key: action.scroll_key });
case DROPDOWN_MENU_CLOSE:
return state.get('openId') === action.id ? state.set('openId', null).set('scroll_key', null) : state;
default:
diff --git a/app/javascript/flavours/glitch/reducers/filters.js b/app/javascript/flavours/glitch/reducers/filters.js
index f4f97cd3a..e1f014046 100644
--- a/app/javascript/flavours/glitch/reducers/filters.js
+++ b/app/javascript/flavours/glitch/reducers/filters.js
@@ -41,4 +41,4 @@ export default function filters(state = ImmutableMap(), action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/followed_tags.js b/app/javascript/flavours/glitch/reducers/followed_tags.js
new file mode 100644
index 000000000..84c744640
--- /dev/null
+++ b/app/javascript/flavours/glitch/reducers/followed_tags.js
@@ -0,0 +1,42 @@
+import {
+ FOLLOWED_HASHTAGS_FETCH_REQUEST,
+ FOLLOWED_HASHTAGS_FETCH_SUCCESS,
+ FOLLOWED_HASHTAGS_FETCH_FAIL,
+ FOLLOWED_HASHTAGS_EXPAND_REQUEST,
+ FOLLOWED_HASHTAGS_EXPAND_SUCCESS,
+ FOLLOWED_HASHTAGS_EXPAND_FAIL,
+} from 'flavours/glitch/actions/tags';
+import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
+
+const initialState = ImmutableMap({
+ items: ImmutableList(),
+ isLoading: false,
+ next: null,
+});
+
+export default function followed_tags(state = initialState, action) {
+ switch(action.type) {
+ case FOLLOWED_HASHTAGS_FETCH_REQUEST:
+ return state.set('isLoading', true);
+ case FOLLOWED_HASHTAGS_FETCH_SUCCESS:
+ return state.withMutations(map => {
+ map.set('items', fromJS(action.followed_tags));
+ map.set('isLoading', false);
+ map.set('next', action.next);
+ });
+ case FOLLOWED_HASHTAGS_FETCH_FAIL:
+ return state.set('isLoading', false);
+ case FOLLOWED_HASHTAGS_EXPAND_REQUEST:
+ return state.set('isLoading', true);
+ case FOLLOWED_HASHTAGS_EXPAND_SUCCESS:
+ return state.withMutations(map => {
+ map.update('items', set => set.concat(fromJS(action.followed_tags)));
+ map.set('isLoading', false);
+ map.set('next', action.next);
+ });
+ case FOLLOWED_HASHTAGS_EXPAND_FAIL:
+ return state.set('isLoading', false);
+ default:
+ return state;
+ }
+}
diff --git a/app/javascript/flavours/glitch/reducers/height_cache.js b/app/javascript/flavours/glitch/reducers/height_cache.js
index 8b05e0b19..660a2d1d7 100644
--- a/app/javascript/flavours/glitch/reducers/height_cache.js
+++ b/app/javascript/flavours/glitch/reducers/height_cache.js
@@ -20,4 +20,4 @@ export default function statuses(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/index.js b/app/javascript/flavours/glitch/reducers/index.js
index 09c08a362..5b7bdbf69 100644
--- a/app/javascript/flavours/glitch/reducers/index.js
+++ b/app/javascript/flavours/glitch/reducers/index.js
@@ -42,6 +42,7 @@ import picture_in_picture from './picture_in_picture';
import accounts_map from './accounts_map';
import history from './history';
import tags from './tags';
+import followed_tags from './followed_tags';
const reducers = {
announcements,
@@ -87,6 +88,7 @@ const reducers = {
picture_in_picture,
history,
tags,
+ followed_tags,
};
export default combineReducers(reducers);
diff --git a/app/javascript/flavours/glitch/reducers/list_adder.js b/app/javascript/flavours/glitch/reducers/list_adder.js
index b8c1b0e26..b144610a5 100644
--- a/app/javascript/flavours/glitch/reducers/list_adder.js
+++ b/app/javascript/flavours/glitch/reducers/list_adder.js
@@ -44,4 +44,4 @@ export default function listAdderReducer(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/list_editor.js b/app/javascript/flavours/glitch/reducers/list_editor.js
index 91e524dd5..6e020dbe6 100644
--- a/app/javascript/flavours/glitch/reducers/list_editor.js
+++ b/app/javascript/flavours/glitch/reducers/list_editor.js
@@ -93,4 +93,4 @@ export default function listEditorReducer(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/lists.js b/app/javascript/flavours/glitch/reducers/lists.js
index f30ffbcbd..ba3e2b3cb 100644
--- a/app/javascript/flavours/glitch/reducers/lists.js
+++ b/app/javascript/flavours/glitch/reducers/lists.js
@@ -34,4 +34,4 @@ export default function lists(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/local_settings.js b/app/javascript/flavours/glitch/reducers/local_settings.js
index 81ab1cb0d..887e0e135 100644
--- a/app/javascript/flavours/glitch/reducers/local_settings.js
+++ b/app/javascript/flavours/glitch/reducers/local_settings.js
@@ -37,6 +37,7 @@ const initialState = ImmutableMap({
reblogs : false,
replies : false,
media : false,
+ height : 400,
}),
backgrounds : ImmutableMap({
user_backgrounds : false,
@@ -77,4 +78,4 @@ export default function localSettings(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/markers.js b/app/javascript/flavours/glitch/reducers/markers.js
index fb1572ff5..e3d1b1936 100644
--- a/app/javascript/flavours/glitch/reducers/markers.js
+++ b/app/javascript/flavours/glitch/reducers/markers.js
@@ -22,4 +22,4 @@ export default function markers(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/media_attachments.js b/app/javascript/flavours/glitch/reducers/media_attachments.js
index 6e6058576..dfd8ea42d 100644
--- a/app/javascript/flavours/glitch/reducers/media_attachments.js
+++ b/app/javascript/flavours/glitch/reducers/media_attachments.js
@@ -12,4 +12,4 @@ export default function meta(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/meta.js b/app/javascript/flavours/glitch/reducers/meta.js
index b1482777a..7a38a9090 100644
--- a/app/javascript/flavours/glitch/reducers/meta.js
+++ b/app/javascript/flavours/glitch/reducers/meta.js
@@ -13,14 +13,12 @@ const initialState = ImmutableMap({
export default function meta(state = initialState, action) {
switch(action.type) {
case STORE_HYDRATE:
- return state.merge(
- action.state.get('meta'))
- .set('permissions', action.state.getIn(['role', 'permissions']))
- .set('layout', layoutFromWindow(action.state.getIn(['local_settings', 'layout']))
- );
+ return state.merge(action.state.get('meta'))
+ .set('permissions', action.state.getIn(['role', 'permissions']))
+ .set('layout', layoutFromWindow(action.state.getIn(['local_settings', 'layout'])));
case APP_LAYOUT_CHANGE:
return state.set('layout', action.layout);
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/modal.js b/app/javascript/flavours/glitch/reducers/modal.js
index 2ef0aef24..c48117181 100644
--- a/app/javascript/flavours/glitch/reducers/modal.js
+++ b/app/javascript/flavours/glitch/reducers/modal.js
@@ -36,4 +36,4 @@ export default function modal(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/notifications.js b/app/javascript/flavours/glitch/reducers/notifications.js
index 18610e758..d5b1568e9 100644
--- a/app/javascript/flavours/glitch/reducers/notifications.js
+++ b/app/javascript/flavours/glitch/reducers/notifications.js
@@ -371,4 +371,4 @@ export default function notifications(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/picture_in_picture.js b/app/javascript/flavours/glitch/reducers/picture_in_picture.js
index 13a3d1aa2..395c21245 100644
--- a/app/javascript/flavours/glitch/reducers/picture_in_picture.js
+++ b/app/javascript/flavours/glitch/reducers/picture_in_picture.js
@@ -22,4 +22,4 @@ export default function pictureInPicture(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/pinned_accounts_editor.js b/app/javascript/flavours/glitch/reducers/pinned_accounts_editor.js
index 267521bb8..144418d12 100644
--- a/app/javascript/flavours/glitch/reducers/pinned_accounts_editor.js
+++ b/app/javascript/flavours/glitch/reducers/pinned_accounts_editor.js
@@ -54,4 +54,4 @@ export default function listEditorReducer(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/push_notifications.js b/app/javascript/flavours/glitch/reducers/push_notifications.js
index 117fb5167..116c3732f 100644
--- a/app/javascript/flavours/glitch/reducers/push_notifications.js
+++ b/app/javascript/flavours/glitch/reducers/push_notifications.js
@@ -50,4 +50,4 @@ export default function push_subscriptions(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/relationships.js b/app/javascript/flavours/glitch/reducers/relationships.js
index 49dd77ef5..b53f0238c 100644
--- a/app/javascript/flavours/glitch/reducers/relationships.js
+++ b/app/javascript/flavours/glitch/reducers/relationships.js
@@ -1,3 +1,6 @@
+import {
+ NOTIFICATIONS_UPDATE,
+} from '../actions/notifications';
import {
ACCOUNT_FOLLOW_SUCCESS,
ACCOUNT_FOLLOW_REQUEST,
@@ -12,6 +15,8 @@ import {
ACCOUNT_PIN_SUCCESS,
ACCOUNT_UNPIN_SUCCESS,
RELATIONSHIPS_FETCH_SUCCESS,
+ FOLLOW_REQUEST_AUTHORIZE_SUCCESS,
+ FOLLOW_REQUEST_REJECT_SUCCESS,
} from 'flavours/glitch/actions/accounts';
import {
DOMAIN_BLOCK_SUCCESS,
@@ -44,6 +49,12 @@ const initialState = ImmutableMap();
export default function relationships(state = initialState, action) {
switch(action.type) {
+ case FOLLOW_REQUEST_AUTHORIZE_SUCCESS:
+ return state.setIn([action.id, 'followed_by'], true).setIn([action.id, 'requested_by'], false);
+ case FOLLOW_REQUEST_REJECT_SUCCESS:
+ return state.setIn([action.id, 'followed_by'], false).setIn([action.id, 'requested_by'], false);
+ case NOTIFICATIONS_UPDATE:
+ return action.notification.type === 'follow_request' ? state.setIn([action.notification.account.id, 'requested_by'], true) : state;
case ACCOUNT_FOLLOW_REQUEST:
return state.getIn([action.id, 'following']) ? state : state.setIn([action.id, action.locked ? 'requested' : 'following'], true);
case ACCOUNT_FOLLOW_FAIL:
@@ -71,4 +82,4 @@ export default function relationships(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/search.js b/app/javascript/flavours/glitch/reducers/search.js
index 4b8913e96..bc0433d1f 100644
--- a/app/javascript/flavours/glitch/reducers/search.js
+++ b/app/javascript/flavours/glitch/reducers/search.js
@@ -64,4 +64,4 @@ export default function search(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/server.js b/app/javascript/flavours/glitch/reducers/server.js
index cc5798fb3..af0cfc7a9 100644
--- a/app/javascript/flavours/glitch/reducers/server.js
+++ b/app/javascript/flavours/glitch/reducers/server.js
@@ -2,6 +2,9 @@ import {
SERVER_FETCH_REQUEST,
SERVER_FETCH_SUCCESS,
SERVER_FETCH_FAIL,
+ SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST,
+ SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS,
+ SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL,
EXTENDED_DESCRIPTION_REQUEST,
EXTENDED_DESCRIPTION_SUCCESS,
EXTENDED_DESCRIPTION_FAIL,
@@ -35,6 +38,12 @@ export default function server(state = initialState, action) {
return state.set('server', fromJS(action.server)).setIn(['server', 'isLoading'], false);
case SERVER_FETCH_FAIL:
return state.setIn(['server', 'isLoading'], false);
+ case SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST:
+ return state.setIn(['translationLanguages', 'isLoading'], true);
+ case SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS:
+ return state.setIn(['translationLanguages', 'items'], fromJS(action.translationLanguages)).setIn(['translationLanguages', 'isLoading'], false);
+ case SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL:
+ return state.setIn(['translationLanguages', 'isLoading'], false);
case EXTENDED_DESCRIPTION_REQUEST:
return state.setIn(['extendedDescription', 'isLoading'], true);
case EXTENDED_DESCRIPTION_SUCCESS:
diff --git a/app/javascript/flavours/glitch/reducers/settings.js b/app/javascript/flavours/glitch/reducers/settings.js
index 82927f7cd..e69eee966 100644
--- a/app/javascript/flavours/glitch/reducers/settings.js
+++ b/app/javascript/flavours/glitch/reducers/settings.js
@@ -176,4 +176,4 @@ export default function settings(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/status_lists.js b/app/javascript/flavours/glitch/reducers/status_lists.js
index ada0484f4..a279d3d34 100644
--- a/app/javascript/flavours/glitch/reducers/status_lists.js
+++ b/app/javascript/flavours/glitch/reducers/status_lists.js
@@ -25,7 +25,7 @@ import {
TRENDS_STATUSES_EXPAND_SUCCESS,
TRENDS_STATUSES_EXPAND_FAIL,
} from 'flavours/glitch/actions/trends';
-import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
+import { Map as ImmutableMap, OrderedSet as ImmutableOrderedSet } from 'immutable';
import {
FAVOURITE_SUCCESS,
UNFAVOURITE_SUCCESS,
@@ -43,22 +43,22 @@ const initialState = ImmutableMap({
favourites: ImmutableMap({
next: null,
loaded: false,
- items: ImmutableList(),
+ items: ImmutableOrderedSet(),
}),
bookmarks: ImmutableMap({
next: null,
loaded: false,
- items: ImmutableList(),
+ items: ImmutableOrderedSet(),
}),
pins: ImmutableMap({
next: null,
loaded: false,
- items: ImmutableList(),
+ items: ImmutableOrderedSet(),
}),
trending: ImmutableMap({
next: null,
loaded: false,
- items: ImmutableList(),
+ items: ImmutableOrderedSet(),
}),
});
@@ -67,7 +67,7 @@ const normalizeList = (state, listType, statuses, next) => {
map.set('next', next);
map.set('loaded', true);
map.set('isLoading', false);
- map.set('items', ImmutableList(statuses.map(item => item.id)));
+ map.set('items', ImmutableOrderedSet(statuses.map(item => item.id)));
}));
};
@@ -75,20 +75,22 @@ const appendToList = (state, listType, statuses, next) => {
return state.update(listType, listMap => listMap.withMutations(map => {
map.set('next', next);
map.set('isLoading', false);
- map.set('items', map.get('items').concat(statuses.map(item => item.id)));
+ map.set('items', map.get('items').union(statuses.map(item => item.id)));
}));
};
const prependOneToList = (state, listType, status) => {
- return state.update(listType, listMap => listMap.withMutations(map => {
- map.set('items', map.get('items').unshift(status.get('id')));
- }));
+ return state.updateIn([listType, 'items'], (list) => {
+ if (list.includes(status.get('id'))) {
+ return list;
+ } else {
+ return ImmutableOrderedSet([status.get('id')]).union(list);
+ }
+ });
};
const removeOneFromList = (state, listType, status) => {
- return state.update(listType, listMap => listMap.withMutations(map => {
- map.set('items', map.get('items').filter(item => item !== status.get('id')));
- }));
+ return state.updateIn([listType, 'items'], (list) => list.delete(status.get('id')));
};
export default function statusLists(state = initialState, action) {
@@ -139,8 +141,8 @@ export default function statusLists(state = initialState, action) {
return removeOneFromList(state, 'pins', action.status);
case ACCOUNT_BLOCK_SUCCESS:
case ACCOUNT_MUTE_SUCCESS:
- return state.updateIn(['trending', 'items'], ImmutableList(), list => list.filterNot(statusId => action.statuses.getIn([statusId, 'account']) === action.relationship.id));
+ return state.updateIn(['trending', 'items'], ImmutableOrderedSet(), list => list.filterNot(statusId => action.statuses.getIn([statusId, 'account']) === action.relationship.id));
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/statuses.js b/app/javascript/flavours/glitch/reducers/statuses.js
index f0c4c804b..ca220c54d 100644
--- a/app/javascript/flavours/glitch/reducers/statuses.js
+++ b/app/javascript/flavours/glitch/reducers/statuses.js
@@ -94,4 +94,4 @@ export default function statuses(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/suggestions.js b/app/javascript/flavours/glitch/reducers/suggestions.js
index 2bc30d2c6..3c1ea3fa8 100644
--- a/app/javascript/flavours/glitch/reducers/suggestions.js
+++ b/app/javascript/flavours/glitch/reducers/suggestions.js
@@ -34,4 +34,4 @@ export default function suggestionsReducer(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/tags.js b/app/javascript/flavours/glitch/reducers/tags.js
index 266b21177..b280bc4dd 100644
--- a/app/javascript/flavours/glitch/reducers/tags.js
+++ b/app/javascript/flavours/glitch/reducers/tags.js
@@ -22,4 +22,4 @@ export default function tags(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/timelines.js b/app/javascript/flavours/glitch/reducers/timelines.js
index 407293c62..96a6ca961 100644
--- a/app/javascript/flavours/glitch/reducers/timelines.js
+++ b/app/javascript/flavours/glitch/reducers/timelines.js
@@ -229,4 +229,4 @@ export default function timelines(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/trends.js b/app/javascript/flavours/glitch/reducers/trends.js
index e2bac6199..0b8e0882d 100644
--- a/app/javascript/flavours/glitch/reducers/trends.js
+++ b/app/javascript/flavours/glitch/reducers/trends.js
@@ -43,4 +43,4 @@ export default function trendsReducer(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/reducers/user_lists.js b/app/javascript/flavours/glitch/reducers/user_lists.js
index 0a75e85c1..9e020fd91 100644
--- a/app/javascript/flavours/glitch/reducers/user_lists.js
+++ b/app/javascript/flavours/glitch/reducers/user_lists.js
@@ -187,4 +187,4 @@ export default function userLists(state = initialState, action) {
default:
return state;
}
-};
+}
diff --git a/app/javascript/flavours/glitch/selectors/index.js b/app/javascript/flavours/glitch/selectors/index.js
index df46b58a8..83f8783d9 100644
--- a/app/javascript/flavours/glitch/selectors/index.js
+++ b/app/javascript/flavours/glitch/selectors/index.js
@@ -1,6 +1,6 @@
import escapeTextContentForBrowser from 'escape-html';
import { createSelector } from 'reselect';
-import { List as ImmutableList } from 'immutable';
+import { List as ImmutableList, Map as ImmutableMap, is } from 'immutable';
import { toServerSideType } from 'flavours/glitch/utils/filters';
import { me } from 'flavours/glitch/initial_state';
@@ -74,6 +74,16 @@ export const makeGetStatus = () => {
);
};
+export const makeGetPictureInPicture = () => {
+ return createSelector([
+ (state, { id }) => state.get('picture_in_picture').statusId === id,
+ (state) => state.getIn(['meta', 'layout']) !== 'mobile',
+ ], (inUse, available) => ImmutableMap({
+ inUse: inUse && available,
+ available,
+ }));
+};
+
const getAlertsBase = state => state.get('alerts');
export const getAlerts = createSelector([getAlertsBase], (base) => {
diff --git a/app/javascript/flavours/glitch/store/configureStore.js b/app/javascript/flavours/glitch/store/configureStore.js
index e18af842f..0e0d45c66 100644
--- a/app/javascript/flavours/glitch/store/configureStore.js
+++ b/app/javascript/flavours/glitch/store/configureStore.js
@@ -12,4 +12,4 @@ export default function configureStore() {
errorsMiddleware(),
soundsMiddleware(),
), window.__REDUX_DEVTOOLS_EXTENSION__ ? window.__REDUX_DEVTOOLS_EXTENSION__() : f => f));
-};
+}
diff --git a/app/javascript/flavours/glitch/styles/_mixins.scss b/app/javascript/flavours/glitch/styles/_mixins.scss
index 9f6314f3f..b23c4dbb7 100644
--- a/app/javascript/flavours/glitch/styles/_mixins.scss
+++ b/app/javascript/flavours/glitch/styles/_mixins.scss
@@ -4,7 +4,7 @@
background-clip: padding-box;
}
-@mixin avatar-size($size:48px) {
+@mixin avatar-size($size: 48px) {
width: $size;
height: $size;
background-size: $size $size;
@@ -22,7 +22,8 @@
}
@mixin limited-single-column($media, $parent: '&') {
- .auto-columns #{$parent}, .single-column #{$parent} {
+ .auto-columns #{$parent},
+ .single-column #{$parent} {
@media #{$media} {
@content;
}
@@ -47,7 +48,7 @@
width: inherit;
max-width: none;
height: 250px;
- border-radius: 0px;
+ border-radius: 0;
}
}
diff --git a/app/javascript/flavours/glitch/styles/accessibility.scss b/app/javascript/flavours/glitch/styles/accessibility.scss
index 7bffb2e26..fb2376abf 100644
--- a/app/javascript/flavours/glitch/styles/accessibility.scss
+++ b/app/javascript/flavours/glitch/styles/accessibility.scss
@@ -1,4 +1,7 @@
-$emojis-requiring-inversion: 'back' 'copyright' 'curly_loop' 'currency_exchange' 'end' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign' 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'on' 'registered' 'soon' 'spider' 'telephone_receiver' 'tm' 'top' 'wavy_dash' !default;
+$emojis-requiring-inversion: 'back' 'copyright' 'curly_loop' 'currency_exchange'
+ 'end' 'heavy_check_mark' 'heavy_division_sign' 'heavy_dollar_sign'
+ 'heavy_minus_sign' 'heavy_multiplication_x' 'heavy_plus_sign' 'on'
+ 'registered' 'soon' 'spider' 'telephone_receiver' 'tm' 'top' 'wavy_dash' !default;
%emoji-color-inversion {
filter: invert(1);
@@ -19,7 +22,7 @@ $emojis-requiring-inversion: 'back' 'copyright' 'curly_loop' 'currency_exchange'
&.active::after {
position: absolute;
- content: "\F00C";
+ content: '\F00C';
font-size: 50%;
font-family: FontAwesome;
right: -0.55em;
diff --git a/app/javascript/flavours/glitch/styles/accounts.scss b/app/javascript/flavours/glitch/styles/accounts.scss
index cdc506cf4..b1faf07c2 100644
--- a/app/javascript/flavours/glitch/styles/accounts.scss
+++ b/app/javascript/flavours/glitch/styles/accounts.scss
@@ -36,10 +36,6 @@
@media screen and (max-width: 600px) {
height: 200px;
}
-
- @media screen and (max-width: $no-gap-breakpoint) {
- display: none;
- }
}
&__bar {
@@ -60,6 +56,7 @@
width: 48px;
height: 48px;
@include avatar-size(48px);
+
padding-top: 2px;
img {
@@ -68,7 +65,8 @@
display: block;
margin: 0;
border-radius: 4px;
- @include avatar-radius();
+ @include avatar-radius;
+
background: darken($ui-base-color, 8%);
object-fit: cover;
}
@@ -214,7 +212,7 @@
font-size: 12px;
line-height: 12px;
font-weight: 500;
- color: var(--user-role-accent, $ui-secondary-color);
+ color: $ui-secondary-color;
background-color: var(--user-role-background, rgba($ui-secondary-color, 0.1));
border: 1px solid var(--user-role-border, rgba($ui-secondary-color, 0.5));
diff --git a/app/javascript/flavours/glitch/styles/admin.scss b/app/javascript/flavours/glitch/styles/admin.scss
index c2426944b..240c90735 100644
--- a/app/javascript/flavours/glitch/styles/admin.scss
+++ b/app/javascript/flavours/glitch/styles/admin.scss
@@ -1,4 +1,4 @@
-@use "sass:math";
+@use 'sass:math';
$no-columns-breakpoint: 600px;
$sidebar-width: 240px;
@@ -254,10 +254,8 @@ $content-width: 840px;
&__actions {
display: inline-flex;
-
- & > :not(:first-child) {
- margin-left: 5px;
- }
+ flex-flow: wrap;
+ gap: 5px;
}
h2 small {
@@ -352,7 +350,7 @@ $content-width: 840px;
width: 100%;
height: 0;
border: 0;
- border-bottom: 1px solid rgba($ui-base-lighter-color, .6);
+ border-bottom: 1px solid rgba($ui-base-lighter-color, 0.6);
margin: 20px 0;
&.spacer {
@@ -386,7 +384,7 @@ $content-width: 840px;
position: fixed;
z-index: 10;
width: 100%;
- height: calc(100vh - 56px);
+ height: calc(100% - 56px);
left: 0;
bottom: 0;
overflow-y: auto;
@@ -1149,7 +1147,10 @@ a.name-tag,
@for $i from 0 through 10 {
&--#{10 * $i} {
- background-color: rgba($ui-highlight-color, 1 * (math.div(max(1, $i), 10)));
+ background-color: rgba(
+ $ui-highlight-color,
+ 1 * (math.div(max(1, $i), 10))
+ );
}
}
}
@@ -1218,7 +1219,7 @@ a.name-tag,
path:first-child {
fill: rgba($highlight-text-color, 0.25) !important;
- fill-opacity: 100% !important;
+ fill-opacity: 1 !important;
}
path:last-child {
@@ -1238,7 +1239,12 @@ a.sparkline {
.skeleton {
background-color: lighten($ui-base-color, 8%);
- background-image: linear-gradient(90deg, lighten($ui-base-color, 8%), lighten($ui-base-color, 12%), lighten($ui-base-color, 8%));
+ background-image: linear-gradient(
+ 90deg,
+ lighten($ui-base-color, 8%),
+ lighten($ui-base-color, 12%),
+ lighten($ui-base-color, 8%)
+ );
background-size: 200px 100%;
background-repeat: no-repeat;
border-radius: 4px;
@@ -1287,7 +1293,10 @@ a.sparkline {
@for $i from 0 through 10 {
&--#{10 * $i} {
- background-color: rgba($ui-highlight-color, 1 * (math.div(max(1, $i), 10)));
+ background-color: rgba(
+ $ui-highlight-color,
+ 1 * (math.div(max(1, $i), 10))
+ );
}
}
}
@@ -1433,7 +1442,7 @@ a.sparkline {
&::after {
display: block;
- content: "";
+ content: '';
width: 50px;
height: 21px;
position: absolute;
@@ -1590,6 +1599,15 @@ a.sparkline {
margin-bottom: 0;
}
}
+
+ a {
+ color: $highlight-text-color;
+ text-decoration: none;
+
+ &:hover {
+ text-decoration: underline;
+ }
+ }
}
&__actions {
@@ -1681,6 +1699,15 @@ a.sparkline {
box-sizing: border-box;
min-height: 100%;
+ a {
+ color: $highlight-text-color;
+ text-decoration: none;
+
+ &:hover {
+ text-decoration: underline;
+ }
+ }
+
p {
margin-bottom: 20px;
unicode-bidi: plaintext;
@@ -1809,7 +1836,7 @@ a.sparkline {
&::after {
position: absolute;
- content: "";
+ content: '';
width: 1px;
background: $highlight-text-color;
bottom: 0;
diff --git a/app/javascript/flavours/glitch/styles/basics.scss b/app/javascript/flavours/glitch/styles/basics.scss
index a00b2936f..84977eb39 100644
--- a/app/javascript/flavours/glitch/styles/basics.scss
+++ b/app/javascript/flavours/glitch/styles/basics.scss
@@ -2,7 +2,8 @@
@if type-of($color) == 'color' {
$color: str-slice(ie-hex-str($color), 4);
}
- @return '%23' + unquote($color)
+
+ @return '%23' + unquote($color);
}
body {
@@ -13,9 +14,9 @@ body {
font-weight: 400;
color: $primary-text-color;
text-rendering: optimizelegibility;
- font-feature-settings: "kern";
+ font-feature-settings: 'kern';
text-size-adjust: none;
- -webkit-tap-highlight-color: rgba(0,0,0,0);
+ -webkit-tap-highlight-color: rgba(0, 0, 0, 0%);
-webkit-tap-highlight-color: transparent;
&.system-font {
@@ -30,7 +31,9 @@ body {
// Droid Sans => Older Androids (<4.0)
// Helvetica Neue => Older macOS <10.11
// $font-sans-serif => web-font (Roboto) fallback and newer Androids (>=4.0)
- font-family: system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", "Oxygen", "Ubuntu", "Cantarell", "Fira Sans", "Droid Sans", "Helvetica Neue", $font-sans-serif, sans-serif;
+ font-family: system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI',
+ Oxygen, Ubuntu, Cantarell, 'Fira Sans', 'Droid Sans', 'Helvetica Neue',
+ $font-sans-serif, sans-serif;
}
&.app-body {
@@ -129,12 +132,14 @@ body {
vertical-align: middle;
margin: 20px;
- img {
- display: block;
- max-width: 470px;
- width: 100%;
- height: auto;
- margin-top: -120px;
+ &__illustration {
+ img {
+ display: block;
+ max-width: 470px;
+ width: 100%;
+ height: auto;
+ margin-top: -120px;
+ }
}
h1 {
@@ -157,13 +162,18 @@ button {
.app-holder {
&,
- & > div {
+ & > div,
+ & > noscript {
display: flex;
width: 100%;
align-items: center;
justify-content: center;
outline: 0 !important;
}
+
+ & > noscript {
+ height: 100vh;
+ }
}
.layout-single-column .app-holder {
@@ -180,6 +190,72 @@ button {
}
}
+.app-holder noscript {
+ flex-direction: column;
+ font-size: 16px;
+ font-weight: 400;
+ line-height: 1.7;
+ color: lighten($error-red, 4%);
+ text-align: center;
+
+ & > div {
+ max-width: 500px;
+ }
+
+ p {
+ margin-bottom: 0.85em;
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+ }
+
+ a {
+ color: $highlight-text-color;
+
+ &:hover,
+ &:focus,
+ &:active {
+ text-decoration: none;
+ }
+ }
+
+ &__footer {
+ color: $dark-text-color;
+ font-size: 13px;
+
+ a {
+ color: $dark-text-color;
+ }
+ }
+
+ button {
+ display: inline;
+ border: 0;
+ background: transparent;
+ color: $dark-text-color;
+ font: inherit;
+ padding: 0;
+ margin: 0;
+ line-height: inherit;
+ cursor: pointer;
+ outline: 0;
+ transition: color 300ms linear;
+ text-decoration: underline;
+
+ &:hover,
+ &:focus,
+ &:active {
+ text-decoration: none;
+ }
+
+ &.copied {
+ color: $valid-value-color;
+ transition: none;
+ }
+ }
+}
+
.logo-resources {
// Not using display: none because of https://bugs.chromium.org/p/chromium/issues/detail?id=258029
visibility: hidden;
diff --git a/app/javascript/flavours/glitch/styles/components/accounts.scss b/app/javascript/flavours/glitch/styles/components/accounts.scss
index ac2d642a8..b95cffbb4 100644
--- a/app/javascript/flavours/glitch/styles/components/accounts.scss
+++ b/app/javascript/flavours/glitch/styles/components/accounts.scss
@@ -30,7 +30,9 @@
border: 0;
padding: 0;
- & > .account__avatar-wrapper { margin: 0 8px 0 0 }
+ & > .account__avatar-wrapper {
+ margin: 0 8px 0 0;
+ }
& > .display-name {
height: 24px;
@@ -60,11 +62,11 @@
}
.account__avatar {
- @include avatar-radius();
+ @include avatar-radius;
+
display: block;
position: relative;
cursor: pointer;
-
width: 36px;
height: 36px;
background-size: 36px 36px;
@@ -77,11 +79,13 @@
&-composite {
@include avatar-radius;
+
overflow: hidden;
position: relative;
& div {
@include avatar-radius;
+
float: left;
position: relative;
box-sizing: border-box;
@@ -102,24 +106,24 @@
}
.account__avatar-overlay {
- position: relative;
@include avatar-size(48px);
position: relative;
&-base {
- @include avatar-radius();
+ @include avatar-radius;
@include avatar-size(36px);
img {
@include avatar-radius;
+
width: 100%;
height: 100%;
}
}
&-overlay {
- @include avatar-radius();
+ @include avatar-radius;
@include avatar-size(24px);
position: absolute;
@@ -129,6 +133,7 @@
img {
@include avatar-radius;
+
width: 100%;
height: 100%;
}
@@ -379,7 +384,7 @@
&::before,
&::after {
display: block;
- content: "";
+ content: '';
position: absolute;
bottom: 0;
left: 50%;
@@ -523,7 +528,6 @@
display: block;
flex: 0 0 auto;
width: 94px;
- margin-left: -2px;
.account__avatar {
background: darken($ui-base-color, 8%);
@@ -534,12 +538,21 @@
&__tabs {
display: flex;
- align-items: flex-start;
+ align-items: flex-end;
justify-content: space-between;
padding: 7px 10px;
- margin-top: -55px;
- gap: 8px;
+ margin-top: -81px;
+ height: 130px;
overflow: hidden;
+ margin-left: -2px; // aligns the pfp with content below
+
+ .account-role {
+ margin: 0 2px;
+ padding: 4px 0;
+ box-sizing: border-box;
+ min-width: 90px;
+ text-align: center;
+ }
&__buttons {
display: flex;
@@ -593,6 +606,10 @@
font-weight: 400;
overflow: hidden;
text-overflow: ellipsis;
+
+ span {
+ user-select: all;
+ }
}
}
}
@@ -698,22 +715,22 @@
padding: 2px 6px;
color: $darker-text-color;
- &:hover,
- &:active,
- &:focus {
- color: lighten($darker-text-color, 7%);
- background-color: rgba($darker-text-color, 0.15);
- }
+ &:hover,
+ &:active,
+ &:focus {
+ color: lighten($darker-text-color, 7%);
+ background-color: rgba($darker-text-color, 0.15);
+ }
- &:focus {
- background-color: rgba($darker-text-color, 0.3);
- }
+ &:focus {
+ background-color: rgba($darker-text-color, 0.3);
+ }
- &[disabled] {
- color: darken($darker-text-color, 13%);
- background-color: transparent;
- cursor: default;
- }
+ &[disabled] {
+ color: darken($darker-text-color, 13%);
+ background-color: transparent;
+ cursor: default;
+ }
}
.flex-spacer {
@@ -732,8 +749,6 @@
display: block;
box-sizing: border-box;
width: calc(100% + 20px);
- margin: 0;
- margin-top: 5px;
color: $secondary-text-color;
background: $ui-base-color;
padding: 10px;
@@ -752,3 +767,39 @@
}
}
}
+
+.moved-account-banner,
+.follow-request-banner {
+ padding: 20px;
+ background: lighten($ui-base-color, 4%);
+ display: flex;
+ align-items: center;
+ flex-direction: column;
+
+ &__message {
+ color: $darker-text-color;
+ padding: 8px 0;
+ padding-top: 0;
+ padding-bottom: 4px;
+ font-size: 14px;
+ font-weight: 500;
+ text-align: center;
+ margin-bottom: 16px;
+ }
+
+ &__action {
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ gap: 15px;
+ width: 100%;
+ }
+
+ .detailed-status__display-name {
+ margin-bottom: 0;
+ }
+}
+
+.follow-request-banner .button {
+ width: 100%;
+}
diff --git a/app/javascript/flavours/glitch/styles/components/announcements.scss b/app/javascript/flavours/glitch/styles/components/announcements.scss
index 85af9afc8..feaff81f5 100644
--- a/app/javascript/flavours/glitch/styles/components/announcements.scss
+++ b/app/javascript/flavours/glitch/styles/components/announcements.scss
@@ -181,7 +181,11 @@
&.active {
transition: all 100ms ease-in;
transition-property: background-color, color;
- background-color: mix(lighten($ui-base-color, 12%), $ui-highlight-color, 80%);
+ background-color: mix(
+ lighten($ui-base-color, 12%),
+ $ui-highlight-color,
+ 80%
+ );
.reactions-bar__item__count {
color: lighten($highlight-text-color, 8%);
diff --git a/app/javascript/flavours/glitch/styles/components/columns.scss b/app/javascript/flavours/glitch/styles/components/columns.scss
index 42a591931..907f820d6 100644
--- a/app/javascript/flavours/glitch/styles/components/columns.scss
+++ b/app/javascript/flavours/glitch/styles/components/columns.scss
@@ -286,7 +286,7 @@ $ui-header-height: 55px;
&::before {
display: block;
- content: "";
+ content: '';
position: absolute;
bottom: -13px;
left: 0;
@@ -296,7 +296,11 @@ $ui-header-height: 55px;
pointer-events: none;
height: 28px;
z-index: 1;
- background: radial-gradient(ellipse, rgba($ui-highlight-color, 0.23) 0%, rgba($ui-highlight-color, 0) 60%);
+ background: radial-gradient(
+ ellipse,
+ rgba($ui-highlight-color, 0.23) 0%,
+ rgba($ui-highlight-color, 0) 60%
+ );
}
}
@@ -424,6 +428,7 @@ $ui-header-height: 55px;
button {
@extend .column-header__button;
+
background: transparent;
text-align: center;
padding: 10px 5px;
@@ -435,10 +440,10 @@ $ui-header-height: 55px;
}
}
-
.layout-single-column .column-header__notif-cleaning-buttons {
@media screen and (min-width: $no-gap-breakpoint) {
- b, i {
+ b,
+ i {
margin-right: 5px;
}
@@ -487,6 +492,7 @@ $ui-header-height: 55px;
// notif cleaning drawer
&.ncd {
transition: none;
+
&.collapsed {
max-height: 0;
opacity: 0.7;
@@ -575,8 +581,8 @@ $ui-header-height: 55px;
font-size: inherit;
flex: auto;
background-color: $ui-base-color;
- transition-property: background-color, box-shadow;
transition: all 0.2s ease;
+ transition-property: background-color, box-shadow;
&[disabled] {
cursor: not-allowed;
@@ -622,7 +628,8 @@ $ui-header-height: 55px;
flex: 1 1 auto;
align-items: center;
justify-content: center;
- @supports(display: grid) { // hack to fix Chrome <57
+ @supports (display: grid) {
+ // hack to fix Chrome <57
contain: strict;
}
@@ -643,6 +650,7 @@ $ui-header-height: 55px;
.follow_requests-unlocked_explanation {
background: darken($ui-base-color, 4%);
contain: initial;
+ flex-grow: 0;
}
.error-column {
@@ -766,7 +774,7 @@ $ui-header-height: 55px;
.column-select {
&__control {
- @include search-input();
+ @include search-input;
&::placeholder {
color: lighten($darker-text-color, 4%);
@@ -840,7 +848,8 @@ $ui-header-height: 55px;
}
&__menu {
- @include search-popout();
+ @include search-popout;
+
padding: 0;
background: $ui-secondary-color;
}
@@ -916,7 +925,7 @@ $ui-header-height: 55px;
p {
font-size: 16px;
- line-height: 24px;
+ line-height: 24px;
font-weight: 400;
color: $darker-text-color;
}
diff --git a/app/javascript/flavours/glitch/styles/components/compose_form.scss b/app/javascript/flavours/glitch/styles/components/compose_form.scss
index 72d3aad1d..1c2e0aeb4 100644
--- a/app/javascript/flavours/glitch/styles/components/compose_form.scss
+++ b/app/javascript/flavours/glitch/styles/components/compose_form.scss
@@ -32,12 +32,12 @@
.spoiler-input {
height: 0;
transform-origin: bottom;
- opacity: 0.0;
+ opacity: 0;
&.spoiler-input--visible {
height: 36px;
margin-bottom: 11px;
- opacity: 1.0;
+ opacity: 1;
}
input {
@@ -59,8 +59,12 @@
color: $dark-text-color;
}
- &:focus { outline: 0 }
- @include single-column('screen and (max-width: 630px)') { font-size: 16px }
+ &:focus {
+ outline: 0;
+ }
+ @include single-column('screen and (max-width: 630px)') {
+ font-size: 16px;
+ }
}
}
@@ -90,7 +94,6 @@
.compose-form__sensitive-button {
padding: 10px;
padding-top: 0;
-
font-size: 14px;
font-weight: 500;
@@ -98,7 +101,7 @@
color: $highlight-text-color;
}
- input[type=checkbox] {
+ input[type='checkbox'] {
display: none;
}
@@ -118,7 +121,9 @@
&.active {
border-color: $highlight-text-color;
- background: $highlight-text-color;
+ background: $highlight-text-color
+ url("data:image/svg+xml;utf8,
")
+ center center no-repeat;
}
}
}
@@ -137,7 +142,9 @@
margin-bottom: 5px;
overflow: hidden;
- & > .account.small { color: $inverted-text-color; }
+ & > .account.small {
+ color: $inverted-text-color;
+ }
}
.reply-indicator__cancel {
@@ -147,19 +154,17 @@
.reply-indicator__content {
position: relative;
- margin: 10px 0;
- padding: 0 12px;
font-size: 14px;
line-height: 20px;
- color: $inverted-text-color;
word-wrap: break-word;
font-weight: 400;
- overflow: visible;
- white-space: pre-wrap;
- padding-top: 5px;
overflow: hidden;
+ padding-top: 5px;
+ color: $inverted-text-color;
+ white-space: pre-wrap;
- p, pre, blockquote {
+ p,
+ pre {
margin-bottom: 20px;
white-space: pre-wrap;
@@ -168,80 +173,21 @@
}
}
- h1, h2, h3, h4, h5 {
- margin-top: 20px;
- margin-bottom: 20px;
- }
-
- h1, h2 {
- font-weight: 700;
- font-size: 18px;
- }
-
- h2 {
- font-size: 16px;
- }
-
- h3, h4, h5 {
- font-weight: 500;
- }
-
- blockquote {
- padding-left: 10px;
- border-left: 3px solid $inverted-text-color;
- color: $inverted-text-color;
- white-space: normal;
-
- p:last-child {
- margin-bottom: 0;
- }
- }
-
- b, strong {
- font-weight: 700;
- }
-
- em, i {
- font-style: italic;
- }
-
- sub {
- font-size: smaller;
- vertical-align: sub;
- }
-
- sup {
- font-size: smaller;
- vertical-align: super;
- }
-
- ul, ol {
- margin-left: 1em;
-
- p {
- margin: 0;
- }
- }
-
- ul {
- list-style-type: disc;
- }
-
- ol {
- list-style-type: decimal;
- }
-
a {
color: $lighter-text-color;
text-decoration: none;
- &:hover { text-decoration: underline }
+ &:hover {
+ text-decoration: underline;
+ }
&.mention {
&:hover {
text-decoration: none;
- span { text-decoration: underline }
+ span {
+ text-decoration: underline;
+ }
}
}
}
@@ -321,7 +267,7 @@
font-size: 18px;
line-height: 24px;
text-align: center;
- opacity: .8;
+ opacity: 0.8;
}
}
@@ -331,19 +277,18 @@
}
.autosuggest-textarea__suggestions {
- display: block;
- position: absolute;
box-sizing: border-box;
- top: 100%;
- border-radius: 0 0 4px 4px;
- padding: 6px;
- width: 100%;
- color: $inverted-text-color;
- background: $ui-secondary-color;
- box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);
- font-size: 14px;
- z-index: 99;
display: none;
+ position: absolute;
+ top: 100%;
+ width: 100%;
+ z-index: 99;
+ box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);
+ background: $ui-secondary-color;
+ border-radius: 0 0 4px 4px;
+ color: $inverted-text-color;
+ font-size: 14px;
+ padding: 6px;
}
.autosuggest-textarea__suggestions--visible {
@@ -358,7 +303,9 @@
&:hover,
&:focus,
&:active,
- &.selected { background: darken($ui-secondary-color, 10%) }
+ &.selected {
+ background: darken($ui-secondary-color, 10%);
+ }
> .account,
> .emoji,
@@ -396,7 +343,9 @@
& > .account.small {
.display-name {
- & > span { color: $lighter-text-color }
+ & > span {
+ color: $lighter-text-color;
+ }
}
}
}
@@ -430,7 +379,9 @@
background-repeat: no-repeat;
overflow: hidden;
- & > .close { mix-blend-mode: difference }
+ & > .close {
+ mix-blend-mode: difference;
+ }
}
.icon-button {
@@ -455,12 +406,22 @@
left: 0;
right: 0;
box-sizing: border-box;
- background: linear-gradient(0deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);
+ background: linear-gradient(
+ 0deg,
+ rgba($base-shadow-color, 0.8) 0,
+ rgba($base-shadow-color, 0.35) 80%,
+ transparent
+ );
}
}
.compose-form__upload__actions {
- background: linear-gradient(180deg, rgba($base-shadow-color, 0.8) 0, rgba($base-shadow-color, 0.35) 80%, transparent);
+ background: linear-gradient(
+ 180deg,
+ rgba($base-shadow-color, 0.8) 0,
+ rgba($base-shadow-color, 0.35) 80%,
+ transparent
+ );
display: flex;
align-items: flex-start;
justify-content: space-between;
@@ -495,7 +456,7 @@
border-radius: 6px;
width: 100%;
height: 6px;
- background: $ui-base-lighter-color;
+ background: darken($simple-background-color, 8%);
}
.upload-progress__tracker {
@@ -543,7 +504,8 @@
margin: 0 3px;
border-width: 0 0 0 1px;
border-style: none none none solid;
- border-color: transparent transparent transparent darken($simple-background-color, 24%);
+ border-color: transparent transparent transparent
+ darken($simple-background-color, 24%);
padding: 0;
width: 0;
height: 27px;
@@ -586,7 +548,6 @@
}
.privacy-dropdown__dropdown {
- position: absolute;
border-radius: 4px;
box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);
background: $simple-background-color;
@@ -605,7 +566,9 @@
flex: 1 1 auto;
color: $lighter-text-color;
- &:not(:first-child) { margin-left: 10px }
+ &:not(:first-child) {
+ margin-left: 10px;
+ }
strong {
display: block;
@@ -622,11 +585,15 @@
.privacy-dropdown__option__content {
color: $primary-text-color;
- strong { color: $primary-text-color }
+ strong {
+ color: $primary-text-color;
+ }
}
}
- &.active:hover { background: lighten($ui-highlight-color, 4%) }
+ &.active:hover {
+ background: lighten($ui-highlight-color, 4%);
+ }
}
.compose-form__publish {
@@ -653,7 +620,6 @@
.language-dropdown {
&__dropdown {
- position: absolute;
background: $simple-background-color;
box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);
border-radius: 4px;
diff --git a/app/javascript/flavours/glitch/styles/components/directory.scss b/app/javascript/flavours/glitch/styles/components/directory.scss
index 803e075c9..5c763764d 100644
--- a/app/javascript/flavours/glitch/styles/components/directory.scss
+++ b/app/javascript/flavours/glitch/styles/components/directory.scss
@@ -11,7 +11,11 @@
}
.scrollable .account-card__bio::after {
- background: linear-gradient(to left, lighten($ui-base-color, 8%), transparent);
+ background: linear-gradient(
+ to left,
+ lighten($ui-base-color, 8%),
+ transparent
+ );
}
.filter-form {
@@ -33,14 +37,13 @@
display: inline-block;
padding: 6px 0;
line-height: 18px;
- cursor: default;
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
cursor: pointer;
- input[type=radio],
- input[type=checkbox] {
+ input[type='radio'],
+ input[type='checkbox'] {
display: none;
}
diff --git a/app/javascript/flavours/glitch/styles/components/doodle.scss b/app/javascript/flavours/glitch/styles/components/doodle.scss
index a4a1cfc84..52c7cd54a 100644
--- a/app/javascript/flavours/glitch/styles/components/doodle.scss
+++ b/app/javascript/flavours/glitch/styles/components/doodle.scss
@@ -1,15 +1,17 @@
-$doodleBg: #d9e1e8;
+$doodle-background: #d9e1e8;
+
.doodle-modal {
@extend .boost-modal;
+
width: unset;
}
.doodle-modal__container {
- background: $doodleBg;
+ background: $doodle-background;
text-align: center;
line-height: 0; // remove weird gap under canvas
canvas {
- border: 5px solid $doodleBg;
+ border: 5px solid $doodle-background;
}
}
@@ -24,7 +26,6 @@ $doodleBg: #d9e1e8;
.doodle-toolbar {
line-height: 1;
-
display: flex;
flex-direction: column;
flex-grow: 0;
@@ -38,9 +39,11 @@ $doodleBg: #d9e1e8;
margin-right: 2px;
}
- input[type="number"],input[type="text"] {
+ input[type='number'],
+ input[type='text'] {
width: 40px;
}
+
span.val {
display: inline-block;
text-align: left;
@@ -52,7 +55,7 @@ $doodleBg: #d9e1e8;
.doodle-palette {
padding-right: 0 !important;
border: 1px solid black;
- line-height: .2rem;
+ line-height: 0.2rem;
flex-grow: 0;
background: white;
@@ -60,14 +63,15 @@ $doodleBg: #d9e1e8;
appearance: none;
width: 1rem;
height: 1rem;
- margin: 0; padding: 0;
+ margin: 0;
+ padding: 0;
text-align: center;
color: black;
text-shadow: 0 0 1px white;
cursor: pointer;
- box-shadow: inset 0 0 1px rgba(white, .5);
+ box-shadow: inset 0 0 1px rgba(white, 0.5);
border: 1px solid black;
- outline-offset:-1px;
+ outline-offset: -1px;
&.foreground {
outline: 1px dashed white;
diff --git a/app/javascript/flavours/glitch/styles/components/drawer.scss b/app/javascript/flavours/glitch/styles/components/drawer.scss
index cf996fb71..ec8a3da9e 100644
--- a/app/javascript/flavours/glitch/styles/components/drawer.scss
+++ b/app/javascript/flavours/glitch/styles/components/drawer.scss
@@ -34,7 +34,8 @@
}
@include single-column('screen and (max-width: 630px)') {
- :root & { // Overrides `.wide` for single-column view
+ :root & {
+ // Overrides `.wide` for single-column view
flex: auto;
width: 100%;
min-width: 0;
@@ -43,16 +44,20 @@
}
}
- .react-swipeable-view-container & { height: 100% }
+ .react-swipeable-view-container & {
+ height: 100%;
+ }
}
.drawer--header {
+ flex: none;
+ font-size: 16px;
+ background: lighten($ui-base-color, 8%);
+ margin-bottom: 10px;
display: flex;
flex-direction: row;
- margin-bottom: 10px;
- flex: none;
- background: lighten($ui-base-color, 8%);
- font-size: 16px;
+ border-radius: 4px;
+ overflow: hidden;
& > * {
display: block;
@@ -84,12 +89,18 @@
margin-bottom: 10px;
flex: none;
- @include limited-single-column('screen and (max-width: #{$no-gap-breakpoint})') { margin-bottom: 0 }
- @include single-column('screen and (max-width: 630px)') { font-size: 16px }
+ @include limited-single-column(
+ 'screen and (max-width: #{$no-gap-breakpoint})'
+ ) {
+ margin-bottom: 0;
+ }
+ @include single-column('screen and (max-width: 630px)') {
+ font-size: 16px;
+ }
}
.search-popout {
- @include search-popout();
+ @include search-popout;
}
.navigation-bar {
@@ -170,6 +181,7 @@
position: relative;
overflow: hidden;
display: flex;
+ border-radius: 4px;
}
.drawer__inner {
@@ -192,7 +204,9 @@
}
.drawer__inner__mastodon {
- background: lighten($ui-base-color, 13%) url('data:image/svg+xml;utf8,
') no-repeat bottom / 100% auto;
+ background: lighten($ui-base-color, 13%)
+ url('data:image/svg+xml;utf8,
')
+ no-repeat bottom / 100% auto;
flex: 1;
min-height: 47px;
display: none;
@@ -204,7 +218,6 @@
width: 85%;
height: 100%;
pointer-events: none;
- user-drag: none;
user-select: none;
}
@@ -240,13 +253,27 @@
@for $i from 0 through 3 {
.mbstobon-#{$i} .drawer__inner__mastodon {
@if $i == 3 {
- background: url('~flavours/glitch/images/wave-drawer.png') no-repeat bottom / 100% auto, lighten($ui-base-color, 13%);
+ background: url('~flavours/glitch/images/wave-drawer.png')
+ no-repeat
+ bottom /
+ 100%
+ auto,
+ lighten($ui-base-color, 13%);
} @else {
- background: url('~flavours/glitch/images/wave-drawer-glitched.png') no-repeat bottom / 100% auto, lighten($ui-base-color, 13%);
+ background: url('~flavours/glitch/images/wave-drawer-glitched.png')
+ no-repeat
+ bottom /
+ 100%
+ auto,
+ lighten($ui-base-color, 13%);
}
& > .mastodon {
- background: url("~flavours/glitch/images/mbstobon-ui-#{$i}.png") no-repeat left bottom / contain;
+ background: url('~flavours/glitch/images/mbstobon-ui-#{$i}.png')
+ no-repeat
+ left
+ bottom /
+ contain;
@if $i != 3 {
filter: contrast(50%) brightness(50%);
diff --git a/app/javascript/flavours/glitch/styles/components/emoji.scss b/app/javascript/flavours/glitch/styles/components/emoji.scss
index 9dfee346a..4427f2080 100644
--- a/app/javascript/flavours/glitch/styles/components/emoji.scss
+++ b/app/javascript/flavours/glitch/styles/components/emoji.scss
@@ -2,7 +2,7 @@
font-size: inherit;
vertical-align: middle;
object-fit: contain;
- margin: -.2ex .15em .2ex;
+ margin: -0.2ex 0.15em 0.2ex;
width: 16px;
height: 16px;
@@ -13,7 +13,7 @@
.emoji-picker-dropdown__menu {
background: $simple-background-color;
- position: absolute;
+ position: relative;
box-shadow: 4px 4px 6px rgba($base-shadow-color, 0.4);
border-radius: 4px;
margin-top: 5px;
diff --git a/app/javascript/flavours/glitch/styles/components/emoji_picker.scss b/app/javascript/flavours/glitch/styles/components/emoji_picker.scss
index 790650cfa..6bb9827b3 100644
--- a/app/javascript/flavours/glitch/styles/components/emoji_picker.scss
+++ b/app/javascript/flavours/glitch/styles/components/emoji_picker.scss
@@ -46,7 +46,7 @@
text-align: center;
padding: 12px 4px;
overflow: hidden;
- transition: color .1s ease-out;
+ transition: color 0.1s ease-out;
cursor: pointer;
background: transparent;
border: 0;
@@ -174,7 +174,7 @@
&:hover::before {
z-index: 0;
- content: "";
+ content: '';
position: absolute;
top: 0;
left: 0;
@@ -246,8 +246,8 @@
padding: 5px 6px;
padding-top: 70px;
- .emoji-mart-no-results-label {
- margin-top: .2em;
+ .emoji-mart-no-results-label {
+ margin-top: 0.2em;
}
.emoji-mart-emoji:hover::before {
diff --git a/app/javascript/flavours/glitch/styles/components/index.scss b/app/javascript/flavours/glitch/styles/components/index.scss
index 84aca2ebc..497b66b3e 100644
--- a/app/javascript/flavours/glitch/styles/components/index.scss
+++ b/app/javascript/flavours/glitch/styles/components/index.scss
@@ -1,1742 +1,4 @@
-.app-body {
- -webkit-overflow-scrolling: touch;
- -ms-overflow-style: -ms-autohiding-scrollbar;
-}
-
-.animated-number {
- display: inline-flex;
- flex-direction: column;
- align-items: stretch;
- overflow: hidden;
- position: relative;
-}
-
-.link-button {
- display: block;
- font-size: 15px;
- line-height: 20px;
- color: $highlight-text-color;
- border: 0;
- background: transparent;
- padding: 0;
- cursor: pointer;
- text-decoration: none;
-
- &--destructive {
- color: $error-value-color;
- }
-
- &:hover,
- &:active {
- text-decoration: underline;
- }
-
- &:disabled {
- color: $ui-primary-color;
- cursor: default;
- }
-}
-
-.button {
- background-color: darken($ui-highlight-color, 3%);
- border: 10px none;
- border-radius: 4px;
- box-sizing: border-box;
- color: $primary-text-color;
- cursor: pointer;
- display: inline-block;
- font-family: inherit;
- font-size: 15px;
- font-weight: 500;
- letter-spacing: 0;
- line-height: 22px;
- overflow: hidden;
- padding: 7px 18px;
- position: relative;
- text-align: center;
- text-decoration: none;
- text-overflow: ellipsis;
- white-space: nowrap;
- width: auto;
-
- &:active,
- &:focus,
- &:hover {
- background-color: $ui-highlight-color;
- }
-
- &--destructive {
- &:active,
- &:focus,
- &:hover {
- background-color: $error-red;
- transition: none;
- }
- }
-
- &:disabled {
- background-color: $ui-primary-color;
- cursor: default;
- }
-
- &.button-alternative {
- color: $inverted-text-color;
- background: $ui-primary-color;
-
- &:active,
- &:focus,
- &:hover {
- background-color: lighten($ui-primary-color, 4%);
- }
- }
-
- &.button-alternative-2 {
- background: $ui-base-lighter-color;
-
- &:active,
- &:focus,
- &:hover {
- background-color: lighten($ui-base-lighter-color, 4%);
- }
- }
-
- &.button-secondary {
- font-size: 16px;
- line-height: 36px;
- height: auto;
- color: $darker-text-color;
- text-transform: none;
- background: transparent;
- padding: 6px 17px;
- border: 1px solid $ui-primary-color;
-
- &:active,
- &:focus,
- &:hover {
- border-color: lighten($ui-primary-color, 4%);
- color: lighten($darker-text-color, 4%);
- text-decoration: none;
- }
-
- &:disabled {
- opacity: 0.5;
- }
- }
-
- &.button-tertiary {
- background: transparent;
- padding: 6px 17px;
- color: $highlight-text-color;
- border: 1px solid $highlight-text-color;
-
- &:active,
- &:focus,
- &:hover {
- background: $ui-highlight-color;
- color: $primary-text-color;
- border: 0;
- padding: 7px 18px;
- }
-
- &:disabled {
- opacity: 0.5;
- }
- }
-
- &.button--block {
- display: block;
- width: 100%;
- }
-
- .layout-multiple-columns &.button--with-bell {
- font-size: 12px;
- padding: 0 8px;
- }
-}
-
-.icon-button {
- display: inline-block;
- padding: 0;
- color: $action-button-color;
- border: 0;
- border-radius: 4px;
- background: transparent;
- cursor: pointer;
- transition: all 100ms ease-in;
- transition-property: background-color, color;
- text-decoration: none;
-
- a {
- color: inherit;
- text-decoration: none;
- }
-
- &:hover,
- &:active,
- &:focus {
- color: lighten($action-button-color, 7%);
- background-color: rgba($action-button-color, 0.15);
- transition: all 200ms ease-out;
- transition-property: background-color, color;
- }
-
- &:focus {
- background-color: rgba($action-button-color, 0.3);
- }
-
- &.disabled {
- color: darken($action-button-color, 13%);
- background-color: transparent;
- cursor: default;
- }
-
- &.active {
- color: $highlight-text-color;
- }
-
- &.copyable {
- transition: background 300ms linear;
- }
-
- &.copied {
- background: $valid-value-color;
- transition: none;
- }
-
- &::-moz-focus-inner {
- border: 0;
- }
-
- &::-moz-focus-inner,
- &:focus,
- &:active {
- outline: 0 !important;
- }
-
- &.inverted {
- color: $lighter-text-color;
-
- &:hover,
- &:active,
- &:focus {
- color: darken($lighter-text-color, 7%);
- background-color: rgba($lighter-text-color, 0.15);
- }
-
- &:focus {
- background-color: rgba($lighter-text-color, 0.3);
- }
-
- &.disabled {
- color: lighten($lighter-text-color, 7%);
- background-color: transparent;
- }
-
- &.active {
- color: $highlight-text-color;
-
- &.disabled {
- color: lighten($highlight-text-color, 13%);
- }
- }
- }
-
- &.overlayed {
- box-sizing: content-box;
- background: rgba($base-overlay-background, 0.6);
- color: rgba($primary-text-color, 0.7);
- border-radius: 4px;
- padding: 2px;
-
- &:hover {
- background: rgba($base-overlay-background, 0.9);
- }
- }
-
- &--with-counter {
- display: inline-flex;
- align-items: center;
- width: auto !important;
- padding: 0 4px 0 2px;
- }
-
- &__counter {
- display: inline-block;
- width: auto;
- margin-left: 4px;
- font-size: 12px;
- font-weight: 500;
- }
-}
-
-.text-icon,
-.text-icon-button {
- font-weight: 600;
- font-size: 11px;
- line-height: 27px;
- cursor: default;
-}
-
-.text-icon-button {
- color: $lighter-text-color;
- border: 0;
- border-radius: 4px;
- background: transparent;
- cursor: pointer;
- padding: 0 3px;
- outline: 0;
- transition: all 100ms ease-in;
- transition-property: background-color, color;
-
- &:hover,
- &:active,
- &:focus {
- color: darken($lighter-text-color, 7%);
- background-color: rgba($lighter-text-color, 0.15);
- transition: all 200ms ease-out;
- transition-property: background-color, color;
- }
-
- &:focus {
- background-color: rgba($lighter-text-color, 0.3);
- }
-
- &.disabled {
- color: lighten($lighter-text-color, 20%);
- background-color: transparent;
- cursor: default;
- }
-
- &.active {
- color: $highlight-text-color;
- }
-
- &::-moz-focus-inner {
- border: 0;
- }
-
- &::-moz-focus-inner,
- &:focus,
- &:active {
- outline: 0 !important;
- }
-}
-
-.dropdown-menu {
- position: absolute;
- transform-origin: 50% 0;
-}
-
-.invisible {
- font-size: 0;
- line-height: 0;
- display: inline-block;
- width: 0;
- height: 0;
- position: absolute;
-
- img,
- svg {
- margin: 0 !important;
- border: 0 !important;
- padding: 0 !important;
- width: 0 !important;
- height: 0 !important;
- }
-}
-
-.ellipsis {
- &::after {
- content: "âĻ";
- }
-}
-
-.notification__favourite-icon-wrapper {
- left: 0;
- position: absolute;
-
- .fa.star-icon {
- color: $gold-star;
- }
-}
-
-.icon-button.star-icon.active {
- color: $gold-star;
-}
-
-.icon-button.bookmark-icon.active {
- color: $red-bookmark;
-}
-
-.no-reduce-motion .icon-button.star-icon {
- &.activate {
- & > .fa-star {
- animation: spring-rotate-in 1s linear;
- }
- }
-
- &.deactivate {
- & > .fa-star {
- animation: spring-rotate-out 1s linear;
- }
- }
-}
-
-.notification__display-name {
- color: inherit;
- font-weight: 500;
- text-decoration: none;
-
- &:hover {
- color: $primary-text-color;
- text-decoration: underline;
- }
-}
-
-.display-name {
- display: block;
- max-width: 100%;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
-
- a {
- color: inherit;
- text-decoration: inherit;
- }
-
- strong {
- display: block;
- }
-
- > a:hover {
- strong {
- text-decoration: underline;
- }
- }
-
- &.inline {
- padding: 0;
- height: 18px;
- font-size: 15px;
- line-height: 18px;
- text-overflow: ellipsis;
- white-space: nowrap;
- overflow: hidden;
-
- strong {
- display: inline;
- height: auto;
- font-size: inherit;
- line-height: inherit;
- }
-
- span {
- display: inline;
- height: auto;
- font-size: inherit;
- line-height: inherit;
- }
- }
-}
-
-.display-name__html {
- font-weight: 500;
-}
-
-.display-name__account {
- font-size: 14px;
-}
-
-.image-loader {
- position: relative;
- width: 100%;
- height: 100%;
- display: flex;
- align-items: center;
- justify-content: center;
- flex-direction: column;
- scrollbar-width: none; /* Firefox */
- -ms-overflow-style: none; /* IE 10+ */
-
- * {
- scrollbar-width: none; /* Firefox */
- -ms-overflow-style: none; /* IE 10+ */
- }
-
- &::-webkit-scrollbar,
- *::-webkit-scrollbar {
- width: 0;
- height: 0;
- background: transparent; /* Chrome/Safari/Webkit */
- }
-
- .image-loader__preview-canvas {
- max-width: $media-modal-media-max-width;
- max-height: $media-modal-media-max-height;
- background: url('~images/void.png') repeat;
- object-fit: contain;
- }
-
- .loading-bar__container {
- position: relative;
- }
-
- .loading-bar {
- position: absolute;
- }
-
- &.image-loader--amorphous .image-loader__preview-canvas {
- display: none;
- }
-}
-
-.zoomable-image {
- position: relative;
- width: 100%;
- height: 100%;
- display: flex;
- align-items: center;
- justify-content: center;
-
- img {
- max-width: $media-modal-media-max-width;
- max-height: $media-modal-media-max-height;
- width: auto;
- height: auto;
- object-fit: contain;
- }
-}
-
-.dropdown {
- display: inline-block;
-}
-
-.dropdown__content {
- display: none;
- position: absolute;
-}
-
-.dropdown-menu__separator {
- border-bottom: 1px solid darken($ui-secondary-color, 8%);
- margin: 5px 7px 6px;
- height: 0;
-}
-
-.dropdown-menu {
- background: $ui-secondary-color;
- padding: 4px 0;
- border-radius: 4px;
- box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);
- z-index: 9999;
-
- &__text-button {
- display: inline;
- color: inherit;
- background: transparent;
- border: 0;
- margin: 0;
- padding: 0;
- font-family: inherit;
- font-size: inherit;
- line-height: inherit;
-
- &:focus {
- outline: 1px dotted;
- }
- }
-
- &__container {
- &__header {
- border-bottom: 1px solid darken($ui-secondary-color, 8%);
- padding: 4px 14px;
- padding-bottom: 8px;
- font-size: 13px;
- line-height: 18px;
- color: $inverted-text-color;
- }
-
- &__list {
- list-style: none;
-
- &--scrollable {
- max-height: 300px;
- overflow-y: scroll;
- }
- }
-
- &--loading {
- display: flex;
- align-items: center;
- justify-content: center;
- padding: 30px 45px;
- }
- }
-}
-
-.dropdown-menu__arrow {
- position: absolute;
- width: 0;
- height: 0;
- border: 0 solid transparent;
-
- &.left {
- right: -5px;
- margin-top: -5px;
- border-width: 5px 0 5px 5px;
- border-left-color: $ui-secondary-color;
- }
-
- &.top {
- bottom: -5px;
- margin-left: -7px;
- border-width: 5px 7px 0;
- border-top-color: $ui-secondary-color;
- }
-
- &.bottom {
- top: -5px;
- margin-left: -7px;
- border-width: 0 7px 5px;
- border-bottom-color: $ui-secondary-color;
- }
-
- &.right {
- left: -5px;
- margin-top: -5px;
- border-width: 5px 5px 5px 0;
- border-right-color: $ui-secondary-color;
- }
-}
-
-.dropdown-menu__item {
- font-size: 13px;
- line-height: 18px;
- display: block;
- color: $inverted-text-color;
-
- a,
- button {
- font-family: inherit;
- font-size: inherit;
- line-height: inherit;
- display: block;
- width: 100%;
- padding: 4px 14px;
- border: 0;
- margin: 0;
- box-sizing: border-box;
- text-decoration: none;
- background: $ui-secondary-color;
- color: inherit;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- text-align: inherit;
-
- &:focus,
- &:hover,
- &:active {
- background: $ui-highlight-color;
- color: $secondary-text-color;
- outline: 0;
- }
- }
-}
-
-.dropdown-menu__item--text {
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
- padding: 4px 14px;
-}
-
-.dropdown-menu__item.edited-timestamp__history__item {
- border-bottom: 1px solid darken($ui-secondary-color, 8%);
-
- &:last-child {
- border-bottom: 0;
- }
-
- &.dropdown-menu__item--text,
- a,
- button {
- padding: 8px 14px;
- }
-}
-
-.inline-account {
- display: inline-flex;
- align-items: center;
- vertical-align: top;
-
- .account__avatar {
- margin-right: 5px;
- border-radius: 50%;
- }
-
- strong {
- font-weight: 600;
- }
-}
-
-.dropdown--active .dropdown__content {
- display: block;
- line-height: 18px;
- max-width: 311px;
- right: 0;
- text-align: left;
- z-index: 9999;
-
- & > ul {
- list-style: none;
- background: $ui-secondary-color;
- padding: 4px 0;
- border-radius: 4px;
- box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);
- min-width: 140px;
- position: relative;
- }
-
- &.dropdown__right {
- right: 0;
- }
-
- &.dropdown__left {
- & > ul {
- left: -98px;
- }
- }
-
- & > ul > li > a {
- font-size: 13px;
- line-height: 18px;
- display: block;
- padding: 4px 14px;
- box-sizing: border-box;
- text-decoration: none;
- background: $ui-secondary-color;
- color: $inverted-text-color;
- overflow: hidden;
- text-overflow: ellipsis;
- white-space: nowrap;
-
- &:focus {
- outline: 0;
- }
-
- &:hover {
- background: $ui-highlight-color;
- color: $secondary-text-color;
- }
- }
-}
-
-.dropdown__icon {
- vertical-align: middle;
-}
-
-.static-content {
- padding: 10px;
- padding-top: 20px;
- color: $dark-text-color;
-
- h1 {
- font-size: 16px;
- font-weight: 500;
- margin-bottom: 40px;
- text-align: center;
- }
-
- p {
- font-size: 13px;
- margin-bottom: 20px;
- }
-}
-
-.column,
-.drawer {
- flex: 1 1 100%;
- overflow: hidden;
-}
-
-@media screen and (min-width: 631px) {
- .columns-area {
- padding: 0;
- }
-
- .column,
- .drawer {
- flex: 0 0 auto;
- padding: 10px;
- padding-left: 5px;
- padding-right: 5px;
-
- &:first-child {
- padding-left: 10px;
- }
-
- &:last-child {
- padding-right: 10px;
- }
- }
-
- .columns-area > div {
- .column,
- .drawer {
- padding-left: 5px;
- padding-right: 5px;
- }
- }
-}
-
-.tabs-bar {
- box-sizing: border-box;
- display: flex;
- background: lighten($ui-base-color, 8%);
- flex: 0 0 auto;
- overflow-y: auto;
-}
-
-.tabs-bar__link {
- display: block;
- flex: 1 1 auto;
- padding: 15px 10px;
- padding-bottom: 13px;
- color: $primary-text-color;
- text-decoration: none;
- text-align: center;
- font-size: 14px;
- font-weight: 500;
- border-bottom: 2px solid lighten($ui-base-color, 8%);
- transition: all 50ms linear;
- transition-property: border-bottom, background, color;
-
- .fa {
- font-weight: 400;
- font-size: 16px;
- }
-
- &:hover,
- &:focus,
- &:active {
- @include multi-columns('screen and (min-width: 631px)') {
- background: lighten($ui-base-color, 14%);
- border-bottom-color: lighten($ui-base-color, 14%);
- }
- }
-
- &.active {
- border-bottom: 2px solid $ui-highlight-color;
- color: $highlight-text-color;
- }
-
- span {
- margin-left: 5px;
- display: none;
- }
-
- span.icon {
- margin-left: 0;
- display: inline;
- }
-}
-
-.icon-with-badge {
- position: relative;
-
- &__badge {
- position: absolute;
- left: 9px;
- top: -13px;
- background: $ui-highlight-color;
- border: 2px solid lighten($ui-base-color, 8%);
- padding: 1px 6px;
- border-radius: 6px;
- font-size: 10px;
- font-weight: 500;
- line-height: 14px;
- color: $primary-text-color;
- }
-
- &__issue-badge {
- position: absolute;
- left: 11px;
- bottom: 1px;
- display: block;
- background: $error-red;
- border-radius: 50%;
- width: 0.625rem;
- height: 0.625rem;
- }
-}
-
-.column-link--transparent .icon-with-badge__badge {
- border-color: darken($ui-base-color, 8%);
-}
-
-.scrollable {
- overflow-y: scroll;
- overflow-x: hidden;
- flex: 1 1 auto;
- -webkit-overflow-scrolling: touch;
-
- &.optionally-scrollable {
- overflow-y: auto;
- }
-
- @supports(display: grid) { // hack to fix Chrome <57
- contain: strict;
- }
-
- &--flex {
- display: flex;
- flex-direction: column;
- }
-
- &__append {
- flex: 1 1 auto;
- position: relative;
- min-height: 120px;
- }
-
- .scrollable {
- flex: 1 1 auto;
- }
-}
-
-.scrollable.fullscreen {
- @supports(display: grid) { // hack to fix Chrome <57
- contain: none;
- }
-}
-
-.react-toggle {
- display: inline-block;
- position: relative;
- cursor: pointer;
- background-color: transparent;
- border: 0;
- padding: 0;
- user-select: none;
- -webkit-tap-highlight-color: rgba($base-overlay-background, 0);
- -webkit-tap-highlight-color: transparent;
-}
-
-.react-toggle-screenreader-only {
- border: 0;
- clip: rect(0 0 0 0);
- height: 1px;
- margin: -1px;
- overflow: hidden;
- padding: 0;
- position: absolute;
- width: 1px;
-}
-
-.react-toggle--disabled {
- cursor: not-allowed;
- opacity: 0.5;
- transition: opacity 0.25s;
-}
-
-.react-toggle-track {
- width: 50px;
- height: 24px;
- padding: 0;
- border-radius: 30px;
- background-color: $ui-base-color;
- transition: background-color 0.2s ease;
-}
-
-.react-toggle:is(:hover, :focus-within):not(.react-toggle--disabled) .react-toggle-track {
- background-color: darken($ui-base-color, 10%);
-}
-
-.react-toggle--checked .react-toggle-track {
- background-color: darken($ui-highlight-color, 2%);
-}
-
-.react-toggle--checked:is(:hover, :focus-within):not(.react-toggle--disabled) .react-toggle-track {
- background-color: $ui-highlight-color;
-}
-
-.react-toggle-track-check {
- position: absolute;
- width: 14px;
- height: 10px;
- top: 0;
- bottom: 0;
- margin-top: auto;
- margin-bottom: auto;
- line-height: 0;
- left: 8px;
- opacity: 0;
- transition: opacity 0.25s ease;
-}
-
-.react-toggle--checked .react-toggle-track-check {
- opacity: 1;
- transition: opacity 0.25s ease;
-}
-
-.react-toggle-track-x {
- position: absolute;
- width: 10px;
- height: 10px;
- top: 0;
- bottom: 0;
- margin-top: auto;
- margin-bottom: auto;
- line-height: 0;
- right: 10px;
- opacity: 1;
- transition: opacity 0.25s ease;
-}
-
-.react-toggle--checked .react-toggle-track-x {
- opacity: 0;
-}
-
-.react-toggle-thumb {
- position: absolute;
- top: 1px;
- left: 1px;
- width: 22px;
- height: 22px;
- border: 1px solid $ui-base-color;
- border-radius: 50%;
- background-color: darken($simple-background-color, 2%);
- box-sizing: border-box;
- transition: all 0.25s ease;
- transition-property: border-color, left;
-}
-
-.react-toggle--checked .react-toggle-thumb {
- left: 27px;
- border-color: $ui-highlight-color;
-}
-
-.getting-started__wrapper,
-.getting_started,
-.flex-spacer {
- background: $ui-base-color;
-}
-
-.getting-started__wrapper {
- position: relative;
- overflow-y: auto;
-}
-
-.flex-spacer {
- flex: 1 1 auto;
-}
-
-.getting-started {
- background: $ui-base-color;
- flex: 1 0 auto;
-
- p {
- color: $secondary-text-color;
- }
-
- a {
- color: $dark-text-color;
- }
-
- &__trends {
- flex: 0 1 auto;
- opacity: 1;
- animation: fade 150ms linear;
- margin-top: 10px;
-
- h4 {
- border-bottom: 1px solid lighten($ui-base-color, 8%);
- padding: 10px;
- font-size: 12px;
- text-transform: uppercase;
- font-weight: 500;
-
- a {
- color: $darker-text-color;
- text-decoration: none;
- }
- }
-
- @media screen and (max-height: 810px) {
- .trends__item:nth-of-type(3) {
- display: none;
- }
- }
-
- @media screen and (max-height: 720px) {
- .trends__item:nth-of-type(2) {
- display: none;
- }
- }
-
- @media screen and (max-height: 670px) {
- display: none;
- }
-
- .trends__item {
- border-bottom: 0;
- padding: 10px;
-
- &__current {
- color: $darker-text-color;
- }
- }
- }
-}
-
-.column-link__badge {
- display: inline-block;
- border-radius: 4px;
- font-size: 12px;
- line-height: 19px;
- font-weight: 500;
- background: $ui-base-color;
- padding: 4px 8px;
- margin: -6px 10px;
-}
-
-.keyboard-shortcuts {
- padding: 8px 0 0;
- overflow: hidden;
-
- thead {
- position: absolute;
- left: -9999px;
- }
-
- td {
- padding: 0 10px 8px;
- }
-
- kbd {
- display: inline-block;
- padding: 3px 5px;
- background-color: lighten($ui-base-color, 8%);
- border: 1px solid darken($ui-base-color, 4%);
- }
-}
-
-.setting-text {
- color: $darker-text-color;
- background: transparent;
- border: 0;
- border-bottom: 2px solid $ui-primary-color;
- outline: 0;
- box-sizing: border-box;
- display: block;
- font-family: inherit;
- margin-bottom: 10px;
- padding: 7px 0;
- width: 100%;
-
- &:focus,
- &:active {
- color: $primary-text-color;
- border-bottom-color: $ui-highlight-color;
- }
-
- @include limited-single-column('screen and (max-width: 600px)') {
- font-size: 16px;
- }
-
- &.light {
- color: $inverted-text-color;
- border-bottom: 2px solid lighten($ui-base-color, 27%);
-
- &:focus,
- &:active {
- color: $inverted-text-color;
- border-bottom-color: $ui-highlight-color;
- }
- }
-}
-
-button.icon-button i.fa-retweet {
- background-position: 0 0;
- height: 19px;
- transition: background-position 0.9s steps(10);
- transition-duration: 0s;
- vertical-align: middle;
- width: 22px;
-
- &::before {
- display: none !important;
- }
-}
-
-button.icon-button.active i.fa-retweet {
- transition-duration: 0.9s;
- background-position: 0 100%;
-}
-
-.reduce-motion button.icon-button i.fa-retweet,
-.reduce-motion button.icon-button.active i.fa-retweet {
- transition: none;
-}
-
-.reduce-motion button.icon-button.disabled i.fa-retweet {
- color: darken($action-button-color, 13%);
-}
-
-.load-more {
- display: block;
- color: $dark-text-color;
- background-color: transparent;
- border: 0;
- font-size: inherit;
- text-align: center;
- line-height: inherit;
- margin: 0;
- padding: 15px;
- box-sizing: border-box;
- width: 100%;
- clear: both;
- text-decoration: none;
-
- &:hover {
- background: lighten($ui-base-color, 2%);
- }
-}
-
-.load-gap {
- border-bottom: 1px solid lighten($ui-base-color, 8%);
-}
-
-.timeline-hint {
- text-align: center;
- color: $darker-text-color;
- padding: 15px;
- box-sizing: border-box;
- width: 100%;
- cursor: default;
-
- strong {
- font-weight: 500;
- }
-
- a {
- color: $highlight-text-color;
- text-decoration: none;
-
- &:hover,
- &:focus,
- &:active {
- text-decoration: underline;
- color: lighten($highlight-text-color, 4%);
- }
- }
-}
-
-.missing-indicator {
- padding-top: 20px + 48px;
-
- .regeneration-indicator__figure {
- background-image: url('~flavours/glitch/images/elephant_ui_disappointed.svg');
- }
-}
-
-.scrollable > div > :first-child .notification__dismiss-overlay > .wrappy {
- border-top: 1px solid $ui-base-color;
-}
-
-.notification__dismiss-overlay {
- overflow: hidden;
- position: absolute;
- top: 0;
- right: 0;
- bottom: -1px;
- padding-left: 15px; // space for the box shadow to be visible
-
- z-index: 999;
- align-items: center;
- justify-content: flex-end;
- cursor: pointer;
-
- display: flex;
-
- .wrappy {
- width: $dismiss-overlay-width;
- align-self: stretch;
- display: flex;
- flex-direction: column;
- align-items: center;
- justify-content: center;
- background: lighten($ui-base-color, 8%);
- border-left: 1px solid lighten($ui-base-color, 20%);
- box-shadow: 0 0 5px black;
- border-bottom: 1px solid $ui-base-color;
- }
-
- .ckbox {
- border: 2px solid $ui-primary-color;
- border-radius: 2px;
- width: 30px;
- height: 30px;
- font-size: 20px;
- color: $darker-text-color;
- text-shadow: 0 0 5px black;
- display: flex;
- justify-content: center;
- align-items: center;
- }
-
- &:focus {
- outline: 0 !important;
-
- .ckbox {
- box-shadow: 0 0 1px 1px $ui-highlight-color;
- }
- }
-}
-
-.text-btn {
- display: inline-block;
- padding: 0;
- font-family: inherit;
- font-size: inherit;
- color: inherit;
- border: 0;
- background: transparent;
- cursor: pointer;
-}
-
-.loading-indicator {
- color: $dark-text-color;
- font-size: 12px;
- font-weight: 400;
- text-transform: uppercase;
- overflow: visible;
- position: absolute;
- top: 50%;
- left: 50%;
- transform: translate(-50%, -50%);
- display: flex;
- align-items: center;
- justify-content: center;
-}
-
-.circular-progress {
- color: lighten($ui-base-color, 26%);
- animation: 1.4s linear 0s infinite normal none running simple-rotate;
-
- circle {
- stroke: currentColor;
- stroke-dasharray: 80px, 200px;
- stroke-dashoffset: 0;
- animation: circular-progress 1.4s ease-in-out infinite;
- }
-}
-
-@keyframes circular-progress {
- 0% {
- stroke-dasharray: 1px, 200px;
- stroke-dashoffset: 0;
- }
-
- 50% {
- stroke-dasharray: 100px, 200px;
- stroke-dashoffset: -15px;
- }
-
- 100% {
- stroke-dasharray: 100px, 200px;
- stroke-dashoffset: -125px;
- }
-}
-
-@keyframes simple-rotate {
- 0% {
- transform: rotate(0deg);
- }
-
- 100% {
- transform: rotate(360deg);
- }
-}
-
-@keyframes spring-rotate-in {
- 0% {
- transform: rotate(0deg);
- }
-
- 30% {
- transform: rotate(-484.8deg);
- }
-
- 60% {
- transform: rotate(-316.7deg);
- }
-
- 90% {
- transform: rotate(-375deg);
- }
-
- 100% {
- transform: rotate(-360deg);
- }
-}
-
-@keyframes spring-rotate-out {
- 0% {
- transform: rotate(-360deg);
- }
-
- 30% {
- transform: rotate(124.8deg);
- }
-
- 60% {
- transform: rotate(-43.27deg);
- }
-
- 90% {
- transform: rotate(15deg);
- }
-
- 100% {
- transform: rotate(0deg);
- }
-}
-
-.spoiler-button {
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- position: absolute;
- z-index: 100;
-
- &--minified {
- display: flex;
- left: 4px;
- top: 4px;
- width: auto;
- height: auto;
- align-items: center;
- }
-
- &--click-thru {
- pointer-events: none;
- }
-
- &--hidden {
- display: none;
- }
-
- &__overlay {
- display: block;
- background: transparent;
- width: 100%;
- height: 100%;
- border: 0;
-
- &__label {
- display: inline-block;
- background: rgba($base-overlay-background, 0.5);
- border-radius: 8px;
- padding: 8px 12px;
- color: $primary-text-color;
- font-weight: 500;
- font-size: 14px;
- }
-
- &:hover,
- &:focus,
- &:active {
- .spoiler-button__overlay__label {
- background: rgba($base-overlay-background, 0.8);
- }
- }
-
- &:disabled {
- .spoiler-button__overlay__label {
- background: rgba($base-overlay-background, 0.5);
- }
- }
- }
-}
-
-.setting-toggle {
- display: block;
- line-height: 24px;
-}
-
-.setting-toggle__label,
-.setting-meta__label {
- color: $darker-text-color;
- display: inline-block;
- margin-bottom: 14px;
- margin-left: 8px;
- vertical-align: middle;
-}
-
-.column-settings__row .radio-button {
- display: block;
-}
-
-.setting-meta__label {
- float: right;
-}
-
-@keyframes heartbeat {
- from {
- transform: scale(1);
- transform-origin: center center;
- animation-timing-function: ease-out;
- }
-
- 10% {
- transform: scale(0.91);
- animation-timing-function: ease-in;
- }
-
- 17% {
- transform: scale(0.98);
- animation-timing-function: ease-out;
- }
-
- 33% {
- transform: scale(0.87);
- animation-timing-function: ease-in;
- }
-
- 45% {
- transform: scale(1);
- animation-timing-function: ease-out;
- }
-}
-
-.pulse-loading {
- animation: heartbeat 1.5s ease-in-out infinite both;
-}
-
-.upload-area {
- align-items: center;
- background: rgba($base-overlay-background, 0.8);
- display: flex;
- height: 100%;
- justify-content: center;
- left: 0;
- opacity: 0;
- position: absolute;
- top: 0;
- visibility: hidden;
- width: 100%;
- z-index: 2000;
-
- * {
- pointer-events: none;
- }
-}
-
-.upload-area__drop {
- width: 320px;
- height: 160px;
- display: flex;
- box-sizing: border-box;
- position: relative;
- padding: 8px;
-}
-
-.upload-area__background {
- position: absolute;
- top: 0;
- right: 0;
- bottom: 0;
- left: 0;
- z-index: -1;
- border-radius: 4px;
- background: $ui-base-color;
- box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);
-}
-
-.upload-area__content {
- flex: 1;
- display: flex;
- align-items: center;
- justify-content: center;
- color: $secondary-text-color;
- font-size: 18px;
- font-weight: 500;
- border: 2px dashed $ui-base-lighter-color;
- border-radius: 4px;
-}
-
-.dropdown--active .emoji-button img {
- opacity: 1;
- filter: none;
-}
-
-.loading-bar {
- background-color: $ui-highlight-color;
- height: 3px;
- position: fixed;
- top: 0;
- left: 0;
- z-index: 9999;
-}
-
-.icon-badge-wrapper {
- position: relative;
-}
-
-.icon-badge {
- position: absolute;
- display: block;
- right: -.25em;
- top: -.25em;
- background-color: $ui-highlight-color;
- border-radius: 50%;
- font-size: 75%;
- width: 1em;
- height: 1em;
-}
-
-.conversation {
- display: flex;
- border-bottom: 1px solid lighten($ui-base-color, 8%);
- padding: 5px;
- padding-bottom: 0;
-
- &:focus {
- background: lighten($ui-base-color, 2%);
- outline: 0;
- }
-
- &__avatar {
- flex: 0 0 auto;
- padding: 10px;
- padding-top: 12px;
- position: relative;
- cursor: pointer;
- }
-
- &__unread {
- display: inline-block;
- background: $highlight-text-color;
- border-radius: 50%;
- width: 0.625rem;
- height: 0.625rem;
- margin: -.1ex .15em .1ex;
- }
-
- &__content {
- flex: 1 1 auto;
- padding: 10px 5px;
- padding-right: 15px;
- overflow: hidden;
-
- &__info {
- overflow: hidden;
- display: flex;
- flex-direction: row-reverse;
- justify-content: space-between;
- }
-
- &__relative-time {
- font-size: 15px;
- color: $darker-text-color;
- padding-left: 15px;
- }
-
- &__names {
- color: $darker-text-color;
- font-size: 15px;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- margin-bottom: 4px;
- flex-basis: 90px;
- flex-grow: 1;
-
- a {
- color: $primary-text-color;
- text-decoration: none;
-
- &:hover,
- &:focus,
- &:active {
- text-decoration: underline;
- }
- }
- }
-
- .status__content {
- margin: 0;
- }
- }
-
- &--unread {
- background: lighten($ui-base-color, 2%);
-
- &:focus {
- background: lighten($ui-base-color, 4%);
- }
-
- .conversation__content__info {
- font-weight: 700;
- }
-
- .conversation__content__relative-time {
- color: $primary-text-color;
- }
- }
-}
-
-.ui .flash-message {
- margin-top: 10px;
- margin-left: auto;
- margin-right: auto;
- margin-bottom: 0;
- min-width: 75%;
-}
-
-::-webkit-scrollbar-thumb {
- border-radius: 0;
-}
-
-noscript {
- text-align: center;
-
- img {
- width: 200px;
- opacity: 0.5;
- animation: flicker 4s infinite;
- }
-
- div {
- font-size: 14px;
- margin: 30px auto;
- color: $secondary-text-color;
- max-width: 400px;
-
- a {
- color: $highlight-text-color;
- text-decoration: underline;
-
- &:hover {
- text-decoration: none;
- }
- }
-
- a {
- word-break: break-word;
- }
- }
-}
-
-@keyframes flicker {
- 0% { opacity: 1; }
- 30% { opacity: 0.75; }
- 100% { opacity: 1; }
-}
-
+@import 'misc';
@import 'boost';
@import 'accounts';
@import 'domains';
diff --git a/app/javascript/flavours/glitch/styles/components/local_settings.scss b/app/javascript/flavours/glitch/styles/components/local_settings.scss
index db2b9f154..52516cfb5 100644
--- a/app/javascript/flavours/glitch/styles/components/local_settings.scss
+++ b/app/javascript/flavours/glitch/styles/components/local_settings.scss
@@ -11,12 +11,14 @@
max-height: 450px;
overflow: hidden;
- label, legend {
+ label,
+ legend {
display: block;
font-size: 14px;
}
- .boolean label, .radio_buttons label {
+ .boolean label,
+ .radio_buttons label {
position: relative;
padding-left: 28px;
padding-top: 3px;
@@ -58,7 +60,7 @@
cursor: pointer;
text-decoration: none;
outline: none;
- transition: background .3s;
+ transition: background 0.3s;
.text-icon-button {
color: inherit;
@@ -74,7 +76,8 @@
color: $primary-text-color;
}
- &.close, &.close:hover {
+ &.close,
+ &.close:hover {
background: $error-value-color;
color: $primary-text-color;
}
@@ -91,7 +94,7 @@
.glitch.local-settings__page {
display: block;
flex: auto;
- padding: 15px 20px 15px 20px;
+ padding: 15px 20px;
width: 360px;
overflow-y: auto;
}
@@ -110,6 +113,10 @@
text-decoration: none;
}
}
+
+ #mastodon-settings--collapsed-auto-height {
+ width: calc(4ch + 20px);
+ }
}
.glitch.local-settings__page__item.string,
diff --git a/app/javascript/flavours/glitch/styles/components/media.scss b/app/javascript/flavours/glitch/styles/components/media.scss
index 9776e2265..6d6b8bc0e 100644
--- a/app/javascript/flavours/glitch/styles/components/media.scss
+++ b/app/javascript/flavours/glitch/styles/components/media.scss
@@ -348,7 +348,7 @@
padding: 0;
border: 0;
font-size: 0;
- transition: opacity .2s ease-in-out;
+ transition: opacity 0.2s ease-in-out;
&.active {
opacity: 1;
@@ -372,7 +372,6 @@
.video-player__volume__handle {
bottom: 23px;
}
-
}
.audio-player {
@@ -506,10 +505,15 @@
left: 0;
right: 0;
box-sizing: border-box;
- background: linear-gradient(0deg, rgba($base-shadow-color, 0.85) 0, rgba($base-shadow-color, 0.45) 60%, transparent);
+ background: linear-gradient(
+ 0deg,
+ rgba($base-shadow-color, 0.85) 0,
+ rgba($base-shadow-color, 0.45) 60%,
+ transparent
+ );
padding: 0 15px;
opacity: 0;
- transition: opacity .1s ease;
+ transition: opacity 0.1s ease;
&.active {
opacity: 1;
@@ -591,7 +595,6 @@
.player-button {
display: inline-block;
outline: 0;
-
flex: 0 0 auto;
background: transparent;
padding: 5px;
@@ -655,7 +658,7 @@
}
&::before {
- content: "";
+ content: '';
width: 50px;
background: rgba($white, 0.35);
border-radius: 4px;
@@ -725,7 +728,7 @@
position: relative;
&::before {
- content: "";
+ content: '';
width: 100%;
background: rgba($white, 0.35);
border-radius: 4px;
@@ -762,7 +765,7 @@
box-shadow: 1px 2px 6px rgba($base-shadow-color, 0.2);
.no-reduce-motion & {
- transition: opacity .1s ease;
+ transition: opacity 0.1s ease;
}
&.active {
diff --git a/app/javascript/flavours/glitch/styles/components/metadata.scss b/app/javascript/flavours/glitch/styles/components/metadata.scss
deleted file mode 100644
index e69de29bb..000000000
diff --git a/app/javascript/flavours/glitch/styles/components/misc.scss b/app/javascript/flavours/glitch/styles/components/misc.scss
new file mode 100644
index 000000000..86b8b99c1
--- /dev/null
+++ b/app/javascript/flavours/glitch/styles/components/misc.scss
@@ -0,0 +1,1814 @@
+.app-body {
+ -webkit-overflow-scrolling: touch;
+ -ms-overflow-style: -ms-autohiding-scrollbar;
+}
+
+.animated-number {
+ display: inline-flex;
+ flex-direction: column;
+ align-items: stretch;
+ overflow: hidden;
+ position: relative;
+}
+
+.link-button {
+ display: block;
+ font-size: 15px;
+ line-height: 20px;
+ color: $highlight-text-color;
+ border: 0;
+ background: transparent;
+ padding: 0;
+ cursor: pointer;
+ text-decoration: none;
+
+ &--destructive {
+ color: $error-value-color;
+ }
+
+ &:hover,
+ &:active {
+ text-decoration: underline;
+ }
+
+ &:disabled {
+ color: $ui-primary-color;
+ cursor: default;
+ }
+}
+
+.button {
+ background-color: darken($ui-highlight-color, 3%);
+ border: 10px none;
+ border-radius: 4px;
+ box-sizing: border-box;
+ color: $primary-text-color;
+ cursor: pointer;
+ display: inline-block;
+ font-family: inherit;
+ font-size: 15px;
+ font-weight: 500;
+ letter-spacing: 0;
+ line-height: 22px;
+ overflow: hidden;
+ padding: 7px 18px;
+ position: relative;
+ text-align: center;
+ text-decoration: none;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ width: auto;
+
+ &:active,
+ &:focus,
+ &:hover {
+ background-color: $ui-highlight-color;
+ }
+
+ &--destructive {
+ &:active,
+ &:focus,
+ &:hover {
+ background-color: $error-red;
+ transition: none;
+ }
+ }
+
+ &:disabled {
+ background-color: $ui-primary-color;
+ cursor: default;
+ }
+
+ &.button-alternative {
+ color: $inverted-text-color;
+ background: $ui-primary-color;
+
+ &:active,
+ &:focus,
+ &:hover {
+ background-color: lighten($ui-primary-color, 4%);
+ }
+ }
+
+ &.button-alternative-2 {
+ background: $ui-base-lighter-color;
+
+ &:active,
+ &:focus,
+ &:hover {
+ background-color: lighten($ui-base-lighter-color, 4%);
+ }
+ }
+
+ &.button-secondary {
+ font-size: 16px;
+ line-height: 36px;
+ height: auto;
+ color: $darker-text-color;
+ text-transform: none;
+ background: transparent;
+ padding: 6px 17px;
+ border: 1px solid $ui-primary-color;
+
+ &:active,
+ &:focus,
+ &:hover {
+ border-color: lighten($ui-primary-color, 4%);
+ color: lighten($darker-text-color, 4%);
+ text-decoration: none;
+ }
+
+ &:disabled {
+ opacity: 0.5;
+ }
+ }
+
+ &.button-tertiary {
+ background: transparent;
+ padding: 6px 17px;
+ color: $highlight-text-color;
+ border: 1px solid $highlight-text-color;
+
+ &:active,
+ &:focus,
+ &:hover {
+ background: $ui-highlight-color;
+ color: $primary-text-color;
+ border: 0;
+ padding: 7px 18px;
+ }
+
+ &:disabled {
+ opacity: 0.5;
+ }
+
+ &.button--confirmation {
+ color: $valid-value-color;
+ border-color: $valid-value-color;
+
+ &:active,
+ &:focus,
+ &:hover {
+ background: $valid-value-color;
+ color: $primary-text-color;
+ }
+ }
+
+ &.button--destructive {
+ color: $error-value-color;
+ border-color: $error-value-color;
+
+ &:active,
+ &:focus,
+ &:hover {
+ background: $error-value-color;
+ color: $primary-text-color;
+ }
+ }
+ }
+
+ &.button--block {
+ display: block;
+ width: 100%;
+ }
+
+ .layout-multiple-columns &.button--with-bell {
+ font-size: 12px;
+ padding: 0 8px;
+ }
+}
+
+.icon-button {
+ display: inline-block;
+ padding: 0;
+ color: $action-button-color;
+ border: 0;
+ border-radius: 4px;
+ background: transparent;
+ cursor: pointer;
+ transition: all 100ms ease-in;
+ transition-property: background-color, color;
+ text-decoration: none;
+
+ a {
+ color: inherit;
+ text-decoration: none;
+ }
+
+ &:hover,
+ &:active,
+ &:focus {
+ color: lighten($action-button-color, 7%);
+ background-color: rgba($action-button-color, 0.15);
+ transition: all 200ms ease-out;
+ transition-property: background-color, color;
+ }
+
+ &:focus {
+ background-color: rgba($action-button-color, 0.3);
+ }
+
+ &.disabled {
+ color: darken($action-button-color, 13%);
+ background-color: transparent;
+ cursor: default;
+ }
+
+ &.active {
+ color: $highlight-text-color;
+ }
+
+ &.copyable {
+ transition: background 300ms linear;
+ }
+
+ &.copied {
+ background: $valid-value-color;
+ transition: none;
+ }
+
+ &::-moz-focus-inner {
+ border: 0;
+ }
+
+ &::-moz-focus-inner,
+ &:focus,
+ &:active {
+ outline: 0 !important;
+ }
+
+ &.inverted {
+ color: $lighter-text-color;
+
+ &:hover,
+ &:active,
+ &:focus {
+ color: darken($lighter-text-color, 7%);
+ background-color: rgba($lighter-text-color, 0.15);
+ }
+
+ &:focus {
+ background-color: rgba($lighter-text-color, 0.3);
+ }
+
+ &.disabled {
+ color: lighten($lighter-text-color, 7%);
+ background-color: transparent;
+ }
+
+ &.active {
+ color: $highlight-text-color;
+
+ &.disabled {
+ color: lighten($highlight-text-color, 13%);
+ }
+ }
+ }
+
+ &.overlayed {
+ box-sizing: content-box;
+ background: rgba($base-overlay-background, 0.6);
+ color: rgba($primary-text-color, 0.7);
+ border-radius: 4px;
+ padding: 2px;
+
+ &:hover {
+ background: rgba($base-overlay-background, 0.9);
+ }
+ }
+
+ &--with-counter {
+ display: inline-flex;
+ align-items: center;
+ width: auto !important;
+ padding: 0 4px 0 2px;
+ }
+
+ &__counter {
+ display: inline-block;
+ width: auto;
+ margin-left: 4px;
+ font-size: 12px;
+ font-weight: 500;
+ }
+}
+
+.text-icon,
+.text-icon-button {
+ font-weight: 600;
+ font-size: 11px;
+ line-height: 27px;
+ cursor: default;
+}
+
+.text-icon-button {
+ color: $lighter-text-color;
+ border: 0;
+ border-radius: 4px;
+ background: transparent;
+ cursor: pointer;
+ padding: 0 3px;
+ outline: 0;
+ transition: all 100ms ease-in;
+ transition-property: background-color, color;
+
+ &:hover,
+ &:active,
+ &:focus {
+ color: darken($lighter-text-color, 7%);
+ background-color: rgba($lighter-text-color, 0.15);
+ transition: all 200ms ease-out;
+ transition-property: background-color, color;
+ }
+
+ &:focus {
+ background-color: rgba($lighter-text-color, 0.3);
+ }
+
+ &.disabled {
+ color: lighten($lighter-text-color, 20%);
+ background-color: transparent;
+ cursor: default;
+ }
+
+ &.active {
+ color: $highlight-text-color;
+ }
+
+ &::-moz-focus-inner {
+ border: 0;
+ }
+
+ &::-moz-focus-inner,
+ &:focus,
+ &:active {
+ outline: 0 !important;
+ }
+}
+
+body > [data-popper-placement] {
+ z-index: 3;
+}
+
+.invisible {
+ font-size: 0;
+ line-height: 0;
+ display: inline-block;
+ width: 0;
+ height: 0;
+ position: absolute;
+
+ img,
+ svg {
+ margin: 0 !important;
+ border: 0 !important;
+ padding: 0 !important;
+ width: 0 !important;
+ height: 0 !important;
+ }
+}
+
+.ellipsis {
+ &::after {
+ content: 'âĻ';
+ }
+}
+
+.notification__favourite-icon-wrapper {
+ left: 0;
+ position: absolute;
+
+ .fa.star-icon {
+ color: $gold-star;
+ }
+}
+
+.icon-button.star-icon.active {
+ color: $gold-star;
+}
+
+.icon-button.bookmark-icon.active {
+ color: $red-bookmark;
+}
+
+.no-reduce-motion .icon-button.star-icon {
+ &.activate {
+ & > .fa-star {
+ animation: spring-rotate-in 1s linear;
+ }
+ }
+
+ &.deactivate {
+ & > .fa-star {
+ animation: spring-rotate-out 1s linear;
+ }
+ }
+}
+
+.notification__display-name {
+ color: inherit;
+ font-weight: 500;
+ text-decoration: none;
+
+ &:hover {
+ color: $primary-text-color;
+ text-decoration: underline;
+ }
+}
+
+.display-name {
+ display: block;
+ max-width: 100%;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+
+ a {
+ color: inherit;
+ text-decoration: inherit;
+ }
+
+ strong {
+ display: block;
+ }
+
+ > a:hover {
+ strong {
+ text-decoration: underline;
+ }
+ }
+
+ &.inline {
+ padding: 0;
+ height: 18px;
+ font-size: 15px;
+ line-height: 18px;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ overflow: hidden;
+
+ strong {
+ display: inline;
+ height: auto;
+ font-size: inherit;
+ line-height: inherit;
+ }
+
+ span {
+ display: inline;
+ height: auto;
+ font-size: inherit;
+ line-height: inherit;
+ }
+ }
+}
+
+.display-name__html {
+ font-weight: 500;
+}
+
+.display-name__account {
+ font-size: 14px;
+}
+
+.image-loader {
+ position: relative;
+ width: 100%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ flex-direction: column;
+ scrollbar-width: none; /* Firefox */
+ -ms-overflow-style: none; /* IE 10+ */
+
+ * {
+ scrollbar-width: none; /* Firefox */
+ -ms-overflow-style: none; /* IE 10+ */
+ }
+
+ &::-webkit-scrollbar,
+ *::-webkit-scrollbar {
+ width: 0;
+ height: 0;
+ background: transparent; /* Chrome/Safari/Webkit */
+ }
+
+ .image-loader__preview-canvas {
+ max-width: $media-modal-media-max-width;
+ max-height: $media-modal-media-max-height;
+ background: url('~images/void.png') repeat;
+ object-fit: contain;
+ }
+
+ .loading-bar__container {
+ position: relative;
+ }
+
+ .loading-bar {
+ position: absolute;
+ }
+
+ &.image-loader--amorphous .image-loader__preview-canvas {
+ display: none;
+ }
+}
+
+.zoomable-image {
+ position: relative;
+ width: 100%;
+ height: 100%;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+
+ img {
+ max-width: $media-modal-media-max-width;
+ max-height: $media-modal-media-max-height;
+ width: auto;
+ height: auto;
+ object-fit: contain;
+ }
+}
+
+.dropdown-animation {
+ animation: dropdown 300ms cubic-bezier(0.1, 0.7, 0.1, 1);
+
+ @keyframes dropdown {
+ from {
+ opacity: 0;
+ transform: scaleX(0.85) scaleY(0.75);
+ }
+
+ to {
+ opacity: 1;
+ transform: scaleX(1) scaleY(1);
+ }
+ }
+
+ &.top {
+ transform-origin: bottom;
+ }
+
+ &.right {
+ transform-origin: left;
+ }
+
+ &.bottom {
+ transform-origin: top;
+ }
+
+ &.left {
+ transform-origin: right;
+ }
+
+ .reduce-motion & {
+ animation: none;
+ }
+}
+
+.dropdown {
+ display: inline-block;
+}
+
+.dropdown__content {
+ display: none;
+ position: absolute;
+}
+
+.dropdown-menu__separator {
+ border-bottom: 1px solid darken($ui-secondary-color, 8%);
+ margin: 5px 7px 6px;
+ height: 0;
+}
+
+.dropdown-menu {
+ background: $ui-secondary-color;
+ padding: 4px 0;
+ border-radius: 4px;
+ box-shadow: 2px 4px 15px rgba($base-shadow-color, 0.4);
+ z-index: 9999;
+
+ &__text-button {
+ display: inline;
+ color: inherit;
+ background: transparent;
+ border: 0;
+ margin: 0;
+ padding: 0;
+ font-family: inherit;
+ font-size: inherit;
+ line-height: inherit;
+
+ &:focus {
+ outline: 1px dotted;
+ }
+ }
+
+ &__container {
+ &__header {
+ border-bottom: 1px solid darken($ui-secondary-color, 8%);
+ padding: 4px 14px;
+ padding-bottom: 8px;
+ font-size: 13px;
+ line-height: 18px;
+ color: $inverted-text-color;
+ }
+
+ &__list {
+ list-style: none;
+
+ &--scrollable {
+ max-height: 300px;
+ overflow-y: scroll;
+ }
+ }
+
+ &--loading {
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ padding: 30px 45px;
+ }
+ }
+}
+
+.dropdown-menu__arrow {
+ position: absolute;
+
+ &::before {
+ content: '';
+ display: block;
+ width: 14px;
+ height: 5px;
+ background-color: $ui-secondary-color;
+ mask-image: url("data:image/svg+xml;utf8,
");
+ }
+
+ &.top {
+ bottom: -5px;
+
+ &::before {
+ transform: rotate(180deg);
+ }
+ }
+
+ &.right {
+ left: -9px;
+
+ &::before {
+ transform: rotate(-90deg);
+ }
+ }
+
+ &.bottom {
+ top: -5px;
+ }
+
+ &.left {
+ right: -9px;
+
+ &::before {
+ transform: rotate(90deg);
+ }
+ }
+}
+
+.dropdown-menu__item {
+ font-size: 13px;
+ line-height: 18px;
+ display: block;
+ color: $inverted-text-color;
+
+ a,
+ button {
+ font-family: inherit;
+ font-size: inherit;
+ line-height: inherit;
+ display: block;
+ width: 100%;
+ padding: 4px 14px;
+ border: 0;
+ margin: 0;
+ box-sizing: border-box;
+ text-decoration: none;
+ background: $ui-secondary-color;
+ color: inherit;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ text-align: inherit;
+
+ &:focus,
+ &:hover,
+ &:active {
+ background: $ui-highlight-color;
+ color: $secondary-text-color;
+ outline: 0;
+ }
+ }
+}
+
+.dropdown-menu__item--text {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+ padding: 4px 14px;
+}
+
+.dropdown-menu__item.edited-timestamp__history__item {
+ border-bottom: 1px solid darken($ui-secondary-color, 8%);
+
+ &:last-child {
+ border-bottom: 0;
+ }
+
+ &.dropdown-menu__item--text,
+ a,
+ button {
+ padding: 8px 14px;
+ }
+}
+
+.inline-account {
+ display: inline-flex;
+ align-items: center;
+ vertical-align: top;
+
+ .account__avatar {
+ margin-right: 5px;
+ border-radius: 50%;
+ }
+
+ strong {
+ font-weight: 600;
+ }
+}
+
+.dropdown--active .dropdown__content {
+ display: block;
+ line-height: 18px;
+ max-width: 311px;
+ right: 0;
+ text-align: left;
+ z-index: 9999;
+
+ & > ul {
+ list-style: none;
+ background: $ui-secondary-color;
+ padding: 4px 0;
+ border-radius: 4px;
+ box-shadow: 0 0 15px rgba($base-shadow-color, 0.4);
+ min-width: 140px;
+ position: relative;
+ }
+
+ &.dropdown__right {
+ right: 0;
+ }
+
+ &.dropdown__left {
+ & > ul {
+ left: -98px;
+ }
+ }
+
+ & > ul > li > a {
+ font-size: 13px;
+ line-height: 18px;
+ display: block;
+ padding: 4px 14px;
+ box-sizing: border-box;
+ text-decoration: none;
+ background: $ui-secondary-color;
+ color: $inverted-text-color;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ white-space: nowrap;
+
+ &:focus {
+ outline: 0;
+ }
+
+ &:hover {
+ background: $ui-highlight-color;
+ color: $secondary-text-color;
+ }
+ }
+}
+
+.dropdown__icon {
+ vertical-align: middle;
+}
+
+.static-content {
+ padding: 10px;
+ padding-top: 20px;
+ color: $dark-text-color;
+
+ h1 {
+ font-size: 16px;
+ font-weight: 500;
+ margin-bottom: 40px;
+ text-align: center;
+ }
+
+ p {
+ font-size: 13px;
+ margin-bottom: 20px;
+ }
+}
+
+.column,
+.drawer {
+ flex: 1 1 100%;
+ overflow: hidden;
+}
+
+@media screen and (min-width: 631px) {
+ .columns-area {
+ padding: 0;
+ }
+
+ .column,
+ .drawer {
+ flex: 0 0 auto;
+ padding: 10px;
+ padding-left: 5px;
+ padding-right: 5px;
+
+ &:first-child {
+ padding-left: 10px;
+ }
+
+ &:last-child {
+ padding-right: 10px;
+ }
+ }
+
+ .columns-area > div {
+ .column,
+ .drawer {
+ padding-left: 5px;
+ padding-right: 5px;
+ }
+ }
+}
+
+.tabs-bar {
+ box-sizing: border-box;
+ display: flex;
+ background: lighten($ui-base-color, 8%);
+ flex: 0 0 auto;
+ overflow-y: auto;
+}
+
+.tabs-bar__link {
+ display: block;
+ flex: 1 1 auto;
+ padding: 15px 10px;
+ padding-bottom: 13px;
+ color: $primary-text-color;
+ text-decoration: none;
+ text-align: center;
+ font-size: 14px;
+ font-weight: 500;
+ border-bottom: 2px solid lighten($ui-base-color, 8%);
+ transition: all 50ms linear;
+ transition-property: border-bottom, background, color;
+
+ .fa {
+ font-weight: 400;
+ font-size: 16px;
+ }
+
+ &:hover,
+ &:focus,
+ &:active {
+ @include multi-columns('screen and (min-width: 631px)') {
+ background: lighten($ui-base-color, 14%);
+ border-bottom-color: lighten($ui-base-color, 14%);
+ }
+ }
+
+ &.active {
+ border-bottom: 2px solid $ui-highlight-color;
+ color: $highlight-text-color;
+ }
+
+ span {
+ margin-left: 5px;
+ display: none;
+ }
+
+ span.icon {
+ margin-left: 0;
+ display: inline;
+ }
+}
+
+.icon-with-badge {
+ position: relative;
+
+ &__badge {
+ position: absolute;
+ left: 9px;
+ top: -13px;
+ background: $ui-highlight-color;
+ border: 2px solid lighten($ui-base-color, 8%);
+ padding: 1px 6px;
+ border-radius: 6px;
+ font-size: 10px;
+ font-weight: 500;
+ line-height: 14px;
+ color: $primary-text-color;
+ }
+
+ &__issue-badge {
+ position: absolute;
+ left: 11px;
+ bottom: 1px;
+ display: block;
+ background: $error-red;
+ border-radius: 50%;
+ width: 0.625rem;
+ height: 0.625rem;
+ }
+}
+
+.column-link--transparent .icon-with-badge__badge {
+ border-color: darken($ui-base-color, 8%);
+}
+
+.scrollable {
+ overflow-y: scroll;
+ overflow-x: hidden;
+ flex: 1 1 auto;
+ -webkit-overflow-scrolling: touch;
+
+ &.optionally-scrollable {
+ overflow-y: auto;
+ }
+
+ @supports (display: grid) {
+ // hack to fix Chrome <57
+ contain: strict;
+ }
+
+ &--flex {
+ display: flex;
+ flex-direction: column;
+ }
+
+ &__append {
+ flex: 1 1 auto;
+ position: relative;
+ min-height: 120px;
+ }
+
+ .scrollable {
+ flex: 1 1 auto;
+ }
+}
+
+.scrollable.fullscreen {
+ @supports (display: grid) {
+ // hack to fix Chrome <57
+ contain: none;
+ }
+}
+
+.react-toggle {
+ display: inline-block;
+ position: relative;
+ cursor: pointer;
+ background-color: transparent;
+ border: 0;
+ padding: 0;
+ user-select: none;
+ -webkit-tap-highlight-color: rgba($base-overlay-background, 0);
+ -webkit-tap-highlight-color: transparent;
+}
+
+.react-toggle-screenreader-only {
+ border: 0;
+ clip: rect(0 0 0 0);
+ height: 1px;
+ margin: -1px;
+ overflow: hidden;
+ padding: 0;
+ position: absolute;
+ width: 1px;
+}
+
+.react-toggle--disabled {
+ cursor: not-allowed;
+ opacity: 0.5;
+ transition: opacity 0.25s;
+}
+
+.react-toggle-track {
+ width: 50px;
+ height: 24px;
+ padding: 0;
+ border-radius: 30px;
+ background-color: $ui-base-color;
+ transition: background-color 0.2s ease;
+}
+
+.react-toggle:is(:hover, :focus-within):not(.react-toggle--disabled)
+ .react-toggle-track {
+ background-color: darken($ui-base-color, 10%);
+}
+
+.react-toggle--checked .react-toggle-track {
+ background-color: darken($ui-highlight-color, 2%);
+}
+
+.react-toggle--checked:is(:hover, :focus-within):not(.react-toggle--disabled)
+ .react-toggle-track {
+ background-color: $ui-highlight-color;
+}
+
+.react-toggle-track-check {
+ position: absolute;
+ width: 14px;
+ height: 10px;
+ top: 0;
+ bottom: 0;
+ margin-top: auto;
+ margin-bottom: auto;
+ line-height: 0;
+ left: 8px;
+ opacity: 0;
+ transition: opacity 0.25s ease;
+}
+
+.react-toggle--checked .react-toggle-track-check {
+ opacity: 1;
+ transition: opacity 0.25s ease;
+}
+
+.react-toggle-track-x {
+ position: absolute;
+ width: 10px;
+ height: 10px;
+ top: 0;
+ bottom: 0;
+ margin-top: auto;
+ margin-bottom: auto;
+ line-height: 0;
+ right: 10px;
+ opacity: 1;
+ transition: opacity 0.25s ease;
+}
+
+.react-toggle--checked .react-toggle-track-x {
+ opacity: 0;
+}
+
+.react-toggle-thumb {
+ position: absolute;
+ top: 1px;
+ left: 1px;
+ width: 22px;
+ height: 22px;
+ border: 1px solid $ui-base-color;
+ border-radius: 50%;
+ background-color: darken($simple-background-color, 2%);
+ box-sizing: border-box;
+ transition: all 0.25s ease;
+ transition-property: border-color, left;
+}
+
+.react-toggle--checked .react-toggle-thumb {
+ left: 27px;
+ border-color: $ui-highlight-color;
+}
+
+.getting-started__wrapper,
+.getting_started,
+.flex-spacer {
+ background: $ui-base-color;
+}
+
+.getting-started__wrapper {
+ position: relative;
+ overflow-y: auto;
+}
+
+.flex-spacer {
+ flex: 1 1 auto;
+}
+
+.getting-started {
+ background: $ui-base-color;
+ flex: 1 0 auto;
+
+ p {
+ color: $secondary-text-color;
+ }
+
+ a {
+ color: $dark-text-color;
+ }
+
+ &__trends {
+ flex: 0 1 auto;
+ opacity: 1;
+ animation: fade 150ms linear;
+ margin-top: 10px;
+
+ h4 {
+ border-bottom: 1px solid lighten($ui-base-color, 8%);
+ padding: 10px;
+ font-size: 12px;
+ text-transform: uppercase;
+ font-weight: 500;
+
+ a {
+ color: $darker-text-color;
+ text-decoration: none;
+ }
+ }
+
+ @media screen and (max-height: 810px) {
+ .trends__item:nth-of-type(3) {
+ display: none;
+ }
+ }
+
+ @media screen and (max-height: 720px) {
+ .trends__item:nth-of-type(2) {
+ display: none;
+ }
+ }
+
+ @media screen and (max-height: 670px) {
+ display: none;
+ }
+
+ .trends__item {
+ border-bottom: 0;
+ padding: 10px;
+
+ &__current {
+ color: $darker-text-color;
+ }
+ }
+ }
+}
+
+.column-link__badge {
+ display: inline-block;
+ border-radius: 4px;
+ font-size: 12px;
+ line-height: 19px;
+ font-weight: 500;
+ background: $ui-base-color;
+ padding: 4px 8px;
+ margin: -6px 10px;
+}
+
+.keyboard-shortcuts {
+ padding: 8px 0 0;
+ overflow: hidden;
+
+ thead {
+ position: absolute;
+ left: -9999px;
+ }
+
+ td {
+ padding: 0 10px 8px;
+ }
+
+ kbd {
+ display: inline-block;
+ padding: 3px 5px;
+ background-color: lighten($ui-base-color, 8%);
+ border: 1px solid darken($ui-base-color, 4%);
+ }
+}
+
+.setting-text {
+ color: $darker-text-color;
+ background: transparent;
+ border: 0;
+ border-bottom: 2px solid $ui-primary-color;
+ outline: 0;
+ box-sizing: border-box;
+ display: block;
+ font-family: inherit;
+ margin-bottom: 10px;
+ padding: 7px 0;
+ width: 100%;
+
+ &:focus,
+ &:active {
+ color: $primary-text-color;
+ border-bottom-color: $ui-highlight-color;
+ }
+
+ @include limited-single-column('screen and (max-width: 600px)') {
+ font-size: 16px;
+ }
+
+ &.light {
+ color: $inverted-text-color;
+ border-bottom: 2px solid lighten($ui-base-color, 27%);
+
+ &:focus,
+ &:active {
+ color: $inverted-text-color;
+ border-bottom-color: $ui-highlight-color;
+ }
+ }
+}
+
+button.icon-button i.fa-retweet {
+ background-position: 0 0;
+ height: 19px;
+ transition: background-position 0.9s steps(10);
+ transition-duration: 0s;
+ vertical-align: middle;
+ width: 22px;
+
+ &::before {
+ display: none !important;
+ }
+}
+
+button.icon-button.active i.fa-retweet {
+ transition-duration: 0.9s;
+ background-position: 0 100%;
+}
+
+.reduce-motion button.icon-button i.fa-retweet,
+.reduce-motion button.icon-button.active i.fa-retweet {
+ transition: none;
+}
+
+.reduce-motion button.icon-button.disabled i.fa-retweet {
+ color: darken($action-button-color, 13%);
+}
+
+.load-more {
+ display: block;
+ color: $dark-text-color;
+ background-color: transparent;
+ border: 0;
+ font-size: inherit;
+ text-align: center;
+ line-height: inherit;
+ margin: 0;
+ padding: 15px;
+ box-sizing: border-box;
+ width: 100%;
+ clear: both;
+ text-decoration: none;
+
+ &:hover {
+ background: lighten($ui-base-color, 2%);
+ }
+}
+
+.load-gap {
+ border-bottom: 1px solid lighten($ui-base-color, 8%);
+}
+
+.timeline-hint {
+ text-align: center;
+ color: $darker-text-color;
+ padding: 15px;
+ box-sizing: border-box;
+ width: 100%;
+ cursor: default;
+
+ strong {
+ font-weight: 500;
+ }
+
+ a {
+ color: $highlight-text-color;
+ text-decoration: none;
+
+ &:hover,
+ &:focus,
+ &:active {
+ text-decoration: underline;
+ color: lighten($highlight-text-color, 4%);
+ }
+ }
+}
+
+.missing-indicator {
+ padding-top: 20px + 48px;
+
+ .regeneration-indicator__figure {
+ background-image: url('~flavours/glitch/images/elephant_ui_disappointed.svg');
+ }
+}
+
+.scrollable > div > :first-child .notification__dismiss-overlay > .wrappy {
+ border-top: 1px solid $ui-base-color;
+}
+
+.notification__dismiss-overlay {
+ overflow: hidden;
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: -1px;
+ padding-left: 15px; // space for the box shadow to be visible
+ z-index: 999;
+ align-items: center;
+ justify-content: flex-end;
+ cursor: pointer;
+ display: flex;
+
+ .wrappy {
+ width: $dismiss-overlay-width;
+ align-self: stretch;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ justify-content: center;
+ background: lighten($ui-base-color, 8%);
+ border-left: 1px solid lighten($ui-base-color, 20%);
+ box-shadow: 0 0 5px black;
+ border-bottom: 1px solid $ui-base-color;
+ }
+
+ .ckbox {
+ border: 2px solid $ui-primary-color;
+ border-radius: 2px;
+ width: 30px;
+ height: 30px;
+ font-size: 20px;
+ color: $darker-text-color;
+ text-shadow: 0 0 5px black;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+
+ &:focus {
+ outline: 0 !important;
+
+ .ckbox {
+ box-shadow: 0 0 1px 1px $ui-highlight-color;
+ }
+ }
+}
+
+.text-btn {
+ display: inline-block;
+ padding: 0;
+ font-family: inherit;
+ font-size: inherit;
+ color: inherit;
+ border: 0;
+ background: transparent;
+ cursor: pointer;
+}
+
+.loading-indicator {
+ color: $dark-text-color;
+ font-size: 12px;
+ font-weight: 400;
+ text-transform: uppercase;
+ overflow: visible;
+ position: absolute;
+ top: 50%;
+ left: 50%;
+ transform: translate(-50%, -50%);
+ display: flex;
+ align-items: center;
+ justify-content: center;
+}
+
+.circular-progress {
+ color: lighten($ui-base-color, 26%);
+ animation: 1.4s linear 0s infinite normal none running simple-rotate;
+
+ circle {
+ stroke: currentColor;
+ stroke-dasharray: 80px, 200px;
+ stroke-dashoffset: 0;
+ animation: circular-progress 1.4s ease-in-out infinite;
+ }
+}
+
+@keyframes circular-progress {
+ 0% {
+ stroke-dasharray: 1px, 200px;
+ stroke-dashoffset: 0;
+ }
+
+ 50% {
+ stroke-dasharray: 100px, 200px;
+ stroke-dashoffset: -15px;
+ }
+
+ 100% {
+ stroke-dasharray: 100px, 200px;
+ stroke-dashoffset: -125px;
+ }
+}
+
+@keyframes simple-rotate {
+ 0% {
+ transform: rotate(0deg);
+ }
+
+ 100% {
+ transform: rotate(360deg);
+ }
+}
+
+@keyframes spring-rotate-in {
+ 0% {
+ transform: rotate(0deg);
+ }
+
+ 30% {
+ transform: rotate(-484.8deg);
+ }
+
+ 60% {
+ transform: rotate(-316.7deg);
+ }
+
+ 90% {
+ transform: rotate(-375deg);
+ }
+
+ 100% {
+ transform: rotate(-360deg);
+ }
+}
+
+@keyframes spring-rotate-out {
+ 0% {
+ transform: rotate(-360deg);
+ }
+
+ 30% {
+ transform: rotate(124.8deg);
+ }
+
+ 60% {
+ transform: rotate(-43.27deg);
+ }
+
+ 90% {
+ transform: rotate(15deg);
+ }
+
+ 100% {
+ transform: rotate(0deg);
+ }
+}
+
+.spoiler-button {
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ position: absolute;
+ z-index: 100;
+
+ &--minified {
+ display: flex;
+ left: 4px;
+ top: 4px;
+ width: auto;
+ height: auto;
+ align-items: center;
+ }
+
+ &--click-thru {
+ pointer-events: none;
+ }
+
+ &--hidden {
+ display: none;
+ }
+
+ &__overlay {
+ display: block;
+ background: transparent;
+ width: 100%;
+ height: 100%;
+ border: 0;
+
+ &__label {
+ display: inline-block;
+ background: rgba($base-overlay-background, 0.5);
+ border-radius: 8px;
+ padding: 8px 12px;
+ color: $primary-text-color;
+ font-weight: 500;
+ font-size: 14px;
+ }
+
+ &:hover,
+ &:focus,
+ &:active {
+ .spoiler-button__overlay__label {
+ background: rgba($base-overlay-background, 0.8);
+ }
+ }
+
+ &:disabled {
+ .spoiler-button__overlay__label {
+ background: rgba($base-overlay-background, 0.5);
+ }
+ }
+ }
+}
+
+.setting-toggle {
+ display: block;
+ line-height: 24px;
+}
+
+.setting-toggle__label,
+.setting-meta__label {
+ color: $darker-text-color;
+ display: inline-block;
+ margin-bottom: 14px;
+ margin-left: 8px;
+ vertical-align: middle;
+}
+
+.column-settings__row .radio-button {
+ display: block;
+}
+
+.setting-meta__label {
+ float: right;
+}
+
+@keyframes heartbeat {
+ 0% {
+ transform: scale(1);
+ transform-origin: center center;
+ animation-timing-function: ease-out;
+ }
+
+ 10% {
+ transform: scale(0.91);
+ animation-timing-function: ease-in;
+ }
+
+ 17% {
+ transform: scale(0.98);
+ animation-timing-function: ease-out;
+ }
+
+ 33% {
+ transform: scale(0.87);
+ animation-timing-function: ease-in;
+ }
+
+ 45% {
+ transform: scale(1);
+ animation-timing-function: ease-out;
+ }
+}
+
+.pulse-loading {
+ animation: heartbeat 1.5s ease-in-out infinite both;
+}
+
+.upload-area {
+ align-items: center;
+ background: rgba($base-overlay-background, 0.8);
+ display: flex;
+ height: 100vh;
+ justify-content: center;
+ left: 0;
+ opacity: 0;
+ position: fixed;
+ top: 0;
+ visibility: hidden;
+ width: 100vw;
+ z-index: 2000;
+
+ * {
+ pointer-events: none;
+ }
+}
+
+.upload-area__drop {
+ width: 320px;
+ height: 160px;
+ display: flex;
+ box-sizing: border-box;
+ position: relative;
+ padding: 8px;
+}
+
+.upload-area__background {
+ position: absolute;
+ top: 0;
+ right: 0;
+ bottom: 0;
+ left: 0;
+ z-index: -1;
+ border-radius: 4px;
+ background: $ui-base-color;
+ box-shadow: 0 0 5px rgba($base-shadow-color, 0.2);
+}
+
+.upload-area__content {
+ flex: 1;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ text-align: center;
+ color: $secondary-text-color;
+ font-size: 18px;
+ font-weight: 500;
+ border: 2px dashed $ui-base-lighter-color;
+ border-radius: 4px;
+}
+
+.dropdown--active .emoji-button img {
+ opacity: 1;
+ filter: none;
+}
+
+.loading-bar {
+ background-color: $ui-highlight-color;
+ height: 3px;
+ position: fixed;
+ top: 0;
+ left: 0;
+ z-index: 9999;
+}
+
+.icon-badge-wrapper {
+ position: relative;
+}
+
+.icon-badge {
+ position: absolute;
+ display: block;
+ right: -0.25em;
+ top: -0.25em;
+ background-color: $ui-highlight-color;
+ border-radius: 50%;
+ font-size: 75%;
+ width: 1em;
+ height: 1em;
+}
+
+.conversation {
+ display: flex;
+ border-bottom: 1px solid lighten($ui-base-color, 8%);
+ padding: 5px;
+ padding-bottom: 0;
+
+ &:focus {
+ background: lighten($ui-base-color, 2%);
+ outline: 0;
+ }
+
+ &__avatar {
+ flex: 0 0 auto;
+ padding: 10px;
+ padding-top: 12px;
+ position: relative;
+ cursor: pointer;
+ }
+
+ &__unread {
+ display: inline-block;
+ background: $highlight-text-color;
+ border-radius: 50%;
+ width: 0.625rem;
+ height: 0.625rem;
+ margin: -0.1ex 0.15em 0.1ex;
+ }
+
+ &__content {
+ flex: 1 1 auto;
+ padding: 10px 5px;
+ padding-right: 15px;
+ overflow: hidden;
+
+ &__info {
+ overflow: hidden;
+ display: flex;
+ flex-direction: row-reverse;
+ justify-content: space-between;
+ }
+
+ &__relative-time {
+ font-size: 15px;
+ color: $darker-text-color;
+ padding-left: 15px;
+ }
+
+ &__names {
+ color: $darker-text-color;
+ font-size: 15px;
+ white-space: nowrap;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ margin-bottom: 4px;
+ flex-basis: 90px;
+ flex-grow: 1;
+
+ a {
+ color: $primary-text-color;
+ text-decoration: none;
+
+ &:hover,
+ &:focus,
+ &:active {
+ text-decoration: underline;
+ }
+ }
+ }
+
+ .status__content {
+ margin: 0;
+ }
+ }
+
+ &--unread {
+ background: lighten($ui-base-color, 2%);
+
+ &:focus {
+ background: lighten($ui-base-color, 4%);
+ }
+
+ .conversation__content__info {
+ font-weight: 700;
+ }
+
+ .conversation__content__relative-time {
+ color: $primary-text-color;
+ }
+ }
+}
+
+.ui .flash-message {
+ margin-top: 10px;
+ margin-left: auto;
+ margin-right: auto;
+ margin-bottom: 0;
+ min-width: 75%;
+}
+
+::-webkit-scrollbar-thumb {
+ border-radius: 0;
+}
+
+noscript {
+ text-align: center;
+
+ img {
+ width: 200px;
+ opacity: 0.5;
+ animation: flicker 4s infinite;
+ }
+
+ div {
+ font-size: 14px;
+ margin: 30px auto;
+ color: $secondary-text-color;
+ max-width: 400px;
+
+ a {
+ color: $highlight-text-color;
+ text-decoration: underline;
+
+ &:hover {
+ text-decoration: none;
+ }
+ }
+
+ a {
+ word-break: break-word;
+ }
+ }
+}
+
+@keyframes flicker {
+ 0% {
+ opacity: 1;
+ }
+
+ 30% {
+ opacity: 0.75;
+ }
+
+ 100% {
+ opacity: 1;
+ }
+}
diff --git a/app/javascript/flavours/glitch/styles/components/modal.scss b/app/javascript/flavours/glitch/styles/components/modal.scss
index 8ba8bec10..65060f422 100644
--- a/app/javascript/flavours/glitch/styles/components/modal.scss
+++ b/app/javascript/flavours/glitch/styles/components/modal.scss
@@ -37,7 +37,6 @@
.modal-root__modal {
pointer-events: auto;
display: flex;
- z-index: 9999;
}
.media-modal__zoom-button {
@@ -76,7 +75,6 @@
width: 100%;
height: 100%;
box-sizing: border-box;
- display: none;
flex-direction: column;
align-items: center;
justify-content: center;
@@ -100,7 +98,6 @@
height: 100%;
box-sizing: border-box;
padding: 25px;
- display: none;
flex-direction: column;
align-items: center;
justify-content: center;
@@ -270,7 +267,8 @@
}
.onboarding-modal__page__wrapper-0 {
- background: url('~images/elephant_ui_greeting.svg') no-repeat left bottom / auto 250px;
+ background: url('~images/elephant_ui_greeting.svg') no-repeat left bottom /
+ auto 250px;
height: 100%;
padding: 0;
}
@@ -685,7 +683,6 @@
display: block;
box-sizing: border-box;
width: 100%;
- margin: 0;
color: $inverted-text-color;
background: $simple-background-color;
padding: 10px;
@@ -820,7 +817,6 @@
font-family: inherit;
font-size: 14px;
resize: none;
- border: 0;
outline: 0;
border-radius: 4px;
border: 1px solid $ui-secondary-color;
@@ -987,10 +983,10 @@
padding-left: 20px;
padding-right: 20px;
padding-bottom: 10px;
-
font-size: 14px;
- label, input {
+ label,
+ input {
vertical-align: middle;
}
}
@@ -1021,7 +1017,9 @@
width: auto;
outline: 0;
font-family: inherit;
- background: $simple-background-color url("data:image/svg+xml;utf8,
") no-repeat right 8px center / auto 16px;
+ background: $simple-background-color
+ url("data:image/svg+xml;utf8,
")
+ no-repeat right 8px center / auto 16px;
border: 1px solid darken($simple-background-color, 14%);
border-radius: 4px;
padding: 6px 10px;
@@ -1072,6 +1070,7 @@
&__container {
padding: 30px;
pointer-events: all;
+ overflow-y: auto;
}
.status__content {
@@ -1131,7 +1130,7 @@
width: 100%;
border: 0;
padding: 10px;
- font-family: 'mastodon-font-monospace', monospace;
+ font-family: mastodon-font-monospace, monospace;
background: $ui-base-color;
color: $primary-text-color;
font-size: 14px;
@@ -1280,7 +1279,7 @@
text-decoration: none;
&:hover {
- text-decoration: underline
+ text-decoration: underline;
}
}
}
diff --git a/app/javascript/flavours/glitch/styles/components/privacy_policy.scss b/app/javascript/flavours/glitch/styles/components/privacy_policy.scss
index 96cf06742..93123075e 100644
--- a/app/javascript/flavours/glitch/styles/components/privacy_policy.scss
+++ b/app/javascript/flavours/glitch/styles/components/privacy_policy.scss
@@ -26,11 +26,13 @@
img {
margin-top: 2em;
margin-bottom: 2em;
+ max-width: 100%;
}
video {
margin-top: 2em;
margin-bottom: 2em;
+ max-width: 100%;
}
figure {
@@ -85,14 +87,14 @@
counter-increment: list-counter;
&::before {
- content: counter(list-counter) ".";
+ content: counter(list-counter) '.';
position: absolute;
left: 0;
}
}
ul > li::before {
- content: "";
+ content: '';
position: absolute;
background-color: $darker-text-color;
border-radius: 50%;
diff --git a/app/javascript/flavours/glitch/styles/components/search.scss b/app/javascript/flavours/glitch/styles/components/search.scss
index 70af0f651..a6e98a868 100644
--- a/app/javascript/flavours/glitch/styles/components/search.scss
+++ b/app/javascript/flavours/glitch/styles/components/search.scss
@@ -1,9 +1,10 @@
.search {
+ margin-bottom: 10px;
position: relative;
}
.search__input {
- @include search-input();
+ @include search-input;
display: block;
padding: 15px;
@@ -180,7 +181,7 @@
path:first-child {
fill: rgba($highlight-text-color, 0.25) !important;
- fill-opacity: 100% !important;
+ fill-opacity: 1 !important;
}
path:last-child {
diff --git a/app/javascript/flavours/glitch/styles/components/sensitive.scss b/app/javascript/flavours/glitch/styles/components/sensitive.scss
index 67b01c886..490951fb4 100644
--- a/app/javascript/flavours/glitch/styles/components/sensitive.scss
+++ b/app/javascript/flavours/glitch/styles/components/sensitive.scss
@@ -17,8 +17,10 @@
font-size: 12px;
line-height: 18px;
text-transform: uppercase;
- opacity: .9;
- transition: opacity .1s ease;
+ opacity: 0.9;
+ transition: opacity 0.1s ease;
- .media-gallery:hover & { opacity: 1 }
+ .media-gallery:hover & {
+ opacity: 1;
+ }
}
diff --git a/app/javascript/flavours/glitch/styles/components/single_column.scss b/app/javascript/flavours/glitch/styles/components/single_column.scss
index 45d57aedd..036b3f6ef 100644
--- a/app/javascript/flavours/glitch/styles/components/single_column.scss
+++ b/app/javascript/flavours/glitch/styles/components/single_column.scss
@@ -140,7 +140,7 @@
.scrollable {
overflow: visible;
- @supports(display: grid) {
+ @supports (display: grid) {
contain: content;
}
}
@@ -227,8 +227,7 @@
height: calc(100% - 10px) !important;
}
- .getting-started__wrapper,
- .search {
+ .getting-started__wrapper {
margin-bottom: 10px;
}
@@ -281,7 +280,7 @@
}
}
- .ui__header {
+ .layout-single-column .ui__header {
display: flex;
background: $ui-base-color;
border-bottom: 1px solid lighten($ui-base-color, 8%);
diff --git a/app/javascript/flavours/glitch/styles/components/status.scss b/app/javascript/flavours/glitch/styles/components/status.scss
index 7cc6f5386..1a7dfe9ae 100644
--- a/app/javascript/flavours/glitch/styles/components/status.scss
+++ b/app/javascript/flavours/glitch/styles/components/status.scss
@@ -67,7 +67,8 @@
margin: -3px 0 0;
}
- p, pre, blockquote {
+ p,
+ pre {
margin-bottom: 20px;
white-space: pre-wrap;
unicode-bidi: plaintext;
@@ -77,79 +78,6 @@
}
}
- .status__content__text,
- .e-content {
- overflow: hidden;
-
- & > ul,
- & > ol {
- margin-bottom: 20px;
- }
-
- h1, h2, h3, h4, h5 {
- margin-top: 20px;
- margin-bottom: 20px;
- }
-
- h1, h2 {
- font-weight: 700;
- font-size: 1.2em;
- }
-
- h2 {
- font-size: 1.1em;
- }
-
- h3, h4, h5 {
- font-weight: 500;
- }
-
- blockquote {
- padding-left: 10px;
- border-left: 3px solid $darker-text-color;
- color: $darker-text-color;
- white-space: normal;
-
- p:last-child {
- margin-bottom: 0;
- }
- }
-
- b, strong {
- font-weight: 700;
- }
-
- em, i {
- font-style: italic;
- }
-
- sub {
- font-size: smaller;
- vertical-align: sub;
- }
-
- sup {
- font-size: smaller;
- vertical-align: super;
- }
-
- ul, ol {
- margin-left: 2em;
-
- p {
- margin: 0;
- }
- }
-
- ul {
- list-style-type: disc;
- }
-
- ol {
- list-style-type: decimal;
- }
- }
-
a {
color: $secondary-text-color;
text-decoration: none;
@@ -317,8 +245,13 @@
}
@keyframes fade {
- 0% { opacity: 0; }
- 100% { opacity: 1; }
+ 0% {
+ opacity: 0;
+ }
+
+ 100% {
+ opacity: 1;
+ }
}
opacity: 1;
@@ -381,9 +314,14 @@
right: 0;
top: 0;
bottom: 0;
- background-image: linear-gradient(to bottom, rgba($base-shadow-color, .75), rgba($base-shadow-color, .65) 24px, rgba($base-shadow-color, .8));
+ background-image: linear-gradient(
+ to bottom,
+ rgba($base-shadow-color, 0.75),
+ rgba($base-shadow-color, 0.65) 24px,
+ rgba($base-shadow-color, 0.8)
+ );
pointer-events: none;
- content: "";
+ content: '';
}
.display-name:hover .display-name__html {
@@ -396,26 +334,37 @@
text-overflow: ellipsis;
padding-top: 0;
- &:after {
- content: "";
+ &::after {
+ content: '';
position: absolute;
top: 0;
bottom: 0;
left: 0;
right: 0;
- background: linear-gradient(rgba($ui-base-color, 0), rgba($ui-base-color, 1));
+ background: linear-gradient(
+ rgba($ui-base-color, 0),
+ rgba($ui-base-color, 1)
+ );
pointer-events: none;
}
-
+
a:hover {
text-decoration: none;
}
}
- &:focus > .status__content:after {
- background: linear-gradient(rgba(lighten($ui-base-color, 4%), 0), rgba(lighten($ui-base-color, 4%), 1));
+
+ &:focus > .status__content::after {
+ background: linear-gradient(
+ rgba(lighten($ui-base-color, 4%), 0),
+ rgba(lighten($ui-base-color, 4%), 1)
+ );
}
- &.status-direct > .status__content:after {
- background: linear-gradient(rgba(lighten($ui-base-color, 8%), 0), rgba(lighten($ui-base-color, 8%), 1));
+
+ &.status-direct > .status__content::after {
+ background: linear-gradient(
+ rgba(lighten($ui-base-color, 8%), 0),
+ rgba(lighten($ui-base-color, 8%), 1)
+ );
}
.notification__message {
@@ -428,7 +377,7 @@
}
.notification__message {
- margin: -10px 0px 10px 0;
+ margin: -10px 0 10px;
}
}
@@ -444,7 +393,6 @@
.status__relative-time {
display: inline-block;
- flex-grow: 1;
color: $dark-text-color;
font-size: 14px;
text-align: right;
@@ -590,6 +538,10 @@
width: 23.15px;
}
+.status__action-bar-spacer {
+ flex-grow: 1;
+}
+
.detailed-status__action-bar-dropdown {
flex: 1 1 auto;
display: flex;
@@ -829,7 +781,8 @@ a.status__display-name,
bottom: -1px;
}
- a .fa, a:hover .fa {
+ a .fa,
+ a:hover .fa {
color: inherit;
}
}
@@ -847,9 +800,9 @@ a.status-card {
cursor: zoom-in;
display: block;
text-decoration: none;
- width: 100%;
- height: auto;
- margin: 0;
+ width: 100%;
+ height: auto;
+ margin: 0;
}
.status-card-video {
@@ -1060,14 +1013,13 @@ a.status-card.compact:hover {
&.unread {
&::before {
- content: "";
+ content: '';
position: absolute;
top: 0;
left: 0;
- pointer-events: 0;
width: 100%;
height: 100%;
- border-left: 2px solid $highlight-text-color;
+ border-left: 4px solid $highlight-text-color;
pointer-events: none;
}
}
diff --git a/app/javascript/flavours/glitch/styles/containers.scss b/app/javascript/flavours/glitch/styles/containers.scss
index a3aee7eef..b90851546 100644
--- a/app/javascript/flavours/glitch/styles/containers.scss
+++ b/app/javascript/flavours/glitch/styles/containers.scss
@@ -74,6 +74,7 @@
width: 40px;
height: 40px;
@include avatar-size(40px);
+
margin-right: 10px;
img {
@@ -82,7 +83,7 @@
display: block;
margin: 0;
border-radius: 4px;
- @include avatar-radius();
+ @include avatar-radius;
}
}
diff --git a/app/javascript/flavours/glitch/styles/contrast/variables.scss b/app/javascript/flavours/glitch/styles/contrast/variables.scss
index e272b6ca3..e38d24b27 100644
--- a/app/javascript/flavours/glitch/styles/contrast/variables.scss
+++ b/app/javascript/flavours/glitch/styles/contrast/variables.scss
@@ -18,5 +18,5 @@ $highlight-text-color: lighten($ui-highlight-color, 10%) !default;
$action-button-color: lighten($ui-base-color, 50%);
$inverted-text-color: $black !default;
-$lighter-text-color: darken($ui-base-color,6%) !default;
+$lighter-text-color: darken($ui-base-color, 6%) !default;
$light-text-color: darken($ui-primary-color, 40%) !default;
diff --git a/app/javascript/flavours/glitch/styles/dashboard.scss b/app/javascript/flavours/glitch/styles/dashboard.scss
index bb103e9ce..f25765d1d 100644
--- a/app/javascript/flavours/glitch/styles/dashboard.scss
+++ b/app/javascript/flavours/glitch/styles/dashboard.scss
@@ -37,7 +37,6 @@
text-align: center;
font-weight: 500;
font-size: 24px;
- line-height: 21px;
color: $primary-text-color;
margin-bottom: 20px;
line-height: 30px;
diff --git a/app/javascript/flavours/glitch/styles/forms.scss b/app/javascript/flavours/glitch/styles/forms.scss
index 01b7a11e9..602de9002 100644
--- a/app/javascript/flavours/glitch/styles/forms.scss
+++ b/app/javascript/flavours/glitch/styles/forms.scss
@@ -157,6 +157,15 @@ code {
padding: 0.2em 0.4em;
background: darken($ui-base-color, 12%);
}
+
+ li {
+ list-style: disc;
+ margin-left: 18px;
+ }
+ }
+
+ ul.hint {
+ margin-bottom: 15px;
}
span.hint {
@@ -291,7 +300,7 @@ code {
max-width: 100%;
height: auto;
border-radius: 4px;
- background: url("images/void.png");
+ background: url('images/void.png');
&:last-child {
margin-bottom: 0;
@@ -376,7 +385,7 @@ code {
flex: 1 1 auto;
}
- input[type=checkbox] {
+ input[type='checkbox'] {
position: absolute;
left: 0;
top: 5px;
@@ -392,12 +401,12 @@ code {
border-radius: 4px;
}
- input[type=text],
- input[type=number],
- input[type=email],
- input[type=password],
- input[type=url],
- input[type=datetime-local],
+ input[type='text'],
+ input[type='number'],
+ input[type='email'],
+ input[type='password'],
+ input[type='url'],
+ input[type='datetime-local'],
textarea {
box-sizing: border-box;
font-size: 16px;
@@ -435,11 +444,11 @@ code {
}
}
- input[type=text],
- input[type=number],
- input[type=email],
- input[type=password],
- input[type=datetime-local] {
+ input[type='text'],
+ input[type='number'],
+ input[type='email'],
+ input[type='password'],
+ input[type='datetime-local'] {
&:focus:invalid:not(:placeholder-shown),
&:required:invalid:not(:placeholder-shown) {
border-color: lighten($error-red, 12%);
@@ -451,11 +460,11 @@ code {
color: lighten($error-red, 12%);
}
- input[type=text],
- input[type=number],
- input[type=email],
- input[type=password],
- input[type=datetime-local],
+ input[type='text'],
+ input[type='number'],
+ input[type='email'],
+ input[type='password'],
+ input[type='datetime-local'],
textarea,
select {
border-color: lighten($error-red, 12%);
@@ -559,7 +568,9 @@ code {
outline: 0;
font-family: inherit;
resize: vertical;
- background: darken($ui-base-color, 10%) url("data:image/svg+xml;utf8,
") no-repeat right 8px center / auto 16px;
+ background: darken($ui-base-color, 10%)
+ url("data:image/svg+xml;utf8,
")
+ no-repeat right 8px center / auto 16px;
border: 1px solid darken($ui-base-color, 14%);
border-radius: 4px;
padding-left: 10px;
@@ -599,7 +610,11 @@ code {
right: 0;
bottom: 1px;
width: 5px;
- background-image: linear-gradient(to right, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));
+ background-image: linear-gradient(
+ to right,
+ rgba(darken($ui-base-color, 10%), 0),
+ darken($ui-base-color, 10%)
+ );
}
}
}
@@ -987,7 +1002,7 @@ code {
flex: 1 1 auto;
}
- input[type=text] {
+ input[type='text'] {
background: transparent;
border: 0;
padding: 10px;
diff --git a/app/javascript/flavours/glitch/styles/index.scss b/app/javascript/flavours/glitch/styles/index.scss
index fbb02c788..1cb913c8b 100644
--- a/app/javascript/flavours/glitch/styles/index.scss
+++ b/app/javascript/flavours/glitch/styles/index.scss
@@ -21,3 +21,4 @@
@import 'accessibility';
@import 'rtl';
@import 'dashboard';
+@import 'rich_text';
diff --git a/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss b/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss
index 9fc1aed2a..ef248bf4f 100644
--- a/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss
+++ b/app/javascript/flavours/glitch/styles/mastodon-light/diff.scss
@@ -12,6 +12,14 @@ html {
&.button-alternative-2 {
color: $white;
}
+
+ &.button-tertiary {
+ color: $highlight-text-color;
+ }
+}
+
+.simple_form .button.button-tertiary {
+ color: $highlight-text-color;
}
.status-card__actions button,
@@ -144,7 +152,7 @@ html {
}
.compose-form__autosuggest-wrapper,
-.poll__option input[type="text"],
+.poll__option input[type='text'],
.compose-form .spoiler-input__input,
.compose-form__poll-wrapper select,
.search__input,
@@ -171,7 +179,9 @@ html {
}
.compose-form__poll-wrapper select {
- background: $simple-background-color url("data:image/svg+xml;utf8,
") no-repeat right 8px center / auto 16px;
+ background: $simple-background-color
+ url("data:image/svg+xml;utf8,
")
+ no-repeat right 8px center / auto 16px;
}
.compose-form__poll-wrapper,
@@ -197,7 +207,9 @@ html {
}
.drawer__inner__mastodon {
- background: $white url('data:image/svg+xml;utf8,
') no-repeat bottom / 100% auto;
+ background: $white
+ url('data:image/svg+xml;utf8,
')
+ no-repeat bottom / 100% auto;
}
// Change the colors used in compose-form
@@ -246,6 +258,10 @@ html {
border-color: $ui-base-color;
}
+.upload-progress__backdrop {
+ background: $ui-base-color;
+}
+
// Change the background colors of statuses
.focusable:focus {
background: $ui-base-color;
@@ -285,22 +301,8 @@ html {
.dropdown-menu {
background: $white;
- &__arrow {
- &.left {
- border-left-color: $white;
- }
-
- &.top {
- border-top-color: $white;
- }
-
- &.bottom {
- border-bottom-color: $white;
- }
-
- &.right {
- border-right-color: $white;
- }
+ &__arrow::before {
+ background-color: $white;
}
&__item {
@@ -338,11 +340,13 @@ html {
color: $white;
}
-.language-dropdown__dropdown__results__item .language-dropdown__dropdown__results__item__common-name {
+.language-dropdown__dropdown__results__item
+ .language-dropdown__dropdown__results__item__common-name {
color: lighten($ui-base-color, 8%);
}
-.language-dropdown__dropdown__results__item.active .language-dropdown__dropdown__results__item__common-name {
+.language-dropdown__dropdown__results__item.active
+ .language-dropdown__dropdown__results__item__common-name {
color: darken($ui-base-color, 12%);
}
@@ -496,7 +500,8 @@ html {
background: darken($ui-secondary-color, 10%);
}
-.react-toggle.react-toggle--checked:hover:not(.react-toggle--disabled) .react-toggle-track {
+.react-toggle.react-toggle--checked:hover:not(.react-toggle--disabled)
+ .react-toggle-track {
background: lighten($ui-highlight-color, 10%);
}
@@ -528,10 +533,10 @@ html {
}
.simple_form {
- input[type="text"],
- input[type="number"],
- input[type="email"],
- input[type="password"],
+ input[type='text'],
+ input[type='number'],
+ input[type='email'],
+ input[type='password'],
textarea {
&:hover {
border-color: lighten($ui-base-color, 12%);
@@ -557,25 +562,6 @@ html {
}
}
-.directory__tag.active > a,
-.directory__tag.active > div {
- border-color: $ui-highlight-color;
-
- &,
- h4,
- h4 small,
- .fa,
- .trends__item__current {
- color: $white;
- }
-
- &:hover,
- &:active,
- &:focus {
- background: $ui-highlight-color;
- }
-}
-
.batch-table {
&__toolbar,
&__row,
@@ -707,7 +693,9 @@ html {
.mute-modal select {
border: 1px solid lighten($ui-base-color, 8%);
- background: $simple-background-color url("data:image/svg+xml;utf8,
") no-repeat right 8px center / auto 16px;
+ background: $simple-background-color
+ url("data:image/svg+xml;utf8,
")
+ no-repeat right 8px center / auto 16px;
}
// Glitch-soc-specific changes
@@ -754,7 +742,8 @@ html {
color: $white;
}
- &.close, &.close:hover {
+ &.close,
+ &.close:hover {
background: $error-value-color;
color: $primary-text-color;
}
@@ -770,12 +759,17 @@ html {
}
}
-.status.collapsed .status__content:after {
- background: linear-gradient(rgba(darken($ui-base-color, 13%), 0), rgba(darken($ui-base-color, 13%), 1));
+.status.collapsed .status__content::after {
+ background: linear-gradient(
+ rgba(darken($ui-base-color, 13%), 0),
+ rgba(darken($ui-base-color, 13%), 1)
+ );
}
.drawer__inner__mastodon {
- background: $white url('data:image/svg+xml;utf8,
') no-repeat bottom / 100% auto !important;
+ background: $white
+ url('data:image/svg+xml;utf8,
')
+ no-repeat bottom / 100% auto !important;
.mastodon {
filter: contrast(75%) brightness(75%) !important;
diff --git a/app/javascript/flavours/glitch/styles/modal.scss b/app/javascript/flavours/glitch/styles/modal.scss
index 6c6de4206..6170877b2 100644
--- a/app/javascript/flavours/glitch/styles/modal.scss
+++ b/app/javascript/flavours/glitch/styles/modal.scss
@@ -1,5 +1,7 @@
.modal-layout {
- background: $ui-base-color url('data:image/svg+xml;utf8,
') repeat-x bottom fixed;
+ background: $ui-base-color
+ url('data:image/svg+xml;utf8,
')
+ repeat-x bottom fixed;
display: flex;
flex-direction: column;
height: 100vh;
diff --git a/app/javascript/flavours/glitch/styles/polls.scss b/app/javascript/flavours/glitch/styles/polls.scss
index 0847c8f4c..a4ce14a09 100644
--- a/app/javascript/flavours/glitch/styles/polls.scss
+++ b/app/javascript/flavours/glitch/styles/polls.scss
@@ -70,8 +70,8 @@
max-width: calc(100% - 45px - 25px);
}
- input[type=radio],
- input[type=checkbox] {
+ input[type='radio'],
+ input[type='checkbox'] {
display: none;
}
@@ -79,13 +79,12 @@
flex: 1 1 auto;
}
- input[type=text] {
+ input[type='text'] {
display: block;
box-sizing: border-box;
width: 100%;
font-size: 14px;
color: $inverted-text-color;
- display: block;
outline: 0;
font-family: inherit;
background: $simple-background-color;
@@ -116,8 +115,7 @@
box-sizing: border-box;
width: 18px;
height: 18px;
- flex: 0 0 auto;
- margin-right: 10px;
+ margin-inline-end: 10px;
top: -1px;
border-radius: 50%;
vertical-align: middle;
@@ -205,14 +203,14 @@
&:active,
&:focus {
- background-color: rgba($dark-text-color, .1);
+ background-color: rgba($dark-text-color, 0.1);
}
}
.button {
height: 36px;
padding: 0 16px;
- margin-right: 10px;
+ margin-inline-end: 10px;
font-size: 14px;
}
}
@@ -250,7 +248,7 @@
line-height: inherit;
color: $action-button-color;
border-color: $action-button-color;
- margin-right: 5px;
+ margin-inline-end: 5px;
}
li {
@@ -260,7 +258,7 @@
.poll__option {
flex: 0 0 auto;
width: calc(100% - (23px + 6px));
- margin-right: 6px;
+ margin-inline-end: 6px;
}
}
@@ -273,7 +271,9 @@
width: auto;
outline: 0;
font-family: inherit;
- background: $simple-background-color url("data:image/svg+xml;utf8,
") no-repeat right 8px center / auto 16px;
+ background: $simple-background-color
+ url("data:image/svg+xml;utf8,
")
+ no-repeat right 8px center / auto 16px;
border: 1px solid darken($simple-background-color, 14%);
border-radius: 4px;
padding: 6px 10px;
@@ -289,10 +289,10 @@
color: $dark-text-color;
&__chart {
- background: rgba(darken($ui-primary-color, 14%), 0.2);
+ background: rgba(darken($ui-primary-color, 14%), 0.7);
&.leading {
- background: rgba($ui-highlight-color, 0.2);
+ background: rgba($ui-highlight-color, 0.5);
}
}
}
diff --git a/app/javascript/flavours/glitch/styles/rich_text.scss b/app/javascript/flavours/glitch/styles/rich_text.scss
new file mode 100644
index 000000000..e60818353
--- /dev/null
+++ b/app/javascript/flavours/glitch/styles/rich_text.scss
@@ -0,0 +1,99 @@
+.status__content__text,
+.e-content,
+.reply-indicator__content {
+ pre,
+ blockquote {
+ margin-bottom: 20px;
+ white-space: pre-wrap;
+ unicode-bidi: plaintext;
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+ }
+
+ blockquote {
+ padding-left: 10px;
+ border-left: 3px solid $darker-text-color;
+ color: $darker-text-color;
+ white-space: normal;
+
+ p:last-child {
+ margin-bottom: 0;
+ }
+ }
+
+ & > ul,
+ & > ol {
+ margin-bottom: 20px;
+ }
+
+ h1,
+ h2,
+ h3,
+ h4,
+ h5 {
+ margin-top: 20px;
+ margin-bottom: 20px;
+ }
+
+ h1,
+ h2 {
+ font-weight: 700;
+ font-size: 1.2em;
+ }
+
+ h2 {
+ font-size: 1.1em;
+ }
+
+ h3,
+ h4,
+ h5 {
+ font-weight: 500;
+ }
+
+ b,
+ strong {
+ font-weight: 700;
+ }
+
+ em,
+ i {
+ font-style: italic;
+ }
+
+ sub {
+ font-size: smaller;
+ vertical-align: sub;
+ }
+
+ sup {
+ font-size: smaller;
+ vertical-align: super;
+ }
+
+ ul,
+ ol {
+ margin-left: 2em;
+
+ p {
+ margin: 0;
+ }
+ }
+
+ ul {
+ list-style-type: disc;
+ }
+
+ ol {
+ list-style-type: decimal;
+ }
+}
+
+.reply-indicator__content {
+ blockquote {
+ border-left-color: $inverted-text-color;
+ color: $inverted-text-color;
+ }
+}
diff --git a/app/javascript/flavours/glitch/styles/rtl.scss b/app/javascript/flavours/glitch/styles/rtl.scss
index c14c07cb9..64a5c2c03 100644
--- a/app/javascript/flavours/glitch/styles/rtl.scss
+++ b/app/javascript/flavours/glitch/styles/rtl.scss
@@ -255,8 +255,8 @@ body.rtl {
padding-right: 0;
}
- .simple_form .check_boxes .checkbox input[type="checkbox"],
- .simple_form .input.boolean input[type="checkbox"] {
+ .simple_form .check_boxes .checkbox input[type='checkbox'],
+ .simple_form .input.boolean input[type='checkbox'] {
left: auto;
right: 0;
}
@@ -294,12 +294,18 @@ body.rtl {
&::after {
right: auto;
left: 0;
- background-image: linear-gradient(to left, rgba(darken($ui-base-color, 10%), 0), darken($ui-base-color, 10%));
+ background-image: linear-gradient(
+ to left,
+ rgba(darken($ui-base-color, 10%), 0),
+ darken($ui-base-color, 10%)
+ );
}
}
.simple_form select {
- background: darken($ui-base-color, 10%) url("data:image/svg+xml;utf8,
") no-repeat left 8px center / auto 16px;
+ background: darken($ui-base-color, 10%)
+ url("data:image/svg+xml;utf8,
")
+ no-repeat left 8px center / auto 16px;
}
.table th,
@@ -346,11 +352,11 @@ body.rtl {
}
.fa-chevron-left::before {
- content: "\F054";
+ content: '\F054';
}
.fa-chevron-right::before {
- content: "\F053";
+ content: '\F053';
}
.column-back-button__icon {
diff --git a/app/javascript/flavours/glitch/styles/statuses.scss b/app/javascript/flavours/glitch/styles/statuses.scss
index 88fa3ffa0..f7037d9dc 100644
--- a/app/javascript/flavours/glitch/styles/statuses.scss
+++ b/app/javascript/flavours/glitch/styles/statuses.scss
@@ -134,7 +134,7 @@ a.button.logo-button {
}
.embed {
- .status__content[data-spoiler=folded] {
+ .status__content[data-spoiler='folded'] {
.e-content {
display: none;
}
diff --git a/app/javascript/flavours/glitch/styles/variables.scss b/app/javascript/flavours/glitch/styles/variables.scss
index b865b5a2d..0132da51f 100644
--- a/app/javascript/flavours/glitch/styles/variables.scss
+++ b/app/javascript/flavours/glitch/styles/variables.scss
@@ -1,18 +1,18 @@
// Commonly used web colors
-$black: #000000; // Black
-$white: #ffffff; // White
-$success-green: #79bd9a; // Padua
-$error-red: #df405a; // Cerise
-$warning-red: #ff5050; // Sunset Orange
-$gold-star: #ca8f04; // Dark Goldenrod
+$black: #000000; // Black
+$white: #ffffff; // White
+$success-green: #79bd9a; // Padua
+$error-red: #df405a; // Cerise
+$warning-red: #ff5050; // Sunset Orange
+$gold-star: #ca8f04; // Dark Goldenrod
$red-bookmark: $warning-red;
// Values from the classic Mastodon UI
-$classic-base-color: #282c37; // Midnight Express
-$classic-primary-color: #9baec8; // Echo Blue
-$classic-secondary-color: #d9e1e8; // Pattens Blue
-$classic-highlight-color: #6364ff; // Brand purple
+$classic-base-color: #282c37; // Midnight Express
+$classic-primary-color: #9baec8; // Echo Blue
+$classic-secondary-color: #d9e1e8; // Pattens Blue
+$classic-highlight-color: #6364ff; // Brand purple
// Variables for defaults in UI
$base-shadow-color: $black !default;
@@ -23,10 +23,13 @@ $valid-value-color: $success-green !default;
$error-value-color: $error-red !default;
// Tell UI to use selected colors
-$ui-base-color: $classic-base-color !default; // Darkest
-$ui-base-lighter-color: lighten($ui-base-color, 26%) !default; // Lighter darkest
-$ui-primary-color: $classic-primary-color !default; // Lighter
-$ui-secondary-color: $classic-secondary-color !default; // Lightest
+$ui-base-color: $classic-base-color !default; // Darkest
+$ui-base-lighter-color: lighten(
+ $ui-base-color,
+ 26%
+) !default; // Lighter darkest
+$ui-primary-color: $classic-primary-color !default; // Lighter
+$ui-secondary-color: $classic-secondary-color !default; // Lightest
$ui-highlight-color: $classic-highlight-color !default;
// Variables for texts
@@ -38,6 +41,7 @@ $highlight-text-color: lighten($ui-highlight-color, 8%) !default;
$action-button-color: $ui-base-lighter-color !default;
$passive-text-color: $gold-star !default;
$active-passive-text-color: $success-green !default;
+
// For texts on inverted backgrounds
$inverted-text-color: $ui-base-color !default;
$lighter-text-color: $ui-base-lighter-color !default;
@@ -48,6 +52,7 @@ $cjk-langs: ja, ko, zh-CN, zh-HK, zh-TW;
// Variables for components
$media-modal-media-max-width: 100%;
+
// put margins on top and bottom of image to avoid the screen covered by image.
$media-modal-media-max-height: 80%;
diff --git a/app/javascript/flavours/glitch/styles/widgets.scss b/app/javascript/flavours/glitch/styles/widgets.scss
index fd091ee89..0f2b7ac5b 100644
--- a/app/javascript/flavours/glitch/styles/widgets.scss
+++ b/app/javascript/flavours/glitch/styles/widgets.scss
@@ -1,4 +1,4 @@
-@use "sass:math";
+@use 'sass:math';
.hero-widget {
margin-bottom: 10px;
diff --git a/app/javascript/flavours/glitch/theme.yml b/app/javascript/flavours/glitch/theme.yml
index e85dd74e1..672dd5440 100644
--- a/app/javascript/flavours/glitch/theme.yml
+++ b/app/javascript/flavours/glitch/theme.yml
@@ -1,33 +1,36 @@
# (REQUIRED) The location of the pack files.
pack:
admin:
- - packs/admin.js
- - packs/public.js
- auth: packs/public.js
+ - packs/admin.jsx
+ - packs/public.jsx
+ auth: packs/public.jsx
common:
filename: packs/common.js
stylesheet: true
- embed: packs/public.js
+ embed: packs/public.jsx
error: packs/error.js
home:
filename: packs/home.js
preload:
- - flavours/glitch/async/compose
- - flavours/glitch/async/getting_started
- - flavours/glitch/async/home_timeline
- - flavours/glitch/async/notifications
+ - flavours/glitch/async/compose
+ - flavours/glitch/async/getting_started
+ - flavours/glitch/async/home_timeline
+ - flavours/glitch/async/notifications
mailer:
modal:
- public: packs/public.js
+ public: packs/public.jsx
settings: packs/settings.js
- share: packs/share.js
+ share: packs/share.jsx
# (OPTIONAL) The directory which contains localization files for
# the flavour, relative to this directory. The contents of this
-# directory must be `.js` or `.json` files whose names correspond to
+# directory must be `.json` files whose names correspond to
# language tags and whose default exports are a messages object.
locales: locales
+# (OPTIONAL) Which flavour to inherit locales from
+inherit_locales: vanilla
+
# (OPTIONAL) A file to use as the preview screenshot for the flavour,
# or an array thereof. These are the full path from `app/javascript/`.
screenshot: flavours/glitch/images/glitch-preview.jpg
diff --git a/app/javascript/flavours/glitch/utils/hashtag.js b/app/javascript/flavours/glitch/utils/hashtag.js
index 2024a665c..d91cd5591 100644
--- a/app/javascript/flavours/glitch/utils/hashtag.js
+++ b/app/javascript/flavours/glitch/utils/hashtag.js
@@ -1,6 +1,6 @@
export function recoverHashtags (recognizedTags, text) {
return recognizedTags.map(tag => {
- const re = new RegExp(`(?:^|[^\/\)\w])#(${tag.name})`, 'i');
+ const re = new RegExp(`(?:^|[^/)\w])#(${tag.name})`, 'i');
const matched_hashtag = text.match(re);
return matched_hashtag ? matched_hashtag[1] : null;
},
diff --git a/app/javascript/flavours/glitch/utils/icons.js b/app/javascript/flavours/glitch/utils/icons.jsx
similarity index 100%
rename from app/javascript/flavours/glitch/utils/icons.js
rename to app/javascript/flavours/glitch/utils/icons.jsx
diff --git a/app/javascript/flavours/glitch/utils/notifications.js b/app/javascript/flavours/glitch/utils/notifications.js
index 7634cac21..3cdf7caea 100644
--- a/app/javascript/flavours/glitch/utils/notifications.js
+++ b/app/javascript/flavours/glitch/utils/notifications.js
@@ -3,7 +3,7 @@
const checkNotificationPromise = () => {
try {
- // eslint-disable-next-line promise/catch-or-return
+ // eslint-disable-next-line promise/catch-or-return, promise/valid-params
Notification.requestPermission().then();
} catch(e) {
return false;
diff --git a/app/javascript/flavours/glitch/utils/privacy_preference.js b/app/javascript/flavours/glitch/utils/privacy_preference.js
index 7781ca7fa..51bdf072d 100644
--- a/app/javascript/flavours/glitch/utils/privacy_preference.js
+++ b/app/javascript/flavours/glitch/utils/privacy_preference.js
@@ -2,4 +2,4 @@ export const order = ['public', 'unlisted', 'private', 'direct'];
export function privacyPreference (a, b) {
return order[Math.max(order.indexOf(a), order.indexOf(b), 0)];
-};
+}
diff --git a/app/javascript/flavours/glitch/uuid.js b/app/javascript/flavours/glitch/uuid.js
index be1899305..0d2cfaa77 100644
--- a/app/javascript/flavours/glitch/uuid.js
+++ b/app/javascript/flavours/glitch/uuid.js
@@ -1,3 +1,3 @@
export default function uuid(a) {
return a ? (a^Math.random() * 16 >> a / 4).toString(16) : ([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g, uuid);
-};
+}
diff --git a/app/javascript/flavours/vanilla/theme.yml b/app/javascript/flavours/vanilla/theme.yml
index 5cb76b721..ccab925aa 100644
--- a/app/javascript/flavours/vanilla/theme.yml
+++ b/app/javascript/flavours/vanilla/theme.yml
@@ -1,26 +1,26 @@
# (REQUIRED) The location of the pack files inside `pack_directory`.
pack:
admin:
- - admin.js
- - public.js
- auth: public.js
+ - admin.jsx
+ - public.jsx
+ auth: public.jsx
common:
filename: common.js
stylesheet: true
- embed: public.js
+ embed: public.jsx
error: error.js
home:
filename: application.js
preload:
- - features/getting_started
- - features/compose
- - features/home_timeline
- - features/notifications
+ - features/getting_started
+ - features/compose
+ - features/home_timeline
+ - features/notifications
mailer:
modal:
- public: public.js
- settings: public.js
- share: share.js
+ public: public.jsx
+ settings: public.jsx
+ share: share.jsx
# (OPTIONAL) The directory which contains localization files for
# the flavour, relative to this directory.
diff --git a/app/javascript/hooks/useHovering.ts b/app/javascript/hooks/useHovering.ts
new file mode 100644
index 000000000..2062e70d2
--- /dev/null
+++ b/app/javascript/hooks/useHovering.ts
@@ -0,0 +1,17 @@
+import { useCallback, useState } from 'react';
+
+export const useHovering = (animate?: boolean) => {
+ const [hovering, setHovering] = useState
(animate ?? false);
+
+ const handleMouseEnter = useCallback(() => {
+ if (animate) return;
+ setHovering(true);
+ }, [animate]);
+
+ const handleMouseLeave = useCallback(() => {
+ if (animate) return;
+ setHovering(false);
+ }, [animate]);
+
+ return { hovering, handleMouseEnter, handleMouseLeave };
+};
diff --git a/app/javascript/images/logo-symbol-icon.svg b/app/javascript/images/logo-symbol-icon.svg
index 56cf03921..c4c14f098 100644
--- a/app/javascript/images/logo-symbol-icon.svg
+++ b/app/javascript/images/logo-symbol-icon.svg
@@ -1,2 +1,2 @@
-
+
diff --git a/app/javascript/images/logo-symbol-wordmark.svg b/app/javascript/images/logo-symbol-wordmark.svg
index 7e7f7b087..ee0b636d9 100644
--- a/app/javascript/images/logo-symbol-wordmark.svg
+++ b/app/javascript/images/logo-symbol-wordmark.svg
@@ -7,5 +7,5 @@
-
+
diff --git a/app/javascript/mastodon/actions/account_notes.js b/app/javascript/mastodon/actions/account_notes.js
index d17441000..72b943300 100644
--- a/app/javascript/mastodon/actions/account_notes.js
+++ b/app/javascript/mastodon/actions/account_notes.js
@@ -14,24 +14,24 @@ export function submitAccountNote(id, value) {
dispatch(submitAccountNoteSuccess(response.data));
}).catch(error => dispatch(submitAccountNoteFail(error)));
};
-};
+}
export function submitAccountNoteRequest() {
return {
type: ACCOUNT_NOTE_SUBMIT_REQUEST,
};
-};
+}
export function submitAccountNoteSuccess(relationship) {
return {
type: ACCOUNT_NOTE_SUBMIT_SUCCESS,
relationship,
};
-};
+}
export function submitAccountNoteFail(error) {
return {
type: ACCOUNT_NOTE_SUBMIT_FAIL,
error,
};
-};
+}
diff --git a/app/javascript/mastodon/actions/accounts.js b/app/javascript/mastodon/actions/accounts.js
index f61f06e40..88407ae6c 100644
--- a/app/javascript/mastodon/actions/accounts.js
+++ b/app/javascript/mastodon/actions/accounts.js
@@ -91,7 +91,7 @@ export function fetchAccount(id) {
dispatch(fetchAccountFail(id, error));
});
};
-};
+}
export const lookupAccount = acct => (dispatch, getState) => {
dispatch(lookupAccountRequest(acct));
@@ -126,13 +126,13 @@ export function fetchAccountRequest(id) {
type: ACCOUNT_FETCH_REQUEST,
id,
};
-};
+}
export function fetchAccountSuccess() {
return {
type: ACCOUNT_FETCH_SUCCESS,
};
-};
+}
export function fetchAccountFail(id, error) {
return {
@@ -141,7 +141,7 @@ export function fetchAccountFail(id, error) {
error,
skipAlert: true,
};
-};
+}
export function followAccount(id, options = { reblogs: true }) {
return (dispatch, getState) => {
@@ -156,7 +156,7 @@ export function followAccount(id, options = { reblogs: true }) {
dispatch(followAccountFail(error, locked));
});
};
-};
+}
export function unfollowAccount(id) {
return (dispatch, getState) => {
@@ -168,7 +168,7 @@ export function unfollowAccount(id) {
dispatch(unfollowAccountFail(error));
});
};
-};
+}
export function followAccountRequest(id, locked) {
return {
@@ -177,7 +177,7 @@ export function followAccountRequest(id, locked) {
locked,
skipLoading: true,
};
-};
+}
export function followAccountSuccess(relationship, alreadyFollowing) {
return {
@@ -186,7 +186,7 @@ export function followAccountSuccess(relationship, alreadyFollowing) {
alreadyFollowing,
skipLoading: true,
};
-};
+}
export function followAccountFail(error, locked) {
return {
@@ -195,7 +195,7 @@ export function followAccountFail(error, locked) {
locked,
skipLoading: true,
};
-};
+}
export function unfollowAccountRequest(id) {
return {
@@ -203,7 +203,7 @@ export function unfollowAccountRequest(id) {
id,
skipLoading: true,
};
-};
+}
export function unfollowAccountSuccess(relationship, statuses) {
return {
@@ -212,7 +212,7 @@ export function unfollowAccountSuccess(relationship, statuses) {
statuses,
skipLoading: true,
};
-};
+}
export function unfollowAccountFail(error) {
return {
@@ -220,7 +220,7 @@ export function unfollowAccountFail(error) {
error,
skipLoading: true,
};
-};
+}
export function blockAccount(id) {
return (dispatch, getState) => {
@@ -233,7 +233,7 @@ export function blockAccount(id) {
dispatch(blockAccountFail(id, error));
});
};
-};
+}
export function unblockAccount(id) {
return (dispatch, getState) => {
@@ -245,14 +245,14 @@ export function unblockAccount(id) {
dispatch(unblockAccountFail(id, error));
});
};
-};
+}
export function blockAccountRequest(id) {
return {
type: ACCOUNT_BLOCK_REQUEST,
id,
};
-};
+}
export function blockAccountSuccess(relationship, statuses) {
return {
@@ -260,35 +260,35 @@ export function blockAccountSuccess(relationship, statuses) {
relationship,
statuses,
};
-};
+}
export function blockAccountFail(error) {
return {
type: ACCOUNT_BLOCK_FAIL,
error,
};
-};
+}
export function unblockAccountRequest(id) {
return {
type: ACCOUNT_UNBLOCK_REQUEST,
id,
};
-};
+}
export function unblockAccountSuccess(relationship) {
return {
type: ACCOUNT_UNBLOCK_SUCCESS,
relationship,
};
-};
+}
export function unblockAccountFail(error) {
return {
type: ACCOUNT_UNBLOCK_FAIL,
error,
};
-};
+}
export function muteAccount(id, notifications, duration=0) {
@@ -302,7 +302,7 @@ export function muteAccount(id, notifications, duration=0) {
dispatch(muteAccountFail(id, error));
});
};
-};
+}
export function unmuteAccount(id) {
return (dispatch, getState) => {
@@ -314,14 +314,14 @@ export function unmuteAccount(id) {
dispatch(unmuteAccountFail(id, error));
});
};
-};
+}
export function muteAccountRequest(id) {
return {
type: ACCOUNT_MUTE_REQUEST,
id,
};
-};
+}
export function muteAccountSuccess(relationship, statuses) {
return {
@@ -329,35 +329,35 @@ export function muteAccountSuccess(relationship, statuses) {
relationship,
statuses,
};
-};
+}
export function muteAccountFail(error) {
return {
type: ACCOUNT_MUTE_FAIL,
error,
};
-};
+}
export function unmuteAccountRequest(id) {
return {
type: ACCOUNT_UNMUTE_REQUEST,
id,
};
-};
+}
export function unmuteAccountSuccess(relationship) {
return {
type: ACCOUNT_UNMUTE_SUCCESS,
relationship,
};
-};
+}
export function unmuteAccountFail(error) {
return {
type: ACCOUNT_UNMUTE_FAIL,
error,
};
-};
+}
export function fetchFollowers(id) {
@@ -374,14 +374,14 @@ export function fetchFollowers(id) {
dispatch(fetchFollowersFail(id, error));
});
};
-};
+}
export function fetchFollowersRequest(id) {
return {
type: FOLLOWERS_FETCH_REQUEST,
id,
};
-};
+}
export function fetchFollowersSuccess(id, accounts, next) {
return {
@@ -390,7 +390,7 @@ export function fetchFollowersSuccess(id, accounts, next) {
accounts,
next,
};
-};
+}
export function fetchFollowersFail(id, error) {
return {
@@ -399,7 +399,7 @@ export function fetchFollowersFail(id, error) {
error,
skipNotFound: true,
};
-};
+}
export function expandFollowers(id) {
return (dispatch, getState) => {
@@ -421,14 +421,14 @@ export function expandFollowers(id) {
dispatch(expandFollowersFail(id, error));
});
};
-};
+}
export function expandFollowersRequest(id) {
return {
type: FOLLOWERS_EXPAND_REQUEST,
id,
};
-};
+}
export function expandFollowersSuccess(id, accounts, next) {
return {
@@ -437,7 +437,7 @@ export function expandFollowersSuccess(id, accounts, next) {
accounts,
next,
};
-};
+}
export function expandFollowersFail(id, error) {
return {
@@ -445,7 +445,7 @@ export function expandFollowersFail(id, error) {
id,
error,
};
-};
+}
export function fetchFollowing(id) {
return (dispatch, getState) => {
@@ -461,14 +461,14 @@ export function fetchFollowing(id) {
dispatch(fetchFollowingFail(id, error));
});
};
-};
+}
export function fetchFollowingRequest(id) {
return {
type: FOLLOWING_FETCH_REQUEST,
id,
};
-};
+}
export function fetchFollowingSuccess(id, accounts, next) {
return {
@@ -477,7 +477,7 @@ export function fetchFollowingSuccess(id, accounts, next) {
accounts,
next,
};
-};
+}
export function fetchFollowingFail(id, error) {
return {
@@ -486,7 +486,7 @@ export function fetchFollowingFail(id, error) {
error,
skipNotFound: true,
};
-};
+}
export function expandFollowing(id) {
return (dispatch, getState) => {
@@ -508,14 +508,14 @@ export function expandFollowing(id) {
dispatch(expandFollowingFail(id, error));
});
};
-};
+}
export function expandFollowingRequest(id) {
return {
type: FOLLOWING_EXPAND_REQUEST,
id,
};
-};
+}
export function expandFollowingSuccess(id, accounts, next) {
return {
@@ -524,7 +524,7 @@ export function expandFollowingSuccess(id, accounts, next) {
accounts,
next,
};
-};
+}
export function expandFollowingFail(id, error) {
return {
@@ -532,7 +532,7 @@ export function expandFollowingFail(id, error) {
id,
error,
};
-};
+}
export function fetchRelationships(accountIds) {
return (dispatch, getState) => {
@@ -553,7 +553,7 @@ export function fetchRelationships(accountIds) {
dispatch(fetchRelationshipsFail(error));
});
};
-};
+}
export function fetchRelationshipsRequest(ids) {
return {
@@ -561,7 +561,7 @@ export function fetchRelationshipsRequest(ids) {
ids,
skipLoading: true,
};
-};
+}
export function fetchRelationshipsSuccess(relationships) {
return {
@@ -569,7 +569,7 @@ export function fetchRelationshipsSuccess(relationships) {
relationships,
skipLoading: true,
};
-};
+}
export function fetchRelationshipsFail(error) {
return {
@@ -578,7 +578,7 @@ export function fetchRelationshipsFail(error) {
skipLoading: true,
skipNotFound: true,
};
-};
+}
export function fetchFollowRequests() {
return (dispatch, getState) => {
@@ -590,13 +590,13 @@ export function fetchFollowRequests() {
dispatch(fetchFollowRequestsSuccess(response.data, next ? next.uri : null));
}).catch(error => dispatch(fetchFollowRequestsFail(error)));
};
-};
+}
export function fetchFollowRequestsRequest() {
return {
type: FOLLOW_REQUESTS_FETCH_REQUEST,
};
-};
+}
export function fetchFollowRequestsSuccess(accounts, next) {
return {
@@ -604,14 +604,14 @@ export function fetchFollowRequestsSuccess(accounts, next) {
accounts,
next,
};
-};
+}
export function fetchFollowRequestsFail(error) {
return {
type: FOLLOW_REQUESTS_FETCH_FAIL,
error,
};
-};
+}
export function expandFollowRequests() {
return (dispatch, getState) => {
@@ -629,13 +629,13 @@ export function expandFollowRequests() {
dispatch(expandFollowRequestsSuccess(response.data, next ? next.uri : null));
}).catch(error => dispatch(expandFollowRequestsFail(error)));
};
-};
+}
export function expandFollowRequestsRequest() {
return {
type: FOLLOW_REQUESTS_EXPAND_REQUEST,
};
-};
+}
export function expandFollowRequestsSuccess(accounts, next) {
return {
@@ -643,14 +643,14 @@ export function expandFollowRequestsSuccess(accounts, next) {
accounts,
next,
};
-};
+}
export function expandFollowRequestsFail(error) {
return {
type: FOLLOW_REQUESTS_EXPAND_FAIL,
error,
};
-};
+}
export function authorizeFollowRequest(id) {
return (dispatch, getState) => {
@@ -661,21 +661,21 @@ export function authorizeFollowRequest(id) {
.then(() => dispatch(authorizeFollowRequestSuccess(id)))
.catch(error => dispatch(authorizeFollowRequestFail(id, error)));
};
-};
+}
export function authorizeFollowRequestRequest(id) {
return {
type: FOLLOW_REQUEST_AUTHORIZE_REQUEST,
id,
};
-};
+}
export function authorizeFollowRequestSuccess(id) {
return {
type: FOLLOW_REQUEST_AUTHORIZE_SUCCESS,
id,
};
-};
+}
export function authorizeFollowRequestFail(id, error) {
return {
@@ -683,7 +683,7 @@ export function authorizeFollowRequestFail(id, error) {
id,
error,
};
-};
+}
export function rejectFollowRequest(id) {
@@ -695,21 +695,21 @@ export function rejectFollowRequest(id) {
.then(() => dispatch(rejectFollowRequestSuccess(id)))
.catch(error => dispatch(rejectFollowRequestFail(id, error)));
};
-};
+}
export function rejectFollowRequestRequest(id) {
return {
type: FOLLOW_REQUEST_REJECT_REQUEST,
id,
};
-};
+}
export function rejectFollowRequestSuccess(id) {
return {
type: FOLLOW_REQUEST_REJECT_SUCCESS,
id,
};
-};
+}
export function rejectFollowRequestFail(id, error) {
return {
@@ -717,7 +717,7 @@ export function rejectFollowRequestFail(id, error) {
id,
error,
};
-};
+}
export function pinAccount(id) {
return (dispatch, getState) => {
@@ -729,7 +729,7 @@ export function pinAccount(id) {
dispatch(pinAccountFail(error));
});
};
-};
+}
export function unpinAccount(id) {
return (dispatch, getState) => {
@@ -741,49 +741,49 @@ export function unpinAccount(id) {
dispatch(unpinAccountFail(error));
});
};
-};
+}
export function pinAccountRequest(id) {
return {
type: ACCOUNT_PIN_REQUEST,
id,
};
-};
+}
export function pinAccountSuccess(relationship) {
return {
type: ACCOUNT_PIN_SUCCESS,
relationship,
};
-};
+}
export function pinAccountFail(error) {
return {
type: ACCOUNT_PIN_FAIL,
error,
};
-};
+}
export function unpinAccountRequest(id) {
return {
type: ACCOUNT_UNPIN_REQUEST,
id,
};
-};
+}
export function unpinAccountSuccess(relationship) {
return {
type: ACCOUNT_UNPIN_SUCCESS,
relationship,
};
-};
+}
export function unpinAccountFail(error) {
return {
type: ACCOUNT_UNPIN_FAIL,
error,
};
-};
+}
export const revealAccount = id => ({
type: ACCOUNT_REVEAL,
diff --git a/app/javascript/mastodon/actions/alerts.js b/app/javascript/mastodon/actions/alerts.js
index 1670f9c10..0220b0af5 100644
--- a/app/javascript/mastodon/actions/alerts.js
+++ b/app/javascript/mastodon/actions/alerts.js
@@ -17,13 +17,13 @@ export function dismissAlert(alert) {
type: ALERT_DISMISS,
alert,
};
-};
+}
export function clearAlert() {
return {
type: ALERT_CLEAR,
};
-};
+}
export function showAlert(title = messages.unexpectedTitle, message = messages.unexpectedMessage, message_values = undefined) {
return {
@@ -32,7 +32,7 @@ export function showAlert(title = messages.unexpectedTitle, message = messages.u
message,
message_values,
};
-};
+}
export function showAlertForError(error, skipNotFound = false) {
if (error.response) {
diff --git a/app/javascript/mastodon/actions/announcements.js b/app/javascript/mastodon/actions/announcements.js
index 1bdea909f..586dcfd33 100644
--- a/app/javascript/mastodon/actions/announcements.js
+++ b/app/javascript/mastodon/actions/announcements.js
@@ -102,7 +102,7 @@ export const addReaction = (announcementId, name) => (dispatch, getState) => {
dispatch(addReactionRequest(announcementId, name, alreadyAdded));
}
- api(getState).put(`/api/v1/announcements/${announcementId}/reactions/${name}`).then(() => {
+ api(getState).put(`/api/v1/announcements/${announcementId}/reactions/${encodeURIComponent(name)}`).then(() => {
dispatch(addReactionSuccess(announcementId, name, alreadyAdded));
}).catch(err => {
if (!alreadyAdded) {
@@ -136,7 +136,7 @@ export const addReactionFail = (announcementId, name, error) => ({
export const removeReaction = (announcementId, name) => (dispatch, getState) => {
dispatch(removeReactionRequest(announcementId, name));
- api(getState).delete(`/api/v1/announcements/${announcementId}/reactions/${name}`).then(() => {
+ api(getState).delete(`/api/v1/announcements/${announcementId}/reactions/${encodeURIComponent(name)}`).then(() => {
dispatch(removeReactionSuccess(announcementId, name));
}).catch(err => {
dispatch(removeReactionFail(announcementId, name, err));
diff --git a/app/javascript/mastodon/actions/blocks.js b/app/javascript/mastodon/actions/blocks.js
index fd9881302..192aa3ce4 100644
--- a/app/javascript/mastodon/actions/blocks.js
+++ b/app/javascript/mastodon/actions/blocks.js
@@ -24,13 +24,13 @@ export function fetchBlocks() {
dispatch(fetchRelationships(response.data.map(item => item.id)));
}).catch(error => dispatch(fetchBlocksFail(error)));
};
-};
+}
export function fetchBlocksRequest() {
return {
type: BLOCKS_FETCH_REQUEST,
};
-};
+}
export function fetchBlocksSuccess(accounts, next) {
return {
@@ -38,14 +38,14 @@ export function fetchBlocksSuccess(accounts, next) {
accounts,
next,
};
-};
+}
export function fetchBlocksFail(error) {
return {
type: BLOCKS_FETCH_FAIL,
error,
};
-};
+}
export function expandBlocks() {
return (dispatch, getState) => {
@@ -64,13 +64,13 @@ export function expandBlocks() {
dispatch(fetchRelationships(response.data.map(item => item.id)));
}).catch(error => dispatch(expandBlocksFail(error)));
};
-};
+}
export function expandBlocksRequest() {
return {
type: BLOCKS_EXPAND_REQUEST,
};
-};
+}
export function expandBlocksSuccess(accounts, next) {
return {
@@ -78,14 +78,14 @@ export function expandBlocksSuccess(accounts, next) {
accounts,
next,
};
-};
+}
export function expandBlocksFail(error) {
return {
type: BLOCKS_EXPAND_FAIL,
error,
};
-};
+}
export function initBlockModal(account) {
return dispatch => {
diff --git a/app/javascript/mastodon/actions/bookmarks.js b/app/javascript/mastodon/actions/bookmarks.js
index 544ed2ff2..3c8eec546 100644
--- a/app/javascript/mastodon/actions/bookmarks.js
+++ b/app/javascript/mastodon/actions/bookmarks.js
@@ -25,13 +25,13 @@ export function fetchBookmarkedStatuses() {
dispatch(fetchBookmarkedStatusesFail(error));
});
};
-};
+}
export function fetchBookmarkedStatusesRequest() {
return {
type: BOOKMARKED_STATUSES_FETCH_REQUEST,
};
-};
+}
export function fetchBookmarkedStatusesSuccess(statuses, next) {
return {
@@ -39,14 +39,14 @@ export function fetchBookmarkedStatusesSuccess(statuses, next) {
statuses,
next,
};
-};
+}
export function fetchBookmarkedStatusesFail(error) {
return {
type: BOOKMARKED_STATUSES_FETCH_FAIL,
error,
};
-};
+}
export function expandBookmarkedStatuses() {
return (dispatch, getState) => {
@@ -66,13 +66,13 @@ export function expandBookmarkedStatuses() {
dispatch(expandBookmarkedStatusesFail(error));
});
};
-};
+}
export function expandBookmarkedStatusesRequest() {
return {
type: BOOKMARKED_STATUSES_EXPAND_REQUEST,
};
-};
+}
export function expandBookmarkedStatusesSuccess(statuses, next) {
return {
@@ -80,11 +80,11 @@ export function expandBookmarkedStatusesSuccess(statuses, next) {
statuses,
next,
};
-};
+}
export function expandBookmarkedStatusesFail(error) {
return {
type: BOOKMARKED_STATUSES_EXPAND_FAIL,
error,
};
-};
+}
diff --git a/app/javascript/mastodon/actions/columns.js b/app/javascript/mastodon/actions/columns.js
index 9b87415fb..302c3f0f9 100644
--- a/app/javascript/mastodon/actions/columns.js
+++ b/app/javascript/mastodon/actions/columns.js
@@ -15,7 +15,7 @@ export function addColumn(id, params) {
dispatch(saveSettings());
};
-};
+}
export function removeColumn(uuid) {
return dispatch => {
@@ -26,7 +26,7 @@ export function removeColumn(uuid) {
dispatch(saveSettings());
};
-};
+}
export function moveColumn(uuid, direction) {
return dispatch => {
@@ -38,7 +38,7 @@ export function moveColumn(uuid, direction) {
dispatch(saveSettings());
};
-};
+}
export function changeColumnParams(uuid, path, value) {
return dispatch => {
diff --git a/app/javascript/mastodon/actions/compose.js b/app/javascript/mastodon/actions/compose.js
index 26d389648..e1db44359 100644
--- a/app/javascript/mastodon/actions/compose.js
+++ b/app/javascript/mastodon/actions/compose.js
@@ -4,7 +4,6 @@ import { defineMessages } from 'react-intl';
import api from 'mastodon/api';
import { search as emojiSearch } from 'mastodon/features/emoji/emoji_mart_search_light';
import { tagHistory } from 'mastodon/settings';
-import resizeImage from 'mastodon/utils/resize_image';
import { showAlert, showAlertForError } from './alerts';
import { useEmoji } from './emojis';
import { importFetchedAccounts, importFetchedStatus } from './importer';
@@ -94,14 +93,14 @@ export function setComposeToStatus(status, text, spoiler_text) {
text,
spoiler_text,
};
-};
+}
export function changeCompose(text) {
return {
type: COMPOSE_CHANGE,
text: text,
};
-};
+}
export function replyCompose(status, routerHistory) {
return (dispatch, getState) => {
@@ -112,19 +111,19 @@ export function replyCompose(status, routerHistory) {
ensureComposeIsVisible(getState, routerHistory);
};
-};
+}
export function cancelReplyCompose() {
return {
type: COMPOSE_REPLY_CANCEL,
};
-};
+}
export function resetCompose() {
return {
type: COMPOSE_RESET,
};
-};
+}
export function mentionCompose(account, routerHistory) {
return (dispatch, getState) => {
@@ -135,7 +134,7 @@ export function mentionCompose(account, routerHistory) {
ensureComposeIsVisible(getState, routerHistory);
};
-};
+}
export function directCompose(account, routerHistory) {
return (dispatch, getState) => {
@@ -146,7 +145,7 @@ export function directCompose(account, routerHistory) {
ensureComposeIsVisible(getState, routerHistory);
};
-};
+}
export function submitCompose(routerHistory) {
return function (dispatch, getState) {
@@ -160,6 +159,26 @@ export function submitCompose(routerHistory) {
dispatch(submitComposeRequest());
+ // If we're editing a post with media attachments, those have not
+ // necessarily been changed on the server. Do it now in the same
+ // API call.
+ let media_attributes;
+ if (statusId !== null) {
+ media_attributes = media.map(item => {
+ let focus;
+
+ if (item.getIn(['meta', 'focus'])) {
+ focus = `${item.getIn(['meta', 'focus', 'x']).toFixed(2)},${item.getIn(['meta', 'focus', 'y']).toFixed(2)}`;
+ }
+
+ return {
+ id: item.get('id'),
+ description: item.get('description'),
+ focus,
+ };
+ });
+ }
+
api(getState).request({
url: statusId === null ? '/api/v1/statuses' : `/api/v1/statuses/${statusId}`,
method: statusId === null ? 'post' : 'put',
@@ -167,6 +186,7 @@ export function submitCompose(routerHistory) {
status,
in_reply_to_id: getState().getIn(['compose', 'in_reply_to'], null),
media_ids: media.map(item => item.get('id')),
+ media_attributes,
sensitive: getState().getIn(['compose', 'sensitive']),
spoiler_text: getState().getIn(['compose', 'spoiler']) ? getState().getIn(['compose', 'spoiler_text'], '') : '',
visibility: getState().getIn(['compose', 'privacy']),
@@ -213,27 +233,27 @@ export function submitCompose(routerHistory) {
dispatch(submitComposeFail(error));
});
};
-};
+}
export function submitComposeRequest() {
return {
type: COMPOSE_SUBMIT_REQUEST,
};
-};
+}
export function submitComposeSuccess(status) {
return {
type: COMPOSE_SUBMIT_SUCCESS,
status: status,
};
-};
+}
export function submitComposeFail(error) {
return {
type: COMPOSE_SUBMIT_FAIL,
error: error,
};
-};
+}
export function uploadCompose(files) {
return function (dispatch, getState) {
@@ -255,50 +275,46 @@ export function uploadCompose(files) {
dispatch(uploadComposeRequest());
- for (const [i, f] of Array.from(files).entries()) {
+ for (const [i, file] of Array.from(files).entries()) {
if (media.size + i > 3) break;
- resizeImage(f).then(file => {
- const data = new FormData();
- data.append('file', file);
- // Account for disparity in size of original image and resized data
- total += file.size - f.size;
+ const data = new FormData();
+ data.append('file', file);
- return api(getState).post('/api/v2/media', data, {
- onUploadProgress: function({ loaded }){
- progress[i] = loaded;
- dispatch(uploadComposeProgress(progress.reduce((a, v) => a + v, 0), total));
- },
- }).then(({ status, data }) => {
- // If server-side processing of the media attachment has not completed yet,
- // poll the server until it is, before showing the media attachment as uploaded
+ api(getState).post('/api/v2/media', data, {
+ onUploadProgress: function({ loaded }){
+ progress[i] = loaded;
+ dispatch(uploadComposeProgress(progress.reduce((a, v) => a + v, 0), total));
+ },
+ }).then(({ status, data }) => {
+ // If server-side processing of the media attachment has not completed yet,
+ // poll the server until it is, before showing the media attachment as uploaded
- if (status === 200) {
- dispatch(uploadComposeSuccess(data, f));
- } else if (status === 202) {
- dispatch(uploadComposeProcessing());
+ if (status === 200) {
+ dispatch(uploadComposeSuccess(data, file));
+ } else if (status === 202) {
+ dispatch(uploadComposeProcessing());
- let tryCount = 1;
+ let tryCount = 1;
- const poll = () => {
- api(getState).get(`/api/v1/media/${data.id}`).then(response => {
- if (response.status === 200) {
- dispatch(uploadComposeSuccess(response.data, f));
- } else if (response.status === 206) {
- const retryAfter = (Math.log2(tryCount) || 1) * 1000;
- tryCount += 1;
- setTimeout(() => poll(), retryAfter);
- }
- }).catch(error => dispatch(uploadComposeFail(error)));
- };
+ const poll = () => {
+ api(getState).get(`/api/v1/media/${data.id}`).then(response => {
+ if (response.status === 200) {
+ dispatch(uploadComposeSuccess(response.data, file));
+ } else if (response.status === 206) {
+ const retryAfter = (Math.log2(tryCount) || 1) * 1000;
+ tryCount += 1;
+ setTimeout(() => poll(), retryAfter);
+ }
+ }).catch(error => dispatch(uploadComposeFail(error)));
+ };
- poll();
- }
- });
+ poll();
+ }
}).catch(error => dispatch(uploadComposeFail(error)));
- };
+ }
};
-};
+}
export const uploadComposeProcessing = () => ({
type: COMPOSE_UPLOAD_PROCESSING,
@@ -356,14 +372,14 @@ export function initMediaEditModal(id) {
dispatch(openModal('FOCAL_POINT', { id }));
};
-};
+}
export function onChangeMediaDescription(description) {
return {
type: COMPOSE_CHANGE_MEDIA_DESCRIPTION,
description,
};
-};
+}
export function onChangeMediaFocus(focusX, focusY) {
return {
@@ -371,34 +387,55 @@ export function onChangeMediaFocus(focusX, focusY) {
focusX,
focusY,
};
-};
+}
export function changeUploadCompose(id, params) {
return (dispatch, getState) => {
dispatch(changeUploadComposeRequest());
- api(getState).put(`/api/v1/media/${id}`, params).then(response => {
- dispatch(changeUploadComposeSuccess(response.data));
- }).catch(error => {
- dispatch(changeUploadComposeFail(id, error));
- });
+ let media = getState().getIn(['compose', 'media_attachments']).find((item) => item.get('id') === id);
+
+ // Editing already-attached media is deferred to editing the post itself.
+ // For simplicity's sake, fake an API reply.
+ if (media && !media.get('unattached')) {
+ let { description, focus } = params;
+ const data = media.toJS();
+
+ if (description) {
+ data.description = description;
+ }
+
+ if (focus) {
+ focus = focus.split(',');
+ data.meta = { focus: { x: parseFloat(focus[0]), y: parseFloat(focus[1]) } };
+ }
+
+ dispatch(changeUploadComposeSuccess(data, true));
+ } else {
+ api(getState).put(`/api/v1/media/${id}`, params).then(response => {
+ dispatch(changeUploadComposeSuccess(response.data, false));
+ }).catch(error => {
+ dispatch(changeUploadComposeFail(id, error));
+ });
+ }
};
-};
+}
export function changeUploadComposeRequest() {
return {
type: COMPOSE_UPLOAD_CHANGE_REQUEST,
skipLoading: true,
};
-};
+}
-export function changeUploadComposeSuccess(media) {
+export function changeUploadComposeSuccess(media, attached) {
return {
type: COMPOSE_UPLOAD_CHANGE_SUCCESS,
media: media,
+ attached: attached,
skipLoading: true,
};
-};
+}
export function changeUploadComposeFail(error) {
return {
@@ -406,14 +443,14 @@ export function changeUploadComposeFail(error) {
error: error,
skipLoading: true,
};
-};
+}
export function uploadComposeRequest() {
return {
type: COMPOSE_UPLOAD_REQUEST,
skipLoading: true,
};
-};
+}
export function uploadComposeProgress(loaded, total) {
return {
@@ -421,7 +458,7 @@ export function uploadComposeProgress(loaded, total) {
loaded: loaded,
total: total,
};
-};
+}
export function uploadComposeSuccess(media, file) {
return {
@@ -430,7 +467,7 @@ export function uploadComposeSuccess(media, file) {
file: file,
skipLoading: true,
};
-};
+}
export function uploadComposeFail(error) {
return {
@@ -438,14 +475,14 @@ export function uploadComposeFail(error) {
error: error,
skipLoading: true,
};
-};
+}
export function undoUploadCompose(media_id) {
return {
type: COMPOSE_UPLOAD_UNDO,
media_id: media_id,
};
-};
+}
export function clearComposeSuggestions() {
if (fetchComposeSuggestionsAccountsController) {
@@ -454,7 +491,7 @@ export function clearComposeSuggestions() {
return {
type: COMPOSE_SUGGESTIONS_CLEAR,
};
-};
+}
const fetchComposeSuggestionsAccounts = throttle((dispatch, getState, token) => {
if (fetchComposeSuggestionsAccountsController) {
@@ -532,7 +569,7 @@ export function fetchComposeSuggestions(token) {
break;
}
};
-};
+}
export function readyComposeSuggestionsEmojis(token, emojis) {
return {
@@ -540,7 +577,7 @@ export function readyComposeSuggestionsEmojis(token, emojis) {
token,
emojis,
};
-};
+}
export function readyComposeSuggestionsAccounts(token, accounts) {
return {
@@ -548,7 +585,7 @@ export function readyComposeSuggestionsAccounts(token, accounts) {
token,
accounts,
};
-};
+}
export const readyComposeSuggestionsTags = (token, tags) => ({
type: COMPOSE_SUGGESTIONS_READY,
@@ -593,7 +630,7 @@ export function selectComposeSuggestion(position, token, suggestion, path) {
});
}
};
-};
+}
export function updateSuggestionTags(token) {
return {
@@ -654,19 +691,19 @@ export function mountCompose() {
return {
type: COMPOSE_MOUNT,
};
-};
+}
export function unmountCompose() {
return {
type: COMPOSE_UNMOUNT,
};
-};
+}
export function changeComposeSensitivity() {
return {
type: COMPOSE_SENSITIVITY_CHANGE,
};
-};
+}
export const changeComposeLanguage = language => ({
type: COMPOSE_LANGUAGE_CHANGE,
@@ -677,21 +714,21 @@ export function changeComposeSpoilerness() {
return {
type: COMPOSE_SPOILERNESS_CHANGE,
};
-};
+}
export function changeComposeSpoilerText(text) {
return {
type: COMPOSE_SPOILER_TEXT_CHANGE,
text,
};
-};
+}
export function changeComposeVisibility(value) {
return {
type: COMPOSE_VISIBILITY_CHANGE,
value,
};
-};
+}
export function insertEmojiCompose(position, emoji, needsSpace) {
return {
@@ -700,33 +737,33 @@ export function insertEmojiCompose(position, emoji, needsSpace) {
emoji,
needsSpace,
};
-};
+}
export function changeComposing(value) {
return {
type: COMPOSE_COMPOSING_CHANGE,
value,
};
-};
+}
export function addPoll() {
return {
type: COMPOSE_POLL_ADD,
};
-};
+}
export function removePoll() {
return {
type: COMPOSE_POLL_REMOVE,
};
-};
+}
export function addPollOption(title) {
return {
type: COMPOSE_POLL_OPTION_ADD,
title,
};
-};
+}
export function changePollOption(index, title) {
return {
@@ -734,14 +771,14 @@ export function changePollOption(index, title) {
index,
title,
};
-};
+}
export function removePollOption(index) {
return {
type: COMPOSE_POLL_OPTION_REMOVE,
index,
};
-};
+}
export function changePollSettings(expiresIn, isMultiple) {
return {
@@ -749,4 +786,4 @@ export function changePollSettings(expiresIn, isMultiple) {
expiresIn,
isMultiple,
};
-};
+}
diff --git a/app/javascript/mastodon/actions/custom_emojis.js b/app/javascript/mastodon/actions/custom_emojis.js
index 7b7d0091b..9ec8156b1 100644
--- a/app/javascript/mastodon/actions/custom_emojis.js
+++ b/app/javascript/mastodon/actions/custom_emojis.js
@@ -14,14 +14,14 @@ export function fetchCustomEmojis() {
dispatch(fetchCustomEmojisFail(error));
});
};
-};
+}
export function fetchCustomEmojisRequest() {
return {
type: CUSTOM_EMOJIS_FETCH_REQUEST,
skipLoading: true,
};
-};
+}
export function fetchCustomEmojisSuccess(custom_emojis) {
return {
@@ -29,7 +29,7 @@ export function fetchCustomEmojisSuccess(custom_emojis) {
custom_emojis,
skipLoading: true,
};
-};
+}
export function fetchCustomEmojisFail(error) {
return {
@@ -37,4 +37,4 @@ export function fetchCustomEmojisFail(error) {
error,
skipLoading: true,
};
-};
+}
diff --git a/app/javascript/mastodon/actions/domain_blocks.js b/app/javascript/mastodon/actions/domain_blocks.js
index 34a33a654..d06de20a2 100644
--- a/app/javascript/mastodon/actions/domain_blocks.js
+++ b/app/javascript/mastodon/actions/domain_blocks.js
@@ -29,14 +29,14 @@ export function blockDomain(domain) {
dispatch(blockDomainFail(domain, err));
});
};
-};
+}
export function blockDomainRequest(domain) {
return {
type: DOMAIN_BLOCK_REQUEST,
domain,
};
-};
+}
export function blockDomainSuccess(domain, accounts) {
return {
@@ -44,7 +44,7 @@ export function blockDomainSuccess(domain, accounts) {
domain,
accounts,
};
-};
+}
export function blockDomainFail(domain, error) {
return {
@@ -52,7 +52,7 @@ export function blockDomainFail(domain, error) {
domain,
error,
};
-};
+}
export function unblockDomain(domain) {
return (dispatch, getState) => {
@@ -66,14 +66,14 @@ export function unblockDomain(domain) {
dispatch(unblockDomainFail(domain, err));
});
};
-};
+}
export function unblockDomainRequest(domain) {
return {
type: DOMAIN_UNBLOCK_REQUEST,
domain,
};
-};
+}
export function unblockDomainSuccess(domain, accounts) {
return {
@@ -81,7 +81,7 @@ export function unblockDomainSuccess(domain, accounts) {
domain,
accounts,
};
-};
+}
export function unblockDomainFail(domain, error) {
return {
@@ -89,7 +89,7 @@ export function unblockDomainFail(domain, error) {
domain,
error,
};
-};
+}
export function fetchDomainBlocks() {
return (dispatch, getState) => {
@@ -102,13 +102,13 @@ export function fetchDomainBlocks() {
dispatch(fetchDomainBlocksFail(err));
});
};
-};
+}
export function fetchDomainBlocksRequest() {
return {
type: DOMAIN_BLOCKS_FETCH_REQUEST,
};
-};
+}
export function fetchDomainBlocksSuccess(domains, next) {
return {
@@ -116,14 +116,14 @@ export function fetchDomainBlocksSuccess(domains, next) {
domains,
next,
};
-};
+}
export function fetchDomainBlocksFail(error) {
return {
type: DOMAIN_BLOCKS_FETCH_FAIL,
error,
};
-};
+}
export function expandDomainBlocks() {
return (dispatch, getState) => {
@@ -142,13 +142,13 @@ export function expandDomainBlocks() {
dispatch(expandDomainBlocksFail(err));
});
};
-};
+}
export function expandDomainBlocksRequest() {
return {
type: DOMAIN_BLOCKS_EXPAND_REQUEST,
};
-};
+}
export function expandDomainBlocksSuccess(domains, next) {
return {
@@ -156,11 +156,11 @@ export function expandDomainBlocksSuccess(domains, next) {
domains,
next,
};
-};
+}
export function expandDomainBlocksFail(error) {
return {
type: DOMAIN_BLOCKS_EXPAND_FAIL,
error,
};
-};
+}
diff --git a/app/javascript/mastodon/actions/dropdown_menu.js b/app/javascript/mastodon/actions/dropdown_menu.js
index fb6e55612..023151d4b 100644
--- a/app/javascript/mastodon/actions/dropdown_menu.js
+++ b/app/javascript/mastodon/actions/dropdown_menu.js
@@ -1,8 +1,8 @@
export const DROPDOWN_MENU_OPEN = 'DROPDOWN_MENU_OPEN';
export const DROPDOWN_MENU_CLOSE = 'DROPDOWN_MENU_CLOSE';
-export function openDropdownMenu(id, placement, keyboard, scroll_key) {
- return { type: DROPDOWN_MENU_OPEN, id, placement, keyboard, scroll_key };
+export function openDropdownMenu(id, keyboard, scroll_key) {
+ return { type: DROPDOWN_MENU_OPEN, id, keyboard, scroll_key };
}
export function closeDropdownMenu(id) {
diff --git a/app/javascript/mastodon/actions/emojis.js b/app/javascript/mastodon/actions/emojis.js
index 7cd9d4b7b..3b5d53996 100644
--- a/app/javascript/mastodon/actions/emojis.js
+++ b/app/javascript/mastodon/actions/emojis.js
@@ -11,4 +11,4 @@ export function useEmoji(emoji) {
dispatch(saveSettings());
};
-};
+}
diff --git a/app/javascript/mastodon/actions/favourites.js b/app/javascript/mastodon/actions/favourites.js
index 9448b1efe..7388e0c58 100644
--- a/app/javascript/mastodon/actions/favourites.js
+++ b/app/javascript/mastodon/actions/favourites.js
@@ -25,14 +25,14 @@ export function fetchFavouritedStatuses() {
dispatch(fetchFavouritedStatusesFail(error));
});
};
-};
+}
export function fetchFavouritedStatusesRequest() {
return {
type: FAVOURITED_STATUSES_FETCH_REQUEST,
skipLoading: true,
};
-};
+}
export function fetchFavouritedStatusesSuccess(statuses, next) {
return {
@@ -41,7 +41,7 @@ export function fetchFavouritedStatusesSuccess(statuses, next) {
next,
skipLoading: true,
};
-};
+}
export function fetchFavouritedStatusesFail(error) {
return {
@@ -49,7 +49,7 @@ export function fetchFavouritedStatusesFail(error) {
error,
skipLoading: true,
};
-};
+}
export function expandFavouritedStatuses() {
return (dispatch, getState) => {
@@ -69,13 +69,13 @@ export function expandFavouritedStatuses() {
dispatch(expandFavouritedStatusesFail(error));
});
};
-};
+}
export function expandFavouritedStatusesRequest() {
return {
type: FAVOURITED_STATUSES_EXPAND_REQUEST,
};
-};
+}
export function expandFavouritedStatusesSuccess(statuses, next) {
return {
@@ -83,11 +83,11 @@ export function expandFavouritedStatusesSuccess(statuses, next) {
statuses,
next,
};
-};
+}
export function expandFavouritedStatusesFail(error) {
return {
type: FAVOURITED_STATUSES_EXPAND_FAIL,
error,
};
-};
+}
diff --git a/app/javascript/mastodon/actions/height_cache.js b/app/javascript/mastodon/actions/height_cache.js
index 4c752993f..a8645410c 100644
--- a/app/javascript/mastodon/actions/height_cache.js
+++ b/app/javascript/mastodon/actions/height_cache.js
@@ -8,10 +8,10 @@ export function setHeight (key, id, height) {
id,
height,
};
-};
+}
export function clearHeight () {
return {
type: HEIGHT_CACHE_CLEAR,
};
-};
+}
diff --git a/app/javascript/mastodon/actions/interactions.js b/app/javascript/mastodon/actions/interactions.js
index d60ccc1fb..bc35736ff 100644
--- a/app/javascript/mastodon/actions/interactions.js
+++ b/app/javascript/mastodon/actions/interactions.js
@@ -54,7 +54,7 @@ export function reblog(status, visibility) {
dispatch(reblogFail(status, error));
});
};
-};
+}
export function unreblog(status) {
return (dispatch, getState) => {
@@ -67,7 +67,7 @@ export function unreblog(status) {
dispatch(unreblogFail(status, error));
});
};
-};
+}
export function reblogRequest(status) {
return {
@@ -75,7 +75,7 @@ export function reblogRequest(status) {
status: status,
skipLoading: true,
};
-};
+}
export function reblogSuccess(status) {
return {
@@ -83,7 +83,7 @@ export function reblogSuccess(status) {
status: status,
skipLoading: true,
};
-};
+}
export function reblogFail(status, error) {
return {
@@ -92,7 +92,7 @@ export function reblogFail(status, error) {
error: error,
skipLoading: true,
};
-};
+}
export function unreblogRequest(status) {
return {
@@ -100,7 +100,7 @@ export function unreblogRequest(status) {
status: status,
skipLoading: true,
};
-};
+}
export function unreblogSuccess(status) {
return {
@@ -108,7 +108,7 @@ export function unreblogSuccess(status) {
status: status,
skipLoading: true,
};
-};
+}
export function unreblogFail(status, error) {
return {
@@ -117,7 +117,7 @@ export function unreblogFail(status, error) {
error: error,
skipLoading: true,
};
-};
+}
export function favourite(status) {
return function (dispatch, getState) {
@@ -130,7 +130,7 @@ export function favourite(status) {
dispatch(favouriteFail(status, error));
});
};
-};
+}
export function unfavourite(status) {
return (dispatch, getState) => {
@@ -143,7 +143,7 @@ export function unfavourite(status) {
dispatch(unfavouriteFail(status, error));
});
};
-};
+}
export function favouriteRequest(status) {
return {
@@ -151,7 +151,7 @@ export function favouriteRequest(status) {
status: status,
skipLoading: true,
};
-};
+}
export function favouriteSuccess(status) {
return {
@@ -159,7 +159,7 @@ export function favouriteSuccess(status) {
status: status,
skipLoading: true,
};
-};
+}
export function favouriteFail(status, error) {
return {
@@ -168,7 +168,7 @@ export function favouriteFail(status, error) {
error: error,
skipLoading: true,
};
-};
+}
export function unfavouriteRequest(status) {
return {
@@ -176,7 +176,7 @@ export function unfavouriteRequest(status) {
status: status,
skipLoading: true,
};
-};
+}
export function unfavouriteSuccess(status) {
return {
@@ -184,7 +184,7 @@ export function unfavouriteSuccess(status) {
status: status,
skipLoading: true,
};
-};
+}
export function unfavouriteFail(status, error) {
return {
@@ -193,7 +193,7 @@ export function unfavouriteFail(status, error) {
error: error,
skipLoading: true,
};
-};
+}
export function bookmark(status) {
return function (dispatch, getState) {
@@ -206,7 +206,7 @@ export function bookmark(status) {
dispatch(bookmarkFail(status, error));
});
};
-};
+}
export function unbookmark(status) {
return (dispatch, getState) => {
@@ -219,14 +219,14 @@ export function unbookmark(status) {
dispatch(unbookmarkFail(status, error));
});
};
-};
+}
export function bookmarkRequest(status) {
return {
type: BOOKMARK_REQUEST,
status: status,
};
-};
+}
export function bookmarkSuccess(status, response) {
return {
@@ -234,7 +234,7 @@ export function bookmarkSuccess(status, response) {
status: status,
response: response,
};
-};
+}
export function bookmarkFail(status, error) {
return {
@@ -242,14 +242,14 @@ export function bookmarkFail(status, error) {
status: status,
error: error,
};
-};
+}
export function unbookmarkRequest(status) {
return {
type: UNBOOKMARK_REQUEST,
status: status,
};
-};
+}
export function unbookmarkSuccess(status, response) {
return {
@@ -257,7 +257,7 @@ export function unbookmarkSuccess(status, response) {
status: status,
response: response,
};
-};
+}
export function unbookmarkFail(status, error) {
return {
@@ -265,7 +265,7 @@ export function unbookmarkFail(status, error) {
status: status,
error: error,
};
-};
+}
export function fetchReblogs(id) {
return (dispatch, getState) => {
@@ -278,14 +278,14 @@ export function fetchReblogs(id) {
dispatch(fetchReblogsFail(id, error));
});
};
-};
+}
export function fetchReblogsRequest(id) {
return {
type: REBLOGS_FETCH_REQUEST,
id,
};
-};
+}
export function fetchReblogsSuccess(id, accounts) {
return {
@@ -293,14 +293,14 @@ export function fetchReblogsSuccess(id, accounts) {
id,
accounts,
};
-};
+}
export function fetchReblogsFail(id, error) {
return {
type: REBLOGS_FETCH_FAIL,
error,
};
-};
+}
export function fetchFavourites(id) {
return (dispatch, getState) => {
@@ -313,14 +313,14 @@ export function fetchFavourites(id) {
dispatch(fetchFavouritesFail(id, error));
});
};
-};
+}
export function fetchFavouritesRequest(id) {
return {
type: FAVOURITES_FETCH_REQUEST,
id,
};
-};
+}
export function fetchFavouritesSuccess(id, accounts) {
return {
@@ -328,14 +328,14 @@ export function fetchFavouritesSuccess(id, accounts) {
id,
accounts,
};
-};
+}
export function fetchFavouritesFail(id, error) {
return {
type: FAVOURITES_FETCH_FAIL,
error,
};
-};
+}
export function pin(status) {
return (dispatch, getState) => {
@@ -348,7 +348,7 @@ export function pin(status) {
dispatch(pinFail(status, error));
});
};
-};
+}
export function pinRequest(status) {
return {
@@ -356,7 +356,7 @@ export function pinRequest(status) {
status,
skipLoading: true,
};
-};
+}
export function pinSuccess(status) {
return {
@@ -364,7 +364,7 @@ export function pinSuccess(status) {
status,
skipLoading: true,
};
-};
+}
export function pinFail(status, error) {
return {
@@ -373,7 +373,7 @@ export function pinFail(status, error) {
error,
skipLoading: true,
};
-};
+}
export function unpin (status) {
return (dispatch, getState) => {
@@ -386,7 +386,7 @@ export function unpin (status) {
dispatch(unpinFail(status, error));
});
};
-};
+}
export function unpinRequest(status) {
return {
@@ -394,7 +394,7 @@ export function unpinRequest(status) {
status,
skipLoading: true,
};
-};
+}
export function unpinSuccess(status) {
return {
@@ -402,7 +402,7 @@ export function unpinSuccess(status) {
status,
skipLoading: true,
};
-};
+}
export function unpinFail(status, error) {
return {
@@ -411,4 +411,4 @@ export function unpinFail(status, error) {
error,
skipLoading: true,
};
-};
+}
diff --git a/app/javascript/mastodon/actions/markers.js b/app/javascript/mastodon/actions/markers.js
index b7f406cb8..ca246dce7 100644
--- a/app/javascript/mastodon/actions/markers.js
+++ b/app/javascript/mastodon/actions/markers.js
@@ -55,7 +55,7 @@ export const synchronouslySubmitMarkers = () => (dispatch, getState) => {
client.open('POST', '/api/v1/markers', false);
client.setRequestHeader('Content-Type', 'application/json');
client.setRequestHeader('Authorization', `Bearer ${accessToken}`);
- client.SUBMIT(JSON.stringify(params));
+ client.send(JSON.stringify(params));
} catch (e) {
// Do not make the BeforeUnload handler error out
}
@@ -101,7 +101,7 @@ export function submitMarkersSuccess({ home, notifications }) {
home: (home || {}).last_read_id,
notifications: (notifications || {}).last_read_id,
};
-};
+}
export function submitMarkers(params = {}) {
const result = (dispatch, getState) => debouncedSubmitMarkers(dispatch, getState);
@@ -111,7 +111,7 @@ export function submitMarkers(params = {}) {
}
return result;
-};
+}
export const fetchMarkers = () => (dispatch, getState) => {
const params = { timeline: ['notifications'] };
@@ -130,7 +130,7 @@ export function fetchMarkersRequest() {
type: MARKERS_FETCH_REQUEST,
skipLoading: true,
};
-};
+}
export function fetchMarkersSuccess(markers) {
return {
@@ -138,7 +138,7 @@ export function fetchMarkersSuccess(markers) {
markers,
skipLoading: true,
};
-};
+}
export function fetchMarkersFail(error) {
return {
@@ -147,4 +147,4 @@ export function fetchMarkersFail(error) {
skipLoading: true,
skipAlert: true,
};
-};
+}
diff --git a/app/javascript/mastodon/actions/modal.js b/app/javascript/mastodon/actions/modal.js
index 3e576fab8..ef2ae0e4c 100644
--- a/app/javascript/mastodon/actions/modal.js
+++ b/app/javascript/mastodon/actions/modal.js
@@ -7,7 +7,7 @@ export function openModal(type, props) {
modalType: type,
modalProps: props,
};
-};
+}
export function closeModal(type, options = { ignoreFocus: false }) {
return {
@@ -15,4 +15,4 @@ export function closeModal(type, options = { ignoreFocus: false }) {
modalType: type,
ignoreFocus: options.ignoreFocus,
};
-};
+}
diff --git a/app/javascript/mastodon/actions/mutes.js b/app/javascript/mastodon/actions/mutes.js
index d8874f353..cbc42a67e 100644
--- a/app/javascript/mastodon/actions/mutes.js
+++ b/app/javascript/mastodon/actions/mutes.js
@@ -26,13 +26,13 @@ export function fetchMutes() {
dispatch(fetchRelationships(response.data.map(item => item.id)));
}).catch(error => dispatch(fetchMutesFail(error)));
};
-};
+}
export function fetchMutesRequest() {
return {
type: MUTES_FETCH_REQUEST,
};
-};
+}
export function fetchMutesSuccess(accounts, next) {
return {
@@ -40,14 +40,14 @@ export function fetchMutesSuccess(accounts, next) {
accounts,
next,
};
-};
+}
export function fetchMutesFail(error) {
return {
type: MUTES_FETCH_FAIL,
error,
};
-};
+}
export function expandMutes() {
return (dispatch, getState) => {
@@ -66,13 +66,13 @@ export function expandMutes() {
dispatch(fetchRelationships(response.data.map(item => item.id)));
}).catch(error => dispatch(expandMutesFail(error)));
};
-};
+}
export function expandMutesRequest() {
return {
type: MUTES_EXPAND_REQUEST,
};
-};
+}
export function expandMutesSuccess(accounts, next) {
return {
@@ -80,14 +80,14 @@ export function expandMutesSuccess(accounts, next) {
accounts,
next,
};
-};
+}
export function expandMutesFail(error) {
return {
type: MUTES_EXPAND_FAIL,
error,
};
-};
+}
export function initMuteModal(account) {
return dispatch => {
diff --git a/app/javascript/mastodon/actions/notifications.js b/app/javascript/mastodon/actions/notifications.js
index d4588db2c..93588d3c0 100644
--- a/app/javascript/mastodon/actions/notifications.js
+++ b/app/javascript/mastodon/actions/notifications.js
@@ -118,7 +118,7 @@ export function updateNotifications(notification, intlMessages, intlLocale) {
});
}
};
-};
+}
const excludeTypesFromSettings = state => state.getIn(['settings', 'notifications', 'shows']).filter(enabled => !enabled).keySeq().toJS();
@@ -197,14 +197,14 @@ export function expandNotifications({ maxId, forceLoad } = {}, done = noOp) {
done();
});
};
-};
+}
export function expandNotificationsRequest(isLoadingMore) {
return {
type: NOTIFICATIONS_EXPAND_REQUEST,
skipLoading: !isLoadingMore,
};
-};
+}
export function expandNotificationsSuccess(notifications, next, isLoadingMore, isLoadingRecent, usePendingItems) {
return {
@@ -215,7 +215,7 @@ export function expandNotificationsSuccess(notifications, next, isLoadingMore, i
usePendingItems,
skipLoading: !isLoadingMore,
};
-};
+}
export function expandNotificationsFail(error, isLoadingMore) {
return {
@@ -224,7 +224,7 @@ export function expandNotificationsFail(error, isLoadingMore) {
skipLoading: !isLoadingMore,
skipAlert: !isLoadingMore || error.name === 'AbortError',
};
-};
+}
export function clearNotifications() {
return (dispatch, getState) => {
@@ -234,14 +234,14 @@ export function clearNotifications() {
api(getState).post('/api/v1/notifications/clear');
};
-};
+}
export function scrollTopNotifications(top) {
return {
type: NOTIFICATIONS_SCROLL_TOP,
top,
};
-};
+}
export function setFilter (filterType) {
return dispatch => {
@@ -253,7 +253,7 @@ export function setFilter (filterType) {
dispatch(expandNotifications({ forceLoad: true }));
dispatch(saveSettings());
};
-};
+}
export const mountNotifications = () => ({
type: NOTIFICATIONS_MOUNT,
@@ -291,7 +291,7 @@ export function requestBrowserPermission(callback = noOp) {
callback(permission);
});
};
-};
+}
export function setBrowserSupport (value) {
return {
diff --git a/app/javascript/mastodon/actions/picture_in_picture.js b/app/javascript/mastodon/actions/picture_in_picture.js
index 33d8d57d4..6b9ff7709 100644
--- a/app/javascript/mastodon/actions/picture_in_picture.js
+++ b/app/javascript/mastodon/actions/picture_in_picture.js
@@ -23,6 +23,7 @@ export const PICTURE_IN_PICTURE_REMOVE = 'PICTURE_IN_PICTURE_REMOVE';
* @return {object}
*/
export const deployPictureInPicture = (statusId, accountId, playerType, props) => {
+ // @ts-expect-error
return (dispatch, getState) => {
// Do not open a player for a toot that does not exist
if (getState().hasIn(['statuses', statusId])) {
diff --git a/app/javascript/mastodon/actions/pin_statuses.js b/app/javascript/mastodon/actions/pin_statuses.js
index 77abba7b5..e2de98ca9 100644
--- a/app/javascript/mastodon/actions/pin_statuses.js
+++ b/app/javascript/mastodon/actions/pin_statuses.js
@@ -18,13 +18,13 @@ export function fetchPinnedStatuses() {
dispatch(fetchPinnedStatusesFail(error));
});
};
-};
+}
export function fetchPinnedStatusesRequest() {
return {
type: PINNED_STATUSES_FETCH_REQUEST,
};
-};
+}
export function fetchPinnedStatusesSuccess(statuses, next) {
return {
@@ -32,11 +32,11 @@ export function fetchPinnedStatusesSuccess(statuses, next) {
statuses,
next,
};
-};
+}
export function fetchPinnedStatusesFail(error) {
return {
type: PINNED_STATUSES_FETCH_FAIL,
error,
};
-};
+}
diff --git a/app/javascript/mastodon/actions/push_notifications/registerer.js b/app/javascript/mastodon/actions/push_notifications/registerer.js
index b0f42b6a2..b491f85c2 100644
--- a/app/javascript/mastodon/actions/push_notifications/registerer.js
+++ b/app/javascript/mastodon/actions/push_notifications/registerer.js
@@ -8,7 +8,7 @@ import { me } from '../../initial_state';
const urlBase64ToUint8Array = (base64String) => {
const padding = '='.repeat((4 - base64String.length % 4) % 4);
const base64 = (base64String + padding)
- .replace(/\-/g, '+')
+ .replace(/-/g, '+')
.replace(/_/g, '/');
return decodeBase64(base64);
diff --git a/app/javascript/mastodon/actions/search.js b/app/javascript/mastodon/actions/search.js
index e333c0ea7..56608f28b 100644
--- a/app/javascript/mastodon/actions/search.js
+++ b/app/javascript/mastodon/actions/search.js
@@ -14,20 +14,23 @@ export const SEARCH_EXPAND_REQUEST = 'SEARCH_EXPAND_REQUEST';
export const SEARCH_EXPAND_SUCCESS = 'SEARCH_EXPAND_SUCCESS';
export const SEARCH_EXPAND_FAIL = 'SEARCH_EXPAND_FAIL';
+export const SEARCH_RESULT_CLICK = 'SEARCH_RESULT_CLICK';
+export const SEARCH_RESULT_FORGET = 'SEARCH_RESULT_FORGET';
+
export function changeSearch(value) {
return {
type: SEARCH_CHANGE,
value,
};
-};
+}
export function clearSearch() {
return {
type: SEARCH_CLEAR,
};
-};
+}
-export function submitSearch() {
+export function submitSearch(type) {
return (dispatch, getState) => {
const value = getState().getIn(['search', 'value']);
const signedIn = !!getState().getIn(['meta', 'me']);
@@ -44,6 +47,7 @@ export function submitSearch() {
q: value,
resolve: signedIn,
limit: 5,
+ type,
},
}).then(response => {
if (response.data.accounts) {
@@ -60,13 +64,13 @@ export function submitSearch() {
dispatch(fetchSearchFail(error));
});
};
-};
+}
export function fetchSearchRequest() {
return {
type: SEARCH_FETCH_REQUEST,
};
-};
+}
export function fetchSearchSuccess(results, searchTerm) {
return {
@@ -74,14 +78,14 @@ export function fetchSearchSuccess(results, searchTerm) {
results,
searchTerm,
};
-};
+}
export function fetchSearchFail(error) {
return {
type: SEARCH_FETCH_FAIL,
error,
};
-};
+}
export const expandSearch = type => (dispatch, getState) => {
const value = getState().getIn(['search', 'value']);
@@ -130,3 +134,42 @@ export const expandSearchFail = error => ({
export const showSearch = () => ({
type: SEARCH_SHOW,
});
+
+export const openURL = routerHistory => (dispatch, getState) => {
+ const value = getState().getIn(['search', 'value']);
+ const signedIn = !!getState().getIn(['meta', 'me']);
+
+ if (!signedIn) {
+ return;
+ }
+
+ dispatch(fetchSearchRequest());
+
+ api(getState).get('/api/v2/search', { params: { q: value, resolve: true } }).then(response => {
+ if (response.data.accounts?.length > 0) {
+ dispatch(importFetchedAccounts(response.data.accounts));
+ routerHistory.push(`/@${response.data.accounts[0].acct}`);
+ } else if (response.data.statuses?.length > 0) {
+ dispatch(importFetchedStatuses(response.data.statuses));
+ routerHistory.push(`/@${response.data.statuses[0].account.acct}/${response.data.statuses[0].id}`);
+ }
+
+ dispatch(fetchSearchSuccess(response.data, value));
+ }).catch(err => {
+ dispatch(fetchSearchFail(err));
+ });
+};
+
+export const clickSearchResult = (q, type) => ({
+ type: SEARCH_RESULT_CLICK,
+
+ result: {
+ type,
+ q,
+ },
+});
+
+export const forgetSearchResult = q => ({
+ type: SEARCH_RESULT_FORGET,
+ q,
+});
diff --git a/app/javascript/mastodon/actions/server.js b/app/javascript/mastodon/actions/server.js
index 31d4aea10..091af0f0f 100644
--- a/app/javascript/mastodon/actions/server.js
+++ b/app/javascript/mastodon/actions/server.js
@@ -5,6 +5,10 @@ export const SERVER_FETCH_REQUEST = 'Server_FETCH_REQUEST';
export const SERVER_FETCH_SUCCESS = 'Server_FETCH_SUCCESS';
export const SERVER_FETCH_FAIL = 'Server_FETCH_FAIL';
+export const SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST = 'SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST';
+export const SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS = 'SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS';
+export const SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL = 'SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL';
+
export const EXTENDED_DESCRIPTION_REQUEST = 'EXTENDED_DESCRIPTION_REQUEST';
export const EXTENDED_DESCRIPTION_SUCCESS = 'EXTENDED_DESCRIPTION_SUCCESS';
export const EXTENDED_DESCRIPTION_FAIL = 'EXTENDED_DESCRIPTION_FAIL';
@@ -37,6 +41,29 @@ const fetchServerFail = error => ({
error,
});
+export const fetchServerTranslationLanguages = () => (dispatch, getState) => {
+ dispatch(fetchServerTranslationLanguagesRequest());
+
+ api(getState)
+ .get('/api/v1/instance/translation_languages').then(({ data }) => {
+ dispatch(fetchServerTranslationLanguagesSuccess(data));
+ }).catch(err => dispatch(fetchServerTranslationLanguagesFail(err)));
+};
+
+const fetchServerTranslationLanguagesRequest = () => ({
+ type: SERVER_TRANSLATION_LANGUAGES_FETCH_REQUEST,
+});
+
+const fetchServerTranslationLanguagesSuccess = translationLanguages => ({
+ type: SERVER_TRANSLATION_LANGUAGES_FETCH_SUCCESS,
+ translationLanguages,
+});
+
+const fetchServerTranslationLanguagesFail = error => ({
+ type: SERVER_TRANSLATION_LANGUAGES_FETCH_FAIL,
+ error,
+});
+
export const fetchExtendedDescription = () => (dispatch, getState) => {
dispatch(fetchExtendedDescriptionRequest());
diff --git a/app/javascript/mastodon/actions/settings.js b/app/javascript/mastodon/actions/settings.js
index 6bf85e464..6ae001b6f 100644
--- a/app/javascript/mastodon/actions/settings.js
+++ b/app/javascript/mastodon/actions/settings.js
@@ -15,7 +15,7 @@ export function changeSetting(path, value) {
dispatch(saveSettings());
};
-};
+}
const debouncedSave = debounce((dispatch, getState) => {
if (getState().getIn(['settings', 'saved'])) {
@@ -31,4 +31,4 @@ const debouncedSave = debounce((dispatch, getState) => {
export function saveSettings() {
return (dispatch, getState) => debouncedSave(dispatch, getState);
-};
+}
diff --git a/app/javascript/mastodon/actions/statuses.js b/app/javascript/mastodon/actions/statuses.js
index 4ae1b21e0..275280a53 100644
--- a/app/javascript/mastodon/actions/statuses.js
+++ b/app/javascript/mastodon/actions/statuses.js
@@ -45,7 +45,7 @@ export function fetchStatusRequest(id, skipLoading) {
id,
skipLoading,
};
-};
+}
export function fetchStatus(id, forceFetch = false) {
return (dispatch, getState) => {
@@ -66,14 +66,14 @@ export function fetchStatus(id, forceFetch = false) {
dispatch(fetchStatusFail(id, error, skipLoading));
});
};
-};
+}
export function fetchStatusSuccess(skipLoading) {
return {
type: STATUS_FETCH_SUCCESS,
skipLoading,
};
-};
+}
export function fetchStatusFail(id, error, skipLoading) {
return {
@@ -83,7 +83,7 @@ export function fetchStatusFail(id, error, skipLoading) {
skipLoading,
skipAlert: true,
};
-};
+}
export function redraft(status, raw_text) {
return {
@@ -91,7 +91,7 @@ export function redraft(status, raw_text) {
status,
raw_text,
};
-};
+}
export const editStatus = (id, routerHistory) => (dispatch, getState) => {
let status = getState().getIn(['statuses', id]);
@@ -147,21 +147,21 @@ export function deleteStatus(id, routerHistory, withRedraft = false) {
dispatch(deleteStatusFail(id, error));
});
};
-};
+}
export function deleteStatusRequest(id) {
return {
type: STATUS_DELETE_REQUEST,
id: id,
};
-};
+}
export function deleteStatusSuccess(id) {
return {
type: STATUS_DELETE_SUCCESS,
id: id,
};
-};
+}
export function deleteStatusFail(id, error) {
return {
@@ -169,7 +169,7 @@ export function deleteStatusFail(id, error) {
id: id,
error: error,
};
-};
+}
export const updateStatus = status => dispatch =>
dispatch(importFetchedStatus(status));
@@ -190,14 +190,14 @@ export function fetchContext(id) {
dispatch(fetchContextFail(id, error));
});
};
-};
+}
export function fetchContextRequest(id) {
return {
type: CONTEXT_FETCH_REQUEST,
id,
};
-};
+}
export function fetchContextSuccess(id, ancestors, descendants) {
return {
@@ -207,7 +207,7 @@ export function fetchContextSuccess(id, ancestors, descendants) {
descendants,
statuses: ancestors.concat(descendants),
};
-};
+}
export function fetchContextFail(id, error) {
return {
@@ -216,7 +216,7 @@ export function fetchContextFail(id, error) {
error,
skipAlert: true,
};
-};
+}
export function muteStatus(id) {
return (dispatch, getState) => {
@@ -228,21 +228,21 @@ export function muteStatus(id) {
dispatch(muteStatusFail(id, error));
});
};
-};
+}
export function muteStatusRequest(id) {
return {
type: STATUS_MUTE_REQUEST,
id,
};
-};
+}
export function muteStatusSuccess(id) {
return {
type: STATUS_MUTE_SUCCESS,
id,
};
-};
+}
export function muteStatusFail(id, error) {
return {
@@ -250,7 +250,7 @@ export function muteStatusFail(id, error) {
id,
error,
};
-};
+}
export function unmuteStatus(id) {
return (dispatch, getState) => {
@@ -262,21 +262,21 @@ export function unmuteStatus(id) {
dispatch(unmuteStatusFail(id, error));
});
};
-};
+}
export function unmuteStatusRequest(id) {
return {
type: STATUS_UNMUTE_REQUEST,
id,
};
-};
+}
export function unmuteStatusSuccess(id) {
return {
type: STATUS_UNMUTE_SUCCESS,
id,
};
-};
+}
export function unmuteStatusFail(id, error) {
return {
@@ -284,7 +284,7 @@ export function unmuteStatusFail(id, error) {
id,
error,
};
-};
+}
export function hideStatus(ids) {
if (!Array.isArray(ids)) {
@@ -295,7 +295,7 @@ export function hideStatus(ids) {
type: STATUS_HIDE,
ids,
};
-};
+}
export function revealStatus(ids) {
if (!Array.isArray(ids)) {
@@ -306,7 +306,7 @@ export function revealStatus(ids) {
type: STATUS_REVEAL,
ids,
};
-};
+}
export function toggleStatusCollapse(id, isCollapsed) {
return {
@@ -314,7 +314,7 @@ export function toggleStatusCollapse(id, isCollapsed) {
id,
isCollapsed,
};
-};
+}
export const translateStatus = id => (dispatch, getState) => {
dispatch(translateStatusRequest(id));
diff --git a/app/javascript/mastodon/actions/store.js b/app/javascript/mastodon/actions/store.js
index 34dcafc51..b3030467b 100644
--- a/app/javascript/mastodon/actions/store.js
+++ b/app/javascript/mastodon/actions/store.js
@@ -21,4 +21,4 @@ export function hydrateStore(rawState) {
dispatch(hydrateCompose());
dispatch(importFetchedAccounts(Object.values(rawState.accounts)));
};
-};
+}
diff --git a/app/javascript/mastodon/actions/streaming.js b/app/javascript/mastodon/actions/streaming.js
index 84709083f..4d4ea83e4 100644
--- a/app/javascript/mastodon/actions/streaming.js
+++ b/app/javascript/mastodon/actions/streaming.js
@@ -46,6 +46,7 @@ export const connectTimelineStream = (timelineId, channelName, params = {}, opti
connectStream(channelName, params, (dispatch, getState) => {
const locale = getState().getIn(['meta', 'locale']);
+ // @ts-expect-error
let pollingId;
/**
@@ -61,9 +62,10 @@ export const connectTimelineStream = (timelineId, channelName, params = {}, opti
onConnect() {
dispatch(connectTimeline(timelineId));
+ // @ts-expect-error
if (pollingId) {
- clearTimeout(pollingId);
- pollingId = null;
+ // @ts-ignore
+ clearTimeout(pollingId); pollingId = null;
}
if (options.fillGaps) {
@@ -75,31 +77,38 @@ export const connectTimelineStream = (timelineId, channelName, params = {}, opti
dispatch(disconnectTimeline(timelineId));
if (options.fallback) {
+ // @ts-expect-error
pollingId = setTimeout(() => useFallback(options.fallback), randomUpTo(40000));
}
},
- onReceive (data) {
- switch(data.event) {
+ onReceive(data) {
+ switch (data.event) {
case 'update':
+ // @ts-expect-error
dispatch(updateTimeline(timelineId, JSON.parse(data.payload), options.accept));
break;
case 'status.update':
+ // @ts-expect-error
dispatch(updateStatus(JSON.parse(data.payload)));
break;
case 'delete':
dispatch(deleteFromTimelines(data.payload));
break;
case 'notification':
+ // @ts-expect-error
dispatch(updateNotifications(JSON.parse(data.payload), messages, locale));
break;
case 'conversation':
+ // @ts-expect-error
dispatch(updateConversations(JSON.parse(data.payload)));
break;
case 'announcement':
+ // @ts-expect-error
dispatch(updateAnnouncements(JSON.parse(data.payload)));
break;
case 'announcement.reaction':
+ // @ts-expect-error
dispatch(updateAnnouncementsReaction(JSON.parse(data.payload)));
break;
case 'announcement.delete':
@@ -115,7 +124,9 @@ export const connectTimelineStream = (timelineId, channelName, params = {}, opti
* @param {function(): void} done
*/
const refreshHomeTimelineAndNotification = (dispatch, done) => {
+ // @ts-expect-error
dispatch(expandHomeTimeline({}, () =>
+ // @ts-expect-error
dispatch(expandNotifications({}, () =>
dispatch(fetchAnnouncements(done))))));
};
@@ -124,6 +135,7 @@ const refreshHomeTimelineAndNotification = (dispatch, done) => {
* @return {function(): void}
*/
export const connectUserStream = () =>
+ // @ts-expect-error
connectTimelineStream('home', 'user', {}, { fallback: refreshHomeTimelineAndNotification, fillGaps: fillHomeTimelineGaps });
/**
diff --git a/app/javascript/mastodon/actions/suggestions.js b/app/javascript/mastodon/actions/suggestions.js
index 1f1116e75..9e8cd1ea4 100644
--- a/app/javascript/mastodon/actions/suggestions.js
+++ b/app/javascript/mastodon/actions/suggestions.js
@@ -21,14 +21,14 @@ export function fetchSuggestions(withRelationships = false) {
}
}).catch(error => dispatch(fetchSuggestionsFail(error)));
};
-};
+}
export function fetchSuggestionsRequest() {
return {
type: SUGGESTIONS_FETCH_REQUEST,
skipLoading: true,
};
-};
+}
export function fetchSuggestionsSuccess(suggestions) {
return {
@@ -36,7 +36,7 @@ export function fetchSuggestionsSuccess(suggestions) {
suggestions,
skipLoading: true,
};
-};
+}
export function fetchSuggestionsFail(error) {
return {
@@ -45,7 +45,7 @@ export function fetchSuggestionsFail(error) {
skipLoading: true,
skipAlert: true,
};
-};
+}
export const dismissSuggestion = accountId => (dispatch, getState) => {
dispatch({
diff --git a/app/javascript/mastodon/actions/tags.js b/app/javascript/mastodon/actions/tags.js
index 37e79d4cb..dda8c924b 100644
--- a/app/javascript/mastodon/actions/tags.js
+++ b/app/javascript/mastodon/actions/tags.js
@@ -1,9 +1,17 @@
-import api from '../api';
+import api, { getLinks } from '../api';
export const HASHTAG_FETCH_REQUEST = 'HASHTAG_FETCH_REQUEST';
export const HASHTAG_FETCH_SUCCESS = 'HASHTAG_FETCH_SUCCESS';
export const HASHTAG_FETCH_FAIL = 'HASHTAG_FETCH_FAIL';
+export const FOLLOWED_HASHTAGS_FETCH_REQUEST = 'FOLLOWED_HASHTAGS_FETCH_REQUEST';
+export const FOLLOWED_HASHTAGS_FETCH_SUCCESS = 'FOLLOWED_HASHTAGS_FETCH_SUCCESS';
+export const FOLLOWED_HASHTAGS_FETCH_FAIL = 'FOLLOWED_HASHTAGS_FETCH_FAIL';
+
+export const FOLLOWED_HASHTAGS_EXPAND_REQUEST = 'FOLLOWED_HASHTAGS_EXPAND_REQUEST';
+export const FOLLOWED_HASHTAGS_EXPAND_SUCCESS = 'FOLLOWED_HASHTAGS_EXPAND_SUCCESS';
+export const FOLLOWED_HASHTAGS_EXPAND_FAIL = 'FOLLOWED_HASHTAGS_EXPAND_FAIL';
+
export const HASHTAG_FOLLOW_REQUEST = 'HASHTAG_FOLLOW_REQUEST';
export const HASHTAG_FOLLOW_SUCCESS = 'HASHTAG_FOLLOW_SUCCESS';
export const HASHTAG_FOLLOW_FAIL = 'HASHTAG_FOLLOW_FAIL';
@@ -37,6 +45,78 @@ export const fetchHashtagFail = error => ({
error,
});
+export const fetchFollowedHashtags = () => (dispatch, getState) => {
+ dispatch(fetchFollowedHashtagsRequest());
+
+ api(getState).get('/api/v1/followed_tags').then(response => {
+ const next = getLinks(response).refs.find(link => link.rel === 'next');
+ dispatch(fetchFollowedHashtagsSuccess(response.data, next ? next.uri : null));
+ }).catch(err => {
+ dispatch(fetchFollowedHashtagsFail(err));
+ });
+};
+
+export function fetchFollowedHashtagsRequest() {
+ return {
+ type: FOLLOWED_HASHTAGS_FETCH_REQUEST,
+ };
+}
+
+export function fetchFollowedHashtagsSuccess(followed_tags, next) {
+ return {
+ type: FOLLOWED_HASHTAGS_FETCH_SUCCESS,
+ followed_tags,
+ next,
+ };
+}
+
+export function fetchFollowedHashtagsFail(error) {
+ return {
+ type: FOLLOWED_HASHTAGS_FETCH_FAIL,
+ error,
+ };
+}
+
+export function expandFollowedHashtags() {
+ return (dispatch, getState) => {
+ const url = getState().getIn(['followed_tags', 'next']);
+
+ if (url === null) {
+ return;
+ }
+
+ dispatch(expandFollowedHashtagsRequest());
+
+ api(getState).get(url).then(response => {
+ const next = getLinks(response).refs.find(link => link.rel === 'next');
+ dispatch(expandFollowedHashtagsSuccess(response.data, next ? next.uri : null));
+ }).catch(error => {
+ dispatch(expandFollowedHashtagsFail(error));
+ });
+ };
+}
+
+export function expandFollowedHashtagsRequest() {
+ return {
+ type: FOLLOWED_HASHTAGS_EXPAND_REQUEST,
+ };
+}
+
+export function expandFollowedHashtagsSuccess(followed_tags, next) {
+ return {
+ type: FOLLOWED_HASHTAGS_EXPAND_SUCCESS,
+ followed_tags,
+ next,
+ };
+}
+
+export function expandFollowedHashtagsFail(error) {
+ return {
+ type: FOLLOWED_HASHTAGS_EXPAND_FAIL,
+ error,
+ };
+}
+
export const followHashtag = name => (dispatch, getState) => {
dispatch(followHashtagRequest(name));
diff --git a/app/javascript/mastodon/actions/timelines.js b/app/javascript/mastodon/actions/timelines.js
index a3434908f..4f772a55f 100644
--- a/app/javascript/mastodon/actions/timelines.js
+++ b/app/javascript/mastodon/actions/timelines.js
@@ -51,7 +51,7 @@ export function updateTimeline(timeline, status, accept) {
dispatch(submitMarkers());
}
};
-};
+}
export function deleteFromTimelines(id) {
return (dispatch, getState) => {
@@ -67,13 +67,13 @@ export function deleteFromTimelines(id) {
reblogOf,
});
};
-};
+}
export function clearTimeline(timeline) {
return (dispatch) => {
dispatch({ type: TIMELINE_CLEAR, timeline });
};
-};
+}
const noOp = () => {};
@@ -122,7 +122,7 @@ export function expandTimeline(timelineId, path, params = {}, done = noOp) {
done();
});
};
-};
+}
export function fillTimelineGaps(timelineId, path, params = {}, done = noOp) {
return (dispatch, getState) => {
@@ -168,7 +168,7 @@ export function expandTimelineRequest(timeline, isLoadingMore) {
timeline,
skipLoading: !isLoadingMore,
};
-};
+}
export function expandTimelineSuccess(timeline, statuses, next, partial, isLoadingRecent, isLoadingMore, usePendingItems) {
return {
@@ -181,7 +181,7 @@ export function expandTimelineSuccess(timeline, statuses, next, partial, isLoadi
usePendingItems,
skipLoading: !isLoadingMore,
};
-};
+}
export function expandTimelineFail(timeline, error, isLoadingMore) {
return {
@@ -191,7 +191,7 @@ export function expandTimelineFail(timeline, error, isLoadingMore) {
skipLoading: !isLoadingMore,
skipNotFound: timeline.startsWith('account:'),
};
-};
+}
export function scrollTopTimeline(timeline, top) {
return {
@@ -199,7 +199,7 @@ export function scrollTopTimeline(timeline, top) {
timeline,
top,
};
-};
+}
export function connectTimeline(timeline) {
return {
@@ -207,7 +207,7 @@ export function connectTimeline(timeline) {
timeline,
usePendingItems: preferPendingItems,
};
-};
+}
export const disconnectTimeline = timeline => ({
type: TIMELINE_DISCONNECT,
diff --git a/app/javascript/mastodon/api.js b/app/javascript/mastodon/api.js
index 6bbddbef6..42b64d6cc 100644
--- a/app/javascript/mastodon/api.js
+++ b/app/javascript/mastodon/api.js
@@ -36,7 +36,7 @@ const setCSRFHeader = () => {
ready(setCSRFHeader);
/**
- * @param {() => import('immutable').Map} getState
+ * @param {() => import('immutable').Map} getState
* @returns {import('axios').RawAxiosRequestHeaders}
*/
const authorizationHeaderFromState = getState => {
@@ -52,7 +52,7 @@ const authorizationHeaderFromState = getState => {
};
/**
- * @param {() => import('immutable').Map} getState
+ * @param {() => import('immutable').Map} getState
* @returns {import('axios').AxiosInstance}
*/
export default function api(getState) {
diff --git a/app/javascript/mastodon/base_polyfills.js b/app/javascript/mastodon/base_polyfills.js
index 12096d902..91bc5d6dc 100644
--- a/app/javascript/mastodon/base_polyfills.js
+++ b/app/javascript/mastodon/base_polyfills.js
@@ -1,17 +1,11 @@
import 'intl';
import 'intl/locale-data/jsonp/en';
import 'es6-symbol/implement';
-import includes from 'array-includes';
import assign from 'object-assign';
import values from 'object.values';
-import isNaN from 'is-nan';
import { decode as decodeBase64 } from './utils/base64';
import promiseFinally from 'promise.prototype.finally';
-if (!Array.prototype.includes) {
- includes.shim();
-}
-
if (!Object.assign) {
Object.assign = assign;
}
@@ -20,10 +14,6 @@ if (!Object.values) {
values.shim();
}
-if (!Number.isNaN) {
- Number.isNaN = isNaN;
-}
-
promiseFinally.shim();
if (!HTMLCanvasElement.prototype.toBlob) {
diff --git a/app/javascript/mastodon/common.js b/app/javascript/mastodon/common.js
index 6818aa5d5..8f3505303 100644
--- a/app/javascript/mastodon/common.js
+++ b/app/javascript/mastodon/common.js
@@ -9,4 +9,4 @@ export function start() {
} catch (e) {
// If called twice
}
-};
+}
diff --git a/app/javascript/mastodon/compare_id.js b/app/javascript/mastodon/compare_id.js
index 66cf51c4b..d2bd74f44 100644
--- a/app/javascript/mastodon/compare_id.js
+++ b/app/javascript/mastodon/compare_id.js
@@ -8,4 +8,4 @@ export default function compareId (id1, id2) {
} else {
return id1.length > id2.length ? 1 : -1;
}
-};
+}
diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/autosuggest_emoji-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/autosuggest_emoji-test.jsx.snap
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/__snapshots__/autosuggest_emoji-test.js.snap
rename to app/javascript/mastodon/components/__tests__/__snapshots__/autosuggest_emoji-test.jsx.snap
diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.jsx.snap
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.js.snap
rename to app/javascript/mastodon/components/__tests__/__snapshots__/avatar-test.jsx.snap
diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.jsx.snap
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.js.snap
rename to app/javascript/mastodon/components/__tests__/__snapshots__/avatar_overlay-test.jsx.snap
diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/button-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/button-test.jsx.snap
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/__snapshots__/button-test.js.snap
rename to app/javascript/mastodon/components/__tests__/__snapshots__/button-test.jsx.snap
diff --git a/app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.js.snap b/app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.jsx.snap
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.js.snap
rename to app/javascript/mastodon/components/__tests__/__snapshots__/display_name-test.jsx.snap
diff --git a/app/javascript/mastodon/components/__tests__/autosuggest_emoji-test.js b/app/javascript/mastodon/components/__tests__/autosuggest_emoji-test.jsx
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/autosuggest_emoji-test.js
rename to app/javascript/mastodon/components/__tests__/autosuggest_emoji-test.jsx
diff --git a/app/javascript/mastodon/components/__tests__/avatar-test.js b/app/javascript/mastodon/components/__tests__/avatar-test.jsx
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/avatar-test.js
rename to app/javascript/mastodon/components/__tests__/avatar-test.jsx
diff --git a/app/javascript/mastodon/components/__tests__/avatar_overlay-test.js b/app/javascript/mastodon/components/__tests__/avatar_overlay-test.jsx
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/avatar_overlay-test.js
rename to app/javascript/mastodon/components/__tests__/avatar_overlay-test.jsx
diff --git a/app/javascript/mastodon/components/__tests__/button-test.js b/app/javascript/mastodon/components/__tests__/button-test.jsx
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/button-test.js
rename to app/javascript/mastodon/components/__tests__/button-test.jsx
diff --git a/app/javascript/mastodon/components/__tests__/display_name-test.js b/app/javascript/mastodon/components/__tests__/display_name-test.jsx
similarity index 100%
rename from app/javascript/mastodon/components/__tests__/display_name-test.js
rename to app/javascript/mastodon/components/__tests__/display_name-test.jsx
diff --git a/app/javascript/mastodon/components/account.js b/app/javascript/mastodon/components/account.jsx
similarity index 72%
rename from app/javascript/mastodon/components/account.js
rename to app/javascript/mastodon/components/account.jsx
index 7aebb124c..a8a47ecac 100644
--- a/app/javascript/mastodon/components/account.js
+++ b/app/javascript/mastodon/components/account.jsx
@@ -1,4 +1,4 @@
-import React, { Fragment } from 'react';
+import React from 'react';
import ImmutablePropTypes from 'react-immutable-proptypes';
import PropTypes from 'prop-types';
import Avatar from './avatar';
@@ -10,6 +10,10 @@ import { me } from '../initial_state';
import RelativeTimestamp from './relative_timestamp';
import Skeleton from 'mastodon/components/skeleton';
import { Link } from 'react-router-dom';
+import { counterRenderer } from 'mastodon/components/common_counter';
+import ShortNumber from 'mastodon/components/short_number';
+import Icon from 'mastodon/components/icon';
+import classNames from 'classnames';
const messages = defineMessages({
follow: { id: 'account.follow', defaultMessage: 'Follow' },
@@ -23,7 +27,26 @@ const messages = defineMessages({
block: { id: 'account.block', defaultMessage: 'Block @{name}' },
});
-export default @injectIntl
+class VerifiedBadge extends React.PureComponent {
+
+ static propTypes = {
+ link: PropTypes.string.isRequired,
+ verifiedAt: PropTypes.string.isRequired,
+ };
+
+ render () {
+ const { link } = this.props;
+
+ return (
+
+
+
+
+ );
+ }
+
+}
+
class Account extends ImmutablePureComponent {
static propTypes = {
@@ -35,6 +58,7 @@ class Account extends ImmutablePureComponent {
onMuteNotifications: PropTypes.func.isRequired,
intl: PropTypes.object.isRequired,
hidden: PropTypes.bool,
+ minimal: PropTypes.bool,
actionIcon: PropTypes.string,
actionTitle: PropTypes.string,
defaultAction: PropTypes.string,
@@ -47,38 +71,42 @@ class Account extends ImmutablePureComponent {
handleFollow = () => {
this.props.onFollow(this.props.account);
- }
+ };
handleBlock = () => {
this.props.onBlock(this.props.account);
- }
+ };
handleMute = () => {
this.props.onMute(this.props.account);
- }
+ };
handleMuteNotifications = () => {
this.props.onMuteNotifications(this.props.account, true);
- }
+ };
handleUnmuteNotifications = () => {
this.props.onMuteNotifications(this.props.account, false);
- }
+ };
handleAction = () => {
this.props.onActionClick(this.props.account);
- }
+ };
render () {
- const { account, intl, hidden, onActionClick, actionIcon, actionTitle, defaultAction, size } = this.props;
+ const { account, intl, hidden, onActionClick, actionIcon, actionTitle, defaultAction, size, minimal } = this.props;
if (!account) {
return (
-