diff --git a/Gemfile b/Gemfile index dc72851b36..ba90953788 100644 --- a/Gemfile +++ b/Gemfile @@ -33,11 +33,11 @@ gem 'devise', '~> 4.4' gem 'devise-two-factor', '~> 3.0' gem 'doorkeeper', '~> 4.2' gem 'fast_blank', '~> 1.0' -gem 'goldfinger', '~> 2.0' +gem 'goldfinger', '~> 2.1' gem 'hiredis', '~> 0.6' gem 'redis-namespace', '~> 1.5' gem 'htmlentities', '~> 4.3' -gem 'http', '~> 2.2' +gem 'http', '~> 3.0' gem 'http_accept_language', '~> 2.1' gem 'httplog', '~> 0.99' gem 'idn-ruby', require: 'idn' diff --git a/Gemfile.lock b/Gemfile.lock index cb480ab6d1..5f291d46a9 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -181,9 +181,9 @@ GEM ruby-progressbar (~> 1.4) globalid (0.4.1) activesupport (>= 4.2.0) - goldfinger (2.0.1) + goldfinger (2.1.0) addressable (~> 2.5) - http (~> 2.2) + http (~> 3.0) nokogiri (~> 1.8) oj (~> 3.0) hamlit (2.8.5) @@ -202,14 +202,14 @@ GEM hiredis (0.6.1) hkdf (0.3.0) htmlentities (4.3.4) - http (2.2.2) + http (3.0.0) addressable (~> 2.3) http-cookie (~> 1.0) - http-form_data (~> 1.0.1) + http-form_data (>= 2.0.0.pre.pre2, < 3) http_parser.rb (~> 0.6.0) http-cookie (1.0.3) domain_name (~> 0.5) - http-form_data (1.0.3) + http-form_data (2.0.0) http_accept_language (2.1.1) http_parser.rb (0.6.0) httplog (0.99.7) @@ -300,12 +300,12 @@ GEM concurrent-ruby (~> 1.0.0) sidekiq (>= 3.5.0) statsd-ruby (~> 1.2.0) - oj (3.3.9) + oj (3.3.10) orm_adapter (0.5.0) - ostatus2 (2.0.2) - addressable (~> 2.4) - http (~> 2.0) - nokogiri (~> 1.6) + ostatus2 (2.0.3) + addressable (~> 2.5) + http (~> 3.0) + nokogiri (~> 1.8) ox (2.8.2) paperclip (5.1.0) activemodel (>= 4.2.0) @@ -580,11 +580,11 @@ DEPENDENCIES fog-local (~> 0.4) fog-openstack (~> 0.1) fuubar (~> 2.2) - goldfinger (~> 2.0) + goldfinger (~> 2.1) hamlit-rails (~> 0.2) hiredis (~> 0.6) htmlentities (~> 4.3) - http (~> 2.2) + http (~> 3.0) http_accept_language (~> 2.1) httplog (~> 0.99) i18n-tasks (~> 0.9) diff --git a/app/controllers/activitypub/inboxes_controller.rb b/app/controllers/activitypub/inboxes_controller.rb index 76553a162a..7d0bc74d3e 100644 --- a/app/controllers/activitypub/inboxes_controller.rb +++ b/app/controllers/activitypub/inboxes_controller.rb @@ -28,7 +28,7 @@ class ActivityPub::InboxesController < Api::BaseController def upgrade_account if signed_request_account.ostatus? signed_request_account.update(last_webfingered_at: nil) - ResolveRemoteAccountWorker.perform_async(signed_request_account.acct) + ResolveAccountWorker.perform_async(signed_request_account.acct) end Pubsubhubbub::UnsubscribeWorker.perform_async(signed_request_account.id) if signed_request_account.subscribed? diff --git a/app/controllers/authorize_follows_controller.rb b/app/controllers/authorize_follows_controller.rb index eda50e07d1..95052df7cd 100644 --- a/app/controllers/authorize_follows_controller.rb +++ b/app/controllers/authorize_follows_controller.rb @@ -46,7 +46,7 @@ class AuthorizeFollowsController < ApplicationController end def account_from_remote_follow - ResolveRemoteAccountService.new.call(acct_without_prefix) + ResolveAccountService.new.call(acct_without_prefix) end def acct_param_is_url? diff --git a/app/controllers/concerns/signature_verification.rb b/app/controllers/concerns/signature_verification.rb index 2baafb5bf5..f289228d3c 100644 --- a/app/controllers/concerns/signature_verification.rb +++ b/app/controllers/concerns/signature_verification.rb @@ -114,7 +114,7 @@ module SignatureVerification def account_from_key_id(key_id) if key_id.start_with?('acct:') - ResolveRemoteAccountService.new.call(key_id.gsub(/\Aacct:/, '')) + ResolveAccountService.new.call(key_id.gsub(/\Aacct:/, '')) elsif !ActivityPub::TagManager.instance.local_uri?(key_id) account = ActivityPub::TagManager.instance.uri_to_resource(key_id, Account) account ||= ActivityPub::FetchRemoteKeyService.new.call(key_id, id: false) diff --git a/app/controllers/concerns/user_tracking_concern.rb b/app/controllers/concerns/user_tracking_concern.rb index a2510e55fe..be10705fcc 100644 --- a/app/controllers/concerns/user_tracking_concern.rb +++ b/app/controllers/concerns/user_tracking_concern.rb @@ -3,7 +3,6 @@ module UserTrackingConcern extend ActiveSupport::Concern - REGENERATE_FEED_DAYS = 14 UPDATE_SIGN_IN_HOURS = 24 included do @@ -14,25 +13,10 @@ module UserTrackingConcern def set_user_activity return unless user_needs_sign_in_update? - - # Mark as signed-in today current_user.update_tracked_fields!(request) - ActivityTracker.record('activity:logins', current_user.id) - - # Regenerate feed if needed - regenerate_feed! if user_needs_feed_update? end def user_needs_sign_in_update? user_signed_in? && (current_user.current_sign_in_at.nil? || current_user.current_sign_in_at < UPDATE_SIGN_IN_HOURS.hours.ago) end - - def user_needs_feed_update? - current_user.last_sign_in_at < REGENERATE_FEED_DAYS.days.ago - end - - def regenerate_feed! - Redis.current.setnx("account:#{current_user.account_id}:regeneration", true) && Redis.current.expire("account:#{current_user.account_id}:regeneration", 1.day.seconds) - RegenerationWorker.perform_async(current_user.account_id) - end end diff --git a/app/javascript/core/admin.js b/app/javascript/core/admin.js index c0bd09bdda..b4125e84ea 100644 --- a/app/javascript/core/admin.js +++ b/app/javascript/core/admin.js @@ -30,13 +30,13 @@ delegate(document, batchCheckboxClassName, 'change', () => { }); delegate(document, '.media-spoiler-show-button', 'click', () => { - [].forEach.call(document.querySelectorAll('.activity-stream .media-spoiler-wrapper'), (content) => { - content.classList.add('media-spoiler-wrapper__visible'); + [].forEach.call(document.querySelectorAll('button.media-spoiler'), (element) => { + element.click(); }); }); delegate(document, '.media-spoiler-hide-button', 'click', () => { - [].forEach.call(document.querySelectorAll('.activity-stream .media-spoiler-wrapper'), (content) => { - content.classList.remove('media-spoiler-wrapper__visible'); + [].forEach.call(document.querySelectorAll('.spoiler-button.spoiler-button--visible button'), (element) => { + element.click(); }); }); diff --git a/app/javascript/images/mailer/icon_cached.png b/app/javascript/images/mailer/icon_cached.png index e62c064c83..210833d348 100644 Binary files a/app/javascript/images/mailer/icon_cached.png and b/app/javascript/images/mailer/icon_cached.png differ diff --git a/app/javascript/mastodon/actions/push_notifications/registerer.js b/app/javascript/mastodon/actions/push_notifications/registerer.js index 5f47a5501b..51e68cad14 100644 --- a/app/javascript/mastodon/actions/push_notifications/registerer.js +++ b/app/javascript/mastodon/actions/push_notifications/registerer.js @@ -1,6 +1,7 @@ import api from '../../api'; import { pushNotificationsSetting } from '../../settings'; import { setBrowserSupport, setSubscription, clearSubscription } from './setter'; +import { me } from '../../initial_state'; // Taken from https://www.npmjs.com/package/web-push const urlBase64ToUint8Array = (base64String) => { @@ -35,7 +36,7 @@ const subscribe = (registration) => const unsubscribe = ({ registration, subscription }) => subscription ? subscription.unsubscribe().then(() => registration) : registration; -const sendSubscriptionToBackend = (getState, subscription, me) => { +const sendSubscriptionToBackend = (getState, subscription) => { const params = { subscription }; if (me) { @@ -54,7 +55,6 @@ const supportsPushNotifications = ('serviceWorker' in navigator && 'PushManager' export function register () { return (dispatch, getState) => { dispatch(setBrowserSupport(supportsPushNotifications)); - const me = getState().getIn(['meta', 'me']); if (me && !pushNotificationsSetting.get(me)) { const alerts = getState().getIn(['push_notifications', 'alerts']); @@ -85,13 +85,13 @@ export function register () { } else { // Something went wrong, try to subscribe again return unsubscribe({ registration, subscription }).then(subscribe).then( - subscription => sendSubscriptionToBackend(getState, subscription, me)); + subscription => sendSubscriptionToBackend(getState, subscription)); } } // No subscription, try to subscribe return subscribe(registration).then( - subscription => sendSubscriptionToBackend(getState, subscription, me)); + subscription => sendSubscriptionToBackend(getState, subscription)); }) .then(subscription => { // If we got a PushSubscription (and not a subscription object from the backend) @@ -140,7 +140,6 @@ export function saveSettings() { api(getState).put(`/api/web/push_subscriptions/${subscription.get('id')}`, { data, }).then(() => { - const me = getState().getIn(['meta', 'me']); if (me) { pushNotificationsSetting.set(me, data); } diff --git a/app/javascript/mastodon/features/ui/components/__tests__/column-test.js b/app/javascript/mastodon/features/ui/components/__tests__/column-test.js index 1e5e1d8dc5..11cc1b6e88 100644 --- a/app/javascript/mastodon/features/ui/components/__tests__/column-test.js +++ b/app/javascript/mastodon/features/ui/components/__tests__/column-test.js @@ -21,13 +21,13 @@ describe('', () => {
); - wrapper.find(ColumnHeader).simulate('click'); + wrapper.find(ColumnHeader).find('button').simulate('click'); expect(global.requestAnimationFrame.mock.calls.length).toEqual(1); }); it('does not try to scroll if there is no scrollable content', () => { const wrapper = mount(); - wrapper.find(ColumnHeader).simulate('click'); + wrapper.find(ColumnHeader).find('button').simulate('click'); expect(global.requestAnimationFrame.mock.calls.length).toEqual(0); }); }); diff --git a/app/javascript/mastodon/features/ui/components/column_header.js b/app/javascript/mastodon/features/ui/components/column_header.js index fdf9aab1a5..e8bdd8054f 100644 --- a/app/javascript/mastodon/features/ui/components/column_header.js +++ b/app/javascript/mastodon/features/ui/components/column_header.js @@ -1,5 +1,6 @@ import React from 'react'; import PropTypes from 'prop-types'; +import classNames from 'classnames'; export default class ColumnHeader extends React.PureComponent { @@ -16,19 +17,20 @@ export default class ColumnHeader extends React.PureComponent { } render () { - const { type, active, columnHeaderId } = this.props; + const { icon, type, active, columnHeaderId } = this.props; + let iconElement = ''; - let icon = ''; - - if (this.props.icon) { - icon = ; + if (icon) { + iconElement = ; } return ( -
- {icon} - {type} -
+

+ +

); } diff --git a/app/javascript/mastodon/locales/ar.json b/app/javascript/mastodon/locales/ar.json index 795b27707a..f43d7ca006 100644 --- a/app/javascript/mastodon/locales/ar.json +++ b/app/javascript/mastodon/locales/ar.json @@ -139,6 +139,7 @@ "loading_indicator.label": "تحميل ...", "media_gallery.toggle_visible": "عرض / إخفاء", "missing_indicator.label": "تعذر العثور عليه", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "هل تود إخفاء الإخطارات القادمة من هذا المستخدم ؟", "navigation_bar.blocks": "الحسابات المحجوبة", "navigation_bar.community_timeline": "الخيط العام المحلي", @@ -174,7 +175,8 @@ "onboarding.page_four.home": "تعرض الصفحة الرئيسية منشورات جميع الأشخاص الذين تتابعهم.", "onboarding.page_four.notifications": "فعندما يتفاعل شخص ما معك، عمود الإخطارات يخبرك.", "onboarding.page_one.federation": "ماستدون شبكة من خوادم مستقلة متلاحمة تهدف إلى إنشاء أكبر شبكة اجتماعية موحدة. تسمى هذه السرفيرات بمثيلات خوادم.", - "onboarding.page_one.handle": "أنت الآن على {domain}، واحد من مجموع مثيلات الخوادم المستقلة. اسم المستخدم الكامل الخاص بك هو {handle}", + "onboarding.page_one.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "مرحبا بك في ماستدون !", "onboarding.page_six.admin": "مدير(ة) مثيل الخادم هذا {admin}.", "onboarding.page_six.almost_done": "أنهيت تقريبا ...", @@ -197,6 +199,8 @@ "privacy.public.short": "للعامة", "privacy.unlisted.long": "لا تقم بإدراجه على الخيوط العامة", "privacy.unlisted.short": "غير مدرج", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "الآن", diff --git a/app/javascript/mastodon/locales/bg.json b/app/javascript/mastodon/locales/bg.json index c0a24dacb3..8188ae2c07 100644 --- a/app/javascript/mastodon/locales/bg.json +++ b/app/javascript/mastodon/locales/bg.json @@ -139,6 +139,7 @@ "loading_indicator.label": "Зареждане...", "media_gallery.toggle_visible": "Toggle visibility", "missing_indicator.label": "Not found", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Hide notifications from this user?", "navigation_bar.blocks": "Blocked users", "navigation_bar.community_timeline": "Local timeline", @@ -174,7 +175,8 @@ "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": "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.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "Welcome to Mastodon!", "onboarding.page_six.admin": "Your instance's admin is {admin}.", "onboarding.page_six.almost_done": "Almost done...", @@ -197,6 +199,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Do not show in public timelines", "privacy.unlisted.short": "Unlisted", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "now", diff --git a/app/javascript/mastodon/locales/ca.json b/app/javascript/mastodon/locales/ca.json index 3eb0e3d26c..a37f38fd1e 100644 --- a/app/javascript/mastodon/locales/ca.json +++ b/app/javascript/mastodon/locales/ca.json @@ -50,7 +50,7 @@ "column_header.unpin": "Deslligar", "column_subheading.navigation": "Navegació", "column_subheading.settings": "Configuració", - "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", + "compose_form.hashtag_warning": "Aquest toot no es mostrarà en cap etiqueta ja que no està llistat. Només els toots públics poden ser cercats per etiqueta.", "compose_form.lock_disclaimer": "El teu compte no està bloquejat {locked}. Tothom pot seguir-te i veure els teus missatges a seguidors.", "compose_form.lock_disclaimer.lock": "bloquejat", "compose_form.placeholder": "En què estàs pensant?", @@ -139,6 +139,7 @@ "loading_indicator.label": "Carregant...", "media_gallery.toggle_visible": "Alternar visibilitat", "missing_indicator.label": "No trobat", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Amagar notificacions d'aquest usuari?", "navigation_bar.blocks": "Usuaris bloquejats", "navigation_bar.community_timeline": "Línia de temps Local", @@ -174,7 +175,8 @@ "onboarding.page_four.home": "La línia de temps d'Inici mostra missatges de les persones que segueixes.", "onboarding.page_four.notifications": "La columna Notificacions mostra quan algú interactua amb tu.", "onboarding.page_one.federation": "Mastodon és una xarxa de servidors independents que s'uneixen per fer una més gran xarxa social. A aquests servidors els hi diem instàncies.", - "onboarding.page_one.handle": "Ets a {domain}, per tant el teu usuari complert és {handle}", + "onboarding.page_one.full_handle": "El teu usuari complet", + "onboarding.page_one.handle_hint": "Això és el que els hi diries als teus amics que cerquin.", "onboarding.page_one.welcome": "Benvingut a Mastodon!", "onboarding.page_six.admin": "L'administrador de la teva instància és {admin}.", "onboarding.page_six.almost_done": "Quasi fet...", @@ -197,6 +199,8 @@ "privacy.public.short": "Públic", "privacy.unlisted.long": "No publicar en línies de temps públiques", "privacy.unlisted.short": "No llistat", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "fa {number} dies", "relative_time.hours": "fa {number} hores", "relative_time.just_now": "ara", @@ -223,7 +227,7 @@ "status.media_hidden": "Multimèdia amagat", "status.mention": "Esmentar @{name}", "status.more": "Més", - "status.mute": "Mute @{name}", + "status.mute": "Silenciar @{name}", "status.mute_conversation": "Silenciar conversació", "status.open": "Ampliar aquest estat", "status.pin": "Fixat en el perfil", diff --git a/app/javascript/mastodon/locales/de.json b/app/javascript/mastodon/locales/de.json index 9b6c857e4f..4e6b721da4 100644 --- a/app/javascript/mastodon/locales/de.json +++ b/app/javascript/mastodon/locales/de.json @@ -139,6 +139,7 @@ "loading_indicator.label": "Wird geladen …", "media_gallery.toggle_visible": "Sichtbarkeit umschalten", "missing_indicator.label": "Nicht gefunden", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Benachrichtigungen von diesem Account verbergen?", "navigation_bar.blocks": "Blockierte Profile", "navigation_bar.community_timeline": "Lokale Zeitleiste", @@ -174,7 +175,8 @@ "onboarding.page_four.home": "Die Startseite zeigt dir Beiträge von Leuten, denen du folgst.", "onboarding.page_four.notifications": "Wenn jemand mit dir interagiert, bekommst du eine Mitteilung.", "onboarding.page_one.federation": "Mastodon ist ein soziales Netzwerk, das aus unabhängigen Servern besteht. Diese Server nennen wir auch Instanzen.", - "onboarding.page_one.handle": "Du bist auf der Instanz {domain}, also ist dein vollständiger Profilname im Netzwerk {handle}", + "onboarding.page_one.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "Willkommen bei Mastodon!", "onboarding.page_six.admin": "Für deine Instanz ist {admin} zuständig.", "onboarding.page_six.almost_done": "Fast fertig …", @@ -197,6 +199,8 @@ "privacy.public.short": "Öffentlich", "privacy.unlisted.long": "Nicht in öffentlichen Zeitleisten anzeigen", "privacy.unlisted.short": "Nicht gelistet", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "now", diff --git a/app/javascript/mastodon/locales/defaultMessages.json b/app/javascript/mastodon/locales/defaultMessages.json index acf051de5d..a27f17b429 100644 --- a/app/javascript/mastodon/locales/defaultMessages.json +++ b/app/javascript/mastodon/locales/defaultMessages.json @@ -136,6 +136,10 @@ { "defaultMessage": "Not found", "id": "missing_indicator.label" + }, + { + "defaultMessage": "This resource could not be found", + "id": "missing_indicator.sublabel" } ], "path": "app/javascript/mastodon/components/missing_indicator.json" @@ -255,6 +259,19 @@ ], "path": "app/javascript/mastodon/components/status_content.json" }, + { + "descriptors": [ + { + "defaultMessage": "Loading…", + "id": "regeneration_indicator.label" + }, + { + "defaultMessage": "Your home feed is being prepared!", + "id": "regeneration_indicator.sublabel" + } + ], + "path": "app/javascript/mastodon/components/status_list.json" + }, { "descriptors": [ { @@ -1213,6 +1230,15 @@ ], "path": "app/javascript/mastodon/features/public_timeline/index.json" }, + { + "descriptors": [ + { + "defaultMessage": "A look inside...", + "id": "standalone.public_title" + } + ], + "path": "app/javascript/mastodon/features/standalone/community_timeline/index.json" + }, { "descriptors": [ { @@ -1459,8 +1485,12 @@ "id": "onboarding.page_one.federation" }, { - "defaultMessage": "You are on {domain}, so your full handle is {handle}", - "id": "onboarding.page_one.handle" + "defaultMessage": "Your full handle", + "id": "onboarding.page_one.full_handle" + }, + { + "defaultMessage": "This is what you would tell your friends to search for.", + "id": "onboarding.page_one.handle_hint" }, { "defaultMessage": "Write posts from the compose column. You can upload images, change privacy settings, and add content warnings with the icons below.", diff --git a/app/javascript/mastodon/locales/en.json b/app/javascript/mastodon/locales/en.json index ac25a57a2c..028f9aefd0 100644 --- a/app/javascript/mastodon/locales/en.json +++ b/app/javascript/mastodon/locales/en.json @@ -144,6 +144,7 @@ "loading_indicator.label": "Loading...", "media_gallery.toggle_visible": "Toggle visibility", "missing_indicator.label": "Not found", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Hide notifications from this user?", "navigation_bar.blocks": "Blocked users", "navigation_bar.community_timeline": "Local timeline", @@ -205,6 +206,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Do not post to public timelines", "privacy.unlisted.short": "Unlisted", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "now", diff --git a/app/javascript/mastodon/locales/eo.json b/app/javascript/mastodon/locales/eo.json index eab8c09a6f..694b35ad28 100644 --- a/app/javascript/mastodon/locales/eo.json +++ b/app/javascript/mastodon/locales/eo.json @@ -139,6 +139,7 @@ "loading_indicator.label": "Ŝarganta…", "media_gallery.toggle_visible": "Baskuli videblecon", "missing_indicator.label": "Ne trovita", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Hide notifications from this user?", "navigation_bar.blocks": "Blokitaj uzantoj", "navigation_bar.community_timeline": "Loka tempolinio", @@ -174,7 +175,8 @@ "onboarding.page_four.home": "La hejma tempolinio enhavas la mesaĝojn de ĉiuj uzantoj, kiuj vi sekvas.", "onboarding.page_four.notifications": "La sciiga kolumno informas vin kiam iu interagas kun vi.", "onboarding.page_one.federation": "Mastodono estas reto de nedependaj serviloj, unuiĝintaj por krei pligrandan socian retejon. Ni nomas tiujn servilojn instancoj.", - "onboarding.page_one.handle": "Vi estas ĉe {domain}, unu el la multaj instancoj de Mastodono. Via kompleta uznomo do estas {handle}", + "onboarding.page_one.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "Bonvenon al Mastodono!", "onboarding.page_six.admin": "Via instancestro estas {admin}.", "onboarding.page_six.almost_done": "Estas preskaŭ finita…", @@ -197,6 +199,8 @@ "privacy.public.short": "Publika", "privacy.unlisted.long": "Ne vidigi en publikaj tempolinioj", "privacy.unlisted.short": "Nelistigita", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}t", "relative_time.hours": "{number}h", "relative_time.just_now": "nun", diff --git a/app/javascript/mastodon/locales/es.json b/app/javascript/mastodon/locales/es.json index 8a8110b1e1..cc131fba1f 100644 --- a/app/javascript/mastodon/locales/es.json +++ b/app/javascript/mastodon/locales/es.json @@ -139,6 +139,7 @@ "loading_indicator.label": "Cargando…", "media_gallery.toggle_visible": "Cambiar visibilidad", "missing_indicator.label": "No encontrado", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Ocultar notificaciones de este usuario?", "navigation_bar.blocks": "Usuarios bloqueados", "navigation_bar.community_timeline": "Historia local", @@ -174,7 +175,8 @@ "onboarding.page_four.home": "La línea de tiempo principal muestra toots de gente que sigues.", "onboarding.page_four.notifications": "Las notificaciones se muestran cuando alguien interactúa contigo.", "onboarding.page_one.federation": "Mastodon es una red de servidores federados que conforman una red social aún más grande. Llamamos a estos servidores instancias.", - "onboarding.page_one.handle": "Estás en {domain}, así que tu nombre de usuario completo es {handle}", + "onboarding.page_one.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "¡Bienvenido a Mastodon!", "onboarding.page_six.admin": "El administrador de tu instancia es {admin}.", "onboarding.page_six.almost_done": "Ya casi…", @@ -197,6 +199,8 @@ "privacy.public.short": "Público", "privacy.unlisted.long": "No mostrar en la historia federada", "privacy.unlisted.short": "Sin federar", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "ahora", diff --git a/app/javascript/mastodon/locales/fa.json b/app/javascript/mastodon/locales/fa.json index 8c52ffdb4b..6846da66d5 100644 --- a/app/javascript/mastodon/locales/fa.json +++ b/app/javascript/mastodon/locales/fa.json @@ -139,6 +139,7 @@ "loading_indicator.label": "بارگیری...", "media_gallery.toggle_visible": "تغییر پیدایی", "missing_indicator.label": "پیدا نشد", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "اعلان‌های این کاربر پنهان شود؟", "navigation_bar.blocks": "کاربران مسدودشده", "navigation_bar.community_timeline": "نوشته‌های محلی", @@ -174,7 +175,8 @@ "onboarding.page_four.home": "ستون «خانه» نوشته‌های کسانی را نشان می‌دهد که شما پی می‌گیرید.", "onboarding.page_four.notifications": "ستون «اعلان‌ها» ارتباط‌های شما با دیگران را نشان می‌دهد.", "onboarding.page_one.federation": "ماستدون شبکه‌ای از سرورهای مستقل است که با پیوستن به یکدیگر یک شبکهٔ اجتماعی بزرگ را تشکیل می‌دهند.", - "onboarding.page_one.handle": "شما روی سرور {domain} هستید، بنابراین شناسهٔ کامل شما {handle} است", + "onboarding.page_one.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "به ماستدون خوش آمدید!", "onboarding.page_six.admin": "نشانی مسئول سرور شما {admin} است.", "onboarding.page_six.almost_done": "الان تقریباً آماده‌اید...", @@ -197,6 +199,8 @@ "privacy.public.short": "عمومی", "privacy.unlisted.long": "عمومی، ولی فهرست نکن", "privacy.unlisted.short": "فهرست‌نشده", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "الان", diff --git a/app/javascript/mastodon/locales/fi.json b/app/javascript/mastodon/locales/fi.json index 74ab699c4a..eb81e7eb48 100644 --- a/app/javascript/mastodon/locales/fi.json +++ b/app/javascript/mastodon/locales/fi.json @@ -139,6 +139,7 @@ "loading_indicator.label": "Ladataan...", "media_gallery.toggle_visible": "Toggle visibility", "missing_indicator.label": "Not found", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Hide notifications from this user?", "navigation_bar.blocks": "Blocked users", "navigation_bar.community_timeline": "Paikallinen aikajana", @@ -174,7 +175,8 @@ "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": "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.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "Welcome to Mastodon!", "onboarding.page_six.admin": "Your instance's admin is {admin}.", "onboarding.page_six.almost_done": "Almost done...", @@ -197,6 +199,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Do not show in public timelines", "privacy.unlisted.short": "Unlisted", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "now", diff --git a/app/javascript/mastodon/locales/fr.json b/app/javascript/mastodon/locales/fr.json index e77107fc52..66592eecd6 100644 --- a/app/javascript/mastodon/locales/fr.json +++ b/app/javascript/mastodon/locales/fr.json @@ -36,7 +36,7 @@ "column.favourites": "Favoris", "column.follow_requests": "Demandes de suivi", "column.home": "Accueil", - "column.lists": "Lists", + "column.lists": "Listes", "column.mutes": "Comptes masqués", "column.notifications": "Notifications", "column.pins": "Pouets épinglés", @@ -50,7 +50,7 @@ "column_header.unpin": "Retirer", "column_subheading.navigation": "Navigation", "column_subheading.settings": "Paramètres", - "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", + "compose_form.hashtag_warning": "Ce pouet ne sera pas listé dans les recherches par hashtag car sa visibilité est réglée sur \"non-listé\". Seuls les pouets avec une visibilité \"publique\" peuvent être recherchés par hashtag.", "compose_form.lock_disclaimer": "Votre compte n’est pas {locked}. Tout le monde peut vous suivre et voir vos pouets privés.", "compose_form.lock_disclaimer.lock": "verrouillé", "compose_form.placeholder": "Qu’avez-vous en tête ?", @@ -73,7 +73,7 @@ "confirmations.unfollow.confirm": "Ne plus suivre", "confirmations.unfollow.message": "Voulez-vous arrêter de suivre {name} ?", "embed.instructions": "Intégrez ce statut à votre site en copiant le code ci-dessous.", - "embed.preview": "Il apparaîtra comme cela :", + "embed.preview": "Il apparaîtra comme cela :", "emoji_button.activity": "Activités", "emoji_button.custom": "Personnalisés", "emoji_button.flags": "Drapeaux", @@ -89,12 +89,12 @@ "emoji_button.symbols": "Symboles", "emoji_button.travel": "Lieux et voyages", "empty_column.community": "Le fil public local est vide. Écrivez donc quelque chose pour le remplir !", - "empty_column.hashtag": "Il n’y a encore aucun contenu associé à ce hashtag", + "empty_column.hashtag": "Il n’y a encore aucun contenu associé à ce hashtag.", "empty_column.home": "Vous ne suivez encore personne. Visitez {public} ou bien utilisez la recherche pour vous connecter à d’autres utilisateur⋅ice⋅s.", "empty_column.home.public_timeline": "le fil public", "empty_column.list": "Il n'y a rien dans cette liste pour l'instant. Dès que des personnes de cette liste publierons de nouveaux statuts, ils apparaîtront ici.", "empty_column.notifications": "Vous n’avez pas encore de notification. Interagissez avec d’autres utilisateur⋅ice⋅s pour débuter la conversation.", - "empty_column.public": "Il n’y a rien ici ! Écrivez quelque chose publiquement, ou bien suivez manuellement des utilisateur⋅ice⋅s d’autres instances pour remplir le fil public.", + "empty_column.public": "Il n’y a rien ici ! Écrivez quelque chose publiquement, ou bien suivez manuellement des utilisateur⋅ice·s d’autres instances pour remplir le fil public", "follow_request.authorize": "Accepter", "follow_request.reject": "Rejeter", "getting_started.appsshort": "Applications", @@ -121,10 +121,10 @@ "keyboard_shortcuts.legend": "pour afficher cette légende", "keyboard_shortcuts.mention": "pour mentionner l'auteur", "keyboard_shortcuts.reply": "pour répondre", - "keyboard_shortcuts.search": "to focus search", + "keyboard_shortcuts.search": "pour cibler la recherche", "keyboard_shortcuts.toot": "pour démarrer un tout nouveau pouet", - "keyboard_shortcuts.unfocus": "to un-focus compose textarea/search", - "keyboard_shortcuts.up": "to move up in the list", + "keyboard_shortcuts.unfocus": "pour recentrer composer textarea/search", + "keyboard_shortcuts.up": "pour remonter dans la liste", "lightbox.close": "Fermer", "lightbox.next": "Suivant", "lightbox.previous": "Précédent", @@ -139,6 +139,7 @@ "loading_indicator.label": "Chargement…", "media_gallery.toggle_visible": "Modifier la visibilité", "missing_indicator.label": "Non trouvé", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Masquer les notifications de cet utilisateur ?", "navigation_bar.blocks": "Comptes bloqués", "navigation_bar.community_timeline": "Fil public local", @@ -154,14 +155,14 @@ "navigation_bar.preferences": "Préférences", "navigation_bar.public_timeline": "Fil public global", "notification.favourite": "{name} a ajouté à ses favoris :", - "notification.follow": "{name} vous suit.", + "notification.follow": "{name} vous suit", "notification.mention": "{name} vous a mentionné⋅e :", "notification.reblog": "{name} a partagé votre statut :", "notifications.clear": "Nettoyer", "notifications.clear_confirmation": "Voulez-vous vraiment supprimer toutes vos notifications ?", "notifications.column_settings.alert": "Notifications locales", "notifications.column_settings.favourite": "Favoris :", - "notifications.column_settings.follow": "Nouveaux⋅elles abonné⋅e⋅s :", + "notifications.column_settings.follow": "Nouveaux⋅elles abonné⋅e·s :", "notifications.column_settings.mention": "Mentions :", "notifications.column_settings.push": "Notifications push", "notifications.column_settings.push_meta": "Cet appareil", @@ -171,15 +172,16 @@ "onboarding.done": "Effectué", "onboarding.next": "Suivant", "onboarding.page_five.public_timelines": "Le fil public global affiche les posts de tou⋅te⋅s les utilisateur⋅ice⋅s suivi⋅es par les membres de {domain}. Le fil public local est identique mais se limite aux utilisateur⋅ice⋅s de {domain}.", - "onboarding.page_four.home": "L’Accueil affiche les posts de tou⋅te⋅s les utilisateur⋅ice⋅s que vous suivez", - "onboarding.page_four.notifications": "Les Notifications vous informent lorsque quelqu’un interagit avec vous", + "onboarding.page_four.home": "L’Accueil affiche les posts de tou⋅te·s les utilisateur⋅ice·s que vous suivez.", + "onboarding.page_four.notifications": "Les Notifications vous informent lorsque quelqu’un interagit avec vous.", "onboarding.page_one.federation": "Mastodon est un réseau social qui appartient à tou⋅te⋅s.", - "onboarding.page_one.handle": "Vous êtes sur {domain}, une des nombreuses instances indépendantes de Mastodon. Votre nom d’utilisateur⋅ice complet est {handle}", + "onboarding.page_one.full_handle": "Votre pleine maîtrise", + "onboarding.page_one.handle_hint": "C'est ce que vous diriez à vos amis de rechercher.", "onboarding.page_one.welcome": "Bienvenue sur Mastodon !", "onboarding.page_six.admin": "L’administrateur⋅ice de votre instance est {admin}", "onboarding.page_six.almost_done": "Nous y sommes presque…", "onboarding.page_six.appetoot": "Bon appouétit !", - "onboarding.page_six.apps_available": "De nombreuses {apps} sont disponibles pour iOS, Android et autres. Et maintenant… Bon appouétit !", + "onboarding.page_six.apps_available": "De nombreuses {apps} sont disponibles pour iOS, Android et autres.", "onboarding.page_six.github": "Mastodon est un logiciel libre, gratuit et open-source. Vous pouvez rapporter des bogues, suggérer des fonctionnalités, ou contribuer à son développement sur {github}.", "onboarding.page_six.guidelines": "règles de la communauté", "onboarding.page_six.read_guidelines": "S’il vous plaît, n’oubliez pas de lire les {guidelines} !", @@ -197,6 +199,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Ne pas afficher dans les fils publics", "privacy.unlisted.short": "Non-listé", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number} j", "relative_time.hours": "{number} h", "relative_time.just_now": "à l’instant", @@ -223,7 +227,7 @@ "status.media_hidden": "Média caché", "status.mention": "Mentionner", "status.more": "Plus", - "status.mute": "Mute @{name}", + "status.mute": "Masquer @{name}", "status.mute_conversation": "Masquer la conversation", "status.open": "Déplier ce statut", "status.pin": "Épingler sur le profil", diff --git a/app/javascript/mastodon/locales/gl.json b/app/javascript/mastodon/locales/gl.json index 77f6b82ab3..562bc05931 100644 --- a/app/javascript/mastodon/locales/gl.json +++ b/app/javascript/mastodon/locales/gl.json @@ -50,7 +50,7 @@ "column_header.unpin": "Soltar", "column_subheading.navigation": "Navegación", "column_subheading.settings": "Axustes", - "compose_form.hashtag_warning": "This toot won't be listed under any hashtag as it is unlisted. Only public toots can be searched by hashtag.", + "compose_form.hashtag_warning": "Esta mensaxe non será listada baixo ningunha etiqueta xa que está marcada como non listada. Só os toots públicos poden buscarse por etiquetas.", "compose_form.lock_disclaimer": "A súa conta non está {locked}. Calquera pode seguila para ver as súas mensaxes só-para-seguidoras.", "compose_form.lock_disclaimer.lock": "bloqueado", "compose_form.placeholder": "A qué andas?", @@ -139,6 +139,7 @@ "loading_indicator.label": "Cargando...", "media_gallery.toggle_visible": "Dar visibilidade", "missing_indicator.label": "Non atopado", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Esconder notificacións deste usuario?", "navigation_bar.blocks": "Usuarios bloqueados", "navigation_bar.community_timeline": "Liña temporal local", @@ -156,7 +157,7 @@ "notification.favourite": "{name} marcou como favorito o seu estado", "notification.follow": "{name} está a seguila", "notification.mention": "{name} mencionoute", - "notification.reblog": "{name} promocionou o seu estado", + "notification.reblog": "{name} promoveu o seu estado", "notifications.clear": "Limpar notificacións", "notifications.clear_confirmation": "Estás seguro de que queres limpar permanentemente todas as túas notificacións?", "notifications.column_settings.alert": "Notificacións de escritorio", @@ -174,7 +175,8 @@ "onboarding.page_four.home": "A liña de tempo local mostra as publicacións das persoas que segues.", "onboarding.page_four.notifications": "A columna de notificacións mostra cando alguén interactúa contigo.", "onboarding.page_one.federation": "Mastodon é unha rede de servidores independentes que se unen para facer unha rede social máis grande. Chamamos instancias a estes servidores.", - "onboarding.page_one.handle": "Estás en {domain}, polo que o teu nome de usuario completo é {handle}", + "onboarding.page_one.full_handle": "O seu alcume completo", + "onboarding.page_one.handle_hint": "Esto é o que lle debe dicir a quen queira seguila.", "onboarding.page_one.welcome": "Benvido a Mastodon!", "onboarding.page_six.admin": "O administrador da túa instancia é {admin}.", "onboarding.page_six.almost_done": "Case feito...", @@ -197,6 +199,8 @@ "privacy.public.short": "Pública", "privacy.unlisted.long": "Non publicar en liñas temporais públicas", "privacy.unlisted.short": "Non listada", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "agora", @@ -223,7 +227,7 @@ "status.media_hidden": "Medios ocultos", "status.mention": "Mencionar @{name}", "status.more": "Máis", - "status.mute": "Mute @{name}", + "status.mute": "Acalar @{name}", "status.mute_conversation": "Acalar conversa", "status.open": "Expandir este estado", "status.pin": "Fixar no perfil", diff --git a/app/javascript/mastodon/locales/he.json b/app/javascript/mastodon/locales/he.json index 2eb1861738..d6665295fc 100644 --- a/app/javascript/mastodon/locales/he.json +++ b/app/javascript/mastodon/locales/he.json @@ -139,6 +139,7 @@ "loading_indicator.label": "טוען...", "media_gallery.toggle_visible": "נראה\\בלתי נראה", "missing_indicator.label": "לא נמצא", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "להסתיר הודעות מחשבון זה?", "navigation_bar.blocks": "חסימות", "navigation_bar.community_timeline": "ציר זמן מקומי", @@ -174,7 +175,8 @@ "onboarding.page_four.home": "ציר זמן הבית מראה הודעות מהנעקבים שלך.", "onboarding.page_four.notifications": "טור ההתראות מראה כשמישהו מתייחס להודעות שלך.", "onboarding.page_one.federation": "מסטודון היא רשת של שרתים עצמאיים מצורפים ביחד לכדי רשת חברתית אחת גדולה. אנחנו מכנים את השרתים האלו קהילות.", - "onboarding.page_one.handle": "אתם בקהילה {domain}, ולכן מזהה המשתמש המלא שלכם הוא {handle}", + "onboarding.page_one.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "ברוכים הבאים למסטודון!", "onboarding.page_six.admin": "הקהילה מנוהלת בידי {admin}.", "onboarding.page_six.almost_done": "כמעט סיימנו...", @@ -197,6 +199,8 @@ "privacy.public.short": "פומבי", "privacy.unlisted.long": "לא יופיע בפידים הציבוריים המשותפים", "privacy.unlisted.short": "לא לפיד הכללי", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "כרגע", diff --git a/app/javascript/mastodon/locales/hr.json b/app/javascript/mastodon/locales/hr.json index 00dea67f72..c49ae160ff 100644 --- a/app/javascript/mastodon/locales/hr.json +++ b/app/javascript/mastodon/locales/hr.json @@ -139,6 +139,7 @@ "loading_indicator.label": "Učitavam...", "media_gallery.toggle_visible": "Preklopi vidljivost", "missing_indicator.label": "Nije nađen", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Hide notifications from this user?", "navigation_bar.blocks": "Blokirani korisnici", "navigation_bar.community_timeline": "Lokalni timeline", @@ -174,7 +175,8 @@ "onboarding.page_four.home": "The home timeline prikazuje postove ljudi koje slijediš.", "onboarding.page_four.notifications": "Stupac za notifikacije pokazuje poruke drugih upućene tebi.", "onboarding.page_one.federation": "Mastodon čini mreža neovisnih servera udruženih u jednu veću socialnu mrežu. Te servere nazivamo instancama.", - "onboarding.page_one.handle": "Ti si na {domain}, i tvoja puna handle je {handle}", + "onboarding.page_one.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "Dobro došli na Mastodon!", "onboarding.page_six.admin": "Administrator tvoje instance je {admin}.", "onboarding.page_six.almost_done": "Još malo pa gotovo...", @@ -197,6 +199,8 @@ "privacy.public.short": "Javno", "privacy.unlisted.long": "Ne prikazuj u javnim timelineovima", "privacy.unlisted.short": "Unlisted", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "now", diff --git a/app/javascript/mastodon/locales/hu.json b/app/javascript/mastodon/locales/hu.json index e1048519b3..0ed43ae6b9 100644 --- a/app/javascript/mastodon/locales/hu.json +++ b/app/javascript/mastodon/locales/hu.json @@ -139,6 +139,7 @@ "loading_indicator.label": "Betöltés...", "media_gallery.toggle_visible": "Toggle visibility", "missing_indicator.label": "Not found", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Hide notifications from this user?", "navigation_bar.blocks": "Blocked users", "navigation_bar.community_timeline": "Local timeline", @@ -174,7 +175,8 @@ "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": "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.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "Welcome to Mastodon!", "onboarding.page_six.admin": "Your instance's admin is {admin}.", "onboarding.page_six.almost_done": "Almost done...", @@ -197,6 +199,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Do not show in public timelines", "privacy.unlisted.short": "Unlisted", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "now", diff --git a/app/javascript/mastodon/locales/hy.json b/app/javascript/mastodon/locales/hy.json index 152f0c5250..f46db5b001 100644 --- a/app/javascript/mastodon/locales/hy.json +++ b/app/javascript/mastodon/locales/hy.json @@ -139,6 +139,7 @@ "loading_indicator.label": "Բեռնվում է…", "media_gallery.toggle_visible": "Ցուցադրել/թաքցնել", "missing_indicator.label": "Չգտնվեց", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Թաքցնե՞լ ցանուցումներն այս օգտատիրոջից։", "navigation_bar.blocks": "Արգելափակված օգտատերեր", "navigation_bar.community_timeline": "Տեղական հոսք", @@ -198,6 +199,8 @@ "privacy.public.short": "Հրապարակային", "privacy.unlisted.long": "Չթթել հրապարակային հոսքերում", "privacy.unlisted.short": "Ծածուկ", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}օր", "relative_time.hours": "{number}ժ", "relative_time.just_now": "նոր", @@ -260,4 +263,4 @@ "video.pause": "Դադար տալ", "video.play": "Նվագել", "video.unmute": "Միացնել ձայնը" -} \ No newline at end of file +} diff --git a/app/javascript/mastodon/locales/id.json b/app/javascript/mastodon/locales/id.json index 0942bc33c1..6edf855d34 100644 --- a/app/javascript/mastodon/locales/id.json +++ b/app/javascript/mastodon/locales/id.json @@ -139,6 +139,7 @@ "loading_indicator.label": "Tunggu sebentar...", "media_gallery.toggle_visible": "Tampil/Sembunyikan", "missing_indicator.label": "Tidak ditemukan", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Hide notifications from this user?", "navigation_bar.blocks": "Pengguna diblokir", "navigation_bar.community_timeline": "Linimasa lokal", @@ -174,7 +175,8 @@ "onboarding.page_four.home": "Linimasa beranda menampilkan postingan dari orang-orang yang anda ikuti.", "onboarding.page_four.notifications": "Kolom notifikasi menampilkan ketika seseorang berinteraksi dengan anda.", "onboarding.page_one.federation": "Mastodon adalah jaringan dari beberapa server independen yang bergabung untuk membuat jejaring sosial yang besar.", - "onboarding.page_one.handle": "Ada berada dalam {domain}, jadi nama user lengkap anda adalah {handle}", + "onboarding.page_one.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "Selamat datang di Mastodon!", "onboarding.page_six.admin": "Admin serveer anda adalah {admin}.", "onboarding.page_six.almost_done": "Hampir selesei...", @@ -197,6 +199,8 @@ "privacy.public.short": "Publik", "privacy.unlisted.long": "Tidak ditampilkan di linimasa publik", "privacy.unlisted.short": "Tak Terdaftar", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "now", diff --git a/app/javascript/mastodon/locales/io.json b/app/javascript/mastodon/locales/io.json index cfd8e299f5..7aa7cb1448 100644 --- a/app/javascript/mastodon/locales/io.json +++ b/app/javascript/mastodon/locales/io.json @@ -139,6 +139,7 @@ "loading_indicator.label": "Kargante...", "media_gallery.toggle_visible": "Chanjar videbleso", "missing_indicator.label": "Ne trovita", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Hide notifications from this user?", "navigation_bar.blocks": "Blokusita uzeri", "navigation_bar.community_timeline": "Lokala tempolineo", @@ -174,7 +175,8 @@ "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": "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.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "Welcome to Mastodon!", "onboarding.page_six.admin": "Your instance's admin is {admin}.", "onboarding.page_six.almost_done": "Almost done...", @@ -197,6 +199,8 @@ "privacy.public.short": "Publike", "privacy.unlisted.long": "Ne montrar en publika tempolinei", "privacy.unlisted.short": "Ne enlistigota", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "now", diff --git a/app/javascript/mastodon/locales/it.json b/app/javascript/mastodon/locales/it.json index e14fa410c1..61467df16d 100644 --- a/app/javascript/mastodon/locales/it.json +++ b/app/javascript/mastodon/locales/it.json @@ -139,6 +139,7 @@ "loading_indicator.label": "Carico...", "media_gallery.toggle_visible": "Imposta visibilità", "missing_indicator.label": "Non trovato", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Hide notifications from this user?", "navigation_bar.blocks": "Utenti bloccati", "navigation_bar.community_timeline": "Timeline locale", @@ -174,7 +175,8 @@ "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": "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.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "Welcome to Mastodon!", "onboarding.page_six.admin": "Your instance's admin is {admin}.", "onboarding.page_six.almost_done": "Almost done...", @@ -197,6 +199,8 @@ "privacy.public.short": "Pubblico", "privacy.unlisted.long": "Non mostrare sulla timeline pubblica", "privacy.unlisted.short": "Non elencato", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "now", diff --git a/app/javascript/mastodon/locales/ja.json b/app/javascript/mastodon/locales/ja.json index 19885056c0..beb5221896 100644 --- a/app/javascript/mastodon/locales/ja.json +++ b/app/javascript/mastodon/locales/ja.json @@ -1,5 +1,5 @@ { - "account.block": "ブロック", + "account.block": "@{name}さんをブロック", "account.block_domain": "{domain}全体を非表示", "account.disclaimer_full": "以下の情報は不正確な可能性があります。", "account.edit_profile": "プロフィールを編集", @@ -11,18 +11,18 @@ "account.media": "メディア", "account.mention": "返信", "account.moved_to": "{name}さんは引っ越しました:", - "account.mute": "ミュート", - "account.mute_notifications": "@{name}さんからの通知を受け取る", + "account.mute": "@{name}さんをミュート", + "account.mute_notifications": "@{name}さんからの通知を受け取らない", "account.posts": "投稿", - "account.report": "通報", - "account.requested": "承認待ち", + "account.report": "@{name}さんを通報", + "account.requested": "フォロー承認待ちです。クリックしてキャンセル。", "account.share": "@{name}さんのプロフィールを共有する", "account.show_reblogs": "@{name}さんからのブーストを表示", - "account.unblock": "ブロック解除", + "account.unblock": "@{name}さんのブロック解除", "account.unblock_domain": "{domain}を表示", "account.unfollow": "フォロー解除", "account.unmute": "ミュート解除", - "account.unmute_notifications": "@{name}さんからの通知を受け取らない", + "account.unmute_notifications": "@{name}さんからの通知を受け取る", "account.view_full_profile": "全ての情報を見る", "boost_modal.combo": "次からは{combo}を押せば、これをスキップできます", "bundle_column_error.body": "コンポーネントの読み込み中に問題が発生しました。", @@ -144,6 +144,7 @@ "loading_indicator.label": "読み込み中...", "media_gallery.toggle_visible": "表示切り替え", "missing_indicator.label": "見つかりません", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "このユーザーからの通知を隠しますか?", "navigation_bar.blocks": "ブロックしたユーザー", "navigation_bar.community_timeline": "ローカルタイムライン", @@ -181,7 +182,8 @@ "onboarding.page_four.home": "「ホーム」タイムラインではあなたがフォローしている人の投稿を表示します。", "onboarding.page_four.notifications": "「通知」ではあなたへの他の人からの関わりを表示します。", "onboarding.page_one.federation": "Mastodonは誰でも参加できるSNSです。", - "onboarding.page_one.handle": "今あなたは数あるMastodonインスタンスの1つである{domain}にいます。あなたのフルハンドルは{handle}です", + "onboarding.page_one.full_handle": "あなたのフルハンドル", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "Mastodonへようこそ!", "onboarding.page_six.admin": "あなたのインスタンスの管理者は{admin}です。", "onboarding.page_six.almost_done": "以上です。", @@ -204,6 +206,8 @@ "privacy.public.short": "公開", "privacy.unlisted.long": "公開TLで表示しない", "privacy.unlisted.short": "未収載", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}日前", "relative_time.hours": "{number}時間前", "relative_time.just_now": "今", diff --git a/app/javascript/mastodon/locales/ko.json b/app/javascript/mastodon/locales/ko.json index 31e5e377ea..18d8a80a7c 100644 --- a/app/javascript/mastodon/locales/ko.json +++ b/app/javascript/mastodon/locales/ko.json @@ -139,6 +139,7 @@ "loading_indicator.label": "불러오는 중...", "media_gallery.toggle_visible": "표시 전환", "missing_indicator.label": "찾을 수 없습니다", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "이 사용자로부터의 알림을 뮤트하시겠습니까?", "navigation_bar.blocks": "차단한 사용자", "navigation_bar.community_timeline": "로컬 타임라인", @@ -174,7 +175,8 @@ "onboarding.page_four.home": "홈 타임라인에서는 내가 팔로우 중인 사람들의 포스트를 표시합니다.", "onboarding.page_four.notifications": "알림에서는 다른 사람들과의 연결을 표시합니다.", "onboarding.page_one.federation": "Mastodon은 누구나 참가할 수 있는 SNS입니다.", - "onboarding.page_one.handle": "여러분은 지금 수많은 Mastodon 인스턴스 중 하나인 {domain}에 있습니다. 당신의 유저 이름은 {handle} 입니다.", + "onboarding.page_one.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "Mastodon에 어서 오세요!", "onboarding.page_six.admin": "이 인스턴스의 관리자는 {admin}입니다.", "onboarding.page_six.almost_done": "이상입니다.", @@ -197,6 +199,8 @@ "privacy.public.short": "공개", "privacy.unlisted.long": "공개 타임라인에 표시하지 않음", "privacy.unlisted.short": "타임라인에 비표시", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}일 전", "relative_time.hours": "{number}시간 전", "relative_time.just_now": "방금", diff --git a/app/javascript/mastodon/locales/nl.json b/app/javascript/mastodon/locales/nl.json index 6dc7292f1e..060aa229ec 100644 --- a/app/javascript/mastodon/locales/nl.json +++ b/app/javascript/mastodon/locales/nl.json @@ -139,6 +139,7 @@ "loading_indicator.label": "Laden…", "media_gallery.toggle_visible": "Media wel/niet tonen", "missing_indicator.label": "Niet gevonden", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Verberg meldingen van deze persoon?", "navigation_bar.blocks": "Geblokkeerde gebruikers", "navigation_bar.community_timeline": "Lokale tijdlijn", @@ -174,9 +175,10 @@ "onboarding.page_four.home": "Deze tijdlijn laat toots zien van mensen die jij volgt.", "onboarding.page_four.notifications": "De kolom met meldingen toont alle interacties die je met andere Mastodon-gebruikers hebt.", "onboarding.page_one.federation": "Mastodon is een netwerk van onafhankelijke servers die samen een groot sociaal netwerk vormen.", - "onboarding.page_one.handle": "Je bevindt je nu op {domain}, dus is jouw volledige Mastodon-adres {handle}", + "onboarding.page_one.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "Welkom op Mastodon!", - "onboarding.page_six.admin": "De beheerder van jouw Mastodon-server is {admin}.", + "onboarding.page_six.admin": "De beheerder van jouw Mastodonserver is {admin}.", "onboarding.page_six.almost_done": "Bijna klaar...", "onboarding.page_six.appetoot": "Veel succes!", "onboarding.page_six.apps_available": "Er zijn {apps} beschikbaar voor iOS, Android en andere platformen.", @@ -185,7 +187,7 @@ "onboarding.page_six.read_guidelines": "Vergeet niet de {guidelines} van {domain} te lezen!", "onboarding.page_six.various_app": "mobiele apps", "onboarding.page_three.profile": "Bewerk jouw profiel om jouw avatar, bio en weergavenaam te veranderen. Daar vind je ook andere instellingen.", - "onboarding.page_three.search": "Gebruik de zoekbalk linksboven om andere mensen op Mastodon te vinden en om te zoeken op hashtags, zoals {illustration} en {introductions}. Om iemand te vinden die niet op deze Mastodon-server zit, moet je het volledige Mastodon-adres van deze persoon invoeren.", + "onboarding.page_three.search": "Gebruik de zoekbalk linksboven om andere mensen op Mastodon te vinden en om te zoeken op hashtags, zoals {illustration} en {introductions}. Om iemand te vinden die niet op deze Mastodonserver zit, moet je het volledige Mastodonadres van deze persoon invoeren.", "onboarding.page_two.compose": "Schrijf berichten (wij noemen dit toots) in het tekstvak in de linkerkolom. Je kan met de pictogrammen daaronder afbeeldingen uploaden, privacy-instellingen veranderen en je tekst een waarschuwing meegeven.", "onboarding.skip": "Overslaan", "privacy.change": "Zichtbaarheid toot aanpassen", @@ -197,6 +199,8 @@ "privacy.public.short": "Openbaar", "privacy.unlisted.long": "Niet op openbare tijdlijnen tonen", "privacy.unlisted.short": "Minder openbaar", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "nu", diff --git a/app/javascript/mastodon/locales/no.json b/app/javascript/mastodon/locales/no.json index 5fbc51ff38..6bd57c2221 100644 --- a/app/javascript/mastodon/locales/no.json +++ b/app/javascript/mastodon/locales/no.json @@ -139,6 +139,7 @@ "loading_indicator.label": "Laster...", "media_gallery.toggle_visible": "Veksle synlighet", "missing_indicator.label": "Ikke funnet", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Hide notifications from this user?", "navigation_bar.blocks": "Blokkerte brukere", "navigation_bar.community_timeline": "Lokal tidslinje", @@ -174,7 +175,8 @@ "onboarding.page_four.home": "Hjem er tidslinjen med alle brukere som du følger.", "onboarding.page_four.notifications": "Kolonnen med varsler viser når noen interakterer med deg.", "onboarding.page_one.federation": "Mastdodon er et nettverk med uavhengige servere som sammarbeider om å danne et stort sosialt nettverk. Vi kaller disse serverene instanser.", - "onboarding.page_one.handle": "Du er på {domain}, så ditt fulle brukernavn er {handle}", + "onboarding.page_one.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "Velkommen til Mastodon!", "onboarding.page_six.admin": "Administratoren på din instans er {admin}.", "onboarding.page_six.almost_done": "Snart ferdig...", @@ -197,6 +199,8 @@ "privacy.public.short": "Offentlig", "privacy.unlisted.long": "Ikke vis i offentlige tidslinjer", "privacy.unlisted.short": "Uoppført", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "now", diff --git a/app/javascript/mastodon/locales/oc.json b/app/javascript/mastodon/locales/oc.json index 6ebd40f5bc..104ba48c5f 100644 --- a/app/javascript/mastodon/locales/oc.json +++ b/app/javascript/mastodon/locales/oc.json @@ -1,13 +1,13 @@ { "account.block": "Blocar @{name}", "account.block_domain": "Tot amagar del domeni {domain}", - "account.disclaimer_full": "Aquelas informacions de perfil pòdon èsser incompletas.", + "account.disclaimer_full": "Aquelas informacions de perfil pòdon èsser incomplètas.", "account.edit_profile": "Modificar lo perfil", "account.follow": "Sègre", "account.followers": "Seguidors", "account.follows": "Abonaments", "account.follows_you": "Vos sèc", - "account.hide_reblogs": "Rescondre los partages de @{name}", + "account.hide_reblogs": "Rescondre los partatges de @{name}", "account.media": "Mèdias", "account.mention": "Mencionar @{name}", "account.moved_to": "{name} a mudat los catons a :", @@ -17,13 +17,13 @@ "account.report": "Senhalar @{name}", "account.requested": "Invitacion mandada. Clicatz per anullar", "account.share": "Partejar lo perfil a @{name}", - "account.show_reblogs": "Mostrar los partages de @{name}", + "account.show_reblogs": "Mostrar los partatges de @{name}", "account.unblock": "Desblocar @{name}", "account.unblock_domain": "Desblocar {domain}", "account.unfollow": "Quitar de sègre", "account.unmute": "Quitar de rescondre @{name}", "account.unmute_notifications": "Mostrar las notificacions de @{name}", - "account.view_full_profile": "Veire lo perfil complet", + "account.view_full_profile": "Veire lo perfil complèt", "boost_modal.combo": "Podètz botar {combo} per passar aquò lo còp que ven", "bundle_column_error.body": "Quicòm a fach mèuca pendent lo cargament d’aqueste compausant.", "bundle_column_error.retry": "Tornar ensajar", @@ -67,7 +67,7 @@ "confirmations.delete_list.confirm": "Suprimir", "confirmations.delete_list.message": "Sètz segur de voler suprimir aquesta lista per totjorn ?", "confirmations.domain_block.confirm": "Amagar tot lo domeni", - "confirmations.domain_block.message": "Sètz segur segur de voler blocar completament {domain} ? De còps cal pas que blocar o rescondre unas personas solament.", + "confirmations.domain_block.message": "Sètz segur segur de voler blocar complètament {domain} ? De còps cal pas que blocar o rescondre unas personas solament.", "confirmations.mute.confirm": "Rescondre", "confirmations.mute.message": "Sètz segur de voler rescondre {name} ?", "confirmations.unfollow.confirm": "Quitar de sègre", @@ -80,7 +80,7 @@ "emoji_button.food": "Beure e manjar", "emoji_button.label": "Inserir un emoji", "emoji_button.nature": "Natura", - "emoji_button.not_found": "Cap emoji ! (╯°□°)╯︵ ┻━┻", + "emoji_button.not_found": "Cap d’emoji ! (╯°□°)╯︵ ┻━┻", "emoji_button.objects": "Objèctes", "emoji_button.people": "Gents", "emoji_button.recent": "Sovent utilizats", @@ -108,23 +108,23 @@ "home.column_settings.show_reblogs": "Mostrar los partatges", "home.column_settings.show_replies": "Mostrar las responsas", "home.settings": "Paramètres de la colomna", - "keyboard_shortcuts.back": "per anar enrèire", - "keyboard_shortcuts.boost": "per partejar", - "keyboard_shortcuts.column": "per centrar un estatut a una colomna", - "keyboard_shortcuts.compose": "per anar al camp tèxte", + "keyboard_shortcuts.back": "anar enrèire", + "keyboard_shortcuts.boost": "partejar", + "keyboard_shortcuts.column": "centrar un estatut a una colomna", + "keyboard_shortcuts.compose": "anar al camp tèxte", "keyboard_shortcuts.description": "Descripcion", - "keyboard_shortcuts.down": "per far davalar dins la lista", - "keyboard_shortcuts.enter": "per dobrir los estatuts", - "keyboard_shortcuts.favourite": "per apondre als favorits", + "keyboard_shortcuts.down": "far davalar dins la lista", + "keyboard_shortcuts.enter": "dobrir los estatuts", + "keyboard_shortcuts.favourite": "apondre als favorits", "keyboard_shortcuts.heading": "Acorchis clavièr", "keyboard_shortcuts.hotkey": "Acorchis", - "keyboard_shortcuts.legend": "per mostrar aquesta legenda", - "keyboard_shortcuts.mention": "per mencionar l’autor", - "keyboard_shortcuts.reply": "per respondre", - "keyboard_shortcuts.search": "per anar a la recèrca", - "keyboard_shortcuts.toot": "per començar un estatut tot novèl", - "keyboard_shortcuts.unfocus": "per quitar lo camp tèxte/de recèrca", - "keyboard_shortcuts.up": "per far montar dins la lista", + "keyboard_shortcuts.legend": "mostrar aquesta legenda", + "keyboard_shortcuts.mention": "mencionar l’autor", + "keyboard_shortcuts.reply": "respondre", + "keyboard_shortcuts.search": "anar a la recèrca", + "keyboard_shortcuts.toot": "començar un estatut tot novèl", + "keyboard_shortcuts.unfocus": "quitar lo camp tèxte/de recèrca", + "keyboard_shortcuts.up": "far montar dins la lista", "lightbox.close": "Tampar", "lightbox.next": "Seguent", "lightbox.previous": "Precedent", @@ -139,6 +139,7 @@ "loading_indicator.label": "Cargament…", "media_gallery.toggle_visible": "Modificar la visibilitat", "missing_indicator.label": "Pas trobat", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Rescondre las notificacions d’aquesta persona ?", "navigation_bar.blocks": "Personas blocadas", "navigation_bar.community_timeline": "Flux public local", @@ -174,7 +175,8 @@ "onboarding.page_four.home": "Lo flux d’acuèlh mòstra los estatuts del mond que seguètz.", "onboarding.page_four.notifications": "La colomna de notificacions vos fa veire quand qualqu’un interagís amb vos.", "onboarding.page_one.federation": "Mastodon es un malhum de servidors independents que comunican per construire un malhum mai larg. Òm los apèla instàncias.", - "onboarding.page_one.handle": "Sètz sus {domain}, doncas vòstre identificant complet es {handle}", + "onboarding.page_one.full_handle": "Vòstre escais-nom complèt", + "onboarding.page_one.handle_hint": "Vos cal dire a vòstres amics de cercar aquò.", "onboarding.page_one.welcome": "Benvengut a Mastodon !", "onboarding.page_six.admin": "Vòstre administrator d’instància es {admin}.", "onboarding.page_six.almost_done": "Gaireben acabat…", @@ -185,7 +187,7 @@ "onboarding.page_six.read_guidelines": "Mercés de legir la {guidelines} de {domain} !", "onboarding.page_six.various_app": "aplicacions per mobil", "onboarding.page_three.profile": "Modificatz vòstre perfil per cambiar vòstre avatar, bio e escais-nom. I a enlà totas las preferéncias.", - "onboarding.page_three.search": "Emplegatz la barra de recèrca per trobar de mond e engachatz las etiquetas coma {illustration} e {introductions}. Per trobar una persona d’una autra instància, picatz son identificant complet.", + "onboarding.page_three.search": "Emplegatz la barra de recèrca per trobar de mond e engachatz las etiquetas coma {illustration} e {introductions}. Per trobar una persona d’una autra instància, picatz son identificant complèt.", "onboarding.page_two.compose": "Escrivètz un estatut dempuèi la colomna per compausar. Podètz mandar un imatge, cambiar la confidencialitat e ajustar un avertiment amb las icònas cai-jos.", "onboarding.skip": "Passar", "privacy.change": "Ajustar la confidencialitat del messatge", @@ -197,6 +199,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Mostrar pas dins los fluxes publics", "privacy.unlisted.short": "Pas-listat", + "regeneration_indicator.label": "Cargament…", + "regeneration_indicator.sublabel": "Sèm a preparar vòstre flux d’acuèlh !", "relative_time.days": "fa {number} d", "relative_time.hours": "fa {number} h", "relative_time.just_now": "ara", @@ -253,7 +257,7 @@ "video.close": "Tampar la vidèo", "video.exit_fullscreen": "Sortir plen ecran", "video.expand": "Agrandir la vidèo", - "video.fullscreen": "Ecran complet", + "video.fullscreen": "Ecran complèt", "video.hide": "Amagar la vidèo", "video.mute": "Copar lo son", "video.pause": "Pausa", diff --git a/app/javascript/mastodon/locales/pl.json b/app/javascript/mastodon/locales/pl.json index d36b1e6ed3..b45ab5ceec 100644 --- a/app/javascript/mastodon/locales/pl.json +++ b/app/javascript/mastodon/locales/pl.json @@ -144,6 +144,7 @@ "loading_indicator.label": "Ładowanie…", "media_gallery.toggle_visible": "Przełącz widoczność", "missing_indicator.label": "Nie znaleziono", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Chcesz ukryć powiadomienia od tego użytkownika?", "navigation_bar.blocks": "Zablokowani użytkownicy", "navigation_bar.community_timeline": "Lokalna oś czasu", @@ -181,7 +182,8 @@ "onboarding.page_four.home": "Główna oś czasu wyświetla publiczne wpisy.", "onboarding.page_four.notifications": "Kolumna powiadomień wyświetla, gdy ktoś dokonuje interakcji z tobą.", "onboarding.page_one.federation": "Mastodon jest siecią niezależnych serwerów połączonych w jeden portal społecznościowy. Nazywamy te serwery instancjami.", - "onboarding.page_one.handle": "Jesteś na domenie {domain}, więc Twój pełny adres to {handle}", + "onboarding.page_one.full_handle": "Twój pełny adres", + "onboarding.page_one.handle_hint": "Należy go podać znajomym, aby mogli Cię odnaleźć.", "onboarding.page_one.welcome": "Witamy w Mastodon!", "onboarding.page_six.admin": "Administratorem tej instancji jest {admin}.", "onboarding.page_six.almost_done": "Prawie gotowe…", @@ -204,6 +206,8 @@ "privacy.public.short": "Publiczny", "privacy.unlisted.long": "Niewidoczny na publicznych osiach czasu", "privacy.unlisted.short": "Niewidoczny", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number} dni", "relative_time.hours": "{number} godz.", "relative_time.just_now": "teraz", diff --git a/app/javascript/mastodon/locales/pt-BR.json b/app/javascript/mastodon/locales/pt-BR.json index 381b80639b..d702024139 100644 --- a/app/javascript/mastodon/locales/pt-BR.json +++ b/app/javascript/mastodon/locales/pt-BR.json @@ -139,6 +139,7 @@ "loading_indicator.label": "Carregando...", "media_gallery.toggle_visible": "Esconder/Mostrar", "missing_indicator.label": "Não encontrado", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Esconder notificações deste usuário?", "navigation_bar.blocks": "Usuários bloqueados", "navigation_bar.community_timeline": "Local", @@ -174,7 +175,8 @@ "onboarding.page_four.home": "A página inicial mostra postagens de pessoas que você segue.", "onboarding.page_four.notifications": "A coluna de notificações te mostra quando alguém interage com você.", "onboarding.page_one.federation": "Mastodon é uma rede d servidores independentes se juntando para fazer uma grande rede social. Nós chamamos estes servidores de instâncias.", - "onboarding.page_one.handle": "Você está no {domain}, então o seu nome de usuário completo é {handle}", + "onboarding.page_one.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "Seja bem-vindo(a) ao Mastodon!", "onboarding.page_six.admin": "O administrador de sua instância é {admin}.", "onboarding.page_six.almost_done": "Quase acabando...", @@ -197,6 +199,8 @@ "privacy.public.short": "Pública", "privacy.unlisted.long": "Não publicar em feeds públicos", "privacy.unlisted.short": "Não listada", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "agora", diff --git a/app/javascript/mastodon/locales/pt.json b/app/javascript/mastodon/locales/pt.json index f566f551b3..97a46b9a17 100644 --- a/app/javascript/mastodon/locales/pt.json +++ b/app/javascript/mastodon/locales/pt.json @@ -139,6 +139,7 @@ "loading_indicator.label": "A carregar...", "media_gallery.toggle_visible": "Esconder/Mostrar", "missing_indicator.label": "Não encontrado", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Esconder notificações deste utilizador?", "navigation_bar.blocks": "Utilizadores bloqueados", "navigation_bar.community_timeline": "Local", @@ -174,7 +175,8 @@ "onboarding.page_four.home": "A timeline home mostra as publicações de pessoas que tu segues.", "onboarding.page_four.notifications": "A coluna de notificações mostra-te quando alguém interage contigo.", "onboarding.page_one.federation": "Mastodon é uma rede de servidores independentes ligados entre si para fazer uma grande rede social. Nós chamamos instâncias a estes servidores.", - "onboarding.page_one.handle": "Tu estás em {domain}, por isso o teu endereço completo de utilizador é {handle}", + "onboarding.page_one.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "Bem-vindo(a) ao Mastodon!", "onboarding.page_six.admin": "O administrador da tua instância é {admin}.", "onboarding.page_six.almost_done": "Quase pronto...", @@ -197,6 +199,8 @@ "privacy.public.short": "Público", "privacy.unlisted.long": "Não publicar nos feeds públicos", "privacy.unlisted.short": "Não listar", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "agora", diff --git a/app/javascript/mastodon/locales/ru.json b/app/javascript/mastodon/locales/ru.json index 0fec70df09..29dbe84c57 100644 --- a/app/javascript/mastodon/locales/ru.json +++ b/app/javascript/mastodon/locales/ru.json @@ -139,6 +139,7 @@ "loading_indicator.label": "Загрузка...", "media_gallery.toggle_visible": "Показать/скрыть", "missing_indicator.label": "Не найдено", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Hide notifications from this user?", "navigation_bar.blocks": "Список блокировки", "navigation_bar.community_timeline": "Локальная лента", @@ -174,7 +175,8 @@ "onboarding.page_four.home": "Домашняя лента показывает посты от тех, на кого Вы подписаны.", "onboarding.page_four.notifications": "Колонка уведомлений сообщает о взаимодействии с Вами других людей.", "onboarding.page_one.federation": "Mastodon - это сеть независимых серверов, которые вместе образуют единую социальную сеть. Мы называем эти сервера узлами.", - "onboarding.page_one.handle": "Вы находитесь на {domain}, поэтому Ваше полное имя пользователя - {handle}", + "onboarding.page_one.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "Добро пожаловать в Mastodon!", "onboarding.page_six.admin": "Админ Вашего узла - {admin}.", "onboarding.page_six.almost_done": "Почти готово...", @@ -197,6 +199,8 @@ "privacy.public.short": "Публичный", "privacy.unlisted.long": "Не показывать в лентах", "privacy.unlisted.short": "Скрытый", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}д", "relative_time.hours": "{number}ч", "relative_time.just_now": "только что", diff --git a/app/javascript/mastodon/locales/sk.json b/app/javascript/mastodon/locales/sk.json index c38bfd3c6f..465976aa50 100644 --- a/app/javascript/mastodon/locales/sk.json +++ b/app/javascript/mastodon/locales/sk.json @@ -139,6 +139,7 @@ "loading_indicator.label": "Nahrávam...", "media_gallery.toggle_visible": "Zapnúť/Vypnúť viditeľnosť", "missing_indicator.label": "Nenájdené", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Hide notifications from this user?", "navigation_bar.blocks": "Blokovaní používatelia", "navigation_bar.community_timeline": "Lokálna časová os", @@ -174,7 +175,8 @@ "onboarding.page_four.home": "Domovská časová os zobrazí správy od ľudí ktorých sleduješ.", "onboarding.page_four.notifications": "Stĺpec s notifikáciami zobrazí keď budeš s niekým komunikovať.", "onboarding.page_one.federation": "Mastodon je sieť nezávislých serverov spojením ktorých vzniká jedna veľká federovaná sociálna sieť.", - "onboarding.page_one.handle": "Ty si na {domain}, takže tvoje celý nickname je {handle}", + "onboarding.page_one.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "Vitajte v Mastodon!", "onboarding.page_six.admin": "Správca tohto servera je {admin}.", "onboarding.page_six.almost_done": "Takmer hotovo...", @@ -197,6 +199,8 @@ "privacy.public.short": "Verejne", "privacy.unlisted.long": "Neposielať do verejných časových osí", "privacy.unlisted.short": "Verejne mimo osí", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "now", diff --git a/app/javascript/mastodon/locales/sr-Latn.json b/app/javascript/mastodon/locales/sr-Latn.json index 88631e332d..cd48967cba 100644 --- a/app/javascript/mastodon/locales/sr-Latn.json +++ b/app/javascript/mastodon/locales/sr-Latn.json @@ -139,6 +139,7 @@ "loading_indicator.label": "Učitavam...", "media_gallery.toggle_visible": "Uključi/isključi vidljivost", "missing_indicator.label": "Nije pronađeno", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Sakrij obaveštenja od ovog korisnika?", "navigation_bar.blocks": "Blokirani korisnici", "navigation_bar.community_timeline": "Lokalna lajna", @@ -174,7 +175,8 @@ "onboarding.page_four.home": "Početna lajna prikazuje statuse ljudi koje Vi pratite.", "onboarding.page_four.notifications": "Kolona sa obaveštenjima Vam prikazuje kada neko priča sa Vama.", "onboarding.page_one.federation": "Mastodont je mreža nezavisnih servera koji se uvezuju da naprave jednu veću društvenu mrežu. Ove servere zovemo instancama.", - "onboarding.page_one.handle": "Vi ste na domenu {domain}, pa je Vaša puna identifikacija {handle}", + "onboarding.page_one.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "Dobrodošli na Mastodont!", "onboarding.page_six.admin": "Administrator Vaše instance je {admin}.", "onboarding.page_six.almost_done": "Još malo, pa gotovo...", @@ -197,6 +199,8 @@ "privacy.public.short": "Javno", "privacy.unlisted.long": "Ne objavljuj na javnim lajnama", "privacy.unlisted.short": "Neizlistano", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "sada", diff --git a/app/javascript/mastodon/locales/sr.json b/app/javascript/mastodon/locales/sr.json index e65c02ab7f..595a70ea6d 100644 --- a/app/javascript/mastodon/locales/sr.json +++ b/app/javascript/mastodon/locales/sr.json @@ -139,6 +139,7 @@ "loading_indicator.label": "Учитавам...", "media_gallery.toggle_visible": "Укључи/искључи видљивост", "missing_indicator.label": "Није пронађено", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Сакриј обавештења од овог корисника?", "navigation_bar.blocks": "Блокирани корисници", "navigation_bar.community_timeline": "Локална лајна", @@ -174,7 +175,8 @@ "onboarding.page_four.home": "Почетна лајна приказује статусе људи које Ви пратите.", "onboarding.page_four.notifications": "Колона са обавештењима Вам приказује када неко прича са Вама.", "onboarding.page_one.federation": "Мастодонт је мрежа независних сервера који се увезују да направе једну већу друштвену мрежу. Ове сервере зовемо инстанцама.", - "onboarding.page_one.handle": "Ви сте на домену {domain}, па је Ваша пуна идентификација {handle}", + "onboarding.page_one.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "Добродошли на Мастодонт!", "onboarding.page_six.admin": "Администратор Ваше инстанце је {admin}.", "onboarding.page_six.almost_done": "Још мало, па готово...", @@ -197,6 +199,8 @@ "privacy.public.short": "Јавно", "privacy.unlisted.long": "Не објављуј на јавним лајнама", "privacy.unlisted.short": "Неизлистано", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "сада", diff --git a/app/javascript/mastodon/locales/sv.json b/app/javascript/mastodon/locales/sv.json index edfa9b8c23..4e31753062 100644 --- a/app/javascript/mastodon/locales/sv.json +++ b/app/javascript/mastodon/locales/sv.json @@ -139,6 +139,7 @@ "loading_indicator.label": "Laddar...", "media_gallery.toggle_visible": "Växla synlighet", "missing_indicator.label": "Hittades inte", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Hide notifications from this user?", "navigation_bar.blocks": "Blockerade användare", "navigation_bar.community_timeline": "Lokal tidslinje", @@ -174,7 +175,8 @@ "onboarding.page_four.home": "Hemmatidslinjen visar inlägg från personer du följer.", "onboarding.page_four.notifications": "Meddelandekolumnen visar när någon interagerar med dig.", "onboarding.page_one.federation": "Mastodon är ett nätverk av oberoende servrar som ansluter för att skapa ett större socialt nätverk. Vi kallar dessa servrar instanser.", - "onboarding.page_one.handle": "Du är på {domain}, så din fulla hantering är {handle}", + "onboarding.page_one.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "Välkommen till Mastodon!", "onboarding.page_six.admin": "Din instansadmin är {admin}.", "onboarding.page_six.almost_done": "Snart klart...", @@ -197,6 +199,8 @@ "privacy.public.short": "Publik", "privacy.unlisted.long": "Skicka inte till publik tidslinje", "privacy.unlisted.short": "Olistad", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "now", diff --git a/app/javascript/mastodon/locales/th.json b/app/javascript/mastodon/locales/th.json index 06323ebfce..740fb80e71 100644 --- a/app/javascript/mastodon/locales/th.json +++ b/app/javascript/mastodon/locales/th.json @@ -139,6 +139,7 @@ "loading_indicator.label": "Loading...", "media_gallery.toggle_visible": "Toggle visibility", "missing_indicator.label": "Not found", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Hide notifications from this user?", "navigation_bar.blocks": "Blocked users", "navigation_bar.community_timeline": "Local timeline", @@ -174,7 +175,8 @@ "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": "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.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "Welcome to Mastodon!", "onboarding.page_six.admin": "Your instance's admin is {admin}.", "onboarding.page_six.almost_done": "Almost done...", @@ -197,6 +199,8 @@ "privacy.public.short": "Public", "privacy.unlisted.long": "Do not post to public timelines", "privacy.unlisted.short": "Unlisted", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "now", diff --git a/app/javascript/mastodon/locales/tr.json b/app/javascript/mastodon/locales/tr.json index ce6434ca68..8805e52f45 100644 --- a/app/javascript/mastodon/locales/tr.json +++ b/app/javascript/mastodon/locales/tr.json @@ -139,6 +139,7 @@ "loading_indicator.label": "Yükleniyor...", "media_gallery.toggle_visible": "Görünürlüğü değiştir", "missing_indicator.label": "Bulunamadı", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Hide notifications from this user?", "navigation_bar.blocks": "Engellenen kullanıcılar", "navigation_bar.community_timeline": "Yerel zaman tüneli", @@ -174,7 +175,8 @@ "onboarding.page_four.home": "Takip ettiğiniz insanlardan gelen gönderileri gosteren zaman tünelidir", "onboarding.page_four.notifications": "Herkimse sizinle iletişime geçtiğinde gelen bildirimleri gösterir.", "onboarding.page_one.federation": "Mastodon, geniş bir sosyal ağ kurmak için birleşen bağımsız sunuculardan oluşan bir ağdır.", - "onboarding.page_one.handle": "{domain} sunucundasınız, bu yüzden tüm kontrol {handle}", + "onboarding.page_one.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "Mastodon'a hoş geldiniz.", "onboarding.page_six.admin": "{admin}, şu anda bulunduğunuz sunucunun yöneticisidir.", "onboarding.page_six.almost_done": "Neredeyse tamam...", @@ -197,6 +199,8 @@ "privacy.public.short": "Herkese açık", "privacy.unlisted.long": "Herkese açık zaman tüneline gönderme", "privacy.unlisted.short": "Listelenmemiş", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "now", diff --git a/app/javascript/mastodon/locales/uk.json b/app/javascript/mastodon/locales/uk.json index 46d22ac833..2cdaba0ac1 100644 --- a/app/javascript/mastodon/locales/uk.json +++ b/app/javascript/mastodon/locales/uk.json @@ -139,6 +139,7 @@ "loading_indicator.label": "Завантаження...", "media_gallery.toggle_visible": "Показати/приховати", "missing_indicator.label": "Не знайдено", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Hide notifications from this user?", "navigation_bar.blocks": "Заблоковані користувачі", "navigation_bar.community_timeline": "Локальна стрічка", @@ -174,7 +175,8 @@ "onboarding.page_four.home": "Домашня стрічка показує пости користувачів, на яких Ви підписані.", "onboarding.page_four.notifications": "Колонка сповіщень показує моменти, коли хтось звертається до Вас.", "onboarding.page_one.federation": "Mastodon - це мережа незалежних серверів, які разом образовують єдину соціальну мережу. Ми называємо ці сервери інстанціями.", - "onboarding.page_one.handle": "Ви знаходитесь на домені {domain}, тому Ваш повний нік - {handle}", + "onboarding.page_one.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "Ласкаво просимо до Mastodon!", "onboarding.page_six.admin": "Адміністратором Вашої інстанції є {admin}.", "onboarding.page_six.almost_done": "Майже готово...", @@ -197,6 +199,8 @@ "privacy.public.short": "Публічний", "privacy.unlisted.long": "Не показувати у публічних стрічках", "privacy.unlisted.short": "Прихований", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "now", diff --git a/app/javascript/mastodon/locales/whitelist_hy.json b/app/javascript/mastodon/locales/whitelist_hy.json new file mode 100644 index 0000000000..0d4f101c7a --- /dev/null +++ b/app/javascript/mastodon/locales/whitelist_hy.json @@ -0,0 +1,2 @@ +[ +] diff --git a/app/javascript/mastodon/locales/zh-HK.json b/app/javascript/mastodon/locales/zh-HK.json index 7745da622c..0a3ae423d5 100644 --- a/app/javascript/mastodon/locales/zh-HK.json +++ b/app/javascript/mastodon/locales/zh-HK.json @@ -139,6 +139,7 @@ "loading_indicator.label": "載入中...", "media_gallery.toggle_visible": "打開或關上", "missing_indicator.label": "找不到內容", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Hide notifications from this user?", "navigation_bar.blocks": "被你封鎖的用戶", "navigation_bar.community_timeline": "本站時間軸", @@ -174,7 +175,8 @@ "onboarding.page_four.home": "「主頁」顯示你所關注用戶的文章", "onboarding.page_four.notifications": "「通知」欄顯示你和其他人的互動。", "onboarding.page_one.federation": "Mastodon(萬象社交)是由一批獨立網站組成的龐大網絡,我們將這些獨立又互連網站稱為「服務站」(instance)", - "onboarding.page_one.handle": "你的帳戶在 {domain} 上面,由 {handle} 代理", + "onboarding.page_one.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "歡迎使用 Mastodon(萬象社交)", "onboarding.page_six.admin": "你服務站的管理員是{admin}", "onboarding.page_six.almost_done": "差不多了……", @@ -197,6 +199,8 @@ "privacy.public.short": "公共", "privacy.unlisted.long": "公開,但不在公共時間軸顯示", "privacy.unlisted.short": "公開", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "now", diff --git a/app/javascript/mastodon/locales/zh-TW.json b/app/javascript/mastodon/locales/zh-TW.json index 65b174ab5e..1201fe3c71 100644 --- a/app/javascript/mastodon/locales/zh-TW.json +++ b/app/javascript/mastodon/locales/zh-TW.json @@ -139,6 +139,7 @@ "loading_indicator.label": "讀取中...", "media_gallery.toggle_visible": "切換可見性", "missing_indicator.label": "找不到", + "missing_indicator.sublabel": "This resource could not be found", "mute_modal.hide_notifications": "Hide notifications from this user?", "navigation_bar.blocks": "封鎖的使用者", "navigation_bar.community_timeline": "本地時間軸", @@ -174,7 +175,8 @@ "onboarding.page_four.home": "家時間軸顯示所有你關注的人的貼文。", "onboarding.page_four.notifications": "通知欄顯示別人和你的互動。", "onboarding.page_one.federation": "Mastodon 是由獨立的伺服器連結起來,形成的大社群網路。我們把這些伺服器稱為副本。", - "onboarding.page_one.handle": "你在 {domain} 上,所以你的帳號全名是 {handle}", + "onboarding.page_one.full_handle": "Your full handle", + "onboarding.page_one.handle_hint": "This is what you would tell your friends to search for.", "onboarding.page_one.welcome": "歡迎來到 Mastodon !", "onboarding.page_six.admin": "你的副本的管理員是 {admin} 。", "onboarding.page_six.almost_done": "快好了…", @@ -197,6 +199,8 @@ "privacy.public.short": "公開貼", "privacy.unlisted.long": "不要貼到公開時間軸", "privacy.unlisted.short": "不列出來", + "regeneration_indicator.label": "Loading…", + "regeneration_indicator.sublabel": "Your home feed is being prepared!", "relative_time.days": "{number}d", "relative_time.hours": "{number}h", "relative_time.just_now": "now", diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss index 3eb941a238..b023b208d0 100644 --- a/app/javascript/styles/mastodon/components.scss +++ b/app/javascript/styles/mastodon/components.scss @@ -2393,7 +2393,6 @@ .column-header { display: flex; - padding: 15px; font-size: 16px; background: lighten($ui-base-color, 4%); flex: 0 0 auto; @@ -2408,7 +2407,7 @@ flex: auto; margin: 0; border: none; - padding: 0; + padding: 15px; color: inherit; background: transparent; font: inherit; @@ -2433,7 +2432,6 @@ .column-header__buttons { height: 48px; display: flex; - margin: -15px; margin-left: 0; } diff --git a/app/models/account.rb b/app/models/account.rb index 6df9668d5a..1abd49b1e4 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -165,7 +165,7 @@ class Account < ApplicationRecord def refresh! return if local? - ResolveRemoteAccountService.new.call(acct) + ResolveAccountService.new.call(acct) end def unsuspend! diff --git a/app/models/form/migration.rb b/app/models/form/migration.rb index b749873376..c2a8655e13 100644 --- a/app/models/form/migration.rb +++ b/app/models/form/migration.rb @@ -20,6 +20,6 @@ class Form::Migration private def set_account - self.account = (ResolveRemoteAccountService.new.call(acct) if account.nil? && acct.present?) + self.account = (ResolveAccountService.new.call(acct) if account.nil? && acct.present?) end end diff --git a/app/models/user.rb b/app/models/user.rb index 3cf9900bd7..603b72e2bd 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -129,7 +129,7 @@ class User < ApplicationRecord new_user = !confirmed? super - update_statistics! if new_user + prepare_new_user! if new_user end def confirm! @@ -137,7 +137,12 @@ class User < ApplicationRecord skip_confirmation! save! - update_statistics! if new_user + prepare_new_user! if new_user + end + + def update_tracked_fields!(request) + super + prepare_returning_user! end def promote! @@ -220,9 +225,23 @@ class User < ApplicationRecord filtered_languages.reject!(&:blank?) end - def update_statistics! + def prepare_new_user! BootstrapTimelineWorker.perform_async(account_id) ActivityTracker.increment('activity:accounts:local') UserMailer.welcome(self).deliver_later end + + def prepare_returning_user! + ActivityTracker.record('activity:logins', id) + regenerate_feed! if needs_feed_update? + end + + def regenerate_feed! + Redis.current.setnx("account:#{account_id}:regeneration", true) && Redis.current.expire("account:#{account_id}:regeneration", 1.day.seconds) + RegenerationWorker.perform_async(account_id) + end + + def needs_feed_update? + last_sign_in_at < ACTIVE_DURATION.ago + end end diff --git a/app/services/account_search_service.rb b/app/services/account_search_service.rb index 3be1106654..3860a9cbd0 100644 --- a/app/services/account_search_service.rb +++ b/app/services/account_search_service.rb @@ -18,7 +18,7 @@ class AccountSearchService < BaseService return [] if query_blank_or_hashtag? || limit < 1 if resolving_non_matching_remote_account? - [ResolveRemoteAccountService.new.call("#{query_username}@#{query_domain}")].compact + [ResolveAccountService.new.call("#{query_username}@#{query_domain}")].compact else search_results_and_exact_match.compact.uniq.slice(0, limit) end diff --git a/app/services/concerns/author_extractor.rb b/app/services/concerns/author_extractor.rb index c2366188ab..1e00eb803b 100644 --- a/app/services/concerns/author_extractor.rb +++ b/app/services/concerns/author_extractor.rb @@ -18,6 +18,6 @@ module AuthorExtractor acct = "#{username}@#{domain}" end - ResolveRemoteAccountService.new.call(acct, update_profile) + ResolveAccountService.new.call(acct, update_profile) end end diff --git a/app/services/follow_service.rb b/app/services/follow_service.rb index ac0207a0ab..60a389afd3 100644 --- a/app/services/follow_service.rb +++ b/app/services/follow_service.rb @@ -9,7 +9,7 @@ class FollowService < BaseService # @param [true, false, nil] reblogs Whether or not to show reblogs, defaults to true def call(source_account, uri, reblogs: nil) reblogs = true if reblogs.nil? - target_account = uri.is_a?(Account) ? uri : ResolveRemoteAccountService.new.call(uri) + target_account = uri.is_a?(Account) ? uri : ResolveAccountService.new.call(uri) raise ActiveRecord::RecordNotFound if target_account.nil? || target_account.id == source_account.id || target_account.suspended? raise Mastodon::NotPermittedError if target_account.blocking?(source_account) || source_account.blocking?(target_account) diff --git a/app/services/process_mentions_service.rb b/app/services/process_mentions_service.rb index 46401f298a..8e285e1f73 100644 --- a/app/services/process_mentions_service.rb +++ b/app/services/process_mentions_service.rb @@ -16,7 +16,7 @@ class ProcessMentionsService < BaseService if mention_undeliverable?(status, mentioned_account) begin - mentioned_account = resolve_remote_account_service.call($1) + mentioned_account = resolve_account_service.call($1) rescue Goldfinger::Error, HTTP::Error mentioned_account = nil end @@ -63,7 +63,7 @@ class ProcessMentionsService < BaseService ).as_json).sign!(status.account)) end - def resolve_remote_account_service - ResolveRemoteAccountService.new + def resolve_account_service + ResolveAccountService.new end end diff --git a/app/services/resolve_remote_account_service.rb b/app/services/resolve_account_service.rb similarity index 99% rename from app/services/resolve_remote_account_service.rb rename to app/services/resolve_account_service.rb index d7d0be2105..fd6d306056 100644 --- a/app/services/resolve_remote_account_service.rb +++ b/app/services/resolve_account_service.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class ResolveRemoteAccountService < BaseService +class ResolveAccountService < BaseService include OStatus2::MagicKey include JsonLdHelper diff --git a/app/services/fetch_remote_resource_service.rb b/app/services/resolve_url_service.rb similarity index 97% rename from app/services/fetch_remote_resource_service.rb rename to app/services/resolve_url_service.rb index 6d40796f24..1f2b24524a 100644 --- a/app/services/fetch_remote_resource_service.rb +++ b/app/services/resolve_url_service.rb @@ -1,6 +1,6 @@ # frozen_string_literal: true -class FetchRemoteResourceService < BaseService +class ResolveURLService < BaseService include JsonLdHelper attr_reader :url diff --git a/app/services/search_service.rb b/app/services/search_service.rb index 85ad94463b..5f763b8f77 100644 --- a/app/services/search_service.rb +++ b/app/services/search_service.rb @@ -8,7 +8,7 @@ class SearchService < BaseService default_results.tap do |results| if url_query? - results.merge!(remote_resource_results) unless remote_resource.nil? + results.merge!(url_resource_results) unless url_resource.nil? elsif query.present? results[:accounts] = AccountSearchService.new.call(query, limit, account, resolve: resolve) results[:hashtags] = Tag.search_for(query.gsub(/\A#/, ''), limit) unless query.start_with?('@') @@ -24,15 +24,15 @@ class SearchService < BaseService query =~ /\Ahttps?:\/\// end - def remote_resource_results - { remote_resource_symbol => [remote_resource] } + def url_resource_results + { url_resource_symbol => [url_resource] } end - def remote_resource - @_remote_resource ||= FetchRemoteResourceService.new.call(query) + def url_resource + @_url_resource ||= ResolveURLService.new.call(query) end - def remote_resource_symbol - remote_resource.class.name.downcase.pluralize.to_sym + def url_resource_symbol + url_resource.class.name.downcase.pluralize.to_sym end end diff --git a/app/views/admin/accounts/show.html.haml b/app/views/admin/accounts/show.html.haml index 5f5d0995cd..dbbf5fc092 100644 --- a/app/views/admin/accounts/show.html.haml +++ b/app/views/admin/accounts/show.html.haml @@ -18,7 +18,10 @@ %tr %th= t('admin.accounts.role') %td - = t("admin.accounts.roles.#{@account.user&.role}") + - if @account.user.nil? + = t("admin.accounts.moderation.suspended") + - else + = t("admin.accounts.roles.#{@account.user&.role}") = table_link_to 'angle-double-up', t('admin.accounts.promote'), promote_admin_account_role_path(@account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:promote, @account.user) = table_link_to 'angle-double-down', t('admin.accounts.demote'), demote_admin_account_role_path(@account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:demote, @account.user) %tr diff --git a/app/views/authorize_follows/success.html.haml b/app/views/authorize_follows/success.html.haml index f0b495689b..63ff3bcf13 100644 --- a/app/views/authorize_follows/success.html.haml +++ b/app/views/authorize_follows/success.html.haml @@ -12,5 +12,5 @@ .post-follow-actions %div= link_to t('authorize_follow.post_follow.web'), web_url("accounts/#{@account.id}"), class: 'button button--block' - %div= link_to t('authorize_follow.post_follow.return'), @account.url, class: 'button button--block' + %div= link_to t('authorize_follow.post_follow.return'), TagManager.instance.url_for(@account), class: 'button button--block' %div= t('authorize_follow.post_follow.close') diff --git a/app/workers/import/relationship_worker.rb b/app/workers/import/relationship_worker.rb index ed4c962c19..1dd8bf8fbb 100644 --- a/app/workers/import/relationship_worker.rb +++ b/app/workers/import/relationship_worker.rb @@ -7,7 +7,7 @@ class Import::RelationshipWorker def perform(account_id, target_account_uri, relationship) from_account = Account.find(account_id) - target_account = ResolveRemoteAccountService.new.call(target_account_uri) + target_account = ResolveAccountService.new.call(target_account_uri) return if target_account.nil? diff --git a/app/workers/resolve_remote_account_worker.rb b/app/workers/resolve_account_worker.rb similarity index 64% rename from app/workers/resolve_remote_account_worker.rb rename to app/workers/resolve_account_worker.rb index 5dd84ccb6b..cd7c4d7dda 100644 --- a/app/workers/resolve_remote_account_worker.rb +++ b/app/workers/resolve_account_worker.rb @@ -1,11 +1,11 @@ # frozen_string_literal: true -class ResolveRemoteAccountWorker +class ResolveAccountWorker include Sidekiq::Worker sidekiq_options queue: 'pull', unique: :until_executed def perform(uri) - ResolveRemoteAccountService.new.call(uri) + ResolveAccountService.new.call(uri) end end diff --git a/config/locales/ca.yml b/config/locales/ca.yml index 1092da38d5..12aa9bf9f6 100644 --- a/config/locales/ca.yml +++ b/config/locales/ca.yml @@ -338,9 +338,12 @@ ca: body: "%{reporter} ha informat de %{target}" subject: Nou informe per a %{instance} (#%{id}) application_mailer: + notification_preferences: Canviar preferències de correu salutation: "%{name}," settings: 'Canvia les preferències de correu: %{link}' view: 'Vista:' + view_profile: Veure perfil + view_status: Veure estat applications: created: L'aplicació s'ha creat correctament destroyed: L'aplicació s'ha suprimit correctament @@ -481,29 +484,38 @@ ca: title: Moderació notification_mailer: digest: - body: 'Un resum del que et vas perdre en %{instance} desde la darrera visita el %{since}:' + action: Veure totes les notificacions + body: Un resum del que et vas perdre en %{instance} desde la darrera visita el %{since} mention: "%{name} t'ha mencionat en:" new_followers_summary: - one: Visca!. Algú més t´ha començat a seguir! - other: Genial!. Et segueixen %{count} persones més! + one: A més, has adquirit un nou seguidor durant la teva absència! Visca! + other: A més, has adquirit %{count} nous seguidors mentre estaves fora! Increïble! subject: one: "1 notificació nova des de la darrera visita \U0001F418" other: "%{count} notificacions noves des de la darrera visita \U0001F418" + title: Durant la teva absència… favourite: body: "%{name} ha marcat com a favorit el teu estat:" subject: "%{name} ha marcat com a favorit el teu estat" + title: Favorit nou follow: body: "%{name} t'està seguint!" subject: "%{name} t'està seguint" + title: Seguidor nou follow_request: + action: Gestiona les sol·licituds de seguiment body: "%{name} ha sol·licitat seguir-te" subject: 'Seguidor pendent: %{name}' + title: Nova sol·licitud de seguiment mention: + action: Respon body: "%{name} t'ha mencionat en:" subject: "%{name} t'ha mencionat" + title: Menció nova reblog: body: "%{name} ha impulsat el teu estat:" subject: "%{name} ha retootejat el teu estat" + title: Nou impuls number: human: decimal_units: @@ -619,7 +631,7 @@ ca: stream_entries: click_to_show: Clic per mostrar pinned: Toot fixat - reblogged: impulsat + reblogged: ha impulsat sensitive_content: Contingut sensible terms: body_html: | @@ -710,6 +722,25 @@ ca: recovery_instructions_html: Si mai perds l'accéss al teu telèfon pots utilitzar un dels codis de recuperació a continuació per a recuperar l'accés al teu compte. Cal mantenir els codis de recuperació en lloc segur. Per exemple, imprimint-los i guardar-los amb altres documents importants. setup: Establir wrong_code: El codi introduït no és vàlid! És correcta l'hora del servidor i del dispositiu? + user_mailer: + welcome: + edit_profile_action: Configurar perfil + edit_profile_step: Pots personalitzar el teu perfil penjant un avatar, un encapçalament, canviant el teu nom de visualització i molt més. Si prefereixes revisar els seguidors nous abans de que et puguin seguir, pots bloquejar el teu compte. + explanation: Aquests són alguns consells per començar + final_action: Comença a publicar + final_step: 'Comença a publicar! Fins i tot sense seguidors, els altres poden veure els teus missatges públics, per exemple, a la línia de temps local i a les etiquetes ("hashtags"). És possible que vulguis presentar-te amb l''etiqueta #introductions.' + full_handle: El teu nom d'usuari sencer + full_handle_hint: Això és el que has de dir als teus amics perquè puguin enviar-te missatges o seguir-te des d'una altra instància. + review_preferences_action: Canviar preferències + review_preferences_step: Assegura't d'establir les teves preferències, com ara els correus electrònics que vols rebre o el nivell de privadesa per defecte que t'agradaria que tinguin les teves entrades. Si no tens malaltia de moviment, pots optar per habilitar la reproducció automàtica de GIF. + subject: Benvingut/da a Mastodon + tip_bridge_html: Si vens de Twitter, pots trobar els teus amics a Mastodon mitjançant l'aplicació bridge . Només funciona si també ells usen aquesta aplicació pont! + tip_federated_timeline: La línia de temps federada és el cabal principal de la xarxa Mastodon. Però només inclou les persones a les quals els teus veïns estan subscrits, de manera que no està complet. + tip_following: Per defecte segueixes als administradors del servidor. Per trobar més persones interessants, consulta les línies de temps local i federada. + tip_local_timeline: La línia de temps local és la vista del flux de publicacions dels usuaris de %{instance}. Aquests usuaris són els teus veïns més propers! + tip_mobile_webapp: Si el teu navegador del mòbil t'ofereix afegir Mastodon a la teva pantalla d'inici, podràs rebre notificacions "push". Es comporta com una aplicació nativa en molts aspectes! + tips: Consells + title: Benvingut a bord, %{name}! users: invalid_email: L'adreça de correu no és correcta invalid_otp_token: El codi de dos factors no és correcte diff --git a/config/locales/devise.fr.yml b/config/locales/devise.fr.yml index a9817044d8..7e10f83b4b 100644 --- a/config/locales/devise.fr.yml +++ b/config/locales/devise.fr.yml @@ -6,7 +6,7 @@ fr: send_instructions: Vous allez recevoir les instructions nécessaires à la confirmation de votre compte dans quelques minutes. Veuillez, dans le cas où vous ne recevriez pas ce message, vérifier votre dossier d’indésirables. send_paranoid_instructions: Si votre adresse électronique existe dans notre base de données, vous allez bientôt recevoir un courriel contenant les instructions de confirmation de votre compte. Veuillez, dans le cas où vous ne recevriez pas ce message, vérifier votre dossier d’indésirables. failure: - already_authenticated: Vous êtes déjà connecté⋅e + already_authenticated: Vous êtes déjà connecté⋅e. inactive: Votre compte n’est pas encore activé. invalid: Courriel ou mot de passe incorrect. last_attempt: Vous avez droit à une tentative avant que votre compte ne soit verrouillé. @@ -17,11 +17,32 @@ fr: unconfirmed: Vous devez valider votre compte pour continuer. mailer: confirmation_instructions: + action: Vérifier l'adresse courriel + explanation: Vous avez créé un compte sur %{host} avec cette adresse courriel. Vous êtes à un clic de l'activer. Si ce n'était pas vous, veuillez ignorer ce courriel. + extra_html: S'il vous plaît, consultez également 1les règles de l'instance 2 et 3nos termes de service 4. subject: Merci de confirmer votre inscription sur %{instance} + title: Vérifier l'adresse courriel + email_changed: + explanation: 'L''adresse courriel de votre compte est en cours de modification pour devenir :' + extra: Si vous n'avez pas changé votre adresse courriel, il est probable que quelqu'un ait eu accès à votre compte. Veuillez changer votre mot de passe immédiatement ou contacter l'administrateur de l'instance si vous êtes bloqué hors de votre compte. + subject: 'Mastodon : Courriel modifié' + title: Nouvelle adresse courriel password_change: - subject: Votre mot de passe a été modifié avec succès. + explanation: Le mot de passe de votre compte a été changé. + extra: Si vous n'avez pas changé votre mot de passe, il est probable que quelqu'un ait eu accès à votre compte. Veuillez changer votre mot de passe immédiatement ou contacter l'administrateur de l'instance si vous êtes bloqué hors de votre compte. + subject: Votre mot de passe a été modifié avec succès + title: Mot de passe modifié + reconfirmation_instructions: + explanation: Confirmez la nouvelle adresse pour changer votre courriel. + extra: Si ce changement n' a pas été initié par vous, veuillez ignorer ce courriel. L'adresse courriel du compte Mastodon ne changera pas tant que vous n'aurez pas cliqué sur le lien ci-dessus. + subject: 'Mastodon : Confirmez l''email pour %{instance}' + title: Vérifier l'adresse courriel reset_password_instructions: + action: Modifier le mot de passe + explanation: Vous avez demandé un nouveau mot de passe pour votre compte. + extra: Si vous ne l'avez pas demandé, veuillez ignorer ce courriel. Votre mot de passe ne changera pas tant que vous n'aurez pas cliqué sur le lien ci-dessus et que vous n'en aurez pas créé un nouveau. subject: Instructions pour changer votre mot de passe + title: Réinitialisation du mot de passe unlock_instructions: subject: Instructions pour déverrouiller votre compte omniauth_callbacks: @@ -31,7 +52,7 @@ fr: no_token: Vous ne pouvez accéder à cette page sans passer par un courriel de réinitialisation de mot de passe. Si vous êtes passé⋅e par un courriel de ce type, assurez-vous d’utiliser l’URL complète. send_instructions: Vous allez recevoir les instructions de réinitialisation du mot de passe dans quelques instants. Veuillez, dans le cas où vous ne recevriez pas ce message, vérifier votre dossier d’indésirables. send_paranoid_instructions: Si votre adresse électronique existe dans notre base de données, vous allez recevoir un lien de réinitialisation par courriel. Veuillez, dans le cas où vous ne recevriez pas ce message, vérifier votre dossier d’indésirables. - updated: Votre mot de passe a été modifié avec succès, vous êtes maintenant connecté⋅e + updated: Votre mot de passe a été modifié avec succès, vous êtes maintenant connecté⋅e. updated_not_active: Votre mot de passe a été modifié avec succès. registrations: destroyed: Votre compte a été supprimé avec succès. Nous espérons vous revoir bientôt. @@ -42,16 +63,16 @@ fr: update_needs_confirmation: Votre compte a bien été mis à jour mais nous devons vérifier votre nouvelle adresse courriel. Merci de vérifier vos courriels et de cliquer sur le lien de confirmation pour finaliser la validation de votre nouvelle adresse. updated: Votre compte a été modifié avec succès. sessions: - already_signed_out: Déconnecté. - signed_in: Connecté. - signed_out: Déconnecté. + already_signed_out: Déconnecté·e. + signed_in: Connecté·e. + signed_out: Déconnecté·e. unlocks: send_instructions: Vous allez recevoir les instructions nécessaires au déverrouillage de votre compte dans quelques instants. Veuillez, dans le cas où vous ne recevriez pas ce message, vérifier votre dossier d’indésirables. send_paranoid_instructions: Si votre compte existe, vous allez bientôt recevoir un courriel contenant les instructions pour le déverrouiller. Veuillez, dans le cas où vous ne recevriez pas ce message, vérifier votre dossier d’indésirables. unlocked: Votre compte a été déverrouillé avec succès, vous êtes maintenant connecté⋅e. errors: messages: - already_confirmed: a déjà été validé⋅e, veuillez essayer de vous connecter + already_confirmed: a déjà été validée, veuillez essayer de vous connecter confirmation_period_expired: à confirmer dans les %{period}, merci de faire une nouvelle demande expired: a expiré, merci d’en faire une nouvelle demande not_found: n’a pas été trouvé⋅e diff --git a/config/locales/devise.gl.yml b/config/locales/devise.gl.yml index c0fc53834a..a8fe6a2a5b 100644 --- a/config/locales/devise.gl.yml +++ b/config/locales/devise.gl.yml @@ -17,15 +17,32 @@ gl: unconfirmed: Debe confirmar o seu enderezo de correo antes de continuar. mailer: confirmation_instructions: + action: Validar enderezo de correo-e + explanation: Creou unha conta en %{host} con este enderezo de correo. Está a punto de activalo, si non foi vostede quen fixo a petición, por favor ignore este correo. + extra_html: Por favor, lea tamén as normas da instancia e os termos do servizo. subject: 'Mastodon: Instruccións de confirmación para %{instance}' + title: Verificar enderezo de correo-e email_changed: + explanation: 'O seu enderezo de correo para esta conta foi cambiado a:' + extra: Si non fixo a petición de cambio de correo-e é probable que alguén obtivese acceso a súa conta. Por favor, cambie o contrasinal inmediatamente ou contacte coa administración da instancia si non ten acceso a súa conta. subject: 'Mastodon: email cambiado' + title: Novo enderezo de correo password_change: + explanation: Cambiouse o contrasinal da súa conta. + extra: Si non cambio o contrasinal, é probable que alguén obtivese acceso a súa conta. Por favor cambie o contrasinal inmediatamente ou contacte coa administración da instancia si non ten acceso a súa conta. subject: 'Mastodon: contrasinal cambiado' + title: Contrainal cambiado reconfirmation_instructions: + explanation: Confirme o novo enderezo para cambiar o correo-e. + extra: Si vostede non fixo esta petición, ignore este correo por favor. Este enderezo de correo-e para a conta Mastodon non cambiará ate que acceda a ligazón superior. subject: 'Mastodon: Confirme email para %{instance}' + title: Verificación do enderezo de correo-e reset_password_instructions: + action: Cambiar contrasinal + explanation: Solicitou un novo contrasinal para a súa conta. + extra: Si non fixo esta solicitude, por favor ignore este correo. O seu contrasinal non cambiará ate que acceda a ligazón superior e cree unha nova. subject: 'Mastodon: Instruccións para restablecer o contrasinal' + title: Restablecer contrasinal unlock_instructions: subject: 'Mastodon: Instruccións para desbloquear' omniauth_callbacks: diff --git a/config/locales/devise.oc.yml b/config/locales/devise.oc.yml index de87ac1e26..bd2437f3fc 100644 --- a/config/locales/devise.oc.yml +++ b/config/locales/devise.oc.yml @@ -17,28 +17,45 @@ oc: unconfirmed: Vos cal confirmar vòstra adreça de corrièl abans de contunhar. mailer: confirmation_instructions: - subject: Mercés de confirmar vòstra inscripcion sus %{instance} + action: Verificar l’adreça de corrièl + explanation: Venètz de crear un compte sus %{host} amb aquesta adreça de corrièl. Vos manca pas qu’un clic per l’activar. S’èra pas vosautre mercés de far pas cas a aqueste messatge. + extra_html: Pensatz tanben de gaitar las règlas de l’instància e nòstres tèrmes e condicions d’utilizacion. + subject: 'Mastodon : consignas de confirmacion per %{instance}' + title: Verificatz l’adreça de corrièl email_changed: + explanation: 'L’adreça per aqueste compte es ara :' + extra: S’avètz pas demandat aqueste cambiament d’adreça, poiriá arribar que qualqu’un mai aguèsse agut accès a vòstre compte. Mercés de cambiar sulpic vòstre senhal o de contactar vòstre administrator d’instància se l’accès a vòstre compte vos es barrat. subject: 'Mastodon : corrièl cambiat' + title: Nòva adreça de corrièl password_change: + explanation: Lo senhal per vòstre compte a cambiat. + extra: S’avètz pas demandat aqueste cambiament de senhal, poiriá arribar que qualqu’un mai aguèsse agut accès a vòstre compte. Mercés de cambiar sulpic vòstre senhal o de contactar vòstre administrator d’instància se l’accès a vòstre compte vos es barrat. subject: Mastodon : senhal cambiat + title: Senhal cambiat reconfirmation_instructions: - subject: 'Mastodon : Confirmatz l’adreça per %{instance}' + explanation: Confirmar la nòva adreça per cambiar lo corrièl. + extra: S’avètz pas res demandat, fasquètz pas cas a aqueste corrièl. Vòstre corrièl per Mastodon cambiarà pas se clicatz pas lo ligam dessús. + subject: 'Mastodon : confirmatz l’adreça per %{instance}' + title: Verificatz l’adreça de corrièl reset_password_instructions: - subject: Mastodon : instruccions per reïnicializar lo senhal + action: Cambiament de senhal + explanation: Avètz demandat un nòu senhal per vòstre compte + extra: S’avètz pas res demandat, fasquètz pas cas a aqueste corrièl. Vòstre senhal cambiarà pas se clicatz pas lo ligam e que ne causissètz pas un novèl. + subject: Mastodon : consignas per reïnicializar lo senhal + title: Reïnicializacion del senhal unlock_instructions: - subject: Mastodon : instuccions de desblocatge + subject: Mastodon : consignas de desblocatge omniauth_callbacks: failure: Fracàs al moment de vos autentificar de %{kind} perque "%{reason}". success: Sètz ben autentificat dempuèi lo compte %{kind}. passwords: no_token: Podètz pas accedir a aquesta pagina sens venir d’un corriel de reïnicializacion de senhal. S’es lo cas, mercés de verificar qu’avètz ben utilizat l’URL donada de manièra complèta. - send_instructions: Recebretz un corrièl amb las instruccions per reĩnicializar vòstre senhal dins una estona. Mercés de verificar tanben vòstre dorsièr de corrièls indesirables. + send_instructions: Recebretz un corrièl amb las consignas per reĩnicializar vòstre senhal dins una estona. Mercés de verificar tanben vòstre dorsièr de corrièls indesirables. send_paranoid_instructions: Se vòstra adreça de corrièl existís dins nòstra basa de donadas, recebretz un ligam per reĩnicializar vòstre senhal dins una estona. Mercés de verificar tanben vòstre dorsièr de corrièls indesirables. updated: Vòstre senhal es ben estat cambiat. Sètz ara connectat. updated_not_active: Vòstre senhal es ben estat cambiat. registrations: - destroyed: Adiu ! Vòstra inscripcion es estada anullada amb succès. Esperem vos tornar veire lèu. + destroyed: Adieu-siatz ! Vòstra inscripcion es estada anullada amb succès. Esperem vos tornar veire lèu. signed_up: La benvenguda ! Sètz ben marcat al malhum. signed_up_but_inactive: Sètz ben marcat. Pasmens, avèm pas pogut vos connectar perque vòstre compte es pas encara validat. signed_up_but_locked: Sètz ben marcat. Pasmens, avèm pas pogut vos connectar perque vòstre compte es pas encara blocat. @@ -50,8 +67,8 @@ oc: signed_in: Connectat amb succès. signed_out: Desconnectat amb succès. unlocks: - send_instructions: Recebretz un corrièl amb las instruccions per o desblocar dins una estona. Mercés de verificar tanben vòstre dorsièr de corrièls indesirables. - send_paranoid_instructions: Se vòstre compte existís recebretz un corrièl amb las instruccions per o desblocar dins una estona. Mercés de verificar tanben vòstre dorsièr de corrièls indesirables. + send_instructions: Recebretz un corrièl amb las consignas per o desblocar dins una estona. Mercés de verificar tanben vòstre dorsièr de corrièls indesirables. + send_paranoid_instructions: Se vòstre compte existís recebretz un corrièl amb las consignas per o desblocar dins una estona. Mercés de verificar tanben vòstre dorsièr de corrièls indesirables. unlocked: Vòstre compte es estat desblocat amb succès. Mercés de vos connectar per contunhar. errors: messages: diff --git a/config/locales/devise.pt-BR.yml b/config/locales/devise.pt-BR.yml index eab86c8029..09e6ed3de4 100644 --- a/config/locales/devise.pt-BR.yml +++ b/config/locales/devise.pt-BR.yml @@ -17,15 +17,32 @@ pt-BR: unconfirmed: Você precisa confirmar o seu endereço de e-mail antes de continuar. mailer: confirmation_instructions: + action: Verificar endereço de e-mail + explanation: Você criou uma conta em %{host} com esse endereço de e-mail. Você está a um clique de ativá-la. Se não foi você, por favor ignore esse e-mail. + extra_html: Por favor confira também as regras da instância e nossos termos de serviço. subject: 'Mastodon: Instruções de confirmação' + title: Verifique o endereço de e-mail email_changed: + explanation: 'O e-mail associado à sua conta está sendo mudado para:' + extra: Se você não mudou seu e-mail é possível que alguém tenha conseguido acesso à sua conta. Por favor mude sua senha imediatamente ou entre em contato com um administrador da sua instância se você ficou sem acesso à sua conta. subject: 'Mastodon: Email alterado' + title: Novo endereço de e-mail password_change: + explanation: A senha da sua conta foi mudada. + extra: Se você não mudou a sua senha, é possível que alguém tenha conseguido acesso à sua conta. Por favor mude sua senha imediatamente ou entre em contato com um administrador da sua instância se você ficou sem acesso à sua conta. subject: 'Mastodon: Senha modificada' + title: A senha mudou reconfirmation_instructions: + explanation: Confirme o seu novo endereço para mudar seu e-mail. + extra: Se essa mudança não foi iniciada por você, por favor ignore esse e-mail. O endereço de e-mail para essa conta do Mastodon não irá mudar até que você acesse o link acima. subject: 'Mastodon: Confirmar emai para %{instance}' + title: Verifique o endereço de e-mail reset_password_instructions: + action: Mudar a senha + explanation: Você pediu uma nova senha para sua conta. + extra: Se você não fez esse pedido, por favor ignore esse e-mail. Sua senha não irá mudar até que você acesse o link acima e crie uma nova. subject: 'Mastodon: Instruções para mudança de senha' + title: Reiniciar a senha unlock_instructions: subject: 'Mastodon: Instruções de desbloqueio' omniauth_callbacks: diff --git a/config/locales/fr.yml b/config/locales/fr.yml index 09338fdfdf..884fb30e4a 100644 --- a/config/locales/fr.yml +++ b/config/locales/fr.yml @@ -265,12 +265,18 @@ fr: unresolved: Non résolus view: Voir settings: + activity_api_enabled: + desc_html: Nombre de statuts affichés localement, d'utilisateurs actifs et de nouveaux enregistrements dans les registres hebdomadaires + title: Publier des statistiques agrégées sur l'activité des utilisateurs bootstrap_timeline_accounts: desc_html: Séparez les noms d’utilisateur·ice par des virgules. Ne fonctionne qu’avec des comptes locaux et non-verrouillés. Si laissé vide, tous les administrateur⋅ice⋅s locaux sont sélectionné⋅e⋅s. title: Abonnements par défaut pour les nouveaux·elles utilisateur·ice·s contact_information: email: Entrez une adresse courriel publique username: Entrez un nom d’utilisateur⋅ice + peers_api_enabled: + desc_html: Noms des domaines que cette instance a découvert dans le fediverse + title: Publier la liste des instances découvertes registrations: closed_message: desc_html: Affiché sur la page d’accueil lorsque les inscriptions sont fermées
Vous pouvez utiliser des balises HTML @@ -332,9 +338,12 @@ fr: body: "%{reporter} a signalé %{target}" subject: Nouveau signalement sur %{instance} (#%{id}) application_mailer: + notification_preferences: Modifier les préférences de courriel salutation: "%{name}," settings: 'Changer les préférences courriel : %{link}' view: 'Voir :' + view_profile: Voir le profil + view_status: Afficher le statut applications: created: Application créée avec succès destroyed: Application supprimée avec succès @@ -475,29 +484,38 @@ fr: title: Modération notification_mailer: digest: + action: Voir toutes les notifications body: 'Voici ce que vous avez raté sur ${instance} depuis votre dernière visite le %{since} :' mention: "%{name} vous a mentionné⋅e dans :" new_followers_summary: one: Vous avez un⋅e nouvel⋅le abonné⋅e ! Youpi ! - other: Vous avez %{count} nouveaux⋅elles abonné⋅e⋅s ! Incroyable ! + other: Vous avez %{count} nouveaux⋅elles abonné⋅e·s ! Incroyable ! subject: one: "Une nouvelle notification depuis votre dernière visite \U0001F418" other: "%{count} nouvelles notifications depuis votre dernière visite \U0001F418" + title: Pendant votre absence… favourite: body: "%{name} a ajouté votre post à ses favoris :" subject: "%{name} a ajouté votre post à ses favoris" + title: Nouveau favori follow: body: "%{name} vous suit !" subject: "%{name} vous suit" + title: Nouvel·le abonné·e follow_request: + action: Gérer les demandes d'abonnement body: "%{name} a demandé à vous suivre" subject: 'Abonné⋅es en attente : %{name}' + title: Nouvelle demande d'abonnement mention: + action: Répondre body: "%{name} vous a mentionné⋅e dans :" subject: "%{name} vous a mentionné·e" + title: Nouvelle mention reblog: body: "%{name} a partagé votre statut :" subject: "%{name} a partagé votre statut" + title: Nouveau partage number: human: decimal_units: @@ -533,7 +551,7 @@ fr: reblog: title: "%{name} a partagé votre statut" remote_follow: - acct: Entrez votre pseudo@instance depuis lequel vous voulez suivre ce⋅tte utilisateur⋅rice + acct: Entrez votre pseudo@instance depuis lequel vous voulez suivre cet·te utilisateur⋅ice missing_resource: L’URL de redirection n’a pas pu être trouvée proceed: Continuez pour suivre prompt: 'Vous allez suivre :' @@ -545,12 +563,14 @@ fr: blackberry: Blackberry chrome: Chrome edge: Microsoft Edge + electron: Electron firefox: Firefox generic: Navigateur inconnu ie: Internet Explorer micro_messenger: MicroMessenger nokia: Nokia S40 Ovi Browser opera: Opera + otter: Autre phantom_js: PhantomJS qq: QQ Browser safari: Safari @@ -702,6 +722,25 @@ fr: recovery_instructions_html: Si vous perdez l’accès à votre téléphone, vous pouvez utiliser un des codes de récupération ci-dessous pour retrouver l’accès à votre compte. Conservez les codes de récupération en sécurité. Par exemple, en les imprimant et en les stockant avec vos autres documents importants. setup: Installer wrong_code: Les codes entrés sont incorrects ! L’heure du serveur et celle de votre appareil sont-elles correctes ? + user_mailer: + welcome: + edit_profile_action: Configuration du profil + edit_profile_step: Vous pouvez personnaliser votre profil en téléchargeant un avatar, une image d'en-tête, en changeant votre pseudo et plus encore. Si vous souhaitez examiner les nouveaux abonnés avant qu'ils ne soient autorisés à vous suivre, vous pouvez verrouiller votre compte. + explanation: Voici quelques conseils pour vous aider à démarrer + final_action: Commencer à publier + final_step: 'Commencez à poster ! Même sans abonné·es, vos messages publics peuvent être vus par d''autres, par exemple sur la chronologie locale et dans les hashtags. Vous pouvez vous présenter sur le hashtag #introductions.' + full_handle: Votre pleine maîtrise + full_handle_hint: C'est ce que vous diriez à vos amis pour qu'ils puissent vous envoyer un message ou vous suivre à partir d'une autre instance. + review_preferences_action: Modifier les préférences + review_preferences_step: Assurez-vous de définir vos préférences, telles que les courriels que vous aimeriez recevoir ou le niveau de confidentialité auquel vous aimeriez que vos messages soient soumis par défaut. Si vous n'avez pas le mal des transports, vous pouvez choisir d'activer la lecture automatique GIF. + subject: Bienvenue sur Mastodon + tip_bridge_html: Si vous venez de Twitter, vous pouvez retrouver vos amis sur Mastodon en utilisant le 1bridge app 2. Cela ne fonctionne que s'ils ont aussi utilisé cette application ! + tip_federated_timeline: La chronologie fédérée est une vue en direct du réseau Mastodon. Mais elle n'inclut que les personnes auxquelles vos voisin·es sont abonné·es, donc elle n'est pas complète. + tip_following: Vous suivez les administrateurs et administratrices de votre serveur par défaut. Pour trouver d'autres personnes intéressantes, consultez les chronologies locales et fédérées. + tip_local_timeline: La chronologie locale est une vue des personnes sur %{instance}. Ce sont vos voisines et voisins immédiats ! + tip_mobile_webapp: Si votre navigateur mobile vous propose d'ajouter Mastodon à votre écran d'accueil, vous pouvez recevoir des notifications push. Il agit comme une application native de bien des façons ! + tips: Astuces + title: Bienvenue à bord, %{name} ! users: invalid_email: L’adresse courriel est invalide invalid_otp_token: Le code d’authentification à deux facteurs est invalide diff --git a/config/locales/gl.yml b/config/locales/gl.yml index 100e2954ca..40d72cbe4e 100644 --- a/config/locales/gl.yml +++ b/config/locales/gl.yml @@ -338,9 +338,12 @@ gl: body: "%{reporter} informou sobre %{target}" subject: Novo informe sobre %{instance} (#%{id}) application_mailer: + notification_preferences: Cambiar os axustes de correo-e salutation: "%{name}," settings: 'Mudar as preferencias de e-mail: %{link}' view: 'Vista:' + view_profile: Ver perfil + view_status: Ver estado applications: created: Creouse con éxito este aplicativo destroyed: Eliminouse con éxito o aplicativo @@ -481,29 +484,38 @@ gl: title: Moderación notification_mailer: digest: - body: 'Aquí ten un breve sumario do que perdeu en %{instance} desde a última visita en %{since}:' + action: Ver todas as notificacións + body: Aquí ten un breve resumo das mensaxes publicadas desde a súa última visita en %{since} mention: "%{name} mencionouna en:" new_followers_summary: - one: Ten unha nova seguidora! Ben! - other: Obtivo %{count} novas seguidoras! Tremendo! + one: Ademáis, ten unha nova seguidora desde entón! Ben! + other: Ademáis, obtivo %{count} novas seguidoras desde entón! Tremendo! subject: one: "1 nova notificación desde a súa última visita \U0001F418" other: "%{count} novas notificacións desde a súa última visita \U0001F418" + title: Na súa ausencia… favourite: body: 'O seu estado foi marcado favorito por %{name}:' subject: "%{name} marcou favorito o seu estado" + title: Nova favorita follow: body: "%{name} agora está a seguila!" subject: "%{name} agora está a seguila" + title: Nova seguidora follow_request: + action: Xestionar peticións de seguimento body: "%{name} solicitou poder seguila" subject: 'Seguidora pendente: %{name}' + title: Nova petición de seguimento mention: + action: Respostar body: 'Foi mencionada por %{name} en:' subject: Vostede foi mencionada por %{name} + title: Nova mención reblog: body: 'O seu estado foi promocionado por %{name}:' - subject: "%{name} promocionou o seu estado" + subject: "%{name} promoveu o seu estado" + title: Nova promoción number: human: decimal_units: @@ -537,7 +549,7 @@ gl: action_favourite: Favorito title: "%{name} mencionouna" reblog: - title: "%{name} promocionou un dos seus estados" + title: "%{name} promoveu un dos seus estados" remote_follow: acct: Introduza o seu nomedeusuaria@dominio desde onde quere facer seguimento missing_resource: Non se puido atopar o URL de redirecionamento requerido para a súa conta @@ -551,12 +563,14 @@ gl: blackberry: Blackberry chrome: Chrome edge: Microsoft Edge + electron: Electron firefox: Firefox generic: Navegador descoñecido ie: Internet Explorer micro_messenger: MicroMessenger nokia: Navegador Nokia S40 Ovi opera: Opera + otter: Otter phantom_js: PhantomJS qq: Navegador QQ safari: Safari @@ -710,6 +724,25 @@ gl: recovery_instructions_html: Si perdese o acceso ao seu teléfono, pode utilizar un dos códigos inferiores de recuperación para recuperar o acceso a súa conta. Garde os códigos en lugar seguro. Por exemplo, pode imprimilos e gardalos xunto con outros documentos importantes. setup: Configurar wrong_code: O código introducido non é válido! Son correctas as horas no dispositivo e o servidor? + user_mailer: + welcome: + edit_profile_action: Configurar perfil + edit_profile_step: Vostede pode personalizar o seu perfil subindo un avatar, cabeceira, cambiar o seu nome público e aínda máis. Si restrinxe a súa conta pode revisar a conta das personas que solicitan seguilas antes de permitirlles o acceso aos seus toots. + explanation: Aquí ten alunhas endereitas para ir aprendendo + final_action: Comece a publicar + final_step: 'Publique! Incluso sin seguidoras as súas mensaxes serán vistas por outras, por exemplo na liña temporal local e nas etiquetas. Podería presentarse no #fediverso utilizando a etiqueta #introductions.' + full_handle: O seu alcume completo + full_handle_hint: Esto é o que lle dirá aos seus amigos para que poidan seguila ou enviarlle mensaxes desde outra instancia. + review_preferences_action: Cambiar preferencias + review_preferences_step: Lembre establecer as preferencias, tales como qué correos-e lle querería recibir, ou o nivel de intimidade por omisión para as súas mensaxes. Se non lle molestan as imaxes con movemento, pode escoller que os GIF se reproduzan automáticamente. + subject: Benvida a Mastodon + tip_bridge_html: Si chega desde a Twitter, pode atopar aos seus amigos en Mastodon utilizando o aplicativo ponte. Só funciona si eles tamén utilizan o aplicativo ponte! + tip_federated_timeline: A liña temporal federada é unha visión ampla da rede Mastodon. Pero so inclúe xente a que segue xente que vostede segue, así que non é completa. + tip_following: Por omisión vostede segue ao Admin do seu servidor. Para atopar máis xente interesante, mire nas liñas temporais local e federada. + tip_local_timeline: A liña temporal local é unha ollada xeral sobre a xente en %{instance}. Son as súas veciñas máis próximas! + tip_mobile_webapp: Si o navegador móbil lle ofrece engadir Mastodon a pantalla de inicio, pode recibir notificacións push. En moitos aspectos comportarase como un aplicativo nativo! + tips: Consellos + title: Benvida, %{name}! users: invalid_email: O enderezo de correo non é válido invalid_otp_token: Código de doble-factor non válido diff --git a/config/locales/ja.yml b/config/locales/ja.yml index 141b5141a6..715826899d 100644 --- a/config/locales/ja.yml +++ b/config/locales/ja.yml @@ -266,7 +266,7 @@ ja: view: 表示 settings: activity_api_enabled: - desc_html: ローカルに投稿されたトゥート数、アクティブなユーザー数、週ごとの新規登録者数 + desc_html: 週ごとのローカルに投稿されたトゥート数、アクティブなユーザー数、新規登録者数 title: ユーザーアクティビティに関する統計を公開する bootstrap_timeline_accounts: desc_html: 複数のユーザー名はコンマで区切ります。ローカルの公開アカウントのみ有効です。指定しない場合は管理者がデフォルトで指定されます。 @@ -350,7 +350,7 @@ ja: invalid_url: URLが無効です regenerate_token: アクセストークンの再生成 token_regenerated: アクセストークンが再生成されました - warning: このデータは気をつけて取り扱ってください。不特定多数の人と共有しないでください! + warning: このデータは気をつけて取り扱ってください。他の人と共有しないでください! your_token: アクセストークン auth: agreement_html: 登録すると インスタンスのルール利用規約 に従うことに同意したことになります。 @@ -422,7 +422,7 @@ ja: domain: ドメイン explanation_html: あなたの投稿のプライバシーを確保したい場合、誰があなたをフォローしているのかを把握している必要があります。 プライベート投稿は、あなたのフォロワーがいる全てのインスタンスに配信されます。 フォロワーのインスタンスの管理者やソフトウェアがあなたのプライバシーを尊重してくれるかどうか怪しい場合は、そのフォロワーを削除した方がよいかもしれません。 followers_count: フォロワー数 - lock_link: 非公開アカウント + lock_link: 非公開アカウントにする purge: フォロワーから削除する success: one: 1個のドメインからソフトブロックするフォロワーを処理中... @@ -494,7 +494,7 @@ ja: notification_mailer: digest: action: 全ての通知を表示 - body: "%{instance} での最後のログインからの出来事:" + body: '最後のログイン(%{since})からの出来事:' mention: "%{name} さんがあなたに返信しました:" new_followers_summary: one: また、離れている間に新たなフォロワーを獲得しました! @@ -572,12 +572,14 @@ ja: blackberry: Blackberry chrome: Chrome edge: Microsoft Edge + electron: Electron firefox: Firefox generic: 不明なブラウザ ie: Internet Explorer micro_messenger: MicroMessenger nokia: Nokia S40 Ovi Browser opera: Opera + otter: Otter phantom_js: PhantomJS qq: QQ Browser safari: Safari @@ -711,6 +713,8 @@ ja:

オリジナルの出典 Discourse privacy policy.

title: "%{instance} 利用規約・プライバシーポリシー" + themes: + default: Mastodon time: formats: default: "%Y年%m月%d日 %H:%M" @@ -730,6 +734,25 @@ ja: recovery_instructions_html: 携帯電話を紛失した場合、以下の内どれかのリカバリーコードを使用してアカウントへアクセスすることができます。リカバリーコードは大切に保全してください。たとえば印刷してほかの重要な書類と一緒に保管することができます。 setup: 初期設定 wrong_code: コードが間違っています。サーバー上の時間とデバイス上の時間が一致していることを確認してください。 + user_mailer: + welcome: + edit_profile_action: プロフィールを設定 + edit_profile_step: アバター画像やヘッダー画像をアップロードしたり、表示名やその他プロフィールを変更しカスタマイズすることができます。新しいフォロワーからのフォローを許可する前に検討したい場合、アカウントを非公開にすることができます。 + explanation: 始めるにあたってのアドバイスです + final_action: 始めましょう + final_step: 'さあ始めましょう!たとえフォロワーがいなくても、あなたの公開した投稿はローカルタイムラインやハッシュタグなどで誰かの目に止まるかもしれません。自己紹介をしたい時は #introductions ハッシュタグを使うといいかもしれません。' + full_handle: あなたの正式なユーザー名 + full_handle_hint: これは別のインスタンスからフォローしてもらったりメッセージのやり取りをする際に、友達に伝えるといいでしょう。 + review_preferences_action: 設定の変更 + review_preferences_step: 受け取りたいメールや投稿の公開範囲などの設定を必ず行ってください。不快でないならアニメーション GIF の自動再生を有効にすることもできます。 + subject: Mastodon へようこそ + tip_bridge_html: もし Twitter から来られたのであれば、bridge app を使用することで Mastodon での友達のアカウントを探すこともできます。ただし bridge app を使用したことのある相手に限ります! + tip_federated_timeline: 連合タイムラインは Mastodon ネットワークの流れを見られるものです。ただしあなたと同じインスタンスの人がフォローしている人だけが含まれるので、それが全てではありません。 + tip_following: 標準では自動でインスタンスの管理者をフォローしています。もっと興味のある人たちを見つけるには、ローカルタイムラインと連合タイムラインを確認してください。 + tip_local_timeline: ローカルタイムラインは %{instance} にいる人々の流れを見られるものです。彼らはあなたと同じインスタンスにいる隣人のようなものです! + tip_mobile_webapp: もしモバイル端末のブラウザで Mastodon をホーム画面に追加できる場合、プッシュ通知を受け取ることができます。それはまるでネイティブアプリのように動作します! + tips: 豆知識 + title: ようこそ、 %{name}! users: invalid_email: メールアドレスが無効です invalid_otp_token: 二段階認証コードが間違っています diff --git a/config/locales/ko.yml b/config/locales/ko.yml index b254636f3c..23932a919b 100644 --- a/config/locales/ko.yml +++ b/config/locales/ko.yml @@ -651,6 +651,25 @@ ko: recovery_instructions_html: 휴대전화를 분실한 경우, 아래 복구 코드 중 하나를 사용해 계정에 접근할 수 있습니다. 복구 코드는 안전하게 보관해 주십시오. 이 코드를 인쇄해 중요한 서류와 함께 보관하는 것도 좋습니다. setup: 초기 설정 wrong_code: 코드가 올바르지 않습니다. 서버와 휴대전화 간의 시간이 일치하는지 확인해 주십시오. + user_mailer: + welcome: + edit_profile_action: 프로필 설정 + edit_profile_step: 아바타, 헤더를 업로드하고, 사람들에게 표시 될 이름을 바꾸는 것으로 당신의 프로필을 커스텀 할 수 있습니다. 사람들이 당신을 팔로우 하기 전에 리뷰를 거치게 하고 싶다면 계정을 잠그면 됩니다. + explanation: 시작하기 전에 몇가지 팁들을 준비했습니다 + final_action: 포스팅 시작하기 + final_step: '포스팅을 시작하세요! 팔로워가 없더라도 퍼블릭 메시지는 다른 사람들이 볼 수 있습니다, 예를 들면 로컬 타임라인이나 해시태그에서요. 사람들에게 자신을 소개하고 싶다면 #introductions 해시태그를 이용해보세요.' + full_handle: 당신의 풀 핸들 + full_handle_hint: 이것을 당신의 친구들에게 알려주면 다른 인스턴스에서 팔로우 하거나 메시지를 보낼 수 있습니다. + review_preferences_action: 설정 바꾸기 + review_preferences_step: 당신의 설정을 확인하세요. 어떤 이메일로 알림을 받을 것인지, 기본적으로 어떤 프라이버시 설정을 사용할 것인지, 멀미가 없다면 GIF를 자동 재생하도록 설정할 수도 있습니다. + subject: 마스토돈에 오신 것을 환영합니다. + tip_bridge_html: 만약 트위터에서 오셨다면 브리지 앱을 통해 마스토돈에 있는 친구들을 찾을 수 있습니다. 친구들도 이 앱을 사용했을 때만 작동합니다! + tip_federated_timeline: 연합 타임라인은 마스토돈 네트워크의 소방호스입니다. 다만 여기엔 당신의 이웃들이 구독 중인 것만 뜹니다, 모든 것이 다 오는 것은 아니예요. + tip_following: 기본적으로 서버의 관리자를 팔로우 하도록 되어 있습니다. 흥미로운 사람들을 더 찾으려면 로컬과 연합 타임라인을 확인해 보세요. + tip_local_timeline: 로컬 타임라인은 %{instance}의 소방호스입니다. 여기 있는 사람들은 당신의 이웃들이에요! + tip_mobile_webapp: 모바일 브라우저가 홈 스크린에 바로가기를 추가해 줬다면 푸시 알림도 받을 수 있습니다. 이건 거의 네이티브 앱처럼 작동해요! + tips: 팁 + title: 환영합니다 %{name} 님! users: invalid_email: 메일 주소가 올바르지 않습니다 invalid_otp_token: 2단계 인증 코드가 올바르지 않습니다 diff --git a/config/locales/nl.yml b/config/locales/nl.yml index 973dc65d1b..f10722f20f 100644 --- a/config/locales/nl.yml +++ b/config/locales/nl.yml @@ -295,17 +295,17 @@ nl: title: Medewerkersbadge tonen site_description: desc_html: Dit wordt als een alinea op de voorpagina getoond en gebruikt als meta-tag in de paginabron.
Je kan HTML gebruiken, zoals <a> en <em>. - title: Omschrijving Mastodon-server + title: Omschrijving Mastodonserver site_description_extended: desc_html: Wordt op de uitgebreide informatiepagina weergegeven
Je kan ook hier HTML gebruiken - title: Uitgebreide omschrijving Mastodon-server + title: Uitgebreide omschrijving Mastodonserver site_terms: desc_html: Je kan hier jouw eigen privacybeleid, gebruikersvoorwaarden en ander juridisch jargon kwijt. Je kan HTML gebruiken title: Aangepaste gebruikersvoorwaarden - site_title: Naam Mastodon-server + site_title: Naam Mastodonserver thumbnail: desc_html: Gebruikt als voorvertoning voor OpenGraph en de API. 1200x630px aanbevolen - title: Thumbnail Mastodon-server + title: Thumbnail Mastodonserver timeline_preview: desc_html: Toon de openbare tijdlijn op de startpagina title: Voorbeeld tijdlijn @@ -338,9 +338,12 @@ nl: body: "%{reporter} heeft %{target} gerapporteerd" subject: Nieuwe toots gerapporteerd op %{instance} (#%{id}) application_mailer: + notification_preferences: E-mailvoorkeuren wijzigen salutation: "%{name}," settings: 'E-mailvoorkeuren wijzigen: %{link}' view: 'Bekijk:' + view_profile: Profiel bekijken + view_status: Status bekijken applications: created: Aanmaken toepassing geslaagd destroyed: Verwijderen toepassing geslaagd @@ -417,7 +420,7 @@ nl: storage: Mediaopslag followers: domain: Domein - explanation_html: Wanneer je de privacy van jouw toots wilt garanderen, moet je goed weten wie jouw volgers zijn. Toots die alleen aan jouw volgers zijn gericht, worden aan de Mastodon-servers van jouw volgers afgeleverd. Daarom wil je ze misschien controleren en desnoods volgers verwijderen die zich op een Mastodon-server bevinden die jij niet vertrouwd. Bijvoorbeeld omdat de beheerder(s) of de software van zo'n server jouw privacy niet respecteert. + explanation_html: Wanneer je de privacy van jouw toots wilt garanderen, moet je goed weten wie jouw volgers zijn. Toots die alleen aan jouw volgers zijn gericht, worden aan de Mastodonservers van jouw volgers afgeleverd. Daarom wil je ze misschien controleren en desnoods volgers verwijderen die zich op een Mastodonserver bevinden die jij niet vertrouwd. Bijvoorbeeld omdat de beheerder(s) of de software van zo'n server jouw privacy niet respecteert. followers_count: Aantal volgers lock_link: Maak jouw account besloten purge: Volgers verwijderen @@ -458,7 +461,7 @@ nl: one: 1 keer other: "%{count} keer" max_uses_prompt: Onbeperkt - prompt: Genereer en deel speciale links om mensen toegang tot deze Mastodon-server te geven + prompt: Genereer en deel speciale links om mensen toegang tot deze Mastodonserver te geven table: expires_at: Verloopt op uses: Aantal keer te gebruiken @@ -481,6 +484,7 @@ nl: title: Moderatie notification_mailer: digest: + action: Alle meldingen bekijken body: Hier is een korte samenvatting van de berichten die je sinds jouw laatste bezoek op %{since} hebt gemist mention: "%{name} vermeldde jou in:" new_followers_summary: @@ -489,21 +493,29 @@ nl: subject: one: "1 nieuwe melding sinds jouw laatste bezoek \U0001F418" other: "%{count} nieuwe meldingen sinds jouw laatste bezoek \U0001F418" + title: Tijdens jouw afwezigheid… favourite: body: 'Jouw toot werd door %{name} als favoriet gemarkeerd:' subject: "%{name} markeerde jouw toot als favoriet" + title: Nieuwe favoriet follow: body: "%{name} volgt jou nu!" subject: "%{name} volgt jou nu" + title: Nieuwe volger follow_request: + action: Volgverzoeken beheren body: "%{name} wil jou graag volgen" subject: 'Volgen in afwachting: %{name}' + title: Nieuw volgverzoek mention: + action: Reageren body: 'Jij bent door %{name} vermeld in:' subject: Jij bent vermeld door %{name} + title: Nieuwe vermelding reblog: body: 'Jouw toot werd door %{name} geboost:' subject: "%{name} boostte jouw toot" + title: Nieuwe boost number: human: decimal_units: @@ -551,12 +563,14 @@ nl: blackberry: Blackberry chrome: Chrome edge: Microsoft Edge + electron: Electron firefox: Firefox generic: Onbekende webbrowser ie: Internet Explorer micro_messenger: MicroMessenger nokia: Nokia S40 Ovi Browser opera: Opera + otter: Otter phantom_js: PhantomJS qq: QQ Browser safari: Safari @@ -708,6 +722,16 @@ nl: recovery_instructions_html: Wanneer je ooit de toegang verliest tot jouw telefoon, kan je met behulp van een van de herstelcodes hieronder opnieuw toegang krijgen tot jouw account. Zorg ervoor dat je de herstelcodes op een veilige plek bewaard. Je kunt ze bijvoorbeeld printen en ze samen met andere belangrijke documenten bewaren. setup: Instellen wrong_code: De ingevoerde code is ongeldig! Klopt de systeemtijd van de server en die van jouw apparaat? + user_mailer: + welcome: + edit_profile_action: Profiel instellen + edit_profile_step: Je kunt jouw profiel aanpassen door een avatar (profielfoto) en omslagfoto te uploaden, jouw weergavenaam in te stellen en iets over jezelf te vertellen. Wanneer je nieuwe volgers eerst wilt goedkeuren, kun je jouw account besloten maken. + explanation: Hier zijn enkele tips om je op weg te helpen + final_action: Begin berichten te plaatsen + final_step: 'Begin berichten te plaatsen! Zelfs zonder volgers kunnen jouw openbare berichten door anderen gezien worden, bijvoorbeeld op de lokale tijdlijn en via hashtags. Je wilt jezelf misschien introduceren met de hashtag #introductions.' + full_handle: Jouw volledige Mastodonadres + full_handle_hint: Dit geef je aan jouw vrienden, zodat ze jouw berichten kunnen sturen of (vanaf een andere Mastodonserver) kunnen volgen. + review_preferences_action: Instellingen veranderen users: invalid_email: E-mailadres is ongeldig invalid_otp_token: Ongeldige tweestaps-aanmeldcode diff --git a/config/locales/oc.yml b/config/locales/oc.yml index beb5d1f87d..f517e64ef9 100644 --- a/config/locales/oc.yml +++ b/config/locales/oc.yml @@ -159,7 +159,7 @@ oc: unsuspend_account: "%{name} restabliguèt lo compte a %{target}" update_custom_emoji: "%{name} metèt a jorn l’emoji %{target}" update_status: "%{name} metèt a jorn l’estatut a %{target}" - title: Audit log + title: Audit dels jornals custom_emojis: by_domain: Domeni copied_msg: Còpia locala de l’emoji ben creada @@ -167,7 +167,7 @@ oc: copy_failed_msg: Fracàs de la còpia locala de l’emoji created_msg: Emoji ben creat ! delete: Suprimir - destroyed_msg: Emojo ben suprimit ! + destroyed_msg: Emoji ben suprimit ! disable: Desactivar disabled_msg: Aqueste emoji es ben desactivat emoji: Emoji @@ -282,13 +282,13 @@ oc: desc_html: Afichat sus las pagina d’acuèlh quand las inscripcions son tampadas.
Podètz utilizar de balisas HTML title: Messatge de barradura de las inscripcions deletion: - desc_html: Autorizar lo monde a suprimir lor compte + desc_html: Autorizar lo mond a suprimir lor compte title: Possibilitat de suprimir lo compte min_invite_role: disabled: Degun title: Autorizat amb invitacions open: - desc_html: Autorizar lo monde a se marcar + desc_html: Autorizar lo mond a se marcar title: Inscripcions show_staff_badge: desc_html: Mostrar lo badge Personal sus la pagina de perfil @@ -338,9 +338,12 @@ oc: body: "%{reporter} a senhalat %{target}" subject: Novèl senhalament per %{instance} (#%{id}) application_mailer: + notification_preferences: Cambiar las preferéncias de corrièl salutation: "%{name}," settings: 'Cambiar las preferéncias de corrièl : %{link}' view: 'Veire :' + view_profile: Veire lo perfil + view_status: Veire los estatuts applications: created: Aplicacion ben creada destroyed: Aplication ben suprimida @@ -535,12 +538,12 @@ oc: max_uses: one: 1 persona other: "%{count} personas" - max_uses_prompt: Cap limit + max_uses_prompt: Cap de limit prompt: Generatz e partejatz los ligams per donar accès a aquesta instància table: expires_at: Expirats uses: Usatges - title: Convidar de monde + title: Convidar de mond landing_strip_html: "%{name} utiliza %{link_to_root_path}. Podètz lo/la sègre o interagir amb el o ela s’avètz un compte ont que siasque sul fediverse." landing_strip_signup_html: S’es pas lo cas, podètz vos marcar aquí. lists: @@ -567,21 +570,27 @@ oc: subject: one: "Una nòva notificacion dempuèi vòstra darrièra visita \U0001F418" other: "%{count} nòvas notificacions dempuèi vòstra darrièra visita \U0001F418" + title: Pendent vòstra abséncia… favourite: body: "%{name} a mes vòstre estatut en favorit :" subject: "%{name} a mes vòstre estatut en favorit" + title: Novèl apondut als favorits follow: body: "%{name} vos sèc ara !" subject: "%{name} vos sèc ara" + title: Nòu seguidor follow_request: body: "%{name} a demandat a vos sègre" subject: 'Demanda d’abonament : %{name}' + title: Novèla demanda d’abonament mention: body: "%{name} vos a mencionat dins :" subject: "%{name} vos a mencionat" + title: Novèla mencion reblog: body: "%{name} a tornat partejar vòstre estatut :" subject: "%{name} a tornat partejar vòstre estatut" + title: Novèl partatge number: human: decimal_units: @@ -629,12 +638,14 @@ oc: blackberry: Blackberry chrome: Chrome edge: Microsoft Edge + electron: Electron firefox: Firefox generic: Navigator desconegut ie: Internet Explorer micro_messenger: MicroMessenger nokia: Nokia S40 Ovi Browser opera: Opera + otter: Otter phantom_js: PhantomJS qq: QQ Browser safari: Safari @@ -786,6 +797,25 @@ oc: recovery_instructions_html: Se vos arriba de perdre vòstre mobil, podètz utilizar un dels còdis de recuperacion cai-jos per poder tornar accedir a vòstre compte. Gardatz los còdis en seguretat, per exemple, imprimissètz los e gardatz los amb vòstres documents importants. setup: Paramètres wrong_code: Lo còdi picat es invalid ! L’ora es la bona sul servidor e lo mobil ? + user_mailer: + welcome: + edit_profile_action: Configuracion del perfil + edit_profile_step: Podètz personalizar lo perfil en mandar un avatard, cambiar l’escais-nom e mai. Se volètz repassar las demandas d’abonaments abans que los nòus seguidors pòscan veire vòstre perfil, podètz clavar vòstre compte. + explanation: Vaquí qualques astúcias per vos preparar + final_action: Començar de publicar + final_step: 'Començatz de publicar ! Quitament s’avètz pas de seguidors los autres pòdon veire vòstres messatges publics, per exemple pel flux d’actualitat local e per las etiquetas. Benlèu que volètz vos presentar amb l’etiquetas #introductions.' + full_handle: Vòstre escais-nom complèt + full_handle_hint: Es aquò que vos cal donar a vòstres amics per que pòscan vos escriure o sègre a partir d’una autra instància. + review_preferences_action: Cambiar las preferéncias + review_preferences_step: Pensatz de configurar vòstras preferéncias, tal coma los corrièls que volètz recebrer o lo nivèl de confidencialitat de vòstres tuts per defaut. O se l’animacion vos dòna pas enveja de rendre, podètz activar la lectura automatica dels GIF. + subject: Benvengut a Mastodon + tip_bridge_html: Se venètz de Twitter, podètz trobar vòstres amics sus Mastodon en utilizant l‘aplicacion de Pont. Aquò fonciona pas que s’utilizan lo Pont tanben ! + tip_federated_timeline: Lo flux d’actualitat federat es una vista generala del malhum Mastodon. Mas aquò inclutz solament lo mond que vòstres vesins sègon, doncas es pas complèt. + tip_following: Seguètz l’administrator del servidor per defaut. Per trobar de mond mai interessant, agachatz lo flux d’actualitat local e lo global. + tip_local_timeline: Lo flux d’actualitat local es una vista del mond de %{instance}. Son vòstres vesins dirèctes ! + tip_mobile_webapp: Se vòstre navigator mobil nos permet d’apondre Mastodon a l’ecran d‘acuèlh, podètz recebre de notificacions. Aquò se compòrta coma una aplicacion nativa ! + tips: Astúcias + title: Vos desirem la benvenguda a bòrd %{name} ! users: invalid_email: L’adreça de corrièl es invalida invalid_otp_token: Còdi d’autentificacion en dos temps invalid diff --git a/config/locales/pl.yml b/config/locales/pl.yml index 949099a712..cb5f7da44f 100644 --- a/config/locales/pl.yml +++ b/config/locales/pl.yml @@ -343,6 +343,7 @@ pl: salutation: "%{name}," settings: 'Zmień ustawienia powiadamiania: %{link}' view: 'Zobacz:' + view_profile: Wyświetl profil view_status: Wyświetl wpis applications: created: Pomyślnie utworzono aplikację diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml index c2830b7543..e549865440 100644 --- a/config/locales/pt-BR.yml +++ b/config/locales/pt-BR.yml @@ -338,9 +338,12 @@ pt-BR: body: "%{reporter} denunciou %{target}" subject: Nova denúncia sobre %{instance} (#%{id}) application_mailer: + notification_preferences: Mudar preferências de e-mail salutation: "%{name}," settings: 'Mudar e-mail de preferência: %{link}' view: 'Visualizar:' + view_profile: Ver perfil + view_status: Ver status applications: created: Aplicação criada com sucesso destroyed: Aplicação excluída com sucesso @@ -481,7 +484,8 @@ pt-BR: title: Moderação notification_mailer: digest: - body: 'Aqui está um resumo do que você perdeu no %{instance} desde o seu último acesso em %{since}:' + action: Ver todas as notificações + body: Aqui está um pequeno resumo das mensagens que você perdeu desde o seu último acesso em %{since} mention: "%{name} te mencionou em:" new_followers_summary: one: Você tem um novo seguidor! Yay! @@ -489,21 +493,29 @@ pt-BR: subject: one: "Uma nova notificação desde o seu último acesso \U0001F418" other: "%{count} novas notificações desde o seu último acesso \U0001F418" + title: Enquanto você estava ausente… favourite: body: 'Sua postagem foi favoritada por %{name}:' subject: "%{name} favoritou a sua postagem" + title: Novo favorito follow: body: "%{name} está te seguindo!" subject: "%{name} está te seguindo" + title: Novo seguidor follow_request: + action: Gerenciar pedidos de seguidores body: "%{name} requisitou autorização para te seguir" subject: 'Seguidor pendente: %{name}' + title: Nova solicitação de seguidor mention: + action: Responder body: 'Você foi mencionado por %{name} em:' subject: Você foi mencionado por %{name} + title: Nova menção reblog: body: 'Sua postagem foi compartilhada por %{name}:' subject: "%{name} compartilhou a sua postagem" + title: Novo compartilhamento number: human: decimal_units: @@ -551,12 +563,14 @@ pt-BR: blackberry: Blackberry chrome: Chrome edge: Microsoft Edge + electron: Electron firefox: Firefox generic: Navegador desconhecido ie: Internet Explorer micro_messenger: MicroMessenger nokia: Navegador Nokia S40 Ovi opera: Opera + otter: Otter phantom_js: PhantomJS qq: QQ Browser safari: Safari @@ -708,6 +722,25 @@ pt-BR: recovery_instructions_html: Se você perder acesso ao seu celular, você pode usar um dos códigos de recuperação abaixo para reganhar acesso à sua conta. Mantenha os códigos de recuperação em um local seguro. Por exemplo, você pode imprimi-los e guardá-los com outros documentos importantes. setup: Configurar wrong_code: O código inserido é invalido! O horário do servidor e o horário do seu aparelho estão corretos? + user_mailer: + welcome: + edit_profile_action: Configurar perfil + edit_profile_step: Você pode customizar o seu perfil enviando um avatar, uma imagem de topo, mudando seu nome de exibição, dentre outros. Se você gostaria de aprovar novos seguidores antes que eles possam seguir você, você pode trancar a sua conta. + explanation: Aqui estão algumas dicas para te ajudar a começar + final_action: Comece a postar + final_step: 'Comece a postar! Mesmo sem seguidores, suas mensagens públicas podem ser vistas por outros, por exemplo nas timelines locais e buscando hashtags. Você pode querer fazer uma introdução usando a hashtag #introduções, ou em inglês usando a hashtag #introductions.' + full_handle: Seu nome de usuário completo + full_handle_hint: Isso é o que você diz aos seus amigos para que eles possam te mandar mensagens ou te seguir a partir de outra instância. + review_preferences_action: Mudar as preferências + review_preferences_step: Não se esqueça de configurar suas preferências, como quais e-mails você gostaria de receber, que nível de privacidade você gostaria que seus posts tenham por padrão. Se você não sofre de enjôo com movimento, você pode habilitar GIFs animando automaticamente. + subject: Boas-vindas ao Mastodon + tip_bridge_html: Se você está vindo do Twitter, você pode encontrar pessoas amigas que estão no Mastodon usando app de associação. Mas só funciona se as pessoas também estiverem usando o app! + tip_federated_timeline: A timeline global é uma visão contínua da rede do Mastodon. Mas ela só inclui pessoas que outras pessoas da sua instância estão seguindo, então não é a rede completa. + tip_following: Você vai seguir administradores da sua instância por padrão. Para encontrar mais gente interessante, confira as timelines local e global. + tip_local_timeline: A timeline local é uma visão contínua das pessoas que estão em %{instance}. Esses são seus vizinhos próximos! + tip_mobile_webapp: Se o seu navegador móvel oferecer a opção de adicionar Mastodon à tela inicial, você pode receber notificações push. Vai funcionar quase como um aplicativo nativo! + tips: Dicas + title: Boas-vindas à bordo, %{name}! users: invalid_email: O endereço de e-mail é inválido invalid_otp_token: Código de autenticação inválido diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml index d7e5601f26..2e51cf6913 100644 --- a/config/locales/simple_form.gl.yml +++ b/config/locales/simple_form.gl.yml @@ -4,7 +4,7 @@ gl: hints: defaults: avatar: PNG, GIF ou JPG. Como moito 2MB. Será reducida ate 120x120px - digest: Enviar despois de un período longo de inactividade con un resumo das mencións que recibeu na súa ausencia + digest: Enviar só tras un longo período de inactividade e só si recibeu algunha mensaxe personal na súa ausencia display_name: one: 1 caracter restante other: %{count} caracteres restantes diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml index 17b9647a45..cd36fd44fd 100644 --- a/config/locales/simple_form.nl.yml +++ b/config/locales/simple_form.nl.yml @@ -16,7 +16,7 @@ nl: setting_noindex: Heeft invloed op jouw openbare profiel en toots setting_theme: Heeft invloed op hoe de webapp van Mastodon eruitziet (op elk apparaat waarmee je inlogt). imports: - data: CSV-bestand dat op een andere Mastodon-server werd geëxporteerd + data: CSV-bestand dat op een andere Mastodonserver werd geëxporteerd sessions: otp: Voer de tweestaps-aanmeldcode vanaf jouw mobiele telefoon in of gebruik een van jouw herstelcode's. user: diff --git a/config/locales/simple_form.oc.yml b/config/locales/simple_form.oc.yml index 06c23ace2c..aa26d036d4 100644 --- a/config/locales/simple_form.oc.yml +++ b/config/locales/simple_form.oc.yml @@ -4,7 +4,7 @@ oc: hints: defaults: avatar: PNG, GIF o JPG. Maximum 2 Mo. Serà retalhat en 120x120px - digest: Enviat aprèp un long moment d’inactivitat amb un resumit de las mencions qu’avètz recebudas pendent vòstra abséncia + digest: Solament enviat aprèp un long moment d’inactivitat e solament s’avètz recebut de messatges personals pendent vòstra abséncia display_name: one: Demòra encara 1 caractèr other: Demòran encara %{count} caractèrs diff --git a/config/webpack/configuration.js b/config/webpack/configuration.js index c58d8028e3..a38d9d11de 100644 --- a/config/webpack/configuration.js +++ b/config/webpack/configuration.js @@ -73,7 +73,7 @@ function formatPublicPath(host = '', path = '') { const output = { path: resolve('public', settings.public_output_path), - publicPath: formatPublicPath(env.ASSET_HOST || env.WEB_DOMAIN || env.LOCAL_DOMAIN, settings.public_output_path), + publicPath: formatPublicPath(env.ASSET_HOST, settings.public_output_path), }; module.exports = { diff --git a/docker-compose.yml b/docker-compose.yml index f280d4ecc9..cfe70c5e8f 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -53,4 +53,5 @@ services: - db - redis volumes: + - ./public/packs:/mastodon/public/packs - ./public/system:/mastodon/public/system diff --git a/lib/mastodon/premailer_webpack_strategy.rb b/lib/mastodon/premailer_webpack_strategy.rb index 84d83cc660..3382ef3b4c 100644 --- a/lib/mastodon/premailer_webpack_strategy.rb +++ b/lib/mastodon/premailer_webpack_strategy.rb @@ -2,16 +2,21 @@ module PremailerWebpackStrategy def load(url) - public_path_host = ENV['ASSET_HOST'] || ENV['LOCAL_DOMAIN'] - url = url.gsub(/\A\/\/#{public_path_host}/, '') + asset_host = ENV['ASSET_HOST'] || ENV['WEB_DOMAIN'] || ENV['LOCAL_DOMAIN'] if Webpacker.dev_server.running? - url = File.join("#{Webpacker.dev_server.protocol}://#{Webpacker.dev_server.host_with_port}", url) - HTTP.get(url).to_s - else - url = url[1..-1] if url.start_with?('/') - File.read(Rails.root.join('public', url)) + asset_host = "#{Webpacker.dev_server.protocol}://#{Webpacker.dev_server.host_with_port}" + url = File.join(asset_host, url) end + + css = if url.start_with?('http') + HTTP.get(url).to_s + else + url = url[1..-1] if url.start_with?('/') + File.read(Rails.root.join('public', url)) + end + + css.gsub(/url\(\//, "url(#{asset_host}/") end module_function :load diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb index 098ab46ac7..dba09a0700 100644 --- a/lib/mastodon/version.rb +++ b/lib/mastodon/version.rb @@ -21,7 +21,7 @@ module Mastodon end def flags - 'rc1' + 'rc2' end def to_a diff --git a/spec/controllers/authorize_follows_controller_spec.rb b/spec/controllers/authorize_follows_controller_spec.rb index 26e46a23c2..b1cbef7ea9 100644 --- a/spec/controllers/authorize_follows_controller_spec.rb +++ b/spec/controllers/authorize_follows_controller_spec.rb @@ -30,7 +30,7 @@ describe AuthorizeFollowsController do it 'renders error when account cant be found' do service = double - allow(ResolveRemoteAccountService).to receive(:new).and_return(service) + allow(ResolveAccountService).to receive(:new).and_return(service) allow(service).to receive(:call).with('missing@hostname').and_return(nil) get :show, params: { acct: 'acct:missing@hostname' } @@ -54,7 +54,7 @@ describe AuthorizeFollowsController do it 'sets account from acct uri' do account = Account.new service = double - allow(ResolveRemoteAccountService).to receive(:new).and_return(service) + allow(ResolveAccountService).to receive(:new).and_return(service) allow(service).to receive(:call).with('found@hostname').and_return(account) get :show, params: { acct: 'acct:found@hostname' } diff --git a/spec/controllers/settings/imports_controller_spec.rb b/spec/controllers/settings/imports_controller_spec.rb index 4810be7015..59b10e0da2 100644 --- a/spec/controllers/settings/imports_controller_spec.rb +++ b/spec/controllers/settings/imports_controller_spec.rb @@ -17,7 +17,7 @@ RSpec.describe Settings::ImportsController, type: :controller do describe 'POST #create' do it 'redirects to settings path with successful following import' do service = double(call: nil) - allow(ResolveRemoteAccountService).to receive(:new).and_return(service) + allow(ResolveAccountService).to receive(:new).and_return(service) post :create, params: { import: { type: 'following', @@ -30,7 +30,7 @@ RSpec.describe Settings::ImportsController, type: :controller do it 'redirects to settings path with successful blocking import' do service = double(call: nil) - allow(ResolveRemoteAccountService).to receive(:new).and_return(service) + allow(ResolveAccountService).to receive(:new).and_return(service) post :create, params: { import: { type: 'blocking', diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb index 7501c498ce..3ac7208edb 100644 --- a/spec/models/account_spec.rb +++ b/spec/models/account_spec.rb @@ -185,8 +185,8 @@ RSpec.describe Account, type: :model do expect(account.refresh!).to be_nil end - it 'calls not ResolveRemoteAccountService#call' do - expect_any_instance_of(ResolveRemoteAccountService).not_to receive(:call).with(acct) + it 'calls not ResolveAccountService#call' do + expect_any_instance_of(ResolveAccountService).not_to receive(:call).with(acct) account.refresh! end end @@ -194,8 +194,8 @@ RSpec.describe Account, type: :model do context 'domain is present' do let(:domain) { 'example.com' } - it 'calls ResolveRemoteAccountService#call' do - expect_any_instance_of(ResolveRemoteAccountService).to receive(:call).with(acct).once + it 'calls ResolveAccountService#call' do + expect_any_instance_of(ResolveAccountService).to receive(:call).with(acct).once account.refresh! end end diff --git a/spec/services/account_search_service_spec.rb b/spec/services/account_search_service_spec.rb index 4685e619f8..9bb27edad8 100644 --- a/spec/services/account_search_service_spec.rb +++ b/spec/services/account_search_service_spec.rb @@ -123,7 +123,7 @@ describe AccountSearchService do describe 'when there is a domain but no exact match' do it 'follows the remote account when resolve is true' do service = double(call: nil) - allow(ResolveRemoteAccountService).to receive(:new).and_return(service) + allow(ResolveAccountService).to receive(:new).and_return(service) results = subject.call('newuser@remote.com', 10, nil, resolve: true) expect(service).to have_received(:call).with('newuser@remote.com') @@ -131,7 +131,7 @@ describe AccountSearchService do it 'does not follow the remote account when resolve is false' do service = double(call: nil) - allow(ResolveRemoteAccountService).to receive(:new).and_return(service) + allow(ResolveAccountService).to receive(:new).and_return(service) results = subject.call('newuser@remote.com', 10, nil, resolve: false) expect(service).not_to have_received(:call) diff --git a/spec/services/resolve_remote_account_service_spec.rb b/spec/services/resolve_account_service_spec.rb similarity index 99% rename from spec/services/resolve_remote_account_service_spec.rb rename to spec/services/resolve_account_service_spec.rb index d0bb6a1373..5f1b4467b6 100644 --- a/spec/services/resolve_remote_account_service_spec.rb +++ b/spec/services/resolve_account_service_spec.rb @@ -1,6 +1,6 @@ require 'rails_helper' -RSpec.describe ResolveRemoteAccountService do +RSpec.describe ResolveAccountService do subject { described_class.new } before do diff --git a/spec/services/fetch_remote_resource_service_spec.rb b/spec/services/resolve_url_service_spec.rb similarity index 97% rename from spec/services/fetch_remote_resource_service_spec.rb rename to spec/services/resolve_url_service_spec.rb index b80fb24750..1e9be4c07a 100644 --- a/spec/services/fetch_remote_resource_service_spec.rb +++ b/spec/services/resolve_url_service_spec.rb @@ -2,7 +2,7 @@ require 'rails_helper' -describe FetchRemoteResourceService do +describe ResolveURLService do subject { described_class.new } describe '#call' do diff --git a/spec/services/search_service_spec.rb b/spec/services/search_service_spec.rb index 3ffcc389b1..957b60c7dd 100644 --- a/spec/services/search_service_spec.rb +++ b/spec/services/search_service_spec.rb @@ -26,7 +26,7 @@ describe SearchService do context 'that does not find anything' do it 'returns the empty results' do service = double(call: nil) - allow(FetchRemoteResourceService).to receive(:new).and_return(service) + allow(ResolveURLService).to receive(:new).and_return(service) results = subject.call(@query, 10) expect(service).to have_received(:call).with(@query) @@ -38,7 +38,7 @@ describe SearchService do it 'includes the account in the results' do account = Account.new service = double(call: account) - allow(FetchRemoteResourceService).to receive(:new).and_return(service) + allow(ResolveURLService).to receive(:new).and_return(service) results = subject.call(@query, 10) expect(service).to have_received(:call).with(@query) @@ -50,7 +50,7 @@ describe SearchService do it 'includes the status in the results' do status = Status.new service = double(call: status) - allow(FetchRemoteResourceService).to receive(:new).and_return(service) + allow(ResolveURLService).to receive(:new).and_return(service) results = subject.call(@query, 10) expect(service).to have_received(:call).with(@query)