Merge branch 'main' into glitch-soc/merge-upstream

Conflicts:
- `Gemfile.lock`:
  Not a real conflict, just an upstream dependency udpated
  textually too close to a glitch-soc-only dependency.
  Updated dependencies like upstream.
- `app/controllers/settings/preferences_controller.rb`:
  Upstream added settings where we had extra glitch-soc-specific settings.
  Added upstream's new settings.
- `app/models/user.rb`:
  Upstream added settings where we had extra glitch-soc-specific settings.
  Added upstream's new settings.
- `config/i18n-tasks.yml`:
  Not a real conflict, just a new upstream line too textually close to
  a glitch-soc-only line.
  Ported upstream's change.
main
Claire 3 years ago
commit ff73d43b35

@ -40,7 +40,7 @@ end
gem 'net-ldap', '~> 0.17'
gem 'omniauth-cas', '~> 2.0'
gem 'omniauth-saml', '~> 1.10'
gem 'gitlab-omniauth-openid-connect', '~>0.5.0', require: 'omniauth_openid_connect'
gem 'gitlab-omniauth-openid-connect', '~>0.9.1', require: 'omniauth_openid_connect'
gem 'omniauth', '~> 1.9'
gem 'omniauth-rails_csrf_protection', '~> 0.1'
@ -101,9 +101,9 @@ gem 'rdf-normalize', '~> 0.5'
gem 'redcarpet', '~> 3.5'
group :development, :test do
gem 'fabrication', '~> 2.27'
gem 'fabrication', '~> 2.28'
gem 'fuubar', '~> 2.5'
gem 'i18n-tasks', '~> 0.9', require: false
gem 'i18n-tasks', '~> 1.0', require: false
gem 'pry-byebug', '~> 3.9'
gem 'pry-rails', '~> 0.3'
gem 'rspec-rails', '~> 5.1'
@ -148,7 +148,7 @@ group :development do
end
group :production do
gem 'lograge', '~> 0.11'
gem 'lograge', '~> 0.12'
end
gem 'concurrent-ruby', require: false

@ -101,6 +101,14 @@ GEM
coderay (>= 1.0.0)
erubi (>= 1.0.0)
rack (>= 0.9.0)
better_html (1.0.16)
actionview (>= 4.0)
activesupport (>= 4.0)
ast (~> 2.0)
erubi (~> 1.4)
html_tokenizer (~> 0.0.6)
parser (>= 2.4)
smart_properties
bindata (2.4.10)
binding_of_caller (1.0.0)
debug_inspector (>= 0.0.1)
@ -211,7 +219,7 @@ GEM
et-orbi (1.2.6)
tzinfo
excon (0.76.0)
fabrication (2.27.0)
fabrication (2.28.0)
faker (2.20.0)
i18n (>= 1.8.11, < 2)
faraday (1.9.3)
@ -262,7 +270,7 @@ GEM
fuubar (2.5.1)
rspec-core (~> 3.0)
ruby-progressbar (~> 1.4)
gitlab-omniauth-openid-connect (0.5.0)
gitlab-omniauth-openid-connect (0.9.1)
addressable (~> 2.7)
omniauth (~> 1.9)
openid_connect (~> 1.2)
@ -278,12 +286,13 @@ GEM
hamlit (>= 1.2.0)
railties (>= 4.0.1)
hashdiff (1.0.1)
hashie (4.1.0)
hashie (5.0.0)
hcaptcha (7.1.0)
json
highline (2.0.3)
hiredis (0.6.3)
hkdf (0.3.0)
html_tokenizer (0.0.7)
htmlentities (4.3.4)
http (5.0.4)
addressable (~> 2.8)
@ -300,9 +309,10 @@ GEM
rainbow (>= 2.0.0)
i18n (1.10.0)
concurrent-ruby (~> 1.0)
i18n-tasks (0.9.37)
i18n-tasks (1.0.8)
activesupport (>= 4.0.2)
ast (>= 2.1.0)
better_html (~> 1.0)
erubi
highline (>= 2.0.0)
i18n
@ -362,12 +372,12 @@ GEM
llhttp-ffi (0.4.0)
ffi-compiler (~> 1.0)
rake (~> 13.0)
lograge (0.11.2)
lograge (0.12.0)
actionpack (>= 4)
activesupport (>= 4)
railties (>= 4)
request_store (~> 1.0)
loofah (2.15.0)
loofah (2.16.0)
crass (~> 1.0.2)
nokogiri (>= 1.5.9)
mail (2.7.1)
@ -419,7 +429,7 @@ GEM
omniauth-saml (1.10.3)
omniauth (~> 1.3, >= 1.3.2)
ruby-saml (~> 1.9)
openid_connect (1.2.0)
openid_connect (1.3.0)
activemodel
attr_required (>= 1.0.0)
json-jwt (>= 1.5.0)
@ -472,7 +482,7 @@ GEM
rack (>= 1.0, < 3)
rack-cors (1.1.1)
rack (>= 2.0.0)
rack-oauth2 (1.16.0)
rack-oauth2 (1.19.0)
activesupport
attr_required
httpclient
@ -528,7 +538,7 @@ GEM
redis-namespace (1.8.2)
redis (>= 3.0.4)
regexp_parser (2.2.1)
request_store (1.5.0)
request_store (1.5.1)
rack (>= 1.4)
responders (3.0.1)
actionpack (>= 5.0)
@ -623,6 +633,7 @@ GEM
simplecov_json_formatter (~> 0.1)
simplecov-html (0.12.3)
simplecov_json_formatter (0.1.2)
smart_properties (1.17.0)
sprockets (3.7.2)
concurrent-ruby (~> 1.0)
rack (> 1, < 3)
@ -638,7 +649,7 @@ GEM
stoplight (2.2.1)
strong_migrations (0.7.9)
activerecord (>= 5)
swd (1.2.0)
swd (1.3.0)
activesupport (>= 3)
attr_required (>= 0.0.5)
httpclient (>= 2.4)
@ -694,7 +705,7 @@ GEM
safety_net_attestation (~> 0.4.0)
securecompare (~> 1.0)
tpm-key_attestation (~> 0.9.0)
webfinger (1.1.0)
webfinger (1.2.0)
activesupport
httpclient (>= 2.4)
webmock (3.14.0)
@ -753,14 +764,14 @@ DEPENDENCIES
doorkeeper (~> 5.5)
dotenv-rails (~> 2.7)
ed25519 (~> 1.3)
fabrication (~> 2.27)
fabrication (~> 2.28)
faker (~> 2.20)
fast_blank (~> 1.0)
fastimage
fog-core (<= 2.1.0)
fog-openstack (~> 0.3)
fuubar (~> 2.5)
gitlab-omniauth-openid-connect (~> 0.5.0)
gitlab-omniauth-openid-connect (~> 0.9.1)
hamlit-rails (~> 0.2)
hcaptcha (~> 7.1)
hiredis (~> 0.6)
@ -768,7 +779,7 @@ DEPENDENCIES
http (~> 5.0)
http_accept_language (~> 2.1)
httplog (~> 1.5.0)
i18n-tasks (~> 0.9)
i18n-tasks (~> 1.0)
idn-ruby
json-ld
json-ld-preloaded (~> 3.2)
@ -777,7 +788,7 @@ DEPENDENCIES
letter_opener (~> 1.8)
letter_opener_web (~> 2.0)
link_header (~> 0.0)
lograge (~> 0.11)
lograge (~> 0.12)
makara (~> 0.5)
mario-redis-lock (~> 1.2)
memory_profiler

@ -65,8 +65,9 @@ class Api::V1::Admin::AccountsController < Api::BaseController
def destroy
authorize @account, :destroy?
json = render_to_body json: @account, serializer: REST::Admin::AccountSerializer
Admin::AccountDeletionWorker.perform_async(@account.id)
render json: @account, serializer: REST::Admin::AccountSerializer
render json: json
end
def unsensitive

@ -79,10 +79,12 @@ class Api::V1::StatusesController < Api::BaseController
authorize @status, :destroy?
@status.discard
RemovalWorker.perform_async(@status.id, { 'redraft' => true })
@status.account.statuses_count = @status.account.statuses_count - 1
json = render_to_body json: @status, serializer: REST::StatusSerializer, source_requested: true
RemovalWorker.perform_async(@status.id, { 'redraft' => true })
render json: @status, serializer: REST::StatusSerializer, source_requested: true
render json: json
end
private

@ -36,13 +36,17 @@ class Api::V1::Trends::LinksController < Api::BaseController
end
def next_path
api_v1_trends_links_url pagination_params(offset: offset_param + limit_param(DEFAULT_LINKS_LIMIT))
api_v1_trends_links_url pagination_params(offset: offset_param + limit_param(DEFAULT_LINKS_LIMIT)) if records_continue?
end
def prev_path
api_v1_trends_links_url pagination_params(offset: offset_param - limit_param(DEFAULT_LINKS_LIMIT)) if offset_param > limit_param(DEFAULT_LINKS_LIMIT)
end
def records_continue?
@links.size == limit_param(DEFAULT_LINKS_LIMIT)
end
def offset_param
params[:offset].to_i
end

@ -36,7 +36,7 @@ class Api::V1::Trends::StatusesController < Api::BaseController
end
def next_path
api_v1_trends_statuses_url pagination_params(offset: offset_param + limit_param(DEFAULT_STATUSES_LIMIT))
api_v1_trends_statuses_url pagination_params(offset: offset_param + limit_param(DEFAULT_STATUSES_LIMIT)) if records_continue?
end
def prev_path
@ -46,4 +46,8 @@ class Api::V1::Trends::StatusesController < Api::BaseController
def offset_param
params[:offset].to_i
end
def records_continue?
@statuses.size == limit_param(DEFAULT_STATUSES_LIMIT)
end
end

@ -32,7 +32,7 @@ class Api::V1::Trends::TagsController < Api::BaseController
end
def next_path
api_v1_trends_tags_url pagination_params(offset: offset_param + limit_param(DEFAULT_TAGS_LIMIT))
api_v1_trends_tags_url pagination_params(offset: offset_param + limit_param(DEFAULT_TAGS_LIMIT)) if records_continue?
end
def prev_path
@ -42,4 +42,8 @@ class Api::V1::Trends::TagsController < Api::BaseController
def offset_param
params[:offset].to_i
end
def records_continue?
@tags.size == limit_param(DEFAULT_TAGS_LIMIT)
end
end

@ -57,7 +57,8 @@ class Settings::PreferencesController < Settings::BaseController
:setting_use_pending_items,
:setting_trends,
:setting_crop_images,
notification_emails: %i(follow follow_request reblog favourite mention digest report pending_account trending_tag trending_link trending_status),
:setting_always_send_emails,
notification_emails: %i(follow follow_request reblog favourite mention digest report pending_account trending_tag trending_link trending_status appeal),
interactions: %i(must_be_follower must_be_following must_be_following_dm)
)
end

@ -7,6 +7,10 @@ import {
expandHomeTimeline,
connectTimeline,
disconnectTimeline,
fillHomeTimelineGaps,
fillPublicTimelineGaps,
fillCommunityTimelineGaps,
fillListTimelineGaps,
} from './timelines';
import { updateNotifications, expandNotifications } from './notifications';
import { updateConversations } from './conversations';
@ -35,6 +39,7 @@ const randomUpTo = max =>
* @param {Object.<string, string>} params
* @param {Object} options
* @param {function(Function, Function): void} [options.fallback]
* @param {function(): void} [options.fillGaps]
* @param {function(object): boolean} [options.accept]
* @return {function(): void}
*/
@ -61,6 +66,10 @@ export const connectTimelineStream = (timelineId, channelName, params = {}, opti
clearTimeout(pollingId);
pollingId = null;
}
if (options.fillGaps) {
dispatch(options.fillGaps());
}
},
onDisconnect() {
@ -119,7 +128,7 @@ const refreshHomeTimelineAndNotification = (dispatch, done) => {
* @return {function(): void}
*/
export const connectUserStream = () =>
connectTimelineStream('home', 'user', {}, { fallback: refreshHomeTimelineAndNotification });
connectTimelineStream('home', 'user', {}, { fallback: refreshHomeTimelineAndNotification, fillGaps: fillHomeTimelineGaps });
/**
* @param {Object} options
@ -127,7 +136,7 @@ export const connectUserStream = () =>
* @return {function(): void}
*/
export const connectCommunityStream = ({ onlyMedia } = {}) =>
connectTimelineStream(`community${onlyMedia ? ':media' : ''}`, `public:local${onlyMedia ? ':media' : ''}`);
connectTimelineStream(`community${onlyMedia ? ':media' : ''}`, `public:local${onlyMedia ? ':media' : ''}`, {}, { fillGaps: () => (fillCommunityTimelineGaps({ onlyMedia })) });
/**
* @param {Object} options
@ -136,7 +145,7 @@ export const connectCommunityStream = ({ onlyMedia } = {}) =>
* @return {function(): void}
*/
export const connectPublicStream = ({ onlyMedia, onlyRemote } = {}) =>
connectTimelineStream(`public${onlyRemote ? ':remote' : ''}${onlyMedia ? ':media' : ''}`, `public${onlyRemote ? ':remote' : ''}${onlyMedia ? ':media' : ''}`);
connectTimelineStream(`public${onlyRemote ? ':remote' : ''}${onlyMedia ? ':media' : ''}`, `public${onlyRemote ? ':remote' : ''}${onlyMedia ? ':media' : ''}`, {}, { fillGaps: () => fillPublicTimelineGaps({ onlyMedia, onlyRemote }) });
/**
* @param {string} columnId
@ -159,4 +168,4 @@ export const connectDirectStream = () =>
* @return {function(): void}
*/
export const connectListStream = listId =>
connectTimelineStream(`list:${listId}`, 'list', { list: listId });
connectTimelineStream(`list:${listId}`, 'list', { list: listId }, { fillGaps: () => fillListTimelineGaps(listId) });

@ -124,6 +124,22 @@ export function expandTimeline(timelineId, path, params = {}, done = noOp) {
};
};
export function fillTimelineGaps(timelineId, path, params = {}, done = noOp) {
return (dispatch, getState) => {
const timeline = getState().getIn(['timelines', timelineId], ImmutableMap());
const items = timeline.get('items');
const nullIndexes = items.map((statusId, index) => statusId === null ? index : null);
const gaps = nullIndexes.map(index => index > 0 ? items.get(index - 1) : null);
// Only expand at most two gaps to avoid doing too many requests
done = gaps.take(2).reduce((done, maxId) => {
return (() => dispatch(expandTimeline(timelineId, path, { ...params, maxId }, done)));
}, done);
done();
};
}
export const expandHomeTimeline = ({ maxId } = {}, done = noOp) => expandTimeline('home', '/api/v1/timelines/home', { max_id: maxId }, done);
export const expandPublicTimeline = ({ maxId, onlyMedia, onlyRemote } = {}, done = noOp) => expandTimeline(`public${onlyRemote ? ':remote' : ''}${onlyMedia ? ':media' : ''}`, '/api/v1/timelines/public', { remote: !!onlyRemote, max_id: maxId, only_media: !!onlyMedia }, done);
export const expandCommunityTimeline = ({ maxId, onlyMedia } = {}, done = noOp) => expandTimeline(`community${onlyMedia ? ':media' : ''}`, '/api/v1/timelines/public', { local: true, max_id: maxId, only_media: !!onlyMedia }, done);
@ -141,6 +157,11 @@ export const expandHashtagTimeline = (hashtag, { maxId, tags, local } =
}, done);
};
export const fillHomeTimelineGaps = (done = noOp) => fillTimelineGaps('home', '/api/v1/timelines/home', {}, done);
export const fillPublicTimelineGaps = ({ onlyMedia, onlyRemote } = {}, done = noOp) => fillTimelineGaps(`public${onlyRemote ? ':remote' : ''}${onlyMedia ? ':media' : ''}`, '/api/v1/timelines/public', { remote: !!onlyRemote, only_media: !!onlyMedia }, done);
export const fillCommunityTimelineGaps = ({ onlyMedia } = {}, done = noOp) => fillTimelineGaps(`community${onlyMedia ? ':media' : ''}`, '/api/v1/timelines/public', { local: true, only_media: !!onlyMedia }, done);
export const fillListTimelineGaps = (id, done = noOp) => fillTimelineGaps(`list:${id}`, `/api/v1/timelines/list/${id}`, {}, done);
export function expandTimelineRequest(timeline, isLoadingMore) {
return {
type: TIMELINE_EXPAND_REQUEST,
@ -184,6 +205,7 @@ export function connectTimeline(timeline) {
return {
type: TIMELINE_CONNECT,
timeline,
usePendingItems: preferPendingItems,
};
};

@ -515,6 +515,7 @@
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Edit",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.undo": "Delete",

@ -2,8 +2,8 @@
"account.account_note_header": "مُلاحظة",
"account.add_or_remove_from_list": "الإضافة أو الإزالة من القائمة",
"account.badges.bot": "روبوت",
"account.badges.group": "مجموعة",
"account.block": "حظر @{name}",
"account.badges.group": "فريق",
"account.block": "احجب @{name}",
"account.block_domain": "حظر اسم النِّطاق {domain}",
"account.blocked": "محظور",
"account.browse_more_on_origin_server": "تصفح المزيد في الملف الشخصي الأصلي",
@ -11,14 +11,14 @@
"account.direct": "مراسلة @{name} بشكل مباشر",
"account.disable_notifications": "توقف عن إشعاري عندما ينشر @{name}",
"account.domain_blocked": "اسم النِّطاق محظور",
"account.edit_profile": حرير الملف الشخصي",
"account.edit_profile": عديل الملف الشخصي",
"account.enable_notifications": "أشعرني عندما ينشر @{name}",
"account.endorse": "أوصِ به على صفحتك الشخصية",
"account.follow": "المُتابعة",
"account.followers": "المُتابِعون",
"account.followers.empty": "لا أحدَ يُتابع هذا المُستخدم حتى الآن.",
"account.follow": "متابعة",
"account.followers": "مُتابِعون",
"account.followers.empty": "لا أحدَ يُتابع هذا المُستخدم إلى حد الآن.",
"account.followers_counter": "{count, plural, zero{لا مُتابع} one {مُتابعٌ واحِد} two{مُتابعانِ اِثنان} few{{counter} مُتابِعين} many{{counter} مُتابِعًا} other {{counter} مُتابع}}",
"account.following": "Following",
"account.following": "الإشتراكات",
"account.following_counter": "{count, plural, zero{لا يُتابِع} one {يُتابِعُ واحد} two{يُتابِعُ اِثنان} few{يُتابِعُ {counter}} many{يُتابِعُ {counter}} other {يُتابِعُ {counter}}}",
"account.follows.empty": "لا يُتابع هذا المُستخدمُ أيَّ أحدٍ حتى الآن.",
"account.follows_you": "يُتابِعُك",
@ -35,18 +35,18 @@
"account.posts": "منشورات",
"account.posts_with_replies": "المنشورات والرُدود",
"account.report": "الإبلاغ عن @{name}",
"account.requested": "في اِنتظر القُبول. اِنقُر لإلغاء طلب المُتابعة",
"account.requested": "في انتظار القبول. اضغط لإلغاء طلب المُتابعة",
"account.share": "مُشاركة الملف الشخصي لـ @{name}",
"account.show_reblogs": "عرض مشاركات @{name}",
"account.statuses_counter": "{count, plural, zero {لَا تَبويقات} one {تَبويقةٌ واحدة} two {تَبويقَتانِ اِثنتان} few {{counter} تَبويقات} many {{counter} تَبويقتًا} other {{counter} تَبويقة}}",
"account.statuses_counter": "{count, plural, zero {لَا منشورات} one {منشور واحد} two {منشوران إثنان} few {{counter} منشورات} many {{counter} منشورًا} other {{counter} منشور}}",
"account.unblock": "إلغاء الحَظر عن @{name}",
"account.unblock_domain": "إلغاء الحَظر عن النِّطاق {domain}",
"account.unblock_short": "Unblock",
"account.unblock_short": "ألغ الحجب",
"account.unendorse": "لا تُرَوِّج لهُ في الملف الشخصي",
"account.unfollow": "إلغاء المُتابعة",
"account.unmute": "إلغاء الكَتم عن @{name}",
"account.unmute_notifications": "إلغاء كَتم الإشعارات عن @{name}",
"account.unmute_short": "Unmute",
"account.unmute_short": "إلغاء الكتم",
"account_note.placeholder": "اضغط لإضافة مُلاحظة",
"admin.dashboard.daily_retention": "User retention rate by day after sign-up",
"admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
@ -78,7 +78,7 @@
"column.home": "الرئيسية",
"column.lists": "القوائم",
"column.mutes": "المُستَخدِمون المَكتومون",
"column.notifications": "الإشعارَات",
"column.notifications": "الإشعارات",
"column.pins": "المنشورات المُثَبَّتَة",
"column.public": "الخَطُّ الزَّمَنِيُّ المُوَحَّد",
"column_back_button.label": "العودة",
@ -294,7 +294,7 @@
"navigation_bar.discover": "اكتشف",
"navigation_bar.domain_blocks": "النطاقات المخفية",
"navigation_bar.edit_profile": "عدّل الملف التعريفي",
"navigation_bar.explore": "Explore",
"navigation_bar.explore": "استكشف",
"navigation_bar.favourites": "المفضلة",
"navigation_bar.filters": "الكلمات المكتومة",
"navigation_bar.follow_requests": "طلبات المتابعة",
@ -315,7 +315,7 @@
"notification.follow_request": "لقد طلب {name} متابعتك",
"notification.mention": "{name} ذكرك",
"notification.own_poll": "انتهى استطلاعك للرأي",
"notification.poll": "لقد إنتها تصويت شاركت فيه",
"notification.poll": "لقد انتهى استطلاع رأي شاركتَ فيه",
"notification.reblog": "قام {name} بمشاركة منشورك",
"notification.status": "{name} نشر للتو",
"notification.update": "{name} edited a post",
@ -410,7 +410,7 @@
"report.reasons.dislike_description": "ألا ترغب برؤيته",
"report.reasons.other": "It's something else",
"report.reasons.other_description": "The issue does not fit into other categories",
"report.reasons.spam": "It's spam",
"report.reasons.spam": "إنها رسالة مزعجة",
"report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
"report.reasons.violation": "ينتهك قواعد الخادم",
"report.reasons.violation_description": "You are aware that it breaks specific rules",
@ -470,7 +470,7 @@
"status.read_more": "اقرأ المزيد",
"status.reblog": "رَقِّي",
"status.reblog_private": "القيام بالترقية إلى الجمهور الأصلي",
"status.reblogged_by": "رقّاه {name}",
"status.reblogged_by": "شارَكَه {name}",
"status.reblogs.empty": "لم يقم أي أحد بمشاركة هذا المنشور بعد. عندما يقوم أحدهم بذلك سوف يظهر هنا.",
"status.redraft": "إزالة و إعادة الصياغة",
"status.remove_bookmark": "احذفه مِن الفواصل المرجعية",
@ -515,6 +515,7 @@
"upload_error.poll": "لا يمكن إدراج ملفات في استطلاعات الرأي.",
"upload_form.audio_description": "وصف للأشخاص ذي قِصر السمع",
"upload_form.description": "وصف للمعاقين بصريا",
"upload_form.description_missing": "No description added",
"upload_form.edit": "تعديل",
"upload_form.thumbnail": "غيّر الصورة المصغرة",
"upload_form.undo": "حذف",

@ -515,6 +515,7 @@
"upload_error.poll": "La xuba de ficheros nun ta permitida con encuestes.",
"upload_form.audio_description": "Descripción pa persones con perda auditiva",
"upload_form.description": "Descripción pa discapacitaos visuales",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Editar",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.undo": "Desaniciar",

@ -515,6 +515,7 @@
"upload_error.poll": "Качването на файлове не е позволено с анкети.",
"upload_form.audio_description": "Опишете за хора със загуба на слуха",
"upload_form.description": "Опишете за хора със зрителни увреждания",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Редакция",
"upload_form.thumbnail": "Промяна на миниизображението",
"upload_form.undo": "Отмяна",

@ -515,6 +515,7 @@
"upload_error.poll": "নির্বাচনক্ষেত্রে কোনো ফাইল যুক্ত করা যাবেনা।",
"upload_form.audio_description": "শ্রবণশক্তি লোকদের জন্য বর্ণনা করুন",
"upload_form.description": "যারা দেখতে পায়না তাদের জন্য এটা বর্ণনা করতে",
"upload_form.description_missing": "No description added",
"upload_form.edit": "সম্পাদন",
"upload_form.thumbnail": "থাম্বনেল পরিবর্তন করুন",
"upload_form.undo": "মুছে ফেলতে",

@ -187,12 +187,12 @@
"error.unexpected_crash.next_steps_addons": "Klaskit azbevaat ar bajenn. Ma n'ez a ket en-dro e c'hallit klask ober gant Mastodon dre ur merdeer disheñvel pe dre an arload genidik.",
"errors.unexpected_crash.copy_stacktrace": "Eilañ ar roudoù diveugañ er golver",
"errors.unexpected_crash.report_issue": "Danevellañ ur fazi",
"explore.search_results": "Search results",
"explore.search_results": "Disoc'hoù an enklask",
"explore.suggested_follows": "For you",
"explore.title": "Explore",
"explore.title": "Ergerzhit",
"explore.trending_links": "News",
"explore.trending_statuses": "Posts",
"explore.trending_tags": "Hashtags",
"explore.trending_tags": "Gerioù-klik",
"follow_recommendations.done": "Graet",
"follow_recommendations.heading": "Heuliit tud e plijfe deoc'h lenn toudoù! Setu un tamm alioù.",
"follow_recommendations.lead": "Toudoù eus tud heuliet ganeoc'h a zeuio war wel en un urzh amzeroniezhel war ho red degemer. N'ho peus ket aon ober fazioù, gallout a rit paouez heuliañ tud ken aes n'eus forzh pegoulz!",
@ -515,6 +515,7 @@
"upload_error.poll": "Pellgargañ restroù n'eo ket aotreet gant sontadegoù.",
"upload_form.audio_description": "Diskrivañ evit tud a zo kollet o c'hlev",
"upload_form.description": "Diskrivañ evit tud a zo kollet o gweled",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Aozañ",
"upload_form.thumbnail": "Kemmañ ar velvenn",
"upload_form.undo": "Dilemel",

@ -515,6 +515,7 @@
"upload_error.poll": "No es permet l'enviament de fitxers en les enquestes.",
"upload_form.audio_description": "Descriviu per a les persones amb pèrdua auditiva",
"upload_form.description": "Descriure per els que tenen problemes visuals",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Edita",
"upload_form.thumbnail": "Canvia la miniatura",
"upload_form.undo": "Esborra",

@ -515,6 +515,7 @@
"upload_error.poll": "پەڕگەکە ڕێی پێنەدراوە بە ڕاپرسی باربکرێت.",
"upload_form.audio_description": "بۆ ئەو کەسانەی کە گوێ بیستیان هەیە وەسف دەکات",
"upload_form.description": "وەسف بکە بۆ کەمبینایان",
"upload_form.description_missing": "No description added",
"upload_form.edit": "دەستکاری",
"upload_form.thumbnail": "گۆڕانی وینۆچکە",
"upload_form.undo": "سڕینەوە",

@ -515,6 +515,7 @@
"upload_error.poll": "Ùn si pò micca caricà fugliali cù i scandagli.",
"upload_form.audio_description": "Discrizzione per i ciochi",
"upload_form.description": "Discrizzione per i malvistosi",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Mudificà",
"upload_form.thumbnail": "Cambià vignetta",
"upload_form.undo": "Sguassà",

@ -5,7 +5,7 @@
"account.badges.group": "Skupina",
"account.block": "Zablokovat @{name}",
"account.block_domain": "Blokovat doménu {domain}",
"account.blocked": "Blokováno",
"account.blocked": "Blokován",
"account.browse_more_on_origin_server": "Více na původním profilu",
"account.cancel_follow_request": "Zrušit žádost o sledování",
"account.direct": "Poslat @{name} přímou zprávu",
@ -18,7 +18,7 @@
"account.followers": "Sledující",
"account.followers.empty": "Tohoto uživatele ještě nikdo nesleduje.",
"account.followers_counter": "{count, plural, one {{counter} Sledující} few {{counter} Sledující} many {{counter} Sledujících} other {{counter} Sledujících}}",
"account.following": "Following",
"account.following": "Sledujete",
"account.following_counter": "{count, plural, one {{counter} Sledovaný} few {{counter} Sledovaní} many {{counter} Sledovaných} other {{counter} Sledovaných}}",
"account.follows.empty": "Tento uživatel ještě nikoho nesleduje.",
"account.follows_you": "Sleduje vás",
@ -41,15 +41,15 @@
"account.statuses_counter": "{count, plural, one {{counter} Příspěvek} few {{counter} Příspěvky} many {{counter} Příspěvků} other {{counter} Příspěvků}}",
"account.unblock": "Odblokovat @{name}",
"account.unblock_domain": "Odblokovat doménu {domain}",
"account.unblock_short": "Unblock",
"account.unblock_short": "Odblokovat",
"account.unendorse": "Nezvýrazňovat na profilu",
"account.unfollow": "Přestat sledovat",
"account.unmute": "Zrušit skrytí @{name}",
"account.unmute_notifications": "Zrušit skrytí oznámení od @{name}",
"account.unmute_short": "Unmute",
"account.unmute": "Odkrýt @{name}",
"account.unmute_notifications": "Odkrýt oznámení od @{name}",
"account.unmute_short": "Odkrýt",
"account_note.placeholder": "Klikněte pro přidání poznámky",
"admin.dashboard.daily_retention": "User retention rate by day after sign-up",
"admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
"admin.dashboard.daily_retention": "Míra udržení uživatelů podle dne po registraci",
"admin.dashboard.monthly_retention": "Míra udržení uživatelů podle měsíce po registraci",
"admin.dashboard.retention.average": "Průměr",
"admin.dashboard.retention.cohort": "Měsíc registrace",
"admin.dashboard.retention.cohort_size": "Noví uživatelé",
@ -106,7 +106,7 @@
"compose_form.poll.switch_to_single": "Povolit u ankety výběr jediné možnosti",
"compose_form.publish": "Odeslat",
"compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "Save changes",
"compose_form.save_changes": "Uložit změny",
"compose_form.sensitive.hide": "{count, plural, one {Označit média za citlivá} few {Označit média za citlivá} many {Označit média za citlivá} other {Označit média za citlivá}}",
"compose_form.sensitive.marked": "{count, plural, one {Média jsou označena za citlivá} few {Média jsou označena za citlivá} many {Média jsou označena za citlivá} other {Média jsou označena za citlivá}}",
"compose_form.sensitive.unmarked": "{count, plural, one {Média nejsou označena za citlivá} few {Média nejsou označena za citlivá} many {Média nejsou označena za citlivá} other {Média nejsou označena za citlivá}}",
@ -168,7 +168,7 @@
"empty_column.community": "Místní časová osa je prázdná. Napište něco veřejně a rozhýbejte to tu!",
"empty_column.direct": "Ještě nemáte žádné přímé zprávy. Pokud nějakou pošlete nebo dostanete, zobrazí se zde.",
"empty_column.domain_blocks": "Ještě nemáte žádné blokované domény.",
"empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
"empty_column.explore_statuses": "Momentálně není nic populární. Vraťte se později!",
"empty_column.favourited_statuses": "Ještě nemáte žádné oblíbené příspěvky. Pokud si nějaký oblíbíte, zobrazí se zde.",
"empty_column.favourites": "Tento příspěvek si ještě nikdo neoblíbil. Pokud to někdo udělá, zobrazí se zde.",
"empty_column.follow_recommendations": "Zdá se, že pro vás nelze vygenerovat žádné návrhy. Můžete zkusit přes vyhledávání naleznout lidi, které znáte, nebo prozkoumat populární hashtagy.",
@ -187,18 +187,18 @@
"error.unexpected_crash.next_steps_addons": "Zkuste je vypnout a stránku obnovit. Pokud to nepomůže, zkuste otevřít Mastodon v jiném prohlížeči nebo nativní aplikaci.",
"errors.unexpected_crash.copy_stacktrace": "Zkopírovat stacktrace do schránky",
"errors.unexpected_crash.report_issue": "Nahlásit problém",
"explore.search_results": "Search results",
"explore.suggested_follows": "For you",
"explore.title": "Explore",
"explore.trending_links": "News",
"explore.trending_statuses": "Posts",
"explore.trending_tags": "Hashtags",
"explore.search_results": "Výsledky hledání",
"explore.suggested_follows": "Pro vás",
"explore.title": "Objevování",
"explore.trending_links": "Zprávy",
"explore.trending_statuses": "Příspěvky",
"explore.trending_tags": "Hashtagy",
"follow_recommendations.done": "Hotovo",
"follow_recommendations.heading": "Sledujte lidi, jejichž příspěvky chcete vidět! Tady jsou nějaké návrhy.",
"follow_recommendations.lead": "Příspěvky od lidí, které sledujete, se budou objevovat v chronologickém pořadí ve vaší domovské ose. Nebojte se, že uděláte chybu, můžete lidi stejně snadno kdykoliv přestat sledovat!",
"follow_request.authorize": "Autorizovat",
"follow_request.reject": "Odmítnout",
"follow_requests.unlocked_explanation": "Přestože váš účet není uzamčen, {domain} si myslí, že budete chtít následující požadavky na sledování zkontrolovat ručně.",
"follow_requests.unlocked_explanation": "Přestože váš účet není uzamčen, personál {domain} usoudil, že byste mohli chtít tyto požadavky na sledování zkontrolovat ručně.",
"generic.saved": "Uloženo",
"getting_started.developers": "Vývojáři",
"getting_started.directory": "Adresář profilů",
@ -309,7 +309,7 @@
"navigation_bar.preferences": "Předvolby",
"navigation_bar.public_timeline": "Federovaná časová osa",
"navigation_bar.security": "Zabezpečení",
"notification.admin.sign_up": "{name} signed up",
"notification.admin.sign_up": "Uživatel {name} se zaregistroval",
"notification.favourite": "Uživatel {name} si oblíbil váš příspěvek",
"notification.follow": "Uživatel {name} vás začal sledovat",
"notification.follow_request": "Uživatel {name} požádal o povolení vás sledovat",
@ -318,10 +318,10 @@
"notification.poll": "Anketa, ve které jste hlasovali, skončila",
"notification.reblog": "Uživatel {name} boostnul váš příspěvek",
"notification.status": "Nový příspěvek od {name}",
"notification.update": "uživatel {name} upravil příspěvek",
"notifications.clear": "Smazat oznámení",
"notification.update": "Uživatel {name} upravil příspěvek",
"notifications.clear": "Vymazat oznámení",
"notifications.clear_confirmation": "Opravdu chcete trvale smazat všechna vaše oznámení?",
"notifications.column_settings.admin.sign_up": "New sign-ups:",
"notifications.column_settings.admin.sign_up": "Nové registrace:",
"notifications.column_settings.alert": "Oznámení na počítači",
"notifications.column_settings.favourite": "Oblíbení:",
"notifications.column_settings.filter_bar.advanced": "Zobrazit všechny kategorie",
@ -378,32 +378,32 @@
"regeneration_indicator.label": "Načítání…",
"regeneration_indicator.sublabel": "Váš domovský kanál se připravuje!",
"relative_time.days": "{number} d",
"relative_time.full.days": "{number, plural, one {# day} other {# days}} ago",
"relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago",
"relative_time.full.days": "před {number, plural, one {# dnem} few {# dny} many {# dny} other {# dny}}",
"relative_time.full.hours": "před {number, plural, one {# hodinou} few {# hodinami} many {# hodinami} other {# hodinami}}",
"relative_time.full.just_now": "právě teď",
"relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago",
"relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago",
"relative_time.full.minutes": "před {number, plural, one {# minutou} few {# minutami} many {# minutami} other {# minutami}}",
"relative_time.full.seconds": "před {number, plural, one {# sekundou} few {# sekundami} many {# sekundami} other {# sekundami}}",
"relative_time.hours": "{number} h",
"relative_time.just_now": "teď",
"relative_time.minutes": "{number} m",
"relative_time.seconds": "{number} s",
"relative_time.today": "dnes",
"reply_indicator.cancel": "Zrušit",
"report.block": "Block",
"report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
"report.block": "Zablokovat",
"report.block_explanation": "Neuvidíte jejich příspěvky. Oni neuvidí vaše příspěvky ani vás nebudou moci sledovat. Poznají, že jsou blokováni.",
"report.categories.other": "Ostatní",
"report.categories.spam": "Spam",
"report.categories.violation": "Obsah porušuje jedno nebo více pravidel serveru",
"report.category.subtitle": "Vyberte nejbližší možnost",
"report.category.title": "Povězte nám, proč chcete {type} nahlásit",
"report.category.title_account": "profile",
"report.category.title_status": "post",
"report.close": "Done",
"report.comment.title": "Is there anything else you think we should know?",
"report.category.title_account": "profil",
"report.category.title_status": "příspěvek",
"report.close": "Hotovo",
"report.comment.title": "Ještě něco jiného, co myslíte, že bychom měli vědět?",
"report.forward": "Přeposlat na {target}",
"report.forward_hint": "Tento účet je z jiného serveru. Chcete na něj také poslat anonymizovanou kopii hlášení?",
"report.mute": "Mute",
"report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.",
"report.mute": "Skrýt",
"report.mute_explanation": "Neuvidíte jejich příspěvky. Oni vás mohou nadále sledovat i vidět vaše příspěvky a nebudou vědět, že jsou skryti.",
"report.next": "Dále",
"report.placeholder": "Dodatečné komentáře",
"report.reasons.dislike": "Nelíbí se mi",
@ -420,12 +420,12 @@
"report.statuses.title": "Existují příspěvky dokládající toto hlášení?",
"report.submit": "Odeslat",
"report.target": "Nahlášení uživatele {target}",
"report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:",
"report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:",
"report.thanks.title": "Don't want to see this?",
"report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
"report.unfollow": "Unfollow @{name}",
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"report.thanks.take_action": "Tady jsou vaše možnosti pro řízení toho, co na Mastodonu vidíte:",
"report.thanks.take_action_actionable": "Zatímco to posuzujeme, můžete podniknout kroky proti @{name}:",
"report.thanks.title": "Nechcete tohle vidět?",
"report.thanks.title_actionable": "Děkujeme za nahlášení, podíváme se na to.",
"report.unfollow": "Přestat sledovat @{name}",
"report.unfollow_explanation": "Tento účet sledujete. Abyste už neviděli jejich příspěvky ve své domácí časové ose, přestaňte je sledovat.",
"search.placeholder": "Hledat",
"search_popout.search_format": "Pokročilé hledání",
"search_popout.tips.full_text": "Jednoduchý text vrací příspěvky, které jste napsali, oblíbili si, boostnuli, nebo vás v nich někdo zmínil, a také odpovídající přezdívky, zobrazovaná jména a hashtagy.",
@ -434,9 +434,9 @@
"search_popout.tips.text": "Jednoduchý text vrací odpovídající zobrazovaná jména, přezdívky a hashtagy",
"search_popout.tips.user": "uživatel",
"search_results.accounts": "Lidé",
"search_results.all": "All",
"search_results.all": "Vše",
"search_results.hashtags": "Hashtagy",
"search_results.nothing_found": "Could not find anything for these search terms",
"search_results.nothing_found": "Pro tyto hledané výrazy nebylo nic nenalezeno",
"search_results.statuses": "Příspěvky",
"search_results.statuses_fts_disabled": "Vyhledávání příspěvků podle jejich obsahu není na tomto Mastodon serveru povoleno.",
"search_results.total": "{count, number} {count, plural, one {výsledek} few {výsledky} many {výsledků} other {výsledků}}",
@ -450,14 +450,14 @@
"status.delete": "Smazat",
"status.detailed_status": "Podrobné zobrazení konverzace",
"status.direct": "Poslat @{name} přímou zprávu",
"status.edit": "Edit",
"status.edited": "Edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",
"status.edit": "Upravit",
"status.edited": "Upraven {date}",
"status.edited_x_times": "Upraven {count, plural, one {{count}krát} few {{count}krát} many {{count}krát} other {{count}krát}}",
"status.embed": "Vložit na web",
"status.favourite": "Oblíbit",
"status.filtered": "Filtrováno",
"status.history.created": "{name} created {date}",
"status.history.edited": "{name} edited {date}",
"status.history.created": "Uživatel {name} vytvořil {date}",
"status.history.edited": "Uživatel {name} upravil {date}",
"status.load_more": "Zobrazit více",
"status.media_hidden": "Média skryta",
"status.mention": "Zmínit @{name}",
@ -501,7 +501,7 @@
"time_remaining.seconds": "{number, plural, one {Zbývá # sekunda} few {Zbývají # sekundy} many {Zbývá # sekund} other {Zbývá # sekund}}",
"timeline_hint.remote_resource_not_displayed": "{resource} z jiných serveru se nezobrazuje.",
"timeline_hint.resources.followers": "Sledující",
"timeline_hint.resources.follows": "Sleduje",
"timeline_hint.resources.follows": "Sledovaní",
"timeline_hint.resources.statuses": "Starší příspěvky",
"trends.counter_by_accounts": "zmiňuje {count, plural, one {{counter} člověk} few {{counter} lidé} many {{counter} lidí} other {{counter} lidí}}",
"trends.trending_now": "Právě populární",
@ -515,6 +515,7 @@
"upload_error.poll": "U anket není nahrávání souborů povoleno.",
"upload_form.audio_description": "Popis pro sluchově postižené",
"upload_form.description": "Popis pro zrakově postižené",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Upravit",
"upload_form.thumbnail": "Změnit miniaturu",
"upload_form.undo": "Smazat",

@ -515,6 +515,7 @@
"upload_error.poll": "Nid oes modd uwchlwytho ffeiliau â phleidleisiau.",
"upload_form.audio_description": "Disgrifio ar gyfer pobl sydd â cholled clyw",
"upload_form.description": "Disgrifio i'r rheini a nam ar ei golwg",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Golygu",
"upload_form.thumbnail": "Newid mân-lun",
"upload_form.undo": "Dileu",

@ -506,15 +506,16 @@
"trends.counter_by_accounts": "{count, plural, one {{counter} person} other {{counter} personer}} taler",
"trends.trending_now": "Hot lige nu",
"ui.beforeunload": "Dit udkast går tabt, hvis du lukker Mastodon.",
"units.short.billion": "{count} MIA",
"units.short.million": "{count} M",
"units.short.thousand": "{count} K",
"units.short.billion": "{count} mia.",
"units.short.million": "{count} mio.",
"units.short.thousand": "{count} tusind",
"upload_area.title": "Træk og slip for at uploade",
"upload_button.label": "Tilføj billed-, video- eller lydfil(er)",
"upload_error.limit": "Grænse for filupload nået.",
"upload_error.poll": "Filupload ikke tilladt for afstemninger.",
"upload_form.audio_description": "Beskrivelse til hørehæmmede",
"upload_form.description": "Beskrivelse til svagtseende",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Redigér",
"upload_form.thumbnail": "Skift miniature",
"upload_form.undo": "Slet",

@ -515,6 +515,7 @@
"upload_error.poll": "Dateiuploads sind in Kombination mit Umfragen nicht erlaubt.",
"upload_form.audio_description": "Beschreibe die Audiodatei für Menschen mit Hörschädigungen",
"upload_form.description": "Für Menschen mit Sehbehinderung beschreiben",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Bearbeiten",
"upload_form.thumbnail": "Miniaturansicht ändern",
"upload_form.undo": "Löschen",

@ -1442,6 +1442,10 @@
{
"defaultMessage": "Edit",
"id": "upload_form.edit"
},
{
"defaultMessage": "No description added",
"id": "upload_form.description_missing"
}
],
"path": "app/javascript/mastodon/features/compose/components/upload.json"

@ -515,6 +515,7 @@
"upload_error.poll": "Στις δημοσκοπήσεις δεν επιτρέπεται η μεταφόρτωση αρχείου.",
"upload_form.audio_description": "Περιγραφή για άτομα με προβλήματα ακοής",
"upload_form.description": "Περιέγραψε για όσους & όσες έχουν προβλήματα όρασης",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Ενημέρωση",
"upload_form.thumbnail": "Αλλαγή μικρογραφίας",
"upload_form.undo": "Διαγραφή",

@ -520,6 +520,7 @@
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Edit",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.undo": "Delete",

@ -168,10 +168,10 @@
"empty_column.community": "La loka templinio estas malplena. Skribu ion por plenigi ĝin!",
"empty_column.direct": "Vi ankoraŭ ne havas rektan mesaĝon. Kiam vi sendos aŭ ricevos iun, ĝi aperos ĉi tie.",
"empty_column.domain_blocks": "Ankoraŭ neniu domajno estas blokita.",
"empty_column.explore_statuses": "Nothing is trending right now. Check back later!",
"empty_column.explore_statuses": "Nenio tendencas nun. Rekontrolu poste!",
"empty_column.favourited_statuses": "Vi ankoraŭ ne stelumis mesaĝon. Kiam vi stelumos iun, tiu aperos ĉi tie.",
"empty_column.favourites": "Ankoraŭ neniu stelumis tiun mesaĝon. Kiam iu faros tion, tiu aperos ĉi tie.",
"empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.",
"empty_column.follow_recommendations": "Ŝajnas, ke neniuj sugestoj povis esti generitaj por vi. Vi povas provi uzi serĉon por serĉi homojn, kiujn vi eble konas, aŭ esplori tendencajn kradvortojn.",
"empty_column.follow_requests": "Vi ne ankoraŭ havas iun peton de sekvado. Kiam vi ricevos unu, ĝi aperos ĉi tie.",
"empty_column.hashtag": "Ankoraŭ estas nenio per ĉi tiu kradvorto.",
"empty_column.home": "Via hejma tempolinio estas malplena! Vizitu {public} aŭ uzu la serĉilon por renkonti aliajn uzantojn.",
@ -294,7 +294,7 @@
"navigation_bar.discover": "Esplori",
"navigation_bar.domain_blocks": "Blokitaj domajnoj",
"navigation_bar.edit_profile": "Redakti profilon",
"navigation_bar.explore": "Explore",
"navigation_bar.explore": "Esplori",
"navigation_bar.favourites": "Stelumoj",
"navigation_bar.filters": "Silentigitaj vortoj",
"navigation_bar.follow_requests": "Petoj de sekvado",
@ -321,7 +321,7 @@
"notification.update": "{name} redaktis afiŝon",
"notifications.clear": "Forviŝi sciigojn",
"notifications.clear_confirmation": "Ĉu vi certas, ke vi volas porĉiame forviŝi ĉiujn viajn sciigojn?",
"notifications.column_settings.admin.sign_up": "New sign-ups:",
"notifications.column_settings.admin.sign_up": "Novaj registriĝoj:",
"notifications.column_settings.alert": "Retumilaj sciigoj",
"notifications.column_settings.favourite": "Stelumoj:",
"notifications.column_settings.filter_bar.advanced": "Montri ĉiujn kategoriojn",
@ -337,7 +337,7 @@
"notifications.column_settings.sound": "Eligi sonon",
"notifications.column_settings.status": "Novaj mesaĝoj:",
"notifications.column_settings.unread_notifications.category": "Nelegitaj sciigoj",
"notifications.column_settings.unread_notifications.highlight": "Highlight unread notifications",
"notifications.column_settings.unread_notifications.highlight": "Marki nelegitajn sciigojn",
"notifications.column_settings.update": "Redaktoj:",
"notifications.filter.all": "Ĉiuj",
"notifications.filter.boosts": "Diskonigoj",
@ -394,8 +394,8 @@
"report.categories.other": "Aliaj",
"report.categories.spam": "Spamo",
"report.categories.violation": "Content violates one or more server rules",
"report.category.subtitle": "Choose the best match",
"report.category.title": "Tell us what's going on with this {type}",
"report.category.subtitle": "Elektu la plej bonan kongruon",
"report.category.title": "Diru al ni kio okazas pri ĉi tiu {type}",
"report.category.title_account": "profilo",
"report.category.title_status": "afiŝo",
"report.close": "Farita",
@ -407,25 +407,25 @@
"report.next": "Sekva",
"report.placeholder": "Pliaj komentoj",
"report.reasons.dislike": "Mi ne ŝatas ĝin",
"report.reasons.dislike_description": "It is not something you want to see",
"report.reasons.other": "It's something else",
"report.reasons.other_description": "The issue does not fit into other categories",
"report.reasons.spam": "It's spam",
"report.reasons.dislike_description": "Ĝi ne estas io, kiun vi volas vidi",
"report.reasons.other": "Io alia",
"report.reasons.other_description": "La problemo ne taŭgas en aliaj kategorioj",
"report.reasons.spam": "Ĝi estas trudaĵo",
"report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
"report.reasons.violation": "Ĝi malrespektas servilajn regulojn",
"report.reasons.violation_description": "You are aware that it breaks specific rules",
"report.rules.subtitle": "Select all that apply",
"report.rules.subtitle": "Elektu ĉiujn, kiuj validas",
"report.rules.title": "Which rules are being violated?",
"report.statuses.subtitle": "Select all that apply",
"report.statuses.subtitle": "Elektu ĉiujn, kiuj validas",
"report.statuses.title": "Are there any posts that back up this report?",
"report.submit": "Sendi",
"report.target": "Signali {target}",
"report.thanks.take_action": "Here are your options for controlling what you see on Mastodon:",
"report.thanks.take_action_actionable": "While we review this, you can take action against @{name}:",
"report.thanks.title": "Don't want to see this?",
"report.thanks.title_actionable": "Thanks for reporting, we'll look into this.",
"report.thanks.title": "Ĉu vi ne volas vidi ĉi tion?",
"report.thanks.title_actionable": "Dankon pro raporti, ni esploros ĉi tion.",
"report.unfollow": "Malsekvi @{name}",
"report.unfollow_explanation": "You are following this account. To not see their posts in your home feed anymore, unfollow them.",
"report.unfollow_explanation": "Vi estas sekvanta ĉi tiun konton. Por ne plu vidi ties afiŝojn en via hejma templinio, malsekvu ilin.",
"search.placeholder": "Serĉi",
"search_popout.search_format": "Detala serĉo",
"search_popout.tips.full_text": "Simplaj tekstoj montras la mesaĝojn, kiujn vi skribis, stelumis, diskonigis, aŭ en kiuj vi estis menciita, sed ankaŭ kongruajn uzantnomojn, montratajn nomojn, kaj kradvortojn.",
@ -436,7 +436,7 @@
"search_results.accounts": "Homoj",
"search_results.all": "Ĉiuj",
"search_results.hashtags": "Kradvortoj",
"search_results.nothing_found": "Could not find anything for these search terms",
"search_results.nothing_found": "Povis trovi nenion por ĉi tiuj serĉaj terminoj",
"search_results.statuses": "Mesaĝoj",
"search_results.statuses_fts_disabled": "Serĉi mesaĝojn laŭ enhavo ne estas ebligita en ĉi tiu Mastodon-servilo.",
"search_results.total": "{count, number} {count, plural, one {rezulto} other {rezultoj}}",
@ -515,6 +515,7 @@
"upload_error.poll": "Alŝuto de dosiero ne permesita kun balotenketo.",
"upload_form.audio_description": "Priskribi por homoj kiuj malfacile aŭdi",
"upload_form.description": "Priskribi por misvidantaj homoj",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Redakti",
"upload_form.thumbnail": "Ŝanĝi etigita bildo",
"upload_form.undo": "Forigi",

@ -515,6 +515,7 @@
"upload_error.poll": "No se permite la subida de archivos en encuestas.",
"upload_form.audio_description": "Agregá una descripción para personas con dificultades auditivas",
"upload_form.description": "Agregá una descripción para personas con dificultades visuales",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Editar",
"upload_form.thumbnail": "Cambiar miniatura",
"upload_form.undo": "Eliminar",

@ -515,6 +515,7 @@
"upload_error.poll": "Subida de archivos no permitida con encuestas.",
"upload_form.audio_description": "Describir para personas con problemas auditivos",
"upload_form.description": "Describir para los usuarios con dificultad visual",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Editar",
"upload_form.thumbnail": "Cambiar miniatura",
"upload_form.undo": "Borrar",

@ -515,6 +515,7 @@
"upload_error.poll": "Subida de archivos no permitida con encuestas.",
"upload_form.audio_description": "Describir para personas con problemas auditivos",
"upload_form.description": "Describir para los usuarios con dificultad visual",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Editar",
"upload_form.thumbnail": "Cambiar miniatura",
"upload_form.undo": "Borrar",

@ -515,6 +515,7 @@
"upload_error.poll": "Küsitlustes pole faili üleslaadimine lubatud.",
"upload_form.audio_description": "Kirjelda kuulmispuudega inimeste jaoks",
"upload_form.description": "Kirjelda vaegnägijatele",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Redigeeri",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.undo": "Kustuta",

@ -515,6 +515,7 @@
"upload_error.poll": "Ez da inkestetan fitxategiak igotzea onartzen.",
"upload_form.audio_description": "Deskribatu entzumen galera duten pertsonentzat",
"upload_form.description": "Deskribatu ikusmen arazoak dituztenentzat",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Editatu",
"upload_form.thumbnail": "Aldatu koadro txikia",
"upload_form.undo": "Ezabatu",

@ -515,6 +515,7 @@
"upload_error.poll": "بارگذاری پرونده در نظرسنجی‌ها مجاز نیست.",
"upload_form.audio_description": "برای ناشنوایان توصیفش کنید",
"upload_form.description": "برای کم‌بینایان توصیفش کنید",
"upload_form.description_missing": "No description added",
"upload_form.edit": "ویرایش",
"upload_form.thumbnail": "تغییر بندانگشتی",
"upload_form.undo": "حذف",

@ -515,6 +515,7 @@
"upload_error.poll": "Tiedon lataaminen ei ole sallittua kyselyissä.",
"upload_form.audio_description": "Kuvaile kuulovammaisille",
"upload_form.description": "Anna kuvaus näkörajoitteisia varten",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Muokkaa",
"upload_form.thumbnail": "Vaihda pikkukuva",
"upload_form.undo": "Peru",

@ -515,6 +515,7 @@
"upload_error.poll": "Lenvoi de fichiers nest pas autorisé avec les sondages.",
"upload_form.audio_description": "Décrire pour les personnes ayant des difficultés daudition",
"upload_form.description": "Décrire pour les malvoyant·e·s",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Modifier",
"upload_form.thumbnail": "Changer la vignette",
"upload_form.undo": "Supprimer",

@ -515,6 +515,7 @@
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Edit",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.undo": "Delete",

@ -515,6 +515,7 @@
"upload_error.poll": "Chan fhaod thu faidhle a luchdadh suas an cois cunntais-bheachd.",
"upload_form.audio_description": "Mìnich e dhan fheadhainn le èisteachd bheag",
"upload_form.description": "Mìnich e dhan fheadhainn le cion-lèirsinne",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Deasaich",
"upload_form.thumbnail": "Atharraich an dealbhag",
"upload_form.undo": "Sguab às",

@ -515,6 +515,7 @@
"upload_error.poll": "Non se poden subir ficheiros nas enquisas.",
"upload_form.audio_description": "Describir para persoas con problemas auditivos",
"upload_form.description": "Describir para persoas con problemas visuais",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Editar",
"upload_form.thumbnail": "Cambiar a miniatura",
"upload_form.undo": "Eliminar",

@ -515,6 +515,7 @@
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "תיאור לכבדי ראיה",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Edit",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.undo": "ביטול",

@ -515,6 +515,7 @@
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
"upload_form.description_missing": "No description added",
"upload_form.edit": "संशोधन करें",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.undo": "मिटाए",

@ -515,6 +515,7 @@
"upload_error.poll": "Prijenos datoteka nije dopušten kod anketa.",
"upload_form.audio_description": "Opišite za ljude sa slabim sluhom",
"upload_form.description": "Opišite za ljude sa slabim vidom",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Uredi",
"upload_form.thumbnail": "Promijeni pretpregled",
"upload_form.undo": "Obriši",

@ -515,6 +515,7 @@
"upload_error.poll": "Szavazásnál nem lehet fájlt feltölteni.",
"upload_form.audio_description": "Írja le a hallássérültek számára",
"upload_form.description": "Leírás látáskorlátozottak számára",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Szerkesztés",
"upload_form.thumbnail": "Előnézet megváltoztatása",
"upload_form.undo": "Törlés",

@ -515,6 +515,7 @@
"upload_error.poll": "Հարցումների հետ նիշք կցել հնարաւոր չէ։",
"upload_form.audio_description": "Նկարագրիր ձայնագրութեան բովանդակութիւնը լսողական խնդիրներով անձանց համար",
"upload_form.description": "Նկարագիր՝ տեսողական խնդիրներ ունեցողների համար",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Խմբագրել",
"upload_form.thumbnail": "Փոխել պատկերակը",
"upload_form.undo": "Յետարկել",

@ -515,6 +515,7 @@
"upload_error.poll": "Unggah berkas tak diizinkan di japat ini.",
"upload_form.audio_description": "Penjelasan untuk orang dengan gangguan pendengaran",
"upload_form.description": "Deskripsikan untuk mereka yang tidak bisa melihat dengan jelas",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Sunting",
"upload_form.thumbnail": "Ubah gambar kecil",
"upload_form.undo": "Undo",

@ -515,6 +515,7 @@
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Edit",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.undo": "Desfacar",

@ -515,6 +515,7 @@
"upload_error.poll": "Innsending skráa er ekki leyfð í könnunum.",
"upload_form.audio_description": "Lýstu þessu fyrir heyrnarskerta",
"upload_form.description": "Lýstu þessu fyrir sjónskerta",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Breyta",
"upload_form.thumbnail": "Skipta um smámynd",
"upload_form.undo": "Eyða",

@ -148,7 +148,7 @@
"embed.preview": "Ecco come apparirà:",
"emoji_button.activity": "Attività",
"emoji_button.custom": "Personalizzato",
"emoji_button.flags": "Segnalazioni",
"emoji_button.flags": "Bandiere",
"emoji_button.food": "Cibo & Bevande",
"emoji_button.label": "Inserisci emoji",
"emoji_button.nature": "Natura",
@ -483,7 +483,7 @@
"status.show_less_all": "Mostra meno per tutti",
"status.show_more": "Mostra di più",
"status.show_more_all": "Mostra di più per tutti",
"status.show_thread": "Mostra thread",
"status.show_thread": "Mostra conversazione",
"status.uncached_media_warning": "Non disponibile",
"status.unmute_conversation": "Annulla silenzia conversazione",
"status.unpin": "Non fissare in cima al profilo",
@ -503,7 +503,7 @@
"timeline_hint.resources.followers": "Follower",
"timeline_hint.resources.follows": "Segue",
"timeline_hint.resources.statuses": "Post meno recenti",
"trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} persone}} ne parla·no",
"trends.counter_by_accounts": "{count, plural, one {{counter} persona} other {{counter} persone}} ne parlano",
"trends.trending_now": "Di tendenza ora",
"ui.beforeunload": "La bozza andrà persa se esci da Mastodon.",
"units.short.billion": "{count}G",
@ -515,6 +515,7 @@
"upload_error.poll": "Caricamento file non consentito nei sondaggi.",
"upload_form.audio_description": "Descrizione per persone con difetti uditivi",
"upload_form.description": "Descrizione per utenti con disabilità visive",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Modifica",
"upload_form.thumbnail": "Cambia miniatura",
"upload_form.undo": "Cancella",

@ -520,6 +520,7 @@
"upload_error.poll": "アンケートではファイルをアップロードできません。",
"upload_form.audio_description": "聴取が難しいユーザーへの説明",
"upload_form.description": "閲覧が難しいユーザーへの説明",
"upload_form.description_missing": "No description added",
"upload_form.edit": "編集",
"upload_form.thumbnail": "サムネイルを変更",
"upload_form.undo": "削除",

@ -515,6 +515,7 @@
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "აღწერილობა ვიზუალურად უფასურისთვის",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Edit",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.undo": "გაუქმება",

@ -515,6 +515,7 @@
"upload_error.poll": "Ur ittusireg ara usali n ufaylu s tefranin.",
"upload_form.audio_description": "Glem-d i yemdanen i yesɛan ugur deg tmesliwt",
"upload_form.description": "Glem-d i yemdaneni yesɛan ugur deg yiẓri",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Ẓreg",
"upload_form.thumbnail": "Beddel tugna",
"upload_form.undo": "Kkes",

@ -515,6 +515,7 @@
"upload_error.poll": "Сауалнамамен бірге файл жүктеуге болмайды.",
"upload_form.audio_description": "Есту қабілеті нашар адамдарға сипаттама беріңіз",
"upload_form.description": "Көру қабілеті нашар адамдар үшін сипаттаңыз",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Түзету",
"upload_form.thumbnail": "Суретті өзгерту",
"upload_form.undo": "Өшіру",

@ -515,6 +515,7 @@
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Edit",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.undo": "Delete",

@ -131,7 +131,7 @@
"confirmations.mute.explanation": "이 동작은 그의 게시물, 그를 멘션하는 게시물을 숨깁니다, 하지만 여전히 그가 당신의 게시물을 보고 팔로우 할 수 있습니다.",
"confirmations.mute.message": "정말로 {name}를 뮤트하시겠습니까?",
"confirmations.redraft.confirm": "삭제하고 다시 쓰기",
"confirmations.redraft.message": "정말로 이 게시물을 삭제하고 다시 쓰시겠습니까? 해당 포스트에 대한 부스트와 즐겨찾기를 잃게 되고 원본에 대한 답장은 연결 되지 않습니다.",
"confirmations.redraft.message": "정말로 이 게시물을 삭제하고 다시 쓰시겠습니까? 해당 게시물에 대한 부스트와 즐겨찾기를 잃게 되고 원본에 대한 답장은 연결 되지 않습니다.",
"confirmations.reply.confirm": "답글",
"confirmations.reply.message": "답글을 달기 위해 현재 작성 중인 메시지가 덮어 씌워집니다. 진행하시겠습니까?",
"confirmations.unfollow.confirm": "팔로우 해제",
@ -365,7 +365,7 @@
"poll.votes": "{votes} 표",
"poll_button.add_poll": "투표 추가",
"poll_button.remove_poll": "투표 삭제",
"privacy.change": "포스트의 프라이버시 설정을 변경",
"privacy.change": "게시물의 프라이버시 설정을 변경",
"privacy.direct.long": "멘션한 사용자에게만 공개",
"privacy.direct.short": "다이렉트",
"privacy.private.long": "팔로워에게만 공개",
@ -445,7 +445,7 @@
"status.block": "@{name} 차단",
"status.bookmark": "보관",
"status.cancel_reblog_private": "부스트 취소",
"status.cannot_reblog": "이 포스트는 부스트 할 수 없습니다",
"status.cannot_reblog": "이 게시물은 부스트 할 수 없습니다",
"status.copy": "게시물 링크 복사",
"status.delete": "삭제",
"status.detailed_status": "대화 자세히 보기",
@ -515,6 +515,7 @@
"upload_error.poll": "파일 업로드는 투표와 함께 첨부할 수 없습니다.",
"upload_form.audio_description": "청각 장애인을 위한 설명",
"upload_form.description": "시각장애인을 위한 설명",
"upload_form.description_missing": "No description added",
"upload_form.edit": "편집",
"upload_form.thumbnail": "썸네일 변경",
"upload_form.undo": "삭제",

@ -515,6 +515,7 @@
"upload_error.poll": "Di rapirsîyan de mafê barkirina pelan nayê dayîn.",
"upload_form.audio_description": "Ji bona kesên kêm dibihîsin re pênase bike",
"upload_form.description": "Ji bona astengdarên dîtinê re vebêje",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Serrast bike",
"upload_form.thumbnail": "Wêneyê biçûk biguherîne",
"upload_form.undo": "Jê bibe",

@ -515,6 +515,7 @@
"upload_error.poll": "Nyns yw gesys ughkarga restrennow gans sondyansow.",
"upload_form.audio_description": "Deskrifewgh rag tus vodharek",
"upload_form.description": "Deskrifewgh rag tus dhallek",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Golegi",
"upload_form.thumbnail": "Chanjya avenik",
"upload_form.undo": "Dilea",

@ -515,6 +515,7 @@
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Edit",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.undo": "Delete",

@ -515,6 +515,7 @@
"upload_error.poll": "Datņu augšupielādes aptaujās nav atļautas.",
"upload_form.audio_description": "Aprakstiet cilvēkiem ar dzirdes zudumu",
"upload_form.description": "Aprakstiet vājredzīgajiem",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Rediģēt",
"upload_form.thumbnail": "Nomainīt sīktēlu",
"upload_form.undo": "Dzēst",

@ -515,6 +515,7 @@
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Edit",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.undo": "Delete",

@ -515,6 +515,7 @@
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "കേൾവിശക്തി ഇല്ലാത്തവർക്ക് വേണ്ടി വിവരണം നൽകൂ",
"upload_form.description": "കാഴ്ചശക്തി ഇല്ലാത്തവർക്ക് വേണ്ടി വിവരണം നൽകൂ",
"upload_form.description_missing": "No description added",
"upload_form.edit": "തിരുത്തുക",
"upload_form.thumbnail": "ലഘുചിത്രം മാറ്റുക",
"upload_form.undo": "ഇല്ലാതാക്കുക",

@ -515,6 +515,7 @@
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Edit",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.undo": "Delete",

@ -515,6 +515,7 @@
"upload_error.poll": "Tidak boleh memuat naik fail bersama undian.",
"upload_form.audio_description": "Jelaskan untuk orang yang ada masalah pendengaran",
"upload_form.description": "Jelaskan untuk orang yang ada masalah penglihatan",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Sunting",
"upload_form.thumbnail": "Ubah gambar kecil",
"upload_form.undo": "Padam",

@ -515,6 +515,7 @@
"upload_error.poll": "Het uploaden van bestanden is in polls niet toegestaan.",
"upload_form.audio_description": "Omschrijf dit voor mensen met een auditieve beperking",
"upload_form.description": "Omschrijf dit voor mensen met een visuele beperking",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Bewerken",
"upload_form.thumbnail": "Miniatuurafbeelding wijzigen",
"upload_form.undo": "Verwijderen",

@ -515,6 +515,7 @@
"upload_error.poll": "Filopplasting ikkje tillate med meiningsmålingar.",
"upload_form.audio_description": "Grei ut for folk med nedsett høyrsel",
"upload_form.description": "Skildr for synshemja",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Rediger",
"upload_form.thumbnail": "Bytt miniatyrbilete",
"upload_form.undo": "Slett",

@ -515,6 +515,7 @@
"upload_error.poll": "Filopplasting inni avstemninger er ikke tillatt.",
"upload_form.audio_description": "Beskriv det for folk med hørselstap",
"upload_form.description": "Beskriv for synshemmede",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Rediger",
"upload_form.thumbnail": "Endre miniatyrbilde",
"upload_form.undo": "Angre",

@ -106,7 +106,7 @@
"compose_form.poll.switch_to_single": "Cambiar lo sondatge per permetre una sola causida",
"compose_form.publish": "Tut",
"compose_form.publish_loud": "{publish}!",
"compose_form.save_changes": "Save changes",
"compose_form.save_changes": "Salvar los cambiaments",
"compose_form.sensitive.hide": "Marcar coma sensible",
"compose_form.sensitive.marked": "Lo mèdia es marcat coma sensible",
"compose_form.sensitive.unmarked": "Lo mèdia es pas marcat coma sensible",
@ -187,9 +187,9 @@
"error.unexpected_crash.next_steps_addons": "Ensajatz de los desactivar o actualizatz la pagina. Se aquò ajuda pas, podètz ensajar dutilizar Mastodon via un autre navigador o una aplicacion nativa.",
"errors.unexpected_crash.copy_stacktrace": "Copiar las traças al quichapapièrs",
"errors.unexpected_crash.report_issue": "Senhalar un problèma",
"explore.search_results": "Search results",
"explore.search_results": "Resultats de recèrca",
"explore.suggested_follows": "For you",
"explore.title": "Explore",
"explore.title": "Explorar",
"explore.trending_links": "News",
"explore.trending_statuses": "Posts",
"explore.trending_tags": "Hashtags",
@ -362,7 +362,7 @@
"poll.total_votes": "{count, plural, one {# vòte} other {# vòtes}}",
"poll.vote": "Votar",
"poll.voted": "Avètz votat per aquesta responsa",
"poll.votes": "{votes, plural, one {# vote} other {# votes}}",
"poll.votes": "{votes, plural, one {# vòte} other {# vòtes}}",
"poll_button.add_poll": "Ajustar un sondatge",
"poll_button.remove_poll": "Levar lo sondatge",
"privacy.change": "Ajustar la confidencialitat del messatge",
@ -378,35 +378,35 @@
"regeneration_indicator.label": "Cargament…",
"regeneration_indicator.sublabel": "Sèm a preparar vòstre flux dacuèlh!",
"relative_time.days": "fa {number}d",
"relative_time.full.days": "{number, plural, one {# day} other {# days}} ago",
"relative_time.full.hours": "{number, plural, one {# hour} other {# hours}} ago",
"relative_time.full.just_now": "just now",
"relative_time.full.minutes": "{number, plural, one {# minute} other {# minutes}} ago",
"relative_time.full.seconds": "{number, plural, one {# second} other {# seconds}} ago",
"relative_time.full.days": "{number, plural, one {# jorn} other {# jorns}} ago",
"relative_time.full.hours": "fa {number, plural, one {# ora} other {# oras}}",
"relative_time.full.just_now": "ara",
"relative_time.full.minutes": "fa {number, plural, one {# minuta} other {# minutas}}",
"relative_time.full.seconds": "fa {number, plural, one {# segonda} other {# segondas}}",
"relative_time.hours": "fa {number}h",
"relative_time.just_now": "ara",
"relative_time.minutes": "fa {number} min",
"relative_time.seconds": "fa {number}s",
"relative_time.today": "uèi",
"reply_indicator.cancel": "Anullar",
"report.block": "Block",
"report.block": "Blocar",
"report.block_explanation": "You will not see their posts. They will not be able to see your posts or follow you. They will be able to tell that they are blocked.",
"report.categories.other": "Other",
"report.categories.spam": "Spam",
"report.categories.violation": "Content violates one or more server rules",
"report.category.subtitle": "Choose the best match",
"report.category.title": "Tell us what's going on with this {type}",
"report.category.title_account": "profile",
"report.category.title_status": "post",
"report.close": "Done",
"report.category.title_account": "perfil",
"report.category.title_status": "publicacion",
"report.close": "Acabat",
"report.comment.title": "Is there anything else you think we should know?",
"report.forward": "Far sègre a {target}",
"report.forward_hint": "Lo compte ven dun autre servidor. Volètz mandar una còpia anonima del rapòrt enlai tanben?",
"report.mute": "Mute",
"report.mute": "Amudir",
"report.mute_explanation": "You will not see their posts. They can still follow you and see your posts and will not know that they are muted.",
"report.next": "Next",
"report.next": "Seguent",
"report.placeholder": "Comentaris addicionals",
"report.reasons.dislike": "I don't like it",
"report.reasons.dislike": "Magrada pas",
"report.reasons.dislike_description": "It is not something you want to see",
"report.reasons.other": "It's something else",
"report.reasons.other_description": "The issue does not fit into other categories",
@ -450,7 +450,7 @@
"status.delete": "Escafar",
"status.detailed_status": "Vista detalhada de la convèrsa",
"status.direct": "Messatge per @{name}",
"status.edit": "Edit",
"status.edit": "Modificar",
"status.edited": "Edited {date}",
"status.edited_x_times": "Edited {count, plural, one {{count} time} other {{count} times}}",
"status.embed": "Embarcar",
@ -515,6 +515,7 @@
"upload_error.poll": "Lo mandadís de fichièr es pas autorizat pels sondatges.",
"upload_form.audio_description": "Descriure per las personas amb pèrdas auditivas",
"upload_form.description": "Descripcion pels mal vesents",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Modificar",
"upload_form.thumbnail": "Cambiar la vinheta",
"upload_form.undo": "Suprimir",

@ -515,6 +515,7 @@
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Edit",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.undo": "Delete",

@ -520,6 +520,7 @@
"upload_error.poll": "Dołączanie plików nie dozwolone z głosowaniami.",
"upload_form.audio_description": "Opisz dla osób niesłyszących i niedosłyszących",
"upload_form.description": "Wprowadź opis dla niewidomych i niedowidzących",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Edytuj",
"upload_form.thumbnail": "Zmień miniaturę",
"upload_form.undo": "Usuń",

@ -515,6 +515,7 @@
"upload_error.poll": "Mídias não podem ser anexadas em toots com enquetes.",
"upload_form.audio_description": "Descrever para deficientes auditivos",
"upload_form.description": "Descrever para deficientes visuais",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Editar",
"upload_form.thumbnail": "Alterar miniatura",
"upload_form.undo": "Excluir",

@ -515,6 +515,7 @@
"upload_error.poll": "Carregamento de ficheiros não é permitido em votações.",
"upload_form.audio_description": "Descreva para pessoas com diminuição da acuidade auditiva",
"upload_form.description": "Descrição da imagem para pessoas com dificuldades visuais",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Editar",
"upload_form.thumbnail": "Alterar miniatura",
"upload_form.undo": "Eliminar",

@ -515,6 +515,7 @@
"upload_error.poll": "Încărcarea fișierului nu este permisă cu sondaje.",
"upload_form.audio_description": "Descrie pentru persoanele cu deficiență a auzului",
"upload_form.description": "Adaugă o descriere pentru persoanele cu deficiențe de vedere",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Modifică",
"upload_form.thumbnail": "Schimbă miniatura",
"upload_form.undo": "Șterge",

@ -515,6 +515,7 @@
"upload_error.poll": "К опросам нельзя прикреплять файлы.",
"upload_form.audio_description": "Опишите аудиофайл для людей с нарушением слуха",
"upload_form.description": "Добавьте описание для людей с нарушениями зрения:",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Изменить",
"upload_form.thumbnail": "Изменить обложку",
"upload_form.undo": "Отменить",

@ -515,6 +515,7 @@
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Edit",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.undo": "Delete",

@ -515,6 +515,7 @@
"upload_error.poll": "Non si permitit s'imbiu de archìvios in is sondàgios.",
"upload_form.audio_description": "Descritzione pro persones cun pèrdida auditiva",
"upload_form.description": "Descritzione pro persones cun problemas visuales",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Modìfica",
"upload_form.thumbnail": "Càmbia sa miniadura",
"upload_form.undo": "Cantzella",

@ -515,6 +515,7 @@
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
"upload_form.description_missing": "No description added",
"upload_form.edit": "සංස්කරණය",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.undo": "Delete",

@ -515,6 +515,7 @@
"upload_error.poll": "Nahrávanie súborov pri anketách nieje možné.",
"upload_form.audio_description": "Popíš, pre ľudí so stratou sluchu",
"upload_form.description": "Opis pre slabo vidiacich",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Uprav",
"upload_form.thumbnail": "Zmeniť miniatúru",
"upload_form.undo": "Vymaž",

@ -46,10 +46,10 @@
"account.unfollow": "Prenehaj slediti",
"account.unmute": "Odtišaj @{name}",
"account.unmute_notifications": "Vklopi obvestila od @{name}",
"account.unmute_short": "Unmute",
"account.unmute_short": "Odtišaj",
"account_note.placeholder": "Click to add a note",
"admin.dashboard.daily_retention": "User retention rate by day after sign-up",
"admin.dashboard.monthly_retention": "User retention rate by month after sign-up",
"admin.dashboard.daily_retention": "Mera ohranjanja uporabnikov po dnevih od registracije",
"admin.dashboard.monthly_retention": "Mera ohranjanja uporabnikov po mesecih od registracije",
"admin.dashboard.retention.average": "Povprečje",
"admin.dashboard.retention.cohort": "Mesec prijave",
"admin.dashboard.retention.cohort_size": "Novi uporabniki",
@ -515,6 +515,7 @@
"upload_error.poll": "Prenos datoteke z anketami ni dovoljen.",
"upload_form.audio_description": "Opiši za osebe z okvaro sluha",
"upload_form.description": "Opišite za slabovidne",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Uredi",
"upload_form.thumbnail": "Spremeni sličico",
"upload_form.undo": "Izbriši",

@ -515,6 +515,7 @@
"upload_error.poll": "Me pyetësorët slejohet ngarkim kartelash.",
"upload_form.audio_description": "Përshkruajeni për persona me dëgjim të kufizuar",
"upload_form.description": "Përshkruajeni për persona me probleme shikimi",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Përpunoni",
"upload_form.thumbnail": "Ndryshoni miniaturën",
"upload_form.undo": "Fshije",

@ -515,6 +515,7 @@
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Opiši za slabovide osobe",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Edit",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.undo": "Opozovi",

@ -515,6 +515,7 @@
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Опишите за особе са оштећеним видом",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Уреди",
"upload_form.thumbnail": "Промени приказ слика",
"upload_form.undo": "Обриши",

@ -515,6 +515,7 @@
"upload_error.poll": "Filuppladdning tillåts inte med omröstningar.",
"upload_form.audio_description": "Beskriv för personer med hörselnedsättning",
"upload_form.description": "Beskriv för synskadade",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Redigera",
"upload_form.thumbnail": "Ändra miniatyr",
"upload_form.undo": "Radera",

@ -515,6 +515,7 @@
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Edit",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.undo": "Delete",

@ -515,6 +515,7 @@
"upload_error.poll": "கோப்பு பதிவேற்றம் அனுமதிக்கப்படவில்லை.",
"upload_form.audio_description": "செவித்திறன் குறைபாடு உள்ளவர்களுக்காக விளக்குக‌",
"upload_form.description": "பார்வையற்ற விவரிக்கவும்",
"upload_form.description_missing": "No description added",
"upload_form.edit": "தொகு",
"upload_form.thumbnail": "சிறுபடத்தை மாற்ற",
"upload_form.undo": "நீக்கு",

@ -515,6 +515,7 @@
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Edit",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.undo": "Delete",

@ -515,6 +515,7 @@
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "దృష్టి లోపమున్న వారి కోసం వివరించండి",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Edit",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.undo": "తొలగించు",

@ -515,6 +515,7 @@
"upload_error.poll": "ไม่อนุญาตให้อัปโหลดไฟล์กับการลงคะแนน",
"upload_form.audio_description": "อธิบายสำหรับผู้สูญเสียการได้ยิน",
"upload_form.description": "อธิบายสำหรับผู้บกพร่องทางการมองเห็น",
"upload_form.description_missing": "No description added",
"upload_form.edit": "แก้ไข",
"upload_form.thumbnail": "เปลี่ยนภาพขนาดย่อ",
"upload_form.undo": "ลบ",

@ -515,6 +515,7 @@
"upload_error.poll": "Anketlerde dosya yüklemesine izin verilmez.",
"upload_form.audio_description": "İşitme kaybı olan kişiler için tarif edin",
"upload_form.description": "Görme engelliler için açıklama",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Düzenle",
"upload_form.thumbnail": "Küçük resmi değiştir",
"upload_form.undo": "Sil",

@ -515,6 +515,7 @@
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Үзгәртү",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.undo": "Бетерү",

@ -515,6 +515,7 @@
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Edit",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.undo": "Delete",

@ -412,9 +412,9 @@
"report.reasons.other_description": "The issue does not fit into other categories",
"report.reasons.spam": "Це спам",
"report.reasons.spam_description": "Malicious links, fake engagement, or repetitive replies",
"report.reasons.violation": "It violates server rules",
"report.reasons.violation_description": "You are aware that it breaks specific rules",
"report.rules.subtitle": "Select all that apply",
"report.reasons.violation": "Порушує правила сервера",
"report.reasons.violation_description": "Ви впевнені, що це порушує певні правила",
"report.rules.subtitle": "Виберіть усі варіанти, що підходять",
"report.rules.title": "Які правила порушено?",
"report.statuses.subtitle": "Виберіть усі варіанти, що підходять",
"report.statuses.title": "Are there any posts that back up this report?",
@ -515,6 +515,7 @@
"upload_error.poll": "Не можна завантажувати файли до опитувань.",
"upload_form.audio_description": "Опишіть для людей із вадами слуху",
"upload_form.description": "Опишіть для людей з вадами зору",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Змінити",
"upload_form.thumbnail": "Змінити мініатюру",
"upload_form.undo": "Видалити",

@ -515,6 +515,7 @@
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Edit",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.undo": "Delete",

@ -11,7 +11,7 @@
"account.direct": "Nhắn riêng @{name}",
"account.disable_notifications": "Không thông báo khi @{name} đăng tút",
"account.domain_blocked": "Người đã chặn",
"account.edit_profile": "Chỉnh sửa trang cá nhân",
"account.edit_profile": "Sửa hồ sơ",
"account.enable_notifications": "Thông báo khi @{name} đăng tút",
"account.endorse": "Tôn vinh người này",
"account.follow": "Theo dõi",
@ -227,7 +227,7 @@
"intervals.full.minutes": "{number, plural, other {# phút}}",
"keyboard_shortcuts.back": "trở lại",
"keyboard_shortcuts.blocked": "mở danh sách người đã chặn",
"keyboard_shortcuts.boost": "Đăng lại",
"keyboard_shortcuts.boost": "đăng lại",
"keyboard_shortcuts.column": "mở các mục",
"keyboard_shortcuts.compose": "mở khung soạn tút",
"keyboard_shortcuts.description": "Mô tả",
@ -244,11 +244,11 @@
"keyboard_shortcuts.local": "mở máy chủ của bạn",
"keyboard_shortcuts.mention": "nhắc đến ai đó",
"keyboard_shortcuts.muted": "mở danh sách người đã ẩn",
"keyboard_shortcuts.my_profile": "mở trang cá nhân của bạn",
"keyboard_shortcuts.my_profile": "mở hồ sơ của bạn",
"keyboard_shortcuts.notifications": "mở mục thông báo",
"keyboard_shortcuts.open_media": "mở ảnh hoặc video",
"keyboard_shortcuts.pinned": "mở danh sách tút ghim",
"keyboard_shortcuts.profile": "mở trang cá nhân của người viết tút",
"keyboard_shortcuts.profile": "mở hồ sơ của người viết tút",
"keyboard_shortcuts.reply": "trả lời",
"keyboard_shortcuts.requests": "mở danh sách yêu cầu theo dõi",
"keyboard_shortcuts.search": "mở tìm kiếm",
@ -293,7 +293,7 @@
"navigation_bar.direct": "Tin nhắn",
"navigation_bar.discover": "Khám phá",
"navigation_bar.domain_blocks": "Máy chủ đã ẩn",
"navigation_bar.edit_profile": "Trang cá nhân",
"navigation_bar.edit_profile": "Sửa hồ sơ",
"navigation_bar.explore": "Xu hướng",
"navigation_bar.favourites": "Thích",
"navigation_bar.filters": "Bộ lọc từ ngữ",
@ -465,7 +465,7 @@
"status.mute": "Ẩn @{name}",
"status.mute_conversation": "Không quan tâm nữa",
"status.open": "Xem nguyên văn",
"status.pin": "Ghim lên trang cá nhân",
"status.pin": "Ghim lên hồ sơ",
"status.pinned": "Tút đã ghim",
"status.read_more": "Đọc tiếp",
"status.reblog": "Đăng lại",
@ -486,7 +486,7 @@
"status.show_thread": "Xem chuỗi tút này",
"status.uncached_media_warning": "Uncached",
"status.unmute_conversation": "Quan tâm",
"status.unpin": "Bỏ ghim trên trang cá nhân",
"status.unpin": "Bỏ ghim trên hồ sơ",
"suggestions.dismiss": "Tắt đề xuất",
"suggestions.header": "Có thể bạn quan tâm…",
"tabs_bar.federated_timeline": "Thế giới",
@ -515,6 +515,7 @@
"upload_error.poll": "Không cho phép đính kèm tập tin.",
"upload_form.audio_description": "Mô tả cho người mất thính giác",
"upload_form.description": "Mô tả cho người khiếm thị",
"upload_form.description_missing": "No description added",
"upload_form.edit": "Biên tập",
"upload_form.thumbnail": "Đổi ảnh thumbnail",
"upload_form.undo": "Xóa bỏ",

@ -515,6 +515,7 @@
"upload_error.poll": "File upload not allowed with polls.",
"upload_form.audio_description": "Describe for people with hearing loss",
"upload_form.description": "Describe for the visually impaired",
"upload_form.description_missing": "No description added",
"upload_form.edit": "ⵙⵏⴼⵍ",
"upload_form.thumbnail": "Change thumbnail",
"upload_form.undo": "ⴽⴽⵙ",

@ -160,7 +160,7 @@
"emoji_button.search_results": "搜索结果",
"emoji_button.symbols": "符号",
"emoji_button.travel": "旅行和地点",
"empty_column.account_suspended": "账户被封禁",
"empty_column.account_suspended": "账户已停用",
"empty_column.account_timeline": "这里没有嘟文!",
"empty_column.account_unavailable": "个人资料不可用",
"empty_column.blocks": "你目前没有屏蔽任何用户。",
@ -515,6 +515,7 @@
"upload_error.poll": "投票中不允许上传文件。",
"upload_form.audio_description": "为听障人士添加文字描述",
"upload_form.description": "为视觉障碍人士添加文字说明",
"upload_form.description_missing": "No description added",
"upload_form.edit": "编辑",
"upload_form.thumbnail": "更改缩略图",
"upload_form.undo": "删除",

@ -515,6 +515,7 @@
"upload_error.poll": "不允許在投票上傳檔案。",
"upload_form.audio_description": "簡單描述內容給聽障人士",
"upload_form.description": "為視覺障礙人士添加文字說明",
"upload_form.description_missing": "No description added",
"upload_form.edit": "編輯",
"upload_form.thumbnail": "更改預覽圖",
"upload_form.undo": "刪除",

@ -1,12 +1,12 @@
{
"account.account_note_header": "備註",
"account.add_or_remove_from_list": "從名單中新增或移除",
"account.add_or_remove_from_list": "從列表中新增或移除",
"account.badges.bot": "機器人",
"account.badges.group": "群組",
"account.block": "封鎖 @{name}",
"account.block_domain": "封鎖來自 {domain} 網域的所有內容",
"account.blocked": "已封鎖",
"account.browse_more_on_origin_server": "該伺服器的個人檔案頁上瀏覽更多",
"account.browse_more_on_origin_server": "該伺服器的個人檔案頁上瀏覽更多",
"account.cancel_follow_request": "取消跟隨請求",
"account.direct": "傳私訊給 @{name}",
"account.disable_notifications": "取消來自 @{name} 嘟文的通知",
@ -53,7 +53,7 @@
"admin.dashboard.retention.average": "平均",
"admin.dashboard.retention.cohort": "註冊月份",
"admin.dashboard.retention.cohort_size": "新使用者",
"alert.rate_limited.message": "請在 {retry_time, time, medium} 後重試",
"alert.rate_limited.message": "請在 {retry_time, time, medium} 後重試",
"alert.rate_limited.title": "已限速",
"alert.unexpected.message": "發生了非預期的錯誤。",
"alert.unexpected.title": "哎呀!",
@ -76,7 +76,7 @@
"column.favourites": "最愛",
"column.follow_requests": "跟隨請求",
"column.home": "首頁",
"column.lists": "名單",
"column.lists": "列表",
"column.mutes": "已靜音的使用者",
"column.notifications": "通知",
"column.pins": "釘選的嘟文",
@ -116,26 +116,26 @@
"confirmation_modal.cancel": "取消",
"confirmations.block.block_and_report": "封鎖並檢舉",
"confirmations.block.confirm": "封鎖",
"confirmations.block.message": "確定要封鎖 {name} ",
"confirmations.block.message": "確定要封鎖 {name} ",
"confirmations.delete.confirm": "刪除",
"confirmations.delete.message": "您確定要刪除這則嘟文?",
"confirmations.delete_list.confirm": "刪除",
"confirmations.delete_list.message": "確定永久刪除此名單",
"confirmations.delete_list.message": "您確定要永久刪除此列表",
"confirmations.discard_edit_media.confirm": "捨棄",
"confirmations.discard_edit_media.message": "您在媒體描述或預覽區塊有未儲存的變更。是否要捨棄這些變更?",
"confirmations.domain_block.confirm": "隱藏整個域名",
"confirmations.domain_block.message": "真的非常確定封鎖整個 {domain} 網域嗎?大部分情況下,您只需要封鎖或靜音少數特定的帳帳戶能滿足需求了。您將不能在任何公開的時間軸及通知中看到來自此網域的內容。您來自該網域的跟隨者也將被移除。",
"confirmations.logout.confirm": "登出",
"confirmations.logout.message": "確定要登出嗎?",
"confirmations.logout.message": "確定要登出嗎?",
"confirmations.mute.confirm": "靜音",
"confirmations.mute.explanation": "這將會隱藏來自他們的嘟文與通知,但是他們還是可以查閱您的嘟文與跟隨您。",
"confirmations.mute.message": "確定靜音 {name} ",
"confirmations.mute.message": "確定靜音 {name} ",
"confirmations.redraft.confirm": "刪除並重新編輯",
"confirmations.redraft.message": "確定刪掉這則嘟文並重新編輯嗎?將會失去這則嘟文的轉嘟及最愛,且回覆這則的嘟文將會變成獨立的嘟文。",
"confirmations.redraft.message": "確定刪掉這則嘟文並重新編輯嗎?將會失去這則嘟文的轉嘟及最愛,且回覆這則的嘟文將會變成獨立的嘟文。",
"confirmations.reply.confirm": "回覆",
"confirmations.reply.message": "現在回覆將蓋掉您目前正在撰寫的訊息。是否仍要回覆?",
"confirmations.unfollow.confirm": "取消跟隨",
"confirmations.unfollow.message": "確定要取消跟隨 {name} 嗎?",
"confirmations.unfollow.message": "確定要取消跟隨 {name} 嗎?",
"conversation.delete": "刪除對話",
"conversation.mark_as_read": "標記為已讀",
"conversation.open": "檢視對話",
@ -176,8 +176,8 @@
"empty_column.hashtag": "這個主題標籤下什麼也沒有。",
"empty_column.home": "您的首頁時間軸是空的!前往 {suggestions} 或使用搜尋功能來認識其他人。",
"empty_column.home.suggestions": "檢視部份建議",
"empty_column.list": "這份名單還沒有東西。當此名單的成員嘟出了新的嘟文時,它們就會顯示於此。",
"empty_column.lists": "您還沒有建立任何名單。這裡將會顯示您所建立的名單。",
"empty_column.list": "這份列表下什麼也沒有。當此列表的成員嘟出了新的嘟文時,它們就會顯示於此。",
"empty_column.lists": "您還沒有建立任何列表。這裡將會顯示您所建立的列表。",
"empty_column.mutes": "您尚未靜音任何使用者。",
"empty_column.notifications": "您尚未收到任何通知,和別人互動開啟對話吧。",
"empty_column.public": "這裡什麼都沒有!嘗試寫些公開的嘟文,或著自己跟隨其他伺服器的使用者後就會有嘟文出現了",
@ -194,8 +194,8 @@
"explore.trending_statuses": "嘟文",
"explore.trending_tags": "主題標籤",
"follow_recommendations.done": "完成",
"follow_recommendations.heading": "跟隨您想檢視其文的人!這裡有一些建議。",
"follow_recommendations.lead": "來自您跟隨的人的貼文將會按時間順序顯示在您的家 feed 上。不要害怕犯錯,您隨時都可以取消跟隨其他人!",
"follow_recommendations.heading": "跟隨您想檢視其文的人!這裡有一些建議。",
"follow_recommendations.lead": "來自您跟隨的人之嘟文將會按時間順序顯示在您的首頁時間軸上。不要害怕犯錯,您隨時都可以取消跟隨其他人!",
"follow_request.authorize": "授權",
"follow_request.reject": "拒絕",
"follow_requests.unlocked_explanation": "即便您的帳戶未被鎖定,{domain} 的管理員認為您可能想要自己審核這些帳戶的跟隨請求。",
@ -232,10 +232,10 @@
"keyboard_shortcuts.compose": "將焦點移至撰寫文字區塊",
"keyboard_shortcuts.description": "說明",
"keyboard_shortcuts.direct": "開啟私訊欄",
"keyboard_shortcuts.down": "在名單中往下移動",
"keyboard_shortcuts.down": "在列表中往下移動",
"keyboard_shortcuts.enter": "檢視嘟文",
"keyboard_shortcuts.favourite": "加到最愛",
"keyboard_shortcuts.favourites": "開啟最愛名單",
"keyboard_shortcuts.favourites": "開啟最愛列表",
"keyboard_shortcuts.federated": "開啟聯邦時間軸",
"keyboard_shortcuts.heading": "鍵盤快速鍵",
"keyboard_shortcuts.home": "開啟首頁時間軸",
@ -243,47 +243,47 @@
"keyboard_shortcuts.legend": "顯示此圖例",
"keyboard_shortcuts.local": "開啟本機時間軸",
"keyboard_shortcuts.mention": "提及作者",
"keyboard_shortcuts.muted": "開啟靜音使用者名單",
"keyboard_shortcuts.muted": "開啟靜音使用者列表",
"keyboard_shortcuts.my_profile": "開啟個人資料頁面",
"keyboard_shortcuts.notifications": "開啟通知欄",
"keyboard_shortcuts.open_media": "開啟媒體",
"keyboard_shortcuts.pinned": "開啟釘選的嘟文名單",
"keyboard_shortcuts.pinned": "開啟釘選的嘟文列表",
"keyboard_shortcuts.profile": "開啟作者的個人資料頁面",
"keyboard_shortcuts.reply": "回應嘟文",
"keyboard_shortcuts.requests": "開啟跟隨請求名單",
"keyboard_shortcuts.requests": "開啟跟隨請求列表",
"keyboard_shortcuts.search": "將焦點移至搜尋框",
"keyboard_shortcuts.spoilers": "顯示或隱藏被折疊的正文",
"keyboard_shortcuts.start": "開啟「開始使用」欄位",
"keyboard_shortcuts.toggle_hidden": "顯示/隱藏在內容警告之後的正文",
"keyboard_shortcuts.toggle_sensitivity": "顯示 / 隱藏媒體",
"keyboard_shortcuts.toggle_hidden": "顯示隱藏在內容警告之後的正文",
"keyboard_shortcuts.toggle_sensitivity": "顯示隱藏媒體",
"keyboard_shortcuts.toot": "開始發出新嘟文",
"keyboard_shortcuts.unfocus": "取消輸入文字區塊 / 搜尋的焦點",
"keyboard_shortcuts.up": "在名單中往上移動",
"keyboard_shortcuts.up": "在列表中往上移動",
"lightbox.close": "關閉",
"lightbox.compress": "折疊圖片檢視框",
"lightbox.expand": "展開圖片檢視框",
"lightbox.next": "下一步",
"lightbox.previous": "上一步",
"lists.account.add": "新增至名單",
"lists.account.remove": "從名單中移除",
"lists.delete": "刪除名單",
"lists.edit": "編輯名單",
"lists.account.add": "新增至列表",
"lists.account.remove": "從列表中移除",
"lists.delete": "刪除列表",
"lists.edit": "編輯列表",
"lists.edit.submit": "變更標題",
"lists.new.create": "新增名單",
"lists.new.title_placeholder": "新名單標題",
"lists.new.create": "新增列表",
"lists.new.title_placeholder": "新列表標題",
"lists.replies_policy.followed": "任何跟隨的使用者",
"lists.replies_policy.list": "名單成員",
"lists.replies_policy.list": "列表成員",
"lists.replies_policy.none": "沒有人",
"lists.replies_policy.title": "顯示回覆:",
"lists.search": "搜尋您跟隨的使用者",
"lists.subheading": "您的名單",
"lists.subheading": "您的列表",
"load_pending": "{count, plural, one {# 個新項目} other {# 個新項目}}",
"loading_indicator.label": "讀取中...",
"media_gallery.toggle_visible": "切換可見性",
"missing_indicator.label": "找不到",
"missing_indicator.sublabel": "找不到此資源",
"mute_modal.duration": "持續時間",
"mute_modal.hide_notifications": "隱藏來自這位使用者的通知?",
"mute_modal.hide_notifications": "是否隱藏來自這位使用者的通知?",
"mute_modal.indefinite": "無期限",
"navigation_bar.apps": "行動應用程式",
"navigation_bar.blocks": "封鎖使用者",
@ -301,7 +301,7 @@
"navigation_bar.follows_and_followers": "跟隨中與跟隨者",
"navigation_bar.info": "關於此伺服器",
"navigation_bar.keyboard_shortcuts": "快速鍵",
"navigation_bar.lists": "名單",
"navigation_bar.lists": "列表",
"navigation_bar.logout": "登出",
"navigation_bar.mutes": "靜音的使用者",
"navigation_bar.personal": "個人",
@ -320,7 +320,7 @@
"notification.status": "{name} 剛剛嘟文",
"notification.update": "{name} 編輯了嘟文",
"notifications.clear": "清除通知",
"notifications.clear_confirmation": "確定要永久清除您的通知嗎?",
"notifications.clear_confirmation": "確定要永久清除您的通知嗎?",
"notifications.column_settings.admin.sign_up": "新註冊帳號:",
"notifications.column_settings.alert": "桌面通知",
"notifications.column_settings.favourite": "最愛:",
@ -345,13 +345,13 @@
"notifications.filter.follows": "跟隨的使用者",
"notifications.filter.mentions": "提及",
"notifications.filter.polls": "投票結果",
"notifications.filter.statuses": "已跟隨使用者的最新動態",
"notifications.filter.statuses": "您跟隨的使用者之最新動態",
"notifications.grant_permission": "授予權限",
"notifications.group": "{count} 條通知",
"notifications.mark_as_read": "將所有通知都標記為已讀",
"notifications.permission_denied": "由於之前拒絕了瀏覽器請求,因此桌面通知不可用",
"notifications.permission_denied_alert": "因為之前瀏覽器權限被拒絕,無法啟用桌面通知",
"notifications.permission_required": "因為尚未授予所需的權限,所以桌面通知不可用。",
"notifications.permission_denied_alert": "由於之前瀏覽器權限被拒絕,無法啟用桌面通知",
"notifications.permission_required": "由於尚未授予所需的權限,所以桌面通知不可用。",
"notifications_permission_banner.enable": "啟用桌面通知",
"notifications_permission_banner.how_to_control": "啟用桌面通知以在 Mastodon 沒有開啟的時候接收通知。在已經啟用桌面通知的時候,您可以透過上面的 {icon} 按鈕準確的控制哪些類型的互動會產生桌面通知。",
"notifications_permission_banner.title": "不要錯過任何東西!",
@ -372,11 +372,11 @@
"privacy.private.short": "僅跟隨者",
"privacy.public.long": "公開,且顯示於公開時間軸",
"privacy.public.short": "公開",
"privacy.unlisted.long": "公開,但不會顯示公開時間軸",
"privacy.unlisted.long": "公開,但不會顯示公開時間軸",
"privacy.unlisted.short": "不公開",
"refresh": "重新整理",
"regeneration_indicator.label": "載入中…",
"regeneration_indicator.sublabel": "您的頁時間軸正在準備中!",
"regeneration_indicator.sublabel": "您的頁時間軸正在準備中!",
"relative_time.days": "{number} 天",
"relative_time.full.days": "{number, plural, one {# 天} other {# 天}}前",
"relative_time.full.hours": "{number, plural, one {# 小時} other {# 小時}}前",
@ -385,7 +385,7 @@
"relative_time.full.seconds": "{number, plural, one {# 秒} other {# 秒}}前",
"relative_time.hours": "{number} 小時前",
"relative_time.just_now": "剛剛",
"relative_time.minutes": "{number} 分前",
"relative_time.minutes": "{number} 分前",
"relative_time.seconds": "{number} 秒",
"relative_time.today": "今天",
"reply_indicator.cancel": "取消",
@ -401,7 +401,7 @@
"report.close": "已完成",
"report.comment.title": "有什麼其他您想讓我們知道的嗎?",
"report.forward": "轉寄到 {target}",
"report.forward_hint": "這個帳戶屬於其他伺服器。要像該伺服器發送匿名的檢舉訊息嗎?",
"report.forward_hint": "這個帳戶屬於其他伺服器。要像該伺服器發送匿名的檢舉訊息嗎",
"report.mute": "靜音",
"report.mute_explanation": "您將不再看到他們的嘟文。他們仍能可以跟隨您以及察看您的嘟文,並且不會知道他們已被靜音。",
"report.next": "繼續",
@ -425,7 +425,7 @@
"report.thanks.title": "不想再看到這個?",
"report.thanks.title_actionable": "感謝您的檢舉,我們將會著手處理。",
"report.unfollow": "取消跟隨 @{name}",
"report.unfollow_explanation": "您正在跟隨此帳號。如不欲於首頁再見到他們的嘟文,請取消跟隨。",
"report.unfollow_explanation": "您正在跟隨此帳號。如不欲於首頁時間軸再見到他們的嘟文,請取消跟隨。",
"search.placeholder": "搜尋",
"search_popout.search_format": "進階搜尋格式",
"search_popout.tips.full_text": "輸入簡單的文字,搜尋由您撰寫、最愛、轉嘟或提您的嘟文,以及與關鍵詞匹配的使用者名稱、帳戶顯示名稱和主題標籤。",
@ -472,7 +472,7 @@
"status.reblog_private": "轉嘟給原有關注者",
"status.reblogged_by": "{name} 轉嘟了",
"status.reblogs.empty": "還沒有人轉嘟過這則嘟文。當有人轉嘟時,它將於此顯示。",
"status.redraft": "刪除 & 編輯",
"status.redraft": "刪除並重新編輯",
"status.remove_bookmark": "移除書籤",
"status.reply": "回覆",
"status.replyAll": "回覆討論串",
@ -515,10 +515,11 @@
"upload_error.poll": "不允許在投票中上傳檔案。",
"upload_form.audio_description": "描述內容給聽障人士",
"upload_form.description": "為視障人士增加文字說明",
"upload_form.description_missing": "No description added",
"upload_form.edit": "編輯",
"upload_form.thumbnail": "更改預覽圖",
"upload_form.undo": "刪除",
"upload_form.video_description": "描述給聽障或視障人士",
"upload_form.video_description": "描述內容給聽障或視障人士",
"upload_modal.analyzing_picture": "正在分析圖片…",
"upload_modal.apply": "套用",
"upload_modal.applying": "正在套用⋯⋯",

@ -171,6 +171,17 @@ const updateTop = (state, timeline, top) => {
}));
};
const reconnectTimeline = (state, usePendingItems) => {
if (state.get('online')) {
return state;
}
return state.withMutations(mMap => {
mMap.update(usePendingItems ? 'pendingItems' : 'items', items => items.first() ? items.unshift(null) : items);
mMap.set('online', true);
});
};
export default function timelines(state = initialState, action) {
switch(action.type) {
case TIMELINE_LOAD_PENDING:
@ -196,7 +207,7 @@ export default function timelines(state = initialState, action) {
case TIMELINE_SCROLL_TOP:
return updateTop(state, action.timeline, action.top);
case TIMELINE_CONNECT:
return state.update(action.timeline, initialTimeline, map => map.set('online', true));
return state.update(action.timeline, initialTimeline, map => reconnectTimeline(map, action.usePendingItems));
case TIMELINE_DISCONNECT:
return state.update(
action.timeline,

@ -43,6 +43,7 @@ class UserSettingsDecorator
user.settings['use_pending_items'] = use_pending_items_preference if change?('setting_use_pending_items')
user.settings['trends'] = trends_preference if change?('setting_trends')
user.settings['crop_images'] = crop_images_preference if change?('setting_crop_images')
user.settings['always_send_emails'] = always_send_emails_preference if change?('setting_always_send_emails')
end
def merged_notification_emails
@ -157,6 +158,10 @@ class UserSettingsDecorator
boolean_cast_setting 'setting_crop_images'
end
def always_send_emails_preference
boolean_cast_setting 'setting_always_send_emails'
end
def boolean_cast_setting(key)
ActiveModel::Type::Boolean.new.cast(settings[key])
end

@ -37,12 +37,12 @@ class Trends::Base
Trends::Query.new(key_prefix, klass)
end
def score(id)
redis.zscore("#{key_prefix}:all", id) || 0
def score(id, locale: nil)
redis.zscore([key_prefix, 'all', locale].compact.join(':'), id) || 0
end
def rank(id)
redis.zrevrank("#{key_prefix}:allowed", id)
def rank(id, locale: nil)
redis.zrevrank([key_prefix, 'allowed', locale].compact.join(':'), id)
end
def currently_trending_ids(allowed, limit)
@ -65,8 +65,8 @@ class Trends::Base
end
def trim_older_items
redis.zremrangebyscore("#{key_prefix}:all", '-inf', '(1')
redis.zremrangebyscore("#{key_prefix}:allowed", '-inf', '(1')
redis.zremrangebyscore("#{key_prefix}:all", '-inf', '(0.3')
redis.zremrangebyscore("#{key_prefix}:allowed", '-inf', '(0.3')
end
def score_at_rank(rank)

@ -30,7 +30,6 @@ class Trends::Links < Trends::Base
def refresh(at_time = Time.now.utc)
preview_cards = PreviewCard.where(id: (recently_used_ids(at_time) + currently_trending_ids(false, -1)).uniq)
calculate_scores(preview_cards, at_time)
trim_older_items
end
def request_review
@ -101,6 +100,8 @@ class Trends::Links < Trends::Base
})
end
trim_older_items
# Clean up localized sets by calculating the intersection with the main
# set. We do this instead of just deleting the localized sets to avoid
# having moments where the API returns empty results
@ -108,7 +109,7 @@ class Trends::Links < Trends::Base
redis.pipelined do
Trends.available_locales.each do |locale|
redis.zinterstore("#{key_prefix}:all:#{locale}", ["#{key_prefix}:all:#{locale}", "#{key_prefix}:all"], aggregate: 'max')
redis.zinterstore("#{key_prefix}:allowed:#{locale}", ["#{key_prefix}:allowed:#{locale}", "#{key_prefix}:all"], aggregate: 'max')
redis.zinterstore("#{key_prefix}:allowed:#{locale}", ["#{key_prefix}:allowed:#{locale}", "#{key_prefix}:allowed"], aggregate: 'max')
end
end
end

@ -14,8 +14,8 @@ class Trends::Query
@records = []
@loaded = false
@allowed = false
@limit = -1
@offset = 0
@limit = nil
@offset = nil
end
def allowed!
@ -59,7 +59,7 @@ class Trends::Query
@records
end
delegate :each, :empty?, :first, :last, to: :records
delegate :each, :empty?, :first, :last, :size, to: :records
def to_ary
records.dup
@ -73,7 +73,10 @@ class Trends::Query
if tmp_ids.empty?
klass.none
else
klass.joins("join unnest(array[#{tmp_ids.join(',')}]) with ordinality as x (id, ordering) on #{klass.table_name}.id = x.id").reorder('x.ordering')
scope = klass.joins("join unnest(array[#{tmp_ids.join(',')}]) with ordinality as x (id, ordering) on #{klass.table_name}.id = x.id").reorder('x.ordering')
scope = scope.offset(@offset) if @offset.present?
scope = scope.limit(@limit) if @limit.present?
scope
end
end
@ -93,7 +96,7 @@ class Trends::Query
end
def ids
redis.zrevrange(key, @offset, @limit.positive? ? @limit - 1 : @limit).map(&:to_i)
redis.zrevrange(key, 0, -1).map(&:to_i)
end
def perform_queries

Some files were not shown because too many files have changed in this diff Show More

Loading…
Cancel
Save