diff options
author | Fire Demon <firedemon@creature.cafe> | 2020-07-15 20:07:55 -0500 |
---|---|---|
committer | Fire Demon <firedemon@creature.cafe> | 2020-08-30 05:41:03 -0500 |
commit | 6abeb96a572b0bcd8bc18f84ef47e03d61e3eea4 (patch) | |
tree | a460f86353c31beb675cf402191fa0a02cf1596a | |
parent | 245e70626005e433c32fd0895015213658ea3b27 (diff) |
[Localization] Add custom locale for Monsterfork additions and Monsterpit community flavor
-rw-r--r-- | app/helpers/settings_helper.rb | 1 | ||||
-rw-r--r-- | app/javascript/flavours/glitch/locales/en-MP.js | 4 | ||||
-rw-r--r-- | app/javascript/flavours/glitch/locales/en.js | 3 | ||||
-rw-r--r-- | app/javascript/locales/locale-data/en-MP.js | 8 | ||||
-rw-r--r-- | app/javascript/locales/monsterfork/en.json | 3 | ||||
-rw-r--r-- | app/javascript/mastodon/locales/en-MP.json | 149 | ||||
-rw-r--r-- | app/javascript/mastodon/locales/locale-data/en-MP.js | 8 | ||||
-rw-r--r-- | app/javascript/mastodon/locales/whitelist_en-MP.json | 2 | ||||
-rw-r--r-- | config/application.rb | 4 | ||||
-rw-r--r-- | config/locales-monsterfork/en.yml | 16 | ||||
-rw-r--r-- | config/locales-monsterfork/simple_form.en.yml | 3 | ||||
-rw-r--r-- | config/locales/en-MP.yml | 117 | ||||
-rw-r--r-- | config/locales/simple_form.en-MP.yml | 51 |
13 files changed, 344 insertions, 25 deletions
diff --git a/app/helpers/settings_helper.rb b/app/helpers/settings_helper.rb index 87718dc05..bb98a71a5 100644 --- a/app/helpers/settings_helper.rb +++ b/app/helpers/settings_helper.rb @@ -2,6 +2,7 @@ module SettingsHelper HUMAN_LOCALES = { + 'en-MP': 'English (Monsterpit)', ar: 'العربية', ast: 'Asturianu', bg: 'Български', diff --git a/app/javascript/flavours/glitch/locales/en-MP.js b/app/javascript/flavours/glitch/locales/en-MP.js new file mode 100644 index 000000000..a84552467 --- /dev/null +++ b/app/javascript/flavours/glitch/locales/en-MP.js @@ -0,0 +1,4 @@ +import messages from 'flavours/glitch/locales/en'; +import messages_mp from 'mastodon/locales/en-MP.json'; + +export default Object.assign({}, messages, messages_mp); \ No newline at end of file diff --git a/app/javascript/flavours/glitch/locales/en.js b/app/javascript/flavours/glitch/locales/en.js index 11bdccfde..90e924d4a 100644 --- a/app/javascript/flavours/glitch/locales/en.js +++ b/app/javascript/flavours/glitch/locales/en.js @@ -1,5 +1,4 @@ import inherited from 'mastodon/locales/en.json'; -import monsterfork from 'locales/monsterfork/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}.', @@ -65,4 +64,4 @@ const messages = { 'advanced_options.threaded_mode.tooltip': 'Threaded mode enabled', }; -export default Object.assign({}, inherited, messages, monsterfork); +export default Object.assign({}, inherited, messages); diff --git a/app/javascript/locales/locale-data/en-MP.js b/app/javascript/locales/locale-data/en-MP.js new file mode 100644 index 000000000..a2defe09a --- /dev/null +++ b/app/javascript/locales/locale-data/en-MP.js @@ -0,0 +1,8 @@ +/*eslint eqeqeq: "off"*/ +/*eslint no-nested-ternary: "off"*/ +/*eslint quotes: "off"*/ + +export default [{ + locale: 'en-MP', + parentLocale: 'en', +}]; \ No newline at end of file diff --git a/app/javascript/locales/monsterfork/en.json b/app/javascript/locales/monsterfork/en.json deleted file mode 100644 index 24f9989f8..000000000 --- a/app/javascript/locales/monsterfork/en.json +++ /dev/null @@ -1,3 +0,0 @@ -{ - "status.edited": "{count, plural, one {# edit} other {# edits}} · last update: {updated_at}" -} \ No newline at end of file diff --git a/app/javascript/mastodon/locales/en-MP.json b/app/javascript/mastodon/locales/en-MP.json new file mode 100644 index 000000000..28edfec63 --- /dev/null +++ b/app/javascript/mastodon/locales/en-MP.json @@ -0,0 +1,149 @@ +{ + "account.add_account_note": "Add note for @{name}", + "account.followers.empty": "No one follows this creature yet.", + "account.follows.empty": "This creature doesn't follow anyone yet.", + "account.follows": "Follows", + "account.locked_info": "This creature manually reviews who can follow them.", + "account.posts_with_replies": "Roars & Growls", + "account.posts": "Roars", + "account.statuses_counter": "{count, plural, one {{counter} Roar} other {{counter} Roars}}", + "advanced_options.local-only.long": "Do not post to other servers", + "column_header.profile": "Creature", + "column.blocks": "Blocked creatures", + "column.directory": "Creature directory", + "column.favourites": "Admirations", + "column.mutes": "Muted creatures", + "column.pins": "Pins", + "column.public": "World", + "column.toot": "Roars & Growls", + "compose_form.direct_message_warning": "This roar will only be sent to the mentioned creatures.", + "compose_form.hashtag_warning": "This roar won't be listed under any hashtag as it is unlisted. Only public roars can be searched by hashtag.", + "compose_form.lock_disclaimer": "Your account is not {locked}. Anyone can follow you to view your follower-only posts.", + "compose_form.placeholder": "Roar shamelessly!", + "compose_form.publish": "Roar", + "compose_form.spoiler_placeholder": "Enter content notes here", + "compose_form.spoiler.marked": "Text is hidden behind content notes", + "compose_form.spoiler": "Enter content notes here", + "confirmations.delete.message": "Are you sure you want to delete this roar?", + "confirmations.mute.explanation": "This will hide roars from them and roars mentioning them, but it will still allow them to see your roars and follow you.", + "confirmations.redraft.message": "Are you sure you want to delete and redraft this roar? Admirations and boosts will be lost, and replies to the original roar will be orphaned.", + "content-type.change": "Content type", + "directory.federated": "From world", + "embed.instructions": "Embed this roar on your website by copying the code below.", + "empty_column.account_timeline": "No roars here!", + "empty_column.blocks": "You haven't blocked any creatures yet.", + "empty_column.bookmarked_statuses": "You don't have any bookmarked roars yet. When you bookmark one, it will show up here.", + "empty_column.favourited_statuses": "You don't have any admired roars yet. When you admire one, it will show up here.", + "empty_column.favourites": "No one has admired this roar yet. When someone does, they will show up here.", + "empty_column.home": "Your home timeline is empty! Visit {public} or use search to get started and meet other creatures.", + "empty_column.list": "There is nothing in this list yet. When members of this list post new roars, they will appear here.", + "empty_column.mutes": "You haven't muted any creatures yet.", + "empty_column.public": "There is nothing here! Write something publicly, or manually follow creatures from other servers to fill it up", + "follow_request.authorize": "Accept", + "getting_started.directory": "Creature directory", + "getting_started.invite": "Invite creatures", + "introduction.federation.federated.headline": "World", + "introduction.federation.federated.text": "Public roars from other servers will appear in the World timeline.", + "introduction.federation.home.text": "Roars from creatures you follow will appear in your home feed.", + "introduction.interactions.action": "Finish tutorial", + "introduction.interactions.favourite.headline": "Admire", + "introduction.interactions.favourite.text": "You can save a roar for later, and let the author know that you liked it, by admiring it.", + "introduction.interactions.reblog.text": "You can share other creature's roars with your followers by boosting them.", + "introduction.interactions.reply.text": "You can reply to other creature's and your own roars, which will chain them together in a conversation.", + "keyboard_shortcuts.blocked": "to open blocked creatures list", + "keyboard_shortcuts.column": "to focus a roar in one of the columns", + "keyboard_shortcuts.enter": "to open roar", + "keyboard_shortcuts.favourite": "to admire", + "keyboard_shortcuts.favourites": "to open admirations list", + "keyboard_shortcuts.federated": "to open world timeline", + "keyboard_shortcuts.muted": "to open muted creatures list", + "keyboard_shortcuts.pinned": "to open pinned roars list", + "keyboard_shortcuts.spoilers": "to show/hide content note field", + "keyboard_shortcuts.toggle_hidden": "to show/hide text behind content notes", + "keyboard_shortcuts.toot": "to start a new roar", + "lists.search": "Search among creatures you follow", + "mute_modal.hide_notifications": "Hide notifications from this creature?", + "navigation_bar.blocks": "Blocked creatures", + "navigation_bar.compose": "Compose new roar", + "navigation_bar.favourites": "Admirations", + "navigation_bar.logout": "Sleep", + "navigation_bar.mutes": "Muted creatures", + "navigation_bar.pins": "Pins", + "navigation_bar.public_timeline": "World", + "notification_purge.start": "Enter notification cleaning mode", + "notification.favourite": "{name} admired your roar", + "notification.reblog": "{name} boosted your roar", + "notifications.column_settings.favourite": "Admirations:", + "notifications.filter.favourites": "Admirations", + "poll.total_people": "{count, plural, one {# creature} other {# creatures}}", + "privacy.change": "Adjust roar privacy", + "privacy.direct.long": "Visible for mentioned creatures only", + "report.forward_hint": "The creature is from another server. Send an anonymized copy of the report there as well?", + "report.hint": "The report will be sent to your server moderators. You can provide an explanation of why you are reporting this creature below:", + "search_popout.tips.full_text": "Simple text returns roars you have written, admired, boosted, or have been mentioned in, as well as matching usernames, display names, and hashtags.", + "search_popout.tips.status": "roar", + "search_popout.tips.text": "Simple text returns matching display names, usernames and hashtags", + "search_popout.tips.user": "creature", + "search_results.accounts": "Creatures", + "search_results.statuses_fts_disabled": "Searching roars by their content is not enabled on this Mastodon server.", + "search_results.statuses": "Roars", + "settings.always_show_spoilers_field": "Always show content notes field", + "settings.auto_collapse_lengthy": "Lengthy roars", + "settings.auto_collapse_media": "Media", + "settings.collapsed_statuses": "Collapsed roars", + "settings.confirm_boost_missing_media_description": "Show confirmation dialog before boosting roars lacking media descriptions", + "settings.confirm_missing_media_description": "Show confirmation dialog before sending roars lacking media descriptions", + "settings.content_warnings_filter": "Avoid expanding roars with content notes containing:", + "settings.content_warnings": "Content notes", + "settings.enable_collapsed": "Enable collapsed roars", + "settings.enable_content_warnings_auto_unfold": "Auto-expand roars with content notes", + "settings.filtering_behavior.cw": "Add the filtered phrase to the roar's content notes", + "settings.image_backgrounds_media": "Preview collapsed media", + "settings.image_backgrounds_users": "Give collapsed roars an image background", + "settings.prepend_cw_re": "Prepend \"re:\" to content notes when replying", + "settings.rewrite_mentions": "Rewrite mentions in roars:", + "settings.show_action_bar": "Show action buttons in collapsed roars", + "settings.show_content_type_choice": "Show content-type choice when authoring roars", + "settings.side_arm_reply_mode.copy": "Copy privacy setting of the roar being replied to", + "settings.side_arm_reply_mode.keep": "Keep secondary roar button to set privacy", + "settings.side_arm_reply_mode.restrict": "Restrict privacy setting to that of the roar being replied to", + "settings.side_arm_reply_mode": "When replying to a roar:", + "settings.side_arm": "Secondary roar button:", + "status.admin_account": "Moderate @{name}", + "status.admin_status": "Moderate roar", + "status.cannot_reblog": "This roar cannot be boosted", + "status.copy": "Copy link to roar", + "status.edit": "Edit", + "status.edited": "{count, plural, one {# edit} other {# edits}} · last update: {updated_at}", + "status.favourite": "Admire", + "status.has_pictures": "Features attached pictures", + "status.in_reply_to": "This roar is a reply", + "status.is_poll": "This roar is a poll", + "status.open": "Open this roar", + "status.pinned": "Pinned", + "status.reblogs.empty": "No one has boosted this roar yet. When someone does, they will show up here.", + "status.show_less_all": "Hide all", + "status.show_less": "Hide", + "status.show_more_all": "Reveal all", + "status.show_more": "Reveal", + "status.show_thread": "Reveal thread", + "tabs_bar.federated_timeline": "World", + "timeline_hint.resources.statuses": "Older roars", + "trends.counter_by_accounts": "{count, plural, one {{counter} creature} other {{counter} creatures}} talking", + "ui.beforeunload": "Your draft will be lost if you leave the web page.", + "upload_form.edit": "Add description text", + "upload_modal.edit_media": "Add description text", + "video.expand": "Open video", + + "column.community": "Monsterpit", + "community.column_settings.local_only": "Monsterpit only", + "directory.local": "From Monsterpit", + "empty_column.community": "The Monsterpit timeline is empty. Write something publicly to get the ball rolling!", + "error.unexpected_crash.next_steps": "Try refreshing the page. If that does not help, you may still be able to use Monsterpit through a different browser or native app.", + "getting_started.open_source_notice": "Monsterfork is open source software. You can contribute or report issues on <a href=\"https://monsterware.dev/monsterpit/monsterpit-mastodon\" target=\"_blank\" rel=\"noopener nofollow\">Monsterware</a>.", + "introduction.federation.local.headline": "Monsterpit", + "introduction.federation.local.text": "Public roars from people on Monsterpit will appear in the Monsterpit timeline.", + "keyboard_shortcuts.local": "to open Monsterpit timeline", + "navigation_bar.community_timeline": "Monsterpit", + "tabs_bar.local_timeline": "Monsterpit" +} \ No newline at end of file diff --git a/app/javascript/mastodon/locales/locale-data/en-MP.js b/app/javascript/mastodon/locales/locale-data/en-MP.js new file mode 100644 index 000000000..a2defe09a --- /dev/null +++ b/app/javascript/mastodon/locales/locale-data/en-MP.js @@ -0,0 +1,8 @@ +/*eslint eqeqeq: "off"*/ +/*eslint no-nested-ternary: "off"*/ +/*eslint quotes: "off"*/ + +export default [{ + locale: 'en-MP', + parentLocale: 'en', +}]; \ No newline at end of file diff --git a/app/javascript/mastodon/locales/whitelist_en-MP.json b/app/javascript/mastodon/locales/whitelist_en-MP.json new file mode 100644 index 000000000..32960f8ce --- /dev/null +++ b/app/javascript/mastodon/locales/whitelist_en-MP.json @@ -0,0 +1,2 @@ +[ +] \ No newline at end of file diff --git a/config/application.rb b/config/application.rb index ad6cf82d7..a3f4a855c 100644 --- a/config/application.rb +++ b/config/application.rb @@ -45,6 +45,7 @@ module Mastodon # All translations from config/locales/*.rb,yml are auto loaded. # config.i18n.load_path += Dir[Rails.root.join('my', 'locales', '*.{rb,yml}').to_s] config.i18n.available_locales = [ + :'en-MP', :ar, :ast, :bg, @@ -117,9 +118,10 @@ module Mastodon ] config.i18n.default_locale = ENV['DEFAULT_LOCALE']&.to_sym + config.i18n.fallbacks = [:en] unless config.i18n.available_locales.include?(config.i18n.default_locale) - config.i18n.default_locale = :en + config.i18n.default_locale = :'en-MP' end # config.paths.add File.join('app', 'api'), glob: File.join('**', '*.rb') diff --git a/config/locales-monsterfork/en.yml b/config/locales-monsterfork/en.yml deleted file mode 100644 index e0f9cead8..000000000 --- a/config/locales-monsterfork/en.yml +++ /dev/null @@ -1,16 +0,0 @@ ---- -en: - about: - available_content: Connected servers - available_content_html: 'Users and content from these servers can be interacted with from here:' - admin: - dashboard: - feature_hcaptcha: hCaptcha - domain_allows: - hidden: Exclude from public server list - settings: - domain_allows: - title: Show allowed domains - registrations: - errors: - captcha_fail: Captcha verification failed \ No newline at end of file diff --git a/config/locales-monsterfork/simple_form.en.yml b/config/locales-monsterfork/simple_form.en.yml deleted file mode 100644 index 3e7775159..000000000 --- a/config/locales-monsterfork/simple_form.en.yml +++ /dev/null @@ -1,3 +0,0 @@ ---- -en: - simple_form: \ No newline at end of file diff --git a/config/locales/en-MP.yml b/config/locales/en-MP.yml new file mode 100644 index 000000000..db2771ad3 --- /dev/null +++ b/config/locales/en-MP.yml @@ -0,0 +1,117 @@ +--- +en-MP: + about: + about_hashtag_html: These are public roars tagged with <strong>#%{hashtag}</strong> from around the fediverse. + available_content: Connected servers + available_content_html: 'Users and content from these servers can be interacted with from here:' + browse_local_posts: Browse a live stream of public roars from Monsterpit + browse_public_posts: Browse a live stream of public roars on the fediverse + federation_hint_html: Join Monsterpit and meet creatures around the fediverse. + hosted_on: Monsterfork hosted on %{domain} + instance_actor_flash: This account is a virtual actor used to represent the server itself. It is used for federation purposes and should not be blocked unless you want to block the whole server, in which case you should use a domain block. + accounts: + endorsements_hint: You can endorse creatures you follow from the web interface, and they will show up here. + people_followed_by: Creatures whom %{name} follows + people_who_follow: Creatures who follow %{name} + pin_errors: + following: You must be already following the creature you want to endorse + posts: + one: Roar + other: Roars + posts_tab_heading: Roars + posts_with_replies: Roars & Growls + admin: + accounts: + search_same_email_domain: Other creatures with the same e-mail domain + search_same_ip: Other creatures with the same IP + action_logs: + actions: + update_status: "%{name} updated roar by %{target}" + deleted_status: "(deleted roar)" + dashboard: + pending_users: creatures waiting for review + feature_hcaptcha: hCaptcha + recent_users: Recent creatures + single_user_mode: Single creature mode + total_users: creatures in total + week_users_new: creatures this week + domain_allows: + hidden: Exclude from public server list + relays: + description_html: A <strong>federation relay</strong> is an intermediary server that exchanges large volumes of public roars between servers that subscribe and publish to it. <strong>It can help small and medium servers discover content from the fediverse</strong>, which would otherwise require local users manually following other people on remote servers. + enable_hint: Once enabled, your server will subscribe to all public roars from this relay, and will begin sending this server's public toots to it. + settings: + activity_api_enabled: + desc_html: Counts of locally posted roars, active creatures, and new registrations in weekly buckets + title: Publish aggregate statistics about creature activity + bootstrap_timeline_accounts: + title: Default follows for new creatures + default_noindex: + desc_html: Affects all creatures who have not changed this setting themselves + title: Opt creatures out of search engine indexing by default + domain_allows: + title: Show allowed domains + domain_blocks: + users: To logged-in local creatures + enable_bootstrap_timeline_accounts: + title: Enable default follows for new creatures + profile_directory: + desc_html: Allow creatures to be discoverable + registrations: + errors: + captcha_fail: Captcha verification failed + show_staff_badge: + desc_html: Display staff badges on profiles + appearance: + toot_layout: Roar layout + auth: + description: + prefix_invited_by_user: "@%{name} invites you to join Monsterpit!" + prefix_sign_up: Roar with Monsterpit! + suffix: On Monsterpit, you'll be able to commune with creatures across the fediverse! + authorize_follow: + already_following: You are already following this creature + already_requested: You have already sent a follow request to that creature + error: Unfortunately, there was an error looking up that creature's account + post_follow: + return: Show the creature's profile + existing_username_validator: + not_found: could not find a local creature with that username + exports: + archive_takeout: + hint_html: You can request an archive of your <strong>roars and media</strong>. The exported data will be in the ActivityPub format, readable by any compliant software. You can request an archive every 7 days. + notification_mailer: + favourite: + body: 'Your status was admired by %{name}:' + subject: "%{name} admired your roar" + title: New admiration + reblog: + body: 'Your roar was boosted by %{name}:' + subject: "%{name} boosted your roar" + title: New roar + remote_interaction: + favourite: + proceed: Proceed to admire + prompt: 'You want to admire this roar:' + reblog: + proceed: Proceed to boost + prompt: 'You want to boost this roar:' + reply: + proceed: Proceed to reply + prompt: 'You want to reply to this roar:' + scheduled_statuses: + over_daily_limit: You have exceeded the limit of %{limit} scheduled roars for that day + over_total_limit: You have exceeded the limit of %{limit} scheduled roars + stream_entries: + pinned: Pinned + pin_errors: + limit: You have already pinned the maximum number of roars + ownership: Someone else's roar cannot be pinned + private: Non-public roar cannot be pinned + settings: + monsterfork: Monsterfork + user_mailer: + warning: + explanation: + silence: While your account is limited, only creatures who are already following you will see your roars on this server, and you may be excluded from various public listings. However, others may still manually follow you. + suspend: Your account has been suspended, and all of your roars and your uploaded media files have been irreversibly removed from this server, and servers where you had followers. \ No newline at end of file diff --git a/config/locales/simple_form.en-MP.yml b/config/locales/simple_form.en-MP.yml new file mode 100644 index 000000000..9903fb174 --- /dev/null +++ b/config/locales/simple_form.en-MP.yml @@ -0,0 +1,51 @@ +--- +en-MP: + simple_form: + hints: + account_warning_preset: + text: You can use roar syntax, such as URLs, hashtags and mentions + admin_account_action: + include_statuses: The creature will see which roars have caused the moderation action or warning + send_email_notification: The creature will receive an explanation of what happened with their account + text_html: Optional. You can use roar syntax. You can <a href="%{path}">add warning presets</a> to save time + announcement: + text: You can use roar syntax. Please be mindful of the space the announcement will take up on the user's screen + defaults: + irreversible: Filtered roars will disappear irreversibly, even if filter is later removed + phrase: Will be matched regardless of casing in text or content warning of a roar + setting_aggregate_reblogs: Do not show new boosts for roars that have been recently boosted (only affects newly-received boosts) + setting_default_content_type_html: When composing roars, assume they are written in raw HTML, unless specified otherwise + setting_default_content_type_markdown: When composing roars, assume they are using Markdown for rich text formatting, unless specified otherwise + setting_default_content_type_plain: When composing roars, assume they are plain text with no special formatting, unless specified otherwise (default) + setting_default_content_type_html_html: "<strong><strong>Bold</strong></strong>, <u><u>Underline</u></u>, <em><em>Italic</em></em>, <code><code>Console</code></code>, ..." + setting_default_content_type_markdown_html: "<strong>**Bold**</strong>, <u>_Underline_</u>, <em>*Italic*</em>, <code>`Console`</code>, ..." + setting_default_content_type_plain_html: No formatting. + setting_default_content_type_console_html: <code>Plain-text console formatting.</code> + setting_default_content_type_bbcode_html: "<strong>[b]Bold[/b]</strong>, <u>[u]Underline[/u]</u>, <em>[i]Italic[/i]</em>, <code>[code]Console[/code]</code>, ..." + setting_default_language: The language of your roars can be detected automatically, but it's not always accurate + setting_show_application: The application you use to toot will be displayed in the detailed view of your roars + setting_skin: Reskins the selected UI flavour + invite_request: + text: This helps us determine if registrations are made in sincerity and prevent spam. It is only visible to admins. + user: + chosen_languages: When checked, only roars in selected languages will be displayed in public timelines + labels: + admin_account_action: + include_statuses: Include reported roars in the e-mail + defaults: + bot: This is an automated account + setting_crop_images: Crop images in non-expanded roars to 16x9 + setting_default_content_type: Default format for roars + setting_default_language: Roar language + setting_default_privacy: Roar privacy + setting_delete_modal: Show confirmation dialog before deleting a roar + setting_display_media_hide_all: Hide all + setting_display_media_show_all: Reveal all + setting_expand_spoilers: Always expand roars marked with content warnings + setting_favourite_modal: Show confirmation dialog before admiring (applies to Glitch flavour only) + setting_show_application: Disclose application used to send roars + setting_use_pending_items: Relax mode + invite_request: + text: "Introduce yourself and let the admins know what brings you to Monsterpit." + notification_emails: + favourite: Someone admired your roar \ No newline at end of file |