Merge remote-tracking branch 'tootsuite/master' into glitchsoc/master

th-downstream
Jenkins 7 years ago
commit 3cd4a0804b

@ -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'

@ -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)

@ -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?

@ -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?

@ -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)

@ -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

@ -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();
});
});

Binary file not shown.

Before

Width:  |  Height:  |  Size: 754 B

After

Width:  |  Height:  |  Size: 582 B

@ -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);
}

@ -21,13 +21,13 @@ describe('<Column />', () => {
<div className='scrollable' />
</Column>
);
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(<Column heading='notifications' />);
wrapper.find(ColumnHeader).simulate('click');
wrapper.find(ColumnHeader).find('button').simulate('click');
expect(global.requestAnimationFrame.mock.calls.length).toEqual(0);
});
});

@ -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 = <i className={`fa fa-fw fa-${this.props.icon} column-header__icon`} />;
if (icon) {
iconElement = <i className={`fa fa-fw fa-${icon} column-header__icon`} />;
}
return (
<div role='button heading' tabIndex='0' className={`column-header ${active ? 'active' : ''}`} onClick={this.handleClick} id={columnHeaderId || null}>
{icon}
{type}
</div>
<h1 className={classNames('column-header', { active })} id={columnHeaderId || null}>
<button onClick={this.handleClick}>
{iconElement}
{type}
</button>
</h1>
);
}

@ -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": "الآن",

@ -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",

@ -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",

@ -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",

@ -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.",

@ -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",

@ -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",

@ -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",

@ -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": "الان",

@ -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",

@ -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 nest pas {locked}. Tout le monde peut vous suivre et voir vos pouets privés.",
"compose_form.lock_disclaimer.lock": "verrouillé",
"compose_form.placeholder": "Quavez-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 ny a encore aucun contenu associé à ce hashtag",
"empty_column.hashtag": "Il ny 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 à dautres 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 navez pas encore de notification. Interagissez avec dautres utilisateur⋅ice⋅s pour débuter la conversation.",
"empty_column.public": "Il ny a rien ici! Écrivez quelque chose publiquement, ou bien suivez manuellement des utilisateur⋅ice⋅s dautres instances pour remplir le fil public.",
"empty_column.public": "Il ny a rien ici! Écrivez quelque chose publiquement, ou bien suivez manuellement des utilisateur⋅ice·s dautres 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": "LAccueil affiche les posts de tou⋅te⋅s les utilisateur⋅ice⋅s que vous suivez",
"onboarding.page_four.notifications": "Les Notifications vous informent lorsque quelquun interagit avec vous",
"onboarding.page_four.home": "LAccueil affiche les posts de tou⋅te·s les utilisateur⋅ice·s que vous suivez.",
"onboarding.page_four.notifications": "Les Notifications vous informent lorsque quelquun 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 dutilisateur⋅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": "Ladministrateur⋅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": "Sil vous plaît, noubliez 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": "à linstant",
@ -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",

@ -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",

@ -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": "כרגע",

@ -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",

@ -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",

@ -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": "Միացնել ձայնը"
}
}

@ -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",

@ -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",

@ -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",

@ -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": "今",

@ -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": "방금",

@ -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",

@ -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",

@ -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 daqueste 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 demoji!(╯°□°)╯︵ ┻━┻",
"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 lautor",
"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 lautor",
"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 daquesta persona?",
"navigation_bar.blocks": "Personas blocadas",
"navigation_bar.community_timeline": "Flux public local",
@ -174,7 +175,8 @@
"onboarding.page_four.home": "Lo flux dacuèlh mòstra los estatuts del mond que seguètz.",
"onboarding.page_four.notifications": "La colomna de notificacions vos fa veire quand qualquun 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 dinstà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 duna 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 duna 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 dacuè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",

@ -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",

@ -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",

@ -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",

@ -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": "только что",

@ -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",

@ -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",

@ -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": "сада",

@ -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",

@ -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",

@ -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",

@ -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",

@ -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",

@ -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",

@ -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;
}

@ -165,7 +165,7 @@ class Account < ApplicationRecord
def refresh!
return if local?
ResolveRemoteAccountService.new.call(acct)
ResolveAccountService.new.call(acct)
end
def unsuspend!

@ -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

@ -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

@ -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

@ -18,6 +18,6 @@ module AuthorExtractor
acct = "#{username}@#{domain}"
end
ResolveRemoteAccountService.new.call(acct, update_profile)
ResolveAccountService.new.call(acct, update_profile)
end
end

@ -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)

@ -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

@ -1,6 +1,6 @@
# frozen_string_literal: true
class ResolveRemoteAccountService < BaseService
class ResolveAccountService < BaseService
include OStatus2::MagicKey
include JsonLdHelper

@ -1,6 +1,6 @@
# frozen_string_literal: true
class FetchRemoteResourceService < BaseService
class ResolveURLService < BaseService
include JsonLdHelper
attr_reader :url

@ -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

@ -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

@ -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')

@ -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?

@ -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

@ -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. <strong>Cal mantenir els codis de recuperació en lloc segur</strong>. 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ó <a href="%{bridge_url}"> bridge </a>. 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

@ -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 dindé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 dindésirables.
failure:
already_authenticated: Vous êtes déjà connecté⋅e
already_authenticated: Vous êtes déjà connecté⋅e.
inactive: Votre compte nest 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 <a href="%{terms_path}"> 1les règles de l'instance</a> 2 et <a href="%{policy_path}">3nos termes de service</a> 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 dutiliser lURL 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 dindé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 dindé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 dindé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 dindé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 den faire une nouvelle demande
not_found: na pas été trouvé⋅e

@ -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 <a href="%{terms_path}">as normas da instancia</a> e <a href="%{policy_path}">os termos do servizo</a>.
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:

@ -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 ladreça de corrièl
explanation: Venètz de crear un compte sus %{host} amb aquesta adreça de corrièl. Vos manca pas quun clic per lactivar. Sèra pas vosautre mercés de far pas cas a aqueste messatge.
extra_html: Pensatz tanben de gaitar <a href="%{terms_path}">las règlas de linstància</a> e <a href="%{policy_path}">nòstres tèrmes e condicions dutilizacion</a>.
subject: 'Mastodon: consignas de confirmacion per %{instance}'
title: Verificatz ladreça de corrièl
email_changed:
explanation: 'Ladreça per aqueste compte es ara:'
extra: Savètz pas demandat aqueste cambiament dadreça, poiriá arribar que qualquun mai aguèsse agut accès a vòstre compte. Mercés de cambiar sulpic vòstre senhal o de contactar vòstre administrator dinstància se laccè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: Savètz pas demandat aqueste cambiament de senhal, poiriá arribar que qualquun mai aguèsse agut accès a vòstre compte. Mercés de cambiar sulpic vòstre senhal o de contactar vòstre administrator dinstància se laccès a vòstre compte vos es barrat.
subject: Mastodon:senhal cambiat
title: Senhal cambiat
reconfirmation_instructions:
subject: 'Mastodon: Confirmatz ladreça per %{instance}'
explanation: Confirmar la nòva adreça per cambiar lo corrièl.
extra: Savè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 ladreça per %{instance}'
title: Verificatz ladreç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: Savè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 dun corriel de reïnicializacion de senhal. Ses lo cas, mercés de verificar quavètz ben utilizat lURL 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:

@ -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 <a href="%{terms_path}">as regras da instância</a> e <a href="%{policy_path}">nossos termos de serviço</a>.
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:

@ -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 dutilisateur·ice par des virgules. Ne fonctionne quavec 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 dutilisateur⋅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 daccueil lorsque les inscriptions sont fermées<br>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é⋅es! 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 cette utilisateur⋅rice
acct: Entrez votre pseudo@instance depuis lequel vous voulez suivre cet·te utilisateur⋅ice
missing_resource: LURL de redirection na 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 laccès à votre téléphone, vous pouvez utiliser un des codes de récupération ci-dessous pour retrouver laccès à votre compte. <strong>Conservez les codes de récupération en sécurité</strong>. Par exemple, en les imprimant et en les stockant avec vos autres documents importants.
setup: Installer
wrong_code: Les codes entrés sont incorrects! Lheure 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 <a href="%{bridge_url}"> 1bridge app</a> 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: Ladresse courriel est invalide
invalid_otp_token: Le code dauthentification à deux facteurs est invalide

@ -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. <strong>Garde os códigos en lugar seguro</strong>. 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 <a href="%{bridge_url}">aplicativo ponte</a>. 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

@ -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: 登録すると <a href="%{rules_path}">インスタンスのルール</a> と <a href="%{terms_path}">利用規約</a> に従うことに同意したことになります。
@ -422,7 +422,7 @@ ja:
domain: ドメイン
explanation_html: あなたの投稿のプライバシーを確保したい場合、誰があなたをフォローしているのかを把握している必要があります。 <strong>プライベート投稿は、あなたのフォロワーがいる全てのインスタンスに配信されます</strong>。 フォロワーのインスタンスの管理者やソフトウェアがあなたのプライバシーを尊重してくれるかどうか怪しい場合は、そのフォロワーを削除した方がよいかもしれません。
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:
<p>オリジナルの出典 <a href="https://github.com/discourse/discourse">Discourse privacy policy</a>.</p>
title: "%{instance} 利用規約・プライバシーポリシー"
themes:
default: Mastodon
time:
formats:
default: "%Y年%m月%d日 %H:%M"
@ -730,6 +734,25 @@ ja:
recovery_instructions_html: 携帯電話を紛失した場合、以下の内どれかのリカバリーコードを使用してアカウントへアクセスすることができます。<strong>リカバリーコードは大切に保全してください。</strong>たとえば印刷してほかの重要な書類と一緒に保管することができます。
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 から来られたのであれば、<a href="%{bridge_url}">bridge app</a> を使用することで 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: 二段階認証コードが間違っています

@ -651,6 +651,25 @@ ko:
recovery_instructions_html: 휴대전화를 분실한 경우, 아래 복구 코드 중 하나를 사용해 계정에 접근할 수 있습니다. <strong>복구 코드는 안전하게 보관해 주십시오.</strong> 이 코드를 인쇄해 중요한 서류와 함께 보관하는 것도 좋습니다.
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: 만약 트위터에서 오셨다면 <a href="%{bridge_url}">브리지 앱</a>을 통해 마스토돈에 있는 친구들을 찾을 수 있습니다. 친구들도 이 앱을 사용했을 때만 작동합니다!
tip_federated_timeline: 연합 타임라인은 마스토돈 네트워크의 소방호스입니다. 다만 여기엔 당신의 이웃들이 구독 중인 것만 뜹니다, 모든 것이 다 오는 것은 아니예요.
tip_following: 기본적으로 서버의 관리자를 팔로우 하도록 되어 있습니다. 흥미로운 사람들을 더 찾으려면 로컬과 연합 타임라인을 확인해 보세요.
tip_local_timeline: 로컬 타임라인은 %{instance}의 소방호스입니다. 여기 있는 사람들은 당신의 이웃들이에요!
tip_mobile_webapp: 모바일 브라우저가 홈 스크린에 바로가기를 추가해 줬다면 푸시 알림도 받을 수 있습니다. 이건 거의 네이티브 앱처럼 작동해요!
tips:
title: 환영합니다 %{name} 님!
users:
invalid_email: 메일 주소가 올바르지 않습니다
invalid_otp_token: 2단계 인증 코드가 올바르지 않습니다

@ -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.<br/>Je kan HTML gebruiken, zoals <code>&lt;a&gt;</code> en <code>&lt;em&gt;</code>.
title: Omschrijving Mastodon-server
title: Omschrijving Mastodonserver
site_description_extended:
desc_html: Wordt op de uitgebreide informatiepagina weergegeven<br>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. <strong>Toots die alleen aan jouw volgers zijn gericht, worden aan de Mastodon-servers van jouw volgers afgeleverd.</strong> 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. <strong>Toots die alleen aan jouw volgers zijn gericht, worden aan de Mastodonservers van jouw volgers afgeleverd.</strong> 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. <strong>Zorg ervoor dat je de herstelcodes op een veilige plek bewaard</strong>. 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

@ -159,7 +159,7 @@ oc:
unsuspend_account: "%{name} restabliguèt lo compte a %{target}"
update_custom_emoji: "%{name} metèt a jorn lemoji %{target}"
update_status: "%{name} metèt a jorn lestatut a %{target}"
title: Audit log
title: Audit dels jornals
custom_emojis:
by_domain: Domeni
copied_msg: Còpia locala de lemoji ben creada
@ -167,7 +167,7 @@ oc:
copy_failed_msg: Fracàs de la còpia locala de lemoji
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 dacuèlh quand las inscripcions son tampadas.<br>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: "<strong>%{name}</strong> utiliza %{link_to_root_path}. Podètz lo/la sègre o interagir amb el o ela savètz un compte ont que siasque sul fediverse."
landing_strip_signup_html: Ses pas lo cas, podètz <a href="%{sign_up_path}">vos marcar aquí</a>.
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 dabonament: %{name}'
title: Novèla demanda dabonament
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! Lora 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 lescais-nom e mai. Se volètz repassar las demandas dabonaments 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 savètz pas de seguidors los autres pòdon veire vòstres messatges publics, per exemple pel flux dactualitat local e per las etiquetas. Benlèu que volètz vos presentar amb letiquetas #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 duna 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 lanimacion 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<a href="%{bridge_url}">aplicacion de Pont</a>. Aquò fonciona pas que sutilizan lo Pont tanben!
tip_federated_timeline: Lo flux dactualitat 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 ladministrator del servidor per defaut. Per trobar de mond mai interessant, agachatz lo flux dactualitat local e lo global.
tip_local_timeline: Lo flux dactualitat local es una vista del mond de %{instance}. Son vòstres vesins dirèctes!
tip_mobile_webapp: Se vòstre navigator mobil nos permet dapondre Mastodon a lecran dacuè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: Ladreça de corrièl es invalida
invalid_otp_token: Còdi dautentificacion en dos temps invalid

@ -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ę

@ -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. <strong>Mantenha os códigos de recuperação em um local seguro</strong>. 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 <a href="%{bridge_url}">app de associação</a>. 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

@ -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: <span class="name-counter">1</span> caracter restante
other: <span class="name-counter">%{count}</span> caracteres restantes

@ -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:

@ -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 dinactivitat amb un resumit de las mencions quavètz recebudas pendent vòstra abséncia
digest: Solament enviat aprèp un long moment dinactivitat e solament savètz recebut de messatges personals pendent vòstra abséncia
display_name:
one: Demòra encara <span class="name-counter">1</span> caractèr
other: Demòran encara <span class="name-counter">%{count}</span> caractèrs

@ -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 = {

@ -53,4 +53,5 @@ services:
- db
- redis
volumes:
- ./public/packs:/mastodon/public/packs
- ./public/system:/mastodon/public/system

@ -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

@ -21,7 +21,7 @@ module Mastodon
end
def flags
'rc1'
'rc2'
end
def to_a

@ -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' }

@ -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',

@ -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

@ -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)

@ -1,6 +1,6 @@
require 'rails_helper'
RSpec.describe ResolveRemoteAccountService do
RSpec.describe ResolveAccountService do
subject { described_class.new }
before do

@ -2,7 +2,7 @@
require 'rails_helper'
describe FetchRemoteResourceService do
describe ResolveURLService do
subject { described_class.new }
describe '#call' do

@ -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)

Loading…
Cancel
Save