}
+ */
+export default function ready(callback) {
+ return new Promise((resolve, reject) => {
+ function loaded() {
+ let result;
+ try {
+ result = callback();
+ } catch (err) {
+ reject(err);
+
+ return;
+ }
+
+ if (typeof result?.then === 'function') {
+ result.then(resolve).catch(reject);
+ } else {
+ resolve();
+ }
+ }
+
+ if (['interactive', 'complete'].includes(document.readyState)) {
+ loaded();
+ } else {
+ document.addEventListener('DOMContentLoaded', loaded);
+ }
+ });
}
diff --git a/app/javascript/mastodon/reducers/accounts_map.js b/app/javascript/mastodon/reducers/accounts_map.js
index e0d42e9cd4..53e08c8fbe 100644
--- a/app/javascript/mastodon/reducers/accounts_map.js
+++ b/app/javascript/mastodon/reducers/accounts_map.js
@@ -1,14 +1,16 @@
import { ACCOUNT_IMPORT, ACCOUNTS_IMPORT } from '../actions/importer';
import { Map as ImmutableMap } from 'immutable';
+export const normalizeForLookup = str => str.toLowerCase();
+
const initialState = ImmutableMap();
export default function accountsMap(state = initialState, action) {
switch(action.type) {
case ACCOUNT_IMPORT:
- return state.set(action.account.acct, action.account.id);
+ return state.set(normalizeForLookup(action.account.acct), action.account.id);
case ACCOUNTS_IMPORT:
- return state.withMutations(map => action.accounts.forEach(account => map.set(account.acct, account.id)));
+ return state.withMutations(map => action.accounts.forEach(account => map.set(normalizeForLookup(account.acct), account.id)));
default:
return state;
}
diff --git a/app/javascript/mastodon/reducers/compose.js b/app/javascript/mastodon/reducers/compose.js
index 7aac87b5c4..e4601e4715 100644
--- a/app/javascript/mastodon/reducers/compose.js
+++ b/app/javascript/mastodon/reducers/compose.js
@@ -14,6 +14,7 @@ import {
COMPOSE_UPLOAD_FAIL,
COMPOSE_UPLOAD_UNDO,
COMPOSE_UPLOAD_PROGRESS,
+ COMPOSE_UPLOAD_PROCESSING,
THUMBNAIL_UPLOAD_REQUEST,
THUMBNAIL_UPLOAD_SUCCESS,
THUMBNAIL_UPLOAD_FAIL,
@@ -136,6 +137,7 @@ function appendMedia(state, media, file) {
}
map.update('media_attachments', list => list.push(media));
map.set('is_uploading', false);
+ map.set('is_processing', false);
map.set('resetFileKey', Math.floor((Math.random() * 0x10000)));
map.set('idempotencyKey', uuid());
map.update('pending_media_attachments', n => n - 1);
@@ -354,10 +356,12 @@ export default function compose(state = initialState, action) {
return state.set('is_changing_upload', false);
case COMPOSE_UPLOAD_REQUEST:
return state.set('is_uploading', true).update('pending_media_attachments', n => n + 1);
+ case COMPOSE_UPLOAD_PROCESSING:
+ return state.set('is_processing', true);
case COMPOSE_UPLOAD_SUCCESS:
return appendMedia(state, fromJS(action.media), action.file);
case COMPOSE_UPLOAD_FAIL:
- return state.set('is_uploading', false).update('pending_media_attachments', n => n - 1);
+ return state.set('is_uploading', false).set('is_processing', false).update('pending_media_attachments', n => n - 1);
case COMPOSE_UPLOAD_UNDO:
return removeMedia(state, action.media_id);
case COMPOSE_UPLOAD_PROGRESS:
diff --git a/app/javascript/mastodon/reducers/filters.js b/app/javascript/mastodon/reducers/filters.js
index 33f0c67328..f4f97cd3a8 100644
--- a/app/javascript/mastodon/reducers/filters.js
+++ b/app/javascript/mastodon/reducers/filters.js
@@ -1,10 +1,43 @@
-import { FILTERS_FETCH_SUCCESS } from '../actions/filters';
-import { List as ImmutableList, fromJS } from 'immutable';
+import { FILTERS_IMPORT } from '../actions/importer';
+import { FILTERS_FETCH_SUCCESS, FILTERS_CREATE_SUCCESS } from '../actions/filters';
+import { Map as ImmutableMap, is, fromJS } from 'immutable';
-export default function filters(state = ImmutableList(), action) {
+const normalizeFilter = (state, filter) => {
+ const normalizedFilter = fromJS({
+ id: filter.id,
+ title: filter.title,
+ context: filter.context,
+ filter_action: filter.filter_action,
+ keywords: filter.keywords,
+ expires_at: filter.expires_at ? Date.parse(filter.expires_at) : null,
+ });
+
+ if (is(state.get(filter.id), normalizedFilter)) {
+ return state;
+ } else {
+ // Do not overwrite keywords when receiving a partial filter
+ return state.update(filter.id, ImmutableMap(), (old) => (
+ old.mergeWith(((old_value, new_value) => (new_value === undefined ? old_value : new_value)), normalizedFilter)
+ ));
+ }
+};
+
+const normalizeFilters = (state, filters) => {
+ filters.forEach(filter => {
+ state = normalizeFilter(state, filter);
+ });
+
+ return state;
+};
+
+export default function filters(state = ImmutableMap(), action) {
switch(action.type) {
+ case FILTERS_CREATE_SUCCESS:
+ return normalizeFilter(state, action.filter);
case FILTERS_FETCH_SUCCESS:
- return fromJS(action.filters);
+ return normalizeFilters(ImmutableMap(), action.filters);
+ case FILTERS_IMPORT:
+ return normalizeFilters(state, action.filters);
default:
return state;
}
diff --git a/app/javascript/mastodon/reducers/index.js b/app/javascript/mastodon/reducers/index.js
index 0219d8a5e1..bccdc18655 100644
--- a/app/javascript/mastodon/reducers/index.js
+++ b/app/javascript/mastodon/reducers/index.js
@@ -17,7 +17,7 @@ import status_lists from './status_lists';
import mutes from './mutes';
import blocks from './blocks';
import boosts from './boosts';
-import rules from './rules';
+import server from './server';
import contexts from './contexts';
import compose from './compose';
import search from './search';
@@ -39,6 +39,7 @@ import markers from './markers';
import picture_in_picture from './picture_in_picture';
import accounts_map from './accounts_map';
import history from './history';
+import tags from './tags';
const reducers = {
announcements,
@@ -61,7 +62,7 @@ const reducers = {
mutes,
blocks,
boosts,
- rules,
+ server,
contexts,
compose,
search,
@@ -81,6 +82,7 @@ const reducers = {
markers,
picture_in_picture,
history,
+ tags,
};
export default combineReducers(reducers);
diff --git a/app/javascript/mastodon/reducers/meta.js b/app/javascript/mastodon/reducers/meta.js
index 65becc44f8..5040a340fc 100644
--- a/app/javascript/mastodon/reducers/meta.js
+++ b/app/javascript/mastodon/reducers/meta.js
@@ -7,12 +7,13 @@ const initialState = ImmutableMap({
streaming_api_base_url: null,
access_token: null,
layout: layoutFromWindow(),
+ permissions: '0',
});
export default function meta(state = initialState, action) {
switch(action.type) {
case STORE_HYDRATE:
- return state.merge(action.state.get('meta'));
+ return state.merge(action.state.get('meta')).set('permissions', action.state.getIn(['role', 'permissions']));
case APP_LAYOUT_CHANGE:
return state.set('layout', action.layout);
default:
diff --git a/app/javascript/mastodon/reducers/notifications.js b/app/javascript/mastodon/reducers/notifications.js
index b587b6d0f6..eb34edb633 100644
--- a/app/javascript/mastodon/reducers/notifications.js
+++ b/app/javascript/mastodon/reducers/notifications.js
@@ -28,7 +28,7 @@ import {
} from '../actions/app';
import { DOMAIN_BLOCK_SUCCESS } from 'mastodon/actions/domain_blocks';
import { TIMELINE_DELETE, TIMELINE_DISCONNECT } from '../actions/timelines';
-import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
+import { fromJS, Map as ImmutableMap, List as ImmutableList } from 'immutable';
import compareId from '../compare_id';
const initialState = ImmutableMap({
@@ -41,7 +41,7 @@ const initialState = ImmutableMap({
lastReadId: '0',
readMarkerId: '0',
isTabVisible: true,
- isLoading: false,
+ isLoading: 0,
browserSupport: false,
browserPermission: 'default',
});
@@ -52,6 +52,7 @@ const notificationToMap = notification => ImmutableMap({
account: notification.account.id,
created_at: notification.created_at,
status: notification.status ? notification.status.id : null,
+ report: notification.report ? fromJS(notification.report) : null,
});
const normalizeNotification = (state, notification, usePendingItems) => {
@@ -114,7 +115,7 @@ const expandNormalizedNotifications = (state, notifications, next, isLoadingRece
}
}
- mutable.set('isLoading', false);
+ mutable.update('isLoading', (nbLoading) => nbLoading - 1);
});
};
@@ -213,9 +214,9 @@ export default function notifications(state = initialState, action) {
case NOTIFICATIONS_LOAD_PENDING:
return state.update('items', list => state.get('pendingItems').concat(list.take(40))).set('pendingItems', ImmutableList()).set('unread', 0);
case NOTIFICATIONS_EXPAND_REQUEST:
- return state.set('isLoading', true);
+ return state.update('isLoading', (nbLoading) => nbLoading + 1);
case NOTIFICATIONS_EXPAND_FAIL:
- return state.set('isLoading', false);
+ return state.update('isLoading', (nbLoading) => nbLoading - 1);
case NOTIFICATIONS_FILTER_SET:
return state.set('items', ImmutableList()).set('pendingItems', ImmutableList()).set('hasMore', true);
case NOTIFICATIONS_SCROLL_TOP:
@@ -233,8 +234,6 @@ export default function notifications(state = initialState, action) {
case FOLLOW_REQUEST_AUTHORIZE_SUCCESS:
case FOLLOW_REQUEST_REJECT_SUCCESS:
return filterNotifications(state, [action.id], 'follow_request');
- case ACCOUNT_MUTE_SUCCESS:
- return action.relationship.muting_notifications ? filterNotifications(state, [action.relationship.id]) : state;
case NOTIFICATIONS_CLEAR:
return state.set('items', ImmutableList()).set('pendingItems', ImmutableList()).set('hasMore', false);
case TIMELINE_DELETE:
diff --git a/app/javascript/mastodon/reducers/rules.js b/app/javascript/mastodon/reducers/rules.js
deleted file mode 100644
index c1180b5203..0000000000
--- a/app/javascript/mastodon/reducers/rules.js
+++ /dev/null
@@ -1,13 +0,0 @@
-import { RULES_FETCH_SUCCESS } from 'mastodon/actions/rules';
-import { List as ImmutableList, fromJS } from 'immutable';
-
-const initialState = ImmutableList();
-
-export default function rules(state = initialState, action) {
- switch (action.type) {
- case RULES_FETCH_SUCCESS:
- return fromJS(action.rules);
- default:
- return state;
- }
-}
diff --git a/app/javascript/mastodon/reducers/server.js b/app/javascript/mastodon/reducers/server.js
new file mode 100644
index 0000000000..db9f2b5e6b
--- /dev/null
+++ b/app/javascript/mastodon/reducers/server.js
@@ -0,0 +1,53 @@
+import {
+ SERVER_FETCH_REQUEST,
+ SERVER_FETCH_SUCCESS,
+ SERVER_FETCH_FAIL,
+ EXTENDED_DESCRIPTION_REQUEST,
+ EXTENDED_DESCRIPTION_SUCCESS,
+ EXTENDED_DESCRIPTION_FAIL,
+ SERVER_DOMAIN_BLOCKS_FETCH_REQUEST,
+ SERVER_DOMAIN_BLOCKS_FETCH_SUCCESS,
+ SERVER_DOMAIN_BLOCKS_FETCH_FAIL,
+} from 'mastodon/actions/server';
+import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
+
+const initialState = ImmutableMap({
+ server: ImmutableMap({
+ isLoading: true,
+ }),
+
+ extendedDescription: ImmutableMap({
+ isLoading: true,
+ }),
+
+ domainBlocks: ImmutableMap({
+ isLoading: true,
+ isAvailable: true,
+ items: ImmutableList(),
+ }),
+});
+
+export default function server(state = initialState, action) {
+ switch (action.type) {
+ case SERVER_FETCH_REQUEST:
+ return state.setIn(['server', 'isLoading'], true);
+ case SERVER_FETCH_SUCCESS:
+ return state.set('server', fromJS(action.server)).setIn(['server', 'isLoading'], false);
+ case SERVER_FETCH_FAIL:
+ return state.setIn(['server', 'isLoading'], false);
+ case EXTENDED_DESCRIPTION_REQUEST:
+ return state.setIn(['extendedDescription', 'isLoading'], true);
+ case EXTENDED_DESCRIPTION_SUCCESS:
+ return state.set('extendedDescription', fromJS(action.description)).setIn(['extendedDescription', 'isLoading'], false);
+ case EXTENDED_DESCRIPTION_FAIL:
+ return state.setIn(['extendedDescription', 'isLoading'], false);
+ case SERVER_DOMAIN_BLOCKS_FETCH_REQUEST:
+ return state.setIn(['domainBlocks', 'isLoading'], true);
+ case SERVER_DOMAIN_BLOCKS_FETCH_SUCCESS:
+ return state.setIn(['domainBlocks', 'items'], fromJS(action.blocks)).setIn(['domainBlocks', 'isLoading'], false).setIn(['domainBlocks', 'isAvailable'], action.isAvailable);
+ case SERVER_DOMAIN_BLOCKS_FETCH_FAIL:
+ return state.setIn(['domainBlocks', 'isLoading'], false);
+ default:
+ return state;
+ }
+}
diff --git a/app/javascript/mastodon/reducers/settings.js b/app/javascript/mastodon/reducers/settings.js
index afffce9172..f9d3236e4a 100644
--- a/app/javascript/mastodon/reducers/settings.js
+++ b/app/javascript/mastodon/reducers/settings.js
@@ -39,6 +39,7 @@ const initialState = ImmutableMap({
status: false,
update: false,
'admin.sign_up': false,
+ 'admin.report': false,
}),
quickFilter: ImmutableMap({
@@ -60,6 +61,7 @@ const initialState = ImmutableMap({
status: true,
update: true,
'admin.sign_up': true,
+ 'admin.report': true,
}),
sounds: ImmutableMap({
@@ -72,6 +74,7 @@ const initialState = ImmutableMap({
status: true,
update: true,
'admin.sign_up': true,
+ 'admin.report': true,
}),
}),
diff --git a/app/javascript/mastodon/reducers/statuses.js b/app/javascript/mastodon/reducers/statuses.js
index 53dec95859..c30c1e2ccd 100644
--- a/app/javascript/mastodon/reducers/statuses.js
+++ b/app/javascript/mastodon/reducers/statuses.js
@@ -13,6 +13,10 @@ import {
STATUS_REVEAL,
STATUS_HIDE,
STATUS_COLLAPSE,
+ STATUS_TRANSLATE_SUCCESS,
+ STATUS_TRANSLATE_UNDO,
+ STATUS_FETCH_REQUEST,
+ STATUS_FETCH_FAIL,
} from '../actions/statuses';
import { TIMELINE_DELETE } from '../actions/timelines';
import { STATUS_IMPORT, STATUSES_IMPORT } from '../actions/importer';
@@ -35,6 +39,10 @@ const initialState = ImmutableMap();
export default function statuses(state = initialState, action) {
switch(action.type) {
+ case STATUS_FETCH_REQUEST:
+ return state.setIn([action.id, 'isLoading'], true);
+ case STATUS_FETCH_FAIL:
+ return state.delete(action.id);
case STATUS_IMPORT:
return importStatus(state, action.status);
case STATUSES_IMPORT:
@@ -77,6 +85,10 @@ export default function statuses(state = initialState, action) {
return state.setIn([action.id, 'collapsed'], action.isCollapsed);
case TIMELINE_DELETE:
return deleteStatus(state, action.id, action.references);
+ case STATUS_TRANSLATE_SUCCESS:
+ return state.setIn([action.id, 'translation'], fromJS(action.translation));
+ case STATUS_TRANSLATE_UNDO:
+ return state.deleteIn([action.id, 'translation']);
default:
return state;
}
diff --git a/app/javascript/mastodon/reducers/tags.js b/app/javascript/mastodon/reducers/tags.js
new file mode 100644
index 0000000000..d24098e394
--- /dev/null
+++ b/app/javascript/mastodon/reducers/tags.js
@@ -0,0 +1,25 @@
+import {
+ HASHTAG_FETCH_SUCCESS,
+ HASHTAG_FOLLOW_REQUEST,
+ HASHTAG_FOLLOW_FAIL,
+ HASHTAG_UNFOLLOW_REQUEST,
+ HASHTAG_UNFOLLOW_FAIL,
+} from 'mastodon/actions/tags';
+import { Map as ImmutableMap, fromJS } from 'immutable';
+
+const initialState = ImmutableMap();
+
+export default function tags(state = initialState, action) {
+ switch(action.type) {
+ case HASHTAG_FETCH_SUCCESS:
+ return state.set(action.name, fromJS(action.tag));
+ case HASHTAG_FOLLOW_REQUEST:
+ case HASHTAG_UNFOLLOW_FAIL:
+ return state.setIn([action.name, 'following'], true);
+ case HASHTAG_FOLLOW_FAIL:
+ case HASHTAG_UNFOLLOW_REQUEST:
+ return state.setIn([action.name, 'following'], false);
+ default:
+ return state;
+ }
+};
diff --git a/app/javascript/mastodon/reducers/user_lists.js b/app/javascript/mastodon/reducers/user_lists.js
index 10aaa2d682..f19c1e2e9d 100644
--- a/app/javascript/mastodon/reducers/user_lists.js
+++ b/app/javascript/mastodon/reducers/user_lists.js
@@ -22,7 +22,7 @@ import {
FOLLOW_REQUESTS_EXPAND_FAIL,
FOLLOW_REQUEST_AUTHORIZE_SUCCESS,
FOLLOW_REQUEST_REJECT_SUCCESS,
-} from '../actions/accounts';
+ } from '../actions/accounts';
import {
REBLOGS_FETCH_SUCCESS,
FAVOURITES_FETCH_SUCCESS,
@@ -51,7 +51,12 @@ import {
DIRECTORY_EXPAND_SUCCESS,
DIRECTORY_EXPAND_FAIL,
} from 'mastodon/actions/directory';
-import { Map as ImmutableMap, List as ImmutableList } from 'immutable';
+import {
+ FEATURED_TAGS_FETCH_REQUEST,
+ FEATURED_TAGS_FETCH_SUCCESS,
+ FEATURED_TAGS_FETCH_FAIL,
+} from 'mastodon/actions/featured_tags';
+import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
const initialListState = ImmutableMap({
next: null,
@@ -67,6 +72,7 @@ const initialState = ImmutableMap({
follow_requests: initialListState,
blocks: initialListState,
mutes: initialListState,
+ featured_tags: initialListState,
});
const normalizeList = (state, path, accounts, next) => {
@@ -89,6 +95,18 @@ const normalizeFollowRequest = (state, notification) => {
});
};
+const normalizeFeaturedTag = (featuredTags, accountId) => {
+ const normalizeFeaturedTag = { ...featuredTags, accountId: accountId };
+ return fromJS(normalizeFeaturedTag);
+};
+
+const normalizeFeaturedTags = (state, path, featuredTags, accountId) => {
+ return state.setIn(path, ImmutableMap({
+ items: ImmutableList(featuredTags.map(featuredTag => normalizeFeaturedTag(featuredTag, accountId)).sort((a, b) => b.get('statuses_count') - a.get('statuses_count'))),
+ isLoading: false,
+ }));
+};
+
export default function userLists(state = initialState, action) {
switch(action.type) {
case FOLLOWERS_FETCH_SUCCESS:
@@ -160,6 +178,12 @@ export default function userLists(state = initialState, action) {
case DIRECTORY_FETCH_FAIL:
case DIRECTORY_EXPAND_FAIL:
return state.setIn(['directory', 'isLoading'], false);
+ case FEATURED_TAGS_FETCH_SUCCESS:
+ return normalizeFeaturedTags(state, ['featured_tags', action.id], action.tags, action.id);
+ case FEATURED_TAGS_FETCH_REQUEST:
+ return state.setIn(['featured_tags', action.id, 'isLoading'], true);
+ case FEATURED_TAGS_FETCH_FAIL:
+ return state.setIn(['featured_tags', action.id, 'isLoading'], false);
default:
return state;
}
diff --git a/app/javascript/mastodon/selectors/index.js b/app/javascript/mastodon/selectors/index.js
index 3121774b3d..bf46c810e2 100644
--- a/app/javascript/mastodon/selectors/index.js
+++ b/app/javascript/mastodon/selectors/index.js
@@ -1,5 +1,6 @@
import { createSelector } from 'reselect';
-import { List as ImmutableList, Map as ImmutableMap, is } from 'immutable';
+import { List as ImmutableList, Map as ImmutableMap } from 'immutable';
+import { toServerSideType } from 'mastodon/utils/filters';
import { me } from '../initial_state';
const getAccountBase = (state, id) => state.getIn(['accounts', id], null);
@@ -20,69 +21,15 @@ export const makeGetAccount = () => {
});
};
-const toServerSideType = columnType => {
- switch (columnType) {
- case 'home':
- case 'notifications':
- case 'public':
- case 'thread':
- case 'account':
- return columnType;
- default:
- if (columnType.indexOf('list:') > -1) {
- return 'home';
- } else {
- return 'public'; // community, account, hashtag
- }
- }
-};
-
-const escapeRegExp = string =>
- string.replace(/[.*+?^${}()|[\]\\]/g, '\\$&'); // $& means the whole matched string
-
-const regexFromFilters = filters => {
- if (filters.size === 0) {
- return null;
- }
-
- return new RegExp(filters.map(filter => {
- let expr = escapeRegExp(filter.get('phrase'));
-
- if (filter.get('whole_word')) {
- if (/^[\w]/.test(expr)) {
- expr = `\\b${expr}`;
- }
-
- if (/[\w]$/.test(expr)) {
- expr = `${expr}\\b`;
- }
- }
-
- return expr;
- }).join('|'), 'i');
-};
-
-// Memoize the filter regexps for each valid server contextType
-const makeGetFiltersRegex = () => {
- let memo = {};
-
- return (state, { contextType }) => {
- if (!contextType) return ImmutableList();
+const getFilters = (state, { contextType }) => {
+ if (!contextType) return null;
- const serverSideType = toServerSideType(contextType);
- const filters = state.get('filters', ImmutableList()).filter(filter => filter.get('context').includes(serverSideType) && (filter.get('expires_at') === null || Date.parse(filter.get('expires_at')) > (new Date())));
+ const serverSideType = toServerSideType(contextType);
+ const now = new Date();
- if (!memo[serverSideType] || !is(memo[serverSideType].filters, filters)) {
- const dropRegex = regexFromFilters(filters.filter(filter => filter.get('irreversible')));
- const regex = regexFromFilters(filters);
- memo[serverSideType] = { filters: filters, results: [dropRegex, regex] };
- }
- return memo[serverSideType].results;
- };
+ return state.get('filters').filter((filter) => filter.get('context').includes(serverSideType) && (filter.get('expires_at') === null || filter.get('expires_at') > now));
};
-export const getFiltersRegex = makeGetFiltersRegex();
-
export const makeGetStatus = () => {
return createSelector(
[
@@ -90,11 +37,11 @@ export const makeGetStatus = () => {
(state, { id }) => state.getIn(['statuses', state.getIn(['statuses', id, 'reblog'])]),
(state, { id }) => state.getIn(['accounts', state.getIn(['statuses', id, 'account'])]),
(state, { id }) => state.getIn(['accounts', state.getIn(['statuses', state.getIn(['statuses', id, 'reblog']), 'account'])]),
- getFiltersRegex,
+ getFilters,
],
- (statusBase, statusReblog, accountBase, accountReblog, filtersRegex) => {
- if (!statusBase) {
+ (statusBase, statusReblog, accountBase, accountReblog, filters) => {
+ if (!statusBase || statusBase.get('isLoading')) {
return null;
}
@@ -104,18 +51,22 @@ export const makeGetStatus = () => {
statusReblog = null;
}
- const dropRegex = (accountReblog || accountBase).get('id') !== me && filtersRegex[0];
- if (dropRegex && dropRegex.test(statusBase.get('reblog') ? statusReblog.get('search_index') : statusBase.get('search_index'))) {
- return null;
+ let filtered = false;
+ if ((accountReblog || accountBase).get('id') !== me && filters) {
+ let filterResults = statusReblog?.get('filtered') || statusBase.get('filtered') || ImmutableList();
+ if (filterResults.some((result) => filters.getIn([result.get('filter'), 'filter_action']) === 'hide')) {
+ return null;
+ }
+ filterResults = filterResults.filter(result => filters.has(result.get('filter')));
+ if (!filterResults.isEmpty()) {
+ filtered = filterResults.map(result => filters.getIn([result.get('filter'), 'title']));
+ }
}
- const regex = (accountReblog || accountBase).get('id') !== me && filtersRegex[1];
- const filtered = regex && regex.test(statusBase.get('reblog') ? statusReblog.get('search_index') : statusBase.get('search_index'));
-
return statusBase.withMutations(map => {
map.set('reblog', statusReblog);
map.set('account', accountBase);
- map.set('filtered', filtered);
+ map.set('matched_filters', filtered);
});
},
);
@@ -152,14 +103,15 @@ export const getAlerts = createSelector([getAlertsBase], (base) => {
return arr;
});
-export const makeGetNotification = () => {
- return createSelector([
- (_, base) => base,
- (state, _, accountId) => state.getIn(['accounts', accountId]),
- ], (base, account) => {
- return base.set('account', account);
- });
-};
+export const makeGetNotification = () => createSelector([
+ (_, base) => base,
+ (state, _, accountId) => state.getIn(['accounts', accountId]),
+], (base, account) => base.set('account', account));
+
+export const makeGetReport = () => createSelector([
+ (_, base) => base,
+ (state, _, targetAccountId) => state.getIn(['accounts', targetAccountId]),
+], (base, targetAccount) => base.set('target_account', targetAccount));
export const getAccountGallery = createSelector([
(state, id) => state.getIn(['timelines', `account:${id}:media`, 'items'], ImmutableList()),
diff --git a/app/javascript/mastodon/service_worker/entry.js b/app/javascript/mastodon/service_worker/entry.js
index b354f3b332..9026012feb 100644
--- a/app/javascript/mastodon/service_worker/entry.js
+++ b/app/javascript/mastodon/service_worker/entry.js
@@ -1,44 +1,74 @@
-// import { freeStorage, storageFreeable } from '../storage/modifier';
-import './web_push_notifications';
+import { ExpirationPlugin } from 'workbox-expiration';
+import { precacheAndRoute } from 'workbox-precaching';
+import { registerRoute } from 'workbox-routing';
+import { CacheFirst } from 'workbox-strategies';
+import { handleNotificationClick, handlePush } from './web_push_notifications';
-// function openSystemCache() {
-// return caches.open('mastodon-system');
-// }
+const CACHE_NAME_PREFIX = 'mastodon-';
function openWebCache() {
- return caches.open('mastodon-web');
+ return caches.open(`${CACHE_NAME_PREFIX}web`);
}
function fetchRoot() {
return fetch('/', { credentials: 'include', redirect: 'manual' });
}
-// const firefox = navigator.userAgent.match(/Firefox\/(\d+)/);
-// const invalidOnlyIfCached = firefox && firefox[1] < 60;
+precacheAndRoute(self.__WB_MANIFEST);
+
+registerRoute(
+ /locale_.*\.js$/,
+ new CacheFirst({
+ cacheName: `${CACHE_NAME_PREFIX}locales`,
+ plugins: [
+ new ExpirationPlugin({
+ maxAgeSeconds: 30 * 24 * 60 * 60, // 1 month
+ maxEntries: 5,
+ }),
+ ],
+ }),
+);
+
+registerRoute(
+ ({ request }) => request.destination === 'font',
+ new CacheFirst({
+ cacheName: `${CACHE_NAME_PREFIX}fonts`,
+ plugins: [
+ new ExpirationPlugin({
+ maxAgeSeconds: 30 * 24 * 60 * 60, // 1 month
+ maxEntries: 5,
+ }),
+ ],
+ }),
+);
+
+registerRoute(
+ ({ request }) => request.destination === 'image',
+ new CacheFirst({
+ cacheName: `m${CACHE_NAME_PREFIX}media`,
+ plugins: [
+ new ExpirationPlugin({
+ maxAgeSeconds: 7 * 24 * 60 * 60, // 1 week
+ maxEntries: 256,
+ }),
+ ],
+ }),
+);
// Cause a new version of a registered Service Worker to replace an existing one
// that is already installed, and replace the currently active worker on open pages.
self.addEventListener('install', function(event) {
event.waitUntil(Promise.all([openWebCache(), fetchRoot()]).then(([cache, root]) => cache.put('/', root)));
});
+
self.addEventListener('activate', function(event) {
event.waitUntil(self.clients.claim());
});
+
self.addEventListener('fetch', function(event) {
const url = new URL(event.request.url);
- if (url.pathname.startsWith('/web/')) {
- const asyncResponse = fetchRoot();
- const asyncCache = openWebCache();
-
- event.respondWith(asyncResponse.then(
- response => {
- const clonedResponse = response.clone();
- asyncCache.then(cache => cache.put('/', clonedResponse)).catch();
- return response;
- },
- () => asyncCache.then(cache => cache.match('/'))));
- } else if (url.pathname === '/auth/sign_out') {
+ if (url.pathname === '/auth/sign_out') {
const asyncResponse = fetch(event.request);
const asyncCache = openWebCache();
@@ -52,26 +82,8 @@ self.addEventListener('fetch', function(event) {
return response;
}));
- } /* else if (storageFreeable && (ATTACHMENT_HOST ? url.host === ATTACHMENT_HOST : url.pathname.startsWith('/system/'))) {
- event.respondWith(openSystemCache().then(cache => {
- return cache.match(event.request.url).then(cached => {
- if (cached === undefined) {
- const asyncResponse = invalidOnlyIfCached && event.request.cache === 'only-if-cached' ?
- fetch(event.request, { cache: 'no-cache' }) : fetch(event.request);
-
- return asyncResponse.then(response => {
- if (response.ok) {
- cache
- .put(event.request.url, response.clone())
- .catch(()=>{}).then(freeStorage()).catch();
- }
-
- return response;
- });
- }
-
- return cached;
- });
- }));
- } */
+ }
});
+
+self.addEventListener('push', handlePush);
+self.addEventListener('notificationclick', handleNotificationClick);
diff --git a/app/javascript/mastodon/service_worker/web_push_notifications.js b/app/javascript/mastodon/service_worker/web_push_notifications.js
index 48a2be7e70..f125957773 100644
--- a/app/javascript/mastodon/service_worker/web_push_notifications.js
+++ b/app/javascript/mastodon/service_worker/web_push_notifications.js
@@ -15,7 +15,7 @@ const notify = options =>
icon: '/android-chrome-192x192.png',
tag: GROUP_TAG,
data: {
- url: (new URL('/web/notifications', self.location)).href,
+ url: (new URL('/notifications', self.location)).href,
count: notifications.length + 1,
preferred_locale: options.data.preferred_locale,
},
@@ -75,7 +75,7 @@ const formatMessage = (messageId, locale, values = {}) =>
const htmlToPlainText = html =>
unescape(html.replace(/ /g, '\n').replace(/<\/p>/g, '\n\n').replace(/<[^>]*>/g, ''));
-const handlePush = (event) => {
+export const handlePush = (event) => {
const { access_token, notification_id, preferred_locale, title, body, icon } = event.data.json();
// Placeholder until more information can be loaded
@@ -90,7 +90,7 @@ const handlePush = (event) => {
options.tag = notification.id;
options.badge = '/badge.png';
options.image = notification.status && notification.status.media_attachments.length > 0 && notification.status.media_attachments[0].preview_url || undefined;
- options.data = { access_token, preferred_locale, id: notification.status ? notification.status.id : notification.account.id, url: notification.status ? `/web/@${notification.account.acct}/${notification.status.id}` : `/web/@${notification.account.acct}` };
+ options.data = { access_token, preferred_locale, id: notification.status ? notification.status.id : notification.account.id, url: notification.status ? `/@${notification.account.acct}/${notification.status.id}` : `/@${notification.account.acct}` };
if (notification.status && notification.status.spoiler_text || notification.status.sensitive) {
options.data.hiddenBody = htmlToPlainText(notification.status.content);
@@ -115,7 +115,7 @@ const handlePush = (event) => {
tag: notification_id,
timestamp: new Date(),
badge: '/badge.png',
- data: { access_token, preferred_locale, url: '/web/notifications' },
+ data: { access_token, preferred_locale, url: '/notifications' },
});
}),
);
@@ -166,30 +166,16 @@ const removeActionFromNotification = (notification, action) => {
const openUrl = url =>
self.clients.matchAll({ type: 'window' }).then(clientList => {
- if (clientList.length !== 0) {
- const webClients = clientList.filter(client => /\/web\//.test(client.url));
-
- if (webClients.length !== 0) {
- const client = findBestClient(webClients);
- const { pathname } = new URL(url, self.location);
-
- if (pathname.startsWith('/web/')) {
- return client.focus().then(client => client.postMessage({
- type: 'navigate',
- path: pathname.slice('/web/'.length - 1),
- }));
- }
- } else if ('navigate' in clientList[0]) { // Chrome 42-48 does not support navigate
- const client = findBestClient(clientList);
+ if (clientList.length !== 0 && 'navigate' in clientList[0]) { // Chrome 42-48 does not support navigate
+ const client = findBestClient(clientList);
- return client.navigate(url).then(client => client.focus());
- }
+ return client.navigate(url).then(client => client.focus());
}
return self.clients.openWindow(url);
});
-const handleNotificationClick = (event) => {
+export const handleNotificationClick = (event) => {
const reactToNotificationClick = new Promise((resolve, reject) => {
if (event.action) {
if (event.action === 'expand') {
@@ -211,6 +197,3 @@ const handleNotificationClick = (event) => {
event.waitUntil(reactToNotificationClick);
};
-
-self.addEventListener('push', handlePush);
-self.addEventListener('notificationclick', handleNotificationClick);
diff --git a/app/javascript/mastodon/settings.js b/app/javascript/mastodon/settings.js
index 7643a508ea..46cfadfa36 100644
--- a/app/javascript/mastodon/settings.js
+++ b/app/javascript/mastodon/settings.js
@@ -45,3 +45,4 @@ export default class Settings {
export const pushNotificationsSetting = new Settings('mastodon_push_notification_data');
export const tagHistory = new Settings('mastodon_tag_history');
+export const bannerSettings = new Settings('mastodon_banner_settings');
diff --git a/app/javascript/mastodon/storage/db.js b/app/javascript/mastodon/storage/db.js
deleted file mode 100644
index 377a792a7d..0000000000
--- a/app/javascript/mastodon/storage/db.js
+++ /dev/null
@@ -1,27 +0,0 @@
-export default () => new Promise((resolve, reject) => {
- // ServiceWorker is required to synchronize the login state.
- // Microsoft Edge 17 does not support getAll according to:
- // Catalog of standard and vendor APIs across browsers - Microsoft Edge Development
- // https://developer.microsoft.com/en-us/microsoft-edge/platform/catalog/?q=specName%3Aindexeddb
- if (!('caches' in self && 'getAll' in IDBObjectStore.prototype)) {
- reject();
- return;
- }
-
- const request = indexedDB.open('mastodon');
-
- request.onerror = reject;
- request.onsuccess = ({ target }) => resolve(target.result);
-
- request.onupgradeneeded = ({ target }) => {
- const accounts = target.result.createObjectStore('accounts', { autoIncrement: true });
- const statuses = target.result.createObjectStore('statuses', { autoIncrement: true });
-
- accounts.createIndex('id', 'id', { unique: true });
- accounts.createIndex('moved', 'moved');
-
- statuses.createIndex('id', 'id', { unique: true });
- statuses.createIndex('account', 'account');
- statuses.createIndex('reblog', 'reblog');
- };
-});
diff --git a/app/javascript/mastodon/storage/modifier.js b/app/javascript/mastodon/storage/modifier.js
deleted file mode 100644
index 9fadabef44..0000000000
--- a/app/javascript/mastodon/storage/modifier.js
+++ /dev/null
@@ -1,211 +0,0 @@
-import openDB from './db';
-
-const accountAssetKeys = ['avatar', 'avatar_static', 'header', 'header_static'];
-const storageMargin = 8388608;
-const storeLimit = 1024;
-
-// navigator.storage is not present on:
-// Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/58.0.3029.100 Safari/537.36 Edge/16.16299
-// estimate method is not present on Chrome 57.0.2987.98 on Linux.
-export const storageFreeable = 'storage' in navigator && 'estimate' in navigator.storage;
-
-function openCache() {
- // ServiceWorker and Cache API is not available on iOS 11
- // https://webkit.org/status/#specification-service-workers
- return self.caches ? caches.open('mastodon-system') : Promise.reject();
-}
-
-function printErrorIfAvailable(error) {
- if (error) {
- console.warn(error);
- }
-}
-
-function put(name, objects, onupdate, oncreate) {
- return openDB().then(db => (new Promise((resolve, reject) => {
- const putTransaction = db.transaction(name, 'readwrite');
- const putStore = putTransaction.objectStore(name);
- const putIndex = putStore.index('id');
-
- objects.forEach(object => {
- putIndex.getKey(object.id).onsuccess = retrieval => {
- function addObject() {
- putStore.add(object);
- }
-
- function deleteObject() {
- putStore.delete(retrieval.target.result).onsuccess = addObject;
- }
-
- if (retrieval.target.result) {
- if (onupdate) {
- onupdate(object, retrieval.target.result, putStore, deleteObject);
- } else {
- deleteObject();
- }
- } else {
- if (oncreate) {
- oncreate(object, addObject);
- } else {
- addObject();
- }
- }
- };
- });
-
- putTransaction.oncomplete = () => {
- const readTransaction = db.transaction(name, 'readonly');
- const readStore = readTransaction.objectStore(name);
- const count = readStore.count();
-
- count.onsuccess = () => {
- const excess = count.result - storeLimit;
-
- if (excess > 0) {
- const retrieval = readStore.getAll(null, excess);
-
- retrieval.onsuccess = () => resolve(retrieval.result);
- retrieval.onerror = reject;
- } else {
- resolve([]);
- }
- };
-
- count.onerror = reject;
- };
-
- putTransaction.onerror = reject;
- })).then(resolved => {
- db.close();
- return resolved;
- }, error => {
- db.close();
- throw error;
- }));
-}
-
-function evictAccountsByRecords(records) {
- return openDB().then(db => {
- const transaction = db.transaction(['accounts', 'statuses'], 'readwrite');
- const accounts = transaction.objectStore('accounts');
- const accountsIdIndex = accounts.index('id');
- const accountsMovedIndex = accounts.index('moved');
- const statuses = transaction.objectStore('statuses');
- const statusesIndex = statuses.index('account');
-
- function evict(toEvict) {
- toEvict.forEach(record => {
- openCache()
- .then(cache => accountAssetKeys.forEach(key => cache.delete(records[key])))
- .catch(printErrorIfAvailable);
-
- accountsMovedIndex.getAll(record.id).onsuccess = ({ target }) => evict(target.result);
-
- statusesIndex.getAll(record.id).onsuccess =
- ({ target }) => evictStatusesByRecords(target.result);
-
- accountsIdIndex.getKey(record.id).onsuccess =
- ({ target }) => target.result && accounts.delete(target.result);
- });
- }
-
- evict(records);
-
- db.close();
- }).catch(printErrorIfAvailable);
-}
-
-export function evictStatus(id) {
- evictStatuses([id]);
-}
-
-export function evictStatuses(ids) {
- return openDB().then(db => {
- const transaction = db.transaction('statuses', 'readwrite');
- const store = transaction.objectStore('statuses');
- const idIndex = store.index('id');
- const reblogIndex = store.index('reblog');
-
- ids.forEach(id => {
- reblogIndex.getAllKeys(id).onsuccess =
- ({ target }) => target.result.forEach(reblogKey => store.delete(reblogKey));
-
- idIndex.getKey(id).onsuccess =
- ({ target }) => target.result && store.delete(target.result);
- });
-
- db.close();
- }).catch(printErrorIfAvailable);
-}
-
-function evictStatusesByRecords(records) {
- return evictStatuses(records.map(({ id }) => id));
-}
-
-export function putAccounts(records, avatarStatic) {
- const avatarKey = avatarStatic ? 'avatar_static' : 'avatar';
- const newURLs = [];
-
- put('accounts', records, (newRecord, oldKey, store, oncomplete) => {
- store.get(oldKey).onsuccess = ({ target }) => {
- accountAssetKeys.forEach(key => {
- const newURL = newRecord[key];
- const oldURL = target.result[key];
-
- if (newURL !== oldURL) {
- openCache()
- .then(cache => cache.delete(oldURL))
- .catch(printErrorIfAvailable);
- }
- });
-
- const newURL = newRecord[avatarKey];
- const oldURL = target.result[avatarKey];
-
- if (newURL !== oldURL) {
- newURLs.push(newURL);
- }
-
- oncomplete();
- };
- }, (newRecord, oncomplete) => {
- newURLs.push(newRecord[avatarKey]);
- oncomplete();
- }).then(records => Promise.all([
- evictAccountsByRecords(records),
- openCache().then(cache => cache.addAll(newURLs)),
- ])).then(freeStorage, error => {
- freeStorage();
- throw error;
- }).catch(printErrorIfAvailable);
-}
-
-export function putStatuses(records) {
- put('statuses', records)
- .then(evictStatusesByRecords)
- .catch(printErrorIfAvailable);
-}
-
-export function freeStorage() {
- return storageFreeable && navigator.storage.estimate().then(({ quota, usage }) => {
- if (usage + storageMargin < quota) {
- return null;
- }
-
- return openDB().then(db => new Promise((resolve, reject) => {
- const retrieval = db.transaction('accounts', 'readonly').objectStore('accounts').getAll(null, 1);
-
- retrieval.onsuccess = () => {
- if (retrieval.result.length > 0) {
- resolve(evictAccountsByRecords(retrieval.result).then(freeStorage));
- } else {
- resolve(caches.delete('mastodon-system'));
- }
- };
-
- retrieval.onerror = reject;
-
- db.close();
- }));
- });
-}
diff --git a/app/javascript/mastodon/utils/filters.js b/app/javascript/mastodon/utils/filters.js
new file mode 100644
index 0000000000..97b433a991
--- /dev/null
+++ b/app/javascript/mastodon/utils/filters.js
@@ -0,0 +1,16 @@
+export const toServerSideType = columnType => {
+ switch (columnType) {
+ case 'home':
+ case 'notifications':
+ case 'public':
+ case 'thread':
+ case 'account':
+ return columnType;
+ default:
+ if (columnType.indexOf('list:') > -1) {
+ return 'home';
+ } else {
+ return 'public'; // community, account, hashtag
+ }
+ }
+};
diff --git a/app/javascript/mastodon/utils/icons.js b/app/javascript/mastodon/utils/icons.js
new file mode 100644
index 0000000000..c3e362e39a
--- /dev/null
+++ b/app/javascript/mastodon/utils/icons.js
@@ -0,0 +1,15 @@
+import React from 'react';
+
+// Copied from emoji-mart for consistency with emoji picker and since
+// they don't export the icons in the package
+export const loupeIcon = (
+
+
+
+);
+
+export const deleteIcon = (
+
+
+
+);
diff --git a/app/javascript/packs/about.js b/app/javascript/packs/about.js
deleted file mode 100644
index 892d825ece..0000000000
--- a/app/javascript/packs/about.js
+++ /dev/null
@@ -1,26 +0,0 @@
-import './public-path';
-import loadPolyfills from '../mastodon/load_polyfills';
-import { start } from '../mastodon/common';
-
-start();
-
-function loaded() {
- const TimelineContainer = require('../mastodon/containers/timeline_container').default;
- const React = require('react');
- const ReactDOM = require('react-dom');
- const mountNode = document.getElementById('mastodon-timeline');
-
- if (mountNode !== null) {
- const props = JSON.parse(mountNode.getAttribute('data-props'));
- ReactDOM.render( , mountNode);
- }
-}
-
-function main() {
- const ready = require('../mastodon/ready').default;
- ready(loaded);
-}
-
-loadPolyfills().then(main).catch(error => {
- console.error(error);
-});
diff --git a/app/javascript/packs/application.js b/app/javascript/packs/application.js
index 91240aecfb..020f2b4a0e 100644
--- a/app/javascript/packs/application.js
+++ b/app/javascript/packs/application.js
@@ -4,8 +4,10 @@ import { start } from '../mastodon/common';
start();
-loadPolyfills().then(() => {
- require('../mastodon/main').default();
+loadPolyfills().then(async () => {
+ const { default: main } = await import('mastodon/main');
+
+ return main();
}).catch(e => {
console.error(e);
});
diff --git a/app/javascript/packs/public.js b/app/javascript/packs/public.js
index be467a8e25..ab7c4a3f30 100644
--- a/app/javascript/packs/public.js
+++ b/app/javascript/packs/public.js
@@ -3,6 +3,7 @@ import loadPolyfills from '../mastodon/load_polyfills';
import ready from '../mastodon/ready';
import { start } from '../mastodon/common';
import loadKeyboardExtensions from '../mastodon/load_keyboard_extensions';
+import 'cocoon-js-vanilla';
start();
@@ -15,7 +16,6 @@ function main() {
const { messages } = getLocale();
const React = require('react');
const ReactDOM = require('react-dom');
- const Rellax = require('rellax');
const { createBrowserHistory } = require('history');
const scrollToDetailedStatus = () => {
@@ -94,12 +94,6 @@ function main() {
scrollToDetailedStatus();
}
- const parallaxComponents = document.querySelectorAll('.parallax');
-
- if (parallaxComponents.length > 0 ) {
- new Rellax('.parallax', { speed: -1 });
- }
-
delegate(document, '#registration_user_password_confirmation,#registration_user_password', 'input', () => {
const password = document.getElementById('registration_user_password');
const confirmation = document.getElementById('registration_user_password_confirmation');
@@ -150,8 +144,31 @@ function main() {
});
});
+ const toggleSidebar = () => {
+ const sidebar = document.querySelector('.sidebar ul');
+ const toggleButton = document.querySelector('.sidebar__toggle__icon');
+
+ if (sidebar.classList.contains('visible')) {
+ document.body.style.overflow = null;
+ toggleButton.setAttribute('aria-expanded', false);
+ } else {
+ document.body.style.overflow = 'hidden';
+ toggleButton.setAttribute('aria-expanded', true);
+ }
+
+ toggleButton.classList.toggle('active');
+ sidebar.classList.toggle('visible');
+ };
+
delegate(document, '.sidebar__toggle__icon', 'click', () => {
- document.querySelector('.sidebar ul').classList.toggle('visible');
+ toggleSidebar();
+ });
+
+ delegate(document, '.sidebar__toggle__icon', 'keydown', e => {
+ if (e.key === ' ' || e.key === 'Enter') {
+ e.preventDefault();
+ toggleSidebar();
+ }
});
// Empty the honeypot fields in JS in case something like an extension
diff --git a/app/javascript/styles/application.scss b/app/javascript/styles/application.scss
index cb65b9567d..81a040108e 100644
--- a/app/javascript/styles/application.scss
+++ b/app/javascript/styles/application.scss
@@ -2,14 +2,12 @@
@import 'mastodon/variables';
@import 'fonts/roboto';
@import 'fonts/roboto-mono';
-@import 'fonts/montserrat';
@import 'mastodon/reset';
@import 'mastodon/basics';
+@import 'mastodon/branding';
@import 'mastodon/containers';
@import 'mastodon/lists';
-@import 'mastodon/footer';
-@import 'mastodon/compact_header';
@import 'mastodon/widgets';
@import 'mastodon/forms';
@import 'mastodon/accounts';
diff --git a/app/javascript/styles/contrast/diff.scss b/app/javascript/styles/contrast/diff.scss
index 841ed66480..27eb837df0 100644
--- a/app/javascript/styles/contrast/diff.scss
+++ b/app/javascript/styles/contrast/diff.scss
@@ -13,10 +13,6 @@
}
}
-.rich-formatting a,
-.rich-formatting p a,
-.rich-formatting li a,
-.landing-page__short-description p a,
.status__content a,
.reply-indicator__content a {
color: lighten($ui-highlight-color, 12%);
@@ -72,10 +68,6 @@
color: $darker-text-color;
}
-.public-layout .public-account-header__tabs__tabs .counter.active::after {
- border-bottom: 4px solid $ui-highlight-color;
-}
-
.compose-form .autosuggest-textarea__textarea::placeholder,
.compose-form .spoiler-input__input::placeholder {
color: $inverted-text-color;
diff --git a/app/javascript/styles/contrast/variables.scss b/app/javascript/styles/contrast/variables.scss
index cfe3b21dbc..9edfd6d8d7 100644
--- a/app/javascript/styles/contrast/variables.scss
+++ b/app/javascript/styles/contrast/variables.scss
@@ -4,19 +4,17 @@ $black: #000000;
$classic-base-color: #282c37;
$classic-primary-color: #9baec8;
$classic-secondary-color: #d9e1e8;
-$classic-highlight-color: #2b90d9;
+$classic-highlight-color: #6364ff;
$ui-base-color: $classic-base-color !default;
$ui-primary-color: $classic-primary-color !default;
$ui-secondary-color: $classic-secondary-color !default;
-
-// Differences
-$ui-highlight-color: #2b5fd9;
+$ui-highlight-color: $classic-highlight-color !default;
$darker-text-color: lighten($ui-primary-color, 20%) !default;
$dark-text-color: lighten($ui-primary-color, 12%) !default;
$secondary-text-color: lighten($ui-secondary-color, 6%) !default;
-$highlight-text-color: $classic-highlight-color !default;
+$highlight-text-color: lighten($ui-highlight-color, 8%) !default;
$action-button-color: #8d9ac2;
$inverted-text-color: $black !default;
diff --git a/app/javascript/styles/fonts/montserrat.scss b/app/javascript/styles/fonts/montserrat.scss
deleted file mode 100644
index 03f67ed3f1..0000000000
--- a/app/javascript/styles/fonts/montserrat.scss
+++ /dev/null
@@ -1,21 +0,0 @@
-@font-face {
- font-family: mastodon-font-display;
- src:
- local('Montserrat'),
- url('~fonts/montserrat/Montserrat-Regular.woff2') format('woff2'),
- url('~fonts/montserrat/Montserrat-Regular.woff') format('woff'),
- url('~fonts/montserrat/Montserrat-Regular.ttf') format('truetype');
- font-weight: 400;
- font-display: swap;
- font-style: normal;
-}
-
-@font-face {
- font-family: mastodon-font-display;
- src:
- local('Montserrat Medium'),
- url('~fonts/montserrat/Montserrat-Medium.ttf') format('truetype');
- font-weight: 500;
- font-display: swap;
- font-style: normal;
-}
diff --git a/app/javascript/styles/mastodon-light/diff.scss b/app/javascript/styles/mastodon-light/diff.scss
index 0bc6247ef2..20e973b8b3 100644
--- a/app/javascript/styles/mastodon-light/diff.scss
+++ b/app/javascript/styles/mastodon-light/diff.scss
@@ -36,6 +36,20 @@ html {
border-top: 0;
}
+.column > .scrollable.about {
+ border-top: 1px solid lighten($ui-base-color, 8%);
+}
+
+.about__meta,
+.about__section__title {
+ background: $white;
+ border: 1px solid lighten($ui-base-color, 8%);
+}
+
+.rules-list li::before {
+ background: $ui-highlight-color;
+}
+
.directory__card__img {
background: lighten($ui-base-color, 12%);
}
@@ -45,10 +59,6 @@ html {
border-bottom: 1px solid lighten($ui-base-color, 8%);
}
-.table-of-contents {
- border: 1px solid lighten($ui-base-color, 8%);
-}
-
.column-back-button,
.column-header {
background: $white;
@@ -138,11 +148,6 @@ html {
.compose-form__poll-wrapper select,
.search__input,
.setting-text,
-.box-widget input[type="text"],
-.box-widget input[type="email"],
-.box-widget input[type="password"],
-.box-widget textarea,
-.statuses-grid .detailed-status,
.report-dialog-modal__textarea,
.audio-player {
border: 1px solid lighten($ui-base-color, 8%);
@@ -480,52 +485,16 @@ html {
background: $white;
}
-.tabs-bar {
- background: $white;
- border: 1px solid lighten($ui-base-color, 8%);
- border-bottom: 0;
-
- @media screen and (max-width: $no-gap-breakpoint) {
- border-top: 0;
- }
-
- &__link {
- padding-bottom: 14px;
- border-bottom-width: 1px;
- border-bottom-color: lighten($ui-base-color, 8%);
-
- &:hover,
- &:active,
- &:focus {
- background: $ui-base-color;
- }
-
- &.active {
- &:hover,
- &:active,
- &:focus {
- background: transparent;
- border-bottom-color: $ui-highlight-color;
- }
- }
- }
-}
-
// Change the default colors used on some parts of the profile pages
.activity-stream-tabs {
background: $account-background-color;
border-bottom-color: lighten($ui-base-color, 8%);
}
-.box-widget,
.nothing-here,
.page-header,
.directory__tag > a,
-.directory__tag > div,
-.landing-page__call-to-action,
-.contact-widget,
-.landing .hero-widget__text,
-.landing-page__information.contact-widget {
+.directory__tag > div {
background: $white;
border: 1px solid lighten($ui-base-color, 8%);
@@ -536,11 +505,6 @@ html {
}
}
-.landing .hero-widget__text {
- border-top: 0;
- border-bottom: 0;
-}
-
.simple_form {
input[type="text"],
input[type="number"],
@@ -553,26 +517,12 @@ html {
}
}
-.landing .hero-widget__footer {
- background: $white;
- border: 1px solid lighten($ui-base-color, 8%);
- border-top: 0;
-
- @media screen and (max-width: $no-gap-breakpoint) {
- border: 0;
- }
-}
-
.picture-in-picture-placeholder {
background: $white;
border-color: lighten($ui-base-color, 8%);
color: lighten($ui-base-color, 8%);
}
-.brand__tagline {
- color: $ui-secondary-color;
-}
-
.directory__tag > a {
&:hover,
&:active,
@@ -666,8 +616,7 @@ html {
}
}
-.simple_form,
-.table-form {
+.simple_form {
.warning {
box-shadow: none;
background: rgba($error-red, 0.5);
@@ -706,104 +655,12 @@ html {
}
}
-.public-layout {
- .account__section-headline {
- border: 1px solid lighten($ui-base-color, 8%);
-
- @media screen and (max-width: $no-gap-breakpoint) {
- border-top: 0;
- }
- }
-
- .header,
- .public-account-header,
- .public-account-bio {
- box-shadow: none;
- }
-
- .public-account-bio,
- .hero-widget__text {
- background: $account-background-color;
- }
-
- .header {
- background: $ui-base-color;
- border: 1px solid lighten($ui-base-color, 8%);
-
- @media screen and (max-width: $no-gap-breakpoint) {
- border: 0;
- }
-
- .brand {
- &:hover,
- &:focus,
- &:active {
- background: lighten($ui-base-color, 4%);
- }
- }
- }
-
- .public-account-header {
- &__image {
- background: lighten($ui-base-color, 12%);
-
- &::after {
- box-shadow: none;
- }
- }
-
- &__bar {
- &::before {
- background: $account-background-color;
- border: 1px solid lighten($ui-base-color, 8%);
- border-top: 0;
- }
-
- .avatar img {
- border-color: $account-background-color;
- }
-
- @media screen and (max-width: $no-columns-breakpoint) {
- background: $account-background-color;
- border: 1px solid lighten($ui-base-color, 8%);
- border-top: 0;
- }
- }
-
- &__tabs {
- &__name {
- h1,
- h1 small {
- color: $white;
-
- @media screen and (max-width: $no-columns-breakpoint) {
- color: $primary-text-color;
- }
- }
- }
- }
-
- &__extra {
- .public-account-bio {
- border: 0;
- }
-
- .public-account-bio .account__header__fields {
- border-color: lighten($ui-base-color, 8%);
- }
- }
- }
-}
-
.notification__filter-bar button.active::after,
.account__section-headline a.active::after {
border-color: transparent transparent $white;
}
.hero-widget,
-.box-widget,
-.contact-widget,
-.landing-page__information.contact-widget,
.moved-account-widget,
.memoriam-widget,
.activity-stream,
diff --git a/app/javascript/styles/mastodon-light/variables.scss b/app/javascript/styles/mastodon-light/variables.scss
index f6bc3ac960..cae065878c 100644
--- a/app/javascript/styles/mastodon-light/variables.scss
+++ b/app/javascript/styles/mastodon-light/variables.scss
@@ -5,7 +5,7 @@ $white: #ffffff;
$classic-base-color: #282c37;
$classic-primary-color: #9baec8;
$classic-secondary-color: #d9e1e8;
-$classic-highlight-color: #2b90d9;
+$classic-highlight-color: #6364ff;
// Differences
$success-green: lighten(#3c754d, 8%);
@@ -17,10 +17,11 @@ $ui-base-color: $classic-secondary-color !default;
$ui-base-lighter-color: #b0c0cf;
$ui-primary-color: #9bcbed;
$ui-secondary-color: $classic-base-color !default;
-$ui-highlight-color: #2b90d9;
+$ui-highlight-color: $classic-highlight-color !default;
$primary-text-color: $black !default;
$darker-text-color: $classic-base-color !default;
+$highlight-text-color: darken($ui-highlight-color, 8%) !default;
$dark-text-color: #444b5d;
$action-button-color: #606984;
diff --git a/app/javascript/styles/mastodon/_mixins.scss b/app/javascript/styles/mastodon/_mixins.scss
index 68cad0fde3..dcfab6bd01 100644
--- a/app/javascript/styles/mastodon/_mixins.scss
+++ b/app/javascript/styles/mastodon/_mixins.scss
@@ -20,6 +20,7 @@
font-family: inherit;
background: $ui-base-color;
color: $darker-text-color;
+ border-radius: 4px;
font-size: 14px;
margin: 0;
}
diff --git a/app/javascript/styles/mastodon/about.scss b/app/javascript/styles/mastodon/about.scss
index ac2fdb2c70..0183c43d5e 100644
--- a/app/javascript/styles/mastodon/about.scss
+++ b/app/javascript/styles/mastodon/about.scss
@@ -1,7 +1,5 @@
$maximum-width: 1235px;
$fluid-breakpoint: $maximum-width + 20px;
-$column-breakpoint: 700px;
-$small-breakpoint: 960px;
.container {
box-sizing: border-box;
@@ -15,892 +13,44 @@ $small-breakpoint: 960px;
}
}
-.rich-formatting {
- font-family: $font-sans-serif, sans-serif;
- font-size: 14px;
- font-weight: 400;
- line-height: 1.7;
- word-wrap: break-word;
- color: $darker-text-color;
-
- a {
- color: $highlight-text-color;
- text-decoration: underline;
-
- &:hover,
- &:focus,
- &:active {
- text-decoration: none;
- }
- }
-
- p,
- li {
- color: $darker-text-color;
- }
-
- p {
- margin-top: 0;
- margin-bottom: 0.85em;
-
- &:last-child {
- margin-bottom: 0;
- }
- }
-
- strong {
- font-weight: 700;
- color: $secondary-text-color;
- }
-
- em {
- font-style: italic;
- color: $secondary-text-color;
- }
-
- code {
- font-size: 0.85em;
- background: darken($ui-base-color, 8%);
- border-radius: 4px;
- padding: 0.2em 0.3em;
- }
-
- h1,
- h2,
- h3,
- h4,
- h5,
- h6 {
- font-family: $font-display, sans-serif;
- margin-top: 1.275em;
- margin-bottom: 0.85em;
- font-weight: 500;
- color: $secondary-text-color;
- }
-
- h1 {
- font-size: 2em;
- }
-
- h2 {
- font-size: 1.75em;
- }
-
- h3 {
- font-size: 1.5em;
- }
-
- h4 {
- font-size: 1.25em;
- }
-
- h5,
- h6 {
- font-size: 1em;
- }
-
- ul {
- list-style: disc;
- }
-
- ol {
- list-style: decimal;
- }
-
- ul,
- ol {
- margin: 0;
- padding: 0;
- padding-left: 2em;
- margin-bottom: 0.85em;
-
- &[type='a'] {
- list-style-type: lower-alpha;
- }
-
- &[type='i'] {
- list-style-type: lower-roman;
- }
- }
-
- hr {
- width: 100%;
- height: 0;
- border: 0;
- border-bottom: 1px solid lighten($ui-base-color, 4%);
- margin: 1.7em 0;
-
- &.spacer {
- height: 1px;
- border: 0;
- }
- }
-
- table {
- width: 100%;
- border-collapse: collapse;
- break-inside: auto;
- margin-top: 24px;
- margin-bottom: 32px;
-
- thead tr,
- tbody tr {
- border-bottom: 1px solid lighten($ui-base-color, 4%);
- font-size: 1em;
- line-height: 1.625;
- font-weight: 400;
- text-align: left;
- color: $darker-text-color;
- }
-
- thead tr {
- border-bottom-width: 2px;
- line-height: 1.5;
- font-weight: 500;
- color: $dark-text-color;
- }
-
- th,
- td {
- padding: 8px;
- align-self: start;
- align-items: start;
- word-break: break-all;
-
- &.nowrap {
- width: 25%;
- position: relative;
-
- &::before {
- content: ' ';
- visibility: hidden;
- }
-
- span {
- position: absolute;
- left: 8px;
- right: 8px;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- }
- }
- }
- }
-
- & > :first-child {
- margin-top: 0;
- }
+.brand {
+ position: relative;
+ text-decoration: none;
}
-.information-board {
- background: darken($ui-base-color, 4%);
- padding: 20px 0;
-
- .container-alt {
- position: relative;
- padding-right: 280px + 15px;
- }
-
- &__sections {
- display: flex;
- justify-content: space-between;
- flex-wrap: wrap;
- }
-
- &__section {
- flex: 1 0 0;
- font-family: $font-sans-serif, sans-serif;
- font-size: 16px;
- line-height: 28px;
- color: $primary-text-color;
- text-align: right;
- padding: 10px 15px;
-
- span,
- strong {
- display: block;
- }
-
- span {
- &:last-child {
- color: $secondary-text-color;
- }
- }
-
- strong {
- font-family: $font-display, sans-serif;
- font-weight: 500;
- font-size: 32px;
- line-height: 48px;
- }
-
- @media screen and (max-width: $column-breakpoint) {
- text-align: center;
- }
- }
-
- .panel {
- position: absolute;
- width: 280px;
- box-sizing: border-box;
- background: darken($ui-base-color, 8%);
- padding: 20px;
- padding-top: 10px;
- border-radius: 4px 4px 0 0;
- right: 0;
- bottom: -40px;
-
- .panel-header {
- font-family: $font-display, sans-serif;
- font-size: 14px;
- line-height: 24px;
- font-weight: 500;
- color: $darker-text-color;
- padding-bottom: 5px;
- margin-bottom: 15px;
- border-bottom: 1px solid lighten($ui-base-color, 4%);
- text-overflow: ellipsis;
- white-space: nowrap;
- overflow: hidden;
-
- a,
- span {
- font-weight: 400;
- color: darken($darker-text-color, 10%);
- }
-
- a {
- text-decoration: none;
- }
- }
- }
-
- .owner {
- text-align: center;
-
- .avatar {
- width: 80px;
- height: 80px;
- margin: 0 auto;
- margin-bottom: 15px;
-
- img {
- display: block;
- width: 80px;
- height: 80px;
- border-radius: 48px;
- }
- }
-
- .name {
- font-size: 14px;
-
- a {
- display: block;
- color: $primary-text-color;
- text-decoration: none;
-
- &:hover {
- .display_name {
- text-decoration: underline;
- }
- }
- }
-
- .username {
- display: block;
- color: $darker-text-color;
- }
- }
- }
-}
+.rules-list {
+ font-size: 15px;
+ line-height: 22px;
+ color: $primary-text-color;
+ counter-reset: list-counter;
-.landing-page {
- p,
li {
- font-family: $font-sans-serif, sans-serif;
- font-size: 16px;
- font-weight: 400;
- line-height: 30px;
- margin-bottom: 12px;
- color: $darker-text-color;
-
- a {
- color: $highlight-text-color;
- text-decoration: underline;
- }
- }
-
- em {
- display: inline;
- margin: 0;
- padding: 0;
- font-weight: 700;
- background: transparent;
- font-family: inherit;
- font-size: inherit;
- line-height: inherit;
- color: lighten($darker-text-color, 10%);
- }
-
- h1 {
- font-family: $font-display, sans-serif;
- font-size: 26px;
- line-height: 30px;
- font-weight: 500;
- margin-bottom: 20px;
- color: $secondary-text-color;
-
- small {
- font-family: $font-sans-serif, sans-serif;
- display: block;
- font-size: 18px;
- font-weight: 400;
- color: lighten($darker-text-color, 10%);
- }
- }
-
- h2 {
- font-family: $font-display, sans-serif;
- font-size: 22px;
- line-height: 26px;
- font-weight: 500;
- margin-bottom: 20px;
- color: $secondary-text-color;
- }
-
- h3 {
- font-family: $font-display, sans-serif;
- font-size: 18px;
- line-height: 24px;
- font-weight: 500;
- margin-bottom: 20px;
- color: $secondary-text-color;
- }
-
- h4 {
- font-family: $font-display, sans-serif;
- font-size: 16px;
- line-height: 24px;
- font-weight: 500;
- margin-bottom: 20px;
- color: $secondary-text-color;
- }
-
- h5 {
- font-family: $font-display, sans-serif;
- font-size: 14px;
- line-height: 24px;
- font-weight: 500;
- margin-bottom: 20px;
- color: $secondary-text-color;
- }
-
- h6 {
- font-family: $font-display, sans-serif;
- font-size: 12px;
- line-height: 24px;
+ position: relative;
+ border-bottom: 1px solid lighten($ui-base-color, 8%);
+ padding: 1em 1.75em;
+ padding-left: 3em;
font-weight: 500;
- margin-bottom: 20px;
- color: $secondary-text-color;
- }
-
- ul,
- ol {
- margin-left: 20px;
-
- &[type='a'] {
- list-style-type: lower-alpha;
- }
-
- &[type='i'] {
- list-style-type: lower-roman;
- }
- }
-
- ul {
- list-style: disc;
- }
-
- ol {
- list-style: decimal;
- }
-
- li > ol,
- li > ul {
- margin-top: 6px;
- }
-
- hr {
- width: 100%;
- height: 0;
- border: 0;
- border-bottom: 1px solid rgba($ui-base-lighter-color, 0.6);
- margin: 20px 0;
-
- &.spacer {
- height: 1px;
- border: 0;
- }
- }
-
- &__information,
- &__forms {
- padding: 20px;
- }
-
- &__call-to-action {
- background: $ui-base-color;
- border-radius: 4px;
- padding: 25px 40px;
- overflow: hidden;
- box-sizing: border-box;
-
- .row {
- width: 100%;
- display: flex;
- flex-direction: row-reverse;
- flex-wrap: nowrap;
- justify-content: space-between;
- align-items: center;
- }
-
- .row__information-board {
- display: flex;
- justify-content: flex-end;
- align-items: flex-end;
-
- .information-board__section {
- flex: 1 0 auto;
- padding: 0 10px;
- }
-
- @media screen and (max-width: $no-gap-breakpoint) {
- width: 100%;
- justify-content: space-between;
- }
- }
-
- .row__mascot {
- flex: 1;
- margin: 10px -50px 0 0;
-
- @media screen and (max-width: $no-gap-breakpoint) {
- display: none;
- }
- }
- }
-
- &__logo {
- margin-right: 20px;
-
- img {
- height: 50px;
- width: auto;
- mix-blend-mode: lighten;
- }
- }
-
- &__information {
- padding: 45px 40px;
- margin-bottom: 10px;
-
- &:last-child {
- margin-bottom: 0;
- }
-
- strong {
+ counter-increment: list-counter;
+
+ &::before {
+ content: counter(list-counter);
+ position: absolute;
+ left: 0;
+ top: 50%;
+ transform: translateY(-50%);
+ background: $highlight-text-color;
+ color: $ui-base-color;
+ border-radius: 50%;
+ width: 4ch;
+ height: 4ch;
font-weight: 500;
- color: lighten($darker-text-color, 10%);
- }
-
- .account {
- border-bottom: 0;
- padding: 0;
-
- &__display-name {
- align-items: center;
- display: flex;
- margin-right: 5px;
- }
-
- div.account__display-name {
- &:hover {
- .display-name strong {
- text-decoration: none;
- }
- }
-
- .account__avatar {
- cursor: default;
- }
- }
-
- &__avatar-wrapper {
- margin-left: 0;
- flex: 0 0 auto;
- }
-
- .display-name {
- font-size: 15px;
-
- &__account {
- font-size: 14px;
- }
- }
- }
-
- @media screen and (max-width: $small-breakpoint) {
- .contact {
- margin-top: 30px;
- }
- }
-
- @media screen and (max-width: $column-breakpoint) {
- padding: 25px 20px;
- }
- }
-
- &__information,
- &__forms,
- #mastodon-timeline {
- box-sizing: border-box;
- background: $ui-base-color;
- border-radius: 4px;
- box-shadow: 0 0 6px rgba($black, 0.1);
- }
-
- &__mascot {
- height: 104px;
- position: relative;
- left: -40px;
- bottom: 25px;
-
- img {
- height: 190px;
- width: auto;
- }
- }
-
- &__short-description {
- .row {
display: flex;
- flex-wrap: wrap;
+ justify-content: center;
align-items: center;
- margin-bottom: 40px;
- }
-
- @media screen and (max-width: $column-breakpoint) {
- .row {
- margin-bottom: 20px;
- }
- }
-
- p a {
- color: $secondary-text-color;
- }
-
- h1 {
- font-weight: 500;
- color: $primary-text-color;
- margin-bottom: 0;
-
- small {
- color: $darker-text-color;
-
- span {
- color: $secondary-text-color;
- }
- }
- }
-
- p:last-child {
- margin-bottom: 0;
- }
- }
-
- &__hero {
- margin-bottom: 10px;
-
- img {
- display: block;
- margin: 0;
- max-width: 100%;
- height: auto;
- border-radius: 4px;
- }
- }
-
- @media screen and (max-width: 840px) {
- .information-board {
- .container-alt {
- padding-right: 20px;
- }
-
- .panel {
- position: static;
- margin-top: 20px;
- width: 100%;
- border-radius: 4px;
-
- .panel-header {
- text-align: center;
- }
- }
- }
- }
-
- @media screen and (max-width: 675px) {
- .header-wrapper {
- padding-top: 0;
-
- &.compact {
- padding-bottom: 0;
- }
-
- &.compact .hero .heading {
- text-align: initial;
- }
}
- .header .container-alt,
- .features .container-alt {
- display: block;
- }
- }
-
- .cta {
- margin: 20px;
- }
-}
-
-.landing {
- margin-bottom: 100px;
-
- @media screen and (max-width: 738px) {
- margin-bottom: 0;
- }
-
- &__brand {
- display: flex;
- justify-content: center;
- align-items: center;
- padding: 50px;
-
- svg {
- fill: $primary-text-color;
- height: 52px;
- }
-
- @media screen and (max-width: $no-gap-breakpoint) {
- padding: 0;
- margin-bottom: 30px;
- }
- }
-
- .directory {
- margin-top: 30px;
- background: transparent;
- box-shadow: none;
- border-radius: 0;
- }
-
- .hero-widget {
- margin-top: 30px;
- margin-bottom: 0;
-
- h4 {
- padding: 10px;
- text-transform: uppercase;
- font-weight: 700;
- font-size: 13px;
- color: $darker-text-color;
- }
-
- &__text {
- border-radius: 0;
- padding-bottom: 0;
- }
-
- &__footer {
- background: $ui-base-color;
- padding: 10px;
- border-radius: 0 0 4px 4px;
- display: flex;
-
- &__column {
- flex: 1 1 50%;
- overflow-x: hidden;
- }
- }
-
- .account {
- padding: 10px 0;
- border-bottom: 0;
-
- .account__display-name {
- display: flex;
- align-items: center;
- }
- }
-
- &__counters__wrapper {
- display: flex;
- }
-
- &__counter {
- padding: 10px;
- width: 50%;
-
- strong {
- font-family: $font-display, sans-serif;
- font-size: 15px;
- font-weight: 700;
- display: block;
- }
-
- span {
- font-size: 14px;
- color: $darker-text-color;
- }
- }
- }
-
- .simple_form .user_agreement .label_input > label {
- font-weight: 400;
- color: $darker-text-color;
- }
-
- .simple_form p.lead {
- color: $darker-text-color;
- font-size: 15px;
- line-height: 20px;
- font-weight: 400;
- margin-bottom: 25px;
- }
-
- &__grid {
- max-width: 960px;
- margin: 0 auto;
- display: grid;
- grid-template-columns: minmax(0, 50%) minmax(0, 50%);
- grid-gap: 30px;
-
- @media screen and (max-width: 738px) {
- grid-template-columns: minmax(0, 100%);
- grid-gap: 10px;
-
- &__column-login {
- grid-row: 1;
- display: flex;
- flex-direction: column;
-
- .box-widget {
- order: 2;
- flex: 0 0 auto;
- }
-
- .hero-widget {
- margin-top: 0;
- margin-bottom: 10px;
- order: 1;
- flex: 0 0 auto;
- }
- }
-
- &__column-registration {
- grid-row: 2;
- }
-
- .directory {
- margin-top: 10px;
- }
- }
-
- @media screen and (max-width: $no-gap-breakpoint) {
- grid-gap: 0;
-
- .hero-widget {
- display: block;
- margin-bottom: 0;
- box-shadow: none;
-
- &__img,
- &__img img,
- &__footer {
- border-radius: 0;
- }
- }
-
- .hero-widget,
- .box-widget,
- .directory__tag {
- border-bottom: 1px solid lighten($ui-base-color, 8%);
- }
-
- .directory {
- margin-top: 0;
-
- &__tag {
- margin-bottom: 0;
-
- & > a,
- & > div {
- border-radius: 0;
- box-shadow: none;
- }
-
- &:last-child {
- border-bottom: 0;
- }
- }
- }
- }
- }
-}
-
-.brand {
- position: relative;
- text-decoration: none;
-}
-
-.brand__tagline {
- display: block;
- position: absolute;
- bottom: -10px;
- left: 50px;
- width: 300px;
- color: $ui-primary-color;
- text-decoration: none;
- font-size: 14px;
-
- @media screen and (max-width: $no-gap-breakpoint) {
- position: static;
- width: auto;
- margin-top: 20px;
- color: $dark-text-color;
- }
-}
-
-.rules-list {
- background: darken($ui-base-color, 2%);
- border: 1px solid darken($ui-base-color, 8%);
- border-radius: 4px;
- padding: 0.5em 2.5em !important;
- margin-top: 1.85em !important;
-
- li {
- border-bottom: 1px solid lighten($ui-base-color, 4%);
- color: $dark-text-color;
- padding: 1em;
-
&:last-child {
border-bottom: 0;
}
}
-
- &__text {
- color: $primary-text-color;
- }
}
diff --git a/app/javascript/styles/mastodon/accounts.scss b/app/javascript/styles/mastodon/accounts.scss
index 215774a192..54b65bfc8c 100644
--- a/app/javascript/styles/mastodon/accounts.scss
+++ b/app/javascript/styles/mastodon/accounts.scss
@@ -210,9 +210,9 @@
font-size: 12px;
line-height: 12px;
font-weight: 500;
- color: $ui-secondary-color;
- background-color: rgba($ui-secondary-color, 0.1);
- border: 1px solid rgba($ui-secondary-color, 0.5);
+ color: var(--user-role-accent, $ui-secondary-color);
+ background-color: var(--user-role-background, rgba($ui-secondary-color, 0.1));
+ border: 1px solid var(--user-role-border, rgba($ui-secondary-color, 0.5));
&.moderator {
color: $success-green;
diff --git a/app/javascript/styles/mastodon/admin.scss b/app/javascript/styles/mastodon/admin.scss
index 1dfb3d7eea..2372573d54 100644
--- a/app/javascript/styles/mastodon/admin.scss
+++ b/app/javascript/styles/mastodon/admin.scss
@@ -31,23 +31,17 @@ $content-width: 840px;
&__toggle {
display: none;
- background: lighten($ui-base-color, 8%);
- height: 48px;
+ background: darken($ui-base-color, 4%);
+ border-bottom: 1px solid lighten($ui-base-color, 4%);
+ align-items: center;
&__logo {
flex: 1 1 auto;
a {
- display: inline-block;
+ display: block;
padding: 15px;
}
-
- svg {
- fill: $primary-text-color;
- height: 20px;
- position: relative;
- bottom: -2px;
- }
}
&__icon {
@@ -55,15 +49,27 @@ $content-width: 840px;
color: $darker-text-color;
text-decoration: none;
flex: 0 0 auto;
- font-size: 20px;
- padding: 15px;
- }
+ font-size: 18px;
+ padding: 10px;
+ margin: 5px 10px;
+ border-radius: 4px;
- a {
- &:hover,
- &:focus,
- &:active {
- background: lighten($ui-base-color, 12%);
+ &:focus {
+ background: $ui-base-color;
+ }
+
+ .fa-times {
+ display: none;
+ }
+
+ &.active {
+ .fa-times {
+ display: block;
+ }
+
+ .fa-bars {
+ display: none;
+ }
}
}
}
@@ -75,6 +81,13 @@ $content-width: 840px;
height: 100px;
}
+ .logo--wordmark {
+ display: inherit;
+ margin: inherit;
+ width: inherit;
+ height: 25px;
+ }
+
@media screen and (max-width: $no-columns-breakpoint) {
& > a:first-child {
display: none;
@@ -133,12 +146,12 @@ $content-width: 840px;
.simple-navigation-active-leaf a {
color: $primary-text-color;
- background-color: $ui-highlight-color;
+ background-color: darken($ui-highlight-color, 2%);
border-bottom: 0;
border-radius: 0;
&:hover {
- background-color: lighten($ui-highlight-color, 5%);
+ background-color: $ui-highlight-color;
}
}
}
@@ -181,21 +194,65 @@ $content-width: 840px;
padding-top: 30px;
}
- &-heading {
- display: flex;
- padding-bottom: 36px;
- border-bottom: 1px solid lighten($ui-base-color, 8%);
- margin: -15px -15px 40px 0;
- flex-wrap: wrap;
- align-items: center;
- justify-content: space-between;
+ &__heading {
+ margin-bottom: 45px;
+
+ &__row {
+ display: flex;
+ flex-wrap: wrap;
+ align-items: center;
+ justify-content: space-between;
+ margin: -15px -15px 0 0;
+
+ & > * {
+ margin-top: 15px;
+ margin-right: 15px;
+ }
+ }
+
+ &__tabs {
+ margin-top: 30px;
+ width: 100%;
+
+ & > div {
+ display: flex;
+ flex-wrap: wrap;
+ gap: 5px;
+ }
+
+ a {
+ font-size: 14px;
+ display: inline-flex;
+ align-items: center;
+ padding: 7px 10px;
+ border-radius: 4px;
+ color: $darker-text-color;
+ text-decoration: none;
+ font-weight: 500;
+ gap: 5px;
+ white-space: nowrap;
+
+ &:hover,
+ &:focus,
+ &:active {
+ background: lighten($ui-base-color, 4%);
+ }
- & > * {
- margin-top: 15px;
- margin-right: 15px;
+ &.selected {
+ font-weight: 700;
+ color: $primary-text-color;
+ background: $ui-highlight-color;
+
+ &:hover,
+ &:focus,
+ &:active {
+ background: lighten($ui-highlight-color, 4%);
+ }
+ }
+ }
}
- &-actions {
+ &__actions {
display: inline-flex;
& > :not(:first-child) {
@@ -221,11 +278,7 @@ $content-width: 840px;
color: $secondary-text-color;
font-size: 24px;
line-height: 36px;
- font-weight: 400;
-
- @media screen and (max-width: $no-columns-breakpoint) {
- font-weight: 700;
- }
+ font-weight: 700;
}
h3 {
@@ -330,6 +383,14 @@ $content-width: 840px;
&.visible {
display: block;
+ position: fixed;
+ z-index: 10;
+ width: 100%;
+ height: calc(100vh - 56px);
+ left: 0;
+ bottom: 0;
+ overflow-y: auto;
+ background: $ui-base-color;
}
}
@@ -430,6 +491,11 @@ body,
}
}
+ & > div {
+ display: flex;
+ gap: 5px;
+ }
+
strong {
font-weight: 500;
text-transform: uppercase;
@@ -901,7 +967,7 @@ a.name-tag,
border: 0;
a {
- color: lighten($ui-highlight-color, 8%);
+ color: $highlight-text-color;
}
dl:first-child .verified {
@@ -924,7 +990,8 @@ a.name-tag,
text-align: center;
}
-.applications-list__item {
+.applications-list__item,
+.filters-list__item {
padding: 15px 0;
background: $ui-base-color;
border: 1px solid lighten($ui-base-color, 4%);
@@ -932,7 +999,12 @@ a.name-tag,
margin-top: 15px;
}
-.announcements-list {
+.user-role {
+ color: var(--user-role-accent);
+}
+
+.announcements-list,
+.filters-list {
border: 1px solid lighten($ui-base-color, 4%);
border-radius: 4px;
@@ -967,6 +1039,17 @@ a.name-tag,
&__meta {
padding: 0 15px;
color: $dark-text-color;
+
+ a {
+ color: inherit;
+ text-decoration: underline;
+
+ &:hover,
+ &:focus,
+ &:active {
+ text-decoration: none;
+ }
+ }
}
&__action-bar {
@@ -985,6 +1068,33 @@ a.name-tag,
}
}
+.filters-list__item {
+ &__title {
+ display: flex;
+ justify-content: space-between;
+ margin-bottom: 0;
+ }
+
+ &__permissions {
+ margin-top: 0;
+ margin-bottom: 10px;
+ }
+
+ .expiration {
+ font-size: 13px;
+ }
+
+ &.expired {
+ .expiration {
+ color: lighten($error-red, 12%);
+ }
+
+ .permissions-list__item__icon {
+ color: $dark-text-color;
+ }
+ }
+}
+
.dashboard__counters.admin-account-counters {
margin-top: 10px;
}
@@ -1108,7 +1218,7 @@ a.name-tag,
path:first-child {
fill: rgba($highlight-text-color, 0.25) !important;
- fill-opacity: 1 !important;
+ fill-opacity: 100% !important;
}
path:last-child {
@@ -1667,3 +1777,67 @@ a.sparkline {
}
}
}
+
+.history {
+ counter-reset: step 0;
+ font-size: 15px;
+ line-height: 22px;
+
+ li {
+ counter-increment: step 1;
+ padding-left: 2.5rem;
+ padding-bottom: 8px;
+ position: relative;
+ margin-bottom: 8px;
+
+ &::before {
+ position: absolute;
+ content: counter(step);
+ font-size: 0.625rem;
+ font-weight: 500;
+ left: 0;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ width: calc(1.375rem + 1px);
+ height: calc(1.375rem + 1px);
+ background: $ui-base-color;
+ border: 1px solid $highlight-text-color;
+ color: $highlight-text-color;
+ border-radius: 8px;
+ }
+
+ &::after {
+ position: absolute;
+ content: "";
+ width: 1px;
+ background: $highlight-text-color;
+ bottom: 0;
+ top: calc(1.875rem + 1px);
+ left: 0.6875rem;
+ }
+
+ &:last-child {
+ margin-bottom: 0;
+
+ &::after {
+ display: none;
+ }
+ }
+ }
+
+ &__entry {
+ h5 {
+ font-weight: 500;
+ color: $primary-text-color;
+ line-height: 25px;
+ margin-bottom: 16px;
+ }
+
+ .status {
+ border: 1px solid lighten($ui-base-color, 4%);
+ background: $ui-base-color;
+ border-radius: 4px;
+ }
+ }
+}
diff --git a/app/javascript/styles/mastodon/basics.scss b/app/javascript/styles/mastodon/basics.scss
index 391f1fad9e..413a1cdd6a 100644
--- a/app/javascript/styles/mastodon/basics.scss
+++ b/app/javascript/styles/mastodon/basics.scss
@@ -256,7 +256,17 @@ button {
}
.logo-resources {
- display: none;
+ // Not using display: none because of https://bugs.chromium.org/p/chromium/issues/detail?id=258029
+ visibility: hidden;
+ user-select: none;
+ pointer-events: none;
+ width: 0;
+ height: 0;
+ overflow: hidden;
+ position: absolute;
+ top: 0;
+ left: 0;
+ z-index: -1000;
}
// NoScript adds a __ns__pop2top class to the full ancestry of blocked elements,
diff --git a/app/javascript/styles/mastodon/branding.scss b/app/javascript/styles/mastodon/branding.scss
new file mode 100644
index 0000000000..d1bddc68b0
--- /dev/null
+++ b/app/javascript/styles/mastodon/branding.scss
@@ -0,0 +1,3 @@
+.logo {
+ color: $primary-text-color;
+}
diff --git a/app/javascript/styles/mastodon/compact_header.scss b/app/javascript/styles/mastodon/compact_header.scss
deleted file mode 100644
index 4980ab5f1a..0000000000
--- a/app/javascript/styles/mastodon/compact_header.scss
+++ /dev/null
@@ -1,34 +0,0 @@
-.compact-header {
- h1 {
- font-size: 24px;
- line-height: 28px;
- color: $darker-text-color;
- font-weight: 500;
- margin-bottom: 20px;
- padding: 0 10px;
- word-wrap: break-word;
-
- @media screen and (max-width: 740px) {
- text-align: center;
- padding: 20px 10px 0;
- }
-
- a {
- color: inherit;
- text-decoration: none;
- }
-
- small {
- font-weight: 400;
- color: $secondary-text-color;
- }
-
- img {
- display: inline-block;
- margin-bottom: -5px;
- margin-right: 15px;
- width: 36px;
- height: 36px;
- }
- }
-}
diff --git a/app/javascript/styles/mastodon/components.scss b/app/javascript/styles/mastodon/components.scss
index 67a91e922d..b57f6802d5 100644
--- a/app/javascript/styles/mastodon/components.scss
+++ b/app/javascript/styles/mastodon/components.scss
@@ -24,11 +24,16 @@
display: block;
font-size: 15px;
line-height: 20px;
- color: $ui-highlight-color;
+ color: $highlight-text-color;
border: 0;
background: transparent;
padding: 0;
cursor: pointer;
+ text-decoration: none;
+
+ &--destructive {
+ color: $error-value-color;
+ }
&:hover,
&:active {
@@ -42,7 +47,7 @@
}
.button {
- background-color: $ui-highlight-color;
+ background-color: darken($ui-highlight-color, 2%);
border: 10px none;
border-radius: 4px;
box-sizing: border-box;
@@ -60,20 +65,16 @@
text-align: center;
text-decoration: none;
text-overflow: ellipsis;
- transition: all 100ms ease-in;
white-space: nowrap;
width: auto;
&:active,
&:focus,
&:hover {
- background-color: lighten($ui-highlight-color, 10%);
- transition: all 200ms ease-out;
+ background-color: $ui-highlight-color;
}
&--destructive {
- transition: none;
-
&:active,
&:focus,
&:hover {
@@ -88,6 +89,15 @@
cursor: default;
}
+ &.copyable {
+ transition: background 300ms linear;
+ }
+
+ &.copied {
+ background: $valid-value-color;
+ transition: none;
+ }
+
&::-moz-focus-inner {
border: 0;
}
@@ -130,6 +140,27 @@
&:hover {
border-color: lighten($ui-primary-color, 4%);
color: lighten($darker-text-color, 4%);
+ text-decoration: none;
+ }
+
+ &:disabled {
+ opacity: 0.5;
+ }
+ }
+
+ &.button-tertiary {
+ background: transparent;
+ padding: 6px 17px;
+ color: $highlight-text-color;
+ border: 1px solid $highlight-text-color;
+
+ &:active,
+ &:focus,
+ &:hover {
+ background: $ui-highlight-color;
+ color: $primary-text-color;
+ border: 0;
+ padding: 7px 18px;
}
&:disabled {
@@ -248,11 +279,12 @@
display: inline-flex;
align-items: center;
width: auto !important;
+ padding: 0 4px 0 2px;
}
&__counter {
display: inline-block;
- width: 14px;
+ width: auto;
margin-left: 4px;
font-size: 12px;
font-weight: 500;
@@ -336,7 +368,7 @@
}
.compose-form {
- padding: 10px;
+ padding: 15px;
&__sensitive-button {
padding: 10px;
@@ -683,7 +715,7 @@
.compose-form__publish-button-wrapper {
overflow: hidden;
- padding-top: 10px;
+ padding-top: 15px;
}
}
}
@@ -704,6 +736,19 @@
transition: height 0.4s ease, opacity 0.4s ease;
}
+.sign-in-banner {
+ padding: 10px;
+
+ p {
+ color: $darker-text-color;
+ margin-bottom: 20px;
+ }
+
+ .button {
+ margin-bottom: 10px;
+ }
+}
+
.emojione {
font-size: inherit;
vertical-align: middle;
@@ -764,7 +809,7 @@
.reply-indicator__content {
position: relative;
font-size: 15px;
- line-height: 20px;
+ line-height: 22px;
word-wrap: break-word;
font-weight: 400;
overflow: hidden;
@@ -829,7 +874,7 @@
}
a.unhandled-link {
- color: lighten($ui-highlight-color, 8%);
+ color: $highlight-text-color;
}
.status__content__spoiler-link {
@@ -899,7 +944,7 @@
}
&.unhandled-link {
- color: lighten($ui-highlight-color, 8%);
+ color: $highlight-text-color;
}
}
}
@@ -911,12 +956,12 @@
.status__content__read-more-button {
display: block;
font-size: 15px;
- line-height: 20px;
- color: lighten($ui-highlight-color, 8%);
+ line-height: 22px;
+ color: $highlight-text-color;
border: 0;
background: transparent;
padding: 0;
- padding-top: 8px;
+ padding-top: 16px;
text-decoration: none;
&:hover,
@@ -925,15 +970,13 @@
}
}
-.status__content__edited-label {
- display: block;
- cursor: default;
+.translate-button {
+ margin-top: 16px;
font-size: 15px;
- line-height: 20px;
- padding: 0;
- padding-top: 8px;
+ line-height: 22px;
+ display: flex;
+ justify-content: space-between;
color: $dark-text-color;
- font-weight: 500;
}
.status__content__spoiler-link {
@@ -963,11 +1006,21 @@
width: 100%;
clear: both;
border-bottom: 1px solid lighten($ui-base-color, 8%);
-}
-.status__prepend-icon-wrapper {
- left: -26px;
- position: absolute;
+ &__button {
+ display: inline;
+ color: lighten($ui-highlight-color, 8%);
+ border: 0;
+ background: transparent;
+ padding: 0;
+ font-size: inherit;
+ line-height: inherit;
+
+ &:hover,
+ &:active {
+ text-decoration: underline;
+ }
+ }
}
.focusable {
@@ -983,19 +1036,11 @@
}
.status {
- padding: 8px 10px;
- padding-left: 68px;
- position: relative;
+ padding: 16px;
min-height: 54px;
border-bottom: 1px solid lighten($ui-base-color, 8%);
cursor: auto;
- @supports (-ms-overflow-style: -ms-autohiding-scrollbar) {
- // Add margin to avoid Edge auto-hiding scrollbar appearing over content.
- // On Edge 16 this is 16px and Edge <=15 it's 12px, so aim for 16px.
- padding-right: 26px; // 10px + 16px
- }
-
@keyframes fade {
0% { opacity: 0; }
100% { opacity: 1; }
@@ -1004,9 +1049,11 @@
opacity: 1;
animation: fade 150ms linear;
+ .media-gallery,
.video-player,
- .audio-player {
- margin-top: 8px;
+ .audio-player,
+ .attachment-list {
+ margin-top: 16px;
}
&.light {
@@ -1034,7 +1081,7 @@
color: $highlight-text-color;
}
- a.status__content__spoiler-link {
+ &__spoiler-link {
color: $primary-text-color;
background: $ui-primary-color;
@@ -1047,7 +1094,16 @@
}
}
-.status__relative-time,
+.status__relative-time {
+ display: block;
+ font-size: 15px;
+ line-height: 22px;
+ height: 40px;
+ order: 2;
+ flex: 0 0 auto;
+ color: $dark-text-color;
+}
+
.notification__relative_time {
color: $dark-text-color;
float: right;
@@ -1064,13 +1120,36 @@
}
.status__info .status__display-name {
- display: block;
max-width: 100%;
- padding-right: 25px;
+ display: flex;
+ font-size: 15px;
+ line-height: 22px;
+ align-items: center;
+ gap: 10px;
+ overflow: hidden;
+
+ .display-name {
+ bdi {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ &__account {
+ white-space: nowrap;
+ display: block;
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+ }
}
.status__info {
font-size: 15px;
+ margin-bottom: 10px;
+ display: flex;
+ align-items: center;
+ justify-content: space-between;
+ gap: 10px;
}
.status-check-box__status {
@@ -1109,12 +1188,14 @@
}
.status__prepend {
- margin-left: 68px;
+ padding: 16px;
+ padding-bottom: 0;
+ display: flex;
+ gap: 10px;
+ font-size: 15px;
+ line-height: 22px;
+ font-weight: 500;
color: $dark-text-color;
- padding: 8px 0;
- padding-bottom: 2px;
- font-size: 14px;
- position: relative;
.status__display-name strong {
color: $dark-text-color;
@@ -1128,22 +1209,11 @@
}
.status__action-bar {
- align-items: center;
display: flex;
- margin-top: 8px;
-}
-
-.status__action-bar-button {
- margin-right: 18px;
-
- &.icon-button--with-counter {
- margin-right: 14px;
- }
-}
-
-.status__action-bar-dropdown {
- height: 23.15px;
- width: 23.15px;
+ justify-content: space-between;
+ align-items: center;
+ gap: 18px;
+ margin-top: 16px;
}
.detailed-status__action-bar-dropdown {
@@ -1156,7 +1226,7 @@
.detailed-status {
background: lighten($ui-base-color, 4%);
- padding: 14px 10px;
+ padding: 16px;
&--flex {
display: flex;
@@ -1186,14 +1256,15 @@
}
}
+ .media-gallery,
.video-player,
.audio-player {
- margin-top: 8px;
+ margin-top: 16px;
}
}
.detailed-status__meta {
- margin-top: 15px;
+ margin-top: 16px;
color: $dark-text-color;
font-size: 14px;
line-height: 18px;
@@ -1255,7 +1326,7 @@
}
.account {
- padding: 10px;
+ padding: 16px;
border-bottom: 1px solid lighten($ui-base-color, 8%);
&.compact {
@@ -1269,7 +1340,9 @@
.account__display-name {
flex: 1 1 auto;
- display: block;
+ display: flex;
+ align-items: center;
+ gap: 10px;
color: $darker-text-color;
overflow: hidden;
text-decoration: none;
@@ -1302,12 +1375,7 @@
.account__wrapper {
display: flex;
-}
-
-.account__avatar-wrapper {
- float: left;
- margin-left: 12px;
- margin-right: 12px;
+ gap: 10px;
}
.account__avatar {
@@ -1315,9 +1383,14 @@
display: block;
position: relative;
- width: 36px;
- height: 36px;
- background-size: 36px 36px;
+ overflow: hidden;
+
+ img {
+ display: block;
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ }
&-inline {
display: inline-block;
@@ -1326,8 +1399,6 @@
}
&-composite {
- @include avatar-radius;
-
border-radius: 50%;
overflow: hidden;
position: relative;
@@ -1338,6 +1409,11 @@
box-sizing: border-box;
}
+ .account__avatar {
+ width: 100% !important;
+ height: 100% !important;
+ }
+
&__label {
display: block;
position: absolute;
@@ -1357,35 +1433,13 @@ a .account__avatar {
}
.account__avatar-overlay {
- @include avatar-size(48px);
-
- &-base {
- @include avatar-radius;
- @include avatar-size(36px);
-
- img {
- @include avatar-radius;
-
- width: 100%;
- height: 100%;
- }
- }
+ position: relative;
&-overlay {
- @include avatar-radius;
- @include avatar-size(24px);
-
position: absolute;
bottom: 0;
right: 0;
z-index: 1;
-
- img {
- @include avatar-radius;
-
- width: 100%;
- height: 100%;
- }
}
}
@@ -1556,10 +1610,13 @@ a.account__display-name {
}
.detailed-status__display-name {
- color: $secondary-text-color;
- display: block;
- line-height: 24px;
- margin-bottom: 15px;
+ color: $darker-text-color;
+ display: flex;
+ align-items: center;
+ gap: 10px;
+ font-size: 15px;
+ line-height: 22px;
+ margin-bottom: 16px;
overflow: hidden;
strong,
@@ -1570,31 +1627,13 @@ a.account__display-name {
}
strong {
- font-size: 16px;
color: $primary-text-color;
}
}
-.detailed-status__display-avatar {
- float: left;
- margin-right: 10px;
-}
-
.status__avatar {
- height: 48px;
- left: 10px;
- position: absolute;
- top: 10px;
- width: 48px;
-}
-
-.status__expand {
- width: 68px;
- position: absolute;
- left: 0;
- top: 0;
- height: 100%;
- cursor: pointer;
+ width: 46px;
+ height: 46px;
}
.muted {
@@ -1624,14 +1663,53 @@ a.account__display-name {
}
}
+.notification__report {
+ padding: 16px;
+ border-bottom: 1px solid lighten($ui-base-color, 8%);
+ display: flex;
+ gap: 10px;
+
+ &__avatar {
+ flex: 0 0 auto;
+ }
+
+ &__details {
+ flex: 1 1 auto;
+ display: flex;
+ justify-content: space-between;
+ align-items: center;
+ color: $darker-text-color;
+ gap: 10px;
+ font-size: 15px;
+ line-height: 22px;
+ white-space: nowrap;
+ overflow: hidden;
+
+ & > div {
+ overflow: hidden;
+ text-overflow: ellipsis;
+ }
+
+ strong {
+ font-weight: 500;
+ }
+ }
+
+ &__actions {
+ flex: 0 0 auto;
+ }
+}
+
.notification__message {
- margin: 0 10px 0 68px;
- padding: 8px 0 0;
+ padding: 16px;
+ padding-bottom: 0;
cursor: default;
color: $darker-text-color;
font-size: 15px;
line-height: 22px;
- position: relative;
+ font-weight: 500;
+ display: flex;
+ gap: 10px;
.fa {
color: $highlight-text-color;
@@ -1645,9 +1723,6 @@ a.account__display-name {
}
.notification__favourite-icon-wrapper {
- left: -26px;
- position: absolute;
-
.star-icon {
color: $gold-star;
}
@@ -1681,15 +1756,10 @@ a.account__display-name {
text-decoration: none;
&:hover {
- color: $primary-text-color;
text-decoration: underline;
}
}
-.notification__relative_time {
- float: right;
-}
-
.display-name {
display: block;
max-width: 100%;
@@ -1702,10 +1772,6 @@ a.account__display-name {
font-weight: 500;
}
-.display-name__account {
- font-size: 14px;
-}
-
.status__relative-time,
.detailed-status__datetime {
&:hover {
@@ -1743,10 +1809,14 @@ a.account__display-name {
object-fit: contain;
}
- .loading-bar {
+ .loading-bar__container {
position: relative;
}
+ .loading-bar {
+ position: absolute;
+ }
+
&.image-loader--amorphous .image-loader__preview-canvas {
display: none;
}
@@ -1770,11 +1840,12 @@ a.account__display-name {
}
.navigation-bar {
- padding: 10px;
+ padding: 15px;
display: flex;
align-items: center;
flex-shrink: 0;
cursor: default;
+ gap: 10px;
color: $darker-text-color;
strong {
@@ -1809,9 +1880,7 @@ a.account__display-name {
.navigation-bar__profile {
flex: 1 1 auto;
- margin-left: 8px;
line-height: 20px;
- margin-top: -1px;
overflow: hidden;
}
@@ -2113,27 +2182,62 @@ a.account__display-name {
&__main {
box-sizing: border-box;
width: 100%;
- max-width: 600px;
flex: 0 0 auto;
display: flex;
flex-direction: column;
@media screen and (min-width: $no-gap-breakpoint) {
padding: 0 10px;
+ max-width: 600px;
}
}
}
}
-.tabs-bar__wrapper {
- background: darken($ui-base-color, 8%);
- position: sticky;
+$ui-header-height: 55px;
+
+.ui__header {
+ display: none;
+ box-sizing: border-box;
+ height: $ui-header-height;
+ position: sticky;
top: 0;
z-index: 2;
+ justify-content: space-between;
+ align-items: center;
+
+ &__logo {
+ display: inline-flex;
+ padding: 15px;
+
+ .logo {
+ height: $ui-header-height - 30px;
+ width: auto;
+ }
+ }
+
+ &__links {
+ display: flex;
+ align-items: center;
+ gap: 10px;
+ padding: 0 10px;
+
+ .button {
+ flex: 0 0 auto;
+ }
+ }
+}
+
+.tabs-bar__wrapper {
+ background: darken($ui-base-color, 8%);
+ position: sticky;
+ top: $ui-header-height;
+ z-index: 2;
padding-top: 0;
@media screen and (min-width: $no-gap-breakpoint) {
padding-top: 10px;
+ top: 0;
}
.tabs-bar {
@@ -2170,6 +2274,8 @@ a.account__display-name {
> .scrollable {
background: $ui-base-color;
+ border-bottom-left-radius: 4px;
+ border-bottom-right-radius: 4px;
}
}
@@ -2339,164 +2445,120 @@ a.account__display-name {
padding: 10px 0;
padding-top: 0;
}
+}
- @media screen and (min-width: 630px) {
- .detailed-status {
- padding: 15px;
+@media screen and (min-width: $no-gap-breakpoint) {
+ .tabs-bar {
+ width: 100%;
+ }
- .media-gallery,
- .video-player,
- .audio-player {
- margin-top: 15px;
- }
- }
+ .react-swipeable-view-container .columns-area--mobile {
+ height: calc(100% - 10px) !important;
+ }
- .account__header__bar {
- padding: 5px 10px;
- }
+ .getting-started__wrapper,
+ .search {
+ margin-bottom: 10px;
+ }
- .navigation-bar,
- .compose-form {
- padding: 15px;
- }
+ .tabs-bar__link.optional {
+ display: none;
+ }
- .compose-form .compose-form__publish .compose-form__publish-button-wrapper {
- padding-top: 15px;
- }
+ .search-page .search {
+ display: none;
+ }
- .status {
- padding: 15px 15px 15px (48px + 15px * 2);
- min-height: 48px + 2px;
+ .navigation-panel__legal {
+ display: none;
+ }
+}
- &__avatar {
- left: 15px;
- top: 17px;
- }
+@media screen and (max-width: $no-gap-breakpoint - 1px) {
+ $sidebar-width: 285px;
- &__content {
- padding-top: 5px;
- }
+ .columns-area__panels__main {
+ width: calc(100% - $sidebar-width);
+ }
- &__prepend {
- margin-left: 48px + 15px * 2;
- padding-top: 15px;
- }
+ .columns-area__panels {
+ min-height: calc(100vh - $ui-header-height);
+ }
- &__prepend-icon-wrapper {
- left: -32px;
- }
+ .columns-area__panels__pane--navigational {
+ min-width: $sidebar-width;
- .media-gallery,
- &__action-bar,
- .video-player,
- .audio-player {
- margin-top: 10px;
- }
+ .columns-area__panels__pane__inner {
+ width: $sidebar-width;
}
- .account {
- padding: 15px 10px;
-
- &__header__bio {
- margin: 0 -10px;
- }
+ .navigation-panel {
+ margin: 0;
+ background: $ui-base-color;
+ border-left: 1px solid lighten($ui-base-color, 8%);
+ height: 100vh;
}
- .notification {
- &__message {
- margin-left: 48px + 15px * 2;
- padding-top: 15px;
- }
-
- &__favourite-icon-wrapper {
- left: -32px;
- }
-
- .status {
- padding-top: 8px;
- }
-
- .account {
- padding-top: 8px;
- }
+ .navigation-panel__sign-in-banner,
+ .navigation-panel__logo,
+ .getting-started__trends {
+ display: none;
+ }
- .account__avatar-wrapper {
- margin-left: 17px;
- margin-right: 15px;
- }
+ .column-link__icon {
+ font-size: 18px;
}
}
-}
-.floating-action-button {
- position: fixed;
- display: flex;
- justify-content: center;
- align-items: center;
- width: 3.9375rem;
- height: 3.9375rem;
- bottom: 1.3125rem;
- right: 1.3125rem;
- background: darken($ui-highlight-color, 3%);
- color: $white;
- border-radius: 50%;
- font-size: 21px;
- line-height: 21px;
- text-decoration: none;
- box-shadow: 2px 3px 9px rgba($base-shadow-color, 0.4);
+ .ui__header {
+ display: flex;
+ background: $ui-base-color;
+ border-bottom: 1px solid lighten($ui-base-color, 8%);
+ }
- &:hover,
- &:focus,
- &:active {
- background: lighten($ui-highlight-color, 7%);
+ .column-header,
+ .column-back-button,
+ .scrollable,
+ .error-column {
+ border-radius: 0 !important;
}
}
-@media screen and (min-width: $no-gap-breakpoint) {
- .tabs-bar {
- width: 100%;
- }
+@media screen and (max-width: $no-gap-breakpoint - 285px - 1px) {
+ $sidebar-width: 55px;
- .react-swipeable-view-container .columns-area--mobile {
- height: calc(100% - 10px) !important;
+ .columns-area__panels__main {
+ width: calc(100% - $sidebar-width);
}
- .getting-started__wrapper,
- .search {
- margin-bottom: 10px;
- }
-}
+ .columns-area__panels__pane--navigational {
+ min-width: $sidebar-width;
-@media screen and (max-width: 600px + (285px * 1) + (10px * 1)) {
- .columns-area__panels__pane--compositional {
- display: none;
- }
+ .columns-area__panels__pane__inner {
+ width: $sidebar-width;
+ }
- .with-fab .scrollable .item-list:last-child {
- padding-bottom: 5.25rem;
- }
-}
+ .column-link span {
+ display: none;
+ }
-@media screen and (min-width: 600px + (285px * 1) + (10px * 1)) {
- .floating-action-button,
- .tabs-bar__link.optional {
- display: none;
+ .list-panel {
+ display: none;
+ }
}
+}
- .search-page .search {
- display: none;
- }
+.explore__search-header {
+ display: none;
}
-@media screen and (max-width: 600px + (285px * 2) + (10px * 2)) {
- .columns-area__panels__pane--navigational {
+@media screen and (max-width: $no-gap-breakpoint - 1px) {
+ .columns-area__panels__pane--compositional {
display: none;
}
-}
-@media screen and (min-width: 600px + (285px * 2) + (10px * 2)) {
- .tabs-bar {
- display: none;
+ .explore__search-header {
+ display: flex;
}
}
@@ -2538,7 +2600,6 @@ a.account__display-name {
padding: 40px;
.logo {
- fill: $primary-text-color;
width: 50px;
margin: 0 auto;
margin-bottom: 40px;
@@ -2566,7 +2627,7 @@ a.account__display-name {
.column-actions {
display: flex;
- align-items: start;
+ align-items: flex-start;
justify-content: center;
padding: 40px;
padding-top: 40px;
@@ -2607,15 +2668,28 @@ a.account__display-name {
height: calc(100% - 10px);
overflow-y: hidden;
- .navigation-bar {
- padding-top: 20px;
- padding-bottom: 20px;
- flex: 0 1 48px;
- min-height: 20px;
+ .hero-widget {
+ box-shadow: none;
+
+ &__text,
+ &__img,
+ &__img img {
+ border-radius: 0;
+ }
+
+ &__text {
+ padding: 15px;
+ color: $secondary-text-color;
+
+ strong {
+ font-weight: 700;
+ color: $primary-text-color;
+ }
+ }
}
- .flex-spacer {
- background: transparent;
+ .navigation-bar {
+ flex: 0 1 48px;
}
.compose-form {
@@ -2656,6 +2730,14 @@ a.account__display-name {
flex: 0 0 auto;
}
+ .logo {
+ height: 30px;
+ width: auto;
+ }
+}
+
+.navigation-panel,
+.compose-panel {
hr {
flex: 0 0 auto;
border: 0;
@@ -2783,6 +2865,7 @@ a.account__display-name {
box-sizing: border-box;
width: 100%;
background: lighten($ui-base-color, 4%);
+ border-radius: 4px 4px 0 0;
color: $highlight-text-color;
cursor: pointer;
flex: 0 0 auto;
@@ -2882,11 +2965,11 @@ a.account__display-name {
}
.react-toggle--checked .react-toggle-track {
- background-color: $ui-highlight-color;
+ background-color: darken($ui-highlight-color, 2%);
}
.react-toggle--checked:is(:hover, :focus-within):not(.react-toggle--disabled) .react-toggle-track {
- background-color: lighten($ui-highlight-color, 10%);
+ background-color: $ui-highlight-color;
}
.react-toggle-track-check {
@@ -2952,6 +3035,8 @@ a.account__display-name {
font-size: 16px;
padding: 15px;
text-decoration: none;
+ overflow: hidden;
+ white-space: nowrap;
&:hover,
&:focus,
@@ -2975,7 +3060,18 @@ a.account__display-name {
}
&.active {
- color: $ui-highlight-color;
+ color: $highlight-text-color;
+ }
+ }
+
+ &--logo {
+ background: transparent;
+ padding: 10px;
+
+ &:hover,
+ &:focus,
+ &:active {
+ background: transparent;
}
}
}
@@ -3029,6 +3125,7 @@ a.account__display-name {
padding: 10px;
padding-top: 20px;
z-index: 1;
+ font-size: 13px;
ul {
margin-bottom: 10px;
@@ -3040,7 +3137,6 @@ a.account__display-name {
p {
color: $dark-text-color;
- font-size: 13px;
margin-bottom: 20px;
a {
@@ -3408,14 +3504,14 @@ a.status-card.compact:hover {
}
a {
- color: lighten($ui-highlight-color, 8%);
+ color: $highlight-text-color;
text-decoration: none;
&:hover,
&:focus,
&:active {
text-decoration: underline;
- color: lighten($ui-highlight-color, 12%);
+ color: lighten($highlight-text-color, 4%);
}
}
}
@@ -3498,6 +3594,7 @@ a.status-card.compact:hover {
display: flex;
font-size: 16px;
background: lighten($ui-base-color, 4%);
+ border-radius: 4px 4px 0 0;
flex: 0 0 auto;
cursor: pointer;
position: relative;
@@ -3570,6 +3667,11 @@ a.status-card.compact:hover {
background: lighten($ui-base-color, 8%);
}
}
+
+ &:disabled {
+ color: $dark-text-color;
+ cursor: default;
+ }
}
.column-header__collapsible {
@@ -4050,7 +4152,6 @@ a.status-card.compact:hover {
}
.empty-column-indicator,
-.error-column,
.follow_requests-unlocked_explanation {
color: $dark-text-color;
background: $ui-base-color;
@@ -4088,7 +4189,48 @@ a.status-card.compact:hover {
}
.error-column {
+ padding: 20px;
+ background: $ui-base-color;
+ border-radius: 4px;
+ display: flex;
+ flex: 1 1 auto;
+ align-items: center;
+ justify-content: center;
flex-direction: column;
+ cursor: default;
+
+ &__image {
+ width: 70%;
+ max-width: 350px;
+ margin-top: -50px;
+ }
+
+ &__message {
+ text-align: center;
+ color: $darker-text-color;
+ font-size: 15px;
+ line-height: 22px;
+
+ h1 {
+ font-size: 28px;
+ line-height: 33px;
+ font-weight: 700;
+ margin-bottom: 15px;
+ color: $primary-text-color;
+ }
+
+ p {
+ max-width: 48ch;
+ }
+
+ &__actions {
+ margin-top: 30px;
+ display: flex;
+ gap: 10px;
+ align-items: center;
+ justify-content: center;
+ }
+ }
}
@keyframes heartbeat {
@@ -4547,10 +4689,6 @@ a.status-card.compact:hover {
&:focus {
background: lighten($ui-base-color, 4%);
}
-
- @media screen and (max-width: 600px) {
- font-size: 16px;
- }
}
.search__icon {
@@ -4690,6 +4828,7 @@ a.status-card.compact:hover {
left: 0;
width: 100%;
height: 100%;
+ box-sizing: border-box;
display: flex;
flex-direction: column;
align-items: center;
@@ -5045,24 +5184,6 @@ a.status-card.compact:hover {
width: 480px;
position: relative;
flex-direction: column;
-
- .status__display-name {
- display: block;
- max-width: 100%;
- padding-right: 25px;
- }
-
- .status__avatar {
- height: 28px;
- left: 10px;
- position: absolute;
- top: 10px;
- width: 48px;
- }
-
- .status__content__spoiler-link {
- color: lighten($secondary-text-color, 8%);
- }
}
.actions-modal {
@@ -5094,9 +5215,9 @@ a.status-card.compact:hover {
.block-modal__action-bar {
display: flex;
justify-content: space-between;
+ align-items: center;
background: $ui-secondary-color;
- padding: 10px;
- line-height: 36px;
+ padding: 15px;
& > div {
flex: 1 1 auto;
@@ -5110,15 +5231,6 @@ a.status-card.compact:hover {
}
}
-.boost-modal__status-header {
- font-size: 15px;
-}
-
-.boost-modal__status-time {
- float: right;
- font-size: 14px;
-}
-
.mute-modal,
.block-modal {
line-height: 24px;
@@ -5180,6 +5292,16 @@ a.status-card.compact:hover {
line-height: 22px;
color: lighten($inverted-text-color, 16%);
margin-bottom: 30px;
+
+ a {
+ text-decoration: none;
+ color: $inverted-text-color;
+ font-weight: 500;
+
+ &:hover {
+ text-decoration: underline;
+ }
+ }
}
&__actions {
@@ -5326,6 +5448,14 @@ a.status-card.compact:hover {
background: transparent;
margin: 15px 0;
}
+
+ .emoji-mart-search {
+ padding-right: 10px;
+ }
+
+ .emoji-mart-search-icon {
+ right: 10px + 5px;
+ }
}
.report-modal__container {
@@ -5712,7 +5842,7 @@ a.status-card.compact:hover {
font-size: 14px;
border: 1px solid lighten($ui-base-color, 8%);
border-radius: 4px;
- margin-top: 14px;
+ margin-top: 16px;
overflow: hidden;
&__icon {
@@ -5758,7 +5888,6 @@ a.status-card.compact:hover {
&.compact {
border: 0;
- margin-top: 4px;
.attachment-list__list {
padding: 0;
@@ -5886,6 +6015,13 @@ a.status-card.compact:hover {
height: 100%;
}
+ &.inactive {
+ audio,
+ .video-player__controls {
+ visibility: hidden;
+ }
+ }
+
.video-player__volume::before,
.video-player__seek::before {
background: currentColor;
@@ -6428,8 +6564,8 @@ a.status-card.compact:hover {
vertical-align: middle;
&.checked {
- border-color: lighten($ui-highlight-color, 8%);
- background: lighten($ui-highlight-color, 8%);
+ border-color: lighten($ui-highlight-color, 4%);
+ background: lighten($ui-highlight-color, 4%);
}
}
}
@@ -6894,6 +7030,7 @@ noscript {
.account__header {
overflow: hidden;
+ background: lighten($ui-base-color, 4%);
&.inactive {
opacity: 0.5;
@@ -6927,8 +7064,7 @@ noscript {
&__bar {
position: relative;
- background: lighten($ui-base-color, 4%);
- padding: 5px;
+ padding: 0 20px;
border-bottom: 1px solid lighten($ui-base-color, 12%);
.avatar {
@@ -6947,12 +7083,13 @@ noscript {
&__tabs {
display: flex;
align-items: flex-start;
- padding: 7px 10px;
margin-top: -55px;
+ padding-top: 10px;
&__buttons {
display: flex;
align-items: center;
+ gap: 8px;
padding-top: 55px;
overflow: hidden;
@@ -6962,18 +7099,11 @@ noscript {
box-sizing: content-box;
padding: 2px;
}
-
- & > .icon-button {
- margin-right: 8px;
- }
-
- .button {
- margin: 0 8px;
- }
}
&__name {
- padding: 5px 10px;
+ margin-top: 16px;
+ margin-bottom: 16px;
.account-role {
vertical-align: top;
@@ -6985,17 +7115,17 @@ noscript {
}
h1 {
- font-size: 16px;
- line-height: 24px;
+ font-size: 17px;
+ line-height: 22px;
color: $primary-text-color;
- font-weight: 500;
+ font-weight: 700;
overflow: hidden;
white-space: nowrap;
text-overflow: ellipsis;
small {
display: block;
- font-size: 14px;
+ font-size: 15px;
color: $darker-text-color;
font-weight: 400;
overflow: hidden;
@@ -7010,34 +7140,41 @@ noscript {
}
&__bio {
- overflow: hidden;
- margin: 0 -5px;
-
.account__header__content {
- padding: 20px 15px;
- padding-bottom: 5px;
color: $primary-text-color;
+ }
+
+ .account__header__fields {
+ margin: 0;
+ margin-top: 16px;
+ border-radius: 4px;
+ background: darken($ui-base-color, 4%);
+ border: 0;
- .columns-area--mobile & {
- padding-left: 20px;
- padding-right: 20px;
+ dl {
+ display: block;
+ padding: 11px 16px;
+ border-bottom-color: lighten($ui-base-color, 4%);
}
- }
- .account__header__joined {
- font-size: 14px;
- padding: 5px 15px;
- color: $darker-text-color;
+ dd,
+ dt {
+ font-size: 13px;
+ line-height: 18px;
+ padding: 0;
+ text-align: initial;
+ }
- .columns-area--mobile & {
- padding-left: 20px;
- padding-right: 20px;
+ dt {
+ width: auto;
+ background: transparent;
+ text-transform: uppercase;
+ color: $dark-text-color;
}
- }
- .account__header__fields {
- margin: 0;
- border-top: 1px solid lighten($ui-base-color, 12%);
+ dd {
+ color: $darker-text-color;
+ }
a {
color: lighten($ui-highlight-color, 8%);
@@ -7054,12 +7191,14 @@ noscript {
}
&__extra {
- margin-top: 4px;
+ margin-top: 16px;
&__links {
font-size: 14px;
color: $darker-text-color;
- padding: 10px 0;
+ margin: 0 -10px;
+ padding-top: 16px;
+ padding-bottom: 10px;
a {
display: inline-block;
@@ -7077,17 +7216,10 @@ noscript {
}
&__account-note {
- padding: 15px;
- padding-bottom: 10px;
color: $primary-text-color;
font-size: 14px;
font-weight: 400;
- border-bottom: 1px solid lighten($ui-base-color, 12%);
-
- .columns-area--mobile & {
- padding-left: 20px;
- padding-right: 20px;
- }
+ margin-bottom: 10px;
label {
display: block;
@@ -7146,6 +7278,7 @@ noscript {
align-items: center;
padding: 15px;
border-bottom: 1px solid lighten($ui-base-color, 8%);
+ gap: 15px;
&:last-child {
border-bottom: 0;
@@ -7187,9 +7320,8 @@ noscript {
font-size: 24px;
font-weight: 500;
text-align: right;
- padding-right: 15px;
- margin-left: 5px;
color: $secondary-text-color;
+ text-decoration: none;
}
&__sparkline {
@@ -7198,7 +7330,7 @@ noscript {
path:first-child {
fill: rgba($highlight-text-color, 0.25) !important;
- fill-opacity: 1 !important;
+ fill-opacity: 100% !important;
}
path:last-child {
@@ -7670,10 +7802,9 @@ noscript {
}
.explore__search-header {
- background: $ui-base-color;
- display: flex;
- align-items: flex-start;
+ background: darken($ui-base-color, 4%);
justify-content: center;
+ align-items: center;
padding: 15px;
.search {
@@ -7682,14 +7813,8 @@ noscript {
}
.search__input {
- border-radius: 4px;
- color: $inverted-text-color;
- background: $simple-background-color;
+ border: 1px solid lighten($ui-base-color, 8%);
padding: 10px;
-
- &::placeholder {
- color: $dark-text-color;
- }
}
.search .fa {
@@ -7787,3 +7912,679 @@ noscript {
}
}
}
+
+.server-banner {
+ padding: 20px 0;
+
+ &__introduction {
+ color: $darker-text-color;
+ margin-bottom: 20px;
+
+ strong {
+ font-weight: 600;
+ }
+
+ a {
+ color: inherit;
+ text-decoration: underline;
+
+ &:hover,
+ &:active,
+ &:focus {
+ text-decoration: none;
+ }
+ }
+ }
+
+ &__hero {
+ display: block;
+ border-radius: 4px;
+ width: 100%;
+ height: auto;
+ margin-bottom: 20px;
+ aspect-ratio: 1.9;
+ border: 0;
+ background: $ui-base-color;
+ object-fit: cover;
+ }
+
+ &__description {
+ margin-bottom: 20px;
+ }
+
+ &__meta {
+ display: flex;
+ gap: 10px;
+ max-width: 100%;
+
+ &__column {
+ flex: 0 0 auto;
+ width: calc(50% - 5px);
+ overflow: hidden;
+ }
+ }
+
+ &__number {
+ font-weight: 600;
+ color: $primary-text-color;
+ font-size: 14px;
+ }
+
+ &__number-label {
+ color: $darker-text-color;
+ font-weight: 500;
+ font-size: 14px;
+ }
+
+ h4 {
+ text-transform: uppercase;
+ color: $darker-text-color;
+ margin-bottom: 10px;
+ font-weight: 600;
+ }
+
+ .account {
+ padding: 0;
+ border: 0;
+ }
+
+ .account__avatar-wrapper {
+ margin-left: 0;
+ }
+
+ .spacer {
+ margin: 10px 0;
+ }
+}
+
+.interaction-modal {
+ max-width: 90vw;
+ width: 600px;
+ background: $ui-base-color;
+ border-radius: 8px;
+ overflow: hidden;
+ position: relative;
+ display: block;
+ padding: 20px;
+
+ h3 {
+ font-size: 22px;
+ line-height: 33px;
+ font-weight: 700;
+ text-align: center;
+ }
+
+ &__icon {
+ color: $highlight-text-color;
+ margin: 0 5px;
+ }
+
+ &__lead {
+ padding: 20px;
+ text-align: center;
+
+ h3 {
+ margin-bottom: 15px;
+ }
+
+ p {
+ font-size: 17px;
+ line-height: 22px;
+ color: $darker-text-color;
+ }
+ }
+
+ &__choices {
+ display: flex;
+
+ &__choice {
+ flex: 0 0 auto;
+ width: 50%;
+ box-sizing: border-box;
+ padding: 20px;
+
+ h3 {
+ margin-bottom: 20px;
+ }
+
+ p {
+ color: $darker-text-color;
+ margin-bottom: 20px;
+ }
+
+ .button {
+ margin-bottom: 10px;
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+ }
+ }
+ }
+
+ @media screen and (max-width: $no-gap-breakpoint - 1px) {
+ &__choices {
+ display: block;
+
+ &__choice {
+ width: auto;
+ margin-bottom: 20px;
+ }
+ }
+ }
+}
+
+.copypaste {
+ display: flex;
+ align-items: center;
+ gap: 10px;
+
+ input {
+ display: block;
+ font-family: inherit;
+ background: darken($ui-base-color, 8%);
+ border: 1px solid $highlight-text-color;
+ color: $darker-text-color;
+ border-radius: 4px;
+ padding: 6px 9px;
+ line-height: 22px;
+ font-size: 14px;
+ transition: border-color 300ms linear;
+ flex: 1 1 auto;
+ overflow: hidden;
+
+ &:focus {
+ outline: 0;
+ background: darken($ui-base-color, 4%);
+ }
+ }
+
+ .button {
+ flex: 0 0 auto;
+ transition: background 300ms linear;
+ }
+
+ &.copied {
+ input {
+ border: 1px solid $valid-value-color;
+ transition: none;
+ }
+
+ .button {
+ background: $valid-value-color;
+ transition: none;
+ }
+ }
+}
+
+.privacy-policy {
+ background: $ui-base-color;
+ padding: 20px;
+
+ @media screen and (min-width: $no-gap-breakpoint) {
+ border-radius: 4px;
+ }
+
+ &__body {
+ margin-top: 20px;
+ }
+}
+
+.prose {
+ color: $secondary-text-color;
+ font-size: 15px;
+ line-height: 22px;
+
+ p,
+ ul,
+ ol {
+ margin-top: 1.25em;
+ margin-bottom: 1.25em;
+ }
+
+ img {
+ margin-top: 2em;
+ margin-bottom: 2em;
+ }
+
+ video {
+ margin-top: 2em;
+ margin-bottom: 2em;
+ }
+
+ figure {
+ margin-top: 2em;
+ margin-bottom: 2em;
+
+ figcaption {
+ font-size: 0.875em;
+ line-height: 1.4285714;
+ margin-top: 0.8571429em;
+ }
+ }
+
+ figure > * {
+ margin-top: 0;
+ margin-bottom: 0;
+ }
+
+ h1 {
+ font-size: 1.5em;
+ margin-top: 0;
+ margin-bottom: 1em;
+ line-height: 1.33;
+ }
+
+ h2 {
+ font-size: 1.25em;
+ margin-top: 1.6em;
+ margin-bottom: 0.6em;
+ line-height: 1.6;
+ }
+
+ h3,
+ h4,
+ h5,
+ h6 {
+ margin-top: 1.5em;
+ margin-bottom: 0.5em;
+ line-height: 1.5;
+ }
+
+ ol {
+ counter-reset: list-counter;
+ }
+
+ li {
+ margin-top: 0.5em;
+ margin-bottom: 0.5em;
+ }
+
+ ol > li {
+ counter-increment: list-counter;
+
+ &::before {
+ content: counter(list-counter) ".";
+ position: absolute;
+ left: 0;
+ }
+ }
+
+ ul > li::before {
+ content: "";
+ position: absolute;
+ background-color: $darker-text-color;
+ border-radius: 50%;
+ width: 0.375em;
+ height: 0.375em;
+ top: 0.5em;
+ left: 0.25em;
+ }
+
+ ul > li,
+ ol > li {
+ position: relative;
+ padding-left: 1.75em;
+ }
+
+ & > ul > li p {
+ margin-top: 0.75em;
+ margin-bottom: 0.75em;
+ }
+
+ & > ul > li > *:first-child {
+ margin-top: 1.25em;
+ }
+
+ & > ul > li > *:last-child {
+ margin-bottom: 1.25em;
+ }
+
+ & > ol > li > *:first-child {
+ margin-top: 1.25em;
+ }
+
+ & > ol > li > *:last-child {
+ margin-bottom: 1.25em;
+ }
+
+ ul ul,
+ ul ol,
+ ol ul,
+ ol ol {
+ margin-top: 0.75em;
+ margin-bottom: 0.75em;
+ }
+
+ h1,
+ h2,
+ h3,
+ h4,
+ h5,
+ h6,
+ strong,
+ b {
+ color: $primary-text-color;
+ font-weight: 700;
+ }
+
+ em,
+ i {
+ font-style: italic;
+ }
+
+ a {
+ color: $highlight-text-color;
+ text-decoration: underline;
+
+ &:focus,
+ &:hover,
+ &:active {
+ text-decoration: none;
+ }
+ }
+
+ code {
+ font-size: 0.875em;
+ background: darken($ui-base-color, 8%);
+ border-radius: 4px;
+ padding: 0.2em 0.3em;
+ }
+
+ hr {
+ border: 0;
+ border-top: 1px solid lighten($ui-base-color, 4%);
+ margin-top: 3em;
+ margin-bottom: 3em;
+ }
+
+ hr + * {
+ margin-top: 0;
+ }
+
+ h2 + * {
+ margin-top: 0;
+ }
+
+ h3 + * {
+ margin-top: 0;
+ }
+
+ h4 + *,
+ h5 + *,
+ h6 + * {
+ margin-top: 0;
+ }
+
+ & > :first-child {
+ margin-top: 0;
+ }
+
+ & > :last-child {
+ margin-bottom: 0;
+ }
+}
+
+.dismissable-banner {
+ background: $ui-base-color;
+ border-bottom: 1px solid lighten($ui-base-color, 8%);
+ display: flex;
+ align-items: center;
+ gap: 30px;
+
+ &__message {
+ flex: 1 1 auto;
+ padding: 20px 15px;
+ cursor: default;
+ font-size: 14px;
+ line-height: 18px;
+ color: $primary-text-color;
+ }
+
+ &__action {
+ padding: 15px;
+ flex: 0 0 auto;
+ display: flex;
+ align-items: center;
+ justify-content: center;
+ }
+}
+
+.image {
+ position: relative;
+ overflow: hidden;
+
+ &__preview {
+ position: absolute;
+ top: 0;
+ left: 0;
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ }
+
+ &.loaded &__preview {
+ display: none;
+ }
+
+ img {
+ display: block;
+ width: 100%;
+ height: 100%;
+ object-fit: cover;
+ border: 0;
+ background: transparent;
+ opacity: 0;
+ }
+
+ &.loaded img {
+ opacity: 1;
+ }
+}
+
+.about {
+ padding: 20px;
+
+ @media screen and (min-width: $no-gap-breakpoint) {
+ border-radius: 4px;
+ }
+
+ &__header {
+ margin-bottom: 30px;
+
+ &__hero {
+ width: 100%;
+ height: auto;
+ aspect-ratio: 1.9;
+ background: lighten($ui-base-color, 4%);
+ border-radius: 8px;
+ margin-bottom: 30px;
+ }
+
+ h1,
+ p {
+ text-align: center;
+ }
+
+ h1 {
+ font-size: 24px;
+ line-height: 1.5;
+ font-weight: 700;
+ margin-bottom: 10px;
+ }
+
+ p {
+ font-size: 16px;
+ line-height: 24px;
+ font-weight: 400;
+ color: $darker-text-color;
+ }
+ }
+
+ &__meta {
+ background: lighten($ui-base-color, 4%);
+ border-radius: 4px;
+ display: flex;
+ margin-bottom: 30px;
+ font-size: 15px;
+
+ &__column {
+ box-sizing: border-box;
+ width: 50%;
+ padding: 20px;
+ }
+
+ &__divider {
+ width: 0;
+ border: 0;
+ border-style: solid;
+ border-color: lighten($ui-base-color, 8%);
+ border-left-width: 1px;
+ min-height: calc(100% - 60px);
+ flex: 0 0 auto;
+ }
+
+ h4 {
+ font-size: 15px;
+ text-transform: uppercase;
+ color: $darker-text-color;
+ font-weight: 500;
+ margin-bottom: 20px;
+ }
+
+ @media screen and (max-width: 600px) {
+ display: block;
+
+ h4 {
+ text-align: center;
+ }
+
+ &__column {
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ }
+
+ &__divider {
+ min-height: 0;
+ width: 100%;
+ border-left-width: 0;
+ border-top-width: 1px;
+ }
+ }
+
+ .layout-multiple-columns & {
+ display: block;
+
+ h4 {
+ text-align: center;
+ }
+
+ &__column {
+ width: 100%;
+ display: flex;
+ flex-direction: column;
+ align-items: center;
+ }
+
+ &__divider {
+ min-height: 0;
+ width: 100%;
+ border-left-width: 0;
+ border-top-width: 1px;
+ }
+ }
+ }
+
+ &__mail {
+ color: $primary-text-color;
+ text-decoration: none;
+ font-weight: 500;
+
+ &:hover,
+ &:focus,
+ &:active {
+ text-decoration: underline;
+ }
+ }
+
+ .getting-started__footer {
+ padding: 0;
+ margin-top: 60px;
+ text-align: center;
+ font-size: 15px;
+ line-height: 22px;
+
+ @media screen and (min-width: $no-gap-breakpoint) {
+ display: none;
+ }
+ }
+
+ .account {
+ padding: 0;
+ border: 0;
+ }
+
+ .account__avatar-wrapper {
+ margin-left: 0;
+ }
+
+ .account__relationship {
+ display: none;
+ }
+
+ &__section {
+ margin-bottom: 10px;
+
+ &__title {
+ font-size: 17px;
+ font-weight: 600;
+ line-height: 22px;
+ padding: 20px;
+ border-radius: 4px;
+ background: lighten($ui-base-color, 4%);
+ color: $highlight-text-color;
+ cursor: pointer;
+ }
+
+ &.active &__title {
+ border-radius: 4px 4px 0 0;
+ }
+
+ &__body {
+ border: 1px solid lighten($ui-base-color, 4%);
+ border-top: 0;
+ padding: 20px;
+ font-size: 15px;
+ line-height: 22px;
+ }
+ }
+
+ &__domain-blocks {
+ margin-top: 30px;
+ width: 100%;
+ border-collapse: collapse;
+ break-inside: auto;
+
+ th {
+ text-align: left;
+ font-weight: 500;
+ color: $darker-text-color;
+ }
+
+ thead tr,
+ tbody tr {
+ border-bottom: 1px solid lighten($ui-base-color, 8%);
+ }
+
+ tbody tr:last-child {
+ border-bottom: 0;
+ }
+
+ th,
+ td {
+ padding: 8px;
+ }
+ }
+}
diff --git a/app/javascript/styles/mastodon/containers.scss b/app/javascript/styles/mastodon/containers.scss
index 81459f5ba5..b49b93984c 100644
--- a/app/javascript/styles/mastodon/containers.scss
+++ b/app/javascript/styles/mastodon/containers.scss
@@ -9,19 +9,14 @@
}
.logo-container {
- margin: 100px auto 50px;
-
- @media screen and (max-width: 500px) {
- margin: 40px auto 0;
- }
+ margin: 50px auto;
h1 {
display: flex;
justify-content: center;
align-items: center;
- svg {
- fill: $primary-text-color;
+ .logo {
height: 42px;
margin-right: 10px;
}
@@ -35,7 +30,6 @@
outline: 0;
padding: 12px 16px;
line-height: 32px;
- font-family: $font-display, sans-serif;
font-weight: 500;
font-size: 14px;
}
@@ -110,785 +104,3 @@
margin-left: 10px;
}
}
-
-.grid-3 {
- display: grid;
- grid-gap: 10px;
- grid-template-columns: 3fr 1fr;
- grid-auto-columns: 25%;
- grid-auto-rows: max-content;
-
- .column-0 {
- grid-column: 1 / 3;
- grid-row: 1;
- }
-
- .column-1 {
- grid-column: 1;
- grid-row: 2;
- }
-
- .column-2 {
- grid-column: 2;
- grid-row: 2;
- }
-
- .column-3 {
- grid-column: 1 / 3;
- grid-row: 3;
- }
-
- @media screen and (max-width: $no-gap-breakpoint) {
- grid-gap: 0;
- grid-template-columns: minmax(0, 100%);
-
- .column-0 {
- grid-column: 1;
- }
-
- .column-1 {
- grid-column: 1;
- grid-row: 3;
- }
-
- .column-2 {
- grid-column: 1;
- grid-row: 2;
- }
-
- .column-3 {
- grid-column: 1;
- grid-row: 4;
- }
- }
-}
-
-.grid-4 {
- display: grid;
- grid-gap: 10px;
- grid-template-columns: repeat(4, minmax(0, 1fr));
- grid-auto-columns: 25%;
- grid-auto-rows: max-content;
-
- .column-0 {
- grid-column: 1 / 5;
- grid-row: 1;
- }
-
- .column-1 {
- grid-column: 1 / 4;
- grid-row: 2;
- }
-
- .column-2 {
- grid-column: 4;
- grid-row: 2;
- }
-
- .column-3 {
- grid-column: 2 / 5;
- grid-row: 3;
- }
-
- .column-4 {
- grid-column: 1;
- grid-row: 3;
- }
-
- .landing-page__call-to-action {
- min-height: 100%;
- }
-
- .flash-message {
- margin-bottom: 10px;
- }
-
- @media screen and (max-width: 738px) {
- grid-template-columns: minmax(0, 50%) minmax(0, 50%);
-
- .landing-page__call-to-action {
- padding: 20px;
- display: flex;
- align-items: center;
- justify-content: center;
- }
-
- .row__information-board {
- width: 100%;
- justify-content: center;
- align-items: center;
- }
-
- .row__mascot {
- display: none;
- }
- }
-
- @media screen and (max-width: $no-gap-breakpoint) {
- grid-gap: 0;
- grid-template-columns: minmax(0, 100%);
-
- .column-0 {
- grid-column: 1;
- }
-
- .column-1 {
- grid-column: 1;
- grid-row: 3;
- }
-
- .column-2 {
- grid-column: 1;
- grid-row: 2;
- }
-
- .column-3 {
- grid-column: 1;
- grid-row: 5;
- }
-
- .column-4 {
- grid-column: 1;
- grid-row: 4;
- }
- }
-}
-
-.public-layout {
- @media screen and (max-width: $no-gap-breakpoint) {
- padding-top: 48px;
- }
-
- .container {
- max-width: 960px;
-
- @media screen and (max-width: $no-gap-breakpoint) {
- padding: 0;
- }
- }
-
- .header {
- background: lighten($ui-base-color, 8%);
- box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
- border-radius: 4px;
- height: 48px;
- margin: 10px 0;
- display: flex;
- align-items: stretch;
- justify-content: center;
- flex-wrap: nowrap;
- overflow: hidden;
-
- @media screen and (max-width: $no-gap-breakpoint) {
- position: fixed;
- width: 100%;
- top: 0;
- left: 0;
- margin: 0;
- border-radius: 0;
- box-shadow: none;
- z-index: 110;
- }
-
- & > div {
- flex: 1 1 33.3%;
- min-height: 1px;
- }
-
- .nav-left {
- display: flex;
- align-items: stretch;
- justify-content: flex-start;
- flex-wrap: nowrap;
- }
-
- .nav-center {
- display: flex;
- align-items: stretch;
- justify-content: center;
- flex-wrap: nowrap;
- }
-
- .nav-right {
- display: flex;
- align-items: stretch;
- justify-content: flex-end;
- flex-wrap: nowrap;
- }
-
- .brand {
- display: block;
- padding: 15px;
-
- svg {
- display: block;
- height: 18px;
- width: auto;
- position: relative;
- bottom: -2px;
- fill: $primary-text-color;
-
- @media screen and (max-width: $no-gap-breakpoint) {
- height: 20px;
- }
- }
-
- &:hover,
- &:focus,
- &:active {
- background: lighten($ui-base-color, 12%);
- }
- }
-
- .nav-link {
- display: flex;
- align-items: center;
- padding: 0 1rem;
- font-size: 12px;
- font-weight: 500;
- text-decoration: none;
- color: $darker-text-color;
- white-space: nowrap;
- text-align: center;
-
- &:hover,
- &:focus,
- &:active {
- text-decoration: underline;
- color: $primary-text-color;
- }
-
- @media screen and (max-width: 550px) {
- &.optional {
- display: none;
- }
- }
- }
-
- .nav-button {
- background: lighten($ui-base-color, 16%);
- margin: 8px;
- margin-left: 0;
- border-radius: 4px;
-
- &:hover,
- &:focus,
- &:active {
- text-decoration: none;
- background: lighten($ui-base-color, 20%);
- }
- }
- }
-
- $no-columns-breakpoint: 600px;
-
- .grid {
- display: grid;
- grid-gap: 10px;
- grid-template-columns: minmax(300px, 3fr) minmax(298px, 1fr);
- grid-auto-columns: 25%;
- grid-auto-rows: max-content;
-
- .column-0 {
- grid-row: 1;
- grid-column: 1;
- }
-
- .column-1 {
- grid-row: 1;
- grid-column: 2;
- }
-
- @media screen and (max-width: $no-columns-breakpoint) {
- grid-template-columns: 100%;
- grid-gap: 0;
-
- .column-1 {
- display: none;
- }
- }
- }
-
- .page-header {
- @media screen and (max-width: $no-gap-breakpoint) {
- border-bottom: 0;
- }
- }
-
- .public-account-header {
- overflow: hidden;
- margin-bottom: 10px;
- box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
-
- &.inactive {
- opacity: 0.5;
-
- .public-account-header__image,
- .avatar {
- filter: grayscale(100%);
- }
-
- .logo-button {
- background-color: $secondary-text-color;
- }
- }
-
- .logo-button {
- padding: 3px 15px;
- }
-
- &__image {
- border-radius: 4px 4px 0 0;
- overflow: hidden;
- height: 300px;
- position: relative;
- background: darken($ui-base-color, 12%);
-
- &::after {
- content: "";
- display: block;
- position: absolute;
- width: 100%;
- height: 100%;
- box-shadow: inset 0 -1px 1px 1px rgba($base-shadow-color, 0.15);
- top: 0;
- left: 0;
- }
-
- img {
- object-fit: cover;
- display: block;
- width: 100%;
- height: 100%;
- margin: 0;
- border-radius: 4px 4px 0 0;
- }
-
- @media screen and (max-width: 600px) {
- height: 200px;
- }
- }
-
- &--no-bar {
- margin-bottom: 0;
-
- .public-account-header__image,
- .public-account-header__image img {
- border-radius: 4px;
-
- @media screen and (max-width: $no-gap-breakpoint) {
- border-radius: 0;
- }
- }
- }
-
- @media screen and (max-width: $no-gap-breakpoint) {
- margin-bottom: 0;
- box-shadow: none;
-
- &__image::after {
- display: none;
- }
-
- &__image,
- &__image img {
- border-radius: 0;
- }
- }
-
- &__bar {
- position: relative;
- margin-top: -80px;
- display: flex;
- justify-content: flex-start;
-
- &::before {
- content: "";
- display: block;
- background: lighten($ui-base-color, 4%);
- position: absolute;
- bottom: 0;
- left: 0;
- right: 0;
- height: 60px;
- border-radius: 0 0 4px 4px;
- z-index: -1;
- }
-
- .avatar {
- display: block;
- width: 120px;
- height: 120px;
- padding-left: 20px - 4px;
- flex: 0 0 auto;
-
- img {
- display: block;
- width: 100%;
- height: 100%;
- margin: 0;
- border-radius: 50%;
- border: 4px solid lighten($ui-base-color, 4%);
- background: darken($ui-base-color, 8%);
- }
- }
-
- @media screen and (max-width: 600px) {
- margin-top: 0;
- background: lighten($ui-base-color, 4%);
- border-radius: 0 0 4px 4px;
- padding: 5px;
-
- &::before {
- display: none;
- }
-
- .avatar {
- width: 48px;
- height: 48px;
- padding: 7px 0;
- padding-left: 10px;
-
- img {
- border: 0;
- border-radius: 4px;
- }
-
- @media screen and (max-width: 360px) {
- display: none;
- }
- }
- }
-
- @media screen and (max-width: $no-gap-breakpoint) {
- border-radius: 0;
- }
-
- @media screen and (max-width: $no-columns-breakpoint) {
- flex-wrap: wrap;
- }
- }
-
- &__tabs {
- flex: 1 1 auto;
- margin-left: 20px;
-
- &__name {
- padding-top: 20px;
- padding-bottom: 8px;
-
- h1 {
- font-size: 20px;
- line-height: 18px * 1.5;
- color: $primary-text-color;
- font-weight: 500;
- overflow: hidden;
- white-space: nowrap;
- text-overflow: ellipsis;
- text-shadow: 1px 1px 1px $base-shadow-color;
-
- small {
- display: block;
- font-size: 14px;
- color: $primary-text-color;
- font-weight: 400;
- overflow: hidden;
- text-overflow: ellipsis;
- }
- }
- }
-
- @media screen and (max-width: 600px) {
- margin-left: 15px;
- display: flex;
- justify-content: space-between;
- align-items: center;
-
- &__name {
- padding-top: 0;
- padding-bottom: 0;
-
- h1 {
- font-size: 16px;
- line-height: 24px;
- text-shadow: none;
-
- small {
- color: $darker-text-color;
- }
- }
- }
- }
-
- &__tabs {
- display: flex;
- justify-content: flex-start;
- align-items: stretch;
- height: 58px;
-
- .details-counters {
- display: flex;
- flex-direction: row;
- min-width: 300px;
- }
-
- @media screen and (max-width: $no-columns-breakpoint) {
- .details-counters {
- display: none;
- }
- }
-
- .counter {
- min-width: 33.3%;
- box-sizing: border-box;
- flex: 0 0 auto;
- color: $darker-text-color;
- padding: 10px;
- border-right: 1px solid lighten($ui-base-color, 4%);
- cursor: default;
- text-align: center;
- position: relative;
-
- a {
- display: block;
- }
-
- &:last-child {
- border-right: 0;
- }
-
- &::after {
- display: block;
- content: "";
- position: absolute;
- bottom: 0;
- left: 0;
- width: 100%;
- border-bottom: 4px solid $ui-primary-color;
- opacity: 0.5;
- transition: all 400ms ease;
- }
-
- &.active {
- &::after {
- border-bottom: 4px solid $highlight-text-color;
- opacity: 1;
- }
-
- &.inactive::after {
- border-bottom-color: $secondary-text-color;
- }
- }
-
- &:hover {
- &::after {
- opacity: 1;
- transition-duration: 100ms;
- }
- }
-
- a {
- text-decoration: none;
- color: inherit;
- }
-
- .counter-label {
- font-size: 12px;
- display: block;
- }
-
- .counter-number {
- font-weight: 500;
- font-size: 18px;
- margin-bottom: 5px;
- color: $primary-text-color;
- font-family: $font-display, sans-serif;
- }
- }
-
- .spacer {
- flex: 1 1 auto;
- height: 1px;
- }
-
- &__buttons {
- padding: 7px 8px;
- }
- }
- }
-
- &__extra {
- display: none;
- margin-top: 4px;
-
- .public-account-bio {
- border-radius: 0;
- box-shadow: none;
- background: transparent;
- margin: 0 -5px;
-
- .account__header__fields {
- border-top: 1px solid lighten($ui-base-color, 12%);
- }
-
- .roles {
- display: none;
- }
- }
-
- &__links {
- margin-top: -15px;
- font-size: 14px;
- color: $darker-text-color;
-
- a {
- display: inline-block;
- color: $darker-text-color;
- text-decoration: none;
- padding: 15px;
- font-weight: 500;
-
- strong {
- font-weight: 700;
- color: $primary-text-color;
- }
- }
- }
-
- @media screen and (max-width: $no-columns-breakpoint) {
- display: block;
- flex: 100%;
- }
- }
- }
-
- .account__section-headline {
- border-radius: 4px 4px 0 0;
-
- @media screen and (max-width: $no-gap-breakpoint) {
- border-radius: 0;
- }
- }
-
- .detailed-status__meta {
- margin-top: 25px;
- }
-
- .public-account-bio {
- background: lighten($ui-base-color, 8%);
- box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
- border-radius: 4px;
- overflow: hidden;
- margin-bottom: 10px;
-
- @media screen and (max-width: $no-gap-breakpoint) {
- box-shadow: none;
- margin-bottom: 0;
- border-radius: 0;
- }
-
- .account__header__fields {
- margin: 0;
- border-top: 0;
-
- a {
- color: lighten($ui-highlight-color, 8%);
- }
-
- dl:first-child .verified {
- border-radius: 0 4px 0 0;
- }
-
- .verified a {
- color: $valid-value-color;
- }
- }
-
- .account__header__content {
- padding: 20px;
- padding-bottom: 0;
- color: $primary-text-color;
- }
-
- &__extra,
- .roles {
- padding: 20px;
- font-size: 14px;
- color: $darker-text-color;
- }
-
- .roles {
- padding-bottom: 0;
- }
- }
-
- .directory__list {
- display: grid;
- grid-gap: 10px;
- grid-template-columns: minmax(0, 50%) minmax(0, 50%);
-
- .account-card {
- display: flex;
- flex-direction: column;
- }
-
- @media screen and (max-width: $no-gap-breakpoint) {
- display: block;
-
- .account-card {
- margin-bottom: 10px;
- display: block;
- }
- }
- }
-
- .card-grid {
- display: flex;
- flex-wrap: wrap;
- min-width: 100%;
- margin: 0 -5px;
-
- & > div {
- box-sizing: border-box;
- flex: 1 0 auto;
- width: 300px;
- padding: 0 5px;
- margin-bottom: 10px;
- max-width: 33.333%;
-
- @media screen and (max-width: 900px) {
- max-width: 50%;
- }
-
- @media screen and (max-width: 600px) {
- max-width: 100%;
- }
- }
-
- @media screen and (max-width: $no-gap-breakpoint) {
- margin: 0;
- border-top: 1px solid lighten($ui-base-color, 8%);
-
- & > div {
- width: 100%;
- padding: 0;
- margin-bottom: 0;
- border-bottom: 1px solid lighten($ui-base-color, 8%);
-
- &:last-child {
- border-bottom: 0;
- }
-
- .card__bar {
- background: $ui-base-color;
-
- &:hover,
- &:active,
- &:focus {
- background: lighten($ui-base-color, 4%);
- }
- }
- }
- }
- }
-}
diff --git a/app/javascript/styles/mastodon/dashboard.scss b/app/javascript/styles/mastodon/dashboard.scss
index 7d0e51fdee..f25765d1da 100644
--- a/app/javascript/styles/mastodon/dashboard.scss
+++ b/app/javascript/styles/mastodon/dashboard.scss
@@ -38,7 +38,6 @@
font-weight: 500;
font-size: 24px;
color: $primary-text-color;
- font-family: $font-display, sans-serif;
margin-bottom: 20px;
line-height: 30px;
}
@@ -82,7 +81,7 @@
display: flex;
align-items: baseline;
border-radius: 4px;
- background: $ui-highlight-color;
+ background: darken($ui-highlight-color, 2%);
color: $primary-text-color;
transition: all 100ms ease-in;
font-size: 14px;
@@ -95,7 +94,7 @@
&:active,
&:focus,
&:hover {
- background-color: lighten($ui-highlight-color, 10%);
+ background-color: $ui-highlight-color;
transition: all 200ms ease-out;
}
diff --git a/app/javascript/styles/mastodon/emoji_picker.scss b/app/javascript/styles/mastodon/emoji_picker.scss
index 24061d2ca8..e4ec96d89f 100644
--- a/app/javascript/styles/mastodon/emoji_picker.scss
+++ b/app/javascript/styles/mastodon/emoji_picker.scss
@@ -111,7 +111,7 @@
position: relative;
input {
- font-size: 14px;
+ font-size: 16px;
font-weight: 400;
padding: 7px 9px;
padding-right: 25px;
diff --git a/app/javascript/styles/mastodon/footer.scss b/app/javascript/styles/mastodon/footer.scss
deleted file mode 100644
index 073ebda7e4..0000000000
--- a/app/javascript/styles/mastodon/footer.scss
+++ /dev/null
@@ -1,152 +0,0 @@
-.public-layout {
- .footer {
- text-align: left;
- padding-top: 20px;
- padding-bottom: 60px;
- font-size: 12px;
- color: lighten($ui-base-color, 34%);
-
- @media screen and (max-width: $no-gap-breakpoint) {
- padding-left: 20px;
- padding-right: 20px;
- }
-
- .grid {
- display: grid;
- grid-gap: 10px;
- grid-template-columns: 1fr 1fr 2fr 1fr 1fr;
-
- .column-0 {
- grid-column: 1;
- grid-row: 1;
- min-width: 0;
- }
-
- .column-1 {
- grid-column: 2;
- grid-row: 1;
- min-width: 0;
- }
-
- .column-2 {
- grid-column: 3;
- grid-row: 1;
- min-width: 0;
- text-align: center;
-
- h4 a {
- color: lighten($ui-base-color, 34%);
- }
- }
-
- .column-3 {
- grid-column: 4;
- grid-row: 1;
- min-width: 0;
- }
-
- .column-4 {
- grid-column: 5;
- grid-row: 1;
- min-width: 0;
- }
-
- @media screen and (max-width: 690px) {
- grid-template-columns: 1fr 2fr 1fr;
-
- .column-0,
- .column-1 {
- grid-column: 1;
- }
-
- .column-1 {
- grid-row: 2;
- }
-
- .column-2 {
- grid-column: 2;
- }
-
- .column-3,
- .column-4 {
- grid-column: 3;
- }
-
- .column-4 {
- grid-row: 2;
- }
- }
-
- @media screen and (max-width: 600px) {
- .column-1 {
- display: block;
- }
- }
-
- @media screen and (max-width: $no-gap-breakpoint) {
- .column-0,
- .column-1,
- .column-3,
- .column-4 {
- display: none;
- }
-
- .column-2 h4 {
- display: none;
- }
- }
- }
-
- .legal-xs {
- display: none;
- text-align: center;
- padding-top: 20px;
-
- @media screen and (max-width: $no-gap-breakpoint) {
- display: block;
- }
- }
-
- h4 {
- text-transform: uppercase;
- font-weight: 700;
- margin-bottom: 8px;
- color: $darker-text-color;
-
- a {
- color: inherit;
- text-decoration: none;
- }
- }
-
- ul a,
- .legal-xs a {
- text-decoration: none;
- color: lighten($ui-base-color, 34%);
-
- &:hover,
- &:active,
- &:focus {
- text-decoration: underline;
- }
- }
-
- .brand {
- svg {
- display: block;
- height: 36px;
- width: auto;
- margin: 0 auto;
- fill: lighten($ui-base-color, 34%);
- }
-
- &:hover,
- &:focus,
- &:active {
- svg {
- fill: lighten($ui-base-color, 38%);
- }
- }
- }
- }
-}
diff --git a/app/javascript/styles/mastodon/forms.scss b/app/javascript/styles/mastodon/forms.scss
index 94f553b76c..4c731be430 100644
--- a/app/javascript/styles/mastodon/forms.scss
+++ b/app/javascript/styles/mastodon/forms.scss
@@ -6,9 +6,10 @@ code {
}
.form-container {
- max-width: 400px;
+ max-width: 450px;
padding: 20px;
- margin: 0 auto;
+ padding-bottom: 50px;
+ margin: 50px auto;
}
.indicator-icon {
@@ -123,10 +124,22 @@ code {
}
.title {
- color: #d9e1e8;
- font-size: 20px;
- line-height: 28px;
- font-weight: 400;
+ font-size: 28px;
+ line-height: 33px;
+ font-weight: 700;
+ margin-bottom: 15px;
+ }
+
+ .lead {
+ font-size: 17px;
+ line-height: 22px;
+ color: $secondary-text-color;
+ margin-bottom: 30px;
+ }
+
+ .rules-list {
+ font-size: 17px;
+ line-height: 22px;
margin-bottom: 30px;
}
@@ -240,7 +253,7 @@ code {
& > label {
font-family: inherit;
- font-size: 16px;
+ font-size: 14px;
color: $primary-text-color;
display: block;
font-weight: 500;
@@ -256,6 +269,10 @@ code {
}
}
+ .input.with_block_label.user_role_permissions_as_keys ul {
+ columns: unset;
+ }
+
.input.datetime .label_input select {
display: inline-block;
width: auto;
@@ -273,6 +290,20 @@ code {
.input:last-child {
margin-bottom: 0;
}
+
+ &__thumbnail {
+ display: block;
+ margin: 0;
+ margin-bottom: 10px;
+ max-width: 100%;
+ height: auto;
+ border-radius: 4px;
+ background: url("images/void.png");
+
+ &:last-child {
+ margin-bottom: 0;
+ }
+ }
}
.fields-row {
@@ -373,6 +404,7 @@ code {
input[type="email"],
input[type="password"],
input[type="url"],
+ input[type="datetime-local"],
textarea {
box-sizing: border-box;
font-size: 16px;
@@ -413,7 +445,8 @@ code {
input[type="text"],
input[type="number"],
input[type="email"],
- input[type="password"] {
+ input[type="password"],
+ input[type="datetime-local"] {
&:focus:invalid:not(:placeholder-shown),
&:required:invalid:not(:placeholder-shown) {
border-color: lighten($error-red, 12%);
@@ -429,6 +462,7 @@ code {
input[type="number"],
input[type="email"],
input[type="password"],
+ input[type="datetime-local"],
textarea,
select {
border-color: lighten($error-red, 12%);
@@ -456,6 +490,11 @@ code {
}
}
+ .stacked-actions {
+ margin-top: 30px;
+ margin-bottom: 15px;
+ }
+
button,
.button,
.block-button {
@@ -463,14 +502,14 @@ code {
width: 100%;
border: 0;
border-radius: 4px;
- background: $ui-highlight-color;
+ background: darken($ui-highlight-color, 2%);
color: $primary-text-color;
font-size: 18px;
line-height: inherit;
height: auto;
padding: 10px;
- text-transform: uppercase;
text-decoration: none;
+ text-transform: uppercase;
text-align: center;
box-sizing: border-box;
cursor: pointer;
@@ -483,13 +522,10 @@ code {
margin-right: 0;
}
- &:hover {
- background-color: lighten($ui-highlight-color, 5%);
- }
-
&:active,
- &:focus {
- background-color: darken($ui-highlight-color, 5%);
+ &:focus,
+ &:hover {
+ background-color: $ui-highlight-color;
}
&:disabled:hover {
@@ -510,6 +546,16 @@ code {
}
}
+ .button.button-tertiary {
+ padding: 9px;
+
+ &:hover,
+ &:focus,
+ &:active {
+ padding: 10px;
+ }
+ }
+
select {
appearance: none;
box-sizing: border-box;
@@ -564,41 +610,6 @@ code {
}
}
}
-
- &__overlay-area {
- position: relative;
-
- &__blurred form {
- filter: blur(2px);
- }
-
- &__overlay {
- position: absolute;
- top: 0;
- left: 0;
- width: 100%;
- height: 100%;
- display: flex;
- justify-content: center;
- align-items: center;
- background: rgba($ui-base-color, 0.65);
- border-radius: 4px;
- margin-left: -4px;
- margin-top: -4px;
- padding: 4px;
-
- &__content {
- text-align: center;
-
- &.rich-formatting {
- &,
- p {
- color: $primary-text-color;
- }
- }
- }
- }
- }
}
.block-icon {
@@ -869,24 +880,7 @@ code {
}
}
-.table-form {
- p {
- margin-bottom: 15px;
-
- strong {
- font-weight: 500;
-
- @each $lang in $cjk-langs {
- &:lang(#{$lang}) {
- font-weight: 700;
- }
- }
- }
- }
-}
-
-.simple_form,
-.table-form {
+.simple_form {
.warning {
box-sizing: border-box;
background: rgba($error-value-color, 0.5);
@@ -1073,3 +1067,34 @@ code {
}
}
}
+
+.keywords-table {
+ thead {
+ th {
+ white-space: nowrap;
+ }
+
+ th:first-child {
+ width: 100%;
+ }
+ }
+
+ tfoot {
+ td {
+ border: 0;
+ }
+ }
+
+ .input.string {
+ margin-bottom: 0;
+ }
+
+ .label_input__wrapper {
+ margin-top: 10px;
+ }
+
+ .table-action-link {
+ margin-top: 10px;
+ white-space: nowrap;
+ }
+}
diff --git a/app/javascript/styles/mastodon/rtl.scss b/app/javascript/styles/mastodon/rtl.scss
index 98eb1511cc..ccec8e95e4 100644
--- a/app/javascript/styles/mastodon/rtl.scss
+++ b/app/javascript/styles/mastodon/rtl.scss
@@ -53,16 +53,6 @@ body.rtl {
right: -26px;
}
- .landing-page__logo {
- margin-right: 0;
- margin-left: 20px;
- }
-
- .landing-page .features-list .features-list__row .visual {
- margin-left: 0;
- margin-right: 15px;
- }
-
.column-link__icon,
.column-header__icon {
margin-right: 0;
@@ -350,44 +340,6 @@ body.rtl {
margin-left: 45px;
}
- .landing-page .header-wrapper .mascot {
- right: 60px;
- left: auto;
- }
-
- .landing-page__call-to-action .row__information-board {
- direction: rtl;
- }
-
- .landing-page .header .hero .floats .float-1 {
- left: -120px;
- right: auto;
- }
-
- .landing-page .header .hero .floats .float-2 {
- left: 210px;
- right: auto;
- }
-
- .landing-page .header .hero .floats .float-3 {
- left: 110px;
- right: auto;
- }
-
- .landing-page .header .links .brand img {
- left: 0;
- }
-
- .landing-page .fa-external-link {
- padding-right: 5px;
- padding-left: 0 !important;
- }
-
- .landing-page .features #mastodon-timeline {
- margin-right: 0;
- margin-left: 30px;
- }
-
@media screen and (min-width: 631px) {
.column,
.drawer {
@@ -415,32 +367,6 @@ body.rtl {
padding-right: 0;
}
- .public-layout {
- .header {
- .nav-button {
- margin-left: 8px;
- margin-right: 0;
- }
- }
-
- .public-account-header__tabs {
- margin-left: 0;
- margin-right: 20px;
- }
- }
-
- .landing-page__information {
- .account__display-name {
- margin-right: 0;
- margin-left: 5px;
- }
-
- .account__avatar-wrapper {
- margin-left: 12px;
- margin-right: 0;
- }
- }
-
.card__bar .display-name {
margin-left: 0;
margin-right: 15px;
diff --git a/app/javascript/styles/mastodon/statuses.scss b/app/javascript/styles/mastodon/statuses.scss
index a926aff969..ce71d11e4e 100644
--- a/app/javascript/styles/mastodon/statuses.scss
+++ b/app/javascript/styles/mastodon/statuses.scss
@@ -80,7 +80,7 @@
.button.logo-button {
flex: 0 auto;
font-size: 14px;
- background: $ui-highlight-color;
+ background: darken($ui-highlight-color, 2%);
color: $primary-text-color;
text-transform: none;
line-height: 1.2;
@@ -104,7 +104,7 @@
&:active,
&:focus,
&:hover {
- background: lighten($ui-highlight-color, 10%);
+ background: $ui-highlight-color;
}
&:disabled,
@@ -137,8 +137,7 @@ a.button.logo-button {
justify-content: center;
}
-.embed,
-.public-layout {
+.embed {
.status__content[data-spoiler="folded"] {
.e-content {
display: none;
diff --git a/app/javascript/styles/mastodon/tables.scss b/app/javascript/styles/mastodon/tables.scss
index 431b8a73a4..39211910fb 100644
--- a/app/javascript/styles/mastodon/tables.scss
+++ b/app/javascript/styles/mastodon/tables.scss
@@ -190,6 +190,55 @@ a.table-action-link {
}
}
+ &__select-all {
+ background: $ui-base-color;
+ height: 47px;
+ align-items: center;
+ justify-content: center;
+ border: 1px solid darken($ui-base-color, 8%);
+ border-top: 0;
+ color: $secondary-text-color;
+ display: none;
+
+ &.active {
+ display: flex;
+ }
+
+ .selected,
+ .not-selected {
+ display: none;
+
+ &.active {
+ display: block;
+ }
+ }
+
+ strong {
+ font-weight: 700;
+ }
+
+ span {
+ padding: 8px;
+ display: inline-block;
+ }
+
+ button {
+ background: transparent;
+ border: 0;
+ font: inherit;
+ color: $highlight-text-color;
+ border-radius: 4px;
+ font-weight: 700;
+ padding: 8px;
+
+ &:hover,
+ &:focus,
+ &:active {
+ background: lighten($ui-base-color, 8%);
+ }
+ }
+ }
+
&__form {
padding: 16px;
border: 1px solid darken($ui-base-color, 8%);
diff --git a/app/javascript/styles/mastodon/variables.scss b/app/javascript/styles/mastodon/variables.scss
index 47d7e6f87f..2f6c41d5f2 100644
--- a/app/javascript/styles/mastodon/variables.scss
+++ b/app/javascript/styles/mastodon/variables.scss
@@ -12,7 +12,7 @@ $red-bookmark: $warning-red;
$classic-base-color: #282c37; // Midnight Express
$classic-primary-color: #9baec8; // Echo Blue
$classic-secondary-color: #d9e1e8; // Pattens Blue
-$classic-highlight-color: #2b90d9; // Summer Sky
+$classic-highlight-color: #6364ff; // Brand purple
// Variables for defaults in UI
$base-shadow-color: $black !default;
@@ -34,7 +34,7 @@ $primary-text-color: $white !default;
$darker-text-color: $ui-primary-color !default;
$dark-text-color: $ui-base-lighter-color !default;
$secondary-text-color: $ui-secondary-color !default;
-$highlight-text-color: $ui-highlight-color !default;
+$highlight-text-color: lighten($ui-highlight-color, 8%) !default;
$action-button-color: $ui-base-lighter-color !default;
$passive-text-color: $gold-star !default;
$active-passive-text-color: $success-green !default;
@@ -53,7 +53,7 @@ $media-modal-media-max-width: 100%;
// put margins on top and bottom of image to avoid the screen covered by image.
$media-modal-media-max-height: 80%;
-$no-gap-breakpoint: 415px;
+$no-gap-breakpoint: 1175px;
$font-sans-serif: 'mastodon-font-sans-serif' !default;
$font-display: 'mastodon-font-display' !default;
diff --git a/app/javascript/styles/mastodon/widgets.scss b/app/javascript/styles/mastodon/widgets.scss
index 43284eb482..0e39dc87b4 100644
--- a/app/javascript/styles/mastodon/widgets.scss
+++ b/app/javascript/styles/mastodon/widgets.scss
@@ -112,13 +112,6 @@
}
}
-.box-widget {
- padding: 20px;
- border-radius: 4px;
- background: $ui-base-color;
- box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
-}
-
.placeholder-widget {
padding: 16px;
border-radius: 4px;
@@ -128,47 +121,6 @@
margin-bottom: 10px;
}
-.contact-widget {
- min-height: 100%;
- font-size: 15px;
- color: $darker-text-color;
- line-height: 20px;
- word-wrap: break-word;
- font-weight: 400;
- padding: 0;
-
- h4 {
- padding: 10px;
- text-transform: uppercase;
- font-weight: 700;
- font-size: 13px;
- color: $darker-text-color;
- }
-
- .account {
- border-bottom: 0;
- padding: 10px 0;
- padding-top: 5px;
- }
-
- & > a {
- display: inline-block;
- padding: 10px;
- padding-top: 0;
- color: $darker-text-color;
- text-decoration: none;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
-
- &:hover,
- &:focus,
- &:active {
- text-decoration: underline;
- }
- }
-}
-
.moved-account-widget {
padding: 15px;
padding-bottom: 20px;
@@ -249,37 +201,6 @@
margin-bottom: 10px;
}
-.page-header {
- background: lighten($ui-base-color, 8%);
- box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
- border-radius: 4px;
- padding: 60px 15px;
- text-align: center;
- margin: 10px 0;
-
- h1 {
- color: $primary-text-color;
- font-size: 36px;
- line-height: 1.1;
- font-weight: 700;
- margin-bottom: 10px;
- }
-
- p {
- font-size: 15px;
- color: $darker-text-color;
- }
-
- @media screen and (max-width: $no-gap-breakpoint) {
- margin-top: 0;
- background: lighten($ui-base-color, 4%);
-
- h1 {
- font-size: 24px;
- }
- }
-}
-
.directory {
background: $ui-base-color;
border-radius: 4px;
@@ -366,34 +287,6 @@
}
}
-.avatar-stack {
- display: flex;
- justify-content: flex-end;
-
- .account__avatar {
- flex: 0 0 auto;
- width: 36px;
- height: 36px;
- border-radius: 50%;
- position: relative;
- margin-left: -10px;
- background: darken($ui-base-color, 8%);
- border: 2px solid $ui-base-color;
-
- &:nth-child(1) {
- z-index: 1;
- }
-
- &:nth-child(2) {
- z-index: 2;
- }
-
- &:nth-child(3) {
- z-index: 3;
- }
- }
-}
-
.accounts-table {
width: 100%;
@@ -466,8 +359,9 @@
vertical-align: initial !important;
}
- &__interrelationships {
+ tbody td.accounts-table__interrelationships {
width: 21px;
+ padding-right: 16px;
}
.fa {
@@ -495,11 +389,7 @@
.moved-account-widget,
.memoriam-widget,
-.box-widget,
-.contact-widget,
-.landing-page__information.contact-widget,
-.directory,
-.page-header {
+.directory {
@media screen and (max-width: $no-gap-breakpoint) {
margin-bottom: 0;
box-shadow: none;
@@ -507,88 +397,6 @@
}
}
-$maximum-width: 1235px;
-$fluid-breakpoint: $maximum-width + 20px;
-
-.statuses-grid {
- min-height: 600px;
-
- @media screen and (max-width: 640px) {
- width: 100% !important; // Masonry layout is unnecessary at this width
- }
-
- &__item {
- width: math.div(960px - 20px, 3);
-
- @media screen and (max-width: $fluid-breakpoint) {
- width: math.div(940px - 20px, 3);
- }
-
- @media screen and (max-width: 640px) {
- width: 100%;
- }
-
- @media screen and (max-width: $no-gap-breakpoint) {
- width: 100vw;
- }
- }
-
- .detailed-status {
- border-radius: 4px;
-
- @media screen and (max-width: $no-gap-breakpoint) {
- border-top: 1px solid lighten($ui-base-color, 16%);
- }
-
- &.compact {
- .detailed-status__meta {
- margin-top: 15px;
- }
-
- .status__content {
- font-size: 15px;
- line-height: 20px;
-
- .emojione {
- width: 20px;
- height: 20px;
- margin: -3px 0 0;
- }
-
- .status__content__spoiler-link {
- line-height: 20px;
- margin: 0;
- }
- }
-
- .media-gallery,
- .status-card,
- .video-player {
- margin-top: 15px;
- }
- }
- }
-}
-
-.notice-widget {
- margin-bottom: 10px;
- color: $darker-text-color;
-
- p {
- margin-bottom: 10px;
-
- &:last-child {
- margin-bottom: 0;
- }
- }
-
- a {
- font-size: 14px;
- line-height: 20px;
- }
-}
-
-.notice-widget,
.placeholder-widget {
a {
text-decoration: none;
@@ -602,37 +410,3 @@ $fluid-breakpoint: $maximum-width + 20px;
}
}
}
-
-.table-of-contents {
- background: darken($ui-base-color, 4%);
- min-height: 100%;
- font-size: 14px;
- border-radius: 4px;
-
- li a {
- display: block;
- font-weight: 500;
- padding: 15px;
- white-space: nowrap;
- overflow: hidden;
- text-overflow: ellipsis;
- text-decoration: none;
- color: $primary-text-color;
- border-bottom: 1px solid lighten($ui-base-color, 4%);
-
- &:hover,
- &:focus,
- &:active {
- text-decoration: underline;
- }
- }
-
- li:last-child a {
- border-bottom: 0;
- }
-
- li ul {
- padding-left: 20px;
- border-bottom: 1px solid lighten($ui-base-color, 4%);
- }
-}
diff --git a/app/lib/activitypub/activity.rb b/app/lib/activitypub/activity.rb
index 7ff06ea390..f4c67cccd7 100644
--- a/app/lib/activitypub/activity.rb
+++ b/app/lib/activitypub/activity.rb
@@ -116,12 +116,12 @@ class ActivityPub::Activity
def dereference_object!
return unless @object.is_a?(String)
- dereferencer = ActivityPub::Dereferencer.new(@object, permitted_origin: @account.uri, signature_account: signed_fetch_account)
+ dereferencer = ActivityPub::Dereferencer.new(@object, permitted_origin: @account.uri, signature_actor: signed_fetch_actor)
@object = dereferencer.object unless dereferencer.object.nil?
end
- def signed_fetch_account
+ def signed_fetch_actor
return Account.find(@options[:delivered_to_account_id]) if @options[:delivered_to_account_id].present?
first_mentioned_local_account || first_local_follower
@@ -163,15 +163,15 @@ class ActivityPub::Activity
end
def followed_by_local_accounts?
- @account.passive_relationships.exists? || @options[:relayed_through_account]&.passive_relationships&.exists?
+ @account.passive_relationships.exists? || (@options[:relayed_through_actor].is_a?(Account) && @options[:relayed_through_actor].passive_relationships&.exists?)
end
def requested_through_relay?
- @options[:relayed_through_account] && Relay.find_by(inbox_url: @options[:relayed_through_account].inbox_url)&.enabled?
+ @options[:relayed_through_actor] && Relay.find_by(inbox_url: @options[:relayed_through_actor].inbox_url)&.enabled?
end
def reject_payload!
- Rails.logger.info("Rejected #{@json['type']} activity #{@json['id']} from #{@account.uri}#{@options[:relayed_through_account] && "via #{@options[:relayed_through_account].uri}"}")
+ Rails.logger.info("Rejected #{@json['type']} activity #{@json['id']} from #{@account.uri}#{@options[:relayed_through_actor] && "via #{@options[:relayed_through_actor].uri}"}")
nil
end
end
diff --git a/app/lib/activitypub/activity/add.rb b/app/lib/activitypub/activity/add.rb
index 845eeaef79..9e2483983d 100644
--- a/app/lib/activitypub/activity/add.rb
+++ b/app/lib/activitypub/activity/add.rb
@@ -2,12 +2,32 @@
class ActivityPub::Activity::Add < ActivityPub::Activity
def perform
- return unless @json['target'].present? && value_or_id(@json['target']) == @account.featured_collection_url
+ return if @json['target'].blank?
+ case value_or_id(@json['target'])
+ when @account.featured_collection_url
+ case @object['type']
+ when 'Hashtag'
+ add_featured_tags
+ else
+ add_featured
+ end
+ end
+ end
+
+ private
+
+ def add_featured
status = status_from_object
return unless !status.nil? && status.account_id == @account.id && !@account.pinned?(status)
StatusPin.create!(account: @account, status: status)
end
+
+ def add_featured_tags
+ name = @object['name']&.delete_prefix('#')
+
+ FeaturedTag.create!(account: @account, name: name) if name.present?
+ end
end
diff --git a/app/lib/activitypub/activity/remove.rb b/app/lib/activitypub/activity/remove.rb
index f523ead9f6..f5cbef6757 100644
--- a/app/lib/activitypub/activity/remove.rb
+++ b/app/lib/activitypub/activity/remove.rb
@@ -2,8 +2,22 @@
class ActivityPub::Activity::Remove < ActivityPub::Activity
def perform
- return unless @json['target'].present? && value_or_id(@json['target']) == @account.featured_collection_url
+ return if @json['target'].blank?
+ case value_or_id(@json['target'])
+ when @account.featured_collection_url
+ case @object['type']
+ when 'Hashtag'
+ remove_featured_tags
+ else
+ remove_featured
+ end
+ end
+ end
+
+ private
+
+ def remove_featured
status = status_from_uri(object_uri)
return unless !status.nil? && status.account_id == @account.id
@@ -11,4 +25,13 @@ class ActivityPub::Activity::Remove < ActivityPub::Activity
pin = StatusPin.find_by(account: @account, status: status)
pin&.destroy!
end
+
+ def remove_featured_tags
+ name = @object['name']&.delete_prefix('#')
+
+ return if name.blank?
+
+ featured_tag = FeaturedTag.by_name(name).find_by(account: @account)
+ featured_tag&.destroy!
+ end
end
diff --git a/app/lib/activitypub/dereferencer.rb b/app/lib/activitypub/dereferencer.rb
index bea69608fe..4d7756d71d 100644
--- a/app/lib/activitypub/dereferencer.rb
+++ b/app/lib/activitypub/dereferencer.rb
@@ -3,10 +3,10 @@
class ActivityPub::Dereferencer
include JsonLdHelper
- def initialize(uri, permitted_origin: nil, signature_account: nil)
+ def initialize(uri, permitted_origin: nil, signature_actor: nil)
@uri = uri
@permitted_origin = permitted_origin
- @signature_account = signature_account
+ @signature_actor = signature_actor
end
def object
@@ -46,7 +46,7 @@ class ActivityPub::Dereferencer
req.add_headers('Accept' => 'application/activity+json, application/ld+json')
req.add_headers(headers) if headers
- req.on_behalf_of(@signature_account) if @signature_account
+ req.on_behalf_of(@signature_actor) if @signature_actor
req.perform do |res|
if res.code == 200
diff --git a/app/lib/activitypub/linked_data_signature.rb b/app/lib/activitypub/linked_data_signature.rb
index e853a970e8..f90adaf6c5 100644
--- a/app/lib/activitypub/linked_data_signature.rb
+++ b/app/lib/activitypub/linked_data_signature.rb
@@ -9,7 +9,7 @@ class ActivityPub::LinkedDataSignature
@json = json.with_indifferent_access
end
- def verify_account!
+ def verify_actor!
return unless @json['signature'].is_a?(Hash)
type = @json['signature']['type']
@@ -18,7 +18,7 @@ class ActivityPub::LinkedDataSignature
return unless type == 'RsaSignature2017'
- creator = ActivityPub::TagManager.instance.uri_to_resource(creator_uri, Account)
+ creator = ActivityPub::TagManager.instance.uri_to_actor(creator_uri)
creator ||= ActivityPub::FetchRemoteKeyService.new.call(creator_uri, id: false)
return if creator.nil?
@@ -35,7 +35,7 @@ class ActivityPub::LinkedDataSignature
def sign!(creator, sign_with: nil)
options = {
'type' => 'RsaSignature2017',
- 'creator' => [ActivityPub::TagManager.instance.uri_for(creator), '#main-key'].join,
+ 'creator' => ActivityPub::TagManager.instance.key_uri_for(creator),
'created' => Time.now.utc.iso8601,
}
diff --git a/app/lib/activitypub/parser/media_attachment_parser.rb b/app/lib/activitypub/parser/media_attachment_parser.rb
index 30bea1f0e6..656be84b73 100644
--- a/app/lib/activitypub/parser/media_attachment_parser.rb
+++ b/app/lib/activitypub/parser/media_attachment_parser.rb
@@ -50,7 +50,7 @@ class ActivityPub::Parser::MediaAttachmentParser
components = begin
blurhash = @json['blurhash']
- if blurhash.present? && /^[\w#$%*+-.:;=?@\[\]^{|}~]+$/.match?(blurhash)
+ if blurhash.present? && /^[\w#$%*+,-.:;=?@\[\]^{|}~]+$/.match?(blurhash)
Blurhash.components(blurhash)
end
end
diff --git a/app/lib/activitypub/tag_manager.rb b/app/lib/activitypub/tag_manager.rb
index f6b9741fa1..3d6b28ef58 100644
--- a/app/lib/activitypub/tag_manager.rb
+++ b/app/lib/activitypub/tag_manager.rb
@@ -44,6 +44,10 @@ class ActivityPub::TagManager
end
end
+ def key_uri_for(target)
+ [uri_for(target), '#main-key'].join
+ end
+
def uri_for_username(username)
account_url(username: username)
end
@@ -155,6 +159,10 @@ class ActivityPub::TagManager
path_params[param]
end
+ def uri_to_actor(uri)
+ uri_to_resource(uri, Account)
+ end
+
def uri_to_resource(uri, klass)
return if uri.nil?
diff --git a/app/lib/admin/system_check.rb b/app/lib/admin/system_check.rb
index 877a42ef63..f512635abb 100644
--- a/app/lib/admin/system_check.rb
+++ b/app/lib/admin/system_check.rb
@@ -8,11 +8,11 @@ class Admin::SystemCheck
Admin::SystemCheck::ElasticsearchCheck,
].freeze
- def self.perform
+ def self.perform(current_user)
ACTIVE_CHECKS.each_with_object([]) do |klass, arr|
- check = klass.new
+ check = klass.new(current_user)
- if check.pass?
+ if check.skip? || check.pass?
arr
else
arr << check.message
diff --git a/app/lib/admin/system_check/base_check.rb b/app/lib/admin/system_check/base_check.rb
index fcad8daca4..c2974c218e 100644
--- a/app/lib/admin/system_check/base_check.rb
+++ b/app/lib/admin/system_check/base_check.rb
@@ -1,6 +1,16 @@
# frozen_string_literal: true
class Admin::SystemCheck::BaseCheck
+ attr_reader :current_user
+
+ def initialize(current_user)
+ @current_user = current_user
+ end
+
+ def skip?
+ false
+ end
+
def pass?
raise NotImplementedError
end
diff --git a/app/lib/admin/system_check/database_schema_check.rb b/app/lib/admin/system_check/database_schema_check.rb
index b93d1954eb..c2f01fd55b 100644
--- a/app/lib/admin/system_check/database_schema_check.rb
+++ b/app/lib/admin/system_check/database_schema_check.rb
@@ -1,6 +1,10 @@
# frozen_string_literal: true
class Admin::SystemCheck::DatabaseSchemaCheck < Admin::SystemCheck::BaseCheck
+ def skip?
+ !current_user.can?(:view_devops)
+ end
+
def pass?
!ActiveRecord::Base.connection.migration_context.needs_migration?
end
diff --git a/app/lib/admin/system_check/elasticsearch_check.rb b/app/lib/admin/system_check/elasticsearch_check.rb
index 1b48a5415a..8aee182674 100644
--- a/app/lib/admin/system_check/elasticsearch_check.rb
+++ b/app/lib/admin/system_check/elasticsearch_check.rb
@@ -1,6 +1,10 @@
# frozen_string_literal: true
class Admin::SystemCheck::ElasticsearchCheck < Admin::SystemCheck::BaseCheck
+ def skip?
+ !current_user.can?(:view_devops)
+ end
+
def pass?
return true unless Chewy.enabled?
@@ -32,8 +36,4 @@ class Admin::SystemCheck::ElasticsearchCheck < Admin::SystemCheck::BaseCheck
def compatible_version?
Gem::Version.new(running_version) >= Gem::Version.new(required_version)
end
-
- def missing_queues
- @missing_queues ||= Sidekiq::ProcessSet.new.reduce(SIDEKIQ_QUEUES) { |queues, process| queues - process['queues'] }
- end
end
diff --git a/app/lib/admin/system_check/rules_check.rb b/app/lib/admin/system_check/rules_check.rb
index 1fbdf955dc..8206a5df39 100644
--- a/app/lib/admin/system_check/rules_check.rb
+++ b/app/lib/admin/system_check/rules_check.rb
@@ -3,6 +3,10 @@
class Admin::SystemCheck::RulesCheck < Admin::SystemCheck::BaseCheck
include RoutingHelper
+ def skip?
+ !current_user.can?(:manage_rules)
+ end
+
def pass?
Rule.kept.exists?
end
diff --git a/app/lib/admin/system_check/sidekiq_process_check.rb b/app/lib/admin/system_check/sidekiq_process_check.rb
index 22446edaf7..648811d6c1 100644
--- a/app/lib/admin/system_check/sidekiq_process_check.rb
+++ b/app/lib/admin/system_check/sidekiq_process_check.rb
@@ -9,6 +9,10 @@ class Admin::SystemCheck::SidekiqProcessCheck < Admin::SystemCheck::BaseCheck
scheduler
).freeze
+ def skip?
+ !current_user.can?(:view_devops)
+ end
+
def pass?
missing_queues.empty?
end
diff --git a/app/lib/ascii_folding.rb b/app/lib/ascii_folding.rb
new file mode 100644
index 0000000000..1798d3d0e6
--- /dev/null
+++ b/app/lib/ascii_folding.rb
@@ -0,0 +1,10 @@
+# frozen_string_literal: true
+
+class ASCIIFolding
+ NON_ASCII_CHARS = 'ÀÁÂÃÄÅàáâãäåĀāĂ㥹ÇçĆćĈĉĊċČčÐðĎďĐđÈÉÊËèéêëĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħÌÍÎÏìíîïĨĩĪīĬĭĮįİıĴĵĶķĸĹĺĻļĽľĿŀŁłÑñŃńŅņŇňʼnŊŋÒÓÔÕÖØòóôõöøŌōŎŏŐőŔŕŖŗŘřŚśŜŝŞşŠšſŢţŤťŦŧÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųŴŵÝýÿŶŷŸŹźŻżŽž'
+ EQUIVALENT_ASCII_CHARS = 'AAAAAAaaaaaaAaAaAaCcCcCcCcCcDdDdDdEEEEeeeeEeEeEeEeEeGgGgGgGgHhHhIIIIiiiiIiIiIiIiIiJjKkkLlLlLlLlLlNnNnNnNnnNnOOOOOOooooooOoOoOoRrRrRrSsSsSsSssTtTtTtUUUUuuuuUuUuUuUuUuUuWwYyyYyYZzZzZz'
+
+ def fold(str)
+ str.tr(NON_ASCII_CHARS, EQUIVALENT_ASCII_CHARS)
+ end
+end
diff --git a/app/lib/feed_manager.rb b/app/lib/feed_manager.rb
index 235d6fedd2..9fe9ec346d 100644
--- a/app/lib/feed_manager.rb
+++ b/app/lib/feed_manager.rb
@@ -47,6 +47,8 @@ class FeedManager
filter_from_mentions?(status, receiver.id)
when :direct
filter_from_direct?(status, receiver.id)
+ when :tags
+ filter_from_tags?(status, receiver.id, build_crutches(receiver.id, [status]))
else
false
end
@@ -58,7 +60,7 @@ class FeedManager
# @param [Boolean] update
# @return [Boolean]
def push_to_home(account, status, update: false)
- return false unless add_to_feed(:home, account.id, status, account.user&.aggregates_reblogs?)
+ return false unless add_to_feed(:home, account.id, status, aggregate_reblogs: account.user&.aggregates_reblogs?)
trim(:home, account.id)
PushUpdateWorker.perform_async(account.id, status.id, "timeline:#{account.id}", { 'update' => update }) if push_update_required?("timeline:#{account.id}")
@@ -71,7 +73,7 @@ class FeedManager
# @param [Boolean] update
# @return [Boolean]
def unpush_from_home(account, status, update: false)
- return false unless remove_from_feed(:home, account.id, status, account.user&.aggregates_reblogs?)
+ return false unless remove_from_feed(:home, account.id, status, aggregate_reblogs: account.user&.aggregates_reblogs?)
redis.publish("timeline:#{account.id}", Oj.dump(event: :delete, payload: status.id.to_s)) unless update
true
@@ -83,7 +85,7 @@ class FeedManager
# @param [Boolean] update
# @return [Boolean]
def push_to_list(list, status, update: false)
- return false if filter_from_list?(status, list) || !add_to_feed(:list, list.id, status, list.account.user&.aggregates_reblogs?)
+ return false if filter_from_list?(status, list) || !add_to_feed(:list, list.id, status, aggregate_reblogs: list.account.user&.aggregates_reblogs?)
trim(:list, list.id)
PushUpdateWorker.perform_async(list.account_id, status.id, "timeline:list:#{list.id}", { 'update' => update }) if push_update_required?("timeline:list:#{list.id}")
@@ -96,7 +98,7 @@ class FeedManager
# @param [Boolean] update
# @return [Boolean]
def unpush_from_list(list, status, update: false)
- return false unless remove_from_feed(:list, list.id, status, list.account.user&.aggregates_reblogs?)
+ return false unless remove_from_feed(:list, list.id, status, aggregate_reblogs: list.account.user&.aggregates_reblogs?)
redis.publish("timeline:list:#{list.id}", Oj.dump(event: :delete, payload: status.id.to_s)) unless update
true
@@ -145,7 +147,7 @@ class FeedManager
statuses.each do |status|
next if filter_from_home?(status, into_account.id, crutches)
- add_to_feed(:home, into_account.id, status, aggregate)
+ add_to_feed(:home, into_account.id, status, aggregate_reblogs: aggregate)
end
trim(:home, into_account.id)
@@ -171,7 +173,7 @@ class FeedManager
statuses.each do |status|
next if filter_from_home?(status, list.account_id, crutches) || filter_from_list?(status, list)
- add_to_feed(:list, list.id, status, aggregate)
+ add_to_feed(:list, list.id, status, aggregate_reblogs: aggregate)
end
trim(:list, list.id)
@@ -186,7 +188,7 @@ class FeedManager
timeline_status_ids = redis.zrange(timeline_key, 0, -1)
from_account.statuses.select('id, reblog_of_id').where(id: timeline_status_ids).reorder(nil).find_each do |status|
- remove_from_feed(:home, into_account.id, status, into_account.user&.aggregates_reblogs?)
+ remove_from_feed(:home, into_account.id, status, aggregate_reblogs: into_account.user&.aggregates_reblogs?)
end
end
@@ -199,7 +201,7 @@ class FeedManager
timeline_status_ids = redis.zrange(timeline_key, 0, -1)
from_account.statuses.select('id, reblog_of_id').where(id: timeline_status_ids).reorder(nil).find_each do |status|
- remove_from_feed(:list, list.id, status, list.account.user&.aggregates_reblogs?)
+ remove_from_feed(:list, list.id, status, aggregate_reblogs: list.account.user&.aggregates_reblogs?)
end
end
@@ -262,7 +264,7 @@ class FeedManager
timeline_key = key(:home, account.id)
account.statuses.limit(limit).each do |status|
- add_to_feed(:home, account.id, status, aggregate)
+ add_to_feed(:home, account.id, status, aggregate_reblogs: aggregate)
end
account.following.includes(:account_stat).find_each do |target_account|
@@ -276,13 +278,13 @@ class FeedManager
next if last_status_score < oldest_home_score
end
- statuses = target_account.statuses.where(visibility: [:public, :unlisted, :private]).includes(:preloadable_poll, :media_attachments, reblog: :account).limit(limit)
+ statuses = target_account.statuses.where(visibility: [:public, :unlisted, :private]).includes(:preloadable_poll, :media_attachments, :account, reblog: :account).limit(limit)
crutches = build_crutches(account.id, statuses)
statuses.each do |status|
next if filter_from_home?(status, account.id, crutches)
- add_to_feed(:home, account.id, status, aggregate)
+ add_to_feed(:home, account.id, status, aggregate_reblogs: aggregate)
end
trim(:home, account.id)
@@ -401,7 +403,7 @@ class FeedManager
def filter_from_home?(status, receiver_id, crutches)
return false if receiver_id == status.account_id
return true if status.reply? && (status.in_reply_to_id.nil? || status.in_reply_to_account_id.nil?)
- return true if phrase_filtered?(status, receiver_id, :home)
+ return true if crutches[:languages][status.account_id].present? && status.language.present? && !crutches[:languages][status.account_id].include?(status.language)
check_for_blocks = crutches[:active_mentions][status.id] || []
check_for_blocks.concat([status.account_id])
@@ -437,7 +439,6 @@ class FeedManager
# @return [Boolean]
def filter_from_mentions?(status, receiver_id)
return true if receiver_id == status.account_id
- return true if phrase_filtered?(status, receiver_id, :notifications)
# This filter is called from NotifyService, but already after the sender of
# the notification has been checked for mute/block. Therefore, it's not
@@ -476,32 +477,14 @@ class FeedManager
false
end
- # Check if the status hits a phrase filter
+ # Check if a status should not be added to the home feed when it comes
+ # from a followed hashtag
# @param [Status] status
# @param [Integer] receiver_id
- # @param [Symbol] context
+ # @param [Hash] crutches
# @return [Boolean]
- def phrase_filtered?(status, receiver_id, context)
- active_filters = Rails.cache.fetch("filters:#{receiver_id}") { CustomFilter.where(account_id: receiver_id).active_irreversible.to_a }.to_a
-
- active_filters.select! { |filter| filter.context.include?(context.to_s) && !filter.expired? }
-
- active_filters.map! do |filter|
- if filter.whole_word
- sb = /\A[[:word:]]/.match?(filter.phrase) ? '\b' : ''
- eb = /[[:word:]]\z/.match?(filter.phrase) ? '\b' : ''
-
- /(?mix:#{sb}#{Regexp.escape(filter.phrase)}#{eb})/
- else
- /#{Regexp.escape(filter.phrase)}/i
- end
- end
-
- return false if active_filters.empty?
-
- combined_regex = Regexp.union(active_filters)
-
- combined_regex.match?(status.proper.searchable_text)
+ def filter_from_tags?(status, receiver_id, crutches)
+ receiver_id == status.account_id || ((crutches[:active_mentions][status.id] || []) + [status.account_id]).any? { |target_account_id| crutches[:blocking][target_account_id] || crutches[:muting][target_account_id] } || crutches[:blocked_by][status.account_id] || crutches[:domain_blocking][status.account.domain]
end
# Adds a status to an account's feed, returning true if a status was
@@ -513,7 +496,7 @@ class FeedManager
# @param [Status] status
# @param [Boolean] aggregate_reblogs
# @return [Boolean]
- def add_to_feed(timeline_type, account_id, status, aggregate_reblogs = true)
+ def add_to_feed(timeline_type, account_id, status, aggregate_reblogs: true)
timeline_key = key(timeline_type, account_id)
reblog_key = key(timeline_type, account_id, 'reblogs')
@@ -561,7 +544,7 @@ class FeedManager
# @param [Status] status
# @param [Boolean] aggregate_reblogs
# @return [Boolean]
- def remove_from_feed(timeline_type, account_id, status, aggregate_reblogs = true)
+ def remove_from_feed(timeline_type, account_id, status, aggregate_reblogs: true)
timeline_key = key(timeline_type, account_id)
reblog_key = key(timeline_type, account_id, 'reblogs')
@@ -618,10 +601,11 @@ class FeedManager
end
crutches[:following] = Follow.where(account_id: receiver_id, target_account_id: statuses.map(&:in_reply_to_account_id).compact).pluck(:target_account_id).index_with(true)
+ crutches[:languages] = Follow.where(account_id: receiver_id, target_account_id: statuses.map(&:account_id)).pluck(:target_account_id, :languages).to_h
crutches[:hiding_reblogs] = Follow.where(account_id: receiver_id, target_account_id: statuses.map { |s| s.account_id if s.reblog? }.compact, show_reblogs: false).pluck(:target_account_id).index_with(true)
crutches[:blocking] = Block.where(account_id: receiver_id, target_account_id: check_for_blocks).pluck(:target_account_id).index_with(true)
crutches[:muting] = Mute.where(account_id: receiver_id, target_account_id: check_for_blocks).pluck(:target_account_id).index_with(true)
- crutches[:domain_blocking] = AccountDomainBlock.where(account_id: receiver_id, domain: statuses.map { |s| s.reblog&.account&.domain }.compact).pluck(:domain).index_with(true)
+ crutches[:domain_blocking] = AccountDomainBlock.where(account_id: receiver_id, domain: statuses.flat_map { |s| [s.account.domain, s.reblog&.account&.domain] }.compact).pluck(:domain).index_with(true)
crutches[:blocked_by] = Block.where(target_account_id: receiver_id, account_id: statuses.map { |s| s.reblog&.account_id }.compact).pluck(:account_id).index_with(true)
crutches
diff --git a/app/lib/hashtag_normalizer.rb b/app/lib/hashtag_normalizer.rb
new file mode 100644
index 0000000000..c1f99e1638
--- /dev/null
+++ b/app/lib/hashtag_normalizer.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+class HashtagNormalizer
+ def normalize(str)
+ remove_invalid_characters(ascii_folding(lowercase(cjk_width(str))))
+ end
+
+ private
+
+ def remove_invalid_characters(str)
+ str.gsub(/[^[:alnum:]#{Tag::HASHTAG_SEPARATORS}]/, '')
+ end
+
+ def ascii_folding(str)
+ ASCIIFolding.new.fold(str)
+ end
+
+ def lowercase(str)
+ str.mb_chars.downcase.to_s
+ end
+
+ def cjk_width(str)
+ str.unicode_normalize(:nfkc)
+ end
+end
diff --git a/app/lib/importer/statuses_index_importer.rb b/app/lib/importer/statuses_index_importer.rb
index 7c65325600..5b5153d5c8 100644
--- a/app/lib/importer/statuses_index_importer.rb
+++ b/app/lib/importer/statuses_index_importer.rb
@@ -84,6 +84,6 @@ class Importer::StatusesIndexImporter < Importer::BaseImporter
end
def local_statuses_scope
- Status.local.select('id, coalesce(reblog_of_id, id) as status_id')
+ Status.local.select('"statuses"."id", COALESCE("statuses"."reblog_of_id", "statuses"."id") AS status_id')
end
end
diff --git a/app/lib/permalink_redirector.rb b/app/lib/permalink_redirector.rb
index e48bce0609..cf1a376251 100644
--- a/app/lib/permalink_redirector.rb
+++ b/app/lib/permalink_redirector.rb
@@ -8,20 +8,14 @@ class PermalinkRedirector
end
def redirect_path
- if path_segments[0] == 'web'
- if path_segments[1].present? && path_segments[1].start_with?('@') && path_segments[2] =~ /\d/
- find_status_url_by_id(path_segments[2])
- elsif path_segments[1].present? && path_segments[1].start_with?('@')
- find_account_url_by_name(path_segments[1])
- elsif path_segments[1] == 'statuses' && path_segments[2] =~ /\d/
- find_status_url_by_id(path_segments[2])
- elsif path_segments[1] == 'accounts' && path_segments[2] =~ /\d/
- find_account_url_by_id(path_segments[2])
- elsif path_segments[1] == 'timelines' && path_segments[2] == 'tag' && path_segments[3].present?
- find_tag_url_by_name(path_segments[3])
- elsif path_segments[1] == 'tags' && path_segments[2].present?
- find_tag_url_by_name(path_segments[2])
- end
+ if path_segments[0].present? && path_segments[0].start_with?('@') && path_segments[1] =~ /\d/
+ find_status_url_by_id(path_segments[1])
+ elsif path_segments[0].present? && path_segments[0].start_with?('@')
+ find_account_url_by_name(path_segments[0])
+ elsif path_segments[0] == 'statuses' && path_segments[1] =~ /\d/
+ find_status_url_by_id(path_segments[1])
+ elsif path_segments[0] == 'accounts' && path_segments[1] =~ /\d/
+ find_account_url_by_id(path_segments[1])
end
end
@@ -33,18 +27,12 @@ class PermalinkRedirector
def find_status_url_by_id(id)
status = Status.find_by(id: id)
-
- return unless status&.distributable?
-
- ActivityPub::TagManager.instance.url_for(status)
+ ActivityPub::TagManager.instance.url_for(status) if status&.distributable? && !status.account.local?
end
def find_account_url_by_id(id)
account = Account.find_by(id: id)
-
- return unless account
-
- ActivityPub::TagManager.instance.url_for(account)
+ ActivityPub::TagManager.instance.url_for(account) if account.present? && !account.local?
end
def find_account_url_by_name(name)
@@ -52,12 +40,6 @@ class PermalinkRedirector
domain = nil if TagManager.instance.local_domain?(domain)
account = Account.find_remote(username, domain)
- return unless account
-
- ActivityPub::TagManager.instance.url_for(account)
- end
-
- def find_tag_url_by_name(name)
- tag_path(CGI.unescape(name))
+ ActivityPub::TagManager.instance.url_for(account) if account.present? && !account.local?
end
end
diff --git a/app/lib/redis_configuration.rb b/app/lib/redis_configuration.rb
index e14d6c8b67..f0e86d985b 100644
--- a/app/lib/redis_configuration.rb
+++ b/app/lib/redis_configuration.rb
@@ -7,9 +7,7 @@ class RedisConfiguration
@pool = ConnectionPool.new(size: new_pool_size) { new.connection }
end
- def with
- pool.with { |redis| yield redis }
- end
+ delegate :with, to: :pool
def pool
@pool ||= establish_pool(pool_size)
@@ -17,7 +15,7 @@ class RedisConfiguration
def pool_size
if Sidekiq.server?
- Sidekiq.options[:concurrency]
+ Sidekiq[:concurrency]
else
ENV['MAX_THREADS'] || 5
end
diff --git a/app/lib/request.rb b/app/lib/request.rb
index 4289da9333..648aa30850 100644
--- a/app/lib/request.rb
+++ b/app/lib/request.rb
@@ -31,7 +31,7 @@ class Request
@url = Addressable::URI.parse(url).normalize
@http_client = options.delete(:http_client)
@options = options.merge(socket_class: use_proxy? ? ProxySocket : Socket)
- @options = @options.merge(Rails.configuration.x.http_client_proxy) if use_proxy?
+ @options = @options.merge(proxy_url) if use_proxy?
@headers = {}
raise Mastodon::HostValidationError, 'Instance does not support hidden service connections' if block_hidden_service?
@@ -40,12 +40,11 @@ class Request
set_digest! if options.key?(:body)
end
- def on_behalf_of(account, key_id_format = :uri, sign_with: nil)
- raise ArgumentError, 'account must not be nil' if account.nil?
+ def on_behalf_of(actor, sign_with: nil)
+ raise ArgumentError, 'actor must not be nil' if actor.nil?
- @account = account
- @keypair = sign_with.present? ? OpenSSL::PKey::RSA.new(sign_with) : @account.keypair
- @key_id_format = key_id_format
+ @actor = actor
+ @keypair = sign_with.present? ? OpenSSL::PKey::RSA.new(sign_with) : @actor.keypair
self
end
@@ -79,7 +78,7 @@ class Request
end
def headers
- (@account ? @headers.merge('Signature' => signature) : @headers).without(REQUEST_TARGET)
+ (@actor ? @headers.merge('Signature' => signature) : @headers).without(REQUEST_TARGET)
end
class << self
@@ -128,12 +127,7 @@ class Request
end
def key_id
- case @key_id_format
- when :acct
- @account.to_webfinger_s
- when :uri
- [ActivityPub::TagManager.instance.uri_for(@account), '#main-key'].join
- end
+ ActivityPub::TagManager.instance.key_uri_for(@actor)
end
def http_client
@@ -141,11 +135,23 @@ class Request
end
def use_proxy?
- Rails.configuration.x.http_client_proxy.present?
+ proxy_url.present?
+ end
+
+ def proxy_url
+ if hidden_service? && Rails.configuration.x.http_client_hidden_proxy.present?
+ Rails.configuration.x.http_client_hidden_proxy
+ else
+ Rails.configuration.x.http_client_proxy
+ end
end
def block_hidden_service?
- !Rails.configuration.x.access_to_hidden_service && /\.(onion|i2p)$/.match?(@url.host)
+ !Rails.configuration.x.access_to_hidden_service && hidden_service?
+ end
+
+ def hidden_service?
+ /\.(onion|i2p)$/.match?(@url.host)
end
module ClientLimit
@@ -196,7 +202,7 @@ class Request
addresses.each do |address|
begin
- check_private_address(address)
+ check_private_address(address, host)
sock = ::Socket.new(address.is_a?(Resolv::IPv6) ? ::Socket::AF_INET6 : ::Socket::AF_INET, ::Socket::SOCK_STREAM, 0)
sockaddr = ::Socket.pack_sockaddr_in(port, address.to_s)
@@ -252,10 +258,10 @@ class Request
alias new open
- def check_private_address(address)
+ def check_private_address(address, host)
addr = IPAddr.new(address.to_s)
return if private_address_exceptions.any? { |range| range.include?(addr) }
- raise Mastodon::HostValidationError if PrivateAddressCheck.private_address?(addr)
+ raise Mastodon::PrivateNetworkAddressError, host if PrivateAddressCheck.private_address?(addr)
end
def private_address_exceptions
diff --git a/app/lib/translation_service.rb b/app/lib/translation_service.rb
new file mode 100644
index 0000000000..285f309393
--- /dev/null
+++ b/app/lib/translation_service.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+class TranslationService
+ class Error < StandardError; end
+ class NotConfiguredError < Error; end
+ class TooManyRequestsError < Error; end
+ class QuotaExceededError < Error; end
+ class UnexpectedResponseError < Error; end
+
+ def self.configured
+ if ENV['DEEPL_API_KEY'].present?
+ TranslationService::DeepL.new(ENV.fetch('DEEPL_PLAN', 'free'), ENV['DEEPL_API_KEY'])
+ elsif ENV['LIBRE_TRANSLATE_ENDPOINT'].present?
+ TranslationService::LibreTranslate.new(ENV['LIBRE_TRANSLATE_ENDPOINT'], ENV['LIBRE_TRANSLATE_API_KEY'])
+ else
+ raise NotConfiguredError
+ end
+ end
+
+ def self.configured?
+ ENV['DEEPL_API_KEY'].present? || ENV['LIBRE_TRANSLATE_ENDPOINT'].present?
+ end
+
+ def translate(_text, _source_language, _target_language)
+ raise NotImplementedError
+ end
+end
diff --git a/app/lib/translation_service/deepl.rb b/app/lib/translation_service/deepl.rb
new file mode 100644
index 0000000000..537fd24c08
--- /dev/null
+++ b/app/lib/translation_service/deepl.rb
@@ -0,0 +1,53 @@
+# frozen_string_literal: true
+
+class TranslationService::DeepL < TranslationService
+ include JsonLdHelper
+
+ def initialize(plan, api_key)
+ super()
+
+ @plan = plan
+ @api_key = api_key
+ end
+
+ def translate(text, source_language, target_language)
+ request(text, source_language, target_language).perform do |res|
+ case res.code
+ when 429
+ raise TooManyRequestsError
+ when 456
+ raise QuotaExceededError
+ when 200...300
+ transform_response(res.body_with_limit)
+ else
+ raise UnexpectedResponseError
+ end
+ end
+ end
+
+ private
+
+ def request(text, source_language, target_language)
+ req = Request.new(:post, endpoint_url, form: { text: text, source_lang: source_language&.upcase, target_lang: target_language, tag_handling: 'html' })
+ req.add_headers('Authorization': "DeepL-Auth-Key #{@api_key}")
+ req
+ end
+
+ def endpoint_url
+ if @plan == 'free'
+ 'https://api-free.deepl.com/v2/translate'
+ else
+ 'https://api.deepl.com/v2/translate'
+ end
+ end
+
+ def transform_response(str)
+ json = Oj.load(str, mode: :strict)
+
+ raise UnexpectedResponseError unless json.is_a?(Hash)
+
+ Translation.new(text: json.dig('translations', 0, 'text'), detected_source_language: json.dig('translations', 0, 'detected_source_language')&.downcase, provider: 'DeepL.com')
+ rescue Oj::ParseError
+ raise UnexpectedResponseError
+ end
+end
diff --git a/app/lib/translation_service/libre_translate.rb b/app/lib/translation_service/libre_translate.rb
new file mode 100644
index 0000000000..43576e3062
--- /dev/null
+++ b/app/lib/translation_service/libre_translate.rb
@@ -0,0 +1,44 @@
+# frozen_string_literal: true
+
+class TranslationService::LibreTranslate < TranslationService
+ def initialize(base_url, api_key)
+ super()
+
+ @base_url = base_url
+ @api_key = api_key
+ end
+
+ def translate(text, source_language, target_language)
+ request(text, source_language, target_language).perform do |res|
+ case res.code
+ when 429
+ raise TooManyRequestsError
+ when 403
+ raise QuotaExceededError
+ when 200...300
+ transform_response(res.body_with_limit, source_language)
+ else
+ raise UnexpectedResponseError
+ end
+ end
+ end
+
+ private
+
+ def request(text, source_language, target_language)
+ body = Oj.dump(q: text, source: source_language.presence || 'auto', target: target_language, format: 'html', api_key: @api_key)
+ req = Request.new(:post, "#{@base_url}/translate", body: body)
+ req.add_headers('Content-Type': 'application/json')
+ req
+ end
+
+ def transform_response(str, source_language)
+ json = Oj.load(str, mode: :strict)
+
+ raise UnexpectedResponseError unless json.is_a?(Hash)
+
+ Translation.new(text: json['translatedText'], detected_source_language: source_language, provider: 'LibreTranslate')
+ rescue Oj::ParseError
+ raise UnexpectedResponseError
+ end
+end
diff --git a/app/lib/translation_service/translation.rb b/app/lib/translation_service/translation.rb
new file mode 100644
index 0000000000..19318c7e9e
--- /dev/null
+++ b/app/lib/translation_service/translation.rb
@@ -0,0 +1,5 @@
+# frozen_string_literal: true
+
+class TranslationService::Translation < ActiveModelSerializers::Model
+ attributes :text, :detected_source_language, :provider
+end
diff --git a/app/lib/user_settings_decorator.rb b/app/lib/user_settings_decorator.rb
index 1d70ed36ab..260077a1c1 100644
--- a/app/lib/user_settings_decorator.rb
+++ b/app/lib/user_settings_decorator.rb
@@ -32,6 +32,7 @@ class UserSettingsDecorator
user.settings['system_font_ui'] = system_font_ui_preference if change?('setting_system_font_ui')
user.settings['system_emoji_font'] = system_emoji_font_preference if change?('setting_system_emoji_font')
user.settings['noindex'] = noindex_preference if change?('setting_noindex')
+ user.settings['hide_followers_count'] = hide_followers_count_preference if change?('setting_hide_followers_count')
user.settings['flavour'] = flavour_preference if change?('setting_flavour')
user.settings['skin'] = skin_preference if change?('setting_skin')
user.settings['aggregate_reblogs'] = aggregate_reblogs_preference if change?('setting_aggregate_reblogs')
@@ -117,6 +118,10 @@ class UserSettingsDecorator
settings['setting_skin']
end
+ def hide_followers_count_preference
+ boolean_cast_setting 'setting_hide_followers_count'
+ end
+
def show_application_preference
boolean_cast_setting 'setting_show_application'
end
diff --git a/app/lib/vacuum.rb b/app/lib/vacuum.rb
new file mode 100644
index 0000000000..9db1ec90be
--- /dev/null
+++ b/app/lib/vacuum.rb
@@ -0,0 +1,3 @@
+# frozen_string_literal: true
+
+module Vacuum; end
diff --git a/app/workers/scheduler/doorkeeper_cleanup_scheduler.rb b/app/lib/vacuum/access_tokens_vacuum.rb
similarity index 56%
rename from app/workers/scheduler/doorkeeper_cleanup_scheduler.rb
rename to app/lib/vacuum/access_tokens_vacuum.rb
index 9303a352fb..4f3878027a 100644
--- a/app/workers/scheduler/doorkeeper_cleanup_scheduler.rb
+++ b/app/lib/vacuum/access_tokens_vacuum.rb
@@ -1,13 +1,18 @@
# frozen_string_literal: true
-class Scheduler::DoorkeeperCleanupScheduler
- include Sidekiq::Worker
+class Vacuum::AccessTokensVacuum
+ def perform
+ vacuum_revoked_access_tokens!
+ vacuum_revoked_access_grants!
+ end
- sidekiq_options retry: 0
+ private
- def perform
+ def vacuum_revoked_access_tokens!
Doorkeeper::AccessToken.where('revoked_at IS NOT NULL').where('revoked_at < NOW()').delete_all
+ end
+
+ def vacuum_revoked_access_grants!
Doorkeeper::AccessGrant.where('revoked_at IS NOT NULL').where('revoked_at < NOW()').delete_all
- SystemKey.expired.delete_all
end
end
diff --git a/app/lib/vacuum/backups_vacuum.rb b/app/lib/vacuum/backups_vacuum.rb
new file mode 100644
index 0000000000..3b83072f36
--- /dev/null
+++ b/app/lib/vacuum/backups_vacuum.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+class Vacuum::BackupsVacuum
+ def initialize(retention_period)
+ @retention_period = retention_period
+ end
+
+ def perform
+ vacuum_expired_backups! if retention_period?
+ end
+
+ private
+
+ def vacuum_expired_backups!
+ backups_past_retention_period.in_batches.destroy_all
+ end
+
+ def backups_past_retention_period
+ Backup.unscoped.where(Backup.arel_table[:created_at].lt(@retention_period.ago))
+ end
+
+ def retention_period?
+ @retention_period.present?
+ end
+end
diff --git a/app/lib/vacuum/feeds_vacuum.rb b/app/lib/vacuum/feeds_vacuum.rb
new file mode 100644
index 0000000000..00b9fd6461
--- /dev/null
+++ b/app/lib/vacuum/feeds_vacuum.rb
@@ -0,0 +1,41 @@
+# frozen_string_literal: true
+
+class Vacuum::FeedsVacuum
+ def perform
+ vacuum_inactive_home_feeds!
+ vacuum_inactive_list_feeds!
+ vacuum_inactive_direct_feeds!
+ end
+
+ private
+
+ def vacuum_inactive_home_feeds!
+ inactive_users.select(:id, :account_id).find_in_batches do |users|
+ feed_manager.clean_feeds!(:home, users.map(&:account_id))
+ end
+ end
+
+ def vacuum_inactive_list_feeds!
+ inactive_users_lists.select(:id).find_in_batches do |lists|
+ feed_manager.clean_feeds!(:list, lists.map(&:id))
+ end
+ end
+
+ def vacuum_inactive_direct_feeds!
+ inactive_users_lists.select(:id).find_in_batches do |lists|
+ feed_manager.clean_feeds!(:direct, lists.map(&:id))
+ end
+ end
+
+ def inactive_users
+ User.confirmed.inactive
+ end
+
+ def inactive_users_lists
+ List.where(account_id: inactive_users.select(:account_id))
+ end
+
+ def feed_manager
+ FeedManager.instance
+ end
+end
diff --git a/app/lib/vacuum/media_attachments_vacuum.rb b/app/lib/vacuum/media_attachments_vacuum.rb
new file mode 100644
index 0000000000..7c0a85a9d9
--- /dev/null
+++ b/app/lib/vacuum/media_attachments_vacuum.rb
@@ -0,0 +1,40 @@
+# frozen_string_literal: true
+
+class Vacuum::MediaAttachmentsVacuum
+ TTL = 1.day.freeze
+
+ def initialize(retention_period)
+ @retention_period = retention_period
+ end
+
+ def perform
+ vacuum_orphaned_records!
+ vacuum_cached_files! if retention_period?
+ end
+
+ private
+
+ def vacuum_cached_files!
+ media_attachments_past_retention_period.find_each do |media_attachment|
+ media_attachment.file.destroy
+ media_attachment.thumbnail.destroy
+ media_attachment.save
+ end
+ end
+
+ def vacuum_orphaned_records!
+ orphaned_media_attachments.in_batches.destroy_all
+ end
+
+ def media_attachments_past_retention_period
+ MediaAttachment.unscoped.remote.cached.where(MediaAttachment.arel_table[:created_at].lt(@retention_period.ago)).where(MediaAttachment.arel_table[:updated_at].lt(@retention_period.ago))
+ end
+
+ def orphaned_media_attachments
+ MediaAttachment.unscoped.unattached.where(MediaAttachment.arel_table[:created_at].lt(TTL.ago))
+ end
+
+ def retention_period?
+ @retention_period.present?
+ end
+end
diff --git a/app/lib/vacuum/preview_cards_vacuum.rb b/app/lib/vacuum/preview_cards_vacuum.rb
new file mode 100644
index 0000000000..14fdeda1ca
--- /dev/null
+++ b/app/lib/vacuum/preview_cards_vacuum.rb
@@ -0,0 +1,30 @@
+# frozen_string_literal: true
+
+class Vacuum::PreviewCardsVacuum
+ TTL = 1.day.freeze
+
+ def initialize(retention_period)
+ @retention_period = retention_period
+ end
+
+ def perform
+ vacuum_cached_images! if retention_period?
+ end
+
+ private
+
+ def vacuum_cached_images!
+ preview_cards_past_retention_period.find_each do |preview_card|
+ preview_card.image.destroy
+ preview_card.save
+ end
+ end
+
+ def preview_cards_past_retention_period
+ PreviewCard.cached.where(PreviewCard.arel_table[:updated_at].lt(@retention_period.ago))
+ end
+
+ def retention_period?
+ @retention_period.present?
+ end
+end
diff --git a/app/lib/vacuum/statuses_vacuum.rb b/app/lib/vacuum/statuses_vacuum.rb
new file mode 100644
index 0000000000..41d6ba270c
--- /dev/null
+++ b/app/lib/vacuum/statuses_vacuum.rb
@@ -0,0 +1,54 @@
+# frozen_string_literal: true
+
+class Vacuum::StatusesVacuum
+ include Redisable
+
+ def initialize(retention_period)
+ @retention_period = retention_period
+ end
+
+ def perform
+ vacuum_statuses! if retention_period?
+ end
+
+ private
+
+ def vacuum_statuses!
+ statuses_scope.find_in_batches do |statuses|
+ # Side-effects not covered by foreign keys, such
+ # as the search index, must be handled first.
+
+ remove_from_account_conversations(statuses)
+ remove_from_search_index(statuses)
+
+ # Foreign keys take care of most associated records
+ # for us. Media attachments will be orphaned.
+
+ Status.where(id: statuses.map(&:id)).delete_all
+ end
+ end
+
+ def statuses_scope
+ Status.unscoped.kept.where(account: Account.remote).where(Status.arel_table[:id].lt(retention_period_as_id)).select(:id, :visibility)
+ end
+
+ def retention_period_as_id
+ Mastodon::Snowflake.id_at(@retention_period.ago, with_random: false)
+ end
+
+ def analyze_statuses!
+ ActiveRecord::Base.connection.execute('ANALYZE statuses')
+ end
+
+ def remove_from_account_conversations(statuses)
+ Status.where(id: statuses.select(&:direct_visibility?).map(&:id)).includes(:account, mentions: :account).each(&:unlink_from_conversations)
+ end
+
+ def remove_from_search_index(statuses)
+ with_redis { |redis| redis.sadd('chewy:queue:StatusesIndex', statuses.map(&:id)) } if Chewy.enabled?
+ end
+
+ def retention_period?
+ @retention_period.present?
+ end
+end
diff --git a/app/lib/vacuum/system_keys_vacuum.rb b/app/lib/vacuum/system_keys_vacuum.rb
new file mode 100644
index 0000000000..ceee2fd164
--- /dev/null
+++ b/app/lib/vacuum/system_keys_vacuum.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class Vacuum::SystemKeysVacuum
+ def perform
+ vacuum_expired_system_keys!
+ end
+
+ private
+
+ def vacuum_expired_system_keys!
+ SystemKey.expired.delete_all
+ end
+end
diff --git a/app/lib/webfinger.rb b/app/lib/webfinger.rb
index a681e0815f..7c0c10c338 100644
--- a/app/lib/webfinger.rb
+++ b/app/lib/webfinger.rb
@@ -3,7 +3,7 @@
class Webfinger
class Error < StandardError; end
class GoneError < Error; end
- class RedirectError < StandardError; end
+ class RedirectError < Error; end
class Response
attr_reader :uri
diff --git a/app/mailers/admin_mailer.rb b/app/mailers/admin_mailer.rb
index f416977d85..bc6d87ae6f 100644
--- a/app/mailers/admin_mailer.rb
+++ b/app/mailers/admin_mailer.rb
@@ -4,6 +4,7 @@ class AdminMailer < ApplicationMailer
layout 'plain_mailer'
helper :accounts
+ helper :languages
def new_report(recipient, report)
@report = report
@@ -37,11 +38,8 @@ class AdminMailer < ApplicationMailer
def new_trends(recipient, links, tags, statuses)
@links = links
- @lowest_trending_link = Trends.links.query.allowed.limit(Trends.links.options[:review_threshold]).last
@tags = tags
- @lowest_trending_tag = Trends.tags.query.allowed.limit(Trends.tags.options[:review_threshold]).last
@statuses = statuses
- @lowest_trending_status = Trends.statuses.query.allowed.limit(Trends.statuses.options[:review_threshold]).last
@me = recipient
@instance = Rails.configuration.x.local_domain
diff --git a/app/mailers/notification_mailer.rb b/app/mailers/notification_mailer.rb
index 9e683b6a16..ab73826ab3 100644
--- a/app/mailers/notification_mailer.rb
+++ b/app/mailers/notification_mailer.rb
@@ -66,24 +66,6 @@ class NotificationMailer < ApplicationMailer
end
end
- def digest(recipient, **opts)
- return unless recipient.user.functional?
-
- @me = recipient
- @since = opts[:since] || [@me.user.last_emailed_at, (@me.user.current_sign_in_at + 1.day)].compact.max
- @notifications_count = Notification.where(account: @me, activity_type: 'Mention').where('created_at > ?', @since).count
-
- return if @notifications_count.zero?
-
- @notifications = Notification.where(account: @me, activity_type: 'Mention').where('created_at > ?', @since).limit(40)
- @follows_since = Notification.where(account: @me, activity_type: 'Follow').where('created_at > ?', @since).count
-
- locale_for_account(@me) do
- mail to: @me.user.email,
- subject: I18n.t(:subject, scope: [:notification_mailer, :digest], count: @notifications_count)
- end
- end
-
private
def thread_by_conversation(conversation)
diff --git a/app/models/account.rb b/app/models/account.rb
index 688e6fabd9..8ff4e59510 100644
--- a/app/models/account.rb
+++ b/app/models/account.rb
@@ -120,7 +120,7 @@ class Account < ApplicationRecord
scope :by_recent_status, -> { order(Arel.sql('(case when account_stats.last_status_at is null then 1 else 0 end) asc, account_stats.last_status_at desc, accounts.id desc')) }
scope :by_recent_sign_in, -> { order(Arel.sql('(case when users.current_sign_in_at is null then 1 else 0 end) asc, users.current_sign_in_at desc, accounts.id desc')) }
scope :popular, -> { order('account_stats.followers_count desc') }
- scope :by_domain_and_subdomains, ->(domain) { where(domain: domain).or(where(arel_table[:domain].matches('%.' + domain))) }
+ scope :by_domain_and_subdomains, ->(domain) { where(domain: domain).or(where(arel_table[:domain].matches("%.#{domain}"))) }
scope :not_excluded_by_account, ->(account) { where.not(id: account.excluded_from_timeline_account_ids) }
scope :not_domain_blocked_by_account, ->(account) { where(arel_table[:domain].eq(nil).or(arel_table[:domain].not_in(account.excluded_from_timeline_domains))) }
@@ -136,11 +136,9 @@ class Account < ApplicationRecord
:unconfirmed?,
:unconfirmed_or_pending?,
:role,
- :admin?,
- :moderator?,
- :staff?,
:locale,
:shows_application?,
+ :prefers_noindex?,
to: :user,
prefix: true,
allow_nil: true
@@ -197,10 +195,6 @@ class Account < ApplicationRecord
"acct:#{local_username_and_domain}"
end
- def searchable?
- !(suspended? || moved?) && (!local? || (approved? && confirmed?))
- end
-
def possibly_stale?
last_webfingered_at.nil? || last_webfingered_at <= 1.day.ago
end
@@ -367,6 +361,10 @@ class Account < ApplicationRecord
username
end
+ def to_log_human_identifier
+ acct
+ end
+
def excluded_from_timeline_account_ids
Rails.cache.fetch("exclude_account_ids_for:#{id}") { block_relationships.pluck(:target_account_id) + blocked_by_relationships.pluck(:account_id) + mute_relationships.pluck(:target_account_id) }
end
@@ -445,7 +443,12 @@ class Account < ApplicationRecord
class << self
DISALLOWED_TSQUERY_CHARACTERS = /['?\\:‘’]/.freeze
- TEXTSEARCH = "(setweight(to_tsvector('simple', accounts.display_name), 'A') || setweight(to_tsvector('simple', accounts.username), 'B') || setweight(to_tsvector('simple', coalesce(accounts.domain, '')), 'C'))"
+ TEXTSEARCH = "(setweight(to_tsvector('simple', accounts.display_name), 'A') || setweight(to_tsvector('simple', accounts.username), 'A') || setweight(to_tsvector('simple', coalesce(accounts.domain, '')), 'C'))"
+
+ REPUTATION_SCORE_FUNCTION = '(greatest(0, coalesce(s.followers_count, 0)) / (greatest(0, coalesce(s.following_count, 0)) + 1.0))'
+ FOLLOWERS_SCORE_FUNCTION = 'log(greatest(0, coalesce(s.followers_count, 0)) + 2)'
+ TIME_DISTANCE_FUNCTION = '(case when s.last_status_at is null then 0 else exp(-1.0 * ((greatest(0, abs(extract(DAY FROM age(s.last_status_at))) - 30.0)^2) / (2.0 * ((-1.0 * 30^2) / (2.0 * ln(0.3)))))) end)'
+ BOOST = "((#{REPUTATION_SCORE_FUNCTION} + #{FOLLOWERS_SCORE_FUNCTION} + #{TIME_DISTANCE_FUNCTION}) / 3.0)"
def readonly_attributes
super - %w(statuses_count following_count followers_count)
@@ -456,15 +459,16 @@ class Account < ApplicationRecord
DeliveryFailureTracker.without_unavailable(urls)
end
- def search_for(terms, limit = 10, offset = 0)
+ def search_for(terms, limit: 10, offset: 0)
tsquery = generate_query_for_search(terms)
sql = <<-SQL.squish
SELECT
accounts.*,
- ts_rank_cd(#{TEXTSEARCH}, to_tsquery('simple', :tsquery), 32) AS rank
+ #{BOOST} * ts_rank_cd(#{TEXTSEARCH}, to_tsquery('simple', :tsquery), 32) AS rank
FROM accounts
LEFT JOIN users ON accounts.id = users.account_id
+ LEFT JOIN account_stats AS s ON accounts.id = s.account_id
WHERE to_tsquery('simple', :tsquery) @@ #{TEXTSEARCH}
AND accounts.suspended_at IS NULL
AND accounts.moved_to_account_id IS NULL
@@ -478,7 +482,7 @@ class Account < ApplicationRecord
records
end
- def advanced_search_for(terms, account, limit = 10, following = false, offset = 0)
+ def advanced_search_for(terms, account, limit: 10, following: false, offset: 0)
tsquery = generate_query_for_search(terms)
sql = advanced_search_for_sql_template(following)
records = find_by_sql([sql, id: account.id, limit: limit, offset: offset, tsquery: tsquery])
@@ -526,14 +530,15 @@ class Account < ApplicationRecord
)
SELECT
accounts.*,
- (count(f.id) + 1) * ts_rank_cd(#{TEXTSEARCH}, to_tsquery('simple', :tsquery), 32) AS rank
+ (count(f.id) + 1) * #{BOOST} * ts_rank_cd(#{TEXTSEARCH}, to_tsquery('simple', :tsquery), 32) AS rank
FROM accounts
LEFT OUTER JOIN follows AS f ON (accounts.id = f.account_id AND f.target_account_id = :id)
+ LEFT JOIN account_stats AS s ON accounts.id = s.account_id
WHERE accounts.id IN (SELECT * FROM first_degree)
AND to_tsquery('simple', :tsquery) @@ #{TEXTSEARCH}
AND accounts.suspended_at IS NULL
AND accounts.moved_to_account_id IS NULL
- GROUP BY accounts.id
+ GROUP BY accounts.id, s.id
ORDER BY rank DESC
LIMIT :limit OFFSET :offset
SQL
@@ -541,15 +546,16 @@ class Account < ApplicationRecord
<<-SQL.squish
SELECT
accounts.*,
- (count(f.id) + 1) * ts_rank_cd(#{TEXTSEARCH}, to_tsquery('simple', :tsquery), 32) AS rank
+ (count(f.id) + 1) * #{BOOST} * ts_rank_cd(#{TEXTSEARCH}, to_tsquery('simple', :tsquery), 32) AS rank
FROM accounts
LEFT OUTER JOIN follows AS f ON (accounts.id = f.account_id AND f.target_account_id = :id) OR (accounts.id = f.target_account_id AND f.account_id = :id)
LEFT JOIN users ON accounts.id = users.account_id
+ LEFT JOIN account_stats AS s ON accounts.id = s.account_id
WHERE to_tsquery('simple', :tsquery) @@ #{TEXTSEARCH}
AND accounts.suspended_at IS NULL
AND accounts.moved_to_account_id IS NULL
AND (accounts.domain IS NOT NULL OR (users.approved = TRUE AND users.confirmed_at IS NOT NULL))
- GROUP BY accounts.id
+ GROUP BY accounts.id, s.id
ORDER BY rank DESC
LIMIT :limit OFFSET :offset
SQL
diff --git a/app/models/account_filter.rb b/app/models/account_filter.rb
index ec309ce093..e214e0bad2 100644
--- a/app/models/account_filter.rb
+++ b/app/models/account_filter.rb
@@ -4,7 +4,7 @@ class AccountFilter
KEYS = %i(
origin
status
- permissions
+ role_ids
username
by_domain
display_name
@@ -26,7 +26,7 @@ class AccountFilter
params.each do |key, value|
next if key.to_s == 'page'
- scope.merge!(scope_for(key, value.to_s.strip)) if value.present?
+ scope.merge!(scope_for(key, value)) if value.present?
end
scope
@@ -38,18 +38,18 @@ class AccountFilter
case key.to_s
when 'origin'
origin_scope(value)
- when 'permissions'
- permissions_scope(value)
+ when 'role_ids'
+ role_scope(value)
when 'status'
status_scope(value)
when 'by_domain'
- Account.where(domain: value)
+ Account.where(domain: value.to_s)
when 'username'
- Account.matches_username(value)
+ Account.matches_username(value.to_s)
when 'display_name'
- Account.matches_display_name(value)
+ Account.matches_display_name(value.to_s)
when 'email'
- accounts_with_users.merge(User.matches_email(value))
+ accounts_with_users.merge(User.matches_email(value.to_s))
when 'ip'
valid_ip?(value) ? accounts_with_users.merge(User.matches_ip(value).group('users.id, accounts.id')) : Account.none
when 'invited_by'
@@ -104,13 +104,8 @@ class AccountFilter
Account.left_joins(user: :invite).merge(Invite.where(user_id: value.to_s))
end
- def permissions_scope(value)
- case value.to_s
- when 'staff'
- accounts_with_users.merge(User.staff)
- else
- raise "Unknown permissions: #{value}"
- end
+ def role_scope(value)
+ accounts_with_users.merge(User.where(role_id: Array(value).map(&:to_s)))
end
def accounts_with_users
@@ -118,7 +113,7 @@ class AccountFilter
end
def valid_ip?(value)
- IPAddr.new(value) && true
+ IPAddr.new(value.to_s) && true
rescue IPAddr::InvalidAddressError
false
end
diff --git a/app/models/account_warning.rb b/app/models/account_warning.rb
index 6067b54b78..961a078b99 100644
--- a/app/models/account_warning.rb
+++ b/app/models/account_warning.rb
@@ -43,4 +43,8 @@ class AccountWarning < ApplicationRecord
def overruled?
overruled_at.present?
end
+
+ def to_log_human_identifier
+ target_account.acct
+ end
end
diff --git a/app/models/admin/account_action.rb b/app/models/admin/account_action.rb
index aed3bc0c7d..bce0d6e179 100644
--- a/app/models/admin/account_action.rb
+++ b/app/models/admin/account_action.rb
@@ -25,6 +25,8 @@ class Admin::AccountAction
alias send_email_notification? send_email_notification
alias include_statuses? include_statuses
+ validates :type, :target_account, :current_account, presence: true
+
def initialize(attributes = {})
@send_email_notification = true
@include_statuses = true
@@ -41,13 +43,15 @@ class Admin::AccountAction
end
def save!
+ raise ActiveRecord::RecordInvalid, self unless valid?
+
ApplicationRecord.transaction do
process_action!
process_strike!
+ process_reports!
end
process_email!
- process_reports!
process_queue!
end
@@ -106,9 +110,8 @@ class Admin::AccountAction
# Otherwise, we will mark all unresolved reports about
# the account as resolved.
- reports.each { |report| authorize(report, :update?) }
-
reports.each do |report|
+ authorize(report, :update?)
log_action(:resolve, report)
report.resolve!(current_account)
end
diff --git a/app/models/admin/action_log.rb b/app/models/admin/action_log.rb
index 401bfd9acc..4fa8008f5c 100644
--- a/app/models/admin/action_log.rb
+++ b/app/models/admin/action_log.rb
@@ -9,38 +9,42 @@
# action :string default(""), not null
# target_type :string
# target_id :bigint(8)
-# recorded_changes :text default(""), not null
# created_at :datetime not null
# updated_at :datetime not null
+# human_identifier :string
+# route_param :string
+# permalink :string
#
class Admin::ActionLog < ApplicationRecord
- serialize :recorded_changes
+ self.ignored_columns = %w(
+ recorded_changes
+ )
belongs_to :account
belongs_to :target, polymorphic: true, optional: true
default_scope -> { order('id desc') }
+ before_validation :set_human_identifier
+ before_validation :set_route_param
+ before_validation :set_permalink
+
def action
super.to_sym
end
- before_validation :set_changes
-
private
- def set_changes
- case action
- when :destroy, :create
- self.recorded_changes = target.attributes
- when :update, :promote, :demote
- self.recorded_changes = target.previous_changes
- when :change_email
- self.recorded_changes = ActiveSupport::HashWithIndifferentAccess.new(
- email: [target.email, nil],
- unconfirmed_email: [nil, target.unconfirmed_email]
- )
- end
+ def set_human_identifier
+ self.human_identifier = target.to_log_human_identifier if target.respond_to?(:to_log_human_identifier)
+ end
+
+ def set_route_param
+ self.route_param = target.to_log_route_param if target.respond_to?(:to_log_route_param)
+ end
+
+ def set_permalink
+ self.permalink = target.to_log_permalink if target.respond_to?(:to_log_permalink)
end
end
diff --git a/app/models/admin/action_log_filter.rb b/app/models/admin/action_log_filter.rb
index 0f2f712a25..c7a7e1a4c3 100644
--- a/app/models/admin/action_log_filter.rb
+++ b/app/models/admin/action_log_filter.rb
@@ -12,6 +12,7 @@ class Admin::ActionLogFilter
reject_appeal: { target_type: 'Appeal', action: 'reject' }.freeze,
assigned_to_self_report: { target_type: 'Report', action: 'assigned_to_self' }.freeze,
change_email_user: { target_type: 'User', action: 'change_email' }.freeze,
+ change_role_user: { target_type: 'User', action: 'change_role' }.freeze,
confirm_user: { target_type: 'User', action: 'confirm' }.freeze,
approve_user: { target_type: 'User', action: 'approve' }.freeze,
reject_user: { target_type: 'User', action: 'reject' }.freeze,
@@ -21,16 +22,22 @@ class Admin::ActionLogFilter
create_domain_allow: { target_type: 'DomainAllow', action: 'create' }.freeze,
create_domain_block: { target_type: 'DomainBlock', action: 'create' }.freeze,
create_email_domain_block: { target_type: 'EmailDomainBlock', action: 'create' }.freeze,
+ create_ip_block: { target_type: 'IpBlock', action: 'create' }.freeze,
create_unavailable_domain: { target_type: 'UnavailableDomain', action: 'create' }.freeze,
+ create_user_role: { target_type: 'UserRole', action: 'create' }.freeze,
+ create_canonical_email_block: { target_type: 'CanonicalEmailBlock', action: 'create' }.freeze,
demote_user: { target_type: 'User', action: 'demote' }.freeze,
destroy_announcement: { target_type: 'Announcement', action: 'destroy' }.freeze,
destroy_custom_emoji: { target_type: 'CustomEmoji', action: 'destroy' }.freeze,
destroy_domain_allow: { target_type: 'DomainAllow', action: 'destroy' }.freeze,
destroy_domain_block: { target_type: 'DomainBlock', action: 'destroy' }.freeze,
+ destroy_ip_block: { target_type: 'IpBlock', action: 'destroy' }.freeze,
destroy_email_domain_block: { target_type: 'EmailDomainBlock', action: 'destroy' }.freeze,
destroy_instance: { target_type: 'Instance', action: 'destroy' }.freeze,
destroy_unavailable_domain: { target_type: 'UnavailableDomain', action: 'destroy' }.freeze,
destroy_status: { target_type: 'Status', action: 'destroy' }.freeze,
+ destroy_user_role: { target_type: 'UserRole', action: 'destroy' }.freeze,
+ destroy_canonical_email_block: { target_type: 'CanonicalEmailBlock', action: 'destroy' }.freeze,
disable_2fa_user: { target_type: 'User', action: 'disable' }.freeze,
disable_custom_emoji: { target_type: 'CustomEmoji', action: 'disable' }.freeze,
disable_user: { target_type: 'User', action: 'disable' }.freeze,
@@ -52,6 +59,8 @@ class Admin::ActionLogFilter
update_announcement: { target_type: 'Announcement', action: 'update' }.freeze,
update_custom_emoji: { target_type: 'CustomEmoji', action: 'update' }.freeze,
update_status: { target_type: 'Status', action: 'update' }.freeze,
+ update_user_role: { target_type: 'UserRole', action: 'update' }.freeze,
+ update_ip_block: { target_type: 'IpBlock', action: 'update' }.freeze,
unblock_email_account: { target_type: 'Account', action: 'unblock_email' }.freeze,
}.freeze
diff --git a/app/models/admin/status_batch_action.rb b/app/models/admin/status_batch_action.rb
index 7bf6fa6daf..0ec4fef82a 100644
--- a/app/models/admin/status_batch_action.rb
+++ b/app/models/admin/status_batch_action.rb
@@ -40,7 +40,7 @@ class Admin::StatusBatchAction
end
def handle_delete!
- statuses.each { |status| authorize(status, :destroy?) }
+ statuses.each { |status| authorize([:admin, status], :destroy?) }
ApplicationRecord.transaction do
statuses.each do |status|
@@ -75,7 +75,7 @@ class Admin::StatusBatchAction
statuses.includes(:media_attachments, :preview_cards).find_each do |status|
next unless status.with_media? || status.with_preview_card?
- authorize(status, :update?)
+ authorize([:admin, status], :update?)
if target_account.local?
UpdateStatusService.new.call(status, representative_account.id, sensitive: true)
diff --git a/app/models/admin/status_filter.rb b/app/models/admin/status_filter.rb
index 4fba612a65..d7a16f760d 100644
--- a/app/models/admin/status_filter.rb
+++ b/app/models/admin/status_filter.rb
@@ -3,7 +3,6 @@
class Admin::StatusFilter
KEYS = %i(
media
- id
report_id
).freeze
@@ -28,12 +27,10 @@ class Admin::StatusFilter
private
- def scope_for(key, value)
+ def scope_for(key, _value)
case key.to_s
when 'media'
Status.joins(:media_attachments).merge(@account.media_attachments.reorder(nil)).group(:id).reorder('statuses.id desc')
- when 'id'
- Status.where(id: value)
else
raise "Unknown filter: #{key}"
end
diff --git a/app/models/announcement.rb b/app/models/announcement.rb
index f8183aabce..4b2cb4c6d0 100644
--- a/app/models/announcement.rb
+++ b/app/models/announcement.rb
@@ -31,9 +31,12 @@ class Announcement < ApplicationRecord
validates :starts_at, presence: true, if: -> { ends_at.present? }
validates :ends_at, presence: true, if: -> { starts_at.present? }
- before_validation :set_all_day
before_validation :set_published, on: :create
+ def to_log_human_identifier
+ text
+ end
+
def publish!
update!(published: true, published_at: Time.now.utc, scheduled_at: nil)
end
@@ -85,10 +88,6 @@ class Announcement < ApplicationRecord
private
- def set_all_day
- self.all_day = false if starts_at.blank? || ends_at.blank?
- end
-
def set_published
return unless scheduled_at.blank? || scheduled_at.past?
diff --git a/app/models/appeal.rb b/app/models/appeal.rb
index 1f32cfa8b2..6fbf60b39e 100644
--- a/app/models/appeal.rb
+++ b/app/models/appeal.rb
@@ -52,6 +52,14 @@ class Appeal < ApplicationRecord
update!(rejected_at: Time.now.utc, rejected_by_account: current_account)
end
+ def to_log_human_identifier
+ account.acct
+ end
+
+ def to_log_route_param
+ account_warning_id
+ end
+
private
def validate_time_frame
diff --git a/app/models/canonical_email_block.rb b/app/models/canonical_email_block.rb
index 94781386c9..1eb69ac67a 100644
--- a/app/models/canonical_email_block.rb
+++ b/app/models/canonical_email_block.rb
@@ -5,27 +5,30 @@
#
# id :bigint(8) not null, primary key
# canonical_email_hash :string default(""), not null
-# reference_account_id :bigint(8) not null
+# reference_account_id :bigint(8)
# created_at :datetime not null
# updated_at :datetime not null
#
class CanonicalEmailBlock < ApplicationRecord
include EmailHelper
+ include Paginable
- belongs_to :reference_account, class_name: 'Account'
+ belongs_to :reference_account, class_name: 'Account', optional: true
validates :canonical_email_hash, presence: true, uniqueness: true
+ scope :matching_email, ->(email) { where(canonical_email_hash: email_to_canonical_email_hash(email)) }
+
+ def to_log_human_identifier
+ canonical_email_hash
+ end
+
def email=(email)
self.canonical_email_hash = email_to_canonical_email_hash(email)
end
def self.block?(email)
- where(canonical_email_hash: email_to_canonical_email_hash(email)).exists?
- end
-
- def self.find_blocks(email)
- where(canonical_email_hash: email_to_canonical_email_hash(email))
+ matching_email(email).exists?
end
end
diff --git a/app/models/concerns/account_interactions.rb b/app/models/concerns/account_interactions.rb
index ad1665dc41..15c49f2fec 100644
--- a/app/models/concerns/account_interactions.rb
+++ b/app/models/concerns/account_interactions.rb
@@ -9,6 +9,7 @@ module AccountInteractions
mapping[follow.target_account_id] = {
reblogs: follow.show_reblogs?,
notify: follow.notify?,
+ languages: follow.languages,
}
end
end
@@ -38,6 +39,7 @@ module AccountInteractions
mapping[follow_request.target_account_id] = {
reblogs: follow_request.show_reblogs?,
notify: follow_request.notify?,
+ languages: follow_request.languages,
}
end
end
@@ -100,12 +102,13 @@ module AccountInteractions
has_many :announcement_mutes, dependent: :destroy
end
- def follow!(other_account, reblogs: nil, notify: nil, uri: nil, rate_limit: false, bypass_limit: false)
- rel = active_relationships.create_with(show_reblogs: reblogs.nil? ? true : reblogs, notify: notify.nil? ? false : notify, uri: uri, rate_limit: rate_limit, bypass_follow_limit: bypass_limit)
+ def follow!(other_account, reblogs: nil, notify: nil, languages: nil, uri: nil, rate_limit: false, bypass_limit: false)
+ rel = active_relationships.create_with(show_reblogs: reblogs.nil? ? true : reblogs, notify: notify.nil? ? false : notify, languages: languages, uri: uri, rate_limit: rate_limit, bypass_follow_limit: bypass_limit)
.find_or_create_by!(target_account: other_account)
- rel.show_reblogs = reblogs unless reblogs.nil?
- rel.notify = notify unless notify.nil?
+ rel.show_reblogs = reblogs unless reblogs.nil?
+ rel.notify = notify unless notify.nil?
+ rel.languages = languages unless languages.nil?
rel.save! if rel.changed?
@@ -114,12 +117,13 @@ module AccountInteractions
rel
end
- def request_follow!(other_account, reblogs: nil, notify: nil, uri: nil, rate_limit: false, bypass_limit: false)
- rel = follow_requests.create_with(show_reblogs: reblogs.nil? ? true : reblogs, notify: notify.nil? ? false : notify, uri: uri, rate_limit: rate_limit, bypass_follow_limit: bypass_limit)
+ def request_follow!(other_account, reblogs: nil, notify: nil, languages: nil, uri: nil, rate_limit: false, bypass_limit: false)
+ rel = follow_requests.create_with(show_reblogs: reblogs.nil? ? true : reblogs, notify: notify.nil? ? false : notify, uri: uri, languages: languages, rate_limit: rate_limit, bypass_follow_limit: bypass_limit)
.find_or_create_by!(target_account: other_account)
- rel.show_reblogs = reblogs unless reblogs.nil?
- rel.notify = notify unless notify.nil?
+ rel.show_reblogs = reblogs unless reblogs.nil?
+ rel.notify = notify unless notify.nil?
+ rel.languages = languages unless languages.nil?
rel.save! if rel.changed?
@@ -247,6 +251,11 @@ module AccountInteractions
account_pins.where(target_account: account).exists?
end
+ def status_matches_filters(status)
+ active_filters = CustomFilter.cached_filters_for(id)
+ CustomFilter.apply_cached_filters(active_filters, status)
+ end
+
def followers_for_local_distribution
followers.local
.joins(:user)
@@ -283,8 +292,7 @@ module AccountInteractions
private
- def remove_potential_friendship(other_account, mutual = false)
+ def remove_potential_friendship(other_account)
PotentialFriendshipTracker.remove(id, other_account.id)
- PotentialFriendshipTracker.remove(other_account.id, id) if mutual
end
end
diff --git a/app/models/concerns/user_roles.rb b/app/models/concerns/user_roles.rb
deleted file mode 100644
index a42b4a1726..0000000000
--- a/app/models/concerns/user_roles.rb
+++ /dev/null
@@ -1,68 +0,0 @@
-# frozen_string_literal: true
-
-module UserRoles
- extend ActiveSupport::Concern
-
- included do
- scope :admins, -> { where(admin: true) }
- scope :moderators, -> { where(moderator: true) }
- scope :staff, -> { admins.or(moderators) }
- end
-
- def staff?
- admin? || moderator?
- end
-
- def role=(value)
- case value
- when 'admin'
- self.admin = true
- self.moderator = false
- when 'moderator'
- self.admin = false
- self.moderator = true
- else
- self.admin = false
- self.moderator = false
- end
- end
-
- def role
- if admin?
- 'admin'
- elsif moderator?
- 'moderator'
- else
- 'user'
- end
- end
-
- def role?(role)
- case role
- when 'user'
- true
- when 'moderator'
- staff?
- when 'admin'
- admin?
- else
- false
- end
- end
-
- def promote!
- if moderator?
- update!(moderator: false, admin: true)
- elsif !admin?
- update!(moderator: true)
- end
- end
-
- def demote!
- if admin?
- update!(admin: false, moderator: true)
- elsif moderator?
- update!(moderator: false)
- end
- end
-end
diff --git a/app/models/content_retention_policy.rb b/app/models/content_retention_policy.rb
new file mode 100644
index 0000000000..b5e922c8c5
--- /dev/null
+++ b/app/models/content_retention_policy.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+class ContentRetentionPolicy
+ def self.current
+ new
+ end
+
+ def media_cache_retention_period
+ retention_period Setting.media_cache_retention_period
+ end
+
+ def content_cache_retention_period
+ retention_period Setting.content_cache_retention_period
+ end
+
+ def backups_retention_period
+ retention_period Setting.backups_retention_period
+ end
+
+ private
+
+ def retention_period(value)
+ value.days if value.is_a?(Integer) && value.positive?
+ end
+end
diff --git a/app/models/custom_emoji.rb b/app/models/custom_emoji.rb
index 196ae02974..9bf9860dbe 100644
--- a/app/models/custom_emoji.rb
+++ b/app/models/custom_emoji.rb
@@ -23,8 +23,8 @@
class CustomEmoji < ApplicationRecord
include Attachmentable
- LOCAL_LIMIT = (ENV['MAX_EMOJI_SIZE'] || 50.kilobytes).to_i
- LIMIT = [LOCAL_LIMIT, (ENV['MAX_REMOTE_EMOJI_SIZE'] || 200.kilobytes).to_i].max
+ LOCAL_LIMIT = (ENV['MAX_EMOJI_SIZE'] || 256.kilobytes).to_i
+ LIMIT = [LOCAL_LIMIT, (ENV['MAX_REMOTE_EMOJI_SIZE'] || 256.kilobytes).to_i].max
SHORTCODE_RE_FRAGMENT = '[a-zA-Z0-9_]{2,}'
@@ -49,7 +49,7 @@ class CustomEmoji < ApplicationRecord
scope :local, -> { where(domain: nil) }
scope :remote, -> { where.not(domain: nil) }
scope :alphabetic, -> { order(domain: :asc, shortcode: :asc) }
- scope :by_domain_and_subdomains, ->(domain) { where(domain: domain).or(where(arel_table[:domain].matches('%.' + domain))) }
+ scope :by_domain_and_subdomains, ->(domain) { where(domain: domain).or(where(arel_table[:domain].matches("%.#{domain}"))) }
scope :listed, -> { local.where(disabled: false).where(visible_in_picker: true) }
remotable_attachment :image, LIMIT
@@ -70,6 +70,10 @@ class CustomEmoji < ApplicationRecord
copy.tap(&:save!)
end
+ def to_log_human_identifier
+ shortcode
+ end
+
class << self
def from_text(text, domain = nil)
return [] if text.blank?
diff --git a/app/models/custom_filter.rb b/app/models/custom_filter.rb
index 8e34767941..da2a914934 100644
--- a/app/models/custom_filter.rb
+++ b/app/models/custom_filter.rb
@@ -3,18 +3,22 @@
#
# Table name: custom_filters
#
-# id :bigint(8) not null, primary key
-# account_id :bigint(8)
-# expires_at :datetime
-# phrase :text default(""), not null
-# context :string default([]), not null, is an Array
-# whole_word :boolean default(TRUE), not null
-# irreversible :boolean default(FALSE), not null
-# created_at :datetime not null
-# updated_at :datetime not null
+# id :bigint(8) not null, primary key
+# account_id :bigint(8)
+# expires_at :datetime
+# phrase :text default(""), not null
+# context :string default([]), not null, is an Array
+# created_at :datetime not null
+# updated_at :datetime not null
+# action :integer default("warn"), not null
#
class CustomFilter < ApplicationRecord
+ self.ignored_columns = %w(whole_word irreversible)
+
+ alias_attribute :title, :phrase
+ alias_attribute :filter_action, :action
+
VALID_CONTEXTS = %w(
home
notifications
@@ -26,16 +30,21 @@ class CustomFilter < ApplicationRecord
include Expireable
include Redisable
+ enum action: [:warn, :hide], _suffix: :action
+
belongs_to :account
+ has_many :keywords, class_name: 'CustomFilterKeyword', foreign_key: :custom_filter_id, inverse_of: :custom_filter, dependent: :destroy
+ has_many :statuses, class_name: 'CustomFilterStatus', foreign_key: :custom_filter_id, inverse_of: :custom_filter, dependent: :destroy
+ accepts_nested_attributes_for :keywords, reject_if: :all_blank, allow_destroy: true
- validates :phrase, :context, presence: true
+ validates :title, :context, presence: true
validate :context_must_be_valid
- validate :irreversible_must_be_within_context
-
- scope :active_irreversible, -> { where(irreversible: true).where(Arel.sql('expires_at IS NULL OR expires_at > NOW()')) }
before_validation :clean_up_contexts
- after_commit :remove_cache
+
+ before_save :prepare_cache_invalidation!
+ before_destroy :prepare_cache_invalidation!
+ after_commit :invalidate_cache!
def expires_in
return @expires_in if defined?(@expires_in)
@@ -44,22 +53,78 @@ class CustomFilter < ApplicationRecord
[30.minutes, 1.hour, 6.hours, 12.hours, 1.day, 1.week].find { |expires_in| expires_in.from_now >= expires_at }
end
- private
+ def irreversible=(value)
+ self.action = value ? :hide : :warn
+ end
- def clean_up_contexts
- self.context = Array(context).map(&:strip).filter_map(&:presence)
+ def irreversible?
+ hide_action?
+ end
+
+ def self.cached_filters_for(account_id)
+ active_filters = Rails.cache.fetch("filters:v3:#{account_id}") do
+ filters_hash = {}
+
+ scope = CustomFilterKeyword.includes(:custom_filter).where(custom_filter: { account_id: account_id }).where(Arel.sql('expires_at IS NULL OR expires_at > NOW()'))
+ scope.to_a.group_by(&:custom_filter).each do |filter, keywords|
+ keywords.map! do |keyword|
+ if keyword.whole_word
+ sb = /\A[[:word:]]/.match?(keyword.keyword) ? '\b' : ''
+ eb = /[[:word:]]\z/.match?(keyword.keyword) ? '\b' : ''
+
+ /(?mix:#{sb}#{Regexp.escape(keyword.keyword)}#{eb})/
+ else
+ /#{Regexp.escape(keyword.keyword)}/i
+ end
+ end
+
+ filters_hash[filter.id] = { keywords: Regexp.union(keywords), filter: filter }
+ end.to_h
+
+ scope = CustomFilterStatus.includes(:custom_filter).where(custom_filter: { account_id: account_id }).where(Arel.sql('expires_at IS NULL OR expires_at > NOW()'))
+ scope.to_a.group_by(&:custom_filter).each do |filter, statuses|
+ filters_hash[filter.id] ||= { filter: filter }
+ filters_hash[filter.id].merge!(status_ids: statuses.map(&:status_id))
+ end
+
+ filters_hash.values.map { |cache| [cache.delete(:filter), cache] }
+ end.to_a
+
+ active_filters.select { |custom_filter, _| !custom_filter.expired? }
+ end
+
+ def self.apply_cached_filters(cached_filters, status)
+ cached_filters.filter_map do |filter, rules|
+ match = rules[:keywords].match(status.proper.searchable_text) if rules[:keywords].present?
+ keyword_matches = [match.to_s] unless match.nil?
+
+ status_matches = [status.id, status.reblog_of_id].compact & rules[:status_ids] if rules[:status_ids].present?
+
+ next if keyword_matches.blank? && status_matches.blank?
+ FilterResultPresenter.new(filter: filter, keyword_matches: keyword_matches, status_matches: status_matches)
+ end
+ end
+
+ def prepare_cache_invalidation!
+ @should_invalidate_cache = true
end
- def remove_cache
- Rails.cache.delete("filters:#{account_id}")
+ def invalidate_cache!
+ return unless @should_invalidate_cache
+ @should_invalidate_cache = false
+
+ Rails.cache.delete("filters:v3:#{account_id}")
redis.publish("timeline:#{account_id}", Oj.dump(event: :filters_changed))
+ redis.publish("timeline:system:#{account_id}", Oj.dump(event: :filters_changed))
end
- def context_must_be_valid
- errors.add(:context, I18n.t('filters.errors.invalid_context')) if context.empty? || context.any? { |c| !VALID_CONTEXTS.include?(c) }
+ private
+
+ def clean_up_contexts
+ self.context = Array(context).map(&:strip).filter_map(&:presence)
end
- def irreversible_must_be_within_context
- errors.add(:irreversible, I18n.t('filters.errors.invalid_irreversible')) if irreversible? && !context.include?('home') && !context.include?('notifications')
+ def context_must_be_valid
+ errors.add(:context, I18n.t('filters.errors.invalid_context')) if context.empty? || context.any? { |c| !VALID_CONTEXTS.include?(c) }
end
end
diff --git a/app/models/custom_filter_keyword.rb b/app/models/custom_filter_keyword.rb
new file mode 100644
index 0000000000..e0d0289ae1
--- /dev/null
+++ b/app/models/custom_filter_keyword.rb
@@ -0,0 +1,34 @@
+# frozen_string_literal: true
+# == Schema Information
+#
+# Table name: custom_filter_keywords
+#
+# id :bigint(8) not null, primary key
+# custom_filter_id :bigint(8) not null
+# keyword :text default(""), not null
+# whole_word :boolean default(TRUE), not null
+# created_at :datetime not null
+# updated_at :datetime not null
+#
+
+class CustomFilterKeyword < ApplicationRecord
+ belongs_to :custom_filter
+
+ validates :keyword, presence: true
+
+ alias_attribute :phrase, :keyword
+
+ before_save :prepare_cache_invalidation!
+ before_destroy :prepare_cache_invalidation!
+ after_commit :invalidate_cache!
+
+ private
+
+ def prepare_cache_invalidation!
+ custom_filter.prepare_cache_invalidation!
+ end
+
+ def invalidate_cache!
+ custom_filter.invalidate_cache!
+ end
+end
diff --git a/app/models/custom_filter_status.rb b/app/models/custom_filter_status.rb
new file mode 100644
index 0000000000..e748d69633
--- /dev/null
+++ b/app/models/custom_filter_status.rb
@@ -0,0 +1,37 @@
+# frozen_string_literal: true
+# == Schema Information
+#
+# Table name: custom_filter_statuses
+#
+# id :bigint(8) not null, primary key
+# custom_filter_id :bigint(8) not null
+# status_id :bigint(8) not null
+# created_at :datetime not null
+# updated_at :datetime not null
+#
+
+class CustomFilterStatus < ApplicationRecord
+ belongs_to :custom_filter
+ belongs_to :status
+
+ validates :status, uniqueness: { scope: :custom_filter }
+ validate :validate_status_access
+
+ before_save :prepare_cache_invalidation!
+ before_destroy :prepare_cache_invalidation!
+ after_commit :invalidate_cache!
+
+ private
+
+ def validate_status_access
+ errors.add(:status_id, :invalid) unless StatusPolicy.new(custom_filter.account, status).show?
+ end
+
+ def prepare_cache_invalidation!
+ custom_filter.prepare_cache_invalidation!
+ end
+
+ def invalidate_cache!
+ custom_filter.invalidate_cache!
+ end
+end
diff --git a/app/models/domain_allow.rb b/app/models/domain_allow.rb
index 2e14fce25e..9e746b9157 100644
--- a/app/models/domain_allow.rb
+++ b/app/models/domain_allow.rb
@@ -11,6 +11,7 @@
#
class DomainAllow < ApplicationRecord
+ include Paginable
include DomainNormalizable
include DomainMaterializable
@@ -18,6 +19,10 @@ class DomainAllow < ApplicationRecord
scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) }
+ def to_log_human_identifier
+ domain
+ end
+
class << self
def allowed?(domain)
!rule_for(domain).nil?
diff --git a/app/models/domain_block.rb b/app/models/domain_block.rb
index a15206b5ef..8e298ac9d7 100644
--- a/app/models/domain_block.rb
+++ b/app/models/domain_block.rb
@@ -28,8 +28,13 @@ class DomainBlock < ApplicationRecord
delegate :count, to: :accounts, prefix: true
scope :matches_domain, ->(value) { where(arel_table[:domain].matches("%#{value}%")) }
- scope :with_user_facing_limitations, -> { where(severity: [:silence, :suspend]).or(where(reject_media: true)) }
- scope :by_severity, -> { order(Arel.sql('(CASE severity WHEN 0 THEN 1 WHEN 1 THEN 2 WHEN 2 THEN 0 END), reject_media, domain')) }
+ scope :with_user_facing_limitations, -> { where(severity: [:silence, :suspend]) }
+ scope :with_limitations, -> { where(severity: [:silence, :suspend]).or(where(reject_media: true)) }
+ scope :by_severity, -> { order(Arel.sql('(CASE severity WHEN 0 THEN 1 WHEN 1 THEN 2 WHEN 2 THEN 0 END), domain')) }
+
+ def to_log_human_identifier
+ domain
+ end
def policies
if suspend?
diff --git a/app/models/email_domain_block.rb b/app/models/email_domain_block.rb
index 0e1e663c10..10a0e51020 100644
--- a/app/models/email_domain_block.rb
+++ b/app/models/email_domain_block.rb
@@ -17,6 +17,7 @@ class EmailDomainBlock < ApplicationRecord
)
include DomainNormalizable
+ include Paginable
belongs_to :parent, class_name: 'EmailDomainBlock', optional: true
has_many :children, class_name: 'EmailDomainBlock', foreign_key: :parent_id, inverse_of: :parent, dependent: :destroy
@@ -26,36 +27,64 @@ class EmailDomainBlock < ApplicationRecord
# Used for adding multiple blocks at once
attr_accessor :other_domains
+ def to_log_human_identifier
+ domain
+ end
+
def history
@history ||= Trends::History.new('email_domain_blocks', id)
end
- def self.block?(domain_or_domains, attempt_ip: nil)
- domains = Array(domain_or_domains).map do |str|
- domain = begin
- if str.include?('@')
- str.split('@', 2).last
- else
- str
- end
- end
+ class Matcher
+ def initialize(domain_or_domains, attempt_ip: nil)
+ @uris = extract_uris(domain_or_domains)
+ @attempt_ip = attempt_ip
+ end
- TagManager.instance.normalize_domain(domain) if domain.present?
- rescue Addressable::URI::InvalidURIError
- nil
+ def match?
+ blocking? || invalid_uri?
end
- # If some of the inputs passed in are invalid, we definitely want to
- # block the attempt, but we also want to register hits against any
- # other valid matches
+ private
- blocked = domains.any?(&:nil?)
+ def invalid_uri?
+ @uris.any?(&:nil?)
+ end
- where(domain: domains).find_each do |block|
- blocked = true
- block.history.add(attempt_ip) if attempt_ip.present?
+ def blocking?
+ blocks = EmailDomainBlock.where(domain: domains_with_variants).order(Arel.sql('char_length(domain) desc'))
+ blocks.each { |block| block.history.add(@attempt_ip) } if @attempt_ip.present?
+ blocks.any?
end
- blocked
+ def domains_with_variants
+ @uris.flat_map do |uri|
+ next if uri.nil?
+
+ segments = uri.normalized_host.split('.')
+
+ segments.map.with_index { |_, i| segments[i..-1].join('.') }
+ end
+ end
+
+ def extract_uris(domain_or_domains)
+ Array(domain_or_domains).map do |str|
+ domain = begin
+ if str.include?('@')
+ str.split('@', 2).last
+ else
+ str
+ end
+ end
+
+ Addressable::URI.new.tap { |u| u.host = domain.strip } if domain.present?
+ rescue Addressable::URI::InvalidURIError, IDN::Idna::IdnaError
+ nil
+ end
+ end
+ end
+
+ def self.block?(domain_or_domains, attempt_ip: nil)
+ Matcher.new(domain_or_domains, attempt_ip: attempt_ip).match?
end
end
diff --git a/app/models/export.rb b/app/models/export.rb
index 5216eed5ea..2457dcc156 100644
--- a/app/models/export.rb
+++ b/app/models/export.rb
@@ -30,9 +30,9 @@ class Export
end
def to_following_accounts_csv
- CSV.generate(headers: ['Account address', 'Show boosts'], write_headers: true) do |csv|
+ CSV.generate(headers: ['Account address', 'Show boosts', 'Notify on new posts', 'Languages'], write_headers: true) do |csv|
account.active_relationships.includes(:target_account).reorder(id: :desc).each do |follow|
- csv << [acct(follow.target_account), follow.show_reblogs]
+ csv << [acct(follow.target_account), follow.show_reblogs, follow.notify, follow.languages&.join(', ')]
end
end
end
diff --git a/app/models/extended_description.rb b/app/models/extended_description.rb
new file mode 100644
index 0000000000..6e5c0d1b6a
--- /dev/null
+++ b/app/models/extended_description.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class ExtendedDescription < ActiveModelSerializers::Model
+ attributes :updated_at, :text
+
+ def self.current
+ custom = Setting.find_by(var: 'site_extended_description')
+
+ if custom&.value.present?
+ new(text: custom.value, updated_at: custom.updated_at)
+ else
+ new
+ end
+ end
+end
diff --git a/app/models/featured_tag.rb b/app/models/featured_tag.rb
index 74d62e7778..d4ed743025 100644
--- a/app/models/featured_tag.rb
+++ b/app/models/featured_tag.rb
@@ -13,17 +13,31 @@
#
class FeaturedTag < ApplicationRecord
- belongs_to :account, inverse_of: :featured_tags, required: true
- belongs_to :tag, inverse_of: :featured_tags, required: true
+ belongs_to :account, inverse_of: :featured_tags
+ belongs_to :tag, inverse_of: :featured_tags, optional: true # Set after validation
- delegate :name, to: :tag, allow_nil: true
-
- validates_associated :tag, on: :create
- validates :name, presence: true, on: :create
+ validate :validate_tag_name, on: :create
validate :validate_featured_tags_limit, on: :create
- def name=(str)
- self.tag = Tag.find_or_create_by_names(str.strip)&.first
+ before_validation :strip_name
+
+ before_create :set_tag
+ before_create :reset_data
+
+ scope :by_name, ->(name) { joins(:tag).where(tag: { name: HashtagNormalizer.new.normalize(name) }) }
+
+ delegate :display_name, to: :tag
+
+ attr_writer :name
+
+ LIMIT = 10
+
+ def sign?
+ true
+ end
+
+ def name
+ tag_id.present? ? tag.name : @name
end
def increment(timestamp)
@@ -34,14 +48,30 @@ class FeaturedTag < ApplicationRecord
update(statuses_count: [0, statuses_count - 1].max, last_status_at: account.statuses.where(visibility: %i(public unlisted)).tagged_with(tag).where.not(id: deleted_status_id).select(:created_at).first&.created_at)
end
+ private
+
+ def strip_name
+ return unless defined?(@name)
+
+ @name = @name&.strip&.gsub(/\A#/, '')
+ end
+
+ def set_tag
+ self.tag = Tag.find_or_create_by_names(@name)&.first
+ end
+
def reset_data
self.statuses_count = account.statuses.where(visibility: %i(public unlisted)).tagged_with(tag).count
self.last_status_at = account.statuses.where(visibility: %i(public unlisted)).tagged_with(tag).select(:created_at).first&.created_at
end
- private
-
def validate_featured_tags_limit
- errors.add(:base, I18n.t('featured_tags.errors.limit')) if account.featured_tags.count >= 10
+ errors.add(:base, I18n.t('featured_tags.errors.limit')) if account.featured_tags.count >= LIMIT
+ end
+
+ def validate_tag_name
+ errors.add(:name, :blank) if @name.blank?
+ errors.add(:name, :invalid) unless @name.match?(/\A(#{Tag::HASHTAG_NAME_RE})\z/i)
+ errors.add(:name, :taken) if FeaturedTag.by_name(@name).where(account_id: account_id).exists?
end
end
diff --git a/app/models/follow.rb b/app/models/follow.rb
index a5e3fe8099..e5cecbbc1d 100644
--- a/app/models/follow.rb
+++ b/app/models/follow.rb
@@ -11,6 +11,7 @@
# show_reblogs :boolean default(TRUE), not null
# uri :string
# notify :boolean default(FALSE), not null
+# languages :string is an Array
#
class Follow < ApplicationRecord
@@ -27,6 +28,7 @@ class Follow < ApplicationRecord
has_one :notification, as: :activity, dependent: :destroy
validates :account_id, uniqueness: { scope: :target_account_id }
+ validates :languages, language: true
scope :recent, -> { reorder(id: :desc) }
@@ -35,7 +37,7 @@ class Follow < ApplicationRecord
end
def revoke_request!
- FollowRequest.create!(account: account, target_account: target_account, show_reblogs: show_reblogs, notify: notify, uri: uri)
+ FollowRequest.create!(account: account, target_account: target_account, show_reblogs: show_reblogs, notify: notify, languages: languages, uri: uri)
destroy!
end
diff --git a/app/models/follow_request.rb b/app/models/follow_request.rb
index 0b6f7629af..9034250c0d 100644
--- a/app/models/follow_request.rb
+++ b/app/models/follow_request.rb
@@ -11,6 +11,7 @@
# show_reblogs :boolean default(TRUE), not null
# uri :string
# notify :boolean default(FALSE), not null
+# languages :string is an Array
#
class FollowRequest < ApplicationRecord
@@ -27,9 +28,10 @@ class FollowRequest < ApplicationRecord
has_one :notification, as: :activity, dependent: :destroy
validates :account_id, uniqueness: { scope: :target_account_id }
+ validates :languages, language: true
def authorize!
- account.follow!(target_account, reblogs: show_reblogs, notify: notify, uri: uri, bypass_limit: true)
+ account.follow!(target_account, reblogs: show_reblogs, notify: notify, languages: languages, uri: uri, bypass_limit: true)
MergeWorker.perform_async(target_account.id, account.id) if account.local?
destroy!
end
diff --git a/app/models/form/account_batch.rb b/app/models/form/account_batch.rb
index dcf1558403..5cfcf7205b 100644
--- a/app/models/form/account_batch.rb
+++ b/app/models/form/account_batch.rb
@@ -6,7 +6,8 @@ class Form::AccountBatch
include AccountableConcern
include Payloadable
- attr_accessor :account_ids, :action, :current_account
+ attr_accessor :account_ids, :action, :current_account,
+ :select_all_matching, :query
def save
case action
@@ -60,7 +61,11 @@ class Form::AccountBatch
end
def accounts
- Account.where(id: account_ids)
+ if select_all_matching?
+ query
+ else
+ Account.where(id: account_ids)
+ end
end
def approve!
@@ -101,7 +106,7 @@ class Form::AccountBatch
def reject_account(account)
authorize(account.user, :reject?)
- log_action(:reject, account.user, username: account.username)
+ log_action(:reject, account.user)
account.suspend!(origin: :local)
AccountDeletionWorker.perform_async(account.id, { 'reserve_username' => false })
end
@@ -118,4 +123,8 @@ class Form::AccountBatch
log_action(:approve, account.user)
account.user.approve!
end
+
+ def select_all_matching?
+ select_all_matching == '1'
+ end
end
diff --git a/app/models/form/admin_settings.rb b/app/models/form/admin_settings.rb
index 5627f8a844..b53a82db22 100644
--- a/app/models/form/admin_settings.rb
+++ b/app/models/form/admin_settings.rb
@@ -8,28 +8,22 @@ class Form::AdminSettings
site_contact_email
site_title
site_short_description
- site_description
site_extended_description
site_terms
registrations_mode
closed_registrations_message
- open_deletion
timeline_preview
- show_staff_badge
bootstrap_timeline_accounts
flavour
skin
- min_invite_role
activity_api_enabled
peers_api_enabled
- show_known_fediverse_at_about_page
preview_sensitive_media
custom_css
profile_directory
hide_followers_count
flavour_and_skin
thumbnail
- hero
mascot
show_reblogs_in_public_timelines
show_replies_in_public_timelines
@@ -42,15 +36,21 @@ class Form::AdminSettings
outgoing_spoilers
require_invite_text
captcha_enabled
+ media_cache_retention_period
+ content_cache_retention_period
+ backups_retention_period
+ ).freeze
+
+ INTEGER_KEYS = %i(
+ media_cache_retention_period
+ content_cache_retention_period
+ backups_retention_period
).freeze
BOOLEAN_KEYS = %i(
- open_deletion
timeline_preview
- show_staff_badge
activity_api_enabled
peers_api_enabled
- show_known_fediverse_at_about_page
preview_sensitive_media
profile_directory
hide_followers_count
@@ -66,7 +66,6 @@ class Form::AdminSettings
UPLOAD_KEYS = %i(
thumbnail
- hero
mascot
).freeze
@@ -76,34 +75,49 @@ class Form::AdminSettings
attr_accessor(*KEYS)
- validates :site_short_description, :site_description, html: { wrap_with: :p }
- validates :site_extended_description, :site_terms, :closed_registrations_message, html: true
- validates :registrations_mode, inclusion: { in: %w(open approved none) }
- validates :min_invite_role, inclusion: { in: %w(disabled user moderator admin) }
- validates :site_contact_email, :site_contact_username, presence: true
- validates :site_contact_username, existing_username: true
- validates :bootstrap_timeline_accounts, existing_username: { multiple: true }
- validates :show_domain_blocks, inclusion: { in: %w(disabled users all) }
- validates :show_domain_blocks_rationale, inclusion: { in: %w(disabled users all) }
-
- def initialize(_attributes = {})
- super
- initialize_attributes
+ validates :registrations_mode, inclusion: { in: %w(open approved none) }, if: -> { defined?(@registrations_mode) }
+ validates :site_contact_email, :site_contact_username, presence: true, if: -> { defined?(@site_contact_username) || defined?(@site_contact_email) }
+ validates :site_contact_username, existing_username: true, if: -> { defined?(@site_contact_username) }
+ validates :bootstrap_timeline_accounts, existing_username: { multiple: true }, if: -> { defined?(@bootstrap_timeline_accounts) }
+ validates :show_domain_blocks, inclusion: { in: %w(disabled users all) }, if: -> { defined?(@show_domain_blocks) }
+ validates :show_domain_blocks_rationale, inclusion: { in: %w(disabled users all) }, if: -> { defined?(@show_domain_blocks_rationale) }
+ validates :media_cache_retention_period, :content_cache_retention_period, :backups_retention_period, numericality: { only_integer: true }, allow_blank: true, if: -> { defined?(@media_cache_retention_period) || defined?(@content_cache_retention_period) || defined?(@backups_retention_period) }
+ validates :site_short_description, length: { maximum: 200 }, if: -> { defined?(@site_short_description) }
+
+ KEYS.each do |key|
+ define_method(key) do
+ return instance_variable_get("@#{key}") if instance_variable_defined?("@#{key}")
+
+ stored_value = begin
+ if UPLOAD_KEYS.include?(key)
+ SiteUpload.where(var: key).first_or_initialize(var: key)
+ else
+ Setting.public_send(key)
+ end
+ end
+
+ instance_variable_set("@#{key}", stored_value)
+ end
+ end
+
+ UPLOAD_KEYS.each do |key|
+ define_method("#{key}=") do |file|
+ value = public_send(key)
+ value.file = file
+ end
end
def save
return false unless valid?
KEYS.each do |key|
- next if PSEUDO_KEYS.include?(key)
- value = instance_variable_get("@#{key}")
+ next if PSEUDO_KEYS.include?(key) || !instance_variable_defined?("@#{key}")
- if UPLOAD_KEYS.include?(key) && !value.nil?
- upload = SiteUpload.where(var: key).first_or_initialize(var: key)
- upload.update(file: value)
+ if UPLOAD_KEYS.include?(key)
+ public_send(key).save
else
setting = Setting.where(var: key).first_or_initialize(var: key)
- setting.update(value: typecast_value(key, value))
+ setting.update(value: typecast_value(key, instance_variable_get("@#{key}")))
end
end
end
@@ -118,16 +132,11 @@ class Form::AdminSettings
private
- def initialize_attributes
- KEYS.each do |key|
- next if PSEUDO_KEYS.include?(key)
- instance_variable_set("@#{key}", Setting.public_send(key)) if instance_variable_get("@#{key}").nil?
- end
- end
-
def typecast_value(key, value)
if BOOLEAN_KEYS.include?(key)
value == '1'
+ elsif INTEGER_KEYS.include?(key)
+ value.blank? ? value : Integer(value)
else
value
end
diff --git a/app/models/form/redirect.rb b/app/models/form/redirect.rb
index 19ee9faedd..795fdd057b 100644
--- a/app/models/form/redirect.rb
+++ b/app/models/form/redirect.rb
@@ -31,7 +31,7 @@ class Form::Redirect
private
def set_target_account
- @target_account = ResolveAccountService.new.call(acct)
+ @target_account = ResolveAccountService.new.call(acct, skip_cache: true)
rescue Webfinger::Error, HTTP::Error, OpenSSL::SSL::SSLError, Mastodon::Error
# Validation will take care of it
end
diff --git a/app/models/form/status_filter_batch_action.rb b/app/models/form/status_filter_batch_action.rb
new file mode 100644
index 0000000000..d87bd5cc4d
--- /dev/null
+++ b/app/models/form/status_filter_batch_action.rb
@@ -0,0 +1,34 @@
+# frozen_string_literal: true
+
+class Form::StatusFilterBatchAction
+ include ActiveModel::Model
+ include AccountableConcern
+ include Authorization
+
+ attr_accessor :current_account, :type,
+ :status_filter_ids, :filter_id
+
+ def save!
+ process_action!
+ end
+
+ private
+
+ def status_filters
+ filter = current_account.custom_filters.find(filter_id)
+ filter.statuses.where(id: status_filter_ids)
+ end
+
+ def process_action!
+ return if status_filter_ids.empty?
+
+ case type
+ when 'remove'
+ handle_remove!
+ end
+ end
+
+ def handle_remove!
+ status_filters.destroy_all
+ end
+end
diff --git a/app/models/instance.rb b/app/models/instance.rb
index 36110ee400..edbf02a6d1 100644
--- a/app/models/instance.rb
+++ b/app/models/instance.rb
@@ -48,6 +48,8 @@ class Instance < ApplicationRecord
domain
end
+ alias to_log_human_identifier to_param
+
delegate :exhausted_deliveries_days, to: :delivery_failure_tracker
def availability_over_days(num_days, end_date = Time.now.utc.to_date)
diff --git a/app/models/ip_block.rb b/app/models/ip_block.rb
index aedd3ca0d4..31343f0e11 100644
--- a/app/models/ip_block.rb
+++ b/app/models/ip_block.rb
@@ -16,16 +16,23 @@ class IpBlock < ApplicationRecord
CACHE_KEY = 'blocked_ips'
include Expireable
+ include Paginable
enum severity: {
sign_up_requires_approval: 5000,
+ sign_up_block: 5500,
no_access: 9999,
}
validates :ip, :severity, presence: true
+ validates :ip, uniqueness: true
after_commit :reset_cache
+ def to_log_human_identifier
+ "#{ip}/#{ip.prefix}"
+ end
+
class << self
def blocked?(remote_ip)
blocked_ips_map = Rails.cache.fetch(CACHE_KEY) { FastIpMap.new(IpBlock.where(severity: :no_access).pluck(:ip)) }
diff --git a/app/models/media_attachment.rb b/app/models/media_attachment.rb
index ef269c6593..69feffbf0c 100644
--- a/app/models/media_attachment.rb
+++ b/app/models/media_attachment.rb
@@ -58,7 +58,7 @@ class MediaAttachment < ApplicationRecord
IMAGE_MIME_TYPES = %w(image/jpeg image/png image/gif image/webp).freeze
VIDEO_MIME_TYPES = %w(video/webm video/mp4 video/quicktime video/ogg).freeze
VIDEO_CONVERTIBLE_MIME_TYPES = %w(video/webm video/quicktime).freeze
- AUDIO_MIME_TYPES = %w(audio/wave audio/wav audio/x-wav audio/x-pn-wave audio/ogg audio/vorbis audio/mpeg audio/mp3 audio/webm audio/flac audio/aac audio/m4a audio/x-m4a audio/mp4 audio/3gpp video/x-ms-asf).freeze
+ AUDIO_MIME_TYPES = %w(audio/wave audio/wav audio/x-wav audio/x-pn-wave audio/vnd.wave audio/ogg audio/vorbis audio/mpeg audio/mp3 audio/webm audio/flac audio/aac audio/m4a audio/x-m4a audio/mp4 audio/3gpp video/x-ms-asf).freeze
BLURHASH_OPTIONS = {
x_comp: 4,
diff --git a/app/models/notification.rb b/app/models/notification.rb
index ba94b54d12..bbc63c1c05 100644
--- a/app/models/notification.rb
+++ b/app/models/notification.rb
@@ -37,6 +37,7 @@ class Notification < ApplicationRecord
poll
update
admin.sign_up
+ admin.report
).freeze
TARGET_STATUS_INCLUDES_BY_TYPE = {
@@ -46,6 +47,7 @@ class Notification < ApplicationRecord
favourite: [favourite: :status],
poll: [poll: :status],
update: :status,
+ 'admin.report': [report: :target_account],
}.freeze
belongs_to :account, optional: true
@@ -58,6 +60,7 @@ class Notification < ApplicationRecord
belongs_to :follow_request, foreign_key: 'activity_id', optional: true
belongs_to :favourite, foreign_key: 'activity_id', optional: true
belongs_to :poll, foreign_key: 'activity_id', optional: true
+ belongs_to :report, foreign_key: 'activity_id', optional: true
validates :type, inclusion: { in: TYPES }
@@ -146,7 +149,7 @@ class Notification < ApplicationRecord
return unless new_record?
case activity_type
- when 'Status', 'Follow', 'Favourite', 'FollowRequest', 'Poll'
+ when 'Status', 'Follow', 'Favourite', 'FollowRequest', 'Poll', 'Report'
self.from_account_id = activity&.account_id
when 'Mention'
self.from_account_id = activity&.status&.account_id
diff --git a/app/models/preview_card.rb b/app/models/preview_card.rb
index c49c51a1be..b5d3f9c8fe 100644
--- a/app/models/preview_card.rb
+++ b/app/models/preview_card.rb
@@ -48,6 +48,7 @@ class PreviewCard < ApplicationRecord
enum link_type: [:unknown, :article]
has_and_belongs_to_many :statuses
+ has_one :trend, class_name: 'PreviewCardTrend', inverse_of: :preview_card, dependent: :destroy
has_attached_file :image, processors: [:thumbnail, :blurhash_transcoder], styles: ->(f) { image_styles(f) }, convert_options: { all: '-quality 80 -strip' }, validate_media_type: false
diff --git a/app/models/preview_card_trend.rb b/app/models/preview_card_trend.rb
new file mode 100644
index 0000000000..018400dfa9
--- /dev/null
+++ b/app/models/preview_card_trend.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+# == Schema Information
+#
+# Table name: preview_card_trends
+#
+# id :bigint(8) not null, primary key
+# preview_card_id :bigint(8) not null
+# score :float default(0.0), not null
+# rank :integer default(0), not null
+# allowed :boolean default(FALSE), not null
+# language :string
+#
+class PreviewCardTrend < ApplicationRecord
+ belongs_to :preview_card
+ scope :allowed, -> { where(allowed: true) }
+end
diff --git a/app/models/privacy_policy.rb b/app/models/privacy_policy.rb
new file mode 100644
index 0000000000..36cbf18822
--- /dev/null
+++ b/app/models/privacy_policy.rb
@@ -0,0 +1,77 @@
+# frozen_string_literal: true
+
+class PrivacyPolicy < ActiveModelSerializers::Model
+ DEFAULT_PRIVACY_POLICY = <<~TXT
+ This privacy policy describes how %{domain} ("%{domain}", "we", "us") collects, protects and uses the personally identifiable information you may provide through the %{domain} website or its API. The policy also describes the choices available to you regarding our use of your personal information and how you can access and update this information. This policy does not apply to the practices of companies that %{domain} does not own or control, or to individuals that %{domain} does not employ or manage.
+
+ # What information do we collect?
+
+ - **Basic account information**: If you register on this server, you may be asked to enter a username, an e-mail address and a password. You may also enter additional profile information such as a display name and biography, and upload a profile picture and header image. The username, display name, biography, profile picture and header image are always listed publicly.
+ - **Posts, following and other public information**: The list of people you follow is listed publicly, the same is true for your followers. When you submit a message, the date and time is stored as well as the application you submitted the message from. Messages may contain media attachments, such as pictures and videos. Public and unlisted posts are available publicly. When you feature a post on your profile, that is also publicly available information. Your posts are delivered to your followers, in some cases it means they are delivered to different servers and copies are stored there. When you delete posts, this is likewise delivered to your followers. The action of reblogging or favouriting another post is always public.
+ - **Direct and followers-only posts**: All posts are stored and processed on the server. Followers-only posts are delivered to your followers and users who are mentioned in them, and direct posts are delivered only to users mentioned in them. In some cases it means they are delivered to different servers and copies are stored there. We make a good faith effort to limit the access to those posts only to authorized persons, but other servers may fail to do so. Therefore it's important to review servers your followers belong to. You may toggle an option to approve and reject new followers manually in the settings. **Please keep in mind that the operators of the server and any receiving server may view such messages**, and that recipients may screenshot, copy or otherwise re-share them. **Do not share any sensitive information over Mastodon.**
+ - **IPs and other metadata**: When you log in, we record the IP address you log in from, as well as the name of your browser application. All the logged in sessions are available for your review and revocation in the settings. The latest IP address used is stored for up to 12 months. We also may retain server logs which include the IP address of every request to our server.
+
+ # What do we use your information for?
+
+ Any of the information we collect from you may be used in the following ways:
+
+ - To provide the core functionality of Mastodon. You can only interact with other people's content and post your own content when you are logged in. For example, you may follow other people to view their combined posts in your own personalized home timeline.
+ - To aid moderation of the community, for example comparing your IP address with other known ones to determine ban evasion or other violations.
+ - The email address you provide may be used to send you information, notifications about other people interacting with your content or sending you messages, and to respond to inquiries, and/or other requests or questions.
+
+ # How do we protect your information?
+
+ We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL, and your password is hashed using a strong one-way algorithm. You may enable two-factor authentication to further secure access to your account.
+
+ # What is our data retention policy?
+
+ We will make a good faith effort to:
+
+ - Retain server logs containing the IP address of all requests to this server, in so far as such logs are kept, no more than 90 days.
+ - Retain the IP addresses associated with registered users no more than 12 months.
+
+ You can request and download an archive of your content, including your posts, media attachments, profile picture, and header image.
+
+ You may irreversibly delete your account at any time.
+
+ # Do we use cookies?
+
+ Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.
+
+ We use cookies to understand and save your preferences for future visits.
+
+ # Do we disclose any information to outside parties?
+
+ We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety.
+
+ Your public content may be downloaded by other servers in the network. Your public and followers-only posts are delivered to the servers where your followers reside, and direct messages are delivered to the servers of the recipients, in so far as those followers or recipients reside on a different server than this.
+
+ When you authorize an application to use your account, depending on the scope of permissions you approve, it may access your public profile information, your following list, your followers, your lists, all your posts, and your favourites. Applications can never access your e-mail address or password.
+
+ # Site usage by children
+
+ If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (General Data Protection Regulation) do not use this site.
+
+ If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (Children's Online Privacy Protection Act) do not use this site.
+
+ Law requirements can be different if this server is in another jurisdiction.
+
+ ___
+
+ This document is CC-BY-SA. Originally adapted from the [Discourse privacy policy](https://github.com/discourse/discourse).
+ TXT
+
+ DEFAULT_UPDATED_AT = DateTime.new(2022, 10, 7).freeze
+
+ attributes :updated_at, :text
+
+ def self.current
+ custom = Setting.find_by(var: 'site_terms')
+
+ if custom&.value.present?
+ new(text: custom.value, updated_at: custom.updated_at)
+ else
+ new(text: DEFAULT_PRIVACY_POLICY, updated_at: DEFAULT_UPDATED_AT)
+ end
+ end
+end
diff --git a/app/models/public_feed.rb b/app/models/public_feed.rb
index 2528ef1b6f..bc8281ef2e 100644
--- a/app/models/public_feed.rb
+++ b/app/models/public_feed.rb
@@ -9,6 +9,7 @@ class PublicFeed
# @option [Boolean] :remote
# @option [Boolean] :only_media
# @option [Boolean] :allow_local_only
+ # @option [String] :locale
def initialize(account, options = {})
@account = account
@options = options
@@ -29,6 +30,7 @@ class PublicFeed
scope.merge!(remote_only_scope) if remote_only?
scope.merge!(account_filters_scope) if account?
scope.merge!(media_only_scope) if media_only?
+ scope.merge!(language_scope)
scope.cache_ids.to_a_paginated_by_id(limit, max_id: max_id, since_id: since_id, min_id: min_id)
end
@@ -97,10 +99,19 @@ class PublicFeed
Status.not_local_only
end
+ def language_scope
+ if account&.chosen_languages.present?
+ Status.where(language: account.chosen_languages)
+ elsif @options[:locale].present?
+ Status.where(language: @options[:locale])
+ else
+ Status.all
+ end
+ end
+
def account_filters_scope
Status.not_excluded_by_account(account).tap do |scope|
scope.merge!(Status.not_domain_blocked_by_account(account)) unless local_only?
- scope.merge!(Status.in_chosen_languages(account)) if account.chosen_languages.present?
end
end
end
diff --git a/app/models/report.rb b/app/models/report.rb
index 2efb6d4a77..525d22ad5d 100644
--- a/app/models/report.rb
+++ b/app/models/report.rb
@@ -33,6 +33,7 @@ class Report < ApplicationRecord
belongs_to :assigned_account, class_name: 'Account', optional: true
has_many :notes, class_name: 'ReportNote', foreign_key: :report_id, inverse_of: :report, dependent: :destroy
+ has_many :notifications, as: :activity, dependent: :destroy
scope :unresolved, -> { where(action_taken_at: nil) }
scope :resolved, -> { where.not(action_taken_at: nil) }
@@ -115,6 +116,10 @@ class Report < ApplicationRecord
Report.where.not(id: id).where(target_account_id: target_account_id).unresolved.exists?
end
+ def to_log_human_identifier
+ id
+ end
+
def history
subquery = [
Admin::ActionLog.where(
@@ -136,6 +141,8 @@ class Report < ApplicationRecord
Admin::ActionLog.from(Arel::Nodes::As.new(subquery, Admin::ActionLog.arel_table))
end
+ private
+
def set_uri
self.uri = ActivityPub::TagManager.instance.generate_uri_for(self) if uri.nil? && account.local?
end
diff --git a/app/models/site_upload.rb b/app/models/site_upload.rb
index cf10b30fc9..d3b81d4d52 100644
--- a/app/models/site_upload.rb
+++ b/app/models/site_upload.rb
@@ -12,10 +12,35 @@
# meta :json
# created_at :datetime not null
# updated_at :datetime not null
+# blurhash :string
#
class SiteUpload < ApplicationRecord
- has_attached_file :file
+ include Attachmentable
+
+ STYLES = {
+ thumbnail: {
+ '@1x': {
+ format: 'png',
+ geometry: '1200x630#',
+ file_geometry_parser: FastGeometryParser,
+ blurhash: {
+ x_comp: 4,
+ y_comp: 4,
+ }.freeze,
+ },
+
+ '@2x': {
+ format: 'png',
+ geometry: '2400x1260#',
+ file_geometry_parser: FastGeometryParser,
+ }.freeze,
+ }.freeze,
+
+ mascot: {}.freeze,
+ }.freeze
+
+ has_attached_file :file, styles: ->(file) { STYLES[file.instance.var.to_sym] }, convert_options: { all: '-coalesce -strip' }, processors: [:lazy_thumbnail, :blurhash_transcoder, :type_corrector]
validates_attachment_content_type :file, content_type: /\Aimage\/.*\z/
validates :file, presence: true
diff --git a/app/models/status.rb b/app/models/status.rb
index 3efa23ae21..745a1401c0 100644
--- a/app/models/status.rb
+++ b/app/models/status.rb
@@ -77,6 +77,7 @@ class Status < ApplicationRecord
has_one :notification, as: :activity, dependent: :destroy
has_one :status_stat, inverse_of: :status
has_one :poll, inverse_of: :status, dependent: :destroy
+ has_one :trend, class_name: 'StatusTrend', inverse_of: :status
validates :uri, uniqueness: true, presence: true, unless: :local?
validates :text, presence: true, unless: -> { with_media? || reblog? }
@@ -98,7 +99,6 @@ class Status < ApplicationRecord
scope :without_reblogs, -> { where('statuses.reblog_of_id IS NULL') }
scope :with_public_visibility, -> { where(visibility: :public) }
scope :tagged_with, ->(tag_ids) { joins(:statuses_tags).where(statuses_tags: { tag_id: tag_ids }) }
- scope :in_chosen_languages, ->(account) { where(language: nil).or where(language: account.chosen_languages) }
scope :excluding_silenced_accounts, -> { left_outer_joins(:account).where(accounts: { silenced_at: nil }) }
scope :including_silenced_accounts, -> { left_outer_joins(:account).where.not(accounts: { silenced_at: nil }) }
scope :not_excluded_by_account, ->(account) { where.not(account_id: account.excluded_from_timeline_account_ids) }
@@ -171,6 +171,14 @@ class Status < ApplicationRecord
].compact.join("\n\n")
end
+ def to_log_human_identifier
+ account.acct
+ end
+
+ def to_log_permalink
+ ActivityPub::TagManager.instance.uri_for(self)
+ end
+
def reply?
!in_reply_to_id.nil? || attributes['reply']
end
diff --git a/app/models/status_edit.rb b/app/models/status_edit.rb
index 33528eb0d9..c2330c04fa 100644
--- a/app/models/status_edit.rb
+++ b/app/models/status_edit.rb
@@ -31,7 +31,7 @@ class StatusEdit < ApplicationRecord
:preview_remote_url, :text_url, :meta, :blurhash,
:not_processed?, :needs_redownload?, :local?,
:file, :thumbnail, :thumbnail_remote_url,
- :shortcode, to: :media_attachment
+ :shortcode, :video?, :audio?, to: :media_attachment
end
rate_limit by: :account, family: :statuses
@@ -41,7 +41,8 @@ class StatusEdit < ApplicationRecord
default_scope { order(id: :asc) }
- delegate :local?, to: :status
+ delegate :local?, :application, :edited?, :edited_at,
+ :discarded?, :visibility, to: :status
def emojis
return @emojis if defined?(@emojis)
@@ -60,4 +61,12 @@ class StatusEdit < ApplicationRecord
end
end
end
+
+ def proper
+ self
+ end
+
+ def reblog?
+ false
+ end
end
diff --git a/app/models/status_trend.rb b/app/models/status_trend.rb
new file mode 100644
index 0000000000..b0f1b6942d
--- /dev/null
+++ b/app/models/status_trend.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+# == Schema Information
+#
+# Table name: status_trends
+#
+# id :bigint(8) not null, primary key
+# status_id :bigint(8) not null
+# account_id :bigint(8) not null
+# score :float default(0.0), not null
+# rank :integer default(0), not null
+# allowed :boolean default(FALSE), not null
+# language :string
+#
+
+class StatusTrend < ApplicationRecord
+ belongs_to :status
+ belongs_to :account
+
+ scope :allowed, -> { joins('INNER JOIN (SELECT account_id, MAX(score) AS max_score FROM status_trends GROUP BY account_id) AS grouped_status_trends ON status_trends.account_id = grouped_status_trends.account_id AND status_trends.score = grouped_status_trends.max_score').where(allowed: true) }
+end
diff --git a/app/models/tag.rb b/app/models/tag.rb
index a640426149..8929baf66f 100644
--- a/app/models/tag.rb
+++ b/app/models/tag.rb
@@ -15,20 +15,25 @@
# last_status_at :datetime
# max_score :float
# max_score_at :datetime
+# display_name :string
#
class Tag < ApplicationRecord
has_and_belongs_to_many :statuses
has_and_belongs_to_many :accounts
+ has_many :passive_relationships, class_name: 'TagFollow', inverse_of: :tag, dependent: :destroy
has_many :featured_tags, dependent: :destroy, inverse_of: :tag
+ has_many :followers, through: :passive_relationships, source: :account
HASHTAG_SEPARATORS = "_\u00B7\u200c"
HASHTAG_NAME_RE = "([[:word:]_][[:word:]#{HASHTAG_SEPARATORS}]*[[:alpha:]#{HASHTAG_SEPARATORS}][[:word:]#{HASHTAG_SEPARATORS}]*[[:word:]_])|([[:word:]_]*[[:alpha:]][[:word:]_]*)"
HASHTAG_RE = /(?:^|[^\/\)\w])#(#{HASHTAG_NAME_RE})/i
validates :name, presence: true, format: { with: /\A(#{HASHTAG_NAME_RE})\z/i }
+ validates :display_name, format: { with: /\A(#{HASHTAG_NAME_RE})\z/i }
validate :validate_name_change, if: -> { !new_record? && name_changed? }
+ validate :validate_display_name_change, if: -> { !new_record? && display_name_changed? }
scope :reviewed, -> { where.not(reviewed_at: nil) }
scope :unreviewed, -> { where(reviewed_at: nil) }
@@ -46,6 +51,10 @@ class Tag < ApplicationRecord
name
end
+ def display_name
+ attributes['display_name'] || name
+ end
+
def usable
boolean_with_default('usable', true)
end
@@ -90,8 +99,10 @@ class Tag < ApplicationRecord
class << self
def find_or_create_by_names(name_or_names)
- Array(name_or_names).map(&method(:normalize)).uniq { |str| str.mb_chars.downcase.to_s }.map do |normalized_name|
- tag = matching_name(normalized_name).first || create(name: normalized_name)
+ names = Array(name_or_names).map { |str| [normalize(str), str] }.uniq(&:first)
+
+ names.map do |(normalized_name, display_name)|
+ tag = matching_name(normalized_name).first || create(name: normalized_name, display_name: display_name.gsub(/[^[:alnum:]#{HASHTAG_SEPARATORS}]/, ''))
yield tag if block_given?
@@ -129,7 +140,7 @@ class Tag < ApplicationRecord
end
def normalize(str)
- str.gsub(/\A#/, '')
+ HashtagNormalizer.new.normalize(str)
end
end
@@ -138,4 +149,8 @@ class Tag < ApplicationRecord
def validate_name_change
errors.add(:name, I18n.t('tags.does_not_match_previous_name')) unless name_was.mb_chars.casecmp(name.mb_chars).zero?
end
+
+ def validate_display_name_change
+ errors.add(:display_name, I18n.t('tags.does_not_match_previous_name')) unless HashtagNormalizer.new.normalize(display_name).casecmp(name.mb_chars).zero?
+ end
end
diff --git a/app/models/tag_feed.rb b/app/models/tag_feed.rb
index fbbdbaae27..761a43bb12 100644
--- a/app/models/tag_feed.rb
+++ b/app/models/tag_feed.rb
@@ -12,6 +12,7 @@ class TagFeed < PublicFeed
# @option [Boolean] :local
# @option [Boolean] :remote
# @option [Boolean] :only_media
+ # @option [String] :locale
def initialize(tag, account, options = {})
@tag = tag
super(account, options)
diff --git a/app/models/tag_follow.rb b/app/models/tag_follow.rb
new file mode 100644
index 0000000000..abe36cd171
--- /dev/null
+++ b/app/models/tag_follow.rb
@@ -0,0 +1,24 @@
+# frozen_string_literal: true
+
+# == Schema Information
+#
+# Table name: tag_follows
+#
+# id :bigint(8) not null, primary key
+# tag_id :bigint(8) not null
+# account_id :bigint(8) not null
+# created_at :datetime not null
+# updated_at :datetime not null
+#
+
+class TagFollow < ApplicationRecord
+ include RateLimitable
+ include Paginable
+
+ belongs_to :tag
+ belongs_to :account
+
+ accepts_nested_attributes_for :tag
+
+ rate_limit by: :account, family: :follows
+end
diff --git a/app/models/trends.rb b/app/models/trends.rb
index 0fff66a9f0..b09db940eb 100644
--- a/app/models/trends.rb
+++ b/app/models/trends.rb
@@ -26,13 +26,13 @@ module Trends
end
def self.request_review!
- return unless enabled?
+ return if skip_review? || !enabled?
links_requiring_review = links.request_review
tags_requiring_review = tags.request_review
statuses_requiring_review = statuses.request_review
- User.staff.includes(:account).find_each do |user|
+ User.those_who_can(:manage_taxonomies).includes(:account).find_each do |user|
links = user.allows_trending_links_review_emails? ? links_requiring_review : []
tags = user.allows_trending_tags_review_emails? ? tags_requiring_review : []
statuses = user.allows_trending_statuses_review_emails? ? statuses_requiring_review : []
@@ -46,6 +46,10 @@ module Trends
Setting.trends
end
+ def self.skip_review?
+ Setting.trendable_by_default
+ end
+
def self.available_locales
@available_locales ||= I18n.available_locales.map { |locale| locale.to_s.split(/[_-]/).first }.uniq
end
diff --git a/app/models/trends/base.rb b/app/models/trends/base.rb
index 0471112489..a189f11f23 100644
--- a/app/models/trends/base.rb
+++ b/app/models/trends/base.rb
@@ -98,4 +98,8 @@ class Trends::Base
pipeline.rename(from_key, to_key)
end
end
+
+ def skip_review?
+ Setting.trendable_by_default
+ end
end
diff --git a/app/models/trends/links.rb b/app/models/trends/links.rb
index 604894cd67..8808b3ab6f 100644
--- a/app/models/trends/links.rb
+++ b/app/models/trends/links.rb
@@ -11,6 +11,40 @@ class Trends::Links < Trends::Base
decay_threshold: 1,
}
+ class Query < Trends::Query
+ def filtered_for!(account)
+ @account = account
+ self
+ end
+
+ def filtered_for(account)
+ clone.filtered_for!(account)
+ end
+
+ def to_arel
+ scope = PreviewCard.joins(:trend).reorder(score: :desc)
+ scope = scope.reorder(language_order_clause.desc, score: :desc) if preferred_languages.present?
+ scope = scope.merge(PreviewCardTrend.allowed) if @allowed
+ scope = scope.offset(@offset) if @offset.present?
+ scope = scope.limit(@limit) if @limit.present?
+ scope
+ end
+
+ private
+
+ def language_order_clause
+ Arel::Nodes::Case.new.when(PreviewCardTrend.arel_table[:language].in(preferred_languages)).then(1).else(0)
+ end
+
+ def preferred_languages
+ if @account&.chosen_languages.present?
+ @account.chosen_languages
+ else
+ @locale
+ end
+ end
+ end
+
def register(status, at_time = Time.now.utc)
original_status = status.proper
@@ -28,24 +62,33 @@ class Trends::Links < Trends::Base
record_used_id(preview_card.id, at_time)
end
+ def query
+ Query.new(key_prefix, klass)
+ end
+
def refresh(at_time = Time.now.utc)
- preview_cards = PreviewCard.where(id: (recently_used_ids(at_time) + currently_trending_ids(false, -1)).uniq)
+ preview_cards = PreviewCard.where(id: (recently_used_ids(at_time) + PreviewCardTrend.pluck(:preview_card_id)).uniq)
calculate_scores(preview_cards, at_time)
end
def request_review
- preview_cards = PreviewCard.where(id: currently_trending_ids(false, -1))
+ PreviewCardTrend.pluck('distinct language').flat_map do |language|
+ score_at_threshold = PreviewCardTrend.where(language: language, allowed: true).order(rank: :desc).where('rank <= ?', options[:review_threshold]).first&.score || 0
+ preview_card_trends = PreviewCardTrend.where(language: language, allowed: false).joins(:preview_card)
- preview_cards.filter_map do |preview_card|
- next unless would_be_trending?(preview_card.id) && !preview_card.trendable? && preview_card.requires_review_notification?
+ preview_card_trends.filter_map do |trend|
+ preview_card = trend.preview_card
- if preview_card.provider.nil?
- preview_card.provider = PreviewCardProvider.create(domain: preview_card.domain, requested_review_at: Time.now.utc)
- else
- preview_card.provider.touch(:requested_review_at)
- end
+ next unless trend.score > score_at_threshold && !preview_card.trendable? && preview_card.requires_review_notification?
+
+ if preview_card.provider.nil?
+ preview_card.provider = PreviewCardProvider.create(domain: preview_card.domain, requested_review_at: Time.now.utc)
+ else
+ preview_card.provider.touch(:requested_review_at)
+ end
- preview_card
+ preview_card
+ end
end
end
@@ -62,10 +105,7 @@ class Trends::Links < Trends::Base
private
def calculate_scores(preview_cards, at_time)
- global_items = []
- locale_items = Hash.new { |h, key| h[key] = [] }
-
- preview_cards.each do |preview_card|
+ items = preview_cards.map do |preview_card|
expected = preview_card.history.get(at_time - 1.day).accounts.to_f
expected = 1.0 if expected.zero?
observed = preview_card.history.get(at_time).accounts.to_f
@@ -89,26 +129,24 @@ class Trends::Links < Trends::Base
preview_card.update_columns(max_score: max_score, max_score_at: max_time)
end
- decaying_score = max_score * (0.5**((at_time.to_f - max_time.to_f) / options[:max_score_halflife].to_f))
-
- next unless decaying_score >= options[:decay_threshold]
+ decaying_score = begin
+ if max_score.zero? || !valid_locale?(preview_card.language)
+ 0
+ else
+ max_score * (0.5**((at_time.to_f - max_time.to_f) / options[:max_score_halflife].to_f))
+ end
+ end
- global_items << { score: decaying_score, item: preview_card }
- locale_items[preview_card.language] << { score: decaying_score, item: preview_card } if valid_locale?(preview_card.language)
+ [decaying_score, preview_card]
end
- replace_items('', global_items)
+ to_insert = items.filter { |(score, _)| score >= options[:decay_threshold] }
+ to_delete = items.filter { |(score, _)| score < options[:decay_threshold] }
- Trends.available_locales.each do |locale|
- replace_items(":#{locale}", locale_items[locale])
+ PreviewCardTrend.transaction do
+ PreviewCardTrend.upsert_all(to_insert.map { |(score, preview_card)| { preview_card_id: preview_card.id, score: score, language: preview_card.language, allowed: preview_card.trendable? || false } }, unique_by: :preview_card_id) if to_insert.any?
+ PreviewCardTrend.where(preview_card_id: to_delete.map { |(_, preview_card)| preview_card.id }).delete_all if to_delete.any?
+ PreviewCardTrend.connection.exec_update('UPDATE preview_card_trends SET rank = t0.calculated_rank FROM (SELECT id, row_number() OVER w AS calculated_rank FROM preview_card_trends WINDOW w AS (PARTITION BY language ORDER BY score DESC)) t0 WHERE preview_card_trends.id = t0.id')
end
end
-
- def filter_for_allowed_items(items)
- items.select { |item| item[:item].trendable? }
- end
-
- def would_be_trending?(id)
- score(id) > score_at_rank(options[:review_threshold] - 1)
- end
end
diff --git a/app/models/trends/preview_card_filter.rb b/app/models/trends/preview_card_filter.rb
index 25add58c89..0a81146d4c 100644
--- a/app/models/trends/preview_card_filter.rb
+++ b/app/models/trends/preview_card_filter.rb
@@ -13,10 +13,10 @@ class Trends::PreviewCardFilter
end
def results
- scope = PreviewCard.unscoped
+ scope = initial_scope
params.each do |key, value|
- next if %w(page locale).include?(key.to_s)
+ next if %w(page).include?(key.to_s)
scope.merge!(scope_for(key, value.to_s.strip)) if value.present?
end
@@ -26,21 +26,30 @@ class Trends::PreviewCardFilter
private
+ def initial_scope
+ PreviewCard.select(PreviewCard.arel_table[Arel.star])
+ .joins(:trend)
+ .eager_load(:trend)
+ .reorder(score: :desc)
+ end
+
def scope_for(key, value)
case key.to_s
when 'trending'
trending_scope(value)
+ when 'locale'
+ PreviewCardTrend.where(language: value)
else
raise "Unknown filter: #{key}"
end
end
def trending_scope(value)
- scope = Trends.links.query
-
- scope = scope.in_locale(@params[:locale].to_s) if @params[:locale].present?
- scope = scope.allowed if value == 'allowed'
-
- scope.to_arel
+ case value
+ when 'allowed'
+ PreviewCardTrend.allowed
+ else
+ PreviewCardTrend.all
+ end
end
end
diff --git a/app/models/trends/status_batch.rb b/app/models/trends/status_batch.rb
index 78d93bed44..f9b97b2244 100644
--- a/app/models/trends/status_batch.rb
+++ b/app/models/trends/status_batch.rb
@@ -30,7 +30,7 @@ class Trends::StatusBatch
end
def approve!
- statuses.each { |status| authorize(status, :review?) }
+ statuses.each { |status| authorize([:admin, status], :review?) }
statuses.update_all(trendable: true)
end
@@ -45,7 +45,7 @@ class Trends::StatusBatch
end
def reject!
- statuses.each { |status| authorize(status, :review?) }
+ statuses.each { |status| authorize([:admin, status], :review?) }
statuses.update_all(trendable: false)
end
diff --git a/app/models/trends/status_filter.rb b/app/models/trends/status_filter.rb
index 7c453e3393..cb0f75d679 100644
--- a/app/models/trends/status_filter.rb
+++ b/app/models/trends/status_filter.rb
@@ -13,10 +13,10 @@ class Trends::StatusFilter
end
def results
- scope = Status.unscoped.kept
+ scope = initial_scope
params.each do |key, value|
- next if %w(page locale).include?(key.to_s)
+ next if %w(page).include?(key.to_s)
scope.merge!(scope_for(key, value.to_s.strip)) if value.present?
end
@@ -26,21 +26,30 @@ class Trends::StatusFilter
private
+ def initial_scope
+ Status.select(Status.arel_table[Arel.star])
+ .joins(:trend)
+ .eager_load(:trend)
+ .reorder(score: :desc)
+ end
+
def scope_for(key, value)
case key.to_s
when 'trending'
trending_scope(value)
+ when 'locale'
+ StatusTrend.where(language: value)
else
raise "Unknown filter: #{key}"
end
end
def trending_scope(value)
- scope = Trends.statuses.query
-
- scope = scope.in_locale(@params[:locale].to_s) if @params[:locale].present?
- scope = scope.allowed if value == 'allowed'
-
- scope.to_arel
+ case value
+ when 'allowed'
+ StatusTrend.allowed
+ else
+ StatusTrend.all
+ end
end
end
diff --git a/app/models/trends/statuses.rb b/app/models/trends/statuses.rb
index 1b9e9259ab..14a05e6d82 100644
--- a/app/models/trends/statuses.rb
+++ b/app/models/trends/statuses.rb
@@ -20,13 +20,27 @@ class Trends::Statuses < Trends::Base
clone.filtered_for!(account)
end
+ def to_arel
+ scope = Status.joins(:trend).reorder(score: :desc)
+ scope = scope.reorder(language_order_clause.desc, score: :desc) if preferred_languages.present?
+ scope = scope.merge(StatusTrend.allowed) if @allowed
+ scope = scope.not_excluded_by_account(@account).not_domain_blocked_by_account(@account) if @account.present?
+ scope = scope.offset(@offset) if @offset.present?
+ scope = scope.limit(@limit) if @limit.present?
+ scope
+ end
+
private
- def apply_scopes(scope)
- if @account.nil?
- scope
+ def language_order_clause
+ Arel::Nodes::Case.new.when(StatusTrend.arel_table[:language].in(preferred_languages)).then(1).else(0)
+ end
+
+ def preferred_languages
+ if @account&.chosen_languages.present?
+ @account.chosen_languages
else
- scope.not_excluded_by_account(@account).not_domain_blocked_by_account(@account)
+ @locale
end
end
end
@@ -36,9 +50,6 @@ class Trends::Statuses < Trends::Base
end
def add(status, _account_id, at_time = Time.now.utc)
- # We rely on the total reblogs and favourites count, so we
- # don't record which account did the what and when here
-
record_used_id(status.id, at_time)
end
@@ -47,18 +58,23 @@ class Trends::Statuses < Trends::Base
end
def refresh(at_time = Time.now.utc)
- statuses = Status.where(id: (recently_used_ids(at_time) + currently_trending_ids(false, -1)).uniq).includes(:account, :media_attachments)
+ statuses = Status.where(id: (recently_used_ids(at_time) + StatusTrend.pluck(:status_id)).uniq).includes(:status_stat, :account)
calculate_scores(statuses, at_time)
end
def request_review
- statuses = Status.where(id: currently_trending_ids(false, -1)).includes(:account)
+ StatusTrend.pluck('distinct language').flat_map do |language|
+ score_at_threshold = StatusTrend.where(language: language, allowed: true).order(rank: :desc).where('rank <= ?', options[:review_threshold]).first&.score || 0
+ status_trends = StatusTrend.where(language: language, allowed: false).joins(:status).includes(status: :account)
- statuses.filter_map do |status|
- next unless would_be_trending?(status.id) && !status.trendable? && status.requires_review_notification?
+ status_trends.filter_map do |trend|
+ status = trend.status
- status.account.touch(:requested_review_at)
- status
+ if trend.score > score_at_threshold && !status.trendable? && status.requires_review_notification?
+ status.account.touch(:requested_review_at)
+ status
+ end
+ end
end
end
@@ -75,14 +91,11 @@ class Trends::Statuses < Trends::Base
private
def eligible?(status)
- status.public_visibility? && status.account.discoverable? && !status.account.silenced? && (status.spoiler_text.blank? || Setting.trending_status_cw) && !status.sensitive? && !status.reply?
+ status.public_visibility? && status.account.discoverable? && !status.account.silenced? && (status.spoiler_text.blank? || Setting.trending_status_cw) && !status.sensitive? && !status.reply? && valid_locale?(status.language)
end
def calculate_scores(statuses, at_time)
- global_items = []
- locale_items = Hash.new { |h, key| h[key] = [] }
-
- statuses.each do |status|
+ items = statuses.map do |status|
expected = 1.0
observed = (status.reblogs_count + status.favourites_count).to_f
@@ -94,29 +107,24 @@ class Trends::Statuses < Trends::Base
end
end
- decaying_score = score * (0.5**((at_time.to_f - status.created_at.to_f) / options[:score_halflife].to_f))
-
- next unless decaying_score >= options[:decay_threshold]
+ decaying_score = begin
+ if score.zero? || !eligible?(status)
+ 0
+ else
+ score * (0.5**((at_time.to_f - status.created_at.to_f) / options[:score_halflife].to_f))
+ end
+ end
- global_items << { score: decaying_score, item: status }
- locale_items[status.language] << { account_id: status.account_id, score: decaying_score, item: status } if valid_locale?(status.language)
+ [decaying_score, status]
end
- replace_items('', global_items)
+ to_insert = items.filter { |(score, _)| score >= options[:decay_threshold] }
+ to_delete = items.filter { |(score, _)| score < options[:decay_threshold] }
- Trends.available_locales.each do |locale|
- replace_items(":#{locale}", locale_items[locale])
+ StatusTrend.transaction do
+ StatusTrend.upsert_all(to_insert.map { |(score, status)| { status_id: status.id, account_id: status.account_id, score: score, language: status.language, allowed: status.trendable? || false } }, unique_by: :status_id) if to_insert.any?
+ StatusTrend.where(status_id: to_delete.map { |(_, status)| status.id }).delete_all if to_delete.any?
+ StatusTrend.connection.exec_update('UPDATE status_trends SET rank = t0.calculated_rank FROM (SELECT id, row_number() OVER w AS calculated_rank FROM status_trends WINDOW w AS (PARTITION BY language ORDER BY score DESC)) t0 WHERE status_trends.id = t0.id')
end
end
-
- def filter_for_allowed_items(items)
- # Show only one status per account, pick the one with the highest score
- # that's also eligible to trend
-
- items.group_by { |item| item[:account_id] }.values.filter_map { |account_items| account_items.select { |item| item[:item].trendable? && item[:item].account.discoverable? }.max_by { |item| item[:score] } }
- end
-
- def would_be_trending?(id)
- score(id) > score_at_rank(options[:review_threshold] - 1)
- end
end
diff --git a/app/models/unavailable_domain.rb b/app/models/unavailable_domain.rb
index 5e8870bde0..dfc0ef14ef 100644
--- a/app/models/unavailable_domain.rb
+++ b/app/models/unavailable_domain.rb
@@ -16,6 +16,10 @@ class UnavailableDomain < ApplicationRecord
after_commit :reset_cache!
+ def to_log_human_identifier
+ domain
+ end
+
private
def reset_cache!
diff --git a/app/models/user.rb b/app/models/user.rb
index 6d2d946250..0e8a87aea5 100644
--- a/app/models/user.rb
+++ b/app/models/user.rb
@@ -37,6 +37,7 @@
# sign_in_token_sent_at :datetime
# webauthn_id :string
# sign_up_ip :inet
+# role_id :bigint(8)
#
class User < ApplicationRecord
@@ -50,7 +51,6 @@ class User < ApplicationRecord
)
include Settings::Extend
- include UserRoles
include Redisable
include LanguagesHelper
@@ -79,6 +79,7 @@ class User < ApplicationRecord
belongs_to :account, inverse_of: :user
belongs_to :invite, counter_cache: :uses, optional: true
belongs_to :created_by_application, class_name: 'Doorkeeper::Application', optional: true
+ belongs_to :role, class_name: 'UserRole', optional: true
accepts_nested_attributes_for :account
has_many :applications, class_name: 'Doorkeeper::Application', as: :owner
@@ -93,7 +94,7 @@ class User < ApplicationRecord
validates :invite_request, presence: true, on: :create, if: :invite_text_required?
validates :locale, inclusion: I18n.available_locales.map(&:to_s), if: :locale?
- validates_with BlacklistedEmailValidator, if: -> { !confirmed? }
+ validates_with BlacklistedEmailValidator, if: -> { ENV['EMAIL_DOMAIN_LISTS_APPLY_AFTER_CONFIRMATION'] == 'true' || !confirmed? }
validates_with EmailMxValidator, if: :validate_email_dns?
validates :agreement, acceptance: { allow_nil: false, accept: [true, 'true', '1'] }, on: :create
@@ -103,6 +104,7 @@ class User < ApplicationRecord
validates_with RegistrationFormTimeValidator, on: :create
validates :website, absence: true, on: :create
validates :confirm_password, absence: true, on: :create
+ validate :validate_role_elevation
scope :recent, -> { order(id: :desc) }
scope :pending, -> { where(approved: false) }
@@ -117,6 +119,7 @@ class User < ApplicationRecord
scope :emailable, -> { confirmed.enabled.joins(:account).merge(Account.searchable) }
before_validation :sanitize_languages
+ before_validation :sanitize_role
before_create :set_approved
after_commit :send_pending_devise_notifications
after_create_commit :trigger_webhooks
@@ -135,8 +138,28 @@ class User < ApplicationRecord
:disable_swiping, :always_send_emails, :default_content_type, :system_emoji_font,
to: :settings, prefix: :setting, allow_nil: false
+ delegate :can?, to: :role
+
attr_reader :invite_code
- attr_writer :external, :bypass_invite_request_check
+ attr_writer :external, :bypass_invite_request_check, :current_account
+
+ def self.those_who_can(*any_of_privileges)
+ matching_role_ids = UserRole.that_can(*any_of_privileges).map(&:id)
+
+ if matching_role_ids.empty?
+ none
+ else
+ where(role_id: matching_role_ids)
+ end
+ end
+
+ def role
+ if role_id.nil?
+ UserRole.everyone
+ else
+ super
+ end
+ end
def confirmed?
confirmed_at.present?
@@ -158,6 +181,14 @@ class User < ApplicationRecord
update!(disabled: false)
end
+ def to_log_human_identifier
+ account.acct
+ end
+
+ def to_log_route_param
+ account_id
+ end
+
def confirm
new_user = !confirmed?
self.approved = true if open_registrations? && !sign_up_from_ip_requires_approval?
@@ -250,18 +281,18 @@ class User < ApplicationRecord
save!
end
+ def prefers_noindex?
+ setting_noindex
+ end
+
def preferred_posting_language
- valid_locale_cascade(settings.default_language, locale)
+ valid_locale_cascade(settings.default_language, locale, I18n.locale)
end
def setting_default_privacy
settings.default_privacy || (account.locked? ? 'private' : 'public')
end
- def allows_digest_emails?
- settings.notification_emails['digest']
- end
-
def allows_report_emails?
settings.notification_emails['report']
end
@@ -449,6 +480,11 @@ class User < ApplicationRecord
self.chosen_languages = nil if chosen_languages.empty?
end
+ def sanitize_role
+ return if role.nil?
+ self.role = nil if role.everyone?
+ end
+
def prepare_new_user!
BootstrapTimelineWorker.perform_async(account_id)
ActivityTracker.increment('activity:accounts:local')
@@ -461,7 +497,7 @@ class User < ApplicationRecord
end
def notify_staff_about_pending_account!
- User.staff.includes(:account).find_each do |u|
+ User.those_who_can(:manage_users).includes(:account).find_each do |u|
next unless u.allows_pending_account_emails?
AdminMailer.new_pending_account(u.account, self).deliver_later
end
@@ -479,6 +515,10 @@ class User < ApplicationRecord
email_changed? && !external? && !(Rails.env.test? || Rails.env.development?)
end
+ def validate_role_elevation
+ errors.add(:role_id, :elevated) if defined?(@current_account) && role&.overrides?(@current_account&.user_role)
+ end
+
def invite_text_required?
Setting.require_invite_text && !invited? && !external? && !bypass_invite_request_check?
end
diff --git a/app/models/user_role.rb b/app/models/user_role.rb
new file mode 100644
index 0000000000..74dfdc2205
--- /dev/null
+++ b/app/models/user_role.rb
@@ -0,0 +1,190 @@
+# frozen_string_literal: true
+
+# == Schema Information
+#
+# Table name: user_roles
+#
+# id :bigint(8) not null, primary key
+# name :string default(""), not null
+# color :string default(""), not null
+# position :integer default(0), not null
+# permissions :bigint(8) default(0), not null
+# highlighted :boolean default(FALSE), not null
+# created_at :datetime not null
+# updated_at :datetime not null
+#
+
+class UserRole < ApplicationRecord
+ FLAGS = {
+ administrator: (1 << 0),
+ view_devops: (1 << 1),
+ view_audit_log: (1 << 2),
+ view_dashboard: (1 << 3),
+ manage_reports: (1 << 4),
+ manage_federation: (1 << 5),
+ manage_settings: (1 << 6),
+ manage_blocks: (1 << 7),
+ manage_taxonomies: (1 << 8),
+ manage_appeals: (1 << 9),
+ manage_users: (1 << 10),
+ manage_invites: (1 << 11),
+ manage_rules: (1 << 12),
+ manage_announcements: (1 << 13),
+ manage_custom_emojis: (1 << 14),
+ manage_webhooks: (1 << 15),
+ invite_users: (1 << 16),
+ manage_roles: (1 << 17),
+ manage_user_access: (1 << 18),
+ delete_user_data: (1 << 19),
+ }.freeze
+
+ module Flags
+ NONE = 0
+ ALL = FLAGS.values.reduce(&:|)
+
+ DEFAULT = FLAGS[:invite_users]
+
+ CATEGORIES = {
+ invites: %i(
+ invite_users
+ ).freeze,
+
+ moderation: %w(
+ view_dashboard
+ view_audit_log
+ manage_users
+ manage_user_access
+ delete_user_data
+ manage_reports
+ manage_appeals
+ manage_federation
+ manage_blocks
+ manage_taxonomies
+ manage_invites
+ ).freeze,
+
+ administration: %w(
+ manage_settings
+ manage_rules
+ manage_roles
+ manage_webhooks
+ manage_custom_emojis
+ manage_announcements
+ ).freeze,
+
+ devops: %w(
+ view_devops
+ ).freeze,
+
+ special: %i(
+ administrator
+ ).freeze,
+ }.freeze
+ end
+
+ attr_writer :current_account
+
+ validates :name, presence: true, unless: :everyone?
+ validates :color, format: { with: /\A#?(?:[A-F0-9]{3}){1,2}\z/i }, unless: -> { color.blank? }
+
+ validate :validate_permissions_elevation
+ validate :validate_position_elevation
+ validate :validate_dangerous_permissions
+ validate :validate_own_role_edition
+
+ before_validation :set_position
+
+ scope :assignable, -> { where.not(id: -99).order(position: :asc) }
+
+ has_many :users, inverse_of: :role, foreign_key: 'role_id', dependent: :nullify
+
+ def self.nobody
+ @nobody ||= UserRole.new(permissions: Flags::NONE, position: -1)
+ end
+
+ def self.everyone
+ UserRole.find(-99)
+ rescue ActiveRecord::RecordNotFound
+ UserRole.create!(id: -99, permissions: Flags::DEFAULT)
+ end
+
+ def self.that_can(*any_of_privileges)
+ all.select { |role| role.can?(*any_of_privileges) }
+ end
+
+ def everyone?
+ id == -99
+ end
+
+ def nobody?
+ id.nil?
+ end
+
+ def permissions_as_keys
+ FLAGS.keys.select { |privilege| permissions & FLAGS[privilege] == FLAGS[privilege] }.map(&:to_s)
+ end
+
+ def permissions_as_keys=(value)
+ self.permissions = value.map(&:presence).compact.reduce(Flags::NONE) { |bitmask, privilege| FLAGS.key?(privilege.to_sym) ? (bitmask | FLAGS[privilege.to_sym]) : bitmask }
+ end
+
+ def can?(*any_of_privileges)
+ any_of_privileges.any? { |privilege| in_permissions?(privilege) }
+ end
+
+ def overrides?(other_role)
+ other_role.nil? || position > other_role.position
+ end
+
+ def computed_permissions
+ # If called on the everyone role, no further computation needed
+ return permissions if everyone?
+
+ # If called on the nobody role, no permissions are there to be given
+ return Flags::NONE if nobody?
+
+ # Otherwise, compute permissions based on special conditions
+ @computed_permissions ||= begin
+ permissions = self.class.everyone.permissions | self.permissions
+
+ if permissions & FLAGS[:administrator] == FLAGS[:administrator]
+ Flags::ALL
+ else
+ permissions
+ end
+ end
+ end
+
+ def to_log_human_identifier
+ name
+ end
+
+ private
+
+ def in_permissions?(privilege)
+ raise ArgumentError, "Unknown privilege: #{privilege}" unless FLAGS.key?(privilege)
+ computed_permissions & FLAGS[privilege] == FLAGS[privilege]
+ end
+
+ def set_position
+ self.position = -1 if everyone?
+ end
+
+ def validate_own_role_edition
+ return unless defined?(@current_account) && @current_account.user_role.id == id
+ errors.add(:permissions_as_keys, :own_role) if permissions_changed?
+ errors.add(:position, :own_role) if position_changed?
+ end
+
+ def validate_permissions_elevation
+ errors.add(:permissions_as_keys, :elevated) if defined?(@current_account) && @current_account.user_role.computed_permissions & permissions != permissions
+ end
+
+ def validate_position_elevation
+ errors.add(:position, :elevated) if defined?(@current_account) && @current_account.user_role.position < position
+ end
+
+ def validate_dangerous_permissions
+ errors.add(:permissions_as_keys, :dangerous) if everyone? && Flags::DEFAULT & permissions != permissions
+ end
+end
diff --git a/app/policies/account_moderation_note_policy.rb b/app/policies/account_moderation_note_policy.rb
index 885411a5b5..310ce854cc 100644
--- a/app/policies/account_moderation_note_policy.rb
+++ b/app/policies/account_moderation_note_policy.rb
@@ -2,11 +2,11 @@
class AccountModerationNotePolicy < ApplicationPolicy
def create?
- staff?
+ role.can?(:manage_reports)
end
def destroy?
- admin? || owner?
+ owner? || (role.can?(:manage_reports) && role.overrides?(record.account.user_role))
end
private
diff --git a/app/policies/account_policy.rb b/app/policies/account_policy.rb
index cc23771e7a..a744af81de 100644
--- a/app/policies/account_policy.rb
+++ b/app/policies/account_policy.rb
@@ -2,74 +2,66 @@
class AccountPolicy < ApplicationPolicy
def index?
- staff?
+ role.can?(:manage_users)
end
def show?
- staff?
+ role.can?(:manage_users)
end
def warn?
- staff? && !record.user&.staff?
+ role.can?(:manage_users, :manage_reports) && role.overrides?(record.user_role)
end
def suspend?
- staff? && !record.user&.staff? && !record.instance_actor?
+ role.can?(:manage_users, :manage_reports) && role.overrides?(record.user_role) && !record.instance_actor?
end
def destroy?
- record.suspended_temporarily? && admin?
+ record.suspended_temporarily? && role.can?(:delete_user_data)
end
def unsuspend?
- staff? && record.suspension_origin_local?
+ role.can?(:manage_users) && record.suspension_origin_local?
end
def sensitive?
- staff? && !record.user&.staff?
+ role.can?(:manage_users, :manage_reports) && role.overrides?(record.user_role)
end
def unsensitive?
- staff?
+ role.can?(:manage_users)
end
def silence?
- staff? && !record.user&.staff?
+ role.can?(:manage_users, :manage_reports) && role.overrides?(record.user_role)
end
def unsilence?
- staff?
+ role.can?(:manage_users)
end
def redownload?
- admin?
+ role.can?(:manage_federation)
end
def remove_avatar?
- staff?
+ role.can?(:manage_users, :manage_reports) && role.overrides?(record.user_role)
end
def remove_header?
- staff?
- end
-
- def subscribe?
- admin?
- end
-
- def unsubscribe?
- admin?
+ role.can?(:manage_users, :manage_reports) && role.overrides?(record.user_role)
end
def memorialize?
- admin? && !record.user&.admin? && !record.instance_actor?
+ role.can?(:delete_user_data) && role.overrides?(record.user_role) && !record.instance_actor?
end
def unblock_email?
- staff?
+ role.can?(:manage_users)
end
def review?
- staff?
+ role.can?(:manage_taxonomies)
end
end
diff --git a/app/policies/account_warning_policy.rb b/app/policies/account_warning_policy.rb
index 65707dfa7c..4f8df7420e 100644
--- a/app/policies/account_warning_policy.rb
+++ b/app/policies/account_warning_policy.rb
@@ -2,7 +2,7 @@
class AccountWarningPolicy < ApplicationPolicy
def show?
- target? || staff?
+ target? || role.can?(:manage_appeals)
end
def appeal?
diff --git a/app/policies/account_warning_preset_policy.rb b/app/policies/account_warning_preset_policy.rb
index bccbd33efd..59514e9516 100644
--- a/app/policies/account_warning_preset_policy.rb
+++ b/app/policies/account_warning_preset_policy.rb
@@ -2,18 +2,18 @@
class AccountWarningPresetPolicy < ApplicationPolicy
def index?
- staff?
+ role.can?(:manage_settings)
end
def create?
- staff?
+ role.can?(:manage_settings)
end
def update?
- staff?
+ role.can?(:manage_settings)
end
def destroy?
- staff?
+ role.can?(:manage_settings)
end
end
diff --git a/app/policies/admin/status_policy.rb b/app/policies/admin/status_policy.rb
new file mode 100644
index 0000000000..ffaa30f13d
--- /dev/null
+++ b/app/policies/admin/status_policy.rb
@@ -0,0 +1,29 @@
+# frozen_string_literal: true
+
+class Admin::StatusPolicy < ApplicationPolicy
+ def initialize(current_account, record, preloaded_relations = {})
+ super(current_account, record)
+
+ @preloaded_relations = preloaded_relations
+ end
+
+ def index?
+ role.can?(:manage_reports, :manage_users)
+ end
+
+ def show?
+ role.can?(:manage_reports, :manage_users) && (record.public_visibility? || record.unlisted_visibility? || record.reported?)
+ end
+
+ def destroy?
+ role.can?(:manage_reports)
+ end
+
+ def update?
+ role.can?(:manage_reports)
+ end
+
+ def review?
+ role.can?(:manage_taxonomies)
+ end
+end
diff --git a/app/policies/announcement_policy.rb b/app/policies/announcement_policy.rb
index 0a4e4575ca..b5dc6a18af 100644
--- a/app/policies/announcement_policy.rb
+++ b/app/policies/announcement_policy.rb
@@ -2,18 +2,18 @@
class AnnouncementPolicy < ApplicationPolicy
def index?
- staff?
+ role.can?(:manage_announcements)
end
def create?
- admin?
+ role.can?(:manage_announcements)
end
def update?
- admin?
+ role.can?(:manage_announcements)
end
def destroy?
- admin?
+ role.can?(:manage_announcements)
end
end
diff --git a/app/policies/appeal_policy.rb b/app/policies/appeal_policy.rb
index a25187172a..7466b334b0 100644
--- a/app/policies/appeal_policy.rb
+++ b/app/policies/appeal_policy.rb
@@ -2,12 +2,14 @@
class AppealPolicy < ApplicationPolicy
def index?
- staff?
+ role.can?(:manage_appeals)
end
def approve?
- record.pending? && staff?
+ record.pending? && role.can?(:manage_appeals)
end
- alias reject? approve?
+ def reject?
+ record.pending? && role.can?(:manage_appeals)
+ end
end
diff --git a/app/policies/application_policy.rb b/app/policies/application_policy.rb
index d1de5e81a2..163b81e9e6 100644
--- a/app/policies/application_policy.rb
+++ b/app/policies/application_policy.rb
@@ -8,8 +8,6 @@ class ApplicationPolicy
@record = record
end
- delegate :admin?, :moderator?, :staff?, to: :current_user, allow_nil: true
-
private
def current_user
@@ -19,4 +17,8 @@ class ApplicationPolicy
def user_signed_in?
!current_user.nil?
end
+
+ def role
+ current_user&.role || UserRole.nobody
+ end
end
diff --git a/app/policies/audit_log_policy.rb b/app/policies/audit_log_policy.rb
new file mode 100644
index 0000000000..f78aa9a8e0
--- /dev/null
+++ b/app/policies/audit_log_policy.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class AuditLogPolicy < ApplicationPolicy
+ def index?
+ role.can?(:view_audit_log)
+ end
+end
diff --git a/app/policies/canonical_email_block_policy.rb b/app/policies/canonical_email_block_policy.rb
new file mode 100644
index 0000000000..8d76075c93
--- /dev/null
+++ b/app/policies/canonical_email_block_policy.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+class CanonicalEmailBlockPolicy < ApplicationPolicy
+ def index?
+ role.can?(:manage_blocks)
+ end
+
+ def show?
+ role.can?(:manage_blocks)
+ end
+
+ def test?
+ role.can?(:manage_blocks)
+ end
+
+ def create?
+ role.can?(:manage_blocks)
+ end
+
+ def destroy?
+ role.can?(:manage_blocks)
+ end
+end
diff --git a/app/policies/custom_emoji_policy.rb b/app/policies/custom_emoji_policy.rb
index a8c3cbc733..18de71c193 100644
--- a/app/policies/custom_emoji_policy.rb
+++ b/app/policies/custom_emoji_policy.rb
@@ -2,30 +2,30 @@
class CustomEmojiPolicy < ApplicationPolicy
def index?
- staff?
+ role.can?(:manage_custom_emojis)
end
def create?
- admin?
+ role.can?(:manage_custom_emojis)
end
def update?
- admin?
+ role.can?(:manage_custom_emojis)
end
def copy?
- admin?
+ role.can?(:manage_custom_emojis)
end
def enable?
- staff?
+ role.can?(:manage_custom_emojis)
end
def disable?
- staff?
+ role.can?(:manage_custom_emojis)
end
def destroy?
- admin?
+ role.can?(:manage_custom_emojis)
end
end
diff --git a/app/policies/dashboard_policy.rb b/app/policies/dashboard_policy.rb
new file mode 100644
index 0000000000..3df1c3088b
--- /dev/null
+++ b/app/policies/dashboard_policy.rb
@@ -0,0 +1,7 @@
+# frozen_string_literal: true
+
+class DashboardPolicy < ApplicationPolicy
+ def index?
+ role.can?(:view_dashboard)
+ end
+end
diff --git a/app/policies/delivery_policy.rb b/app/policies/delivery_policy.rb
index 24d06c1689..f6ba2eb181 100644
--- a/app/policies/delivery_policy.rb
+++ b/app/policies/delivery_policy.rb
@@ -2,14 +2,14 @@
class DeliveryPolicy < ApplicationPolicy
def clear_delivery_errors?
- admin?
+ role.can?(:manage_federation)
end
def restart_delivery?
- admin?
+ role.can?(:manage_federation)
end
def stop_delivery?
- admin?
+ role.can?(:manage_federation)
end
end
diff --git a/app/policies/domain_allow_policy.rb b/app/policies/domain_allow_policy.rb
index 5030453bbc..45c797ecdf 100644
--- a/app/policies/domain_allow_policy.rb
+++ b/app/policies/domain_allow_policy.rb
@@ -1,11 +1,19 @@
# frozen_string_literal: true
class DomainAllowPolicy < ApplicationPolicy
+ def index?
+ role.can?(:manage_federation)
+ end
+
+ def show?
+ role.can?(:manage_federation)
+ end
+
def create?
- admin?
+ role.can?(:manage_federation)
end
def destroy?
- admin?
+ role.can?(:manage_federation)
end
end
diff --git a/app/policies/domain_block_policy.rb b/app/policies/domain_block_policy.rb
index 543259ccef..0fea2e0351 100644
--- a/app/policies/domain_block_policy.rb
+++ b/app/policies/domain_block_policy.rb
@@ -2,22 +2,22 @@
class DomainBlockPolicy < ApplicationPolicy
def index?
- admin?
+ role.can?(:manage_federation)
end
def show?
- admin?
+ role.can?(:manage_federation)
end
def create?
- admin?
+ role.can?(:manage_federation)
end
def update?
- admin?
+ role.can?(:manage_federation)
end
def destroy?
- admin?
+ role.can?(:manage_federation)
end
end
diff --git a/app/policies/email_domain_block_policy.rb b/app/policies/email_domain_block_policy.rb
index 5a75ee1838..1a0ddfa877 100644
--- a/app/policies/email_domain_block_policy.rb
+++ b/app/policies/email_domain_block_policy.rb
@@ -2,14 +2,14 @@
class EmailDomainBlockPolicy < ApplicationPolicy
def index?
- admin?
+ role.can?(:manage_blocks)
end
def create?
- admin?
+ role.can?(:manage_blocks)
end
def destroy?
- admin?
+ role.can?(:manage_blocks)
end
end
diff --git a/app/policies/follow_recommendation_policy.rb b/app/policies/follow_recommendation_policy.rb
index 68cd0e547f..9245733ea8 100644
--- a/app/policies/follow_recommendation_policy.rb
+++ b/app/policies/follow_recommendation_policy.rb
@@ -2,14 +2,14 @@
class FollowRecommendationPolicy < ApplicationPolicy
def show?
- staff?
+ role.can?(:manage_taxonomies)
end
def suppress?
- staff?
+ role.can?(:manage_taxonomies)
end
def unsuppress?
- staff?
+ role.can?(:manage_taxonomies)
end
end
diff --git a/app/policies/instance_policy.rb b/app/policies/instance_policy.rb
index 801ca162e3..b15e123fef 100644
--- a/app/policies/instance_policy.rb
+++ b/app/policies/instance_policy.rb
@@ -2,14 +2,14 @@
class InstancePolicy < ApplicationPolicy
def index?
- admin?
+ role.can?(:manage_federation)
end
def show?
- admin?
+ role.can?(:manage_federation)
end
def destroy?
- admin?
+ role.can?(:manage_federation)
end
end
diff --git a/app/policies/invite_policy.rb b/app/policies/invite_policy.rb
index 14236f78b8..24eacd08e8 100644
--- a/app/policies/invite_policy.rb
+++ b/app/policies/invite_policy.rb
@@ -2,19 +2,19 @@
class InvitePolicy < ApplicationPolicy
def index?
- staff?
+ role.can?(:manage_invites)
end
def create?
- min_required_role?
+ role.can?(:invite_users)
end
def deactivate_all?
- admin?
+ role.can?(:manage_invites)
end
def destroy?
- owner? || (Setting.min_invite_role == 'admin' ? admin? : staff?)
+ owner? || role.can?(:manage_invites)
end
private
@@ -22,8 +22,4 @@ class InvitePolicy < ApplicationPolicy
def owner?
record.user_id == current_user&.id
end
-
- def min_required_role?
- current_user&.role?(Setting.min_invite_role)
- end
end
diff --git a/app/policies/ip_block_policy.rb b/app/policies/ip_block_policy.rb
index 34dbd746a3..2986a4fdb3 100644
--- a/app/policies/ip_block_policy.rb
+++ b/app/policies/ip_block_policy.rb
@@ -2,14 +2,18 @@
class IpBlockPolicy < ApplicationPolicy
def index?
- admin?
+ role.can?(:manage_blocks)
end
def create?
- admin?
+ role.can?(:manage_blocks)
+ end
+
+ def update?
+ role.can?(:manage_blocks)
end
def destroy?
- admin?
+ role.can?(:manage_blocks)
end
end
diff --git a/app/policies/preview_card_policy.rb b/app/policies/preview_card_policy.rb
index 0410987e46..a7bb41634d 100644
--- a/app/policies/preview_card_policy.rb
+++ b/app/policies/preview_card_policy.rb
@@ -2,10 +2,10 @@
class PreviewCardPolicy < ApplicationPolicy
def index?
- staff?
+ role.can?(:manage_taxonomies)
end
def review?
- staff?
+ role.can?(:manage_taxonomies)
end
end
diff --git a/app/policies/preview_card_provider_policy.rb b/app/policies/preview_card_provider_policy.rb
index 44d2ad5cfc..131ccb5ddf 100644
--- a/app/policies/preview_card_provider_policy.rb
+++ b/app/policies/preview_card_provider_policy.rb
@@ -2,10 +2,10 @@
class PreviewCardProviderPolicy < ApplicationPolicy
def index?
- staff?
+ role.can?(:manage_taxonomies)
end
def review?
- staff?
+ role.can?(:manage_taxonomies)
end
end
diff --git a/app/policies/relay_policy.rb b/app/policies/relay_policy.rb
index bd75e21977..4305bcfaae 100644
--- a/app/policies/relay_policy.rb
+++ b/app/policies/relay_policy.rb
@@ -2,6 +2,6 @@
class RelayPolicy < ApplicationPolicy
def update?
- admin?
+ role.can?(:manage_federation)
end
end
diff --git a/app/policies/report_note_policy.rb b/app/policies/report_note_policy.rb
index 694bc096b5..dc31416e8e 100644
--- a/app/policies/report_note_policy.rb
+++ b/app/policies/report_note_policy.rb
@@ -2,11 +2,11 @@
class ReportNotePolicy < ApplicationPolicy
def create?
- staff?
+ role.can?(:manage_reports)
end
def destroy?
- admin? || owner?
+ owner? || (role.can?(:manage_reports) && role.overrides?(record.account.user_role))
end
private
diff --git a/app/policies/report_policy.rb b/app/policies/report_policy.rb
index 95b5c30c88..c9f7639bdd 100644
--- a/app/policies/report_policy.rb
+++ b/app/policies/report_policy.rb
@@ -2,14 +2,14 @@
class ReportPolicy < ApplicationPolicy
def update?
- staff?
+ role.can?(:manage_reports)
end
def index?
- staff?
+ role.can?(:manage_reports)
end
def show?
- staff?
+ role.can?(:manage_reports)
end
end
diff --git a/app/policies/rule_policy.rb b/app/policies/rule_policy.rb
index 6a4def0090..51b2a69776 100644
--- a/app/policies/rule_policy.rb
+++ b/app/policies/rule_policy.rb
@@ -2,18 +2,18 @@
class RulePolicy < ApplicationPolicy
def index?
- staff?
+ role.can?(:manage_rules)
end
def create?
- admin?
+ role.can?(:manage_rules)
end
def update?
- admin?
+ role.can?(:manage_rules)
end
def destroy?
- admin?
+ role.can?(:manage_rules)
end
end
diff --git a/app/policies/settings_policy.rb b/app/policies/settings_policy.rb
index 874f97bab9..2b052af279 100644
--- a/app/policies/settings_policy.rb
+++ b/app/policies/settings_policy.rb
@@ -2,14 +2,14 @@
class SettingsPolicy < ApplicationPolicy
def update?
- admin?
+ role.can?(:manage_settings)
end
def show?
- admin?
+ role.can?(:manage_settings)
end
def destroy?
- admin?
+ role.can?(:manage_settings)
end
end
diff --git a/app/policies/status_policy.rb b/app/policies/status_policy.rb
index 75d95a90b3..52cfd50506 100644
--- a/app/policies/status_policy.rb
+++ b/app/policies/status_policy.rb
@@ -7,10 +7,6 @@ class StatusPolicy < ApplicationPolicy
@preloaded_relations = preloaded_relations
end
- def index?
- staff?
- end
-
def show?
return false if author.suspended?
return false if local_only? && (current_account.nil? || !current_account.local?)
@@ -33,17 +29,13 @@ class StatusPolicy < ApplicationPolicy
end
def destroy?
- staff? || owned?
+ owned?
end
alias unreblog? destroy?
def update?
- staff? || owned?
- end
-
- def review?
- staff?
+ owned?
end
private
diff --git a/app/policies/tag_policy.rb b/app/policies/tag_policy.rb
index bdfcec0c96..bb1d37d6cc 100644
--- a/app/policies/tag_policy.rb
+++ b/app/policies/tag_policy.rb
@@ -2,18 +2,18 @@
class TagPolicy < ApplicationPolicy
def index?
- staff?
+ role.can?(:manage_taxonomies)
end
def show?
- staff?
+ role.can?(:manage_taxonomies)
end
def update?
- staff?
+ role.can?(:manage_taxonomies)
end
def review?
- staff?
+ role.can?(:manage_taxonomies)
end
end
diff --git a/app/policies/user_policy.rb b/app/policies/user_policy.rb
index 140905e1f2..6751b8b8fb 100644
--- a/app/policies/user_policy.rb
+++ b/app/policies/user_policy.rb
@@ -2,52 +2,38 @@
class UserPolicy < ApplicationPolicy
def reset_password?
- staff? && !record.staff?
+ role.can?(:manage_user_access) && role.overrides?(record.role)
end
def change_email?
- staff? && !record.staff?
+ role.can?(:manage_user_access) && role.overrides?(record.role)
end
def disable_2fa?
- admin? && !record.staff?
+ role.can?(:manage_user_access) && role.overrides?(record.role)
+ end
+
+ def change_role?
+ role.can?(:manage_roles) && role.overrides?(record.role)
end
def confirm?
- staff? && !record.confirmed?
+ role.can?(:manage_user_access) && !record.confirmed?
end
def enable?
- staff?
+ role.can?(:manage_users)
end
def approve?
- staff? && !record.approved?
+ role.can?(:manage_users) && !record.approved?
end
def reject?
- staff? && !record.approved?
+ role.can?(:manage_users) && !record.approved?
end
def disable?
- staff? && !record.admin?
- end
-
- def promote?
- admin? && promotable?
- end
-
- def demote?
- admin? && !record.admin? && demoteable?
- end
-
- private
-
- def promotable?
- record.approved? && (!record.staff? || !record.admin?)
- end
-
- def demoteable?
- record.staff?
+ role.can?(:manage_users) && role.overrides?(record.role)
end
end
diff --git a/app/policies/user_role_policy.rb b/app/policies/user_role_policy.rb
new file mode 100644
index 0000000000..6144a0ec4a
--- /dev/null
+++ b/app/policies/user_role_policy.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+class UserRolePolicy < ApplicationPolicy
+ def index?
+ role.can?(:manage_roles)
+ end
+
+ def create?
+ role.can?(:manage_roles)
+ end
+
+ def update?
+ role.can?(:manage_roles) && (role.overrides?(record) || role.id == record.id)
+ end
+
+ def destroy?
+ !record.everyone? && role.can?(:manage_roles) && role.overrides?(record) && role.id != record.id
+ end
+end
diff --git a/app/policies/webhook_policy.rb b/app/policies/webhook_policy.rb
index 2c55703a1e..a2199a333f 100644
--- a/app/policies/webhook_policy.rb
+++ b/app/policies/webhook_policy.rb
@@ -2,34 +2,34 @@
class WebhookPolicy < ApplicationPolicy
def index?
- admin?
+ role.can?(:manage_webhooks)
end
def create?
- admin?
+ role.can?(:manage_webhooks)
end
def show?
- admin?
+ role.can?(:manage_webhooks)
end
def update?
- admin?
+ role.can?(:manage_webhooks)
end
def enable?
- admin?
+ role.can?(:manage_webhooks)
end
def disable?
- admin?
+ role.can?(:manage_webhooks)
end
def rotate_secret?
- admin?
+ role.can?(:manage_webhooks)
end
def destroy?
- admin?
+ role.can?(:manage_webhooks)
end
end
diff --git a/app/presenters/filter_result_presenter.rb b/app/presenters/filter_result_presenter.rb
new file mode 100644
index 0000000000..1e9e8f3c19
--- /dev/null
+++ b/app/presenters/filter_result_presenter.rb
@@ -0,0 +1,5 @@
+# frozen_string_literal: true
+
+class FilterResultPresenter < ActiveModelSerializers::Model
+ attributes :filter, :keyword_matches, :status_matches
+end
diff --git a/app/presenters/initial_state_presenter.rb b/app/presenters/initial_state_presenter.rb
index 06482935ca..ed04792119 100644
--- a/app/presenters/initial_state_presenter.rb
+++ b/app/presenters/initial_state_presenter.rb
@@ -2,5 +2,9 @@
class InitialStatePresenter < ActiveModelSerializers::Model
attributes :settings, :push_subscription, :token,
- :current_account, :admin, :text, :visibility
+ :current_account, :admin, :owner, :text, :visibility
+
+ def role
+ current_account&.user_role
+ end
end
diff --git a/app/presenters/instance_presenter.rb b/app/presenters/instance_presenter.rb
index 3e85faa924..fba3cc734b 100644
--- a/app/presenters/instance_presenter.rb
+++ b/app/presenters/instance_presenter.rb
@@ -1,19 +1,53 @@
# frozen_string_literal: true
-class InstancePresenter
- delegate(
- :site_contact_email,
- :site_title,
- :site_short_description,
- :site_description,
- :site_extended_description,
- :site_terms,
- :closed_registrations_message,
- to: Setting
- )
-
- def contact_account
- Account.find_local(Setting.site_contact_username.strip.gsub(/\A@/, ''))
+class InstancePresenter < ActiveModelSerializers::Model
+ attributes :domain, :title, :version, :source_url,
+ :description, :languages, :rules, :contact
+
+ class ContactPresenter < ActiveModelSerializers::Model
+ attributes :email, :account
+
+ def email
+ Setting.site_contact_email
+ end
+
+ def account
+ username, domain = Setting.site_contact_username.strip.gsub(/\A@/, '').split('@', 2)
+ domain = nil if TagManager.instance.local_domain?(domain)
+ Account.find_remote(username, domain) if username.present?
+ end
+ end
+
+ def contact
+ ContactPresenter.new
+ end
+
+ def closed_registrations_message
+ Setting.closed_registrations_message
+ end
+
+ def description
+ Setting.site_short_description
+ end
+
+ def extended_description
+ Setting.site_extended_description
+ end
+
+ def privacy_policy
+ Setting.site_terms
+ end
+
+ def domain
+ Rails.configuration.x.local_domain
+ end
+
+ def title
+ Setting.site_title
+ end
+
+ def languages
+ [I18n.default_locale]
end
def rules
@@ -40,8 +74,8 @@ class InstancePresenter
Rails.cache.fetch('sample_accounts', expires_in: 12.hours) { Account.local.discoverable.popular.limit(3) }
end
- def version_number
- Mastodon::Version
+ def version
+ Mastodon::Version.to_s
end
def source_url
@@ -52,10 +86,6 @@ class InstancePresenter
@thumbnail ||= Rails.cache.fetch('site_uploads/thumbnail') { SiteUpload.find_by(var: 'thumbnail') }
end
- def hero
- @hero ||= Rails.cache.fetch('site_uploads/hero') { SiteUpload.find_by(var: 'hero') }
- end
-
def mascot
@mascot ||= Rails.cache.fetch('site_uploads/mascot') { SiteUpload.find_by(var: 'mascot') }
end
diff --git a/app/presenters/status_relationships_presenter.rb b/app/presenters/status_relationships_presenter.rb
index 4163bb098c..be818a2de7 100644
--- a/app/presenters/status_relationships_presenter.rb
+++ b/app/presenters/status_relationships_presenter.rb
@@ -2,7 +2,7 @@
class StatusRelationshipsPresenter
attr_reader :reblogs_map, :favourites_map, :mutes_map, :pins_map,
- :bookmarks_map
+ :bookmarks_map, :filters_map
def initialize(statuses, current_account_id = nil, **options)
if current_account_id.nil?
@@ -11,12 +11,14 @@ class StatusRelationshipsPresenter
@bookmarks_map = {}
@mutes_map = {}
@pins_map = {}
+ @filters_map = {}
else
statuses = statuses.compact
status_ids = statuses.flat_map { |s| [s.id, s.reblog_of_id] }.uniq.compact
conversation_ids = statuses.filter_map(&:conversation_id).uniq
pinnable_status_ids = statuses.map(&:proper).filter_map { |s| s.id if s.account_id == current_account_id && %w(public unlisted private).include?(s.visibility) }
+ @filters_map = build_filters_map(statuses, current_account_id).merge(options[:filters_map] || {})
@reblogs_map = Status.reblogs_map(status_ids, current_account_id).merge(options[:reblogs_map] || {})
@favourites_map = Status.favourites_map(status_ids, current_account_id).merge(options[:favourites_map] || {})
@bookmarks_map = Status.bookmarks_map(status_ids, current_account_id).merge(options[:bookmarks_map] || {})
@@ -24,4 +26,19 @@ class StatusRelationshipsPresenter
@pins_map = Status.pins_map(pinnable_status_ids, current_account_id).merge(options[:pins_map] || {})
end
end
+
+ private
+
+ def build_filters_map(statuses, current_account_id)
+ active_filters = CustomFilter.cached_filters_for(current_account_id)
+
+ @filters_map = statuses.each_with_object({}) do |status, h|
+ filter_matches = CustomFilter.apply_cached_filters(active_filters, status)
+
+ unless filter_matches.empty?
+ h[status.id] = filter_matches
+ h[status.reblog_of_id] = filter_matches if status.reblog?
+ end
+ end
+ end
end
diff --git a/app/presenters/tag_relationships_presenter.rb b/app/presenters/tag_relationships_presenter.rb
new file mode 100644
index 0000000000..c3bdbaf071
--- /dev/null
+++ b/app/presenters/tag_relationships_presenter.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+class TagRelationshipsPresenter
+ attr_reader :following_map
+
+ def initialize(tags, current_account_id = nil, **options)
+ @following_map = begin
+ if current_account_id.nil?
+ {}
+ else
+ TagFollow.select(:tag_id).where(tag_id: tags.map(&:id), account_id: current_account_id).each_with_object({}) { |f, h| h[f.tag_id] = true }.merge(options[:following_map] || {})
+ end
+ end
+ end
+end
diff --git a/app/serializers/activitypub/add_serializer.rb b/app/serializers/activitypub/add_serializer.rb
index 6f5aab17f9..436b05086f 100644
--- a/app/serializers/activitypub/add_serializer.rb
+++ b/app/serializers/activitypub/add_serializer.rb
@@ -1,10 +1,29 @@
# frozen_string_literal: true
class ActivityPub::AddSerializer < ActivityPub::Serializer
+ class UriSerializer < ActiveModel::Serializer
+ include RoutingHelper
+
+ def serializable_hash(*_args)
+ ActivityPub::TagManager.instance.uri_for(object)
+ end
+ end
+
+ def self.serializer_for(model, options)
+ case model.class.name
+ when 'Status'
+ UriSerializer
+ when 'FeaturedTag'
+ ActivityPub::HashtagSerializer
+ else
+ super
+ end
+ end
+
include RoutingHelper
attributes :type, :actor, :target
- attribute :proper_object, key: :object
+ has_one :proper_object, key: :object
def type
'Add'
@@ -15,7 +34,7 @@ class ActivityPub::AddSerializer < ActivityPub::Serializer
end
def proper_object
- ActivityPub::TagManager.instance.uri_for(object)
+ object
end
def target
diff --git a/app/serializers/activitypub/hashtag_serializer.rb b/app/serializers/activitypub/hashtag_serializer.rb
index 1a56e4dfe4..2b24eb8cc1 100644
--- a/app/serializers/activitypub/hashtag_serializer.rb
+++ b/app/serializers/activitypub/hashtag_serializer.rb
@@ -1,6 +1,8 @@
# frozen_string_literal: true
class ActivityPub::HashtagSerializer < ActivityPub::Serializer
+ context_extensions :hashtag
+
include RoutingHelper
attributes :type, :href, :name
@@ -10,11 +12,11 @@ class ActivityPub::HashtagSerializer < ActivityPub::Serializer
end
def name
- "##{object.name}"
+ "##{object.display_name}"
end
def href
- if object.class.name == 'FeaturedTag'
+ if object.instance_of?(FeaturedTag)
short_account_tag_url(object.account, object.tag)
else
tag_url(object)
diff --git a/app/serializers/activitypub/public_key_serializer.rb b/app/serializers/activitypub/public_key_serializer.rb
index 62ed49e81d..8621517e7c 100644
--- a/app/serializers/activitypub/public_key_serializer.rb
+++ b/app/serializers/activitypub/public_key_serializer.rb
@@ -6,7 +6,7 @@ class ActivityPub::PublicKeySerializer < ActivityPub::Serializer
attributes :id, :owner, :public_key_pem
def id
- [ActivityPub::TagManager.instance.uri_for(object), '#main-key'].join
+ ActivityPub::TagManager.instance.key_uri_for(object)
end
def owner
diff --git a/app/serializers/activitypub/remove_serializer.rb b/app/serializers/activitypub/remove_serializer.rb
index 7fefda59da..fb224f8a99 100644
--- a/app/serializers/activitypub/remove_serializer.rb
+++ b/app/serializers/activitypub/remove_serializer.rb
@@ -1,10 +1,29 @@
# frozen_string_literal: true
class ActivityPub::RemoveSerializer < ActivityPub::Serializer
+ class UriSerializer < ActiveModel::Serializer
+ include RoutingHelper
+
+ def serializable_hash(*_args)
+ ActivityPub::TagManager.instance.uri_for(object)
+ end
+ end
+
+ def self.serializer_for(model, options)
+ case model.class.name
+ when 'Status'
+ UriSerializer
+ when 'FeaturedTag'
+ ActivityPub::HashtagSerializer
+ else
+ super
+ end
+ end
+
include RoutingHelper
attributes :type, :actor, :target
- attribute :proper_object, key: :object
+ has_one :proper_object, key: :object
def type
'Remove'
@@ -15,7 +34,7 @@ class ActivityPub::RemoveSerializer < ActivityPub::Serializer
end
def proper_object
- ActivityPub::TagManager.instance.uri_for(object)
+ object
end
def target
diff --git a/app/serializers/initial_state_serializer.rb b/app/serializers/initial_state_serializer.rb
index 5eab02dbca..7e57ce4bf0 100644
--- a/app/serializers/initial_state_serializer.rb
+++ b/app/serializers/initial_state_serializer.rb
@@ -1,12 +1,15 @@
# frozen_string_literal: true
class InitialStateSerializer < ActiveModel::Serializer
+ include RoutingHelper
+
attributes :meta, :compose, :accounts,
:media_attachments, :settings,
:max_toot_chars, :poll_limits,
:languages
has_one :push_subscription, serializer: REST::WebPushSubscriptionSerializer
+ has_one :role, serializer: REST::RoleSerializer
def max_toot_chars
StatusLengthValidator::MAX_CHARS
@@ -21,23 +24,28 @@ class InitialStateSerializer < ActiveModel::Serializer
}
end
+ # rubocop:disable Metrics/AbcSize
def meta
store = {
streaming_api_base_url: Rails.configuration.x.streaming_api_base_url,
access_token: object.token,
locale: I18n.locale,
- domain: Rails.configuration.x.local_domain,
- title: instance_presenter.site_title,
+ domain: instance_presenter.domain,
+ title: instance_presenter.title,
admin: object.admin&.id&.to_s,
search_enabled: Chewy.enabled?,
repository: Mastodon::Version.repository,
- source_url: Mastodon::Version.source_url,
- version: Mastodon::Version.to_s,
- invites_enabled: Setting.min_invite_role == 'user',
+ source_url: instance_presenter.source_url,
+ version: instance_presenter.version,
limited_federation_mode: Rails.configuration.x.whitelist_mode,
mascot: instance_presenter.mascot&.file&.url,
profile_directory: Setting.profile_directory,
trends: Setting.trends,
+ registrations_open: Setting.registrations_mode != 'none' && !Rails.configuration.x.single_user_mode,
+ timeline_preview: Setting.timeline_preview,
+ activity_api_enabled: Setting.activity_api_enabled,
+ single_user_mode: Rails.configuration.x.single_user_mode,
+ translation_enabled: TranslationService.configured?,
}
if object.current_account
@@ -54,7 +62,6 @@ class InitialStateSerializer < ActiveModel::Serializer
store[:advanced_layout] = object.current_account.user.setting_advanced_layout
store[:use_blurhash] = object.current_account.user.setting_use_blurhash
store[:use_pending_items] = object.current_account.user.setting_use_pending_items
- store[:is_staff] = object.current_account.user.staff?
store[:trends] = Setting.trends && object.current_account.user.setting_trends
store[:default_content_type] = object.current_account.user.setting_default_content_type
store[:system_emoji_font] = object.current_account.user.setting_system_emoji_font
@@ -67,8 +74,13 @@ class InitialStateSerializer < ActiveModel::Serializer
store[:crop_images] = Setting.crop_images
end
+ if Rails.configuration.x.single_user_mode
+ store[:owner] = object.owner&.id&.to_s
+ end
+
store
end
+ # rubocop:enable Metrics/AbcSize
def compose
store = {}
@@ -89,6 +101,7 @@ class InitialStateSerializer < ActiveModel::Serializer
store = {}
store[object.current_account.id.to_s] = ActiveModelSerializers::SerializableResource.new(object.current_account, serializer: REST::AccountSerializer) if object.current_account
store[object.admin.id.to_s] = ActiveModelSerializers::SerializableResource.new(object.admin, serializer: REST::AccountSerializer) if object.admin
+ store[object.owner.id.to_s] = ActiveModelSerializers::SerializableResource.new(object.owner, serializer: REST::AccountSerializer) if object.owner
store
end
diff --git a/app/serializers/manifest_serializer.rb b/app/serializers/manifest_serializer.rb
index ad05fdf6b4..5604325be4 100644
--- a/app/serializers/manifest_serializer.rb
+++ b/app/serializers/manifest_serializer.rb
@@ -4,35 +4,43 @@ class ManifestSerializer < ActiveModel::Serializer
include RoutingHelper
include ActionView::Helpers::TextHelper
- attributes :name, :short_name, :description,
+ ICON_SIZES = %w(
+ 36
+ 48
+ 72
+ 96
+ 144
+ 192
+ 256
+ 384
+ 512
+ ).freeze
+
+ attributes :name, :short_name,
:icons, :theme_color, :background_color,
:display, :start_url, :scope,
:share_target, :shortcuts
def name
- object.site_title
+ object.title
end
def short_name
- object.site_title
- end
-
- def description
- strip_tags(object.site_short_description.presence || I18n.t('about.about_mastodon_html'))
+ object.title
end
def icons
- [
+ ICON_SIZES.map do |size|
{
- src: '/android-chrome-192x192.png',
- sizes: '192x192',
+ src: full_pack_url("media/icons/android-chrome-#{size}x#{size}.png"),
+ sizes: "#{size}x#{size}",
type: 'image/png',
- },
- ]
+ }
+ end
end
def theme_color
- '#282c37'
+ '#191b22'
end
def background_color
@@ -44,7 +52,7 @@ class ManifestSerializer < ActiveModel::Serializer
end
def start_url
- '/web/home'
+ '/home'
end
def scope
@@ -68,37 +76,12 @@ class ManifestSerializer < ActiveModel::Serializer
def shortcuts
[
{
- name: 'New toot',
- url: '/web/publish',
- icons: [
- {
- src: '/shortcuts/new-status.png',
- type: 'image/png',
- sizes: '192x192',
- },
- ],
+ name: 'Compose new post',
+ url: '/publish',
},
{
name: 'Notifications',
- url: '/web/notifications',
- icons: [
- {
- src: '/shortcuts/notifications.png',
- type: 'image/png',
- sizes: '192x192',
- },
- ],
- },
- {
- name: 'Direct messages',
- url: '/web/conversations',
- icons: [
- {
- src: '/shortcuts/direct.png',
- type: 'image/png',
- sizes: '192x192',
- },
- ],
+ url: '/notifications',
},
]
end
diff --git a/app/serializers/rest/account_serializer.rb b/app/serializers/rest/account_serializer.rb
index e644a3f917..9a3ca75dcd 100644
--- a/app/serializers/rest/account_serializer.rb
+++ b/app/serializers/rest/account_serializer.rb
@@ -14,6 +14,7 @@ class REST::AccountSerializer < ActiveModel::Serializer
attribute :suspended, if: :suspended?
attribute :silenced, key: :limited, if: :silenced?
+ attribute :noindex, if: :local?
class FieldSerializer < ActiveModel::Serializer
include FormattingHelper
@@ -107,7 +108,11 @@ class REST::AccountSerializer < ActiveModel::Serializer
object.silenced?
end
- delegate :suspended?, :silenced?, to: :object
+ def noindex
+ object.user_prefers_noindex?
+ end
+
+ delegate :suspended?, :silenced?, :local?, to: :object
def moved_and_not_nested?
object.moved? && object.moved_to_account.moved_to_account_id.nil?
diff --git a/app/serializers/rest/admin/account_serializer.rb b/app/serializers/rest/admin/account_serializer.rb
index 3480e8c5a1..2fbc7b1cb2 100644
--- a/app/serializers/rest/admin/account_serializer.rb
+++ b/app/serializers/rest/admin/account_serializer.rb
@@ -77,6 +77,6 @@ class REST::Admin::AccountSerializer < ActiveModel::Serializer
end
def ip
- ips&.first
+ ips&.first&.ip
end
end
diff --git a/app/serializers/rest/admin/canonical_email_block_serializer.rb b/app/serializers/rest/admin/canonical_email_block_serializer.rb
new file mode 100644
index 0000000000..fe385940a7
--- /dev/null
+++ b/app/serializers/rest/admin/canonical_email_block_serializer.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+class REST::Admin::CanonicalEmailBlockSerializer < ActiveModel::Serializer
+ attributes :id, :canonical_email_hash
+
+ def id
+ object.id.to_s
+ end
+end
diff --git a/app/serializers/rest/admin/domain_allow_serializer.rb b/app/serializers/rest/admin/domain_allow_serializer.rb
new file mode 100644
index 0000000000..ebdf33815f
--- /dev/null
+++ b/app/serializers/rest/admin/domain_allow_serializer.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+class REST::Admin::DomainAllowSerializer < ActiveModel::Serializer
+ attributes :id, :domain, :created_at
+
+ def id
+ object.id.to_s
+ end
+end
diff --git a/app/serializers/rest/admin/email_domain_block_serializer.rb b/app/serializers/rest/admin/email_domain_block_serializer.rb
new file mode 100644
index 0000000000..a026ff680e
--- /dev/null
+++ b/app/serializers/rest/admin/email_domain_block_serializer.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+class REST::Admin::EmailDomainBlockSerializer < ActiveModel::Serializer
+ attributes :id, :domain, :created_at, :history
+
+ def id
+ object.id.to_s
+ end
+end
diff --git a/app/serializers/rest/admin/ip_block_serializer.rb b/app/serializers/rest/admin/ip_block_serializer.rb
new file mode 100644
index 0000000000..6a38f8b566
--- /dev/null
+++ b/app/serializers/rest/admin/ip_block_serializer.rb
@@ -0,0 +1,14 @@
+# frozen_string_literal: true
+
+class REST::Admin::IpBlockSerializer < ActiveModel::Serializer
+ attributes :id, :ip, :severity, :comment,
+ :created_at, :expires_at
+
+ def id
+ object.id.to_s
+ end
+
+ def ip
+ "#{object.ip}/#{object.ip.prefix}"
+ end
+end
diff --git a/app/serializers/rest/admin/report_serializer.rb b/app/serializers/rest/admin/report_serializer.rb
index 237f41d8e5..44b4726e43 100644
--- a/app/serializers/rest/admin/report_serializer.rb
+++ b/app/serializers/rest/admin/report_serializer.rb
@@ -2,7 +2,7 @@
class REST::Admin::ReportSerializer < ActiveModel::Serializer
attributes :id, :action_taken, :action_taken_at, :category, :comment,
- :created_at, :updated_at
+ :forwarded, :created_at, :updated_at
has_one :account, serializer: REST::Admin::AccountSerializer
has_one :target_account, serializer: REST::Admin::AccountSerializer
diff --git a/app/serializers/rest/credential_account_serializer.rb b/app/serializers/rest/credential_account_serializer.rb
index be0d763dc1..27e1db2077 100644
--- a/app/serializers/rest/credential_account_serializer.rb
+++ b/app/serializers/rest/credential_account_serializer.rb
@@ -3,6 +3,8 @@
class REST::CredentialAccountSerializer < REST::AccountSerializer
attributes :source
+ has_one :role, serializer: REST::RoleSerializer
+
def source
user = object.user
@@ -15,4 +17,8 @@ class REST::CredentialAccountSerializer < REST::AccountSerializer
follow_requests_count: FollowRequest.where(target_account: object).limit(40).count,
}
end
+
+ def role
+ object.user_role
+ end
end
diff --git a/app/serializers/rest/domain_block_serializer.rb b/app/serializers/rest/domain_block_serializer.rb
new file mode 100644
index 0000000000..678463e13b
--- /dev/null
+++ b/app/serializers/rest/domain_block_serializer.rb
@@ -0,0 +1,17 @@
+# frozen_string_literal: true
+
+class REST::DomainBlockSerializer < ActiveModel::Serializer
+ attributes :domain, :digest, :severity, :comment
+
+ def domain
+ object.public_domain
+ end
+
+ def digest
+ object.domain_digest
+ end
+
+ def comment
+ object.public_comment if instance_options[:with_comment]
+ end
+end
diff --git a/app/serializers/rest/extended_description_serializer.rb b/app/serializers/rest/extended_description_serializer.rb
new file mode 100644
index 0000000000..c0fa3450d0
--- /dev/null
+++ b/app/serializers/rest/extended_description_serializer.rb
@@ -0,0 +1,23 @@
+# frozen_string_literal: true
+
+class REST::ExtendedDescriptionSerializer < ActiveModel::Serializer
+ attributes :updated_at, :content
+
+ def updated_at
+ object.updated_at&.iso8601
+ end
+
+ def content
+ if object.text.present?
+ markdown.render(object.text)
+ else
+ ''
+ end
+ end
+
+ private
+
+ def markdown
+ @markdown ||= Redcarpet::Markdown.new(Redcarpet::Render::HTML)
+ end
+end
diff --git a/app/serializers/rest/featured_tag_serializer.rb b/app/serializers/rest/featured_tag_serializer.rb
index 96adcc7d09..c4b35ab03a 100644
--- a/app/serializers/rest/featured_tag_serializer.rb
+++ b/app/serializers/rest/featured_tag_serializer.rb
@@ -12,4 +12,16 @@ class REST::FeaturedTagSerializer < ActiveModel::Serializer
def url
short_account_tag_url(object.account, object.tag)
end
+
+ def name
+ object.display_name
+ end
+
+ def statuses_count
+ object.statuses_count.to_s
+ end
+
+ def last_status_at
+ object.last_status_at&.to_date&.iso8601
+ end
end
diff --git a/app/serializers/rest/filter_keyword_serializer.rb b/app/serializers/rest/filter_keyword_serializer.rb
new file mode 100644
index 0000000000..dd2ebac6ea
--- /dev/null
+++ b/app/serializers/rest/filter_keyword_serializer.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+class REST::FilterKeywordSerializer < ActiveModel::Serializer
+ attributes :id, :keyword, :whole_word
+
+ def id
+ object.id.to_s
+ end
+end
diff --git a/app/serializers/rest/filter_result_serializer.rb b/app/serializers/rest/filter_result_serializer.rb
new file mode 100644
index 0000000000..54ead2f1f1
--- /dev/null
+++ b/app/serializers/rest/filter_result_serializer.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+class REST::FilterResultSerializer < ActiveModel::Serializer
+ belongs_to :filter, serializer: REST::FilterSerializer
+ has_many :keyword_matches
+ has_many :status_matches
+
+ def status_matches
+ object.status_matches&.map(&:to_s)
+ end
+end
diff --git a/app/serializers/rest/filter_serializer.rb b/app/serializers/rest/filter_serializer.rb
index 57205630bb..8816dd8076 100644
--- a/app/serializers/rest/filter_serializer.rb
+++ b/app/serializers/rest/filter_serializer.rb
@@ -1,10 +1,15 @@
# frozen_string_literal: true
class REST::FilterSerializer < ActiveModel::Serializer
- attributes :id, :phrase, :context, :whole_word, :expires_at,
- :irreversible
+ attributes :id, :title, :context, :expires_at, :filter_action
+ has_many :keywords, serializer: REST::FilterKeywordSerializer, if: :rules_requested?
+ has_many :statuses, serializer: REST::FilterStatusSerializer, if: :rules_requested?
def id
object.id.to_s
end
+
+ def rules_requested?
+ instance_options[:rules_requested]
+ end
end
diff --git a/app/serializers/rest/filter_status_serializer.rb b/app/serializers/rest/filter_status_serializer.rb
new file mode 100644
index 0000000000..6bcbaa249c
--- /dev/null
+++ b/app/serializers/rest/filter_status_serializer.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class REST::FilterStatusSerializer < ActiveModel::Serializer
+ attributes :id, :status_id
+
+ def id
+ object.id.to_s
+ end
+
+ def status_id
+ object.status_id.to_s
+ end
+end
diff --git a/app/serializers/rest/instance_serializer.rb b/app/serializers/rest/instance_serializer.rb
index 48bbb55c81..5ae1099d04 100644
--- a/app/serializers/rest/instance_serializer.rb
+++ b/app/serializers/rest/instance_serializer.rb
@@ -1,74 +1,56 @@
# frozen_string_literal: true
class REST::InstanceSerializer < ActiveModel::Serializer
- include RoutingHelper
-
- attributes :uri, :title, :short_description, :description, :email,
- :version, :urls, :stats, :thumbnail, :max_toot_chars, :poll_limits,
- :languages, :registrations, :approval_required, :invites_enabled,
- :configuration
-
- has_one :contact_account, serializer: REST::AccountSerializer
-
- has_many :rules, serializer: REST::RuleSerializer
-
- delegate :contact_account, :rules, to: :instance_presenter
-
- def uri
- Rails.configuration.x.local_domain
- end
-
- def title
- Setting.site_title
- end
+ class ContactSerializer < ActiveModel::Serializer
+ attributes :email
- def short_description
- Setting.site_short_description
+ has_one :account, serializer: REST::AccountSerializer
end
- def description
- Setting.site_description
- end
+ include RoutingHelper
- def email
- Setting.site_contact_email
- end
+ attributes :domain, :title, :version, :source_url, :description,
+ :usage, :thumbnail, :languages, :configuration,
+ :registrations
- def version
- Mastodon::Version.to_s
- end
+ has_one :contact, serializer: ContactSerializer
+ has_many :rules, serializer: REST::RuleSerializer
def thumbnail
- instance_presenter.thumbnail ? full_asset_url(instance_presenter.thumbnail.file.url) : full_pack_url('media/images/preview.jpg')
- end
-
- def max_toot_chars
- StatusLengthValidator::MAX_CHARS
- end
-
- def poll_limits
+ if object.thumbnail
+ {
+ url: full_asset_url(object.thumbnail.file.url(:'@1x')),
+ blurhash: object.thumbnail.blurhash,
+ versions: {
+ '@1x': full_asset_url(object.thumbnail.file.url(:'@1x')),
+ '@2x': full_asset_url(object.thumbnail.file.url(:'@2x')),
+ },
+ }
+ else
+ {
+ url: full_pack_url('media/images/preview.png'),
+ }
+ end
+ end
+
+ def usage
{
- max_options: PollValidator::MAX_OPTIONS,
- max_option_chars: PollValidator::MAX_OPTION_CHARS,
- min_expiration: PollValidator::MIN_EXPIRATION,
- max_expiration: PollValidator::MAX_EXPIRATION,
+ users: {
+ active_month: object.active_user_count(4),
+ },
}
end
- def stats
+ def configuration
{
- user_count: instance_presenter.user_count,
- status_count: instance_presenter.status_count,
- domain_count: instance_presenter.domain_count,
- }
- end
+ urls: {
+ streaming: Rails.configuration.x.streaming_api_base_url,
+ },
- def urls
- { streaming_api: Rails.configuration.x.streaming_api_base_url }
- end
+ accounts: {
+ max_featured_tags: FeaturedTag::LIMIT,
+ },
- def configuration
- {
statuses: {
max_characters: StatusLengthValidator::MAX_CHARS,
max_media_attachments: 4,
@@ -90,28 +72,36 @@ class REST::InstanceSerializer < ActiveModel::Serializer
min_expiration: PollValidator::MIN_EXPIRATION,
max_expiration: PollValidator::MAX_EXPIRATION,
},
- }
- end
- def languages
- [I18n.default_locale]
+ translation: {
+ enabled: TranslationService.configured?,
+ },
+ }
end
def registrations
- Setting.registrations_mode != 'none' && !Rails.configuration.x.single_user_mode
+ {
+ enabled: registrations_enabled?,
+ approval_required: Setting.registrations_mode == 'approved',
+ message: registrations_enabled? ? nil : registrations_message,
+ }
end
- def approval_required
- Setting.registrations_mode == 'approved'
- end
+ private
- def invites_enabled
- Setting.min_invite_role == 'user'
+ def registrations_enabled?
+ Setting.registrations_mode != 'none' && !Rails.configuration.x.single_user_mode
end
- private
+ def registrations_message
+ if Setting.closed_registrations_message.present?
+ markdown.render(Setting.closed_registrations_message)
+ else
+ nil
+ end
+ end
- def instance_presenter
- @instance_presenter ||= InstancePresenter.new
+ def markdown
+ @markdown ||= Redcarpet::Markdown.new(Redcarpet::Render::HTML, no_images: true)
end
end
diff --git a/app/serializers/rest/notification_serializer.rb b/app/serializers/rest/notification_serializer.rb
index 69b81f6deb..137fc53dda 100644
--- a/app/serializers/rest/notification_serializer.rb
+++ b/app/serializers/rest/notification_serializer.rb
@@ -5,6 +5,7 @@ class REST::NotificationSerializer < ActiveModel::Serializer
belongs_to :from_account, key: :account, serializer: REST::AccountSerializer
belongs_to :target_status, key: :status, if: :status_type?, serializer: REST::StatusSerializer
+ belongs_to :report, if: :report_type?, serializer: REST::ReportSerializer
def id
object.id.to_s
@@ -13,4 +14,8 @@ class REST::NotificationSerializer < ActiveModel::Serializer
def status_type?
[:favourite, :reblog, :status, :mention, :poll, :update].include?(object.type)
end
+
+ def report_type?
+ object.type == :'admin.report'
+ end
end
diff --git a/app/serializers/rest/privacy_policy_serializer.rb b/app/serializers/rest/privacy_policy_serializer.rb
new file mode 100644
index 0000000000..f0572e714d
--- /dev/null
+++ b/app/serializers/rest/privacy_policy_serializer.rb
@@ -0,0 +1,19 @@
+# frozen_string_literal: true
+
+class REST::PrivacyPolicySerializer < ActiveModel::Serializer
+ attributes :updated_at, :content
+
+ def updated_at
+ object.updated_at.iso8601
+ end
+
+ def content
+ markdown.render(object.text % { domain: Rails.configuration.x.local_domain })
+ end
+
+ private
+
+ def markdown
+ @markdown ||= Redcarpet::Markdown.new(Redcarpet::Render::HTML, escape_html: true, no_images: true)
+ end
+end
diff --git a/app/serializers/rest/relationship_serializer.rb b/app/serializers/rest/relationship_serializer.rb
index afd4cddf9b..31fc60eb25 100644
--- a/app/serializers/rest/relationship_serializer.rb
+++ b/app/serializers/rest/relationship_serializer.rb
@@ -1,7 +1,7 @@
# frozen_string_literal: true
class REST::RelationshipSerializer < ActiveModel::Serializer
- attributes :id, :following, :showing_reblogs, :notifying, :followed_by,
+ attributes :id, :following, :showing_reblogs, :notifying, :languages, :followed_by,
:blocking, :blocked_by, :muting, :muting_notifications, :requested,
:domain_blocking, :endorsed, :note
@@ -25,6 +25,11 @@ class REST::RelationshipSerializer < ActiveModel::Serializer
false
end
+ def languages
+ (instance_options[:relationships].following[object.id] || {})[:languages] ||
+ (instance_options[:relationships].requested[object.id] || {})[:languages]
+ end
+
def followed_by
instance_options[:relationships].followed_by[object.id] || false
end
diff --git a/app/serializers/rest/report_serializer.rb b/app/serializers/rest/report_serializer.rb
index ecb88d653f..de68dfc6da 100644
--- a/app/serializers/rest/report_serializer.rb
+++ b/app/serializers/rest/report_serializer.rb
@@ -1,7 +1,10 @@
# frozen_string_literal: true
class REST::ReportSerializer < ActiveModel::Serializer
- attributes :id, :action_taken
+ attributes :id, :action_taken, :action_taken_at, :category, :comment,
+ :forwarded, :created_at, :status_ids, :rule_ids
+
+ has_one :target_account, serializer: REST::AccountSerializer
def id
object.id.to_s
diff --git a/app/serializers/rest/role_serializer.rb b/app/serializers/rest/role_serializer.rb
new file mode 100644
index 0000000000..5b81c6e048
--- /dev/null
+++ b/app/serializers/rest/role_serializer.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class REST::RoleSerializer < ActiveModel::Serializer
+ attributes :id, :name, :permissions, :color, :highlighted
+
+ def id
+ object.id.to_s
+ end
+
+ def permissions
+ object.computed_permissions.to_s
+ end
+end
diff --git a/app/serializers/rest/status_serializer.rb b/app/serializers/rest/status_serializer.rb
index ef2c6c6e55..659c45b835 100644
--- a/app/serializers/rest/status_serializer.rb
+++ b/app/serializers/rest/status_serializer.rb
@@ -14,6 +14,7 @@ class REST::StatusSerializer < ActiveModel::Serializer
attribute :bookmarked, if: :current_user?
attribute :pinned, if: :pinnable?
attribute :local_only if :local?
+ has_many :filtered, serializer: REST::FilterResultSerializer, if: :current_user?
attribute :content, unless: :source_requested?
attribute :text, if: :source_requested?
@@ -122,6 +123,14 @@ class REST::StatusSerializer < ActiveModel::Serializer
end
end
+ def filtered
+ if instance_options && instance_options[:relationships]
+ instance_options[:relationships].filters_map[object.id] || []
+ else
+ current_user.account.status_matches_filters(object)
+ end
+ end
+
def pinnable?
current_user? &&
current_user.account_id == object.account_id &&
diff --git a/app/serializers/rest/tag_serializer.rb b/app/serializers/rest/tag_serializer.rb
index 74aa571a4c..7801e77d1f 100644
--- a/app/serializers/rest/tag_serializer.rb
+++ b/app/serializers/rest/tag_serializer.rb
@@ -5,7 +5,25 @@ class REST::TagSerializer < ActiveModel::Serializer
attributes :name, :url, :history
+ attribute :following, if: :current_user?
+
def url
tag_url(object)
end
+
+ def name
+ object.display_name
+ end
+
+ def following
+ if instance_options && instance_options[:relationships]
+ instance_options[:relationships].following_map[object.id] || false
+ else
+ TagFollow.where(tag_id: object.id, account_id: current_user.account_id).exists?
+ end
+ end
+
+ def current_user?
+ !current_user.nil?
+ end
end
diff --git a/app/serializers/rest/translation_serializer.rb b/app/serializers/rest/translation_serializer.rb
new file mode 100644
index 0000000000..05ededc95c
--- /dev/null
+++ b/app/serializers/rest/translation_serializer.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+class REST::TranslationSerializer < ActiveModel::Serializer
+ attributes :content, :detected_source_language, :provider
+
+ def content
+ object.text
+ end
+end
diff --git a/app/serializers/rest/v1/filter_serializer.rb b/app/serializers/rest/v1/filter_serializer.rb
new file mode 100644
index 0000000000..455f17efdb
--- /dev/null
+++ b/app/serializers/rest/v1/filter_serializer.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+class REST::V1::FilterSerializer < ActiveModel::Serializer
+ attributes :id, :phrase, :context, :whole_word, :expires_at,
+ :irreversible
+
+ delegate :context, :expires_at, to: :custom_filter
+
+ def id
+ object.id.to_s
+ end
+
+ def phrase
+ object.keyword
+ end
+
+ def irreversible
+ custom_filter.irreversible?
+ end
+
+ private
+
+ def custom_filter
+ object.custom_filter
+ end
+end
diff --git a/app/serializers/rest/v1/instance_serializer.rb b/app/serializers/rest/v1/instance_serializer.rb
new file mode 100644
index 0000000000..389ec7dffc
--- /dev/null
+++ b/app/serializers/rest/v1/instance_serializer.rb
@@ -0,0 +1,119 @@
+# frozen_string_literal: true
+
+class REST::V1::InstanceSerializer < ActiveModel::Serializer
+ include RoutingHelper
+
+ attributes :uri, :title, :short_description, :description, :email,
+ :version, :urls, :stats, :thumbnail, :max_toot_chars, :poll_limits,
+ :languages, :registrations, :approval_required, :invites_enabled,
+ :configuration
+
+ has_one :contact_account, serializer: REST::AccountSerializer
+
+ has_many :rules, serializer: REST::RuleSerializer
+
+ def uri
+ object.domain
+ end
+
+ def short_description
+ object.description
+ end
+
+ def description
+ Setting.site_description # Legacy
+ end
+
+ def email
+ object.contact.email
+ end
+
+ def contact_account
+ object.contact.account
+ end
+
+ def thumbnail
+ instance_presenter.thumbnail ? full_asset_url(instance_presenter.thumbnail.file.url(:'@1x')) : full_pack_url('media/images/preview.png')
+ end
+
+ def max_toot_chars
+ StatusLengthValidator::MAX_CHARS
+ end
+
+ def poll_limits
+ {
+ max_options: PollValidator::MAX_OPTIONS,
+ max_option_chars: PollValidator::MAX_OPTION_CHARS,
+ min_expiration: PollValidator::MIN_EXPIRATION,
+ max_expiration: PollValidator::MAX_EXPIRATION,
+ }
+ end
+
+ def stats
+ {
+ user_count: instance_presenter.user_count,
+ status_count: instance_presenter.status_count,
+ domain_count: instance_presenter.domain_count,
+ }
+ end
+
+ def urls
+ { streaming_api: Rails.configuration.x.streaming_api_base_url }
+ end
+
+ def usage
+ {
+ users: {
+ active_month: instance_presenter.active_user_count(4),
+ },
+ }
+ end
+
+ def configuration
+ {
+ accounts: {
+ max_featured_tags: FeaturedTag::LIMIT,
+ },
+
+ statuses: {
+ max_characters: StatusLengthValidator::MAX_CHARS,
+ max_media_attachments: 4,
+ characters_reserved_per_url: StatusLengthValidator::URL_PLACEHOLDER_CHARS,
+ },
+
+ media_attachments: {
+ supported_mime_types: MediaAttachment::IMAGE_MIME_TYPES + MediaAttachment::VIDEO_MIME_TYPES + MediaAttachment::AUDIO_MIME_TYPES,
+ image_size_limit: MediaAttachment::IMAGE_LIMIT,
+ image_matrix_limit: Attachmentable::MAX_MATRIX_LIMIT,
+ video_size_limit: MediaAttachment::VIDEO_LIMIT,
+ video_frame_rate_limit: MediaAttachment::MAX_VIDEO_FRAME_RATE,
+ video_matrix_limit: MediaAttachment::MAX_VIDEO_MATRIX_LIMIT,
+ },
+
+ polls: {
+ max_options: PollValidator::MAX_OPTIONS,
+ max_characters_per_option: PollValidator::MAX_OPTION_CHARS,
+ min_expiration: PollValidator::MIN_EXPIRATION,
+ max_expiration: PollValidator::MAX_EXPIRATION,
+ },
+ }
+ end
+
+ def registrations
+ Setting.registrations_mode != 'none' && !Rails.configuration.x.single_user_mode
+ end
+
+ def approval_required
+ Setting.registrations_mode == 'approved'
+ end
+
+ def invites_enabled
+ UserRole.everyone.can?(:invite_users)
+ end
+
+ private
+
+ def instance_presenter
+ @instance_presenter ||= InstancePresenter.new
+ end
+end
diff --git a/app/services/account_search_service.rb b/app/services/account_search_service.rb
index 6fe4b6593a..9f2330a947 100644
--- a/app/services/account_search_service.rb
+++ b/app/services/account_search_service.rb
@@ -3,6 +3,9 @@
class AccountSearchService < BaseService
attr_reader :query, :limit, :offset, :options, :account
+ # Min. number of characters to look for non-exact matches
+ MIN_QUERY_LENGTH = 5
+
def call(query, account = nil, options = {})
@acct_hint = query&.start_with?('@')
@query = query&.strip&.gsub(/\A@/, '')
@@ -61,11 +64,11 @@ class AccountSearchService < BaseService
end
def advanced_search_results
- Account.advanced_search_for(terms_for_query, account, limit_for_non_exact_results, options[:following], offset)
+ Account.advanced_search_for(terms_for_query, account, limit: limit_for_non_exact_results, following: options[:following], offset: offset)
end
def simple_search_results
- Account.search_for(terms_for_query, limit_for_non_exact_results, offset)
+ Account.search_for(terms_for_query, limit: limit_for_non_exact_results, offset: offset)
end
def from_elasticsearch
@@ -102,7 +105,7 @@ class AccountSearchService < BaseService
{
script_score: {
script: {
- source: "(doc['followers_count'].value + 0.0) / (doc['followers_count'].value + doc['following_count'].value + 1)",
+ source: "(Math.max(doc['followers_count'].value, 0) + 0.0) / (Math.max(doc['followers_count'].value, 0) + Math.max(doc['following_count'].value, 0) + 1)",
},
},
}
@@ -110,10 +113,10 @@ class AccountSearchService < BaseService
def followers_score_function
{
- field_value_factor: {
- field: 'followers_count',
- modifier: 'log2p',
- missing: 0,
+ script_score: {
+ script: {
+ source: "Math.log10(Math.max(doc['followers_count'].value, 0) + 2)",
+ },
},
}
end
@@ -135,6 +138,8 @@ class AccountSearchService < BaseService
end
def limit_for_non_exact_results
+ return 0 if @account.nil? && query.size < MIN_QUERY_LENGTH
+
if exact_match?
limit - 1
else
diff --git a/app/services/activitypub/fetch_featured_collection_service.rb b/app/services/activitypub/fetch_featured_collection_service.rb
index 37d05e0556..50a187ad98 100644
--- a/app/services/activitypub/fetch_featured_collection_service.rb
+++ b/app/services/activitypub/fetch_featured_collection_service.rb
@@ -3,10 +3,11 @@
class ActivityPub::FetchFeaturedCollectionService < BaseService
include JsonLdHelper
- def call(account)
+ def call(account, **options)
return if account.featured_collection_url.blank? || account.suspended? || account.local?
@account = account
+ @options = options
@json = fetch_resource(@account.featured_collection_url, true, local_follower)
return unless supported_context?(@json)
@@ -36,7 +37,14 @@ class ActivityPub::FetchFeaturedCollectionService < BaseService
end
def process_items(items)
+ process_note_items(items) if @options[:note]
+ process_hashtag_items(items) if @options[:hashtag]
+ end
+
+ def process_note_items(items)
status_ids = items.filter_map do |item|
+ next unless item.is_a?(String) || item['type'] == 'Note'
+
uri = value_or_id(item)
next if ActivityPub::TagManager.instance.local_uri?(uri)
@@ -67,6 +75,26 @@ class ActivityPub::FetchFeaturedCollectionService < BaseService
end
end
+ def process_hashtag_items(items)
+ names = items.filter_map { |item| item['type'] == 'Hashtag' && item['name']&.delete_prefix('#') }.map { |name| HashtagNormalizer.new.normalize(name) }
+ to_remove = []
+ to_add = names
+
+ FeaturedTag.where(account: @account).map(&:name).each do |name|
+ if names.include?(name)
+ to_add.delete(name)
+ else
+ to_remove << name
+ end
+ end
+
+ FeaturedTag.includes(:tag).where(account: @account, tags: { name: to_remove }).delete_all unless to_remove.empty?
+
+ to_add.each do |name|
+ FeaturedTag.create!(account: @account, name: name)
+ end
+ end
+
def local_follower
return @local_follower if defined?(@local_follower)
diff --git a/app/services/activitypub/fetch_featured_tags_collection_service.rb b/app/services/activitypub/fetch_featured_tags_collection_service.rb
new file mode 100644
index 0000000000..5559199381
--- /dev/null
+++ b/app/services/activitypub/fetch_featured_tags_collection_service.rb
@@ -0,0 +1,78 @@
+# frozen_string_literal: true
+
+class ActivityPub::FetchFeaturedTagsCollectionService < BaseService
+ include JsonLdHelper
+
+ def call(account, url)
+ return if url.blank? || account.suspended? || account.local?
+
+ @account = account
+ @json = fetch_resource(url, true, local_follower)
+
+ return unless supported_context?(@json)
+
+ process_items(collection_items(@json))
+ end
+
+ private
+
+ def collection_items(collection)
+ all_items = []
+
+ collection = fetch_collection(collection['first']) if collection['first'].present?
+
+ while collection.is_a?(Hash)
+ items = begin
+ case collection['type']
+ when 'Collection', 'CollectionPage'
+ collection['items']
+ when 'OrderedCollection', 'OrderedCollectionPage'
+ collection['orderedItems']
+ end
+ end
+
+ break if items.blank?
+
+ all_items.concat(items)
+
+ break if all_items.size >= FeaturedTag::LIMIT
+
+ collection = collection['next'].present? ? fetch_collection(collection['next']) : nil
+ end
+
+ all_items
+ end
+
+ def fetch_collection(collection_or_uri)
+ return collection_or_uri if collection_or_uri.is_a?(Hash)
+ return if invalid_origin?(collection_or_uri)
+
+ fetch_resource_without_id_validation(collection_or_uri, local_follower, true)
+ end
+
+ def process_items(items)
+ names = items.filter_map { |item| item['type'] == 'Hashtag' && item['name']&.delete_prefix('#') }.map { |name| HashtagNormalizer.new.normalize(name) }
+ to_remove = []
+ to_add = names
+
+ FeaturedTag.where(account: @account).map(&:name).each do |name|
+ if names.include?(name)
+ to_add.delete(name)
+ else
+ to_remove << name
+ end
+ end
+
+ FeaturedTag.includes(:tag).where(account: @account, tags: { name: to_remove }).delete_all unless to_remove.empty?
+
+ to_add.each do |name|
+ FeaturedTag.create!(account: @account, name: name)
+ end
+ end
+
+ def local_follower
+ return @local_follower if defined?(@local_follower)
+
+ @local_follower = @account.followers.local.without_suspended.first
+ end
+end
diff --git a/app/services/activitypub/fetch_remote_account_service.rb b/app/services/activitypub/fetch_remote_account_service.rb
index 9d01f53868..ca7a8c6ca8 100644
--- a/app/services/activitypub/fetch_remote_account_service.rb
+++ b/app/services/activitypub/fetch_remote_account_service.rb
@@ -1,66 +1,12 @@
# frozen_string_literal: true
-class ActivityPub::FetchRemoteAccountService < BaseService
- include JsonLdHelper
- include DomainControlHelper
- include WebfingerHelper
-
- SUPPORTED_TYPES = %w(Application Group Organization Person Service).freeze
-
+class ActivityPub::FetchRemoteAccountService < ActivityPub::FetchRemoteActorService
# Does a WebFinger roundtrip on each call, unless `only_key` is true
- def call(uri, id: true, prefetched_body: nil, break_on_redirect: false, only_key: false)
- return if domain_not_allowed?(uri)
- return ActivityPub::TagManager.instance.uri_to_resource(uri, Account) if ActivityPub::TagManager.instance.local_uri?(uri)
-
- @json = begin
- if prefetched_body.nil?
- fetch_resource(uri, id)
- else
- body_to_json(prefetched_body, compare_id: id ? uri : nil)
- end
- end
-
- return if !supported_context? || !expected_type? || (break_on_redirect && @json['movedTo'].present?)
-
- @uri = @json['id']
- @username = @json['preferredUsername']
- @domain = Addressable::URI.parse(@uri).normalized_host
-
- return unless only_key || verified_webfinger?
-
- ActivityPub::ProcessAccountService.new.call(@username, @domain, @json, only_key: only_key, verified_webfinger: !only_key)
- rescue Oj::ParseError
- nil
- end
-
- private
-
- def verified_webfinger?
- webfinger = webfinger!("acct:#{@username}@#{@domain}")
- confirmed_username, confirmed_domain = split_acct(webfinger.subject)
-
- return webfinger.link('self', 'href') == @uri if @username.casecmp(confirmed_username).zero? && @domain.casecmp(confirmed_domain).zero?
-
- webfinger = webfinger!("acct:#{confirmed_username}@#{confirmed_domain}")
- @username, @domain = split_acct(webfinger.subject)
-
- return false unless @username.casecmp(confirmed_username).zero? && @domain.casecmp(confirmed_domain).zero?
- return false if webfinger.link('self', 'href') != @uri
-
- true
- rescue Webfinger::Error
- false
- end
-
- def split_acct(acct)
- acct.gsub(/\Aacct:/, '').split('@')
- end
-
- def supported_context?
- super(@json)
- end
+ def call(uri, id: true, prefetched_body: nil, break_on_redirect: false, only_key: false, suppress_errors: true)
+ actor = super
+ return actor if actor.nil? || actor.is_a?(Account)
- def expected_type?
- equals_or_includes_any?(@json['type'], SUPPORTED_TYPES)
+ Rails.logger.debug "Fetching account #{uri} failed: Expected Account, got #{actor.class.name}"
+ raise Error, "Expected Account, got #{actor.class.name}" unless suppress_errors
end
end
diff --git a/app/services/activitypub/fetch_remote_actor_service.rb b/app/services/activitypub/fetch_remote_actor_service.rb
new file mode 100644
index 0000000000..17bf2f2876
--- /dev/null
+++ b/app/services/activitypub/fetch_remote_actor_service.rb
@@ -0,0 +1,80 @@
+# frozen_string_literal: true
+
+class ActivityPub::FetchRemoteActorService < BaseService
+ include JsonLdHelper
+ include DomainControlHelper
+ include WebfingerHelper
+
+ class Error < StandardError; end
+
+ SUPPORTED_TYPES = %w(Application Group Organization Person Service).freeze
+
+ # Does a WebFinger roundtrip on each call, unless `only_key` is true
+ def call(uri, id: true, prefetched_body: nil, break_on_redirect: false, only_key: false, suppress_errors: true)
+ return if domain_not_allowed?(uri)
+ return ActivityPub::TagManager.instance.uri_to_actor(uri) if ActivityPub::TagManager.instance.local_uri?(uri)
+
+ @json = begin
+ if prefetched_body.nil?
+ fetch_resource(uri, id)
+ else
+ body_to_json(prefetched_body, compare_id: id ? uri : nil)
+ end
+ rescue Oj::ParseError
+ raise Error, "Error parsing JSON-LD document #{uri}"
+ end
+
+ raise Error, "Error fetching actor JSON at #{uri}" if @json.nil?
+ raise Error, "Unsupported JSON-LD context for document #{uri}" unless supported_context?
+ raise Error, "Unexpected object type for actor #{uri} (expected any of: #{SUPPORTED_TYPES})" unless expected_type?
+ raise Error, "Actor #{uri} has moved to #{@json['movedTo']}" if break_on_redirect && @json['movedTo'].present?
+
+ @uri = @json['id']
+ @username = @json['preferredUsername']
+ @domain = Addressable::URI.parse(@uri).normalized_host
+
+ check_webfinger! unless only_key
+
+ ActivityPub::ProcessAccountService.new.call(@username, @domain, @json, only_key: only_key, verified_webfinger: !only_key)
+ rescue Error => e
+ Rails.logger.debug "Fetching actor #{uri} failed: #{e.message}"
+ raise unless suppress_errors
+ end
+
+ private
+
+ def check_webfinger!
+ webfinger = webfinger!("acct:#{@username}@#{@domain}")
+ confirmed_username, confirmed_domain = split_acct(webfinger.subject)
+
+ if @username.casecmp(confirmed_username).zero? && @domain.casecmp(confirmed_domain).zero?
+ raise Error, "Webfinger response for #{@username}@#{@domain} does not loop back to #{@uri}" if webfinger.link('self', 'href') != @uri
+ return
+ end
+
+ webfinger = webfinger!("acct:#{confirmed_username}@#{confirmed_domain}")
+ @username, @domain = split_acct(webfinger.subject)
+
+ unless confirmed_username.casecmp(@username).zero? && confirmed_domain.casecmp(@domain).zero?
+ raise Webfinger::RedirectError, "Too many webfinger redirects for URI #{uri} (stopped at #{@username}@#{@domain})"
+ end
+
+ raise Error, "Webfinger response for #{@username}@#{@domain} does not loop back to #{@uri}" if webfinger.link('self', 'href') != @uri
+ rescue Webfinger::RedirectError => e
+ raise Error, e.message
+ rescue Webfinger::Error => e
+ raise Error, "Webfinger error when resolving #{@username}@#{@domain}: #{e.message}"
+ end
+
+ def split_acct(acct)
+ acct.gsub(/\Aacct:/, '').split('@')
+ end
+
+ def supported_context?
+ super(@json)
+ end
+
+ def expected_type?
+ equals_or_includes_any?(@json['type'], SUPPORTED_TYPES)
+ end
+end
diff --git a/app/services/activitypub/fetch_remote_key_service.rb b/app/services/activitypub/fetch_remote_key_service.rb
index c48288b3ba..32e82b47a5 100644
--- a/app/services/activitypub/fetch_remote_key_service.rb
+++ b/app/services/activitypub/fetch_remote_key_service.rb
@@ -3,17 +3,19 @@
class ActivityPub::FetchRemoteKeyService < BaseService
include JsonLdHelper
- # Returns account that owns the key
- def call(uri, id: true, prefetched_body: nil)
- return if uri.blank?
+ class Error < StandardError; end
+
+ # Returns actor that owns the key
+ def call(uri, id: true, prefetched_body: nil, suppress_errors: true)
+ raise Error, 'No key URI given' if uri.blank?
if prefetched_body.nil?
if id
@json = fetch_resource_without_id_validation(uri)
- if person?
+ if actor_type?
@json = fetch_resource(@json['id'], true)
elsif uri != @json['id']
- return
+ raise Error, "Fetched URI #{uri} has wrong id #{@json['id']}"
end
else
@json = fetch_resource(uri, id)
@@ -22,30 +24,38 @@ class ActivityPub::FetchRemoteKeyService < BaseService
@json = body_to_json(prefetched_body, compare_id: id ? uri : nil)
end
- return unless supported_context?(@json) && expected_type?
- return find_account(@json['id'], @json) if person?
+ raise Error, "Unable to fetch key JSON at #{uri}" if @json.nil?
+ raise Error, "Unsupported JSON-LD context for document #{uri}" unless supported_context?(@json)
+ raise Error, "Unexpected object type for key #{uri}" unless expected_type?
+ return find_actor(@json['id'], @json, suppress_errors) if actor_type?
@owner = fetch_resource(owner_uri, true)
- return unless supported_context?(@owner) && confirmed_owner?
+ raise Error, "Unable to fetch actor JSON #{owner_uri}" if @owner.nil?
+ raise Error, "Unsupported JSON-LD context for document #{owner_uri}" unless supported_context?(@owner)
+ raise Error, "Unexpected object type for actor #{owner_uri} (expected any of: #{SUPPORTED_TYPES})" unless expected_owner_type?
+ raise Error, "publicKey id for #{owner_uri} does not correspond to #{@json['id']}" unless confirmed_owner?
- find_account(owner_uri, @owner)
+ find_actor(owner_uri, @owner, suppress_errors)
+ rescue Error => e
+ Rails.logger.debug "Fetching key #{uri} failed: #{e.message}"
+ raise unless suppress_errors
end
private
- def find_account(uri, prefetched_body)
- account = ActivityPub::TagManager.instance.uri_to_resource(uri, Account)
- account ||= ActivityPub::FetchRemoteAccountService.new.call(uri, prefetched_body: prefetched_body)
- account
+ def find_actor(uri, prefetched_body, suppress_errors)
+ actor = ActivityPub::TagManager.instance.uri_to_actor(uri)
+ actor ||= ActivityPub::FetchRemoteActorService.new.call(uri, prefetched_body: prefetched_body, suppress_errors: suppress_errors)
+ actor
end
def expected_type?
- person? || public_key?
+ actor_type? || public_key?
end
- def person?
- equals_or_includes_any?(@json['type'], ActivityPub::FetchRemoteAccountService::SUPPORTED_TYPES)
+ def actor_type?
+ equals_or_includes_any?(@json['type'], ActivityPub::FetchRemoteActorService::SUPPORTED_TYPES)
end
def public_key?
@@ -56,7 +66,11 @@ class ActivityPub::FetchRemoteKeyService < BaseService
@owner_uri ||= value_or_id(@json['owner'])
end
+ def expected_owner_type?
+ equals_or_includes_any?(@owner['type'], ActivityPub::FetchRemoteActorService::SUPPORTED_TYPES)
+ end
+
def confirmed_owner?
- equals_or_includes_any?(@owner['type'], ActivityPub::FetchRemoteAccountService::SUPPORTED_TYPES) && value_or_id(@owner['publicKey']) == @json['id']
+ value_or_id(@owner['publicKey']) == @json['id']
end
end
diff --git a/app/services/activitypub/process_account_service.rb b/app/services/activitypub/process_account_service.rb
index 4449a54270..3834d79ccf 100644
--- a/app/services/activitypub/process_account_service.rb
+++ b/app/services/activitypub/process_account_service.rb
@@ -32,8 +32,6 @@ class ActivityPub::ProcessAccountService < BaseService
process_duplicate_accounts! if @options[:verified_webfinger]
end
- return if @account.nil?
-
after_protocol_change! if protocol_changed?
after_key_change! if key_changed? && !@options[:signed_with_known_key]
clear_tombstones! if key_changed?
@@ -41,6 +39,7 @@ class ActivityPub::ProcessAccountService < BaseService
unless @options[:only_key] || @account.suspended?
check_featured_collection! if @account.featured_collection_url.present?
+ check_featured_tags_collection! if @json['featuredTags'].present?
check_links! unless @account.fields.empty?
end
@@ -105,11 +104,13 @@ class ActivityPub::ProcessAccountService < BaseService
def set_fetchable_attributes!
begin
@account.avatar_remote_url = image_url('icon') || '' unless skip_download?
+ @account.avatar = nil if @account.avatar_remote_url.blank?
rescue Mastodon::UnexpectedResponseError, HTTP::TimeoutError, HTTP::ConnectionError, OpenSSL::SSL::SSLError
RedownloadAvatarWorker.perform_in(rand(30..600).seconds, @account.id)
end
begin
@account.header_remote_url = image_url('image') || '' unless skip_download?
+ @account.header = nil if @account.header_remote_url.blank?
rescue Mastodon::UnexpectedResponseError, HTTP::TimeoutError, HTTP::ConnectionError, OpenSSL::SSL::SSLError
RedownloadHeaderWorker.perform_in(rand(30..600).seconds, @account.id)
end
@@ -149,7 +150,11 @@ class ActivityPub::ProcessAccountService < BaseService
end
def check_featured_collection!
- ActivityPub::SynchronizeFeaturedCollectionWorker.perform_async(@account.id)
+ ActivityPub::SynchronizeFeaturedCollectionWorker.perform_async(@account.id, { 'hashtag' => @json['featuredTags'].blank? })
+ end
+
+ def check_featured_tags_collection!
+ ActivityPub::SynchronizeFeaturedTagsCollectionWorker.perform_async(@account.id, @json['featuredTags'])
end
def check_links!
diff --git a/app/services/activitypub/process_collection_service.rb b/app/services/activitypub/process_collection_service.rb
index eb008c40a2..fffe301957 100644
--- a/app/services/activitypub/process_collection_service.rb
+++ b/app/services/activitypub/process_collection_service.rb
@@ -3,8 +3,8 @@
class ActivityPub::ProcessCollectionService < BaseService
include JsonLdHelper
- def call(body, account, **options)
- @account = account
+ def call(body, actor, **options)
+ @account = actor
@json = original_json = Oj.load(body, mode: :strict)
@options = options
@@ -16,6 +16,7 @@ class ActivityPub::ProcessCollectionService < BaseService
end
return if !supported_context? || (different_actor? && verify_account!.nil?) || suspended_actor? || @account.local?
+ return unless @account.is_a?(Account)
if @json['signature'].present?
# We have verified the signature, but in the compaction step above, might
@@ -66,8 +67,10 @@ class ActivityPub::ProcessCollectionService < BaseService
end
def verify_account!
- @options[:relayed_through_account] = @account
- @account = ActivityPub::LinkedDataSignature.new(@json).verify_account!
+ @options[:relayed_through_actor] = @account
+ @account = ActivityPub::LinkedDataSignature.new(@json).verify_actor!
+ @account = nil unless @account.is_a?(Account)
+ @account
rescue JSON::LD::JsonLdError => e
Rails.logger.debug "Could not verify LD-Signature for #{value_or_id(@json['actor'])}: #{e.message}"
nil
diff --git a/app/services/app_sign_up_service.rb b/app/services/app_sign_up_service.rb
index e006941577..3833327bbc 100644
--- a/app/services/app_sign_up_service.rb
+++ b/app/services/app_sign_up_service.rb
@@ -2,23 +2,67 @@
class AppSignUpService < BaseService
def call(app, remote_ip, params)
- return unless allowed_registrations?
+ @app = app
+ @remote_ip = remote_ip
+ @params = params
- user_params = params.slice(:email, :password, :agreement, :locale)
- account_params = params.slice(:username)
- invite_request_params = { text: params[:reason] }
- user = User.create!(user_params.merge(created_by_application: app, sign_up_ip: remote_ip, password_confirmation: user_params[:password], account_attributes: account_params, invite_request_attributes: invite_request_params))
+ raise Mastodon::NotPermittedError unless allowed_registrations?
- Doorkeeper::AccessToken.create!(application: app,
- resource_owner_id: user.id,
- scopes: app.scopes,
- expires_in: Doorkeeper.configuration.access_token_expires_in,
- use_refresh_token: Doorkeeper.configuration.refresh_token_enabled?)
+ ApplicationRecord.transaction do
+ create_user!
+ create_access_token!
+ end
+
+ @access_token
end
private
+ def create_user!
+ @user = User.create!(
+ user_params.merge(created_by_application: @app, sign_up_ip: @remote_ip, password_confirmation: user_params[:password], account_attributes: account_params, invite_request_attributes: invite_request_params)
+ )
+ end
+
+ def create_access_token!
+ @access_token = Doorkeeper::AccessToken.create!(
+ application: @app,
+ resource_owner_id: @user.id,
+ scopes: @app.scopes,
+ expires_in: Doorkeeper.configuration.access_token_expires_in,
+ use_refresh_token: Doorkeeper.configuration.refresh_token_enabled?
+ )
+ end
+
+ def user_params
+ @params.slice(:email, :password, :agreement, :locale)
+ end
+
+ def account_params
+ @params.slice(:username)
+ end
+
+ def invite_request_params
+ { text: @params[:reason] }
+ end
+
def allowed_registrations?
- Setting.registrations_mode != 'none' && !Rails.configuration.x.single_user_mode
+ registrations_open? && !single_user_mode? && !omniauth_only? && !ip_blocked?
+ end
+
+ def registrations_open?
+ Setting.registrations_mode != 'none'
+ end
+
+ def single_user_mode?
+ Rails.configuration.x.single_user_mode
+ end
+
+ def omniauth_only?
+ ENV['OMNIAUTH_ONLY'] == 'true'
+ end
+
+ def ip_blocked?
+ IpBlock.where(severity: :sign_up_block).where('ip >>= ?', @remote_ip.to_s).exists?
end
end
diff --git a/app/services/appeal_service.rb b/app/services/appeal_service.rb
index cef9be05fd..399a053d6a 100644
--- a/app/services/appeal_service.rb
+++ b/app/services/appeal_service.rb
@@ -22,7 +22,7 @@ class AppealService < BaseService
end
def notify_staff!
- User.staff.includes(:account).each do |u|
+ User.those_who_can(:manage_appeals).includes(:account).each do |u|
AdminMailer.new_appeal(u.account, @appeal).deliver_later if u.allows_appeal_emails?
end
end
diff --git a/app/services/bootstrap_timeline_service.rb b/app/services/bootstrap_timeline_service.rb
index a02e55a6df..126c0fa2e5 100644
--- a/app/services/bootstrap_timeline_service.rb
+++ b/app/services/bootstrap_timeline_service.rb
@@ -17,7 +17,7 @@ class BootstrapTimelineService < BaseService
end
def notify_staff!
- User.staff.includes(:account).find_each do |user|
+ User.those_who_can(:manage_users).includes(:account).find_each do |user|
LocalNotificationWorker.perform_async(user.account_id, @source_account.id, 'Account', 'admin.sign_up')
end
end
diff --git a/app/services/clear_domain_media_service.rb b/app/services/clear_domain_media_service.rb
index 704cfb71a6..9e70ebe51c 100644
--- a/app/services/clear_domain_media_service.rb
+++ b/app/services/clear_domain_media_service.rb
@@ -10,24 +10,18 @@ class ClearDomainMediaService < BaseService
private
- def invalidate_association_caches!
+ def invalidate_association_caches!(status_ids)
# Normally, associated models of a status are immutable (except for accounts)
# so they are aggressively cached. After updating the media attachments to no
# longer point to a local file, we need to clear the cache to make those
# changes appear in the API and UI
- @affected_status_ids.each { |id| Rails.cache.delete_matched("statuses/#{id}-*") }
+ Rails.cache.delete_multi(status_ids.map { |id| "statuses/#{id}" })
end
def clear_media!
- @affected_status_ids = []
-
- begin
- clear_account_images!
- clear_account_attachments!
- clear_emojos!
- ensure
- invalidate_association_caches!
- end
+ clear_account_images!
+ clear_account_attachments!
+ clear_emojos!
end
def clear_account_images!
@@ -39,12 +33,18 @@ class ClearDomainMediaService < BaseService
end
def clear_account_attachments!
- media_from_blocked_domain.reorder(nil).find_each do |attachment|
- @affected_status_ids << attachment.status_id if attachment.status_id.present?
+ media_from_blocked_domain.reorder(nil).find_in_batches do |attachments|
+ affected_status_ids = []
+
+ attachments.each do |attachment|
+ affected_status_ids << attachment.status_id if attachment.status_id.present?
+
+ attachment.file.destroy if attachment.file&.exists?
+ attachment.type = :unknown
+ attachment.save
+ end
- attachment.file.destroy if attachment.file&.exists?
- attachment.type = :unknown
- attachment.save
+ invalidate_association_caches!(affected_status_ids) unless affected_status_ids.empty?
end
end
diff --git a/app/services/create_featured_tag_service.rb b/app/services/create_featured_tag_service.rb
new file mode 100644
index 0000000000..3cc59156db
--- /dev/null
+++ b/app/services/create_featured_tag_service.rb
@@ -0,0 +1,25 @@
+# frozen_string_literal: true
+
+class CreateFeaturedTagService < BaseService
+ include Payloadable
+
+ def call(account, name, force: true)
+ @account = account
+
+ FeaturedTag.create!(account: account, name: name).tap do |featured_tag|
+ ActivityPub::AccountRawDistributionWorker.perform_async(build_json(featured_tag), account.id) if @account.local?
+ end
+ rescue ActiveRecord::RecordNotUnique, ActiveRecord::RecordInvalid => e
+ if force && e.is_a(ActiveRecord::RecordNotUnique)
+ FeaturedTag.by_name(name).find_by!(account: account)
+ else
+ account.featured_tags.new(name: name)
+ end
+ end
+
+ private
+
+ def build_json(featured_tag)
+ Oj.dump(serialize_payload(featured_tag, ActivityPub::AddSerializer, signer: @account))
+ end
+end
diff --git a/app/services/fan_out_on_write_service.rb b/app/services/fan_out_on_write_service.rb
index 9d6d7e7848..1df522459e 100644
--- a/app/services/fan_out_on_write_service.rb
+++ b/app/services/fan_out_on_write_service.rb
@@ -16,6 +16,7 @@ class FanOutOnWriteService < BaseService
check_race_condition!
fan_out_to_local_recipients!
+ fan_out_to_public_recipients! if broadcastable?
fan_out_to_public_streams! if broadcastable?
end
@@ -51,6 +52,10 @@ class FanOutOnWriteService < BaseService
end
end
+ def fan_out_to_public_recipients!
+ deliver_to_hashtag_followers!
+ end
+
def fan_out_to_public_streams!
broadcast_to_hashtag_streams!
broadcast_to_public_streams!
@@ -85,6 +90,14 @@ class FanOutOnWriteService < BaseService
end
end
+ def deliver_to_hashtag_followers!
+ TagFollow.where(tag_id: @status.tags.map(&:id)).select(:id, :account_id).reorder(nil).find_in_batches do |follows|
+ FeedInsertWorker.push_bulk(follows) do |follow|
+ [@status.id, follow.account_id, 'tags', { 'update' => update? }]
+ end
+ end
+ end
+
def deliver_to_lists!
@account.lists_for_local_distribution.select(:id).reorder(nil).find_in_batches do |lists|
FeedInsertWorker.push_bulk(lists) do |list|
@@ -108,7 +121,7 @@ class FanOutOnWriteService < BaseService
end
def broadcast_to_hashtag_streams!
- @status.tags.pluck(:name).each do |hashtag|
+ @status.tags.map(&:name).each do |hashtag|
redis.publish("timeline:hashtag:#{hashtag.mb_chars.downcase}", anonymous_payload)
redis.publish("timeline:hashtag:#{hashtag.mb_chars.downcase}:local", anonymous_payload) if @status.local?
end
diff --git a/app/services/fetch_resource_service.rb b/app/services/fetch_resource_service.rb
index 6c0093cd45..73204e55db 100644
--- a/app/services/fetch_resource_service.rb
+++ b/app/services/fetch_resource_service.rb
@@ -47,7 +47,7 @@ class FetchResourceService < BaseService
body = response.body_with_limit
json = body_to_json(body)
- [json['id'], { prefetched_body: body, id: true }] if supported_context?(json) && (equals_or_includes_any?(json['type'], ActivityPub::FetchRemoteAccountService::SUPPORTED_TYPES) || expected_type?(json))
+ [json['id'], { prefetched_body: body, id: true }] if supported_context?(json) && (equals_or_includes_any?(json['type'], ActivityPub::FetchRemoteActorService::SUPPORTED_TYPES) || expected_type?(json))
elsif !terminal
link_header = response['Link'] && parse_link_header(response)
diff --git a/app/services/follow_service.rb b/app/services/follow_service.rb
index ed28e13718..feea40e3c0 100644
--- a/app/services/follow_service.rb
+++ b/app/services/follow_service.rb
@@ -11,6 +11,7 @@ class FollowService < BaseService
# @param [Hash] options
# @option [Boolean] :reblogs Whether or not to show reblogs, defaults to true
# @option [Boolean] :notify Whether to create notifications about new posts, defaults to false
+ # @option [Array] :languages Which languages to allow on the home feed from this account, defaults to all
# @option [Boolean] :bypass_locked
# @option [Boolean] :bypass_limit Allow following past the total follow number
# @option [Boolean] :with_rate_limit
@@ -57,15 +58,15 @@ class FollowService < BaseService
end
def change_follow_options!
- @source_account.follow!(@target_account, reblogs: @options[:reblogs], notify: @options[:notify])
+ @source_account.follow!(@target_account, **follow_options)
end
def change_follow_request_options!
- @source_account.request_follow!(@target_account, reblogs: @options[:reblogs], notify: @options[:notify])
+ @source_account.request_follow!(@target_account, **follow_options)
end
def request_follow!
- follow_request = @source_account.request_follow!(@target_account, reblogs: @options[:reblogs], notify: @options[:notify], rate_limit: @options[:with_rate_limit], bypass_limit: @options[:bypass_limit])
+ follow_request = @source_account.request_follow!(@target_account, **follow_options.merge(rate_limit: @options[:with_rate_limit], bypass_limit: @options[:bypass_limit]))
if @target_account.local?
LocalNotificationWorker.perform_async(@target_account.id, follow_request.id, follow_request.class.name, 'follow_request')
@@ -77,7 +78,7 @@ class FollowService < BaseService
end
def direct_follow!
- follow = @source_account.follow!(@target_account, reblogs: @options[:reblogs], notify: @options[:notify], rate_limit: @options[:with_rate_limit], bypass_limit: @options[:bypass_limit])
+ follow = @source_account.follow!(@target_account, **follow_options.merge(rate_limit: @options[:with_rate_limit], bypass_limit: @options[:bypass_limit]))
LocalNotificationWorker.perform_async(@target_account.id, follow.id, follow.class.name, 'follow')
MergeWorker.perform_async(@target_account.id, @source_account.id)
@@ -88,4 +89,8 @@ class FollowService < BaseService
def build_json(follow_request)
Oj.dump(serialize_payload(follow_request, ActivityPub::FollowSerializer))
end
+
+ def follow_options
+ @options.slice(:reblogs, :notify, :languages)
+ end
end
diff --git a/app/services/import_service.rb b/app/services/import_service.rb
index 8e6640b9dd..676c37bde4 100644
--- a/app/services/import_service.rb
+++ b/app/services/import_service.rb
@@ -27,7 +27,7 @@ class ImportService < BaseService
def import_follows!
parse_import_data!(['Account address'])
- import_relationships!('follow', 'unfollow', @account.following, ROWS_PROCESSING_LIMIT, reblogs: { header: 'Show boosts', default: true })
+ import_relationships!('follow', 'unfollow', @account.following, ROWS_PROCESSING_LIMIT, reblogs: { header: 'Show boosts', default: true }, notify: { header: 'Notify on new posts', default: false }, languages: { header: 'Languages', default: nil })
end
def import_blocks!
diff --git a/app/services/keys/claim_service.rb b/app/services/keys/claim_service.rb
index 69568a0d19..ae9e24a24f 100644
--- a/app/services/keys/claim_service.rb
+++ b/app/services/keys/claim_service.rb
@@ -72,7 +72,7 @@ class Keys::ClaimService < BaseService
def build_post_request(uri)
Request.new(:post, uri).tap do |request|
- request.on_behalf_of(@source_account, :uri)
+ request.on_behalf_of(@source_account)
request.add_headers(HEADERS)
end
end
diff --git a/app/services/notify_service.rb b/app/services/notify_service.rb
index d30b338765..c7454fc609 100644
--- a/app/services/notify_service.rb
+++ b/app/services/notify_service.rb
@@ -76,7 +76,7 @@ class NotifyService < BaseService
end
def from_staff?
- @notification.from_account.local? && @notification.from_account.user.present? && @notification.from_account.user.staff?
+ @notification.from_account.local? && @notification.from_account.user.present? && @notification.from_account.user_role&.overrides?(@recipient.user_role)
end
def optional_non_following_and_direct?
diff --git a/app/services/process_mentions_service.rb b/app/services/process_mentions_service.rb
index 8c63b611d3..c9c158af1c 100644
--- a/app/services/process_mentions_service.rb
+++ b/app/services/process_mentions_service.rb
@@ -38,7 +38,7 @@ class ProcessMentionsService < BaseService
mentioned_account = Account.find_remote(username, domain)
# Unapproved and unconfirmed accounts should not be mentionable
- next if mentioned_account&.local? && !(mentioned_account.user_confirmed? && mentioned_account.user_approved?)
+ next match if mentioned_account&.local? && !(mentioned_account.user_confirmed? && mentioned_account.user_approved?)
# If the account cannot be found or isn't the right protocol,
# first try to resolve it
diff --git a/app/services/remove_featured_tag_service.rb b/app/services/remove_featured_tag_service.rb
new file mode 100644
index 0000000000..2aa70e8fc6
--- /dev/null
+++ b/app/services/remove_featured_tag_service.rb
@@ -0,0 +1,18 @@
+# frozen_string_literal: true
+
+class RemoveFeaturedTagService < BaseService
+ include Payloadable
+
+ def call(account, featured_tag)
+ @account = account
+
+ featured_tag.destroy!
+ ActivityPub::AccountRawDistributionWorker.perform_async(build_json(featured_tag), account.id) if @account.local?
+ end
+
+ private
+
+ def build_json(featured_tag)
+ Oj.dump(serialize_payload(featured_tag, ActivityPub::RemoveSerializer, signer: @account))
+ end
+end
diff --git a/app/services/remove_status_service.rb b/app/services/remove_status_service.rb
index 97afc3f615..3d0825f083 100644
--- a/app/services/remove_status_service.rb
+++ b/app/services/remove_status_service.rb
@@ -21,6 +21,8 @@ class RemoveStatusService < BaseService
with_lock("distribute:#{@status.id}") do
@status.discard
+ StatusPin.find_by(status: @status)&.destroy
+
remove_from_self if @account.local?
remove_from_followers
remove_from_lists
diff --git a/app/services/report_service.rb b/app/services/report_service.rb
index d251bb33f0..8c92cf3346 100644
--- a/app/services/report_service.rb
+++ b/app/services/report_service.rb
@@ -38,9 +38,9 @@ class ReportService < BaseService
def notify_staff!
return if @report.unresolved_siblings?
- User.staff.includes(:account).each do |u|
- next unless u.allows_report_emails?
- AdminMailer.new_report(u.account, @report).deliver_later
+ User.those_who_can(:manage_reports).includes(:account).each do |u|
+ LocalNotificationWorker.perform_async(u.account_id, @report.id, 'Report', 'admin.report')
+ AdminMailer.new_report(u.account, @report).deliver_later if u.allows_report_emails?
end
end
@@ -57,7 +57,16 @@ class ReportService < BaseService
end
def reported_status_ids
- AccountStatusesFilter.new(@target_account, @source_account).results.with_discarded.find(Array(@status_ids)).pluck(:id)
+ return AccountStatusesFilter.new(@target_account, @source_account).results.with_discarded.find(Array(@status_ids)).pluck(:id) if @source_account.local?
+
+ # If the account making reports is remote, it is likely anonymized so we have to relax the requirements for attaching statuses.
+ domain = @source_account.domain.to_s.downcase
+ has_followers = @target_account.followers.where(Account.arel_table[:domain].lower.eq(domain)).exists?
+ visibility = has_followers ? %i(public unlisted private) : %i(public unlisted)
+ scope = @target_account.statuses.with_discarded
+ scope.merge!(scope.where(visibility: visibility).or(scope.where('EXISTS (SELECT 1 FROM mentions m JOIN accounts a ON m.account_id = a.id WHERE lower(a.domain) = ?)', domain)))
+ # Allow missing posts to not drop reports that include e.g. a deleted post
+ scope.where(id: Array(@status_ids)).pluck(:id)
end
def payload
diff --git a/app/services/resolve_account_service.rb b/app/services/resolve_account_service.rb
index b55e454094..d8b81a7b9d 100644
--- a/app/services/resolve_account_service.rb
+++ b/app/services/resolve_account_service.rb
@@ -1,7 +1,6 @@
# frozen_string_literal: true
class ResolveAccountService < BaseService
- include JsonLdHelper
include DomainControlHelper
include WebfingerHelper
include Redisable
@@ -13,6 +12,8 @@ class ResolveAccountService < BaseService
# @param [Hash] options
# @option options [Boolean] :redirected Do not follow further Webfinger redirects
# @option options [Boolean] :skip_webfinger Do not attempt any webfinger query or refreshing account data
+ # @option options [Boolean] :skip_cache Get the latest data from origin even if cache is not due to update yet
+ # @option options [Boolean] :suppress_errors When failing, return nil instead of raising an error
# @return [Account]
def call(uri, options = {})
return if uri.blank?
@@ -52,15 +53,15 @@ class ResolveAccountService < BaseService
# either needs to be created, or updated from fresh data
fetch_account!
- rescue Webfinger::Error, Oj::ParseError => e
+ rescue Webfinger::Error => e
Rails.logger.debug "Webfinger query for #{@uri} failed: #{e}"
- nil
+ raise unless @options[:suppress_errors]
end
private
def process_options!(uri, options)
- @options = options
+ @options = { suppress_errors: true }.merge(options)
if uri.is_a?(Account)
@account = uri
@@ -96,7 +97,7 @@ class ResolveAccountService < BaseService
@username, @domain = split_acct(@webfinger.subject)
unless confirmed_username.casecmp(@username).zero? && confirmed_domain.casecmp(@domain).zero?
- raise Webfinger::RedirectError, "The URI #{uri} tries to hijack #{@username}@#{@domain}"
+ raise Webfinger::RedirectError, "Too many webfinger redirects for URI #{uri} (stopped at #{@username}@#{@domain})"
end
rescue Webfinger::GoneError
@gone = true
@@ -110,7 +111,7 @@ class ResolveAccountService < BaseService
return unless activitypub_ready?
with_lock("resolve:#{@username}@#{@domain}") do
- @account = ActivityPub::FetchRemoteAccountService.new.call(actor_url)
+ @account = ActivityPub::FetchRemoteAccountService.new.call(actor_url, suppress_errors: @options[:suppress_errors])
end
@account
@@ -120,7 +121,7 @@ class ResolveAccountService < BaseService
return false if @options[:check_delivery_availability] && !DeliveryFailureTracker.available?(@domain)
return false if @options[:skip_webfinger]
- @account.nil? || @account.possibly_stale?
+ @options[:skip_cache] || @account.nil? || @account.possibly_stale?
end
def activitypub_ready?
diff --git a/app/services/resolve_url_service.rb b/app/services/resolve_url_service.rb
index e2c745673e..37c856cf86 100644
--- a/app/services/resolve_url_service.rb
+++ b/app/services/resolve_url_service.rb
@@ -20,8 +20,8 @@ class ResolveURLService < BaseService
private
def process_url
- if equals_or_includes_any?(type, ActivityPub::FetchRemoteAccountService::SUPPORTED_TYPES)
- ActivityPub::FetchRemoteAccountService.new.call(resource_url, prefetched_body: body)
+ if equals_or_includes_any?(type, ActivityPub::FetchRemoteActorService::SUPPORTED_TYPES)
+ ActivityPub::FetchRemoteActorService.new.call(resource_url, prefetched_body: body)
elsif equals_or_includes_any?(type, ActivityPub::Activity::Create::SUPPORTED_TYPES + ActivityPub::Activity::Create::CONVERTED_TYPES)
status = FetchRemoteStatusService.new.call(resource_url, body)
authorize_with @on_behalf_of, status, :show? unless status.nil?
diff --git a/app/services/translate_status_service.rb b/app/services/translate_status_service.rb
new file mode 100644
index 0000000000..539a0d9db5
--- /dev/null
+++ b/app/services/translate_status_service.rb
@@ -0,0 +1,27 @@
+# frozen_string_literal: true
+
+class TranslateStatusService < BaseService
+ CACHE_TTL = 1.day.freeze
+
+ include FormattingHelper
+
+ def call(status, target_language)
+ raise Mastodon::NotPermittedError unless status.public_visibility? || status.unlisted_visibility?
+
+ @status = status
+ @content = status_content_format(@status)
+ @target_language = target_language
+
+ Rails.cache.fetch("translations/#{@status.language}/#{@target_language}/#{content_hash}", expires_in: CACHE_TTL) { translation_backend.translate(@content, @status.language, @target_language) }
+ end
+
+ private
+
+ def translation_backend
+ TranslationService.configured
+ end
+
+ def content_hash
+ Digest::SHA256.base64digest(@content)
+ end
+end
diff --git a/app/validators/existing_username_validator.rb b/app/validators/existing_username_validator.rb
index 8f7d96b8e9..1c55968216 100644
--- a/app/validators/existing_username_validator.rb
+++ b/app/validators/existing_username_validator.rb
@@ -6,7 +6,7 @@ class ExistingUsernameValidator < ActiveModel::EachValidator
usernames_and_domains = begin
value.split(',').map do |str|
- username, domain = str.strip.gsub(/\A@/, '').split('@')
+ username, domain = str.strip.gsub(/\A@/, '').split('@', 2)
domain = nil if TagManager.instance.local_domain?(domain)
next if username.blank?
@@ -21,8 +21,8 @@ class ExistingUsernameValidator < ActiveModel::EachValidator
if options[:multiple]
record.errors.add(attribute, I18n.t('existing_username_validator.not_found_multiple', usernames: usernames_with_no_accounts.join(', '))) if usernames_with_no_accounts.any?
- else
- record.errors.add(attribute, I18n.t('existing_username_validator.not_found')) if usernames_with_no_accounts.any? || usernames_and_domains.size > 1
+ elsif usernames_with_no_accounts.any? || usernames_and_domains.size > 1
+ record.errors.add(attribute, I18n.t('existing_username_validator.not_found'))
end
end
end
diff --git a/app/validators/import_validator.rb b/app/validators/import_validator.rb
index 9f19aee2ae..cbad56df63 100644
--- a/app/validators/import_validator.rb
+++ b/app/validators/import_validator.rb
@@ -26,6 +26,8 @@ class ImportValidator < ActiveModel::Validator
when 'following'
validate_following_import(import, row_count)
end
+ rescue CSV::MalformedCSVError
+ import.errors.add(:data, :malformed)
end
private
diff --git a/app/validators/language_validator.rb b/app/validators/language_validator.rb
new file mode 100644
index 0000000000..b723e1a408
--- /dev/null
+++ b/app/validators/language_validator.rb
@@ -0,0 +1,21 @@
+# frozen_string_literal: true
+
+class LanguageValidator < ActiveModel::EachValidator
+ include LanguagesHelper
+
+ def validate_each(record, attribute, value)
+ record.errors.add(attribute, :invalid) unless valid?(value)
+ end
+
+ private
+
+ def valid?(str)
+ if str.nil?
+ true
+ elsif str.is_a?(Array)
+ str.all? { |x| valid_locale?(x) }
+ else
+ valid_locale?(str)
+ end
+ end
+end
diff --git a/app/views/about/_domain_blocks.html.haml b/app/views/about/_domain_blocks.html.haml
deleted file mode 100644
index 35a30f16ee..0000000000
--- a/app/views/about/_domain_blocks.html.haml
+++ /dev/null
@@ -1,12 +0,0 @@
-%table
- %thead
- %tr
- %th= t('about.unavailable_content_description.domain')
- %th= t('about.unavailable_content_description.reason')
- %tbody
- - domain_blocks.each do |domain_block|
- %tr
- %td.nowrap
- %span{ title: "SHA-256: #{domain_block.domain_digest}" }= domain_block.public_domain
- %td
- = domain_block.public_comment if display_blocks_rationale?
diff --git a/app/views/about/_logged_in.html.haml b/app/views/about/_logged_in.html.haml
deleted file mode 100644
index e1bcfffb31..0000000000
--- a/app/views/about/_logged_in.html.haml
+++ /dev/null
@@ -1,10 +0,0 @@
-.simple_form
- %p.lead= t('about.logged_in_as_html', username: content_tag(:strong, current_account.username))
-
- .actions
- = link_to t('about.continue_to_web'), root_url, class: 'button button-primary'
-
-.form-footer
- %ul.no-list
- %li= link_to t('about.get_apps'), 'https://joinmastodon.org/apps', target: '_blank', rel: 'noopener noreferrer'
- %li= link_to t('auth.logout'), destroy_user_session_path, data: { method: :delete }
diff --git a/app/views/about/_login.html.haml b/app/views/about/_login.html.haml
deleted file mode 100644
index 0f19e81643..0000000000
--- a/app/views/about/_login.html.haml
+++ /dev/null
@@ -1,22 +0,0 @@
-- unless omniauth_only?
- = simple_form_for(new_user, url: user_session_path, namespace: 'login') do |f|
- .fields-group
- - if use_seamless_external_login?
- = f.input :email, placeholder: t('simple_form.labels.defaults.username_or_email'), input_html: { 'aria-label' => t('simple_form.labels.defaults.username_or_email') }, hint: false
- - else
- = f.input :email, placeholder: t('simple_form.labels.defaults.email'), input_html: { 'aria-label' => t('simple_form.labels.defaults.email') }, hint: false
-
- = f.input :password, placeholder: t('simple_form.labels.defaults.password'), input_html: { 'aria-label' => t('simple_form.labels.defaults.password') }, hint: false
-
- .actions
- = f.button :button, t('auth.login'), type: :submit, class: 'button button-primary'
-
- %p.hint.subtle-hint= link_to t('auth.trouble_logging_in'), new_user_password_path
-
-- if Devise.mappings[:user].omniauthable? and User.omniauth_providers.any?
- .simple_form.alternative-login
- %h4= omniauth_only? ? t('auth.log_in_with') : t('auth.or_log_in_with')
-
- .actions
- - User.omniauth_providers.each do |provider|
- = provider_sign_in_link(provider)
diff --git a/app/views/about/_registration.html.haml b/app/views/about/_registration.html.haml
deleted file mode 100644
index 5db620b2d1..0000000000
--- a/app/views/about/_registration.html.haml
+++ /dev/null
@@ -1,37 +0,0 @@
-- disabled = closed_registrations? || omniauth_only? || current_account.present?
-- show_message = disabled && (current_user.present? || @instance_presenter.closed_registrations_message.present?)
-
-.simple_form__overlay-area{ class: show_message ? 'simple_form__overlay-area__blurred' : '' }
- = simple_form_for(new_user, url: user_registration_path, namespace: 'registration', html: { novalidate: false }) do |f|
- %p.lead= t('about.federation_hint_html', instance: content_tag(:strong, site_hostname))
-
- .fields-group
- = f.simple_fields_for :account do |account_fields|
- = account_fields.input :username, wrapper: :with_label, label: false, required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.username'), :autocomplete => 'off', placeholder: t('simple_form.labels.defaults.username'), pattern: '[a-zA-Z0-9_]+', maxlength: 30 }, append: "@#{site_hostname}", hint: false, disabled: disabled
-
- = f.input :email, placeholder: t('simple_form.labels.defaults.email'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.email'), :autocomplete => 'off' }, hint: false, disabled: disabled
- = f.input :password, placeholder: t('simple_form.labels.defaults.password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.password'), :autocomplete => 'new-password', :minlength => User.password_length.first, :maxlength => User.password_length.last }, hint: false, disabled: disabled
- = f.input :password_confirmation, placeholder: t('simple_form.labels.defaults.confirm_password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.confirm_password'), :autocomplete => 'new-password' }, hint: false, disabled: disabled
-
- = f.input :confirm_password, as: :string, placeholder: t('simple_form.labels.defaults.honeypot', label: t('simple_form.labels.defaults.password')), required: false, input_html: { 'aria-label' => t('simple_form.labels.defaults.honeypot', label: t('simple_form.labels.defaults.password')), :autocomplete => 'off' }, hint: false, disabled: disabled
- = f.input :website, as: :url, placeholder: t('simple_form.labels.defaults.honeypot', label: 'Website'), required: false, input_html: { 'aria-label' => t('simple_form.labels.defaults.honeypot', label: 'Website'), :autocomplete => 'off' }, hint: false, disabled: disabled
-
- - if approved_registrations?
- .fields-group
- = f.simple_fields_for :invite_request do |invite_request_fields|
- = invite_request_fields.input :text, as: :text, wrapper: :with_block_label, required: Setting.require_invite_text
-
- .fields-group
- = f.input :agreement, as: :boolean, wrapper: :with_label, label: t('auth.checkbox_agreement_html', rules_path: about_more_path, terms_path: terms_path), required: true, disabled: disabled
-
- .actions
- = f.button :button, sign_up_message, type: :submit, class: 'button button-primary', disabled: disabled
-
- - if show_message
- .simple_form__overlay-area__overlay
- .simple_form__overlay-area__overlay__content.rich-formatting
- .block-icon= fa_icon 'warning'
- - if current_account.present?
- = t('about.logout_before_registering')
- - else
- = @instance_presenter.closed_registrations_message.html_safe
diff --git a/app/views/about/more.html.haml b/app/views/about/more.html.haml
deleted file mode 100644
index a4a79c4e7f..0000000000
--- a/app/views/about/more.html.haml
+++ /dev/null
@@ -1,95 +0,0 @@
-- content_for :page_title do
- = site_hostname
-
-- content_for :header_tags do
- = render partial: 'shared/og'
-
-.grid-4
- .column-0
- .public-account-header.public-account-header--no-bar
- .public-account-header__image
- = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('media/images/preview.jpg'), alt: @instance_presenter.site_title, class: 'parallax'
-
- .column-1
- .landing-page__call-to-action{ dir: 'ltr' }
- .row
- .row__information-board
- .information-board__section
- %span= t 'about.user_count_before'
- %strong= friendly_number_to_human @instance_presenter.user_count
- %span= t 'about.user_count_after', count: @instance_presenter.user_count
- .information-board__section
- %span= t 'about.status_count_before'
- %strong= friendly_number_to_human @instance_presenter.status_count
- %span= t 'about.status_count_after', count: @instance_presenter.status_count
- .row__mascot
- .landing-page__mascot
- = image_tag @instance_presenter.mascot&.file&.url || asset_pack_path('media/images/elephant_ui_plane.svg'), alt: ''
-
- .column-2
- .contact-widget
- %h4= t 'about.administered_by'
-
- = account_link_to(@instance_presenter.contact_account)
-
- - if @instance_presenter.site_contact_email.present?
- %h4
- = succeed ':' do
- = t 'about.contact'
-
- = mail_to @instance_presenter.site_contact_email, nil, title: @instance_presenter.site_contact_email
-
- .column-3
- = render 'application/flashes'
-
- - if @contents.blank? && @rules.empty? && (!display_blocks? || @blocks&.empty?)
- = nothing_here
- - else
- .box-widget
- .rich-formatting
- - unless @rules.empty?
- %h2#rules= t('about.rules')
-
- %p= t('about.rules_html')
-
- %ol.rules-list
- - @rules.each do |rule|
- %li
- .rules-list__text= rule.text
-
- = @contents.html_safe
-
- - if display_blocks? && !@blocks.empty?
- %h2#unavailable-content= t('about.unavailable_content')
-
- %p= t('about.unavailable_content_html')
-
- - if (blocks = @blocks.select(&:reject_media?)) && !blocks.empty?
- %h3= t('about.unavailable_content_description.rejecting_media_title')
- %p= t('about.unavailable_content_description.rejecting_media')
- = render partial: 'domain_blocks', locals: { domain_blocks: blocks }
- - if (blocks = @blocks.select(&:silence?)) && !blocks.empty?
- %h3= t('about.unavailable_content_description.silenced_title')
- %p= t('about.unavailable_content_description.silenced')
- = render partial: 'domain_blocks', locals: { domain_blocks: blocks }
- - if (blocks = @blocks.select(&:suspend?)) && !blocks.empty?
- %h3= t('about.unavailable_content_description.suspended_title')
- %p= t('about.unavailable_content_description.suspended')
- = render partial: 'domain_blocks', locals: { domain_blocks: blocks }
-
- .column-4
- %ul.table-of-contents
- - unless @rules.empty?
- %li= link_to t('about.rules'), '#rules'
-
- - @table_of_contents.each do |item|
- %li
- = link_to item.title, "##{item.anchor}"
-
- - unless item.children.empty?
- %ul
- - item.children.each do |sub_item|
- %li= link_to sub_item.title, "##{sub_item.anchor}"
-
- - if display_blocks? && !@blocks.empty?
- %li= link_to t('about.unavailable_content'), '#unavailable-content'
diff --git a/app/views/about/show.html.haml b/app/views/about/show.html.haml
index 3214400960..05d8989add 100644
--- a/app/views/about/show.html.haml
+++ b/app/views/about/show.html.haml
@@ -1,82 +1,7 @@
- content_for :page_title do
- = site_hostname
+ = t('about.title')
- content_for :header_tags do
- %link{ rel: 'canonical', href: about_url }/
= render partial: 'shared/og'
-.landing
- .landing__brand
- = link_to root_url, class: 'brand' do
- = svg_logo_full
- %span.brand__tagline=t 'about.tagline'
-
- .landing__grid
- .landing__grid__column.landing__grid__column-registration
- .box-widget
- = render 'registration'
-
- .directory
- - if Setting.profile_directory
- .directory__tag
- = optional_link_to Setting.profile_directory, explore_path do
- %h4
- = fa_icon 'address-book fw'
- = t('about.discover_users')
- %small= t('about.browse_directory')
-
- .avatar-stack
- - @instance_presenter.sample_accounts.each do |account|
- = image_tag current_account&.user&.setting_auto_play_gif ? account.avatar_original_url : account.avatar_static_url, alt: '', class: 'account__avatar'
-
- - if Setting.timeline_preview
- .directory__tag
- = optional_link_to Setting.timeline_preview, public_timeline_path do
- %h4
- = fa_icon 'globe fw'
- = t('about.see_whats_happening')
- %small= t('about.browse_public_posts')
-
- .directory__tag
- = link_to 'https://joinmastodon.org/apps', target: '_blank', rel: 'noopener noreferrer' do
- %h4
- = fa_icon 'tablet fw'
- = t('about.get_apps')
- %small= t('about.apps_platforms')
-
- .landing__grid__column.landing__grid__column-login
- .box-widget
- - if current_user.present?
- = render 'logged_in'
- - else
- = render 'login'
-
- .hero-widget
- .hero-widget__img
- = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('media/images/preview.jpg'), alt: @instance_presenter.site_title
-
- .hero-widget__text
- %p
- = @instance_presenter.site_short_description.html_safe.presence || t('about.about_mastodon_html')
- = link_to about_more_path do
- = t('about.learn_more')
- = fa_icon 'angle-double-right'
-
- .hero-widget__footer
- .hero-widget__footer__column
- %h4= t 'about.administered_by'
-
- = account_link_to @instance_presenter.contact_account
-
- .hero-widget__footer__column
- %h4= t 'about.server_stats'
-
- .hero-widget__counters__wrapper
- .hero-widget__counter
- %strong= friendly_number_to_human @instance_presenter.user_count
- %span= t 'about.user_count_after', count: @instance_presenter.user_count
- .hero-widget__counter
- %strong= friendly_number_to_human @instance_presenter.active_user_count
- %span
- = t 'about.active_count_after'
- %abbr{ title: t('about.active_footnote') } *
+= render partial: 'shared/web_app'
diff --git a/app/views/about/terms.html.haml b/app/views/about/terms.html.haml
deleted file mode 100644
index 9d076a91b4..0000000000
--- a/app/views/about/terms.html.haml
+++ /dev/null
@@ -1,9 +0,0 @@
-- content_for :page_title do
- = t('terms.title', instance: site_hostname)
-
-.grid
- .column-0
- .box-widget
- .rich-formatting= @instance_presenter.site_terms.html_safe.presence || t('terms.body_html')
- .column-1
- = render 'application/sidebar'
diff --git a/app/views/accounts/_bio.html.haml b/app/views/accounts/_bio.html.haml
deleted file mode 100644
index e2539b1d4a..0000000000
--- a/app/views/accounts/_bio.html.haml
+++ /dev/null
@@ -1,21 +0,0 @@
-- fields = account.fields
-
-.public-account-bio
- - unless fields.empty?
- .account__header__fields
- - fields.each do |field|
- %dl
- %dt.emojify{ title: field.name }= prerender_custom_emojis(h(field.name), account.emojis)
- %dd{ title: field.value, class: custom_field_classes(field) }
- - if field.verified?
- %span.verified__mark{ title: t('accounts.link_verified_on', date: l(field.verified_at)) }
- = fa_icon 'check'
- = prerender_custom_emojis(account_field_value_format(field), account.emojis)
-
- = account_badge(account)
-
- - if account.note.present?
- .account__header__content.emojify= prerender_custom_emojis(account_bio_format(account), account.emojis)
-
- .public-account-bio__extra
- = t 'accounts.joined', date: l(account.created_at, format: :month)
diff --git a/app/views/accounts/_header.html.haml b/app/views/accounts/_header.html.haml
deleted file mode 100644
index d583edbd2d..0000000000
--- a/app/views/accounts/_header.html.haml
+++ /dev/null
@@ -1,43 +0,0 @@
-.public-account-header{:class => ("inactive" if account.moved?)}
- .public-account-header__image
- = image_tag (prefers_autoplay? ? account.header_original_url : account.header_static_url), class: 'parallax'
- .public-account-header__bar
- = link_to short_account_url(account), class: 'avatar' do
- = image_tag (prefers_autoplay? ? account.avatar_original_url : account.avatar_static_url), id: 'profile_page_avatar', data: { original: full_asset_url(account.avatar_original_url), static: full_asset_url(account.avatar_static_url), autoplay: prefers_autoplay? }
- .public-account-header__tabs
- .public-account-header__tabs__name
- %h1
- = display_name(account, custom_emojify: true)
- %small
- = acct(account)
- = fa_icon('lock') if account.locked?
- .public-account-header__tabs__tabs
- .details-counters
- .counter{ class: active_nav_class(short_account_url(account), short_account_with_replies_url(account), short_account_media_url(account)) }
- = link_to short_account_url(account), class: 'u-url u-uid', title: number_with_delimiter(account.statuses_count) do
- %span.counter-number= friendly_number_to_human account.statuses_count
- %span.counter-label= t('accounts.posts', count: account.statuses_count)
-
- .counter{ class: active_nav_class(account_following_index_url(account)) }
- = link_to account_following_index_url(account), title: number_with_delimiter(account.following_count) do
- %span.counter-number= friendly_number_to_human account.following_count
- %span.counter-label= t('accounts.following', count: account.following_count)
-
- .counter{ class: active_nav_class(account_followers_url(account)) }
- = link_to account_followers_url(account), title: hide_followers_count?(account) ? nil : number_with_delimiter(account.followers_count) do
- %span.counter-number= hide_followers_count?(account) ? '-' : (friendly_number_to_human account.followers_count)
- %span.counter-label= t('accounts.followers', count: account.followers_count)
- .spacer
- .public-account-header__tabs__tabs__buttons
- = account_action_button(account)
-
- .public-account-header__extra
- = render 'accounts/bio', account: account
-
- .public-account-header__extra__links
- = link_to account_following_index_url(account) do
- %strong= friendly_number_to_human account.following_count
- = t('accounts.following', count: account.following_count)
- = link_to account_followers_url(account) do
- %strong= hide_followers_count?(account) ? '-' : (friendly_number_to_human account.followers_count)
- = t('accounts.followers', count: account.followers_count)
diff --git a/app/views/accounts/_moved.html.haml b/app/views/accounts/_moved.html.haml
deleted file mode 100644
index 2f46e0dd0f..0000000000
--- a/app/views/accounts/_moved.html.haml
+++ /dev/null
@@ -1,20 +0,0 @@
-- moved_to_account = account.moved_to_account
-
-.moved-account-widget
- .moved-account-widget__message
- = fa_icon 'suitcase'
- = t('accounts.moved_html', name: content_tag(:bdi, content_tag(:strong, display_name(account, custom_emojify: true), class: :emojify)), new_profile_link: link_to(content_tag(:strong, safe_join(['@', content_tag(:span, moved_to_account.pretty_acct)])), ActivityPub::TagManager.instance.url_for(moved_to_account), class: 'mention'))
-
- .moved-account-widget__card
- = link_to ActivityPub::TagManager.instance.url_for(moved_to_account), class: 'detailed-status__display-name p-author h-card', target: '_blank', rel: 'me noopener noreferrer' do
- .detailed-status__display-avatar
- .account__avatar-overlay
- .account__avatar-overlay-base
- = image_tag moved_to_account.avatar_static_url
- .account__avatar-overlay-overlay
- = image_tag account.avatar_static_url
-
- %span.display-name
- %bdi
- %strong.emojify= display_name(moved_to_account, custom_emojify: true)
- %span @#{moved_to_account.pretty_acct}
diff --git a/app/views/accounts/show.html.haml b/app/views/accounts/show.html.haml
index 72e9c66111..a51dcd7be4 100644
--- a/app/views/accounts/show.html.haml
+++ b/app/views/accounts/show.html.haml
@@ -2,85 +2,13 @@
= "#{display_name(@account)} (#{acct(@account)})"
- content_for :header_tags do
- - if @account.user&.setting_noindex
+ - if @account.user_prefers_noindex?
%meta{ name: 'robots', content: 'noindex, noarchive' }/
%link{ rel: 'alternate', type: 'application/rss+xml', href: @rss_url }/
%link{ rel: 'alternate', type: 'application/activity+json', href: ActivityPub::TagManager.instance.uri_for(@account) }/
- - if @older_url
- %link{ rel: 'next', href: @older_url }/
- - if @newer_url
- %link{ rel: 'prev', href: @newer_url }/
-
= opengraph 'og:type', 'profile'
= render 'og', account: @account, url: short_account_url(@account, only_path: false)
-
-= render 'header', account: @account, with_bio: true
-
-.grid
- .column-0
- .h-feed
- %data.p-name{ value: "#{@account.username} on #{site_hostname}" }/
-
- .account__section-headline
- = active_link_to t('accounts.posts_tab_heading'), short_account_url(@account)
- = active_link_to t('accounts.posts_with_replies'), short_account_with_replies_url(@account)
- = active_link_to t('accounts.media'), short_account_media_url(@account)
-
- - if user_signed_in? && @account.blocking?(current_account)
- .nothing-here.nothing-here--under-tabs= t('accounts.unavailable')
- - elsif @statuses.empty?
- = nothing_here 'nothing-here--under-tabs'
- - else
- .activity-stream.activity-stream--under-tabs
- - if params[:page].to_i.zero?
- = render partial: 'statuses/status', collection: @pinned_statuses, as: :status, locals: { pinned: true }
-
- - if @newer_url
- .entry= link_to_newer @newer_url
-
- = render partial: 'statuses/status', collection: @statuses, as: :status
-
- - if @older_url
- .entry= link_to_older @older_url
-
- .column-1
- - if @account.memorial?
- .memoriam-widget= t('in_memoriam_html')
- - elsif @account.moved?
- = render 'moved', account: @account
-
- = render 'bio', account: @account
-
- - if @endorsed_accounts.empty? && @account.id == current_account&.id
- .placeholder-widget= t('accounts.endorsements_hint')
- - elsif !@endorsed_accounts.empty?
- .endorsements-widget
- %h4= t 'accounts.choices_html', name: content_tag(:bdi, display_name(@account, custom_emojify: true))
-
- - @endorsed_accounts.each do |account|
- = account_link_to account
-
- - if @featured_hashtags.empty? && @account.id == current_account&.id
- .placeholder-widget
- = t('accounts.featured_tags_hint')
- = link_to settings_featured_tags_path do
- = t('featured_tags.add_new')
- = fa_icon 'chevron-right fw'
- - else
- - @featured_hashtags.each do |featured_tag|
- .directory__tag{ class: params[:tag] == featured_tag.name ? 'active' : nil }
- = link_to short_account_tag_path(@account, featured_tag.tag) do
- %h4
- = fa_icon 'hashtag'
- = featured_tag.name
- %small
- - if featured_tag.last_status_at.nil?
- = t('accounts.nothing_here')
- - else
- %time.formatted{ datetime: featured_tag.last_status_at.iso8601, title: l(featured_tag.last_status_at) }= l featured_tag.last_status_at
- .trends__item__current= friendly_number_to_human featured_tag.statuses_count
-
- = render 'application/sidebar'
+= render partial: 'shared/web_app'
diff --git a/app/views/accounts/show.rss.ruby b/app/views/accounts/show.rss.ruby
index 73c1c51e07..34e29d483f 100644
--- a/app/views/accounts/show.rss.ruby
+++ b/app/views/accounts/show.rss.ruby
@@ -5,12 +5,10 @@ RSS::Builder.build do |doc|
doc.image(full_asset_url(@account.avatar.url(:original)), display_name(@account), params[:tag].present? ? short_account_tag_url(@account, params[:tag]) : short_account_url(@account))
doc.last_build_date(@statuses.first.created_at) if @statuses.any?
doc.icon(full_asset_url(@account.avatar.url(:original)))
- doc.logo(full_pack_url('media/images/logo_transparent_white.svg'))
doc.generator("Mastodon v#{Mastodon::Version.to_s}")
@statuses.each do |status|
doc.item do |item|
- item.title(l(status.created_at))
item.link(ActivityPub::TagManager.instance.url_for(status))
item.pub_date(status.created_at)
item.description(rss_status_content_format(status))
@@ -30,7 +28,7 @@ RSS::Builder.build do |doc|
end
status.tags.each do |tag|
- item.category(tag.name)
+ item.category(tag.display_name)
end
end
end
diff --git a/app/views/admin/accounts/index.html.haml b/app/views/admin/accounts/index.html.haml
index 0290df7de1..9571f27b44 100644
--- a/app/views/admin/accounts/index.html.haml
+++ b/app/views/admin/accounts/index.html.haml
@@ -1,48 +1,40 @@
- content_for :page_title do
= t('admin.accounts.title')
-.filters
- .filter-subset
- %strong= t('admin.accounts.location.title')
- %ul
- %li= filter_link_to t('generic.all'), origin: nil
- %li= filter_link_to t('admin.accounts.location.local'), origin: 'local'
- %li= filter_link_to t('admin.accounts.location.remote'), origin: 'remote'
- .filter-subset
- %strong= t('admin.accounts.moderation.title')
- %ul
- %li= filter_link_to t('generic.all'), status: nil
- %li= filter_link_to t('admin.accounts.moderation.active'), status: 'active'
- %li= filter_link_to t('admin.accounts.moderation.suspended'), status: 'suspended'
- %li= filter_link_to safe_join([t('admin.accounts.moderation.pending'), "(#{number_with_delimiter(User.pending.count)})"], ' '), status: 'pending'
- .filter-subset
- %strong= t('admin.accounts.role')
- %ul
- %li= filter_link_to t('admin.accounts.moderation.all'), permissions: nil
- %li= filter_link_to t('admin.accounts.roles.staff'), permissions: 'staff'
- .filter-subset
- %strong= t 'generic.order_by'
- %ul
- %li= filter_link_to t('relationships.most_recent'), order: nil
- %li= filter_link_to t('relationships.last_active'), order: 'active'
-
= form_tag admin_accounts_url, method: 'GET', class: 'simple_form' do
- .fields-group
- - (AccountFilter::KEYS - %i(origin status permissions)).each do |key|
- - if params[key].present?
- = hidden_field_tag key, params[key]
+ .filters
+ .filter-subset.filter-subset--with-select
+ %strong= t('admin.accounts.location.title')
+ .input.select.optional
+ = select_tag :origin, options_for_select([[t('admin.accounts.location.local'), 'local'], [t('admin.accounts.location.remote'), 'remote']], params[:origin]), prompt: I18n.t('generic.all')
+ .filter-subset.filter-subset--with-select
+ %strong= t('admin.accounts.moderation.title')
+ .input.select.optional
+ = select_tag :status, options_for_select([[t('admin.accounts.moderation.active'), 'active'], [t('admin.accounts.moderation.silenced'), 'silenced'], [t('admin.accounts.moderation.suspended'), 'suspended'], [safe_join([t('admin.accounts.moderation.pending'), "(#{number_with_delimiter(User.pending.count)})"], ' '), 'pending']], params[:status]), prompt: I18n.t('generic.all')
+ .filter-subset.filter-subset--with-select
+ %strong= t('admin.accounts.role')
+ .input.select.optional
+ = select_tag :role_ids, options_from_collection_for_select(UserRole.assignable, :id, :name, params[:role_ids]), prompt: I18n.t('admin.accounts.moderation.all')
+ .filter-subset.filter-subset--with-select
+ %strong= t 'generic.order_by'
+ .input.select
+ = select_tag :order, options_for_select([[t('relationships.most_recent'), 'recent'], [t('relationships.last_active'), 'active']], params[:order])
+ .fields-group
- %i(username by_domain display_name email ip).each do |key|
- unless key == :by_domain && params[:origin] != 'remote'
.input.string.optional
= text_field_tag key, params[key], class: 'string optional', placeholder: I18n.t("admin.accounts.#{key}")
- .actions
- %button.button= t('admin.accounts.search')
- = link_to t('admin.accounts.reset'), admin_accounts_path, class: 'button negative'
+ .actions
+ %button.button= t('admin.accounts.search')
+ = link_to t('admin.accounts.reset'), admin_accounts_path, class: 'button negative'
+
+%hr.spacer/
= form_for(@form, url: batch_admin_accounts_path) do |f|
= hidden_field_tag :page, params[:page] || 1
+ = hidden_field_tag :select_all_matching, '0'
- AccountFilter::KEYS.each do |key|
= hidden_field_tag key, params[key] if params[key].present?
@@ -58,6 +50,14 @@
= f.button safe_join([fa_icon('times'), t('admin.accounts.reject')]), name: :reject, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') }
= f.button safe_join([fa_icon('lock'), t('admin.accounts.perform_full_suspension')]), name: :suspend, class: 'table-action-link', type: :submit, data: { confirm: t('admin.reports.are_you_sure') }
+ - if @accounts.total_count > @accounts.size
+ .batch-table__select-all
+ .not-selected.active
+ %span= t('generic.all_items_on_page_selected_html', count: @accounts.size)
+ %button{ type: 'button' }= t('generic.select_all_matching_items', count: @accounts.total_count)
+ .selected
+ %span= t('generic.all_matching_items_selected_html', count: @accounts.total_count)
+ %button{ type: 'button' }= t('generic.deselect')
.batch-table__body
- if @accounts.empty?
= nothing_here 'nothing-here--under-tabs'
diff --git a/app/views/admin/accounts/show.html.haml b/app/views/admin/accounts/show.html.haml
index a69832b046..dc3b359566 100644
--- a/app/views/admin/accounts/show.html.haml
+++ b/app/views/admin/accounts/show.html.haml
@@ -92,10 +92,13 @@
%tr
%th= t('admin.accounts.role')
- %td= t("admin.accounts.roles.#{@account.user&.role}")
%td
- = table_link_to 'angle-double-up', t('admin.accounts.promote'), promote_admin_account_role_path(@account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:promote, @account.user)
- = table_link_to 'angle-double-down', t('admin.accounts.demote'), demote_admin_account_role_path(@account.id), method: :post, data: { confirm: t('admin.accounts.are_you_sure') } if can?(:demote, @account.user)
+ - if @account.user_role&.everyone?
+ = t('admin.accounts.no_role_assigned')
+ - else
+ = @account.user_role&.name
+ %td
+ = table_link_to 'vcard', t('admin.accounts.change_role.label'), admin_user_role_path(@account.user) if can?(:change_role, @account.user)
%tr
%th{ rowspan: can?(:create, :email_domain_block) ? 3 : 2 }= t('admin.accounts.email')
diff --git a/app/views/admin/action_logs/index.html.haml b/app/views/admin/action_logs/index.html.haml
index 03d5bffb94..7869570e6e 100644
--- a/app/views/admin/action_logs/index.html.haml
+++ b/app/views/admin/action_logs/index.html.haml
@@ -8,7 +8,7 @@
.filter-subset.filter-subset--with-select
%strong= t('admin.action_logs.filter_by_user')
.input.select.optional
- = select_tag :account_id, options_from_collection_for_select(Account.joins(:user).merge(User.staff), :id, :username, params[:account_id]), prompt: I18n.t('admin.accounts.moderation.all')
+ = select_tag :account_id, options_from_collection_for_select(@auditable_accounts, :id, :username, params[:account_id]), prompt: I18n.t('admin.accounts.moderation.all')
.filter-subset.filter-subset--with-select
%strong= t('admin.action_logs.filter_by_action')
diff --git a/app/views/admin/announcements/edit.html.haml b/app/views/admin/announcements/edit.html.haml
index 5f56db5e7f..0f97270142 100644
--- a/app/views/admin/announcements/edit.html.haml
+++ b/app/views/admin/announcements/edit.html.haml
@@ -5,8 +5,8 @@
= render 'shared/error_messages', object: @announcement
.fields-group
- = f.input :starts_at, include_blank: true, wrapper: :with_block_label
- = f.input :ends_at, include_blank: true, wrapper: :with_block_label
+ = f.input :starts_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}(:[0-9]{2}){1,2}', placeholder: Time.now.strftime('%FT%R') }
+ = f.input :ends_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}(:[0-9]{2}){1,2}', placeholder: Time.now.strftime('%FT%R') }
.fields-group
= f.input :all_day, as: :boolean, wrapper: :with_label
diff --git a/app/views/admin/announcements/new.html.haml b/app/views/admin/announcements/new.html.haml
index a5298c5f66..b2f0c01ec9 100644
--- a/app/views/admin/announcements/new.html.haml
+++ b/app/views/admin/announcements/new.html.haml
@@ -5,8 +5,8 @@
= render 'shared/error_messages', object: @announcement
.fields-group
- = f.input :starts_at, include_blank: true, wrapper: :with_block_label
- = f.input :ends_at, include_blank: true, wrapper: :with_block_label
+ = f.input :starts_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}(:[0-9]{2}){1,2}', placeholder: Time.now.strftime('%FT%R') }
+ = f.input :ends_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}(:[0-9]{2}){1,2}', placeholder: Time.now.strftime('%FT%R') }
.fields-group
= f.input :all_day, as: :boolean, wrapper: :with_label
@@ -15,7 +15,7 @@
= f.input :text, wrapper: :with_block_label
.fields-group
- = f.input :scheduled_at, include_blank: true, wrapper: :with_block_label
+ = f.input :scheduled_at, include_blank: true, wrapper: :with_block_label, html5: true, input_html: { pattern: '[0-9]{4}-[0-9]{2}-[0-9]{2}T[0-9]{2}(:[0-9]{2}){1,2}', placeholder: Time.now.strftime('%FT%R') }
.actions
= f.button :button, t('.create'), type: :submit
diff --git a/app/views/admin/custom_emojis/_custom_emoji.html.haml b/app/views/admin/custom_emojis/_custom_emoji.html.haml
index 41f3975cf4..8d34d38e58 100644
--- a/app/views/admin/custom_emojis/_custom_emoji.html.haml
+++ b/app/views/admin/custom_emojis/_custom_emoji.html.haml
@@ -3,7 +3,7 @@
= f.check_box :custom_emoji_ids, { multiple: true, include_hidden: false }, custom_emoji.id
.batch-table__row__content.batch-table__row__content--with-image
.batch-table__row__content__image
- = custom_emoji_tag(custom_emoji, current_account&.user&.setting_auto_play_gif)
+ = custom_emoji_tag(custom_emoji)
.batch-table__row__content__text
%samp= ":#{custom_emoji.shortcode}:"
diff --git a/app/views/admin/instances/show.html.haml b/app/views/admin/instances/show.html.haml
index e8cc1c400d..00c1927dfe 100644
--- a/app/views/admin/instances/show.html.haml
+++ b/app/views/admin/instances/show.html.haml
@@ -1,32 +1,33 @@
- content_for :page_title do
= @instance.domain
-- content_for :heading_actions do
- = l(@time_period.first)
- = ' - '
- = l(@time_period.last)
+- if current_user.can?(:view_dashboard)
+ - content_for :heading_actions do
+ = l(@time_period.first)
+ = ' - '
+ = l(@time_period.last)
-%p
- = fa_icon 'info fw'
- = t('admin.instances.totals_time_period_hint_html')
+ %p
+ = fa_icon 'info fw'
+ = t('admin.instances.totals_time_period_hint_html')
-.dashboard
- .dashboard__item
- = react_admin_component :counter, measure: 'instance_accounts', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, label: t('admin.instances.dashboard.instance_accounts_measure'), href: admin_accounts_path(origin: 'remote', by_domain: @instance.domain)
- .dashboard__item
- = react_admin_component :counter, measure: 'instance_statuses', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, label: t('admin.instances.dashboard.instance_statuses_measure')
- .dashboard__item
- = react_admin_component :counter, measure: 'instance_media_attachments', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, label: t('admin.instances.dashboard.instance_media_attachments_measure')
- .dashboard__item
- = react_admin_component :counter, measure: 'instance_follows', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, label: t('admin.instances.dashboard.instance_follows_measure')
- .dashboard__item
- = react_admin_component :counter, measure: 'instance_followers', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, label: t('admin.instances.dashboard.instance_followers_measure')
- .dashboard__item
- = react_admin_component :counter, measure: 'instance_reports', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, label: t('admin.instances.dashboard.instance_reports_measure'), href: admin_reports_path(by_target_domain: @instance.domain)
- .dashboard__item
- = react_admin_component :dimension, dimension: 'instance_accounts', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, limit: 8, label: t('admin.instances.dashboard.instance_accounts_dimension')
- .dashboard__item
- = react_admin_component :dimension, dimension: 'instance_languages', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, limit: 8, label: t('admin.instances.dashboard.instance_languages_dimension')
+ .dashboard
+ .dashboard__item
+ = react_admin_component :counter, measure: 'instance_accounts', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, label: t('admin.instances.dashboard.instance_accounts_measure'), href: admin_accounts_path(origin: 'remote', by_domain: @instance.domain)
+ .dashboard__item
+ = react_admin_component :counter, measure: 'instance_statuses', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, label: t('admin.instances.dashboard.instance_statuses_measure')
+ .dashboard__item
+ = react_admin_component :counter, measure: 'instance_media_attachments', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, label: t('admin.instances.dashboard.instance_media_attachments_measure')
+ .dashboard__item
+ = react_admin_component :counter, measure: 'instance_follows', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, label: t('admin.instances.dashboard.instance_follows_measure')
+ .dashboard__item
+ = react_admin_component :counter, measure: 'instance_followers', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, label: t('admin.instances.dashboard.instance_followers_measure')
+ .dashboard__item
+ = react_admin_component :counter, measure: 'instance_reports', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, label: t('admin.instances.dashboard.instance_reports_measure'), href: admin_reports_path(by_target_domain: @instance.domain)
+ .dashboard__item
+ = react_admin_component :dimension, dimension: 'instance_accounts', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, limit: 8, label: t('admin.instances.dashboard.instance_accounts_dimension')
+ .dashboard__item
+ = react_admin_component :dimension, dimension: 'instance_languages', start_at: @time_period.first, end_at: @time_period.last, params: { domain: @instance.domain }, limit: 8, label: t('admin.instances.dashboard.instance_languages_dimension')
%hr.spacer/
diff --git a/app/views/admin/reports/_media_attachments.html.haml b/app/views/admin/reports/_media_attachments.html.haml
new file mode 100644
index 0000000000..d0b7d52c32
--- /dev/null
+++ b/app/views/admin/reports/_media_attachments.html.haml
@@ -0,0 +1,8 @@
+- if status.ordered_media_attachments.first.video?
+ - video = status.ordered_media_attachments.first
+ = react_component :video, src: video.file.url(:original), preview: video.file.url(:small), frameRate: video.file.meta.dig('original', 'frame_rate'), blurhash: video.blurhash, sensitive: status.sensitive?, visible: false, width: 610, height: 343, inline: true, alt: video.description, media: [ActiveModelSerializers::SerializableResource.new(video, serializer: REST::MediaAttachmentSerializer)].as_json
+- elsif status.ordered_media_attachments.first.audio?
+ - audio = status.ordered_media_attachments.first
+ = react_component :audio, src: audio.file.url(:original), height: 110, alt: audio.description, duration: audio.file.meta.dig(:original, :duration)
+- else
+ = react_component :media_gallery, height: 343, sensitive: status.sensitive?, visible: false, media: status.ordered_media_attachments.map { |a| ActiveModelSerializers::SerializableResource.new(a, serializer: REST::MediaAttachmentSerializer).as_json }
diff --git a/app/views/admin/reports/_status.html.haml b/app/views/admin/reports/_status.html.haml
index 392fc8f812..b2982a42bf 100644
--- a/app/views/admin/reports/_status.html.haml
+++ b/app/views/admin/reports/_status.html.haml
@@ -12,14 +12,7 @@
= prerender_custom_emojis(status_content_format(status.proper), status.proper.emojis)
- unless status.proper.ordered_media_attachments.empty?
- - if status.proper.ordered_media_attachments.first.video?
- - video = status.proper.ordered_media_attachments.first
- = react_component :video, src: video.file.url(:original), preview: video.file.url(:small), frameRate: video.file.meta.dig('original', 'frame_rate'), blurhash: video.blurhash, sensitive: status.proper.sensitive?, visible: false, width: 610, height: 343, inline: true, alt: video.description, media: [ActiveModelSerializers::SerializableResource.new(video, serializer: REST::MediaAttachmentSerializer)].as_json
- - elsif status.proper.ordered_media_attachments.first.audio?
- - audio = status.proper.ordered_media_attachments.first
- = react_component :audio, src: audio.file.url(:original), height: 110, alt: audio.description, duration: audio.file.meta.dig(:original, :duration)
- - else
- = react_component :media_gallery, height: 343, sensitive: status.proper.sensitive?, visible: false, media: status.proper.ordered_media_attachments.map { |a| ActiveModelSerializers::SerializableResource.new(a, serializer: REST::MediaAttachmentSerializer).as_json }
+ = render partial: 'admin/reports/media_attachments', locals: { status: status.proper }
.detailed-status__meta
- if status.application
@@ -29,7 +22,7 @@
%time.formatted{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at)
- if status.edited?
·
- = t('statuses.edited_at_html', date: content_tag(:time, l(status.edited_at), datetime: status.edited_at.iso8601, title: l(status.edited_at), class: 'formatted'))
+ = link_to t('statuses.edited_at_html', date: content_tag(:time, l(status.edited_at), datetime: status.edited_at.iso8601, title: l(status.edited_at), class: 'formatted')), admin_account_status_path(status.account_id, status), class: 'detailed-status__datetime'
- if status.discarded?
·
%span.negative-hint= t('admin.statuses.deleted')
diff --git a/app/views/admin/roles/_form.html.haml b/app/views/admin/roles/_form.html.haml
new file mode 100644
index 0000000000..31f78f2405
--- /dev/null
+++ b/app/views/admin/roles/_form.html.haml
@@ -0,0 +1,40 @@
+= simple_form_for @role, url: @role.new_record? ? admin_roles_path : admin_role_path(@role) do |f|
+ = render 'shared/error_messages', object: @role
+
+ - if @role.everyone?
+ .flash-message.info
+ = t('admin.roles.everyone_full_description_html')
+ - else
+ .fields-group
+ = f.input :name, wrapper: :with_label
+
+ - unless current_user.role.id == @role.id
+ .fields-group
+ = f.input :position, wrapper: :with_label, input_html: { max: current_user.role.position - 1 }
+
+ .fields-group
+ = f.input :color, wrapper: :with_label, input_html: { placeholder: '#000000', type: 'color' }
+
+ %hr.spacer/
+
+ .fields-group
+ = f.input :highlighted, wrapper: :with_label
+
+ %hr.spacer/
+
+ - unless current_user.role.id == @role.id
+
+ .field-group
+ .input.with_block_label
+ %label= t('simple_form.labels.user_role.permissions_as_keys')
+ %span.hint= t('simple_form.hints.user_role.permissions_as_keys')
+
+ - (@role.everyone? ? UserRole::Flags::CATEGORIES.slice(:invites) : UserRole::Flags::CATEGORIES).each do |category, permissions|
+ %h4= t(category, scope: 'admin.roles.categories')
+
+ = f.input :permissions_as_keys, collection: permissions, wrapper: :with_block_label, include_blank: false, label_method: lambda { |privilege| safe_join([t("admin.roles.privileges.#{privilege}"), content_tag(:span, t("admin.roles.privileges.#{privilege}_description"), class: 'hint')]) }, required: false, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', label: false, hint: false, disabled: permissions.filter { |privilege| UserRole::FLAGS[privilege] & current_user.role.computed_permissions == 0 }
+
+ %hr.spacer/
+
+ .actions
+ = f.button :button, @role.new_record? ? t('admin.roles.add_new') : t('generic.save_changes'), type: :submit
diff --git a/app/views/admin/roles/_role.html.haml b/app/views/admin/roles/_role.html.haml
new file mode 100644
index 0000000000..798d8d8b4f
--- /dev/null
+++ b/app/views/admin/roles/_role.html.haml
@@ -0,0 +1,30 @@
+.announcements-list__item
+ - if can?(:update, role)
+ = link_to edit_admin_role_path(role), class: 'announcements-list__item__title' do
+ %span.user-role{ class: "user-role-#{role.id}" }
+ = fa_icon 'users fw'
+
+ - if role.everyone?
+ = t('admin.roles.everyone')
+ - else
+ = role.name
+ - else
+ %span.announcements-list__item__title
+ %span.user-role{ class: "user-role-#{role.id}" }
+ = fa_icon 'users fw'
+
+ - if role.everyone?
+ = t('admin.roles.everyone')
+ - else
+ = role.name
+
+ .announcements-list__item__action-bar
+ .announcements-list__item__meta
+ - if role.everyone?
+ = t('admin.roles.everyone_full_description_html')
+ - else
+ = link_to t('admin.roles.assigned_users', count: role.users.count), admin_accounts_path(role_ids: role.id)
+ •
+ %abbr{ title: role.permissions_as_keys.map { |privilege| I18n.t("admin.roles.privileges.#{privilege}") }.join(', ') }= t('admin.roles.permissions_count', count: role.permissions_as_keys.size)
+ %div
+ = table_link_to 'pencil', t('admin.accounts.edit'), edit_admin_role_path(role) if can?(:update, role)
diff --git a/app/views/admin/roles/edit.html.haml b/app/views/admin/roles/edit.html.haml
new file mode 100644
index 0000000000..659ccb8dce
--- /dev/null
+++ b/app/views/admin/roles/edit.html.haml
@@ -0,0 +1,8 @@
+- content_for :page_title do
+ = t('admin.roles.edit', name: @role.everyone? ? t('admin.roles.everyone') : @role.name)
+
+- content_for :heading_actions do
+ = link_to t('admin.roles.delete'), admin_role_path(@role), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') }, class: 'button button--destructive' if can?(:destroy, @role)
+
+= render partial: 'form'
+
diff --git a/app/views/admin/roles/index.html.haml b/app/views/admin/roles/index.html.haml
new file mode 100644
index 0000000000..4f6c511b4f
--- /dev/null
+++ b/app/views/admin/roles/index.html.haml
@@ -0,0 +1,17 @@
+- content_for :page_title do
+ = t('admin.roles.title')
+
+- content_for :heading_actions do
+ = link_to t('admin.roles.add_new'), new_admin_role_path, class: 'button' if can?(:create, :user_role)
+
+%p= t('admin.roles.description_html')
+
+%hr.spacer/
+
+.applications-list
+ = render partial: 'role', collection: @roles.select(&:everyone?)
+
+%hr.spacer/
+
+.applications-list
+ = render partial: 'role', collection: @roles.reject(&:everyone?)
diff --git a/app/views/admin/roles/new.html.haml b/app/views/admin/roles/new.html.haml
new file mode 100644
index 0000000000..8210792718
--- /dev/null
+++ b/app/views/admin/roles/new.html.haml
@@ -0,0 +1,4 @@
+- content_for :page_title do
+ = t('admin.roles.add_new')
+
+= render partial: 'form'
diff --git a/app/views/admin/settings/about/show.html.haml b/app/views/admin/settings/about/show.html.haml
new file mode 100644
index 0000000000..6ee719e36a
--- /dev/null
+++ b/app/views/admin/settings/about/show.html.haml
@@ -0,0 +1,30 @@
+- content_for :page_title do
+ = t('admin.settings.about.title')
+
+- content_for :heading do
+ %h2= t('admin.settings.title')
+ = render partial: 'admin/settings/shared/links'
+
+= simple_form_for @admin_settings, url: admin_settings_about_path, html: { method: :patch } do |f|
+ = render 'shared/error_messages', object: @admin_settings
+
+ %p.lead= t('admin.settings.about.preamble')
+
+ .fields-group
+ = f.input :site_extended_description, wrapper: :with_block_label, as: :text, input_html: { rows: 8 }
+
+ %p.hint
+ = t 'admin.settings.about.rules_hint'
+ = link_to t('admin.settings.about.manage_rules'), admin_rules_path
+
+ .fields-row
+ .fields-row__column.fields-row__column-6.fields-group
+ = f.input :show_domain_blocks, wrapper: :with_label, collection: %i(disabled users all), label_method: lambda { |value| t("admin.settings.domain_blocks.#{value}") }, include_blank: false, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li'
+ .fields-row__column.fields-row__column-6.fields-group
+ = f.input :show_domain_blocks_rationale, wrapper: :with_label, collection: %i(disabled users all), label_method: lambda { |value| t("admin.settings.domain_blocks.#{value}") }, include_blank: false, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li'
+
+ .fields-group
+ = f.input :site_terms, wrapper: :with_block_label, as: :text, input_html: { rows: 8 }
+
+ .actions
+ = f.button :button, t('generic.save_changes'), type: :submit
diff --git a/app/views/admin/settings/appearance/show.html.haml b/app/views/admin/settings/appearance/show.html.haml
new file mode 100644
index 0000000000..f02ecc105b
--- /dev/null
+++ b/app/views/admin/settings/appearance/show.html.haml
@@ -0,0 +1,31 @@
+- content_for :page_title do
+ = t('admin.settings.appearance.title')
+
+- content_for :heading do
+ %h2= t('admin.settings.title')
+ = render partial: 'admin/settings/shared/links'
+
+= simple_form_for @admin_settings, url: admin_settings_appearance_path, html: { method: :patch } do |f|
+ = render 'shared/error_messages', object: @admin_settings
+
+ %p.lead= t('admin.settings.appearance.preamble')
+
+ .fields-group
+ = f.input :flavour_and_skin, collection: Themes.instance.flavours_and_skins, group_label_method: lambda { |(flavour, _)| I18n.t("flavours.#{flavour}.name", default: flavour) }, wrapper: :with_label, label: t('admin.settings.flavour_and_skin.title'), include_blank: false, as: :grouped_select, label_method: :last, value_method: lambda { |value| value.join('/') }, group_method: :last
+
+ .fields-group
+ = f.input :custom_css, wrapper: :with_block_label, as: :text, input_html: { rows: 8 }
+
+ .fields-row
+ .fields-row__column.fields-row__column-6.fields-group
+ = f.input :mascot, as: :file, wrapper: :with_block_label
+
+ .fields-row__column.fields-row__column-6.fields-group
+ - if @admin_settings.mascot.persisted?
+ = image_tag @admin_settings.mascot.file.url, class: 'fields-group__thumbnail'
+ = link_to admin_site_upload_path(@admin_settings.mascot), data: { method: :delete }, class: 'link-button link-button--destructive' do
+ = fa_icon 'trash fw'
+ = t('admin.site_uploads.delete')
+
+ .actions
+ = f.button :button, t('generic.save_changes'), type: :submit
diff --git a/app/views/admin/settings/branding/show.html.haml b/app/views/admin/settings/branding/show.html.haml
new file mode 100644
index 0000000000..aee7306892
--- /dev/null
+++ b/app/views/admin/settings/branding/show.html.haml
@@ -0,0 +1,36 @@
+- content_for :page_title do
+ = t('admin.settings.branding.title')
+
+- content_for :heading do
+ %h2= t('admin.settings.title')
+ = render partial: 'admin/settings/shared/links'
+
+= simple_form_for @admin_settings, url: admin_settings_branding_path, html: { method: :patch } do |f|
+ = render 'shared/error_messages', object: @admin_settings
+
+ %p.lead= t('admin.settings.branding.preamble')
+
+ .fields-group
+ = f.input :site_title, wrapper: :with_label
+
+ .fields-row
+ .fields-row__column.fields-row__column-6.fields-group
+ = f.input :site_contact_username, wrapper: :with_label
+ .fields-row__column.fields-row__column-6.fields-group
+ = f.input :site_contact_email, wrapper: :with_label
+
+ .fields-group
+ = f.input :site_short_description, wrapper: :with_block_label, as: :text, input_html: { rows: 2, maxlength: 200 }
+
+ .fields-row
+ .fields-row__column.fields-row__column-6.fields-group
+ = f.input :thumbnail, as: :file, wrapper: :with_block_label
+ .fields-row__column.fields-row__column-6.fields-group
+ - if @admin_settings.thumbnail.persisted?
+ = image_tag @admin_settings.thumbnail.file.url(:'@1x'), class: 'fields-group__thumbnail'
+ = link_to admin_site_upload_path(@admin_settings.thumbnail), data: { method: :delete }, class: 'link-button link-button--destructive' do
+ = fa_icon 'trash fw'
+ = t('admin.site_uploads.delete')
+
+ .actions
+ = f.button :button, t('generic.save_changes'), type: :submit
diff --git a/app/views/admin/settings/content_retention/show.html.haml b/app/views/admin/settings/content_retention/show.html.haml
new file mode 100644
index 0000000000..b9467572af
--- /dev/null
+++ b/app/views/admin/settings/content_retention/show.html.haml
@@ -0,0 +1,19 @@
+- content_for :page_title do
+ = t('admin.settings.content_retention.title')
+
+- content_for :heading do
+ %h2= t('admin.settings.title')
+ = render partial: 'admin/settings/shared/links'
+
+= simple_form_for @admin_settings, url: admin_settings_content_retention_path, html: { method: :patch } do |f|
+ = render 'shared/error_messages', object: @admin_settings
+
+ %p.lead= t('admin.settings.content_retention.preamble')
+
+ .fields-group
+ = f.input :media_cache_retention_period, wrapper: :with_block_label, input_html: { pattern: '[0-9]+' }
+ = f.input :content_cache_retention_period, wrapper: :with_block_label, input_html: { pattern: '[0-9]+' }
+ = f.input :backups_retention_period, wrapper: :with_block_label, input_html: { pattern: '[0-9]+' }
+
+ .actions
+ = f.button :button, t('generic.save_changes'), type: :submit
diff --git a/app/views/admin/settings/discovery/show.html.haml b/app/views/admin/settings/discovery/show.html.haml
new file mode 100644
index 0000000000..9b6424c79c
--- /dev/null
+++ b/app/views/admin/settings/discovery/show.html.haml
@@ -0,0 +1,40 @@
+- content_for :page_title do
+ = t('admin.settings.discovery.title')
+
+- content_for :heading do
+ %h2= t('admin.settings.title')
+ = render partial: 'admin/settings/shared/links'
+
+= simple_form_for @admin_settings, url: admin_settings_discovery_path, html: { method: :patch } do |f|
+ = render 'shared/error_messages', object: @admin_settings
+
+ %p.lead= t('admin.settings.discovery.preamble')
+
+ %h4= t('admin.settings.discovery.trends')
+
+ .fields-group
+ = f.input :trends, as: :boolean, wrapper: :with_label
+
+ .fields-group
+ = f.input :trendable_by_default, as: :boolean, wrapper: :with_label, recommended: :not_recommended
+
+ .fields-group
+ = f.input :trending_status_cw, as: :boolean, wrapper: :with_label, label: t('admin.settings.trending_status_cw.title'), hint: t('admin.settings.trending_status_cw.desc_html')
+
+ %h4= t('admin.settings.discovery.public_timelines')
+
+ .fields-group
+ = f.input :timeline_preview, as: :boolean, wrapper: :with_label
+
+ %h4= t('admin.settings.discovery.follow_recommendations')
+
+ .fields-group
+ = f.input :bootstrap_timeline_accounts, wrapper: :with_block_label
+
+ %h4= t('admin.settings.discovery.profile_directory')
+
+ .fields-group
+ = f.input :profile_directory, as: :boolean, wrapper: :with_label
+
+ .actions
+ = f.button :button, t('generic.save_changes'), type: :submit
diff --git a/app/views/admin/settings/edit.html.haml b/app/views/admin/settings/edit.html.haml
deleted file mode 100644
index dd794b7270..0000000000
--- a/app/views/admin/settings/edit.html.haml
+++ /dev/null
@@ -1,125 +0,0 @@
-- content_for :page_title do
- = t('admin.settings.title')
-
- - content_for :heading_actions do
- = button_tag t('generic.save_changes'), class: 'button', form: 'edit_admin'
-
-= simple_form_for @admin_settings, url: admin_settings_path, html: { method: :patch, id: 'edit_admin' } do |f|
- = render 'shared/error_messages', object: @admin_settings
-
- .fields-group
- = f.input :site_title, wrapper: :with_label, label: t('admin.settings.site_title')
-
- .fields-row
- .fields-row__column.fields-row__column-6.fields-group
- = f.input :flavour_and_skin, collection: Themes.instance.flavours_and_skins, group_label_method: lambda { |(flavour, _)| I18n.t("flavours.#{flavour}.name", default: flavour) }, wrapper: :with_label, label: t('admin.settings.flavour_and_skin.title'), include_blank: false, as: :grouped_select, label_method: :last, value_method: lambda { |value| value.join('/') }, group_method: :last
- .fields-row__column.fields-row__column-6.fields-group
- = f.input :registrations_mode, collection: %w(open approved none), wrapper: :with_label, label: t('admin.settings.registrations_mode.title'), include_blank: false, label_method: lambda { |mode| I18n.t("admin.settings.registrations_mode.modes.#{mode}") }
-
- .fields-row
- .fields-row__column.fields-row__column-6.fields-group
- = f.input :site_contact_username, wrapper: :with_label, label: t('admin.settings.contact_information.username')
- .fields-row__column.fields-row__column-6.fields-group
- = f.input :site_contact_email, wrapper: :with_label, label: t('admin.settings.contact_information.email')
-
- .fields-group
- = f.input :site_short_description, wrapper: :with_block_label, as: :text, label: t('admin.settings.site_short_description.title'), hint: t('admin.settings.site_short_description.desc_html'), input_html: { rows: 2 }
-
- .fields-group
- = f.input :site_description, wrapper: :with_block_label, as: :text, label: t('admin.settings.site_description.title'), hint: t('admin.settings.site_description.desc_html'), input_html: { rows: 2 }
-
- .fields-row
- .fields-row__column.fields-row__column-6.fields-group
- = f.input :thumbnail, as: :file, wrapper: :with_block_label, label: t('admin.settings.thumbnail.title'), hint: site_upload_delete_hint(t('admin.settings.thumbnail.desc_html'), :thumbnail)
- .fields-row__column.fields-row__column-6.fields-group
- = f.input :hero, as: :file, wrapper: :with_block_label, label: t('admin.settings.hero.title'), hint: site_upload_delete_hint(t('admin.settings.hero.desc_html'), :hero)
-
- .fields-row
- .fields-row__column.fields-row__column-6.fields-group
- = f.input :mascot, as: :file, wrapper: :with_block_label, label: t('admin.settings.mascot.title'), hint: site_upload_delete_hint(t('admin.settings.mascot.desc_html'), :mascot)
-
- %hr.spacer/
-
- .fields-group
- = f.input :require_invite_text, as: :boolean, wrapper: :with_label, label: t('admin.settings.registrations.require_invite_text.title'), hint: t('admin.settings.registrations.require_invite_text.desc_html'), disabled: !approved_registrations?
-
- - if captcha_available?
- .fields-group
- = f.input :captcha_enabled, as: :boolean, wrapper: :with_label, label: t('admin.settings.captcha_enabled.title'), hint: t('admin.settings.captcha_enabled.desc_html')
-
- %hr.spacer/
-
- .fields-group
- = f.input :bootstrap_timeline_accounts, wrapper: :with_block_label, label: t('admin.settings.bootstrap_timeline_accounts.title'), hint: t('admin.settings.bootstrap_timeline_accounts.desc_html')
-
- %hr.spacer/
-
- - unless whitelist_mode?
- .fields-group
- = f.input :timeline_preview, as: :boolean, wrapper: :with_label, label: t('admin.settings.timeline_preview.title'), hint: t('admin.settings.timeline_preview.desc_html')
-
- .fields-group
- = f.input :show_known_fediverse_at_about_page, as: :boolean, wrapper: :with_label, label: t('admin.settings.show_known_fediverse_at_about_page.title'), hint: t('admin.settings.show_known_fediverse_at_about_page.desc_html')
-
- .fields-group
- = f.input :show_staff_badge, as: :boolean, wrapper: :with_label, label: t('admin.settings.show_staff_badge.title'), hint: t('admin.settings.show_staff_badge.desc_html')
-
- .fields-group
- = f.input :open_deletion, as: :boolean, wrapper: :with_label, label: t('admin.settings.registrations.deletion.title'), hint: t('admin.settings.registrations.deletion.desc_html')
-
- - unless whitelist_mode?
- .fields-group
- = f.input :activity_api_enabled, as: :boolean, wrapper: :with_label, label: t('admin.settings.activity_api_enabled.title'), hint: t('admin.settings.activity_api_enabled.desc_html'), recommended: true
-
- .fields-group
- = f.input :peers_api_enabled, as: :boolean, wrapper: :with_label, label: t('admin.settings.peers_api_enabled.title'), hint: t('admin.settings.peers_api_enabled.desc_html'), recommended: true
-
- .fields-group
- = f.input :preview_sensitive_media, as: :boolean, wrapper: :with_label, label: t('admin.settings.preview_sensitive_media.title'), hint: t('admin.settings.preview_sensitive_media.desc_html')
-
- .fields-group
- = f.input :profile_directory, as: :boolean, wrapper: :with_label, label: t('admin.settings.profile_directory.title'), hint: t('admin.settings.profile_directory.desc_html')
-
- .fields-group
- = f.input :trends, as: :boolean, wrapper: :with_label, label: t('admin.settings.trends.title'), hint: t('admin.settings.trends.desc_html')
-
- .fields-group
- = f.input :trendable_by_default, as: :boolean, wrapper: :with_label, label: t('admin.settings.trendable_by_default.title'), hint: t('admin.settings.trendable_by_default.desc_html')
-
- .fields-group
- = f.input :trending_status_cw, as: :boolean, wrapper: :with_label, label: t('admin.settings.trending_status_cw.title'), hint: t('admin.settings.trending_status_cw.desc_html')
-
- .fields-group
- = f.input :noindex, as: :boolean, wrapper: :with_label, label: t('admin.settings.default_noindex.title'), hint: t('admin.settings.default_noindex.desc_html')
-
- .fields-group
- = f.input :hide_followers_count, as: :boolean, wrapper: :with_label, label: t('admin.settings.hide_followers_count.title'), hint: t('admin.settings.hide_followers_count.desc_html')
-
- .fields-group
- = f.input :show_reblogs_in_public_timelines, as: :boolean, wrapper: :with_label, label: t('admin.settings.show_reblogs_in_public_timelines.title'), hint: t('admin.settings.show_reblogs_in_public_timelines.desc_html')
-
- .fields-group
- = f.input :show_replies_in_public_timelines, as: :boolean, wrapper: :with_label, label: t('admin.settings.show_replies_in_public_timelines.title'), hint: t('admin.settings.show_replies_in_public_timelines.desc_html')
-
- %hr.spacer/
-
- .fields-group
- = f.input :min_invite_role, wrapper: :with_label, collection: %i(disabled user moderator admin), label: t('admin.settings.registrations.min_invite_role.title'), label_method: lambda { |role| role == :disabled ? t('admin.settings.registrations.min_invite_role.disabled') : t("admin.accounts.roles.#{role}") }, include_blank: false, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li'
-
- .fields-row
- .fields-row__column.fields-row__column-6.fields-group
- = f.input :show_domain_blocks, wrapper: :with_label, collection: %i(disabled users all), label: t('admin.settings.domain_blocks.title'), label_method: lambda { |value| t("admin.settings.domain_blocks.#{value}") }, include_blank: false, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li'
- .fields-row__column.fields-row__column-6.fields-group
- = f.input :show_domain_blocks_rationale, wrapper: :with_label, collection: %i(disabled users all), label: t('admin.settings.domain_blocks_rationale.title'), label_method: lambda { |value| t("admin.settings.domain_blocks.#{value}") }, include_blank: false, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li'
-
- .fields-group
- = f.input :outgoing_spoilers, wrapper: :with_label, label: t('admin.settings.outgoing_spoilers.title'), hint: t('admin.settings.outgoing_spoilers.desc_html')
-
- .fields-group
- = f.input :site_extended_description, wrapper: :with_block_label, as: :text, label: t('admin.settings.site_description_extended.title'), hint: t('admin.settings.site_description_extended.desc_html'), input_html: { rows: 8 } unless whitelist_mode?
- = f.input :closed_registrations_message, as: :text, wrapper: :with_block_label, label: t('admin.settings.registrations.closed_message.title'), hint: t('admin.settings.registrations.closed_message.desc_html'), input_html: { rows: 8 }
- = f.input :site_terms, wrapper: :with_block_label, as: :text, label: t('admin.settings.site_terms.title'), hint: t('admin.settings.site_terms.desc_html'), input_html: { rows: 8 }
- = f.input :custom_css, wrapper: :with_block_label, as: :text, input_html: { rows: 8 }, label: t('admin.settings.custom_css.title'), hint: t('admin.settings.custom_css.desc_html')
-
- .actions
- = f.button :button, t('generic.save_changes'), type: :submit
diff --git a/app/views/admin/settings/registrations/show.html.haml b/app/views/admin/settings/registrations/show.html.haml
new file mode 100644
index 0000000000..f5e4481253
--- /dev/null
+++ b/app/views/admin/settings/registrations/show.html.haml
@@ -0,0 +1,28 @@
+- content_for :page_title do
+ = t('admin.settings.registrations.title')
+
+- content_for :heading do
+ %h2= t('admin.settings.title')
+ = render partial: 'admin/settings/shared/links'
+
+= simple_form_for @admin_settings, url: admin_settings_branding_path, html: { method: :patch } do |f|
+ = render 'shared/error_messages', object: @admin_settings
+
+ %p.lead= t('admin.settings.registrations.preamble')
+
+ .fields-row
+ .fields-row__column.fields-row__column-6.fields-group
+ = f.input :registrations_mode, collection: %w(open approved none), wrapper: :with_label, include_blank: false, label_method: lambda { |mode| I18n.t("admin.settings.registrations_mode.modes.#{mode}") }
+
+ .fields-row__column.fields-row__column-6.fields-group
+ = f.input :require_invite_text, as: :boolean, wrapper: :with_label, disabled: !approved_registrations?
+
+ - if captcha_available?
+ .fields-group
+ = f.input :captcha_enabled, as: :boolean, wrapper: :with_label, label: t('admin.settings.captcha_enabled.title'), hint: t('admin.settings.captcha_enabled.desc_html')
+
+ .fields-group
+ = f.input :closed_registrations_message, as: :text, wrapper: :with_block_label, input_html: { rows: 2 }
+
+ .actions
+ = f.button :button, t('generic.save_changes'), type: :submit
diff --git a/app/views/admin/settings/shared/_links.html.haml b/app/views/admin/settings/shared/_links.html.haml
new file mode 100644
index 0000000000..1294c26ce1
--- /dev/null
+++ b/app/views/admin/settings/shared/_links.html.haml
@@ -0,0 +1,8 @@
+.content__heading__tabs
+ = render_navigation renderer: :links do |primary|
+ - primary.item :branding, safe_join([fa_icon('pencil fw'), t('admin.settings.branding.title')]), admin_settings_branding_path
+ - primary.item :about, safe_join([fa_icon('file-text fw'), t('admin.settings.about.title')]), admin_settings_about_path
+ - primary.item :registrations, safe_join([fa_icon('users fw'), t('admin.settings.registrations.title')]), admin_settings_registrations_path
+ - primary.item :discovery, safe_join([fa_icon('search fw'), t('admin.settings.discovery.title')]), admin_settings_discovery_path
+ - primary.item :content_retention, safe_join([fa_icon('history fw'), t('admin.settings.content_retention.title')]), admin_settings_content_retention_path
+ - primary.item :appearance, safe_join([fa_icon('desktop fw'), t('admin.settings.appearance.title')]), admin_settings_appearance_path
diff --git a/app/views/admin/status_edits/_status_edit.html.haml b/app/views/admin/status_edits/_status_edit.html.haml
new file mode 100644
index 0000000000..19a0e063da
--- /dev/null
+++ b/app/views/admin/status_edits/_status_edit.html.haml
@@ -0,0 +1,20 @@
+.status
+ .status__content><
+ - if status_edit.spoiler_text.blank?
+ = prerender_custom_emojis(status_content_format(status_edit), status_edit.emojis)
+ - else
+ %details<
+ %summary><
+ %strong> Content warning: #{prerender_custom_emojis(h(status_edit.spoiler_text), status_edit.emojis)}
+ = prerender_custom_emojis(status_content_format(status_edit), status_edit.emojis)
+
+ - unless status_edit.ordered_media_attachments.empty?
+ = render partial: 'admin/reports/media_attachments', locals: { status: status_edit }
+
+ .detailed-status__meta
+ %time.formatted{ datetime: status_edit.created_at.iso8601, title: l(status_edit.created_at) }= l(status_edit.created_at)
+
+ - if status_edit.sensitive?
+ ·
+ = fa_icon('eye-slash fw')
+ = t('stream_entries.sensitive_content')
diff --git a/app/views/admin/statuses/show.html.haml b/app/views/admin/statuses/show.html.haml
new file mode 100644
index 0000000000..1e1e63f37d
--- /dev/null
+++ b/app/views/admin/statuses/show.html.haml
@@ -0,0 +1,61 @@
+- content_for :page_title do
+ = t('statuses.title', name: display_name(@account), quote: truncate(@status.spoiler_text.presence || @status.text, length: 50, omission: '…', escape: false))
+
+- content_for :heading_actions do
+ = link_to t('admin.statuses.open'), ActivityPub::TagManager.instance.url_for(@status), class: 'button', target: '_blank'
+
+%h3= t('admin.statuses.metadata')
+
+.table-wrapper
+ %table.table.horizontal-table
+ %tbody
+ %tr
+ %th= t('admin.statuses.account')
+ %td= admin_account_link_to @status.account
+ - if @status.reply?
+ %tr
+ %th= t('admin.statuses.in_reply_to')
+ %td= admin_account_link_to @status.in_reply_to_account, path: admin_account_status_path(@status.thread.account_id, @status.in_reply_to_id)
+ %tr
+ %th= t('admin.statuses.application')
+ %td= @status.application&.name
+ %tr
+ %th= t('admin.statuses.language')
+ %td= standard_locale_name(@status.language)
+ %tr
+ %th= t('admin.statuses.visibility')
+ %td= t("statuses.visibilities.#{@status.visibility}")
+ - if @status.trend
+ %tr
+ %th= t('admin.statuses.trending')
+ %td
+ - if @status.trend.allowed?
+ %abbr{ title: t('admin.trends.tags.current_score', score: @status.trend.score) }= t('admin.trends.tags.trending_rank', rank: @status.trend.rank)
+ - elsif @status.trend.requires_review?
+ = t('admin.trends.pending_review')
+ - else
+ = t('admin.trends.not_allowed_to_trend')
+ %tr
+ %th= t('admin.statuses.reblogs')
+ %td= friendly_number_to_human @status.reblogs_count
+ %tr
+ %th= t('admin.statuses.favourites')
+ %td= friendly_number_to_human @status.favourites_count
+
+%hr.spacer/
+
+%h3= t('admin.statuses.history')
+
+%ol.history
+ - @status.edits.includes(:account, status: [:account]).each.with_index do |status_edit, i|
+ %li
+ .history__entry
+ %h5
+ - if i.zero?
+ = t('admin.statuses.original_status')
+ - else
+ = t('admin.statuses.status_changed')
+ ·
+ %time.formatted{ datetime: status_edit.created_at.iso8601, title: l(status_edit.created_at) }= l(status_edit.created_at)
+
+ = render status_edit
diff --git a/app/views/admin/tags/show.html.haml b/app/views/admin/tags/show.html.haml
index 5ac57e1f2a..71bce0c0cb 100644
--- a/app/views/admin/tags/show.html.haml
+++ b/app/views/admin/tags/show.html.haml
@@ -1,55 +1,56 @@
- content_for :page_title do
- = "##{@tag.name}"
-
-- content_for :heading_actions do
- = l(@time_period.first)
- = ' - '
- = l(@time_period.last)
-
-.dashboard
- .dashboard__item
- = react_admin_component :counter, measure: 'tag_accounts', start_at: @time_period.first, end_at: @time_period.last, params: { id: @tag.id }, label: t('admin.trends.tags.dashboard.tag_accounts_measure'), href: tag_url(@tag), target: '_blank'
- .dashboard__item
- = react_admin_component :counter, measure: 'tag_uses', start_at: @time_period.first, end_at: @time_period.last, params: { id: @tag.id }, label: t('admin.trends.tags.dashboard.tag_uses_measure')
- .dashboard__item
- = react_admin_component :counter, measure: 'tag_servers', start_at: @time_period.first, end_at: @time_period.last, params: { id: @tag.id }, label: t('admin.trends.tags.dashboard.tag_servers_measure')
- .dashboard__item
- = react_admin_component :dimension, dimension: 'tag_servers', start_at: @time_period.first, end_at: @time_period.last, params: { id: @tag.id }, limit: 8, label: t('admin.trends.tags.dashboard.tag_servers_dimension')
- .dashboard__item
- = react_admin_component :dimension, dimension: 'tag_languages', start_at: @time_period.first, end_at: @time_period.last, params: { id: @tag.id }, limit: 8, label: t('admin.trends.tags.dashboard.tag_languages_dimension')
- .dashboard__item
- = link_to admin_tag_path(@tag.id), class: ['dashboard__quick-access', @tag.usable? ? 'positive' : 'negative'] do
- - if @tag.usable?
- %span= t('admin.trends.tags.usable')
- = fa_icon 'check fw'
- - else
- %span= t('admin.trends.tags.not_usable')
- = fa_icon 'lock fw'
-
- = link_to admin_tag_path(@tag.id), class: ['dashboard__quick-access', @tag.trendable? ? 'positive' : 'negative'] do
- - if @tag.trendable?
- %span= t('admin.trends.tags.trendable')
- = fa_icon 'check fw'
- - else
- %span= t('admin.trends.tags.not_trendable')
- = fa_icon 'lock fw'
-
-
- = link_to admin_tag_path(@tag.id), class: ['dashboard__quick-access', @tag.listable? ? 'positive' : 'negative'] do
- - if @tag.listable?
- %span= t('admin.trends.tags.listable')
- = fa_icon 'check fw'
- - else
- %span= t('admin.trends.tags.not_listable')
- = fa_icon 'lock fw'
-
-%hr.spacer/
+ = "##{@tag.display_name}"
+
+- if current_user.can?(:view_dashboard)
+ - content_for :heading_actions do
+ = l(@time_period.first)
+ = ' - '
+ = l(@time_period.last)
+
+ .dashboard
+ .dashboard__item
+ = react_admin_component :counter, measure: 'tag_accounts', start_at: @time_period.first, end_at: @time_period.last, params: { id: @tag.id }, label: t('admin.trends.tags.dashboard.tag_accounts_measure'), href: tag_url(@tag), target: '_blank'
+ .dashboard__item
+ = react_admin_component :counter, measure: 'tag_uses', start_at: @time_period.first, end_at: @time_period.last, params: { id: @tag.id }, label: t('admin.trends.tags.dashboard.tag_uses_measure')
+ .dashboard__item
+ = react_admin_component :counter, measure: 'tag_servers', start_at: @time_period.first, end_at: @time_period.last, params: { id: @tag.id }, label: t('admin.trends.tags.dashboard.tag_servers_measure')
+ .dashboard__item
+ = react_admin_component :dimension, dimension: 'tag_servers', start_at: @time_period.first, end_at: @time_period.last, params: { id: @tag.id }, limit: 8, label: t('admin.trends.tags.dashboard.tag_servers_dimension')
+ .dashboard__item
+ = react_admin_component :dimension, dimension: 'tag_languages', start_at: @time_period.first, end_at: @time_period.last, params: { id: @tag.id }, limit: 8, label: t('admin.trends.tags.dashboard.tag_languages_dimension')
+ .dashboard__item
+ = link_to admin_tag_path(@tag.id), class: ['dashboard__quick-access', @tag.usable? ? 'positive' : 'negative'] do
+ - if @tag.usable?
+ %span= t('admin.trends.tags.usable')
+ = fa_icon 'check fw'
+ - else
+ %span= t('admin.trends.tags.not_usable')
+ = fa_icon 'lock fw'
+
+ = link_to admin_tag_path(@tag.id), class: ['dashboard__quick-access', @tag.trendable? ? 'positive' : 'negative'] do
+ - if @tag.trendable?
+ %span= t('admin.trends.tags.trendable')
+ = fa_icon 'check fw'
+ - else
+ %span= t('admin.trends.tags.not_trendable')
+ = fa_icon 'lock fw'
+
+
+ = link_to admin_tag_path(@tag.id), class: ['dashboard__quick-access', @tag.listable? ? 'positive' : 'negative'] do
+ - if @tag.listable?
+ %span= t('admin.trends.tags.listable')
+ = fa_icon 'check fw'
+ - else
+ %span= t('admin.trends.tags.not_listable')
+ = fa_icon 'lock fw'
+
+ %hr.spacer/
= simple_form_for @tag, url: admin_tag_path(@tag.id) do |f|
= render 'shared/error_messages', object: @tag
.fields-group
- = f.input :name, wrapper: :with_block_label
+ = f.input :display_name, wrapper: :with_block_label
.fields-group
= f.input :usable, as: :boolean, wrapper: :with_label
diff --git a/app/views/admin/trends/links/_preview_card.html.haml b/app/views/admin/trends/links/_preview_card.html.haml
index 7d4897c7e4..8812feb316 100644
--- a/app/views/admin/trends/links/_preview_card.html.haml
+++ b/app/views/admin/trends/links/_preview_card.html.haml
@@ -18,9 +18,9 @@
= t('admin.trends.links.shared_by_over_week', count: preview_card.history.reduce(0) { |sum, day| sum + day.accounts })
- - if preview_card.trendable? && (rank = Trends.links.rank(preview_card.id, locale: params[:locale].presence))
+ - if preview_card.trend.allowed?
•
- %abbr{ title: t('admin.trends.tags.current_score', score: Trends.links.score(preview_card.id, locale: params[:locale].presence)) }= t('admin.trends.tags.trending_rank', rank: rank + 1)
+ %abbr{ title: t('admin.trends.tags.current_score', score: preview_card.trend.score) }= t('admin.trends.tags.trending_rank', rank: preview_card.trend.rank)
- if preview_card.decaying?
•
diff --git a/app/views/admin/trends/links/index.html.haml b/app/views/admin/trends/links/index.html.haml
index 6f090df7b0..e6ed9d95f6 100644
--- a/app/views/admin/trends/links/index.html.haml
+++ b/app/views/admin/trends/links/index.html.haml
@@ -13,7 +13,7 @@
.filter-subset.filter-subset--with-select
%strong= t('admin.follow_recommendations.language')
.input.select.optional
- = select_tag :locale, options_for_select(Trends.available_locales.map { |key| [standard_locale_name(key), key] }, params[:locale]), include_blank: true
+ = select_tag :locale, options_for_select(@locales.map { |key| [standard_locale_name(key), key] }, params[:locale]), include_blank: true
.filter-subset
%strong= t('admin.trends.trending')
%ul
diff --git a/app/views/admin/trends/statuses/_status.html.haml b/app/views/admin/trends/statuses/_status.html.haml
index e4d75bbb98..f35e13d128 100644
--- a/app/views/admin/trends/statuses/_status.html.haml
+++ b/app/views/admin/trends/statuses/_status.html.haml
@@ -25,9 +25,9 @@
- if status.trendable? && !status.account.discoverable?
•
= t('admin.trends.statuses.not_discoverable')
- - if status.trendable? && (rank = Trends.statuses.rank(status.id, locale: params[:locale].presence))
+ - if status.trend.allowed?
•
- %abbr{ title: t('admin.trends.tags.current_score', score: Trends.statuses.score(status.id, locale: params[:locale].presence)) }= t('admin.trends.tags.trending_rank', rank: rank + 1)
+ %abbr{ title: t('admin.trends.tags.current_score', score: status.trend.score) }= t('admin.trends.tags.trending_rank', rank: status.trend.rank)
- elsif status.requires_review?
•
= t('admin.trends.pending_review')
diff --git a/app/views/admin/trends/statuses/index.html.haml b/app/views/admin/trends/statuses/index.html.haml
index c96f4323a9..bf04772f22 100644
--- a/app/views/admin/trends/statuses/index.html.haml
+++ b/app/views/admin/trends/statuses/index.html.haml
@@ -13,7 +13,7 @@
.filter-subset.filter-subset--with-select
%strong= t('admin.follow_recommendations.language')
.input.select.optional
- = select_tag :locale, options_for_select(Trends.available_locales.map { |key| [standard_locale_name(key), key]}, params[:locale]), include_blank: true
+ = select_tag :locale, options_for_select(@locales.map { |key| [standard_locale_name(key), key] }, params[:locale]), include_blank: true
.filter-subset
%strong= t('admin.trends.trending')
%ul
diff --git a/app/views/admin/trends/tags/_tag.html.haml b/app/views/admin/trends/tags/_tag.html.haml
index 7bb99b1580..a30666a08b 100644
--- a/app/views/admin/trends/tags/_tag.html.haml
+++ b/app/views/admin/trends/tags/_tag.html.haml
@@ -6,7 +6,7 @@
.pending-account__header
= link_to admin_tag_path(tag.id) do
= fa_icon 'hashtag'
- = tag.name
+ = tag.display_name
%br/
diff --git a/app/views/admin/users/roles/show.html.haml b/app/views/admin/users/roles/show.html.haml
new file mode 100644
index 0000000000..8216180607
--- /dev/null
+++ b/app/views/admin/users/roles/show.html.haml
@@ -0,0 +1,9 @@
+- content_for :page_title do
+ = t('admin.accounts.change_role.title', username: @user.account.username)
+
+= simple_form_for @user, url: admin_user_role_path(@user) do |f|
+ .fields-group
+ = f.association :role, wrapper: :with_block_label, collection: UserRole.assignable, label_method: :name, include_blank: I18n.t('admin.accounts.change_role.no_role')
+
+ .actions
+ = f.button :button, t('generic.save_changes'), type: :submit
diff --git a/app/views/admin_mailer/_new_trending_links.text.erb b/app/views/admin_mailer/_new_trending_links.text.erb
index 405926fddc..602e12793e 100644
--- a/app/views/admin_mailer/_new_trending_links.text.erb
+++ b/app/views/admin_mailer/_new_trending_links.text.erb
@@ -2,13 +2,7 @@
<% @links.each do |link| %>
- <%= link.title %> • <%= link.url %>
- <%= raw t('admin.trends.links.usage_comparison', today: link.history.get(Time.now.utc).accounts, yesterday: link.history.get(Time.now.utc - 1.day).accounts) %> • <%= t('admin.trends.tags.current_score', score: Trends.links.score(link.id).round(2)) %>
-<% end %>
-
-<% if @lowest_trending_link %>
-<%= raw t('admin_mailer.new_trends.new_trending_links.requirements', lowest_link_title: @lowest_trending_link.title, lowest_link_score: Trends.links.score(@lowest_trending_link.id).round(2), rank: Trends.links.options[:review_threshold]) %>
-<% else %>
-<%= raw t('admin_mailer.new_trends.new_trending_links.no_approved_links') %>
+ <%= standard_locale_name(link.language) %> • <%= raw t('admin.trends.links.usage_comparison', today: link.history.get(Time.now.utc).accounts, yesterday: link.history.get(Time.now.utc - 1.day).accounts) %> • <%= t('admin.trends.tags.current_score', score: link.trend.score.round(2)) %>
<% end %>
<%= raw t('application_mailer.view')%> <%= admin_trends_links_url %>
diff --git a/app/views/admin_mailer/_new_trending_statuses.text.erb b/app/views/admin_mailer/_new_trending_statuses.text.erb
index 8d11a80c2e..1ed3ae8573 100644
--- a/app/views/admin_mailer/_new_trending_statuses.text.erb
+++ b/app/views/admin_mailer/_new_trending_statuses.text.erb
@@ -2,13 +2,7 @@
<% @statuses.each do |status| %>
- <%= ActivityPub::TagManager.instance.url_for(status) %>
- <%= raw t('admin.trends.tags.current_score', score: Trends.statuses.score(status.id).round(2)) %>
-<% end %>
-
-<% if @lowest_trending_status %>
-<%= raw t('admin_mailer.new_trends.new_trending_statuses.requirements', lowest_status_url: ActivityPub::TagManager.instance.url_for(@lowest_trending_status), lowest_status_score: Trends.statuses.score(@lowest_trending_status.id).round(2), rank: Trends.statuses.options[:review_threshold]) %>
-<% else %>
-<%= raw t('admin_mailer.new_trends.new_trending_statuses.no_approved_statuses') %>
+ <%= standard_locale_name(status.language) %> • <%= raw t('admin.trends.tags.current_score', score: status.trend.score.round(2)) %>
<% end %>
<%= raw t('application_mailer.view')%> <%= admin_trends_statuses_url %>
diff --git a/app/views/admin_mailer/_new_trending_tags.text.erb b/app/views/admin_mailer/_new_trending_tags.text.erb
index cde5af4e4e..363df369d5 100644
--- a/app/views/admin_mailer/_new_trending_tags.text.erb
+++ b/app/views/admin_mailer/_new_trending_tags.text.erb
@@ -1,12 +1,12 @@
<%= raw t('admin_mailer.new_trends.new_trending_tags.title') %>
<% @tags.each do |tag| %>
-- #<%= tag.name %>
+- #<%= tag.display_name %>
<%= raw t('admin.trends.tags.usage_comparison', today: tag.history.get(Time.now.utc).accounts, yesterday: tag.history.get(Time.now.utc - 1.day).accounts) %> • <%= t('admin.trends.tags.current_score', score: Trends.tags.score(tag.id).round(2)) %>
<% end %>
<% if @lowest_trending_tag %>
-<%= raw t('admin_mailer.new_trends.new_trending_tags.requirements', lowest_tag_name: @lowest_trending_tag.name, lowest_tag_score: Trends.tags.score(@lowest_trending_tag.id).round(2), rank: Trends.tags.options[:review_threshold]) %>
+<%= raw t('admin_mailer.new_trends.new_trending_tags.requirements', lowest_tag_name: @lowest_trending_tag.display_name, lowest_tag_score: Trends.tags.score(@lowest_trending_tag.id).round(2), rank: Trends.tags.options[:review_threshold]) %>
<% else %>
<%= raw t('admin_mailer.new_trends.new_trending_tags.no_approved_tags') %>
<% end %>
diff --git a/app/views/application/_sidebar.html.haml b/app/views/application/_sidebar.html.haml
index e97c493fe8..6d18668b08 100644
--- a/app/views/application/_sidebar.html.haml
+++ b/app/views/application/_sidebar.html.haml
@@ -1,9 +1,9 @@
.hero-widget
.hero-widget__img
- = image_tag @instance_presenter.hero&.file&.url || @instance_presenter.thumbnail&.file&.url || asset_pack_path('media/images/preview.jpg'), alt: @instance_presenter.site_title
+ = image_tag @instance_presenter.thumbnail&.file&.url(:'@1x') || asset_pack_path('media/images/preview.png'), alt: @instance_presenter.title
.hero-widget__text
- %p= @instance_presenter.site_short_description.html_safe.presence || t('about.about_mastodon_html')
+ %p= @instance_presenter.description.html_safe.presence || t('about.about_mastodon_html')
- if Setting.trends && !(user_signed_in? && !current_user.setting_trends)
- trends = Trends.tags.query.allowed.limit(3)
@@ -13,4 +13,4 @@
%h4.emojify= t('footer.trending_now')
- trends.each do |tag|
- = react_component :hashtag, hashtag: ActiveModelSerializers::SerializableResource.new(tag, serializer: REST::TagSerializer).as_json
+ = react_component :hashtag, hashtag: ActiveModelSerializers::SerializableResource.new(tag, serializer: REST::TagSerializer, scope: current_user, scope_name: :current_user).as_json
diff --git a/app/views/auth/registrations/edit.html.haml b/app/views/auth/registrations/edit.html.haml
index a3445b421a..df929e3e80 100644
--- a/app/views/auth/registrations/edit.html.haml
+++ b/app/views/auth/registrations/edit.html.haml
@@ -41,8 +41,7 @@
%h3= t('migrations.incoming_migrations')
%p.muted-hint= t('migrations.incoming_migrations_html', path: settings_aliases_path)
- - if open_deletion?
- %hr.spacer/
+ %hr.spacer/
- %h3= t('auth.delete_account')
- %p.muted-hint= t('auth.delete_account_html', path: settings_delete_path)
+ %h3= t('auth.delete_account')
+ %p.muted-hint= t('auth.delete_account_html', path: settings_delete_path)
diff --git a/app/views/auth/registrations/new.html.haml b/app/views/auth/registrations/new.html.haml
index 6981195ed9..5eb3f937c3 100644
--- a/app/views/auth/registrations/new.html.haml
+++ b/app/views/auth/registrations/new.html.haml
@@ -5,6 +5,9 @@
= render partial: 'shared/og', locals: { description: description_for_sign_up }
= simple_form_for(resource, as: resource_name, url: registration_path(resource_name), html: { novalidate: false }) do |f|
+ %h1.title= t('auth.sign_up.title', domain: site_hostname)
+ %p.lead= t('auth.sign_up.preamble')
+
= render 'shared/error_messages', object: resource
- if @invite.present? && @invite.autofollow?
@@ -12,31 +15,27 @@
%p.hint= t('invites.invited_by')
= render 'application/card', account: @invite.user.account
- = f.simple_fields_for :account do |ff|
- .fields-group
- = ff.input :username, wrapper: :with_label, autofocus: true, label: t('simple_form.labels.defaults.username'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.username'), :autocomplete => 'off', pattern: '[a-zA-Z0-9_]+', maxlength: 30 }, append: "@#{site_hostname}", hint: t('simple_form.hints.defaults.username', domain: site_hostname)
-
- .fields-group
- = f.input :email, wrapper: :with_label, label: t('simple_form.labels.defaults.email'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.email'), :autocomplete => 'off' }
-
.fields-group
- = f.input :password, wrapper: :with_label, label: t('simple_form.labels.defaults.password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.password'), :autocomplete => 'off', :minlength => User.password_length.first, :maxlength => User.password_length.last }
-
- .fields-group
- = f.input :password_confirmation, wrapper: :with_label, label: t('simple_form.labels.defaults.confirm_password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.confirm_password'), :autocomplete => 'off' }
- = f.input :confirm_password, as: :string, wrapper: :with_label, label: t('simple_form.labels.defaults.honeypot', label: t('simple_form.labels.defaults.password')), required: false, input_html: { 'aria-label' => t('simple_form.labels.defaults.honeypot', label: t('simple_form.labels.defaults.password')), :autocomplete => 'off' }
-
- = f.input :website, as: :url, wrapper: :with_label, label: t('simple_form.labels.defaults.honeypot', label: 'Website'), required: false, input_html: { 'aria-label' => t('simple_form.labels.defaults.honeypot', label: 'Website'), :autocomplete => 'off' }
+ = f.simple_fields_for :account do |ff|
+ = ff.input :display_name, wrapper: :with_label, label: false, required: false, input_html: { 'aria-label' => t('simple_form.labels.defaults.display_name'), :autocomplete => 'off', placeholder: t('simple_form.labels.defaults.display_name') }
+ = ff.input :username, wrapper: :with_label, label: false, required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.username'), :autocomplete => 'off', placeholder: t('simple_form.labels.defaults.username'), pattern: '[a-zA-Z0-9_]+', maxlength: 30 }, append: "@#{site_hostname}", hint: false
+ = f.input :email, placeholder: t('simple_form.labels.defaults.email'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.email'), :autocomplete => 'off' }, hint: false
+ = f.input :password, placeholder: t('simple_form.labels.defaults.password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.password'), :autocomplete => 'new-password', :minlength => User.password_length.first, :maxlength => User.password_length.last }, hint: false
+ = f.input :password_confirmation, placeholder: t('simple_form.labels.defaults.confirm_password'), required: true, input_html: { 'aria-label' => t('simple_form.labels.defaults.confirm_password'), :autocomplete => 'new-password' }, hint: false
+ = f.input :confirm_password, as: :string, placeholder: t('simple_form.labels.defaults.honeypot', label: t('simple_form.labels.defaults.password')), required: false, input_html: { 'aria-label' => t('simple_form.labels.defaults.honeypot', label: t('simple_form.labels.defaults.password')), :autocomplete => 'off' }, hint: false
+ = f.input :website, as: :url, wrapper: :with_label, label: t('simple_form.labels.defaults.honeypot', label: 'Website'), required: false, input_html: { 'aria-label' => t('simple_form.labels.defaults.honeypot', label: 'Website'), :autocomplete => 'off' }
- if approved_registrations? && !@invite.present?
.fields-group
= f.simple_fields_for :invite_request, resource.invite_request || resource.build_invite_request do |invite_request_fields|
= invite_request_fields.input :text, as: :text, wrapper: :with_block_label, required: Setting.require_invite_text
+
+ = hidden_field_tag :accept, params[:accept]
= f.input :invite_code, as: :hidden
.fields-group
- = f.input :agreement, as: :boolean, wrapper: :with_label, label: whitelist_mode? ? t('auth.checkbox_agreement_without_rules_html', terms_path: terms_path) : t('auth.checkbox_agreement_html', rules_path: about_more_path, terms_path: terms_path), required: true
+ = f.input :agreement, as: :boolean, wrapper: :with_label, label: t('auth.privacy_policy_agreement_html', rules_path: about_more_path, privacy_policy_path: privacy_policy_path), required: true
.actions
= f.button :button, @invite.present? ? t('auth.register') : sign_up_message, type: :submit
diff --git a/app/views/auth/registrations/rules.html.haml b/app/views/auth/registrations/rules.html.haml
new file mode 100644
index 0000000000..8e7a90cbeb
--- /dev/null
+++ b/app/views/auth/registrations/rules.html.haml
@@ -0,0 +1,21 @@
+- content_for :page_title do
+ = t('auth.register')
+
+- content_for :header_tags do
+ = render partial: 'shared/og', locals: { description: description_for_sign_up }
+
+.simple_form
+ %h1.title= t('auth.rules.title')
+ %p.lead= t('auth.rules.preamble', domain: site_hostname)
+
+ %ol.rules-list
+ - @rules.each do |rule|
+ %li
+ .rules-list__text= rule.text
+
+ .stacked-actions
+ - accept_path = @invite_code.present? ? public_invite_url(invite_code: @invite_code, accept: @accept_token) : new_user_registration_path(accept: @accept_token)
+ = link_to t('auth.rules.accept'), accept_path, class: 'button'
+ = link_to t('auth.rules.back'), root_path, class: 'button button-tertiary'
+
+.form-footer= render 'auth/shared/links'
diff --git a/app/views/custom_css/show.css.erb b/app/views/custom_css/show.css.erb
new file mode 100644
index 0000000000..bcbe819621
--- /dev/null
+++ b/app/views/custom_css/show.css.erb
@@ -0,0 +1,12 @@
+<%- if Setting.custom_css.present? %>
+<%= raw Setting.custom_css %>
+
+<%- end %>
+<%- UserRole.where(highlighted: true).select { |role| role.color.present? }.each do |role| %>
+.user-role-<%= role.id %> {
+ --user-role-accent: <%= role.color %>;
+ --user-role-background: <%= role.color + '19' %>;
+ --user-role-border: <%= role.color + '80' %>;
+}
+
+<%- end %>
diff --git a/app/views/directories/index.html.haml b/app/views/directories/index.html.haml
deleted file mode 100644
index 4872432d40..0000000000
--- a/app/views/directories/index.html.haml
+++ /dev/null
@@ -1,54 +0,0 @@
-- content_for :page_title do
- = t('directories.explore_mastodon', title: site_title)
-
-- content_for :header_tags do
- %meta{ name: 'description', content: t('directories.explanation') }
-
- = opengraph 'og:site_name', t('about.hosted_on', domain: site_hostname)
- = opengraph 'og:type', 'website'
- = opengraph 'og:title', t('directories.explore_mastodon', title: site_title)
- = opengraph 'og:description', t('directories.explanation')
- = opengraph 'og:image', File.join(root_url, 'android-chrome-192x192.png')
-
-.page-header
- %h1= t('directories.explore_mastodon', title: site_title)
- %p= t('directories.explanation')
-
-- if @accounts.empty?
- = nothing_here
-- else
- .directory__list
- - @accounts.each do |account|
- .account-card
- = link_to TagManager.instance.url_for(account), class: 'account-card__permalink' do
- .account-card__header
- = image_tag account.header.url, alt: ''
- .account-card__title
- .account-card__title__avatar
- = image_tag account.avatar.url, alt: ''
- .display-name
- %bdi
- %strong.emojify.p-name= display_name(account, custom_emojify: true)
- %span
- = acct(account)
- = fa_icon('lock') if account.locked?
- - if account.note.present?
- .account-card__bio.emojify
- = prerender_custom_emojis(account_bio_format(account), account.emojis)
- - else
- .flex-spacer
- .account-card__actions
- .account-card__counters
- .account-card__counters__item
- = friendly_number_to_human account.statuses_count
- %small= t('accounts.posts', count: account.statuses_count).downcase
- .account-card__counters__item
- = hide_followers_count?(account) ? '-' : (friendly_number_to_human account.followers_count)
- %small= t('accounts.followers', count: account.followers_count).downcase
- .account-card__counters__item
- = friendly_number_to_human account.following_count
- %small= t('accounts.following', count: account.following_count).downcase
- .account-card__actions__button
- = account_action_button(account)
-
- = paginate @accounts
diff --git a/app/views/filters/_fields.html.haml b/app/views/filters/_fields.html.haml
deleted file mode 100644
index 84dcdcca51..0000000000
--- a/app/views/filters/_fields.html.haml
+++ /dev/null
@@ -1,16 +0,0 @@
-.fields-row
- .fields-row__column.fields-row__column-6.fields-group
- = f.input :phrase, as: :string, wrapper: :with_label, hint: false
- .fields-row__column.fields-row__column-6.fields-group
- = f.input :expires_in, wrapper: :with_label, collection: [30.minutes, 1.hour, 6.hours, 12.hours, 1.day, 1.week].map(&:to_i), label_method: lambda { |i| I18n.t("invites.expires_in.#{i}") }, include_blank: I18n.t('invites.expires_in_prompt')
-
-.fields-group
- = f.input :context, wrapper: :with_block_label, collection: CustomFilter::VALID_CONTEXTS, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', label_method: lambda { |context| I18n.t("filters.contexts.#{context}") }, include_blank: false
-
-%hr.spacer/
-
-.fields-group
- = f.input :irreversible, wrapper: :with_label
-
-.fields-group
- = f.input :whole_word, wrapper: :with_label
diff --git a/app/views/filters/_filter.html.haml b/app/views/filters/_filter.html.haml
new file mode 100644
index 0000000000..9993ad2ee8
--- /dev/null
+++ b/app/views/filters/_filter.html.haml
@@ -0,0 +1,41 @@
+.filters-list__item{ class: [filter.expired? && 'expired'] }
+ = link_to edit_filter_path(filter), class: 'filters-list__item__title' do
+ = filter.title
+
+ - if filter.expires?
+ .expiration{ title: t('filters.index.expires_on', date: l(filter.expires_at)) }
+ - if filter.expired?
+ = t('invites.expired')
+ - else
+ = t('filters.index.expires_in', distance: distance_of_time_in_words_to_now(filter.expires_at))
+
+ .filters-list__item__permissions
+ %ul.permissions-list
+ - unless filter.keywords.empty?
+ %li.permissions-list__item
+ .permissions-list__item__icon
+ = fa_icon('paragraph')
+ .permissions-list__item__text
+ .permissions-list__item__text__title
+ = t('filters.index.keywords', count: filter.keywords.size)
+ .permissions-list__item__text__type
+ - keywords = filter.keywords.map(&:keyword)
+ - keywords = keywords.take(5) + ['…'] if keywords.size > 5 # TODO
+ = keywords.join(', ')
+ - unless filter.statuses.empty?
+ %li.permissions-list__item
+ .permissions-list__item__icon
+ = fa_icon('comment')
+ .permissions-list__item__text
+ .permissions-list__item__text__title
+ = t('filters.index.statuses', count: filter.statuses.size)
+ .permissions-list__item__text__type
+ = t('filters.index.statuses_long', count: filter.statuses.size)
+
+ .announcements-list__item__action-bar
+ .announcements-list__item__meta
+ = t('filters.index.contexts', contexts: filter.context.map { |context| I18n.t("filters.contexts.#{context}") }.join(', '))
+
+ %div
+ = table_link_to 'pencil', t('filters.edit.title'), edit_filter_path(filter)
+ = table_link_to 'times', t('filters.index.delete'), filter_path(filter), method: :delete, data: { confirm: t('admin.accounts.are_you_sure') }
diff --git a/app/views/filters/_filter_fields.html.haml b/app/views/filters/_filter_fields.html.haml
new file mode 100644
index 0000000000..c58978f5a3
--- /dev/null
+++ b/app/views/filters/_filter_fields.html.haml
@@ -0,0 +1,40 @@
+.fields-row
+ .fields-row__column.fields-row__column-6.fields-group
+ = f.input :title, as: :string, wrapper: :with_label, hint: false
+ .fields-row__column.fields-row__column-6.fields-group
+ = f.input :expires_in, wrapper: :with_label, collection: [30.minutes, 1.hour, 6.hours, 12.hours, 1.day, 1.week].map(&:to_i), label_method: lambda { |i| I18n.t("invites.expires_in.#{i}") }, include_blank: I18n.t('invites.expires_in_prompt')
+
+.fields-group
+ = f.input :context, wrapper: :with_block_label, collection: CustomFilter::VALID_CONTEXTS, as: :check_boxes, collection_wrapper_tag: 'ul', item_wrapper_tag: 'li', label_method: lambda { |context| I18n.t("filters.contexts.#{context}") }, include_blank: false
+
+%hr.spacer/
+
+.fields-group
+ = f.input :filter_action, as: :radio_buttons, collection: %i(warn hide), include_blank: false, wrapper: :with_block_label, label_method: ->(action) { safe_join([t("simple_form.labels.filters.actions.#{action}"), content_tag(:span, t("simple_form.hints.filters.actions.#{action}"), class: 'hint')]) }, hint: t('simple_form.hints.filters.action'), required: true
+
+%hr.spacer/
+
+- unless f.object.statuses.empty?
+ %h4= t('filters.edit.statuses')
+
+ %p.muted-hint= t('filters.edit.statuses_hint_html', path: filter_statuses_path(f.object))
+
+ %hr.spacer/
+
+%h4= t('filters.edit.keywords')
+
+.table-wrapper
+ %table.table.keywords-table
+ %thead
+ %tr
+ %th= t('simple_form.labels.defaults.phrase')
+ %th= t('simple_form.labels.defaults.whole_word')
+ %th
+ %tbody
+ = f.simple_fields_for :keywords do |keyword|
+ = render 'keyword_fields', f: keyword
+ %tfoot
+ %tr
+ %td{ colspan: 3}
+ = link_to_add_association f, :keywords, class: 'table-action-link', partial: 'keyword_fields', 'data-association-insertion-node': '.keywords-table tbody', 'data-association-insertion-method': 'append' do
+ = safe_join([fa_icon('plus'), t('filters.edit.add_keyword')])
diff --git a/app/views/filters/_keyword_fields.html.haml b/app/views/filters/_keyword_fields.html.haml
new file mode 100644
index 0000000000..eedd514ef5
--- /dev/null
+++ b/app/views/filters/_keyword_fields.html.haml
@@ -0,0 +1,8 @@
+%tr.nested-fields
+ %td= f.input :keyword, as: :string
+ %td
+ .label_input__wrapper= f.input_field :whole_word
+ %td
+ = f.hidden_field :id if f.object&.persisted? # Required so Rails doesn't put the field outside of the
+ = link_to_remove_association(f, class: 'table-action-link') do
+ = safe_join([fa_icon('times'), t('filters.index.delete')])
diff --git a/app/views/filters/edit.html.haml b/app/views/filters/edit.html.haml
index e971215ac6..3dc3f07b72 100644
--- a/app/views/filters/edit.html.haml
+++ b/app/views/filters/edit.html.haml
@@ -2,7 +2,7 @@
= t('filters.edit.title')
= simple_form_for @filter, url: filter_path(@filter), method: :put do |f|
- = render 'fields', f: f
+ = render 'filter_fields', f: f
.actions
= f.button :button, t('generic.save_changes'), type: :submit
diff --git a/app/views/filters/index.html.haml b/app/views/filters/index.html.haml
index b4d5333aa1..0227526a47 100644
--- a/app/views/filters/index.html.haml
+++ b/app/views/filters/index.html.haml
@@ -7,18 +7,5 @@
- if @filters.empty?
%div.muted-hint.center-text= t 'filters.index.empty'
- else
- .table-wrapper
- %table.table
- %thead
- %tr
- %th= t('simple_form.labels.defaults.phrase')
- %th= t('simple_form.labels.defaults.context')
- %th
- %tbody
- - @filters.each do |filter|
- %tr
- %td= filter.phrase
- %td= filter.context.map { |context| I18n.t("filters.contexts.#{context}") }.join(', ')
- %td
- = table_link_to 'pencil', t('filters.edit.title'), edit_filter_path(filter)
- = table_link_to 'times', t('filters.index.delete'), filter_path(filter), method: :delete
+ .applications-list
+ = render partial: 'filter', collection: @filters
diff --git a/app/views/filters/new.html.haml b/app/views/filters/new.html.haml
index 05bec343f8..5f400e604a 100644
--- a/app/views/filters/new.html.haml
+++ b/app/views/filters/new.html.haml
@@ -2,7 +2,7 @@
= t('filters.new.title')
= simple_form_for @filter, url: filters_path do |f|
- = render 'fields', f: f
+ = render 'filter_fields', f: f
.actions
- = f.button :button, t('filters.new.title'), type: :submit
+ = f.button :button, t('filters.new.save'), type: :submit
diff --git a/app/views/filters/statuses/_status_filter.html.haml b/app/views/filters/statuses/_status_filter.html.haml
new file mode 100644
index 0000000000..ba1170cf92
--- /dev/null
+++ b/app/views/filters/statuses/_status_filter.html.haml
@@ -0,0 +1,37 @@
+- status = status_filter.status.proper
+
+.batch-table__row
+ %label.batch-table__row__select.batch-checkbox
+ = f.check_box :status_filter_ids, { multiple: true, include_hidden: false }, status_filter.id
+ .batch-table__row__content
+ .status__content><
+ - if status.spoiler_text.blank?
+ = prerender_custom_emojis(status_content_format(status), status.emojis)
+ - else
+ %details<
+ %summary><
+ %strong> Content warning: #{prerender_custom_emojis(h(status.spoiler_text), status.emojis)}
+ = prerender_custom_emojis(status_content_format(status), status.emojis)
+
+ - status.ordered_media_attachments.each do |media_attachment|
+ %abbr{ title: media_attachment.description }
+ = fa_icon 'link'
+ = media_attachment.file_file_name
+
+ .detailed-status__meta
+ = link_to ActivityPub::TagManager.instance.url_for(status.account), class: 'name-tag', target: '_blank', rel: 'noopener noreferrer' do
+ = image_tag(status.account.avatar.url, width: 15, height: 15, alt: display_name(status.account), class: 'avatar')
+ .username= status.account.acct
+ ·
+ = link_to ActivityPub::TagManager.instance.url_for(status), class: 'detailed-status__datetime', target: stream_link_target, rel: 'noopener noreferrer' do
+ %time.formatted{ datetime: status.created_at.iso8601, title: l(status.created_at) }= l(status.created_at)
+ - if status.edited?
+ ·
+ = t('statuses.edited_at_html', date: content_tag(:time, l(status.edited_at), datetime: status.edited_at.iso8601, title: l(status.edited_at), class: 'formatted'))
+ ·
+ = fa_visibility_icon(status)
+ = t("statuses.visibilities.#{status.visibility}")
+ - if status.sensitive?
+ ·
+ = fa_icon('eye-slash fw')
+ = t('stream_entries.sensitive_content')
diff --git a/app/views/filters/statuses/index.html.haml b/app/views/filters/statuses/index.html.haml
new file mode 100644
index 0000000000..eaa39e170f
--- /dev/null
+++ b/app/views/filters/statuses/index.html.haml
@@ -0,0 +1,35 @@
+- content_for :page_title do
+ = t('filters.statuses.index.title')
+ \-
+ = @filter.title
+
+.filters
+ .back-link
+ = link_to edit_filter_path(@filter) do
+ = fa_icon 'chevron-left fw'
+ = t('filters.statuses.back_to_filter')
+
+%p.hint= t('filters.statuses.index.hint')
+
+%hr.spacer/
+
+= form_for(@status_filter_batch_action, url: batch_filter_statuses_path(@filter.id)) do |f|
+ = hidden_field_tag :page, params[:page] || 1
+
+ - Admin::StatusFilter::KEYS.each do |key|
+ = hidden_field_tag key, params[key] if params[key].present?
+
+ .batch-table
+ .batch-table__toolbar
+ %label.batch-table__toolbar__select.batch-checkbox-all
+ = check_box_tag :batch_checkbox_all, nil, false
+ .batch-table__toolbar__actions
+ - unless @status_filters.empty?
+ = f.button safe_join([fa_icon('times'), t('filters.statuses.batch.remove')]), name: :remove, class: 'table-action-link', type: :submit
+ .batch-table__body
+ - if @status_filters.empty?
+ = nothing_here 'nothing-here--under-tabs'
+ - else
+ = render partial: 'status_filter', collection: @status_filters, locals: { f: f }
+
+= paginate @status_filters
diff --git a/app/views/follower_accounts/index.html.haml b/app/views/follower_accounts/index.html.haml
index 92de35a9fc..d93540c028 100644
--- a/app/views/follower_accounts/index.html.haml
+++ b/app/views/follower_accounts/index.html.haml
@@ -1,20 +1,6 @@
-- content_for :page_title do
- = t('accounts.people_who_follow', name: display_name(@account))
-
- content_for :header_tags do
%meta{ name: 'robots', content: 'noindex' }/
- = render 'accounts/og', account: @account, url: account_followers_url(@account, only_path: false)
-= render 'accounts/header', account: @account
-
-- if @account.hide_collections?
- .nothing-here= t('accounts.network_hidden')
-- elsif user_signed_in? && @account.blocking?(current_account)
- .nothing-here= t('accounts.unavailable')
-- elsif @follows.empty?
- = nothing_here
-- else
- .card-grid
- = render partial: 'application/card', collection: @follows.map(&:account), as: :account
+ = render 'accounts/og', account: @account, url: account_followers_url(@account, only_path: false)
- = paginate @follows
+= render 'shared/web_app'
diff --git a/app/views/following_accounts/index.html.haml b/app/views/following_accounts/index.html.haml
index 9bb1a9eddf..d93540c028 100644
--- a/app/views/following_accounts/index.html.haml
+++ b/app/views/following_accounts/index.html.haml
@@ -1,20 +1,6 @@
-- content_for :page_title do
- = t('accounts.people_followed_by', name: display_name(@account))
-
- content_for :header_tags do
%meta{ name: 'robots', content: 'noindex' }/
- = render 'accounts/og', account: @account, url: account_followers_url(@account, only_path: false)
-= render 'accounts/header', account: @account
-
-- if @account.hide_collections?
- .nothing-here= t('accounts.network_hidden')
-- elsif user_signed_in? && @account.blocking?(current_account)
- .nothing-here= t('accounts.unavailable')
-- elsif @follows.empty?
- = nothing_here
-- else
- .card-grid
- = render partial: 'application/card', collection: @follows.map(&:target_account), as: :account
+ = render 'accounts/og', account: @account, url: account_followers_url(@account, only_path: false)
- = paginate @follows
+= render 'shared/web_app'
diff --git a/app/views/home/index.html.haml b/app/views/home/index.html.haml
index 568b23effc..45990cd10c 100644
--- a/app/views/home/index.html.haml
+++ b/app/views/home/index.html.haml
@@ -1,15 +1,7 @@
- content_for :header_tags do
- = preload_pack_asset 'features/getting_started.js', crossorigin: 'anonymous'
- = preload_pack_asset 'features/compose.js', crossorigin: 'anonymous'
- = preload_pack_asset 'features/home_timeline.js', crossorigin: 'anonymous'
- = preload_pack_asset 'features/notifications.js', crossorigin: 'anonymous'
+ - unless request.path == '/'
+ %meta{ name: 'robots', content: 'noindex' }/
- %meta{name: 'applicationServerKey', content: Rails.configuration.x.vapid_public_key}
- = render_initial_state
+ = render partial: 'shared/og'
-.notranslate.app-holder#mastodon{ data: { props: Oj.dump(default_props) } }
- %noscript
- = image_pack_tag 'logo.svg', alt: 'Mastodon'
-
- %div
- = t('errors.noscript_html', apps_path: 'https://joinmastodon.org/apps')
+= render 'shared/web_app'
diff --git a/app/views/layouts/admin.html.haml b/app/views/layouts/admin.html.haml
index f3ef00f9d6..3048e0e6ad 100644
--- a/app/views/layouts/admin.html.haml
+++ b/app/views/layouts/admin.html.haml
@@ -7,29 +7,31 @@
.sidebar-wrapper__inner
.sidebar
= link_to root_path do
- = image_pack_tag 'logo.svg', class: 'logo', alt: 'Mastodon'
+ = render_logo
.sidebar__toggle
.sidebar__toggle__logo
= link_to root_path do
- = svg_logo_full
+ = logo_as_symbol(:wordmark)
- = link_to '#', class: 'sidebar__toggle__icon' do
+ = link_to '#', class: 'sidebar__toggle__icon', 'aria-label': t('navigation.toggle_menu'), 'aria-expanded': 'false' do
= fa_icon 'bars'
+ = fa_icon 'times'
= render_navigation
.content-wrapper
.content
- .content-heading
+ .content__heading
- if content_for?(:heading)
= yield :heading
- else
- %h2= yield :page_title
+ .content__heading__row
+ %h2= yield :page_title
- - if :heading_actions
- .content-heading-actions
- = yield :heading_actions
+ - if content_for?(:heading_actions)
+ .content__heading__actions
+ = yield :heading_actions
= render 'application/flashes'
diff --git a/app/views/layouts/application.html.haml b/app/views/layouts/application.html.haml
index 09826afb38..d3f1294c64 100755
--- a/app/views/layouts/application.html.haml
+++ b/app/views/layouts/application.html.haml
@@ -11,13 +11,19 @@
- if storage_host?
%link{ rel: 'dns-prefetch', href: storage_host }/
- %link{ rel: 'icon', href: favicon_path, type: 'image/x-icon' }/
- %link{ rel: 'apple-touch-icon', sizes: '180x180', href: '/apple-touch-icon.png' }/
- %link{ rel: 'mask-icon', href: '/mask-icon.svg', color: '#2B90D9' }/
- %link{ rel: 'manifest', href: '/manifest.json' }/
- %meta{ name: 'msapplication-config', content: '/browserconfig.xml' }/
- %meta{ name: 'theme-color', content: '#282c37' }/
+ %link{ rel: 'icon', href: '/favicon.ico', type: 'image/x-icon' }/
+
+ - %w(16 32 48).each do |size|
+ %link{ rel: 'icon', sizes: "#{size}x#{size}", href: asset_pack_path("media/icons/favicon-#{size}x#{size}.png"), type: 'image/png' }/
+
+ - %w(57 60 72 76 114 120 144 152 167 180 1024).each do |size|
+ %link{ rel: 'apple-touch-icon', sizes: "#{size}x#{size}", href: asset_pack_path("media/icons/apple-touch-icon-#{size}x#{size}.png") }/
+
+ %link{ rel: 'mask-icon', href: asset_pack_path('media/images/logo-symbol-icon.svg'), color: '#6364FF' }/
+ %link{ rel: 'manifest', href: manifest_path(format: :json) }/
+ %meta{ name: 'theme-color', content: '#191b22' }/
%meta{ name: 'apple-mobile-web-app-capable', content: 'yes' }/
+ %meta{ name: 'apple-itunes-app', content: 'app-id=1571998974' }/
%title= content_for?(:page_title) ? safe_join([yield(:page_title).chomp.html_safe, title], ' - ') : title
@@ -38,12 +44,11 @@
= render partial: 'layouts/theme', object: @core
= render partial: 'layouts/theme', object: @theme
- - if Setting.custom_css.present?
- = stylesheet_link_tag custom_css_path, host: request.host, media: 'all'
+ = stylesheet_link_tag custom_css_path, skip_pipeline: true, host: root_url, media: 'all'
%body{ class: body_classes }
= content_for?(:content) ? yield(:content) : yield
- .logo-resources
- = raw render file: Rails.root.join('app', 'javascript', 'images', 'logo_transparent.svg')
- = raw render file: Rails.root.join('app', 'javascript', 'images', 'logo_full.svg')
+ .logo-resources{ 'tabindex' => '-1', 'inert' => true, 'aria-hidden' => true }
+ = render_symbol :icon
+ = render_symbol :wordmark
diff --git a/app/views/layouts/auth.html.haml b/app/views/layouts/auth.html.haml
index ba105d25e4..34f6b38ec8 100644
--- a/app/views/layouts/auth.html.haml
+++ b/app/views/layouts/auth.html.haml
@@ -3,7 +3,7 @@
.logo-container
%h1
= link_to root_path do
- = svg_logo_full
+ = logo_as_symbol(:wordmark)
.form-container
= render 'flashes'
diff --git a/app/views/layouts/embedded.html.haml b/app/views/layouts/embedded.html.haml
index 2a2996d286..b8817d5662 100644
--- a/app/views/layouts/embedded.html.haml
+++ b/app/views/layouts/embedded.html.haml
@@ -24,5 +24,5 @@
%body.embed
= yield
- .logo-resources
- = raw render file: Rails.root.join('app', 'javascript', 'images', 'logo_transparent.svg')
+ .logo-resources{ 'tabindex' => '-1', 'inert' => true, 'aria-hidden' => true }
+ = render_symbol :icon
diff --git a/app/views/layouts/mailer.html.haml b/app/views/layouts/mailer.html.haml
index 8b69d758be..d02454fc92 100644
--- a/app/views/layouts/mailer.html.haml
+++ b/app/views/layouts/mailer.html.haml
@@ -24,7 +24,7 @@
%tr
%td.column-cell
= link_to root_url do
- = image_tag full_pack_url('media/images/mailer/logo_full.png'), alt: 'Mastodon', height: 34, class: 'logo'
+ = image_tag full_pack_url('media/images/mailer/wordmark.png'), alt: 'Mastodon', height: 34, class: 'logo'
= yield
@@ -49,4 +49,4 @@
%p= link_to t('application_mailer.notification_preferences'), settings_preferences_notifications_url
%td.column-cell.text-right
= link_to root_url do
- = image_tag full_pack_url('media/images/mailer/logo_transparent.png'), alt: 'Mastodon', height: 24
+ = image_tag full_pack_url('media/images/mailer/logo.png'), alt: 'Mastodon', height: 24
diff --git a/app/views/layouts/public.html.haml b/app/views/layouts/public.html.haml
deleted file mode 100644
index 1a789cef84..0000000000
--- a/app/views/layouts/public.html.haml
+++ /dev/null
@@ -1,61 +0,0 @@
-- content_for :header_tags do
- = render_initial_state
-
-- content_for :content do
- .public-layout
- - unless @hide_navbar
- .container
- %nav.header
- .nav-left
- = link_to root_url, class: 'brand' do
- = svg_logo_full
-
- - unless whitelist_mode?
- = link_to t('directories.directory'), explore_path, class: 'nav-link optional' if Setting.profile_directory
- = link_to t('about.about_this'), about_more_path, class: 'nav-link optional'
- = link_to t('about.apps'), 'https://joinmastodon.org/apps', class: 'nav-link optional'
-
- .nav-center
-
- .nav-right
- - if user_signed_in?
- = link_to t('settings.back'), root_url, class: 'nav-link nav-button webapp-btn'
- - else
- = link_to_login t('auth.login'), class: 'webapp-btn nav-link nav-button'
- = link_to t('auth.register'), available_sign_up_path, class: 'webapp-btn nav-link nav-button'
-
- .container= yield
-
- .container
- .footer
- .grid
- .column-0
- %h4= t 'footer.resources'
- %ul
- %li= link_to t('about.terms'), terms_path
- %li= link_to t('about.privacy_policy'), terms_path
- .column-1
- %h4= t 'footer.developers'
- %ul
- %li= link_to t('about.documentation'), 'https://docs.joinmastodon.org/'
- %li= link_to t('about.api'), 'https://docs.joinmastodon.org/client/intro/'
- .column-2
- %h4= link_to t('about.what_is_mastodon'), 'https://joinmastodon.org/'
- = link_to svg_logo, root_url, class: 'brand'
- .column-3
- %h4= site_hostname
- %ul
- - unless whitelist_mode?
- %li= link_to t('about.about_this'), about_more_path
- %li= "v#{Mastodon::Version.to_s}"
- .column-4
- %h4= t 'footer.more'
- %ul
- %li= link_to t('about.source_code'), Mastodon::Version.source_url
- %li= link_to t('about.apps'), 'https://joinmastodon.org/apps'
- .legal-xs
- = link_to "v#{Mastodon::Version.to_s}", Mastodon::Version.source_url
- ·
- = link_to t('about.privacy_policy'), terms_path
-
-= render template: 'layouts/application'
diff --git a/app/views/notification_mailer/digest.html.haml b/app/views/notification_mailer/digest.html.haml
deleted file mode 100644
index a94ace228d..0000000000
--- a/app/views/notification_mailer/digest.html.haml
+++ /dev/null
@@ -1,44 +0,0 @@
-%table.email-table{ cellspacing: 0, cellpadding: 0 }
- %tbody
- %tr
- %td.email-body
- .email-container
- %table.content-section{ cellspacing: 0, cellpadding: 0 }
- %tbody
- %tr
- %td.content-cell.darker.hero-with-button
- .email-row
- .col-6
- %table.column{ cellspacing: 0, cellpadding: 0 }
- %tbody
- %tr
- %td.column-cell.text-center.padded
- %h1= t 'notification_mailer.digest.title'
- %p.lead= t('notification_mailer.digest.body', since: l((@me.user_current_sign_in_at || @since).to_date, format: :short), instance: site_hostname)
- %table.button{ align: 'center', cellspacing: 0, cellpadding: 0 }
- %tbody
- %tr
- %td.button-primary
- = link_to web_url do
- %span= t 'notification_mailer.digest.action'
-
-- @notifications.each_with_index do |n, i|
- = render 'status', status: n.target_status, i: i
-
-- unless @follows_since.zero?
- %table.email-table{ cellspacing: 0, cellpadding: 0 }
- %tbody
- %tr
- %td.email-body
- .email-container
- %table.content-section{ cellspacing: 0, cellpadding: 0 }
- %tbody
- %tr
- %td.content-cell.content-start.border-top
- .email-row
- .col-6
- %table.column{ cellspacing: 0, cellpadding: 0 }
- %tbody
- %tr
- %td.column-cell.text-center
- %p= t('notification_mailer.digest.new_followers_summary', count: @follows_since)
diff --git a/app/views/notification_mailer/digest.text.erb b/app/views/notification_mailer/digest.text.erb
deleted file mode 100644
index 0f84a4ef05..0000000000
--- a/app/views/notification_mailer/digest.text.erb
+++ /dev/null
@@ -1,15 +0,0 @@
-<%= raw t('application_mailer.salutation', name: display_name(@me)) %>
-
-<%= raw t('notification_mailer.digest.body', since: l(@me.user_current_sign_in_at || @since), instance: root_url) %>
-<% @notifications.each do |notification| %>
-
-* <%= raw t('notification_mailer.digest.mention', name: notification.from_account.pretty_acct) %>
-
- <%= raw extract_status_plain_text(notification.target_status) %>
-
- <%= raw t('application_mailer.view')%> <%= web_url("statuses/#{notification.target_status.id}") %>
-<% end %>
-<% if @follows_since > 0 %>
-
-<%= raw t('notification_mailer.digest.new_followers_summary', count: @follows_since) %>
-<% end %>
diff --git a/app/views/privacy/show.html.haml b/app/views/privacy/show.html.haml
new file mode 100644
index 0000000000..95e506641b
--- /dev/null
+++ b/app/views/privacy/show.html.haml
@@ -0,0 +1,7 @@
+- content_for :page_title do
+ = t('privacy_policy.title')
+
+- content_for :header_tags do
+ = render partial: 'shared/og'
+
+= render 'shared/web_app'
diff --git a/app/views/public_timelines/show.html.haml b/app/views/public_timelines/show.html.haml
deleted file mode 100644
index 71a3d289b4..0000000000
--- a/app/views/public_timelines/show.html.haml
+++ /dev/null
@@ -1,16 +0,0 @@
-- content_for :page_title do
- = t('about.see_whats_happening')
-
-- content_for :header_tags do
- %meta{ name: 'robots', content: 'noindex' }/
-
-.page-header
- %h1= t('about.see_whats_happening')
-
- - if Setting.show_known_fediverse_at_about_page
- %p= t('about.browse_public_posts')
- - else
- %p= t('about.browse_local_posts')
-
-#mastodon-timeline{ data: { props: Oj.dump(default_props.merge(local: !Setting.show_known_fediverse_at_about_page)) }}
-.notranslate#modal-container
diff --git a/app/views/remote_follow/new.html.haml b/app/views/remote_follow/new.html.haml
deleted file mode 100644
index 4e9601f6aa..0000000000
--- a/app/views/remote_follow/new.html.haml
+++ /dev/null
@@ -1,20 +0,0 @@
-- content_for :header_tags do
- %meta{ name: 'robots', content: 'noindex' }/
-
-.form-container
- .follow-prompt
- %h2= t('remote_follow.prompt')
-
- = render partial: 'application/card', locals: { account: @account }
-
- = simple_form_for @remote_follow, as: :remote_follow, url: account_remote_follow_path(@account) do |f|
- = render 'shared/error_messages', object: @remote_follow
-
- = f.input :acct, placeholder: t('remote_follow.acct'), input_html: { autocapitalize: 'none', autocorrect: 'off' }
-
- .actions
- = f.button :button, t('remote_follow.proceed'), type: :submit
-
- %p.hint.subtle-hint
- = t('remote_follow.reason_html', instance: site_hostname)
- = t('remote_follow.no_account_html', sign_up_path: available_sign_up_path)
diff --git a/app/views/remote_interaction/new.html.haml b/app/views/remote_interaction/new.html.haml
deleted file mode 100644
index 2cc0fcb93d..0000000000
--- a/app/views/remote_interaction/new.html.haml
+++ /dev/null
@@ -1,24 +0,0 @@
-- content_for :header_tags do
- %meta{ name: 'robots', content: 'noindex' }/
-
-.form-container
- .follow-prompt
- %h2= t("remote_interaction.#{@interaction_type}.prompt")
-
- .public-layout
- .activity-stream.activity-stream--highlighted
- = render 'statuses/status', status: @status
-
- = simple_form_for @remote_follow, as: :remote_follow, url: remote_interaction_path(@status) do |f|
- = render 'shared/error_messages', object: @remote_follow
-
- = hidden_field_tag :type, @interaction_type
-
- = f.input :acct, placeholder: t('remote_follow.acct'), input_html: { autocapitalize: 'none', autocorrect: 'off' }
-
- .actions
- = f.button :button, t("remote_interaction.#{@interaction_type}.proceed"), type: :submit
-
- %p.hint.subtle-hint
- = t('remote_follow.reason_html', instance: site_hostname)
- = t('remote_follow.no_account_html', sign_up_path: available_sign_up_path)
diff --git a/app/views/settings/deletes/show.html.haml b/app/views/settings/deletes/show.html.haml
index 08792e0afd..ddf0908794 100644
--- a/app/views/settings/deletes/show.html.haml
+++ b/app/views/settings/deletes/show.html.haml
@@ -16,7 +16,7 @@
%li.positive-hint= t('deletes.warning.email_contact_html', email: Setting.site_contact_email)
%li.positive-hint= t('deletes.warning.username_available')
- %p.hint= t('deletes.warning.more_details_html', terms_path: terms_path)
+ %p.hint= t('deletes.warning.more_details_html', terms_path: privacy_policy_path)
%hr.spacer/
diff --git a/app/views/settings/featured_tags/index.html.haml b/app/views/settings/featured_tags/index.html.haml
index 65de7f8f30..595094fc76 100644
--- a/app/views/settings/featured_tags/index.html.haml
+++ b/app/views/settings/featured_tags/index.html.haml
@@ -9,7 +9,7 @@
= render 'shared/error_messages', object: @featured_tag
.fields-group
- = f.input :name, wrapper: :with_block_label, hint: safe_join([t('simple_form.hints.featured_tag.name'), safe_join(@recently_used_tags.map { |tag| link_to("##{tag.name}", settings_featured_tags_path(featured_tag: { name: tag.name }), method: :post) }, ', ')], ' ')
+ = f.input :name, wrapper: :with_block_label, hint: safe_join([t('simple_form.hints.featured_tag.name'), safe_join(@recently_used_tags.map { |tag| link_to("##{tag.display_name}", settings_featured_tags_path(featured_tag: { name: tag.name }), method: :post) }, ', ')], ' ')
.actions
= f.button :button, t('featured_tags.add_new'), type: :submit
@@ -21,7 +21,7 @@
%div
%h4
= fa_icon 'hashtag'
- = featured_tag.name
+ = featured_tag.display_name
%small
- if featured_tag.last_status_at.nil?
= t('accounts.nothing_here')
diff --git a/app/views/settings/migrations/show.html.haml b/app/views/settings/migrations/show.html.haml
index 492f6fe12c..14bebb19b0 100644
--- a/app/views/settings/migrations/show.html.haml
+++ b/app/views/settings/migrations/show.html.haml
@@ -76,7 +76,7 @@
- if migration.target_account.present?
= compact_account_link_to migration.target_account
- else
- = migration.pretty_acct
+ = migration.acct
%td= number_with_delimiter migration.followers_count
diff --git a/app/views/settings/preferences/notifications/show.html.haml b/app/views/settings/preferences/notifications/show.html.haml
index 38e8b171e7..a03faa1456 100644
--- a/app/views/settings/preferences/notifications/show.html.haml
+++ b/app/views/settings/preferences/notifications/show.html.haml
@@ -18,22 +18,16 @@
= ff.input :reblog, as: :boolean, wrapper: :with_label
= ff.input :favourite, as: :boolean, wrapper: :with_label
= ff.input :mention, as: :boolean, wrapper: :with_label
-
- - if current_user.staff?
- = ff.input :report, as: :boolean, wrapper: :with_label
- = ff.input :appeal, as: :boolean, wrapper: :with_label
- = ff.input :pending_account, as: :boolean, wrapper: :with_label
- = ff.input :trending_tag, as: :boolean, wrapper: :with_label
- = ff.input :trending_link, as: :boolean, wrapper: :with_label
- = ff.input :trending_status, as: :boolean, wrapper: :with_label
+ = ff.input :report, as: :boolean, wrapper: :with_label if current_user.can?(:manage_reports)
+ = ff.input :appeal, as: :boolean, wrapper: :with_label if current_user.can?(:manage_appeals)
+ = ff.input :pending_account, as: :boolean, wrapper: :with_label if current_user.can?(:manage_users)
+ = ff.input :trending_tag, as: :boolean, wrapper: :with_label if current_user.can?(:manage_taxonomies)
+ = ff.input :trending_link, as: :boolean, wrapper: :with_label if current_user.can?(:manage_taxonomies)
+ = ff.input :trending_status, as: :boolean, wrapper: :with_label if current_user.can?(:manage_taxonomies)
.fields-group
= f.input :setting_always_send_emails, as: :boolean, wrapper: :with_label
- .fields-group
- = f.simple_fields_for :notification_emails, hash_to_object(current_user.settings.notification_emails) do |ff|
- = ff.input :digest, as: :boolean, wrapper: :with_label
-
%h4= t 'notifications.other_settings'
.fields-group
diff --git a/app/views/settings/profiles/show.html.haml b/app/views/settings/profiles/show.html.haml
index b84d06c27b..430d1f339b 100644
--- a/app/views/settings/profiles/show.html.haml
+++ b/app/views/settings/profiles/show.html.haml
@@ -41,7 +41,7 @@
.fields-row__column.fields-group.fields-row__column-6
.input.with_block_label
%label= t('simple_form.labels.defaults.fields')
- %span.hint= t('simple_form.hints.defaults.fields')
+ %span.hint= t('simple_form.hints.defaults.fields', count: Account::DEFAULT_FIELDS_SIZE)
= f.simple_fields_for :fields do |fields_f|
.row
@@ -70,8 +70,7 @@
%h6= t 'migrations.incoming_migrations'
%p.muted-hint= t('migrations.incoming_migrations_html', path: settings_aliases_path)
-- if open_deletion?
- %hr.spacer/
+%hr.spacer/
- %h6= t('auth.delete_account')
- %p.muted-hint= t('auth.delete_account_html', path: settings_delete_path)
+%h6= t('auth.delete_account')
+%p.muted-hint= t('auth.delete_account_html', path: settings_delete_path)
diff --git a/app/views/shared/_og.html.haml b/app/views/shared/_og.html.haml
index c8f12974e2..2941b566e0 100644
--- a/app/views/shared/_og.html.haml
+++ b/app/views/shared/_og.html.haml
@@ -1,14 +1,14 @@
- thumbnail = @instance_presenter.thumbnail
-- description ||= strip_tags(@instance_presenter.site_short_description.presence || t('about.about_mastodon_html'))
+- description ||= strip_tags(@instance_presenter.description.presence || t('about.about_mastodon_html'))
%meta{ name: 'description', content: description }/
= opengraph 'og:site_name', t('about.hosted_on', domain: site_hostname)
= opengraph 'og:url', url_for(only_path: false)
= opengraph 'og:type', 'website'
-= opengraph 'og:title', @instance_presenter.site_title
+= opengraph 'og:title', @instance_presenter.title
= opengraph 'og:description', description
-= opengraph 'og:image', full_asset_url(thumbnail&.file&.url || asset_pack_path('media/images/preview.jpg', protocol: :request))
+= opengraph 'og:image', full_asset_url(thumbnail&.file&.url(:'@1x') || asset_pack_path('media/images/preview.png', protocol: :request))
= opengraph 'og:image:width', thumbnail ? thumbnail.meta['width'] : '1200'
= opengraph 'og:image:height', thumbnail ? thumbnail.meta['height'] : '630'
= opengraph 'twitter:card', 'summary_large_image'
diff --git a/app/views/shared/_web_app.html.haml b/app/views/shared/_web_app.html.haml
new file mode 100644
index 0000000000..b9a0ce1fc8
--- /dev/null
+++ b/app/views/shared/_web_app.html.haml
@@ -0,0 +1,16 @@
+- content_for :header_tags do
+ - if user_signed_in?
+ = preload_pack_asset 'features/compose.js', crossorigin: 'anonymous'
+ = preload_pack_asset 'features/home_timeline.js', crossorigin: 'anonymous'
+ = preload_pack_asset 'features/notifications.js', crossorigin: 'anonymous'
+
+ %meta{ name: 'applicationServerKey', content: Rails.configuration.x.vapid_public_key }
+
+ = render_initial_state
+
+.notranslate.app-holder#mastodon{ data: { props: Oj.dump(default_props) } }
+ %noscript
+ = image_pack_tag 'logo.svg', alt: 'Mastodon'
+
+ %div
+ = t('errors.noscript_html', apps_path: 'https://joinmastodon.org/apps')
diff --git a/app/views/statuses/_detailed_status.html.haml b/app/views/statuses/_detailed_status.html.haml
index c67f0e4d9b..37001b0221 100644
--- a/app/views/statuses/_detailed_status.html.haml
+++ b/app/views/statuses/_detailed_status.html.haml
@@ -56,7 +56,7 @@
- else
= link_to status.application.name, status.application.website, class: 'detailed-status__application', target: '_blank', rel: 'noopener noreferrer'
·
- = link_to remote_interaction_path(status, type: :reply), class: 'modal-button detailed-status__link' do
+ %span.detailed-status__link
- if status.in_reply_to_id.nil?
= fa_icon('reply')
- else
@@ -65,12 +65,12 @@
= " "
·
- if status.public_visibility? || status.unlisted_visibility?
- = link_to remote_interaction_path(status, type: :reblog), class: 'modal-button detailed-status__link' do
+ %span.detailed-status__link
= fa_icon('retweet')
%span.detailed-status__reblogs>= friendly_number_to_human status.reblogs_count
= " "
·
- = link_to remote_interaction_path(status, type: :favourite), class: 'modal-button detailed-status__link' do
+ %span.detailed-status__link
= fa_icon('star')
%span.detailed-status__favorites>= friendly_number_to_human status.favourites_count
= " "
diff --git a/app/views/statuses/_simple_status.html.haml b/app/views/statuses/_simple_status.html.haml
index 936ecd27e4..1e37b6cf3a 100644
--- a/app/views/statuses/_simple_status.html.haml
+++ b/app/views/statuses/_simple_status.html.haml
@@ -53,18 +53,18 @@
= t 'statuses.show_thread'
.status__action-bar
- = link_to remote_interaction_path(status, type: :reply), class: 'status__action-bar-button icon-button icon-button--with-counter modal-button' do
+ %span.status__action-bar-button.icon-button.icon-button--with-counter
- if status.in_reply_to_id.nil?
= fa_icon 'reply fw'
- else
= fa_icon 'reply-all fw'
%span.icon-button__counter= obscured_counter status.replies_count
- = link_to remote_interaction_path(status, type: :reblog), class: 'status__action-bar-button icon-button modal-button' do
+ %span.status__action-bar-button.icon-button
- if status.distributable?
= fa_icon 'retweet fw'
- elsif status.private_visibility? || status.limited_visibility?
= fa_icon 'lock fw'
- else
= fa_icon 'at fw'
- = link_to remote_interaction_path(status, type: :favourite), class: 'status__action-bar-button icon-button modal-button' do
+ %span.status__action-bar-button.icon-button
= fa_icon 'star fw'
diff --git a/app/views/statuses/show.html.haml b/app/views/statuses/show.html.haml
index 7ef7b09a2d..106c41725e 100644
--- a/app/views/statuses/show.html.haml
+++ b/app/views/statuses/show.html.haml
@@ -2,7 +2,7 @@
= t('statuses.title', name: display_name(@account), quote: truncate(@status.spoiler_text.presence || @status.text, length: 50, omission: '…', escape: false))
- content_for :header_tags do
- - if @account.user&.setting_noindex
+ - if @account.user_prefers_noindex?
%meta{ name: 'robots', content: 'noindex, noarchive' }/
%link{ rel: 'alternate', type: 'application/json+oembed', href: api_oembed_url(url: short_account_status_url(@account, @status), format: 'json') }/
@@ -17,9 +17,4 @@
= render 'og_description', activity: @status
= render 'og_image', activity: @status, account: @account
-.grid
- .column-0
- .activity-stream.h-entry
- = render partial: 'status', locals: { status: @status, include_threads: true }
- .column-1
- = render 'application/sidebar'
+= render 'shared/web_app'
diff --git a/app/views/tags/_og.html.haml b/app/views/tags/_og.html.haml
deleted file mode 100644
index a7c289bcb0..0000000000
--- a/app/views/tags/_og.html.haml
+++ /dev/null
@@ -1,6 +0,0 @@
-= opengraph 'og:site_name', t('about.hosted_on', domain: site_hostname)
-= opengraph 'og:url', tag_url(@tag)
-= opengraph 'og:type', 'website'
-= opengraph 'og:title', "##{@tag.name}"
-= opengraph 'og:description', strip_tags(t('about.about_hashtag_html', hashtag: @tag.name))
-= opengraph 'twitter:card', 'summary'
diff --git a/app/views/tags/show.html.haml b/app/views/tags/show.html.haml
index 0e6d4c43d8..4b4967a8f5 100644
--- a/app/views/tags/show.html.haml
+++ b/app/views/tags/show.html.haml
@@ -1,15 +1,5 @@
-- content_for :page_title do
- = "##{@tag.name}"
-
- content_for :header_tags do
%meta{ name: 'robots', content: 'noindex' }/
- %link{ rel: 'alternate', type: 'application/rss+xml', href: tag_url(@tag, format: 'rss') }/
-
- = render 'og'
-
-.page-header
- %h1= "##{@tag.name}"
- %p= t('about.about_hashtag_html', hashtag: @tag.name)
+ = render partial: 'shared/og'
-#mastodon-timeline{ data: { props: Oj.dump(default_props.merge(hashtag: @tag.name, local: @local)) }}
-.notranslate#modal-container
+= render partial: 'shared/web_app'
diff --git a/app/views/tags/show.rss.ruby b/app/views/tags/show.rss.ruby
index f4481b81cc..8e0c2327b5 100644
--- a/app/views/tags/show.rss.ruby
+++ b/app/views/tags/show.rss.ruby
@@ -1,14 +1,12 @@
RSS::Builder.build do |doc|
- doc.title("##{@tag.name}")
- doc.description(I18n.t('rss.descriptions.tag', hashtag: @tag.name))
+ doc.title("##{@tag.display_name}")
+ doc.description(I18n.t('rss.descriptions.tag', hashtag: @tag.display_name))
doc.link(tag_url(@tag))
doc.last_build_date(@statuses.first.created_at) if @statuses.any?
- doc.logo(full_pack_url('media/images/logo_transparent_white.svg'))
doc.generator("Mastodon v#{Mastodon::Version.to_s}")
@statuses.each do |status|
doc.item do |item|
- item.title(l(status.created_at))
item.link(ActivityPub::TagManager.instance.url_for(status))
item.pub_date(status.created_at)
item.description(rss_status_content_format(status))
@@ -28,7 +26,7 @@ RSS::Builder.build do |doc|
end
status.tags.each do |tag|
- item.category(tag.name)
+ item.category(tag.display_name)
end
end
end
diff --git a/app/views/user_mailer/confirmation_instructions.html.haml b/app/views/user_mailer/confirmation_instructions.html.haml
index 39a83faff8..447e689b40 100644
--- a/app/views/user_mailer/confirmation_instructions.html.haml
+++ b/app/views/user_mailer/confirmation_instructions.html.haml
@@ -77,4 +77,4 @@
%tbody
%tr
%td.column-cell.text-center
- %p= t 'devise.mailer.confirmation_instructions.extra_html', terms_path: about_more_url, policy_path: terms_url
+ %p= t 'devise.mailer.confirmation_instructions.extra_html', terms_path: about_more_url, policy_path: privacy_policy_url
diff --git a/app/views/user_mailer/confirmation_instructions.text.erb b/app/views/user_mailer/confirmation_instructions.text.erb
index aad91cd9d6..a1b2ba7d2e 100644
--- a/app/views/user_mailer/confirmation_instructions.text.erb
+++ b/app/views/user_mailer/confirmation_instructions.text.erb
@@ -6,7 +6,7 @@
=> <%= confirmation_url(@resource, confirmation_token: @token, redirect_to_app: @resource.created_by_application ? 'true' : nil) %>
-<%= strip_tags(t('devise.mailer.confirmation_instructions.extra_html', terms_path: about_more_url, policy_path: terms_url)) %>
+<%= strip_tags(t('devise.mailer.confirmation_instructions.extra_html', terms_path: about_more_url, policy_path: privacy_policy_url)) %>
=> <%= about_more_url %>
-=> <%= terms_url %>
+=> <%= privacy_policy_url %>
diff --git a/app/views/user_mailer/warning.html.haml b/app/views/user_mailer/warning.html.haml
index fff61fa90b..b9422e9502 100644
--- a/app/views/user_mailer/warning.html.haml
+++ b/app/views/user_mailer/warning.html.haml
@@ -17,7 +17,7 @@
%tbody
%tr
%td
- = image_tag full_pack_url('media/images/mailer/icon_warning.png'), alt: ''
+ = image_tag full_pack_url('media/images/mailer/icon_flag.png'), alt: ''
%h1= t "user_mailer.warning.title.#{@warning.action}"
diff --git a/app/views/user_mailer/welcome.html.haml b/app/views/user_mailer/welcome.html.haml
index 1f75ff48ae..3ab994ad3f 100644
--- a/app/views/user_mailer/welcome.html.haml
+++ b/app/views/user_mailer/welcome.html.haml
@@ -76,26 +76,7 @@
%td.button-primary
= link_to settings_profile_url do
%span= t 'user_mailer.welcome.edit_profile_action'
- %tr
- %td.content-cell
- .email-row
- .col-4
- %table.column{ cellspacing: 0, cellpadding: 0 }
- %tbody
- %tr
- %td.column-cell.padded
- = t 'user_mailer.welcome.review_preferences_step'
- .col-2
- %table.column{ cellspacing: 0, cellpadding: 0 }
- %tbody
- %tr
- %td.column-cell.padded
- %table.button.button-small{ align: 'left', cellspacing: 0, cellpadding: 0 }
- %tbody
- %tr
- %td.button-primary
- = link_to settings_preferences_url do
- %span= t 'user_mailer.welcome.review_preferences_action'
+
%tr
%td.content-cell.padded-bottom
.email-row
@@ -116,29 +97,3 @@
%td.button-primary
= link_to web_url do
%span= t 'user_mailer.welcome.final_action'
-
-%table.email-table{ cellspacing: 0, cellpadding: 0 }
- %tbody
- %tr
- %td.email-body
- .email-container
- %table.content-section{ cellspacing: 0, cellpadding: 0 }
- %tbody
- %tr
- %td.content-cell.border-top
- .email-row
- .col-6
- %table.column{ cellspacing: 0, cellpadding: 0 }
- %tbody
- %tr
- %td.column-cell.padded
- %h5= t 'user_mailer.welcome.tips'
- %ul
- %li
- %span= t 'user_mailer.welcome.tip_mobile_webapp'
- %li
- %span= t 'user_mailer.welcome.tip_following'
- %li
- %span= t 'user_mailer.welcome.tip_local_timeline', instance: @instance
- %li
- %span= t 'user_mailer.welcome.tip_federated_timeline'
diff --git a/app/views/user_mailer/welcome.text.erb b/app/views/user_mailer/welcome.text.erb
index e310d7ca6f..d78cdb938a 100644
--- a/app/views/user_mailer/welcome.text.erb
+++ b/app/views/user_mailer/welcome.text.erb
@@ -11,19 +11,6 @@
=> <%= settings_profile_url %>
-<%= t 'user_mailer.welcome.review_preferences_step' %>
-
-=> <%= settings_preferences_url %>
-
<%= t 'user_mailer.welcome.final_step' %>
=> <%= web_url %>
-
----
-
-<%= t 'user_mailer.welcome.tips' %>
-
-* <%= t 'user_mailer.welcome.tip_mobile_webapp' %>
-* <%= t 'user_mailer.welcome.tip_following' %>
-* <%= t 'user_mailer.welcome.tip_local_timeline', instance: @instance %>
-* <%= t 'user_mailer.welcome.tip_federated_timeline' %>
diff --git a/app/workers/activitypub/account_raw_distribution_worker.rb b/app/workers/activitypub/account_raw_distribution_worker.rb
new file mode 100644
index 0000000000..a84c7d2142
--- /dev/null
+++ b/app/workers/activitypub/account_raw_distribution_worker.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+class ActivityPub::AccountRawDistributionWorker < ActivityPub::RawDistributionWorker
+ protected
+
+ def inboxes
+ @inboxes ||= AccountReachFinder.new(@account).inboxes
+ end
+end
diff --git a/app/workers/activitypub/delivery_worker.rb b/app/workers/activitypub/delivery_worker.rb
index 788f2cf809..d9153132b3 100644
--- a/app/workers/activitypub/delivery_worker.rb
+++ b/app/workers/activitypub/delivery_worker.rb
@@ -37,7 +37,7 @@ class ActivityPub::DeliveryWorker
def build_request(http_client)
Request.new(:post, @inbox_url, body: @json, http_client: http_client).tap do |request|
- request.on_behalf_of(@source_account, :uri, sign_with: @options[:sign_with])
+ request.on_behalf_of(@source_account, sign_with: @options[:sign_with])
request.add_headers(HEADERS)
request.add_headers({ 'Collection-Synchronization' => synchronization_header }) if ENV['DISABLE_FOLLOWERS_SYNCHRONIZATION'] != 'true' && @options[:synchronize_followers]
end
diff --git a/app/workers/activitypub/processing_worker.rb b/app/workers/activitypub/processing_worker.rb
index 37e316354b..4d06ad0796 100644
--- a/app/workers/activitypub/processing_worker.rb
+++ b/app/workers/activitypub/processing_worker.rb
@@ -5,11 +5,15 @@ class ActivityPub::ProcessingWorker
sidekiq_options backtrace: true, retry: 8
- def perform(account_id, body, delivered_to_account_id = nil)
- account = Account.find_by(id: account_id)
- return if account.nil?
+ def perform(actor_id, body, delivered_to_account_id = nil, actor_type = 'Account')
+ case actor_type
+ when 'Account'
+ actor = Account.find_by(id: actor_id)
+ end
- ActivityPub::ProcessCollectionService.new.call(body, account, override_timestamps: true, delivered_to_account_id: delivered_to_account_id, delivery: true)
+ return if actor.nil?
+
+ ActivityPub::ProcessCollectionService.new.call(body, actor, override_timestamps: true, delivered_to_account_id: delivered_to_account_id, delivery: true)
rescue ActiveRecord::RecordInvalid => e
Rails.logger.debug "Error processing incoming ActivityPub object: #{e}"
end
diff --git a/app/workers/activitypub/synchronize_featured_collection_worker.rb b/app/workers/activitypub/synchronize_featured_collection_worker.rb
index 7a0898e89d..f67d693cb3 100644
--- a/app/workers/activitypub/synchronize_featured_collection_worker.rb
+++ b/app/workers/activitypub/synchronize_featured_collection_worker.rb
@@ -5,8 +5,10 @@ class ActivityPub::SynchronizeFeaturedCollectionWorker
sidekiq_options queue: 'pull', lock: :until_executed
- def perform(account_id)
- ActivityPub::FetchFeaturedCollectionService.new.call(Account.find(account_id))
+ def perform(account_id, options = {})
+ options = { note: true, hashtag: false }.deep_merge(options.deep_symbolize_keys)
+
+ ActivityPub::FetchFeaturedCollectionService.new.call(Account.find(account_id), **options)
rescue ActiveRecord::RecordNotFound
true
end
diff --git a/app/workers/activitypub/synchronize_featured_tags_collection_worker.rb b/app/workers/activitypub/synchronize_featured_tags_collection_worker.rb
new file mode 100644
index 0000000000..14af4f725c
--- /dev/null
+++ b/app/workers/activitypub/synchronize_featured_tags_collection_worker.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class ActivityPub::SynchronizeFeaturedTagsCollectionWorker
+ include Sidekiq::Worker
+
+ sidekiq_options queue: 'pull', lock: :until_executed
+
+ def perform(account_id, url)
+ ActivityPub::FetchFeaturedTagsCollectionService.new.call(Account.find(account_id), url)
+ rescue ActiveRecord::RecordNotFound
+ true
+ end
+end
diff --git a/app/workers/activitypub/update_distribution_worker.rb b/app/workers/activitypub/update_distribution_worker.rb
index 81fde63b84..d0391bb6f6 100644
--- a/app/workers/activitypub/update_distribution_worker.rb
+++ b/app/workers/activitypub/update_distribution_worker.rb
@@ -1,6 +1,8 @@
# frozen_string_literal: true
class ActivityPub::UpdateDistributionWorker < ActivityPub::RawDistributionWorker
+ sidekiq_options queue: 'push', lock: :until_executed
+
# Distribute an profile update to servers that might have a copy
# of the account in question
def perform(account_id, options = {})
diff --git a/app/workers/digest_mailer_worker.rb b/app/workers/digest_mailer_worker.rb
deleted file mode 100644
index 21f1c357a0..0000000000
--- a/app/workers/digest_mailer_worker.rb
+++ /dev/null
@@ -1,21 +0,0 @@
-# frozen_string_literal: true
-
-class DigestMailerWorker
- include Sidekiq::Worker
-
- sidekiq_options queue: 'mailers'
-
- attr_reader :user
-
- def perform(user_id)
- @user = User.find(user_id)
- deliver_digest if @user.allows_digest_emails?
- end
-
- private
-
- def deliver_digest
- NotificationMailer.digest(user.account).deliver_now!
- user.touch(:last_emailed_at)
- end
-end
diff --git a/app/workers/feed_insert_worker.rb b/app/workers/feed_insert_worker.rb
index 9483510aaf..ee9a3cadc1 100644
--- a/app/workers/feed_insert_worker.rb
+++ b/app/workers/feed_insert_worker.rb
@@ -9,7 +9,7 @@ class FeedInsertWorker
@options = options.symbolize_keys
case @type
- when :home
+ when :home, :tags
@follower = Account.find(id)
when :list
@list = List.find(id)
@@ -38,6 +38,8 @@ class FeedInsertWorker
case @type
when :home
FeedManager.instance.filter?(:home, @status, @follower)
+ when :tags
+ FeedManager.instance.filter?(:tags, @status, @follower)
when :list
FeedManager.instance.filter?(:list, @status, @list)
when :direct
@@ -53,7 +55,7 @@ class FeedInsertWorker
def perform_push
case @type
- when :home
+ when :home, :tags
FeedManager.instance.push_to_home(@follower, @status, update: update?)
when :list
FeedManager.instance.push_to_list(@list, @status, update: update?)
@@ -64,7 +66,7 @@ class FeedInsertWorker
def perform_unpush
case @type
- when :home
+ when :home, :tags
FeedManager.instance.unpush_from_home(@follower, @status, update: true)
when :list
FeedManager.instance.unpush_from_list(@list, @status, update: true)
diff --git a/app/workers/refollow_worker.rb b/app/workers/refollow_worker.rb
index 319b001097..4b712d3aae 100644
--- a/app/workers/refollow_worker.rb
+++ b/app/workers/refollow_worker.rb
@@ -10,8 +10,9 @@ class RefollowWorker
return unless target_account.activitypub?
target_account.passive_relationships.where(account: Account.where(domain: nil)).includes(:account).reorder(nil).find_each do |follow|
- reblogs = follow.show_reblogs?
- notify = follow.notify?
+ reblogs = follow.show_reblogs?
+ notify = follow.notify?
+ languages = follow.languages
# Locally unfollow remote account
follower = follow.account
@@ -19,7 +20,7 @@ class RefollowWorker
# Schedule re-follow
begin
- FollowService.new.call(follower, target_account, reblogs: reblogs, notify: notify, bypass_limit: true)
+ FollowService.new.call(follower, target_account, reblogs: reblogs, notify: notify, languages: languages, bypass_limit: true)
rescue Mastodon::NotPermittedError, ActiveRecord::RecordNotFound, Mastodon::UnexpectedResponseError, HTTP::Error, OpenSSL::SSL::SSLError
next
end
diff --git a/app/workers/remove_featured_tag_worker.rb b/app/workers/remove_featured_tag_worker.rb
new file mode 100644
index 0000000000..065ec79d81
--- /dev/null
+++ b/app/workers/remove_featured_tag_worker.rb
@@ -0,0 +1,11 @@
+# frozen_string_literal: true
+
+class RemoveFeaturedTagWorker
+ include Sidekiq::Worker
+
+ def perform(account_id, featured_tag_id)
+ RemoveFeaturedTagService.new.call(Account.find(account_id), FeaturedTag.find(featured_tag_id))
+ rescue ActiveRecord::RecordNotFound
+ true
+ end
+end
diff --git a/app/workers/scheduler/backup_cleanup_scheduler.rb b/app/workers/scheduler/backup_cleanup_scheduler.rb
deleted file mode 100644
index 85d5312c0a..0000000000
--- a/app/workers/scheduler/backup_cleanup_scheduler.rb
+++ /dev/null
@@ -1,17 +0,0 @@
-# frozen_string_literal: true
-
-class Scheduler::BackupCleanupScheduler
- include Sidekiq::Worker
-
- sidekiq_options retry: 0
-
- def perform
- old_backups.reorder(nil).find_each(&:destroy!)
- end
-
- private
-
- def old_backups
- Backup.where('created_at < ?', 7.days.ago)
- end
-end
diff --git a/app/workers/scheduler/email_scheduler.rb b/app/workers/scheduler/email_scheduler.rb
deleted file mode 100644
index c052f2fce0..0000000000
--- a/app/workers/scheduler/email_scheduler.rb
+++ /dev/null
@@ -1,25 +0,0 @@
-# frozen_string_literal: true
-
-class Scheduler::EmailScheduler
- include Sidekiq::Worker
-
- sidekiq_options retry: 0
-
- FREQUENCY = 7.days.freeze
- SIGN_IN_OFFSET = 1.day.freeze
-
- def perform
- eligible_users.reorder(nil).find_each do |user|
- next unless user.allows_digest_emails?
- DigestMailerWorker.perform_async(user.id)
- end
- end
-
- private
-
- def eligible_users
- User.emailable
- .where('current_sign_in_at < ?', (FREQUENCY + SIGN_IN_OFFSET).ago)
- .where('last_emailed_at IS NULL OR last_emailed_at < ?', FREQUENCY.ago)
- end
-end
diff --git a/app/workers/scheduler/feed_cleanup_scheduler.rb b/app/workers/scheduler/feed_cleanup_scheduler.rb
deleted file mode 100644
index 78adc97e25..0000000000
--- a/app/workers/scheduler/feed_cleanup_scheduler.rb
+++ /dev/null
@@ -1,40 +0,0 @@
-# frozen_string_literal: true
-
-class Scheduler::FeedCleanupScheduler
- include Sidekiq::Worker
- include Redisable
-
- sidekiq_options retry: 0
-
- def perform
- clean_home_feeds!
- clean_list_feeds!
- clean_direct_feeds!
- end
-
- private
-
- def clean_home_feeds!
- feed_manager.clean_feeds!(:home, inactive_account_ids)
- end
-
- def clean_list_feeds!
- feed_manager.clean_feeds!(:list, inactive_list_ids)
- end
-
- def clean_direct_feeds!
- feed_manager.clean_feeds!(:direct, inactive_account_ids)
- end
-
- def inactive_account_ids
- @inactive_account_ids ||= User.confirmed.inactive.pluck(:account_id)
- end
-
- def inactive_list_ids
- List.where(account_id: inactive_account_ids).pluck(:id)
- end
-
- def feed_manager
- FeedManager.instance
- end
-end
diff --git a/app/workers/scheduler/ip_cleanup_scheduler.rb b/app/workers/scheduler/ip_cleanup_scheduler.rb
index 7afad2f581..8f607db037 100644
--- a/app/workers/scheduler/ip_cleanup_scheduler.rb
+++ b/app/workers/scheduler/ip_cleanup_scheduler.rb
@@ -3,7 +3,8 @@
class Scheduler::IpCleanupScheduler
include Sidekiq::Worker
- IP_RETENTION_PERIOD = 1.year.freeze
+ IP_RETENTION_PERIOD = ENV.fetch('IP_RETENTION_PERIOD', 1.year).to_i.seconds.freeze
+ SESSION_RETENTION_PERIOD = ENV.fetch('SESSION_RETENTION_PERIOD', 1.year).to_i.seconds.freeze
sidekiq_options retry: 0
@@ -15,7 +16,8 @@ class Scheduler::IpCleanupScheduler
private
def clean_ip_columns!
- SessionActivation.where('updated_at < ?', IP_RETENTION_PERIOD.ago).in_batches.destroy_all
+ SessionActivation.where('updated_at < ?', SESSION_RETENTION_PERIOD.ago).in_batches.destroy_all
+ SessionActivation.where('updated_at < ?', IP_RETENTION_PERIOD.ago).in_batches.update_all(ip: nil)
User.where('current_sign_in_at < ?', IP_RETENTION_PERIOD.ago).in_batches.update_all(sign_up_ip: nil)
LoginActivity.where('created_at < ?', IP_RETENTION_PERIOD.ago).in_batches.destroy_all
Doorkeeper::AccessToken.where('last_used_at < ?', IP_RETENTION_PERIOD.ago).in_batches.update_all(last_used_ip: nil)
diff --git a/app/workers/scheduler/media_cleanup_scheduler.rb b/app/workers/scheduler/media_cleanup_scheduler.rb
deleted file mode 100644
index 24d30a6be5..0000000000
--- a/app/workers/scheduler/media_cleanup_scheduler.rb
+++ /dev/null
@@ -1,17 +0,0 @@
-# frozen_string_literal: true
-
-class Scheduler::MediaCleanupScheduler
- include Sidekiq::Worker
-
- sidekiq_options retry: 0
-
- def perform
- unattached_media.find_each(&:destroy)
- end
-
- private
-
- def unattached_media
- MediaAttachment.reorder(nil).unattached.where('created_at < ?', 1.day.ago)
- end
-end
diff --git a/app/workers/scheduler/vacuum_scheduler.rb b/app/workers/scheduler/vacuum_scheduler.rb
new file mode 100644
index 0000000000..9544f808bf
--- /dev/null
+++ b/app/workers/scheduler/vacuum_scheduler.rb
@@ -0,0 +1,56 @@
+# frozen_string_literal: true
+
+class Scheduler::VacuumScheduler
+ include Sidekiq::Worker
+
+ sidekiq_options retry: 0, lock: :until_executed
+
+ def perform
+ vacuum_operations.each do |operation|
+ operation.perform
+ rescue => e
+ Rails.logger.error("Error while running #{operation.class.name}: #{e}")
+ end
+ end
+
+ private
+
+ def vacuum_operations
+ [
+ statuses_vacuum,
+ media_attachments_vacuum,
+ preview_cards_vacuum,
+ backups_vacuum,
+ access_tokens_vacuum,
+ feeds_vacuum,
+ ]
+ end
+
+ def statuses_vacuum
+ Vacuum::StatusesVacuum.new(content_retention_policy.content_cache_retention_period)
+ end
+
+ def media_attachments_vacuum
+ Vacuum::MediaAttachmentsVacuum.new(content_retention_policy.media_cache_retention_period)
+ end
+
+ def preview_cards_vacuum
+ Vacuum::PreviewCardsVacuum.new(content_retention_policy.media_cache_retention_period)
+ end
+
+ def backups_vacuum
+ Vacuum::BackupsVacuum.new(content_retention_policy.backups_retention_period)
+ end
+
+ def access_tokens_vacuum
+ Vacuum::AccessTokensVacuum.new
+ end
+
+ def feeds_vacuum
+ Vacuum::FeedsVacuum.new
+ end
+
+ def content_retention_policy
+ ContentRetentionPolicy.current
+ end
+end
diff --git a/app/workers/unfollow_follow_worker.rb b/app/workers/unfollow_follow_worker.rb
index 0bd5ff472e..7203b4888f 100644
--- a/app/workers/unfollow_follow_worker.rb
+++ b/app/workers/unfollow_follow_worker.rb
@@ -10,11 +10,12 @@ class UnfollowFollowWorker
old_target_account = Account.find(old_target_account_id)
new_target_account = Account.find(new_target_account_id)
- follow = follower_account.active_relationships.find_by(target_account: old_target_account)
- reblogs = follow&.show_reblogs?
- notify = follow&.notify?
+ follow = follower_account.active_relationships.find_by(target_account: old_target_account)
+ reblogs = follow&.show_reblogs?
+ notify = follow&.notify?
+ languages = follow&.languages
- FollowService.new.call(follower_account, new_target_account, reblogs: reblogs, notify: notify, bypass_locked: bypass_locked, bypass_limit: true)
+ FollowService.new.call(follower_account, new_target_account, reblogs: reblogs, notify: notify, languages: languages, bypass_locked: bypass_locked, bypass_limit: true)
UnfollowService.new.call(follower_account, old_target_account, skip_unmerge: true)
rescue ActiveRecord::RecordNotFound, Mastodon::NotPermittedError
true
diff --git a/boxfile.yml b/boxfile.yml
deleted file mode 100644
index 27166cec9f..0000000000
--- a/boxfile.yml
+++ /dev/null
@@ -1,205 +0,0 @@
-run.config:
- engine: ruby
- engine.config:
- runtime: ruby-2.5
-
- extra_packages:
- # basic servers:
- - nginx
- - nodejs
-
- # for images:
- - ImageMagick
- - jemalloc
-
- # for videos:
- - ffmpeg3
-
- # to prep the .env file:
- - gettext-tools
-
- # for node-gyp, used in the asset compilation process:
- - python-2
-
- # i18n:
- - libidn
-
- cache_dirs:
- - node_modules
-
- extra_path_dirs:
- - node_modules/.bin
-
- build_triggers:
- - .ruby-version
- - Gemfile
- - Gemfile.lock
- - package.json
- - yarn.lock
-
- extra_steps:
- - cp .env.nanobox .env
- - yarn
-
- fs_watch: true
-
-deploy.config:
- extra_steps:
- - NODE_ENV=production bundle exec rake assets:precompile
- transform:
- - 'envsubst < /app/.env.nanobox > /app/.env.production'
- - |-
- if [ -z "$LOCAL_DOMAIN" ]
- then
- . /app/.env.production
- export LOCAL_DOMAIN
- fi
- erb /app/nanobox/nginx-web.conf.erb > /app/nanobox/nginx-web.conf
- erb /app/nanobox/nginx-stream.conf.erb > /app/nanobox/nginx-stream.conf
- - touch /app/log/production.log
- before_live:
- web.web:
- - bin/tootctl cache clear
- - bundle exec rake db:migrate:setup
- after_live:
- worker.sidekiq:
- - |-
- if [[ "${ES_ENABLED}" != "false" ]]
- then
- bin/tootctl search deploy
- fi
-
-web.web:
- start:
- nginx: nginx -c /app/nanobox/nginx-web.conf
- rails: bundle exec puma -C /app/config/puma.rb
-
- routes:
- - '/'
-
- writable_dirs:
- - tmp
-
- log_watch:
- rails: 'log/production.log'
-
- network_dirs:
- data.storage:
- - public/system
-
-web.stream:
- start:
- nginx: nginx -c /app/nanobox/nginx-stream.conf
- node: yarn run start
-
- routes:
- - '/api/v1/streaming*'
- # Somehow we're getting requests for scheme://domain//api/v1/streaming* - match those, too
- - '//api/v1/streaming*'
-
- writable_dirs:
- - tmp
-
-worker.sidekiq:
- start:
- default: bundle exec sidekiq -c 5 -q default -L /app/log/sidekiq.log
- mailers: bundle exec sidekiq -c 5 -q mailers -L /app/log/sidekiq.log
- pull: bundle exec sidekiq -c 5 -q pull -L /app/log/sidekiq.log
- push: bundle exec sidekiq -c 5 -q push -L /app/log/sidekiq.log
- scheduler: bundle exec sidekiq -c 5 -q scheduler -L /app/log/sidekiq.log
-
- writable_dirs:
- - tmp
-
- log_watch:
- rails: 'log/production.log'
- sidekiq: 'log/sidekiq.log'
-
- network_dirs:
- data.storage:
- - public/system
-
-data.db:
- image: nanobox/postgresql:9.6
-
- cron:
- - id: backup
- schedule: '0 3 * * *'
- command: |
- PGPASSWORD=${DATA_DB_PASS} pg_dump -U ${DATA_DB_USER} -w -Fc -O gonano |
- gzip |
- curl -k -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/backup-${HOSTNAME}-$(date -u +%Y-%m-%d.%H-%M-%S).sql.gz -X POST -T - >&2
- curl -k -s -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/ |
- sed 's/,/\n/g' |
- grep ${HOSTNAME} |
- sort |
- head -n-${BACKUP_COUNT:-1} |
- sed 's/.*: \?"\(.*\)".*/\1/' |
- while read file
- do
- curl -k -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/${file} -X DELETE
- done
-
-data.elastic:
- image: nanobox/elasticsearch:5
-
- cron:
- - id: backup
- schedule: '0 3 * * *'
- command: |
- id=$(cat /proc/sys/kernel/random/uuid)
- curl -X PUT -H "Content-Type: application/json" "127.0.0.1:9200/_snapshot/${id}" -d "{\"type\": \"fs\",\"settings\": {\"location\": \"/var/tmp/${id}\",\"compress\": true}}"
- curl -X PUT -H "Content-Type: application/json" "127.0.0.1:9200/_snapshot/${id}/backup?wait_for_completion=true&pretty"
- tar -cz -C "/var/tmp/${id}" . |
- curl -k -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/backup-${HOSTNAME}-$(date -u +%Y-%m-%d.%H-%M-%S).tgz -X POST -T - >&2
- curl -X DELETE -H "Content-Type: application/json" "127.0.0.1:9200/_snapshot/${id}"
- rm -rf "/var/tmp/${id}"
- curl -k -s -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/ |
- sed 's/,/\n/g' |
- grep ${HOSTNAME} |
- sort |
- head -n-${BACKUP_COUNT:-1} |
- sed 's/.*: \?"\(.*\)".*/\1/' |
- while read file
- do
- curl -k -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/${file} -X DELETE
- done
-
-data.redis:
- image: nanobox/redis:4.0
-
- cron:
- - id: backup
- schedule: '0 3 * * *'
- command: |
- curl -k -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/backup-${HOSTNAME}-$(date -u +%Y-%m-%d.%H-%M-%S).rdb -X POST -T /data/var/db/redis/dump.rdb >&2
- curl -k -s -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/ |
- sed 's/,/\n/g' |
- grep ${HOSTNAME} |
- sort |
- head -n-${BACKUP_COUNT:-1} |
- sed 's/.*: \?"\(.*\)".*/\1/' |
- while read file
- do
- curl -k -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/${file} -X DELETE
- done
-
-data.storage:
- image: nanobox/unfs:0.9
-
- cron:
- - id: backup
- schedule: '0 3 * * *'
- command: |
- tar cz -C /data/var/db/unfs/ . |
- curl -k -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/backup-${HOSTNAME}-$(date -u +%Y-%m-%d.%H-%M-%S).tgz -X POST -T - >&2
- curl -k -s -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/ |
- sed 's/,/\n/g' |
- grep ${HOSTNAME} |
- sort |
- head -n-${BACKUP_COUNT:-1} |
- sed 's/.*: \?"\(.*\)".*/\1/' |
- while read file
- do
- curl -k -H "X-AUTH-TOKEN: ${WAREHOUSE_DATA_HOARDER_TOKEN}" https://${WAREHOUSE_DATA_HOARDER_HOST}:7410/blobs/${file} -X DELETE
- done
diff --git a/chart/.helmignore b/chart/.helmignore
index 0e8a0eb36f..886747ed0b 100644
--- a/chart/.helmignore
+++ b/chart/.helmignore
@@ -21,3 +21,4 @@
.idea/
*.tmproj
.vscode/
+mastodon-*.tgz
diff --git a/chart/Chart.lock b/chart/Chart.lock
index d74e7570ce..961e4fa80f 100644
--- a/chart/Chart.lock
+++ b/chart/Chart.lock
@@ -1,12 +1,12 @@
dependencies:
- name: elasticsearch
- repository: https://charts.bitnami.com/bitnami
- version: 15.10.3
+ repository: https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami
+ version: 19.0.1
- name: postgresql
- repository: https://charts.bitnami.com/bitnami
- version: 8.10.14
+ repository: https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami
+ version: 11.1.3
- name: redis
- repository: https://charts.bitnami.com/bitnami
- version: 10.9.0
-digest: sha256:f5c57108f7768fd16391c1a050991c7809f84a640cca308d7d24d87379d04000
-generated: "2021-08-05T08:01:01.457727804Z"
+ repository: https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami
+ version: 16.13.2
+digest: sha256:17ea58a3264aa22faff18215c4269f47dabae956d0df273c684972f356416193
+generated: "2022-08-08T21:44:18.0195364+02:00"
diff --git a/chart/Chart.yaml b/chart/Chart.yaml
index 1687132acb..b1138b594f 100644
--- a/chart/Chart.yaml
+++ b/chart/Chart.yaml
@@ -15,7 +15,7 @@ type: application
# This is the chart version. This version number should be incremented each time you make changes
# to the chart and its templates, including the app version.
# Versions are expected to follow Semantic Versioning (https://semver.org/)
-version: 1.2.1
+version: 2.0.0
# This is the version number of the application being deployed. This version number should be
# incremented each time you make changes to the application. Versions are not expected to
@@ -24,13 +24,13 @@ appVersion: 3.3.0
dependencies:
- name: elasticsearch
- version: 15.10.3
- repository: https://charts.bitnami.com/bitnami
+ version: 19.0.1
+ repository: https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami
condition: elasticsearch.enabled
- name: postgresql
- version: 8.10.14
- repository: https://charts.bitnami.com/bitnami
+ version: 11.1.3
+ repository: https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami
condition: postgresql.enabled
- name: redis
- version: 10.9.0
- repository: https://charts.bitnami.com/bitnami
+ version: 16.13.2
+ repository: https://raw.githubusercontent.com/bitnami/charts/archive-full-index/bitnami
diff --git a/chart/templates/_helpers.tpl b/chart/templates/_helpers.tpl
index 5814a31203..71bb002ef2 100644
--- a/chart/templates/_helpers.tpl
+++ b/chart/templates/_helpers.tpl
@@ -77,3 +77,53 @@ We truncate at 63 chars because some Kubernetes name fields are limited to this
{{- define "mastodon.postgresql.fullname" -}}
{{- printf "%s-%s" .Release.Name "postgresql" | trunc 63 | trimSuffix "-" -}}
{{- end -}}
+
+{{/*
+Get the mastodon secret.
+*/}}
+{{- define "mastodon.secretName" -}}
+{{- if .Values.mastodon.secrets.existingSecret }}
+ {{- printf "%s" (tpl .Values.mastodon.secrets.existingSecret $) -}}
+{{- else -}}
+ {{- printf "%s" (include "common.names.fullname" .) -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Get the postgresql secret.
+*/}}
+{{- define "mastodon.postgresql.secretName" -}}
+{{- if (and (or .Values.postgresql.enabled .Values.postgresql.postgresqlHostname) .Values.postgresql.auth.existingSecret) }}
+ {{- printf "%s" (tpl .Values.postgresql.auth.existingSecret $) -}}
+{{- else if .Values.postgresql.enabled -}}
+ {{- printf "%s-postgresql" (tpl .Release.Name $) -}}
+{{- else -}}
+ {{- printf "%s" (include "common.names.fullname" .) -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Get the redis secret.
+*/}}
+{{- define "mastodon.redis.secretName" -}}
+{{- if .Values.redis.auth.existingSecret }}
+ {{- printf "%s" (tpl .Values.redis.auth.existingSecret $) -}}
+{{- else if .Values.redis.existingSecret }}
+ {{- printf "%s" (tpl .Values.redis.existingSecret $) -}}
+{{- else -}}
+ {{- printf "%s-redis" (tpl .Release.Name $) -}}
+{{- end -}}
+{{- end -}}
+
+{{/*
+Return true if a mastodon secret object should be created
+*/}}
+{{- define "mastodon.createSecret" -}}
+{{- if (or
+ (and .Values.mastodon.s3.enabled (not .Values.mastodon.s3.existingSecret))
+ (not .Values.mastodon.secrets.existingSecret )
+ (and (not .Values.postgresql.enabled) (not .Values.postgresql.auth.existingSecret))
+ ) -}}
+ {{- true -}}
+{{- end -}}
+{{- end -}}
diff --git a/chart/templates/configmap-env.yaml b/chart/templates/configmap-env.yaml
index aa242684ff..12da91cf97 100644
--- a/chart/templates/configmap-env.yaml
+++ b/chart/templates/configmap-env.yaml
@@ -10,20 +10,23 @@ data:
{{- else }}
DB_HOST: {{ .Values.postgresql.postgresqlHostname }}
{{- end }}
- DB_NAME: {{ .Values.postgresql.postgresqlDatabase }}
+ DB_NAME: {{ .Values.postgresql.auth.database }}
DB_POOL: {{ .Values.mastodon.sidekiq.concurrency | quote }}
DB_PORT: "5432"
- DB_USER: {{ .Values.postgresql.postgresqlUsername }}
+ DB_USER: {{ .Values.postgresql.auth.username }}
DEFAULT_LOCALE: {{ .Values.mastodon.locale }}
{{- if .Values.elasticsearch.enabled }}
ES_ENABLED: "true"
- ES_HOST: {{ template "mastodon.elasticsearch.fullname" . }}-master
+ ES_HOST: {{ template "mastodon.elasticsearch.fullname" . }}-master-hl
ES_PORT: "9200"
{{- end }}
LOCAL_DOMAIN: {{ .Values.mastodon.local_domain }}
{{- if .Values.mastodon.web_domain }}
WEB_DOMAIN: {{ .Values.mastodon.web_domain }}
{{- end }}
+ {{- if .Values.mastodon.singleUserMode }}
+ SINGLE_USER_MODE: "true"
+ {{- end }}
# https://devcenter.heroku.com/articles/tuning-glibc-memory-behavior
MALLOC_ARENA_MAX: "2"
NODE_ENV: "production"
diff --git a/chart/templates/cronjob-media-remove.yaml b/chart/templates/cronjob-media-remove.yaml
index 3d6e25cc68..1dced69ec7 100644
--- a/chart/templates/cronjob-media-remove.yaml
+++ b/chart/templates/cronjob-media-remove.yaml
@@ -1,5 +1,5 @@
{{ if .Values.mastodon.cron.removeMedia.enabled }}
-apiVersion: batch/v1beta1
+apiVersion: batch/v1
kind: CronJob
metadata:
name: {{ include "mastodon.fullname" . }}-media-remove
@@ -12,6 +12,10 @@ spec:
template:
metadata:
name: {{ include "mastodon.fullname" . }}-media-remove
+ {{- with .Values.jobAnnotations }}
+ annotations:
+ {{- toYaml . | nindent 12 }}
+ {{- end }}
spec:
restartPolicy: OnFailure
{{- if (not .Values.mastodon.s3.enabled) }}
@@ -49,21 +53,17 @@ spec:
- configMapRef:
name: {{ include "mastodon.fullname" . }}-env
- secretRef:
- name: {{ template "mastodon.fullname" . }}
+ name: {{ template "mastodon.secretName" . }}
env:
- name: "DB_PASS"
valueFrom:
secretKeyRef:
- {{- if .Values.postgresql.enabled }}
- name: {{ .Release.Name }}-postgresql
- {{- else }}
- name: {{ template "mastodon.fullname" . }}
- {{- end }}
- key: postgresql-password
+ name: {{ template "mastodon.postgresql.secretName" . }}
+ key: postgres-password
- name: "REDIS_PASSWORD"
valueFrom:
secretKeyRef:
- name: {{ .Release.Name }}-redis
+ name: {{ template "mastodon.redis.secretName" . }}
key: redis-password
- name: "PORT"
value: {{ .Values.mastodon.web.port | quote }}
diff --git a/chart/templates/deployment-sidekiq.yaml b/chart/templates/deployment-sidekiq.yaml
index baf6c2b2dd..56ba257b59 100644
--- a/chart/templates/deployment-sidekiq.yaml
+++ b/chart/templates/deployment-sidekiq.yaml
@@ -70,22 +70,31 @@ spec:
- configMapRef:
name: {{ include "mastodon.fullname" . }}-env
- secretRef:
- name: {{ template "mastodon.fullname" . }}
+ name: {{ template "mastodon.secretName" . }}
env:
- name: "DB_PASS"
valueFrom:
secretKeyRef:
- {{- if .Values.postgresql.enabled }}
- name: {{ .Release.Name }}-postgresql
- {{- else }}
- name: {{ template "mastodon.fullname" . }}
- {{- end }}
- key: postgresql-password
+ name: {{ template "mastodon.postgresql.secretName" . }}
+ key: postgres-password
- name: "REDIS_PASSWORD"
valueFrom:
secretKeyRef:
- name: {{ .Release.Name }}-redis
+ name: {{ template "mastodon.redis.secretName" . }}
key: redis-password
+ {{- if .Values.mastodon.smtp.existingSecret }}
+ - name: "SMTP_LOGIN"
+ valueFrom:
+ secretKeyRef:
+ name: {{ .Values.mastodon.smtp.existingSecret }}
+ key: login
+ optional: true
+ - name: "SMTP_PASSWORD"
+ valueFrom:
+ secretKeyRef:
+ name: {{ .Values.mastodon.smtp.existingSecret }}
+ key: password
+ {{- end -}}
{{- if (not .Values.mastodon.s3.enabled) }}
volumeMounts:
- name: assets
diff --git a/chart/templates/deployment-streaming.yaml b/chart/templates/deployment-streaming.yaml
index b332b686ac..564f53f433 100644
--- a/chart/templates/deployment-streaming.yaml
+++ b/chart/templates/deployment-streaming.yaml
@@ -43,16 +43,12 @@ spec:
- name: "DB_PASS"
valueFrom:
secretKeyRef:
- {{- if .Values.postgresql.enabled }}
- name: {{ .Release.Name }}-postgresql
- {{- else }}
- name: {{ template "mastodon.fullname" . }}
- {{- end }}
- key: postgresql-password
+ name: {{ template "mastodon.postgresql.secretName" . }}
+ key: postgres-password
- name: "REDIS_PASSWORD"
valueFrom:
secretKeyRef:
- name: {{ .Release.Name }}-redis
+ name: {{ template "mastodon.redis.secretName" . }}
key: redis-password
- name: "PORT"
value: {{ .Values.mastodon.streaming.port | quote }}
diff --git a/chart/templates/deployment-web.yaml b/chart/templates/deployment-web.yaml
index 8b8bb4f29c..0878aa9b87 100644
--- a/chart/templates/deployment-web.yaml
+++ b/chart/templates/deployment-web.yaml
@@ -56,24 +56,32 @@ spec:
- configMapRef:
name: {{ include "mastodon.fullname" . }}-env
- secretRef:
- name: {{ template "mastodon.fullname" . }}
+ name: {{ template "mastodon.secretName" . }}
env:
- name: "DB_PASS"
valueFrom:
secretKeyRef:
- {{- if .Values.postgresql.enabled }}
- name: {{ .Release.Name }}-postgresql
- {{- else }}
- name: {{ template "mastodon.fullname" . }}
- {{- end }}
- key: postgresql-password
+ name: {{ template "mastodon.postgresql.secretName" . }}
+ key: postgres-password
- name: "REDIS_PASSWORD"
valueFrom:
secretKeyRef:
- name: {{ .Release.Name }}-redis
+ name: {{ template "mastodon.redis.secretName" . }}
key: redis-password
- name: "PORT"
value: {{ .Values.mastodon.web.port | quote }}
+ {{- if (and .Values.mastodon.s3.enabled .Values.mastodon.s3.existingSecret) }}
+ - name: "AWS_SECRET_ACCESS_KEY"
+ valueFrom:
+ secretKeyRef:
+ name: {{ .Values.mastodon.s3.existingSecret }}
+ key: AWS_SECRET_ACCESS_KEY
+ - name: "AWS_ACCESS_KEY_ID"
+ valueFrom:
+ secretKeyRef:
+ name: {{ .Values.mastodon.s3.existingSecret }}
+ key: AWS_ACCESS_KEY_ID
+ {{- end -}}
{{- if (not .Values.mastodon.s3.enabled) }}
volumeMounts:
- name: assets
diff --git a/chart/templates/job-assets-precompile.yaml b/chart/templates/job-assets-precompile.yaml
index 825a7e9160..37009822e6 100644
--- a/chart/templates/job-assets-precompile.yaml
+++ b/chart/templates/job-assets-precompile.yaml
@@ -12,6 +12,10 @@ spec:
template:
metadata:
name: {{ include "mastodon.fullname" . }}-assets-precompile
+ {{- with .Values.jobAnnotations }}
+ annotations:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
spec:
restartPolicy: Never
{{- if (not .Values.mastodon.s3.enabled) }}
@@ -50,21 +54,17 @@ spec:
- configMapRef:
name: {{ include "mastodon.fullname" . }}-env
- secretRef:
- name: {{ template "mastodon.fullname" . }}
+ name: {{ template "mastodon.secretName" . }}
env:
- name: "DB_PASS"
valueFrom:
secretKeyRef:
- {{- if .Values.postgresql.enabled }}
- name: {{ .Release.Name }}-postgresql
- {{- else }}
- name: {{ template "mastodon.fullname" . }}
- {{- end }}
- key: postgresql-password
+ name: {{ template "mastodon.postgresql.secretName" . }}
+ key: postgres-password
- name: "REDIS_PASSWORD"
valueFrom:
secretKeyRef:
- name: {{ .Release.Name }}-redis
+ name: {{ template "mastodon.redis.secretName" . }}
key: redis-password
- name: "PORT"
value: {{ .Values.mastodon.web.port | quote }}
diff --git a/chart/templates/job-chewy-upgrade.yaml b/chart/templates/job-chewy-upgrade.yaml
index cc68a3385a..a4bac63abc 100644
--- a/chart/templates/job-chewy-upgrade.yaml
+++ b/chart/templates/job-chewy-upgrade.yaml
@@ -13,6 +13,10 @@ spec:
template:
metadata:
name: {{ include "mastodon.fullname" . }}-chewy-upgrade
+ {{- with .Values.jobAnnotations }}
+ annotations:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
spec:
restartPolicy: Never
{{- if (not .Values.mastodon.s3.enabled) }}
@@ -51,21 +55,17 @@ spec:
- configMapRef:
name: {{ include "mastodon.fullname" . }}-env
- secretRef:
- name: {{ template "mastodon.fullname" . }}
+ name: {{ template "mastodon.secretName" . }}
env:
- name: "DB_PASS"
valueFrom:
secretKeyRef:
- {{- if .Values.postgresql.enabled }}
- name: {{ .Release.Name }}-postgresql
- {{- else }}
- name: {{ template "mastodon.fullname" . }}
- {{- end }}
- key: postgresql-password
+ name: {{ template "mastodon.postgresql.secretName" . }}
+ key: postgres-password
- name: "REDIS_PASSWORD"
valueFrom:
secretKeyRef:
- name: {{ .Release.Name }}-redis
+ name: {{ template "mastodon.redis.secretName" . }}
key: redis-password
- name: "PORT"
value: {{ .Values.mastodon.web.port | quote }}
diff --git a/chart/templates/job-create-admin.yaml b/chart/templates/job-create-admin.yaml
index ffb8bb0590..c1c0bdaed5 100644
--- a/chart/templates/job-create-admin.yaml
+++ b/chart/templates/job-create-admin.yaml
@@ -13,6 +13,10 @@ spec:
template:
metadata:
name: {{ include "mastodon.fullname" . }}-create-admin
+ {{- with .Values.jobAnnotations }}
+ annotations:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
spec:
restartPolicy: Never
{{- if (not .Values.mastodon.s3.enabled) }}
@@ -56,21 +60,17 @@ spec:
- configMapRef:
name: {{ include "mastodon.fullname" . }}-env
- secretRef:
- name: {{ template "mastodon.fullname" . }}
+ name: {{ template "mastodon.secretName" . }}
env:
- name: "DB_PASS"
valueFrom:
secretKeyRef:
- {{- if .Values.postgresql.enabled }}
- name: {{ .Release.Name }}-postgresql
- {{- else }}
- name: {{ template "mastodon.fullname" . }}
- {{- end }}
- key: postgresql-password
+ name: {{ template "mastodon.postgresql.secretName" . }}
+ key: postgres-password
- name: "REDIS_PASSWORD"
valueFrom:
secretKeyRef:
- name: {{ .Release.Name }}-redis
+ name: {{ template "mastodon.redis.secretName" . }}
key: redis-password
- name: "PORT"
value: {{ .Values.mastodon.web.port | quote }}
diff --git a/chart/templates/job-db-migrate.yaml b/chart/templates/job-db-migrate.yaml
index 72f910e3b2..848ed36441 100644
--- a/chart/templates/job-db-migrate.yaml
+++ b/chart/templates/job-db-migrate.yaml
@@ -12,6 +12,10 @@ spec:
template:
metadata:
name: {{ include "mastodon.fullname" . }}-db-migrate
+ {{- with .Values.jobAnnotations }}
+ annotations:
+ {{- toYaml . | nindent 8 }}
+ {{- end }}
spec:
restartPolicy: Never
{{- if (not .Values.mastodon.s3.enabled) }}
@@ -50,21 +54,17 @@ spec:
- configMapRef:
name: {{ include "mastodon.fullname" . }}-env
- secretRef:
- name: {{ template "mastodon.fullname" . }}
+ name: {{ template "mastodon.secretName" . }}
env:
- name: "DB_PASS"
valueFrom:
secretKeyRef:
- {{- if .Values.postgresql.enabled }}
- name: {{ .Release.Name }}-postgresql
- {{- else }}
- name: {{ template "mastodon.fullname" . }}
- {{- end }}
- key: postgresql-password
+ name: {{ template "mastodon.postgresql.secretName" . }}
+ key: postgres-password
- name: "REDIS_PASSWORD"
valueFrom:
secretKeyRef:
- name: {{ .Release.Name }}-redis
+ name: {{ template "mastodon.redis.secretName" . }}
key: redis-password
- name: "PORT"
value: {{ .Values.mastodon.web.port | quote }}
diff --git a/chart/templates/secrets.yaml b/chart/templates/secrets.yaml
index 0452a8ae1e..2a91c34934 100644
--- a/chart/templates/secrets.yaml
+++ b/chart/templates/secrets.yaml
@@ -1,3 +1,4 @@
+{{- if (include "mastodon.createSecret" .) }}
apiVersion: v1
kind: Secret
metadata:
@@ -7,9 +8,12 @@ metadata:
type: Opaque
data:
{{- if .Values.mastodon.s3.enabled }}
+ {{- if not .Values.mastodon.s3.existingSecret }}
AWS_ACCESS_KEY_ID: "{{ .Values.mastodon.s3.access_key | b64enc }}"
AWS_SECRET_ACCESS_KEY: "{{ .Values.mastodon.s3.access_secret | b64enc }}"
{{- end }}
+ {{- end }}
+ {{- if not .Values.mastodon.secrets.existingSecret }}
{{- if not (empty .Values.mastodon.secrets.secret_key_base) }}
SECRET_KEY_BASE: "{{ .Values.mastodon.secrets.secret_key_base | b64enc }}"
{{- else }}
@@ -30,6 +34,10 @@ data:
{{- else }}
VAPID_PUBLIC_KEY: {{ required "vapid.public_key is required" .Values.mastodon.secrets.vapid.public_key }}
{{- end }}
+ {{- end }}
{{- if not .Values.postgresql.enabled }}
- postgresql-password: "{{ .Values.postgresql.postgresqlPassword | b64enc }}"
+ {{- if not .Values.postgresql.auth.existingSecret }}
+ postgres-password: "{{ .Values.postgresql.auth.password | b64enc }}"
+ {{- end }}
{{- end }}
+{{- end -}}
diff --git a/chart/values.yaml b/chart/values.yaml
index 2cfa3484b4..9125d1a16b 100644
--- a/chart/values.yaml
+++ b/chart/values.yaml
@@ -24,12 +24,14 @@ mastodon:
removeMedia:
enabled: true
schedule: "0 0 * * 0"
- # available locales: https://github.com/tootsuite/mastodon/blob/master/config/application.rb#L43
+ # available locales: https://github.com/mastodon/mastodon/blob/main/config/application.rb#L71
locale: en
local_domain: mastodon.local
# Use of WEB_DOMAIN requires careful consideration: https://docs.joinmastodon.org/admin/config/#federation
# You must redirect the path LOCAL_DOMAIN/.well-known/ to WEB_DOMAIN/.well-known/ as described
# web_domain: mastodon.example.com
+ # If set to true, the frontpage of your Mastodon server will always redirect to the first profile in the database and registrations will be disabled.
+ singleUserMode: false
persistence:
assets:
# ReadWriteOnce is more widely supported than ReadWriteMany, but limits
@@ -48,6 +50,9 @@ mastodon:
enabled: false
access_key: ""
access_secret: ""
+ # you can also specify the name of an existing Secret
+ # with keys AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY
+ existingSecret: ""
bucket: ""
endpoint: https://us-east-1.linodeobjects.com
hostname: us-east-1.linodeobjects.com
@@ -61,6 +66,10 @@ mastodon:
vapid:
private_key: ""
public_key: ""
+ # you can also specify the name of an existing Secret
+ # with keys SECRET_KEY_BASE and OTP_SECRET and
+ # VAPID_PRIVATE_KEY and VAPID_PUBLIC_KEY
+ existingSecret: ""
sidekiq:
concurrency: 25
smtp:
@@ -70,13 +79,16 @@ mastodon:
domain:
enable_starttls_auto: true
from_address: notifications@example.com
- login:
openssl_verify_mode: peer
- password:
port: 587
reply_to:
server: smtp.mailgun.org
tls: false
+ login:
+ password:
+ # you can also specify the name of an existing Secret
+ # with the keys login and password
+ existingSecret:
streaming:
port: 4000
# this should be set manually since os.cpus() returns the number of CPUs on
@@ -127,18 +139,26 @@ postgresql:
# must match those of that external postgres instance
enabled: true
# postgresqlHostname: preexisting-postgresql
- postgresqlDatabase: mastodon_production
- # you must set a password; the password generated by the postgresql chart will
- # be rotated on each upgrade:
- # https://github.com/bitnami/charts/tree/master/bitnami/postgresql#upgrade
- postgresqlPassword: ""
- postgresqlUsername: postgres
+ auth:
+ database: mastodon_production
+ username: postgres
+ # you must set a password; the password generated by the postgresql chart will
+ # be rotated on each upgrade:
+ # https://github.com/bitnami/charts/tree/master/bitnami/postgresql#upgrade
+ password: ""
+ # you can also specify the name of an existing Secret
+ # with a key of postgres-password set to the password you want
+ existingSecret: ""
# https://github.com/bitnami/charts/tree/master/bitnami/redis#parameters
redis:
# you must set a password; the password generated by the redis chart will be
# rotated on each upgrade:
password: ""
+ # you can also specify the name of an existing Secret
+ # with a key of redis-password set to the password you want
+ # auth:
+ # existingSecret: ""
service:
type: ClusterIP
@@ -157,45 +177,45 @@ externalAuth:
# client_secret: SECRETKEY
# redirect_uri: https://example.com/auth/auth/openid_connect/callback
# assume_email_is_verified: true
- # client_auth_method:
- # response_type:
- # response_mode:
- # display:
- # prompt:
- # send_nonce:
- # send_scope_to_token_endpoint:
- # idp_logout_redirect_uri:
- # http_scheme:
- # host:
- # port:
- # jwks_uri:
- # auth_endpoint:
- # token_endpoint:
- # user_info_endpoint:
- # end_session_endpoint:
+ # client_auth_method:
+ # response_type:
+ # response_mode:
+ # display:
+ # prompt:
+ # send_nonce:
+ # send_scope_to_token_endpoint:
+ # idp_logout_redirect_uri:
+ # http_scheme:
+ # host:
+ # port:
+ # jwks_uri:
+ # auth_endpoint:
+ # token_endpoint:
+ # user_info_endpoint:
+ # end_session_endpoint:
saml:
enabled: false
# acs_url: http://mastodon.example.com/auth/auth/saml/callback
# issuer: mastodon
# idp_sso_target_url: https://login.example.com/auth/realms/example/protocol/saml
# idp_cert: '-----BEGIN CERTIFICATE-----[your_cert_content]-----END CERTIFICATE-----'
- # idp_cert_fingerprint:
+ # idp_cert_fingerprint:
# name_identifier_format: urn:oasis:names:tc:SAML:1.1:nameid-format:unspecified
- # cert:
- # private_key:
+ # cert:
+ # private_key:
# want_assertion_signed: true
# want_assertion_encrypted: true
# assume_email_is_verified: true
# uid_attribute: "urn:oid:0.9.2342.19200300.100.1.1"
- # attributes_statements:
+ # attributes_statements:
# uid: "urn:oid:0.9.2342.19200300.100.1.1"
# email: "urn:oid:1.3.6.1.4.1.5923.1.1.1.6"
# full_name: "urn:oid:2.16.840.1.113730.3.1.241"
# first_name: "urn:oid:2.5.4.42"
# last_name: "urn:oid:2.5.4.4"
- # verified:
- # verified_email:
- oauth_global:
+ # verified:
+ # verified_email:
+ oauth_global:
# Force redirect local login to CAS. Does not function with SAML or LDAP.
oauth_redirect_at_sign_in: false
cas:
@@ -204,15 +224,15 @@ externalAuth:
# host: sso.myserver.com
# port: 443
# ssl: true
- # validate_url:
- # callback_url:
- # logout_url:
- # login_url:
+ # validate_url:
+ # callback_url:
+ # logout_url:
+ # login_url:
# uid_field: 'user'
- # ca_path:
+ # ca_path:
# disable_ssl_verification: false
# assume_email_is_verified: true
- # keys:
+ # keys:
# uid: 'user'
# name: 'name'
# email: 'email'
@@ -222,7 +242,7 @@ externalAuth:
# location: 'location'
# image: 'image'
# phone: 'phone'
- pam:
+ pam:
enabled: false
# email_domain: example.com
# default_service: rpam
@@ -232,9 +252,9 @@ externalAuth:
# host: myservice.namespace.svc
# port: 389
# method: simple_tls
- # base:
- # bind_on:
- # password:
+ # base:
+ # bind_on:
+ # password:
# uid: cn
# mail: mail
# search_filter: "(|(%{uid}=%{email})(%{mail}=%{email}))"
@@ -243,7 +263,7 @@ externalAuth:
# search: "., -"
# replace: _
-# https://github.com/tootsuite/mastodon/blob/master/Dockerfile#L88
+# https://github.com/mastodon/mastodon/blob/main/Dockerfile#L75
#
# if you manually change the UID/GID environment variables, ensure these values
# match:
@@ -263,8 +283,14 @@ serviceAccount:
# If not set and create is true, a name is generated using the fullname template
name: ""
+# Kubernetes manages pods for jobs and pods for deployments differently, so you might
+# need to apply different annotations to the two different sets of pods. The annotations
+# set with podAnnotations will be added to all deployment-managed pods.
podAnnotations: {}
+# The annotations set with jobAnnotations will be added to all job pods.
+jobAnnotations: {}
+
resources: {}
# We usually recommend not to specify default resources and to leave this as a conscious
# choice for the user. This also increases chances charts run on environments with little
diff --git a/config/application.rb b/config/application.rb
index 24fa2a9781..2e54eb6f67 100644
--- a/config/application.rb
+++ b/config/application.rb
@@ -44,6 +44,7 @@ require_relative '../lib/webpacker/helper_extensions'
require_relative '../lib/rails/engine_extensions'
require_relative '../lib/active_record/database_tasks_extensions'
require_relative '../lib/active_record/batches'
+require_relative '../lib/simple_navigation/item_extensions'
Dotenv::Railtie.load
@@ -164,7 +165,6 @@ module Mastodon
config.active_job.queue_adapter = :sidekiq
config.middleware.use Rack::Attack
- config.middleware.use Rack::Deflater
config.middleware.use Mastodon::RackMiddleware
config.to_prepare do
diff --git a/config/deploy.rb b/config/deploy.rb
index 8a2316b573..2bdb115950 100644
--- a/config/deploy.rb
+++ b/config/deploy.rb
@@ -1,6 +1,6 @@
# frozen_string_literal: true
-lock '3.17.0'
+lock '3.17.1'
set :repo_url, ENV.fetch('REPO', 'https://github.com/mastodon/mastodon.git')
set :branch, ENV.fetch('BRANCH', 'master')
diff --git a/config/environments/production.rb b/config/environments/production.rb
index 69f80667e4..dd73bb4e1b 100644
--- a/config/environments/production.rb
+++ b/config/environments/production.rb
@@ -47,7 +47,7 @@ Rails.application.configure do
config.force_ssl = true
config.ssl_options = {
redirect: {
- exclude: -> request { request.path.start_with?('/health') || request.headers["Host"].end_with?('.onion') }
+ exclude: -> request { request.path.start_with?('/health') || request.headers["Host"].end_with?('.onion') || request.headers["Host"].end_with?('.i2p') }
}
}
diff --git a/config/i18n-tasks.yml b/config/i18n-tasks.yml
index 7139bcea7c..6117e6e5bc 100644
--- a/config/i18n-tasks.yml
+++ b/config/i18n-tasks.yml
@@ -40,7 +40,6 @@ ignore_missing:
- 'errors.messages.*'
- 'activerecord.errors.models.doorkeeper/*'
- 'sessions.{browsers,platforms}.*'
- - 'terms.body_html'
- 'application_mailer.salutation'
- 'errors.500'
- 'auth.providers.*'
diff --git a/config/initializers/http_client_proxy.rb b/config/initializers/http_client_proxy.rb
index 7a9b7b86d7..b29e9edd75 100644
--- a/config/initializers/http_client_proxy.rb
+++ b/config/initializers/http_client_proxy.rb
@@ -18,5 +18,22 @@ Rails.application.configure do
}.compact
end
+ if ENV['http_hidden_proxy'].present?
+ proxy = URI.parse(ENV['http_hidden_proxy'])
+
+ raise "Unsupported proxy type: #{proxy.scheme}" unless %w(http https).include? proxy.scheme
+ raise "No proxy host" unless proxy.host
+
+ host = proxy.host
+ host = host[1...-1] if host[0] == '[' # for IPv6 address
+
+ config.x.http_client_hidden_proxy[:proxy] = {
+ proxy_address: host,
+ proxy_port: proxy.port,
+ proxy_username: proxy.user,
+ proxy_password: proxy.password,
+ }.compact
+ end
+
config.x.access_to_hidden_service = ENV['ALLOW_ACCESS_TO_HIDDEN_SERVICE'] == 'true'
end
diff --git a/config/initializers/inflections.rb b/config/initializers/inflections.rb
index 9bc9a54b2d..a361cb0ec3 100644
--- a/config/initializers/inflections.rb
+++ b/config/initializers/inflections.rb
@@ -24,6 +24,8 @@ ActiveSupport::Inflector.inflections(:en) do |inflect|
inflect.acronym 'RSS'
inflect.acronym 'REST'
inflect.acronym 'URL'
+ inflect.acronym 'ASCII'
+ inflect.acronym 'DeepL'
inflect.singular 'data', 'data'
end
diff --git a/config/initializers/locale.rb b/config/initializers/locale.rb
index fed182a71d..4bcb1854cb 100644
--- a/config/initializers/locale.rb
+++ b/config/initializers/locale.rb
@@ -1,7 +1,9 @@
# frozen_string_literal: true
-I18n.load_path += Dir[Rails.root.join('app', 'javascript', 'flavours', '*', 'names.{rb,yml}').to_s]
-I18n.load_path += Dir[Rails.root.join('app', 'javascript', 'flavours', '*', 'names', '*.{rb,yml}').to_s]
-I18n.load_path += Dir[Rails.root.join('app', 'javascript', 'skins', '*', '*', 'names.{rb,yml}').to_s]
-I18n.load_path += Dir[Rails.root.join('app', 'javascript', 'skins', '*', '*', 'names', '*.{rb,yml}').to_s]
-I18n.load_path += Dir[Rails.root.join('config', 'locales-glitch', '*.{rb,yml}').to_s]
+Rails.application.configure do
+ config.i18n.load_path += Dir[Rails.root.join('app', 'javascript', 'flavours', '*', 'names.{rb,yml}').to_s]
+ config.i18n.load_path += Dir[Rails.root.join('app', 'javascript', 'flavours', '*', 'names', '*.{rb,yml}').to_s]
+ config.i18n.load_path += Dir[Rails.root.join('app', 'javascript', 'skins', '*', '*', 'names.{rb,yml}').to_s]
+ config.i18n.load_path += Dir[Rails.root.join('app', 'javascript', 'skins', '*', '*', 'names', '*.{rb,yml}').to_s]
+ config.i18n.load_path += Dir[Rails.root.join('config', 'locales-glitch', '*.{rb,yml}').to_s]
+end
diff --git a/config/initializers/sidekiq.rb b/config/initializers/sidekiq.rb
index c1327053df..9d2abf0745 100644
--- a/config/initializers/sidekiq.rb
+++ b/config/initializers/sidekiq.rb
@@ -35,4 +35,5 @@ SidekiqUniqueJobs.configure do |config|
config.reaper_count = 1000
config.reaper_interval = 600
config.reaper_timeout = 150
+ config.lock_ttl = 50.days.to_i
end
diff --git a/config/locales-glitch/simple_form.en.yml b/config/locales-glitch/simple_form.en.yml
index c9ef409962..fd1c64bbb3 100644
--- a/config/locales-glitch/simple_form.en.yml
+++ b/config/locales-glitch/simple_form.en.yml
@@ -3,6 +3,7 @@ en:
simple_form:
hints:
defaults:
+ fields: You can have up to %{count} items displayed as a table on your profile
setting_default_content_type_html: When writing toots, assume they are written in raw HTML, unless specified otherwise
setting_default_content_type_markdown: When writing toots, assume they are using Markdown for rich text formatting, unless specified otherwise
setting_default_content_type_plain: When writing toots, assume they are plain text with no special formatting, unless specified otherwise (default Mastodon behavior)
diff --git a/config/locales/activerecord.af.yml b/config/locales/activerecord.af.yml
index 8882df613e..dff778d571 100644
--- a/config/locales/activerecord.af.yml
+++ b/config/locales/activerecord.af.yml
@@ -21,6 +21,14 @@ af:
username:
invalid: moet slegs letters, nommers en onderstrepe bevat
reserved: is gereserveer
+ admin/webhook:
+ attributes:
+ url:
+ invalid: is nie 'n geldige URL nie
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: is nie 'n geldige URL nie
status:
attributes:
reblog:
@@ -30,3 +38,9 @@ af:
email:
blocked: maak gebruik van 'n e-pos verskaffer wat nie toegelaat word nie
unreachable: blyk nie te bestaan nie
+ user_role:
+ attributes:
+ permissions_as_keys:
+ own_role: kan nie verander word met jou huidige rol nie
+ position:
+ own_role: kan nie verander word met jou huidige rol nie
diff --git a/config/locales/activerecord.ast.yml b/config/locales/activerecord.ast.yml
index 4f7c734d90..d35b95dfc2 100644
--- a/config/locales/activerecord.ast.yml
+++ b/config/locales/activerecord.ast.yml
@@ -9,3 +9,13 @@ ast:
username: Nome d'usuariu
user/invite_request:
text: Motivu
+ errors:
+ models:
+ admin/webhook:
+ attributes:
+ url:
+ invalid: nun ye una URL válida
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: nun ye una URL válida
diff --git a/config/locales/activerecord.ca.yml b/config/locales/activerecord.ca.yml
index 03b594c0a0..5f109c2c1a 100644
--- a/config/locales/activerecord.ca.yml
+++ b/config/locales/activerecord.ca.yml
@@ -21,6 +21,18 @@ ca:
username:
invalid: només pot contenir lletres, números i guions baixos
reserved: està reservat
+ admin/webhook:
+ attributes:
+ url:
+ invalid: no és una URL vàlida
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: no és una URL vàlida
+ import:
+ attributes:
+ data:
+ malformed: està mal format
status:
attributes:
reblog:
@@ -30,3 +42,14 @@ ca:
email:
blocked: utilitza un proveïdor de correu electrònic no autoritzat
unreachable: sembla que no existeix
+ role_id:
+ elevated: no pot ser superior que el teu rol actual
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: inclou permisos que no són segurs per al rol base
+ elevated: no pot incloure permisos que el teu rol actual no té
+ own_role: no es pot canviar amb el teu rol actual
+ position:
+ elevated: no pot ser superior al teu rol actual
+ own_role: no pot ser canviat amb el teu rol actual
diff --git a/config/locales/activerecord.cs.yml b/config/locales/activerecord.cs.yml
index bd0b28efb3..5505254e5f 100644
--- a/config/locales/activerecord.cs.yml
+++ b/config/locales/activerecord.cs.yml
@@ -21,6 +21,14 @@ cs:
username:
invalid: musí obsahovat pouze písmena, číslice a podtržítka
reserved: je vyhrazeno
+ admin/webhook:
+ attributes:
+ url:
+ invalid: není platná URL
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: není platná URL
status:
attributes:
reblog:
@@ -30,3 +38,14 @@ cs:
email:
blocked: používá zakázanou e-mailovou službu
unreachable: pravděpodobně neexistuje
+ role_id:
+ elevated: nemůže být vyšší než vaše aktuální role
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: obsahuje oprávnění, která nejsou bezpečná pro základní roli
+ elevated: nemůže obsahovat oprávnění, která vaše aktuální role nemá
+ own_role: nelze změnit s vaší aktuální rolí
+ position:
+ elevated: nemůže být vyšší než vaše aktuální role
+ own_role: nelze změnit s vaší aktuální rolí
diff --git a/config/locales/activerecord.da.yml b/config/locales/activerecord.da.yml
index 081f4af76f..33d86e2962 100644
--- a/config/locales/activerecord.da.yml
+++ b/config/locales/activerecord.da.yml
@@ -21,6 +21,14 @@ da:
username:
invalid: må kun indeholde cifre, bogstaver og understreger
reserved: er reserveret
+ admin/webhook:
+ attributes:
+ url:
+ invalid: "'er ikke en gyldig URL"
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: "'er ikke en gyldig URL"
status:
attributes:
reblog:
@@ -30,3 +38,13 @@ da:
email:
blocked: bruger en ikke-tilladt e-mailudbyder
unreachable: ser ikke ud til at eksistere
+ role_id:
+ elevated: kan ikke være højere end din aktuelle rolle
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: omfat tilladelser, som ikke er sikre for basisrollen
+ elevated: kan ikke omfatte tilladelser, din aktuelle rolle ikke besidder
+ own_role: kan ikke ændres med din aktuelle rolle
+ position:
+ elevated: kan ikke være højere end din aktuelle rolle
diff --git a/config/locales/activerecord.de.yml b/config/locales/activerecord.de.yml
index 31c410fa35..d3c013dc0f 100644
--- a/config/locales/activerecord.de.yml
+++ b/config/locales/activerecord.de.yml
@@ -21,6 +21,14 @@ de:
username:
invalid: nur Buchstaben, Ziffern und Unterstriche
reserved: ist reserviert
+ admin/webhook:
+ attributes:
+ url:
+ invalid: ist keine gültige URL
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: ist keine gültige URL
status:
attributes:
reblog:
@@ -30,3 +38,14 @@ de:
email:
blocked: verwendet einen nicht erlaubten E-Mail-Anbieter
unreachable: scheint nicht zu existieren
+ role_id:
+ elevated: Kann nicht höher als Ihre aktuelle Rolle sein
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: enthalte Berechtigungen, die für die Basisrolle nicht sicher sind
+ elevated: kann keine Berechtigungen enthalten, die deine aktuelle Rolle nicht besitzt
+ own_role: kann nicht mit deiner aktuellen Rolle geändert werden
+ position:
+ elevated: kann nicht höher sein als deine aktuelle Rolle
+ own_role: kann nicht mit deiner aktuellen Rolle geändert werden
diff --git a/config/locales/activerecord.el.yml b/config/locales/activerecord.el.yml
index 67ce1758e5..77d0c2716a 100644
--- a/config/locales/activerecord.el.yml
+++ b/config/locales/activerecord.el.yml
@@ -30,3 +30,9 @@ el:
email:
blocked: χρησιμοποιεί μη επιτρεπόμενο πάροχο e-mail
unreachable: δεν φαίνεται να υπάρχει
+ user_role:
+ attributes:
+ permissions_as_keys:
+ own_role: δεν μπορεί να αλλάξει με τον τρέχοντα ρόλο σας
+ position:
+ own_role: δεν μπορεί να αλλάξει με τον τρέχοντα ρόλο σας
diff --git a/config/locales/activerecord.en-GB.yml b/config/locales/activerecord.en-GB.yml
new file mode 100644
index 0000000000..ef03d18104
--- /dev/null
+++ b/config/locales/activerecord.en-GB.yml
@@ -0,0 +1 @@
+en-GB:
diff --git a/config/locales/activerecord.en.yml b/config/locales/activerecord.en.yml
index 720b0f5e30..8aee15659f 100644
--- a/config/locales/activerecord.en.yml
+++ b/config/locales/activerecord.en.yml
@@ -29,6 +29,10 @@ en:
attributes:
website:
invalid: is not a valid URL
+ import:
+ attributes:
+ data:
+ malformed: is malformed
status:
attributes:
reblog:
@@ -38,3 +42,14 @@ en:
email:
blocked: uses a disallowed e-mail provider
unreachable: does not seem to exist
+ role_id:
+ elevated: cannot be higher than your current role
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: include permissions that are not safe for the base role
+ elevated: cannot include permissions your current role does not possess
+ own_role: cannot be changed with your current role
+ position:
+ elevated: cannot be higher than your current role
+ own_role: cannot be changed with your current role
diff --git a/config/locales/activerecord.es-AR.yml b/config/locales/activerecord.es-AR.yml
index 9d6a479a72..e00b806962 100644
--- a/config/locales/activerecord.es-AR.yml
+++ b/config/locales/activerecord.es-AR.yml
@@ -21,6 +21,18 @@ es-AR:
username:
invalid: sólo letras, números y subguiones ("_")
reserved: está reservado
+ admin/webhook:
+ attributes:
+ url:
+ invalid: no es una dirección web válida
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: no es una dirección web válida
+ import:
+ attributes:
+ data:
+ malformed: está malformado
status:
attributes:
reblog:
@@ -30,3 +42,14 @@ es-AR:
email:
blocked: usa un proveedor de correo electrónico no permitido
unreachable: no parece existir
+ role_id:
+ elevated: no puede ser mayor que tu rol actual
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: incluir permisos que no son seguros para el rol base
+ elevated: no se pueden incluir permisos que tu rol actual no posea
+ own_role: no se puede cambiar con tu rol actual
+ position:
+ elevated: no puede ser mayor que tu rol actual
+ own_role: no se puede cambiar con tu rol actual
diff --git a/config/locales/activerecord.es-MX.yml b/config/locales/activerecord.es-MX.yml
index c316a70a7a..c7283aafd5 100644
--- a/config/locales/activerecord.es-MX.yml
+++ b/config/locales/activerecord.es-MX.yml
@@ -21,6 +21,14 @@ es-MX:
username:
invalid: solo puede contener letras, números y guiones bajos
reserved: está reservado
+ admin/webhook:
+ attributes:
+ url:
+ invalid: no es una URL válida
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: no es una URL válida
status:
attributes:
reblog:
@@ -30,3 +38,14 @@ es-MX:
email:
blocked: utiliza un proveedor de correo no autorizado
unreachable: no parece existir
+ role_id:
+ elevated: no puede ser mayor que tu rol actual
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: incluir permisos que no son seguros para el rol base
+ elevated: no se pueden incluir permisos que tu rol actual no posea
+ own_role: no se puede cambiar con tu rol actual
+ position:
+ elevated: no puede ser mayor que tu rol actual
+ own_role: no se puede cambiar con tu rol actual
diff --git a/config/locales/activerecord.es.yml b/config/locales/activerecord.es.yml
index 0c4d6e5cf6..4aec0f074f 100644
--- a/config/locales/activerecord.es.yml
+++ b/config/locales/activerecord.es.yml
@@ -21,6 +21,14 @@ es:
username:
invalid: solo puede contener letras, números y guiones bajos
reserved: está reservado
+ admin/webhook:
+ attributes:
+ url:
+ invalid: no es una URL válida
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: no es una URL válida
status:
attributes:
reblog:
@@ -30,3 +38,14 @@ es:
email:
blocked: utiliza un proveedor de correo no autorizado
unreachable: no parece existir
+ role_id:
+ elevated: no puede ser mayor que tu rol actual
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: incluir permisos que no son seguros para el rol base
+ elevated: no se pueden incluir permisos que tu rol actual no posea
+ own_role: no se puede cambiar con tu rol actual
+ position:
+ elevated: no puede ser mayor que tu rol actual
+ own_role: no se puede cambiar con tu rol actual
diff --git a/config/locales/activerecord.fi.yml b/config/locales/activerecord.fi.yml
index 40dd81812e..f9798cabe4 100644
--- a/config/locales/activerecord.fi.yml
+++ b/config/locales/activerecord.fi.yml
@@ -21,6 +21,14 @@ fi:
username:
invalid: saa sisältää vain kirjaimia, numeroita ja alaviivoja
reserved: on varattu
+ admin/webhook:
+ attributes:
+ url:
+ invalid: ei ole kelvollinen URL
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: ei ole kelvollinen URL
status:
attributes:
reblog:
@@ -30,3 +38,14 @@ fi:
email:
blocked: käyttää kiellettyä sähköpostipalvelun tarjoajaa
unreachable: ei näytä olevan olemassa
+ role_id:
+ elevated: ei voi olla korkeampi kuin nykyinen roolisi
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: sisältää oikeudet, jotka eivät ole turvallisia perusroolille
+ elevated: ei voi sisältää oikeuksia, joita nykyisellä roolillasi ei ole
+ own_role: ei voi muuttaa nykyisellä roolillasi
+ position:
+ elevated: ei voi olla korkeampi kuin nykyinen roolisi
+ own_role: ei voi muuttaa nykyisellä roolillasi
diff --git a/config/locales/activerecord.fr.yml b/config/locales/activerecord.fr.yml
index 34cf0b837a..cc650cec83 100644
--- a/config/locales/activerecord.fr.yml
+++ b/config/locales/activerecord.fr.yml
@@ -21,6 +21,14 @@ fr:
username:
invalid: seulement des lettres, des nombres et des tirets bas
reserved: est réservé
+ admin/webhook:
+ attributes:
+ url:
+ invalid: n’est pas une URL valide
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: n’est pas une URL valide
status:
attributes:
reblog:
@@ -30,3 +38,14 @@ fr:
email:
blocked: utilise un fournisseur de courriel interdit
unreachable: ne semble pas exister
+ role_id:
+ elevated: ne peut pas être supérieur à votre rôle actuel
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: inclure des autorisations non sécurisées pour le rôle de base
+ elevated: ne peut pas inclure des autorisations que votre rôle actuel ne possède pas
+ own_role: ne peut pas être modifié avec votre rôle actuel
+ position:
+ elevated: ne peut pas être supérieur à votre rôle actuel
+ own_role: ne peut pas être modifié avec votre rôle actuel
diff --git a/config/locales/activerecord.gd.yml b/config/locales/activerecord.gd.yml
index 2920b561ef..b210144eff 100644
--- a/config/locales/activerecord.gd.yml
+++ b/config/locales/activerecord.gd.yml
@@ -21,6 +21,14 @@ gd:
username:
invalid: "– chan fhaod ach litrichean gun sràcan, àireamhan ’s fo-loidhnichean a bhith ’na bhroinn"
reserved: "– tha e glèidhte"
+ admin/webhook:
+ attributes:
+ url:
+ invalid: "– chan eil seo ’na URL dligheach"
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: "– chan eil seo ’na URL dligheach"
status:
attributes:
reblog:
@@ -30,3 +38,14 @@ gd:
email:
blocked: "– tha seo a’ chleachdadh solaraiche puist-d nach eil ceadaichte"
unreachable: "– tha coltas nach eil seo ann"
+ role_id:
+ elevated: "– chan fhaod seo a bhith nas àirde na an dreuchd a th’ agad an-dràsta"
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: gabh a-staigh na ceadan nach eil sàbhailte dhan bhun-dreuchd
+ elevated: chan urrainn dhut ceadan a ghabhail a-staigh nach eil aig an dreuchd a th’ agad an-dràsta
+ own_role: cha ghabh seo atharrachadh leis an dreuchd a th’ agad an-dràsta
+ position:
+ elevated: chan fhaod seo a bhith nas àirde na an dreuchd a th’ agad an-dràsta
+ own_role: cha ghabh seo atharrachadh leis an dreuchd a th’ agad an-dràsta
diff --git a/config/locales/activerecord.gl.yml b/config/locales/activerecord.gl.yml
index cbdd801e5a..9393008949 100644
--- a/config/locales/activerecord.gl.yml
+++ b/config/locales/activerecord.gl.yml
@@ -21,6 +21,18 @@ gl:
username:
invalid: só letras, números e trazo baixo
reserved: está reservado
+ admin/webhook:
+ attributes:
+ url:
+ invalid: non é un URL válido
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: non é un URL válido
+ import:
+ attributes:
+ data:
+ malformed: ten formato incorrecto
status:
attributes:
reblog:
@@ -30,3 +42,14 @@ gl:
email:
blocked: utiliza un provedor de email non autorizado
unreachable: semella que non existe
+ role_id:
+ elevated: non pode superar o teu rol actual
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: inclúe permisos que non son seguros para o rol básico
+ elevated: non pode incluir permisos que o teu rol actual non posúe
+ own_role: non pode ser modificado co teu rol actual
+ position:
+ elevated: non pode superar ao teu rol actual
+ own_role: non pode ser modificado co teu rol actual
diff --git a/config/locales/activerecord.he.yml b/config/locales/activerecord.he.yml
index 5dc8ddc962..7a9d54cd24 100644
--- a/config/locales/activerecord.he.yml
+++ b/config/locales/activerecord.he.yml
@@ -21,6 +21,14 @@ he:
username:
invalid: ספרות, אותיות לטיניות וקו תחתי בלבד
reserved: שמור
+ admin/webhook:
+ attributes:
+ url:
+ invalid: כתובת לא חוקית
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: הינה כתובת לא חוקית
status:
attributes:
reblog:
@@ -30,3 +38,14 @@ he:
email:
blocked: עושה שימוש בספק דוא"ל אסור
unreachable: נראה שלא קיים
+ role_id:
+ elevated: לא יכול להיות גבוה יותר מתפקידך הנוכחי
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: כלול הרשאות לא בטוחות לתפקיד הבסיסי
+ elevated: לא ניתן לכלול הרשאות שתפקידך הנוכחי לא כולל
+ own_role: לא ניתן למזג על תפקידך הנוכחי
+ position:
+ elevated: לא יכול להיות גבוה יותר מתפקידך הנוכחי
+ own_role: לא ניתן לשנות באמצעות תפקידך הנוכחי
diff --git a/config/locales/activerecord.hu.yml b/config/locales/activerecord.hu.yml
index ac8cfd7731..44340b3e91 100644
--- a/config/locales/activerecord.hu.yml
+++ b/config/locales/activerecord.hu.yml
@@ -21,6 +21,14 @@ hu:
username:
invalid: csak betűket, számokat vagy alávonást tartalmazhat
reserved: fenntartott
+ admin/webhook:
+ attributes:
+ url:
+ invalid: nem érvényes URL
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: nem érvényes URL
status:
attributes:
reblog:
@@ -30,3 +38,14 @@ hu:
email:
blocked: egy letiltott e-mail szolgáltatót használ
unreachable: úgy tűnik, hogy nem létezik
+ role_id:
+ elevated: nem lehet magasabb, mint a jelenlegi szereped
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: tartalmaz olyan engedélyeket is, melyek az alap szerephez nem biztonságosak
+ elevated: nem tartalmazhat olyan engedélyeket, melyek nincsenek benne a jelenlegi szerepedben
+ own_role: nem megváltoztatható a jelenlegi szerepköröddel
+ position:
+ elevated: nem lehet magasabb, mint a jelenlegi szereped
+ own_role: nem megváltoztatható a jelenlegi szerepköröddel
diff --git a/config/locales/activerecord.id.yml b/config/locales/activerecord.id.yml
index dc90c13220..88fdb3f756 100644
--- a/config/locales/activerecord.id.yml
+++ b/config/locales/activerecord.id.yml
@@ -21,6 +21,14 @@ id:
username:
invalid: hanya boleh berisi huruf, angka, dan garis bawah
reserved: sudah dipesan
+ admin/webhook:
+ attributes:
+ url:
+ invalid: bukan URL valid
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: bukan URL valid
status:
attributes:
reblog:
diff --git a/config/locales/activerecord.io.yml b/config/locales/activerecord.io.yml
index 38304ef935..5c809ce2e1 100644
--- a/config/locales/activerecord.io.yml
+++ b/config/locales/activerecord.io.yml
@@ -21,6 +21,14 @@ io:
username:
invalid: mustas konsistar nur literi, nombri e sublinei
reserved: rezervitas
+ admin/webhook:
+ attributes:
+ url:
+ invalid: ne esas valida URL
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: ne esas valida URL
status:
attributes:
reblog:
@@ -30,3 +38,14 @@ io:
email:
blocked: uzas nepermisata retpostodomeno
unreachable: semblas ne existar
+ role_id:
+ elevated: ne povas divenar plu alta kam vua nuna rolo
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: inkluzas permisi quo ne esas segura por bazrolo
+ elevated: ne povas inkluzar permisi quon vua nuna rolo ne havas
+ own_role: ne povas divenesar kun vua nuna rolo
+ position:
+ elevated: ne povas divenar plu alta kam vua nuna rolo
+ own_role: ne povas divenesar kun vua nuna rolo
diff --git a/config/locales/activerecord.is.yml b/config/locales/activerecord.is.yml
index 8ecb02e744..fa3406fe33 100644
--- a/config/locales/activerecord.is.yml
+++ b/config/locales/activerecord.is.yml
@@ -21,6 +21,18 @@ is:
username:
invalid: má aðeins innihalda bókstafi, tölur og undirstrik
reserved: er frátekið
+ admin/webhook:
+ attributes:
+ url:
+ invalid: er ekki gild vefslóð
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: er ekki gild vefslóð
+ import:
+ attributes:
+ data:
+ malformed: er rangt formað
status:
attributes:
reblog:
@@ -30,3 +42,14 @@ is:
email:
blocked: notar óleyfilega tölvupóstþjónustu
unreachable: virðist ekki vera til
+ role_id:
+ elevated: getur ekki verið veigameiri en núverandi hlutverk þitt
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: hefur heimildir sem ekki eru öruggar fyrir grunnhlutverk
+ elevated: getur ekki haft heimildir sem núverandi hlutverk þitt er ekki með
+ own_role: er ekki hægt að breyta með þinu hlutverki
+ position:
+ elevated: getur ekki verið veigameiri en núverandi hlutverk þitt
+ own_role: er ekki hægt að breyta með þinu hlutverki
diff --git a/config/locales/activerecord.it.yml b/config/locales/activerecord.it.yml
index c6587f1fd8..ef2319520f 100644
--- a/config/locales/activerecord.it.yml
+++ b/config/locales/activerecord.it.yml
@@ -21,6 +21,18 @@ it:
username:
invalid: solo lettere, numeri e trattini bassi
reserved: è riservato
+ admin/webhook:
+ attributes:
+ url:
+ invalid: non è un URL valido
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: non è un URL valido
+ import:
+ attributes:
+ data:
+ malformed: è malformato
status:
attributes:
reblog:
@@ -30,3 +42,14 @@ it:
email:
blocked: utilizza un provider di posta elettronica non autorizzato
unreachable: non sembra esistere
+ role_id:
+ elevated: non può essere superiore al tuo ruolo attuale
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: include i permessi non sicuri per il ruolo di base
+ elevated: non è possibile includere i permessi che il tuo ruolo attuale non possiede
+ own_role: non può essere modificato con il tuo ruolo attuale
+ position:
+ elevated: non può essere superiore al tuo ruolo attuale
+ own_role: non può essere modificato con il tuo ruolo attuale
diff --git a/config/locales/activerecord.ja.yml b/config/locales/activerecord.ja.yml
index ab13dce6cb..3f25607b1f 100644
--- a/config/locales/activerecord.ja.yml
+++ b/config/locales/activerecord.ja.yml
@@ -21,6 +21,14 @@ ja:
username:
invalid: アルファベット・数字・アンダーバーの組み合わせで入力してください
reserved: は予約されています
+ admin/webhook:
+ attributes:
+ url:
+ invalid: は無効なURLです
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: は無効なURLです
status:
attributes:
reblog:
@@ -30,3 +38,14 @@ ja:
email:
blocked: は禁止されているメールプロバイダを使用しています
unreachable: は存在しないようです
+ role_id:
+ elevated: 現在と同じロールには変更できません
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: 基本ロールにとって安全でない権限を含みます
+ elevated: 現在のロールが所有していない権限は含めることはできません
+ own_role: 現在と同じロールには変更できません
+ position:
+ elevated: 現在と同じロールには変更できません
+ own_role: 現在と同じロールには変更できません
diff --git a/config/locales/activerecord.ko.yml b/config/locales/activerecord.ko.yml
index 07f8a39f77..9697215b59 100644
--- a/config/locales/activerecord.ko.yml
+++ b/config/locales/activerecord.ko.yml
@@ -21,6 +21,18 @@ ko:
username:
invalid: 영문자, 숫자, _만 사용 가능
reserved: 이미 예약되어 있습니다
+ admin/webhook:
+ attributes:
+ url:
+ invalid: 올바른 URL이 아닙니다
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: 올바른 URL이 아닙니다
+ import:
+ attributes:
+ data:
+ malformed: 데이터가 올바르지 않습니다
status:
attributes:
reblog:
@@ -30,3 +42,14 @@ ko:
email:
blocked: 허용되지 않은 이메일 제공자입니다
unreachable: 존재하지 않는 것 같습니다
+ role_id:
+ elevated: 당신의 현재 역할보다 높을 수 없습니다
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: 기본 역할로 사용하기에 안전하지 않은 권한을 포함하고 있습니다
+ elevated: 당신의 현재 역할이 가지고 있지 않은 권한은 포함할 수 없습니다
+ own_role: 당신의 현재 역할을 변경할 수 없습니다
+ position:
+ elevated: 당신의 현재 역할보다 높을 수 없습니다
+ own_role: 당신의 현재 역할을 변경할 수 없습니다
diff --git a/config/locales/activerecord.ku.yml b/config/locales/activerecord.ku.yml
index 340b7a777c..3eec2950cf 100644
--- a/config/locales/activerecord.ku.yml
+++ b/config/locales/activerecord.ku.yml
@@ -21,6 +21,14 @@ ku:
username:
invalid: pêdivî ye ku tenê tîp, hejmar û xêzikên jêrîn hebin
reserved: hatiye bikaranîn
+ admin/webhook:
+ attributes:
+ url:
+ invalid: ev girêdaneke nederbasdar e
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: ev girêdaneke nederbasdar e
status:
attributes:
reblog:
@@ -30,3 +38,14 @@ ku:
email:
blocked: dabînkerê e-nameya qedexe bi kar tîne
unreachable: xuya ye ku tune ye
+ role_id:
+ elevated: nabe ku ji rola te ya heyî bilindtir be
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: mafdayînên ku ji bo rola bingehîn ne ewle ne tê de hene
+ elevated: di rola te ya heyî de nabe mafdayîn tê de hebin
+ own_role: bi rola te ya heyî nayê guhertin
+ position:
+ elevated: nabe ku ji rola te ya heyî bilindtir be
+ own_role: bi rola te ya heyî nayê guhertin
diff --git a/config/locales/activerecord.lv.yml b/config/locales/activerecord.lv.yml
index ad9fa66045..649cdeedd0 100644
--- a/config/locales/activerecord.lv.yml
+++ b/config/locales/activerecord.lv.yml
@@ -3,7 +3,7 @@ lv:
activerecord:
attributes:
poll:
- expires_at: Deadline
+ expires_at: Gala termiņš
options: Izvēles
user:
agreement: Pakalpojuma līgums
@@ -21,6 +21,18 @@ lv:
username:
invalid: drīkst saturēt tikai burtus, ciparus un pasvītras
reserved: ir rezervēts
+ admin/webhook:
+ attributes:
+ url:
+ invalid: nav derīgs URL
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: nav derīgs URL
+ import:
+ attributes:
+ data:
+ malformed: ir nepareizi veidots
status:
attributes:
reblog:
@@ -30,3 +42,14 @@ lv:
email:
blocked: lieto neatļautu epasta pakalpojuma sniedzēju
unreachable: šķiet, ka neeksistē
+ role_id:
+ elevated: nevar būt augstāka par tavu pašreizējo lomu
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: ietver atļaujas, kas nav drošas pamata lomai
+ elevated: nevar ietvert atļaujas, kas nepieder tavai pašreizējai lomai
+ own_role: nevar mainīt pert tavu pašreizējo lomu
+ position:
+ elevated: nevar būt augstāka par tavu pašreizējo lomu
+ own_role: nevar mainīt pert tavu pašreizējo lomu
diff --git a/config/locales/activerecord.nl.yml b/config/locales/activerecord.nl.yml
index b5a1220011..0e1f824b79 100644
--- a/config/locales/activerecord.nl.yml
+++ b/config/locales/activerecord.nl.yml
@@ -21,6 +21,18 @@ nl:
username:
invalid: alleen letters, nummers en underscores
reserved: gereserveerd
+ admin/webhook:
+ attributes:
+ url:
+ invalid: is een ongeldige URL
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: is een ongeldige URL
+ import:
+ attributes:
+ data:
+ malformed: heeft de verkeerde opmaak
status:
attributes:
reblog:
@@ -30,3 +42,14 @@ nl:
email:
blocked: gebruikt een niet toegestane e-mailprovider
unreachable: schijnt niet te bestaan
+ role_id:
+ elevated: kan niet hoger zijn dan jouw huidige rol
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: rechten toevoegen die niet veilig zijn voor de basisrol
+ elevated: kan geen rechten toevoegen die jouw huidige rol niet bezit
+ own_role: kan niet met jouw huidige rol worden gewijzigd
+ position:
+ elevated: kan niet hoger zijn dan jouw huidige rol
+ own_role: kan niet met jouw huidige rol worden gewijzigd
diff --git a/config/locales/activerecord.nn.yml b/config/locales/activerecord.nn.yml
index f23f9ae6c1..ce37d1856e 100644
--- a/config/locales/activerecord.nn.yml
+++ b/config/locales/activerecord.nn.yml
@@ -6,11 +6,12 @@ nn:
expires_at: Frist
options: Val
user:
- email: E-mail address
+ agreement: Serviceavtale
+ email: Epostadresse
locale: Område
password: Passord
user/account:
- username: Brukernavn
+ username: Brukarnamn
user/invite_request:
text: Grunn
errors:
@@ -18,9 +19,32 @@ nn:
account:
attributes:
username:
- invalid: bare bokstaver, tall og understreker
+ invalid: må innehalde kun bokstavar, tal og understrekar
reserved: er reservert
+ admin/webhook:
+ attributes:
+ url:
+ invalid: er ikkje ein gyldig URL
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: er ikkje ein gyldig URL
status:
attributes:
reblog:
- taken: av status eksisterer allerede
+ taken: av innlegg eksisterer allereie
+ user:
+ attributes:
+ email:
+ unreachable: ser ikkje ut til å eksistere
+ role_id:
+ elevated: kan ikkje vere høgare enn di noverande rolle
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: inkluder tillatingar som ikkje er trygge for basisrolla
+ elevated: kan ikkje inkludere rettigheiter di noverande rolle ikkje innehar
+ own_role: kan ikkje endrast med di noverande rolle
+ position:
+ elevated: kan ikkje vere høgare enn di noverande rolle
+ own_role: kan ikkje endrast med di noverande rolle
diff --git a/config/locales/activerecord.pl.yml b/config/locales/activerecord.pl.yml
index c7b1e7faba..68d0b77847 100644
--- a/config/locales/activerecord.pl.yml
+++ b/config/locales/activerecord.pl.yml
@@ -21,6 +21,14 @@ pl:
username:
invalid: może składać się tylko z liter, cyfr i podkreślników
reserved: jest zarezerwowana
+ admin/webhook:
+ attributes:
+ url:
+ invalid: nie jest poprawnym adresem URL
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: nie jest poprawnym adresem URL
status:
attributes:
reblog:
@@ -30,3 +38,14 @@ pl:
email:
blocked: używa niedozwolonego dostawcy poczty elektronicznej
unreachable: wydaje się nie istnieć
+ role_id:
+ elevated: nie może być wyższa niż twoja bieżąca rola
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: dołącz uprawnienia, które nie są bezpieczne dla roli podstawowej
+ elevated: nie może zawierać uprawnień, jakie twoja obecna rola nie posiada
+ own_role: nie można zmienić z aktualną rolą
+ position:
+ elevated: nie może być wyższa niż twoja bieżąca rola
+ own_role: nie można zmienić z aktualną rolą
diff --git a/config/locales/activerecord.pt-BR.yml b/config/locales/activerecord.pt-BR.yml
index 8b4d3439ad..105f5a550c 100644
--- a/config/locales/activerecord.pt-BR.yml
+++ b/config/locales/activerecord.pt-BR.yml
@@ -21,6 +21,14 @@ pt-BR:
username:
invalid: apenas letras, números e underlines ( "_" )
reserved: já existe
+ admin/webhook:
+ attributes:
+ url:
+ invalid: não é uma URL válida
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: não é uma URL válida
status:
attributes:
reblog:
@@ -30,3 +38,13 @@ pt-BR:
email:
blocked: usa provedor de e-mail não permitido
unreachable: parece não existir
+ role_id:
+ elevated: não pode ser maior do que sua função atual
+ user_role:
+ attributes:
+ permissions_as_keys:
+ elevated: não pode incluir permissões que a sua função atual não possui
+ own_role: não pode ser alterado com sua função atual
+ position:
+ elevated: não pode ser maior do que sua função atual
+ own_role: não pode ser alterado com sua função atual
diff --git a/config/locales/activerecord.pt-PT.yml b/config/locales/activerecord.pt-PT.yml
index 17c199ea87..388e21fe17 100644
--- a/config/locales/activerecord.pt-PT.yml
+++ b/config/locales/activerecord.pt-PT.yml
@@ -21,6 +21,18 @@ pt-PT:
username:
invalid: apenas letras, números e underscores
reserved: está reservado
+ admin/webhook:
+ attributes:
+ url:
+ invalid: não é um URL válido
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: não é um URL válido
+ import:
+ attributes:
+ data:
+ malformed: está malformado
status:
attributes:
reblog:
@@ -30,3 +42,14 @@ pt-PT:
email:
blocked: utiliza um provedor de e-mail não permitido
unreachable: não parece existir
+ role_id:
+ elevated: não pode ser maior que o da sua função atual
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: incluir permissões que não são seguras para a função base
+ elevated: não pode incluir permissões que a sua função atual não possui
+ own_role: não pode ser alterado com a sua função atual
+ position:
+ elevated: não pode ser maior que o da sua função atual
+ own_role: não pode ser alterado com a sua função atual
diff --git a/config/locales/activerecord.ru.yml b/config/locales/activerecord.ru.yml
index 2f92105195..fb8c6dde51 100644
--- a/config/locales/activerecord.ru.yml
+++ b/config/locales/activerecord.ru.yml
@@ -21,6 +21,14 @@ ru:
username:
invalid: только буквы, цифры и символ подчёркивания
reserved: зарезервировано
+ admin/webhook:
+ attributes:
+ url:
+ invalid: не является допустимым URL
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: не является допустимым URL
status:
attributes:
reblog:
@@ -30,3 +38,14 @@ ru:
email:
blocked: использует запрещённого провайдера эл. почты
unreachable: не существует
+ role_id:
+ elevated: не может быть выше вашей текущей роли
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: включить разрешения, небезопасные для базовой роли
+ elevated: не может включать разрешения, которыми не обладает ваша текущая роль
+ own_role: невозможно изменить с вашей текущей ролью
+ position:
+ elevated: не может быть выше, чем ваша текущая роль
+ own_role: невозможно изменить с вашей текущей ролью
diff --git a/config/locales/activerecord.sl.yml b/config/locales/activerecord.sl.yml
index d7fbb446de..255f5e1ed9 100644
--- a/config/locales/activerecord.sl.yml
+++ b/config/locales/activerecord.sl.yml
@@ -21,6 +21,14 @@ sl:
username:
invalid: samo črke, številke in podčrtaji
reserved: je rezerviran
+ admin/webhook:
+ attributes:
+ url:
+ invalid: ni veljaven URL
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: ni veljaven URL
status:
attributes:
reblog:
@@ -30,3 +38,14 @@ sl:
email:
blocked: uporablja nedovoljenega ponudnika e-poštnih storitev
unreachable: kot kaže ne obstaja
+ role_id:
+ elevated: ne more biti višje od vaše trenutne vloge
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: vključi pravice, ki niso varne za osnovno vlogo
+ elevated: ni mogoče vključiti pravic, ki jih vaša trenutna vloga ne vsebuje
+ own_role: ni mogoče spremeniti z vašo trenutno vlogo
+ position:
+ elevated: ne more biti višje od vaše trenutne vloge
+ own_role: ni mogoče spremeniti z vašo trenutno vlogo
diff --git a/config/locales/activerecord.sq.yml b/config/locales/activerecord.sq.yml
index 920b73e7a1..a4c8af15f8 100644
--- a/config/locales/activerecord.sq.yml
+++ b/config/locales/activerecord.sq.yml
@@ -21,6 +21,14 @@ sq:
username:
invalid: duhet të përmbajë vetëm shkronja, numra dhe nënvija
reserved: është i rezervuar
+ admin/webhook:
+ attributes:
+ url:
+ invalid: s’është URL e vlefshme
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: s’është URL
status:
attributes:
reblog:
@@ -30,3 +38,14 @@ sq:
email:
blocked: përdor një shërbim email të palejuar
unreachable: s’duket se ekziston
+ role_id:
+ elevated: s’mund të jetë më i lartë sesa roli juaj i tanishëm
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: përfshi leje që s’janë të parrezik për rolin bazë
+ elevated: s’mund të përfshijë leje të cilat roli juaj i tanishëm s’i përfshin
+ own_role: s’mund të ndryshohet me rolin tuaj të tanishëm
+ position:
+ elevated: s’mund të jetë më i lartë sesa roli juaj i tanishëm
+ own_role: s’mund të ndryshohet me rolin tuaj të tanishëm
diff --git a/config/locales/activerecord.sv.yml b/config/locales/activerecord.sv.yml
index 7c217efca8..89a7574635 100644
--- a/config/locales/activerecord.sv.yml
+++ b/config/locales/activerecord.sv.yml
@@ -21,6 +21,10 @@ sv:
username:
invalid: endast bokstäver, siffror och understrykning
reserved: är reserverat
+ import:
+ attributes:
+ data:
+ malformed: är felformad
status:
attributes:
reblog:
diff --git a/config/locales/activerecord.th.yml b/config/locales/activerecord.th.yml
index 26604ba5fe..64586f5bbe 100644
--- a/config/locales/activerecord.th.yml
+++ b/config/locales/activerecord.th.yml
@@ -21,6 +21,14 @@ th:
username:
invalid: ต้องมีเฉพาะตัวอักษร, ตัวเลข และขีดล่างเท่านั้น
reserved: ถูกสงวนไว้
+ admin/webhook:
+ attributes:
+ url:
+ invalid: ไม่ใช่ URL ที่ถูกต้อง
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: ไม่ใช่ URL ที่ถูกต้อง
status:
attributes:
reblog:
@@ -30,3 +38,14 @@ th:
email:
blocked: ใช้ผู้ให้บริการอีเมลที่ไม่ได้รับอนุญาต
unreachable: ดูเหมือนว่าจะไม่มีอยู่
+ role_id:
+ elevated: ไม่สามารถสูงกว่าบทบาทปัจจุบันของคุณ
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: รวมสิทธิอนุญาตที่ไม่ปลอดภัยสำหรับบทบาทพื้นฐาน
+ elevated: ไม่สามารถรวมสิทธิอนุญาตที่บทบาทปัจจุบันของคุณไม่มี
+ own_role: ไม่สามารถเปลี่ยนด้วยบทบาทปัจจุบันของคุณ
+ position:
+ elevated: ไม่สามารถสูงกว่าบทบาทปัจจุบันของคุณ
+ own_role: ไม่สามารถเปลี่ยนด้วยบทบาทปัจจุบันของคุณ
diff --git a/config/locales/activerecord.tr.yml b/config/locales/activerecord.tr.yml
index 890f065b1e..f0787dc415 100644
--- a/config/locales/activerecord.tr.yml
+++ b/config/locales/activerecord.tr.yml
@@ -21,6 +21,14 @@ tr:
username:
invalid: sadece harfler, sayılar ve alt çizgiler
reserved: kullanılamaz
+ admin/webhook:
+ attributes:
+ url:
+ invalid: geçerli bir URL değil
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: geçerli bir URL değil
status:
attributes:
reblog:
@@ -30,3 +38,14 @@ tr:
email:
blocked: izin verilmeyen bir e-posta sağlayıcı kullanıyor
unreachable: mevcut gözükmüyor
+ role_id:
+ elevated: mevcut rolünüzden yüksek olamaz
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: temel rol için güvenli olmayan izinleri içerir
+ elevated: mevcut rolünüzün sahip olmadığı izinleri içeremez
+ own_role: mevcut rolünüzle değiştirilemez
+ position:
+ elevated: mevcut rolünüzden yüksek olamaz
+ own_role: mevcut rolünüzle değiştirilemez
diff --git a/config/locales/activerecord.uk.yml b/config/locales/activerecord.uk.yml
index 38d4771b33..0f4973d897 100644
--- a/config/locales/activerecord.uk.yml
+++ b/config/locales/activerecord.uk.yml
@@ -21,6 +21,18 @@ uk:
username:
invalid: тільки літери, цифри та підкреслення
reserved: зарезервовано
+ admin/webhook:
+ attributes:
+ url:
+ invalid: не є дійсною URL-адресою
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: не є дійсною URL-адресою
+ import:
+ attributes:
+ data:
+ malformed: неправильний
status:
attributes:
reblog:
@@ -30,3 +42,14 @@ uk:
email:
blocked: використовує не дозволенного постачальника електронної пошти
unreachable: не існує
+ role_id:
+ elevated: не може бути вищою за поточну роль
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: включити небезпечні для базової ролі дозволи
+ elevated: не можна включити права, якими не володіє ваша поточна роль
+ own_role: не можна змінити у вашій поточній ролі
+ position:
+ elevated: не може бути вищою за поточну роль
+ own_role: не можна змінити у вашій поточній ролі
diff --git a/config/locales/activerecord.vi.yml b/config/locales/activerecord.vi.yml
index c0e989563b..ca3402f476 100644
--- a/config/locales/activerecord.vi.yml
+++ b/config/locales/activerecord.vi.yml
@@ -6,8 +6,8 @@ vi:
expires_at: Hạn chót
options: Lựa chọn
user:
- agreement: Đồng ý quy tắc
- email: Địa chỉ email
+ agreement: Thỏa thuận dịch vụ
+ email: Địa chỉ e-mail
locale: Quốc gia
password: Mật khẩu
user/account:
@@ -21,6 +21,18 @@ vi:
username:
invalid: chỉ chấp nhận ký tự, số và dấu gạch dưới
reserved: bị cấm sử dụng
+ admin/webhook:
+ attributes:
+ url:
+ invalid: không phải là một URL hợp lệ
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: không phải là một URL hợp lệ
+ import:
+ attributes:
+ data:
+ malformed: bị hỏng
status:
attributes:
reblog:
@@ -30,3 +42,14 @@ vi:
email:
blocked: sử dụng dịch vụ email bị cấm
unreachable: không tồn tại
+ role_id:
+ elevated: không thể cao hơn vai trò hiện tại của bạn
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: bao gồm các quyền không an toàn cho vai trò cơ bản
+ elevated: không thể bao gồm các quyền mà vai trò hiện tại của bạn không có
+ own_role: không thể thay đổi vai trò hiện tại của bạn
+ position:
+ elevated: không thể cao hơn vai trò hiện tại của bạn
+ own_role: không thể thay đổi vai trò hiện tại của bạn
diff --git a/config/locales/activerecord.zh-CN.yml b/config/locales/activerecord.zh-CN.yml
index 946e81893c..c46c874517 100644
--- a/config/locales/activerecord.zh-CN.yml
+++ b/config/locales/activerecord.zh-CN.yml
@@ -19,14 +19,33 @@ zh-CN:
account:
attributes:
username:
- invalid: 只能使用字母、数字和下划线
+ invalid: 只能包含字母、数字和下划线
reserved: 是保留关键字
+ admin/webhook:
+ attributes:
+ url:
+ invalid: 非有效网址
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: 非有效网址
status:
attributes:
reblog:
- taken: 已经被转嘟过
+ taken: 已被转嘟过
user:
attributes:
email:
blocked: 使用了被封禁的电子邮件提供商
unreachable: 似乎不存在
+ role_id:
+ elevated: 不能高于您当前的身份
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: 包含对基本角色不安全的权限
+ elevated: 不能包含您当前角色不拥有的权限
+ own_role: 无法以您当前的身份更改
+ position:
+ elevated: 不能高于您当前的角色
+ own_role: 无法以您当前的身份更改
diff --git a/config/locales/activerecord.zh-TW.yml b/config/locales/activerecord.zh-TW.yml
index c6856c386a..2548bdb234 100644
--- a/config/locales/activerecord.zh-TW.yml
+++ b/config/locales/activerecord.zh-TW.yml
@@ -21,6 +21,18 @@ zh-TW:
username:
invalid: 只能有字母、數字及底線
reserved: 是保留關鍵字
+ admin/webhook:
+ attributes:
+ url:
+ invalid: 不是有效的 URL
+ doorkeeper/application:
+ attributes:
+ website:
+ invalid: 不是有效的 URL
+ import:
+ attributes:
+ data:
+ malformed: 資料不正確
status:
attributes:
reblog:
@@ -30,3 +42,14 @@ zh-TW:
email:
blocked: 使用不被允許的電子信箱供應商
unreachable: 似乎不存在
+ role_id:
+ elevated: 不能高於您目前的角色
+ user_role:
+ attributes:
+ permissions_as_keys:
+ dangerous: 包含對基本角色不安全的權限
+ elevated: 不能包含您目前角色不具備的權限
+ own_role: 無法被您目前的角色更改
+ position:
+ elevated: 不能高於您目前的角色
+ own_role: 無法被您目前的角色更改
diff --git a/config/locales/af.yml b/config/locales/af.yml
index bc54cfdfd4..de85a69515 100644
--- a/config/locales/af.yml
+++ b/config/locales/af.yml
@@ -2,16 +2,28 @@
af:
about:
contact_unavailable: NVT
- continue_to_web: Gaan voort na web toepassing
- discover_users: Verken gebruikers
- documentation: Dokumentasie
- federation_hint_html: Met 'n rekening op %{instance} sal jy in staat wees om mense op enige Mastodon en federasie bediener te volg.
- get_apps: Probeer 'n mobiele toepassing
hosted_on: Mastodon gehuisves op %{domain}
admin:
+ domain_blocks:
+ existing_domain_block: Jy het alreeds strenger perke ingelê op %{name}.
trends:
only_allowed: Slegs toegelate
trending: Gewild
+ webhooks:
+ add_new: Voeg end-punt by
+ delete: Wis uit
+ disable: Deaktiveer
+ disabled: Gedeaktiveer
+ edit: Redigeer end-punt
+ empty: Jy het tans geen opgestelde web-hoek end-punte nie.
+ enable: Aktiveer
+ enabled: Aktief
+ new: Nuwe web-hoek
+ rotate_secret: Roteer geheim
+ secret: Onderteken geheim
+ status: Status
+ title: Web-hoeke
+ webhook: Web-hoek
disputes:
strikes:
approve_appeal: Aanvaar appêl
diff --git a/config/locales/ar.yml b/config/locales/ar.yml
index 9d78451bbd..07f4ad470b 100644
--- a/config/locales/ar.yml
+++ b/config/locales/ar.yml
@@ -1,73 +1,12 @@
---
ar:
about:
- about_hashtag_html: هذه منشورات متاحة للجمهور تحتوي على الكلمات الدلالية #%{hashtag} . يمكنك التفاعل معها إن كان لديك حساب في أي مكان على الفديفرس.
about_mastodon_html: 'شبكة التواصل الإجتماعية المستقبَليّة: مِن دون إعلانات ، غير خاضعة لرقابة الشركات ، تصميم أخلاقي ولامركزية! بياناتكم مِلك لكم مع ماستدون!'
- about_this: عن مثيل الخادم هذا
- active_count_after: نشط
- active_footnote: مستخدم نشيط شهريا (MAU)
- administered_by: 'يُديره:'
- api: واجهة برمجة التطبيقات
- apps: تطبيقات الأجهزة المحمولة
- apps_platforms: استخدم ماستدون على iOS وأندرويد وأنظمة أخرى
- browse_directory: تصفح دليل الصفحات التعريفية وصفّي بحسب الإهتمام
- browse_local_posts: تصفح تيارًا مباشرًا مِن منشورات للعامة على هذا الخادم
- browse_public_posts: تصفح تيارًا مباشرًا مِن منشورات عامة على ماستدون
- contact: للتواصل معنا
contact_missing: لم يتم تعيينه
contact_unavailable: غير متوفر
- continue_to_web: المتابعة إلى تطبيق الويب
- discover_users: اكتشف مستخدِمين
- documentation: الدليل
- federation_hint_html: بواسطة حساب في %{instance} ستتمكن من تتبع أناس في أي خادم ماستدون وأكثر.
- get_apps: جرّب تطبيقا على الموبايل
hosted_on: ماستدون مُستضاف على %{domain}
- instance_actor_flash: |
- هذا الحساب هو ممثل افتراضي يستخدم لتمثيل الخادم نفسه وليس أي مستخدم فردي.
- يستخدم لأغراض الاتحاد ولا ينبغي حظره إلا إذا كنت ترغب في حظر مثيل الخادم بأكمله، في هذه الحالة يجب عليك استخدام أداة حظر النطاق.
- learn_more: تعلم المزيد
- logged_in_as_html: أنت متصل حالياً كـ %{username}.
- logout_before_registering: أنت متصل سلفًا.
- privacy_policy: سياسة الخصوصية
- rules: قوانين الخادم
- rules_html: 'فيما يلي ملخص للقوانين التي تحتاج إلى اتباعها إذا كنت تريد أن يكون لديك حساب على هذا الخادم من ماستدون:'
- see_whats_happening: اطّلع على ما يجري
- server_stats: 'إحصائيات الخادم:'
- source_code: الشفرة المصدرية
- status_count_after:
- few: منشورات
- many: منشورات
- one: منشور
- other: منشورات
- two: منشورات
- zero: منشورات
- status_count_before: نشروا
- tagline: اتبع أصدقائك وصديقاتك واكتشف آخرين وأخريات
- terms: شروط الخدمة
- unavailable_content: محتوى غير متوفر
- unavailable_content_description:
- domain: الخادم
- reason: السبب
- rejecting_media: 'لن يتم معالجة أو تخزين ملفات الوسائط القادمة من هذه الخوادم، ولن يتم عرض أي صور مصغرة، مما يتطلب النقر اليدوي على الملف الأصلي:'
- rejecting_media_title: وسائط مصفّاة
- silenced: 'سيتم إخفاء المنشورات القادمة من هذه الخوادم في الخيوط الزمنية والمحادثات العامة، ولن يتم إنشاء أي إخطارات من جراء تفاعلات مستخدميها، ما لم تُتَابعهم:'
- silenced_title: الخوادم المكتومة
- suspended: 'لن يتم معالجة أي بيانات قادمة من هذه الخوادم أو تخزينها أو تبادلها، مما سيجعل أي تفاعل أو اتصال مع المستخدمين والمستخدمات المنتمين إلى هذه الخوادم مستحيلة:'
- suspended_title: الخوادم المعلَّقة
- unavailable_content_html: يسمح لك ماستدون عموماً بعرض محتوى المستخدمين القادم من أي خادم آخر في الفديفرس والتفاعل معهم. وهذه هي الاستثناءات التي وضعت على هذا الخادوم بالذات.
- user_count_after:
- few: مستخدمين
- many: مستخدمين
- one: مستخدم
- other: مستخدمين
- two: مستخدمين
- zero: مستخدمين
- user_count_before: يستضيف
- what_is_mastodon: ما هو ماستدون ؟
+ title: عن
accounts:
- choices_html: 'توصيات %{name}:'
- endorsements_hint: يمكنك التوصية بالأشخاص الذين تتابعهم من واجهة الويب، وسيظهرون هنا.
- featured_tags_hint: يمكنك عرض وسوم محددة سيتم عرضها هنا.
follow: اتبع
followers:
few: متابِعون
@@ -78,15 +17,9 @@ ar:
zero: متابِعون
following: مُتابَع
instance_actor_flash: هذا الحساب هو ممثل افتراضي يُستخدم لتمثيل الخادم نفسه ولا يمثل أي مستخدم فردي، يُستخدم لأغراض الاتحاد ولا ينبغي حظره.
- joined: انضم·ت في %{date}
last_active: آخر نشاط
link_verified_on: تم التحقق مِن مالك هذا الرابط بتاريخ %{date}
- media: الوسائط
- moved_html: "%{name} إنتقلَ إلى %{new_profile_link}:"
- network_hidden: إنّ المعطيات غير متوفرة
nothing_here: لا يوجد أي شيء هنا!
- people_followed_by: الأشخاص الذين يتبعهم %{name}
- people_who_follow: الأشخاص الذين يتبعون %{name}
pin_errors:
following: يجب أن تكون مِن متابعي حساب الشخص الذي تريد إبرازه
posts:
@@ -97,14 +30,6 @@ ar:
two: منشورَيْن
zero: منشور
posts_tab_heading: المنشورات
- posts_with_replies: المنشورات والردود
- roles:
- admin: المدير
- bot: روبوت
- group: فريق
- moderator: مُشرِف
- unavailable: الصفحة التعريفية غير متوفرة
- unfollow: إلغاء المتابعة
admin:
account_actions:
action: تنفيذ الإجراء
@@ -121,12 +46,13 @@ ar:
avatar: الصورة الرمزية
by_domain: النطاق
change_email:
- changed_msg: تم تعديل عنوان البريد الإلكتروني الخاص بالحساب بنجاح!
current_email: عنوان البريد الإلكتروني الحالي
label: تعديل عنوان البريد الإلكتروني
new_email: عنوان البريد الإلكتروني الجديد
submit: تعديل عنوان البريد الإلكتروني
title: تعديل عنوان البريد الإلكتروني الخاص بـ %{username}
+ change_role:
+ label: تغيير الدور
confirm: تأكيد
confirmed: مؤكَّد
confirming: التأكد
@@ -200,12 +126,7 @@ ar:
reset: إعادة التعيين
reset_password: إعادة ضبط كلمة السر
resubscribe: إعادة الاشتراك
- role: الصلاحيات
- roles:
- admin: مدير
- moderator: مشرف
- staff: الفريق
- user: مستخدِم
+ role: الدور
search: البحث
search_same_email_domain: مستخدمون آخرون لديهم نفس نطاق البريد الإلكتروني
search_same_ip: مستخدِمون آخرون بنفس الـ IP
@@ -309,7 +230,6 @@ ar:
create_unavailable_domain_html: قام %{name} بتوقيف التوصيل للنطاق %{target}
demote_user_html: قام %{name} بخفض الرتبة الوظيفية لـ%{target}
destroy_announcement_html: قام %{name} بحذف الإعلان %{target}
- destroy_custom_emoji_html: قام %{name} بحذف الإيموجي %{target}
destroy_domain_allow_html: قام %{name} بمنع الاتحاد مع النطاق %{target}
destroy_domain_block_html: قام %{name} برفع الحظر عن النطاق %{target}
destroy_email_domain_block_html: قام %{name} برفع الحظر عن نطاق البريد الإلكتروني %{target}
@@ -341,7 +261,6 @@ ar:
update_custom_emoji_html: قام %{name} بتحديث الإيموجي %{target}
update_domain_block_html: قام %{name} بتحديث كتلة النطاق %{target}
update_status_html: قام %{name} بتحديث منشور من %{target}
- deleted_status: "(منشور محذوف)"
empty: لم يتم العثور على سجلات.
filter_by_action: تصفية بحسب الإجراء
filter_by_user: تصفية حسب المستخدم
@@ -614,6 +533,28 @@ ar:
unresolved: غير معالجة
updated_at: محدث
view_profile: اعرض الصفحة التعريفية
+ roles:
+ add_new: إضافة دور
+ categories:
+ administration: الإدارة
+ invites: الدعوات
+ moderation: الإشراف
+ special: مميز
+ delete: حذف
+ everyone: الصلاحيات الافتراضية
+ privileges:
+ administrator: مدير
+ manage_announcements: ادارة الاعلانات
+ manage_appeals: إدارة الاستئنافات
+ manage_federation: إدارة الفديرالية
+ manage_invites: إدارة الدعوات
+ manage_reports: إدارة التقارير
+ manage_roles: إدارة الأدوار
+ manage_rules: إدارة القواعد
+ manage_settings: إدارة الإعدادات
+ manage_user_access: إدارة وصول المستخدم
+ manage_users: إدارة المستخدمين
+ title: الأدوار
rules:
add_new: إضافة قاعدة
delete: حذف
@@ -622,106 +563,49 @@ ar:
empty: لم يتم تحديد قواعد الخادم بعد.
title: قوانين الخادم
settings:
- activity_api_enabled:
- desc_html: عدد المنشورات المحلية و المستخدمين الناشطين و التسجيلات الأسبوعية الجديدة
- title: نشر مُجمل الإحصائيات عن نشاط المستخدمين
- bootstrap_timeline_accounts:
- desc_html: افصل بين أسماء المستخدمين المتعددة بواسطة الفاصلة. استعمل الحسابات المحلية والمفتوحة فقط. الافتراضي عندما تكون فارغة كل المسؤولين المحليين.
- title: الاشتراكات الافتراضية للمستخدمين الجدد
- contact_information:
- email: البريد الإلكتروني المهني
- username: الاتصال بالمستخدِم
- custom_css:
- desc_html: يقوم بتغيير المظهر بواسطة سي أس أس يُحمَّل على كافة الصفحات
- title: سي أس أس مخصص
- default_noindex:
- desc_html: يؤثر على جميع المستخدمين الذين لم يغيروا هذا الإعداد بأنفسهم
- title: عدم السماح مبدئيا لمحركات البحث بفهرسة الملفات التعريفية للمستخدمين
+ about:
+ manage_rules: إدارة قواعد الخادم
+ title: عن
+ appearance:
+ title: المظهر
+ branding:
+ title: العلامة
+ content_retention:
+ title: الاحتفاظ بالمحتوى
+ discovery:
+ profile_directory: دليل الصفحات التعريفية
+ public_timelines: الخيوط الزمنية العامة
+ title: الاستكشاف
+ trends: المتداوَلة
domain_blocks:
all: للجميع
disabled: لا أحد
- title: اظهر خاصية حجب النطاقات
users: للمستخدمين المتصلين محليا
- domain_blocks_rationale:
- title: اظهر السبب
- hero:
- desc_html: معروض على الصفحة الأولى. لا يقل عن 600 × 100 بكسل. عند عدم التعيين ، تعود الصورة إلى النسخة المصغرة على سبيل المثال
- title: الصورة الرأسية
- mascot:
- desc_html: معروض على عدة صفحات، يوصى بِعلى الأقل 293x205 بكسل، عند عدم التعيين، تعود الصورة إلى التميمة الافتراضية
- title: صورة الماسكوت
- peers_api_enabled:
- desc_html: أسماء النطاقات التي التقى بها مثيل الخادوم على البيئة الموحَّدة فديفرس
- title: نشر عدد مثيلات الخوادم التي تم مصادفتها
- preview_sensitive_media:
- desc_html: روابط المُعَاينة على مواقع الويب الأخرى ستقوم بعرض صُوَر مصغّرة حتى و إن كانت الوسائط حساسة
- title: إظهار الصور الحساسة في مُعاينات أوبن غراف
- profile_directory:
- desc_html: السماح للمستخدمين الكشف عن حساباتهم
- title: تفعيل دليل الصفحات التعريفية
registrations:
- closed_message:
- desc_html: يتم عرضه على الصفحة الرئيسية عندما يتم غلق تسجيل الحسابات الجديدة. يمكنكم إستخدام علامات الأيتش تي أم أل HTML
- title: رسالة التسجيلات المقفلة
- deletion:
- desc_html: السماح لأي مستخدم إغلاق حسابه
- title: السماح بحذف الحسابات
- min_invite_role:
- disabled: لا أحد
- title: المستخدِمون المصرح لهم لإرسال الدعوات
- require_invite_text:
- desc_html: عندما تتطلب التسجيلات الموافقة اليدوية، جعل إدخال نص لسؤال "لماذا تريد أن تنضم؟" إلزاميا بدلاً من اختياري
- title: الطلب من المستخدمين الجدد إدخال سبب للتسجيل
+ title: التسجيلات
registrations_mode:
modes:
approved: طلب الموافقة لازم عند إنشاء حساب
none: لا أحد يمكنه إنشاء حساب
open: يمكن للجميع إنشاء حساب
- title: طريقة إنشاء الحسابات
- show_known_fediverse_at_about_page:
- desc_html: عند التعطيل، يُقيّد الخط الزمني العام المرتبط من صفحة الهبوط لعرض المحتوى المحلي فقط
- title: إظهار الفديفرس الموحَّد في خيط المُعايَنة
- show_staff_badge:
- desc_html: عرض شارة الموظفين على صفحة المستخدم
- title: إظهار شارة الموظفين
- site_description:
- desc_html: فقرة تمهيدية على الصفحة الأولى. صف ميزات خادوم ماستدون هذا و ما يميّزه عن الآخرين. يمكنك استخدام علامات HTML ، ولا سيما <a>
و <em>
.
- title: وصف مثيل الخادوم
- site_description_extended:
- desc_html: مكان جيد لمدونة قواعد السلوك والقواعد والإرشادات وغيرها من الأمور التي تحدد حالتك. يمكنك استخدام علامات HTML
- title: الوصف المُفصّل للموقع
- site_short_description:
- desc_html: يتم عرضه في لوحة جانبية و في البيانات الوصفية. قم بوصف ماستدون و ما يميز هذا السيرفر عن الآخرين في فقرة موجزة. إن تركت الحقل فارغا فسوف يتم عرض الوصف الافتراضي لمثيل الخادوم.
- title: مقدمة وصفية قصيرة عن مثيل الخادوم
- site_terms:
- desc_html: يمكنك كتابة سياسة الخصوصية الخاصة بك ، شروط الخدمة أو غيرها من القوانين. يمكنك استخدام علامات HTML
- title: شروط الخدمة المخصصة
- site_title: اسم مثيل الخادم
- thumbnail:
- desc_html: يستخدم للعروض السابقة عبر Open Graph و API. 1200x630px موصى به
- title: الصورة الرمزية المصغرة لمثيل الخادوم
- timeline_preview:
- desc_html: عرض الخيط العمومي على صفحة الاستقبال
- title: مُعاينة الخيط العام
- title: إعدادات الموقع
- trendable_by_default:
- desc_html: يؤثر على علامات الوسوم التي لم يكن مسموح بها مسبقاً
- title: السماح للوسوم بالظهور على المتداوَلة بدون مراجعة مسبقة
- trends:
- desc_html: عرض علني للوسوم المستعرضة سابقاً التي هي رائجة الآن
- title: الوسوم المتداولة
+ title: إعدادات الخادم
site_uploads:
delete: احذف الملف الذي تم تحميله
destroyed_msg: تم حذف التحميل مِن الموقع بنجاح!
statuses:
+ account: المؤلف
+ application: التطبيق
back_to_account: العودة إلى صفحة الحساب
back_to_report: العودة إلى صفحة التقرير
batch:
remove_from_report: إزالة من التقرير
report: إبلاغ
deleted: محذوف
+ favourites: المفضلة
+ language: اللغة
media:
title: الوسائط
+ metadata: البيانات الوصفية
no_status_selected: لم يطرأ أي تغيير على أي منشور بما أنه لم يتم اختيار أي واحد
title: منشورات الحساب
with_media: تحتوي على وسائط
@@ -789,6 +673,8 @@ ar:
edit_preset: تعديل نموذج التحذير
empty: لم تحدد أي إعدادات تحذير مسبقة بعد.
title: إدارة نماذج التحذير
+ webhooks:
+ delete: حذف
admin_mailer:
new_appeal:
actions:
@@ -842,16 +728,13 @@ ar:
applications:
created: تم إنشاء التطبيق بنجاح
destroyed: تم حذف التطبيق بنجاح
- invalid_url: إن الرابط المقدم غير صالح
regenerate_token: إعادة توليد رمز النفاذ
token_regenerated: تم إعادة إنشاء الرمز الوصول بنجاح
warning: كن حذرا مع هذه البيانات. لا تقم أبدا بمشاركتها مع الآخَرين!
your_token: رمز نفاذك
auth:
- apply_for_account: اطلب دعوة
+ apply_for_account: انضم إلى قائمة الانتظار
change_password: الكلمة السرية
- checkbox_agreement_html: أوافق على قواعد الخادم و شروط الخدمة
- checkbox_agreement_without_rules_html: أوافق على شروط الخدمة
delete_account: حذف الحساب
delete_account_html: إن كنت ترغب في حذف حسابك يُمكنك المواصلة هنا . سوف يُطلَبُ منك التأكيد قبل الحذف.
description:
@@ -877,6 +760,8 @@ ar:
registration_closed: لا يقبل %{instance} استقبال أعضاء جدد
resend_confirmation: إعادة إرسال تعليمات التأكيد
reset_password: إعادة تعيين كلمة المرور
+ rules:
+ title: بعض القواعد الأساسية.
security: الأمان
set_new_password: إدخال كلمة مرور جديدة
setup:
@@ -890,7 +775,6 @@ ar:
pending: إن طلبك قيد المراجعة من قبل فريقنا. قد يستغرق هذا بعض الوقت. سوف تتلقى بريدا إلكترونيا إذا تمت الموافقة على طلبك.
redirecting_to: حسابك غير نشط لأنه تم تحويله حاليا إلى %{acct}.
too_fast: تم إرسال النموذج بسرعة كبيرة، حاول مرة أخرى.
- trouble_logging_in: هل صادفتكم مشكلة في الولوج؟
use_security_key: استخدام مفتاح الأمان
authorize_follow:
already_following: أنت تتابع بالفعل هذا الحساب
@@ -948,10 +832,6 @@ ar:
more_details_html: للمزيد مِن التفاصيل ، يرجى الإطلاع على سياسة الخصوصية .
username_available: سيصبح اسم مستخدمك متوفرا ثانية
username_unavailable: سيبقى اسم المستخدم الخاص بك غير متوفر
- directories:
- directory: سِجلّ الصفحات التعريفية
- explanation: استكشف مستخدِمين آخرين حسب المواضيع التي تهمهم
- explore_mastodon: استكشف %{title}
disputes:
strikes:
action_taken: الإجراء المتخذ
@@ -1025,10 +905,11 @@ ar:
public: الخيوط الزمنية العامة
thread: المحادثات
edit:
+ add_keyword: إضافة كلمة مفتاحية
+ keywords: الكلمات المفتاحية
title: تعديل عامل التصفية
errors:
invalid_context: لم تقم بتحديد أي مجال أو أنّ المجال غير صالح
- invalid_irreversible: إلّا مجالات الإشعارات و الخيط الرئيسي معنية بالتصفية اللارجعية
index:
delete: إزالة
empty: ليست لديك أية عوامل تصفية.
@@ -1036,9 +917,6 @@ ar:
new:
title: إضافة عامل تصفية جديد
footer:
- developers: المطورون
- more: المزيد…
- resources: الموارد
trending_now: المتداولة الآن
generic:
all: الكل
@@ -1075,7 +953,6 @@ ar:
following: قائمة المستخدمين المتبوعين
muting: قائمة الكتم
upload: تحميل
- in_memoriam_html: في ذكرى.
invites:
delete: تعطيل
expired: انتهت صلاحيتها
@@ -1162,18 +1039,6 @@ ar:
admin:
sign_up:
subject: أنشأ %{name} حسابًا
- digest:
- action: معاينة كافة الإشعارات
- body: هذا هو مُلَخَّص الرسائل التي فاتتك وذلك منذ آخر زيارة لك في %{since}
- mention: "%{name} أشار إليك في:"
- new_followers_summary:
- few: رائع، لقد قام بمتابَعتك %{count} مُتابِعون جُدد أثناء فترة غيابك عن ماستدون!
- many: رائع، لقد قام بمتابَعتك %{count} مُتابِعون جُدد أثناء فترة غيابك عن ماستدون!
- one: و لقد تحصّلتَ كذلك على مُتابِع آخَر بينما كنتَ غائبًا! هذا شيء رائع!
- other: رائع، لقد قام بمتابَعتك %{count} مُتابِعون جُدد أثناء فترة غيابك عن ماستدون!
- two: رائع، لقد قام بمتابَعتك %{count} مُتابِعون جُدد أثناء فترة غيابك عن ماستدون!
- zero: رائع، لقد قام بمتابَعتك %{count} مُتابِعون جُدد أثناء فترة غيابك عن ماستدون!
- title: أثناء فترة غيابك...
favourite:
body: 'أُعجب %{name} بمنشورك:'
subject: أُعجِب %{name} بمنشورك
@@ -1245,6 +1110,8 @@ ar:
other: إعدادات أخرى
posting_defaults: التفضيلات الافتراضية للنشر
public_timelines: الخيوط الزمنية العامة
+ privacy_policy:
+ title: سياسة الخصوصية
reactions:
errors:
limit_reached: تم بلوغ الحد الأقصى لردود الفعل المختلفة
@@ -1267,22 +1134,7 @@ ar:
remove_selected_follows: الغي متابعة المستخدمين الذين اخترتهم
status: حالة الحساب
remote_follow:
- acct: قم بإدخال عنوان حسابك username@domain الذي من خلاله تود النشاط
missing_resource: تعذر العثور على رابط التحويل المطلوب الخاص بحسابك
- no_account_html: أليس عندك حساب بعدُ ؟ يُمْكنك التسجيل مِن هنا
- proceed: أكمل المتابعة
- prompt: 'إنك بصدد متابعة:'
- reason_html: "لماذا هذه الخطوة ضرورية؟ %{instance}
قد لا يكون هذا الخادم هو الذي سجلت فيه حيابك، لذا نحن بحاجة إلى إعادة توجيهك إلى خادمك الرئيسي أولاً."
- remote_interaction:
- favourite:
- proceed: المواصلة إلى المفضلة
- prompt: 'ترغب في إضافة هذا المنشور إلى مفضلتك:'
- reblog:
- proceed: المواصلة إلى الترقية
- prompt: 'ترغب في مشاركة هذا المنشور:'
- reply:
- proceed: المواصلة إلى الرد
- prompt: 'ترغب في الرد على هذا المنشور:'
rss:
content_warning: 'تحذير عن المحتوى:'
descriptions:
@@ -1471,8 +1323,6 @@ ar:
sensitive_content: محتوى حساس
tags:
does_not_match_previous_name: لا يطابق الإسم السابق
- terms:
- title: شروط الخدمة وسياسة الخصوصية على %{instance}
themes:
contrast: ماستدون (تباين عالٍ)
default: ماستدون (داكن)
@@ -1543,22 +1393,11 @@ ar:
suspend: الحساب مُعلَّق
welcome:
edit_profile_action: تهيئة الملف التعريفي
- edit_profile_step: يُمكنك·كي تخصيص صفحتك التعريفية عن طريق تحميل صورة رمزية ورأسية و بتعديل اسمك·كي العلني وأكثر. و إن أردت·تي معاينة المتابِعين و المتابعات الجُدد قبيل السماح لهم·ن بمتابَعتك فيمكنك·كي تأمين حسابك·كي.
explanation: ها هي بعض النصائح قبل بداية الاستخدام
final_action: اشرَع في النشر
- final_step: |-
- يمكنك الشروع في النشر في الحين! حتى و إن لم كنت لا تمتلك متابِعين بعدُ، يمكن للآخرين الإطلاع على منشوراتك الموجهة للجمهور على الخيط العام المحلي أو إن قمت باستخدام وسوم.
- ابدأ بتقديم نفسك باستعمال وسم #introductions.
full_handle: عنوانك الكامل
full_handle_hint: هذا هو ما يجب تقديمه لأصدقائك قصد أن يكون بإمكانهم متابَعتك أو مُراسَلتك حتى و إن كانت حساباتهم على خوادم أخرى.
- review_preferences_action: تعديل التفضيلات
- review_preferences_step: تأكد من ضبط تفضيلاتك ، مثلًا أية رسائل بريد إلكترونية ترغب في تلقيها أو أي مستوى للخصوصية ترغب في اسناده افتراضيًا لمنشوراتك. إن كانت الحركة لا تُعكّر مزاجك فيمكنك إختيار تفعيل التشغيل التلقائي لوسائط GIF المتحركة.
subject: أهلًا بك على ماستدون
- tip_federated_timeline: الخيط الزمني الفديرالي هو بمثابة شبه نظرة شاملة على شبكة ماستدون. غير أنه لا يشمل إلا على الأشخاص المتابَعين مِن طرف جيرانك و جاراتك، لذا فهذا الخيط لا يعكس كافة الشبكة برُمّتها.
- tip_following: أنت تتبع تلقائيا مديري و مديرات الخادم. للعثور على أشخاص مميزين أو قد تهمك حساباتهم بإمكانك الإطلاع على الخيوط العامة المحلية و كذا الفدرالية.
- tip_local_timeline: الخيط العام المحلي هو بمثابة نظرة سريعة على الأشخاص المتواجدين على %{instance} يمكن اعتبارهم كجيرانك وجاراتك الأقرب إليك!
- tip_mobile_webapp: إن كان متصفحك على جهازك المحمول يُتيح ميزة إضافة Mastodon على شاشتك الرئيسية ، فيمكنك تلقي الإشعارات المدفوعة. إنه يعمل كتطبيق أصلي بحت!
- tips: نصائح
title: أهلاً بك، %{name}!
users:
follow_limit_reached: لا يمكنك متابعة أكثر مِن %{limit} أشخاص
diff --git a/config/locales/ast.yml b/config/locales/ast.yml
index a9bcbbdf7e..30bb52c5a8 100644
--- a/config/locales/ast.yml
+++ b/config/locales/ast.yml
@@ -1,57 +1,19 @@
---
ast:
about:
- about_hashtag_html: Estos son los barritos públicos etiquetaos con #%{hashtag} . Pues interactuar con ellos si tienes una cuenta en cualesquier parte del fediversu.
about_mastodon_html: 'La rede social del futuru: ¡ensin anuncios nin vixilancia, con un diseñu éticu y descentralizáu! Controla los tos datos con Mastodon.'
- about_this: Tocante a
- administered_by: 'Alministráu por:'
- api: API
- apps: Aplicaciones pa móviles
- apps_platforms: Usa Mastodon dende Android, iOS y otres plataformes
- contact: Contautu
contact_missing: Nun s'afitó
contact_unavailable: N/D
- discover_users: Usuarios nuevos
- documentation: Documentación
- federation_hint_html: Con una cuenta en %{instance} vas ser a siguir a persones de cualesquier sirvidor de Mastodon y facer más coses.
- get_apps: En preseos móviles
hosted_on: Mastodon ta agospiáu en %{domain}
- learn_more: Saber más
- privacy_policy: Política de privacidá
- server_stats: 'Estadístiques del sirvidor:'
- source_code: Códigu fonte
- status_count_after:
- one: artículu
- other: artículos
- status_count_before: Que crearon
- tagline: Sigui a persones y conoz a más xente
- terms: Términos del serviciu
- unavailable_content_description:
- domain: Sirvidor
- reason: Motivu
- user_count_after:
- one: usuariu
- other: usuarios
- user_count_before: Ye'l llar de
- what_is_mastodon: "¿Qué ye Mastodon?"
accounts:
- featured_tags_hint: Pues destacar etiquetes específiques que van amosase equí.
followers:
one: Siguidor
other: Siguidores
- joined: Xunióse en %{date}
- moved_html: "%{name} mudóse a %{new_profile_link}:"
- network_hidden: Esta información nun ta disponible
nothing_here: "¡Equí nun hai nada!"
- people_followed_by: Persones a les que sigue %{name}
- people_who_follow: Persones que siguen a %{name}
posts:
one: Artículu
other: Artículos
posts_tab_heading: Artículos
- posts_with_replies: Barritos y rempuestes
- roles:
- bot: Robó
admin:
accounts:
are_you_sure: "¿De xuru?"
@@ -71,11 +33,6 @@ ast:
resend_confirmation:
already_confirmed: Esti usuariu yá ta confirmáu
send: Reunviar les instrucciones
- role: Permisos
- roles:
- admin: Alministrador
- moderator: Llendador
- user: Usuariu
statuses: Estaos
title: Cuentes
username: Nome d'usuariu
@@ -135,15 +92,14 @@ ast:
are_you_sure: "¿De xuru?"
status: Estáu
title: Informes
- settings:
- registrations:
- min_invite_role:
- disabled: Naide
- site_description:
- title: Descripción del sirvidor
- site_title: Nome del sirvidor
- title: Axustes del sitiu
+ roles:
+ everyone: Permisos predeterminaos
+ permissions_count:
+ one: "%{count} permisu"
+ other: "%{count} permisos"
title: Alministración
+ webhooks:
+ events: Eventos
admin_mailer:
new_pending_account:
body: Los detalles de la cuenta nueva tán embaxo. Pues aprobar o refugar esta aplicación.
@@ -164,12 +120,9 @@ ast:
sensitive_content: Conteníu sensible
toot_layout: Distribución de los barritos
applications:
- invalid_url: La URL apurrida nun ye válida
warning: Ten munchu curiáu con estos datos, ¡enxamás nun los compartas con naide!
auth:
change_password: Contraseña
- checkbox_agreement_html: Acepto les regles del sirvidor y los términos del serviciu
- checkbox_agreement_without_rules_html: Acepto los términos del serviciu
delete_account: Desaniciu de la cuenta
delete_account_html: Si deseyes desaniciar la to cuenta, pues siguir equí . Va pidísete la confirmación.
description:
@@ -185,7 +138,6 @@ ast:
saml: SAML
register: Rexistrase
security: Seguranza
- trouble_logging_in: "¿Tienes problemes col aniciu de sesión?"
authorize_follow:
already_following: Yá tas siguiendo a esta cuenta
already_requested: Yá unviesti una solicitú de siguimientu a esa cuenta
@@ -213,10 +165,6 @@ ast:
warning:
email_contact_html: Si entá nun aportó, pues unviar un corréu a%{email} pa más ayuda
more_details_html: Pa más detalles, mira la política de privacidá .
- directories:
- directory: Direutoriu de perfiles
- explanation: y descubri a usuarios según los sos intereses
- explore_mastodon: Esplora %{title}
disputes:
strikes:
appeal_rejected: Refugóse l'apellación
@@ -258,10 +206,6 @@ ast:
title: Peñeres
new:
title: Amestar una peñera nueva
- footer:
- developers: Desendolcadores
- more: Más…
- resources: Recursos
generic:
all: Too
changes_saved_msg: "¡Los cambeos guardáronse correutamente!"
@@ -281,7 +225,6 @@ ast:
following: Llista de siguidores
muting: Llista de xente silenciao
upload: Xubir
- in_memoriam_html: N'alcordanza.
invites:
delete: Desactivar
expired: Caducó
@@ -317,9 +260,6 @@ ast:
warning:
followers: Esta aición va mover tolos siguidores de la cuenta actual a la nueva
notification_mailer:
- digest:
- body: Equí hai un resume de los mensaxes que nun viesti dende la última visita'l %{since}
- mention: "%{name} mentóte en:"
favourite:
title: Favoritu nuevu
follow:
@@ -348,29 +288,15 @@ ast:
invalid_choice: La opción de votu escoyida nun esiste
preferences:
public_timelines: Llinies temporales públiques
+ privacy_policy:
+ title: Política de privacidá
relationships:
activity: Actividá
followers: Siguidores
most_recent: Lo más recién
relationship: Rellación
- remove_selected_follows: Dexar de siguir a los usuarios esbillaos
+ remove_selected_follows: Dexar de siguir a los usuarios seleicionaos
status: Estáu
- remote_follow:
- acct: Introduz el nome_usuariu@dominiu dende'l que lo quies facer
- no_account_html: "¿Nun tienes una cuenta? Pues rexistrate equí "
- proceed: Siguir
- prompt: 'Vas siguir a:'
- reason_html: "¿Por qué esti pasu ye precisu? %{instance}
seique nun seya'l sirvidor onde tas rexistráu, polo que precisamos redirixite primero al de to."
- remote_interaction:
- favourite:
- proceed: Siguir
- prompt: 'Quies marcar esti barritu como favoritu:'
- reblog:
- proceed: Siguir
- prompt: 'Quies compartir esti barritu:'
- reply:
- proceed: Siguir
- prompt: 'Quies responder a esti barritu:'
sessions:
browser: Restolador
browsers:
@@ -495,7 +421,6 @@ ast:
welcome:
full_handle_hint: Esto ye lo que-yos diríes a los collacios pa que puean unviate mensaxes o siguite dende otra instancia.
subject: Afáyate en Mastodon
- tips: Conseyos
users:
follow_limit_reached: Nun pues siguir a más de %{limit} persones
invalid_otp_token: El códigu nun ye válidu
diff --git a/config/locales/bg.yml b/config/locales/bg.yml
index c9e2647878..83a5df302f 100644
--- a/config/locales/bg.yml
+++ b/config/locales/bg.yml
@@ -2,82 +2,24 @@
bg:
about:
about_mastodon_html: Mastodon е безплатен сървър с отворен код за социални мрежи. Като децентрализирана алтернатива на комерсиалните платформи, той позволява избягването на риска от монополизация на твоята комуникация от единични компании. Изберете си сървър, на който се доверявате, и ще можете да контактувате с всички останали. Всеки може да пусне Mastodon и лесно да вземе участие в социалната мрежа .
- about_this: За тази инстанция
- active_count_after: активно
- active_footnote: Месечни активни потребители (МАП)
- administered_by: 'Администрирано от:'
- api: API
- apps: Мобилни приложения
- apps_platforms: Използвайте Mastodon от iOS, Android и други платформи
- browse_directory: Разгледайте профилна директория и филтрирайте по интереси
- browse_local_posts: Разгледайте поток от публични публикации на живо от този сървър
- browse_public_posts: Разгледайте поток от публични публикации на живо в Mastodon
- contact: За контакти
contact_missing: Не е зададено
contact_unavailable: Не е приложимо
- discover_users: Открийте потребители
- documentation: Документация
- federation_hint_html: С акаунт в %{instance} ще можете да последвате хората от всеки сървър на Mastodon и отвъд.
- get_apps: Опитайте мобилно приложение
hosted_on: Mastodon е хостван на %{domain}
- learn_more: Още информация
- privacy_policy: Политика за поверителност
- see_whats_happening: Вижте какво се случва
- server_stats: 'Сървърна статистика:'
- source_code: Програмен код
- status_count_after:
- one: състояние
- other: състояния
- status_count_before: Написали
- tagline: Следвайте приятели и открийте нови
- terms: Условия за ползване
- unavailable_content: Модерирани сървъри
- unavailable_content_description:
- domain: Сървър
- reason: Причина
- rejecting_media: 'Мултимедийните файлове от тези сървъри няма да бъдат обработени или съхранени и няма да бъдат показани миниатюри, което ще изисква ръчно щракване върху оригиналния файл:'
- rejecting_media_title: Филтрирана мултимедия
- silenced: 'Публикациите от тези сървъри ще бъдат скрити в обществени емисии и разговори и няма да се генерират известия от взаимодействията на потребителите им, освен ако не ги следвате:'
- silenced_title: Заглушени сървъри
- suspended: 'Никакви данни от тези сървъри няма да бъдат обработвани, съхранявани или обменяни, което прави невъзможно всяко взаимодействие или комуникация с потребители от тези сървъри:'
- suspended_title: Спрени сървъри
- user_count_after:
- one: потребител
- other: потребители
- user_count_before: Дом на
- what_is_mastodon: Какво е Mastodon?
accounts:
- choices_html: 'Избори на %{name}:'
- endorsements_hint: Можете да подкрепите хората, които следите, от уеб интерфейса и те ще се покажат тук.
- featured_tags_hint: Можете да представите конкретни хаштагове, които ще се показват тук.
follow: Последвай
followers:
one: Последовател
other: Последователи
following: Следва
- joined: Присъединил се на %{date}
last_active: последна дейност
link_verified_on: Собствеността върху тази връзка е проверена на %{date}
- media: Мултимедия
- moved_html: "%{name} се премести в %{new_profile_link}:"
- network_hidden: Тази информация не е налична
nothing_here: Тук няма никого!
- people_followed_by: Хора, които %{name} следва
- people_who_follow: Хора, които следват %{name}
pin_errors:
following: Трябва вече да следвате човека, когото искате да подкрепите
posts:
one: Публикация
other: Публикации
posts_tab_heading: Публикации
- posts_with_replies: Публикации и отговори
- roles:
- admin: Админ
- bot: Бот
- group: Група
- moderator: Мод
- unavailable: Профилът не е наличен
- unfollow: Не следвай
admin:
account_actions:
action: Изпълняване на действие
@@ -91,7 +33,6 @@ bg:
avatar: Аватар
by_domain: Домейн
change_email:
- changed_msg: Имейлът на акаунта беше успешно променен!
current_email: Текущ имейл
label: Промяна на имейл
new_email: Нов имейл
@@ -178,8 +119,6 @@ bg:
application_mailer:
settings: 'Промяна на предпочитанията за e-mail: %{link}'
view: 'Преглед:'
- applications:
- invalid_url: Предоставеният URL е невалиден
auth:
didnt_get_confirmation: Не получих инструкции за потвърждение
forgot_password: Забравих си паролата
@@ -236,12 +175,6 @@ bg:
images_and_video: Не мога да прикача видеоклип към публикация, която вече съдържа изображения
too_many: Не мога да прикача повече от 4 файла
notification_mailer:
- digest:
- body: Ето кратко резюме на нещата, които се случиха от последното ти посещение на %{since}
- mention: "%{name} те спомена в:"
- new_followers_summary:
- one: Имаш един нов последовател! Ура!
- other: Имаш %{count} нови последователи! Изумително!
favourite:
body: 'Публикацията ти беше харесана от %{name}:'
subject: "%{name} хареса твоята публикация"
@@ -261,10 +194,7 @@ bg:
next: Напред
prev: Назад
remote_follow:
- acct: Въведи потребителско_име@домейн, от които искаш да следваш
missing_resource: Неуспешно търсене на нужния URL за пренасочване за твоя акаунт
- proceed: Започни следване
- prompt: 'Ще последваш:'
settings:
authorized_apps: Упълномощени приложения
back: Обратно към Mastodon
diff --git a/config/locales/bn.yml b/config/locales/bn.yml
index 20a99fd2fc..5a40fad8f3 100644
--- a/config/locales/bn.yml
+++ b/config/locales/bn.yml
@@ -1,86 +1,25 @@
---
bn:
about:
- about_hashtag_html: এগুলো প্রকাশ্য লেখা যার হ্যাশট্যাগ #%{hashtag} । আপনি এগুলোর ব্যবহার বা সাথে যুক্ত হতে পারবেন যদি আপনার যুক্তবিশ্বের কোথাও নিবন্ধন থেকে থাকে।
about_mastodon_html: মাস্টাডন উন্মুক্ত ইন্টারনেটজালের নিয়ম এবং স্বাধীন ও মুক্ত উৎসের সফটওয়্যারের ভিত্তিতে তৈরী একটি সামাজিক যোগাযোগ মাধ্যম। এটি ইমেইলের মত বিকেন্দ্রীভূত।
- about_this: কি
- active_count_after: চালু
- active_footnote: মাসিক সক্রিয় ব্যবহারকারী
- administered_by: 'পরিচালনা করছেন:'
- api: সফটওয়্যার তৈরীর নিয়ম (API)
- apps: মোবাইল অ্যাপ
- apps_platforms: মাস্টাডন আইওএস, এন্ড্রোইড বা অন্য মাধ্যমে ব্যবহার করুন
- browse_directory: একটি ব্যবহারকারীদের তালিকা দেখুন এবং পছন্দ অনুসারে খুজুন
- browse_local_posts: এই সার্ভার থেকে সর্বজনীন পোস্টগুলির একটি লাইভ স্ট্রিম ব্রাউজ করুন
- browse_public_posts: মাস্টাডনে নতুন প্রকাশ্য লেখাগুলো সরাসরি দেখুন
- contact: যোগাযোগ
contact_missing: নেই
contact_unavailable: প্রযোজ্য নয়
- discover_users: ব্যবহারকারীদের দেখুন
- documentation: ব্যবহারবিলি
- federation_hint_html: "%{instance}তে একটা নিবন্ধন থাকলে আপনি যেকোনো মাস্টাডন বা এধরণের অন্যান্য সার্ভারের মানুষের সাথে যুক্ত হতে পারবেন ।"
- get_apps: মোবাইল এপ্প একটা ব্যবহার করতে পারেন
hosted_on: এই মাস্টাডনটি আছে %{domain} এ
- instance_actor_flash: "এই অ্যাকাউন্টটি ভার্চুয়াল এক্টর যা নিজে কোনও সার্ভারের প্রতিনিধিত্ব করতে ব্যবহৃত হয় এবং কোনও পৃথক ব্যবহারকারী নয়। এটি ফেডারেশনের উদ্দেশ্যে ব্যবহৃত হয় এবং আপনি যদি পুরো ইনস্ট্যান্স ব্লক করতে না চান তবে অবরুদ্ধ করা উচিত নয়, সেক্ষেত্রে আপনার ডোমেন ব্লক ব্যবহার করা উচিত। \n"
- learn_more: বিস্তারিত জানুন
- privacy_policy: গোপনীয়তা নীতি
- see_whats_happening: কী কী হচ্ছে দেখুন
- server_stats: 'সার্ভারের অবস্থা:'
- source_code: আসল তৈরীপত্র
- status_count_after:
- one: অবস্থা
- other: স্থিতিগুলি
- status_count_before: কে লিখেছে
- tagline: পরিচিতজনদের সাথে যুক্ত হন এবং নতুনদের সাথে পরিচিত হন
- terms: ব্যবহারের শর্তাবলী
- unavailable_content: অনুপলব্ধ সামগ্রী
- unavailable_content_description:
- domain: সার্ভার
- reason: কারণ
- rejecting_media: 'এই সার্ভারগুলি থেকে মিডিয়া ফাইলগুলি প্রক্রিয়া করা বা সংরক্ষণ করা হবে না এবং কোনও থাম্বনেইল প্রদর্শিত হবে না, মূল ফাইলটিতে ম্যানুয়াল ক্লিক-মাধ্যমে প্রয়োজন:'
- rejecting_media_title: ফিল্টার করা মিডিয়া
- silenced: 'এই সার্ভারগুলির পোস্টগুলি জনসাধারণের টাইমলাইন এবং কথোপকথনে লুকানো থাকবে এবং আপনি যদি তাদের অনুসরণ না করেন তবে তাদের ব্যবহারকারীর ইন্টারঅ্যাকশন থেকে কোনও বিজ্ঞপ্তি উত্পন্ন হবে না:'
- silenced_title: নীরব করা সার্ভার
- suspended: 'এই সার্ভারগুলি থেকে কোনও ডেটা প্রক্রিয়াজাতকরণ, সংরক্ষণ বা আদান-প্রদান করা হবে না, এই সার্ভারগুলির ব্যবহারকারীদের সাথে কোনও মিথস্ক্রিয়া বা যোগাযোগকে অসম্ভব করে তুলেছে:'
- suspended_title: স্থগিত করা সার্ভার
- unavailable_content_html: ম্যাস্টোডন সাধারণত আপনাকে ফেদিভার্স এ অন্য কোনও সার্ভারের ব্যবহারকারীদের থেকে সামগ্রী দেখতে এবং তাদের সাথে আলাপচারিতা করার অনুমতি দেয়। এই ব্যতিক্রম যে এই বিশেষ সার্ভারে তৈরি করা হয়েছে।
- user_count_after:
- one: ব্যবহারকারী
- other: জনের
- user_count_before: বাসা
- what_is_mastodon: মাস্টাডনটি কি ?
accounts:
- choices_html: "%{name} বাছাই:"
- endorsements_hint: আপনি ওয়েব ইন্টারফেস থেকে অনুসরণ করা লোকেদের প্রচার করতে পারেন এবং তারা এখানে প্রদর্শিত হবে।
- featured_tags_hint: আপনি এখানে নির্দিষ্ট হ্যাশট্যাগগুলি বৈশিষ্ট্যযুক্ত করতে পারেন যেটা এখানে প্রদর্শিত হবে।
follow: যুক্ত
followers:
one: যুক্ত আছে
other: যারা যুক্ত হয়েছে
following: যুক্ত করা
- joined: যোগদান হয় %{date}
last_active: শেষ সক্রিয় ছিল
link_verified_on: এই লিংকের মালিকানা শেষ চেক করা হয় %{date} তারিখে
- media: ছবি বা ভিডিও
- moved_html: "%{name} চলে গেছে %{new_profile_link} তে:"
- network_hidden: এই তথ্যটি নেই
nothing_here: এখানে কিছুই নেই!
- people_followed_by: "%{name} যাদেরকে অনুসরণ করে"
- people_who_follow: যারা %{name} কে অনুসরণ করে
pin_errors:
following: সমর্থন করতে অনুসরণ থাকা লাগবে
posts:
one: লেখা
other: লেখাগুলো
posts_tab_heading: লেখাগুলো
- posts_with_replies: লেখা এবং মতামত
- roles:
- admin: পরিচালক
- bot: রোবট
- group: গোষ্ঠী
- moderator: পরিচালক
- unavailable: প্রোফাইল অনুপলব্ধ
- unfollow: অনুসরণ বাদ
admin:
account_actions:
action: করা
@@ -96,7 +35,6 @@ bn:
avatar: অবতার
by_domain: ওয়েবসাইট/কার্যক্ষেত্র
change_email:
- changed_msg: নিবন্ধনের ইমেইল সঠিকভাবে পরিবর্তন হয়েছে!
current_email: এখনকার ইমেইল
label: ইমেইল পরিবর্তন
new_email: নতুন ইমেইল
@@ -161,12 +99,6 @@ bn:
reset: পুনরায় সেট করুন
reset_password: পাসওয়ার্ড পুনঃস্থাপন করুন
resubscribe: পুনরায় সদস্যতা নিন
- role: অনুমতিসমূহ
- roles:
- admin: পরিচালক
- moderator: নিয়ামক
- staff: কর্মী
- user: ব্যবহারকারী
search: অনুসন্ধান
search_same_email_domain: একই ইমেল ডোমেন সহ অন্যান্য ব্যবহারকারীরা
search_same_ip: একই IP সহ অন্যান্য ব্যবহারকারীরা
diff --git a/config/locales/br.yml b/config/locales/br.yml
index f7c0605794..b9bf388869 100644
--- a/config/locales/br.yml
+++ b/config/locales/br.yml
@@ -1,34 +1,5 @@
---
br:
- about:
- about_this: Diàr-benn
- active_count_after: oberiant
- api: API
- apps: Arloadoù pellgomz
- apps_platforms: Ober get Mastodoñ àr iOS, Android ha savennoù arall
- contact: Darempred
- discover_users: Dizoleiñ implijer·ien·ezed
- learn_more: Gouzout hiroc'h
- privacy_policy: Reolennoù prevezded
- rules: Reolennoù ar servijer
- server_stats: 'Stadegoù ar servijer:'
- source_code: Boneg tarzh
- status_count_after:
- few: toud
- many: toud
- one: toud
- other: toud
- two: toud
- terms: Divizoù gwerzhañ hollek
- unavailable_content_description:
- domain: Dafariad
- user_count_after:
- few: implijer·ez
- many: implijer·ez
- one: implijer·ez
- other: implijer·ez
- two: implijer·ez
- what_is_mastodon: Petra eo Mastodon?
accounts:
follow: Heuliañ
followers:
@@ -38,7 +9,6 @@ br:
other: Heulier·ez
two: Heulier·ez
following: O heuliañ
- media: Media
posts:
few: Toud
many: Toud
@@ -46,13 +16,6 @@ br:
other: Toud
two: Toud
posts_tab_heading: Toudoù
- posts_with_replies: Toudoù ha respontoù
- roles:
- admin: Merour
- bot: Robot
- group: Strollad
- unavailable: Profil dihegerz
- unfollow: Diheuliañ
admin:
accounts:
avatar: Avatar
@@ -83,10 +46,6 @@ br:
remove_header: Dilemel an talbenn
reset: Adderaouekaat
reset_password: Adderaouekaat ar ger-tremen
- roles:
- admin: Merour
- moderator: Habaskaer·ez
- user: Implijer·ez
search: Klask
suspended: Astalet
title: Kontoù
@@ -94,7 +53,6 @@ br:
action_logs:
action_types:
destroy_status: Dilemel ar statud
- deleted_status: "(statud dilemet)"
announcements:
new:
create: Sevel ur gemenn
@@ -158,8 +116,6 @@ br:
settings:
domain_blocks:
all: D'an holl dud
- site_title: Anv ar servijer
- title: Arventennoù al lec'hienn
statuses:
deleted: Dilamet
warning_presets:
@@ -199,8 +155,6 @@ br:
x_seconds: "%{count}eil"
deletes:
proceed: Dilemel ar gont
- directories:
- directory: Roll ar profiloù
errors:
'400': The request you submitted was invalid or malformed.
'403': You don't have permission to view this page.
@@ -225,9 +179,6 @@ br:
index:
delete: Dilemel
title: Siloù
- footer:
- developers: Diorroerien
- more: Muioc'h…
generic:
all: Pep tra
copy: Eilañ
diff --git a/config/locales/ca.yml b/config/locales/ca.yml
index f0efd3f503..873d5a67ce 100644
--- a/config/locales/ca.yml
+++ b/config/locales/ca.yml
@@ -1,94 +1,27 @@
---
ca:
about:
- about_hashtag_html: Aquestes són publicacions públiques etiquetades amb #%{hashtag} . Hi pots interactuar si tens un compte a qualsevol lloc del fedivers.
about_mastodon_html: 'La xarxa social del futur: sense anuncis, sense vigilància corporativa, disseny ètic i descentralització. Tingues el control de les teves dades amb Mastodon!'
- about_this: Quant a
- active_count_after: actiu
- active_footnote: Usuaris actius mensuals (UAM)
- administered_by: 'Administrat per:'
- api: API
- apps: Aplicacions mòbils
- apps_platforms: Utilitza Mastodon des d'iOS, Android i altres plataformes
- browse_directory: Navega pel directori de perfils i filtra segons interessos
- browse_local_posts: Navega per una transmissió en directe de les publicacions públiques d’aquest servidor
- browse_public_posts: Navega per una transmissió en directe de les publicacions públiques a Mastodon
- contact: Contacte
contact_missing: No configurat
contact_unavailable: N/D
- continue_to_web: Continua a l'aplicació web
- discover_users: Descobrir usuaris
- documentation: Documentació
- federation_hint_html: Amb un compte de %{instance}, podràs seguir persones de qualsevol servidor Mastodon i de molts més.
- get_apps: Provar una aplicació mòbil
hosted_on: Mastodon allotjat a %{domain}
- instance_actor_flash: |
- Aquest compte és un actor virtual usat per representar el servidor i no qualsevol usuari individual.
- Es fa servir per a propòsits de federació i no s'ha de ser bloquejar si no voleu bloquejar tota la instància. En aquest cas, hauríeu d'utilitzar un bloqueig de domini.
- learn_more: Aprèn més
- logged_in_as_html: Actualment has iniciat sessió com a %{username}.
- logout_before_registering: Ja has iniciat sessió.
- privacy_policy: Política de privadesa
- rules: Normes del servidor
- rules_html: 'A continuació, es mostra un resum de les normes que has de seguir si vols tenir un compte en aquest servidor de Mastodon:'
- see_whats_happening: Mira què està passant
- server_stats: 'Estadístiques del servidor:'
- source_code: Codi font
- status_count_after:
- one: publicació
- other: publicacions
- status_count_before: Qui ha publicat
- tagline: Segueix els teus amics i descobreix-ne de nous
- terms: Condicions de servei
- unavailable_content: Servidors moderats
- unavailable_content_description:
- domain: Servidor
- reason: Motiu
- rejecting_media: 'Els arxius multimèdia d''aquests servidors no seran processats ni emmagatzemats. No es mostrarà cap miniatura i caldrà fer clic en l''arxiu original:'
- rejecting_media_title: Arxius multimèdia filtrats
- silenced: 'Les publicacions d''aquests servidors s''ocultaran en les línies de temps públiques i en les converses. No es generarà cap notificació de les interaccions dels seus usuaris, tret que els segueixis:'
- silenced_title: Servidors limitats
- suspended: 'No es processaran, emmagatzemaran ni s''intercanviaran dades d''aquests servidors i serà impossible interactuar o comunicar-se amb els usuaris d''aquests servidors:'
- suspended_title: Servidors suspesos
- unavailable_content_html: En general, Mastodon et permet veure el contingut i interaccionar amb els usuaris de qualsevol altre servidor del fedivers. Aquestes són les excepcions que s'han fet en aquest servidor particular.
- user_count_after:
- one: usuari
- other: usuaris
- user_count_before: Tenim
- what_is_mastodon: Què és Mastodon?
+ title: Quant a
accounts:
- choices_html: 'Eleccions de %{name}:'
- endorsements_hint: Pots recomanar persones que segueixes des de la interfície de web i apareixeran aquí.
- featured_tags_hint: Pots presentar etiquetes específiques que seràn mostrades aquí.
follow: Segueix
followers:
one: Seguidor
other: Seguidors
following: Seguint
instance_actor_flash: Aquest compte és un actor virtual usat per a representar el mateix servidor i no cap usuari individual. Es fa servir per a federar i no s'hauria d'esborrar.
- joined: Unit des de %{date}
last_active: última activitat
link_verified_on: La propietat d'aquest enllaç s'ha verificat el %{date}
- media: Mèdia
- moved_html: "%{name} s'ha mogut a %{new_profile_link}:"
- network_hidden: Aquesta informació no està disponible
nothing_here: No hi ha res aquí!
- people_followed_by: Persones seguides per %{name}
- people_who_follow: Usuaris que segueixen %{name}
pin_errors:
following: Has d'estar seguint la persona que vulguis avalar
posts:
one: Publicació
other: Publicacions
posts_tab_heading: Publicacions
- posts_with_replies: Publicacions i respostes
- roles:
- admin: Administrador
- bot: Bot
- group: Grup
- moderator: Moderador
- unavailable: Perfil inaccessible
- unfollow: Deixa de seguir
admin:
account_actions:
action: Realitzar acció
@@ -111,6 +44,11 @@ ca:
new_email: Adreça electrònica nova
submit: Canvia l'adreça electrònica
title: Canvia l'adreça electrònica de %{username}
+ change_role:
+ changed_msg: Els privilegis del compte s'han canviat correctament!
+ label: Canvia rol
+ no_role: Sense rol
+ title: Canvia el rol per a %{username}
confirm: Confirma
confirmed: Confirmat
confirming: Confirmant
@@ -154,6 +92,7 @@ ca:
active: Actiu
all: Tot
pending: Pendent
+ silenced: Limitat
suspended: Suspès
title: Moderació
moderation_notes: Notes de moderació
@@ -161,6 +100,7 @@ ca:
most_recent_ip: IP més recent
no_account_selected: No s'han canviat els comptes perquè no s'han seleccionat
no_limits_imposed: Sense límits imposats
+ no_role_assigned: Cap rol assignat
not_subscribed: No subscrit
pending: Revisió pendent
perform_full_suspension: Suspèn
@@ -187,12 +127,7 @@ ca:
reset: Reinicialitza
reset_password: Restableix la contrasenya
resubscribe: Torna a subscriure
- role: Permisos
- roles:
- admin: Administrador
- moderator: Moderador
- staff: Personal
- user: Usuari
+ role: Rol
search: Cerca
search_same_email_domain: Altres usuaris amb el mateix domini de correu
search_same_ip: Altres usuaris amb la mateixa IP
@@ -235,17 +170,21 @@ ca:
approve_user: Aprova l'usuari
assigned_to_self_report: Assigna l'informe
change_email_user: Canvia l'adreça electrònica per l'usuari
+ change_role_user: Canvia el Rol del Usuari
confirm_user: Confirma l'usuari
create_account_warning: Crea un avís
create_announcement: Crea un anunci
+ create_canonical_email_block: Crea un bloqueig de correu electrònic
create_custom_emoji: Crea un emoji personalitzat
create_domain_allow: Crea un domini permès
create_domain_block: Crea un bloqueig de domini
create_email_domain_block: Crea un bloqueig de domini d'adreça de correu
create_ip_block: Crear regla IP
create_unavailable_domain: Crea un domini no disponible
+ create_user_role: Crea Rol
demote_user: Degrada l'usuari
destroy_announcement: Esborra l'anunci
+ destroy_canonical_email_block: Esborra el bloqueig de correu electrònic
destroy_custom_emoji: Esborra l'emoji personalitzat
destroy_domain_allow: Esborra el domini permès
destroy_domain_block: Esborra el bloqueig de domini
@@ -254,6 +193,7 @@ ca:
destroy_ip_block: Eliminar regla IP
destroy_status: Esborrar la publicació
destroy_unavailable_domain: Esborra domini no disponible
+ destroy_user_role: Destrueix Rol
disable_2fa_user: Desactiva 2FA
disable_custom_emoji: Desactiva l'emoji personalitzat
disable_sign_in_token_auth_user: Desactivar l'autenticació de token per correu per l'usuari
@@ -280,24 +220,30 @@ ca:
update_announcement: Actualitza l'anunci
update_custom_emoji: Actualitza l'emoji personalitzat
update_domain_block: Actualitza el Bloqueig de Domini
+ update_ip_block: Actualitza norma IP
update_status: Actualitza l'estat
+ update_user_role: Actualitza Rol
actions:
approve_appeal_html: "%{name} ha aprovat l'apel·lació a la decisió de moderació de %{target}"
approve_user_html: "%{name} ha aprovat el registre de %{target}"
assigned_to_self_report_html: "%{name} han assignat l'informe %{target} a ells mateixos"
change_email_user_html: "%{name} ha canviat l'adreça de correu electrònic del usuari %{target}"
+ change_role_user_html: "%{name} ha canviat el rol de %{target}"
confirm_user_html: "%{name} ha confirmat l'adreça de correu electrònic de l'usuari %{target}"
create_account_warning_html: "%{name} ha enviat un avís a %{target}"
create_announcement_html: "%{name} ha creat un nou anunci %{target}"
+ create_canonical_email_block_html: "%{name} ha bloquejat l'adreça de correu electrònic amb el hash %{target}"
create_custom_emoji_html: "%{name} ha pujat un emoji nou %{target}"
create_domain_allow_html: "%{name} ha permès la federació amb el domini %{target}"
create_domain_block_html: "%{name} ha bloquejat el domini %{target}"
create_email_domain_block_html: "%{name} ha bloquejat el domini de correu electrònic %{target}"
create_ip_block_html: "%{name} ha creat una regla per a l'IP %{target}"
create_unavailable_domain_html: "%{name} ha aturat el lliurament al domini %{target}"
+ create_user_role_html: "%{name} ha creat el rol %{target}"
demote_user_html: "%{name} ha degradat l'usuari %{target}"
destroy_announcement_html: "%{name} ha eliminat l'anunci %{target}"
- destroy_custom_emoji_html: "%{name} ha destruït l'emoji %{target}"
+ destroy_canonical_email_block_html: "%{name} ha desbloquejat el correu electrònic amb el hash %{target}"
+ destroy_custom_emoji_html: "%{name} ha esborrat l'emoji %{target}"
destroy_domain_allow_html: "%{name} no permet la federació amb el domini %{target}"
destroy_domain_block_html: "%{name} ha desbloquejat el domini %{target}"
destroy_email_domain_block_html: "%{name} ha desbloquejat el domini de correu electrònic %{target}"
@@ -305,6 +251,7 @@ ca:
destroy_ip_block_html: "%{name} ha esborrat la regla per a l'IP %{target}"
destroy_status_html: "%{name} ha eliminat la publicació de %{target}"
destroy_unavailable_domain_html: "%{name} ha représ el lliurament delivery al domini %{target}"
+ destroy_user_role_html: "%{name} ha esborrat el rol %{target}"
disable_2fa_user_html: "%{name} ha desactivat el requisit de dos factors per a l'usuari %{target}"
disable_custom_emoji_html: "%{name} ha desactivat l'emoji %{target}"
disable_sign_in_token_auth_user_html: "%{name} ha desactivat l'autenticació de token per correu per a %{target}"
@@ -331,8 +278,9 @@ ca:
update_announcement_html: "%{name} ha actualitzat l'anunci %{target}"
update_custom_emoji_html: "%{name} ha actualitzat l'emoji %{target}"
update_domain_block_html: "%{name} ha actualitzat el bloqueig de domini per a %{target}"
+ update_ip_block_html: "%{name} ha canviat la norma per la IP %{target}"
update_status_html: "%{name} ha actualitzat l'estat de %{target}"
- deleted_status: "(publicació esborrada)"
+ update_user_role_html: "%{name} ha canviat el rol %{target}"
empty: No s’han trobat registres.
filter_by_action: Filtra per acció
filter_by_user: Filtra per usuari
@@ -376,6 +324,7 @@ ca:
listed: Enumerat
new:
title: Afegeix emoji personalitzat nou
+ no_emoji_selected: No s'ha canviat cap emoji perquè cap ha estat seleccionat
not_permitted: No tens permís per a realitzar aquesta acció
overwrite: Sobreescriure
shortcode: Codi curt
@@ -649,6 +598,67 @@ ca:
unresolved: No resolt
updated_at: Actualitzat
view_profile: Veure perfil
+ roles:
+ add_new: Afegir rol
+ assigned_users:
+ one: "%{count} usuari"
+ other: "%{count} usuaris"
+ categories:
+ administration: Administració
+ devops: Operadors de desenvolupament
+ invites: Invitacions
+ moderation: Moderació
+ special: Especial
+ delete: Esborra
+ description_html: Amb rols d'usuari , pots personalitzar quines funcions i àrees de Mastodon els teus usuaris poden accedir.
+ edit: Editar el rol %{name}
+ everyone: Permisos per defecte
+ everyone_full_description_html: Aquest és el rol base que afecta tots els usuaris , fins i tot els que no en tenen cap d'assignat. Tots els altres rols n'hereten els permisos.
+ permissions_count:
+ one: "%{count} permís"
+ other: "%{count} permisos"
+ privileges:
+ administrator: Administrador
+ administrator_description: Els usuaris amb aquest permís passaran per alt tots els permisos
+ delete_user_data: Esborra dades d'usuari
+ delete_user_data_description: Permet als usuaris suprimir les dades d'altres usuaris sense demora
+ invite_users: Convida usuaris
+ invite_users_description: Permet als usuaris convidar persones noves al servidor
+ manage_announcements: Gestiona els anuncis
+ manage_announcements_description: Permet als usuaris gestionar els anuncis al servidor
+ manage_appeals: Gestiona apel·lacions
+ manage_appeals_description: Permet als usuaris revisar les apel·lacions contra les accions de moderació
+ manage_blocks: Gestiona blocs
+ manage_blocks_description: Permet als usuaris bloquejar proveïdors de correu electrònic i adreces IP
+ manage_custom_emojis: Gestiona emojis personalitzats
+ manage_custom_emojis_description: Permet als usuaris gestionar emojis personalitzats al servidor
+ manage_federation: Gestiona federació
+ manage_federation_description: Permet als usuaris bloquejar o permetre la federació amb altres dominis i controlar la capacitat de lliurament
+ manage_invites: Gestiona invitacions
+ manage_invites_description: Permet als usuaris veure i desactivar els enllaços d'invitació
+ manage_reports: Gestiona informes
+ manage_reports_description: Permet als usuaris revisar informes i realitzar accions de moderació contra ells
+ manage_roles: Gestionar rols
+ manage_roles_description: Permet als usuaris gestionar i assignar rols per sota dels seus
+ manage_rules: Gestiona normes
+ manage_rules_description: Permet als usuaris canviar les normes del servidor
+ manage_settings: Gestiona configuració
+ manage_settings_description: Permet als usuaris canviar la configuració del lloc
+ manage_taxonomies: Gestionar taxonomies
+ manage_taxonomies_description: Permet als usuaris revisar el contingut actual i actualitzar la configuració de l'etiqueta
+ manage_user_access: Gestionar l'accés dels usuaris
+ manage_user_access_description: Permet als usuaris desactivar l'autenticació de dos factors d'altres usuaris, canviar la seva adreça de correu electrònic i restablir la seva contrasenya
+ manage_users: Gestionar usuaris
+ manage_users_description: Permet als usuaris veure els detalls d'altres usuaris i realitzar accions de moderació contra ells
+ manage_webhooks: Gestionar Webhooks
+ manage_webhooks_description: Permet als usuaris configurar webhooks per a esdeveniments administratius
+ view_audit_log: Veure el registre d'auditoria
+ view_audit_log_description: Permet als usuaris veure un historial d'accions administratives al servidor
+ view_dashboard: Veure panell
+ view_dashboard_description: Permet als usuaris accedir al tauler i a diverses mètriques
+ view_devops: Operadors de desenvolupament
+ view_devops_description: Permet als usuaris accedir als taulers de control de Sidekiq i pgHero
+ title: Rols
rules:
add_new: Afegir norma
delete: Suprimeix
@@ -657,108 +667,67 @@ ca:
empty: Encara no s'han definit les normes del servidor.
title: Normes del servidor
settings:
- activity_api_enabled:
- desc_html: Nombre de publicacions publicades localment, usuaris actius i registres nous en períodes setmanals
- title: Publica estadístiques agregades sobre l'activitat de l'usuari
- bootstrap_timeline_accounts:
- desc_html: Separa diversos noms d'usuari amb comes. Només funcionaran els comptes locals i desblocats. El valor predeterminat quan està buit és tots els administradors locals.
- title: El seguiment per defecte per als usuaris nous
- contact_information:
- email: Adreça electrònica d'empresa
- username: Nom d'usuari del contacte
- custom_css:
- desc_html: Modifica l'aspecte amb CSS carregat a cada pàgina
- title: CSS personalitzat
- default_noindex:
- desc_html: Afecta a tots els usuaris que no han canviat aquest ajustament ells mateixos
- title: Configura per defecte als usuaris fora de la indexació del motor de cerca
+ about:
+ manage_rules: Gestiona les normes del servidor
+ preamble: Proporciona informació detallada sobre com funciona, com es modera i com es financia el servidor.
+ rules_hint: Hi ha un àrea dedicada a les normes a les que s'espera que els teus usuaris s'hi adhereixin.
+ title: Quant a
+ appearance:
+ preamble: Personalitza l'interfície web de Mastodon.
+ title: Aparença
+ branding:
+ preamble: La marca del teu servidor el diferència dels demés servidors de la xarxa. Aquesta informació es pot mostrar en diversos entorns com ara en l'interfície web, en les aplicacions natives, en les previsualitzacions dels enllaços en altres webs, dins les aplicacions de missatgeria i d'altres. Per aquesta raó, és millor mantenir aquesta informació clara, breu i precisa.
+ title: Marca
+ content_retention:
+ preamble: Controla com es desa a Mastodon el contingut generat per l'usuari.
+ title: Retenció de contingut
+ discovery:
+ follow_recommendations: Seguir les recomanacions
+ preamble: L'aparició de contingut interessant és fonamental per atraure els nous usuaris que podrien no saber res de Mastodon. Controla com funcionen diverses opcions de descobriment en el teu servidor.
+ profile_directory: Directori de perfils
+ public_timelines: Línies de temps públiques
+ title: Descobriment
+ trends: Tendències
domain_blocks:
all: Per a tothom
disabled: Per a ningú
- title: Mostra els bloquejos de domini
users: Per als usuaris locals en línia
- domain_blocks_rationale:
- title: Mostra el raonament
- hero:
- desc_html: Es mostra en pàgina frontal. Recomanat al menys 600x100px. Si no es configura es mostrarà el del servidor
- title: Imatge d’heroi
- mascot:
- desc_html: Es mostra a diverses pàgines. Es recomana com a mínim 293 × 205px. Si no està configurat, torna a la mascota predeterminada
- title: Imatge de la mascota
- peers_api_enabled:
- desc_html: Els noms de domini que aquest servidor ha trobat al fedivers
- title: Publica la llista de servidors descoberts
- preview_sensitive_media:
- desc_html: Les visualitzacions prèvies d'enllaços d'altres llocs web mostraran una miniatura encara que els mitjans de comunicació estiguin marcats com a sensibles
- title: Mostra els mitjans sensibles a les previsualitzacions d'OpenGraph
- profile_directory:
- desc_html: Permet als usuaris ser descoberts
- title: Habilita el directori de perfils
registrations:
- closed_message:
- desc_html: Apareix en la primera pàgina quan es tanquen els registres. Pots utilitzar etiquetes HTML
- title: Missatge de registre tancat
- deletion:
- desc_html: Permet a qualsevol usuari d'esborrar el seu compte
- title: Obre la supressió del compte
- min_invite_role:
- disabled: Ningú
- title: Permet les invitacions de
- require_invite_text:
- desc_html: Quan el registre requereix aprovació manual, fer que sigui obligatori enlloc d'opcions l escriure el text de la solicitud d'invitació "Perquè vols unirte?"
- title: Requerir als nous usuaris omplir el text de la solicitud d'invitació
+ preamble: Controla qui pot crear un compte en el teu servidor.
+ title: Registres
registrations_mode:
modes:
approved: Es requereix l’aprovació per registrar-se
none: Ningú no pot registrar-se
open: Qualsevol pot registrar-se
- title: Mode de registres
- show_known_fediverse_at_about_page:
- desc_html: Quan està desactivat, restringeix la línia de temps pública enllaçada des de la pàgina inicial a mostrar només contingut local
- title: Inclou el contingut federat a la pàgina no autenticada de la línia de temps pública
- show_staff_badge:
- desc_html: Mostra una insígnia de personal en la pàgina d'usuari
- title: Mostra insígnia de personal
- site_description:
- desc_html: Paràgraf introductori a la pàgina principal i en etiquetes meta. Pots utilitzar etiquetes HTML, en particular <a>
i <em>
.
- title: Descripció del servidor
- site_description_extended:
- desc_html: Un bon lloc per al codi de conducta, regles, directrius i altres coses que distingeixen el teu servidor. Pots utilitzar etiquetes HTML
- title: Descripció ampliada del lloc
- site_short_description:
- desc_html: Es mostra a la barra lateral i a metaetiquetes. Descriu en un únic paràgraf què és Mastodon i què fa que aquest servidor sigui especial.
- title: Descripció curta del servidor
- site_terms:
- desc_html: Pots escriure la teva pròpia política de privadesa, els termes del servei o d'altres normes legals. Pots utilitzar etiquetes HTML
- title: Termes del servei personalitzats
- site_title: Nom del servidor
- thumbnail:
- desc_html: S'utilitza per obtenir visualitzacions prèvies a través d'OpenGraph i API. Es recomana 1200x630px
- title: Miniatura del servidor
- timeline_preview:
- desc_html: Mostra l'enllaç a la línia de temps pública a la pàgina inicial i permet l'accés a l'API a la línia de temps pública sense autenticació
- title: Permet l'accés no autenticat a la línia de temps pública
- title: Configuració del lloc
- trendable_by_default:
- desc_html: Afecta a les etiquetes que no s'havien rebutjat prèviament
- title: Permet que les etiquetes passin a la tendència sense revisió prèvia
- trends:
- desc_html: Mostra públicament les etiquetes revisades anteriorment que actualment estan en tendència
- title: Etiquetes tendència
+ title: Paràmetres del servidor
site_uploads:
delete: Esborra el fitxer pujat
destroyed_msg: La càrrega al lloc s'ha suprimit correctament!
statuses:
+ account: Autor
+ application: Aplicació
back_to_account: Torna a la pàgina del compte
back_to_report: Torna a la pàgina del informe
batch:
remove_from_report: Treu del informe
report: Informe
deleted: Eliminada
+ favourites: Favorits
+ history: Històric de versions
+ in_reply_to: Responent a
+ language: Llengua
media:
title: Contingut multimèdia
+ metadata: Metadada
no_status_selected: No s’han canviat els estatus perquè cap no ha estat seleccionat
+ open: Obrir apunt
+ original_status: Apunt original
+ reblogs: Impulsos
+ status_changed: Apunt canviat
title: Estats del compte
+ trending: Tendència
+ visibility: Visibilitat
with_media: Amb contingut multimèdia
strikes:
actions:
@@ -798,6 +767,9 @@ ca:
description_html: Aquests son enllaços que ara mateix s'estan compartint molt per els comptes que el teu servidor en veu les publicacions. Poden ajudar als teus usuaris a trobar què està passant en el món. Cap dels enllaços es mostra publicament fins que no aprovis el mitjà. També pots aceptar o rebutjar enllaços individuals.
disallow: No permetre l'enllaç
disallow_provider: No permetre el mitjà
+ no_link_selected: No s'ha canviat cap enllaç perquè cap ha estat seleccionat
+ publishers:
+ no_publisher_selected: No s'ha canviat cap editor perquè cap ha estat seleccionat
shared_by_over_week:
one: Compartit per una persona en la darrera setmana
other: Compartit per %{count} persones en la darrera setmana
@@ -817,6 +789,7 @@ ca:
description_html: Aquestes son publicacions que el teu servidor veu i que ara mateix s'estan compartint i afavorint molt. Poden ajudar als teus nous usuaris i als que retornen a trobar més gent a qui seguir. Cap publicació es mostra publicament fins que no aprovis l'autor i l'autor permeti que el seu compte sigui sugerit a altres. També pots aceptar o rebutjar publicacions individuals.
disallow: Rebutja publicació
disallow_account: Rebutja autor
+ no_status_selected: No s'ha canviat els apunts en tendència perquè cap ha estat seleccionat
not_discoverable: L'autor no ha activat poder ser detectable
shared_by:
one: Compartit o afavorit una vegada
@@ -832,6 +805,7 @@ ca:
tag_uses_measure: total usos
description_html: Aquestes son etiquetes que ara mateix estan apareixen en moltes publicacions que el teu servidor veu. Poden ajudar als teus usuaris a trobar de què està parlant majoritariament la gent en aquest moment. Cap etiqueta es mostra publicament fins que no l'aprovis.
listable: Es pot suggerir
+ no_tag_selected: No s'ha canviat cap etiqueta perquè cap ha estat seleccionada
not_listable: No es pot suggerir
not_trendable: No apareixeran en les tendències
not_usable: No pot ser emprat
@@ -852,6 +826,26 @@ ca:
edit_preset: Edita l'avís predeterminat
empty: Encara no has definit cap preavís.
title: Gestiona les configuracions predefinides dels avisos
+ webhooks:
+ add_new: Afegir extrem
+ delete: Elimina
+ description_html: Un webhook habilita Mastodon per a empènyer notificacions en temps real sobre els esdeveniments escollits de la teva pròpia aplicació, per tant la teva aplicació pot activar reaccions automaticament .
+ disable: Desactiva
+ disabled: Desactivat
+ edit: Editar extrem
+ empty: Encara no tens cap extrem de webhook configurat.
+ enable: Activa
+ enabled: Actiu
+ enabled_events:
+ one: 1 esdeveniment activat
+ other: "%{count} esdeveniments activats"
+ events: Esdeveniments
+ new: Nou webhook
+ rotate_secret: Rota el secret
+ secret: Signant el secret
+ status: Estat
+ title: Webhooks
+ webhook: Webhook
admin_mailer:
new_appeal:
actions:
@@ -875,12 +869,8 @@ ca:
new_trends:
body: 'Els següents elements necessiten una revisió abans de que puguin ser mostrats públicament:'
new_trending_links:
- no_approved_links: Actualment no hi ha enllaços en tendència aprovats.
- requirements: 'Qualsevol d''aquests candidats podria superar el #%{rank} del enllaç en tendència aprovat, que actualment és "%{lowest_link_title}" amb una puntuació de %{lowest_link_score}.'
title: Enllaços en tendència
new_trending_statuses:
- no_approved_statuses: Actualment no hi ha etiquetes en tendència aprovades.
- requirements: 'Qualsevol d''aquests candidats podria superar el #%{rank} de la publicació en tendència aprovada, que actualment és "%{lowest_status_url}" amb una puntuació de %{lowest_status_score}.'
title: Publicacions en tendència
new_trending_tags:
no_approved_tags: Actualment no hi ha etiquetes en tendència aprovades.
@@ -916,16 +906,13 @@ ca:
applications:
created: L'aplicació s'ha creat correctament
destroyed: L'aplicació s'ha suprimit correctament
- invalid_url: L'URL proporcionat no és correcte
regenerate_token: Torna a generar l'identificador d'accés
token_regenerated: L'identificador d'accés s'ha generat correctament
warning: Aneu amb compte amb aquestes dades. No les compartiu mai amb ningú!
your_token: El teu identificador d'accés
auth:
- apply_for_account: Demana una invitació
+ apply_for_account: Apunta't a la llista d'espera
change_password: Contrasenya
- checkbox_agreement_html: Accepto les normes del servidor i els termes del servei
- checkbox_agreement_without_rules_html: Acepto els termes del servei
delete_account: Suprimeix el compte
delete_account_html: Si vols suprimir el compte pots fer-ho aquí . Se't demanarà confirmació.
description:
@@ -944,6 +931,7 @@ ca:
migrate_account: Mou a un compte diferent
migrate_account_html: Si vols redirigir aquest compte a un altre diferent, el pots configurar aquí .
or_log_in_with: O inicia sessió amb
+ privacy_policy_agreement_html: He llegit i estic d'acord amb la política de privacitat
providers:
cas: CAS
saml: SAML
@@ -951,12 +939,18 @@ ca:
registration_closed: "%{instance} no accepta nous membres"
resend_confirmation: Torna a enviar el correu de confirmació
reset_password: Restableix la contrasenya
+ rules:
+ preamble: Aquestes regles estan establertes i aplicades per els moderadors de %{domain}.
+ title: Algunes regles bàsiques.
security: Seguretat
set_new_password: Estableix una contrasenya nova
setup:
email_below_hint_html: Si l’adreça de correu electrònic següent és incorrecta, podeu canviar-la aquí i rebre un nou correu electrònic de confirmació.
email_settings_hint_html: El correu electrònic de confirmació es va enviar a %{email}. Si aquesta adreça de correu electrònic no és correcta, la podeu canviar a la configuració del compte.
title: Configuració
+ sign_up:
+ preamble: Amb un compte en aquest servidor Mastodon, podràs seguir qualsevol altre persona de la xarxa, independentment d'on tingui el seu compte.
+ title: Anem a configurar-te a %{domain}.
status:
account_status: Estat del compte
confirming: Esperant que es completi la confirmació del correu electrònic.
@@ -965,7 +959,6 @@ ca:
redirecting_to: El teu compte és inactiu perquè actualment està redirigint a %{acct}.
view_strikes: Veure accions del passat contra el teu compte
too_fast: Formulari enviat massa ràpid, torna a provar-ho.
- trouble_logging_in: Problemes per iniciar la sessió?
use_security_key: Usa clau de seguretat
authorize_follow:
already_following: Ja estàs seguint aquest compte
@@ -1023,10 +1016,6 @@ ca:
more_details_html: Per a més detalls, llegeix la política de privadesa .
username_available: El teu nom d'usuari esdevindrà altre cop disponible
username_unavailable: El teu nom d'usuari quedarà inutilitzable
- directories:
- directory: Directori de perfils
- explanation: Descobreix usuaris segons els teus interessos
- explore_mastodon: Explora %{title}
disputes:
strikes:
action_taken: Acció presa
@@ -1105,29 +1094,60 @@ ca:
public: Línies de temps públiques
thread: Converses
edit:
+ add_keyword: Afegeix paraula clau
+ keywords: Paraules clau
+ statuses: Apunts individuals
+ statuses_hint_html: Aquest filtre aplica als apunts individuals seleccionats independentment de si coincideixen amb les paraules clau de sota. Revisa o elimina els apunts des d'el filtre .
title: Editar filtre
errors:
+ deprecated_api_multiple_keywords: Aquests paràmetres no poden ser canviats des d'aquesta aplicació perquè apliquen a més d'un filtre per paraula clau. Utilitza una aplicació més recent o la interfície web.
invalid_context: Cap o el context proporcionat no és vàlid
- invalid_irreversible: El filtratge irreversible només funciona amb el contextos inici o notificacions
index:
+ contexts: Filtres en %{contexts}
delete: Esborra
empty: No hi tens cap filtre.
+ expires_in: Expira en %{distance}
+ expires_on: Expira el %{date}
+ keywords:
+ one: "%{count} paraula clau"
+ other: "%{count} paraules clau"
+ statuses:
+ one: "%{count} apunt"
+ other: "%{count} apunts"
+ statuses_long:
+ one: "%{count} apunt individual oculta"
+ other: "%{count} apunts individuals ocultats"
title: Filtres
new:
+ save: Desa el nou filtre
title: Afegir un nou filtre
+ statuses:
+ back_to_filter: Tornar al filtre
+ batch:
+ remove: Eliminar del filtre
+ index:
+ hint: Aquest filtre aplica als apunts seleccionats independentment d'altres criteris. Pots afegir més apunts a aquest filtre des de l'interfície Web.
+ title: Apunts filtrats
footer:
- developers: Desenvolupadors
- more: Més…
- resources: Recursos
trending_now: En tendència
generic:
all: Tot
+ all_items_on_page_selected_html:
+ one: "%{count} article d'aquesta s'ha seleccionat."
+ other: Tots %{count} articles d'aquesta pàgina estan seleccionats.
+ all_matching_items_selected_html:
+ one: "%{count} article coincident amb la teva cerca està seleccionat."
+ other: Tots %{count} articles coincidents amb la teva cerca estan seleccionats.
changes_saved_msg: Els canvis s'han desat correctament!
copy: Copiar
delete: Esborra
+ deselect: Desfer selecció
none: Cap
order_by: Ordena per
save_changes: Desa els canvis
+ select_all_matching_items:
+ one: Selecciona %{count} article coincident amb la teva cerca.
+ other: Selecciona tots %{count} articles coincidents amb la teva cerca.
today: avui
validation_errors:
one: Alguna cosa no va bé! Si us plau, revisa l'error
@@ -1151,7 +1171,6 @@ ca:
following: Llista de seguits
muting: Llista de silenciats
upload: Carrega
- in_memoriam_html: En Memòria.
invites:
delete: Desactiva
expired: Caducat
@@ -1232,19 +1251,10 @@ ca:
copy_account_note_text: 'Aquest usuari s’ha mogut des de %{acct}, aquí estaven les teves notes prèvies sobre ell:'
notification_mailer:
admin:
+ report:
+ subject: "%{name} ha presentat un informe"
sign_up:
subject: "%{name} s'ha registrat"
- digest:
- action: Mostra totes les notificacions
- body: Un resum del que et vas perdre des de la darrera visita el %{since}
- mention: "%{name} t'ha mencionat en:"
- new_followers_summary:
- one: A més, has adquirit un nou seguidor durant la teva absència! Visca!
- other: A més, has adquirit %{count} nous seguidors mentre estaves fora! Increïble!
- subject:
- one: "1 notificació nova des de la teva darrera visita 🐘"
- other: "%{count} notificacions noves des de la teva darrera visita 🐘"
- title: Durant la teva absència…
favourite:
body: "%{name} ha marcat com a favorit el teu estat:"
subject: "%{name} ha marcat com a favorit el teu estat"
@@ -1316,6 +1326,8 @@ ca:
other: Altre
posting_defaults: Valors predeterminats de publicació
public_timelines: Línies de temps públiques
+ privacy_policy:
+ title: Política de Privacitat
reactions:
errors:
limit_reached: Límit de diferents reaccions assolit
@@ -1338,22 +1350,7 @@ ca:
remove_selected_follows: Deixa de seguir als usuaris seleccionats
status: Estat del compte
remote_follow:
- acct: Escriu el teu usuari@domini des del qual vols seguir
missing_resource: No s'ha pogut trobar la URL de redirecció necessària per al compte
- no_account_html: No tens cap compte? Pots registrar-te aquí
- proceed: Comença a seguir
- prompt: 'Seguiràs a:'
- reason_html: "Per què és necessari aquest pas? %{instance}
pot ser que no sigui el servidor on estàs registrat per tant primer hem de redirigir-te al teu servidor."
- remote_interaction:
- favourite:
- proceed: Procedir a afavorir
- prompt: 'Vols marcar com a favorit aquesta publicació:'
- reblog:
- proceed: Procedir a impulsar
- prompt: 'Vols impulsar aquesta publicació:'
- reply:
- proceed: Procedir a respondre
- prompt: 'Vols respondre a aquesta publicació:'
reports:
errors:
invalid_rules: no fa referència a normes vàlides
@@ -1525,8 +1522,6 @@ ca:
too_late: És massa tard per a apel·lar aquesta acció
tags:
does_not_match_previous_name: no coincideix amb el nom anterior
- terms:
- title: "%{instance} Condicions del servei i política de privadesa"
themes:
contrast: Mastodon (alt contrast)
default: Mastodon (fosc)
@@ -1570,7 +1565,7 @@ ca:
details: 'Aquí estan els detalls del inici de sessió:'
explanation: Hem detectat un inici de sessió del teu compte des d'una nova adreça IP.
further_actions_html: Si no has estat tu, recomanem que tu %{action} immediatament i activis l'autenticació de dos-factors per a mantenir el teu compte segur.
- subject: El teu compte ha estat accedit des d'una nova adreça IP
+ subject: S'ha accedit al teu compte des d'una adreça IP nova
title: Un nou inici de sessió
warning:
appeal: Envia una apel·lació
@@ -1605,20 +1600,13 @@ ca:
suspend: Compte suspès
welcome:
edit_profile_action: Configura el perfil
- edit_profile_step: Pots personalitzar el teu perfil penjant un avatar, un encapçalament, canviant el teu nom de visualització i molt més. Si prefereixes revisar els seguidors nous abans de que et puguin seguir, pots blocar el teu compte.
+ edit_profile_step: Pots personalitzar el teu perfil pujant-hi un avatar, canviant el teu nom de visualització i molt més. Si ho prefereixes, pots revisar els seguidors nous abans de que et puguin seguir.
explanation: Aquests són alguns consells per a començar
final_action: Comença a publicar
- final_step: 'Comença a publicar! Fins i tot sense seguidors, els altres poden veure els teus missatges públics, per exemple, a la línia de temps local i a les etiquetes ("hashtags"). És possible que vulguis presentar-te amb l''etiqueta #introductions.'
+ final_step: 'Comença a publicar! Fins i tot sense seguidors, els altres poden veure els teus missatges públics, per exemple, a la línia de temps local i a les etiquetes. És possible que vulguis presentar-te amb l''etiqueta #introductions.'
full_handle: El teu nom d'usuari sencer
full_handle_hint: Això és el que has de dir als teus amics perquè puguin enviar-te missatges o seguir-te des d'un altre servidor.
- review_preferences_action: Canviar preferències
- review_preferences_step: Assegura't d'establir les teves preferències, com ara els correus electrònics que vols rebre o el nivell de privadesa per defecte que t'agradaria que tinguin les teves entrades. Si no tens malaltia de moviment, pots optar per habilitar la reproducció automàtica de GIF.
subject: Et donem la benvinguda a Mastodon
- tip_federated_timeline: La línia de temps federada és el cabal principal de la xarxa Mastodon. Però només inclou les persones a les quals els teus veïns estan subscrits, de manera que no està completa.
- tip_following: Per defecte segueixes als administradors del servidor. Per trobar més persones interessants, consulta les línies de temps local i federada.
- tip_local_timeline: La línia de temps local és la vista del flux de publicacions dels usuaris de %{instance}. Aquests usuaris són els teus veïns més propers!
- tip_mobile_webapp: Si el teu navegador del mòbil t'ofereix afegir Mastodon a la teva pantalla d'inici, podràs rebre notificacions "push". Es comporta com una aplicació nativa en molts aspectes!
- tips: Consells
title: Benvingut a bord, %{name}!
users:
follow_limit_reached: No pots seguir més de %{limit} persones
diff --git a/config/locales/ckb.yml b/config/locales/ckb.yml
index 6429696ed2..562c6b00a9 100644
--- a/config/locales/ckb.yml
+++ b/config/locales/ckb.yml
@@ -1,93 +1,26 @@
---
ckb:
about:
- about_hashtag_html: ئەمانە توتی گشتین بە هەشتەگی گشتی #%{hashtag}} . گەر ئێوە لە هەر ڕاژەیەک هەژمارەتان بێت دەتوانیت لێرە بەم نووسراوانە هاوئاهەنگ بن.
about_mastodon_html: 'تۆڕی کۆمەڵایەتی داهاتوو: هیچ ڕیکلامێک ، هیچ چاودێرییەکی کۆمپانیا ، دیزاینی ئەخلاقی و لامەرکەزی! خاوەنی داتاکانت نابێ لە ماستۆدۆن!'
- about_this: دەربارە
- active_count_after: چالاک
- active_footnote: بەکارهێنەرانی چالاکی مانگانە (MAU)
- administered_by: 'بەڕێوەبراو لەلایەن:'
- api: API
- apps: ئەپەکانی مۆبایل
- apps_platforms: بەکارهێنانی ماستۆدۆن لە iOS، ئەندرۆید و سەکۆکانی تر
- browse_directory: گەڕان لە ڕێبەرێکی پرۆفایل و پاڵاوتن بەپێی بەرژەوەندیەکان
- browse_local_posts: گەڕانی ڕاستەوخۆ لە نووسراوە گشتیەکان لەم ڕاژەوە
- browse_public_posts: گەڕان لە جۆگەیەکی زیندووی نووسراوە گشتیەکان لەسەر ماستۆدۆن
- contact: بەردەنگ
contact_missing: سازنەکراوە
contact_unavailable: بوونی نییە
- discover_users: پەیداکردنی بەکارهێنەران
- documentation: بەڵگەکان
- federation_hint_html: بە هەژمارەیەک لەسەر %{instance} دەتوانیت شوێن خەڵک بکەویت لەسەر هەرڕاژەیەکی ماستۆدۆن.
- get_apps: ئەپێکی تەلەفۆن تاقی بکەرەوە
hosted_on: مەستودۆن میوانداری کراوە لە %{domain}
- instance_actor_flash: |
- ئەم هەژمارەیە ئەکتەرێکی خەیاڵی بەکارهاتووە بۆ نوێنەرایەتی کردنی خودی ڕاژەکە و نەک هیچ بەکارهێنەرێکی تاک.
- بۆ مەبەستی فیدراسیۆن بەکاردێت و نابێت بلۆک بکرێت مەگەر دەتەوێت هەموو نمونەکە بلۆک بکەیت، کە لە حاڵەتەش دا پێویستە بلۆکی دۆمەین بەکاربهێنیت.
- learn_more: زیاتر فێربه
- logged_in_as_html: لە ئێستادا تۆ وەک %{username} چوویتە ژوورەوە.
- logout_before_registering: تۆ پێشتر چوویتە ژوورەوە.
- privacy_policy: ڕامیاری تایبەتێتی
- rules: یاساکانی سێرڤەر
- rules_html: 'لە خوارەوە کورتەیەک لەو یاسایانە دەخەینەڕوو کە پێویستە پەیڕەوی لێبکەیت ئەگەر بتەوێت ئەکاونتێکت هەبێت لەسەر ئەم سێرڤەرەی ماستۆدۆن:'
- see_whats_happening: بزانە چی ڕوودەدات
- server_stats: 'زانیاری ڕاژەکار:'
- source_code: کۆدی سەرچاوە
- status_count_after:
- one: دۆخ
- other: پۆست
- status_count_before: لە لایەن یەکەوە
- tagline: دوای هاوڕێکان بکەوە و ئەوانەی نوێ بدۆزیەوە
- terms: مەرجەکانی خزمەتگوزاری
- unavailable_content: ڕاژەی چاودێریکراو
- unavailable_content_description:
- domain: ڕاژەکار
- reason: هۆکار
- rejecting_media: 'پەڕگەکانی میدیا لەم ڕاژانەوە پرۆسە ناکرێت یان هەڵناگیرێن، و هیچ وێنۆچکەیەک پیشان نادرێت، پێویستی بە کرتە کردنی دەستی هەیە بۆ فایلە سەرەکیەکە:'
- rejecting_media_title: پاڵێوەری میدیا
- silenced: 'بابەتەکانی ئەم ڕاژانە لە هێڵی کاتی گشتی و گفتوگۆکاندا دەشاردرێنەوە، و هیچ ئاگانامێک دروست ناکرێت لە چالاکی بەکارهێنەرانیان، مەگەر تۆ بەدوایان دەچیت:'
- silenced_title: ڕاژە ناچالاکەکان
- suspended: 'هیچ داتایەک لەم ڕاژانەوە پرۆسە ناکرێت، خەزن دەکرێت یان دەگۆڕدرێتەوە، وا دەکات هیچ کارلێک یان پەیوەندییەک لەگەڵ بەکارهێنەران لەم ڕاژانە مەحاڵ بێت:'
- suspended_title: ڕاژە ڕاگیراوەکان
- unavailable_content_html: ماستۆدۆن بە گشتی ڕێگەت پێدەدات بۆ پیشاندانی ناوەڕۆک لە و کارلێ کردن لەگەڵ بەکارهێنەران لە هەر ڕاژەیەکی تر بە گشتی. ئەمانە ئەو بەدەرکردنانەن کە کراون لەسەر ئەم ڕاژە تایبەتە.
- user_count_after:
- one: بەکارهێنەر
- other: بەکارهێنەران
- user_count_before: "`خاوەن"
- what_is_mastodon: ماستۆدۆن چییە?
accounts:
- choices_html: 'هەڵبژاردنەکانی %{name}:'
- endorsements_hint: دەتوانیت ئەو کەسانە پەسەند بکەیت کە پەیڕەویان دەکەیت لە ڕووکاری وێب، و ئەوان لێرە دەردەکەون.
- featured_tags_hint: دەتوانیت هاشتاگی تایبەت پێشکەش بکەیت کە لێرە پیشان دەدرێت.
follow: شوێن کەوە
followers:
one: شوێنکەوتوو
other: شوێنکەوتووان
following: شوێنکەوتووی
instance_actor_flash: ئەم ئەکاونتە ئەکتەرێکی مەجازییە کە بەکاردێت بۆ نوێنەرایەتیکردنی خودی سێرڤەرەکە نەک هیچ بەکارهێنەرێکی تاکەکەسی. بۆ مەبەستی فیدراسیۆن بەکاردێت و نابێت ڕابگیرێت.
- joined: بەشداری %{date}
last_active: دوا چالاکی
link_verified_on: خاوەنداریەتی ئەم لینکە لە %{date} چێک کراوە
- media: میدیا
- moved_html: "%{name} گواستراوەتەوە بۆ %{new_profile_link}:"
- network_hidden: ئەم زانیاریە بەردەست نیە
nothing_here: لێرە هیچ نییە!
- people_followed_by: ئەو کەسانەی کە %{name} بەدوایدا دەکەون
- people_who_follow: ئەو کەسانەی کە بەدوای %{name} دا دەکەون
pin_errors:
following: تۆ دەبێت هەر ئێستا بە دوای ئەو کەسەدا بیت کە دەتەوێت پەسەندی بکەیت
posts:
one: توت
other: تووتەکان
posts_tab_heading: تووتەکان
- posts_with_replies: تووتەکان و وڵامەکان
- roles:
- admin: بەڕێوەبەر
- bot: بۆت
- group: گرووپ
- moderator: مۆد
- unavailable: پرۆفایل بەردەست نیە
- unfollow: بەدوادانەچو
admin:
account_actions:
action: ئەنجامدانی کردار
@@ -104,7 +37,6 @@ ckb:
avatar: وێنۆچکە
by_domain: دۆمەین
change_email:
- changed_msg: ئیمەیڵی ئەژمێر بە سەرکەوتوویی گۆڕا!
current_email: ئیمەیلی ئێستا
label: گۆڕینی ئیمێڵ
new_email: ئیمەیڵی نوێ
@@ -183,12 +115,6 @@ ckb:
reset: ڕێکخستنەوە
reset_password: گەڕانەوەی تێپەڕوشە
resubscribe: دووبارە ئابونەبوون
- role: مۆڵەتەکان
- roles:
- admin: بەڕێوەبەر
- moderator: بەڕێوەبەر
- staff: ستاف
- user: بەکارهێنەر
search: گەڕان
search_same_email_domain: بەکارهێنەرانی دیکە بە ئیمەیلی یەکسان
search_same_ip: بەکارهێنەرانی تر بەهەمان ئای پی
@@ -275,7 +201,6 @@ ckb:
update_status: بەڕۆژکردنی دۆخ
actions:
update_status_html: "%{name} پۆستی نوێکراوە لەلایەن %{target}"
- deleted_status: "(نووسراوە سڕاوە)"
empty: هیچ لاگی کارنەدۆزرایەوە.
filter_by_action: فلتەر کردن بە کردار
filter_by_user: فلتەر کردن بە کردار
@@ -578,93 +503,15 @@ ckb:
empty: هێشتا هیچ یاسایەکی سێرڤەر پێناسە نەکراوە.
title: یاساکانی سێرڤەر
settings:
- activity_api_enabled:
- desc_html: ژماردنی دۆخی بڵاوکراوە ی ناوخۆیی و بەکارهێنەرە چالاکەکان و تۆماری نوێ لە سەتڵی هەفتانە
- title: بڵاوکردنەوەی ئاماری کۆ دەربارەی چالاکی بەکارهێنەر
- bootstrap_timeline_accounts:
- desc_html: چەند ناوی بەکارهێنەرێک جیابکە بە بۆر، تەنها هەژمارەی بلۆککراوەکان و ناوخۆیی کاردەکەن. بنەڕەت کاتێک بەتاڵ بوو هەموو بەڕێوەبەرە خۆجێیەکانن.
- title: بەدواداچوەکانی گریمانەیی بۆ بەکارهێنەرە نوێکان
- contact_information:
- email: ئیمەیلی بازرگانی
- username: ناوی بەکارهێنەر
- custom_css:
- desc_html: دەستکاری کردنی شێوەی CSS بارکراو لەسەر هەموو لاپەڕەکان
- title: CSSی تایبەتمەند
- default_noindex:
- desc_html: کاردەکاتە سەر هەموو بەکارهێنەرەکان کە ئەم ڕێکخستنە خۆیان نەگۆڕاون
- title: بەکارهێنەران لە پێڕستکردنی بزوێنەری گەڕان بە گریمانەیی هەڵبژێن
domain_blocks:
all: بۆ هەموو کەسێک
disabled: بۆ هیچ کەسێک
- title: بلۆکەکانی دۆمەین پیشان بدە
users: بۆ چوونە ژوورەوەی بەکارهێنەرانی ناوخۆ
- domain_blocks_rationale:
- title: پیشاندانی ڕێژەیی
- hero:
- desc_html: نیشان درا لە پەڕەی سەرەتا. بەلایەنی کەمەوە 600x100px پێشنیارکراوە. کاتێک ڕێک نەکەویت، دەگەڕێتەوە بۆ وێنۆجکەی ڕاژە
- title: وێنەی پاڵەوان
- mascot:
- desc_html: نیشان دراوە لە چەند لاپەڕەیەک. بەلایەنی کەمەوە 293× 205px پێشنیارکراوە. کاتێک دیاری ناکرێت، دەگەڕێتەوە بۆ بەختبەختێکی ئاسایی
- title: وێنەی ماسکۆت
- peers_api_enabled:
- desc_html: ناوی دۆمەینەکانێک کە ئەم ڕاژە پەیوەندی پێوەگرتووە
- title: بڵاوکردنەوەی لیستی راژەکانی دۆزراوە
- preview_sensitive_media:
- desc_html: بینینی لینک لە وێب سایتەکانی تر وێنۆچکەیەک پیشان دەدات تەنانەت ئەگەر میدیاکە بە هەستیاری نیشان کرابێت
- title: پیشاندانی میدیای هەستیار لە پێشبینیەکانی OpenGraph
- profile_directory:
- desc_html: ڕێگەدان بە بەکارهێنەران بۆ دۆزینەوەیان
- title: چالاککردنی ڕێنیشاندەرێکی پرۆفایل
- registrations:
- closed_message:
- desc_html: لە پەڕەی پێشەوە پیشان دەدرێت کاتێک تۆمارەکان داخراون. دەتوانیت تاگەکانی HTML بەکاربێنیت
- title: نامەی تۆمارکردن داخراو
- deletion:
- desc_html: ڕێ بدە بە هەر کەسێک هەژمارەکەی بسڕیتەوە
- title: سڕینەوەی هەژمارە بکەوە
- min_invite_role:
- disabled: هیچکەس
- title: ڕێپێدانی بانگهێشتەکان لەلایەن
- require_invite_text:
- desc_html: کاتێک تۆمارکردنەکان پێویستیان بە ڕەزامەندی دەستی هەیە، "بۆچی دەتەوێت بەشداری بکەیت؟" نووسینی دەق ئیجبارییە نەک ئیختیاری
registrations_mode:
modes:
approved: پەسەندکردنی داواکراو بۆ ناوتۆمارکردن
none: کەس ناتوانێت خۆی تۆمار بکات
open: هەر کەسێک دەتوانێت خۆی تۆمار بکات
- title: مەرجی تۆمارکردن
- show_known_fediverse_at_about_page:
- desc_html: کاتێک ناچالاک کرا، هێڵی کاتی گشتی کە بەستراوەتەوە بە لاپەڕەی ئێستا سنووردار دەبن، تەنها ناوەڕۆکی ناوخۆیی پیشاندەدرێن
- title: نیشاندانی ڕاژەکانی دیکە لە پێشنەمایەشی ئەم ڕاژە
- show_staff_badge:
- desc_html: پیشاندانی هێمایەک هاوکار لە سەر پەڕەی بەکارهێنەر
- title: نیشاندانی هێمای هاوکار
- site_description:
- desc_html: کورتە باسیک دەربارەی API، دەربارەی ئەوە چ شتێک دەربارەی ئەم ڕاژەی ماستۆدۆن تایبەتە یان هەر شتێکی گرینگی دیکە. دەتوانن HTML بنووسن، بەتایبەت <a>
وە <em>
.
- title: دەربارەی ئەم ڕاژە
- site_description_extended:
- desc_html: شوێنیکی باشە بۆ نووسینی سیاسەتی ئیس، یاسا و ڕێسا ، ڕێنمایی و هەر شتیک کە تایبەت بەم ڕاژیە، تاگەکانی HTMLــلیش ڕێگەی پێدراوە
- title: زانیاری تەواوکەری تایبەتمەندی
- site_short_description:
- desc_html: نیشان لە شریتی لاتەنیشت و مێتا تاگەکان. لە پەرەگرافێک دا وەسفی بکە کە ماستۆدۆن چیە و چی وا لە ڕاژە کە دەکات تایبەت بێت.
- title: دەربارەی ئەم ڕاژە
- site_terms:
- desc_html: دەتوانیت سیاسەتی تایبەتیێتی خۆت بنووسیت، مەرجەکانی خزمەتگوزاری یان یاسایی تر. دەتوانیت تاگەکانی HTML بەکاربێنیت
- title: مەرجەکانی خزمەتگوزاری ئاسایی
- site_title: ناوی ڕاژە
- thumbnail:
- desc_html: بۆ پێشبینین بەکارهاتووە لە ڕێگەی OpenGraph وە API. ڕووناکی بینین ١٢٠٠x٦٣٠پیکسێڵ پێشنیارکراوە
- title: وێنەی بچکۆلەی ڕاژە
- timeline_preview:
- desc_html: لینکەکە نیشان بدە بۆ هێڵی کاتی گشتی لەسەر پەڕەی نیشتنەوە و ڕێگە بە API بدە دەستگەیشتنی هەبێت بۆ هێڵی کاتی گشتی بەبێ سەلماندنی ڕەسەنایەتی
- title: ڕێگەبدە بە چوونە ژورەوەی نەسەلمێنراو بۆ هێڵی کاتی گشتی
- title: ڕێکخستنەکانی ماڵپەڕ
- trendable_by_default:
- desc_html: کاریگەری لەسەر هاشتاگی پێشوو کە پێشتر ڕێگە پێنەدراوە
- title: ڕێگە بدە بە هاشتاگی بەرچاوکراوە بەبێ پێداچوونەوەی پێشوو
- trends:
- desc_html: بە ئاشکرا هاشتاگی پێداچوونەوەی پێشوو پیشان بدە کە ئێستا بەرچاوکراوەن
- title: هاشتاگی بەرچاوکراوە
site_uploads:
delete: سڕینەوەی فایلی بارکراو
destroyed_msg: بارکردنی ماڵپەڕ بە سەرکەوتوویی سڕدراوەتەوە!
@@ -721,16 +568,12 @@ ckb:
applications:
created: بەرنامە بە سەرکەوتوویی دروست کرا
destroyed: بەرنامە بە سەرکەوتوویی سڕدراوەتەوە
- invalid_url: بەستەری دابینکراو نادروستە
regenerate_token: دووبارە دروستکردنەوەی نیشانەی چوونە ژوورەوە
token_regenerated: کۆدی دەستپێگەیشتن بە سەرکەوتوویی دروستکرا
warning: زۆر ئاگاداربە لەم داتایە. هەرگیز لەگەڵ کەس دا هاوبەشی مەکە!
your_token: کۆدی دەستپێگەیشتنی ئێوە
auth:
- apply_for_account: داواکردنی بانگهێشتێک
change_password: تێپەڕوشە
- checkbox_agreement_html: من ڕازیم بە یاساکانی ڕاژە وە مەرجەکانی خزمەتگوزاری
- checkbox_agreement_without_rules_html: من ڕازیم بە مەرجەکانی خزمەتگوزاری
delete_account: سڕینەوەی هەژمارە
delete_account_html: گەر هەرەکتە هەژمارەکەت بسڕیتەوە، لە لەم قوناغانە بڕۆیتە پێشەوە. داوای پەسەند کردنتان لێدەگیرێت.
description:
@@ -770,7 +613,6 @@ ckb:
redirecting_to: هەژمارەکەت ناچالاکە لەبەرئەوەی ئێستا دووبارە ئاڕاستەدەکرێتەوە بۆ %{acct}.
view_strikes: بینینی لێدانەکانی ڕابردوو لە دژی ئەکاونتەکەت
too_fast: فۆڕم زۆر خێرا پێشکەش کراوە، دووبارە هەوڵبدەرەوە.
- trouble_logging_in: کێشە ت هەیە بۆ چوونە ژوورەوە?
use_security_key: کلیلی ئاسایش بەکاربهێنە
authorize_follow:
already_following: ئێوە ئێستا شوێن کەوتووی ئەم هەژمارەیەی
@@ -828,10 +670,6 @@ ckb:
more_details_html: بۆ زانیاری زیاتر، پاراستنی نهێنیەکان ببینە.
username_available: ناوی تێپەڕبوونت دووبارە بەردەست دەبێت
username_unavailable: ناوی تێپەڕبوونت بەردەست نییە
- directories:
- directory: ڕێنیشاندەرێکی پرۆفایل
- explanation: دۆزینەوەی بەکارهێنەران لەسەر بنەمای بەرژەوەندییەکانیان
- explore_mastodon: گەڕان لە %{title}
disputes:
strikes:
title_actions:
@@ -886,7 +724,6 @@ ckb:
title: دەستکاری فلتەر
errors:
invalid_context: هیچ دەقێکی نادروست نییە یان بێ بڕوایە
- invalid_irreversible: فلتەرکردنی بێ گەڕانەوە تەنها کار دەکات لەگەڵ چوارچێوەی ماڵ یان ئاگانامەکان
index:
delete: سڕینەوە
empty: هیچ پالێوەرێکت نیە.
@@ -894,9 +731,6 @@ ckb:
new:
title: زیادکردنی فلتەری نوێ
footer:
- developers: پەرەپێدەران
- more: زیاتر…
- resources: سەرچاوەکان
trending_now: هەوادارانی ئێستا
generic:
all: هەموو
@@ -925,7 +759,6 @@ ckb:
following: لیستی خوارەوە
muting: لیستی کپکردنەوە
upload: بارکردن
- in_memoriam_html: لەیادبوون.
invites:
delete: لەکارخستن
expired: بەسەرچووە
@@ -994,14 +827,6 @@ ckb:
carry_mutes_over_text: ئەم بەکارهێنەرە گواسترایەوە بۆ %{acct}، تۆ بێدەنگت کردووە.
copy_account_note_text: 'ئەم بەکارهێنەرە لە %{acct} ەوە گواستیەوە، تێبینیەکانی پێشووت دەربارەیان بوون:'
notification_mailer:
- digest:
- action: پیشاندانی هەموو ئاگانامەکان
- body: ئەمە کورتەی ئەو نامانەی لە دەستت دا لە دوا سەردانیت لە %{since}
- mention: "%{name} ئاماژەی بە تۆ کرد لە:"
- new_followers_summary:
- one: لەکاتێک کە نەبوو ،شوێنکەوتوویێکی نوێت پەیداکرد،ئافەرم!
- other: کاتیک کە نەبووی %{count} شوێنکەوتوویێکی نوێت پەیدا کرد! چ باشە!
- title: لە غیابی تۆدا...
favourite:
body: 'دۆخت پەسەندکراوە لەلایەن %{name}:'
subject: "%{name} دۆخی تۆی پەسەند کرد"
@@ -1078,22 +903,7 @@ ckb:
remove_selected_follows: کۆتایی بە بەدوادانەچوی بەکارهێنەرە دیاریکراوەکان بدە
status: دۆخی هەژمارە
remote_follow:
- acct: ناونیشانی هەژمارەی username@domainخۆت لێرە بنووسە
missing_resource: نەیتوانی URLی ئاراستەکردنەوەی پێویست بدۆزێتەوە بۆ ئەژمێرەکەت
- no_account_html: هێشتا نەبووی بە ئەندام؟ لێرە دەتوانی هەژمارەیەک دروست بکەی
- proceed: بەردەوام بە بۆ بەدواداچوون
- prompt: 'تۆ بەدوای دا دەچیت:'
- reason_html: " بۆچی ئەم هەنگاوە پێویستە؟ %{instance}
لەوانەیە ئەو ڕاژەیە نەبێت کە تۆ تۆمارت کردووە، بۆیە پێویستە سەرەتا دووبارە ئاڕاستەت بکەین بۆ ڕاژەکاری ماڵەوەت."
- remote_interaction:
- favourite:
- proceed: بۆ دڵخوازکردنی ئەم توتە
- prompt: 'دەتەوێت ئەم تووتە تپەسەند بکەیت؛:'
- reblog:
- proceed: بەردەوام بە بۆ دووبارە توتاندن
- prompt: 'دەتەوێت ئەم تووتە دووبارە بکەیتەوە:'
- reply:
- proceed: بۆ وەڵامدانەوە
- prompt: 'دەتەوێت ئەم تووتە وڵام بدەیتەوە:'
scheduled_statuses:
over_daily_limit: ئێوە لە سنووری ڕیپێدراوی %{limit} توتی ئەو رۆژە،خۆرتر ڕۆیشتوویت
over_total_limit: تۆ سنووری خشتەکراوی %{limit} ت بەزاندووە
@@ -1207,8 +1017,6 @@ ckb:
sensitive_content: ناوەڕۆکی هەستیار
tags:
does_not_match_previous_name: لەگەڵ ناوی پێشوو یەک ناگرێتەوە
- terms:
- title: "%{instance} مەرجەکانی خزمەتگوزاری و سیاسەتی تایبەتیێتی"
themes:
contrast: ماستۆدۆن (کۆنتراستی بەرز)
default: ماستۆدۆن (ڕەش)
@@ -1247,20 +1055,11 @@ ckb:
suspend: هەژمار ڕاگیرا
welcome:
edit_profile_action: پرۆفایلی جێگیرکردن
- edit_profile_step: 'ئێوە دەتوانن پرۆفایلەکەتان بە دڵخوازی خۆتان بگۆڕن: دەتوانن وێنەی پرۆفایل،وێنەی پاشبنەما،ناو و... هتد دابین بکەن. ئەگەر هەرەکت بێت دەتوانی هەژمارەکەت تایبەت بکەیتەوە تا تەنها کەسانێک کە ئێوە ڕێگەتان داوە دەتوانن شوێنکەوتوو هەژمارەکەتان بن.'
explanation: ئەمە چەند ئامۆژگارییەکن بۆ دەست پێکردنت
final_action: دەست بکە بە بڵاوکردنەوە
- final_step: 'چیزی بنووسید! تەنانەت گەر ئێستا کەسێک شوێن کەوتووی ئێوە نەبوو، هەژمارەکانی دیکە و سەردانکەرەکانی پرۆفایلەکەتان نووسراوەکانی گشتی ئێوە دەبینن. بۆ نموونە لە پێرستی نووسراوە خۆماڵییەکان و لە لکاوەی(هاشتاگ) ەکان، شایەد هەرەکتان بێت بە چەسپکراوەی # خۆتان بناسێنن.'
full_handle: ناوی بەکارهێنەری تەواوی ئێوە
full_handle_hint: ئەمە ئەو شتەیە کە بە هاوڕێکانت دەلێی بۆ ئەوەی پەیام یان لە ڕاژەیەکی دیکەی ترەوە بەدوات بکەون.
- review_preferences_action: گۆڕینی پەسەندەکان
- review_preferences_step: دڵنیابە لە دانانی پەسەندکراوەکانت، وەک کام ئیمەیل کە دەتەوێت وەریبگرێ، یان دەتەوێت چ ئاستێکی تایبەتیت بۆ بابەتەکانت پێش گریمانە بێت. ئەگەر نەخۆشی جوڵەت(دڵ تێکەڵدان لە وێنە جووڵەییەکان) نیە، دەتوانیت هەڵبژێریت بۆ بەتواناکردنی پەخشکردنی خۆکاری GIF.
subject: بەخێربیت بۆ ماستۆدۆن
- tip_federated_timeline: پێرستی نووسراوەکانی هەمووشوێنێک وێنەیەکی گشتی لە تۆڕی ماستۆدۆنە، بەڵام تەنها بریتییە لە هاوسێکان کە شوێنیان کەوتن؛بس تەواو نییە.
- tip_following: بە شیوەی بنەڕەتی بەڕێوەبەران ڕاژەکەتان چاودێری دەکەن، بۆ پەداکردنی کەسانی سەرنجڕاکێشە چاودێری نووسراوە ناخۆیی و نووسراوەکانی شوێنەکانی دیکە بکەن.
- tip_local_timeline: پێرستی نووسراوە ناوخۆییەکان شێوەیەکی تەواو لە بەکارهێنەران لە سەر %{instance} پیسان دەدەن، ئەمانە جەیرانی ئێوەن!
- tip_mobile_webapp: ئەگەر وێبگەڕی مۆبایلەکەت پێشنیاری زیادکردنی ماستۆدۆن بۆ شاشەی ڕوومێزیەکەتی کرد، دەتوانیت ئاگانامەکانی هاندان وەربگری. لە زۆر ڕوەوە وەک بەرنامەیەیەکی ئەسڵی ئیس دەکا!
- tips: ئامۆژگاریەکان
title: بەخێربێیت، بەکارهێنەر %{name}!
users:
follow_limit_reached: ناتوانیت زیاتر لە %{limit} خەڵک پەیڕەو کەیت
diff --git a/config/locales/co.yml b/config/locales/co.yml
index ca4c7ed3d9..6e2066acca 100644
--- a/config/locales/co.yml
+++ b/config/locales/co.yml
@@ -1,91 +1,26 @@
---
co:
about:
- about_hashtag_html: Quessi sò statuti pubblichi taggati cù #%{hashtag} . Pudete interagisce cù elli sì voi avete un contu in qualche parte di u fediversu.
about_mastodon_html: 'A rete suciale di u futuru: micca pubblicità, micca surveglianza, cuncezzione etica, è dicentralizazione! Firmate in cuntrollu di i vostri dati cù Mastodon!'
- about_this: À prupositu
- active_count_after: attivi
- active_footnote: Utilizatori Attivi Mensili (UAM)
- administered_by: 'Amministratu da:'
- api: API
- apps: Applicazione per u telefuninu
- apps_platforms: Utilizà Mastodon dapoi à iOS, Android è altre piattaforme
- browse_directory: Navigà un'annuariu di i prufili è filtra per interessi
- browse_local_posts: Navigà un flussu di statuti pubblichi da stu servore
- browse_public_posts: Navigà un flussu di i statuti pubblichi nant'à Mastodon
- contact: Cuntattu
contact_missing: Mancante
contact_unavailable: Micca dispunibule
- discover_users: Scopre utilizatori
- documentation: Ducumentazione
- federation_hint_html: Cù un contu nant'à %{instance} puderete siguità ghjente da tutti i servori Mastodon è ancu più d'altri.
- get_apps: Pruvà un'applicazione di telefuninu
hosted_on: Mastodon allughjatu nant’à %{domain}
- instance_actor_flash: |
- Stu contu ghjè un'attore virtuale chì ghjove à riprisentà u servore sanu è micca un veru utilizatore.
- Hè utilizatu da a federazione è ùn deve micca esse bluccatu eccettu s'e voi vulete bluccà tuttu u servore, in quellu casu duvereste utilizà un blucchime di duminiu.
- learn_more: Amparà di più
- privacy_policy: Pulitica di vita privata
- rules: Regule di u servore
- rules_html: 'Eccu un riassuntu di e regule da siguità s''e voi vulete creà un contu nant''à quessu servore di Mastodon:'
- see_whats_happening: Vede cio chì si passa
- server_stats: 'Statistiche di u servore:'
- source_code: Codice di fonte
- status_count_after:
- one: statutu
- other: statuti
- status_count_before: Chì anu pubblicatu
- tagline: Siguità amichi è scopre ancu di più altri
- terms: Cundizione di u serviziu
- unavailable_content: Cuntinutu micca dispunibule
- unavailable_content_description:
- domain: Servore
- reason: Ragione
- rejecting_media: 'I fugliali media da stu servore ùn saranu micca arregistrati è e vignette ùn saranu micca affissate, duverete cliccà manualmente per accede à l''altru servore è vedeli:'
- rejecting_media_title: Media filtrati
- silenced: 'I statuti da stu servore ùn saranu mai visti tranne nant''a vostra pagina d''accolta s''e voi siguitate l''autore:'
- silenced_title: Servori silenzati
- suspended: 'Ùn puderete micca siguità qualsiasi nant''à stu servore, i dati versu o da quallà ùn saranu mai accessi, scambiati o arregistrati:'
- suspended_title: Servori suspesi
- unavailable_content_html: Mastodon vi parmette in generale di vede u cuntinutu è interagisce cù l'utilizatori di tutti l'altri servori di u fediversu. Quessi sò l'eccezzione fatte nant'à stu servore in particulare.
- user_count_after:
- one: utilizatore
- other: utilizatori
- user_count_before: Ci sò
- what_is_mastodon: Quale hè Mastodon?
accounts:
- choices_html: "%{name} ricumanda:"
- endorsements_hint: Pudete appughjà i conti chì siguitate dapoi l'interfaccia web, è saranu mustrati quì.
- featured_tags_hint: Pudete mette in mostra qualchì hashtag chì saranu affissati quì.
follow: Siguità
followers:
one: Abbunatu·a
other: Abbunati
following: Abbunamenti
instance_actor_flash: Stu contu virtuale riprisenta u servore stessu, micca un'utilizatore individuale. Hè utilizatu per scopi di federazione è ùn duveria mai esse suspesu.
- joined: Quì dapoi %{date}
last_active: ultima attività
link_verified_on: A pruprietà d'issu ligame hè stata verificata u %{date}
- media: Media
- moved_html: "%{name} hà cambiatu di contu, avà hè nant’à %{new_profile_link}:"
- network_hidden: St'infurmazione ùn hè micca dispunibule
nothing_here: Ùn c’hè nunda quì!
- people_followed_by: Seguitati da %{name}
- people_who_follow: Seguitanu %{name}
pin_errors:
following: Duvete digià siguità a persona che vulete ricumandà
posts:
one: Statutu
other: Statuti
posts_tab_heading: Statuti
- posts_with_replies: Statuti è risposte
- roles:
- admin: Amministratore
- bot: Bot
- group: Gruppu
- moderator: Muderatore
- unavailable: Prufile micca dispunibule
- unfollow: Ùn siguità più
admin:
account_actions:
action: Realizà un'azzione
@@ -102,7 +37,6 @@ co:
avatar: Ritrattu di prufile
by_domain: Duminiu
change_email:
- changed_msg: Email di u contu cambiatu!
current_email: E-mail attuale
label: Mudificà l’e-mail
new_email: Novu e-mail
@@ -179,12 +113,6 @@ co:
reset: Riinizializà
reset_password: Riinizializà a chjave d’accessu
resubscribe: Riabbunassi
- role: Auturizazione
- roles:
- admin: Amministratore
- moderator: Muderatore
- staff: Squadra
- user: Utilizatore
search: Cercà
search_same_email_domain: Altri utilizatori cù listessu duminiu d'e-mail
search_same_ip: Altri utilizatori cù listessa IP
@@ -279,7 +207,6 @@ co:
create_unavailable_domain_html: "%{name} hà firmatu a distribuzione à u duminiu %{target}"
demote_user_html: "%{name} hà ritrugradatu l’utilizatore %{target}"
destroy_announcement_html: "%{name} hà sguassatu u novu annunziu %{target}"
- destroy_custom_emoji_html: "%{name} hà sguassatu l'emoji %{target}"
destroy_domain_allow_html: "%{name} hà sguassatu u duminiu %{target} da a lista bianca"
destroy_domain_block_html: "%{name} hà sbluccatu u duminiu %{target}"
destroy_email_domain_block_html: "%{name} hà messu u duminiu e-mail %{target} nant’a lista bianca"
@@ -308,7 +235,6 @@ co:
update_custom_emoji_html: "%{name} hà messu à ghjornu l’emoji %{target}"
update_domain_block_html: "%{name} hà messu à ghjornu u blucchime di duminiu per %{target}"
update_status_html: "%{name} hà cambiatu u statutu di %{target}"
- deleted_status: "(statutu sguassatu)"
empty: Nunda trovu.
filter_by_action: Filtrà da azzione
filter_by_user: Filtrà da utilizatore
@@ -536,94 +462,15 @@ co:
edit: Mudificà regula
title: Regule di u servore
settings:
- activity_api_enabled:
- desc_html: Numeri di statuti creati quì, utilizatori attivi, è arregistramenti novi tutte e settimane
- title: Pubblicà statistiche nant’à l’attività di l’utilizatori
- bootstrap_timeline_accounts:
- desc_html: Cugnomi separati cù virgule. Solu pussibule cù conti lucali è pubblichi. Quandu a lista hè viota, tutti l’amministratori lucali saranu selezziunati.
- title: Abbunamenti predefiniti per l’utilizatori novi
- contact_information:
- email: E-mail prufissiunale
- username: Identificatore di cuntattu
- custom_css:
- desc_html: Mudificà l'apparenza cù CSS caricatu nant'à ogni pagina
- title: CSS persunalizatu
- default_noindex:
- desc_html: Tocca tutti quelli ch'ùn anu micca cambiatu stu parametru
- title: Ritirà l'utilizatori di l'indicazione nant'à i mutori di ricerca
domain_blocks:
all: À tutti
disabled: À nimu
- title: Mustrà blucchime di duminiu
users: À l'utilizatori lucali cunnettati
- domain_blocks_rationale:
- title: Vede ragiò
- hero:
- desc_html: Affissatu nant’a pagina d’accolta. Ricumandemu almenu 600x100px. S’ellu ùn hè micca definiti, a vignetta di u servore sarà usata
- title: Ritrattu di cuprendula
- mascot:
- desc_html: Affissata nant'à parechje pagine. Almenu 293x205px ricumandatu. S'ella hè lasciata viota, a mascotta predefinita sarà utilizata
- title: Ritrattu di a mascotta
- peers_api_enabled:
- desc_html: Indirizzi web stu servore hà vistu indè u fediversu
- title: Pubblicà a lista di servori cunnisciuti
- preview_sensitive_media:
- desc_html: E priviste di i ligami nant'à l'altri siti mustreranu una vignetta ancu s'ellu hè marcatu cum'è sensibile u media
- title: Vede media sensibili in e viste OpenGraph
- profile_directory:
- desc_html: Auturizà a scuperta di l'utilizatori
- title: Attivà l'annuariu di i prufili
- registrations:
- closed_message:
- desc_html: Affissatu nant’a pagina d’accolta quandu l’arregistramenti sò chjosi. Pudete fà usu di u furmattu HTML
- title: Missaghju per l’arregistramenti chjosi
- deletion:
- desc_html: Auturizà tuttu u mondu à sguassà u so propiu contu
- title: Auturizà à sguassà i conti
- min_invite_role:
- disabled: Nimu
- title: Auturizà l’invitazione da
- require_invite_text:
- desc_html: Quandu l'arregistramenti necessitanu un'apprubazione manuale, fà chì u testu "Perchè vulete ghjunghje?" sia ubligatoriu invece d'esse facultativu
- title: Richiede chì i novi utilizatori empiinu una dumanda d'invitazione
registrations_mode:
modes:
approved: Apprubazione necessaria per arregistrassi
none: Nimu ùn pò arregistrassi
open: Tutt'ognunu pò arregistrassi
- title: Modu d'arregistramenti
- show_known_fediverse_at_about_page:
- desc_html: Quandu ghjè selezziunatu, statuti di tuttu l’istanze cunnisciute saranu affissati indè a vista di e linee. Altrimente soli i statuti lucali saranu mustrati
- title: Vedde tuttu u fediverse cunnisciutu nant’a vista di e linee
- show_staff_badge:
- desc_html: Mustrerà un badge Squadra nant’à un prufile d’utilizatore
- title: Mustrà un badge staff
- site_description:
- desc_html: Paragrafu di prisentazione nant’a pagina d’accolta. Parlate di cio chì rende stu servore speziale, o d'altre cose impurtante. Pudete fà usu di marchi HTML, in particulare <a>
è <em>
.
- title: Discrizzione di u servore
- site_description_extended:
- desc_html: Una bona piazza per e regule, infurmazione è altre cose chì l’utilizatori duverìanu sapè. Pudete fà usu di marchi HTML
- title: Discrizzione stesa di u situ
- site_short_description:
- desc_html: Mustratu indè a barra laterala è i tag meta. Spiegate quale hè Mastodon è ciò chì rende u vostru servore speciale in un paragrafu. S'ella hè lasciata viota, a discrizzione di u servore sarà utilizata.
- title: Descrizzione corta di u servore
- site_terms:
- desc_html: Quì pudete scrive e vostre regule di cunfidenzialità, cundizione d’usu o altre menzione legale. Pudete fà usu di marchi HTML
- title: Termini persunalizati
- site_title: Nome di u servore
- thumbnail:
- desc_html: Utilizatu per viste cù OpenGraph è l’API. Ricumandemu 1200x630px
- title: Vignetta di u servore
- timeline_preview:
- desc_html: Vede a linea pubblica nant’a pagina d’accolta
- title: Vista di e linee
- title: Parametri di u situ
- trendable_by_default:
- desc_html: Ùn affetta micca quelli chì sò digià stati ricusati
- title: Auturizà l'hashtag à esse in tindenze senza verificazione
- trends:
- desc_html: Mustrà à u pubblicu i hashtag chì sò stati digià verificati è chì sò in e tendenze avà
- title: Tendenze di hashtag
site_uploads:
delete: Sguassà u fugliale caricatu
destroyed_msg: Fugliale sguassatu da u situ!
@@ -705,16 +552,12 @@ co:
applications:
created: Applicazione creata
destroyed: Applicazione sguassata
- invalid_url: L’URL ch’è stata pruvista ùn hè valida
regenerate_token: Creà un’altra fiscia d’accessu
token_regenerated: A fiscia d’accessu hè stata rigenerata
warning: Abbadate à quessi dati. Ùn i date à nisunu!
your_token: Rigenerà a fiscia d’accessu
auth:
- apply_for_account: Dumandà un'invitazione
change_password: Chjave d’accessu
- checkbox_agreement_html: Sò d'accunsentu cù e regule di u servore è i termini di u serviziu
- checkbox_agreement_without_rules_html: Accettu i termini di u serviziu
delete_account: Sguassà u contu
delete_account_html: S’è voi vulete toglie u vostru contu ghjè quì . Duverete cunfirmà a vostra scelta.
description:
@@ -751,7 +594,6 @@ co:
pending: A vostra dumanda hè in attesa di rivista da a squadra di muderazione. Quessa pò piglià un certu tempu. Avete da riceve un'e-mail s'ella hè appruvata.
redirecting_to: U vostru contu hè inattivu perchè riindirizza versu %{acct}.
too_fast: Furmulariu mandatu troppu prestu, ripruvate.
- trouble_logging_in: Difficultà per cunnettavi?
use_security_key: Utilizà a chjave di sicurità
authorize_follow:
already_following: Site digià abbunatu·a à stu contu
@@ -809,10 +651,6 @@ co:
more_details_html: Per più di ditagli, videte a pulitica di vita privata .
username_available: U vostru cugnome riduvinterà dispunibule
username_unavailable: U vostru cugnome ùn sarà sempre micca dispunibule
- directories:
- directory: Annuariu di i prufili
- explanation: Scopre utilizatori à partesi di i so centri d'interessu
- explore_mastodon: Scopre à %{title}
domain_validator:
invalid_domain: ùn hè micca un nome di duminiu currettu
errors:
@@ -864,7 +702,6 @@ co:
title: Mudificà u filtru
errors:
invalid_context: Micca abbastanza cuntestu
- invalid_irreversible: A filtrazione irreversibile marchja solu per l'accolta è e nutificazione
index:
delete: Toglie
empty: Ùn avete manc'un filtru.
@@ -872,9 +709,6 @@ co:
new:
title: Aghjunghje un novu filtru
footer:
- developers: Sviluppatori
- more: Di più…
- resources: Risorse
trending_now: Tindenze d'avà
generic:
all: Tuttu
@@ -905,7 +739,6 @@ co:
following: Persone chì seguitate
muting: Persone chì piattate
upload: Impurtà
- in_memoriam_html: In mimoria.
invites:
delete: Disattivà
expired: Spirata
@@ -980,14 +813,6 @@ co:
carry_mutes_over_text: St'utilizatore hà traslucatu dapoi %{acct}, ch'aviate piattatu.
copy_account_note_text: 'St''utilizatore hà traslucatu dapoi %{acct}, eccu e vostr''anziane note nant''à ellu:'
notification_mailer:
- digest:
- action: Vede tutte e nutificazione
- body: Eccu cio ch’avete mancatu dapoi à a vostr’ultima visita u %{since}
- mention: "%{name} v’hà mintuvatu·a in:"
- new_followers_summary:
- one: Avete ancu un’abbunatu novu!
- other: Avete ancu %{count} abbunati novi!
- title: Dapoi l’ultima volta…
favourite:
body: "%{name} hà aghjuntu u vostru statutu à i so favuriti :"
subject: "%{name} hà messu u vostru post in i so favuriti"
@@ -1079,22 +904,7 @@ co:
remove_selected_follows: Ùn siguità più l'utilizatori selezziunati
status: Statutu di u contu
remote_follow:
- acct: Entrate u vostru cugnome@istanza da induve vulete siguità stu contu
missing_resource: Ùn avemu pussutu à truvà l’indirizzu di ridirezzione
- no_account_html: Ùn avete micca un contu? Pudete arregistravi quì
- proceed: Cuntinuà per siguità
- prompt: 'Avete da siguità:'
- reason_html: "Perchè hè necessaria sta tappa? %{instance}
ùn hè forse micca u servore induve site arregistratu·a, allora primu duvemu riindirizzavi à u vostru servore."
- remote_interaction:
- favourite:
- proceed: Cuntinuà per favurisce
- prompt: 'Vulete aghjunghje stu statutu à i vostri favuriti:'
- reblog:
- proceed: Cuntinuà per sparte
- prompt: 'Vulete sparte stu statutu:'
- reply:
- proceed: Cuntinuà per risponde
- prompt: 'Vulete risponde à stu statutu:'
scheduled_statuses:
over_daily_limit: Avete trapassatu a limita di %{limit} statuti pianificati per stu ghjornu
over_total_limit: Avete trapassatu a limita di %{limit} statuti pianificati
@@ -1242,8 +1052,6 @@ co:
sensitive_content: Cuntenutu sensibile
tags:
does_not_match_previous_name: ùn currisponde micca à l'anzianu nome
- terms:
- title: Termini d’usu è di cunfidenzialità per %{instance}
themes:
contrast: Mastodon (Cuntrastu altu)
default: Mastodon (Scuru)
@@ -1285,20 +1093,11 @@ co:
suspend: Contu suspesu
welcome:
edit_profile_action: Cunfigurazione di u prufile
- edit_profile_step: Pudete persunalizà u vostru prufile cù un ritrattu di prufile o di cuprendula, un nome pubblicu persunalizatu, etc. Pudete ancu rende u contu privatu per duvè cunfirmà ogni dumanda d’abbunamentu.
explanation: Eccu alcune idee per principià
final_action: Principià à pustà
- final_step: 'Andemu! Ancu senza abbunati i vostri missaghji pubblichi puderanu esse visti da altre persone, per esempiu nant’a linea lucale è l’hashtag. Pudete ancu prisintavi nant’à u hashtag #introductions.'
full_handle: U vostru identificatore cumplettu
full_handle_hint: Quessu ghjè cio chì direte à i vostri amichi per circavi, abbunassi à u vostru contu da altrò, o mandà missaghji.
- review_preferences_action: Mudificà e priferenze
- review_preferences_step: Quì pudete adattà u cumpurtamentu di Mastodon à e vostre priferenze, cum’è l’email che vulete riceve, u nivellu di cunfidenzialità predefinitu di i vostri statuti, o u cumpurtamentu di i GIF animati.
subject: Benvenutu·a nant’à Mastodon
- tip_federated_timeline: A linea pubblica glubale mostra i statuti da altre istanze nant’a rete Mastodon, mà ùn hè micca cumpleta perchè ci sò soli i conti à quelli sò abbunati membri di a vostr’istanza.
- tip_following: Site digià abbunatu·a à l’amministratori di u vostru servore. Per truvà d’altre parsone da siguità, pudete pruvà e linee pubbliche.
- tip_local_timeline: A linea pubblica lucale ghjè una vista crunulogica di i statuti di a ghjente nant’à %{instance}. Quessi sò i vostri cunvicini!
- tip_mobile_webapp: Pudete aghjunghje Mastodon à a pagina d’accolta di u vostru navigatore di telefuninu per riceve nutificazione, cum’un applicazione!
- tips: Cunsiglii
title: Benvenutu·a, %{name}!
users:
follow_limit_reached: Ùn pidete seguità più di %{limit} conti
diff --git a/config/locales/cs.yml b/config/locales/cs.yml
index 0140d41276..c2ba1e0af7 100644
--- a/config/locales/cs.yml
+++ b/config/locales/cs.yml
@@ -1,69 +1,12 @@
---
cs:
about:
- about_hashtag_html: Tohle jsou veřejné příspěvky označené hashtagem #%{hashtag} . Pokud máte účet kdekoliv ve fedivesmíru, můžete s nimi interagovat.
about_mastodon_html: 'Sociální síť budoucnosti: žádné reklamy, žádné korporátní sledování, etický design a decentralizace! S Mastodonem vlastníte svoje data!'
- about_this: O tomto serveru
- active_count_after: aktivních
- active_footnote: Měsíční aktivní uživatelé (MAU)
- administered_by: 'Server spravuje:'
- api: API
- apps: Mobilní aplikace
- apps_platforms: Používejte Mastodon na iOS, Androidu a dalších platformách
- browse_directory: Prozkoumejte adresář profilů a filtrujte dle zájmů
- browse_local_posts: Prozkoumejte živý proud veřejných příspěvků z tohoto serveru
- browse_public_posts: Prozkoumejte živý proud veřejných příspěvků na Mastodonu
- contact: Kontakt
contact_missing: Nenastaveno
contact_unavailable: Neuvedeno
- continue_to_web: Pokračovat do webové aplikace
- discover_users: Objevujte uživatele
- documentation: Dokumentace
- federation_hint_html: S účtem na serveru %{instance} můžete sledovat lidi na jakémkoliv ze serverů Mastodon a dalších službách.
- get_apps: Vyzkoušejte mobilní aplikaci
hosted_on: Mastodon na doméně %{domain}
- instance_actor_flash: |
- Tento účet je virtuální aktér, který představuje server samotný, nikoliv účet jednotlivého uživatele.
- Používá se pro účely federace a nesmí být blokován, pokud nechcete blokovat celý server. V takovém případě použijte blokaci domény.
- learn_more: Zjistit více
- logged_in_as_html: Aktuálně jste přihlášeni jako %{username}.
- logout_before_registering: Již jste přihlášeni.
- privacy_policy: Zásady ochrany osobních údajů
- rules: Pravidla serveru
- rules_html: 'Níže je shrnutí pravidel, která musíte dodržovat, pokud chcete mít účet na tomto Mastodon serveru:'
- see_whats_happening: Podívejte se, co se děje
- server_stats: 'Statistika serveru:'
- source_code: Zdrojový kód
- status_count_after:
- few: příspěvky
- many: příspěvků
- one: příspěvek
- other: příspěvků
- status_count_before: Kteří napsali
- tagline: Sledujte své přátele a objevujte nové
- terms: Podmínky používání
- unavailable_content: Moderované servery
- unavailable_content_description:
- domain: Server
- reason: Důvod
- rejecting_media: 'Mediální soubory z tohoto serveru nebudou zpracovány a nebudou zobrazeny žádné náhledy. Pro prohlédnutí médií bude třeba manuálně přejít na druhý server:'
- rejecting_media_title: Filtrovaná média
- silenced: 'Příspěvky z těchto serverů nebudou zobrazeny ve veřejných časových osách a konverzacích a nebudou generována oznámení o interakcích uživatelů z toho serveru, pokud je nesledujete:'
- silenced_title: Omezené servery
- suspended: 'Žádná data z těchto serverů nebudou zpracována, ukládána ani vyměňována, čímž bude znemožněna jakákoliv interakce či komunikace s uživateli z těchto serverů:'
- suspended_title: Pozastavené servery
- unavailable_content_html: Mastodon vám obvykle dovoluje prohlížet si obsah a komunikovat s uživateli z jakéhokoliv dalšího serveru ve fedivesmíru. Tohle jsou výjimky, které byly zavedeny na tomto konkrétním serveru.
- user_count_after:
- few: uživatelé
- many: uživatelů
- one: uživatel
- other: uživatelů
- user_count_before: Domov
- what_is_mastodon: Co je Mastodon?
+ title: O aplikaci
accounts:
- choices_html: 'Volby %{name}:'
- endorsements_hint: Z webového rozhraní můžete podpořit lidi, které sledujete. Ti se poté zobrazí zde.
- featured_tags_hint: Můžete vybrat konkrétní hashtagy, které se zobrazí zde.
follow: Sledovat
followers:
few: Sledující
@@ -72,15 +15,9 @@ cs:
other: Sledujících
following: Sledovaných
instance_actor_flash: Tento účet je virtuální aktér, který představuje server samotný, nikoliv jednotlivého uživatele. Používá se pro účely federace a neměl by být pozastaven.
- joined: Uživatelem od %{date}
last_active: naposledy aktivní
link_verified_on: Vlastnictví tohoto odkazu bylo zkontrolováno %{date}
- media: Média
- moved_html: 'Uživatel %{name} se přesunul na %{new_profile_link}:'
- network_hidden: Tato informace není k dispozici
nothing_here: Nic tu není!
- people_followed_by: Lidé, které sleduje %{name}
- people_who_follow: Lidé, kteří sledují %{name}
pin_errors:
following: Osobu, kterou chcete podpořit, už musíte sledovat
posts:
@@ -89,14 +26,6 @@ cs:
one: Příspěvek
other: Příspěvků
posts_tab_heading: Příspěvky
- posts_with_replies: Příspěvky a odpovědi
- roles:
- admin: Administrátor
- bot: Robot
- group: Skupina
- moderator: Moderátor
- unavailable: Profil není dostupný
- unfollow: Přestat sledovat
admin:
account_actions:
action: Vykonat akci
@@ -113,12 +42,17 @@ cs:
avatar: Avatar
by_domain: Doména
change_email:
- changed_msg: E-mail k tomuto účtu byl úspěšně změněn!
+ changed_msg: E-mail úspěšně změněn!
current_email: Současný e-mail
label: Změnit e-mail
new_email: Nový e-mail
submit: Změnit e-mail
title: Změnit e-mail uživateli %{username}
+ change_role:
+ changed_msg: Role úspěšně změněna!
+ label: Změnit roli
+ no_role: Žádná role
+ title: Změnit roli pro %{username}
confirm: Potvrdit
confirmed: Potvrzeno
confirming: Potvrzuji
@@ -162,6 +96,7 @@ cs:
active: Aktivní
all: Vše
pending: Čekající
+ silenced: Omezeno
suspended: Pozastavené
title: Moderování
moderation_notes: Moderátorské poznámky
@@ -169,6 +104,7 @@ cs:
most_recent_ip: Nejnovější IP adresa
no_account_selected: Nebyl změněn žádný účet, neboť žádný nebyl zvolen
no_limits_imposed: Nejsou nastavena žádná omezení
+ no_role_assigned: Nebyla přiřazena žádná role
not_subscribed: Neodebírá
pending: Čeká na posouzení
perform_full_suspension: Pozastavit
@@ -197,12 +133,7 @@ cs:
reset: Obnovit
reset_password: Obnovit heslo
resubscribe: Znovu odebírat
- role: Oprávnění
- roles:
- admin: Administrátor
- moderator: Moderátor
- staff: Personál
- user: Uživatel
+ role: Role
search: Hledat
search_same_email_domain: Ostatní uživatelé se stejnou e-mailovou doménou
search_same_ip: Další uživatelé se stejnou IP adresou
@@ -245,6 +176,7 @@ cs:
approve_user: Schválit uživatele
assigned_to_self_report: Přiřadit hlášení
change_email_user: Změnit uživateli e-mailovou adresu
+ change_role_user: Změnit roli uživatele
confirm_user: Potvrdit uživatele
create_account_warning: Vytvořit varování
create_announcement: Nové oznámení
@@ -254,6 +186,7 @@ cs:
create_email_domain_block: Zablokovat e-mailovou doménu
create_ip_block: Vytvořit IP pravidlo
create_unavailable_domain: Vytvořit nedostupnou doménu
+ create_user_role: Vytvořit roli
demote_user: Snížit roli uživatele
destroy_announcement: Odstranit oznámení
destroy_custom_emoji: Odstranit vlastní emoji
@@ -264,6 +197,7 @@ cs:
destroy_ip_block: Smazat IP pravidlo
destroy_status: Odstranit Příspěvek
destroy_unavailable_domain: Smazat nedostupnou doménu
+ destroy_user_role: Zničit roli
disable_2fa_user: Vypnout 2FA
disable_custom_emoji: Zakázat vlastní emoji
disable_sign_in_token_auth_user: Zrušit uživatelovo ověřování e-mailovým tokenem
@@ -290,15 +224,19 @@ cs:
update_announcement: Aktualizovat oznámení
update_custom_emoji: Aktualizovat vlastní emoji
update_domain_block: Změnit blokaci domény
+ update_ip_block: Aktualizovat pravidlo IP
update_status: Aktualizovat Příspěvek
+ update_user_role: Aktualizovat roli
actions:
approve_appeal_html: Uživatel %{name} schválil odvolání proti rozhodnutí moderátora %{target}
approve_user_html: "%{name} schválil registraci od %{target}"
assigned_to_self_report_html: Uživatel %{name} si přidělil hlášení %{target}
change_email_user_html: Uživatel %{name} změnil e-mailovou adresu uživatele %{target}
+ change_role_user_html: "%{name} změnil roli %{target}"
confirm_user_html: Uživatel %{name} potvrdil e-mailovou adresu uživatele %{target}
create_account_warning_html: Uživatel %{name} poslal %{target} varování
create_announcement_html: Uživatel %{name} vytvořil nové oznámení %{target}
+ create_canonical_email_block_html: "%{name} zablokoval e-mail s hash %{target}"
create_custom_emoji_html: Uživatel %{name} nahrál nové emoji %{target}
create_domain_allow_html: Uživatel %{name} povolil federaci s doménou %{target}
create_domain_block_html: Uživatel %{name} zablokoval doménu %{target}
@@ -307,7 +245,7 @@ cs:
create_unavailable_domain_html: "%{name} zastavil doručování na doménu %{target}"
demote_user_html: Uživatel %{name} degradoval uživatele %{target}
destroy_announcement_html: Uživatel %{name} odstranil oznámení %{target}
- destroy_custom_emoji_html: Uživatel %{name} zničil emoji %{target}
+ destroy_custom_emoji_html: "%{name} odstranil emoji %{target}"
destroy_domain_allow_html: Uživatel %{name} zakázal federaci s doménou %{target}
destroy_domain_block_html: Uživatel %{name} odblokoval doménu %{target}
destroy_email_domain_block_html: Uživatel %{name} odblokoval e-mailovou doménu %{target}
@@ -315,6 +253,7 @@ cs:
destroy_ip_block_html: Uživatel %{name} odstranil pravidlo pro IP %{target}
destroy_status_html: Uživatel %{name} odstranil příspěvek uživatele %{target}
destroy_unavailable_domain_html: "%{name} obnovil doručování na doménu %{target}"
+ destroy_user_role_html: "%{name} odstranil %{target} roli"
disable_2fa_user_html: Uživatel %{name} vypnul dvoufázové ověřování pro uživatele %{target}
disable_custom_emoji_html: Uživatel %{name} zakázal emoji %{target}
disable_sign_in_token_auth_user_html: Uživatel %{name} zrušil ověřování e-mailovým tokenem pro %{target}
@@ -341,8 +280,9 @@ cs:
update_announcement_html: Uživatel %{name} aktualizoval oznámení %{target}
update_custom_emoji_html: Uživatel %{name} aktualizoval emoji %{target}
update_domain_block_html: "%{name} aktualizoval blokaci domény %{target}"
+ update_ip_block_html: "%{name} změnil pravidlo pro IP %{target}"
update_status_html: Uživatel %{name} aktualizoval příspěvek uživatele %{target}
- deleted_status: "(smazaný příspěvek)"
+ update_user_role_html: "%{name} změnil %{target} roli"
empty: Nebyly nalezeny žádné záznamy.
filter_by_action: Filtrovat podle akce
filter_by_user: Filtrovat podle uživatele
@@ -386,6 +326,7 @@ cs:
listed: Uvedeno
new:
title: Přidat nové vlastní emoji
+ no_emoji_selected: Žádné emoji nebyly změněny, protože nikdo nebyl vybrán
not_permitted: K provedené této akce nemáte dostatečná oprávnění
overwrite: Přepsat
shortcode: Zkratka
@@ -677,6 +618,71 @@ cs:
unresolved: Nevyřešeno
updated_at: Aktualizováno
view_profile: Zobrazit profil
+ roles:
+ add_new: Přidat roli
+ assigned_users:
+ few: "%{count} uživatelé"
+ many: "%{count} uživatelů"
+ one: "%{count} uživatel"
+ other: "%{count} uživatelů"
+ categories:
+ administration: Administrace
+ devops: Devops
+ invites: Pozvánky
+ moderation: Moderování
+ special: Speciální
+ delete: Smazat
+ description_html: Pomocí uživatelských rolí můžete upravit, ke kterým funkcím a oblastem mají přístup uživatelé Mastodon.
+ edit: Upravit roli „%{name}“
+ everyone: Výchozí oprávnění
+ everyone_full_description_html: Toto je základní role ovlivňující všechny uživatele , a to i bez přiřazené role. Všechny ostatní role od ní dědí oprávnění.
+ permissions_count:
+ few: "%{count} oprávnění"
+ many: "%{count} oprávnění"
+ one: "%{count} oprávnění"
+ other: "%{count} oprávnění"
+ privileges:
+ administrator: Správce
+ administrator_description: Uživatelé s tímto oprávněním obejdou všechna oprávnění
+ delete_user_data: Mazat uživatelská data
+ delete_user_data_description: Umožňuje uživatelům bezodkladně mazat data jiných uživatelů
+ invite_users: Zvát uživatele
+ invite_users_description: Umožňuje uživatelům zvát na server nové lidi
+ manage_announcements: Spravovat oznámení
+ manage_announcements_description: Umožňuje uživatelům spravovat oznámení na serveru
+ manage_appeals: Spravovat odvolání
+ manage_appeals_description: Umožňuje uživatelům posuzovat odvolání proti moderátorským zásahům
+ manage_blocks: Spravovat blokace
+ manage_blocks_description: Umožňuje uživatelům blokovat poskytovatele e-mailů a IP adresy
+ manage_custom_emojis: Spravovat vlastní emoji
+ manage_custom_emojis_description: Umožňuje uživatelům spravovat vlastní emoji na serveru
+ manage_federation: Spravovat federaci
+ manage_federation_description: Umožňuje uživatelům blokovat nebo povolit federaci s jinými doménami a ovládat doručování
+ manage_invites: Spravovat pozvánky
+ manage_invites_description: Umožňuje uživatelům procházet a deaktivovat pozvánky
+ manage_reports: Spravovat hlášení
+ manage_reports_description: Umožňuje uživatelům kontrolovat přehledy a provádět moderovací akce proti nim
+ manage_roles: Spravovat role
+ manage_roles_description: Umožňuje uživatelům spravovat a přiřazovat role pod nimi
+ manage_rules: Spravovat pravidla
+ manage_rules_description: Umožňuje uživatelům změnit pravidla serveru
+ manage_settings: Spravovat nastavení
+ manage_settings_description: Umožňuje uživatelům změnit nastavení webu
+ manage_taxonomies: Správa taxonomií
+ manage_taxonomies_description: Umožňuje uživatelům zkontrolovat populární obsah a aktualizovat nastavení hashtag
+ manage_user_access: Spravovat uživatelské přístupy
+ manage_user_access_description: Umožňuje uživatelům rušit jiným uživatelům dvoufázové ověřování, měnit jejich e-mailovou adresu a obnovovat jim hesla
+ manage_users: Spravovat uživatele
+ manage_users_description: Umožňuje uživatelům zobrazit podrobnosti ostatních uživatelů a provádět moderování proti nim
+ manage_webhooks: Spravovat webhooky
+ manage_webhooks_description: Umožňuje uživatelům nastavit webhooky pro administrativní události
+ view_audit_log: Zobrazovat protokol auditu
+ view_audit_log_description: Umožňuje uživatelům vidět historii administrativních akcí na serveru
+ view_dashboard: Zobrazit ovládací panel
+ view_dashboard_description: Umožňuje uživatelům přístup k ovládacímu panelu a různým metrikám
+ view_devops: Devops
+ view_devops_description: Umožňuje uživatelům přístup k ovládacím panelům Sidekiq a pgHero
+ title: Role
rules:
add_new: Přidat pravidlo
delete: Smazat
@@ -685,108 +691,62 @@ cs:
empty: Zatím nebyla definována žádná pravidla serveru.
title: Pravidla serveru
settings:
- activity_api_enabled:
- desc_html: Počty lokálně publikovaných příspěvků, aktivních uživatelů a nových registrací, v týdenních intervalech
- title: Publikovat hromadné statistiky o uživatelské aktivitě v API
- bootstrap_timeline_accounts:
- desc_html: Více uživatelských jmen oddělte čárkou. U těchto účtů bude zaručeno, že budou vždy zobrazeny mezi doporučenými sledováními
- title: Doporučit tyto účty novým uživatelům
- contact_information:
- email: Pracovní e-mail
- username: Uživatelské jméno pro kontaktování
- custom_css:
- desc_html: Pozměnit vzhled pomocí CSS šablony načítané na každé stránce
- title: Vlastní CSS
- default_noindex:
- desc_html: Ovlivňuje všechny uživatele, kteří toto nastavení sami nezměnili
- title: Ve výchozím stavu odhlásit uživatele z indexování vyhledávači
+ about:
+ manage_rules: Spravovat pravidla serveru
+ preamble: Uveďte podrobné informace o tom, jak je server provozován, moderován, financován.
+ rules_hint: Existuje vyhrazená oblast pro pravidla, u nichž se očekává, že je budou uživatelé dodržovat.
+ title: O aplikaci
+ appearance:
+ preamble: Přizpůsobte si webové rozhraní Mastodon.
+ title: Vzhled
+ branding:
+ title: Značka
+ content_retention:
+ preamble: Určuje, jak je obsah generovaný uživatelem uložen v Mastodonu.
+ title: Uchovávání obsahu
+ discovery:
+ follow_recommendations: Doporučená sledování
+ preamble: Povrchový zajímavý obsah je užitečný pro zapojení nových uživatelů, kteří možná neznají žádného Mastodona. Mějte pod kontrolou, jak různé objevovací funkce fungují na vašem serveru.
+ profile_directory: Adresář profilů
+ public_timelines: Veřejné časové osy
+ title: Objevujte
+ trends: Trendy
domain_blocks:
all: Všem
disabled: Nikomu
- title: Zobrazit blokace domén
users: Přihlášeným místním uživatelům
- domain_blocks_rationale:
- title: Zobrazit odůvodnění
- hero:
- desc_html: Zobrazuje se na hlavní stránce. Doporučujeme rozlišení alespoň 600x100 px. Pokud toto není nastaveno, bude zobrazena miniatura serveru
- title: Hlavní obrázek
- mascot:
- desc_html: Zobrazuje se na několika stránkách. Doporučujeme rozlišení alespoň 293x205 px. Pokud toto není nastaveno, bude zobrazen výchozí maskot
- title: Obrázek maskota
- peers_api_enabled:
- desc_html: Domény, na které tento server narazil ve fedivesmíru
- title: Zveřejnit seznam objevených serverů v API
- preview_sensitive_media:
- desc_html: Náhledy odkazů na jiných stránkách budou zobrazeny i pokud jsou media označena jako citlivá
- title: Zobrazovat v náhledech OpenGraph i citlivá média
- profile_directory:
- desc_html: Dovolit uživatelům být objevitelní
- title: Povolit adresář profilů
registrations:
- closed_message:
- desc_html: Zobrazí se na hlavní stránce, jsou-li registrace uzavřeny. Můžete použít i HTML značky
- title: Zpráva o uzavřených registracích
- deletion:
- desc_html: Povolit komukoliv smazat svůj účet
- title: Zpřístupnit smazání účtu
- min_invite_role:
- disabled: Nikdo
- title: Povolit pozvánky od
- require_invite_text:
- desc_html: Když jsou registrace schvalovány ručně, udělat odpověď na otázku "Proč se chcete připojit?" povinnou
- title: Požadovat od nových uživatelů zdůvodnění založení
+ preamble: Mějte pod kontrolou, kdo může vytvořit účet na vašem serveru.
+ title: Registrace
registrations_mode:
modes:
approved: Pro registraci je vyžadováno schválení
none: Nikdo se nemůže registrovat
open: Kdokoliv se může registrovat
- title: Režim registrací
- show_known_fediverse_at_about_page:
- desc_html: Je-li vypnuto, bude veřejná časová osa, na kterou odkazuje hlavní stránka serveru, omezena pouze na místní obsah
- title: Zahrnout federovaný obsah na neautentizované stránce veřejné časové osy
- show_staff_badge:
- desc_html: Zobrazit na stránce uživatele odznak personálu
- title: Zobrazit odznak personálu
- site_description:
- desc_html: Úvodní odstavec v API. Popište, čím se tento server Mastodon odlišuje od ostatních, a cokoliv jiného, co je důležité. Můžete zde používat HTML značky, hlavně <a>
a <em>
.
- title: Popis serveru
- site_description_extended:
- desc_html: Dobré místo pro vaše pravidla, pokyny a jiné věci, které váš server odlišují od ostatních. Lze použít HTML značky
- title: Vlastní rozšířené informace
- site_short_description:
- desc_html: Zobrazeno v postranním panelu a meta značkách. V jednom odstavci popište, co je Mastodon a čím se tento server odlišuje od ostatních.
- title: Krátký popis serveru
- site_terms:
- desc_html: Můžete si napsat vlastní zásady ochrany osobních údajů, podmínky používání či jiné právní dokumenty. Můžete použít HTML značky
- title: Vlastní podmínky používání
- site_title: Název serveru
- thumbnail:
- desc_html: Používáno pro náhledy přes OpenGraph a API. Doporučujeme rozlišení 1200x630px
- title: Miniatura serveru
- timeline_preview:
- desc_html: Zobrazit na hlavní stránce odkaz na veřejnou časovou osu a povolit přístup na veřejnou časovou osu pomocí API bez autentizace
- title: Povolit neautentizovaný přístup k časové ose
- title: Nastavení stránky
- trendable_by_default:
- desc_html: Ovlivňuje hashtagy, které nebyly dříve zakázány
- title: Povolit zobrazení hashtagů mezi populárními i bez předchozího posouzení
- trends:
- desc_html: Veřejně zobrazit dříve schválený obsah, který je zrovna populární
- title: Trendy
+ title: Nastavení serveru
site_uploads:
delete: Odstranit nahraný soubor
destroyed_msg: Upload stránky byl úspěšně smazán!
statuses:
+ account: Autor
back_to_account: Zpět na stránku účtu
back_to_report: Zpět na stránku hlášení
batch:
remove_from_report: Odebrat z hlášení
report: Nahlásit
deleted: Smazáno
+ favourites: Oblíbené
+ history: Historie verzí
+ language: Jazyk
media:
title: Média
+ metadata: Metadata
no_status_selected: Nebyly změněny žádné příspěvky, neboť žádné nebyly vybrány
+ open: Otevřít příspěvek
+ original_status: Původní příspěvek
+ status_changed: Příspěvek změněn
title: Příspěvky účtu
+ visibility: Viditelnost
with_media: S médii
strikes:
actions:
@@ -826,6 +786,9 @@ cs:
description_html: Toto jsou odkazy, které jsou momentálně hojně sdíleny účty, jejichž příspěvky váš server vidí. To může pomoct vašim uživatelům zjistit, co se děje ve světě. Žádné odkazy se nezobrazují veřejně, dokud neschválíte vydavatele. Můžete také povolit nebo zamítnout jednotlivé odkazy.
disallow: Zakázat odkaz
disallow_provider: Zakázat vydavatele
+ no_link_selected: Nebyly změněny žádné odkazy, protože nebyl vybrán žádný
+ publishers:
+ no_publisher_selected: Nebyly změněny žádní publikující, protože nikdo nebyl vybrán
shared_by_over_week:
few: Sdílený %{count} lidmi za poslední týden
many: Sdílený %{count} lidmi za poslední týden
@@ -847,6 +810,7 @@ cs:
description_html: Toto jsou příspěvky, o kterých váš server ví, že jsou momentálně hodně sdíleny a oblibovány. To může pomoci vašim novým i vracejícím se uživatelům najít další lidi ke sledování. Žádné příspěvky se nezobrazují veřejně, dokud neschválíte autora a tento autor nepovolí navrhování svého účtu ostatním. Můžete také povolit či zamítnout jednotlivé příspěvky.
disallow: Zakázat příspěvek
disallow_account: Zakázat autora
+ no_status_selected: Nebyly změněny žádné populární příspěvky, protože nikdo nebyl vybrán
not_discoverable: Autor nepovolil navrhování svého účtu ostatním
shared_by:
few: "%{friendly_count} sdílení nebo oblíbení"
@@ -864,6 +828,7 @@ cs:
tag_uses_measure: použití celkem
description_html: Toto jsou hashtagy, které se momentálně objevují v mnoha příspěvcích, které váš server vidí. To může pomoci vašim uživatelům zjistit, o čem lidé zrovna nejvíce mluví. Žádné hashtagy se nezobrazují veřejně, dokud je neschválíte.
listable: Může být navrhován
+ no_tag_selected: Nebyly změněny žádné štítky, protože nikdo nebyl vybrán
not_listable: Nebude navrhován
not_trendable: Neobjeví se mezi populárními
not_usable: Nemůže být používán
@@ -886,6 +851,28 @@ cs:
edit_preset: Upravit předlohu pro varování
empty: Zatím jste nedefinovali žádné předlohy varování.
title: Spravovat předlohy pro varování
+ webhooks:
+ add_new: Přidat koncový bod
+ delete: Smazat
+ description_html: "Webhook umožňuje Mastodonu o vybraných událostech notifikovat v reálném čase vaši vlastní aplikaci, aby mohla automaticky spouštět reakce ."
+ disable: Vypnout
+ disabled: Vypnuto
+ edit: Upravit koncový bod
+ empty: Nemáte ještě nastavené žádné koncové body webhooků.
+ enable: Zapnout
+ enabled: Aktivní
+ enabled_events:
+ few: "%{count} zapnuté události"
+ many: "%{count} zapnutých událostí"
+ one: 1 zapnutá událost
+ other: "%{count} zapnutých událostí"
+ events: Události
+ new: Nový webhook
+ rotate_secret: Obnovit klíč
+ secret: Podpisový klíč
+ status: Stav
+ title: Webhooky
+ webhook: Webhook
admin_mailer:
new_appeal:
actions:
@@ -909,12 +896,8 @@ cs:
new_trends:
body: 'Následující položky vyžadují posouzení, než mohou být zobrazeny veřejně:'
new_trending_links:
- no_approved_links: Momentálně nejsou žádné schválené populární odkazy.
- requirements: 'Kterýkoliv z těchto kandidátů by mohl předehnat schválený populární odkaz #%{rank}, kterým je momentálně "%{lowest_link_title}" se skóre %{lowest_link_score}.'
title: Populární odkazy
new_trending_statuses:
- no_approved_statuses: Momentálně nejsou žádné schválené populární příspěvky.
- requirements: 'Kterýkoliv z těchto kandidátů by mohl předehnat schválený populární příspěvek #%{rank}, kterým je momentálně %{lowest_status_url} se skóre %{lowest_status_score}.'
title: Populární příspěvky
new_trending_tags:
no_approved_tags: Momentálně nejsou žádné schválené populární hashtagy.
@@ -950,16 +933,13 @@ cs:
applications:
created: Aplikace úspěšně vytvořena
destroyed: Aplikace úspěšně smazána
- invalid_url: Zadaná URL adresa je neplatná
regenerate_token: Znovu vygenerovat přístupový token
token_regenerated: Přístupový token byl úspěšně vygenerován
warning: Zacházejte s těmito daty opatrně. Nikdy je s nikým nesdílejte!
your_token: Váš přístupový token
auth:
- apply_for_account: Požádat o pozvánku
+ apply_for_account: Přejít na čekací frontu
change_password: Heslo
- checkbox_agreement_html: Souhlasím s pravidly serveru a podmínkami používání
- checkbox_agreement_without_rules_html: Souhlasím s podmínkami používání
delete_account: Odstranit účet
delete_account_html: Chcete-li odstranit svůj účet, pokračujte zde . Budete požádáni o potvrzení.
description:
@@ -978,6 +958,7 @@ cs:
migrate_account: Přesunout se na jiný účet
migrate_account_html: Zde můžete nastavit přesměrování tohoto účtu na jiný .
or_log_in_with: Nebo se přihlaste pomocí
+ privacy_policy_agreement_html: Četl jsem a souhlasím se zásadami ochrany osobních údajů
providers:
cas: CAS
saml: SAML
@@ -985,12 +966,17 @@ cs:
registration_closed: "%{instance} nepřijímá nové členy"
resend_confirmation: Znovu odeslat pokyny pro potvrzení
reset_password: Obnovit heslo
+ rules:
+ preamble: Tohle nastavují a prosazují moderátoři %{domain}.
+ title: Některá základní pravidla.
security: Zabezpečení
set_new_password: Nastavit nové heslo
setup:
email_below_hint_html: Pokud je níže uvedená e-mailová adresa nesprávná, můžete ji změnit zde a nechat si poslat nový potvrzovací e-mail.
email_settings_hint_html: Potvrzovací e-mail byl odeslán na %{email}. Pokud je tato adresa nesprávná, můžete ji změnit v nastavení účtu.
title: Nastavení
+ sign_up:
+ preamble: S účtem na tomto serveru Mastodon budete moci sledovat jakoukoliv jinou osobu v síti bez ohledu na to, kde je jejich účet hostován.
status:
account_status: Stav účtu
confirming: Čeká na dokončení potvrzení e-mailu.
@@ -999,7 +985,6 @@ cs:
redirecting_to: Váš účet je neaktivní, protože je právě přesměrován na účet %{acct}.
view_strikes: Zobrazit minulé prohřešky vašeho účtu
too_fast: Formulář byl odeslán příliš rychle, zkuste to znovu.
- trouble_logging_in: Problémy s přihlášením?
use_security_key: Použít bezpečnostní klíč
authorize_follow:
already_following: Tento účet již sledujete
@@ -1057,10 +1042,6 @@ cs:
more_details_html: Podrobnosti najdete v zásadách ochrany osobních údajů .
username_available: Vaše uživatelské jméno bude opět dostupné
username_unavailable: Vaše uživatelské jméno zůstane nedostupné
- directories:
- directory: Adresář profilů
- explanation: Objevujte uživatele podle jejich zájmů
- explore_mastodon: Prozkoumejte %{title}
disputes:
strikes:
action_taken: Přijaté opatření
@@ -1095,7 +1076,7 @@ cs:
invalid_domain: není platné doménové jméno
errors:
'400': Žádost, kterou jste odeslali, byla neplatná nebo poškozená.
- '403': Nemáte povolení zobrazit tuto stránku.
+ '403': Nejste oprávněni tuto stránku zobrazit.
'404': Stránka, kterou hledáte, tu není.
'406': Tato stránka není v požadovaném formátu dostupná.
'410': Stránka, kterou hledáte, tu již není.
@@ -1139,26 +1120,49 @@ cs:
public: Veřejné časové osy
thread: Konverzace
edit:
+ add_keyword: Přidat klíčové slovo
+ keywords: Klíčová slova
+ statuses: Individuální příspěvky
+ statuses_hint_html: Tento filtr platí pro výběr jednotlivých příspěvků bez ohledu na to, zda odpovídají klíčovým slovům níže. Zkontrolujte nebo odeberte příspěvky z filtru .
title: Upravit filtr
errors:
+ deprecated_api_multiple_keywords: Tyto parametry nelze změnit z této aplikace, protože se vztahují na více než jedno klíčové slovo filtru. Použijte novější aplikaci nebo webové rozhraní.
invalid_context: Nebyl poskytnut žádný nebo jen neplatný kontext
- invalid_irreversible: Nezvratné filtrování funguje pouze v souvislosti s domovskou osou či oznámeními
index:
+ contexts: Filtruje %{contexts}
delete: Smazat
empty: Nemáte žádný filtr.
+ expires_in: Vyprší za %{distance}
+ expires_on: Vyprší %{date}
+ keywords:
+ few: "%{count} klíčová slova"
+ many: "%{count} klíčových slov"
+ one: "%{count} klíčové slovo"
+ other: "%{count} klíčových slov"
+ statuses:
+ few: "%{count} příspěvků"
+ many: "%{count} příspěvků"
+ one: "%{count} příspěvek"
+ other: "%{count} příspěvků"
title: Filtry
new:
+ save: Uložit nový filtr
title: Přidat nový filtr
+ statuses:
+ back_to_filter: Zpět na filtr
+ batch:
+ remove: Odstranit z filtru
+ index:
+ hint: Tento filtr se vztahuje na výběr jednotlivých příspěvků bez ohledu na jiná kritéria. Do tohoto filtru můžete přidat více příspěvků z webového rozhraní.
+ title: Filtrované příspěvky
footer:
- developers: Vývojáři
- more: Více…
- resources: Zdroje
trending_now: Právě populární
generic:
all: Všechny
changes_saved_msg: Změny byly úspěšně uloženy!
copy: Kopírovat
delete: Smazat
+ deselect: Zrušit výběr všeho
none: Žádné
order_by: Seřadit podle
save_changes: Uložit změny
@@ -1187,7 +1191,6 @@ cs:
following: Seznam sledovaných
muting: Seznam ignorovaných
upload: Nahrát
- in_memoriam_html: In Memoriam.
invites:
delete: Deaktivovat
expired: Expirováno
@@ -1270,23 +1273,10 @@ cs:
copy_account_note_text: 'Tento účet se přesunul z %{acct}, zde byly Vaše předchozí poznámky o něm:'
notification_mailer:
admin:
+ report:
+ subject: Uživatel %{name} podal hlášení
sign_up:
subject: Uživatel %{name} se zaregistroval
- digest:
- action: Zobrazit všechna oznámení
- body: Zde najdete stručný souhrn zpráv, které jste zmeškali od vaší poslední návštěvy %{since}
- mention: 'Uživatel %{name} vás zmínil v:'
- new_followers_summary:
- few: Zatímco jste byli pryč jste navíc získali %{count} nové sledující! Skvělé!
- many: Zatímco jste byli pryč jste navíc získali %{count} nových sledujících! Úžasné!
- one: Zatímco jste byli pryč jste navíc získali jednoho nového sledujícího! Hurá!
- other: Zatímco jste byli pryč jste navíc získali %{count} nových sledujících! Úžasné!
- subject:
- few: "%{count} nová oznámení od vaší poslední návštěvy 🐘"
- many: "%{count} nových oznámení od vaší poslední návštěvy 🐘"
- one: "1 nové oznámení od vaší poslední návštěvy 🐘"
- other: "%{count} nových oznámení od vaší poslední návštěvy 🐘"
- title: Ve vaší nepřítomnosti…
favourite:
body: 'Váš příspěvek si oblíbil uživatel %{name}:'
subject: Uživatel %{name} si oblíbil váš příspěvek
@@ -1334,7 +1324,7 @@ cs:
description_html: Zapnete-li dvoufázové ověřování pomocí ověřovací aplikace, k přihlášení budete u sebe muset mít svůj mobil, který pro Vás bude generovat kódy k opsání.
enable: Zapnout
instructions_html: "Naskenujte tento QR kód do Google Authenticator nebo podobné TOTP aplikace na svém telefonu . Následně bude tato aplikace generovat kódy, které budete zadávat při přihlašování."
- manual_instructions: 'Nemůžete-li načíst QR kód a potřebujete ho zadat ručně, zde je tajemství v textové podobě:'
+ manual_instructions: 'Nemůžete-li načíst QR kód a potřebujete ho zadat ručně, zde je klíč v textové podobě:'
setup: Nastavit
wrong_code: Zadaný kód je neplatný! Je čas na serveru i zařízení generujícím kód správný?
pagination:
@@ -1358,6 +1348,8 @@ cs:
other: Ostatní
posting_defaults: Výchozí možnosti psaní
public_timelines: Veřejné časové osy
+ privacy_policy:
+ title: Zásady ochrany osobních údajů
reactions:
errors:
limit_reached: Dosažen limit různých reakcí
@@ -1380,22 +1372,7 @@ cs:
remove_selected_follows: Přestat sledovat vybrané uživatele
status: Stav účtu
remote_follow:
- acct: Napište svou přezdívku@doménu, ze které chcete jednat
missing_resource: Nemůžeme najít požadovanou přesměrovávací URL adresu pro váš účet
- no_account_html: Ještě nemáte účet? Tady se můžete zaregistrovat
- proceed: Pokračovat ke sledování
- prompt: 'Budete sledovat:'
- reason_html: "Proč je tento krok nutný? %{instance}
nemusí být serverem, na kterém jste registrováni, a proto vás musíme nejdříve přesměrovat na váš domovský server."
- remote_interaction:
- favourite:
- proceed: Pokračovat k oblíbení
- prompt: 'Chcete si oblíbit tento příspěvek:'
- reblog:
- proceed: Pokračovat k boostnutí
- prompt: 'Chcete boostnout tento příspěvek:'
- reply:
- proceed: Pokračovat k odpovědi
- prompt: 'Chcete odpovědět na tento příspěvek:'
reports:
errors:
invalid_rules: neodkazuje na platná pravidla
@@ -1579,89 +1556,6 @@ cs:
too_late: Na odvolání proti tomuto prohřešku už je pozdě
tags:
does_not_match_previous_name: se neshoduje s předchozím názvem
- terms:
- body_html: |
- Zásady ochrany osobních údajů
- Jaké informace sbíráme?
-
-
- Základní informace o účtu : Pokud se na tomto serveru zaregistrujete, můžeme vás požádat o zadání uživatelského jména, e-mailové adresy a hesla. Můžete také zadat dodatečné profilové informace, jako například zobrazované jméno, krátký životopis, nebo si nahrát profilovou fotografii a obrázek záhlaví. Uživatelské i zobrazované jméno, životopis, profilová fotografie a obrázek záhlaví jsou vždy veřejně dostupné.
- Příspěvky, sledující a další veřejné informace : Seznam lidí, které sledujete, je uveden veřejně, totéž platí i pro uživatele sledující vás. Pro každou vámi napsanou zprávu, bude uloženo datum a čas a informace o aplikaci, ze které jste zprávu odeslali. Zprávy mohou obsahovat mediální přílohy, jako jsou obrázky a videa. Veřejné a neuvedené příspěvky jsou dostupné veřejně. Pokud na vašem profilu uvedete příspěvek, bude také dostupný veřejně. Vaše příspěvky jsou doručeny uživatelům, kteří vás sledují, což v některých případech znamená, že budou příspěvky doručeny na různé servery, na kterých budou ukládány jejich kopie. Pokud příspěvky smažete, bude tato akce taktéž doručeno vašim sledujícím. Akce opětovného sdílení nebo oblíbení jiného příspěvku je vždy veřejná.
- Příspěvky přímé a pouze pro sledující : Všechny příspěvky jsou na serveru uloženy a zpracovány. Příspěvky pouze pro sledující jsou doručeny uživatelům, kteří vás sledují, a uživatelům v příspěvcích zmíněným. Přímé příspěvky jsou doručeny pouze uživatelům v nich zmíněným. V některých případech to znamená, že budou příspěvky doručeny na různé servery, na kterých budou ukládány jejich kopie. Upřímně se snažíme omezit přístup k těmto příspěvkům pouze na autorizované uživatele, ovšem ostatní servery tak činit nemusí. Proto je důležité posoudit servery, ke kterým uživatelé, kteří vás sledují patří. V nastavení si můžete zapnout volbu pro manuální schvalování či odmítnutí nových sledujících. Mějte prosím na paměti, že správci tohoto serveru a kteréhokoliv přijímacího serveru mohou tyto zprávy vidět a příjemci mohou vytvořit jejich snímek, zkopírovat je, nebo je jinak sdílet. Nesdílejte přes Mastodon žádné citlivé informace.
- IP adresy a další metadata : Při vašem přihlášení zaznamenáváme IP adresu, ze které se přihlašujete, a název vašeho webového prohlížeče. Všechny vaše webové relace jsou v nastavení přístupné k vašemu posouzení a odvolání. Poslední použitá IP adresa je uložena maximálně po dobu 12 měsíců. Můžeme také uchovávat serverové záznamy, které obsahují IP adresy každého požadavku odeslaného na náš server.
-
-
-
-
- Na co vaše údaje používáme?
-
- Všechna data, která sbíráme, mohou být použita následujícími způsoby:
-
-
- K poskytnutí základních funkcí Mastodonu. K interakci s obsahem od jiných lidí a přispívat svým vlastním obsahem můžete pouze, pokud jste přihlášeni. Můžete například sledovat jiné lidi a zobrazit si jejich kombinované příspěvky ve vaší vlastní personalizované časové ose.
- Pro pomoc moderování komunity, například porovnáním vaší IP adresy s dalšími známými adresami pro detekci obcházení zákazů či jiných přestupků.
- E-mailová adresa, kterou nám poskytnete, může být použita pro zasílání informací, oznámení o interakcích jiných uživatelů s vaším obsahem nebo přijatých zprávách, a k odpovědím na dotazy a/nebo další požadavky či otázky.
-
-
-
-
- Jak vaše data chráníme?
-
- Když zadáváte, odesíláte, či přistupujete k vašim osobním datům, implementujeme různá bezpečnostní opatření pro udržování bezpečnosti vašich osobních dat. Mimo jiné je vaše relace v prohlížeči, jakož i provoz mezi vašimi aplikacemi a API, zabezpečena pomocí SSL, a vaše heslo je hashováno pomocí silného jednosměrného algoritmu. Pro větší zabezpečení vašeho účtu můžete povolit dvoufázové ověřování.
-
-
-
- Jaké jsou naše zásady o uchovávání údajů?
-
- Budeme se upřímně snažit:
-
-
- Uchovávat serverové záznamy obsahující IP adresy všech požadavků na tento server, pokud se takové záznamy uchovávají, maximálně 90 dní.
- Uchovávat IP adresy související s registrovanými uživateli maximálně 12 měsíců.
-
-
- Kdykoliv si můžete vyžádat a stáhnout archiv svého obsahu, včetně příspěvků, mediálních příloh, profilové fotografie a obrázku záhlaví.
-
- Kdykoliv můžete nenávratně smazat svůj účet.
-
-
-
- Používáme cookies?
-
- Ano. Cookies jsou malé soubory, které stránka nebo její poskytovatel uloží do vašeho počítače (pokud to dovolíte). Tyto cookies umožňují stránce rozpoznat váš prohlížeč, a pokud máte registrovaný účet, přidružit ho s vaším registrovaným účtem.
-
- Používáme cookies pro pochopení a ukládání vašich předvoleb pro budoucí návštěvy.
-
-
-
- Zveřejňujeme jakékoliv informace třetím stranám?
-
- Vaše osobně identifikovatelné informace neprodáváme, neobchodujeme s nimi, ani je nijak nepřenášíme vnějším stranám. Nepočítáme do toho důvěryhodné třetí strany, které nám pomáhají provozovat naši stránku, podnikat, nebo vás obsluhovat, pokud tyto strany souhlasí se zachováním důvěrnosti těchto informací. Vaše informace můžete uvolnit, pokud věříme, že je to nutné pro soulad se zákonem, prosazování našich zásad, nebo ochranu práv, majetku, či bezpečnost nás či ostatních.
-
- Váš veřejný obsah může být stažen jinými servery na síti. Vaše příspěvky veřejné a pouze pro sledující budou doručeny na servery uživatelů, kteří vás sledují, a přímé zprávy budou doručeny na servery příjemců, pokud jsou tito sledující nebo příjemci zaregistrováni na jiném serveru, než je tento.
-
- Při autorizaci aplikace k používání vašeho účtu může, v závislosti na rozsahu udělených oprávnění, přistupovat k vašim veřejným profilovým informacím, seznamu lidí, které sledujete, vašim sledujícím, vašim seznamům, všem vašim příspěvkům a příspěvkům, které jste si oblíbili. Aplikace nikdy nemohou získat vaši e-mailovou adresu ani heslo.
-
-
-
- Používání stránky dětmi
-
- Pokud se tento server nachází v EU nebo EHP: Naše stránka, produkty a služby jsou určeny lidem, kterým je alespoň 16 let. Pokud je vám méně než 16 let, dle požadavků nařízení GDPR (Obecné nařízení o ochraně osobních údajů ) tuto stránku nepoužívejte.
-
- Pokud se tento server nachází v USA: Naše stránka, produkty a služby jsou učeny lidem, kterým je alespoň 13 let. Pokud je vám méně než 13 let, dle požadavků zákona COPPA (Children's Online Privacy Protection Act ) tuto stránku nepoužívejte.
-
- Právní požadavky mohou být jiné, pokud se tento server nachází v jiné jurisdikci.
-
-
-
- Změny v našich zásadách ochrany osobních údajů
-
- Rozhodneme-li se naše zásady ochrany osobních údajů změnit, zveřejníme tyto změny na této stránce.
-
- Tento dokument je dostupný pod licencí CC-BY-SA. Byl naposledy aktualizován 26. května 2022.
-
- Původně adaptováno ze zásad ochrany osobních údajů projektu Discourse .
- title: Podmínky používání a zásady ochrany osobních údajů na serveru %{instance}
themes:
contrast: Mastodon (vysoký kontrast)
default: Mastodon (tmavý)
@@ -1740,20 +1634,13 @@ cs:
suspend: Účet pozastaven
welcome:
edit_profile_action: Nastavit profil
- edit_profile_step: Svůj profil si můžete přizpůsobit nahráním avataru a obrázku záhlaví, změnou zobrazovaného jména a další. Chcete-li posoudit nové sledující předtím, než vás mohou sledovat, můžete svůj účet uzamknout.
+ edit_profile_step: Váš profil si můžete přizpůsobit nahráním profilového obrázku, změnou zobrazovaného jména a dalším. Můžete se přihlásit k přezkoumání nových následovatelů, než vás budou moci následovat.
explanation: Zde je pár tipů do začátku
final_action: Začít psát
- final_step: 'Začněte psát! I když nemáte sledující, mohou vaše veřejné příspěvky vidět jiní lidé, například na místní časové ose a v hashtazích. Můžete se ostatním představit pomocí hashtagu #introductions.'
+ final_step: 'Začněte psát příspěvky! I bez sledujících mohou vaše veřejné příspěvky vidět ostatní, například na místní časové ose nebo v hashtagu. Možná se budete chtít představit na hashtagu #představení.'
full_handle: Vaše celá adresa profilu
full_handle_hint: Tohle je, co byste řekli svým přátelům, aby vám mohli posílat zprávy nebo vás sledovat z jiného serveru.
- review_preferences_action: Změnit předvolby
- review_preferences_step: Nezapomeňte si nastavit například jaké e-maily chcete přijímat či jak soukromé mají ve výchozím stavu být vaše příspěvky. Nemáte-li epilepsii, můžete si nastavit automatické přehrávání obrázků GIF.
subject: Vítejte na Mastodonu
- tip_federated_timeline: Federovaná časová osa je náhled celé sítě Mastodon. Zahrnuje ovšem pouze lidi, které sledují vaši sousedé, takže není úplná.
- tip_following: Administrátory serveru sledujete automaticky. Chcete-li najít další zajímavé lidi, podívejte se do místní a federované časové osy.
- tip_local_timeline: Místní časová osa je náhled lidí na serveru %{instance}. Jsou to vaši nejbližší sousedé!
- tip_mobile_webapp: Pokud vám váš mobilní prohlížeč nabídne přidat si Mastodon na vaši domovskou obrazovku, můžete dostávat oznámení. V mnoha ohledech to funguje jako nativní aplikace!
- tips: Tipy
title: Vítejte na palubě, %{name}!
users:
follow_limit_reached: Nemůžete sledovat více než %{limit} lidí
diff --git a/config/locales/cy.yml b/config/locales/cy.yml
index 3510673467..88edb06d1b 100644
--- a/config/locales/cy.yml
+++ b/config/locales/cy.yml
@@ -1,73 +1,11 @@
---
cy:
about:
- about_hashtag_html: Dyma dŵtiau cyhoeddus wedi eu tagio gyda #%{hashtag} . Gallwch ryngweithio gyda nhw os oes gennych gyfrif yn unrhyw le yn y ffeddysawd.
about_mastodon_html: Mae Mastodon yn rwydwaith cymdeithasol sy'n seiliedig ar brotocolau gwe a meddalwedd cod agored rhad ac am ddim. Yn debyg i e-bost mae'n ddatganoledig.
- about_this: Ynghylch
- active_count_after: yn weithredol
- active_footnote: Defnyddwyr Gweithredol Misol (DGM)
- administered_by: 'Gweinyddir gan:'
- api: API
- apps: Apiau symudol
- apps_platforms: Defnyddio Mastodon o iOS, Android a phlatfformau eraill
- browse_directory: Pori cyfeiriadur proffil a hidlo wrth diddordebau
- browse_local_posts: Pori ffrwd byw o byst cyhoeddus o'r gweinydd hyn
- browse_public_posts: Pori ffrwd byw o byst cyhoeddus ar Fastodon
- contact: Cyswllt
contact_missing: Heb ei osod
contact_unavailable: Ddim yn berthnasol
- continue_to_web: Parhau i app gwe
- discover_users: Darganfod defnyddwyr
- documentation: Dogfennaeth
- federation_hint_html: Gyda cyfrif ar %{instance}, gallwch dilyn pobl ar unrhyw gweinydd Mastodon, a thu hwnt.
- get_apps: Rhowch gynnig ar ap dyfeis symudol
hosted_on: Mastodon wedi ei weinyddu ar %{domain}
- instance_actor_flash: |
- Mae'r cyfrif hwn yn actor rhithwir a ddefnyddir i gynrychioli'r gweinydd ei hun ac nid unrhyw ddefnyddiwr unigol.
- Fe'i defnyddir at ddibenion ffederasiwn ac ni ddylid ei rwystro oni bai eich bod am rwystro'r achos cyfan, ac os felly dylech ddefnyddio bloc parth.
- learn_more: Dysgu mwy
- logged_in_as_html: Rydych chi wedi mewngofnodi fel %{username}.
- logout_before_registering: Rydych chi eisoes wedi mewngofnodi.
- privacy_policy: Polisi preifatrwydd
- rules: Rheolau gweinydd
- rules_html: 'Isod mae crynodeb o''r rheolau y mae angen i chi eu dilyn os ydych chi am gael cyfrif ar y gweinydd hwn o Mastodon:'
- see_whats_happening: Gweld beth sy'n digwydd
- server_stats: 'Ystadegau gweinydd:'
- source_code: Cod ffynhonnell
- status_count_after:
- few: statwsau
- many: statwsau
- one: statws
- other: statwsau
- two: statwsau
- zero: statwsau
- status_count_before: Ysgrifennwyd gan
- tagline: Dilyn ffrindiau a darganfod rhai newydd
- terms: Telerau gwasanaeth
- unavailable_content: Cynnwys nad yw ar gael
- unavailable_content_description:
- domain: Gweinydd
- reason: 'Rheswm:'
- rejecting_media: Ni fydd ffeiliau cyfryngau o'r gweinydd hwn yn cael eu prosesu ac ni fydd unrhyw fawd yn cael eu harddangos, sy'n gofyn am glicio â llaw i'r gweinydd arall.
- rejecting_media_title: Cyfrwng hidliedig
- silenced: Ni fydd swyddi o'r gweinydd hwn yn ymddangos yn unman heblaw eich porthiant cartref os dilynwch yr awdur.
- silenced_title: Gweinyddion wedi'i tawelu
- suspended: Ni fyddwch yn gallu dilyn unrhyw un o'r gweinydd hwn, ac ni fydd unrhyw ddata ohono'n cael ei brosesu na'i storio, ac ni chyfnewidir unrhyw ddata.
- suspended_title: Gweinyddion wedi'i gwahardd
- unavailable_content_html: Yn gyffredinol, mae Mastodon yn caniatáu ichi weld cynnwys gan unrhyw weinyddwr arall yn y ffederasiwn a rhyngweithio â hi. Dyma'r eithriadau a wnaed ar y gweinydd penodol hwn.
- user_count_after:
- few: defnyddwyr
- many: defnyddwyr
- one: defnyddiwr
- other: defnyddwyr
- two: defnyddwyr
- zero: defnyddwyr
- user_count_before: Cartref i
- what_is_mastodon: Beth yw Mastodon?
accounts:
- choices_html: 'Dewisiadau %{name}:'
- endorsements_hint: Gallwch gymeradwyo pobl rydych chi'n eu dilyn o'r rhyngwyneb gwe, a byddan nhw'n ymddangos yma.
- featured_tags_hint: Gallwch ychwanegu hashnodau penodol a fydd yn cael eu harddangos yma.
follow: Dilynwch
followers:
few: Dilynwyr
@@ -78,15 +16,9 @@ cy:
zero: Dilynwyr
following: Yn dilyn
instance_actor_flash: Mae'r cyfrif hwn yn actor rhithwir a ddefnyddir i gynrychioli'r gweinydd ei hun ac nid unrhyw ddefnyddiwr unigol. Fe'i defnyddir at ddibenion ffederasiwn ac ni ddylid ei atal.
- joined: Ymunodd %{date}
last_active: diweddaraf
link_verified_on: Gwiriwyd perchnogaeth y ddolen yma ar %{date}
- media: Cyfryngau
- moved_html: 'Mae %{name} wedi symud i %{new_profile_link}:'
- network_hidden: Nid yw'r wybodaeth hyn ar gael
nothing_here: Does dim byd yma!
- people_followed_by: Pobl y mae %{name} yn ei ddilyn
- people_who_follow: Pobl sy'n dilyn %{name}
pin_errors:
following: Rhaid i ti fod yn dilyn y person yr ydych am ei gymeradwyo yn barod
posts:
@@ -97,14 +29,6 @@ cy:
two: Tŵtiau
zero: Tŵtiau
posts_tab_heading: Postiadau
- posts_with_replies: Postiadau ac atebion
- roles:
- admin: Gweinyddwr
- bot: Bot
- group: Grŵp
- moderator: Safonwr
- unavailable: Proffil ddim ar gael
- unfollow: Dad-ddilyn
admin:
account_actions:
action: Cyflawni gweithred
@@ -121,7 +45,6 @@ cy:
avatar: Afatar
by_domain: Parth
change_email:
- changed_msg: E-bost cyfrif wedi ei newid yn llwyddiannus!
current_email: E-bost Cyfredol
label: Newid E-bost
new_email: E-bost Newydd
@@ -198,11 +121,7 @@ cy:
reset: Ailosod
reset_password: Ailosod cyfrinair
resubscribe: Aildanysgrifio
- role: Caniatâd
- roles:
- admin: Gweinyddwr
- moderator: Aroglygydd
- user: Defnyddiwr
+ role: Rôl
search: Chwilio
search_same_email_domain: Defnyddwyr eraill gyda'r un parth ebost
search_same_ip: Defnyddwyr eraill gyda'r un IP
@@ -265,7 +184,6 @@ cy:
update_status: Diweddaru Statws
actions:
memorialize_account_html: Newidodd %{name} gyfrif %{target} i dudalen goffa
- deleted_status: "(statws wedi ei ddileu)"
empty: Dim logiau ar gael.
filter_by_action: Hidlo wrth weithred
filter_by_user: Hidlo wrth ddefnyddiwr
@@ -445,91 +363,15 @@ cy:
unresolved: Heb ei ddatrys
updated_at: Diweddarwyd
settings:
- activity_api_enabled:
- desc_html: Niferoedd o statysau wedi eu postio'n lleol, defnyddwyr gweithredol, a cofrestradau newydd mewn bwcedi wythnosol
- title: Cyhoeddi ystatedgau cyfangronedig am weithgaredd defnyddwyr
- bootstrap_timeline_accounts:
- desc_html: Gwahanu sawl enw defnyddiwr a coma. Dim ond cyfrifoedd lleol a cyfrifoedd heb eu cloi fydd yn gweithio. Tra bod yn aros yn wag yr hyn sy'n rhagosodedig yw'r holl weinyddwyr lleol.
- title: Dilyn diofyn i ddefnyddwyr newydd
- contact_information:
- email: E-bost busnes
- username: Enw defnyddiwr cyswllt
- custom_css:
- desc_html: Addasu gwedd gyda CSS wedi lwytho ar bob tudalen
- title: CSS wedi'i addasu
- default_noindex:
- desc_html: Yn effeithio pob defnyddwr sydd heb newid y gosodiad ei hun
- title: Eithrio defnyddwyr o fynegai peiriannau chwilio yn rhagosodiedig
domain_blocks:
all: I bawb
disabled: I neb
- title: Dangos rhwystriadau parth
users: I ddefnyddwyr lleol mewngofnodadwy
- domain_blocks_rationale:
- title: Dangos rhesymwaith
- hero:
- desc_html: Yn cael ei arddangos ar y dudadlen flaen. Awgrymir 600x100px oleia. Pan nad yw wedi ei osod, mae'n ymddangos fel mân-lun yr achos
- title: Delwedd arwr
- mascot:
- desc_html: I'w arddangos ar nifer o dudalennau. Awgrymir 293x205px o leiaf. Pan nad yw wedi ei osod, cwympo nôl i'r mascot rhagosodedig
- title: Llun mascot
- peers_api_enabled:
- desc_html: Enwau parth y mae'r achos hwn wedi dod ar ei draws yn y ffedysawd
- title: Cyhoeddi rhestr o achosion dargynfyddiedig
- preview_sensitive_media:
- desc_html: Bydd rhagolygon ar wefannau eraill yn dangos ciplun hyd yn oed os oes na gyfryngau wedi eu marcio'n sensitif
- title: Dangos cyfryngau sensitif mewn rhagolygon OpenGraph
- profile_directory:
- desc_html: Caniatáu i ddefnyddwyr gael eu gweld
- title: Galluogi cyfeiriadur proffil
- registrations:
- closed_message:
- desc_html: I'w arddangos ar y dudalen flaen wedi i gofrestru cau. Mae modd defnyddio tagiau HTML
- title: Neges gofrestru caeëdig
- deletion:
- desc_html: Caniatau i unrhywun i ddileu eu cyfrif
- title: Agor dileu cyfrif
- min_invite_role:
- disabled: Neb
- title: Caniatau gwahoddiadau gan
registrations_mode:
modes:
approved: Mae angen cymeradwyaeth ar gyfer cofrestru
none: Ni all unrhyw un cofrestru
open: Gall unrhyw un cofrestru
- title: Modd cofrestriadau
- show_known_fediverse_at_about_page:
- desc_html: Wedi'i ddewis, bydd yn dangos rhagolwg o dŵtiau o'r holl ffedysawd. Fel arall bydd ond yn dangos tŵtiau lleol.
- title: Dangos ffedysawd hysbys ar ragolwg y ffrwd
- show_staff_badge:
- desc_html: Dangos bathodyn staff ar dudalen defnyddiwr
- title: Dangos bathodyn staff
- site_description:
- desc_html: Paragraff agoriadol ar y dudalen flaen. Disgrifiwch yr hyn sy'n arbennig am y gweinydd Mastodon hwn ac unrhywbeth arall o bwys. Mae modd defnyddio tagiau HTML <a>
a <em>
.
- title: Disgrifiad achos
- site_description_extended:
- desc_html: Lle da ar gyfer eich cod ymddygiad, rheolau, canllawiau a phethau eraill sy'n gwneud eich achos yn whanol. Mae modd i chi ddefnyddio tagiau HTML
- title: Gwybodaeth bellach wedi ei addasu
- site_short_description:
- desc_html: Yn cael ei ddangos yn bar ar yr ochr a tagiau meto. Digrifiwch beth yw Mastodon a beth sy'n gwneud y gweinydd hwn mewn un paragraff. Os yn wag, wedi ei ragosod i ddangos i disgrifiad yr achos.
- title: Disgrifiad byr o'r achos
- site_terms:
- desc_html: Mae modd i chi ysgrifennu polisi preifatrwydd, termau gwasanaeth a cyfreitheg arall eich hun. Mae modd defnyddio tagiau HTML
- title: Termau gwasanaeth wedi eu haddasu
- site_title: Enw'r achos
- thumbnail:
- desc_html: Ceith ei ddefnyddio ar gyfer rhagolygon drwy OpenGraph a'r API. Argymhellir 1200x630px
- title: Mân-lun yr achos
- timeline_preview:
- desc_html: Dangos ffrwd gyhoeddus ar y dudalen lanio
- title: Rhagolwg o'r ffrwd
- title: Gosodiadau'r wefan
- trendable_by_default:
- desc_html: Yn ddylanwadu ar hashnodau sydd heb ei rhwystro yn y gorffenol
- title: Gadael hashnodau i dueddu heb adolygiad cynt
- trends:
- desc_html: Arddangos hashnodau a adolygwyd yn gynt yn gyhoeddus sydd yn tueddu yn bresennol
- title: Hashnodau tueddig
site_uploads:
delete: Dileu ffeil sydd wedi'i uwchlwytho
destroyed_msg: Uwchlwythiad wefan wedi'i ddileu yn lwyddianus!
@@ -587,16 +429,12 @@ cy:
applications:
created: Cais wedi ei greu'n llwyddiannus
destroyed: Cais wedi ei ddileu'n llwyddiannus
- invalid_url: Mae'r URL a ddarparwyd yn annilys
regenerate_token: Adfywio tocyn mynediad
token_regenerated: Adfywiwyd y tocyn mynediad yn llwyddiannus
warning: Byddwch yn ofalus a'r data hyn. Peidiwch a'i rannu byth!
your_token: Eich tocyn mynediad
auth:
- apply_for_account: Gofyn am wahoddiad
change_password: Cyfrinair
- checkbox_agreement_html: Rydw i'n cytuno i'r rheolau'r gweinydd a'r telerau gwasanaeth
- checkbox_agreement_without_rules_html: Rydw i'n cytuno i Delerau y Gwasanaeth
delete_account: Dileu cyfrif
delete_account_html: Os hoffech chi ddileu eich cyfrif, mae modd parhau yma . Bydd gofyn i chi gadarnhau.
description:
@@ -626,7 +464,6 @@ cy:
confirming: Aros i gadarnhad e-bost gael ei gwblhau.
pending: Mae'ch cais yn aros i gael ei adolygu gan ein staff. Gall hyn gymryd cryn amser. Byddwch yn derbyn e-bost os caiff eich cais ei gymeradwyo.
redirecting_to: Mae eich cyfrif yn anactif oherwydd ei fod ar hyn o bryd yn ailgyfeirio i %{acct}.
- trouble_logging_in: Trafferdd mewngofnodi?
authorize_follow:
already_following: Yr ydych yn dilyn y cyfrif hwn yn barod
already_requested: Rydych barod wedi anfon ceisiad dilyn i'r cyfrif hynny
@@ -679,10 +516,6 @@ cy:
more_details_html: Am fwy o fanylion, gwelwch y polisi preifatrwydd .
username_available: Bydd eich enw defnyddiwr ar gael eto
username_unavailable: Ni fydd eich enw defnyddiwr ar gael
- directories:
- directory: Cyfeiriadur proffil
- explanation: Darganfod defnyddwyr yn ôl eu diddordebau
- explore_mastodon: Archwilio %{title}
disputes:
strikes:
approve_appeal: Cymeradwyo'r apêl
@@ -736,7 +569,6 @@ cy:
title: Golygu hidlydd
errors:
invalid_context: Dim cyd-destun neu cyd-destun annilys wedi ei ddarparu
- invalid_irreversible: Mae hidlo anadferadwy ond yn gweithio yng nghyd-destun cartref neu hysbysiadau
index:
delete: Dileu
empty: Nid oes gennych chi hidlyddion.
@@ -744,9 +576,6 @@ cy:
new:
title: Ychwanegu hidlydd newydd
footer:
- developers: Datblygwyr
- more: Mwy…
- resources: Adnoddau
trending_now: Yn tueddu nawr
generic:
all: Popeth
@@ -778,7 +607,6 @@ cy:
following: Rhestr dilyn
muting: Rhestr tawelu
upload: Uwchlwytho
- in_memoriam_html: Er cof.
invites:
delete: Dadactifadu
expired: Wedi darfod
@@ -851,18 +679,6 @@ cy:
carry_mutes_over_text: Wnaeth y defnyddiwr symud o %{acct}, a oeddech chi wedi'i dawelu.
copy_account_note_text: 'Wnaeth y defnyddiwr symud o %{acct}, dyma oedd eich hen nodiadau amdanynt:'
notification_mailer:
- digest:
- action: Gweld holl hysbysiadau
- body: Dyma grynodeb byr o'r holl negeseuon golloch chi ers eich ymweliad diwethaf ar %{since}
- mention: 'Soniodd %{name} amdanoch chi:'
- new_followers_summary:
- few: Hefyd, rydych wedi ennill %{count} dilynwr newydd tra eich bod i ffwrdd! Hwrê!
- many: Hefyd, rydych wedi ennill %{count} dilynwr newydd tra eich bod i ffwrdd! Hwrê!
- one: Yr ydych wedi ennill dilynwr newydd tra eich bod i ffwrdd! Hwrê!
- other: Hefyd, rydych wedi ennill %{count} dilynwr newydd tra eich bod i ffwrdd! Hwrê!
- two: Hefyd, rydych wedi ennill %{count} dilynwr newydd tra eich bod i ffwrdd! Hwrê!
- zero: Hefyd, rydych wedi ennill %{count} dilynwr newydd tra eich bod i ffwrdd! Hwrê!
- title: Yn eich absenoldeb...
favourite:
body: 'Cafodd eich statws ei hoffi gan %{name}:'
subject: Hoffodd %{name} eich statws
@@ -941,24 +757,7 @@ cy:
remove_selected_follows: Dad-ddilyn y defnyddwyr dewisiedig
status: Statws cyfrif
remote_follow:
- acct: Mewnbynnwch eich enwdefnyddiwr@parth yr ydych eisiau gweithredu ohonno
missing_resource: Ni ellir canfod yr URL ailgyferio angenrheidiol i'ch cyfrif
- no_account_html: Heb gyfrif? Mae modd i chi gofrestru yma
- proceed: Ymlaen i ddilyn
- prompt: 'Yr ydych am ddilyn:'
- reason_html: |-
- Pam yw'r cam hyn yn angenrheidiol?
- Efallai nid yw %{instance}
yn gweinydd ble wnaethoch gofrestru, felly mae'n rhaid i ni ailarweinio chi at eich gweinydd catref yn gyntaf.
- remote_interaction:
- favourite:
- proceed: Ymlaen i hoffi
- prompt: 'Hoffech hoffi''r tŵt hon:'
- reblog:
- proceed: Ymlaen i fŵstio
- prompt: 'Hoffech fŵstio''r tŵt hon:'
- reply:
- proceed: Ymlaen i ateb
- prompt: 'Hoffech ateb y tŵt hon:'
scheduled_statuses:
over_daily_limit: Rydych wedi rhagori'r cyfwng o %{limit} o dŵtiau rhestredig ar y dydd hynny
over_total_limit: Rydych wedi rhagori'r cyfwng o %{limit} o dŵtiau rhestredig
@@ -1079,8 +878,6 @@ cy:
too_late: Mae'n rhy hwyr i apelio yn erbyn y rhybudd hwn
tags:
does_not_match_previous_name: ddim yn cyfateb i'r enw blaenorol
- terms:
- title: "%{instance} Termau Gwasanaeth a Polisi Preifatrwydd"
themes:
contrast: Mastodon (Cyferbyniad uchel)
default: Mastodon (Tywyll)
@@ -1112,20 +909,11 @@ cy:
suspend: Cyfrif wedi'i rewi
welcome:
edit_profile_action: Sefydlu proffil
- edit_profile_step: Mae modd i chi addasu eich proffil drwy uwchlwytho afatar, pennawd, drwy newid eich enw arddangos a mwy. Os hoffech chi adolygu dilynwyr newydd cyn iddynt gael caniatad i'ch dilyn, mae modd i chi gloi eich cyfrif.
explanation: Dyma ambell nodyn i'ch helpu i ddechrau
final_action: Dechrau postio
- final_step: 'Dechrau postio! Hyd yn oed heb ddilynwyr mae''n bosib i eraill weld eich negeseuon cyhoeddus, er enghraifft at y ffrwd leol ac mewn hashnodau. Mae''n bosib yr hoffech hi gyflwyno''ch hun ar yr hashnod #introductions.'
full_handle: Eich enw llawn
full_handle_hint: Dyma'r hyn y bysech yn dweud wrth eich ffrindiau er mwyn iddyn nhw gael anfon neges atoch o achos arall.
- review_preferences_action: Newid dewisiadau
- review_preferences_step: Gwnewch yn siŵr i chi osod eich dewisiadau, megis pa e-byst hoffech eu derbyn, neu ba lefel preifatrwydd hoffech eich tŵtiau ragosod i. Os nad oes gennych salwch symud, gallwch ddewis i ganiatau chwarae GIFs yn awtomatig.
subject: Croeso i Mastodon
- tip_federated_timeline: Mae'r ffrwd ffederasiwn yn olwg firehose o'r rhwydwaith Mastodon. Ond mae ond yn cynnwys y bobl mae eich cymdogion wedi ymrestru iddynt, felly nid yw'n gyflawn.
- tip_following: Rydych yn dilyn goruwchwyliwr eich gweinydd yn ddiofyn. I ganfod pobl mwy diddorol, edrychwch ar y ffrydiau lleol a'r rhai wedi ei ffedereiddio.
- tip_local_timeline: Mae'r ffrwd leol yn olwg firehose o bobl ar %{instance}. Dyma eich cymdogion agosaf!
- tip_mobile_webapp: Os yw eich porwr gwe yn cynnig i chi ychwanegu Mastodon i'ch sgrîn gartref, mae modd i chi dderbyn hysbysiadau gwthiadwy. Mewn sawl modd mae'n gweithio fel ap cynhenid!
- tips: Awgrymiadau
title: Croeso, %{name}!
users:
follow_limit_reached: Nid oes modd i chi ddilyn mwy na %{limit} o bobl
diff --git a/config/locales/da.yml b/config/locales/da.yml
index 0195aa5a3e..8c6a9c8fd5 100644
--- a/config/locales/da.yml
+++ b/config/locales/da.yml
@@ -1,94 +1,27 @@
---
da:
about:
- about_hashtag_html: Disse er offentlige indlæg tagget med #%{hashtag} , som man kan interagere med, hvis man har en konto hvor som helst i fediverset.
about_mastodon_html: 'Fremtidens sociale netværk: Ingen annoncer, ingen virksomhedsovervågning, etisk design og decentralisering! Vær ejer af egne data med Mastodon!'
- about_this: Om
- active_count_after: aktive
- active_footnote: Månedlige aktive brugere (MAU)
- administered_by: 'Håndteres af:'
- api: API
- apps: Mobil-apps
- apps_platforms: Benyt Mastodon på Android, iOS og andre platforme
- browse_directory: Gennemse en profilmappe og filtrér efter interesser
- browse_local_posts: Gennemse en live stream af offentlige indlæg fra denne server
- browse_public_posts: Gennemse en live stream af offentlige indlæg på Mastodon
- contact: Kontakt
contact_missing: Ikke angivet
contact_unavailable: Utilgængelig
- continue_to_web: Fortsæt til web-app
- discover_users: Find brugere
- documentation: Dokumentation
- federation_hint_html: Vha. en konto på %{instance} vil man kunne følge andre på en hvilken som helst Mastodon-server.
- get_apps: Prøv en mobil-app
hosted_on: Mostodon hostet på %{domain}
- instance_actor_flash: |
- Denne konto er en virtuel aktør brugt som repræsentation af selve serveren og ikke en individuel bruger.
- Den bruges til fællesformål og bør ikke blokeres, medmindre hele instansen ønskes blokeret, i hvilket tilfælde man bør bruge domæneblokering.
- learn_more: Læs mere
- logged_in_as_html: Du er pt. logget ind som %{username}.
- logout_before_registering: Allerede logget ind.
- privacy_policy: Fortrolighedspolitik
- rules: Serverregler
- rules_html: 'Nedenfor ses en oversigt over regler, som skal følges, hvis man ønsker at have en konto på denne Mastodon-server:'
- see_whats_happening: Se, hvad der sker
- server_stats: 'Serverstatstik:'
- source_code: Kildekode
- status_count_after:
- one: indlæg
- other: indlæg
- status_count_before: Som har postet
- tagline: Følg venner og opdag nye
- terms: Tjenestevilkår
- unavailable_content: Modererede servere
- unavailable_content_description:
- domain: Server
- reason: Årsag
- rejecting_media: 'Mediefiler fra disse servere hverken behandles eller gemmes, og ingen miniaturebilleder vises, hvilket kræver manuelt klik-igennem til originalfilen:'
- rejecting_media_title: Filtrerede medier
- silenced: 'Indlæg fra disse servere er skjult i offentlige tidslinjer og konversationer, og der genereres ingen notifikationer fra deres brugerinteraktioner, medmindre man følger dem:'
- silenced_title: Begrænsede servere
- suspended: 'Data fra disse servere hverken behandles, gemmes eller udveksles, hvilket umuliggør interaktion eller kommunikation med brugere fra disse servere:'
- suspended_title: Suspenderede servere
- unavailable_content_html: Mastodon tillader generelt, at man ser indhold og interagere med brugere fra enhver anden server i fediverset. Disse er undtagelserne, som er implementeret på netop denne server.
- user_count_after:
- one: bruger
- other: brugere
- user_count_before: Hjem til
- what_is_mastodon: Hvad er Mastodon?
+ title: Om
accounts:
- choices_html: "%{name}s valg:"
- endorsements_hint: Man kan støtte personer, man følger, fra webgrænsefladen, som så vil fremgå hér.
- featured_tags_hint: Man kan fremhæve bestemte hashtags, som så vil fremgå hér.
follow: Følg
followers:
one: Følger
other: Følgere
following: Følger
instance_actor_flash: Denne konto er en virtuel aktør repræsenterende selve serveren og ikke en individuel bruger. Den anvendes til fællesformål og bør ikke suspenderes.
- joined: Tilmeldt %{date}
last_active: senest aktiv
link_verified_on: Ejerskab af dette link blev tjekket %{date}
- media: Medier
- moved_html: "%{name} er flyttet til %{new_profile_link}:"
- network_hidden: Denne information er utilgængelig
nothing_here: Der er intet hér!
- people_followed_by: Personer, som %{name} følger
- people_who_follow: Personer, som følger %{name}
pin_errors:
following: Man skal allerede følge den person, man ønsker at støtte
posts:
one: Indlæg
other: Indlæg
posts_tab_heading: Indlæg
- posts_with_replies: Indlæg og svar
- roles:
- admin: Admin
- bot: Bot
- group: Gruppe
- moderator: Moderator
- unavailable: Profil utilgængelig
- unfollow: Følg ikke længere
admin:
account_actions:
action: Udfør handling
@@ -105,12 +38,17 @@ da:
avatar: Profilbillede
by_domain: Domæne
change_email:
- changed_msg: Kontoens e-mail er skiftet!
+ changed_msg: E-mail skiftet!
current_email: Nuværende e-mail
label: Skift e-mail
new_email: Ny e-mail
submit: Skift e-mail
title: Skift e-mail for %{username}
+ change_role:
+ changed_msg: Rolle ændret!
+ label: Ændr rolle
+ no_role: Ingen rolle
+ title: Ændr rolle for %{username}
confirm: Bekræft
confirmed: Bekræftet
confirming: Bekræfter
@@ -154,6 +92,7 @@ da:
active: Aktiv
all: Alle
pending: Afventer
+ silenced: Begrænset
suspended: Suspenderet
title: Moderation
moderation_notes: Moderationsnotater
@@ -161,6 +100,7 @@ da:
most_recent_ip: Seneste IP
no_account_selected: Ingen kontiændringer, da ingen var valgt
no_limits_imposed: Ingen begrænsninger pålagt
+ no_role_assigned: Ingen rolle tildelt
not_subscribed: Abonnerer ikke
pending: Afventende vurdering
perform_full_suspension: Suspendér
@@ -187,12 +127,7 @@ da:
reset: Nulstil
reset_password: Nulstil adgangskode
resubscribe: Genabonnér
- role: Tilladelser
- roles:
- admin: Administrator
- moderator: Moderator
- staff: Personale
- user: Bruger
+ role: Rolle
search: Søg
search_same_email_domain: Øvrige brugere med samme e-maildomæne
search_same_ip: Øvrige brugere med identisk IP
@@ -235,17 +170,21 @@ da:
approve_user: Godkend bruger
assigned_to_self_report: Tildel rapport
change_email_user: Skift e-mail for bruger
+ change_role_user: Skift brugerrolle
confirm_user: Bekræft bruger
create_account_warning: Opret advarsel
create_announcement: Opret bekendtgørelse
+ create_canonical_email_block: Opret e-mailblokering
create_custom_emoji: Opret tilpasset emoji
create_domain_allow: Opret domænetilladelse
create_domain_block: Opret domæneblokering
create_email_domain_block: Opret e-maildomæneblokering
create_ip_block: Opret IP-regel
create_unavailable_domain: Opret Utilgængeligt Domæne
+ create_user_role: Opret rolle
demote_user: Degradér bruger
destroy_announcement: Slet bekendtgørelse
+ destroy_canonical_email_block: Slet e-mailblokering
destroy_custom_emoji: Slet tilpasset emoji
destroy_domain_allow: Slet domænetilladelse
destroy_domain_block: Slet domæneblokering
@@ -254,6 +193,7 @@ da:
destroy_ip_block: Slet IP-regel
destroy_status: Slet indlæg
destroy_unavailable_domain: Slet Utilgængeligt Domæne
+ destroy_user_role: Ødelæg rolle
disable_2fa_user: Deaktivér 2FA
disable_custom_emoji: Deaktivér tilpasset emoji
disable_sign_in_token_auth_user: Deaktivér e-mailtoken godkendelse for bruger
@@ -280,24 +220,30 @@ da:
update_announcement: Opdatér bekendtgørelse
update_custom_emoji: Opdatér tilpasset emoji
update_domain_block: Opdatér domæneblokering
+ update_ip_block: Opdatér IP-regel
update_status: Opdatér indlæg
+ update_user_role: Opdatér rolle
actions:
approve_appeal_html: "%{name} godkendte moderationsafgørelsesappellen fra %{target}"
approve_user_html: "%{name} godkendte tilmeldingen fra %{target}"
assigned_to_self_report_html: "%{name} tildelte sig selv anmeldelsen %{target}"
change_email_user_html: "%{name} ændrede e-mailadressen for bruger %{target}"
+ change_role_user_html: "%{name} ændrede rollen for %{target}"
confirm_user_html: "%{name} bekræftede e-mailadressen for bruger %{target}"
create_account_warning_html: "%{name} sendte en advarsel til %{target}"
create_announcement_html: "%{name} oprettede den nye bekendtgørelse %{target}"
+ create_canonical_email_block_html: "%{name} blokerede e-mailen med hash'et %{target}"
create_custom_emoji_html: "%{name} uploadede den nye emoji %{target}"
create_domain_allow_html: "%{name} tillod federering med domænet %{target}"
create_domain_block_html: "%{name} blokerede domænet %{target}"
create_email_domain_block_html: "%{name} blokerede e-maildomænet %{target}"
create_ip_block_html: "%{name} oprettede en regel for IP %{target}"
create_unavailable_domain_html: "%{name} stoppede levering til domænet %{target}"
+ create_user_role_html: "%{name} oprettede %{target}-rolle"
demote_user_html: "%{name} degraderede brugeren %{target}"
destroy_announcement_html: "%{name} slettede bekendtgørelsen %{target}"
- destroy_custom_emoji_html: "%{name} fjernede emojien %{target}"
+ destroy_canonical_email_block_html: "%{name} afblokerede e-mailen med hash'et %{target}"
+ destroy_custom_emoji_html: "%{name} slettede emojien %{target}"
destroy_domain_allow_html: "%{name} fjernede federeringstilladelsen med domænet %{target}"
destroy_domain_block_html: "%{name} afblokerede domænet %{target}"
destroy_email_domain_block_html: "%{name} afblokerede e-maildomænet %{target}"
@@ -305,6 +251,7 @@ da:
destroy_ip_block_html: "%{name} slettede en regel for IP %{target}"
destroy_status_html: "%{name} fjernede indlægget fra %{target}"
destroy_unavailable_domain_html: "%{name} genoptog levering til domænet %{target}"
+ destroy_user_role_html: "%{name} slettede %{target}-rolle"
disable_2fa_user_html: "%{name} deaktiverede tofaktorkravet for brugeren %{target}"
disable_custom_emoji_html: "%{name} deaktiverede emojien %{target}"
disable_sign_in_token_auth_user_html: "%{name} deaktiverede e-mailtoken godkendelsen for %{target}"
@@ -331,8 +278,9 @@ da:
update_announcement_html: "%{name} opdaterede bekendtgørelsen %{target}"
update_custom_emoji_html: "%{name} opdaterede emoji %{target}"
update_domain_block_html: "%{name} opdaterede domæneblokeringen for %{target}"
+ update_ip_block_html: "%{name} ændrede reglen for IP'en %{target}"
update_status_html: "%{name} opdaterede indlægget fra %{target}"
- deleted_status: "(slettet indlæg)"
+ update_user_role_html: "%{name} ændrede %{target}-rolle"
empty: Ingen logger fundet.
filter_by_action: Filtrér efter handling
filter_by_user: Filtrér efter bruger
@@ -376,6 +324,7 @@ da:
listed: Oplistet
new:
title: Tilføj ny tilpasset emoji
+ no_emoji_selected: Ingen emoji ændret (da ingen var valgt)
not_permitted: Ingen tilladelse til at udføre denne handling
overwrite: Overskriv
shortcode: Kortkode
@@ -649,6 +598,67 @@ da:
unresolved: Uløst
updated_at: Opdateret
view_profile: Vis profil
+ roles:
+ add_new: Tilføj rolle
+ assigned_users:
+ one: "%{count} bruger"
+ other: "%{count} brugere"
+ categories:
+ administration: Håndtering
+ devops: Devops
+ invites: Invitationer
+ moderation: Moderering
+ special: Speciel
+ delete: Slet
+ description_html: Med brugerroller kan man tilpasse sine brugeres adgang til Mastodon-funktioner og -områder.
+ edit: Redigér rolle for '%{name}
+ everyone: Standardtilladelser
+ everyone_full_description_html: Dette er basisrollen med indvirkning på alle brugere , selv dem uden rolletildeling. Alle øvrige rolletilladelser nedarves herfra.
+ permissions_count:
+ one: "%{count} tilladelse"
+ other: "%{count} tilladelser"
+ privileges:
+ administrator: Administrator
+ administrator_description: Brugere med denne rolle kan omgå alle tilladelser
+ delete_user_data: Slet brugerdata
+ delete_user_data_description: Tillader brugere at slette andre brugeres data straks
+ invite_users: Invitere brugere
+ invite_users_description: Tillader brugere at invitere nye personer til serveren
+ manage_announcements: Håndtere bekendtgørelser
+ manage_announcements_description: Tillader brugere at håndtere bekendtgørelser på serveren
+ manage_appeals: Håndtere appeller
+ manage_appeals_description: Tillader brugere at vurdere appeller af modereringshandlinger
+ manage_blocks: Håndtere blokeringer
+ manage_blocks_description: Tillader brugere at blokere e-mailudbydere og IP-adresser
+ manage_custom_emojis: Håndtere tilpassede emojier
+ manage_custom_emojis_description: Tillader brugere at håndtere tilpassede emojier på serveren
+ manage_federation: Håndtere federation
+ manage_federation_description: Tillader brugere at blokere eller tillade federation med andre domæner og styre leverbarhed
+ manage_invites: Håndtere invitationer
+ manage_invites_description: Tillader brugere at gennemse og deaktivere invitationslinks
+ manage_reports: Håndtere rapporter
+ manage_reports_description: Tillader brugere at vurdere rapporter og, i overensstemmelse hermed, at udføre moderationshandlinger
+ manage_roles: Håndtere roller
+ manage_roles_description: Tillader brugere at håndtere og tildele roller under deres privilegiestatus
+ manage_rules: Håndtere regler
+ manage_rules_description: Tillad brugere at ændre serverregler
+ manage_settings: Håndtere indstillinger
+ manage_settings_description: Tillader brugere at ændre webstedsindstillinger
+ manage_taxonomies: Håndtere taksonomier
+ manage_taxonomies_description: Tillader brugere at gennemse tenderende indhold og opdatere hashtag-indstillinger
+ manage_user_access: Håndtere brugeradgang
+ manage_user_access_description: Tillader brugere at deaktivere andre brugeres tofaktorgodkendelse, skifte deres e-mailadresse og nulstille deres adgangskode
+ manage_users: Håndtere brugere
+ manage_users_description: Tillader brugere at se andre brugeres oplysninger og underkaste dem moderationshandlinger
+ manage_webhooks: Håndtere Webhooks
+ manage_webhooks_description: Tillader brugere at opsætte webhooks til administrative begivenheder
+ view_audit_log: Vis revisionslog
+ view_audit_log_description: Tillader brugere at se en historik over administrative handlinger på serveren
+ view_dashboard: Vis Dashboard
+ view_dashboard_description: Tillader brugere at tilgå Dashboard'et og forskellige målinger
+ view_devops: Devops
+ view_devops_description: Tillader brugere at tilgå Sidekiq- og pgHero-dashboards
+ title: Roller
rules:
add_new: Tilføj regel
delete: Slet
@@ -657,108 +667,67 @@ da:
empty: Ingen serverregler defineret endnu.
title: Serverregler
settings:
- activity_api_enabled:
- desc_html: Antal lokalt opslåede indlæg, aktive brugere samt nye tilmeldinger i ugentlige opdelinger
- title: Offentliggør samlede statistikker vedr. brugeraktivitet i API'en
- bootstrap_timeline_accounts:
- desc_html: Adskil flere brugernavne med kommaer. Disse konti vil være garanteret visning i følg-anbefalinger
- title: Anbefal disse konti til nye brugere
- contact_information:
- email: Forretningse-mail
- username: Kontaktbrugernavn
- custom_css:
- desc_html: Ændre udseendet med CSS indlæst på hver side
- title: Tilpasset CSS
- default_noindex:
- desc_html: Påvirker alle brugere, som ikke selv har ændret denne indstilling
- title: Fravælg som standard søgemaskineindekseringer for brugere
+ about:
+ manage_rules: Håndtér serverregler
+ preamble: Giv dybdegående oplysninger om, hvordan serveren opereres, modereres, finansieres.
+ rules_hint: Der er et dedikeret område for regler, som forventes overholdt af brugerne.
+ title: Om
+ appearance:
+ preamble: Tilpas Mastodon-webgrænsefladen.
+ title: Udseende
+ branding:
+ preamble: Serverens branding adskiller den fra andres i netværket. Oplysningerne kan vises på tværs af div. miljøer, såsom Mastodon-webgrænsefladen, dedikerede applikationer, i-link forhåndsvisninger på andre websteder og i besked-apps mv. Oplysningerne bør derfor være klare og detaljerede, men samtidig kortfattede.
+ title: Branding
+ content_retention:
+ preamble: Styr, hvordan Mastodon gemmer brugergenereret indhold.
+ title: Indholdsopbevaring
+ discovery:
+ follow_recommendations: Følg-anbefalinger
+ preamble: At vise interessant indhold er vital ifm. at få nye brugere om bord, som måske ikke kender nogen på Mastodon. Styr, hvordan forskellige opdagelsesfunktioner fungerer på serveren.
+ profile_directory: Profiloversigt
+ public_timelines: Offentlige tidslinjer
+ title: Opdagelse
+ trends: Trends
domain_blocks:
all: Til alle
disabled: Til ingen
- title: Vis domæneblokeringer
users: Til indloggede lokale brugere
- domain_blocks_rationale:
- title: Vis begrundelse
- hero:
- desc_html: Vises på forsiden. Mindst 600x100px anbefales. Hvis ikke opsat, benyttes serverminiaturebillede
- title: Heltebillede
- mascot:
- desc_html: Vises på flere sider. Mindst 293x205px anbefales. Hvis ikke opsat, benyttes standardmaskot
- title: Maskotbillede
- peers_api_enabled:
- desc_html: Domænenavne, denne server er stødt på i fediverset
- title: Udgiv liste over fundne server i API'en
- preview_sensitive_media:
- desc_html: Linkforhåndsvisninger på andre websteder vil vise et miniaturebillede, selv hvis mediet er markeret som sensitivt
- title: Vis sensitive medier i OpenGraph-forhåndsvisninger
- profile_directory:
- desc_html: Tillad brugere at blive fundet
- title: Aktivér profilmappe
registrations:
- closed_message:
- desc_html: Vises på forside, når tilmeldingsmuligheder er lukket. HTML-tags kan bruges
- title: Lukket tilmelding-besked
- deletion:
- desc_html: Tillad enhver at slette sin konto
- title: Åbn kontosletning
- min_invite_role:
- disabled: Ingen
- title: Tillad invitationer fra
- require_invite_text:
- desc_html: Når tilmelding kræver manuel godkendelse, så gør “Hvorfor ønsker du at deltage?” tekstinput obligatorisk i stedet for valgfrit
- title: Nye brugere afkræves tilmeldingsbegrundelse
+ preamble: Styr, hvem der kan oprette en konto på serveren.
+ title: Registreringer
registrations_mode:
modes:
approved: Tilmeldingsgodkendelse kræves
none: Ingen kan tilmelde sig
open: Alle kan tilmelde sig
- title: Tilmeldingstilstand
- show_known_fediverse_at_about_page:
- desc_html: Når deaktiveret, begrænses den fra indgangssiden linkede offentlige tidslinje til kun at vise lokalt indhold
- title: Medtag federeret indhold på ikke-godkendt, offentlig tidslinjeside
- show_staff_badge:
- desc_html: Vis et personale-badge på en brugerside
- title: Vis personale-badge
- site_description:
- desc_html: Introduktionsafsnit på API'en. Beskriv, hvad der gør denne Mastodonserver speciel samt alt andet vigtigt. HTML-tags kan bruges, især <a>
og <em>
.
- title: Serverbeskrivelse
- site_description_extended:
- desc_html: Et god placering til adfærdskodes, regler, retningslinjer mv., som gør denne server unik. HTML-tags kan bruges
- title: Tilpasset udvidet information
- site_short_description:
- desc_html: Vises på sidebjælke og metatags. Beskriv i et enkelt afsnit, hvad Mastodon er, og hvad der gør denne server speciel.
- title: Kort serverbeskrivelse
- site_terms:
- desc_html: Der kan angives egen fortrolighedspolitik, tjenestevilkår el.lign. HTML-tags kan bruges
- title: Tilpassede tjenestevilkår
- site_title: Servernavn
- thumbnail:
- desc_html: Bruges til forhåndsvisninger via OpenGraph og API. 1200x630px anbefales
- title: Serverminiaturebillede
- timeline_preview:
- desc_html: Vis link til offentlig tidslinje på indgangssiden og lad API'en tilgå den offentlige tidslinje uden godkendelse
- title: Tillad ikke-godkendt tilgang til offentlig tidslinje
- title: Webstedsindstillinger
- trendable_by_default:
- desc_html: Påvirker hashtags, som ikke tidligere er blevet nægtet
- title: Tillad hashtags at forme tendens uden forudgående revision
- trends:
- desc_html: Vis offentligt tidligere reviderede hashtags, som pt. trender
- title: Populært
+ title: Serverindstillinger
site_uploads:
delete: Slet uploadet fil
destroyed_msg: Websteds-upload blev slettet!
statuses:
+ account: Forfatter
+ application: Applikation
back_to_account: Retur til kontoside
back_to_report: Retur til anmeldelsesside
batch:
remove_from_report: Fjern fra anmeldelse
report: Anmeldelse
deleted: Slettet
+ favourites: Favoritter
+ history: Versionshistorik
+ in_reply_to: Svarer på
+ language: Sprog
media:
title: Medier
+ metadata: Metadata
no_status_selected: Ingen indlæg ændret (ingen valgt)
+ open: Åbn indlæg
+ original_status: Oprindeligt indlæg
+ reblogs: Genblogninger
+ status_changed: Indlæg ændret
title: Kontoindlæg
+ trending: Populære
+ visibility: Synlighed
with_media: Med medier
strikes:
actions:
@@ -798,6 +767,9 @@ da:
description_html: Disse er links, som pt. deles meget af konti, som serveren ser indlæg fra. Det kan hjælpe ens brugere med at finde ud af, hvad der sker i verden. Ingen links vises offentligt, før man godkender udgiveren. Man kan også tillade/afvise individuelle links.
disallow: Tillad ikke link
disallow_provider: Tillad ikke udgiver
+ no_link_selected: Intet link ændret (da intet var valgt)
+ publishers:
+ no_publisher_selected: Ingen udgiver ændret (da ingen var valgt)
shared_by_over_week:
one: Delt af én person den seneste uge
other: Delt af %{count} personer den seneste uge
@@ -817,6 +789,7 @@ da:
description_html: Disse er indlæg, serveren kender til, som pt. deles og favoritmarkeres meget. Det kan hjælpe nye og tilbagevendende brugere til at finde flere personer at følge. Ingen indlæg vises offentligt, før man godkender forfatteren, samt denne tillader sin konto at blive foreslået andre. Man kan også tillade/afvise individuelle indlæg.
disallow: Tillad ikke indlæg
disallow_account: Tillad ikke forfatter
+ no_status_selected: Intet tendensindlæg ændret (da intet var valgt)
not_discoverable: Forfatteren har ikke valgt at kunne findes
shared_by:
one: Delt eller favoritmarkeret én gang
@@ -832,6 +805,7 @@ da:
tag_uses_measure: anvendelser i alt
description_html: Disse er hashtags, som pt. vises i en masse indlæg, som serveren ser. Det kan hjælpe brugerne til at finde ud af, hvad folk taler mest om pt. Ingen hashtags vises offentligt, før man godkender dem.
listable: Kan foreslås
+ no_tag_selected: Intet tag ændret (da intet var valgt)
not_listable: Foreslås ikke
not_trendable: Vises ikke under tendenser
not_usable: Kan ikke anvendes
@@ -852,6 +826,26 @@ da:
edit_preset: Redigér advarselsforvalg
empty: Ingen advarselsforvalg defineret endnu.
title: Håndtérr advarselsforvalg
+ webhooks:
+ add_new: Tilføj endepunkt
+ delete: Slet
+ description_html: En webhook lader Mastodon pushe notifikationer i realtid om valgte begivenheder til ens egen applikation, så denne automatisk kan udløse reaktioner .
+ disable: Deaktivér
+ disabled: Deaktiveret
+ edit: Redigér endepunkt
+ empty: Der er endnu ikke opsat nogen webhook-endepunkter.
+ enable: Aktivér
+ enabled: Aktiv
+ enabled_events:
+ one: 1 aktiv begivenhed
+ other: "%{count} aktive begivenheder"
+ events: Begivenheder
+ new: Ny webhook
+ rotate_secret: Rotér hemmelighed
+ secret: Signeringshemmelighed
+ status: Status
+ title: Webhooks
+ webhook: Webhook
admin_mailer:
new_appeal:
actions:
@@ -875,12 +869,8 @@ da:
new_trends:
body: 'Flg. emner kræver revision, inden de kan vises offentligt:'
new_trending_links:
- no_approved_links: Der er i pt. ingen godkendte populære links.
- requirements: 'Enhver af disse kandidater vil kunne overgå #%{rank} godkendte populære link, der med en score på %{lowest_link_score} pt. er "%{lowest_link_title}".'
title: Populære links
new_trending_statuses:
- no_approved_statuses: Der er i pt. ingen godkendte populære opslag.
- requirements: 'Enhver af disse kandidater vil kunne overgå #%{rank} godkendte populære opslag, der med en score på %{lowest_status_score} pt. er %{lowest_status_url}.'
title: Populære opslag
new_trending_tags:
no_approved_tags: Der er pt. ingen godkendte populære hashtags.
@@ -916,16 +906,13 @@ da:
applications:
created: Applikation oprettet
destroyed: Applikation slettet
- invalid_url: Den angivne URL er ugyldig
regenerate_token: Regenerér adgangstoken
token_regenerated: Adgangstoken regenereret
warning: Vær meget påpasselig med disse data. Del dem aldrig med nogen!
your_token: Dit adgangstoken
auth:
- apply_for_account: Anmod om en invitation
+ apply_for_account: Kom på ventelisten
change_password: Adgangskode
- checkbox_agreement_html: Jeg accepterer serverreglerne og tjenestevilkårene
- checkbox_agreement_without_rules_html: Jeg accepterer tjenestevilkårene
delete_account: Slet konto
delete_account_html: Ønsker du at slette din konto, kan du gøre dette hér . Du vil blive bedt om bekræftelse.
description:
@@ -944,6 +931,7 @@ da:
migrate_account: Flyt til en anden konto
migrate_account_html: Ønsker du at omdirigere denne konto til en anden, kan du opsætte dette hér .
or_log_in_with: Eller log ind med
+ privacy_policy_agreement_html: Jeg accepterer Fortrolighedspolitikken
providers:
cas: CAS
saml: SAML
@@ -951,12 +939,18 @@ da:
registration_closed: "%{instance} accepterer ikke nye medlemmer"
resend_confirmation: Gensend bekræftelsesinstruktioner
reset_password: Nulstil adgangskode
+ rules:
+ preamble: Disse er opsat og håndhæves af %{domain}-moderatorerne.
+ title: Nogle grundregler.
security: Sikkerhed
set_new_password: Opsæt ny adgangskode
setup:
email_below_hint_html: Er nedenstående e-mailadresse forkert, kan du rette den hér og modtage en ny bekræftelses-e-mail.
email_settings_hint_html: Bekræftelsese-mailen er sendt til %{email}. Er denne e-mailadresse forkert, kan du rette den via kontoindstillingerne.
title: Opsætning
+ sign_up:
+ preamble: Med en konto på denne Mastodon-server vil man kunne følge enhver anden person på netværket, uanset hvor vedkommendes konto hostes.
+ title: Lad os få dig sat op på %{domain}.
status:
account_status: Kontostatus
confirming: Afventer færdiggørelse af e-mailbekræftelse.
@@ -965,7 +959,6 @@ da:
redirecting_to: Din konto er inaktiv, da den pt. er omdirigerer til %{acct}.
view_strikes: Se tidligere anmeldelser af din konto
too_fast: Formularen indsendt for hurtigt, forsøg igen.
- trouble_logging_in: Indlogningsproblemer?
use_security_key: Brug sikkerhedsnøgle
authorize_follow:
already_following: Du følger allerede denne konto
@@ -1023,10 +1016,6 @@ da:
more_details_html: For yderligere oplysningerer, tjek fortrolighedspolitikken .
username_available: Dit brugernavn vil blive tilgængeligt igen
username_unavailable: Dit brugernavn vil forblive utilgængeligt
- directories:
- directory: Profilliste
- explanation: Find brugere baseret på deres interesser
- explore_mastodon: Uforsk %{title}
disputes:
strikes:
action_taken: Handling foretaget
@@ -1105,29 +1094,60 @@ da:
public: Offentlig tidslinje
thread: Konversationer
edit:
+ add_keyword: Tilføj nøgleord
+ keywords: Nøgleord
+ statuses: Individuelle indlæg
+ statuses_hint_html: Dette filter gælder for udvalgte, individuelle indlæg, uanset om de matcher nøgleordene nedenfor. Gennemgå eller fjern indlæg fra filteret .
title: Redigere filter
errors:
+ deprecated_api_multiple_keywords: Disse parametre kan ikke ændres fra denne applikation, da de gælder for flere end ét filternøgleord. Brug en nyere applikation eller webgrænsefladen.
invalid_context: Ingen eller ugyldig kontekst angivet
- invalid_irreversible: Uigenkaldelig filtrering virker kun med hjemme- eller notifikationskontekster
index:
+ contexts: Filtre i %{contexts}
delete: Slet
empty: Du har ingen filtre.
+ expires_in: Udløber om %{distance}
+ expires_on: Udløber om %{date}
+ keywords:
+ one: "%{count} nøgleord"
+ other: "%{count} nøgleord"
+ statuses:
+ one: "%{count} indlæg"
+ other: "%{count} indlæg"
+ statuses_long:
+ one: "%{count} individuelt indlæg skjult"
+ other: "%{count} individuelle indlæg skjult"
title: Filtre
new:
+ save: Gem nye filter
title: Tilføj nyt filter
+ statuses:
+ back_to_filter: Returnér til filter
+ batch:
+ remove: Fjern fra filter
+ index:
+ hint: Dette filter gælder for udvalgte, individuelle indlæg uanset andre kriterier. Flere indlæg kan føjes til filteret via webfladen.
+ title: Filtrerede indlæg
footer:
- developers: Udviklere
- more: Mere…
- resources: Ressourcer
trending_now: Trender lige nu
generic:
all: Alle
+ all_items_on_page_selected_html:
+ one: "%{count} emne på denne side er valgt."
+ other: Alle %{count} emner på denne side er valgt.
+ all_matching_items_selected_html:
+ one: "%{count} emne, der matchede søgningen, er valgt."
+ other: Alle %{count} emner, som matchede søgningen, er valgt.
changes_saved_msg: Ændringerne er gemt!
copy: Kopier
delete: Slet
+ deselect: Afmarkér alle
none: Intet
order_by: Sortér efter
save_changes: Gem ændringer
+ select_all_matching_items:
+ one: Vælg %{count} emne, der matchede søgningen.
+ other: Vælg alle %{count} emner, som matchede søgningen.
today: i dag
validation_errors:
one: Noget er ikke er helt i vinkel! Tjek fejlen nedenfor
@@ -1151,7 +1171,6 @@ da:
following: Følgningsliste
muting: Tavsgørelsesliste
upload: Upload
- in_memoriam_html: Til minde om.
invites:
delete: Deaktivér
expired: Udløbet
@@ -1232,19 +1251,10 @@ da:
copy_account_note_text: 'Denne bruger er flyttet fra %{acct}, hvor dine tidligere noter om dem var:'
notification_mailer:
admin:
+ report:
+ subject: "%{name} indsendte en anmeldelse"
sign_up:
subject: "%{name} tilmeldte sig"
- digest:
- action: Se alle notifikationer
- body: Her er en kort oversigt over de beskeder, som er misset siden dit seneste besøg %{since}
- mention: "%{name} nævnte dig i:"
- new_followers_summary:
- one: Under dit fravær har du har også fået en ny følger! Sådan!
- other: Under dit fravær har du har også fået %{count} nye følgere! Sådan!
- subject:
- one: "1 ny notifikation siden senest besøg 🐘"
- other: "%{count} nye notifikationer siden senest besøg 🐘"
- title: I dit fravær...
favourite:
body: "%{name} favoritmarkerede dit indlæg:"
subject: "%{name} favoritmarkerede dit indlæg"
@@ -1316,6 +1326,8 @@ da:
other: Andet
posting_defaults: Standarder for indlæg
public_timelines: Offentlige tidslinjer
+ privacy_policy:
+ title: Fortrolighedspolitik
reactions:
errors:
limit_reached: Grænse for forskellige reaktioner nået
@@ -1338,22 +1350,7 @@ da:
remove_selected_follows: Følg ikke længere valgte brugere
status: Kontostatus
remote_follow:
- acct: Angiv det brugernavn@domæne, hvorfra du vil ageres
missing_resource: Nødvendige omdirigerings-URL til kontoen ikke fundet
- no_account_html: Har ingen konto? Der kan oprettes én hér
- proceed: Fortsæt for at følge
- prompt: 'Du er ved at følge:'
- reason_html: "Hvorfor er dette trin nødvendigt? %{instance}
er måske ikke den server, hvorpå man er registreret, så man skal først omdirigeres til sin hjemmeserver."
- remote_interaction:
- favourite:
- proceed: Fortsæt for at favoritmarkere
- prompt: 'Favoritmarkere dette indlæg:'
- reblog:
- proceed: Fortsæt for at booste
- prompt: 'Booste dette indlæg:'
- reply:
- proceed: Fortsæt for at besvare
- prompt: 'Besvare dette indlæg:'
reports:
errors:
invalid_rules: refererer ikke til gyldige regler
@@ -1525,88 +1522,6 @@ da:
too_late: Det er for sent at appellere denne advarsel
tags:
does_not_match_previous_name: matcher ikke det foregående navn
- terms:
- body_html: |
- Fortrolighedspolitik
- Hvilke oplysninger indsamle vi?
-
-
- Grundlæggende kontooplysninger : Registrerer man sig på denne server, kan man blive anmodet om at angive et brugernavn, en e-mail-adresse samt en adgangskode. Der vil også kunne angive yderligere profiloplysninger, såsom visningsnavn og biografi samt uploade et profilbillede og et overskriftsbillede. Brugernavn, visningsnavn, biografien, profilbillede og overskriftsbillede vises altid offentligt.
- Opslag, følgninger og andre offentlige oplysninger : Listen over personer, man følger, er offentlig, hvilket ligeledes gælder ens følgere. Når en besked indsendes, gemmes dato og klokkeslæt samt den applikation, hvorfra beskeden blev indsendt. Beskeder kan indeholde medievedhæftningsfiler, såsom billeder og videoer. Offentlige og ikke-listede indlæg er offentligt tilgængelige. Når man fremhæver et opslag på sin profil, er dette også offentligt tilgængelig information. Ens indlæg bliver leveret til ens følgere, hvilket i nogle tilfælde betyder, at de leveres til forskellige servere og kopier lagres dér. Når man sletter indlæg, leveres dette ligeledes til ens følgere. Handlingen at genblogge eller favorisere et andet indlæg er altid offentligt.
- Direkte og kun-følgere indlæg : Alle indlæg lagres og behandles på serveren. Kun-følgere Indlæg leveres til ens følgere og brugere, nævnt heri, og direkte indlæg leveres kun til brugere nævnt heri. I visse tilfælde betyder det, at de leveres til forskellige servere, og at kopier lagres dér. Vi gør efter bedste evne indsats for at begrænse adgangen til disse indlæg til autoriserede personer alene, men andre servere kan undlade lignende tiltag. Det er derfor vigtigt at gennemgå servere, ens følgere tilhører. Man kan skifte mellem en mulighed for at godkende og afvise nye følgere manuelt i indstillingerne. Husk, at operatørerne af serveren og enhver modtagende server kan se beskederne , og at modtagere kan tage skærmfotos, kopiere eller på anden vis videredele disse. Del derfor ingen sensitive oplysninger over Mastodon.
- IP'er og andre metadata : Når man logger ind, registrerer vi den IP-adresse, der er logget ind fra, samt navnet på browserapplikationen. Man vil kunne gennemgå alle loggede sessioner, f.eks. mhp. tilbagekaldelse via indstillingerne. Den seneste anvendte IP-adresse gemmes i op til 12 måneder. Vi kan også beholde serverlogfiler, som inkluderer IP-adressen for hver anmodning til vores server.
-
-
-
-
- Hvad bruger vi dine oplysninger til?
-
- Alle indsamlede oplysninger vil kunne bruges på flg. måder:
-
-
- Mhp. at levere kernefunktionaliteten i Mastodon. Man kan kun interagere med andres indhold og poste eget indhold, når man er logget ind. Man kan f.eks. følge andre brugere for at se deres kombinerede indlæg på ens egen personligt tilpassede hjemmetidslinje.
- For at hjælpe med fællesskabsmodereringen, f.eks. sammenligning af IP-adressen med andre kendte for at fastslå omgåelse af forbud eller andre overtrædelser.
- Den angivne e-mailadresse kan blive brugt til at sende oplysninger, meddelelser om andre personer, som interagerer med ens indhold eller sender beskeder, og til at svare på forespørgsler og/eller andre anmodninger eller spørgsmål.
-
-
-
-
- Hvordan beskytter vi dine oplysninger?
-
- Vi har implementeret en række sikkerhedsforanstaltninger for at opretholde sikkerheden af ens personlige oplysninger, når man angiver, indsender eller får adgang til sine personlige oplysninger. Blandt andet er ens browsersession, samt trafikken mellem ens applikationer og API'et, sikret med SSL, og ens adgangskode hashes vha. en stærk envejsalgoritme. Man kan aktivere tofaktorgodkendelse for yderligere at sikre adgangen til sin konto.
-
-
-
- Hvad er vores politik for dataopbevaring?
-
- Vi vil gøre efter bedste evne indsats for at:
-
- Kun opbevare serverlogfiler indeholdende IP-adressen for alle anmodninger til denne server, i det omfang sådanne logfiler opbevares, i maks. 90 dage.
- Kun opbevare de IP-adresser, som er tilknyttet registrerede brugere, i maks. 12 måneder.
-
-
- Man kan anmode om og downloade et arkiv af sit indhold, inkl. ens indlæg, medievedhæftninger, profilbillede og sidehovedbillede.
-
- Man kan til enhver tid slette sin konto irreversibelt.
-
-
-
- Bruger vi cookies?
-
- Ja. Cookies er små filer, som et websted eller dets tjenesteudbyder overfører til en lokal computers harddisk via webbrowseren (såfremt man tillader dette). Cookies muliggør for webstedet at genkende en browser og, hvis man har en registreret konto, knytte den til en registrerer konto.
-
- Vi bruger cookies til at forstå og gemme brugerpræferencer til fremtidige besøg.
-
-
-
- Videregiver vi nogen oplysninger til eksterne parter?
-
- Vi hverken sælger, bytter eller overfører på anden vis personligt identificerbare brugeroplysninger til eksterne parter. Dette inkluderer dog ikke betroede tredjeparter, som hjælper os med at drive vores websted, drive vores forretning eller servicere brugere, så længe disse parter accepterer at holde disse oplysninger fortrolige. Vi kan også frigive brugeroplysninger, når vi mener, at frigivelse er passende for at overholde loven, håndhæve vores webstedspolitikker eller beskytte vores eller andres rettigheder, ejendom eller sikkerhed.
-
- Ens offentlige indhold kan blive downloadet af andre servere på netværket. Ens offentlige og kun-følgere indlæg leveres til de servere, hvor ens følgere hidhører, og direkte beskeder leveres til modtagernes servere, i det omfang disse følgere eller modtagere hidhører på en anden server end denne.
-
- Når man godkender en applikation til at bruge ens konto, kan den, afhængigt af tilladelsesomfanget, man godkender, opnå adgang til ens offentlige profiloplysninger, følgende liste, følgere, lister, alle opslag og favoritter. Programmer kan aldrig tilgå ens e-mail-adresse eller adgangskode.
-
-
-
- Børns brug af webstedet
-
- Hvis denne server er i EU eller EØS: Vores websted, produkter og tjenester er alle rettet mod et publikum på mindst 16 år. Er man under 16 år, skal man iht. kravene i GDPR (General Data Protection Regulation ) ikke bruge dette websted.
-
- Hvis denne server er i USA: Vores websted, produkter og tjenester er alle rettet mod et publikum på mindst 13 år. Er man under 13 år, skal du iht. kravene i COPPA (Children's Online Privacy Protection Act ) ikke bruge dette websted.
-
- Lovkravene kan være anderledes, hvis denne server er i en anden jurisdiktion.
-
-
-
- Ændringer i vores fortrolighedspolitik
-
- Hvis vi beslutter at ændre vores fortrolighedspolitik, vil sådanne ændringer blive offentliggort på denne side.
-
- Dette dokument er CC-BY-SA. Det er senest opdateret 26. maj 2022.
-
- Oprindeligt tilpasset fra Discourse-fortrolighedspolitik .
- title: Tjenestevilkår og Fortrolighedspolitik for %{instance}
themes:
contrast: Mastodon (høj kontrast)
default: Mastodont (mørkt)
@@ -1685,20 +1600,13 @@ da:
suspend: Konto suspenderet
welcome:
edit_profile_action: Opsæt profil
- edit_profile_step: Du kan tilpasse din profil ved at uploade profilbillede, overskrift, ændre visningsnavn mm. Ønsker du at vurdere nye følgere, før de må følge dig, kan du låse din konto.
+ edit_profile_step: Man kan tilpasse sin profil ved at uploade profilfoto, overskrift, ændre visningsnavn mv. Ønskes nye følgere vurderet, før de må følge dig, kan kontoen låses.
explanation: Her er nogle råd for at få dig i gang
final_action: Begynd at poste
- final_step: 'Begynd at poste! Selv uden følgere vil dine offentlige indlæg kunne ses af andre f.eks. på den lokale tidslinje og i hashtags. Du kan introducere dig selv via hastagget #introductions.'
+ final_step: 'Begynd at poste! Selv uden følgere vil offentlige indlæg kunne ses af andre f.eks. på den lokale tidslinje og i hashtags. Man kan introducere sig selv via hastagget #introductions.'
full_handle: Dit fulde brugernavn
full_handle_hint: Dette er, hvad du oplyser til dine venner, så de kan sende dig beskeder eller følge dig fra andre server.
- review_preferences_action: Ændre præferencer
- review_preferences_step: Husk at opsætte dine præferencer, såsom hvilke e-mails, du ønsker at modtage, eller hvilket fortrolighedsniveau, der skal være standard for dine opslag. Har du ikke let til køresyge, kan du vælge at aktivere auto-afspilning af GIF'er.
subject: Velkommen til Mastodon
- tip_federated_timeline: Den fælles tidslinje giver det store overblik over Mastodon-netværket, men den inkluderer kun folk, dine naboer abonnerer på, så den er ikke komplet.
- tip_following: Du følger som standard din servers admin(s). For at finde flere interessante folk, så tjek de lokale og fælles tidslinjer.
- tip_local_timeline: Den lokale tidslinje er det store overblik over folk på %{instance}, dvs. dine umiddelbare naboer!
- tip_mobile_webapp: Tilbyder din mobilbrowser at føje Mastodon til din hjemmeskærm, kan du modtage push-notifikationer. Dette fungerer på mange måder ligesom en almindelig app!
- tips: Tips
title: Velkommen ombord, %{name}!
users:
follow_limit_reached: Du kan maks. følge %{limit} personer
diff --git a/config/locales/de.yml b/config/locales/de.yml
index a52841a396..85df6e0087 100644
--- a/config/locales/de.yml
+++ b/config/locales/de.yml
@@ -1,94 +1,27 @@
---
de:
about:
- about_hashtag_html: Das sind öffentliche Beiträge, die mit #%{hashtag} getaggt wurden. Wenn du irgendwo im Fediversum ein Konto besitzt, kannst du mit ihnen interagieren.
- about_mastodon_html: Mastodon ist ein soziales Netzwerk. Es basiert auf offenen Web-Protokollen und freier, quelloffener Software. Es ist dezentral (so wie E-Mail!).
- about_this: Über diesen Server
- active_count_after: aktiv
- active_footnote: Monatlich Aktive User (MAU)
- administered_by: 'Betrieben von:'
- api: API
- apps: Mobile Apps
- apps_platforms: Benutze Mastodon auf iOS, Android und anderen Plattformen
- browse_directory: Durchsuche das Profilverzeichnis und filtere nach Interessen
- browse_local_posts: Durchsuche einen Live-Stream von öffentlichen Beiträgen von diesem Server
- browse_public_posts: Stöbere durch öffentliche Beiträge auf Mastodon
- contact: Kontakt
+ about_mastodon_html: Mastodon ist ein soziales Netzwerk. Es basiert auf offenen Web-Protokollen und freier, quelloffener Software. Es ist dezentral – genau wie E-Mail!
contact_missing: Nicht angegeben
contact_unavailable: Nicht verfügbar
- continue_to_web: Weiter zur Web App
- discover_users: Benutzer entdecken
- documentation: Dokumentation
- federation_hint_html: Mit einem Account auf %{instance} wirst du in der Lage sein Nutzern auf irgendeinem Mastodon-Server und darüber hinaus zu folgen.
- get_apps: Versuche eine mobile App
hosted_on: Mastodon, gehostet auf %{domain}
- instance_actor_flash: |
- Dieses Konto ist ein virtueller Akteur, der den Server selbst und nicht einen einzelnen Benutzer repräsentiert.
- Dieser wird für Föderationszwecke verwendet und sollte nicht blockiert werden, es sei denn du möchtest die gesamte Instanz blockieren.
- learn_more: Mehr erfahren
- logged_in_as_html: Du bist derzeit als %{username} eingeloggt.
- logout_before_registering: Du bist bereits angemeldet.
- privacy_policy: Datenschutzerklärung
- rules: Server-Regeln
- rules_html: 'Unten ist eine Zusammenfassung der Regeln, denen du folgen musst, wenn du ein Konto auf diesem Mastodon-Server haben möchtest:'
- see_whats_happening: Finde heraus, was gerade in der Welt los ist
- server_stats: 'Serverstatistiken:'
- source_code: Quellcode
- status_count_after:
- one: Beitrag
- other: Beiträge
- status_count_before: mit
- tagline: Finde deine Freunde und entdecke neue
- terms: Nutzungsbedingungen
- unavailable_content: Nicht verfügbarer Inhalt
- unavailable_content_description:
- domain: Server
- reason: 'Grund:'
- rejecting_media: Mediendateien dieses Servers werden nicht verarbeitet und keine Thumbnails werden angezeigt, was manuelles anklicken auf den anderen Server erfordert.
- rejecting_media_title: Gefilterte Medien
- silenced: Beiträge von diesem Server werden nirgends angezeigt, außer in deiner Startseite, wenn du der Person folgst, die den Beitrag verfasst hat.
- silenced_title: Stummgeschaltete Server
- suspended: Du kannst niemanden von diesem Server folgen, und keine Daten werden verarbeitet oder gespeichert und keine Daten ausgetauscht.
- suspended_title: Gesperrte Server
- unavailable_content_html: Mastodon erlaubt es dir generell, mit Inhalten zu interagieren, diese anzuzeigen und mit anderen Nutzern im Fediversum über Server hinweg zu interagieren. Dies sind die Ausnahmen, die auf diesem bestimmten Server gemacht wurden.
- user_count_after:
- one: Profil
- other: Profile
- user_count_before: Hostet
- what_is_mastodon: Was ist Mastodon?
+ title: Über
accounts:
- choices_html: "%{name} empfiehlt:"
- endorsements_hint: Du kannst Personen, denen du über die Weboberfläche folgst, auswählen, und sie werden hier angezeigt.
- featured_tags_hint: Du kannst spezifische Hashtags, die hier angezeigt werden, angeben.
follow: Folgen
followers:
one: Folgender
other: Folgende
following: Folgt
instance_actor_flash: Dieses Konto ist ein virtueller Akteur, der den Server selbst repräsentiert und nicht ein einzelner Benutzer. Es wird für Föderationszwecke verwendet und sollte nicht gesperrt werden.
- joined: Beigetreten am %{date}
last_active: zuletzt aktiv
link_verified_on: Besitz des Links wurde überprüft am %{date}
- media: Medien
- moved_html: "%{name} ist auf %{new_profile_link} umgezogen:"
- network_hidden: Diese Informationen sind nicht verfügbar
nothing_here: Hier gibt es nichts!
- people_followed_by: Profile, denen %{name} folgt
- people_who_follow: Profile, die %{name} folgen
pin_errors:
following: Du musst dieser Person bereits folgen, um sie empfehlen zu können
posts:
one: Beitrag
other: Beiträge
posts_tab_heading: Beiträge
- posts_with_replies: Beiträge mit Antworten
- roles:
- admin: Administrator
- bot: Bot
- group: Gruppe
- moderator: Moderator
- unavailable: Profil nicht verfügbar
- unfollow: Entfolgen
admin:
account_actions:
action: Aktion ausführen
@@ -98,19 +31,24 @@ de:
created_msg: Moderationsnotiz erfolgreich erstellt!
destroyed_msg: Moderationsnotiz erfolgreich gelöscht!
accounts:
- add_email_domain_block: E-Mail-Domain blacklisten
+ add_email_domain_block: E-Mail-Domain auf Blacklist setzen
approve: Akzeptieren
- approved_msg: "%{username}'s Anmeldeantrag erfolgreich genehmigt"
+ approved_msg: Anmeldeantrag von %{username} erfolgreich genehmigt
are_you_sure: Bist du sicher?
avatar: Profilbild
by_domain: Domain
change_email:
- changed_msg: E-Mail-Adresse des Kontos erfolgreich geändert!
+ changed_msg: E-Mail erfolgreich geändert!
current_email: Aktuelle E-Mail-Adresse
label: E-Mail-Adresse ändern
new_email: Neue E-Mail-Adresse
submit: E-Mail-Adresse ändern
title: E-Mail-Adresse für %{username} ändern
+ change_role:
+ changed_msg: Rolle erfolgreich geändert!
+ label: Rolle ändern
+ no_role: Keine Rolle
+ title: Rolle für %{username} ändern
confirm: Bestätigen
confirmed: Bestätigt
confirming: Bestätigung
@@ -118,7 +56,7 @@ de:
delete: Daten löschen
deleted: Gelöscht
demote: Degradieren
- destroyed_msg: "%{username}'s Daten wurden zum Löschen in die Warteschlange eingereiht"
+ destroyed_msg: Daten von %{username} wurden zum Löschen in die Warteschlange eingereiht
disable: Ausschalten
disable_sign_in_token_auth: Deaktiviere die Zwei-Faktor-Authentifizierung per E-Mail
disable_two_factor_authentication: 2FA abschalten
@@ -131,12 +69,12 @@ de:
enable: Freischalten
enable_sign_in_token_auth: Aktiviere die Zwei-Faktor-Authentifizierung per E-Mail
enabled: Freigegeben
- enabled_msg: "%{username}'s Konto erfolgreich freigegeben"
+ enabled_msg: Konto von %{username} erfolgreich freigegeben
followers: Follower
follows: Folgt
header: Titelbild
inbox_url: Posteingangs-URL
- invite_request_text: Begründung für das beitreten
+ invite_request_text: Begründung für das Beitreten
invited_by: Eingeladen von
ip: IP-Adresse
joined: Beigetreten
@@ -149,11 +87,12 @@ de:
media_attachments: Dateien
memorialize: In Gedenkmal verwandeln
memorialized: Memorialisiert
- memorialized_msg: "%{username} wurde erfolgreich in ein memorialisiertes Konto umgewandelt"
+ memorialized_msg: "%{username} wurde erfolgreich in ein In-Memoriam-Konto umgewandelt"
moderation:
active: Aktiv
all: Alle
pending: In Warteschlange
+ silenced: Limitiert
suspended: Gesperrt
title: Moderation
moderation_notes: Moderationsnotizen
@@ -161,6 +100,7 @@ de:
most_recent_ip: Letzte IP-Adresse
no_account_selected: Keine Konten wurden geändert, da keine ausgewählt wurden
no_limits_imposed: Keine Beschränkungen
+ no_role_assigned: Keine Rolle zugewiesen
not_subscribed: Nicht abonniert
pending: In Warteschlange
perform_full_suspension: Verbannen
@@ -175,11 +115,11 @@ de:
redownload: Profil neu laden
redownloaded_msg: Profil von %{username} erfolgreich von Ursprung aktualisiert
reject: Ablehnen
- rejected_msg: "%{username}'s Anmeldeantrag erfolgreich abgelehnt"
+ rejected_msg: Anmeldeantrag von %{username} erfolgreich abgelehnt
remove_avatar: Profilbild entfernen
remove_header: Titelbild entfernen
removed_avatar_msg: Profilbild von %{username} erfolgreich entfernt
- removed_header_msg: "%{username}'s Titelbild wurde erfolgreich entfernt"
+ removed_header_msg: Titelbild von %{username} wurde erfolgreich entfernt
resend_confirmation:
already_confirmed: Diese_r Benutzer_in wurde bereits bestätigt
send: Bestätigungs-E-Mail erneut senden
@@ -187,15 +127,10 @@ de:
reset: Zurücksetzen
reset_password: Passwort zurücksetzen
resubscribe: Wieder abonnieren
- role: Berechtigungen
- roles:
- admin: Administrator
- moderator: Moderator_in
- staff: Mitarbeiter
- user: Nutzer
+ role: Rolle
search: Suche
search_same_email_domain: Andere Benutzer mit der gleichen E-Mail-Domain
- search_same_ip: Andere Benutzer mit derselben IP
+ search_same_ip: Andere Benutzer mit derselben IP-Adresse
security_measures:
only_password: Nur Passwort
password_and_2fa: Passwort und 2FA
@@ -212,7 +147,7 @@ de:
subscribe: Abonnieren
suspend: Suspendieren
suspended: Verbannt
- suspension_irreversible: Die Daten dieses Kontos wurden unwiderruflich gelöscht. Du kannst das Konto aufheben, um es brauchbar zu machen, aber es wird keine Daten wiederherstellen, die es davor schon hatte.
+ suspension_irreversible: Die Daten dieses Kontos wurden unwiderruflich gelöscht. Du kannst das Konto aufheben, um es wieder brauchbar zu machen, aber es wird keine Daten wiederherstellen, die es davor hatte.
suspension_reversible_hint_html: Das Konto wurde gesperrt und die Daten werden am %{date} vollständig gelöscht. Bis dahin kann das Konto ohne irgendwelche negativen Auswirkungen wiederhergestellt werden. Wenn du alle Daten des Kontos sofort entfernen möchtest, kannst du dies nachfolgend tun.
title: Konten
unblock_email: E-Mail Adresse entsperren
@@ -221,7 +156,7 @@ de:
undo_sensitized: Nicht mehr als NSFW markieren
undo_silenced: Stummschaltung aufheben
undo_suspension: Verbannung aufheben
- unsilenced_msg: "%{username}'s Konto erfolgreich freigegeben"
+ unsilenced_msg: Konto von %{username} erfolgreich freigegeben
unsubscribe: Abbestellen
unsuspended_msg: Konto von %{username} erfolgreich freigegeben
username: Profilname
@@ -235,18 +170,22 @@ de:
approve_user: Benutzer genehmigen
assigned_to_self_report: Bericht zuweisen
change_email_user: E-Mail des Benutzers ändern
+ change_role_user: Rolle des Benutzers ändern
confirm_user: Benutzer bestätigen
create_account_warning: Warnung erstellen
create_announcement: Ankündigung erstellen
- create_custom_emoji: Eigene Emoji erstellen
+ create_canonical_email_block: E-Mail-Block erstellen
+ create_custom_emoji: Eigene Emojis erstellen
create_domain_allow: Domain erlauben
create_domain_block: Domain blockieren
create_email_domain_block: E-Mail-Domain-Block erstellen
create_ip_block: IP-Regel erstellen
create_unavailable_domain: Nicht verfügbare Domain erstellen
+ create_user_role: Rolle erstellen
demote_user: Benutzer degradieren
destroy_announcement: Ankündigung löschen
- destroy_custom_emoji: Eigene Emoji löschen
+ destroy_canonical_email_block: E-Mail-Blockade löschen
+ destroy_custom_emoji: Eigene Emojis löschen
destroy_domain_allow: Erlaube das Löschen von Domains
destroy_domain_block: Domain-Blockade löschen
destroy_email_domain_block: E-Mail-Domain-Blockade löschen
@@ -254,6 +193,7 @@ de:
destroy_ip_block: IP-Regel löschen
destroy_status: Beitrag löschen
destroy_unavailable_domain: Nicht verfügbare Domain löschen
+ destroy_user_role: Rolle löschen
disable_2fa_user: 2FA deaktivieren
disable_custom_emoji: Benutzerdefiniertes Emoji deaktivieren
disable_sign_in_token_auth_user: Zwei-Faktor-Authentifizierung per E-Mail für den Nutzer deaktiviert
@@ -279,25 +219,31 @@ de:
unsuspend_account: Konto nicht mehr sperren
update_announcement: Ankündigung aktualisieren
update_custom_emoji: Benutzerdefiniertes Emoji aktualisieren
- update_domain_block: Domain Block aktualisieren
+ update_domain_block: Domain-Blockade aktualisieren
+ update_ip_block: IP-Regel aktualisieren
update_status: Beitrag aktualisieren
+ update_user_role: Rolle aktualisieren
actions:
approve_appeal_html: "%{name} genehmigte die Moderationsbeschlüsse von %{target}"
approve_user_html: "%{name} genehmigte die Anmeldung von %{target}"
assigned_to_self_report_html: "%{name} hat sich die Meldung %{target} selbst zugewiesen"
change_email_user_html: "%{name} hat die E-Mail-Adresse des Nutzers %{target} geändert"
+ change_role_user_html: "%{name} hat die Rolle von %{target} geändert"
confirm_user_html: "%{name} hat die E-Mail-Adresse von %{target} bestätigt"
create_account_warning_html: "%{name} hat eine Warnung an %{target} gesendet"
create_announcement_html: "%{name} hat die neue Ankündigung %{target} erstellt"
+ create_canonical_email_block_html: "%{name} hat die E-Mail mit dem Hash %{target} blockiert"
create_custom_emoji_html: "%{name} hat neues Emoji %{target} hochgeladen"
create_domain_allow_html: "%{name} hat die Domain %{target} gewhitelistet"
create_domain_block_html: "%{name} hat die Domain %{target} blockiert"
create_email_domain_block_html: "%{name} hat die E-Mail-Domain %{target} geblacklistet"
create_ip_block_html: "%{name} hat eine Regel für IP %{target} erstellt"
create_unavailable_domain_html: "%{name} hat die Lieferung an die Domain %{target} eingestellt"
+ create_user_role_html: "%{name} hat die Rolle %{target} erstellt"
demote_user_html: "%{name} stufte Benutzer_in %{target} herunter"
destroy_announcement_html: "%{name} hat die neue Ankündigung %{target} gelöscht"
- destroy_custom_emoji_html: "%{name} zerstörte Emoji %{target}"
+ destroy_canonical_email_block_html: "%{name} hat die E-Mail mit dem Hash %{target} freigegeben"
+ destroy_custom_emoji_html: "%{name} hat das %{target} Emoji gelöscht"
destroy_domain_allow_html: "%{name} hat die Domain %{target} von der Whitelist entfernt"
destroy_domain_block_html: "%{name} hat die Domain %{target} entblockt"
destroy_email_domain_block_html: "%{name} hat die E-Mail-Domain %{target} gewhitelistet"
@@ -305,12 +251,13 @@ de:
destroy_ip_block_html: "%{name} hat eine Regel für IP %{target} gelöscht"
destroy_status_html: "%{name} hat einen Beitrag von %{target} entfernt"
destroy_unavailable_domain_html: "%{name} setzte die Lieferung an die Domain %{target} fort"
+ destroy_user_role_html: "%{name} hat die Rolle %{target} gelöscht"
disable_2fa_user_html: "%{name} hat Zwei-Faktor-Anforderung für Benutzer_in %{target} deaktiviert"
disable_custom_emoji_html: "%{name} hat das %{target} Emoji deaktiviert"
disable_sign_in_token_auth_user_html: "%{name} hat die E-Mail-Token Authentifizierung für %{target} deaktiviert"
disable_user_html: "%{name} hat Zugang von Benutzer_in %{target} deaktiviert"
enable_custom_emoji_html: "%{name} hat das %{target} Emoji aktiviert"
- enable_sign_in_token_auth_user_html: "%{name} hat die E-Mail-Token Authentifizierung für %{target} aktiviert"
+ enable_sign_in_token_auth_user_html: "%{name} hat die E-Mail-Token-Authentifizierung für %{target} aktiviert"
enable_user_html: "%{name} hat Zugang von Benutzer_in %{target} aktiviert"
memorialize_account_html: "%{name} hat das Konto von %{target} in eine Gedenkseite umgewandelt"
promote_user_html: "%{name} hat %{target} befördert"
@@ -320,19 +267,20 @@ de:
reopen_report_html: "%{name} hat die Meldung %{target} wieder geöffnet"
reset_password_user_html: "%{name} hat das Passwort von %{target} zurückgesetzt"
resolve_report_html: "%{name} hat die Meldung %{target} bearbeitet"
- sensitive_account_html: "%{name} markierte %{target}'s Medien als NSFW"
+ sensitive_account_html: "%{name} markierte die Medien von %{target} als NSFW"
silence_account_html: "%{name} hat das Konto von %{target} stummgeschaltet"
suspend_account_html: "%{name} hat das Konto von %{target} verbannt"
unassigned_report_html: "%{name} hat die Zuweisung der Meldung %{target} entfernt"
- unblock_email_account_html: "%{name} entsperrte %{target}'s E-Mail-Adresse"
- unsensitive_account_html: "%{name} markierte %{target}'s Medien nicht als NSFW"
+ unblock_email_account_html: "%{name} entsperrte die E-Mail-Adresse von %{target}"
+ unsensitive_account_html: "%{name} markierte Medien von %{target} als nicht NSFW"
unsilence_account_html: "%{name} hat die Stummschaltung von %{target} aufgehoben"
unsuspend_account_html: "%{name} hat die Verbannung von %{target} aufgehoben"
update_announcement_html: "%{name} aktualisierte Ankündigung %{target}"
update_custom_emoji_html: "%{name} hat das %{target} Emoji geändert"
update_domain_block_html: "%{name} hat den Domain-Block für %{target} aktualisiert"
+ update_ip_block_html: "%{name} hat die Regel für IP %{target} geändert"
update_status_html: "%{name} hat einen Beitrag von %{target} aktualisiert"
- deleted_status: "(gelöschter Beitrag)"
+ update_user_role_html: "%{name} hat die Rolle %{target} geändert"
empty: Keine Protokolle gefunden.
filter_by_action: Nach Aktion filtern
filter_by_user: Nach Benutzer filtern
@@ -376,6 +324,7 @@ de:
listed: Gelistet
new:
title: Eigenes Emoji hinzufügen
+ no_emoji_selected: Keine Emojis wurden geändert, da keine ausgewählt wurden
not_permitted: Du bist für die Durchführung dieses Vorgangs nicht berechtigt
overwrite: Überschreiben
shortcode: Kürzel
@@ -428,6 +377,7 @@ de:
destroyed_msg: Die Domain-Blockade wurde rückgängig gemacht
domain: Domain
edit: Domainblockade bearbeiten
+ existing_domain_block: Du hast %{name} bereits stärker eingeschränkt.
existing_domain_block_html: Es gibt schon eine Blockade für %{name}, diese muss erst aufgehoben werden.
new:
create: Blockade einrichten
@@ -466,11 +416,11 @@ de:
resolve: Domain auflösen
title: Neue E-Mail-Domain-Blockade
no_email_domain_block_selected: Es wurden keine E-Mail-Domain-Blockierungen geändert, da keine ausgewählt wurden
- resolved_dns_records_hint_html: Der Domain-Name wird an die folgenden MX-Domains aufgelöst, die letztendlich für die Annahme von E-Mails verantwortlich sind. Das Blockieren einer MX-Domain blockiert Anmeldungen von jeder E-Mail-Adresse, die dieselbe MX-Domain verwendet, auch wenn der sichtbare Domainname anders ist. Achte darauf große E-Mail-Anbieter nicht zu blockieren.
+ resolved_dns_records_hint_html: Der Domain-Name wird an die folgenden MX-Domains aufgelöst, die letztendlich für die Annahme von E-Mails verantwortlich sind. Das Blockieren einer MX-Domain blockiert Anmeldungen von jeder E-Mail-Adresse, welche dieselbe MX-Domain verwendet, auch wenn der sichtbare Domainname anders ist. Achte darauf, große E-Mail-Anbieter nicht zu blockieren.
resolved_through_html: Durch %{domain} aufgelöst
title: E-Mail-Domain-Blockade
follow_recommendations:
- description_html: "Folgeempfehlungen helfen neuen Nutzern dabei, schnell interessante Inhalte zu finden . Wenn ein Nutzer noch nicht genug mit anderen interagiert hat, um personalisierte Folgeempfehlungen zu erstellen, werden stattdessen diese Benutzerkonten verwendet. Sie werden täglich basiert auf einer Mischung aus am meisten interagierenden Benutzerkonten und solchen mit den meisten Folgenden für eine bestimmte Sprache neuberechnet."
+ description_html: "Folgeempfehlungen helfen neuen Nutzern dabei, schnell interessante Inhalte zu finden . Wenn ein Nutzer noch nicht genug mit anderen interagiert hat, um personalisierte Folgeempfehlungen zu erstellen, werden stattdessen diese Benutzerkonten verwendet. Sie werden täglich basierend auf einer Mischung aus am meisten interagierenden Benutzerkonten und jenen mit den meisten Folgenden für eine bestimmte Sprache neuberechnet."
language: Für Sprache
status: Status
suppress: Folgeempfehlungen unterdrücken
@@ -576,7 +526,7 @@ de:
disable: Ausschalten
disabled: Ausgeschaltet
enable: Einschalten
- enable_hint: Sobald aktiviert wird dein Server alle öffentlichen Beiträge dieses Relays abonnieren und wird alle öffentlichen Beiträge dieses Servers an es senden.
+ enable_hint: Sobald aktiviert, wird dein Server alle öffentlichen Beiträge dieses Relays abonnieren und alle öffentlichen Beiträge dieses Servers an dieses senden.
enabled: Eingeschaltet
inbox_url: Relay-URL
pending: Warte auf Zustimmung des Relays
@@ -598,12 +548,12 @@ de:
action_taken_by: Maßnahme ergriffen durch
actions:
delete_description_html: Der gemeldete Beitrag wird gelöscht und ein Strike wird aufgezeichnet, um dir bei zukünftigen Verstößen des gleichen Accounts zu helfen.
- mark_as_sensitive_description_html: The media in the reported posts will be marked as sensitive and a strike will be recorded to help you escalate on future infractions by the same account.
- other_description_html: Weitere Optionen zur Kontrolle des Kontoverhaltens und zur Anpassung der Kommunikation an das gemeldete Konto.
- resolve_description_html: Es wird keine Maßnahme gegen den gemeldeten Account ergriffen, es wird kein Strike verzeichnet und die Meldung wird geschlossen.
- silence_description_html: Das Profil wird nur für diejenigen sichtbar sein, die es bereits verfolgen oder manuell nachschlagen und die Reichweite wird stark begrenzt. Kann immer rückgängig gemacht werden.
+ mark_as_sensitive_description_html: Die Medien in den gemeldeten Beiträgen werden als NSFW markiert und ein Strike wird notiert, um dir dabei zu helfen, härter auf zukünftige Zuwiderhandlungen desselben Kontos zu reagieren.
+ other_description_html: Weitere Optionen zur Kontrolle des Kontoverhaltens und zur Anpassung der Kommunikation mit dem gemeldeten Konto.
+ resolve_description_html: Es wird keine Maßnahme gegen das gemeldete Konto ergriffen, es wird kein Strike verzeichnet und die Meldung wird geschlossen.
+ silence_description_html: Das Profil wird nur für diejenigen sichtbar sein, die ihm bereits folgen oder es manuell nachschlagen, und die Reichweite wird stark begrenzt. Kann immer rückgängig gemacht werden.
suspend_description_html: Das Profil und alle seine Inhalte werden unzugänglich werden, bis es schließlich gelöscht wird. Interaktion mit dem Konto wird unmöglich sein. Reversibel innerhalb von 30 Tagen.
- actions_description_html: Entscheide, welche Maßnahmen zur Lösung dieses Berichts zu ergreifen sind. Wenn du eine Strafmaßnahme gegen das gemeldete Konto ergreifst, wird eine E-Mail-Benachrichtigung an diese gesendet außer wenn die Spam Kategorie ausgewählt ist.
+ actions_description_html: Entscheide, welche Maßnahmen zur Lösung dieses Berichts zu ergreifen sind. Wenn du eine Strafmaßnahme gegen das gemeldete Konto ergreifst, wird eine E-Mail-Benachrichtigung an diese gesendet, außer wenn die Spam -Kategorie ausgewählt ist.
add_to_report: Mehr zur Meldung hinzufügen
are_you_sure: Bist du dir sicher?
assign_to_self: Mir zuweisen
@@ -613,7 +563,7 @@ de:
category_description_html: Der Grund, warum dieses Konto und/oder der Inhalt gemeldet wurden, wird in der Kommunikation mit dem gemeldeten Konto zitiert
comment:
none: Kein
- comment_description_html: 'Um weitere Informationen bereitzustellen, schrieb %{name} folgendes:'
+ comment_description_html: 'Um weitere Informationen bereitzustellen, schrieb %{name} Folgendes:'
created_at: Gemeldet
delete_and_resolve: Beiträge löschen
forwarded: Weitergeleitet
@@ -648,102 +598,101 @@ de:
unresolved: Ungelöst
updated_at: Aktualisiert
view_profile: Zeige Profil
+ roles:
+ add_new: Rolle hinzufügen
+ assigned_users:
+ one: "%{count} Benutzer"
+ other: "%{count} Benutzer"
+ categories:
+ administration: Administration
+ devops: DevOps
+ invites: Einladungen
+ moderation: Moderation
+ special: Spezial
+ delete: Löschen
+ description_html: Mit Benutzerrollen kannst du die Funktionen und Bereiche von Mastodon anpassen, auf die deine Benutzer zugreifen können.
+ edit: "'%{name}' Rolle bearbeiten"
+ everyone: Standardberechtigungen
+ everyone_full_description_html: Das ist die -Basis-Rolle , die jeden Benutzer betrifft, auch diejenigen ohne zugewiesene Rolle. Alle anderen Rollen erben Berechtigungen davon.
+ permissions_count:
+ one: "%{count} Berechtigung"
+ other: "%{count} Berechtigungen"
+ privileges:
+ administrator: Administrator
+ administrator_description: Benutzer mit dieser Berechtigung werden jede Berechtigung umgehen
+ delete_user_data: Benutzerdaten löschen
+ delete_user_data_description: Erlaubt Benutzern, die Daten anderer Benutzer ohne Verzögerung zu löschen
+ invite_users: Benutzer einladen
+ invite_users_description: Erlaubt Benutzern, neue Leute zum Server einzuladen
+ manage_announcements: Ankündigungen verwalten
+ manage_announcements_description: Erlaubt Benutzern, Ankündigungen auf dem Server zu verwalten
+ manage_appeals: Anträge verwalten
+ manage_appeals_description: Erlaubt es Benutzern, Anträge gegen Moderationsaktionen zu überprüfen
+ manage_blocks: Geblocktes verwalten
+ manage_blocks_description: Erlaubt Benutzern, E-Mail-Anbieter und IP-Adressen zu blockieren
+ manage_custom_emojis: Benutzerdefinierte Emojis verwalten
+ manage_custom_emojis_description: Erlaubt es Benutzern, eigene Emojis auf dem Server zu verwalten
+ manage_federation: Föderation verwalten
+ manage_federation_description: Erlaubt es Benutzern, Föderation mit anderen Domains zu blockieren oder zuzulassen und die Zustellbarkeit zu kontrollieren
+ manage_invites: Einladungen verwalten
+ manage_invites_description: Erlaubt es Benutzern, Einladungslinks zu durchsuchen und zu deaktivieren
+ manage_reports: Meldungen verwalten
+ manage_reports_description: Erlaubt es Benutzern, Meldungen zu überprüfen und Moderationsaktionen gegen sie durchzuführen
+ manage_roles: Rollen verwalten
+ manage_roles_description: Erlaubt es Benutzern, Rollen unter ihren Rollen zu verwalten und zuzuweisen
+ manage_rules: Regeln verwalten
+ manage_rules_description: Erlaubt es Benutzern, Serverregeln zu ändern
+ manage_settings: Einstellungen verwalten
+ manage_settings_description: Erlaubt es Benutzern, Seiten-Einstellungen zu ändern
+ manage_taxonomies: Taxonomien verwalten
+ manage_taxonomies_description: Ermöglicht Benutzern die Überprüfung angesagter Inhalte und das Aktualisieren der Hashtag-Einstellungen
+ manage_user_access: Benutzerzugriff verwalten
+ manage_user_access_description: Erlaubt es Benutzern, die Zwei-Faktor-Authentifizierung anderer Benutzer zu deaktivieren, ihre E-Mail-Adresse zu ändern und ihr Passwort zurückzusetzen
+ manage_users: Benutzer verwalten
+ manage_users_description: Erlaubt es Benutzern, die Details anderer Benutzer anzuzeigen und Moderationsaktionen gegen sie auszuführen
+ manage_webhooks: Webhooks verwalten
+ manage_webhooks_description: Erlaubt es Benutzern, Webhooks für administrative Ereignisse einzurichten
+ view_audit_log: Audit-Log anzeigen
+ view_audit_log_description: Erlaubt es Benutzern, den Verlauf von administrativen Aktionen auf dem Server zu sehen
+ view_dashboard: Dashboard anzeigen
+ view_dashboard_description: Gewährt Benutzern den Zugriff auf das Dashboard und verschiedene Metriken
+ view_devops: DevOps
+ view_devops_description: Erlaubt es Benutzern, auf die Sidekiq- und pgHero-Dashboards zuzugreifen
+ title: Rollen
rules:
add_new: Regel hinzufügen
delete: Löschen
- description_html: Während die meisten behaupten, die Nutzungsbedingungen gelesen und akzeptiert zu haben, lesen die Menschen sie in der Regel erst nach einem Problem. Vereinfache es, die Regeln deines Servers auf einen Blick zu sehen, indem du sie in einer einfachen Auflistung zur Verfügung stellst. Versuche die einzelnen Regeln kurz und einfach zu halten, aber versuche nicht, sie in viele verschiedene Elemente aufzuteilen.
+ description_html: Während die meisten behaupten, die Nutzungsbedingungen gelesen und akzeptiert zu haben, lesen die Menschen sie in der Regel erst nach einem Problem. Vereinfache es, die Regeln deines Servers auf einen Blick zu sehen, indem du sie in einer einfachen Auflistung zur Verfügung stellst. Versuche, die einzelnen Regeln kurz und einfach zu halten, aber versuche nicht, sie in viele verschiedene Elemente aufzuteilen.
edit: Regel bearbeiten
empty: Es wurden bis jetzt keine Server-Regeln definiert.
title: Server-Regeln
settings:
- activity_api_enabled:
- desc_html: Anzahl der lokal geposteten Beiträge, aktiven Nutzern und neuen Registrierungen in wöchentlichen Zusammenfassungen
- title: Veröffentliche gesamte Statistiken über Benutzeraktivitäten
- bootstrap_timeline_accounts:
- desc_html: Mehrere Profilnamen durch Kommata trennen. Diese Accounts werden immer in den Folgemempfehlungen angezeigt
- title: Konten, die Neu-Angemeldete empfohlen bekommen sollen
- contact_information:
- email: Öffentliche E-Mail-Adresse
- username: Profilname für die Kontaktaufnahme
- custom_css:
- desc_html: Verändere das Aussehen mit CSS, dass auf jeder Seite geladen wird
- title: Benutzerdefiniertes CSS
- default_noindex:
- desc_html: Beeinflusst alle Benutzer, die diese Einstellung nicht selbst geändert haben
- title: Benutzer aus Suchmaschinen-Indizierung standardmäßig herausnehmen
+ about:
+ rules_hint: Es gibt einen eigenen Bereich für Regeln, an die sich Ihre Benutzer halten sollen.
+ title: Über
+ appearance:
+ preamble: Passen Sie Mastodons Weboberfläche an.
+ title: Darstellung
+ branding:
+ title: Branding
+ content_retention:
+ preamble: Steuern Sie, wie nutzergenerierte Inhalte in Mastodon gespeichert werden.
+ discovery:
+ follow_recommendations: Folgeempfehlungen
+ title: Entdecken
+ trends: Trends
domain_blocks:
all: An alle
disabled: An niemanden
- title: Zeige Domain-Blockaden
users: Für angemeldete lokale Benutzer
- domain_blocks_rationale:
- title: Rationale anzeigen
- hero:
- desc_html: Wird auf der Startseite angezeigt. Mindestens 600x100px sind empfohlen. Wenn es nicht gesetzt wurde, wird das Server-Thumbnail dafür verwendet
- title: Bild für Einstiegsseite
- mascot:
- desc_html: Angezeigt auf mehreren Seiten. Mehr als 293x205px empfohlen. Wenn es nicht gesetzt wurde wird es auf das Standard-Maskottchen zurückfallen
- title: Maskottchen-Bild
- peers_api_enabled:
- desc_html: Domain-Namen, die der Server im Fediversum gefunden hat
- title: Veröffentliche entdeckte Server durch die API
- preview_sensitive_media:
- desc_html: Linkvorschauen auf anderen Webseiten werden ein Vorschaubild anzeigen, obwohl die Medien als NSFW markiert sind
- title: NSFW-Medien in OpenGraph-Vorschau anzeigen
- profile_directory:
- desc_html: Erlaube Benutzer auffindbar zu sein
- title: Aktiviere Profilverzeichnis
registrations:
- closed_message:
- desc_html: Wird auf der Einstiegsseite gezeigt, wenn die Anmeldung geschlossen ist. Du kannst HTML-Tags nutzen
- title: Nachricht über geschlossene Registrierung
- deletion:
- desc_html: Allen erlauben, ihr Konto eigenmächtig zu löschen
- title: Kontolöschung erlauben
- min_invite_role:
- disabled: Niemand
- title: Einladungen erlauben von
- require_invite_text:
- desc_html: Wenn eine Registrierung manuell genehmigt werden muss, mache den "Warum möchtest du beitreten?" Text eher obligatorisch als optional
- title: Neue Benutzer müssen einen Einladungstext ausfüllen
+ title: Registrierungen
registrations_mode:
modes:
approved: Zustimmung benötigt zur Registrierung
none: Niemand kann sich registrieren
open: Jeder kann sich registrieren
- title: Registrierungsmodus
- show_known_fediverse_at_about_page:
- desc_html: Wenn aktiviert, wird es alle Beiträge aus dem bereits bekannten Teil des Fediversums auf der Startseite anzeigen. Andernfalls werden lokale Beitrage des Servers angezeigt.
- title: Zeige eine öffentliche Zeitleiste auf der Einstiegsseite
- show_staff_badge:
- desc_html: Zeige Mitarbeiter-Badge auf Benutzerseite
- title: Zeige Mitarbeiter-Badge
- site_description:
- desc_html: Einleitungsabschnitt auf der Frontseite. Beschreibe, was diesen Mastodon-Server ausmacht. Du kannst HTML-Tags benutzen, insbesondere <a>
und <em>
.
- title: Beschreibung des Servers
- site_description_extended:
- desc_html: Bietet sich für Verhaltenskodizes, Regeln, Richtlinien und weiteres an, was deinen Server auszeichnet. Du kannst HTML-Tags benutzen
- title: Erweiterte Beschreibung des Servers
- site_short_description:
- desc_html: Wird angezeigt in der Seitenleiste und in Meta-Tags. Beschreibe in einem einzigen Abschnitt, was Mastodon ist und was diesen Server von anderen unterscheidet. Falls leer, wird die Server-Beschreibung verwendet.
- title: Kurze Beschreibung des Servers
- site_terms:
- desc_html: Hier kannst du deine eigenen Geschäftsbedingungen, Datenschutzerklärung und anderes rechtlich Relevante eintragen. Du kannst HTML-Tags nutzen
- title: Benutzerdefinierte Geschäftsbedingungen
- site_title: Name des Servers
- thumbnail:
- desc_html: Wird für die Vorschau via OpenGraph und API verwendet. 1200×630 px wird empfohlen
- title: Vorschaubild des Servers
- timeline_preview:
- desc_html: Auf der Einstiegsseite die öffentliche Zeitleiste anzeigen
- title: Zeitleisten-Vorschau
- title: Server-Einstellungen
- trendable_by_default:
- desc_html: Betroffene Hashtags, die bisher nicht gesperrt wurden
- title: Hashtags ohne vorherige Überprüfung erlauben zu trenden
- trends:
- desc_html: Zuvor überprüfte Hashtags öffentlich anzeigen, die derzeit angesagt sind
- title: Trendende Hashtags
+ title: Servereinstellungen
site_uploads:
delete: Hochgeladene Datei löschen
destroyed_msg: Upload erfolgreich gelöscht!
@@ -765,24 +714,24 @@ de:
disable: "%{name} hat das Konto von %{target} eingefroren"
mark_statuses_as_sensitive: "%{name} markierte %{target}'s Beiträge als NSFW"
none: "%{name} hat eine Warnung an %{target} gesendet"
- sensitive: "%{name} markierte %{target}'s Konto als NSFW"
+ sensitive: "%{name} markierte das Konto von %{target} als NSFW"
silence: "%{name} hat das Konto von %{target} eingeschränkt"
suspend: "%{name} hat das Konto von %{target} verbannt"
appeal_approved: Einspruch angenommen
appeal_pending: Einspruch ausstehend
system_checks:
database_schema_check:
- message_html: Es gibt ausstehende Datenbankmigrationen. Bitte führen Sie sie aus, um sicherzustellen, dass sich die Anwendung wie erwartet verhält
+ message_html: Es gibt ausstehende Datenbankmigrationen. Bitte führe sie aus, um sicherzustellen, dass sich die Anwendung wie erwartet verhält
elasticsearch_running_check:
- message_html: Verbindung mit Elasticsearch konnte nicht hergestellt werden. Bitte prüfe ob Elasticsearch läuft oder deaktiviere die Volltextsuche
+ message_html: Verbindung mit Elasticsearch konnte nicht hergestellt werden. Bitte prüfe, ob Elasticsearch läuft, oder deaktiviere die Volltextsuche
elasticsearch_version_check:
message_html: 'Inkompatible Elasticsearch-Version: %{value}'
version_comparison: Elasticsearch %{running_version} läuft, aber %{required_version} wird benötigt
rules_check:
action: Serverregeln verwalten
- message_html: Sie haben keine Serverregeln definiert.
+ message_html: Du hast keine Serverregeln definiert.
sidekiq_process_check:
- message_html: Kein Sidekiq-Prozess läuft für die %{value} Warteschlange(n). Bitte überprüfen Sie Ihre Sidekiq-Konfiguration
+ message_html: Kein Sidekiq-Prozess läuft für die %{value} Warteschlange(n). Bitte überprüfe deine Sidekiq-Konfiguration
tags:
review: Prüfstatus
updated_msg: Hashtageinstellungen wurden erfolgreich aktualisiert
@@ -794,28 +743,32 @@ de:
links:
allow: Erlaube Link
allow_provider: Erlaube Herausgeber
- description_html: Dies sind Links, die derzeit von Konten geteilt werden, von denen dein Server Beiträge sieht. Es kann deinen Benutzern helfen, herauszufinden, was in der Welt vor sich geht. Es werden keine Links öffentlich angezeigt, bis du den Publisher genehmigst. Du kannst auch einzelne Links zulassen oder ablehnen.
+ description_html: Dies sind Links, die derzeit von Konten geteilt werden, von denen dein Server Beiträge sieht. Es kann deinen Benutzern helfen herauszufinden, was in der Welt vor sich geht. Es werden keine Links öffentlich angezeigt, bis du den Publisher genehmigst. Du kannst auch einzelne Links zulassen oder ablehnen.
disallow: Verbiete Link
disallow_provider: Verbiete Herausgeber
+ no_link_selected: Keine Links wurden geändert, da keine ausgewählt wurden
+ publishers:
+ no_publisher_selected: Es wurden keine Herausgeber geändert, da keine ausgewählt wurden
shared_by_over_week:
one: In der letzten Woche von einer Person geteilt
other: In der letzten Woche von %{count} Personen geteilt
title: Angesagte Links
- usage_comparison: Heute %{today} mal geteilt, gestern %{yesterday} mal
+ usage_comparison: Heute %{today} Mal geteilt, gestern %{yesterday} Mal
only_allowed: Nur Erlaubte
pending_review: Überprüfung ausstehend
preview_card_providers:
allowed: Links von diesem Herausgeber können angesagt sein
- description_html: Dies sind Domains, von denen Links oft auf deinem Server geteilt werden. Links werden sich nicht öffentlich trenden, es sei denn, die Domain des Links wird genehmigt. Deine Zustimmung (oder Ablehnung) erstreckt sich auf Subdomains.
+ description_html: Dies sind Domains, von denen Links oft auf deinem Server geteilt werden. Links werden nicht öffentlich trenden, es sei denn, die Domain des Links wird genehmigt. Deine Zustimmung (oder Ablehnung) erstreckt sich auf Subdomains.
rejected: Links von diesem Herausgeber können nicht angesagt sein
title: Herausgeber
rejected: Abgelehnt
statuses:
allow: Beitrag erlauben
allow_account: Autor erlauben
- description_html: Dies sind Beiträge, von denen dein Server weiß, dass sie derzeit viel geteilt und favorisiert werden. Es kann deinen neuen und wiederkehrenden Benutzern helfen, weitere Personen zu finden. Es werden keine Beiträge öffentlich angezeigt, bis du den Autor genehmigst und der Autor es zulässt deren Konto anderen Benutzern zu zeigen. Du kannst auch einzelne Beiträge zulassen oder ablehnen.
+ description_html: Dies sind Beiträge, von denen dein Server weiß, dass sie derzeit viel geteilt und favorisiert werden. Es kann deinen neuen und wiederkehrenden Benutzern helfen, weitere Personen zu finden. Es werden keine Beiträge öffentlich angezeigt, bis du den Autor genehmigst und der Autor es zulässt, sein Konto anderen Benutzern zeigen zu lassen. Du kannst auch einzelne Beiträge zulassen oder ablehnen.
disallow: Beitrag verbieten
disallow_account: Autor verbieten
+ no_status_selected: Keine angesagten Beiträge wurden geändert, da keine ausgewählt wurden
not_discoverable: Der Autor hat sich nicht dafür entschieden, entdeckt zu werden
shared_by:
one: Einmal geteilt oder favorisiert
@@ -831,6 +784,7 @@ de:
tag_uses_measure: Gesamtnutzungen
description_html: Dies sind Hashtags, die derzeit in vielen Beiträgen erscheinen, die dein Server sieht. Es kann deinen Benutzern helfen, herauszufinden, worüber die Menschen im Moment am meisten reden. Es werden keine Hashtags öffentlich angezeigt, bis du sie genehmigst.
listable: Kann vorgeschlagen werden
+ no_tag_selected: Keine Tags wurden geändert, da keine ausgewählt wurden
not_listable: Wird nicht vorgeschlagen
not_trendable: Wird nicht unter Trends angezeigt
not_usable: Kann nicht verwendet werden
@@ -839,7 +793,7 @@ de:
trendable: Darf unter Trends erscheinen
trending_rank: 'Trend #%{rank}'
usable: Kann verwendet werden
- usage_comparison: Heute %{today} mal genutzt, gestern %{yesterday} mal
+ usage_comparison: Heute %{today} Mal genutzt, gestern %{yesterday} Mal
used_by_over_week:
one: In der letzten Woche von einer Person genutzt
other: In der letzten Woche von %{count} Personen genutzt
@@ -851,6 +805,26 @@ de:
edit_preset: Warnungsvorlage bearbeiten
empty: Du hast noch keine Warnungsvorlagen hinzugefügt.
title: Warnungsvorlagen verwalten
+ webhooks:
+ add_new: Endpunkt hinzufügen
+ delete: Löschen
+ description_html: Ein Webhook ermöglicht Mastodon Echtzeitbenachrichtigungen über ausgewählte Ereignisse an deine eigene Anwendung zu senden damit deine Anwendung automatisch Reaktionen auslösen kann .
+ disable: Deaktivieren
+ disabled: Deaktiviert
+ edit: Endpunkt bearbeiten
+ empty: Du hast noch keine Webhook Endpunkte konfiguriert.
+ enable: Aktivieren
+ enabled: Aktiv
+ enabled_events:
+ one: 1 aktiviertes Ereignis
+ other: "%{count} aktivierte Ereignisse"
+ events: Ereignisse
+ new: Neuer Webhook
+ rotate_secret: Geheimen Schlüssel rotieren
+ secret: Signaturgeheimnis
+ status: Status
+ title: Webhooks
+ webhook: Webhook
admin_mailer:
new_appeal:
actions:
@@ -861,9 +835,9 @@ de:
sensitive: deren Konto als NSFW zu markieren
silence: deren Konto zu beschränken
suspend: deren Konto zu sperren
- body: "%{target} hat was gegen eine Moderationsentscheidung von %{action_taken_by} von %{date}, die %{type} war. Die Person schrieb:"
+ body: "%{target} hat etwas gegen eine Moderationsentscheidung von %{action_taken_by} von %{date}, die %{type} war. Die Person schrieb:"
next_steps: Du kannst dem Einspruch zustimmen und die Moderationsentscheidung rückgängig machen oder ignorieren.
- subject: "%{username} hat Einspruch an einer Moderationsentscheidung von %{instance}"
+ subject: "%{username} hat Einspruch gegen eine Moderationsentscheidung von %{instance} eingelegt"
new_pending_account:
body: Die Details von diesem neuem Konto sind unten. Du kannst die Anfrage akzeptieren oder ablehnen.
subject: Neues Konto zur Überprüfung auf %{instance} verfügbar (%{username})
@@ -874,12 +848,8 @@ de:
new_trends:
body: 'Die folgenden Einträge müssen überprüft werden, bevor sie öffentlich angezeigt werden können:'
new_trending_links:
- no_approved_links: Derzeit sind keine trendenen Links hinterlegt, die genehmigt wurden.
- requirements: 'Jeder dieser Kandidaten könnte den #%{rank} genehmigten trendenen Link übertreffen, der derzeit "%{lowest_link_title}" mit einer Punktzahl von %{lowest_link_score} ist.'
title: Angesagte Links
new_trending_statuses:
- no_approved_statuses: Derzeit sind keine trendenen Beiträge hinterlegt, die genehmigt wurden.
- requirements: 'Jeder dieser Kandidaten könnte den #%{rank} genehmigten trendenen Beitrag übertreffen, der derzeit "%{lowest_status_url}" mit einer Punktzahl von %{lowest_status_score} ist.'
title: Angesagte Beiträge
new_trending_tags:
no_approved_tags: Derzeit gibt es keine genehmigten trendenen Hashtags.
@@ -889,13 +859,13 @@ de:
aliases:
add_new: Alias erstellen
created_msg: Ein neuer Alias wurde erfolgreich erstellt. Du kannst nun den Wechsel vom alten Konto starten.
- deleted_msg: Der Alias wurde erfolgreich entfernt. Aus diesem Konto zu diesem zu verschieben ist nicht mehr möglich.
+ deleted_msg: Der Alias wurde erfolgreich entfernt. Aus jenem Konto zu diesem zu verschieben, ist nicht mehr möglich.
empty: Du hast keine Aliase.
- hint_html: Wenn du von einem Konto zu einem anderem Konto wechseln möchtest, dann kannst du einen Alias erstellen, welcher benötigt wird bevor du deine Folgenden vom altem Account zu diesen migrierst. Die Aktion alleine ist harmlos und widerruflich . Die Kontenmigration wird vom altem Konto aus eingeleitet .
+ hint_html: Wenn du von einem Konto zu einem anderem Konto wechseln möchtest, dann kannst du einen Alias erstellen, welcher benötigt wird, bevor du deine Folgenden vom altem Account zu diesen migrierst. Die Aktion alleine ist harmlos und widerruflich . Die Kontenmigration wird vom altem Konto aus eingeleitet .
remove: Alle Aliase aufheben
appearance:
advanced_web_interface: Fortgeschrittene Benutzeroberfläche
- advanced_web_interface_hint: Wenn du mehr aus deiner Bildschirmbreite herausholen möchtest, erlaubt dir die fortgeschrittene Benutzeroberfläche viele unterschiedliche Spalten auf einmal zu sehen, wie z.B. deine Startseite, Benachrichtigungen, das gesamte bekannte Netz, deine Listen und beliebige Hashtags.
+ advanced_web_interface_hint: Wenn du mehr aus deiner Bildschirmbreite herausholen möchtest, erlaubt es dir die fortgeschrittene Benutzeroberfläche, viele unterschiedliche Spalten auf einmal zu sehen, wie z.B. deine Startseite, Benachrichtigungen, das gesamte bekannte Netz, deine Listen und beliebige Hashtags.
animations_and_accessibility: Animationen und Barrierefreiheit
confirmation_dialogs: Bestätigungsfenster
discovery: Entdecken
@@ -915,16 +885,13 @@ de:
applications:
created: Anwendung erfolgreich erstellt
destroyed: Anwendung erfolgreich gelöscht
- invalid_url: Die angegebene URL ist ungültig
regenerate_token: Zugangs-Token neu erstellen
token_regenerated: Zugangs-Token neu erstellt
warning: Sei mit diesen Daten sehr vorsichtig. Teile sie mit niemandem!
your_token: Dein Zugangs-Token
auth:
- apply_for_account: Eine Einladung anfragen
+ apply_for_account: Auf Warteliste kommen
change_password: Passwort
- checkbox_agreement_html: Ich akzeptiere die Server-Regeln und die Nutzungsbedingungen
- checkbox_agreement_without_rules_html: Ich stimme den Nutzungsbedingungen zu
delete_account: Konto löschen
delete_account_html: Falls du dein Konto löschen willst, kannst du hier damit fortfahren . Du wirst um Bestätigung gebeten werden.
description:
@@ -943,6 +910,7 @@ de:
migrate_account: Ziehe zu einem anderen Konto um
migrate_account_html: Wenn du wünschst, dieses Konto zu einem anderen umzuziehen, kannst du dies hier einstellen .
or_log_in_with: Oder anmelden mit
+ privacy_policy_agreement_html: Ich habe die Datenschutzerklärung gelesen und stimme ihr zu
providers:
cas: CAS
saml: SAML
@@ -950,12 +918,18 @@ de:
registration_closed: "%{instance} akzeptiert keine neuen Mitglieder"
resend_confirmation: Bestätigungs-Mail erneut versenden
reset_password: Passwort zurücksetzen
+ rules:
+ preamble: Diese werden von den Moderatoren von %{domain} erzwungen.
+ title: Einige Grundregeln.
security: Sicherheit
set_new_password: Neues Passwort setzen
setup:
email_below_hint_html: Wenn die unten stehende E-Mail-Adresse falsch ist, kannst du sie hier ändern und eine neue Bestätigungs-E-Mail erhalten.
email_settings_hint_html: Die Bestätigungs-E-Mail wurde an %{email} gesendet. Wenn diese E-Mail-Adresse nicht korrekt ist, kannst du sie in den Einstellungen ändern.
title: Konfiguration
+ sign_up:
+ preamble: Mit einem Account auf diesem Mastodon-Server kannst du jeder anderen Person im Netzwerk folgen, unabhängig davon, wo ihr Account gehostet wird.
+ title: Okay, lass uns mit %{domain} anfangen.
status:
account_status: Kontostatus
confirming: Warte auf die Bestätigung der E-Mail.
@@ -963,8 +937,7 @@ de:
pending: Deine Bewerbung wird von unseren Mitarbeitern noch überprüft. Dies kann einige Zeit dauern. Du erhältst eine E-Mail, wenn deine Bewerbung genehmigt wurde.
redirecting_to: Dein Konto ist inaktiv, da es derzeit zu %{acct} umgeleitet wird.
view_strikes: Zeige frühere Streiks gegen dein Konto
- too_fast: Formular zu schnell gesendet, versuchen Sie es erneut.
- trouble_logging_in: Schwierigkeiten beim Anmelden?
+ too_fast: Formular zu schnell gesendet, versuche es erneut.
use_security_key: Sicherheitsschlüssel verwenden
authorize_follow:
already_following: Du folgst diesem Konto bereits
@@ -982,7 +955,7 @@ de:
confirm: Fortfahren
hint_html: "Hinweis: Wir werden dich für die nächste Stunde nicht erneut nach deinem Passwort fragen."
invalid_password: Ungültiges Passwort
- prompt: Gib dein Passwort ein um fortzufahren
+ prompt: Gib dein Passwort ein, um fortzufahren
crypto:
errors:
invalid_key: ist kein gültiger Ed25519- oder Curve25519-Schlüssel
@@ -1012,7 +985,7 @@ de:
proceed: Konto löschen
success_msg: Dein Konto wurde erfolgreich gelöscht
warning:
- before: 'Bevor du fortfährst, lese bitte diese Punkte sorgfältig durch:'
+ before: 'Bevor du fortfährst, lies bitte diese Punkte sorgfältig durch:'
caches: Inhalte, die von anderen Servern zwischengespeichert wurden, können weiterhin bestehen
data_removal: Deine Beiträge und andere Daten werden dauerhaft entfernt
email_change_html: Du kannst deine E-Mail-Adresse ändern , ohne dein Konto zu löschen
@@ -1022,10 +995,6 @@ de:
more_details_html: Weitere Details findest du in der Datenschutzrichtlinie .
username_available: Dein Benutzername wird wieder verfügbar
username_unavailable: Dein Benutzername bleibt nicht verfügbar
- directories:
- directory: Profilverzeichnis
- explanation: Entdecke Benutzer basierend auf deren Interessen
- explore_mastodon: Entdecke %{title}
disputes:
strikes:
action_taken: Maßnahme ergriffen
@@ -1061,15 +1030,15 @@ de:
errors:
'400': Die Anfrage, die du gesendet hast, war ungültig oder fehlerhaft.
'403': Dir fehlt die Befugnis, diese Seite sehen zu können.
- '404': Die Seite nach der du gesucht hast wurde nicht gefunden.
+ '404': Die Seite, nach der du gesucht hast, wurde nicht gefunden.
'406': Diese Seite ist im gewünschten Format nicht verfügbar.
- '410': Die Seite nach der du gesucht hast existiert hier nicht mehr.
+ '410': Die Seite, nach der du gesucht hast, existiert hier nicht mehr.
'422':
content: Sicherheitsüberprüfung fehlgeschlagen. Blockierst du Cookies?
title: Sicherheitsüberprüfung fehlgeschlagen
'429': Du wurdest gedrosselt
'500':
- content: Bitte verzeih, etwas ist bei uns schief gegangen.
+ content: Bitte verzeih', etwas ist bei uns schiefgegangen.
title: Diese Seite ist kaputt
'503': Die Seite konnte wegen eines temporären Serverfehlers nicht angezeigt werden.
noscript_html: Bitte aktiviere JavaScript, um die Mastodon-Web-Anwendung zu verwenden. Alternativ kannst du auch eine der nativen Mastodon-Anwendungen für deine Plattform probieren.
@@ -1080,7 +1049,7 @@ de:
archive_takeout:
date: Datum
download: Dein Archiv herunterladen
- hint_html: Du kannst ein Archiv deiner Beiträge und hochgeladenen Medien anfragen. Die exportierten Daten werden in dem ActivityPub-Format gespeichert, welches mit jeder Software lesbar ist die das Format unterstützt. Du kannst alle 7 Tage ein Archiv anfordern.
+ hint_html: Du kannst ein Archiv deiner Beiträge und hochgeladenen Medien anfragen. Die exportierten Daten werden in dem ActivityPub-Format gespeichert, welches mit jeder Software lesbar ist, die das Format unterstützt. Du kannst alle 7 Tage ein Archiv anfordern.
in_progress: Stelle dein Archiv zusammen...
request: Dein Archiv anfragen
size: Größe
@@ -1104,29 +1073,60 @@ de:
public: Öffentliche Zeitleisten
thread: Gespräche
edit:
+ add_keyword: Stichwort hinzufügen
+ keywords: Stichwörter
+ statuses: Individuelle Beiträge
+ statuses_hint_html: Dieser Filter gilt für die Auswahl einzelner Beiträge, unabhängig davon, ob sie mit den unten stehenden Schlüsselwörtern übereinstimmen. Beiträge im Filter ansehen oder entfernen. .
title: Filter bearbeiten
errors:
+ deprecated_api_multiple_keywords: Diese Parameter können von dieser Anwendung nicht geändert werden, da sie auf mehr als ein Filterschlüsselwort angewendet werden. Verwende eine neuere Anwendung oder die Web-Schnittstelle.
invalid_context: Ungültiger oder fehlender Kontext übergeben
- invalid_irreversible: Unwiderrufliche Filterung funktioniert nur mit Heim- oder Benachrichtigungskontext
index:
+ contexts: Filter in %{contexts}
delete: Löschen
empty: Du hast keine Filter.
+ expires_in: Läuft ab in %{distance}
+ expires_on: Läuft am %{date} ab
+ keywords:
+ one: "%{count} Stichwort"
+ other: "%{count} Stichwörter"
+ statuses:
+ one: "%{count} Beitrag"
+ other: "%{count} Beiträge"
+ statuses_long:
+ one: "%{count} individueller Beitrag ausgeblendet"
+ other: "%{count} individuelle Beiträge ausgeblendet"
title: Filter
new:
+ save: Neuen Filter speichern
title: Neuen Filter hinzufügen
+ statuses:
+ back_to_filter: Zurück zum Filter
+ batch:
+ remove: Vom Filter entfernen
+ index:
+ hint: Dieser Filter wird verwendet, um einzelne Beiträge unabhängig von anderen Kriterien auszuwählen. Du kannst mehr Beiträge zu diesem Filter über die Webschnittstelle hinzufügen.
+ title: Gefilterte Beiträge
footer:
- developers: Entwickler
- more: Mehr…
- resources: Ressourcen
trending_now: In den Trends
generic:
all: Alle
+ all_items_on_page_selected_html:
+ one: "%{count} Element auf dieser Seite ausgewählt."
+ other: Alle %{count} Elemente auf dieser Seite ausgewählt.
+ all_matching_items_selected_html:
+ one: "%{count} Element trifft auf ihre Suche zu."
+ other: Alle %{count} Elemente, die Ihrer Suche entsprechen, werden ausgewählt.
changes_saved_msg: Änderungen gespeichert!
copy: Kopieren
delete: Löschen
+ deselect: Auswahl für alle aufheben
none: Keine
order_by: Sortieren nach
save_changes: Änderungen speichern
+ select_all_matching_items:
+ one: Wähle %{count} Element, das deiner Suche entspricht.
+ other: Wählen Sie alle %{count} Elemente, die Ihrer Suche entsprechen.
today: heute
validation_errors:
one: Etwas ist noch nicht ganz richtig! Bitte korrigiere den Fehler
@@ -1150,7 +1150,6 @@ de:
following: Folgeliste
muting: Stummschaltungsliste
upload: Hochladen
- in_memoriam_html: In Gedenken.
invites:
delete: Deaktivieren
expired: Abgelaufen
@@ -1168,7 +1167,7 @@ de:
one: 1 mal verwendet
other: "%{count} mal verwendet"
max_uses_prompt: Kein Limit
- prompt: Generiere und teile Links um Zugang zu diesem Server zu geben
+ prompt: Generiere und teile Links, um Zugang zu diesem Server zu erteilen
table:
expires_at: Läuft ab
uses: Verwendungen
@@ -1190,7 +1189,7 @@ de:
media_attachments:
validations:
images_and_video: Es kann kein Video an einen Beitrag, der bereits Bilder enthält, angehängt werden
- not_ready: Dateien die noch nicht bearbeitet wurden, können nicht angehängt werden. Versuche es gleich noch einmal!
+ not_ready: Dateien, die noch nicht bearbeitet wurden, können nicht angehängt werden. Versuche es gleich noch einmal!
too_many: Es können nicht mehr als 4 Dateien angehängt werden
migrations:
acct: benutzername@domain des neuen Kontos
@@ -1216,7 +1215,7 @@ de:
set_redirect: Umleitung einrichten
warning:
backreference_required: Das neue Konto muss zuerst so konfiguriert werden, dass es auf das alte Konto referenziert
- before: 'Bevor du fortfährst, lese bitte diese Hinweise sorgfältig durch:'
+ before: 'Bevor du fortfährst, lies bitte diese Hinweise sorgfältig durch:'
cooldown: Nach dem Migrieren wird es eine Abklingzeit geben, in der du das Konto nicht noch einmal migrieren kannst
disabled_account: Dein aktuelles Konto wird nachher nicht vollständig nutzbar sein. Du hast jedoch Zugriff auf den Datenexport sowie die Reaktivierung.
followers: Diese Aktion wird alle Folgende vom aktuellen Konto auf das neue Konto verschieben
@@ -1228,22 +1227,13 @@ de:
move_handler:
carry_blocks_over_text: Dieses Benutzerkonto ist von %{acct} umgezogen, welches du blockiert hast.
carry_mutes_over_text: Dieses Benutzerkonto ist von %{acct} umgezogen, welches du stummgeschaltet hast.
- copy_account_note_text: 'Dieser Benutzer ist von %{acct} umgezogen, hier waren deine letzten Notizen zu diesem Benutzer:'
+ copy_account_note_text: 'Dieser Benutzer ist von %{acct} umgezogen, hier sind deine letzten Notizen zu diesem Benutzer:'
notification_mailer:
admin:
+ report:
+ subject: "%{name} hat eine Meldung eingereicht"
sign_up:
subject: "%{name} registrierte sich"
- digest:
- action: Zeige alle Benachrichtigungen
- body: Hier ist eine kurze Zusammenfassung der Nachrichten, die du seit deinem letzten Besuch am %{since} verpasst hast
- mention: "%{name} hat dich erwähnt:"
- new_followers_summary:
- one: Außerdem ist dir seit du weg warst ein weiteres Konto gefolgt! Juhu!
- other: Außerdem sind dir seit du weg warst %{count} weitere Konten gefolgt! Großartig!
- subject:
- one: "1 neue Mitteilung seit deinem letzten Besuch 🐘"
- other: "%{count} neue Mitteilungen seit deinem letzten Besuch 🐘"
- title: In deiner Abwesenheit...
favourite:
body: 'Dein Beitrag wurde von %{name} favorisiert:'
subject: "%{name} hat deinen Beitrag favorisiert"
@@ -1288,7 +1278,7 @@ de:
trillion: T
otp_authentication:
code_hint: Gib den von deiner Authentifizierungs-App generierten Code ein, um deine Anmeldung zu bestätigen
- description_html: Wenn du Zwei-Faktor-Authentifizierung mit einer Authentifizierungs-App aktivierst, musst du, um dich anzumelden, im Besitz deines Handys sein, dass Tokens für dein Konto generiert.
+ description_html: Wenn du Zwei-Faktor-Authentifizierung mit einer Authentifizierungs-App aktivierst, musst du, um dich anzumelden, im Besitz deines Smartphones sein, welches Tokens für dein Konto generiert.
enable: Aktivieren
instructions_html: "Scanne diesen QR-Code in Google Authenticator oder einer ähnlichen TOTP-App auf deinem Handy . Von nun an generiert diese App Tokens, die du beim Anmelden eingeben musst."
manual_instructions: 'Wenn du den QR-Code nicht scannen kannst und ihn manuell eingeben musst, ist hier das Klartext-Geheimnis:'
@@ -1307,7 +1297,7 @@ de:
duration_too_long: ist zu weit in der Zukunft
duration_too_short: ist zu früh
expired: Die Umfrage ist bereits vorbei
- invalid_choice: Die gewählte Stimmenoption existiert nicht
+ invalid_choice: Die gewählte Abstimmoption existiert nicht
over_character_limit: kann nicht länger als jeweils %{max} Zeichen sein
too_few_options: muss mindestens einen Eintrag haben
too_many_options: kann nicht mehr als %{max} Einträge beinhalten
@@ -1315,6 +1305,8 @@ de:
other: Weiteres
posting_defaults: Standardeinstellungen für Beiträge
public_timelines: Öffentliche Zeitleisten
+ privacy_policy:
+ title: Datenschutzerklärung
reactions:
errors:
limit_reached: Limit für verschiedene Reaktionen erreicht
@@ -1334,25 +1326,10 @@ de:
relationship: Beziehung
remove_selected_domains: Entferne alle Follower von den ausgewählten Domains
remove_selected_followers: Entferne ausgewählte Follower
- remove_selected_follows: Entfolge ausgewählte Benutzer
+ remove_selected_follows: Entfolge ausgewählten Benutzern
status: Kontostatus
remote_follow:
- acct: Profilname@Domain, von wo aus du dieser Person folgen möchtest
missing_resource: Die erforderliche Weiterleitungs-URL für dein Konto konnte nicht gefunden werden
- no_account_html: Noch kein Konto? Du kannst dich hier anmelden
- proceed: Weiter
- prompt: 'Du wirst dieser Person folgen:'
- reason_html: "Warum ist dieser Schritt erforderlich? %{instance}
ist möglicherweise nicht der Server auf dem du registriert bist, also müssen wir dich erst auf deinen Heimserver weiterleiten."
- remote_interaction:
- favourite:
- proceed: Fortfahren zum Favorisieren
- prompt: 'Du möchtest diesen Beitrag favorisieren:'
- reblog:
- proceed: Fortfahren zum Teilen
- prompt: 'Du möchtest diesen Beitrag teilen:'
- reply:
- proceed: Fortfahren zum Antworten
- prompt: 'Du möchtest auf diesen Beitrag antworten:'
reports:
errors:
invalid_rules: verweist nicht auf gültige Regeln
@@ -1362,8 +1339,8 @@ de:
account: Öffentliche Beiträge von @%{acct}
tag: 'Öffentliche Beiträge mit dem Tag #%{hashtag}'
scheduled_statuses:
- over_daily_limit: Du hast das Limit für geplante Beiträge, dass %{limit} beträgt, für heute erreicht
- over_total_limit: Du hast das Limit für geplante Beiträge, dass %{limit} beträgt, erreicht
+ over_daily_limit: Du hast das Limit für geplante Beiträge, welches %{limit} beträgt, für heute erreicht
+ over_total_limit: Du hast das Limit für geplante Beiträge, welches %{limit} beträgt, erreicht
too_soon: Das geplante Datum muss in der Zukunft liegen
sessions:
activity: Letzte Aktivität
@@ -1484,7 +1461,7 @@ de:
enabled: Automatisch alte Beiträge löschen
enabled_hint: Löscht automatisch deine Beiträge, sobald sie einen bestimmten Altersgrenzwert erreicht haben, es sei denn, sie entsprechen einer der folgenden Ausnahmen
exceptions: Ausnahmen
- explanation: Damit Mastodon nicht durch das Löschen von Beiträgen ausgebremst wird, wartet der Server damit bis wenig los ist. Aus diesem Grund werden deine Beiträge ggf. erst einige Zeit nach Erreichen der Altersgrenze gelöscht.
+ explanation: Damit Mastodon nicht durch das Löschen von Beiträgen ausgebremst wird, wartet der Server damit, bis wenig los ist. Aus diesem Grund werden deine Beiträge ggf. erst einige Zeit nach Erreichen der Altersgrenze gelöscht.
ignore_favs: Favoriten ignorieren
ignore_reblogs: Boosts ignorieren
interaction_exceptions: Ausnahmen basierend auf Interaktionen
@@ -1492,15 +1469,15 @@ de:
keep_direct: Direktnachrichten behalten
keep_direct_hint: Löscht keine deiner Direktnachrichten
keep_media: Beiträge mit Medienanhängen behalten
- keep_media_hint: Löscht keine Ihrer Beiträge mit Medienanhängen
+ keep_media_hint: Löscht keinen deiner Beiträge mit Medienanhängen
keep_pinned: Angeheftete Beiträge behalten
- keep_pinned_hint: Löscht keine deiner angehefteten Beiträge
+ keep_pinned_hint: Löscht keinen deiner angehefteten Beiträge
keep_polls: Umfragen behalten
keep_polls_hint: Löscht keine deiner Umfragen
keep_self_bookmark: Als Lesezeichen markierte Beiträge behalten
- keep_self_bookmark_hint: Löscht nicht deine eigenen Beiträge, wenn du sie als Lesezeichen markiert hast
+ keep_self_bookmark_hint: Löscht deine eigenen Beiträge nicht, wenn du sie als Lesezeichen markiert hast
keep_self_fav: Behalte die von dir favorisierten Beiträge
- keep_self_fav_hint: Löscht nicht deine eigenen Beiträge, wenn du sie favorisiert hast
+ keep_self_fav_hint: Löscht deine eigenen Beiträge nicht, wenn du sie favorisiert hast
min_age:
'1209600': 2 Wochen
'15778476': 6 Monate
@@ -1524,57 +1501,6 @@ de:
too_late: Es ist zu spät, um gegen diese Verwarnung Einspruch zu erheben
tags:
does_not_match_previous_name: entspricht nicht dem vorherigen Namen
- terms:
- body_html: |
- Datenschutzerklärung
- Welche Informationen sammeln wir?
-
- Grundlegende Kontoinformationen : Wenn du dich auf diesem Server registrierst, wirst du darum gebeten, einen Benutzernamen, eine E-Mail-Adresse und ein Passwort einzugeben. Du kannst auch zusätzliche Profilinformationen wie etwa einen Anzeigenamen oder eine Biografie eingeben und ein Profilbild oder ein Headerbild hochladen. Der Benutzername, der Anzeigename, die Biografie, das Profilbild und das Headerbild werden immer öffentlich angezeigt.
- Beiträge, Folge- und andere öffentliche Informationen : Die Liste der Leute, denen du folgst, wird öffentlich gezeigt, das gleiche gilt für deine Folgenden (Follower). Sobald du eine Nachricht übermittelst, wird das Datum und die Uhrzeit gemeinsam mit der Information, welche Anwendung du dafür verwendet hast, gespeichert. Nachricht können Medienanhänge enthalten, etwa Bilder und Videos. Öffentliche und ungelistete Beiträge sind öffentlich verfügbar. Sobald du einen Beitrag auf deinem Profil anpinnst, sind dies auch öffentlich verfügbare Informationen. Deine Beiträge werden an deine Folgenden ausgeliefert, was in manchen Fällen bedeutet, dass sie an andere Server ausgeliefert werden und dort Kopien gespeichert werden. Sobald du Beiträge löschst, wird dies ebenso an deine Follower ausgeliefert. Die Handlungen des Teilens und Favorisieren eines anderen Beitrages ist immer öffentlich.
- Direkte und "Nur Folgende"-Beiträge : Alle Beiträge werden auf dem Server gespeichert und verarbeitet. "Nur Folgende"-Beiträge werden an deine Folgenden und an Benutzer, die du in ihnen erwähnst, ausgeliefert, direkte Beiträge nur an in ihnen erwähnte Benutzer. In manchen Fällen bedeutet dass, dass sie an andere Server ausgeliefert werden und dort Kopien gespeichert werden. Wir bemühen uns nach bestem Wissen und Gewissen, den Zugriff auf diese Beiträge auf nur autorisierte Personen einzuschränken, jedoch könnten andere Server dabei scheitern. Deswegen ist es wichtig, die Server, zu denen deine Folgenden gehören, zu überprüfen. Du kannst eine Option in den Einstellungen umschalten, um neue Folgenden manuell anzunehmen oder abzuweisen. Bitte beachte, dass die Betreiber des Server und jedes empfangenden Servers solche Nachrichten anschauen könnten und dass Empfänger von diesen eine Bildschirmkopie erstellen könnten, sie kopieren oder anderweitig weiterverteilen könnten. Teile nicht irgendwelche sensiblen Informationen über Mastodon.
- Internet Protocol-Adressen (IP-Adressen) und andere Metadaten : Sobald du dich anmeldest, erfassen wir sowohl die IP-Adresse, von der aus du dich anmeldest, als auch den Namen deine Browseranwendung. Alle angemeldeten Sitzungen (Sessions) sind für deine Überprüfung und Widerruf in den Einstellungen verfügbar. Die letzte verwendete IP-Adresse wird bis zu 12 Monate lang gespeichert. Wir könnten auch Serverprotokoll behalten, welche die IP-Adresse von jeder Anfrage an unseren Server enthalten.
-
-
- Für was verwenden wir deine Informationen?
- Jede der von dir gesammelten Information kann in den folgenden Weisen verwendet werden:
-
- Um die Kernfunktionalität von Mastodon bereitzustellen. Du kannst du mit dem Inhalt anderer Leute interagieren und deine eigenen Inhalte beitragen, wenn du angemeldet bist. Zum Beispiel kannst du anderen folgen, um deren kombinierten Beiträge in deine personalisierten Start-Timeline zu sehen.
- Um Moderation der Community zu ermöglichen, zum Beispiel beim Vergleichen deiner IP-Adresse mit anderen bekannten, um Verbotsumgehung oder andere Vergehen festzustellen.
- Die E-Mail-Adresse, die du bereitstellst, kann dazu verwendet werden, dir Informationen, Benachrichtigungen über andere Leute, die mit deinen Inhalten interagieren oder dir Nachrichten senden, und auf Anfragen, Wünsche und/oder Fragen zu antworten.
-
-
- Wie beschützen wir deine Informationen?
- Wir implementieren eine Reihe von Sicherheitsmaßnahmen, um die Sicherheit deiner persönlichen Information sicherzustellen, wenn du persönliche Informationen eingibst, übermittelst oder auf sie zugreifst. Neben anderen Dingen, wird sowohl deine Browsersitzung, als auch der Datenverkehr zwischen deinen Anwendungen und der Programmierschnittstelle (API) mit SSL gesichert, dein Passwort wird mit einem starken Einwegalgorithmus gehasht. Du kannst Zwei-Faktor-Authentifizierung aktivieren, um den Zugriff auf dein Konto zusätzlich abzusichern.
-
- Was ist unsere Datenspeicherungsrichtlinie?
- Wir werden mit bestem Wissen und Gewissen:
-
- Serverprotokolle, die IP-Adressen von allen deinen Anfragen an diesen Server, falls solche Protokolle behalten werden, für nicht mehr als 90 Tage behalten.
- registrierten Benutzer zugeordnete IP-Adressen nicht länger als 12 Monate behalten.
-
- Du kannst ein Archiv deines Inhalts anfordern und herunterladen, inkludierend deiner Beiträge, Medienanhänge, Profilbilder und Headerbilder.
- Es ist in den meisten Fällen möglich dein Konto jederzeit eigenmächtig unwiderruflich zu löschen.
-
- Verwenden wir Cookies?
- Ja. Cookies sind kleine Dateien, die eine Webseite oder ihr Serviceanbieter über deinen Webbrowser (sofern er es erlaubt) auf die Festplatte deines Computers überträgt. Diese Cookies ermöglichen es der Seite deinen Browser wiederzuerkennen und, sofern du ein registriertes Konto hast, diesen mit deinem registrierten Konto zu verknüpfen.
- Wir verwenden Cookies, um deine Einstellungen zu verstehen und für zukünftige Besuche zu speichern.
-
- Offenbaren wir Informationen an Dritte?
- Wir verkaufen nicht, handeln nicht mit oder übertragen deine persönlich identifizierbaren Informationen nicht an Dritte. Dies beinhaltet nicht Dritte, die vertrauenswürdig sind und uns beim Betreiben unserer Seite, Leiten unseres Geschäftes oder dabei, die Dienste für dich bereitzustellen, unterstützen, sofern diese Dritte zustimmen, diese Informationen vertraulich zu halten. Wir können auch Informationen freigeben, wenn wir glauben, dass Freigabe angemessen ist, um dem Gesetz zu entsprechen, unsere Seitenrichtlinien durchzusetzen oder unsere Rechte, Eigentum und/oder Sicherheit oder die anderer zu beschützen.
- Dein öffentlicher Inhalt kann durch andere Server im Netzwerk heruntergeladen werden. Deine öffentlichen und "Nur Folgende"-Beiträge werden an die Server ausgeliefert, bei denen sich deine Folgenden befinden und direkte Nachrichten werden an die Server des Empfängers ausgeliefert, falls diese Folgenden oder Empfänger sich auf einem anderen Server als diesen befinden.
- Wenn du eine Anwendung autorisierst, dein Konto zu benutzen, kann diese – abhängig von den von dir genehmigten Befugnissen – auf deine öffentlichen Profilinformationen, deine Folgt- und Folgende-Liste, deine Listen, alle deine Beiträge und deine Favoriten zugreifen. Anwendungen können nie auf deine E-Mail-Adresse oder dein Passwort zugreifen
-
- Webseitenbenutzung durch Kinder
- Wenn sich dieser Server in der EU oder im Europäischen Wirtschaftsraum befindet: Unsere Website, Produkte und Dienstleistungen sind alle an Leute gerichtet, die mindestens 16 Jahre als sind. Wenn du unter 16 bist, darfst du nach den Bestimmungen der DSGVO (Datenschutz-Grundverordnung ) diese Webseite nicht benutzen.
- Wenn sich dieser Server in den USA befindet: Unsere Webseite, Produkte und Dienstleistungen sind alle an Leute gerichtet, die mindestens 13 Jahre alt sind. Wenn du unter 13 bist, darfst du nach den Bestimmungen des COPPA (Children's Online Privacy Protection Act, dt. "Gesetz zum Schutz der Privatsphäre von Kindern im Internet" ) diese Webseite nicht benutzen.
- Gesetzesvorschriften können unterschiedlich sein, wenn sich dieser Server in anderer Gerichtsbarkeit befindet.
-
- Änderung an unserer Datenschutzerklärung
- Wenn wir uns entscheiden, Änderungen an unserer Datenschutzerklärung vorzunehmen, werden wir diese Änderungen auf dieser Seite bekannt gegeben.
- Dies ist eine Übersetzung, Irrtümer und Übersetzungsfehler vorbehalten. Im Zweifelsfall gilt die englische Originalversion.
- Dieses Dokument ist CC-BY-SA. Es wurde zuletzt aktualisiert am 26. Mai 2022.
- Ursprünglich übernommen von der Discourse-Datenschutzerklärung .
- title: "%{instance} Nutzungsbedingungen und Datenschutzerklärung"
themes:
contrast: Mastodon (Hoher Kontrast)
default: Mastodon (Dunkel)
@@ -1592,7 +1518,7 @@ de:
enabled: Zwei-Faktor-Authentisierung ist aktiviert
enabled_success: Zwei-Faktor-Authentisierung erfolgreich aktiviert
generate_recovery_codes: Wiederherstellungscodes generieren
- lost_recovery_codes: Wiederherstellungscodes erlauben dir, wieder den Zugang zu deinem Konto zu erlangen, falls du dein Telefon verlieren solltest. Wenn du deine Wiederherstellungscodes verloren hast, kannst du sie hier neu generieren. Deine alten Wiederherstellungscodes werden damit ungültig gemacht.
+ lost_recovery_codes: Wiederherstellungscodes erlauben es dir, wieder Zugang zu deinem Konto zu erlangen, falls du dein Telefon verlieren solltest. Wenn du deine Wiederherstellungscodes verloren hast, kannst du sie hier neu generieren. Deine alten Wiederherstellungscodes werden damit ungültig gemacht.
methods: Zwei-Faktor-Methoden
otp: Authentifizierungs-App
recovery_codes: Wiederherstellungs-Codes sichern
@@ -1631,8 +1557,8 @@ de:
disable: Du kannst dein Konto nicht mehr verwenden, aber dein Profil und andere Daten bleiben unversehrt. Du kannst ein Backup deiner Daten anfordern, die Kontoeinstellungen ändern oder dein Konto löschen.
mark_statuses_as_sensitive: Einige deiner Beiträge wurden von den Moderator_innen von %{instance} als NSFW markiert. Das bedeutet, dass die Nutzer die Medien in den Beiträgen antippen müssen, bevor eine Vorschau angezeigt wird. Du kannst Medien in Zukunft als NSFW markieren, wenn du Beiträge verfasst.
sensitive: Von nun an werden alle deine hochgeladenen Mediendateien als sensibel markiert und hinter einer Warnung versteckt.
- silence: Solange dein Konto limitiert ist, können nur die Leute, die dir bereits folgen, deine Beiträge auf dem Server sehen und es könnte sein, dass du von verschiedenen öffentlichen Listungen ausgeschlossen wirst. Andererseits können andere dir manuell folgen.
- suspend: Du kannst dein Konto nicht mehr verwenden und dein Profil und andere Daten sind nicht mehr verfügbar. Du kannst dich immer noch anmelden, um ein Backup deiner Daten anzufordern, bis die Daten innerhalb von 30 Tagen vollständig gelöscht wurden. Allerdings werden wir einige Daten speichern, um zu verhindern, dass du die Sperrung umgehst.
+ silence: Solange dein Konto limitiert ist, können nur die Leute, die dir bereits folgen, deine Beiträge auf dem Server sehen, und es könnte sein, dass du von verschiedenen öffentlichen Listungen ausgeschlossen wirst. Andererseits können andere dir manuell folgen.
+ suspend: Du kannst dein Konto nicht mehr verwenden, und dein Profil und andere Daten sind nicht mehr verfügbar. Du kannst dich immer noch anmelden, um ein Backup deiner Daten anzufordern, bis die Daten innerhalb von 30 Tagen vollständig gelöscht wurden. Allerdings werden wir einige Daten speichern, um zu verhindern, dass du die Sperrung umgehst.
reason: 'Grund:'
statuses: 'Zitierte Beiträge:'
subject:
@@ -1653,20 +1579,13 @@ de:
suspend: Konto gesperrt
welcome:
edit_profile_action: Profil einstellen
- edit_profile_step: Du kannst dein Profil anpassen, indem du einen Avatar oder ein Titelbild hochlädst oder deinen Anzeigenamen änderst und mehr. Wenn du deine Folgenden vorher überprüfen möchtest, bevor sie dir folgen können, dann kannst du dein Profil sperren.
+ edit_profile_step: Du kannst dein Profil anpassen, indem du einen Avatar oder ein Titelbild hochlädst, deinen Anzeigenamen änderst und viel mehr. Du kannst optional einstellen, ob du Accounts, die dir folgen wollen, akzeptieren musst, bevor sie dies können.
explanation: Hier sind ein paar Tipps, um loszulegen
final_action: Fang an zu posten
- final_step: 'Fang an zu posten! Selbst ohne Follower werden deine öffentlichen Beiträge von anderen gesehen, zum Beispiel auf der lokalen Zeitleiste oder in Hashtags. Vielleicht möchtest du dich vorstellen mit dem #introductions-Hashtag.'
+ final_step: 'Fang an zu posten! Selbst ohne Follower werden deine öffentlichen Beiträge von anderen gesehen, zum Beispiel auf der lokalen Zeitleiste oder in Hashtags. Du kannst dich unter dem Hashtag #introductions vorstellen, wenn du magst.'
full_handle: Dein vollständiger Benutzername
- full_handle_hint: Dies ist was du deinen Freunden sagen kannst, damit sie dich anschreiben oder von einem anderen Server folgen können.
- review_preferences_action: Einstellungen ändern
- review_preferences_step: Stelle sicher, dass du deine Einstellungen einstellst, wie zum Beispiel welche E-Mails du gerne erhalten möchtest oder was für Privatsphäreneinstellungen voreingestellt werden sollten. Wenn dir beim Ansehen von GIFs nicht schwindelig wird, dann kannst du auch das automatische Abspielen dieser aktivieren.
+ full_handle_hint: Dies ist, was du deinen Freunden sagen kannst, damit sie dich anschreiben oder dir von einem anderen Server folgen können.
subject: Willkommen bei Mastodon
- tip_federated_timeline: Die föderierte Zeitleiste ist die sehr große Ansicht vom Mastodon-Netzwerk. Sie enthält aber auch nur Leute, denen du und deine Nachbarn folgen, sie ist also nicht komplett.
- tip_following: Du folgst standardmäßig deinen Server-Admin(s). Um mehr interessante Leute zu finden, kannst du die lokale oder öffentliche Zeitleiste durchsuchen.
- tip_local_timeline: Die lokale Zeitleiste ist eine Ansicht aller Leute auf %{instance}. Diese sind deine Nachbarn!
- tip_mobile_webapp: Wenn dein mobiler Browser dir anbietet Mastodon zu deinem Startbildschirm hinzuzufügen, dann kannst du Benachrichtigungen erhalten. Es verhält sich wie eine native App in vielen Wegen!
- tips: Tipps
title: Willkommen an Bord, %{name}!
users:
follow_limit_reached: Du kannst nicht mehr als %{limit} Leuten folgen
diff --git a/config/locales/devise.de.yml b/config/locales/devise.de.yml
index 0512ca1295..4cc829f3b8 100644
--- a/config/locales/devise.de.yml
+++ b/config/locales/devise.de.yml
@@ -21,18 +21,18 @@ de:
action: E-Mail-Adresse verifizieren
action_with_app: Bestätigen und zu %{app} zurückkehren
explanation: Du hast einen Account auf %{host} mit dieser E-Mail-Adresse erstellt. Du bist nur noch einen Klick weit von der Aktivierung entfernt. Wenn du das nicht warst, kannst du diese E-Mail ignorieren.
- explanation_when_pending: Du hast dich für eine Einladung bei %{host} mit dieser E-Mailadresse beworben. Sobald du deine E-Mailadresse bestätigst werden wir deine Anfrage überprüfen. Du kannst dich in dieser Zeit nicht anmelden. Wenn deine Anfrage abgelehnt wird, werden deine Daten entfernt, also wird keine weitere Handlung benötigt. Wenn du das nicht warst kannst du diese E-Mail ignorieren.
+ explanation_when_pending: Du hast dich für eine Einladung bei %{host} mit dieser E-Mailadresse beworben. Sobald du deine E-Mailadresse bestätigst hast, werden wir deine Anfrage überprüfen. Du kannst dich in dieser Zeit nicht anmelden. Wenn deine Anfrage abgelehnt wird, werden deine Daten entfernt, also wird keine weitere Handlung benötigt. Wenn du das nicht warst, kannst du diese E-Mail ignorieren.
extra_html: Bitte lies auch die Regeln des Servers und unsere Nutzungsbedingungen .
subject: 'Mastodon: Bestätigung deines Kontos bei %{instance}'
title: Verifiziere E-Mail-Adresse
email_changed:
explanation: 'Die E-Mail-Adresse deines Accounts wird geändert zu:'
- extra: Wenn du deine E-Mail-Adresse nicht geändert hast, dann kann es vermutlich sein, dass jemand Zugriff zu deinem Account erhalten hat. Bitte ändere sofort dein Passwort oder kontaktiere den Administrator des Servers, wenn du dich ausgesperrt hast.
+ extra: Wenn du deine E-Mail-Adresse nicht geändert hast, dann wird es vermutlich so sein, dass jemand Zugriff zu deinem Account erhalten hat. Bitte ändere sofort dein Passwort oder kontaktiere den Administrator des Servers, wenn du dich ausgesperrt hast.
subject: 'Mastodon: E-Mail-Adresse geändert'
title: Neue E-Mail-Adresse
password_change:
explanation: Das Passwort für deinen Account wurde geändert.
- extra: Wenn du dein Passwort nicht geändert hast, dann kann es vermutlich sein, dass jemand Zugriff zu deinem Account erhalten hat. Bitte ändere sofort dein Passwort oder kontaktiere den Administrator des Servers, wenn du dich ausgesperrt hast.
+ extra: Wenn du dein Passwort nicht geändert hast, dann wird es vermutlich so sein, dass jemand Zugriff auf deinem Account erlangt hat. Bitte ändere sofort dein Passwort oder kontaktiere den Administrator des Servers, wenn du dich ausgesperrt hast.
subject: 'Mastodon: Passwort geändert'
title: Passwort geändert
reconfirmation_instructions:
@@ -43,7 +43,7 @@ de:
reset_password_instructions:
action: Ändere Passwort
explanation: Du hast ein neues Passwort für deinen Account angefragt.
- extra: Wenn du diese Anfrage nicht gestellt hast, solltest du diese E-Mail ignorieren. Dein Passwort wird sich nicht ändern solange du den obigen Link anklickst und ein neues erstellst.
+ extra: Wenn du diese Anfrage nicht gestellt hast, solltest du diese E-Mail ignorieren. Dein Passwort wird sich nicht ändern, solange du den obigen Link anklickst und ein neues erstellst.
subject: 'Mastodon: Passwort zurücksetzen'
title: Passwort zurücksetzen
two_factor_disabled:
@@ -51,7 +51,7 @@ de:
subject: 'Mastodon: Zwei‐Faktor‐Authentifizierung deaktiviert'
title: 2FA deaktiviert
two_factor_enabled:
- explanation: Zwei-Faktor-Authentifizierung wurde für dein Konto aktiviert. Ein Token, der von der gepaarten TOTP-App generiert wird, wird für den Login benötigt.
+ explanation: Zwei-Faktor-Authentifizierung wurde für dein Konto aktiviert. Ein Token, das von der verbundenen TOTP-App generiert wird, wird für den Login benötigt.
subject: 'Mastodon: Zwei‐Faktor‐Authentifizierung aktiviert'
title: 2FA aktiviert
two_factor_recovery_codes_changed:
@@ -78,7 +78,7 @@ de:
subject: 'Mastodon: Authentifizierung mit Sicherheitsschlüssel aktiviert'
title: Sicherheitsschlüssel aktiviert
omniauth_callbacks:
- failure: Du konntest nicht mit deinem %{kind}-Konto angemeldet werden, weil »%{reason}«.
+ failure: Du konntest nicht mit deinem %{kind}-Konto angemeldet werden, weil „%{reason}“.
success: Du hast dich erfolgreich mit deinem %{kind}-Konto angemeldet.
passwords:
no_token: Du kannst diese Seite nur über den Link aus der E-Mail zum Passwort-Zurücksetzen aufrufen. Wenn du einen solchen Link aufgerufen hast, stelle bitte sicher, dass du die vollständige Adresse aufrufst.
@@ -91,8 +91,8 @@ de:
signed_up: Willkommen! Du hast dich erfolgreich registriert.
signed_up_but_inactive: Du hast dich erfolgreich registriert. Wir konnten dich noch nicht anmelden, da dein Konto inaktiv ist.
signed_up_but_locked: Du hast dich erfolgreich registriert. Wir konnten dich noch nicht anmelden, da dein Konto gesperrt ist.
- signed_up_but_pending: Eine Nachricht mit einem Bestätigungslink wurde an dich per E-Mail geschickt. Nachdem du diesen Link angeklickt hast werden wir deine Anfrage überprüfen. Du wirst benachrichtigt falls die Anfrage angenommen wurde.
- signed_up_but_unconfirmed: Du hast dich erfolgreich registriert. Wir konnten dich noch nicht anmelden, da dein Konto noch nicht bestätigt ist. Du erhältst in Kürze eine E-Mail. Darin ist erklärt, wie du dein Konto freischalten kannst.
+ signed_up_but_pending: Eine Nachricht mit einem Bestätigungslink wurde an dich per E-Mail geschickt. Nachdem du diesen Link angeklickt hast, werden wir deine Anfrage überprüfen. Du wirst benachrichtigt werden, falls die Anfrage angenommen wurde.
+ signed_up_but_unconfirmed: Du hast dich erfolgreich registriert. Wir konnten dich noch nicht anmelden, da dein Konto noch nicht bestätigt ist. Du erhältst in Kürze eine E-Mail. Darin wird erklärt, wie du dein Konto freischalten kannst.
update_needs_confirmation: Deine Daten wurden aktualisiert, aber du musst deine neue E-Mail-Adresse bestätigen. Du erhältst in wenigen Minuten eine E-Mail. Darin ist erklärt, wie du die Änderung deiner E-Mail-Adresse abschließen kannst.
updated: Deine Daten wurden aktualisiert.
sessions:
@@ -112,4 +112,4 @@ de:
not_locked: ist nicht gesperrt
not_saved:
one: '1 Fehler hat verhindert, dass %{resource} gespeichert wurde:'
- other: "%{count} Fehler verhinderten, dass %{resource} gespeichert wurde:"
+ other: "%{count} Fehler haben verhindert, dass %{resource} gespeichert wurde:"
diff --git a/config/locales/devise.en-GB.yml b/config/locales/devise.en-GB.yml
new file mode 100644
index 0000000000..ef03d18104
--- /dev/null
+++ b/config/locales/devise.en-GB.yml
@@ -0,0 +1 @@
+en-GB:
diff --git a/config/locales/devise.fr.yml b/config/locales/devise.fr.yml
index c436536628..41868a823a 100644
--- a/config/locales/devise.fr.yml
+++ b/config/locales/devise.fr.yml
@@ -96,7 +96,7 @@ fr:
update_needs_confirmation: Votre compte a bien été mis à jour, mais nous devons vérifier votre nouvelle adresse courriel. Merci de vérifier vos courriels et de cliquer sur le lien de confirmation pour finaliser la validation de votre nouvelle adresse. Si vous n'avez pas reçu le courriel, vérifiez votre dossier de spams.
updated: Votre compte a été modifié avec succès.
sessions:
- already_signed_out: Déconnecté·e.
+ already_signed_out: Déconnecté·e avec succès.
signed_in: Connecté·e.
signed_out: Déconnecté·e.
unlocks:
diff --git a/config/locales/devise.he.yml b/config/locales/devise.he.yml
index 63bb3aeddb..0f389bd383 100644
--- a/config/locales/devise.he.yml
+++ b/config/locales/devise.he.yml
@@ -110,3 +110,8 @@ he:
expired: פג תוקפו. נא לבקש חדש
not_found: לא נמצא
not_locked: לא היה נעול
+ not_saved:
+ many: "%{count} שגיאות מנעו מ%{resource} זה מלהשמר:"
+ one: 'שגיאה אחת מנעה מ%{resource} זה מלהשמר:'
+ other: "%{count} שגיאות מנעו מ%{resource} זה מלהשמר:"
+ two: " %{count} שגיאות מנעו מ%{resource} זה מלהשמר:"
diff --git a/config/locales/devise.hu.yml b/config/locales/devise.hu.yml
index 24aa076ee8..ddadd17894 100644
--- a/config/locales/devise.hu.yml
+++ b/config/locales/devise.hu.yml
@@ -12,7 +12,7 @@ hu:
last_attempt: Már csak egy próbálkozásod maradt, mielőtt a fiókodat zároljuk.
locked: A fiókodat zároltuk.
not_found_in_database: Helytelen %{authentication_keys} vagy jelszó.
- pending: A fiókod felülvizsgálat alatt áll, még mielőtt használhatnád.
+ pending: A fiókod még engedélyezésre vár.
timeout: A munkameneted lejárt. Kérjük, a folytatáshoz jelentkezz be újra.
unauthenticated: A folytatás előtt be kell jelentkezned vagy regisztrálnod kell.
unconfirmed: A folytatás előtt meg kell erősítened az e-mail címed.
@@ -22,7 +22,7 @@ hu:
action_with_app: Megerősítés majd vissza ide %{app}
explanation: Ezzel az e-mail címmel kezdeményeztek regisztrációt a(z) %{host} oldalon. Csak egy kattintás, és a felhasználói fiókodat aktiváljuk. Ha a regisztrációt nem te kezdeményezted, kérjük tekintsd ezt az e-mailt tárgytalannak.
explanation_when_pending: Ezzel az e-mail címmel meghívást kértél a(z) %{host} oldalon. Ahogy megerősíted az e-mail címed, átnézzük a jelentkezésedet. Ennek ideje alatt nem tudsz belépni. Ha a jelentkezésed elutasítjuk, az adataidat töröljük, más teendőd nincs. Ha a kérelmet nem te kezdeményezted, kérjük tekintsd ezt az e-mailt tárgytalannak.
- extra_html: Kérjük tekintsd át a a szerver szabályzatát és a felhasználási feltételeket .
+ extra_html: Tekintsd át a a kiszolgáló szabályait és a felhasználási feltételeket .
subject: 'Mastodon: Megerősítési lépések ehhez az instancehez: %{instance}'
title: E-mail cím megerősítése
email_changed:
@@ -32,7 +32,7 @@ hu:
title: Új e-mail cím
password_change:
explanation: A fiókodhoz tartozó jelszót megváltoztattuk.
- extra: Ha nem te kezdeményezted a fiókodhoz tartozó jelszó módosítását, valaki hozzáférhetett a fiókodhoz. Legjobb, ha azonnal megváltoztatod a jelszavadat; ha nem férsz hozzá a fiókodhoz, vedd fel a kapcsolatot a szervered adminisztrátorával.
+ extra: Ha nem te kérted a fiókod jelszavának módosítását, akkor valaki hozzáférhetett a fiókodhoz. Legjobb, ha azonnal megváltoztatod a jelszavadat; ha nem férsz hozzá a fiókodhoz, vedd fel a kapcsolatot a kiszolgálód adminisztrátorával.
subject: 'Mastodon: Jelszavad megváltoztattuk'
title: Sikeres jelszómódosítás
reconfirmation_instructions:
diff --git a/config/locales/devise.ko.yml b/config/locales/devise.ko.yml
index 570377f8a4..cd949d772d 100644
--- a/config/locales/devise.ko.yml
+++ b/config/locales/devise.ko.yml
@@ -7,7 +7,7 @@ ko:
send_paranoid_instructions: 당신의 이메일이 우리의 DB에 있을 경우 몇 분 이내로 확인 메일이 발송 됩니다. 이메일을 받지 못 한 경우, 스팸 폴더를 확인하세요.
failure:
already_authenticated: 이미 로그인 된 상태입니다.
- inactive: 계정이 활성화 되지 않았습니다.
+ inactive: 계정이 아직 활성화 되지 않았습니다.
invalid: 올바르지 않은 %{authentication_keys} 혹은 패스워드입니다.
last_attempt: 계정이 잠기기까지 한 번의 시도가 남았습니다.
locked: 계정이 잠겼습니다.
diff --git a/config/locales/devise.ku.yml b/config/locales/devise.ku.yml
index 18187a156f..d5d0105efc 100644
--- a/config/locales/devise.ku.yml
+++ b/config/locales/devise.ku.yml
@@ -29,13 +29,13 @@ ku:
title: Navnîşana e-nameyê piştrast bike
email_changed:
explanation: 'Navnîşana e-nameyê ajimêra te hate guhertin bo:'
- extra: Heke te ajimêra xwe ne guhertiye. Ew tê wateya ku kesek ketiye ajimêrê te. Jkx pêborîna xwe zû biguherîne an jî bi rêveberiya rajekar re têkeve têkiliyê heke tu êdî nikare ajimêra xwe bi kar bînî.
+ extra: Ku te ajimêra xwe neguhertiye. Ew tê wateya ku kesek ketiye ajimêrê te. Jkx pêborîna xwe zû biguherîne an jî bi rêveberiya rajekar re têkeve têkiliyê heke tu êdî nikare ajimêra xwe bi kar bînî.
subject: 'Mastodon: E-name hate guhertin'
title: Navnîşana e-nameya nû
password_change:
explanation: Borînpeyva ajimêra te hate guhertin.
- extra: Heke te ajimêra xwe ne guhertiye. Ew tê wateya ku kesek ketiye ajimêrê te. Jkx pêborîna xwe zû biguherîne an jî bi rêveberiya rajekar re têkeve têkiliyê heke tu êdî nikare ajimêra xwe bi kar bînî.
- subject: 'Mastodon: pêborîn hate guhertin'
+ extra: Ku te ajimêra xwe neguhertiye. Ew tê wateya ku kesek ketiye ajimêrê te. Jkx pêborîna xwe zû biguherîne an jî bi rêveberiya rajekar re têkeve têkiliyê heke tu êdî nikare ajimêra xwe bi kar bînî.
+ subject: 'Mastodon: Borînpeyv hate guhertin'
title: Borînpeyv hate guhertin
reconfirmation_instructions:
explanation: Navnîşana nû piştrast bike da ku tu e-nameya xwe biguherînî.
diff --git a/config/locales/devise.nl.yml b/config/locales/devise.nl.yml
index bf3b02e3f9..477c7d41f1 100644
--- a/config/locales/devise.nl.yml
+++ b/config/locales/devise.nl.yml
@@ -21,7 +21,7 @@ nl:
action: E-mailadres verifiëren
action_with_app: Bevestigen en naar %{app} teruggaan
explanation: Je hebt een account op %{host} aangemaakt en met één klik kun je deze activeren. Wanneer jij dit account niet hebt aangemaakt, mag je deze e-mail negeren.
- explanation_when_pending: Je vroeg met dit e-mailadres een uitnodiging aan voor %{host}. Nadat je jouw e-mailadres hebt bevestigd, beoordelen we jouw aanvraag. Je kunt tot dan nog niet inloggen. Wanneer jouw aanvraag wordt afgekeurd, worden jouw gegevens verwijderd en hoef je daarna verder niets meer te doen. Wanneer jij dit niet was, kun je deze e-mail negeren.
+ explanation_when_pending: Je vroeg met dit e-mailadres een uitnodiging aan voor %{host}. Nadat je jouw e-mailadres hebt bevestigd, beoordelen we jouw aanvraag. Je kunt tot dan nog niet inloggen. Wanneer jouw aanvraag wordt afgewezen, worden jouw gegevens verwijderd en hoef je daarna verder niets meer te doen. Wanneer jij dit niet was, kun je deze e-mail negeren.
extra_html: Bekijk ook de regels van de Mastodonserver en onze gebruiksvoorwaarden .
subject: 'Mastodon: E-mail bevestigen voor %{instance}'
title: E-mailadres verifiëren
@@ -51,7 +51,7 @@ nl:
subject: 'Mastodon: Tweestapsverificatie uitgeschakeld'
title: Tweestapsverificatie uitgeschakeld
two_factor_enabled:
- explanation: Tweestapsverificatie voor jouw account is ingeschakeld. Om te kunnen aanmelden is een door een tweestapsverificatie-app genereerde toegangscode nodig.
+ explanation: Tweestapsverificatie voor jouw account is ingeschakeld. Om te kunnen inloggen is een door een tweestapsverificatie-app genereerde toegangscode nodig.
subject: 'Mastodon: Tweestapsverificatie ingeschakeld'
title: Tweestapsverificatie ingeschakeld
two_factor_recovery_codes_changed:
diff --git a/config/locales/devise.nn.yml b/config/locales/devise.nn.yml
index 88d8458f7b..0318e7ea92 100644
--- a/config/locales/devise.nn.yml
+++ b/config/locales/devise.nn.yml
@@ -41,7 +41,7 @@ nn:
subject: 'Mastodon: Stadfest e-post for %{instance}'
title: Stadfest e-postadresse
reset_password_instructions:
- action: Endr passord
+ action: Endre passord
explanation: Du har bedt om eit nytt passord til kontoen din.
extra: Om du ikkje bad om dette, ignorer denne e-posten. Passordet ditt vert ikkje endra før du går inn på lenkja ovanfor og lagar eit nytt.
subject: 'Mastodon: Instuksjonar for å endra passord'
@@ -63,51 +63,51 @@ nn:
webauthn_credential:
added:
explanation: Følgende sikkerhetsnøkkel har blitt lagt til i kontoen din
- subject: 'Mastodon: Ny sikkerhetsnøkkel'
- title: En ny sikkerhetsnøkkel har blitt lagt til
+ subject: 'Mastodon: Ny sikkerheitsnøkkel'
+ title: Ein ny sikkerheitsnøkkel har blitt lagt til
deleted:
- explanation: Følgende sikkerhetsnøkkel har blitt slettet fra kontoen din
- subject: 'Mastodon: Sikkerhetsnøkkel slettet'
- title: En av sikkerhetsnøklene dine har blitt slettet
+ explanation: Den følgande sikkerheitsnøkkelen har blitt sletta frå kontoen din
+ subject: 'Mastodon: Sikkerheitsnøkkel sletta'
+ title: Ein av sikkerheitsnøklane dine har blitt sletta
webauthn_disabled:
- subject: 'Mastodon: Autentisering med sikkerhetsnøkler ble skrudd av'
- title: Sikkerhetsnøkler deaktivert
+ subject: 'Mastodon: Autentisering med sikkerheitsnøklar vart skrudd av'
+ title: Sikkerheitsnøklar deaktivert
webauthn_enabled:
- subject: 'Mastodon: Sikkerhetsnøkkelsautentisering ble skrudd på'
- title: Sikkerhetsnøkler aktivert
+ subject: 'Mastodon: Sikkerheitsnøkkelsautentisering vart skrudd på'
+ title: Sikkerheitsnøklar aktivert
omniauth_callbacks:
- failure: Du kunne ikkje verte autentisert frå %{kind} av di "%{reason}".
+ failure: Kunne ikkje autentisere deg frå %{kind} fordi "%{reason}".
success: Autentisert frå %{kind}-konto.
passwords:
- no_token: Du har ikkje tilgang til denne sida utan ha gått via ein e-post som gjeld å nullstille passordet. Dersom det er kva du har gjort, dobbelsjekk at du har kopiert heile URLen.
- send_instructions: Om vi har e-postadressa di i databasen vår, får du ein e-post med lenke til gjenopprette passordet om nokre få minutt. Sjekk søppelpostmappa di om du ikkje fekk denne e-posten.
- send_paranoid_instructions: Om vi har e-postadressa di i databasen vår, får du ei lenkje til å endra passordet om nokre få minutt. Ver venleg og sjekk søppelpostmappa om du ikkje fekk denne e-posten.
+ no_token: Du har ikkje tilgang til denne sida utan ha gått via ein e-post som gjeld å nullstille passordet. Dersom det var det du gjorde, dobbelsjekk at du har kopiert heile URLen.
+ send_instructions: Om me har epostadressa di i databasen vår, får du ein epost med ei lenke til å gjenopprette passordet om nokre få minutt. Sjekk søppelpostmappa di om du ikkje fekk denne eposten.
+ send_paranoid_instructions: Om me har epostadressa di i databasen vår, får du ei lenke til å endra passordet om nokre få minutt. Ver venleg å sjekke søppelpostmappa om du ikkje fekk denne eposten.
updated: Passordet ditt er endra. No er du logga inn.
updated_not_active: Passordet ditt er endra.
registrations:
- destroyed: Ha det! Kontoen din er sletta. Vi vonar å sjå deg igjen snart.
+ destroyed: Ha det! Kontoen din er sletta. Me vonar å sjå deg igjen snart.
signed_up: Velkomen! No er du registrert.
- signed_up_but_inactive: Du har registrert deg inn, men vi kunne ikkje logga deg inn fordi kontoen din er ikkje aktivert enno.
- signed_up_but_locked: Du har registrert deg inn, men vi kunne ikkje logga deg inn fordi kontoen din er låst.
- signed_up_but_pending: Ei melding med ei stadfestingslenkje er vorten send til e-postadressa di. Når du klikkar på lenkja skal vi sjå gjennom søknaden din. Du får ei melding om han vert godkjend.
- signed_up_but_unconfirmed: Ei melding med ei lenke for å stadfeste kontoen har vorte sendt e-postadressa di. Klikk på lenka for å aktivere kontoen. Sjekk søppelpostmappa dersom du ikkje har fått e-posten.
- update_needs_confirmation: Du har oppdatert kontoen din, men vi må stadfeste den nye e-postadressa. Sjekk innboksen og følg lenka for å stadfeste adressa di. Sjekk søppelpostmappa dersom du ikkje har fått den e-posten.
+ signed_up_but_inactive: Du har registrert deg, men me kunne ikkje logga deg inn fordi kontoen din er ikkje aktivert enno.
+ signed_up_but_locked: Du har registrert deg, men me kunne ikkje logga deg inn fordi kontoen din er låst.
+ signed_up_but_pending: Ei melding med ei stadfestingslenke har vorte sendt til epostadressa di. Når du klikkar på lenka skal me sjå gjennom søknaden din. Du får ei melding om den vert godkjend.
+ signed_up_but_unconfirmed: Ei melding med ei lenke for å stadfeste kontoen har vorte sendt til epostadressa di. Klikk på lenka for å aktivere kontoen. Sjekk søppelpostmappa dersom du ikkje har fått eposten.
+ update_needs_confirmation: Du har oppdatert kontoen din, men me må stadfesta den nye epostadressa. Sjekk innboksen og fylg lenka for å stadfeste adressa di. Sjekk søppelpostmappa dersom du ikkje har fått denne eposten.
updated: Kontoen har vorte oppdatert.
sessions:
already_signed_out: Logga ut.
signed_in: Logga inn.
signed_out: Logga ut.
unlocks:
- send_instructions: Om nokre minutt får du ein e-post med instruksjonar for korleis du kan låse opp kontoen din. Sjekk søppelpostmappa om du ikkje finn den mailen.
- send_paranoid_instructions: Dersom du har konto her, får du ein e-post med instruksjonar for korleis du kan låse opp kontoen din om nokre minutt. Sjekk søppelpostmappa om du ikkje finn den mailen.
+ send_instructions: Om nokre minutt får du ein epost med instruksjonar for korleis du kan låse opp kontoen din. Sjekk søppelpostmappa om du ikkje finn den eposten.
+ send_paranoid_instructions: Dersom du har konto her, får du ein epost med instruksjonar for korleis du kan låse opp kontoen din om nokre minutt. Sjekk søppelpostmappa om du ikkje finn den eposten.
unlocked: Kontoen din har vorte låst opp. Logg inn for å halde fram.
errors:
messages:
- already_confirmed: er allereie stadfesta, prøv logge inn
+ already_confirmed: er allereie stadfesta, prøv å logge inn
confirmation_period_expired: må verte stadfesta innan %{period}, spør etter ein ny
- expired: er utgått, ver venleg å beda om ein ny ein
+ expired: er utgått, ver venleg å be om ein ny ein
not_found: ikkje funne
not_locked: var ikkje låst
not_saved:
one: '1 feil hindra %{resource} frå verte lagra:'
- other: "%{count} feil hindra %{resource} frå verte lagra:"
+ other: "%{count} feil hindra %{resource} frå å verte lagra:"
diff --git a/config/locales/devise.si.yml b/config/locales/devise.si.yml
index b9aa1527ce..a20057cef9 100644
--- a/config/locales/devise.si.yml
+++ b/config/locales/devise.si.yml
@@ -1,42 +1,115 @@
---
si:
devise:
+ confirmations:
+ confirmed: ඔබගේ විද්යුත් තැපැල් ලිපිනය සාර්ථකව තහවුරු කර ඇත.
+ send_instructions: මිනිත්තු කිහිපයකින් ඔබගේ විද්යුත් තැපැල් ලිපිනය තහවුරු කරන ආකාරය පිළිබඳ උපදෙස් සහිත විද්යුත් තැපෑලක් ඔබට ලැබෙනු ඇත. ඔබට මෙම විද්යුත් තැපෑල නොලැබුනේ නම් කරුණාකර ඔබගේ අයාචිත තැපැල් ෆෝල්ඩරය පරීක්ෂා කරන්න.
+ send_paranoid_instructions: ඔබගේ විද්යුත් තැපැල් ලිපිනය අපගේ දත්ත ගබඩාවේ තිබේ නම්, මිනිත්තු කිහිපයකින් ඔබගේ විද්යුත් තැපැල් ලිපිනය තහවුරු කරන ආකාරය පිළිබඳ උපදෙස් සහිත විද්යුත් තැපෑලක් ඔබට ලැබෙනු ඇත. ඔබට මෙම විද්යුත් තැපෑල නොලැබුනේ නම් කරුණාකර ඔබගේ අයාචිත තැපැල් ෆෝල්ඩරය පරීක්ෂා කරන්න.
failure:
already_authenticated: ඔබ දැනටමත් පිවිස ඇත.
+ inactive: ඔබගේ ගිණුම තවම සක්රිය කර නොමැත.
+ invalid: වලංගු නොවන %{authentication_keys} හෝ මුරපදය.
+ last_attempt: ඔබගේ ගිණුම අගුලු දැමීමට පෙර ඔබට තවත් එක් උත්සාහයක් ඇත.
locked: ඔබගේ ගිණුම අගුළු දමා ඇත.
+ not_found_in_database: වලංගු නොවන %{authentication_keys} හෝ මුරපදය.
+ pending: ඔබගේ ගිණුම තවමත් සමාලෝචනය වෙමින් පවතී.
+ timeout: ඔබේ සැසිය කල් ඉකුත් විය. ඉදිරියට යාමට කරුණාකර නැවත පුරන්න.
+ unauthenticated: ඉදිරියට යාමට පෙර ඔබ පුරනය වීමට හෝ ලියාපදිංචි වීමට අවශ්ය වේ.
+ unconfirmed: දිගටම කරගෙන යාමට පෙර ඔබ ඔබේ ඊමේල් ලිපිනය තහවුරු කළ යුතුය.
mailer:
confirmation_instructions:
- title: වි. තැපැල් ලිපිනය තහවුරු කරන්න
+ action: ඊමේල් ලිපිනය තහවුරු කරන්න
+ action_with_app: තහවුරු කර %{app}වෙත ආපසු යන්න
+ explanation: ඔබ මෙම ඊමේල් ලිපිනය සමඟ %{host} හි ගිණුමක් සාදා ඇත. ඔබ එය සක්රිය කිරීමට එක ක්ලික් කිරීමක් ඇත. මේ ඔබ නොවේ නම්, කරුණාකර මෙම විද්යුත් තැපෑල නොසලකා හරින්න.
+ explanation_when_pending: ඔබ මෙම විද්යුත් තැපැල් ලිපිනය සමඟ %{host} වෙත ආරාධනාවක් සඳහා ඉල්ලුම් කළා. ඔබ ඔබගේ විද්යුත් තැපැල් ලිපිනය තහවුරු කළ පසු, අපි ඔබගේ අයදුම්පත සමාලෝචනය කරන්නෙමු. ඔබගේ විස්තර වෙනස් කිරීමට හෝ ඔබගේ ගිණුම මකා දැමීමට ඔබට පුරනය විය හැක, නමුත් ඔබගේ ගිණුම අනුමත වන තුරු ඔබට බොහෝ කාර්යයන් වෙත ප්රවේශ විය නොහැක. ඔබගේ අයදුම්පත ප්රතික්ෂේප කළහොත්, ඔබගේ දත්ත ඉවත් කරනු ඇත, එබැවින් ඔබෙන් වැඩිදුර ක්රියාමාර්ග අවශ්ය නොවනු ඇත. මේ ඔබ නොවේ නම්, කරුණාකර මෙම විද්යුත් තැපෑල නොසලකා හරින්න.
+ extra_html: කරුණාකර සේවාදායකයේ නීති සහ අපගේ සේවා කොන්දේසි ද පරීක්ෂා කරන්න.
+ subject: 'Mastodon: %{instance}සඳහා තහවුරු කිරීමේ උපදෙස්'
+ title: වි. තැපෑල තහවුරු කරන්න
email_changed:
+ explanation: 'ඔබගේ ගිණුම සඳහා ඊමේල් ලිපිනය වෙනස් වෙමින් පවතී:'
+ extra: ඔබ ඔබගේ විද්යුත් තැපෑල වෙනස් නොකළේ නම්, යම් අයෙකු ඔබගේ ගිණුමට ප්රවේශය ලබා ගෙන ඇති බව පෙනෙන්නට තිබේ. ඔබගේ ගිණුමෙන් අගුලු දමා ඇත්නම් කරුණාකර ඔබගේ මුරපදය වහාම වෙනස් කරන්න හෝ සේවාදායක පරිපාලක අමතන්න.
subject: 'මාස්ටඩන්: වි-තැපෑල වෙනස් විය'
- title: නව විද්යුත් තැපැල් ලිපිනය
+ title: නව වි-තැපැල් ලිපිනය
password_change:
- title: මුරපදය වෙනස් කරන ලදි
+ explanation: ඔබගේ ගිණුම සඳහා මුරපදය වෙනස් කර ඇත.
+ extra: ඔබ ඔබගේ මුරපදය වෙනස් නොකළේ නම්, යමෙකු ඔබගේ ගිණුමට ප්රවේශය ලබා ගෙන ඇති බව පෙනෙන්නට තිබේ. ඔබගේ ගිණුමෙන් අගුලු දමා ඇත්නම් කරුණාකර ඔබගේ මුරපදය වහාම වෙනස් කරන්න හෝ සේවාදායක පරිපාලක අමතන්න.
+ subject: 'Mastodon: මුරපදය වෙනස් විය'
+ title: මුරපදය වෙනස් විය
reconfirmation_instructions:
- title: වි. තැපැල් ලිපිනය තහවුරු කරන්න
+ explanation: ඔබගේ ඊමේල් වෙනස් කිරීමට නව ලිපිනය තහවුරු කරන්න.
+ extra: මෙම වෙනස ඔබ විසින් ආරම්භ කරන ලද්දක් නොවේ නම්, කරුණාකර මෙම විද්යුත් තැපෑල නොසලකා හරින්න. ඔබ ඉහත සබැඳියට ප්රවේශ වන තෙක් Mastodon ගිණුම සඳහා ඊමේල් ලිපිනය වෙනස් නොවේ.
+ subject: 'Mastodon: %{instance}සඳහා විද්යුත් තැපෑල තහවුරු කරන්න'
+ title: වි-තැපෑල තහවුරු කරන්න
reset_password_instructions:
action: මුරපදය වෙනස් කරන්න
- title: මුරපදය නැවත සැකසීම
+ explanation: ඔබ ඔබගේ ගිණුම සඳහා නව මුරපදයක් ඉල්ලා ඇත.
+ extra: ඔබ මෙය ඉල්ලා නොසිටියේ නම්, කරුණාකර මෙම විද්යුත් තැපෑල නොසලකා හරින්න. ඔබ ඉහත සබැඳියට ප්රවේශ වී අලුත් එකක් සාදන තෙක් ඔබේ මුරපදය වෙනස් නොවනු ඇත.
+ subject: 'Mastodon: මුරපද උපදෙස් යළි පිහිටුවන්න'
+ title: මුරපදය යළි සැකසීම
two_factor_disabled:
+ explanation: ඔබගේ ගිණුම සඳහා ද්වි-සාධක සත්යාපනය අබල කර ඇත. විද්යුත් තැපැල් ලිපිනය සහ මුරපදය පමණක් භාවිතයෙන් දැන් පුරනය විය හැක.
+ subject: 'Mastodon: ද්වි සාධක සත්යාපනය අක්රීය කර ඇත'
title: ද්විපියවර අබලයි
two_factor_enabled:
+ explanation: ඔබගේ ගිණුම සඳහා ද්වි-සාධක සත්යාපනය සක්රීය කර ඇත. යුගල කළ TOTP යෙදුම මගින් ජනනය කරන ලද ටෝකනයක් පුරනය වීමට අවශ්ය වනු ඇත.
+ subject: 'Mastodon: ද්වි සාධක සත්යාපනය සක්රීය කර ඇත'
title: ද්විපියවර සබලයි
two_factor_recovery_codes_changed:
- title: ද්විපියවර ප්රතිසාධන කේත වෙනස්විණි
+ explanation: පෙර ප්රතිසාධන කේත අවලංගු කර නව ඒවා උත්පාදනය කර ඇත.
+ subject: 'Mastodon: ද්වි-සාධක ප්රතිසාධන කේත නැවත උත්පාදනය කරන ලදී'
+ title: ද්විපියවර ප්රතිසාධන කේත වෙනස් විය
unlock_instructions:
- subject: 'මාස්ටඩන්: අගුලුහැරීමේ උපදේශ'
+ subject: 'මාස්ටඩන්: අගුළු හැරීමේ උපදේශ'
webauthn_credential:
added:
+ explanation: පහත ආරක්ෂක යතුර ඔබගේ ගිණුමට එක් කර ඇත
subject: 'මාස්ටඩන්: නව ආරක්ෂණ යතුර'
title: ආරක්ෂණ යතුරක් එකතු කර ඇත
+ deleted:
+ explanation: පහත ආරක්ෂක යතුර ඔබගේ ගිණුමෙන් මකා ඇත
+ subject: 'Mastodon: ආරක්ෂක යතුර මකා ඇත'
+ title: ඔබගේ ආරක්ෂක යතුරු වලින් එකක් මකා ඇත
webauthn_disabled:
+ explanation: ඔබගේ ගිණුම සඳහා ආරක්ෂක යතුරු සමඟ සත්යාපනය අබල කර ඇත. යුගල කළ TOTP යෙදුම මගින් ජනනය කරන ලද ටෝකනය පමණක් භාවිතයෙන් දැන් පුරනය විය හැක.
+ subject: 'Mastodon: ආරක්ෂක යතුරු සමඟ සත්යාපනය අක්රිය කර ඇත'
title: ආරක්ෂණ යතුරු අබල කර ඇත
webauthn_enabled:
+ explanation: ඔබගේ ගිණුම සඳහා ආරක්ෂක යතුරු සත්යාපනය සක්රීය කර ඇත. ඔබගේ ආරක්ෂක යතුර දැන් පුරනය වීම සඳහා භාවිතා කළ හැක.
+ subject: 'Mastodon: ආරක්ෂක යතුරු සත්යාපනය සක්රීය කර ඇත'
title: ආරක්ෂණ යතුරු සබල කර ඇත
+ omniauth_callbacks:
+ failure: '"%{reason}" නිසා %{kind} සිට ඔබව සත්යාපනය කළ නොහැක.'
+ success: "%{kind} ගිණුමෙන් සාර්ථකව සත්යාපනය කරන ලදී."
+ passwords:
+ no_token: මුරපද යළි පිහිටුවීමේ විද්යුත් තැපෑලකින් නොපැමිණ ඔබට මෙම පිටුවට ප්රවේශ විය නොහැක. ඔබ පැමිණෙන්නේ මුරපද යළි පිහිටුවීමේ විද්යුත් තැපෑලකින් නම්, කරුණාකර ඔබ සපයා ඇති සම්පූර්ණ URL භාවිතා කර ඇති බවට වග බලා ගන්න.
+ send_instructions: ඔබගේ විද්යුත් තැපැල් ලිපිනය අපගේ දත්ත ගබඩාවේ තිබේ නම්, මිනිත්තු කිහිපයකින් ඔබගේ විද්යුත් තැපැල් ලිපිනයට මුරපද ප්රතිසාධන සබැඳියක් ලැබෙනු ඇත. ඔබට මෙම විද්යුත් තැපෑල නොලැබුනේ නම් කරුණාකර ඔබගේ අයාචිත තැපැල් ෆෝල්ඩරය පරීක්ෂා කරන්න.
+ send_paranoid_instructions: ඔබගේ විද්යුත් තැපැල් ලිපිනය අපගේ දත්ත ගබඩාවේ තිබේ නම්, මිනිත්තු කිහිපයකින් ඔබගේ විද්යුත් තැපැල් ලිපිනයට මුරපද ප්රතිසාධන සබැඳියක් ලැබෙනු ඇත. ඔබට මෙම විද්යුත් තැපෑල නොලැබුනේ නම් කරුණාකර ඔබගේ අයාචිත තැපැල් ෆෝල්ඩරය පරීක්ෂා කරන්න.
+ updated: ඔබගේ මුරපදය සාර්ථකව වෙනස් කර ඇත. ඔබ දැන් පුරනය වී ඇත.
+ updated_not_active: ඔබගේ මුරපදය සාර්ථකව වෙනස් කර ඇත.
registrations:
- update_needs_confirmation: ඔබ ඔබගේ ගිණුම සාර්ථකව යාවත්කාලීන කළ නමුත් අපට ඔබගේ නව විද්යුත් තැපැල් ලිපිනය තහවුරු කළ යුතුය. කරුණාකර ඔබගේ විද්යුත් තැපෑල පරීක්ෂා කර තහවුරු කිරීමේ සබැඳිය අනුගමනය කර ඔබගේ නව විද්යුත් තැපැල් ලිපිනය තහවුරු කරන්න. ඔබට මෙම විද්යුත් තැපෑල නොලැබුනේ නම් කරුණාකර ඔබගේ අයාචිත තැපැල් බහාලුම පරීක්ෂා කරන්න.
+ destroyed: ආයුබෝවන්! ඔබගේ ගිණුම සාර්ථකව අවලංගු කර ඇත. ඉක්මනින්ම ඔබව නැවත හමුවීමට අපි බලාපොරොත්තු වෙමු.
+ signed_up: සාදරයෙන් පිළිගනිමු! ඔබ සාර්ථකව ලියාපදිංචි වී ඇත.
+ signed_up_but_inactive: ඔබ සාර්ථකව ලියාපදිංචි වී ඇත. කෙසේ වෙතත්, ඔබගේ ගිණුම තවමත් සක්රිය කර නොමැති නිසා අපට ඔබව පුරනය වීමට නොහැකි විය.
+ signed_up_but_locked: ඔබ සාර්ථකව ලියාපදිංචි වී ඇත. කෙසේ වෙතත්, ඔබගේ ගිණුම අගුලු දමා ඇති නිසා අපට ඔබව පුරනය කිරීමට නොහැකි විය.
+ signed_up_but_pending: තහවුරු කිරීමේ සබැඳියක් සහිත පණිවිඩයක් ඔබගේ විද්යුත් තැපැල් ලිපිනයට යවා ඇත. ඔබ සබැඳිය ක්ලික් කළ පසු, අපි ඔබගේ අයදුම්පත සමාලෝචනය කරන්නෙමු. එය අනුමත වුවහොත් ඔබට දැනුම් දෙනු ලැබේ.
+ signed_up_but_unconfirmed: තහවුරු කිරීමේ සබැඳියක් සහිත පණිවිඩයක් ඔබගේ විද්යුත් තැපැල් ලිපිනයට යවා ඇත. ඔබගේ ගිණුම සක්රිය කිරීමට කරුණාකර සබැඳිය අනුගමනය කරන්න. ඔබට මෙම විද්යුත් තැපෑල නොලැබුනේ නම් කරුණාකර ඔබගේ අයාචිත තැපැල් ෆෝල්ඩරය පරීක්ෂා කරන්න.
+ update_needs_confirmation: ඔබගේ ගිණුම සාර්ථකව යාවත්කාලීන වුවද අපට නව වි-තැපැල් ලිපිනය තහවුරු කර ගැනීමට වුවමනා කෙරේ. කරුණාකර ඔබගේ වි-තැපෑල පරීක්ෂා කර ඊට අදාළ සබැඳිය අනුගමනය කර ඔබගේ නව වි-තැපැල් ලිපිනය තහවුරු කරන්න. ඔබට මෙම වි-තැපෑල නොලැබුණේ නම් කරුණාකර අයාචිත තැපැල් බහාලුම බලන්න.
updated: ඔබගේ ගිණුම සාර්ථකව යාවත්කාලීන කර ඇත.
sessions:
- already_signed_out: සාර්ථකව නික්මුනි.
- signed_in: සාර්ථකව පිවිසුනි.
- signed_out: සාර්ථකව නික්මුනි.
+ already_signed_out: සාර්ථකව නික්මිණි.
+ signed_in: සාර්ථකව පිවිසුණි.
+ signed_out: සාර්ථකව නික්මිණි.
+ unlocks:
+ send_instructions: මිනිත්තු කිහිපයකින් ඔබගේ ගිණුම අගුළු හරින ආකාරය පිළිබඳ උපදෙස් සහිත විද්යුත් තැපෑලක් ඔබට ලැබෙනු ඇත. ඔබට මෙම විද්යුත් තැපෑල නොලැබුනේ නම් කරුණාකර ඔබගේ අයාචිත තැපැල් ෆෝල්ඩරය පරීක්ෂා කරන්න.
+ send_paranoid_instructions: ඔබගේ ගිණුම තිබේ නම්, මිනිත්තු කිහිපයකින් එය අගුළු හරින ආකාරය පිළිබඳ උපදෙස් සහිත විද්යුත් තැපෑලක් ඔබට ලැබෙනු ඇත. ඔබට මෙම විද්යුත් තැපෑල නොලැබුනේ නම් කරුණාකර ඔබගේ අයාචිත තැපැල් ෆෝල්ඩරය පරීක්ෂා කරන්න.
+ unlocked: ඔබගේ ගිණුම සාර්ථකව අගුලු හැර ඇත. ඉදිරියට යාමට කරුණාකර පුරනය වන්න.
+ errors:
+ messages:
+ already_confirmed: දැනටමත් තහවුරු කර ඇත, කරුණාකර පුරනය වීමට උත්සාහ කරන්න
+ confirmation_period_expired: "%{period}තුළ තහවුරු කළ යුතුය, කරුණාකර අලුත් එකක් ඉල්ලන්න"
+ expired: කල් ඉකුත් වී ඇත, කරුණාකර අලුත් එකක් ඉල්ලන්න
+ not_found: හමු වුණේ නැහැ
+ not_locked: අගුලු දමා නොතිබුණි
+ not_saved:
+ one: '1 දෝෂයක් මෙම %{resource} සුරැකීම තහනම් කර ඇත:'
+ other: 'දෝෂ %{count} කින් මෙම %{resource} සුරැකීම තහනම් කර ඇත:'
diff --git a/config/locales/devise.tr.yml b/config/locales/devise.tr.yml
index 98baf29161..86b1c951f7 100644
--- a/config/locales/devise.tr.yml
+++ b/config/locales/devise.tr.yml
@@ -8,7 +8,7 @@ tr:
failure:
already_authenticated: Zaten oturum açtınız.
inactive: Hesabınız henüz etkinleştirilmedi.
- invalid: Geçersiz %{authentication_keys} ya da şifre.
+ invalid: Geçersiz %{authentication_keys} ya da parola.
last_attempt: Hesabınız kilitlenmeden önce bir kez daha denemeniz gerekir.
locked: Hesabınız kilitlendi.
not_found_in_database: Geçersiz %{authentication_keys} ya da parola.
@@ -31,7 +31,7 @@ tr:
subject: 'Mastodon: E-posta adresi değişti'
title: Yeni e-posta adresi
password_change:
- explanation: Hesabınızın şifresi değiştirildi.
+ explanation: Hesabınızın parolası değiştirildi.
extra: Parolanızı değiştirmediyseniz, büyük olasılıkla birileri hesabınıza erişmiş olabilir. Lütfen derhal parolanızı değiştirin veya hesabınız kilitlendiyse sunucu yöneticisine başvurun.
subject: 'Mastodon: Parola değiştirildi'
title: Parola değiştirildi
@@ -81,11 +81,11 @@ tr:
failure: '%{kind}''den kimliğiniz doğrulanamadı çünkü "%{reason}".'
success: "%{kind} hesabından başarıyla kimlik doğrulaması yapıldı."
passwords:
- no_token: Bu sayfaya şifre sıfırlama e-postasından gelmeden erişemezsiniz. Şifre sıfırlama e-postasından geliyorsanız lütfen sağlanan tam URL'yi kullandığınızdan emin olun.
+ no_token: Bu sayfaya parola sıfırlama e-postasından gelmeden erişemezsiniz. Parola sıfırlama e-postasından geliyorsanız lütfen sağlanan tam URL'yi kullandığınızdan emin olun.
send_instructions: E-posta adresiniz veritabanımızda varsa, e-posta adresinize birkaç dakika içinde bir parola kurtarma bağlantısı gönderilir. Bu e-postayı almadıysanız, lütfen spam klasörünüzü kontrol edin.
send_paranoid_instructions: E-posta adresiniz veritabanımızda varsa, e-posta adresinize birkaç dakika içinde bir parola kurtarma bağlantısı gönderilir. Bu e-postayı almadıysanız, lütfen spam klasörünüzü kontrol edin.
- updated: Şifreniz başarılı bir şekilde değiştirildi. Şu an oturum açtınız.
- updated_not_active: Şifreniz başarıyla değiştirildi.
+ updated: Parolanız başarılı bir şekilde değiştirildi. Şu an oturum açtınız.
+ updated_not_active: Parolanız başarıyla değiştirildi.
registrations:
destroyed: Görüşürüz! hesabın başarıyla iptal edildi. Umarız seni sonra tekrar görürüz.
signed_up: Hoş geldiniz! Başarılı bir şekilde oturum açtınız.
diff --git a/config/locales/devise.zh-CN.yml b/config/locales/devise.zh-CN.yml
index dc87d8ddb4..e2f7bafd1d 100644
--- a/config/locales/devise.zh-CN.yml
+++ b/config/locales/devise.zh-CN.yml
@@ -9,7 +9,7 @@ zh-CN:
already_authenticated: 你已登录。
inactive: 你还没有激活帐户。
invalid: "%{authentication_keys} 无效或密码错误。"
- last_attempt: 你只有最后一次尝试机会,若未通过,账号将被锁定。
+ last_attempt: 你只有最后一次尝试机会,若未通过,帐号将被锁定。
locked: 你的帐户已被锁定。
not_found_in_database: "%{authentication_keys}或密码错误。"
pending: 你的账号仍在审核中。
@@ -20,7 +20,7 @@ zh-CN:
confirmation_instructions:
action: 验证电子邮件地址
action_with_app: 确认并返回%{app}
- explanation: 你在 %{host} 上使用此电子邮箱地址创建了一个账号。点击下面的链接即可激活账号。如果你没有创建账号,请忽略此邮件。
+ explanation: 你在 %{host} 上使用此电子邮箱地址创建了一个帐号。点击下面的链接即可激活帐号。如果你没有创建帐号,请忽略此邮件。
explanation_when_pending: 你用这个电子邮件申请了在 %{host} 注册。在确认电子邮件地址之后,我们会审核你的申请。在此之前,你不能登录。如果你的申请被驳回,你的数据会被移除,因此你无需再采取任何行动。如果申请人不是你,请忽略这封邮件。
extra_html: 请记得阅读本实例的相关规定 和我们的使用条款 。
subject: Mastodon:来自 %{instance} 的确认指引
diff --git a/config/locales/doorkeeper.af.yml b/config/locales/doorkeeper.af.yml
index 252f9fd5a2..ec1eda8bd1 100644
--- a/config/locales/doorkeeper.af.yml
+++ b/config/locales/doorkeeper.af.yml
@@ -1 +1,164 @@
+---
af:
+ activerecord:
+ attributes:
+ doorkeeper/application:
+ name: Toepassing naam
+ redirect_uri: Herlei URI
+ scopes: Bestekke
+ website: Toepassing webtuiste
+ errors:
+ models:
+ doorkeeper/application:
+ attributes:
+ redirect_uri:
+ fragment_present: kan nie 'n vragment bevat nie.
+ invalid_uri: moet 'n geldige URI wees.
+ relative_uri: moet 'n absolute URI wees.
+ secured_uri: moet 'n HTTPS/SSL URI wees.
+ doorkeeper:
+ applications:
+ buttons:
+ authorize: Magtig
+ cancel: Kanselleer
+ destroy: Vernietig
+ edit: Redigeer
+ submit: Dien in
+ confirmations:
+ destroy: Is jy seker?
+ edit:
+ title: Redigeer toepassing
+ form:
+ error: Oeps! Hersien jou vorm vir moontlike foute
+ help:
+ native_redirect_uri: Gebruik %{native_redirect_uri} vir plaaslike toetse
+ redirect_uri: Gebruik een lyn per URI
+ scopes: Verdeel omvang-grense met spasies. Los dit leeg om verstek omvange te gebruik.
+ index:
+ application: Toepassing
+ callback_url: Terugroep URL
+ delete: Wis uit
+ empty: Jy het geen toepassings nie.
+ name: Naam
+ new: Nuwe toepassing
+ scopes: Omvange
+ show: Vertoon
+ title: Jou toepassings
+ new:
+ title: Nuwe toepassing
+ show:
+ actions: Aksies
+ application_id: Kliënt sleutel
+ callback_urls: Terugroep URL'e
+ scopes: Omvange
+ secret: Kliënt geheim
+ title: 'Toepassing: %{name}'
+ authorizations:
+ buttons:
+ authorize: Magtig
+ deny: Weier
+ error:
+ title: "'n Fout het plaasgevind"
+ new:
+ prompt_html: "%{client_name} wil toegang hê tot jou rekening. Dit is a derde party toepassing. Indien jy dit nie vertrou nie, moet dit nie bemagtig word nie. "
+ review_permissions: Hersien toestemming
+ title: Benodig magtiging
+ show:
+ title: Kopieër hierdie magtigings kode en plaas dit in die toepassing.
+ authorized_applications:
+ buttons:
+ revoke: Herroep
+ confirmations:
+ revoke: Is jy seker?
+ index:
+ authorized_at: Bemagtig op %{date}
+ description_html: Hierdie is toepassings wat deur middel van die API toegang tot jou rekening kan verkry. As daar enige toepassings is wat jy nie herken nie, of 'n toepassing is wat wangedra, kan die bemagtiging herroep word.
+ last_used_at: Laas gebruik op %{date}
+ never_used: Noot gebruik nie
+ scopes: Magtiging
+ superapp: Intern
+ title: Jou gemagtigde toepassings
+ errors:
+ messages:
+ access_denied: Die hulpbron eienaar of magtigingsbediener het die aansoek afgekeur.
+ credential_flow_not_configured: Hulpbron Eienaar Wagwoord Geloofsbrewe vloei het gefaal omdat Doorkeeper.configure.resource_owner_from_credentials nie opgestel is nie.
+ flash:
+ applications:
+ create:
+ notice: Toepassing geskep.
+ destroy:
+ notice: Toepassing uitgewis.
+ update:
+ notice: Toepassing opdateer.
+ authorized_applications:
+ destroy:
+ notice: Toepassing herroep.
+ grouped_scopes:
+ access:
+ read: Slegs-lees toegang
+ read/write: Lees en skryf toegang
+ write: Slegs-skryf toegang
+ title:
+ accounts: Rekeninge
+ admin/accounts: Administrasie van rekeninge
+ admin/all: Alle administratiewe funksies
+ admin/reports: Administrasie van rapporteringe
+ all: Alles
+ blocks: Blokkeringe
+ bookmarks: Boekmerke
+ conversations: Gesprekke
+ crypto: End-tot-end enkripsie
+ favourites: Gunstelinge
+ filters: Filters
+ follow: Verhoudinge
+ lists: Lyste
+ media: Media aanhegsels
+ mutes: Dempinge
+ notifications: Kennisgewings
+ push: Stoot kennisgewings
+ reports: Rapporteringe
+ search: Soek
+ statuses: Plasings
+ layouts:
+ admin:
+ nav:
+ applications: Toepassings
+ oauth2_provider: OAuth2 Verskaffer
+ application:
+ title: Benodig OAuth bemagtiging
+ scopes:
+ admin:read: lees alle data op die bediener
+ admin:read:accounts: lees sensitiewe inligting vanaf alle rekeninge
+ admin:read:reports: lees sensitiewe inligting van alle verslae end aangeklaagde rekeninge
+ admin:write: verander alle data op die bediener
+ admin:write:accounts: voer modereer aksies uit op rekeninge
+ admin:write:reports: voer modereer aksies uit op verslae
+ crypto: gebruik end-tot-end enkripsie
+ follow: verander rekening verhoudinge
+ push: ontvang jou stootkennisgewings
+ read: lees die data van al jou rekeninge
+ read:accounts: sien rekening inligting
+ read:blocks: sien blokeringe
+ read:bookmarks: sien jou boekmerke
+ read:favourites: sien jou gunstelinge
+ read:filters: sien jou filters
+ read:lists: sien jou lyste
+ read:mutes: sien jou stilmake
+ read:notifications: sien jou kennisgewinge
+ read:reports: sien jou rapporteringe
+ read:search: soek namens jou
+ read:statuses: sien alle plasings
+ write: verander alle data van jou rekening
+ write:accounts: verander jou profiel
+ write:blocks: blokeer rekeninge en domeine
+ write:bookmarks: boekmerk plasings
+ write:conversations: demp en wis gesprekke uit
+ write:favourites: merk gunsteling plasings
+ write:filters: skep filters
+ write:follows: volg mense
+ write:lists: skep lyste
+ write:media: laai meda lêers op
+ write:mutes: demp mense en gesprekke
+ write:notifications: maak jou kennisgewings skoon
+ write:reports: rapporteer ander mense
+ write:statuses: publiseer plasings
diff --git a/config/locales/doorkeeper.ast.yml b/config/locales/doorkeeper.ast.yml
index 45eb623ec4..c65a26bd50 100644
--- a/config/locales/doorkeeper.ast.yml
+++ b/config/locales/doorkeeper.ast.yml
@@ -30,7 +30,7 @@ ast:
native_redirect_uri: Usa %{native_redirect_uri} pa pruebes llocales
redirect_uri: Usa una llinia per URI
index:
- empty: Nun tienes aplicaciones.
+ empty: Nun tienes nenguna aplicación.
name: Nome
new: Aplicación nueva
scopes: Ámbitos
@@ -66,7 +66,7 @@ ast:
server_error: El sirvidor d'autorizaciones alcontró una condición inesperada qu'evitó que cumpliera la solicitú.
temporarily_unavailable: Anguaño'l sirvidor d'autorizaciones nun ye a remanar la solicitú pola mor d'una sobrecarga temporal o caltenimientu del sirvidor.
unauthorized_client: El veceru nun ta autorizáu pa facer esta solicitú usando esti métodu.
- unsupported_response_type: El sirvidor d'autorización nun sofita esta triba de rempuesta.
+ unsupported_response_type: El sirvidor d'autorización nun ye compatible con esti tipu de respuesta.
grouped_scopes:
title:
notifications: Avisos
diff --git a/config/locales/doorkeeper.cy.yml b/config/locales/doorkeeper.cy.yml
index 4dc4b5e0ae..85aaccea60 100644
--- a/config/locales/doorkeeper.cy.yml
+++ b/config/locales/doorkeeper.cy.yml
@@ -69,6 +69,7 @@ cy:
confirmations:
revoke: Ydych chi'n sicr?
index:
+ scopes: Caniatâd
title: Eich rhaglenni awdurdodedig
errors:
messages:
@@ -100,6 +101,12 @@ cy:
authorized_applications:
destroy:
notice: Diddymwyd y cais.
+ grouped_scopes:
+ title:
+ accounts: Cyfrifon
+ bookmarks: Tudalnodau
+ filters: Hidlyddion
+ search: Chwilio
layouts:
admin:
nav:
diff --git a/config/locales/doorkeeper.de.yml b/config/locales/doorkeeper.de.yml
index 3f7e1b2d75..e4668a50fd 100644
--- a/config/locales/doorkeeper.de.yml
+++ b/config/locales/doorkeeper.de.yml
@@ -72,7 +72,7 @@ de:
revoke: Bist du sicher?
index:
authorized_at: Autorisiert am %{date}
- description_html: Dies sind Anwendungen, die über die Programmierschnittstelle auf dein Konto zugreifen können. Wenn es Anwendungen gibt, die du hier nicht erkennst oder eine Anwendung sich falsch verhält, kannst du den Zugriff widerrufen.
+ description_html: Dies sind Anwendungen, die über die Programmierschnittstelle auf dein Konto zugreifen können. Wenn es Anwendungen gibt, die du hier nicht erkennst, oder wenn eine Anwendung sich falsch bzw. verdächtig verhält, kannst du den Zugriff widerrufen.
last_used_at: Zuletzt verwendet am %{date}
never_used: Nie verwendet
scopes: Berechtigungen
@@ -83,13 +83,13 @@ de:
access_denied: Die Anfrage wurde durch Benutzer_in oder Autorisierungs-Server verweigert.
credential_flow_not_configured: Das Konto konnte nicht gefunden werden, da Doorkeeper.configure.resource_owner_from_credentials nicht konfiguriert ist.
invalid_client: 'Client-Authentifizierung ist fehlgeschlagen: Client unbekannt, keine Authentisierung mitgeliefert oder Authentisierungsmethode wird nicht unterstützt.'
- invalid_grant: Die beigefügte Autorisierung ist ungültig, abgelaufen, wurde widerrufen, einem anderen Client ausgestellt oder der Weiterleitungs-URI stimmt nicht mit der Autorisierungs-Anfrage überein.
+ invalid_grant: Die beigefügte Autorisierung ist ungültig, abgelaufen, wurde widerrufen oder einem anderen Client ausgestellt, oder der Weiterleitungs-URI stimmt nicht mit der Autorisierungs-Anfrage überein.
invalid_redirect_uri: Der beigefügte Weiterleitungs-URI ist ungültig.
invalid_request:
missing_param: 'Erforderlicher Parameter fehlt: %{value}.'
request_not_authorized: Anfrage muss autorisiert werden. Benötigter Parameter für die Autorisierung der Anfrage fehlt oder ungültig.
unknown: Der Anfrage fehlt ein benötigter Parameter, enthält einen nicht unterstützten Parameterwert oder ist anderweitig fehlerhaft.
- invalid_resource_owner: Die angegebenen Zugangsdaten für das Konto sind ungültig oder das Konto kann nicht gefunden werden
+ invalid_resource_owner: Die angegebenen Zugangsdaten für das Konto sind ungültig, oder das Konto kann nicht gefunden werden
invalid_scope: Die angeforderte Befugnis ist ungültig, unbekannt oder fehlerhaft.
invalid_token:
expired: Der Zugriffs-Token ist abgelaufen
diff --git a/config/locales/doorkeeper.eo.yml b/config/locales/doorkeeper.eo.yml
index 1584fddf00..473757a37a 100644
--- a/config/locales/doorkeeper.eo.yml
+++ b/config/locales/doorkeeper.eo.yml
@@ -110,6 +110,7 @@ eo:
bookmarks: Legosignoj
lists: Listoj
mutes: Silentigitaj
+ reports: Raportoj
search: Serĉi
statuses: Afiŝoj
layouts:
diff --git a/config/locales/doorkeeper.fi.yml b/config/locales/doorkeeper.fi.yml
index db7c4d01a3..5efa63bc9c 100644
--- a/config/locales/doorkeeper.fi.yml
+++ b/config/locales/doorkeeper.fi.yml
@@ -60,6 +60,7 @@ fi:
error:
title: Tapahtui virhe
new:
+ prompt_html: "%{client_name} pyytää lupaa käyttää tiliäsi. Se on kolmannen osapuolen sovellus. Jos et luota siihen, sinun ei pitäisi sallia sitä. "
review_permissions: Tarkista käyttöoikeudet
title: Valtuutus vaaditaan
show:
@@ -70,6 +71,8 @@ fi:
confirmations:
revoke: Oletko varma?
index:
+ authorized_at: Valtuutettu %{date}
+ description_html: Nämä ovat sovelluksia, jotka voivat käyttää tiliäsi käyttäen API. Jos et tunnista sitä tai sovellus toimii väärin, voit peruuttaa sen käyttöoikeuden.
last_used_at: Viimeksi käytetty %{date}
never_used: Ei käytetty
scopes: Oikeudet
@@ -116,6 +119,9 @@ fi:
write: Vain kirjoitus
title:
accounts: Tilit
+ admin/accounts: Tilien hallinta
+ admin/all: Kaikki hallinnolliset toiminnot
+ admin/reports: Raporttien hallinta
all: Kaikki
blocks: Torjutut
bookmarks: Kirjanmerkit
@@ -147,6 +153,7 @@ fi:
admin:write: muokata kaikkia tietoja palvelimella
admin:write:accounts: suorita moderointitoiminnot tileillä
admin:write:reports: suorita moderointitoiminnot raporteissa
+ crypto: käytä päästä päähän salausta
follow: seurata, estää, perua eston ja lopettaa tilien seuraaminen
push: vastaanottaa push-ilmoituksesi
read: lukea tilin tietoja
@@ -166,6 +173,7 @@ fi:
write:accounts: muokata profiiliasi
write:blocks: estää tilit ja palvelimet
write:bookmarks: kirjanmerkki viestit
+ write:conversations: mykistä ja poistaa keskustelut
write:favourites: suosikki viestit
write:filters: luoda suodattimia
write:follows: seurata ihmisiä
diff --git a/config/locales/doorkeeper.hu.yml b/config/locales/doorkeeper.hu.yml
index d8959bfa26..b394098a48 100644
--- a/config/locales/doorkeeper.hu.yml
+++ b/config/locales/doorkeeper.hu.yml
@@ -80,7 +80,7 @@ hu:
title: Engedélyezett alkalmazásaid
errors:
messages:
- access_denied: Az erőforrás tulajdonosa vagy hitelesítő kiszolgálója megtagadta a kérést.
+ access_denied: Az erőforrás tulajdonosa vagy az engedélyező kiszolgáló elutasította a kérést.
credential_flow_not_configured: Az erőforrás tulajdonos jelszóadatainak átadása megszakadt, mert a Doorkeeper.configure.resource_owner_from_credentials beállítatlan.
invalid_client: A kliens hitelesítése megszakadt, mert ismeretlen a kliens, a kliens nem küldött hitelesítést, vagy a hitelesítés módja nem támogatott.
invalid_grant: A biztosított hitelesítés érvénytelen, lejárt, visszavont, vagy nem egyezik a hitelesítési kérésben használt URI-val, vagy más kliensnek címezték.
@@ -96,11 +96,11 @@ hu:
revoked: Hozzáférési kulcsot visszavonták
unknown: Hozzáférési kulcs érvénytelen
resource_owner_authenticator_not_configured: Erőforrás tulajdonos keresés megszakadt, ugyanis a Doorkeeper.configure.resource_owner_authenticator beállítatlan.
- server_error: Hitelesítő szervert váratlan esemény érte, mely meggátolta a kérés teljesítését.
- temporarily_unavailable: A hitelesítő szerver jelenleg nem tudja teljesíteni a kérést átmeneti túlterheltség vagy a kiszolgáló karbantartása miatt.
+ server_error: Az engedélyező kiszolgáló váratlan körülménybe ütközött, ami megakadályozta, hogy teljesítse a kérést.
+ temporarily_unavailable: Az engedélyezési kiszolgáló jelenleg nem tudja kezelni a kérelmet a kiszolgáló ideiglenes túlterhelése vagy karbantartása miatt.
unauthorized_client: A kliens nincs feljogosítva erre a kérésre.
- unsupported_grant_type: A hitelesítés módja nem támogatott a hitelesítő kiszolgálón.
- unsupported_response_type: A hitelesítő kiszolgáló nem támogatja ezt a választ.
+ unsupported_grant_type: Az engedélyezés megadási típusát nem támogatja az engedélyezési kiszolgáló.
+ unsupported_response_type: Az engedélyezési kiszolgáló nem támogatja ezt a választípust.
flash:
applications:
create:
@@ -147,10 +147,10 @@ hu:
application:
title: OAuth engedély szükséges
scopes:
- admin:read: szerver minden adatának olvasása
+ admin:read: a kiszolgáló összes adatának olvasása
admin:read:accounts: minden kényes fiókadat olvasása
admin:read:reports: minden bejelentés és bejelentett fiók kényes adatainak olvasása
- admin:write: szerver minden adatának változtatása
+ admin:write: a kiszolgáló összes adatának módosítása
admin:write:accounts: moderációs műveletek végzése fiókokon
admin:write:reports: moderációs műveletek végzése bejelentéseken
crypto: végpontok közti titkosítás használata
diff --git a/config/locales/doorkeeper.kab.yml b/config/locales/doorkeeper.kab.yml
index d179793026..ba1d7057a1 100644
--- a/config/locales/doorkeeper.kab.yml
+++ b/config/locales/doorkeeper.kab.yml
@@ -79,6 +79,19 @@ kab:
authorized_applications:
destroy:
notice: Yettwaḥwi wesnas.
+ grouped_scopes:
+ title:
+ accounts: Imiḍanen
+ admin/accounts: Tadbelt n imiḍan
+ crypto: Awgelhen seg yixef ɣer yixef
+ favourites: Ismenyifen
+ filters: Imzizdigen
+ lists: Tibdarin
+ notifications: Tilɣa
+ push: Tilɣa yettudemmren
+ reports: Ineqqisen
+ search: Nadi
+ statuses: Tisuffaɣ
layouts:
admin:
nav:
diff --git a/config/locales/doorkeeper.ku.yml b/config/locales/doorkeeper.ku.yml
index f92a228d10..c4e66aef17 100644
--- a/config/locales/doorkeeper.ku.yml
+++ b/config/locales/doorkeeper.ku.yml
@@ -67,7 +67,7 @@ ku:
title: Destûr hildana vê kodê jê bigire û ji sepanê re pêve bike.
authorized_applications:
buttons:
- revoke: Betal bike
+ revoke: Rake
confirmations:
revoke: Ma tu bawerî?
index:
@@ -149,7 +149,7 @@ ku:
scopes:
admin:read: hemû daneyên li ser rajekar bixwîne
admin:read:accounts: zanyariyên hestiyar yên hemû ajimêran li ser rajekar bixwîne
- admin:read:reports: zanyariyên hestiyar yên hemû gilîyan û ajimêrên gilêkirî li ser rajekar bixwîne
+ admin:read:reports: zanyariyên hestiyar yên hemû ragihandinan û ajimêrên ragihandî li ser rajekar bixwîne
admin:write: hemû daneyên li ser rajekar biguherîne
admin:write:accounts: di ajimêrê de çalakiyên li hev kirî pêk bîne
admin:write:reports: di ragihandinê de çalakiyên li hev kirî pêk bîne
@@ -181,5 +181,5 @@ ku:
write:media: pelên medya bar bike
write:mutes: mirovan û axaftinan bêdeng bike
write:notifications: agahdariyên xwe pak bike
- write:reports: mirovên din gilî bike
+ write:reports: mirovên din ragihîne
write:statuses: şandiyekê biweşîne
diff --git a/config/locales/doorkeeper.nn.yml b/config/locales/doorkeeper.nn.yml
index 789b50f619..d17d38c3f6 100644
--- a/config/locales/doorkeeper.nn.yml
+++ b/config/locales/doorkeeper.nn.yml
@@ -60,6 +60,7 @@ nn:
error:
title: Ein feil har oppstått
new:
+ prompt_html: "%{client_name} ønsker tilgang til kontoen din. Det er ein tredjepartsapplikasjon. Dersom du ikkje stolar på den, bør du ikkje autorisere det. "
title: Autorisasjon nødvendig
show:
title: Kopier denne autorisasjonskoden og lim den inn i applikasjonen.
@@ -69,6 +70,9 @@ nn:
confirmations:
revoke: Er du sikker?
index:
+ authorized_at: Autorisert den %{date}
+ last_used_at: Sist brukt den %{date}
+ never_used: Aldri brukt
title: Dine autoriserte applikasjonar
errors:
messages:
@@ -104,6 +108,25 @@ nn:
authorized_applications:
destroy:
notice: App avvist.
+ grouped_scopes:
+ title:
+ accounts: Kontoar
+ admin/accounts: Kontoadministrasjon
+ admin/all: Alle administrative funksjonar
+ admin/reports: Rapportadministrasjon
+ all: Alt
+ bookmarks: Bokmerke
+ conversations: Samtalar
+ crypto: Ende-til-ende-kryptering
+ favourites: Favorittar
+ filters: Filter
+ lists: Lister
+ media: Mediavedlegg
+ mutes: Målbindingar
+ notifications: Varsel
+ reports: Rapportar
+ search: Søk
+ statuses: Innlegg
layouts:
admin:
nav:
@@ -118,6 +141,7 @@ nn:
admin:write: modifisere alle data på tjeneren
admin:write:accounts: utføre moderatorhandlinger på kontoer
admin:write:reports: utføre moderatorhandlinger på rapporter
+ crypto: bruk ende-til-ende-kryptering
follow: følg, blokkér, avblokkér, avfølg brukere
push: motta dine varsler
read: lese dine data
@@ -132,12 +156,13 @@ nn:
read:notifications: sjå varsla dine
read:reports: sjå rapportane dine
read:search: søke på dine vegne
- read:statuses: sjå alle statusar
+ read:statuses: sjå alle innlegg
write: poste på dine vegne
- write:accounts: rediger profilen din
+ write:accounts: redigera profilen din
write:blocks: blokker kontoar og domene
write:bookmarks: bokmerk statusar
- write:favourites: merk statusar som favoritt
+ write:conversations: målbind og slett samtalar
+ write:favourites: merk innlegg som favoritt
write:filters: lag filter
write:follows: fylg folk
write:lists: lag lister
@@ -145,4 +170,4 @@ nn:
write:mutes: målbind folk og samtalar
write:notifications: tøm varsla dine
write:reports: rapporter andre folk
- write:statuses: legg ut statusar
+ write:statuses: publiser innlegg
diff --git a/config/locales/doorkeeper.pt-BR.yml b/config/locales/doorkeeper.pt-BR.yml
index 684b993abc..0a0b6b1beb 100644
--- a/config/locales/doorkeeper.pt-BR.yml
+++ b/config/locales/doorkeeper.pt-BR.yml
@@ -60,7 +60,8 @@ pt-BR:
error:
title: Ocorreu um erro
new:
- review_permissions: Analisar permissões
+ prompt_html: O %{client_name} gostaria de ter permissão para acessar sua conta. É uma aplicação de terceiros. Se você não confia, então você não deve autorizá-lo.
+ review_permissions: Revisar permissões
title: Autorização necessária
show:
title: Copie este código de autorização e cole no aplicativo.
@@ -71,6 +72,8 @@ pt-BR:
revoke: Você tem certeza?
index:
authorized_at: Autorizado em %{date}
+ description_html: Estas são as aplicações que podem acessar sua conta usando a API. Se houver aplicativos que você não reconhece ou com mau funcionamento, você pode revogar seu acesso.
+ last_used_at: Última vez usado em %{date}
never_used: Nunca usado
scopes: Permissões
superapp: Interno
@@ -110,16 +113,23 @@ pt-BR:
destroy:
notice: Aplicativo revogado.
grouped_scopes:
+ access:
+ read: Acesso somente para leitura
+ read/write: Acesso de leitura e escrita
+ write: Acesso somente para escrita
title:
accounts: Contas
+ admin/accounts: Administração de contas
+ admin/all: Todas as funções administrativas
+ admin/reports: Administração de relatórios
all: Tudo
- blocks: Blocos
+ blocks: Bloqueios
bookmarks: Salvos
conversations: Conversas
crypto: Criptografia de ponta a ponta
favourites: Favoritos
filters: Filtros
- follow: Relações
+ follow: Relacionamentos
lists: Listas
media: Mídias anexadas
notifications: Notificações
@@ -161,6 +171,7 @@ pt-BR:
write:accounts: alterar seu perfil
write:blocks: bloquear contas e domínios
write:bookmarks: salvar toots
+ write:conversations: silenciar e excluir conversas
write:favourites: favoritar toots
write:filters: criar filtros
write:follows: seguir pessoas
diff --git a/config/locales/doorkeeper.ru.yml b/config/locales/doorkeeper.ru.yml
index 7f4cca82b1..86883bf149 100644
--- a/config/locales/doorkeeper.ru.yml
+++ b/config/locales/doorkeeper.ru.yml
@@ -133,7 +133,7 @@ ru:
follows: Подписки
lists: Списки
media: Медиафайлы
- mutes: Без звука
+ mutes: Игнорирует
notifications: Уведомления
push: Push-уведомления
reports: Обращения
@@ -164,7 +164,7 @@ ru:
read:filters: видеть ваши фильтры
read:follows: видеть ваши подписки
read:lists: видеть ваши списки
- read:mutes: видеть список игнорируемых
+ read:mutes: смотреть список игнорируемых
read:notifications: получать уведомления
read:reports: видеть ваши жалобы
read:search: использовать поиск
@@ -173,12 +173,13 @@ ru:
write:accounts: редактировать ваш профиль
write:blocks: блокировать учётные записи и домены
write:bookmarks: добавлять посты в закладки
+ write:conversations: игнорировать и удалить разговоры
write:favourites: отмечать посты как избранные
write:filters: создавать фильтры
write:follows: подписываться на людей
write:lists: создавать списки
write:media: загружать медиафайлы
- write:mutes: добавлять в игнорируемое людей и обсуждения
+ write:mutes: игнорировать людей и обсуждения
write:notifications: очищать список уведомлений
write:reports: отправлять жалобы на других
write:statuses: публиковать посты
diff --git a/config/locales/doorkeeper.si.yml b/config/locales/doorkeeper.si.yml
index 6416fd0820..ebb7f474fc 100644
--- a/config/locales/doorkeeper.si.yml
+++ b/config/locales/doorkeeper.si.yml
@@ -4,10 +4,22 @@ si:
attributes:
doorkeeper/application:
name: යෙදුමේ නම
+ redirect_uri: URI යළි-යොමු කරන්න
+ scopes: විෂය පථයන්
website: යෙදුමේ වියමන අඩවිය
+ errors:
+ models:
+ doorkeeper/application:
+ attributes:
+ redirect_uri:
+ fragment_present: කොටසක් අඩංගු විය නොහැක.
+ invalid_uri: වලංගු URI එකක් විය යුතුය.
+ relative_uri: නිරපේක්ෂ URI විය යුතුය.
+ secured_uri: HTTPS/SSL URI එකක් විය යුතුය.
doorkeeper:
applications:
buttons:
+ authorize: අවසරලත්
cancel: අවලංගු
destroy: විනාශ කරන්න
edit: සංස්කරණය
@@ -16,11 +28,20 @@ si:
destroy: ඔබට විශ්වාසද?
edit:
title: යෙදුම සංස්කරණය
+ form:
+ error: අපොයි! විය හැකි දෝෂ සඳහා ඔබේ පෝරමය පරීක්ෂා කරන්න
+ help:
+ native_redirect_uri: දේශීය පරීක්ෂණ සඳහා %{native_redirect_uri} භාවිතා කරන්න
+ redirect_uri: URI එකකට එක පේළියක් භාවිතා කරන්න
+ scopes: අවකාශයන් සහිත විෂය පථයන් වෙන් කරන්න. පෙරනිමි විෂය පථ භාවිතා කිරීමට හිස්ව තබන්න.
index:
application: යෙදුම
+ callback_url: ආපසු ඇමතුම් URL
+ delete: මකන්න
empty: ඔබට කිසිම යෙදුමක් නැත.
name: නම
new: නව යෙදුම
+ scopes: විෂය පථයන්
show: පෙන්වන්න
title: ඔබගේ යෙදුම්
new:
@@ -28,33 +49,137 @@ si:
show:
actions: ක්රියාමාර්ග
application_id: අනුග්රාහක යතුර
+ callback_urls: ආපසු ඇමතුම් URL
+ scopes: විෂය පථයන්
secret: අනුග්රාහකයේ රහස
title: 'යෙදුම: %{name}'
authorizations:
buttons:
authorize: සත්යාපනය
+ deny: ප්රතික්ෂේප කරන්න
+ error:
+ title: දෝෂයක් සිදුවී ඇත
+ new:
+ prompt_html: "%{client_name} ඔබගේ ගිණුමට ප්රවේශ වීමට අවසර ලබා ගැනීමට කැමති වේ. එය තෙවන පාර්ශවීය යෙදුමකි. ඔබ එය විශ්වාස නොකරන්නේ නම්, ඔබ එයට අවසර නොදිය යුතුය. "
+ review_permissions: අවසර සමාලෝචනය කරන්න
+ title: බලය පැවරීමේ අවශ්ය
+ show:
+ title: මෙම අවසර කේතය පිටපත් කර එය යෙදුමට අලවන්න.
authorized_applications:
+ buttons:
+ revoke: අවලංගු කරන්න
confirmations:
revoke: ඔබට විශ්වාසද?
+ index:
+ authorized_at: "%{date}මත අවසර දී ඇත"
+ description_html: මේවා API භාවිතයෙන් ඔබගේ ගිණුමට ප්රවේශ විය හැකි යෙදුම් වේ. ඔබ මෙහි හඳුනා නොගත් යෙදුම් තිබේ නම්, හෝ යෙදුමක් වැරදි ලෙස හැසිරෙන්නේ නම්, ඔබට එහි ප්රවේශය අවලංගු කළ හැක.
+ last_used_at: අවසන් වරට භාවිතා කළේ %{date}
+ never_used: කවදාවත් පාවිච්චි කළේ නැහැ
+ scopes: අවසර
+ superapp: අභ්යන්තර
+ title: ඔබගේ බලයලත් අයදුම්පත්
+ errors:
+ messages:
+ access_denied: සම්පත් හිමිකරු හෝ අවසර සේවාදායකය ඉල්ලීම ප්රතික්ෂේප කළේය.
+ credential_flow_not_configured: Doorkeeper.configure.resource_owner_from_credentials වින්යාස නොකිරීම හේතුවෙන් සම්පත් හිමිකරුගේ මුරපද අක්තපත්ර ප්රවාහය අසාර්ථක විය.
+ invalid_client: නොදන්නා සේවාලාභියා නිසා සේවාලාභී සත්යාපනය අසාර්ථක විය, සේවාලාභී සත්යාපනය ඇතුළත් කර නැත, හෝ සහය නොදක්වන සත්යාපන ක්රමයක්.
+ invalid_grant: සපයා ඇති අවසර දීමනාව වලංගු නැත, කල් ඉකුත් වී ඇත, අවලංගු කර ඇත, අවසර ඉල්ලීමේ භාවිතා කරන ලද යළි-යොමුවීම් URI සමඟ නොගැලපේ, නැතහොත් වෙනත් සේවාදායකයෙකුට නිකුත් කර ඇත.
+ invalid_redirect_uri: ඇතුළත් කර ඇති යළි-යොමුවීම් uri වලංගු නොවේ.
+ invalid_request:
+ missing_param: 'අවශ්ය පරාමිතිය අස්ථානගත වී ඇත: %{value}.'
+ request_not_authorized: ඉල්ලීම අනුමත කළ යුතුය. අවසර ඉල්ලීම සඳහා අවශ්ය පරාමිතිය අස්ථානගත වී හෝ වලංගු නොවේ.
+ unknown: ඉල්ලීමට අවශ්ය පරාමිතියක් අස්ථානගත වී ඇත, සහය නොදක්වන පරාමිති අගයක් ඇතුළත් වේ, නැතහොත් වෙනත් ආකාරයකින් විකෘති වී ඇත.
+ invalid_resource_owner: සපයන ලද සම්පත් හිමිකරු අක්තපත්ර වලංගු නැත, නැතහොත් සම්පත් හිමිකරු සොයාගත නොහැක
+ invalid_scope: ඉල්ලා සිටින විෂය පථය වලංගු නැත, නොදන්නා, හෝ විකෘති වී ඇත.
+ invalid_token:
+ expired: ප්රවේශ ටෝකනය කල් ඉකුත් විය
+ revoked: ප්රවේශ ටෝකනය අවලංගු කරන ලදී
+ unknown: ප්රවේශ ටෝකනය වලංගු නොවේ
+ resource_owner_authenticator_not_configured: Doorkeeper.configure.resource_owner_authenticator වින්යාසගත නොවීම හේතුවෙන් සම්පත් හිමිකරු සොයා ගැනීම අසාර්ථක විය.
+ server_error: අවසර සේවාදායකයට අනපේක්ෂිත කොන්දේසියක් ඇති වූ අතර එය ඉල්ලීම ඉටු කිරීම වළක්වයි.
+ temporarily_unavailable: තාවකාලික අධි බර පැටවීමක් හෝ සේවාදායකයේ නඩත්තුවක් හේතුවෙන් අවසර සේවාදායකයට ඉල්ලීම හැසිරවීමට දැනට නොහැක.
+ unauthorized_client: මෙම ක්රමය භාවිතයෙන් මෙම ඉල්ලීම ඉටු කිරීමට සේවාදායකයාට අවසර නැත.
+ unsupported_grant_type: අවසර ප්රදාන වර්ගයට බලය පැවරීමේ සේවාදායකය විසින් සහය නොදක්වයි.
+ unsupported_response_type: අවසර සේවාදායකය මෙම ප්රතිචාර වර්ගයට සහය නොදක්වයි.
+ flash:
+ applications:
+ create:
+ notice: යෙදුම නිර්මාණය කරන ලදී.
+ destroy:
+ notice: යෙදුම මකා ඇත.
+ update:
+ notice: යෙදුම යාවත්කාලීන කරන ලදී.
+ authorized_applications:
+ destroy:
+ notice: අයදුම්පත අවලංගු කරන ලදී.
+ grouped_scopes:
+ access:
+ read: කියවීමට පමණක් ප්රවේශය
+ read/write: කියවීමට සහ ලිවීමට ප්රවේශය
+ write: ලිවීමට පමණක් ප්රවේශය
+ title:
+ accounts: ගිණුම්
+ admin/accounts: ගිණුම් පරිපාලනය
+ admin/all: සියලුම පරිපාලන කාර්යයන්
+ admin/reports: වාර්තා පරිපාලනය
+ all: සියල්ල
+ blocks: කුට්ටි
+ bookmarks: පිටු සලකුණු
+ conversations: සංවාද
+ crypto: අන්ත සංකේතනය
+ favourites: ප්රියතම
+ filters: පෙරහන්
+ follow: සබඳතා
+ follows: පහත සඳහන්
+ lists: ලැයිස්තු
+ media: මාධ්ය ඇමුණුම්
+ mutes: නිහඬ කරයි
+ notifications: දැනුම්දීම්
+ push: තල්ලු දැනුම්දීම්
+ reports: වාර්තා
+ search: සොයන්න
+ statuses: ලිපි
layouts:
admin:
nav:
applications: යෙදුම්
oauth2_provider: වි.සත්යා.2 (OAuth) සැපයුම්කරු
application:
- title: වි.සත්යා. (OAuth) අනුමැතිය අවශ්යයයි
+ title: වි.සත්යා. (OAuth) තොරතුරු අවශ්යයි
scopes:
admin:read: සේවාදායකයේ ඇති සියලුම දත්ත කියවන්න
admin:read:accounts: සියලුම ගිණුම් වල සංවේදී තොරතුරු කියවන්න
admin:read:reports: සියලුම වාර්තා සහ වාර්තා කළ ගිණුම් වල සංවේදී තොරතුරු කියවන්න
+ admin:write: සේවාදායකයේ සියලුම දත්ත වෙනස් කරන්න
+ admin:write:accounts: ගිණුම් මත මධ්යස්ථ ක්රියා සිදු කරන්න
+ admin:write:reports: වාර්තා මත මධ්යස්ථ ක්රියා සිදු කරන්න
+ crypto: end-to-end encryption භාවිතා කරන්න
+ follow: ගිණුම් සබඳතා වෙනස් කරන්න
+ push: ඔබගේ තල්ලු දැනුම්දීම් ලබා ගන්න
read: ඔබගේ ගිණුමේ සියලුම දත්ත කියවන්න
+ read:accounts: ගිණුම් තොරතුරු බලන්න
+ read:blocks: ඔබගේ වාරණ බලන්න
+ read:bookmarks: ඔබගේ පිටු සලකුණු බලන්න
+ read:favourites: ඔබේ ප්රියතම බලන්න
read:filters: ඔබගේ පෙරහන් බලන්න
+ read:follows: ඔබගේ පහත සඳහන් බලන්න
read:lists: ඔබගේ ලැයිස්තු බලන්න
+ read:mutes: ඔබේ ගොළු බලන්න
read:notifications: ඔබගේ දැනුම්දීම් බලන්න
- read:search: ඔබ වෙනුවට සොයන්න
+ read:reports: ඔබගේ වාර්තා බලන්න
+ read:search: ඔබ වෙනුවෙන් සොයන්න
+ read:statuses: සියලුම පෝස්ට් බලන්න
+ write: ඔබගේ ගිණුමේ සියලුම දත්ත වෙනස් කරන්න
+ write:accounts: ඔබගේ පැතිකඩ වෙනස් කරන්න
write:blocks: ගිණුම් සහ වසම් අවහිර කරන්න
- write:filters: පෙරහන් සාදන්න
+ write:bookmarks: පිටු සලකුණු සටහන්
+ write:conversations: සංවාද නිහඬ කිරීම සහ මකා දැමීම
+ write:favourites: ප්රියතම ලිපි
+ write:filters: පෙරහන් කරන්න
+ write:follows: මිනිසුන් අනුගමනය කරන්න
+ write:lists: ලැයිස්තු සාදන්න
write:media: මාධ්ය ගොනු උඩුගත කරන්න
- write:mutes: මිනිසුන් සහ සංවාද නිහඬකරන්න
+ write:mutes: මිනිසුන් සහ සංවාද කරන්න
write:notifications: ඔබගේ දැනුම්දීම් හිස්කරන්න
- write:reports: වෙනත් මිනිසුන් වාර්තා කරන්න
+ write:reports: වෙනත් පුද්ගලයින් වාර්තා කරන්න
+ write:statuses: පළ කිරීම් පළ කරන්න
diff --git a/config/locales/doorkeeper.th.yml b/config/locales/doorkeeper.th.yml
index 5c1e1582f6..a0913dc92c 100644
--- a/config/locales/doorkeeper.th.yml
+++ b/config/locales/doorkeeper.th.yml
@@ -81,16 +81,25 @@ th:
errors:
messages:
access_denied: เจ้าของทรัพยากรหรือเซิร์ฟเวอร์การอนุญาตปฏิเสธคำขอ
+ credential_flow_not_configured: โฟลว์ข้อมูลประจำตัวรหัสผ่านเจ้าของทรัพยากรล้มเหลวเนื่องจากไม่ได้กำหนดค่า Doorkeeper.configure.resource_owner_from_credentials
+ invalid_client: การรับรองความถูกต้องไคลเอ็นต์ล้มเหลวเนื่องจากไคลเอ็นต์ที่ไม่รู้จัก ไม่มีการรับรองความถูกต้องไคลเอ็นต์ที่รวมอยู่ หรือวิธีการรับรองความถูกต้องที่ไม่รองรับ
+ invalid_grant: การให้การรับรองความถูกต้องที่ให้มาไม่ถูกต้อง หมดอายุแล้ว เพิกถอนแล้ว ไม่ตรงกับ URI การเปลี่ยนเส้นทางที่ใช้ในคำขอการรับรองความถูกต้อง หรือออกให้ไคลเอ็นต์อื่น
invalid_redirect_uri: URI การเปลี่ยนเส้นทางที่รวมอยู่ไม่ถูกต้อง
invalid_request:
missing_param: 'พารามิเตอร์ที่จำเป็นขาดหายไป: %{value}'
+ request_not_authorized: คำขอจำเป็นต้องได้รับอนุญาต พารามิเตอร์ที่จำเป็นสำหรับการอนุญาตคำขอขาดหายไปหรือไม่ถูกต้อง
+ unknown: คำขอไม่มีพารามิเตอร์ที่จำเป็น รวมค่าพารามิเตอร์ที่ไม่รองรับ หรือมิฉะนั้นผิดรูปแบบ
+ invalid_resource_owner: ข้อมูลประจำตัวเจ้าของทรัพยากรที่ให้มาไม่ถูกต้อง หรือไม่พบเจ้าของทรัพยากร
invalid_scope: ขอบเขตที่ขอไม่ถูกต้อง ไม่รู้จัก หรือผิดรูปแบบ
invalid_token:
expired: โทเคนการเข้าถึงหมดอายุแล้ว
revoked: เพิกถอนโทเคนการเข้าถึงแล้ว
unknown: โทเคนการเข้าถึงไม่ถูกต้อง
resource_owner_authenticator_not_configured: การค้นหาเจ้าของทรัพยากรล้มเหลวเนื่องจากไม่ได้กำหนดค่า Doorkeeper.configure.resource_owner_authenticator
+ server_error: เซิร์ฟเวอร์การรับรองความถูกต้องพบเงื่อนไขที่ไม่คาดคิดซึ่งป้องกันไม่ให้เซิร์ฟเวอร์ดำเนินการตามคำขอ
+ temporarily_unavailable: เซิร์ฟเวอร์การรับรองความถูกต้องไม่สามารถจัดการคำขอได้ในปัจจุบันเนื่องจากการทำงานเกินพิกัดชั่วคราวหรือการบำรุงรักษาเซิร์ฟเวอร์
unauthorized_client: ไคลเอ็นต์ไม่ได้รับอนุญาตให้ทำคำขอนี้โดยใช้วิธีการนี้
+ unsupported_grant_type: ชนิดการให้การรับรองความถูกต้องไม่รองรับโดยเซิร์ฟเวอร์การรับรองความถูกต้อง
unsupported_response_type: เซิร์ฟเวอร์การอนุญาตไม่รองรับชนิดการตอบสนองนี้
flash:
applications:
diff --git a/config/locales/doorkeeper.tr.yml b/config/locales/doorkeeper.tr.yml
index 351d271d06..51d0dff085 100644
--- a/config/locales/doorkeeper.tr.yml
+++ b/config/locales/doorkeeper.tr.yml
@@ -81,7 +81,7 @@ tr:
errors:
messages:
access_denied: Kaynak sahibi veya yetkilendirme sunucusu isteği reddetti.
- credential_flow_not_configured: Kaynak Sahibi Şifresi Kimlik Bilgileri akışı Doorkeeper.configure.resource_owner_from_credentials 'ın yapılandırılmamış olması nedeniyle başarısız oldu.
+ credential_flow_not_configured: Kaynak Sahibi Parolası Kimlik Bilgileri akışı Doorkeeper.configure.resource_owner_from_credentials 'ın yapılandırılmamış olması nedeniyle başarısız oldu.
invalid_client: İstemcinin kimlik doğrulaması bilinmeyen istemci, istemci kimlik doğrulamasının dahil olmaması veya desteklenmeyen kimlik doğrulama yöntemi nedeniyle başarısız oldu.
invalid_grant: Sağlanan yetkilendirme izni geçersiz, süresi dolmuş, iptal edilmiş, yetkilendirme isteğinde kullanılan yönlendirme URL'siyle eşleşmiyor veya başka bir istemciye verilmiş.
invalid_redirect_uri: Dahil edilmiş yönlendirme URL'si geçersiz.
diff --git a/config/locales/el.yml b/config/locales/el.yml
index 1320dcbb40..f35fa9b774 100644
--- a/config/locales/el.yml
+++ b/config/locales/el.yml
@@ -1,91 +1,26 @@
---
el:
about:
- about_hashtag_html: Αυτά είναι κάποια από τα δημόσια τουτ σημειωμένα με #%{hashtag} . Μπορείς να αλληλεπιδράσεις με αυτά αν έχεις λογαριασμό οπουδήποτε στο fediverse.
about_mastodon_html: 'Το κοινωνικό δίκτυο του μέλλοντος: Χωρίς διαφημίσεις, χωρίς εταιρίες να σε κατασκοπεύουν, ηθικά σχεδιασμένο και αποκεντρωμένο! Με το Mastodon τα δεδομένα σου είναι πραγματικά δικά σου!'
- about_this: Σχετικά
- active_count_after: ενεργοί
- active_footnote: Μηνιαίοι Ενεργοί Χρήστες (ΜΕΧ)
- administered_by: 'Διαχειριστής:'
- api: API
- apps: Εφαρμογές κινητών
- apps_platforms: Χρησιμοποίησε το Mastodon από το iOS, το Android και αλλού
- browse_directory: Ξεφύλλισε τον κατάλογο χρηστών και ψάξε ανά ενδιαφέροντα
- browse_local_posts: Ξεφύλλισε τη ζωντανή ροή αυτού του διακομιστή
- browse_public_posts: Ξεφύλλισε τη ζωντανή ροή του Mastodon
- contact: Επικοινωνία
contact_missing: Δεν έχει οριστεί
contact_unavailable: Μη διαθέσιμο
- discover_users: Ανακάλυψε χρήστες
- documentation: Τεκμηρίωση
- federation_hint_html: Με ένα λογαριασμό στο %{instance} θα μπορείς να ακολουθείς ανθρώπους σε οποιοδήποτε κόμβο Mastodon αλλά και παραπέρα.
- get_apps: Δοκίμασε μια εφαρμογή κινητού
hosted_on: Το Mastodon φιλοξενείται στο %{domain}
- instance_actor_flash: |
- Αυτός ο λογαριασμός είναι εικονικός και απεικονίζει ολόκληρο τον κόμβο, όχι κάποιο συγκεκριμένο χρήστη.
- Χρησιμεύει στη λειτουργία της ομοσπονδίας και δε θα πρέπει να αποκλειστεί, εκτός κι αν είναι επιθυμητός ο αποκλεισμός ολόκληρου του κόμβου. Σε αυτή την περίπτωση θα πρέπει να χρησιμοποιηθεί η λειτουργία αποκλεισμού τομέα.
- learn_more: Μάθε περισσότερα
- logout_before_registering: Είστε ήδη συνδεδεμένοι.
- privacy_policy: Πολιτική απορρήτου
- rules: Κανόνες διακομιστή
- rules_html: 'Παρακάτω είναι μια σύνοψη των κανόνων που πρέπει να ακολουθήσετε αν θέλετε να έχετε ένα λογαριασμό σε αυτόν τον διακομιστή Mastodon:'
- see_whats_happening: Μάθε τι συμβαίνει
- server_stats: 'Στατιστικά κόμβου:'
- source_code: Πηγαίος κώδικας
- status_count_after:
- one: δημοσίευση
- other: δημοσιεύσεις
- status_count_before: Που έγραψαν
- tagline: Ακολούθησε τους γνωστούς σου και ανακάλυψε νέους ανθρώπους
- terms: Όροι χρήσης
- unavailable_content: Μη διαθέσιμο
- unavailable_content_description:
- domain: Διακομιστής
- reason: 'Αιτία:'
- rejecting_media: 'Τα αρχεία πολυμέσων αυτών των διακομιστών δεν θα επεξεργάζονται, δεν θα αποθηκεύονται και δεν θα εμφανίζεται η προεπισκόπησή τους, απαιτώντας χειροκίνητη επιλογή μέχρι το αρχικό αρχείο:'
- rejecting_media_title: Φιλτραρισμένα πολυμέσα
- silenced: 'Οι δημοσιεύσεις αυτών των διακομιστών θα είναι κρυμμένες από τις δημόσιες ροές και συζητήσεις, ενώ δεν θα δημιουργούνται ειδοποιήσεις για τις ενέργειες των χρηστών τους, εκτός κι αν τους ακολουθείς:'
- silenced_title: Αποσιωπημένοι διακομιστές
- suspended: 'Κανένα δεδομένο δε θα επεξεργάζεται, δε θα αποθηκεύεται και δε θα ανταλλάσσεται για αυτούς τους διακομιστές, καθιστώντας οποιαδήποτε αλληλεπίδραση ή επικοινωνία με χρήστες από αυτούς τους διακομιστές αδύνατη:'
- suspended_title: Διακομιστές σε αναστολή
- unavailable_content_html: Το Mastodon γενικά επιτρέπει να δεις περιεχόμενο και να αλληλεπιδράσεις με χρήστες από οποιονδήποτε διακομιστή στο fediverse. Εδώ είναι οι εξαιρέσεις που ισχύουν σε αυτόν τον συγκεκριμένο διακομιστή.
- user_count_after:
- one: χρήστης
- other: χρήστες
- user_count_before: Σπίτι για
- what_is_mastodon: Τι είναι το Mastodon;
+ title: Σχετικά με
accounts:
- choices_html: 'Επιλογές από %{name}:'
- endorsements_hint: Μπορεις να εγκρίνεις ανθρώπους που ακολουθείς μέσω της δικτυακής εφαρμογής και αυτοί θα εμφανίζονται εδώ.
- featured_tags_hint: Μπορείς να επιλέξεις συγκεκριμένες ετικέτες που θα εμφανίζονται εδώ.
follow: Ακολούθησε
followers:
one: Ακόλουθος
other: Ακόλουθοι
following: Ακολουθεί
- joined: Εγγράφηκε στις %{date}
last_active: τελευταία ενεργός/ή
link_verified_on: Η κυριότητα αυτού του συνδέσμου ελέγχθηκε στις %{date}
- media: Πολυμέσα
- moved_html: 'Ο/Η %{name} μετακόμισε στο %{new_profile_link}:'
- network_hidden: Αυτή η πληροφορία δεν είναι διαθέσιμη
nothing_here: Δεν υπάρχει τίποτα εδώ!
- people_followed_by: Χρήστες που ακολουθεί ο/η %{name}
- people_who_follow: Χρήστες που ακολουθούν τον/την %{name}
pin_errors:
following: Πρέπει ήδη να ακολουθείς το άτομο που θέλεις να επιδοκιμάσεις
posts:
one: Τουτ
other: Τουτ
posts_tab_heading: Τουτ
- posts_with_replies: Τουτ και απαντήσεις
- roles:
- admin: Διαχειριστής
- bot: Μποτ (αυτόματος λογαριασμός)
- group: Ομάδα
- moderator: Μεσολαβητής
- unavailable: Το προφίλ δεν είναι διαθέσιμο
- unfollow: Διακοπή παρακολούθησης
admin:
account_actions:
action: Εκτέλεση ενέργειας
@@ -102,12 +37,15 @@ el:
avatar: Αβατάρ
by_domain: Τομέας
change_email:
- changed_msg: Επιτυχής αλλαγή email λογαριασμού!
current_email: Τρέχον email
label: Αλλαγή email
new_email: Νέο email
submit: Αλλαγή email
title: Αλλαγή email για %{username}
+ change_role:
+ label: Αλλαγή ρόλου
+ no_role: Κανένας ρόλος
+ title: Αλλαγή ρόλου για %{username}
confirm: Επιβεβαίωση
confirmed: Επιβεβαιώθηκε
confirming: Προς επιβεβαίωση
@@ -148,6 +86,7 @@ el:
active: Ενεργός/ή
all: Όλα
pending: Εκκρεμούν
+ silenced: Περιορισμένοι
suspended: Σε αναστολή
title: Μεσολάβηση
moderation_notes: Σημειώσεις μεσολάβησης
@@ -155,6 +94,7 @@ el:
most_recent_ip: Πιο πρόσφατη IP
no_account_selected: Κανείς λογαριασμός δεν ενημερώθηκε αφού κανείς δεν ήταν επιλεγμένος
no_limits_imposed: Χωρίς όρια
+ no_role_assigned: Δεν έχει ανατεθεί ρόλος
not_subscribed: Άνευ συνδρομής
pending: Εκκρεμεί έγκριση
perform_full_suspension: Αναστολή
@@ -177,12 +117,7 @@ el:
reset: Επαναφορά
reset_password: Επαναφορά συνθηματικού
resubscribe: Επανεγγραφή
- role: Δικαιώματα
- roles:
- admin: Διαχειριστής
- moderator: Συντονιστής
- staff: Προσωπικό
- user: Χρήστης
+ role: Ρόλος
search: Αναζήτηση
search_same_email_domain: Άλλοι χρήστες με τον ίδιο τομέα e-mail
search_same_ip: Υπόλοιποι χρήστες με την ίδια διεύθυνση IP
@@ -267,7 +202,6 @@ el:
destroy_instance_html: Ο/Η %{name} εκκαθάρισε τον τομέα %{target}
reject_user_html: "%{name} απορρίφθηκε εγγραφή από %{target}"
unblock_email_account_html: "%{name} ξεμπλόκαρε τη διεύθυνση ηλεκτρονικού ταχυδρομείου του %{target}"
- deleted_status: "(διαγραμμένη δημοσίευση)"
empty: Δεν βρέθηκαν αρχεία καταγραφής.
filter_by_action: Φιλτράρισμα ανά ενέργεια
filter_by_user: Φιλτράρισμα ανά χρήστη
@@ -492,6 +426,16 @@ el:
unresolved: Άλυτη
updated_at: Ενημερωμένη
view_profile: Προβολή προφίλ
+ roles:
+ add_new: Προσθήκη ρόλου
+ assigned_users:
+ one: "%{count} χρήστης"
+ other: "%{count} χρήστες"
+ categories:
+ administration: Διαχείριση
+ devops: Devops
+ invites: Προσκλήσεις
+ delete: Διαγραφή
rules:
add_new: Προσθήκη κανόνα
delete: Διαγραφή
@@ -500,104 +444,54 @@ el:
empty: Δεν έχουν οριστεί ακόμα κανόνες διακομιστή.
title: Κανόνες διακομιστή
settings:
- activity_api_enabled:
- desc_html: Καταμέτρηση τοπικών δημοσιεύσεων, ενεργών χρηστών και νέων εγγραφών σε εβδομαδιαίες ομαδοποιήσεις
- title: Δημοσίευση συγκεντρωτικών στατιστικών για τη δραστηριότητα χρηστών
- bootstrap_timeline_accounts:
- desc_html: Διαχωρίστε πολλαπλά ονόματα χρηστών με κόμματα. Λειτουργεί μόνο με τοπικούς και ανοιχτούς λογαριασμούς. Αν είναι κενό, περιλαμβάνει όλους τους τοπικούς διαχειριστές.
- title: Προεπιλεγμένοι λογαριασμοί για παρακολούθηση από τους νέους χρήστες
- contact_information:
- email: Επαγγελματικό email
- username: Όνομα χρήστη επικοινωνίας
- custom_css:
- desc_html: Τροποποίηση της εμφάνισης μέσω CSS που φορτώνεται σε κάθε σελίδα
- title: Προσαρμοσμένο CSS
- default_noindex:
- desc_html: Επηρεάζει όσους χρήστες δεν έχουν αλλάξει αυτή τη ρύθμιση
- title: Εξαίρεση χρηστών από τις μηχανές αναζήτησης
+ about:
+ manage_rules: Διαχείριση κανόνων διακομιστή
+ title: Σχετικά με
+ appearance:
+ title: Εμφάνιση
+ content_retention:
+ title: Διατήρηση περιεχομένου
+ discovery:
+ profile_directory: Κατάλογος προφίλ
+ public_timelines: Δημόσιες ροές
+ trends: Τάσεις
domain_blocks:
all: Για όλους
disabled: Για κανέναν
- title: Εμφάνιση αποκλεισμένων τομέων
users: Προς συνδεδεμένους τοπικούς χρήστες
- domain_blocks_rationale:
- title: Εμφάνιση σκεπτικού
- hero:
- desc_html: Εμφανίζεται στην μπροστινή σελίδα. Συνίσταται τουλάχιστον 600x100px. Όταν λείπει, χρησιμοποιείται η μικρογραφία του κόμβου
- title: Εικόνα ήρωα
- mascot:
- desc_html: Εμφάνιση σε πολλαπλές σελίδες. Προτεινόμενο 293x205px τουλάχιστον. Αν δεν έχει οριστεί, χρησιμοποιεί την προεπιλεγμένη μασκότ
- title: Εικόνα μασκότ
- peers_api_enabled:
- desc_html: Ονόματα τομέων που αυτός ο κόμβος έχει ήδη συναντήσει στο fediverse
- title: Δημοσίευση λίστας κόμβων που έχουν ανακαλυφθεί
- preview_sensitive_media:
- desc_html: Οι προεπισκοπήσεις συνδέσμων σε τρίτους ιστότοπους θα είναι ορατές ακόμα κι όταν το πολυμέσο έχει σημειωθεί ως ευαίσθητο
- title: Εμφάνιση ευαίσθητων πολυμέσων στις προεπισκοπήσεις OpenGraph
- profile_directory:
- desc_html: Να επιτρέπεται η ανακάλυψη χρηστών
- title: Ενεργοποίηση του καταλόγου χρηστών
registrations:
- closed_message:
- desc_html: Εμφανίζεται στην εισαγωγική σελίδα όταν οι εγγραφές είναι κλειστές. Μπορείς να χρησιμοποιήσεις HTML tags
- title: Μήνυμα κλεισμένων εγγραφών
- deletion:
- desc_html: Επέτρεψε σε οποιονδήποτε να διαγράψει το λογαριασμό του/της
- title: Άνοιξε τη διαγραφή λογαριασμού
- min_invite_role:
- disabled: Κανείς
- title: Επέτρεψε προσκλήσεις από
+ title: Εγγραφές
registrations_mode:
modes:
approved: Απαιτείται έγκριση για εγγραφή
none: Δεν μπορεί να εγγραφεί κανείς
open: Μπορεί να εγγραφεί ο οποιοσδήποτε
- title: Μέθοδος εγγραφής
- show_known_fediverse_at_about_page:
- desc_html: Όταν αντιστραφεί, θα δείχνει τα τουτ από όλο το γνωστό fediverse στην προεπισκόπηση. Διαφορετικά θα δείχνει μόνο τοπικά τουτ.
- title: Εμφάνιση του γνωστού fediverse στην προεπισκόπηση ροής
- show_staff_badge:
- desc_html: Δείξε ένα σήμα προσωπικού στη σελίδα ενός χρήστη
- title: Δείξε διακριτικό προσωπικού
- site_description:
- desc_html: Εισαγωγική παράγραφος στην αρχική σελίδα. Περιέγραψε τι κάνει αυτό τον διακομιστή Mastodon διαφορετικό και ό,τι άλλο ενδιαφέρον. Μπορείς να χρησιμοποιήσεις HTML tags, συγκεκριμένα < a>
και < em>
.
- title: Περιγραφή κόμβου
- site_description_extended:
- desc_html: Ένα καλό μέρος για τον κώδικα δεοντολογίας, τους κανόνες, τις οδηγίες και ό,τι άλλο διαφοροποιεί τον κόμβο σου. Μπορείς να χρησιμοποιήσεις και κώδικα HTML
- title: Προσαρμοσμένες εκτεταμένες πληροφορίες
- site_short_description:
- desc_html: Εμφανίζεται στην πλαϊνή μπάρα και στα meta tags. Περιέγραψε τι είναι το Mastodon και τι κάνει αυτό τον διακομιστή ιδιαίτερο σε μια παράγραφο. Αν μείνει κενό, θα χρησιμοποιήσει την προκαθορισμένη περιγραφή του κόμβου.
- title: Σύντομη περιγραφή του κόμβου
- site_terms:
- desc_html: Μπορείς να γράψεις τη δική σου πολιτική απορρήτου, όρους χρήσης ή άλλους νομικούς όρους. Μπορείς να χρησιμοποιήσεις HTML tags
- title: Προσαρμοσμένοι όροι χρήσης της υπηρεσίας
- site_title: Όνομα κόμβου
- thumbnail:
- desc_html: Χρησιμοποιείται για προεπισκοπήσεις μέσω του OpenGraph και του API. Συστήνεται 1200x630px
- title: Μικρογραφία κόμβου
- timeline_preview:
- desc_html: Εμφάνισε τη δημόσια ροή στην αρχική σελίδα
- title: Προεπισκόπιση ροής
- title: Ρυθμίσεις ιστότοπου
- trendable_by_default:
- desc_html: Επηρεάζει όσες ετικέτες δεν είχαν απαγορευτεί νωρίτερα
- title: Επέτρεψε στις ετικέτες να εμφανίζονται στις τάσεις χωρίς να χρειάζεται πρώτα έγκριση
- trends:
- desc_html: Δημόσια εμφάνιση ετικετών που έχουν ήδη εγκριθεί και είναι δημοφιλείς
- title: Δημοφιλείς ετικέτες
+ title: Ρυθμίσεις διακομιστή
site_uploads:
delete: Διαγραφή μεταφορτωμένου αρχείου
destroyed_msg: Η μεταφόρτωση ιστότοπου διαγράφηκε επιτυχώς!
statuses:
+ account: Συντάκτης
+ application: Εφαρμογή
back_to_account: Επιστροφή στη σελίδα λογαριασμού
batch:
remove_from_report: Αφαίρεση από την αναφορά
report: Αναφορά
deleted: Διαγραμμένα
+ favourites: Αγαπημένα
+ history: Ιστορικό εκδόσεων
+ in_reply_to: Απάντηση σε
+ language: Γλώσσα
media:
title: Πολυμέσα
+ metadata: Μεταδεδομένα
no_status_selected: Καμία δημοσίευση δεν άλλαξε αφού καμία δεν ήταν επιλεγμένη
+ open: Άνοιγμα δημοσίευσης
+ reblogs: Αναδημοσιεύσεις
+ status_changed: Η ανάρτηση άλλαξε
title: Καταστάσεις λογαριασμού
+ trending: Δημοφιλή
+ visibility: Ορατότητα
with_media: Με πολυμέσα
system_checks:
database_schema_check:
@@ -618,6 +512,12 @@ el:
edit_preset: Ενημέρωση προκαθορισμένης προειδοποίησης
empty: Δεν έχετε ακόμη ορίσει κάποια προεπιλογή προειδοποίησης.
title: Διαχείριση προκαθορισμένων προειδοποιήσεων
+ webhooks:
+ delete: Διαγραφή
+ disable: Απενεργοποίηση
+ disabled: Απενεργοποιημένα
+ enable: Ενεργοποίηση
+ status: Κατάσταση
admin_mailer:
new_appeal:
actions:
@@ -658,16 +558,12 @@ el:
applications:
created: Η εφαρμογή δημιουργήθηκε επιτυχώς
destroyed: Η εφαρμογή διαγράφηκε επιτυχώς
- invalid_url: Το URL δεν είναι έγκυρο
regenerate_token: Αναδημιουργία του διακριτικού πρόσβασης (access token)
token_regenerated: Το διακριτικό πρόσβασης (access token) αναδημιουργήθηκε επιτυχώς
warning: Μεγάλη προσοχή με αυτά τα στοιχεία. Μην τα μοιραστείς ποτέ με κανέναν!
your_token: Το διακριτικό πρόσβασής σου (access token)
auth:
- apply_for_account: Αίτηση πρόσκλησης
change_password: Συνθηματικό
- checkbox_agreement_html: Συμφωνώ με τους κανονισμούς του κόμβου και τους όρους χρήσης
- checkbox_agreement_without_rules_html: Συμφωνώ με τους όρους χρήσης
delete_account: Διαγραφή λογαριασμού
delete_account_html: Αν θέλεις να διαγράψεις το λογαριασμό σου, μπορείς να συνεχίσεις εδώ . Θα σου ζητηθεί επιβεβαίωση.
description:
@@ -693,19 +589,22 @@ el:
registration_closed: Το %{instance} δεν δέχεται νέα μέλη
resend_confirmation: Στείλε ξανά τις οδηγίες επιβεβαίωσης
reset_password: Επαναφορά συνθηματικού
+ rules:
+ title: Ορισμένοι βασικοί κανόνες.
security: Ασφάλεια
set_new_password: Ορισμός νέου συνθηματικού
setup:
email_below_hint_html: Αν η παρακάτω διεύθυνση email είναι λανθασμένη, μπορείτε να την ενημερώσετε και να λάβετε νέο email επιβεβαίωσης.
email_settings_hint_html: Το email επιβεβαίωσης στάλθηκε στο %{email}. Αν η διεύθυνση αυτή δεν είναι σωστή, μπορείτε να την ενημερώσετε στις ρυθμίσεις λογαριασμού.
title: Ρυθμίσεις
+ sign_up:
+ title: Ας ξεκινήσουμε τις ρυθμίσεις στο %{domain}.
status:
account_status: Κατάσταση λογαριασμού
confirming: Αναμονή για ολοκλήρωση επιβεβαίωσης του email.
pending: Η εφαρμογή σας εκκρεμεί έγκρισης, πιθανόν θα διαρκέσει κάποιο χρόνο. Θα λάβετε email αν εγκριθεί.
redirecting_to: Ο λογαριασμός σου είναι ανενεργός γιατί επί του παρόντος ανακατευθύνει στον %{acct}.
too_fast: Η φόρμα υποβλήθηκε πολύ γρήγορα, προσπαθήστε ξανά.
- trouble_logging_in: Πρόβλημα σύνδεσης;
use_security_key: Χρήση κλειδιού ασφαλείας
authorize_follow:
already_following: Ήδη ακολουθείς αυτό το λογαριασμό
@@ -759,10 +658,6 @@ el:
more_details_html: Για περισσότερες πληροφορίες, δες την πολιτική απορρήτου .
username_available: Το όνομα χρήστη σου θα γίνει ξανά διαθέσιμο
username_unavailable: Το όνομα χρήστη σου θα παραμείνει μη διαθέσιμο
- directories:
- directory: Κατάλογος λογαριασμών
- explanation: Βρες χρήστες βάσει των ενδιαφερόντων τους
- explore_mastodon: Εξερεύνησε το %{title}
disputes:
strikes:
approve_appeal: Έγκριση έφεσης
@@ -815,20 +710,22 @@ el:
public: Δημόσιες ροές
thread: Συζητήσεις
edit:
+ add_keyword: Προσθήκη λέξης-κλειδιού
+ keywords: Λέξεις-κλειδιά
title: Ενημέρωση φίλτρου
errors:
invalid_context: Έδωσες λάθος ή ανύπαρκτο πλαίσιο
- invalid_irreversible: Τα μη αντιστρέψιμα φίλτρα δουλεύουν μόνο στα πλαίσια της αρχικής ροής και των ειδοποιήσεων
index:
+ contexts: Φίλτρα σε %{contexts}
delete: Διαγραφή
empty: Δεν έχεις φίλτρα.
+ expires_in: Λήγει σε %{distance}
+ expires_on: Λήγει στις %{date}
title: Φίλτρα
new:
+ save: Αποθήκευση νέου φίλτρου
title: Πρόσθεσε νέο φίλτρο
footer:
- developers: Ανάπτυξη
- more: Περισσότερα…
- resources: Πόροι
trending_now: Τάσεις
generic:
all: Όλα
@@ -860,7 +757,6 @@ el:
following: Λίστα ακολούθων
muting: Λίστα αποσιωπήσεων
upload: Ανέβασμα
- in_memoriam_html: Εις μνήμην.
invites:
delete: Απενεργοποίησε
expired: Ληγμένη
@@ -930,19 +826,10 @@ el:
copy_account_note_text: 'Ο/Η χρήστης μετακόμισε από το %{acct}, ορίστε οι προηγούμενες σημειώσεις σου:'
notification_mailer:
admin:
+ report:
+ subject: "%{name} υπέβαλε μια αναφορά"
sign_up:
subject: "%{name} έχει εγγραφεί"
- digest:
- action: Δες όλες τις ειδοποιήσεις
- body: Μια σύνοψη των μηνυμάτων που έχασες από την τελευταία επίσκεψή σου στις %{since}
- mention: 'Ο/Η %{name} σε ανέφερε στις:'
- new_followers_summary:
- one: Επίσης, απέκτησες έναν νέο ακόλουθο ενώ ήσουν μακριά!
- other: Επίσης, απέκτησες %{count} νέους ακόλουθους ενώ ήσουν μακριά! Εκπληκτικό!
- subject:
- one: "1 νέα ειδοποίηση από την τελευταία επίσκεψή σου 🐘"
- other: "%{count} νέες ειδοποιήσεις από την τελευταία επίσκεψή σου 🐘"
- title: Ενώ έλειπες...
favourite:
body: 'Η κατάστασή σου αγαπήθηκε από τον/την %{name}:'
subject: Ο/Η %{name} αγάπησε την κατάστασή σου
@@ -1008,6 +895,8 @@ el:
other: Άλλες
posting_defaults: Προεπιλογές δημοσίευσης
public_timelines: Δημόσιες ροές
+ privacy_policy:
+ title: Πολιτική Απορρήτου
reactions:
errors:
limit_reached: Το όριο διαφορετικών αντιδράσεων ξεπεράστηκε
@@ -1029,22 +918,7 @@ el:
remove_selected_follows: Διακοπή παρακολούθησης επιλεγμένων χρηστών
status: Κατάσταση λογαριασμού
remote_follow:
- acct: Γράψε το ΌνομαΧρήστη@τομέα από όπου θέλεις να εκτελέσεις την ενέργεια αυτή
missing_resource: Δεν βρέθηκε το απαιτούμενο URL ανακατεύθυνσης για το λογαριασμό σου
- no_account_html: Δεν έχεις λογαριασμό; Μπορείς να γραφτείς εδώ
- proceed: Συνέχισε για να ακολουθήσεις
- prompt: 'Ετοιμάζεσαι να ακολουθήσεις:'
- reason_html: "Γιατί χρειάζεται αυτό το βήμα; Το %{instance}
μπορεί να μην είναι ο κόμβος που έχεις γραφτεί, έτσι πρέπει να σε ανακατευθύνουμε στο δικό σου."
- remote_interaction:
- favourite:
- proceed: Συνέχισε για σημείωση ως αγαπημένου
- prompt: 'Θέλεις να σημειώσεις ως αγαπημένο αυτό το τουτ:'
- reblog:
- proceed: Συνέχισε για προώθηση
- prompt: 'Θέλεις να προωθήσεις αυτό το τουτ:'
- reply:
- proceed: Συνέχισε για να απαντήσεις
- prompt: 'Θέλεις να απαντήσεις σε αυτό το τουτ:'
reports:
errors:
invalid_rules: δεν παραπέμπει σε έγκυρους κανόνες
@@ -1152,8 +1026,6 @@ el:
sensitive_content: Ευαίσθητο περιεχόμενο
tags:
does_not_match_previous_name: δεν ταιριάζει με το προηγούμενο όνομα
- terms:
- title: Όροι Χρήσης και Πολιτική Απορρήτου του κόμβου %{instance}
themes:
contrast: Mastodon (Υψηλή αντίθεση)
default: Mastodon (Σκοτεινό)
@@ -1194,20 +1066,11 @@ el:
suspend: Λογαριασμός σε αναστολή
welcome:
edit_profile_action: Στήσιμο προφίλ
- edit_profile_step: Μπορείς να προσαρμόσεις το προφίλ σου ανεβάζοντας μια εικόνα εμφάνισης & επικεφαλίδας, αλλάζοντας το εμφανιζόμενο όνομά σου και άλλα. Αν θες να ελέγχεις τους νέου σου ακόλουθους πριν αυτοί σε ακολουθήσουν, μπορείς να κλειδώσεις το λογαριασμό σου.
explanation: Μερικές συμβουλές για να ξεκινήσεις
final_action: Ξεκίνα τις δημοσιεύσεις
- final_step: 'Ξεκίνα τις δημοσιεύσεις! Ακόμα και χωρίς ακόλουθους τα δημόσια μηνύματά σου μπορεί να τα δουν άλλοι, για παράδειγμα στην τοπική ροή και στις ετικέτες. Ίσως να θέλεις να κάνεις μια εισαγωγή του εαυτού σου με την ετικέτα #introductions.'
full_handle: Το πλήρες όνομά σου
full_handle_hint: Αυτό θα εδώ θα πεις στους φίλους σου για να σου μιλήσουν ή να σε ακολουθήσουν από άλλο κόμβο.
- review_preferences_action: Αλλαγή προτιμήσεων
- review_preferences_step: Σιγουρέψου πως έχεις ορίσει τις προτιμήσεις σου, όπως το ποια email θέλεις να λαμβάνεις, ή ποιο επίπεδο ιδιωτικότητας θέλεις να έχουν οι δημοσιεύσεις σου. Αν δεν σε πιάνει ναυτία, μπορείς να ενεργοποιήσεις την αυτόματη αναπαραγωγή των GIF.
subject: Καλώς ήρθες στο Mastodon
- tip_federated_timeline: Η ομοσπονδιακή ροή είναι μια όψη πραγματικού χρόνου στο δίκτυο του Mastodon. Παρόλα αυτά, περιλαμβάνει μόνο όσους ακολουθούν οι γείτονές σου, άρα δεν είναι πλήρης.
- tip_following: Ακολουθείς το διαχειριστή του διακομιστή σου αυτόματα. Για να βρεις περισσότερους ενδιαφέροντες ανθρώπους, έλεγξε την τοπική και την ομοσπονδιακή ροή.
- tip_local_timeline: Η τοπική ροή είναι η όψη πραγματικού χρόνου των ανθρώπων στον κόμβο %{instance}. Αυτοί είναι οι άμεσοι γείτονές σου!
- tip_mobile_webapp: Αν ο φυλλομετρητής (browser) στο κινητό σού σου επιτρέπει να προσθέσεις το Mastodon στην αρχική οθόνη της συσκευής, θα λαμβάνεις και ειδοποιήσεις μέσω push. Σε πολλά πράγματα λειτουργεί σαν κανονική εφαρμογή!
- tips: Συμβουλές
title: Καλώς όρισες, %{name}!
users:
follow_limit_reached: Δεν μπορείς να ακολουθήσεις περισσότερα από %{limit} άτομα
diff --git a/config/locales/en.yml b/config/locales/en.yml
index b73b352c70..547b19f074 100644
--- a/config/locales/en.yml
+++ b/config/locales/en.yml
@@ -1,94 +1,27 @@
---
en:
about:
- about_hashtag_html: These are public posts tagged with #%{hashtag} . You can interact with them if you have an account anywhere in the fediverse.
about_mastodon_html: 'The social network of the future: No ads, no corporate surveillance, ethical design, and decentralization! Own your data with Mastodon!'
- about_this: About
- active_count_after: active
- active_footnote: Monthly Active Users (MAU)
- administered_by: 'Administered by:'
- api: API
- apps: Mobile apps
- apps_platforms: Use Mastodon from iOS, Android and other platforms
- browse_directory: Browse a profile directory and filter by interests
- browse_local_posts: Browse a live stream of public posts from this server
- browse_public_posts: Browse a live stream of public posts on Mastodon
- contact: Contact
contact_missing: Not set
contact_unavailable: N/A
- continue_to_web: Continue to web app
- discover_users: Discover users
- documentation: Documentation
- federation_hint_html: With an account on %{instance} you'll be able to follow people on any Mastodon server and beyond.
- get_apps: Try a mobile app
hosted_on: Mastodon hosted on %{domain}
- instance_actor_flash: |
- This account is a virtual actor used to represent the server itself and not any individual user.
- It is used for federation purposes and should not be blocked unless you want to block the whole instance, in which case you should use a domain block.
- learn_more: Learn more
- logged_in_as_html: You are currently logged in as %{username}.
- logout_before_registering: You are already logged in.
- privacy_policy: Privacy policy
- rules: Server rules
- rules_html: 'Below is a summary of rules you need to follow if you want to have an account on this server of Mastodon:'
- see_whats_happening: See what's happening
- server_stats: 'Server stats:'
- source_code: Source code
- status_count_after:
- one: post
- other: posts
- status_count_before: Who published
- tagline: Follow friends and discover new ones
- terms: Terms of service
- unavailable_content: Moderated servers
- unavailable_content_description:
- domain: Server
- reason: Reason
- rejecting_media: 'Media files from these servers will not be processed or stored, and no thumbnails will be displayed, requiring manual click-through to the original file:'
- rejecting_media_title: Filtered media
- silenced: 'Posts from these servers will be hidden in public timelines and conversations, and no notifications will be generated from their users interactions, unless you are following them:'
- silenced_title: Limited servers
- suspended: 'No data from these servers will be processed, stored or exchanged, making any interaction or communication with users from these servers impossible:'
- suspended_title: Suspended servers
- unavailable_content_html: Mastodon generally allows you to view content from and interact with users from any other server in the fediverse. These are the exceptions that have been made on this particular server.
- user_count_after:
- one: user
- other: users
- user_count_before: Home to
- what_is_mastodon: What is Mastodon?
+ title: About
accounts:
- choices_html: "%{name}'s choices:"
- endorsements_hint: You can endorse people you follow from the web interface, and they will show up here.
- featured_tags_hint: You can feature specific hashtags that will be displayed here.
follow: Follow
followers:
one: Follower
other: Followers
following: Following
instance_actor_flash: This account is a virtual actor used to represent the server itself and not any individual user. It is used for federation purposes and should not be suspended.
- joined: Joined %{date}
last_active: last active
link_verified_on: Ownership of this link was checked on %{date}
- media: Media
- moved_html: "%{name} has moved to %{new_profile_link}:"
- network_hidden: This information is not available
nothing_here: There is nothing here!
- people_followed_by: People whom %{name} follows
- people_who_follow: People who follow %{name}
pin_errors:
following: You must be already following the person you want to endorse
posts:
one: Post
other: Posts
posts_tab_heading: Posts
- posts_with_replies: Posts and replies
- roles:
- admin: Admin
- bot: Bot
- group: Group
- moderator: Mod
- unavailable: Profile unavailable
- unfollow: Unfollow
admin:
account_actions:
action: Perform action
@@ -105,12 +38,17 @@ en:
avatar: Avatar
by_domain: Domain
change_email:
- changed_msg: Account email successfully changed!
+ changed_msg: Email successfully changed!
current_email: Current email
label: Change email
new_email: New email
submit: Change email
title: Change email for %{username}
+ change_role:
+ changed_msg: Role successfully changed!
+ label: Change role
+ no_role: No role
+ title: Change role for %{username}
confirm: Confirm
confirmed: Confirmed
confirming: Confirming
@@ -154,6 +92,7 @@ en:
active: Active
all: All
pending: Pending
+ silenced: Limited
suspended: Suspended
title: Moderation
moderation_notes: Moderation notes
@@ -161,6 +100,7 @@ en:
most_recent_ip: Most recent IP
no_account_selected: No accounts were changed as none were selected
no_limits_imposed: No limits imposed
+ no_role_assigned: No role assigned
not_subscribed: Not subscribed
pending: Pending review
perform_full_suspension: Suspend
@@ -187,12 +127,7 @@ en:
reset: Reset
reset_password: Reset password
resubscribe: Resubscribe
- role: Permissions
- roles:
- admin: Administrator
- moderator: Moderator
- staff: Staff
- user: User
+ role: Role
search: Search
search_same_email_domain: Other users with the same e-mail domain
search_same_ip: Other users with the same IP
@@ -235,17 +170,21 @@ en:
approve_user: Approve User
assigned_to_self_report: Assign Report
change_email_user: Change E-mail for User
+ change_role_user: Change Role of User
confirm_user: Confirm User
create_account_warning: Create Warning
create_announcement: Create Announcement
+ create_canonical_email_block: Create E-mail Block
create_custom_emoji: Create Custom Emoji
create_domain_allow: Create Domain Allow
create_domain_block: Create Domain Block
create_email_domain_block: Create E-mail Domain Block
create_ip_block: Create IP rule
create_unavailable_domain: Create Unavailable Domain
+ create_user_role: Create Role
demote_user: Demote User
destroy_announcement: Delete Announcement
+ destroy_canonical_email_block: Delete E-mail Block
destroy_custom_emoji: Delete Custom Emoji
destroy_domain_allow: Delete Domain Allow
destroy_domain_block: Delete Domain Block
@@ -254,6 +193,7 @@ en:
destroy_ip_block: Delete IP rule
destroy_status: Delete Post
destroy_unavailable_domain: Delete Unavailable Domain
+ destroy_user_role: Destroy Role
disable_2fa_user: Disable 2FA
disable_custom_emoji: Disable Custom Emoji
disable_sign_in_token_auth_user: Disable E-mail Token Authentication for User
@@ -280,24 +220,30 @@ en:
update_announcement: Update Announcement
update_custom_emoji: Update Custom Emoji
update_domain_block: Update Domain Block
+ update_ip_block: Update IP rule
update_status: Update Post
+ update_user_role: Update Role
actions:
approve_appeal_html: "%{name} approved moderation decision appeal from %{target}"
approve_user_html: "%{name} approved sign-up from %{target}"
assigned_to_self_report_html: "%{name} assigned report %{target} to themselves"
change_email_user_html: "%{name} changed the e-mail address of user %{target}"
+ change_role_user_html: "%{name} changed role of %{target}"
confirm_user_html: "%{name} confirmed e-mail address of user %{target}"
create_account_warning_html: "%{name} sent a warning to %{target}"
create_announcement_html: "%{name} created new announcement %{target}"
+ create_canonical_email_block_html: "%{name} blocked e-mail with the hash %{target}"
create_custom_emoji_html: "%{name} uploaded new emoji %{target}"
create_domain_allow_html: "%{name} allowed federation with domain %{target}"
create_domain_block_html: "%{name} blocked domain %{target}"
create_email_domain_block_html: "%{name} blocked e-mail domain %{target}"
create_ip_block_html: "%{name} created rule for IP %{target}"
create_unavailable_domain_html: "%{name} stopped delivery to domain %{target}"
+ create_user_role_html: "%{name} created %{target} role"
demote_user_html: "%{name} demoted user %{target}"
destroy_announcement_html: "%{name} deleted announcement %{target}"
- destroy_custom_emoji_html: "%{name} destroyed emoji %{target}"
+ destroy_canonical_email_block_html: "%{name} unblocked e-mail with the hash %{target}"
+ destroy_custom_emoji_html: "%{name} deleted emoji %{target}"
destroy_domain_allow_html: "%{name} disallowed federation with domain %{target}"
destroy_domain_block_html: "%{name} unblocked domain %{target}"
destroy_email_domain_block_html: "%{name} unblocked e-mail domain %{target}"
@@ -305,6 +251,7 @@ en:
destroy_ip_block_html: "%{name} deleted rule for IP %{target}"
destroy_status_html: "%{name} removed post by %{target}"
destroy_unavailable_domain_html: "%{name} resumed delivery to domain %{target}"
+ destroy_user_role_html: "%{name} deleted %{target} role"
disable_2fa_user_html: "%{name} disabled two factor requirement for user %{target}"
disable_custom_emoji_html: "%{name} disabled emoji %{target}"
disable_sign_in_token_auth_user_html: "%{name} disabled e-mail token authentication for %{target}"
@@ -331,8 +278,9 @@ en:
update_announcement_html: "%{name} updated announcement %{target}"
update_custom_emoji_html: "%{name} updated emoji %{target}"
update_domain_block_html: "%{name} updated domain block for %{target}"
+ update_ip_block_html: "%{name} changed rule for IP %{target}"
update_status_html: "%{name} updated post by %{target}"
- deleted_status: "(deleted post)"
+ update_user_role_html: "%{name} changed %{target} role"
empty: No logs found.
filter_by_action: Filter by action
filter_by_user: Filter by user
@@ -376,6 +324,7 @@ en:
listed: Listed
new:
title: Add new custom emoji
+ no_emoji_selected: No emojis were changed as none were selected
not_permitted: You are not permitted to perform this action
overwrite: Overwrite
shortcode: Shortcode
@@ -649,6 +598,67 @@ en:
unresolved: Unresolved
updated_at: Updated
view_profile: View profile
+ roles:
+ add_new: Add role
+ assigned_users:
+ one: "%{count} user"
+ other: "%{count} users"
+ categories:
+ administration: Administration
+ devops: Devops
+ invites: Invites
+ moderation: Moderation
+ special: Special
+ delete: Delete
+ description_html: With user roles , you can customize which functions and areas of Mastodon your users can access.
+ edit: Edit '%{name}' role
+ everyone: Default permissions
+ everyone_full_description_html: This is the base role affecting all users , even those without an assigned role. All other roles inherit permissions from it.
+ permissions_count:
+ one: "%{count} permission"
+ other: "%{count} permissions"
+ privileges:
+ administrator: Administrator
+ administrator_description: Users with this permission will bypass every permission
+ delete_user_data: Delete User Data
+ delete_user_data_description: Allows users to delete other users' data without delay
+ invite_users: Invite Users
+ invite_users_description: Allows users to invite new people to the server
+ manage_announcements: Manage Announcements
+ manage_announcements_description: Allows users to manage announcements on the server
+ manage_appeals: Manage Appeals
+ manage_appeals_description: Allows users to review appeals against moderation actions
+ manage_blocks: Manage Blocks
+ manage_blocks_description: Allows users to block e-mail providers and IP addresses
+ manage_custom_emojis: Manage Custom Emojis
+ manage_custom_emojis_description: Allows users to manage custom emojis on the server
+ manage_federation: Manage Federation
+ manage_federation_description: Allows users to block or allow federation with other domains, and control deliverability
+ manage_invites: Manage Invites
+ manage_invites_description: Allows users to browse and deactivate invite links
+ manage_reports: Manage Reports
+ manage_reports_description: Allows users to review reports and perform moderation actions against them
+ manage_roles: Manage Roles
+ manage_roles_description: Allows users to manage and assign roles below theirs
+ manage_rules: Manage Rules
+ manage_rules_description: Allows users to change server rules
+ manage_settings: Manage Settings
+ manage_settings_description: Allows users to change site settings
+ manage_taxonomies: Manage Taxonomies
+ manage_taxonomies_description: Allows users to review trending content and update hashtag settings
+ manage_user_access: Manage User Access
+ manage_user_access_description: Allows users to disable other users' two-factor authentication, change their e-mail address, and reset their password
+ manage_users: Manage Users
+ manage_users_description: Allows users to view other users' details and perform moderation actions against them
+ manage_webhooks: Manage Webhooks
+ manage_webhooks_description: Allows users to set up webhooks for administrative events
+ view_audit_log: View Audit Log
+ view_audit_log_description: Allows users to see a history of administrative actions on the server
+ view_dashboard: View Dashboard
+ view_dashboard_description: Allows users to access the dashboard and various metrics
+ view_devops: Devops
+ view_devops_description: Allows users to access Sidekiq and pgHero dashboards
+ title: Roles
rules:
add_new: Add rule
delete: Delete
@@ -657,108 +667,67 @@ en:
empty: No server rules have been defined yet.
title: Server rules
settings:
- activity_api_enabled:
- desc_html: Counts of locally published posts, active users, and new registrations in weekly buckets
- title: Publish aggregate statistics about user activity in the API
- bootstrap_timeline_accounts:
- desc_html: Separate multiple usernames by comma. These accounts will be guaranteed to be shown in follow recommendations
- title: Recommend these accounts to new users
- contact_information:
- email: Business e-mail
- username: Contact username
- custom_css:
- desc_html: Modify the look with CSS loaded on every page
- title: Custom CSS
- default_noindex:
- desc_html: Affects all users who have not changed this setting themselves
- title: Opt users out of search engine indexing by default
+ about:
+ manage_rules: Manage server rules
+ preamble: Provide in-depth information about how the server is operated, moderated, funded.
+ rules_hint: There is a dedicated area for rules that your users are expected to adhere to.
+ title: About
+ appearance:
+ preamble: Customize Mastodon's web interface.
+ title: Appearance
+ branding:
+ preamble: Your server's branding differentiates it from other servers in the network. This information may be displayed across a variety of environments, such as Mastodon's web interface, native applications, in link previews on other websites and within messaging apps, and so on. For this reason, it is best to keep this information clear, short and concise.
+ title: Branding
+ content_retention:
+ preamble: Control how user-generated content is stored in Mastodon.
+ title: Content retention
+ discovery:
+ follow_recommendations: Follow recommendations
+ preamble: Surfacing interesting content is instrumental in onboarding new users who may not know anyone Mastodon. Control how various discovery features work on your server.
+ profile_directory: Profile directory
+ public_timelines: Public timelines
+ title: Discovery
+ trends: Trends
domain_blocks:
all: To everyone
disabled: To no one
- title: Show domain blocks
users: To logged-in local users
- domain_blocks_rationale:
- title: Show rationale
- hero:
- desc_html: Displayed on the frontpage. At least 600x100px recommended. When not set, falls back to server thumbnail
- title: Hero image
- mascot:
- desc_html: Displayed on multiple pages. At least 293×205px recommended. When not set, falls back to default mascot
- title: Mascot image
- peers_api_enabled:
- desc_html: Domain names this server has encountered in the fediverse
- title: Publish list of discovered servers in the API
- preview_sensitive_media:
- desc_html: Link previews on other websites will display a thumbnail even if the media is marked as sensitive
- title: Show sensitive media in OpenGraph previews
- profile_directory:
- desc_html: Allow users to be discoverable
- title: Enable profile directory
registrations:
- closed_message:
- desc_html: Displayed on frontpage when registrations are closed. You can use HTML tags
- title: Closed registration message
- deletion:
- desc_html: Allow anyone to delete their account
- title: Open account deletion
- min_invite_role:
- disabled: No one
- title: Allow invitations by
- require_invite_text:
- desc_html: When registrations require manual approval, make the “Why do you want to join?” text input mandatory rather than optional
- title: Require new users to enter a reason to join
+ preamble: Control who can create an account on your server.
+ title: Registrations
registrations_mode:
modes:
approved: Approval required for sign up
none: Nobody can sign up
open: Anyone can sign up
- title: Registrations mode
- show_known_fediverse_at_about_page:
- desc_html: When disabled, restricts the public timeline linked from the landing page to showing only local content
- title: Include federated content on unauthenticated public timeline page
- show_staff_badge:
- desc_html: Show a staff badge on a user page
- title: Show staff badge
- site_description:
- desc_html: Introductory paragraph on the API. Describe what makes this Mastodon server special and anything else important. You can use HTML tags, in particular <a>
and <em>
.
- title: Server description
- site_description_extended:
- desc_html: A good place for your code of conduct, rules, guidelines and other things that set your server apart. You can use HTML tags
- title: Custom extended information
- site_short_description:
- desc_html: Displayed in sidebar and meta tags. Describe what Mastodon is and what makes this server special in a single paragraph.
- title: Short server description
- site_terms:
- desc_html: You can write your own privacy policy, terms of service or other legalese. You can use HTML tags
- title: Custom terms of service
- site_title: Server name
- thumbnail:
- desc_html: Used for previews via OpenGraph and API. 1200x630px recommended
- title: Server thumbnail
- timeline_preview:
- desc_html: Display link to public timeline on landing page and allow API access to the public timeline without authentication
- title: Allow unauthenticated access to public timeline
- title: Site settings
- trendable_by_default:
- desc_html: Affects hashtags that have not been previously disallowed
- title: Allow hashtags to trend without prior review
- trends:
- desc_html: Publicly display previously reviewed content that is currently trending
- title: Trends
+ title: Server Settings
site_uploads:
delete: Delete uploaded file
destroyed_msg: Site upload successfully deleted!
statuses:
+ account: Author
+ application: Application
back_to_account: Back to account page
back_to_report: Back to report page
batch:
remove_from_report: Remove from report
report: Report
deleted: Deleted
+ favourites: Favourites
+ history: Version history
+ in_reply_to: Replying to
+ language: Language
media:
title: Media
+ metadata: Metadata
no_status_selected: No posts were changed as none were selected
+ open: Open post
+ original_status: Original post
+ reblogs: Reblogs
+ status_changed: Post changed
title: Account posts
+ trending: Trending
+ visibility: Visibility
with_media: With media
strikes:
actions:
@@ -798,6 +767,9 @@ en:
description_html: These are links that are currently being shared a lot by accounts that your server sees posts from. It can help your users find out what's going on in the world. No links are displayed publicly until you approve the publisher. You can also allow or reject individual links.
disallow: Disallow link
disallow_provider: Disallow publisher
+ no_link_selected: No links were changed as none were selected
+ publishers:
+ no_publisher_selected: No publishers were changed as none were selected
shared_by_over_week:
one: Shared by one person over the last week
other: Shared by %{count} people over the last week
@@ -817,6 +789,7 @@ en:
description_html: These are posts that your server knows about that are currently being shared and favourited a lot at the moment. It can help your new and returning users to find more people to follow. No posts are displayed publicly until you approve the author, and the author allows their account to be suggested to others. You can also allow or reject individual posts.
disallow: Disallow post
disallow_account: Disallow author
+ no_status_selected: No trending posts were changed as none were selected
not_discoverable: Author has not opted-in to being discoverable
shared_by:
one: Shared or favourited one time
@@ -832,6 +805,7 @@ en:
tag_uses_measure: total uses
description_html: These are hashtags that are currently appearing in a lot of posts that your server sees. It can help your users find out what people are talking the most about at the moment. No hashtags are displayed publicly until you approve them.
listable: Can be suggested
+ no_tag_selected: No tags were changed as none were selected
not_listable: Won't be suggested
not_trendable: Won't appear under trends
not_usable: Cannot be used
@@ -895,12 +869,8 @@ en:
new_trends:
body: 'The following items need a review before they can be displayed publicly:'
new_trending_links:
- no_approved_links: There are currently no approved trending links.
- requirements: 'Any of these candidates could surpass the #%{rank} approved trending link, which is currently "%{lowest_link_title}" with a score of %{lowest_link_score}.'
title: Trending links
new_trending_statuses:
- no_approved_statuses: There are currently no approved trending posts.
- requirements: 'Any of these candidates could surpass the #%{rank} approved trending post, which is currently %{lowest_status_url} with a score of %{lowest_status_score}.'
title: Trending posts
new_trending_tags:
no_approved_tags: There are currently no approved trending hashtags.
@@ -941,10 +911,8 @@ en:
warning: Be very careful with this data. Never share it with anyone!
your_token: Your access token
auth:
- apply_for_account: Request an invite
+ apply_for_account: Get on waitlist
change_password: Password
- checkbox_agreement_html: I agree to the server rules and terms of service
- checkbox_agreement_without_rules_html: I agree to the terms of service
delete_account: Delete account
delete_account_html: If you wish to delete your account, you can proceed here . You will be asked for confirmation.
description:
@@ -963,6 +931,7 @@ en:
migrate_account: Move to a different account
migrate_account_html: If you wish to redirect this account to a different one, you can configure it here .
or_log_in_with: Or log in with
+ privacy_policy_agreement_html: I have read and agree to the privacy policy
providers:
cas: CAS
saml: SAML
@@ -970,12 +939,18 @@ en:
registration_closed: "%{instance} is not accepting new members"
resend_confirmation: Resend confirmation instructions
reset_password: Reset password
+ rules:
+ preamble: These are set and enforced by the %{domain} moderators.
+ title: Some ground rules.
security: Security
set_new_password: Set new password
setup:
email_below_hint_html: If the below e-mail address is incorrect, you can change it here and receive a new confirmation e-mail.
email_settings_hint_html: The confirmation e-mail was sent to %{email}. If that e-mail address is not correct, you can change it in account settings.
title: Setup
+ sign_up:
+ preamble: With an account on this Mastodon server, you'll be able to follow any other person on the network, regardless of where their account is hosted.
+ title: Let's get you set up on %{domain}.
status:
account_status: Account status
confirming: Waiting for e-mail confirmation to be completed.
@@ -984,7 +959,6 @@ en:
redirecting_to: Your account is inactive because it is currently redirecting to %{acct}.
view_strikes: View past strikes against your account
too_fast: Form submitted too fast, try again.
- trouble_logging_in: Trouble logging in?
use_security_key: Use security key
authorize_follow:
already_following: You are already following this account
@@ -1042,10 +1016,6 @@ en:
more_details_html: For more details, see the privacy policy .
username_available: Your username will become available again
username_unavailable: Your username will remain unavailable
- directories:
- directory: Profile directory
- explanation: Discover users based on their interests
- explore_mastodon: Explore %{title}
disputes:
strikes:
action_taken: Action taken
@@ -1124,29 +1094,60 @@ en:
public: Public timelines
thread: Conversations
edit:
+ add_keyword: Add keyword
+ keywords: Keywords
+ statuses: Individual posts
+ statuses_hint_html: This filter applies to select individual posts regardless of whether they match the keywords below. Review or remove posts from the filter .
title: Edit filter
errors:
+ deprecated_api_multiple_keywords: These parameters cannot be changed from this application because they apply to more than one filter keyword. Use a more recent application or the web interface.
invalid_context: None or invalid context supplied
- invalid_irreversible: Irreversible filtering only works with home or notifications context
index:
+ contexts: Filters in %{contexts}
delete: Delete
empty: You have no filters.
+ expires_in: Expires in %{distance}
+ expires_on: Expires on %{date}
+ keywords:
+ one: "%{count} keyword"
+ other: "%{count} keywords"
+ statuses:
+ one: "%{count} post"
+ other: "%{count} posts"
+ statuses_long:
+ one: "%{count} individual post hidden"
+ other: "%{count} individual posts hidden"
title: Filters
new:
+ save: Save new filter
title: Add new filter
+ statuses:
+ back_to_filter: Back to filter
+ batch:
+ remove: Remove from filter
+ index:
+ hint: This filter applies to select individual posts regardless of other criteria. You can add more posts to this filter from the web interface.
+ title: Filtered posts
footer:
- developers: Developers
- more: More…
- resources: Resources
trending_now: Trending now
generic:
all: All
+ all_items_on_page_selected_html:
+ one: "%{count} item on this page is selected."
+ other: All %{count} items on this page are selected.
+ all_matching_items_selected_html:
+ one: "%{count} item matching your search is selected."
+ other: All %{count} items matching your search are selected.
changes_saved_msg: Changes successfully saved!
copy: Copy
delete: Delete
+ deselect: Deselect all
none: None
order_by: Order by
save_changes: Save changes
+ select_all_matching_items:
+ one: Select %{count} item matching your search.
+ other: Select all %{count} items matching your search.
today: today
validation_errors:
one: Something isn't quite right yet! Please review the error below
@@ -1170,7 +1171,6 @@ en:
following: Following list
muting: Muting list
upload: Upload
- in_memoriam_html: In Memoriam.
invites:
delete: Deactivate
expired: Expired
@@ -1249,21 +1249,14 @@ en:
carry_blocks_over_text: This user moved from %{acct}, which you had blocked.
carry_mutes_over_text: This user moved from %{acct}, which you had muted.
copy_account_note_text: 'This user moved from %{acct}, here were your previous notes about them:'
+ navigation:
+ toggle_menu: Toggle menu
notification_mailer:
admin:
+ report:
+ subject: "%{name} submitted a report"
sign_up:
subject: "%{name} signed up"
- digest:
- action: View all notifications
- body: Here is a brief summary of the messages you missed since your last visit on %{since}
- mention: "%{name} mentioned you in:"
- new_followers_summary:
- one: Also, you have acquired one new follower while being away! Yay!
- other: Also, you have acquired %{count} new followers while being away! Amazing!
- subject:
- one: "1 new notification since your last visit 🐘"
- other: "%{count} new notifications since your last visit 🐘"
- title: In your absence...
favourite:
body: 'Your post was favourited by %{name}:'
subject: "%{name} favourited your post"
@@ -1336,6 +1329,8 @@ en:
other: Other
posting_defaults: Posting defaults
public_timelines: Public timelines
+ privacy_policy:
+ title: Privacy Policy
reactions:
errors:
limit_reached: Limit of different reactions reached
@@ -1358,22 +1353,7 @@ en:
remove_selected_follows: Unfollow selected users
status: Account status
remote_follow:
- acct: Enter your username@domain you want to act from
missing_resource: Could not find the required redirect URL for your account
- no_account_html: Don't have an account? You can sign up here
- proceed: Proceed to follow
- prompt: 'You are going to follow:'
- reason_html: "Why is this step necessary? %{instance}
might not be the server where you are registered, so we need to redirect you to your home server first."
- remote_interaction:
- favourite:
- proceed: Proceed to favourite
- prompt: 'You want to favourite this post:'
- reblog:
- proceed: Proceed to boost
- prompt: 'You want to boost this post:'
- reply:
- proceed: Proceed to reply
- prompt: 'You want to reply to this post:'
reports:
errors:
invalid_rules: does not reference valid rules
@@ -1545,89 +1525,6 @@ en:
too_late: It is too late to appeal this strike
tags:
does_not_match_previous_name: does not match the previous name
- terms:
- body_html: |
- Privacy Policy
- What information do we collect?
-
-
- Basic account information : If you register on this server, you may be asked to enter a username, an e-mail address and a password. You may also enter additional profile information such as a display name and biography, and upload a profile picture and header image. The username, display name, biography, profile picture and header image are always listed publicly.
- Posts, following and other public information : The list of people you follow is listed publicly, the same is true for your followers. When you submit a message, the date and time is stored as well as the application you submitted the message from. Messages may contain media attachments, such as pictures and videos. Public and unlisted posts are available publicly. When you feature a post on your profile, that is also publicly available information. Your posts are delivered to your followers, in some cases it means they are delivered to different servers and copies are stored there. When you delete posts, this is likewise delivered to your followers. The action of reblogging or favouriting another post is always public.
- Direct and followers-only posts : All posts are stored and processed on the server. Followers-only posts are delivered to your followers and users who are mentioned in them, and direct posts are delivered only to users mentioned in them. In some cases it means they are delivered to different servers and copies are stored there. We make a good faith effort to limit the access to those posts only to authorized persons, but other servers may fail to do so. Therefore it's important to review servers your followers belong to. You may toggle an option to approve and reject new followers manually in the settings. Please keep in mind that the operators of the server and any receiving server may view such messages , and that recipients may screenshot, copy or otherwise re-share them. Do not share any sensitive information over Mastodon.
- IPs and other metadata : When you log in, we record the IP address you log in from, as well as the name of your browser application. All the logged in sessions are available for your review and revocation in the settings. The latest IP address used is stored for up to 12 months. We also may retain server logs which include the IP address of every request to our server.
-
-
-
-
- What do we use your information for?
-
- Any of the information we collect from you may be used in the following ways:
-
-
- To provide the core functionality of Mastodon. You can only interact with other people's content and post your own content when you are logged in. For example, you may follow other people to view their combined posts in your own personalized home timeline.
- To aid moderation of the community, for example comparing your IP address with other known ones to determine ban evasion or other violations.
- The email address you provide may be used to send you information, notifications about other people interacting with your content or sending you messages, and to respond to inquiries, and/or other requests or questions.
-
-
-
-
- How do we protect your information?
-
- We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL, and your password is hashed using a strong one-way algorithm. You may enable two-factor authentication to further secure access to your account.
-
-
-
- What is our data retention policy?
-
- We will make a good faith effort to:
-
-
- Retain server logs containing the IP address of all requests to this server, in so far as such logs are kept, no more than 90 days.
- Retain the IP addresses associated with registered users no more than 12 months.
-
-
- You can request and download an archive of your content, including your posts, media attachments, profile picture, and header image.
-
- You may irreversibly delete your account at any time.
-
-
-
- Do we use cookies?
-
- Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.
-
- We use cookies to understand and save your preferences for future visits.
-
-
-
- Do we disclose any information to outside parties?
-
- We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety.
-
- Your public content may be downloaded by other servers in the network. Your public and followers-only posts are delivered to the servers where your followers reside, and direct messages are delivered to the servers of the recipients, in so far as those followers or recipients reside on a different server than this.
-
- When you authorize an application to use your account, depending on the scope of permissions you approve, it may access your public profile information, your following list, your followers, your lists, all your posts, and your favourites. Applications can never access your e-mail address or password.
-
-
-
- Site usage by children
-
- If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (General Data Protection Regulation ) do not use this site.
-
- If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (Children's Online Privacy Protection Act ) do not use this site.
-
- Law requirements can be different if this server is in another jurisdiction.
-
-
-
- Changes to our Privacy Policy
-
- If we decide to change our privacy policy, we will post those changes on this page.
-
- This document is CC-BY-SA. It was last updated May 26, 2022.
-
- Originally adapted from the Discourse privacy policy .
- title: "%{instance} Terms of Service and Privacy Policy"
themes:
contrast: Mastodon (High contrast)
default: Mastodon (Dark)
@@ -1706,20 +1603,13 @@ en:
suspend: Account suspended
welcome:
edit_profile_action: Setup profile
- edit_profile_step: You can customize your profile by uploading an avatar, header, changing your display name and more. If you’d like to review new followers before they’re allowed to follow you, you can lock your account.
+ edit_profile_step: You can customize your profile by uploading a profile picture, changing your display name and more. You can opt-in to review new followers before they’re allowed to follow you.
explanation: Here are some tips to get you started
final_action: Start posting
- final_step: 'Start posting! Even without followers your public posts may be seen by others, for example on the local timeline and in hashtags. You may want to introduce yourself on the #introductions hashtag.'
+ final_step: 'Start posting! Even without followers, your public posts may be seen by others, for example on the local timeline or in hashtags. You may want to introduce yourself on the #introductions hashtag.'
full_handle: Your full handle
full_handle_hint: This is what you would tell your friends so they can message or follow you from another server.
- review_preferences_action: Change preferences
- review_preferences_step: Make sure to set your preferences, such as which emails you'd like to receive, or what privacy level you’d like your posts to default to. If you don’t have motion sickness, you could choose to enable GIF autoplay.
subject: Welcome to Mastodon
- tip_federated_timeline: The federated timeline is a firehose view of the Mastodon network. But it only includes people your neighbours are subscribed to, so it's not complete.
- tip_following: You follow your server's admin(s) by default. To find more interesting people, check the local and federated timelines.
- tip_local_timeline: The local timeline is a firehose view of people on %{instance}. These are your immediate neighbours!
- tip_mobile_webapp: If your mobile browser offers you to add Mastodon to your homescreen, you can receive push notifications. It acts like a native app in many ways!
- tips: Tips
title: Welcome aboard, %{name}!
users:
follow_limit_reached: You cannot follow more than %{limit} people
diff --git a/config/locales/eo.yml b/config/locales/eo.yml
index babbce7da4..f4f4d48191 100644
--- a/config/locales/eo.yml
+++ b/config/locales/eo.yml
@@ -1,101 +1,41 @@
---
eo:
about:
- about_hashtag_html: Ĉi tiuj estas la publikaj mesaĝoj markitaj per #%{hashtag} . Vi povas interagi kun ili se vi havas konton ie ajn en la fediverse.
- about_mastodon_html: Mastodon estas socia reto bazita sur malfermitaj retaj protokoloj kaj sur libera malfermitkoda programo. Ĝi estas sencentra kiel retmesaĝoj.
- about_this: Pri
- active_count_after: aktiva
- active_footnote: Monate Aktivaj Uzantoj (MAU)
- administered_by: 'Administrata de:'
- api: API
- apps: Poŝtelefonaj aplikaĵoj
- apps_platforms: Uzu Mastodon ĉe iOS, Android kaj aliajn platformojn
- browse_directory: Esplori profilujo kaj filtri per interesoj
- browse_local_posts: Vidi vivantan fluon de publikaj mesaĝoj al Mastodon
- browse_public_posts: Vidi vivantan fluon de publikaj mesaĝoj al Mastodon
- contact: Kontakti
- contact_missing: Ne elektita
+ about_mastodon_html: 'Mastodon estas socia retejo de la estonteco: sen reklamo, sen kompania gvato, etika dezajno kaj malcentraligo! Vi regu viajn datumojn kun Mastodon!'
+ contact_missing: Ne ŝargita
contact_unavailable: Ne disponebla
- continue_to_web: Daŭrigi al la retaplikaĵo
- discover_users: Malkovri uzantojn
- documentation: Dokumentado
- federation_hint_html: Per konto ĉe %{instance}, vi povos sekvi homojn ĉe iu ajn Mastodon nodo kaj preter.
- get_apps: Provu telefonan aplikaĵon
hosted_on: "%{domain} estas nodo de Mastodon"
- instance_actor_flash: |
- Ĉi tiu konto estas virtuala ulo uzata por reprezenti la servilon mem kaj ne iun apartan uzanton.
- Ĝi estas uzata por frataraj celoj kaj ĝi ne devus esti blokita krom se vi volas bloki la tutan servilon, tiuokaze vi devus uzi domajnan blokadon.
- learn_more: Lerni pli
- logout_before_registering: Vi jam salutis.
- privacy_policy: Privateca politiko
- rules: Reguloj de la servilo
- see_whats_happening: Vidi kio okazas
- server_stats: Servo statuso
- source_code: Fontkodo
- status_count_after:
- one: mesaĝo
- other: mesaĝoj
- status_count_before: Kie skribiĝis
- tagline: Sekvi amikojn kaj trovi iujn novajn
- terms: Uzkondiĉoj
- unavailable_content: Kontrolitaj serviloj
- unavailable_content_description:
- domain: Servilo
- reason: 'Kialo:'
- rejecting_media_title: Filtritaj aŭdovidaĵoj
- silenced_title: Silentigitaj serviloj
- suspended_title: Haltigitaj serviloj
- user_count_after:
- one: uzanto
- other: uzantoj
- user_count_before: Hejmo de
- what_is_mastodon: Kio estas Mastodon?
accounts:
- choices_html: 'Proponoj de %{name}:'
follow: Sekvi
followers:
one: Sekvanto
other: Sekvantoj
following: Sekvatoj
- joined: Aliĝis je %{date}
+ instance_actor_flash: Ĉi tiu konto estas virtuala agento uzata por reprezenti la servilon mem kaj neniu individua uzanto. Ĝi estas uzata por celoj de la federaĵo kaj devas ne esti suspendita.
last_active: laste aktiva
link_verified_on: Proprieto de ĉi tiu ligilo estis kontrolita je %{date}
- media: Aŭdovidaĵoj
- moved_html: "%{name} moviĝis al %{new_profile_link}:"
- network_hidden: Tiu informo ne estas disponebla
nothing_here: Estas nenio ĉi tie!
- people_followed_by: Sekvatoj de %{name}
- people_who_follow: Sekvantoj de %{name}
pin_errors:
following: Vi devas sekvi la homon, kiun vi volas proponi
posts:
one: Mesaĝo
other: Mesaĝoj
posts_tab_heading: Mesaĝoj
- posts_with_replies: Mesaĝoj kaj respondoj
- roles:
- admin: Administranto
- bot: Roboto
- group: Grupo
- moderator: Kontrolanto
- unavailable: Profilo ne disponebla
- unfollow: Ne plu sekvi
admin:
account_actions:
action: Plenumi agon
title: Plenumi kontrolan agon al %{acct}
account_moderation_notes:
create: Lasi noton
- created_msg: Kontrola noto sukcese kreita!
- destroyed_msg: Kontrola noto sukcese detruita!
+ created_msg: Noto de mederigado sukcese kreita!
+ destroyed_msg: Noto de moderigado sukcese detruita!
accounts:
add_email_domain_block: Bloki retadresan domajnon
approve: Aprobi
are_you_sure: Ĉu vi certas?
- avatar: Profilbildo
+ avatar: Rolfiguro
by_domain: Domajno
change_email:
- changed_msg: Konta retadreso sukcese ŝanĝita!
current_email: Nuna retadreso
label: Ŝanĝi retadreson
new_email: Nova retadreso
@@ -108,9 +48,9 @@ eo:
delete: Forigi datumojn
deleted: Forigita
demote: Degradi
- disable: Malebligi
- disable_two_factor_authentication: Malebligi 2FA
- disabled: Malebligita
+ disable: Frostigi
+ disable_two_factor_authentication: Malaktivigi 2FA-n
+ disabled: Frostigita
display_name: Montrata nomo
domain: Domajno
edit: Redakti
@@ -132,16 +72,16 @@ eo:
remote: Foraj
title: Loko
login_status: Ensaluta stato
- media_attachments: Ligitaj aŭdovidaĵoj
+ media_attachments: Aŭdovidaj aldonaĵoj
memorialize: Ŝanĝi al memoro
memorialized: Memorita
moderation:
active: Aktiva
all: Ĉio
pending: Pritraktata
- suspended: Haltigita
- title: Kontrolado
- moderation_notes: Kontrolaj notoj
+ suspended: Suspendita
+ title: Moderigado
+ moderation_notes: Notoj de moderigado
most_recent_activity: Lasta ago
most_recent_ip: Lasta IP
no_account_selected: Neniu konto estis ŝanĝita ĉar neniu estis selektita
@@ -155,8 +95,9 @@ eo:
push_subscription_expires: Eksvalidiĝo de la abono al PuSH
redownload: Aktualigi profilon
reject: Malakcepti
- remove_avatar: Forigi profilbildon
+ remove_avatar: Forigi la rolfiguron
remove_header: Forigi kapan bildon
+ removed_avatar_msg: La bildo de la rolfiguro de %{username} estas sukcese forigita
resend_confirmation:
already_confirmed: Ĉi tiu uzanto jam estas konfirmita
send: Resendi konfirman retmesaĝon
@@ -164,12 +105,6 @@ eo:
reset: Restarigi
reset_password: Restarigi pasvorton
resubscribe: Reaboni
- role: Permesoj
- roles:
- admin: Administranto
- moderator: Kontrolanto
- staff: Teamo
- user: Uzanto
search: Serĉi
search_same_email_domain: Aliaj uzantoj kun la sama retpoŝta domajno
search_same_ip: Aliaj uzantoj kun la sama IP
@@ -180,14 +115,15 @@ eo:
sensitized: markita tikla
shared_inbox_url: URL de kunhavigita leterkesto
show:
- created_reports: Kreitaj signaloj
- targeted_reports: Signalitaj de aliaj
- silence: Kaŝi
+ created_reports: Faritaj raportoj
+ targeted_reports: Raporitaj de alia
+ silence: Mutigita
silenced: Silentigita
statuses: Mesaĝoj
subscribe: Aboni
suspend: Haltigu
- suspended: Haltigita
+ suspended: Suspendita
+ suspension_reversible_hint_html: La konto estas suspendita, kaj la datumoj estos komplete forgitaj en la %{date}. Ĝis tiam, la konto povas esti restaŭrita sen malutila efiko. Se vi deziras tuj forigi ĉiujn datumojn de la konto, vi povas fari ĉi-sube.
title: Kontoj
unblock_email: Malbloki retpoŝtadresojn
unblocked_email_msg: Sukcese malblokis la retpoŝtadreson de %{username}
@@ -196,6 +132,7 @@ eo:
undo_silenced: Malfari kaŝon
undo_suspension: Malfari haltigon
unsubscribe: Malaboni
+ unsuspended_msg: La konto de %{username} estas sukcese reaktivigita
username: Uzantnomo
view_domain: Vidi la resumon de la domajno
warn: Averti
@@ -207,7 +144,7 @@ eo:
assigned_to_self_report: Atribui Raporton
change_email_user: Ŝanĝi retadreson de uzanto
confirm_user: Konfermi uzanto
- create_account_warning: Krei Averton
+ create_account_warning: Krei averton
create_announcement: Krei Anoncon
create_custom_emoji: Krei Propran emoĝion
create_domain_allow: Krei Domajnan Permeson
@@ -223,15 +160,16 @@ eo:
destroy_ip_block: Forigi IP-regulon
destroy_status: Forigi mesaĝon
destroy_unavailable_domain: Forigi Nehaveblan Domajnon
- disable_2fa_user: Malebligi 2FA
- disable_custom_emoji: Malebligi Propran Emoĝion
- disable_user: Malebligi uzanton
+ disable_2fa_user: Malaktivigi 2FA-n
+ disable_custom_emoji: Malaktivigi la proprajn emoĝiojn
+ disable_user: Malaktivigi la uzanton
enable_custom_emoji: Ebligi Propran Emoĝion
+ enable_sign_in_token_auth_user: Aktivigi la aŭtentigon de peco per retpoŝto por la uzanto
enable_user: Ebligi uzanton
memorialize_account: Memorigu Konton
promote_user: Promocii Uzanton
reject_user: Malakcepti Uzanton
- remove_avatar_user: Forigi profilbildon
+ remove_avatar_user: Forigi la rolfiguron
reopen_report: Remalfermi signalon
reset_password_user: Restarigi pasvorton
resolve_report: Solvitaj reporto
@@ -261,24 +199,24 @@ eo:
create_ip_block_html: "%{name} kreis regulon por IP %{target}"
demote_user_html: "%{name} degradis uzanton %{target}"
destroy_announcement_html: "%{name} forigis anoncon %{target}"
- destroy_custom_emoji_html: "%{name} neniigis la emoĝion %{target}"
destroy_domain_allow_html: "%{name} forigis domajnon %{target} el la blanka listo"
destroy_domain_block_html: "%{name} malblokis domajnon %{target}"
destroy_email_domain_block_html: "%{name} malblokis retpoŝtan domajnon %{target}"
destroy_ip_block_html: "%{name} forigis regulon por IP %{target}"
destroy_status_html: "%{name} forigis mesaĝojn de %{target}"
- disable_2fa_user_html: "%{name} malebligis dufaktoran aŭtentigon por uzanto %{target}"
- disable_custom_emoji_html: "%{name} malebligis emoĝion %{target}"
- disable_user_html: "%{name} malebligis ensaluton por uzanto %{target}"
+ disable_2fa_user_html: "%{name} malaktivigis la postulon de la dufaktora aŭtentigo por la uzanto %{target}"
+ disable_custom_emoji_html: "%{name} neebligis la emoĝion %{target}"
+ disable_user_html: "%{name} neebligis la saluton de la uzanto %{target}"
enable_custom_emoji_html: "%{name} ebligis emoĝion %{target}"
enable_user_html: "%{name} ebligis ensaluton por uzanto %{target}"
memorialize_account_html: "%{name} ŝanĝis la konton de %{target} al memora paĝo"
promote_user_html: "%{name} plirangigis uzanton %{target}"
reject_user_html: "%{name} malakceptis registriĝon de %{target}"
- remove_avatar_user_html: "%{name} forigis profilbildon de %{target}"
+ remove_avatar_user_html: "%{name} forigis la rolfiguron de %{target}"
reopen_report_html: "%{name} remalfermis signalon %{target}"
+ suspend_account_html: "%{name} suspendis la konton de %{target}"
+ unsuspend_account_html: "%{name} reaktivigis la konton de %{target}"
update_announcement_html: "%{name} ĝisdatigis anoncon %{target}"
- deleted_status: "(forigita mesaĝo)"
empty: Neniu protokolo trovita.
filter_by_action: Filtri per ago
filter_by_user: Filtri per uzanto
@@ -310,9 +248,9 @@ eo:
created_msg: Emoĝio sukcese kreita!
delete: Forigi
destroyed_msg: Emoĝio sukcese forigita!
- disable: Malebligi
- disabled: Malebligita
- disabled_msg: Emoĝio sukcese malebligita
+ disable: Neebligi
+ disabled: Neebligita
+ disabled_msg: La emoĝio sukcese neebligita
emoji: Emoĝio
enable: Ebligi
enabled: Ebligita
@@ -335,7 +273,7 @@ eo:
dashboard:
active_users: aktivaj uzantoj
interactions: interago
- media_storage: Aŭdvidaĵa memorilo
+ media_storage: Memorilo de aŭdovidaĵoj
new_users: novaj uzantoj
opened_reports: raportoj malfermitaj
resolved_reports: raportoj solvitaj
@@ -362,13 +300,13 @@ eo:
severity:
desc_html: "Kaŝi igos la mesaĝojn de la konto nevideblaj al tiuj, kiuj ne sekvas tiun. Haltigi forigos ĉiujn enhavojn, aŭdovidaĵojn kaj datumojn de la konto. Uzu Nenio se vi simple volas malakcepti aŭdovidaĵojn."
noop: Nenio
- silence: Kaŝi
+ silence: Mutigi
suspend: Haltigi
title: Nova domajna blokado
obfuscate: Malklara domajna nomo
private_comment: Privata komento
public_comment: Publika komento
- reject_media: Malakcepti aŭdovidajn dosierojn
+ reject_media: Malakcepti la aŭdovidajn dosierojn
reject_media_hint: Forigas aŭdovidaĵojn loke konservitajn kaj rifuzas alŝuti ajnan estonte. Ne koncernas haltigojn
reject_reports: Malakcepti signalojn
reject_reports_hint: Ignori ĉiujn signalojn el tiu domajno. Ne koncernas haltigojn
@@ -399,6 +337,7 @@ eo:
by_domain: Domajno
content_policies:
policies:
+ reject_media: Malakcepti la aŭdovidaĵojn
reject_reports: Malakcepti raportojn
silence: Kaŝu
policy: Politiko
@@ -407,16 +346,18 @@ eo:
instance_accounts_measure: konservitaj kontoj
instance_followers_measure: niaj sekvantoj tie
instance_follows_measure: iliaj sekvantoj ĉi tie
+ instance_media_attachments_measure: stokitaj aŭdovidaj aldonaĵoj
instance_reports_measure: raportoj pri ili
instance_statuses_measure: konservitaj afiŝoj
delivery:
all: Ĉiuj
+ unavailable: Nedisponebla
delivery_available: Liverado disponeblas
empty: Neniuj domajnoj trovitaj.
moderation:
all: Ĉiuj
limited: Limigita
- title: Kontrolo
+ title: Moderigado
private_comment: Privata komento
public_comment: Publika komento
purge: Purigu
@@ -455,11 +396,11 @@ eo:
add_new: Aldoni novan ripetilon
delete: Forigi
description_html: "Fratara ripetilo estas survoja servilo, kiu interŝanĝas grandan kvanton de publikaj mesaĝoj inter serviloj, kiuj abonas kaj publikigas al ĝi. Ĝi povas helpi etajn kaj mezgrandajn servilojn malkovri enhavon de la fediverse , kio normale postulus al lokaj uzantoj mane sekvi homojn de foraj serviloj."
- disable: Malebligi
- disabled: Malebligita
+ disable: Neebligi
+ disabled: Neebligita
enable: Ebligi
enable_hint: Post ebligo, via servilo abonos ĉiujn publikajn mesaĝojn de tiu ripetilo, kaj komencos sendi publikajn mesaĝojn de la servilo al ĝi.
- enabled: Malebligita
+ enabled: Ebligita
inbox_url: URL de la ripetilo
pending: Atendante aprobon de la ripetilo
save_and_enable: Konservi kaj ebligi
@@ -476,6 +417,8 @@ eo:
one: "%{count} noto"
other: "%{count} notoj"
action_taken_by: Ago farita de
+ actions:
+ other_description_html: Vidu pli da elektebloj por kontroli la agadon de la konto kaj personecigi la komunikadon kun la konto pri kiu raporto.
add_to_report: Aldoni pli al raporto
are_you_sure: Ĉu vi certas?
assign_to_self: Asigni al mi
@@ -513,91 +456,25 @@ eo:
unresolved: Nesolvitaj
updated_at: Ĝisdatigita
view_profile: Vidi profilon
+ roles:
+ everyone: Implicitaj permesoj
+ privileges:
+ delete_user_data: Forviŝi la datumojn de la uzanto
rules:
add_new: Aldoni regulon
delete: Forigi
edit: Redakti la regulon
title: Reguloj de la servilo
settings:
- activity_api_enabled:
- desc_html: Sumo de lokaj mesaĝoj, aktivaj uzantoj, kaj novaj registriĝoj laŭsemajne
- title: Publikigi kunmetitajn statistikojn pri la uzanta agado
- bootstrap_timeline_accounts:
- desc_html: Disigi plurajn uzantnomojn per komo. Funkcios nur por lokaj neŝlositaj kontoj. Kiam malplena, la dekomenca valoro estas ĉiuj lokaj administrantoj.
- title: Dekomencaj sekvadoj por novaj uzantoj
- contact_information:
- email: Publika retadreso
- username: Kontakta uzantnomo
- custom_css:
- desc_html: Ŝanĝi la aspekton per CSS ŝargita en ĉiu pago
- title: Propra CSS
domain_blocks:
all: Al ciuj
disabled: Al neniu
- title: Vidi domajna blokado
users: Al salutintaj lokaj uzantoj
- domain_blocks_rationale:
- title: Montri la kialon
- hero:
- desc_html: Montrata en la ĉefpaĝo. Almenaŭ 600x100px rekomendita. Kiam ne agordita, la bildeto de la servilo estos uzata
- title: Kapbildo
- mascot:
- desc_html: Montrata en pluraj paĝoj. Rekomendataj estas almenaŭ 293x205px. Se ĉi tio ne estas agordita, la defaŭlta maskoto uziĝas
- title: Maskota bildo
- peers_api_enabled:
- desc_html: Nomoj de domajnoj, kiujn ĉi tiu servilo renkontis en la federauniverso
- title: Publikigi liston de malkovritaj serviloj
- preview_sensitive_media:
- desc_html: Antaŭvido de ligiloj en aliaj retejoj montros bildeton eĉ se la aŭdovidaĵo estas markita kiel tikla
- title: Montri tiklajn aŭdovidaĵojn en la antaŭvidoj de OpenGraph
- profile_directory:
- desc_html: Permesi al uzantoj esti troveblaj
- title: Ebligi la profilujon
- registrations:
- closed_message:
- desc_html: Montrita sur la hejma paĝo kiam registriĝoj estas fermitaj. Vi povas uzi HTML-etikedojn
- title: Mesaĝo pri fermitaj registriĝoj
- deletion:
- desc_html: Permesi al iu ajn forigi propran konton
- title: Permesi forigi konton
- min_invite_role:
- disabled: Neniu
- title: Permesi invitojn de
registrations_mode:
modes:
approved: Bezonas aprobi por aliĝi
none: Neniu povas aliĝi
open: Iu povas aliĝi
- title: Registrado modo
- show_known_fediverse_at_about_page:
- desc_html: Kiam ŝaltita, ĝi montros mesaĝojn de la tuta konata fediverse antaŭvide. Aliokaze, ĝi montros nur lokajn mesaĝojn.
- title: Montri konatan fediverse en tempolinia antaŭvido
- show_staff_badge:
- desc_html: Montri teaman insignon en paĝo de uzanto
- title: Montri teaman insignon
- site_description:
- desc_html: Enkonduka alineo en la ĉefpaĝo. Priskribu la unikaĵojn de ĉi tiu nodo de Mastodon, kaj ĉiujn aliajn gravaĵojn. Vi povas uzi HTML-etikedojn, kiel <a>
kaj <em>
.
- title: Priskribo de la servilo
- site_description_extended:
- desc_html: Bona loko por viaj sintenaj reguloj, aliaj reguloj, gvidlinioj kaj aliaj aferoj, kiuj apartigas vian serilon. Vi povas uzi HTML-etikedojn
- title: Propraj detalaj informoj
- site_short_description:
- desc_html: Afiŝita en la flankpanelo kaj metadatumaj etikedoj. Priskribu kio estas Mastodon, kaj kio specialas en ĉi tiu nodo, per unu alineo. Se malplena, la priskribo de la servilo estos uzata.
- title: Mallonga priskribo de la servilo
- site_terms:
- desc_html: Vi povas skribi vian propran privatecan politikon, viajn uzkondiĉojn aŭ aliajn leĝaĵojn. Vi povas uzi HTML-etikedojn
- title: Propraj uzkondiĉoj
- site_title: Nomo de la servilo
- thumbnail:
- desc_html: Uzata por antaŭvidoj per OpenGraph kaj per API. 1200x630px rekomendita
- title: Bildeto de la servilo
- timeline_preview:
- desc_html: Montri publikan templinion en komenca paĝo
- title: Tempolinia antaŭvido
- title: Retejaj agordoj
- trends:
- desc_html: Publike montri antaŭe kontrolitajn kradvortojn, kiuj nune furoras
- title: Furoraj kradvortoj
site_uploads:
delete: Forigi elŝutitan dosieron
destroyed_msg: Reteja alŝuto sukcese forigita!
@@ -615,7 +492,8 @@ eo:
strikes:
actions:
delete_statuses: "%{name} forigis afiŝojn de %{target}"
- disable: "%{name} malebligis la konton de %{target}"
+ disable: "%{name} frostigis la konton de %{target}"
+ suspend: "%{name} suspendis la konton de %{target}"
appeal_approved: Apelaciita
system_checks:
database_schema_check:
@@ -640,6 +518,9 @@ eo:
allow_account: Permesi aŭtoron
disallow: Malpermesi afiŝon
disallow_account: Malpermesi aŭtoron
+ shared_by:
+ one: Kundividita kaj aldonita al preferaĵoj unufoje
+ other: Kundividita kaj aldonita al preferaĵoj %{friendly_count}-foje
title: Tendencantaj afiŝoj
tags:
dashboard:
@@ -650,13 +531,13 @@ eo:
title: Tendencoj
warning_presets:
add_new: Aldoni novan
- delete: Forigi
- edit_preset: Redakti avertan antaŭagordon
+ delete: Forviŝi
+ edit_preset: Redakti la antaŭagordojn de averto
title: Administri avertajn antaŭagordojn
admin_mailer:
new_appeal:
actions:
- disable: por malebligi ties konton
+ disable: por frostigi ties konton
new_pending_account:
body: La detaloj de la nova konto estas sube. Vi povas aprobi aŭ Malakcepti ĉi kandidatiĝo.
subject: Nova konto atendas por recenzo en %{instance} (%{username})
@@ -697,21 +578,18 @@ eo:
applications:
created: Aplikaĵo sukcese kreita
destroyed: Aplikaĵo sukcese forigita
- invalid_url: La URL donita ne estas valida
regenerate_token: Rekrei aliran ĵetonon
token_regenerated: Alira ĵetono sukcese rekreita
warning: Estu tre atenta kun ĉi tiu datumo. Neniam diskonigu ĝin al iu ajn!
your_token: Via alira ĵetono
auth:
- apply_for_account: Peti inviton
change_password: Pasvorto
- checkbox_agreement_html: Mi samopinii al la Servo reguloj kaj kondiĉo al servadon
- checkbox_agreement_without_rules_html: Mi konsenti la reguloj de servado
delete_account: Forigi konton
delete_account_html: Se vi deziras forigi vian konton, vi povas fari tion ĉi tie . Vi bezonos konfirmi vian peton.
description:
prefix_invited_by_user: "@%{name} invitigi vin aligiĝi ĉi tiu servilo de Mastodon!"
prefix_sign_up: Registriĝi ĉe Mastodon hodiaŭ!
+ suffix: Kun konto, vi povos sekvi aliajn homojn, skribi afiŝojn kaj interŝanĝi mesaĝojn kun la uzantoj de iu ajn Mastodon'a servilo kaj multe pli!
didnt_get_confirmation: Ĉu vi ne ricevis la instrukciojn por konfirmi?
dont_have_your_security_key: Ne havas vi vian sekurecan ŝlosilon?
forgot_password: Pasvorto forgesita?
@@ -729,7 +607,7 @@ eo:
register: Registriĝi
registration_closed: "%{instance} ne estas akcepti nova uzantojn"
resend_confirmation: Resendi la instrukciojn por konfirmi
- reset_password: Ŝanĝi pasvorton
+ reset_password: Restarigi pasvorton
security: Sekureco
set_new_password: Elekti novan pasvorton
setup:
@@ -737,7 +615,6 @@ eo:
status:
account_status: Statuso de la konto
too_fast: Formularo sendita tro rapide, klopodu denove.
- trouble_logging_in: Ĝeni ensaluti?
use_security_key: Uzi sekurecan ŝlosilon
authorize_follow:
already_following: Vi jam sekvas tiun konton
@@ -761,7 +638,7 @@ eo:
invalid_signature: 올바른 Ed25519 시그니처가 아닙니다
date:
formats:
- default: "%Y-%m-%d "
+ default: "%Y-%b-%d"
with_month_name: "%e-a de %B %Y"
datetime:
distance_in_words:
@@ -788,10 +665,6 @@ eo:
more_details_html: Por pli da detaloj, vidi la privatecan politikon .
username_available: Via uzantnomo iĝos denove disponebla
username_unavailable: Via uzantnomo restos nedisponebla
- directories:
- directory: Profilujo
- explanation: Malkovru uzantojn per iliaj interesoj
- explore_mastodon: Esplori %{title}
disputes:
strikes:
created_at: Datita
@@ -848,20 +721,25 @@ eo:
public: Publika templinio
thread: Konversacioj
edit:
+ add_keyword: Aldoni ĉefvorton
+ keywords: Ĉefvortoj
title: Ŝanĝi filtrilojn
errors:
invalid_context: Neniu aŭ nevalida kunteksto donita
- invalid_irreversible: Nemalfarebla filtrado funkcias nur por hejma aŭ sciiga kuntekstoj
index:
+ contexts: Filtriloj en %{contexts}
delete: Forigi
empty: Vi havas neniun filtrilon.
+ expires_in: Eksvalidiĝi en %{distance}
+ expires_on: Eksvalidiĝi je %{date}
+ keywords:
+ one: "%{count} ĉefvorto"
+ other: "%{count} ĉefvortoj"
title: Filtriloj
new:
+ save: Konservi novan filtrilon
title: Aldoni novan filtrilon
footer:
- developers: Programistoj
- more: Pli…
- resources: Rimedoj
trending_now: Nunaj furoraĵoj
generic:
all: Ĉio
@@ -892,7 +770,6 @@ eo:
following: Listo de sekvatoj
muting: Listo de silentigitoj
upload: Alŝuti
- in_memoriam_html: Memore
invites:
delete: Malaktivigi
expired: Eksvalida
@@ -910,7 +787,7 @@ eo:
one: 1 uzo
other: "%{count} uzoj"
max_uses_prompt: Neniu limo
- prompt: Krei kaj diskonigi ligilojn al aliaj por doni aliron al ĉi tiu servilo
+ prompt: Generi kaj kundividi ligilojn kun aliaj personoj por doni aliron al ĉi tiu servilo
table:
expires_at: Eksvalidiĝas je
uses: Uzoj
@@ -950,19 +827,8 @@ eo:
only_redirect_html: Alie, vi povas nur aldoni alidirekton en via profilo .
other_data: Neniu alia datumo estos movita aŭtomate
moderation:
- title: Kontrolado
+ title: Moderigado
notification_mailer:
- digest:
- action: Vidi ĉiujn sciigojn
- body: Jen eta resumo de la mesaĝoj, kiujn vi mistrafis ekde via lasta vizito en %{since}
- mention: "%{name} menciis vin en:"
- new_followers_summary:
- one: Ankaŭ, vi ekhavis novan sekvanton en via foresto! Jej!
- other: Ankaŭ, vi ekhavis %{count} novajn sekvantojn en via foresto! Mirinde!
- subject:
- one: "1 nova sciigo ekde via lasta vizito 🐘"
- other: "%{count} novaj sciigoj ekde via lasta vizito 🐘"
- title: En via foresto…
favourite:
body: "%{name} stelumis vian mesaĝon:"
subject: "%{name} stelumis vian mesaĝon"
@@ -982,9 +848,9 @@ eo:
subject: "%{name} menciis vin"
title: Nova mencio
reblog:
- body: "%{name} diskonigis vian mesaĝon:"
- subject: "%{name} diskonigis vian mesaĝon"
- title: Nova diskonigo
+ body: 'Via mesaĝo estas suprenigita de %{name}:'
+ subject: "%{name} suprenigis vian mesaĝon"
+ title: Nova suprenigo
status:
subject: "%{name} ĵus afiŝita"
update:
@@ -1012,9 +878,9 @@ eo:
wrong_code: La enmetita kodo estis nevalida! Ĉu la servila tempo kaj la aparata tempo ĝustas?
pagination:
newer: Pli nova
- next: Sekva
+ next: Antaŭen
older: Malpli nova
- prev: Antaŭa
+ prev: Malantaŭen
truncate: "…"
polls:
errors:
@@ -1029,7 +895,7 @@ eo:
too_many_options: ne povas enhavi pli da %{max} proponoj
preferences:
other: Aliaj aferoj
- posting_defaults: Afiŝadoj defaŭltoj
+ posting_defaults: Implicitaj agordoj de afiŝado
public_timelines: Publikaj templinioj
reactions:
errors:
@@ -1053,22 +919,9 @@ eo:
remove_selected_follows: Ne plu sekvi elektitajn uzantojn
status: Statuso de la konto
remote_follow:
- acct: Enmetu vian uzantnomo@domajno de kie vi volas agi
missing_resource: La bezonata URL de plusendado por via konto ne estis trovita
- no_account_html: Ĉu vi ne havas konton? Vi povas registriĝi tie
- proceed: Daŭrigi por eksekvi
- prompt: 'Vi eksekvos:'
- reason_html: "Kial necesas ĉi tiu paŝo? %{instance}
povus ne esti la servilo, kie vi registriĝis, do ni unue bezonas alidirekti vin al via hejma servilo."
- remote_interaction:
- favourite:
- proceed: Konfirmi la stelumon
- prompt: 'Vi volas stelumi ĉi tiun mesaĝon:'
- reblog:
- proceed: Konfirmi la diskonigon
- prompt: 'Vi volas diskonigi ĉi tiun mesaĝon:'
- reply:
- proceed: Konfirmi la respondon
- prompt: 'Vi volas respondi al ĉi tiu mesaĝo:'
+ rss:
+ content_warning: 'Averto pri enhavo:'
scheduled_statuses:
over_daily_limit: Vi transpasis la limigon al %{limit} samtage planitaj mesaĝoj
over_total_limit: Vi transpasis la limigon al %{limit} planitaj mesaĝoj
@@ -1107,7 +960,7 @@ eo:
ios: iOS
linux: Linux
mac: Mac
- other: nekonata platformo
+ other: nekonata substrato
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
@@ -1127,7 +980,7 @@ eo:
export: Eksporti datumojn
featured_tags: Elstarigitaj kradvortoj
import: Importi
- import_and_export: Alporto kaj elporto
+ import_and_export: Enporti kaj elporti
migrate: Konta migrado
notifications: Sciigoj
preferences: Preferoj
@@ -1147,8 +1000,9 @@ eo:
video:
one: "%{count} video"
other: "%{count} videoj"
- boosted_from_html: Diskonigita de %{acct_link}
- content_warning: 'Enhava averto: %{warning}'
+ boosted_from_html: Suprenigita de %{acct_link}
+ content_warning: 'Averto de la enhavo: %{warning}'
+ default_language: Same kiel lingvo de la fasado
disallowed_hashtags:
one: 'enhavas malpermesitan kradvorton: %{tags}'
other: 'enhavis malpermesitan kradvorton: %{tags}'
@@ -1157,7 +1011,7 @@ eo:
pin_errors:
limit: Vi jam atingis la maksimuman nombron de alpinglitaj mesaĝoj
ownership: Mesaĝo de iu alia ne povas esti alpinglita
- reblog: Diskonigo ne povas esti alpinglita
+ reblog: Suprenigo ne povas esti alpinglita
poll:
total_people:
one: "%{count} persono"
@@ -1166,10 +1020,10 @@ eo:
one: "%{count} voĉdono"
other: "%{count} voĉdonoj"
vote: Voĉdoni
- show_more: Malfoldi
+ show_more: Montri pli
show_newer: Montri pli novajn
show_older: Montri pli malnovajn
- show_thread: Montri la fadenon
+ show_thread: Montri la mesaĝaron
sign_in_to_participate: Ensaluti por partopreni en la konversacio
title: "%{name}: “%{quote}”"
visibilities:
@@ -1183,10 +1037,13 @@ eo:
statuses_cleanup:
enabled: Aŭtomate forigi malnovajn postojn
exceptions: Esceptoj
- ignore_favs: Ignori ŝatatajn
- ignore_reblogs: Ignori akcelojn
+ ignore_favs: Ignori la preferaĵojn
+ ignore_reblogs: Ignori la suprenigojn
keep_direct: Konservi rektajn mesaĝojn
keep_direct_hint: Ne forigos viajn rektajn mesagôjn
+ keep_media: Konservi la mesaĝojn kun aŭdovidaj aldonaĵoj
+ keep_media_hint: Ne forviŝi la mesaĝojn kiuj enhavas aŭdovidajn aldonaĵojn
+ keep_self_fav_hint: Ne forviŝi viajn proprajn afiŝojn, se vi aldonis ilin al viaj preferaĵoj
min_age:
'1209600': 2 semajnoj
'15778476': 6 monatoj
@@ -1198,25 +1055,23 @@ eo:
'7889238': 3 monatoj
stream_entries:
pinned: Alpinglita
- reblogged: diskonigita
+ reblogged: suprenigita
sensitive_content: Tikla enhavo
tags:
does_not_match_previous_name: ne kongruas kun la antaŭa nomo
- terms:
- title: Uzkondiĉoj kaj privateca politiko de %{instance}
themes:
contrast: Mastodon (Forta kontrasto)
default: Mastodon (Malluma)
mastodon-light: Mastodon (Luma)
time:
formats:
- default: "%Y-%m-%d %H:%M"
+ default: "%Y.%b.%d, %H:%M"
month: "%b %Y"
time: "%H:%M"
two_factor_authentication:
add: Aldoni
- disable: Malebligi
- disabled_success: Dufaktora aŭtentigo sukcese malebligita
+ disable: Malaktivigi 2FA-n
+ disabled_success: Du-faktora aŭtentigo sukcese malaktivigita
edit: Redakti
enabled: Dufaktora aŭtentigo ebligita
enabled_success: Dufaktora aŭtentigo sukcese ebligita
@@ -1240,28 +1095,19 @@ eo:
disable: Via konto %{acct} estas frostigita
none: Averto por %{acct}
silence: Via konto %{acct} estas limigita
- suspend: Via konto %{acct} estas haltigita
+ suspend: Via konto %{acct} estas suspendita
title:
disable: Konto frostigita
none: Averto
silence: Konto limigita
- suspend: Konto haltigita
+ suspend: Konto suspendita
welcome:
edit_profile_action: Agordi profilon
- edit_profile_step: Vi povas proprigi vian profilon per alŝuto de profilbildo, fonbildo, ŝanĝo de via afiŝita nomo kaj pli. Se vi ŝatus kontroli novajn sekvantojn antaŭ ol ili rajtas sekvi vin, vi povas ŝlosi vian konton.
explanation: Jen kelkaj konsiloj por helpi vin komenci
final_action: Ekmesaĝi
- final_step: 'Ekmesaĝu! Eĉ sen sekvantoj, viaj publikaj mesaĝoj povas esti vidataj de aliaj, ekzemple en la loka templinio kaj en la kradvortoj. Eble vi ŝatus prezenti vin per la kradvorto #introductions.'
full_handle: Via kompleta uzantnomo
full_handle_hint: Jen kion vi dirus al viaj amikoj, por ke ili mesaĝu aŭ sekvu vin de alia servilo.
- review_preferences_action: Ŝanĝi preferojn
- review_preferences_step: Estu certa ke vi agordis viajn preferojn, kiel kiujn retmesaĝojn vi ŝatus ricevi, aŭ kiun dekomencan privatecan nivelon vi ŝatus ke viaj mesaĝoj havu. Se tio ne ĝenas vin, vi povas ebligi aŭtomatan ekigon de GIF-oj.
subject: Bonvenon en Mastodon
- tip_federated_timeline: La fratara templinio estas antaŭvido de la reto de Mastodon. Sed ĝi enhavas nur homojn, kiuj estas sekvataj de aliaj homoj de via nodo, do ĝi ne estas kompleta.
- tip_following: Vi dekomence sekvas la administrantojn de via servilo. Por trovi pli da interesaj homoj, rigardu la lokan kaj frataran templiniojn.
- tip_local_timeline: La loka templinio estas antaŭvido de la homoj en %{instance}. Ĉi tiuj estas viaj apudaj najbaroj!
- tip_mobile_webapp: Se via telefona retumilo proponas al vi aldoni Mastodon al via hejma ekrano, vi povas ricevi puŝsciigojn. Tio multmaniere funkcias kiel operaciuma aplikaĵo!
- tips: Konsiloj
title: Bonvenon, %{name}!
users:
follow_limit_reached: Vi ne povas sekvi pli ol %{limit} homo(j)
diff --git a/config/locales/es-AR.yml b/config/locales/es-AR.yml
index aeba0b97d9..63a1258e6c 100644
--- a/config/locales/es-AR.yml
+++ b/config/locales/es-AR.yml
@@ -1,94 +1,27 @@
---
es-AR:
about:
- about_hashtag_html: Estos son mensajes públicos etiquetados con #%{hashtag} . Si tenés una cuenta en cualquier parte del fediverso, podés interactuar con ellos.
about_mastodon_html: 'La red social del futuro: ¡sin publicidad, sin vigilancia corporativa, con diseño ético y descentralización! ¡Con Mastodon vos sos el dueño de tus datos!'
- about_this: Acerca de Mastodon
- active_count_after: activo
- active_footnote: Usuarios activos mensualmente (MAU)
- administered_by: 'Administrado por:'
- api: API
- apps: Aplicaciones móviles
- apps_platforms: Usá Mastodon desde iOS, Android y otras plataformas
- browse_directory: Explorá el directorio de perfiles y filtrá por intereses
- browse_local_posts: Explorá un flujo en tiempo real de mensajes públicos en este servidor
- browse_public_posts: Explorá un flujo en tiempo real de mensajes públicos en Mastodon
- contact: Contacto
contact_missing: No establecido
contact_unavailable: No disponible
- continue_to_web: Continuar con la aplicación web
- discover_users: Descubrí usuarios
- documentation: Documentación
- federation_hint_html: Con una cuenta en %{instance} vas a poder seguir a cuentas de cualquier servidor de Mastodon y más allá.
- get_apps: Probá una aplicación móvil
hosted_on: Mastodon alojado en %{domain}
- instance_actor_flash: |
- Esta cuenta es un actor virtual usado para representar al propio servidor y no a ningún usuario individual.
- Se usa para fines federativos y no debe ser bloqueado a menos que quieras bloquear toda la instancia, en cuyo caso deberías usar un bloqueo de dominio.
- learn_more: Aprendé más
- logged_in_as_html: Actualmente iniciaste sesión como %{username}.
- logout_before_registering: Ya iniciaste sesión.
- privacy_policy: Política de privacidad
- rules: Reglas del servidor
- rules_html: 'Abajo hay un resumen de las reglas que tenés que seguir si querés tener una cuenta en este servidor de Mastodon:'
- see_whats_happening: Esto es lo que está pasando ahora
- server_stats: 'Estadísticas del servidor:'
- source_code: Código fuente
- status_count_after:
- one: mensaje
- other: mensajes
- status_count_before: Que enviaron
- tagline: Seguí a tus amigos y descubrí nueva gente
- terms: Términos del servicio
- unavailable_content: Servidores moderados
- unavailable_content_description:
- domain: Servidor
- reason: Motivo
- rejecting_media: 'Los archivos de medios de este servidor no van a ser procesados y no se mostrarán miniaturas, lo que requiere un clic manual hacia el archivo original:'
- rejecting_media_title: Medios filtrados
- silenced: 'Los mensajes de estos servidores se ocultarán en las líneas temporales y conversaciones públicas, y no se generarán notificaciones de las interacciones de sus usuarios, a menos que los estés siguiendo:'
- silenced_title: Servidores limitados
- suspended: 'No se procesarán, almacenarán o intercambiarán datos de estos servidores, haciendo imposible cualquier interacción o comunicación con los usuarios de estos servidores:'
- suspended_title: Servidores suspendidos
- unavailable_content_html: Mastodon generalmente te permite ver contenido e interactuar con usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se hicieron en este servidor en particular.
- user_count_after:
- one: usuario
- other: usuarios
- user_count_before: Hogar de
- what_is_mastodon: "¿Qué es Mastodon?"
+ title: Información
accounts:
- choices_html: 'Recomendados de %{name}:'
- endorsements_hint: Podés recomendar, desde la interface web, a cuentas que seguís, y van a aparecer acá.
- featured_tags_hint: Podés destacar etiquetas específicas que se mostrarán acá.
follow: Seguir
followers:
one: Seguidor
other: Seguidores
following: Siguiendo
instance_actor_flash: Esta cuenta es un actor virtual usado para representar al servidor en sí mismo y no a ningún usuario individual. Se usa para propósitos de la federación y no debe ser suspendido.
- joined: En este servidor desde %{date}
last_active: última actividad
link_verified_on: La propiedad de este enlace fue verificada el %{date}
- media: Medios
- moved_html: "%{name} se mudó a %{new_profile_link}:"
- network_hidden: Esta información no está disponible
nothing_here: "¡No hay nada acá!"
- people_followed_by: "%{name} sigue a estas personas"
- people_who_follow: Estas personas siguen a %{name}
pin_errors:
following: Ya tenés que estar siguiendo a la cuenta que querés recomendar
posts:
one: Mensaje
other: Mensajes
posts_tab_heading: Mensajes
- posts_with_replies: Mensajes y respuestas
- roles:
- admin: Administrador
- bot: Bot
- group: Grupo
- moderator: Moderador
- unavailable: Perfil no disponible
- unfollow: Dejar de seguir
admin:
account_actions:
action: Ejecutar acción
@@ -105,12 +38,17 @@ es-AR:
avatar: Avatar
by_domain: Dominio
change_email:
- changed_msg: "¡Correo electrónico de cuenta cambiado exitosamente!"
+ changed_msg: "¡Correo electrónico cambiado exitosamente!"
current_email: Correo electrónico actual
label: Cambiar correo electrónico
new_email: Nuevo correo electrónico
submit: Cambiar correo electrónico
title: Cambiar correo electrónico para %{username}
+ change_role:
+ changed_msg: "¡Rol cambiado exitosamente!"
+ label: Cambiar rol
+ no_role: Sin rol
+ title: Cambiar rol para %{username}
confirm: Confirmar
confirmed: Confirmado
confirming: Confirmación
@@ -154,6 +92,7 @@ es-AR:
active: Activas
all: Todas
pending: Pendientes
+ silenced: Limitada
suspended: Suspendidas
title: Moderación
moderation_notes: Notas de moderación
@@ -161,6 +100,7 @@ es-AR:
most_recent_ip: Dirección IP más reciente
no_account_selected: No se cambió ninguna cuenta ya que ninguna fue seleccionada
no_limits_imposed: Sin límites impuestos
+ no_role_assigned: Sin rol asignado
not_subscribed: No suscripto
pending: Revisión pendiente
perform_full_suspension: Suspender
@@ -187,12 +127,7 @@ es-AR:
reset: Restablecer
reset_password: Cambiar contraseña
resubscribe: Resuscribir
- role: Permisos
- roles:
- admin: Administrador
- moderator: Moderador
- staff: Administración
- user: Usuario
+ role: Rol
search: Buscar
search_same_email_domain: Otros usuarios con el mismo dominio de correo electrónico
search_same_ip: Otros usuarios con la misma dirección IP
@@ -235,17 +170,21 @@ es-AR:
approve_user: Aprobar usuario
assigned_to_self_report: Asignar denuncia
change_email_user: Cambiar correo electrónico del usuario
+ change_role_user: Cambiar rol del usuario
confirm_user: Confirmar usuario
create_account_warning: Crear advertencia
create_announcement: Crear anuncio
+ create_canonical_email_block: Crear bloqueo de correo electrónico
create_custom_emoji: Crear emoji personalizado
create_domain_allow: Crear permiso de dominio
create_domain_block: Crear bloqueo de dominio
create_email_domain_block: Crear bloqueo de dominio de correo electrónico
create_ip_block: Crear regla de dirección IP
create_unavailable_domain: Crear dominio no disponible
+ create_user_role: Crear rol
demote_user: Descender usuario
destroy_announcement: Eliminar anuncio
+ destroy_canonical_email_block: Eliminar bloqueo de correo electrónico
destroy_custom_emoji: Eliminar emoji personalizado
destroy_domain_allow: Eliminar permiso de dominio
destroy_domain_block: Eliminar bloqueo de dominio
@@ -254,6 +193,7 @@ es-AR:
destroy_ip_block: Eliminar regla de dirección IP
destroy_status: Eliminar mensaje
destroy_unavailable_domain: Eliminar dominio no disponible
+ destroy_user_role: Destruir rol
disable_2fa_user: Deshabilitar 2FA
disable_custom_emoji: Deshabilitar emoji personalizado
disable_sign_in_token_auth_user: Deshabilitar autenticación de token por correo electrónico para el usuario
@@ -280,24 +220,30 @@ es-AR:
update_announcement: Actualizar anuncio
update_custom_emoji: Actualizar emoji personalizado
update_domain_block: Actualizar bloque de dominio
+ update_ip_block: Actualizar regla de dirección IP
update_status: Actualizar mensaje
+ update_user_role: Actualizar rol
actions:
approve_appeal_html: "%{name} aprobó la solicitud de moderación de %{target}"
approve_user_html: "%{name} aprobó el registro de %{target}"
assigned_to_self_report_html: "%{name} se asignó la denuncia %{target} a sí"
change_email_user_html: "%{name} cambió la dirección de correo electrónico del usuario %{target}"
+ change_role_user_html: "%{name} cambió el rol de %{target}"
confirm_user_html: "%{name} confirmó la dirección de correo del usuario %{target}"
create_account_warning_html: "%{name} envió una advertencia a %{target}"
create_announcement_html: "%{name} creó el nuevo anuncio %{target}"
+ create_canonical_email_block_html: "%{name} bloqueó el correo electrónico con el hash %{target}"
create_custom_emoji_html: "%{name} subió nuevo emoji %{target}"
create_domain_allow_html: "%{name} permitió la federación con el dominio %{target}"
create_domain_block_html: "%{name} bloqueó el dominio %{target}"
create_email_domain_block_html: "%{name} bloqueó el dominio de correo electrónico %{target}"
create_ip_block_html: "%{name} creó la regla para la dirección IP %{target}"
create_unavailable_domain_html: "%{name} detuvo la entrega al dominio %{target}"
+ create_user_role_html: "%{name} creó el rol %{target}"
demote_user_html: "%{name} bajó de nivel al usuario %{target}"
destroy_announcement_html: "%{name} eliminó el anuncio %{target}"
- destroy_custom_emoji_html: "%{name} destruyó el emoji %{target}"
+ destroy_canonical_email_block_html: "%{name} desbloqueó el correo electrónico con el hash %{target}"
+ destroy_custom_emoji_html: "%{name} eliminó el emoji %{target}"
destroy_domain_allow_html: "%{name} no permitió la federación con el dominio %{target}"
destroy_domain_block_html: "%{name} desbloqueó el dominio %{target}"
destroy_email_domain_block_html: "%{name} desbloqueó el dominio de correo electrónico %{target}"
@@ -305,6 +251,7 @@ es-AR:
destroy_ip_block_html: "%{name} eliminó la regla para la dirección IP %{target}"
destroy_status_html: "%{name} eliminó el mensaje de %{target}"
destroy_unavailable_domain_html: "%{name} reanudó la entrega al dominio %{target}"
+ destroy_user_role_html: "%{name} eliminó el rol %{target}"
disable_2fa_user_html: "%{name} deshabilitó el requerimiento de dos factores para el usuario %{target}"
disable_custom_emoji_html: "%{name} deshabilitó el emoji %{target}"
disable_sign_in_token_auth_user_html: "%{name} deshabilitó la autenticación de token por correo electrónico para %{target}"
@@ -331,8 +278,9 @@ es-AR:
update_announcement_html: "%{name} actualizó el anuncio %{target}"
update_custom_emoji_html: "%{name} actualizó el emoji %{target}"
update_domain_block_html: "%{name} actualizó el bloqueo de dominio para %{target}"
+ update_ip_block_html: "%{name} cambió la regla para la dirección IP %{target}"
update_status_html: "%{name} actualizó el mensaje de %{target}"
- deleted_status: "[mensaje eliminado]"
+ update_user_role_html: "%{name} cambió el rol %{target}"
empty: No se encontraron registros.
filter_by_action: Filtrar por acción
filter_by_user: Filtrar por usuario
@@ -376,6 +324,7 @@ es-AR:
listed: Listados
new:
title: Agregar nuevo emoji personalizado
+ no_emoji_selected: No se cambió ningún emoji, ya que ninguno fue seleccionado
not_permitted: No tenés permiso para realizar esta acción
overwrite: Sobreescribir
shortcode: Código corto
@@ -476,7 +425,7 @@ es-AR:
status: Estado
suppress: Eliminar recomendación de cuentas para seguir
suppressed: Eliminado
- title: Recomendaciones de cuentas para seguir
+ title: Recom. de cuentas a seguir
unsuppress: Restablecer recomendaciones de cuentas para seguir
instances:
availability:
@@ -649,6 +598,67 @@ es-AR:
unresolved: No resueltas
updated_at: Actualizadas
view_profile: Ver perfil
+ roles:
+ add_new: Agregar rol
+ assigned_users:
+ one: "%{count} usuario"
+ other: "%{count} usuarios"
+ categories:
+ administration: Administración
+ devops: Operadores de desarrollo
+ invites: Invitaciones
+ moderation: Moderación
+ special: Especial
+ delete: Eliminar
+ description_html: Con roles de usuario , podés personalizar las funciones y áreas de Mastodon a las que pueden acceder tus usuarios.
+ edit: Editar rol de «%{name}»
+ everyone: Permisos predeterminados
+ everyone_full_description_html: Este es el rol base que afecta a todos los usuarios , incluso aquellos sin un rol asignado. Todos los otros roles heredan permisos de él.
+ permissions_count:
+ one: "%{count} permiso"
+ other: "%{count} permisos"
+ privileges:
+ administrator: Administrador
+ administrator_description: Los usuarios con este permiso saltarán todos los permisos
+ delete_user_data: Eliminar datos del usuario
+ delete_user_data_description: Permite a los usuarios eliminar los datos de otros usuarios sin demora
+ invite_users: Invitar usuarios
+ invite_users_description: Permite a los usuarios invitar a nuevas personas al servidor
+ manage_announcements: Administrar anuncios
+ manage_announcements_description: Permite a los usuarios administrar anuncios en el servidor
+ manage_appeals: Administrar apelaciones
+ manage_appeals_description: Permite a los usuarios revisar apelaciones contra acciones de moderación
+ manage_blocks: Administrar bloqueos
+ manage_blocks_description: Permite a los usuarios bloquear proveedores de correo electrónico y direcciones IP
+ manage_custom_emojis: Administrar emojis personalizados
+ manage_custom_emojis_description: Permite a los usuarios administrar emojis personalizados en el servidor
+ manage_federation: Administrar Federación
+ manage_federation_description: Permite a los usuarios bloquear o permitir la federación con otros dominios y controlar las entregas
+ manage_invites: Administrar invitaciones
+ manage_invites_description: Permite a los usuarios navegar y desactivar los enlaces de invitación
+ manage_reports: Administrar denuncias
+ manage_reports_description: Permite a los usuarios revisar denuncias y realizar acciones de moderación contra ellas
+ manage_roles: Administrar roles
+ manage_roles_description: Permite a los usuarios administrar y asignar roles por debajo de los suyos
+ manage_rules: Administrar reglas
+ manage_rules_description: Permite a los usuarios cambiar las reglas del servidor
+ manage_settings: Administrar configuración
+ manage_settings_description: Permite a los usuarios cambiar la configuración del sitio
+ manage_taxonomies: Administrar taxonomías
+ manage_taxonomies_description: Permite a los usuarios revisar el contenido de tendencia y actualizar la configuración de las etiquetas
+ manage_user_access: Administrar acceso de usuario
+ manage_user_access_description: Permite a los usuarios deshabilitar la autenticación de dos factores de otros usuarios, cambiar su dirección de correo electrónico y restablecer su contraseña
+ manage_users: Administrar usuarios
+ manage_users_description: Permite a los usuarios ver los detalles de otros usuarios y realizar acciones de moderación contra ellos
+ manage_webhooks: Administrar Webhooks
+ manage_webhooks_description: Permite a los usuarios configurar webhooks para eventos administrativos
+ view_audit_log: Ver auditoría
+ view_audit_log_description: Permite a los usuarios ver un historial de acciones administrativas en el servidor
+ view_dashboard: Ver panel
+ view_dashboard_description: Permite a los usuarios acceder al panel de control y varias métricas
+ view_devops: Operadores de desarrollo
+ view_devops_description: Permite a los usuarios acceder a los paneles de Sidekiq y pgHero
+ title: Roles
rules:
add_new: Agregar regla
delete: Eliminar
@@ -657,108 +667,67 @@ es-AR:
empty: Aún no se han definido las reglas del servidor.
title: Reglas del servidor
settings:
- activity_api_enabled:
- desc_html: Conteos de mensajes publicados localmente, usuarios activos y nuevos registros en tandas semanales
- title: Publicar estadísticas agregadas sobre la actividad del usuario en la API
- bootstrap_timeline_accounts:
- desc_html: Separar múltiples nombres de usuario con coma. Sólo funcionarán las cuentas locales y desbloqueadas. Predeterminadamente, cuando está vacío se trata de todos los administradores locales.
- title: Recomendar estas cuentas a usuarios nuevos
- contact_information:
- email: Correo electrónico de negocios
- username: Nombre de usuario de contacto
- custom_css:
- desc_html: Modificá la apariencia con CSS cargado en cada página
- title: CSS personalizado
- default_noindex:
- desc_html: Afecta a todos los usuarios que no cambiaron esta configuración por sí mismos
- title: Quitar predeterminadamente a los usuarios de la indexación de los motores de búsqueda
+ about:
+ manage_rules: Administrar reglas del servidor
+ preamble: Proveé información en profundidad sobre cómo el servidor es operado, moderado y financiado.
+ rules_hint: Hay un área dedicada para las reglas a las que se espera que tus usuarios se adhieran.
+ title: Información
+ appearance:
+ preamble: Personalizá la interface web de Mastodon.
+ title: Apariencia
+ branding:
+ preamble: La marca de tu servidor lo diferencia de otros servidores de la red. Esta información puede mostrarse a través de una variedad de entornos, como en la interface web de Mastodon, en aplicaciones nativas, en previsualizaciones de enlaces en otros sitios web y en aplicaciones de mensajería, etc. Por esta razón, es mejor mantener esta información clara, breve y concisa.
+ title: Marca
+ content_retention:
+ preamble: Controlá cómo el contenido generado por el usuario se almacena en Mastodon.
+ title: Retención de contenido
+ discovery:
+ follow_recommendations: Recom. de cuentas a seguir
+ preamble: Exponer contenido interesante a la superficie es fundamental para incorporar nuevos usuarios que pueden no conocer a nadie Mastodon. Controlá cómo funcionan varias opciones de descubrimiento en tu servidor.
+ profile_directory: Directorio de perfiles
+ public_timelines: Líneas temporales públicas
+ title: Descubrí
+ trends: Tendencias
domain_blocks:
all: A todos
disabled: A nadie
- title: Mostrar dominios bloqueados
users: A usuarios locales con sesiones abiertas
- domain_blocks_rationale:
- title: Mostrar razonamiento
- hero:
- desc_html: Mostrado en la página principal. Se recomienda un tamaño mínimo de 600x100 píxeles. Predeterminadamente se establece a la miniatura del servidor
- title: Imagen de portada
- mascot:
- desc_html: Mostrado en múltiples páginas. Se recomienda un tamaño mínimo de 293x205 píxeles. Cuando no se especifica, se muestra la mascota predeterminada
- title: Imagen de la mascota
- peers_api_enabled:
- desc_html: Nombres de dominio que este servidor encontró en el fediverso
- title: Publicar lista de servidores descubiertos en la API
- preview_sensitive_media:
- desc_html: Las previsualizaciones de enlaces en otros sitios web mostrarán una miniatura incluso si el medio está marcado como contenido sensible
- title: Mostrar medios sensibles en previsualizaciones de OpenGraph
- profile_directory:
- desc_html: Permitir que los usuarios puedan ser descubiertos
- title: Habilitar directorio de perfiles
registrations:
- closed_message:
- desc_html: Mostrado en la página principal cuando los registros de nuevas cuentas están cerrados. Podés usar etiquetas HTML
- title: Mensaje de registro de nuevas cuentas cerrado
- deletion:
- desc_html: Permitir que cualquiera elimine su cuenta
- title: Abrir eliminación de cuenta
- min_invite_role:
- disabled: Nadie
- title: Permitir invitaciones de
- require_invite_text:
- desc_html: Cuando los registros requieran aprobación manual, hacé que la solicitud de invitación "¿Por qué querés unirte?" sea obligatoria, en vez de opcional
- title: Requerir que los nuevos usuarios llenen un texto de solicitud de invitación
+ preamble: Controlá quién puede crear una cuenta en tu servidor.
+ title: Registros
registrations_mode:
modes:
approved: Se requiere aprobación para registrarse
none: Nadie puede registrarse
open: Cualquiera puede registrarse
- title: Modo de registros
- show_known_fediverse_at_about_page:
- desc_html: Cuando está deshabilitado, restringe la línea temporal pública enlazada desde la página de inicio para mostrar sólo contenido local
- title: Incluir contenido federado en la página de línea temporal pública no autenticada
- show_staff_badge:
- desc_html: Mostrar una insignia de administración en la página de un usuario
- title: Mostrar insignia de administración
- site_description:
- desc_html: Párrafo introductorio en la API. Describe qué hace especial a este servidor de Mastodon y todo lo demás que sea importante. Podés usar etiquetas HTML, en particular <a>
y <em>
.
- title: Descripción del servidor
- site_description_extended:
- desc_html: Un buen lugar para tu código de conducta, reglas, directrices y otras cosas que definen tu servidor. Podés usar etiquets HTML
- title: Información extendida personalizada
- site_short_description:
- desc_html: Mostrado en la barra lateral y las etiquetas de metadatos. Describe qué es Mastodon y qué hace especial a este servidor en un solo párrafo.
- title: Descripción corta del servidor
- site_terms:
- desc_html: Podés escribir tus propias políticas de privacidad, términos del servicio u otras cuestiones legales. Podés usar etiquetas HTML
- title: Términos del servicio personalizados
- site_title: Nombre del servidor
- thumbnail:
- desc_html: Usado para previsualizaciones vía OpenGraph y APIs. Se recomienda 1200x630 píxeles
- title: Miniatura del servidor
- timeline_preview:
- desc_html: Mostrar enlace a la línea temporal pública en la página de inicio y permitir el acceso a la API a la línea temporal pública sin autenticación
- title: Permitir acceso no autorizado a la línea temporal pública
- title: Configuración del sitio
- trendable_by_default:
- desc_html: Afecta a etiquetas que no fueron rechazadas previamente
- title: Permitir que las etiquetas sean tendencia sin revisión previa
- trends:
- desc_html: Mostrar públicamente etiquetas previamente revisadas que son tendencia actualmente
- title: Tendencias
+ title: Configuraciones del servidor
site_uploads:
delete: Eliminar archivo subido
destroyed_msg: "¡Subida al sitio eliminada exitosamente!"
statuses:
+ account: Autor
+ application: Aplicación
back_to_account: Volver a la página de la cuenta
back_to_report: Volver a la página de la denuncia
batch:
remove_from_report: Quitar de la denuncia
report: Denunciar
deleted: Eliminado
+ favourites: Favoritos
+ history: Historial de versiones
+ in_reply_to: Respondiendo a
+ language: Idioma
media:
title: Medios
+ metadata: Metadatos
no_status_selected: No se cambió ningún mensaje, ya que ninguno fue seleccionado
+ open: Abrir mensaje
+ original_status: Mensaje original
+ reblogs: Adhesiones
+ status_changed: Mensaje cambiado
title: Mensajes de la cuenta
+ trending: En tendencia
+ visibility: Visibilidad
with_media: Con medios
strikes:
actions:
@@ -798,6 +767,9 @@ es-AR:
description_html: Estos son enlaces que actualmente están siendo muy compartidos por cuentas desde las que tu servidor ve los mensajes. Esto puede ayudar a tus usuarios a averiguar qué está pasando en el mundo. No hay enlaces que se muestren públicamente hasta que autoricés al publicador. También podés permitir o rechazar enlaces individuales.
disallow: Rechazar enlace
disallow_provider: Rechazar medio
+ no_link_selected: No se cambió ningún enlace, ya que ninguno fue seleccionado
+ publishers:
+ no_publisher_selected: No se cambió ningún medio, ya que ninguno fue seleccionado
shared_by_over_week:
one: Compartido por una persona durante la última semana
other: Compartido por %{count} personas durante la última semana
@@ -817,6 +789,7 @@ es-AR:
description_html: Estos son mensajes que tu servidor detecta que están siendo compartidos y marcados como favoritos muchas veces en este momento. Esto puede ayudar a tus usuarios nuevos y retornantes a encontrar más cuentas para seguir. No hay mensajes que se muestren públicamente hasta que aprobés al autor, y el autor permita que su cuenta sea sugerida a otros. También podés permitir o rechazar mensajes individuales.
disallow: Rechazar mensaje
disallow_account: Rechazar autor
+ no_status_selected: No se cambió ningún mensaje en tendencia, ya que ninguno fue seleccionado
not_discoverable: El autor optó ser detectable
shared_by:
one: Compartido o marcado como favorito una vez
@@ -832,6 +805,7 @@ es-AR:
tag_uses_measure: usos totales
description_html: Estas son etiquetas que están apareciendo en muchos mensajes que tu servidor ve. Esto puede ayudar a tus usuarios a averiguar de qué habla la gente en estos momentos. No hay etiquetas que se muestren públicamente hasta que las aprobés.
listable: Pueden ser recomendadas
+ no_tag_selected: No se cambió ninguna etiqueta, ya que ninguna fue seleccionada
not_listable: No serán recomendadas
not_trendable: No aparecerán en tendencias
not_usable: No podrán ser usadas
@@ -852,6 +826,26 @@ es-AR:
edit_preset: Editar preajuste de advertencia
empty: Aún no ha definido ningún preajuste de advertencia.
title: Administrar preajustes de advertencia
+ webhooks:
+ add_new: Agregar punto final
+ delete: Eliminar
+ description_html: Un webhook habilita a Mastodon a enviar notificaciones en tiempo real sobre los eventos elegidos a tu propia aplicación, así la misma puede activar automáticamente las reacciones .
+ disable: Deshabilitar
+ disabled: Deshabilitada
+ edit: Editar punto final
+ empty: Todavía no tenés configurado ningún punto final de webhook.
+ enable: Habilitar
+ enabled: Activar
+ enabled_events:
+ one: 1 evento habilitado
+ other: "%{count} eventos habilitados"
+ events: Eventos
+ new: Nuevo webhook
+ rotate_secret: Rotar secreto
+ secret: Firma secreta
+ status: Estado
+ title: Webhooks
+ webhook: Webhook
admin_mailer:
new_appeal:
actions:
@@ -875,12 +869,8 @@ es-AR:
new_trends:
body: 'Los siguientes elementos necesitan una revisión antes de que se puedan mostrar públicamente:'
new_trending_links:
- no_approved_links: Actualmente no hay enlaces en tendencia aprobados.
- requirements: 'Cualquiera de estos candidatos podría superar el enlace de tendencia aprobado de #%{rank}, que actualmente es "%{lowest_link_title}" con una puntuación de %{lowest_link_score}.'
title: Enlaces en tendencia
new_trending_statuses:
- no_approved_statuses: Actualmente no hay mensajes en tendencia aprobados.
- requirements: 'Cualquiera de estos candidatos podría superar el mensaje de tendencia aprobado de #%{rank}, que actualmente es %{lowest_status_url} con una puntuación de %{lowest_status_score}.'
title: Mensajes en tendencia
new_trending_tags:
no_approved_tags: Actualmente no hay etiquetas en tendencia aprobadas.
@@ -916,16 +906,13 @@ es-AR:
applications:
created: Aplicación creada exitosamente
destroyed: Aplicación eliminada exitosamente
- invalid_url: La dirección web ofrecida no es válida
regenerate_token: Regenerar clave de acceso
token_regenerated: Clave de acceso regenerada exitosamente
warning: Ojo con estos datos. ¡Nunca los compartas con nadie!
your_token: Tu clave de acceso
auth:
- apply_for_account: Solicitar una invitación
+ apply_for_account: Entrar en la lista de espera
change_password: Contraseña
- checkbox_agreement_html: Acepto las reglas del servidor y los términos del servicio
- checkbox_agreement_without_rules_html: Acepto los términos del servicio
delete_account: Eliminar cuenta
delete_account_html: Si querés eliminar tu cuenta, podés seguir por acá . Se te va a pedir una confirmación.
description:
@@ -944,6 +931,7 @@ es-AR:
migrate_account: Mudarse a otra cuenta
migrate_account_html: Si querés redireccionar esta cuenta a otra distinta, podés configurar eso acá .
or_log_in_with: O iniciar sesión con
+ privacy_policy_agreement_html: Leí y acepto la política de privacidad
providers:
cas: CAS
saml: SAML
@@ -951,12 +939,18 @@ es-AR:
registration_closed: "%{instance} no está aceptando nuevos miembros"
resend_confirmation: Reenviar correo electrónico de confirmación
reset_password: Cambiar contraseña
+ rules:
+ preamble: Estas reglas son establecidas y aplicadas por los moderadores de %{domain}.
+ title: Algunas reglas básicas.
security: Seguridad
set_new_password: Establecer nueva contraseña
setup:
email_below_hint_html: Si la dirección de correo electrónico que aparece a continuación es incorrecta, podés cambiarla acá y recibir un nuevo correo electrónico de confirmación.
email_settings_hint_html: Se envió el correo electrónico de confirmación a %{email}. Si esa dirección de correo electrónico no es correcta, podés cambiarla en la configuración de la cuenta.
title: Configuración
+ sign_up:
+ preamble: Con una cuenta en este servidor de Mastodon, podrás seguir a cualquier otra cuenta en la red, independientemente de en qué servidor esté alojada su cuenta.
+ title: Dejá que te preparemos en %{domain}.
status:
account_status: Estado de la cuenta
confirming: Esperando confirmación de correo electrónico.
@@ -965,7 +959,6 @@ es-AR:
redirecting_to: Tu cuenta se encuentra inactiva porque está siendo redirigida a %{acct}.
view_strikes: Ver incumplimientos pasados contra tu cuenta
too_fast: Formulario enviado demasiado rápido, probá de nuevo.
- trouble_logging_in: "¿Tenés problemas para iniciar sesión?"
use_security_key: Usar la llave de seguridad
authorize_follow:
already_following: Ya estás siguiendo a esta cuenta
@@ -1023,10 +1016,6 @@ es-AR:
more_details_html: Para más detalles, leé la política de privacidad .
username_available: Tu nombre de usuario volverá a estar disponible
username_unavailable: Tu nombre de usuario no estará disponible
- directories:
- directory: Directorio de perfiles
- explanation: Descubrí usuarios basados en sus intereses
- explore_mastodon: Navegá %{title}
disputes:
strikes:
action_taken: Acción tomada
@@ -1105,29 +1094,60 @@ es-AR:
public: Líneas temporales públicas
thread: Conversaciones
edit:
+ add_keyword: Agregar palabra clave
+ keywords: Palabras clave
+ statuses: Mensajes individuales
+ statuses_hint_html: Este filtro se aplica a la selección de mensajes individuales, independientemente de si coinciden con las palabras clave a continuación. Revisar o quitar mensajes del filtro .
title: Editar filtro
errors:
+ deprecated_api_multiple_keywords: Estos parámetros no se pueden cambiar de esta aplicación porque se aplican a más de una palabra clave de filtro. Usá una aplicación más reciente o la interface web.
invalid_context: Se suministró un contexto no válido o vacío
- invalid_irreversible: El filtrado irreversible sólo funciona con los contextos de "Principal" o de "Notificaciones"
index:
+ contexts: Filtros en %{contexts}
delete: Eliminar
empty: No tenés filtros.
+ expires_in: Caduca en %{distance}
+ expires_on: Caduca en %{date}
+ keywords:
+ one: "%{count} palabra clave"
+ other: "%{count} palabras clave"
+ statuses:
+ one: "%{count} mensaje"
+ other: "%{count} mensajes"
+ statuses_long:
+ one: "%{count} mensaje individual oculto"
+ other: "%{count} mensajes individuales ocultos"
title: Filtros
new:
+ save: Guardar nuevo filtro
title: Agregar nuevo filtro
+ statuses:
+ back_to_filter: Volver al filtro
+ batch:
+ remove: Quitar del filtro
+ index:
+ hint: Este filtro se aplica a la selección de mensajes individuales, independientemente de otros criterios. Podés agregar más mensajes a este filtro desde la interface web.
+ title: Mensajes filtrados
footer:
- developers: Desarrolladores
- more: Más…
- resources: Recursos
trending_now: Tendencia ahora
generic:
all: Todas
+ all_items_on_page_selected_html:
+ one: "%{count} elemento en esta página está seleccionado."
+ other: Todos los %{count} elementos en esta página están seleccionados.
+ all_matching_items_selected_html:
+ one: "%{count} elemento que coincide con tu búsqueda está seleccionado."
+ other: Todos los %{count} elementos que coinciden con tu búsqueda están seleccionados.
changes_saved_msg: "¡Cambios guardados exitosamente!"
copy: Copiar
delete: Eliminar
+ deselect: Deseleccionar todo
none: "[Ninguna]"
order_by: Ordenar por
save_changes: Guardar cambios
+ select_all_matching_items:
+ one: Seleccionar %{count} elemento que coincide con tu búsqueda.
+ other: Seleccionar todos los %{count} elementos que coinciden con tu búsqueda.
today: hoy
validation_errors:
one: "¡Falta algo! Por favor, revisá el error abajo"
@@ -1151,7 +1171,6 @@ es-AR:
following: Lista de seguidos
muting: Lista de silenciados
upload: Subir
- in_memoriam_html: Cuenta conmemorativa.
invites:
delete: Desactivar
expired: Vencidas
@@ -1232,19 +1251,10 @@ es-AR:
copy_account_note_text: 'Este usuario se mudó desde %{acct}, acá están tus notas previas sobre él/ella:'
notification_mailer:
admin:
+ report:
+ subject: "%{name} envió una denuncia"
sign_up:
subject: Se registró %{name}
- digest:
- action: Ver todas las notificaciones
- body: Acá tenés un resumen de los mensajes que te perdiste desde tu última visita, el %{since}
- mention: "%{name} te mencionó en:"
- new_followers_summary:
- one: Además, ¡ganaste un nuevo seguidor mientras estabas ausente! ¡Esa!
- other: Además, ¡ganaste %{count} nuevos seguidores mientras estabas ausente! ¡Esssa!
- subject:
- one: "1 nueva notificación desde tu última visita 🐘"
- other: "%{count} nuevas notificaciones desde tu última visita 🐘"
- title: En tu ausencia...
favourite:
body: 'Tu mensaje fue marcado como favorito por %{name}:'
subject: "%{name} marcó tu mensaje como favorito"
@@ -1316,6 +1326,8 @@ es-AR:
other: Otras opciones
posting_defaults: Configuración predeterminada de mensajes
public_timelines: Líneas temporales públicas
+ privacy_policy:
+ title: Política de privacidad
reactions:
errors:
limit_reached: Se alcanzó el límite de reacciones diferentes
@@ -1338,22 +1350,7 @@ es-AR:
remove_selected_follows: Dejar de seguir a los usuarios seleccionados
status: Estado de la cuenta
remote_follow:
- acct: Ingresá tu usuario@dominio desde el que querés continuar
missing_resource: No se pudo encontrar la dirección web de redireccionamiento requerida para tu cuenta
- no_account_html: "¿No tenés cuenta? Podés registrarte acá "
- proceed: Proceder para seguir
- prompt: 'Vas a seguir a:'
- reason_html: "¿Por qué es necesario este paso? %{instance}
puede que no sea el servidor donde estás registrado, así que necesitamos redirigirte primero a tu servidor de origen."
- remote_interaction:
- favourite:
- proceed: Proceder para marcar como favorito
- prompt: 'Vas a marcar este mensaje como favorito:'
- reblog:
- proceed: Proceder para adherir
- prompt: 'Vas a adherir a este mensaje:'
- reply:
- proceed: Proceder para responder
- prompt: 'Vas a responder a este mensaje:'
reports:
errors:
invalid_rules: no hace referencia a reglas válidas
@@ -1427,9 +1424,9 @@ es-AR:
preferences: Configuración
profile: Perfil
relationships: Seguimientos
- statuses_cleanup: Eliminación automática de mensajes
+ statuses_cleanup: Eliminación auto. de mensajes
strikes: Moderación de incumplimientos
- two_factor_authentication: Autenticación de dos factores
+ two_factor_authentication: Aut. de dos factores
webauthn_authentication: Llaves de seguridad
statuses:
attached:
@@ -1525,89 +1522,6 @@ es-AR:
too_late: Es demasiado tarde para apelar este incumplimiento
tags:
does_not_match_previous_name: no coincide con el nombre anterior
- terms:
- body_html: |
- Política de privacidad
- ¿Qué información recolectamos?
-
-
- Información básica de la cuenta : Si te registrás en este servidor, se te va a pedir que ingresés un nombre de usuario, una dirección de correo electrónico y una contraseña. También podés ingresar información adicional de perfil, como un nombre a mostrar y una biografía/descripción sobre vos mismo, así como subir una imagen de avatar y una imagen de cabecera. El nombre de usuario, el nombre a mostrar, la biografía y las imágenes de avatar y cabecera siempre se muestran públicamente.
- Mensajes, seguimientos y otra información pública : La lista de gente que seguís se muestra públicamente; lo mismo ocurre con tus seguidores. Cuando enviás un mensaje, la fecha y la hora de ese mensajes queda registrada, así como el nombre del programa o la aplicación que usaste para enviar dicho mensaje. Los mensajes pueden contener archivos adjuntos de medios, como audios, imágenes o videos. No sólo los mensajes públicos están disponibles públicamente, sino también aquellos mensajes no listados. Cuando destacás un mensaje en tu perfil, esta información también está disponible de modo público. Tus mensajes son entregados a tus seguidores; en muchos casos, eso significa que son entregados a diferentes servidores y que las copias de esos mensajes quedan almacenadas allí. Cuando eliminás mensajes, esta acción también es entregada a tus seguidores. La acción de adherir a un mensaje o de marcarlo como favorito siempre es pública.
- Mensajes sólo para seguidores y directos : Todos los mensajes son almacenados y procesados en el servidor. Los mensajes sólo para seguidores son entregados a tus seguidores y a los usuarios que son mencionados en ellos, mientras que los mensajes directos son entregados sólo a los usuarios mencionados en ellos; en muchos casos, eso significa que son entregados a diferentes servidores y las copias de esos mensajes quedan almacenadas allí. Hacemos el esfuerzo de buena fe para limitar el acceso a esos mensajes sólo a las cuentas autorizadas, pero otros servidores podrían no seguir estas pautas. Por lo tanto, es importante revisar los servidores a los cuales pertenecen tus seguidores. Podés activar una opción para aprobar y rechazar nuevos seguidores manualmente en la configuración de tu cuenta de Mastodon. Por favor, tené en mente que los operadores del servidor y de cualquier servidor receptor podría ver tales mensajes , y que los destinatarios podrías tomar capturas de pantalla, copiarlos o recompartirlos entre ellos. No compartas ninguna información sensible al usar Mastodon.
- Dirección IP y otros metadatos : Cuando iniciás sesión, registramos tu dirección IP, así como el nombre de tu navegador web o programa/aplicación. Todas las sesiones registradas están disponibles para que la revisés y revoqués en la configuración de tu cuenta de Mastodon. La última dirección IP usada es almacenada por hasta 12 meses. También podríamos retener registros de servidor, los cuales incluyen la dirección IP de cada solicitud a nuestro servidor.
-
-
-
-
- ¿Para qué usamos esta información?
-
- Cualquier información que recolectamos de vos puede ser usada de las siguientes maneras:
-
-
- Para proveer la funcionalidad central de Mastodon. Sólo podés interactuar con el contenido de otras cuentas y enviar tu propio contenido cuando iniciaste sesión. Por ejemplo, podrías seguir otras cuentas para ver sus mensajes combinados en tu propia línea temporal principal personalizada.
- Para ayudar a la moderación de la comunidad, por ejemplo comparando tu dirección IP con otras conocidas, para determinar la evasión de expulsaciones u otras violaciones.
- La dirección de correo electrónico que ofrecés puede ser usada para enviarte información, notificaciones sobre otras cuentas interactuando con tu contenido o enviándote mensajes, y responder a consultas y/u otras solicitudes o consultas.
-
-
-
-
- ¿Cómo protegemos tu información?
-
- Implementamos una variedad de medidas de seguridad para mantener la seguridad de tu información personal cuando ingresás, enviás o accedés a tu información personal. Entre otras cosas, la sesión de tu navegador web o programa/aplicación, así como el tráfico entre tus aplicaciones y la API, están aseguradas con SSL, y tu contraseña está cifrada usando un fuerte algoritmo de un solo sentido. Podés habilitar la autenticación de dos factores para fortalecer el acceso seguro a tu cuenta.
-
-
-
- ¿Cuál es nuestra política de retención?
-
- Haremos el esfuerzo de buena fe para:
-
-
- Retener los registros de servidor conteniendo las direcciones IP de todas las solicitudes a este servidor, por no más de 90 días.
- Retener las direcciones IP asociadas a los usuarios registrados por no más de 12 meses.
-
-
- Podés solicitar y descargar un archivo de tu contenido, incluyendo tus mensajes, archivos adjuntos de medios e imágenes de avatar y cabecera.
-
- Podés eliminar tu cuenta de forma irreversible en cualquier momento.
-
-
-
- ¿Usamos cookies?
-
- Sí. Las cookies son diminutos archivos que un sitio web o su provedor de servicio transfiere a la unidad de almacenamiento de tu computadora a través de tu navegador web (si así lo permitís). Estas cookies habilitan al sitio web a reconocer a tu navegador web y, si tenés una cuenta registrada, asociarlo a tu cuenta registrada.
-
- Usamos cookies para entender y guardar tu configuración para futuras visitas.
-
-
-
- ¿Revelamos alguna información a entidades externas?
-
- No vendemos, intercambiamos ni transferimos tu información personal identificable a entidades externas. Esto no incluye terceros de confianza quienes nos asisten en operar nuestro sitio web, dirigir nuestro negocio u ofrecerte servicios, mientras esos terceros acepten conservar esa información de modo confidencial. También podríamos liberar tu información cuando creemos que liberarla es apropiado para cumplir con la ley, enforzar nuestras políticas del sitio web, o proteger nuestros u otros derechos, propiedad o seguridad.
-
- Tu contenido público puede ser descargado por otros servidores en la red. Tus mensajes públicos y sólo para seguidores son entregados a los servidores en donde tus seguidores tienen cuenta, y los mensajes directos son entregados a los servidores de los destinatarios, es decir en los servidores en los que esos seguidores o destinatarios tengan su cuenta, diferentes de este servidor.
-
- Cuando autorizás a un programa o aplicación a usar tu cuenta, dependiendo del alcance de los permisos que aprobés, podría acceder a tu información pública de perfil, tu lista de seguimientos, tus listas, todos tus mensajes y tus mensajes marcados como favoritos. Los programas o aplicaciones jamás pueden acceder a tu dirección de correo electrónico o contraseña.
-
-
-
- Sitio web usado por niños
-
- Si este servidor está ubicado geográficamente en la Unión Europea o en el Espacio Económico Europeo: Nuestro sitio web, productos y servicios son todos dirigios a personas de al menos 16 años de edad. Si tenés menos de 16 años, por los requerimientos del GDPR (Reglamento General de Protección de Datos ) no usés este sitio web.
-
- Si este servidor está ubicado geográficamente en los Estados Unidos de América: Nuestro sitio web, productos y servicios son todos dirigidos a personas de al menos 13 años de edad. Si tenés menos de 13 años, por los requerimientos de la COPPA (Ley de Protección de la Privacidad en Línea para Niños ) no usés este sitio web.
-
- Los requerimientos legales pueden ser diferente en este servidor si se encuentra geográficamente en otra jurisdicción.
-
-
-
- Cambios a nuestra Política de privacidad
-
- Si decidimos cambiar nuestra política de privacidad, publicaremos dichos cambios en esta página.
-
- Este documento se publica bajo la licencia CC-BY-SA (Creative Commons - Atribución - CompartirIgual) y fue actualizado por última vez el 26 de mayo de 2022.
-
- Originalmente adaptado de la Política de privacidad de Discourse .
- title: Términos del servicio y Políticas de privacidad de %{instance}
themes:
contrast: Alto contraste
default: Oscuro
@@ -1686,20 +1600,13 @@ es-AR:
suspend: Cuenta suspendida
welcome:
edit_profile_action: Configurar perfil
- edit_profile_step: Podés personalizar tu perfil subiendo un avatar, una cabecera, cambiando tu nombre para mostrar y más cosas. Si querés revisar a tus nuevos seguidores antes de que se les permita seguirte, podés hacer tu cuenta privada.
+ edit_profile_step: Podés personalizar tu perfil subiendo un avatar (imagen de perfil), cambiando tu nombre a mostrar y más. Podés optar por revisar a los nuevos seguidores antes de que puedan seguirte.
explanation: Aquí hay algunos consejos para empezar
final_action: Empezá a enviar mensajes
- final_step: ¡Empezá a enviar mensajes! Incluso sin seguidores, tus mensajes públicos pueden ser vistos por otros, por ejemplo en la linea temporal local, y con etiquetas. Capaz que quieras presentarte al mundo con la etiqueta "#presentación".
+ final_step: "¡Empezá a enviar mensajes! Incluso sin seguidores, tus mensajes públicos pueden ser vistos por otros, por ejemplo en la linea temporal local o al usar etiquetas. Capaz que quieras presentarte al mundo con la etiqueta «#presentación»."
full_handle: Tu nombre de usuario completo
full_handle_hint: Esto es lo que le dirás a tus contactos para que ellos puedan enviarte mensajes o seguirte desde otro servidor.
- review_preferences_action: Cambiar configuración
- review_preferences_step: Asegurate de establecer tu configuración, como qué tipo de correos electrónicos te gustaría recibir, o qué nivel de privacidad te gustaría que sea el predeterminado para tus mensajes. Si no sufrís de mareos, podrías elegir habilitar la reproducción automática de GIFs.
subject: Bienvenido a Mastodon
- tip_federated_timeline: La línea temporal federada es una línea contínua global de la red de Mastodon. Pero sólo incluye gente que tus vecinos están siguiendo, así que no es completa.
- tip_following: Predeterminadamente seguís al / a los administrador/es de tu servidor. Para encontrar más gente interesante, revisá las lineas temporales local y federada.
- tip_local_timeline: La línea temporal local es una línea contínua global de cuentas en %{instance}. ¡Estos son tus vecinos inmediatos!
- tip_mobile_webapp: Si tu navegador web móvil te ofrece agregar Mastodon a tu página de inicio, podés recibir notificaciones push. ¡Actúa como una aplicación nativa de muchas maneras!
- tips: Consejos
title: "¡Bienvenido a bordo, %{name}!"
users:
follow_limit_reached: No podés seguir a más de %{limit} cuentas
diff --git a/config/locales/es-MX.yml b/config/locales/es-MX.yml
index 5f9a9f5e7e..382e2c9249 100644
--- a/config/locales/es-MX.yml
+++ b/config/locales/es-MX.yml
@@ -1,94 +1,27 @@
---
es-MX:
about:
- about_hashtag_html: Estos son toots públicos etiquetados con #%{hashtag} . Puedes interactuar con ellos si tienes una cuenta en cualquier parte del fediverso.
about_mastodon_html: 'La red social del futuro: ¡Sin anuncios, sin vigilancia corporativa, diseño ético, y descentralización! ¡Sé dueño de tu información con Mastodon!'
- about_this: Información
- active_count_after: activo
- active_footnote: Usuarios Activos Mensuales (UAM)
- administered_by: 'Administrado por:'
- api: API
- apps: Aplicaciones móviles
- apps_platforms: Utiliza Mastodon desde iOS, Android y otras plataformas
- browse_directory: Navega por el directorio de perfiles y filtra por intereses
- browse_local_posts: Explora en vivo los posts públicos de este servidor
- browse_public_posts: Navega por un transmisión en vivo de publicaciones públicas en Mastodon
- contact: Contacto
contact_missing: No especificado
contact_unavailable: No disponible
- continue_to_web: Continuar a la aplicación web
- discover_users: Descubrir usuarios
- documentation: Documentación
- federation_hint_html: Con una cuenta en %{instance} usted podrá seguir a las personas en cualquier servidor de Mastodon y más allá.
- get_apps: Probar una aplicación móvil
hosted_on: Mastodon hosteado en %{domain}
- instance_actor_flash: |
- Esta cuenta es un actor virtual usado para representar al servidor y no a ningún usuario individual.
- Se usa para fines federativos y no debe ser bloqueado a menos que usted quiera bloquear toda la instancia, en cuyo caso se debe utilizar un bloque de dominio.
- learn_more: Aprende más
- logged_in_as_html: Actualmente estás conectado como %{username}.
- logout_before_registering: Actualmente ya has iniciado sesión.
- privacy_policy: Política de privacidad
- rules: Normas del servidor
- rules_html: 'A continuación hay un resumen de las normas que debes seguir si quieres tener una cuenta en este servidor de Mastodon:'
- see_whats_happening: Ver lo que está pasando
- server_stats: 'Datos del servidor:'
- source_code: Código fuente
- status_count_after:
- one: estado
- other: estados
- status_count_before: Qué han escrito
- tagline: Seguir a amigos existentes y descubre nuevos
- terms: Condiciones de servicio
- unavailable_content: Contenido no disponible
- unavailable_content_description:
- domain: Servidor
- reason: 'Motivo:'
- rejecting_media: Los archivos multimedia de este servidor no serán procesados y no se mostrarán miniaturas, lo que requiere un clic manual en el otro servidor.
- rejecting_media_title: Medios filtrados
- silenced: Las publicaciones de este servidor no se mostrarán en ningún lugar salvo en el Inicio si sigues al autor.
- silenced_title: Servidores silenciados
- suspended: No podrás seguir a nadie de este servidor, y ningún dato de este será procesado o almacenado, y no se intercambiarán datos.
- suspended_title: Servidores suspendidos
- unavailable_content_html: Mastodon generalmente le permite ver contenido e interactuar con usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se han hecho en este servidor en particular.
- user_count_after:
- one: usuario
- other: usuarios
- user_count_before: Tenemos
- what_is_mastodon: "¿Qué es Mastodon?"
+ title: Acerca de
accounts:
- choices_html: 'Elecciones de %{name}:'
- endorsements_hint: Puedes recomendar a gente que sigues desde la interfaz web, y aparecerán allí.
- featured_tags_hint: Puede presentar hashtags específicos que se mostrarán aquí.
follow: Seguir
followers:
one: Seguidor
other: Seguidores
following: Siguiendo
instance_actor_flash: Esta cuenta es un actor virtual utilizado para representar al servidor en sí mismo y no a ningún usuario individual. Se utiliza para propósitos de la federación y no se debe suspender.
- joined: Se unió el %{date}
last_active: última conexión
link_verified_on: La propiedad de este vínculo fue verificada el %{date}
- media: Multimedia
- moved_html: "%{name} se ha trasladado a %{new_profile_link}:"
- network_hidden: Esta información no está disponible
nothing_here: "¡No hay nada aquí!"
- people_followed_by: Usuarios a quien %{name} sigue
- people_who_follow: Usuarios que siguen a %{name}
pin_errors:
following: Debes estar siguiendo a la persona a la que quieres aprobar
posts:
one: Toot
other: Toots
posts_tab_heading: Toots
- posts_with_replies: Toots con respuestas
- roles:
- admin: Administrador
- bot: Bot
- group: Grupo
- moderator: Moderador
- unavailable: Perfil no disponible
- unfollow: Dejar de seguir
admin:
account_actions:
action: Realizar acción
@@ -105,12 +38,17 @@ es-MX:
avatar: Foto de perfil
by_domain: Dominio
change_email:
- changed_msg: "¡El correo electrónico se ha actualizado correctamente!"
+ changed_msg: "¡Email cambiado con éxito!"
current_email: Correo electrónico actual
label: Cambiar el correo electrónico
new_email: Nuevo correo electrónico
submit: Cambiar el correo electrónico
title: Cambiar el correo electrónico de %{username}
+ change_role:
+ changed_msg: "¡Rol cambiado con éxito!"
+ label: Cambiar rol
+ no_role: Sin rol
+ title: Cambiar rol para %{username}
confirm: Confirmar
confirmed: Confirmado
confirming: Confirmando
@@ -154,6 +92,7 @@ es-MX:
active: Activo
all: Todos
pending: Pendiente
+ silenced: Limitado
suspended: Suspendidos
title: Moderación
moderation_notes: Notas de moderación
@@ -161,6 +100,7 @@ es-MX:
most_recent_ip: IP más reciente
no_account_selected: Ninguna cuenta se cambió como ninguna fue seleccionada
no_limits_imposed: Sin límites impuestos
+ no_role_assigned: Ningún rol asignado
not_subscribed: No se está suscrito
pending: Revisión pendiente
perform_full_suspension: Suspender
@@ -187,12 +127,7 @@ es-MX:
reset: Reiniciar
reset_password: Reiniciar contraseña
resubscribe: Re-suscribir
- role: Permisos
- roles:
- admin: Administrador
- moderator: Moderador
- staff: Personal
- user: Usuario
+ role: Rol
search: Buscar
search_same_email_domain: Otros usuarios con el mismo dominio de correo
search_same_ip: Otros usuarios con la misma IP
@@ -235,17 +170,21 @@ es-MX:
approve_user: Aprobar Usuario
assigned_to_self_report: Asignar Reporte
change_email_user: Cambiar Correo Electrónico del Usuario
+ change_role_user: Cambiar Rol de Usuario
confirm_user: Confirmar Usuario
create_account_warning: Crear Advertencia
create_announcement: Crear Anuncio
+ create_canonical_email_block: Crear Bloqueo de Correo Electrónico
create_custom_emoji: Crear Emoji Personalizado
create_domain_allow: Crear Permiso de Dominio
create_domain_block: Crear Bloqueo de Dominio
create_email_domain_block: Crear Bloqueo de Dominio de Correo Electrónico
create_ip_block: Crear regla IP
create_unavailable_domain: Crear Dominio No Disponible
+ create_user_role: Crear Rol
demote_user: Degradar Usuario
destroy_announcement: Eliminar Anuncio
+ destroy_canonical_email_block: Eliminar Bloqueo de Correo Electrónico
destroy_custom_emoji: Eliminar Emoji Personalizado
destroy_domain_allow: Eliminar Permiso de Dominio
destroy_domain_block: Eliminar Bloqueo de Dominio
@@ -254,6 +193,7 @@ es-MX:
destroy_ip_block: Eliminar regla IP
destroy_status: Eliminar Estado
destroy_unavailable_domain: Eliminar Dominio No Disponible
+ destroy_user_role: Destruir Rol
disable_2fa_user: Deshabilitar 2FA
disable_custom_emoji: Deshabilitar Emoji Personalizado
disable_sign_in_token_auth_user: Deshabilitar la Autenticación por Token de Correo Electrónico para el Usuario
@@ -280,24 +220,30 @@ es-MX:
update_announcement: Actualizar Anuncio
update_custom_emoji: Actualizar Emoji Personalizado
update_domain_block: Actualizar el Bloqueo de Dominio
+ update_ip_block: Actualizar regla IP
update_status: Actualizar Estado
+ update_user_role: Actualizar Rol
actions:
approve_appeal_html: "%{name} aprobó la solicitud de moderación de %{target}"
approve_user_html: "%{name} aprobó el registro de %{target}"
assigned_to_self_report_html: "%{name} asignó el informe %{target} a sí mismo"
change_email_user_html: "%{name} cambió la dirección de correo electrónico del usuario %{target}"
+ change_role_user_html: "%{name} cambió el rol de %{target}"
confirm_user_html: "%{name} confirmó la dirección de correo electrónico del usuario %{target}"
create_account_warning_html: "%{name} envió una advertencia a %{target}"
create_announcement_html: "%{name} ha creado un nuevo anuncio %{target}"
+ create_canonical_email_block_html: "%{name} bloqueó el correo electrónico con el hash %{target}"
create_custom_emoji_html: "%{name} subió un nuevo emoji %{target}"
create_domain_allow_html: "%{name} permitió la federación con el dominio %{target}"
create_domain_block_html: "%{name} bloqueó el dominio %{target}"
create_email_domain_block_html: "%{name} bloqueó el dominio de correo electrónico %{target}"
create_ip_block_html: "%{name} creó una regla para la IP %{target}"
create_unavailable_domain_html: "%{name} detuvo las entregas al dominio %{target}"
+ create_user_role_html: "%{name} creó el rol %{target}"
demote_user_html: "%{name} degradó al usuario %{target}"
destroy_announcement_html: "%{name} eliminó el anuncio %{target}"
- destroy_custom_emoji_html: "%{name} destruyó emoji %{target}"
+ destroy_canonical_email_block_html: "%{name} desbloqueó el correo electrónico con el hash %{target}"
+ destroy_custom_emoji_html: "%{name} eliminó el emoji %{target}"
destroy_domain_allow_html: "%{name} bloqueó la federación con el dominio %{target}"
destroy_domain_block_html: "%{name} desbloqueó el dominio %{target}"
destroy_email_domain_block_html: "%{name} desbloqueó el dominio de correo electrónico %{target}"
@@ -305,6 +251,7 @@ es-MX:
destroy_ip_block_html: "%{name} eliminó una regla para la IP %{target}"
destroy_status_html: "%{name} eliminó el estado por %{target}"
destroy_unavailable_domain_html: "%{name} reanudó las entregas al dominio %{target}"
+ destroy_user_role_html: "%{name} eliminó el rol %{target}"
disable_2fa_user_html: "%{name} desactivó el requisito de dos factores para el usuario %{target}"
disable_custom_emoji_html: "%{name} desactivó el emoji %{target}"
disable_sign_in_token_auth_user_html: "%{name} ha deshabilitado la autenticación por token de correo electrónico para %{target}"
@@ -331,8 +278,9 @@ es-MX:
update_announcement_html: "%{name} actualizó el anuncio %{target}"
update_custom_emoji_html: "%{name} actualizó el emoji %{target}"
update_domain_block_html: "%{name} actualizó el bloqueo de dominio para %{target}"
+ update_ip_block_html: "%{name} cambió la regla para la IP %{target}"
update_status_html: "%{name} actualizó el estado de %{target}"
- deleted_status: "(estado borrado)"
+ update_user_role_html: "%{name} cambió el rol %{target}"
empty: No se encontraron registros.
filter_by_action: Filtrar por acción
filter_by_user: Filtrar por usuario
@@ -376,6 +324,7 @@ es-MX:
listed: Listados
new:
title: Añadir nuevo emoji personalizado
+ no_emoji_selected: No se cambió ningún emoji ya que no se seleccionó ninguno
not_permitted: No tienes permiso para realizar esta acción
overwrite: Sobrescribir
shortcode: Código de atajo
@@ -428,6 +377,7 @@ es-MX:
destroyed_msg: El bloque de dominio se deshizo
domain: Dominio
edit: Editar nuevo dominio bloqueado
+ existing_domain_block: Ya ha impuesto límites más estrictos a %{name}.
existing_domain_block_html: Ya ha impuesto límites más estrictos a %{name}, necesita desbloquearlo primero .
new:
create: Crear bloque
@@ -648,6 +598,67 @@ es-MX:
unresolved: No resuelto
updated_at: Actualizado
view_profile: Ver perfil
+ roles:
+ add_new: Añadir rol
+ assigned_users:
+ one: "%{count} usuario"
+ other: "%{count} usuarios"
+ categories:
+ administration: Administración
+ devops: DevOps
+ invites: Invitaciones
+ moderation: Moderación
+ special: Especial
+ delete: Eliminar
+ description_html: Con roles de usuario , puede personalizar las funciones y áreas de Mastodon a las que pueden acceder sus usuarios.
+ edit: Editar rol '%{name}'
+ everyone: Permisos por defecto
+ everyone_full_description_html: Este es el rol base que afecta a todos los usuarios , incluso aquellos sin un rol asignado. Todos los otros roles heredan permisos de él.
+ permissions_count:
+ one: "%{count} permiso"
+ other: "%{count} permisos"
+ privileges:
+ administrator: Administrador
+ administrator_description: Los usuarios con este permiso saltarán todos los permisos
+ delete_user_data: Borrar Datos de Usuario
+ delete_user_data_description: Permite a los usuarios eliminar los datos de otros usuarios sin demora
+ invite_users: Invitar usuarios
+ invite_users_description: Permite a los usuarios invitar a nuevas personas al servidor
+ manage_announcements: Administrar Anuncios
+ manage_announcements_description: Permite a los usuarios gestionar anuncios en el servidor
+ manage_appeals: Administrar Apelaciones
+ manage_appeals_description: Permite a los usuarios revisar apelaciones contra acciones de moderación
+ manage_blocks: Administrar Bloqueos
+ manage_blocks_description: Permite a los usuarios bloquear los proveedores de e-mail y las direcciones IP
+ manage_custom_emojis: Administrar Emojis Personalizados
+ manage_custom_emojis_description: Permite a los usuarios gestionar emojis personalizados en el servidor
+ manage_federation: Administrar Federación
+ manage_federation_description: Permite a los usuarios bloquear o permitir la federación con otros dominios, y controlar la entregabilidad
+ manage_invites: Administrar Invitaciones
+ manage_invites_description: Permite a los usuarios navegar y desactivar los enlaces de invitación
+ manage_reports: Administrar Informes
+ manage_reports_description: Permite a los usuarios revisar informes y realizar acciones de moderación basadas en ellos
+ manage_roles: Administrar Roles
+ manage_roles_description: Permite a los usuarios administrar y asignar roles por debajo de los suyos
+ manage_rules: Gestionar Reglas
+ manage_rules_description: Permite a los usuarios cambiar las reglas del servidor
+ manage_settings: Administrar Ajustes
+ manage_settings_description: Permite a los usuarios cambiar la configuración del sitio
+ manage_taxonomies: Administrar Taxonomías
+ manage_taxonomies_description: Permite a los usuarios revisar el contenido en tendencia y actualizar la configuración de las etiquetas
+ manage_user_access: Administrar Acceso de Usuarios
+ manage_user_access_description: Permite a los usuarios desactivar la autenticación de dos factores de otros usuarios, cambiar su dirección de correo electrónico y restablecer su contraseña
+ manage_users: Administrar Usuarios
+ manage_users_description: Permite a los usuarios ver los detalles de otros usuarios y realizar acciones de moderación contra ellos
+ manage_webhooks: Administrar Webhooks
+ manage_webhooks_description: Permite a los usuarios configurar webhooks para eventos administrativos
+ view_audit_log: Ver Registro de Auditoría
+ view_audit_log_description: Permite a los usuarios ver un historial de acciones administrativas en el servidor
+ view_dashboard: Ver Panel de Control
+ view_dashboard_description: Permite a los usuarios acceder al panel de control y varias métricas
+ view_devops: DevOps
+ view_devops_description: Permite a los usuarios acceder a los paneles de control Sidekiq y pgHero
+ title: Roles
rules:
add_new: Añadir norma
delete: Eliminar
@@ -656,94 +667,40 @@ es-MX:
empty: Aún no se han definido las normas del servidor.
title: Normas del servidor
settings:
- activity_api_enabled:
- desc_html: Conteo de estados publicados localmente, usuarios activos, y nuevos registros en periodos semanales
- title: Publicar estadísticas locales acerca de actividad de usuario
- bootstrap_timeline_accounts:
- desc_html: Separa con comas los nombres de usuario. Solo funcionará para cuentas locales desbloqueadas. Si se deja vacío, se tomará como valor por defecto a todos los administradores locales.
- title: Seguimientos predeterminados para usuarios nuevos
- contact_information:
- email: Correo de trabajo
- username: Nombre de usuario
- custom_css:
- desc_html: Modificar el aspecto con CSS cargado en cada página
- title: CSS personalizado
- default_noindex:
- desc_html: Afecta a todos los usuarios que no han cambiado esta configuración por sí mismos
- title: Optar por los usuarios fuera de la indexación en los motores de búsqueda por defecto
+ about:
+ manage_rules: Administrar reglas del servidor
+ preamble: Proporciona información detallada sobre cómo el servidor es operado, moderado y financiado.
+ rules_hint: Hay un área dedicada para las reglas a las que se espera que tus usuarios se adhieran.
+ title: Acerca de
+ appearance:
+ preamble: Personalizar la interfaz web de Mastodon.
+ title: Apariencia
+ branding:
+ preamble: La marca de tu servidor lo diferencia de otros servidores de la red. Esta información puede mostrarse a través de una variedad de entornos, como en la interfaz web de Mastodon, en aplicaciones nativas, en previsualizaciones de enlaces en otros sitios web y en aplicaciones de mensajería, etc. Por esta razón, es mejor mantener esta información clara, breve y concisa.
+ title: Marca
+ content_retention:
+ preamble: Controlar cómo el contenido generado por el usuario se almacena en Mastodon.
+ title: Retención de contenido
+ discovery:
+ follow_recommendations: Recomendaciones de cuentas
+ preamble: Exponer contenido interesante a la superficie es fundamental para incorporar nuevos usuarios que pueden no conocer a nadie Mastodon. Controla cómo funcionan varias opciones de descubrimiento en tu servidor.
+ profile_directory: Directorio de perfiles
+ public_timelines: Lineas de tiempo públicas
+ title: Descubrimiento
+ trends: Tendencias
domain_blocks:
all: A todos
disabled: A nadie
- title: Mostrar dominios bloqueados
users: Para los usuarios locales que han iniciado sesión
- domain_blocks_rationale:
- title: Mostrar la razón de ser
- hero:
- desc_html: Mostrado en la página principal. Recomendable al menos 600x100px. Por defecto se establece a la miniatura de la instancia
- title: Imagen de portada
- mascot:
- desc_html: Mostrado en múltiples páginas. Se recomienda un tamaño mínimo de 293x205px. Cuando no se especifica, se muestra la mascota por defecto
- title: Imagen de la mascota
- peers_api_enabled:
- desc_html: Nombres de dominio que esta instancia ha encontrado en el fediverso
- title: Publicar lista de instancias descubiertas
- preview_sensitive_media:
- desc_html: Los enlaces de vistas previas en otras web mostrarán una miniatura incluso si el medio está marcado como contenido sensible
- title: Mostrar contenido sensible en previews de OpenGraph
- profile_directory:
- desc_html: Permitir que los usuarios puedan ser descubiertos
- title: Habilitar directorio de perfiles
registrations:
- closed_message:
- desc_html: Se muestra en la portada cuando los registros están cerrados. Puedes usar tags HTML
- title: Mensaje de registro cerrado
- deletion:
- desc_html: Permite a cualquiera a eliminar su cuenta
- title: Eliminación de cuenta abierta
- min_invite_role:
- disabled: Nadie
- title: Permitir invitaciones de
- require_invite_text:
- desc_html: Cuando los registros requieren aprobación manual, haga obligatorio en la invitaciones el campo "¿Por qué quieres unirte?" en lugar de opcional
- title: Requiere a los nuevos usuarios rellenar un texto de solicitud de invitación
+ preamble: Controla quién puede crear una cuenta en tu servidor.
+ title: Registros
registrations_mode:
modes:
approved: Se requiere aprobación para registrarse
none: Nadie puede registrarse
open: Cualquiera puede registrarse
- title: Modo de registros
- show_known_fediverse_at_about_page:
- desc_html: Cuando esté activado, se mostrarán toots de todo el fediverso conocido en la vista previa. En otro caso, se mostrarán solamente toots locales.
- title: Mostrar fediverso conocido en la vista previa de la historia
- show_staff_badge:
- desc_html: Mostrar un parche de staff en la página de un usuario
- title: Mostrar parche de staff
- site_description:
- desc_html: Párrafo introductorio en la portada y en meta tags. Puedes usar tags HTML, en particular <a>
y <em>
.
- title: Descripción de instancia
- site_description_extended:
- desc_html: Un buen lugar para tu código de conducta, reglas, guías y otras cosas que estén impuestas aparte en tu instancia. Puedes usar tags HTML
- title: Información extendida personalizada
- site_short_description:
- desc_html: Mostrado en la barra lateral y las etiquetas de metadatos. Describe lo que es Mastodon y qué hace especial a este servidor en un solo párrafo. si está vacío, pone por defecto la descripción de la instancia.
- title: Descripción corta de la instancia
- site_terms:
- desc_html: Puedes escribir tus propias políticas de privacidad, términos de servicio u otras legalidades. Puedes usar tags HTML
- title: Términos de servicio personalizados
- site_title: Nombre de instancia
- thumbnail:
- desc_html: Se usa para muestras con OpenGraph y APIs. Se recomienda 1200x630px
- title: Portada de instancia
- timeline_preview:
- desc_html: Mostrar línea de tiempo pública en la portada
- title: Previsualización
- title: Ajustes del sitio
- trendable_by_default:
- desc_html: Afecta a etiquetas que no han sido previamente rechazadas
- title: Permitir que las etiquetas sean tendencia sin revisión previa
- trends:
- desc_html: Mostrar públicamente hashtags previamente revisados que son tendencia
- title: Hashtags de tendencia
+ title: Ajustes del Servidor
site_uploads:
delete: Eliminar archivo subido
destroyed_msg: "¡Carga del sitio eliminada con éxito!"
@@ -797,6 +754,9 @@ es-MX:
description_html: Estos son enlaces que actualmente están siendo compartidos mucho por las cuentas desde las que tu servidor ve los mensajes. Pueden ayudar a tus usuarios a averiguar qué está pasando en el mundo. Ningún enlace se muestren públicamente hasta que autorice al dominio. También puede permitir o rechazar enlaces individuales.
disallow: Rechazar enlace
disallow_provider: Rechazar editor
+ no_link_selected: No se cambió ningún enlace ya que no se seleccionó ninguno
+ publishers:
+ no_publisher_selected: No se cambió ningún editor ya que no se seleccionó ninguno
shared_by_over_week:
one: Compartido por una persona durante la última semana
other: Compartido por %{count} personas durante la última semana
@@ -816,6 +776,7 @@ es-MX:
description_html: Estos son publicaciones que su servidor conoce que están siendo compartidas y marcadas como favoritas mucho en este momento. Pueden ayudar a tus usuarios nuevos y retornantes a encontrar más gente a la que seguir. No hay mensajes que se muestren públicamente hasta que apruebes el autor y el autor permita que su cuenta sea sugerida a otros. También puedes permitir o rechazar mensajes individuales.
disallow: Rechazar publicación
disallow_account: No permitir autor
+ no_status_selected: No se cambió ninguna publicación en tendencia ya que no se seleccionó ninguna
not_discoverable: El autor no ha optado por ser detectable
shared_by:
one: Compartido o marcado como favorito una vez
@@ -831,6 +792,7 @@ es-MX:
tag_uses_measure: usuarios totales
description_html: Estos son etiquetas que están apareciendo en muchos posts que tu servidor ve. Pueden ayudar a tus usuarios a averiguar de qué habla más gente en estos momentos. No hay hashtags que se muestren públicamente hasta que los apruebes.
listable: Pueden ser recomendadas
+ no_tag_selected: No se cambió ninguna etiqueta ya que no se seleccionó ninguna
not_listable: No serán recomendadas
not_trendable: No aparecerán en tendencias
not_usable: No pueden ser usadas
@@ -851,6 +813,26 @@ es-MX:
edit_preset: Editar aviso predeterminado
empty: Aún no has definido ningún preajuste de advertencia.
title: Editar configuración predeterminada de avisos
+ webhooks:
+ add_new: Añadir endpoint
+ delete: Eliminar
+ description_html: Un webhook permite a Mastodon enviar notificaciones en tiempo real sobre los eventos elegidos a tu propia aplicación, para que tu aplicación pueda lanzar reacciones automáticamente .
+ disable: Deshabilitar
+ disabled: Deshabilitado
+ edit: Editar endpoint
+ empty: Aún no tienes ningún endpoint de webhook configurado.
+ enable: Habilitar
+ enabled: Activo
+ enabled_events:
+ one: 1 evento habilitado
+ other: "%{count} eventos habilitados"
+ events: Eventos
+ new: Nuevo webhook
+ rotate_secret: Rotar secreto
+ secret: Firmando secreto
+ status: Estado
+ title: Webhooks
+ webhook: Webhook
admin_mailer:
new_appeal:
actions:
@@ -874,12 +856,8 @@ es-MX:
new_trends:
body: 'Los siguientes elementos necesitan una revisión antes de que se puedan mostrar públicamente:'
new_trending_links:
- no_approved_links: Actualmente no hay enlaces en tendencia aprobados.
- requirements: 'Cualquiera de estos candidatos podría superar el enlace de tendencia aprobado por #%{rank}, que actualmente es "%{lowest_link_title}" con una puntuación de %{lowest_link_score}.'
title: Enlaces en tendencia
new_trending_statuses:
- no_approved_statuses: Actualmente no hay enlaces en tendencia aprobados.
- requirements: 'Cualquiera de estos candidatos podría superar la publicación en tendencia aprobado por #%{rank}, que actualmente es %{lowest_status_url} con una puntuación de %{lowest_status_score}.'
title: Publicaciones en tendencia
new_trending_tags:
no_approved_tags: Actualmente no hay ninguna etiqueta en tendencia aprobada.
@@ -915,16 +893,13 @@ es-MX:
applications:
created: Aplicación creada exitosamente
destroyed: Apicación eliminada exitosamente
- invalid_url: La URL proporcionada es incorrecta
regenerate_token: Regenerar token de acceso
token_regenerated: Token de acceso regenerado exitosamente
warning: Ten mucho cuidado con estos datos. ¡No los compartas con nadie!
your_token: Tu token de acceso
auth:
- apply_for_account: Solicitar una invitación
+ apply_for_account: Entrar en la lista de espera
change_password: Contraseña
- checkbox_agreement_html: Acepto las reglas del servidor y términos de servicio
- checkbox_agreement_without_rules_html: Acepto los términos de servicio
delete_account: Borrar cuenta
delete_account_html: Si desea eliminar su cuenta, puede proceder aquí . Será pedido de una confirmación.
description:
@@ -943,6 +918,7 @@ es-MX:
migrate_account: Mudarse a otra cuenta
migrate_account_html: Si deseas redireccionar esta cuenta a otra distinta, puedes configurarlo aquí .
or_log_in_with: O inicia sesión con
+ privacy_policy_agreement_html: He leído y acepto la política de privacidad
providers:
cas: CAS
saml: SAML
@@ -950,12 +926,18 @@ es-MX:
registration_closed: "%{instance} no está aceptando nuevos miembros"
resend_confirmation: Volver a enviar el correo de confirmación
reset_password: Restablecer contraseña
+ rules:
+ preamble: Estas son establecidas y aplicadas por los moderadores de %{domain}.
+ title: Algunas reglas básicas.
security: Cambiar contraseña
set_new_password: Establecer nueva contraseña
setup:
email_below_hint_html: Si la dirección de correo electrónico que aparece a continuación es incorrecta, se puede cambiarla aquí y recibir un nuevo correo electrónico de confirmación.
email_settings_hint_html: El correo electrónico de confirmación fue enviado a %{email}. Si esa dirección de correo electrónico no sea correcta, se puede cambiarla en la configuración de la cuenta.
title: Configuración
+ sign_up:
+ preamble: Con una cuenta en este servidor de Mastodon, podrás seguir a cualquier otra persona en la red, independientemente de en qué servidor esté su cuenta.
+ title: Vamos a configurar el %{domain}.
status:
account_status: Estado de la cuenta
confirming: Esperando confirmación de correo electrónico.
@@ -964,7 +946,6 @@ es-MX:
redirecting_to: Tu cuenta se encuentra inactiva porque está siendo redirigida a %{acct}.
view_strikes: Ver amonestaciones pasadas contra tu cuenta
too_fast: Formulario enviado demasiado rápido, inténtelo de nuevo.
- trouble_logging_in: "¿Problemas para iniciar sesión?"
use_security_key: Usar la clave de seguridad
authorize_follow:
already_following: Ya estás siguiendo a esta cuenta
@@ -1022,10 +1003,6 @@ es-MX:
more_details_html: Para más detalles, ver la política de privacidad .
username_available: Tu nombre de usuario volverá a estar disponible
username_unavailable: Tu nombre de usuario no estará disponible
- directories:
- directory: Directorio de perfiles
- explanation: Descubre usuarios según sus intereses
- explore_mastodon: Explorar %{title}
disputes:
strikes:
action_taken: Acción realizada
@@ -1104,29 +1081,60 @@ es-MX:
public: Timeline público
thread: Conversaciones
edit:
+ add_keyword: Añadir palabra clave
+ keywords: Palabras clave
+ statuses: Publicaciones individuales
+ statuses_hint_html: Este filtro se aplica a la selección de publicaciones individuales independientemente de si coinciden con las palabras clave a continuación. Revise o elimine publicaciones del filtro .
title: Editar filtro
errors:
+ deprecated_api_multiple_keywords: Estos parámetros no se pueden cambiar desde esta aplicación porque se aplican a más de una palabra clave de filtro. Utilice una aplicación más reciente o la interfaz web.
invalid_context: Se suminstró un contexto inválido o vacío
- invalid_irreversible: El filtrado irreversible solo funciona con los contextos propios o de notificaciones
index:
+ contexts: Filtros en %{contexts}
delete: Borrar
empty: No tienes filtros.
+ expires_in: Caduca en %{distance}
+ expires_on: Expira el %{date}
+ keywords:
+ one: "%{count} palabra clave"
+ other: "%{count} palabras clave"
+ statuses:
+ one: "%{count} publicación"
+ other: "%{count} publicaciones"
+ statuses_long:
+ one: "%{count} publicación individual oculta"
+ other: "%{count} publicaciones individuales ocultas"
title: Filtros
new:
+ save: Guardar nuevo filtro
title: Añadir un nuevo filtro
+ statuses:
+ back_to_filter: Volver a filtrar
+ batch:
+ remove: Eliminar del filtro
+ index:
+ hint: Este filtro se aplica a la selección de publicaciones individuales independientemente de otros criterios. Puede añadir más publicaciones a este filtro desde la interfaz web.
+ title: Publicaciones filtradas
footer:
- developers: Desarrolladores
- more: Mas…
- resources: Recursos
trending_now: Tendencia ahora
generic:
all: Todos
+ all_items_on_page_selected_html:
+ one: "%{count} elemento en esta página está seleccionado."
+ other: Todos los %{count} elementos en esta página están seleccionados.
+ all_matching_items_selected_html:
+ one: "%{count} elemento que coincide con su búsqueda está seleccionado."
+ other: Todos los %{count} elementos que coinciden con su búsqueda están seleccionados.
changes_saved_msg: "¡Cambios guardados con éxito!"
copy: Copiar
delete: Eliminar
+ deselect: Deseleccionar todo
none: Nada
order_by: Ordenar por
save_changes: Guardar cambios
+ select_all_matching_items:
+ one: Seleccionar %{count} elemento que coincide con tu búsqueda.
+ other: Seleccionar todos los %{count} elementos que coinciden con tu búsqueda.
today: hoy
validation_errors:
one: "¡Algo no está bien! Por favor, revisa el error"
@@ -1150,7 +1158,6 @@ es-MX:
following: Lista de seguidos
muting: Lista de silenciados
upload: Cargar
- in_memoriam_html: En memoria.
invites:
delete: Desactivar
expired: Expiradas
@@ -1231,19 +1238,10 @@ es-MX:
copy_account_note_text: 'Este usuario se mudó desde %{acct}, aquí estaban tus notas anteriores sobre él:'
notification_mailer:
admin:
+ report:
+ subject: "%{name} envió un informe"
sign_up:
subject: "%{name} se registró"
- digest:
- action: Ver todas las notificaciones
- body: Un resumen de los mensajes que perdiste en desde tu última visita, el %{since}
- mention: "%{name} te ha mencionado en:"
- new_followers_summary:
- one: "¡Ademas, has adquirido un nuevo seguidor mientras no estabas! ¡Hurra!"
- other: "¡Ademas, has adquirido %{count} nuevos seguidores mientras no estabas! ¡Genial!"
- subject:
- one: "1 nueva notificación desde tu última visita 🐘"
- other: "%{count} nuevas notificaciones desde tu última visita 🐘"
- title: En tu ausencia…
favourite:
body: 'Tu estado fue marcado como favorito por %{name}:'
subject: "%{name} marcó como favorito tu estado"
@@ -1315,6 +1313,8 @@ es-MX:
other: Otros
posting_defaults: Configuración por defecto de publicaciones
public_timelines: Líneas de tiempo públicas
+ privacy_policy:
+ title: Política de Privacidad
reactions:
errors:
limit_reached: Límite de reacciones diferentes alcanzado
@@ -1337,22 +1337,7 @@ es-MX:
remove_selected_follows: Dejar de seguir a los usuarios seleccionados
status: Estado de la cuenta
remote_follow:
- acct: Ingresa tu usuario@dominio desde el que quieres seguir
missing_resource: No se pudo encontrar la URL de redirección requerida para tu cuenta
- no_account_html: "¿No tienes una cuenta? Puedes registrarte aqui "
- proceed: Proceder a seguir
- prompt: 'Vas a seguir a:'
- reason_html: "¿Por qué es necesario este paso? %{instance}
puede que no sea el servidor donde estás registrado, así que necesitamos redirigirte primero a tu servidor de origen."
- remote_interaction:
- favourite:
- proceed: Proceder a marcar como favorito
- prompt: 'Quieres marcar como favorito este toot:'
- reblog:
- proceed: Proceder a retootear
- prompt: 'Quieres retootear este toot:'
- reply:
- proceed: Proceder a responder
- prompt: 'Quieres responder a este toot:'
reports:
errors:
invalid_rules: no hace referencia a reglas válidas
@@ -1524,56 +1509,6 @@ es-MX:
too_late: Es demasiado tarde para apelar esta amonestación
tags:
does_not_match_previous_name: no coincide con el nombre anterior
- terms:
- body_html: |
- Política de Privacidad
- ¿Qué información recogemos?
-
- Información básica sobre su cuenta : Si se registra en este servidor, se le requerirá un nombre de usuario, una dirección de correo electrónico y una contraseña. Además puede incluir información adicional en el perfil como un nombre de perfil y una biografía, y subir una foto de perfil y una imagen de cabecera. El nombre de usuario, nombre de perfil, biografía, foto de perfil e imagen de cabecera siempre son visibles públicamente
- Publicaciones, seguimiento y otra información pública : La lista de gente a la que sigue es mostrada públicamente, al igual que sus seguidores. Cuando publica un mensaje, la fecha y hora es almacenada, así como la aplicación desde la cual publicó el mensaje. Los mensajes pueden contener archivos adjuntos multimedia, como imágenes y vídeos. Las publicaciones públicas y no listadas están disponibles públicamente. Cuando destaca una entrada en su perfil, también es información disponible públicamente. Sus publicaciones son entregadas a sus seguidores, en algunos casos significa que son entregadas a diferentes servidores y las copias son almacenadas allí. Cuando elimina publicaciones, esto también se transfiere a sus seguidores. La acción de rebloguear o marcar como favorito otra publicación es siempre pública.
- Publicaciones directas y sólo para seguidores : Todos los mensajes se almacenan y procesan en el servidor. Los mensajes sólo para seguidores se entregan a los seguidores y usuarios que se mencionan en ellos, y los mensajes directos se entregan sólo a los usuarios que se mencionan en ellos. En algunos casos significa que se entregan a diferentes servidores y que las copias se almacenan allí. Hacemos un esfuerzo de buena fe para limitar el acceso a esas publicaciones sólo a las personas autorizadas, pero otros servidores pueden no hacerlo. Por lo tanto, es importante revisar los servidores a los que pertenecen sus seguidores. Puede cambiar una opción para aprobar y rechazar nuevos seguidores manualmente en la configuración Por favor, tenga en cuenta que los operadores del servidor y de cualquier servidor receptor pueden ver dichos mensajes , y que los destinatarios pueden capturarlos, copiarlos o volver a compartirlos de alguna otra manera. No comparta ninguna información sensible en Mastodon.
- Direcciones IP y otros metadatos : Al iniciar sesión, registramos la dirección IP desde la que se ha iniciado sesión, así como el nombre de la aplicación de su navegador. Todas las sesiones iniciadas están disponibles para su revisión y revocación en los ajustes. La última dirección IP utilizada se almacena hasta 12 meses. También podemos conservar los registros del servidor que incluyen la dirección IP de cada solicitud a nuestro servidor.
-
-
- ¿Para qué utilizamos su información?
- Toda la información que obtenemos de usted puede ser utilizada de las siguientes maneras:
-
- Para proporcionar la funcionalidad principal de Mastodon. Sólo puedes interactuar con el contenido de otras personas y publicar tu propio contenido cuando estés conectado. Por ejemplo, puedes seguir a otras personas para ver sus mensajes combinados en tu propia línea de tiempo personalizada.
- Para ayudar a la moderación de la comunidad, por ejemplo, comparando su dirección IP con otras conocidas para determinar la evasión de prohibiciones u otras violaciones.
- La dirección de correo electrónico que nos proporcione podrá utilizarse para enviarle información, notificaciones sobre otras personas que interactúen con su contenido o para enviarle mensajes, así como para responder a consultas y/u otras solicitudes o preguntas.
-
-
- ¿Cómo protegemos su información?
- Implementamos una variedad de medidas de seguridad para mantener la seguridad de su información personal cuando usted ingresa, envía o accede a su información personal. Entre otras cosas, la sesión de su navegador, así como el tráfico entre sus aplicaciones y la API, están protegidos con SSL, y su contraseña está protegida mediante un algoritmo unidireccional fuerte. Puede habilitar la autenticación de dos factores para un acceso más seguro a su cuenta.
-
- ¿Cuál es nuestra política de retención de datos?
- Haremos un esfuerzo de buena fe para:
-
- Conservar los registros del servidor que contengan la dirección IP de todas las peticiones a este servidor, en la medida en que se mantengan dichos registros, no más de 90 días.
- Conservar las direcciones IP asociadas a los usuarios registrados no más de 12 meses.
-
- Puede solicitar y descargar un archivo de su contenido, incluidos sus mensajes, archivos adjuntos multimedia, foto de perfil e imagen de cabecera.
- Usted puede borrar su cuenta de forma irreversible en cualquier momento.
-
- ¿Utilizamos cookies?
- Sí. Las cookies son pequeños archivos que un sitio o su proveedor de servicios transfiere al disco duro de su ordenador a través de su navegador web (si usted lo permite). Estas cookies permiten al sitio reconocer su navegador y, si tiene una cuenta registrada, asociarla con su cuenta registrada.
- Utilizamos cookies para entender y guardar sus preferencias para futuras visitas.
-
- ¿Revelamos alguna información a terceros?
- No vendemos, comerciamos ni transferimos a terceros su información personal identificable. Esto no incluye a los terceros de confianza que nos asisten en la operación de nuestro sitio, en la realización de nuestros negocios o en la prestación de servicios, siempre y cuando dichas partes acuerden mantener la confidencialidad de esta información. También podemos divulgar su información cuando creamos que es apropiado para cumplir con la ley, hacer cumplir las políticas de nuestro sitio, o proteger nuestros u otros derechos, propiedad o seguridad.
- Su contenido público puede ser descargado por otros servidores de la red. Tus mensajes públicos y sólo para seguidores se envían a los servidores donde residen tus seguidores, y los mensajes directos se envían a los servidores de los destinatarios, en la medida en que dichos seguidores o destinatarios residan en un servidor diferente.
- Cuando usted autoriza a una aplicación a usar su cuenta, dependiendo del alcance de los permisos que usted apruebe, puede acceder a la información de su perfil público, su lista de seguimiento, sus seguidores, sus listas, todos sus mensajes y sus favoritos. Las aplicaciones nunca podrán acceder a su dirección de correo electrónico o contraseña.
-
- Uso del sitio por parte de los niños
- Si este servidor está en la UE o en el EEE: Nuestro sitio, productos y servicios están dirigidos a personas mayores de 16 años. Si es menor de 16 años, según los requisitos de la GDPR (General Data Protection Regulation ) no utilice este sitio.
- Si este servidor está en los EE.UU.: Nuestro sitio, productos y servicios están todos dirigidos a personas que tienen al menos 13 años de edad. Si usted es menor de 13 años, según los requisitos de COPPA (Children's Online Privacy Protection Act ) no utilice este sitio.
- Los requisitos legales pueden ser diferentes si este servidor está en otra jurisdicción.
-
- Cambios en nuestra Política de Privacidad
- Si decidimos cambiar nuestra política de privacidad, publicaremos esos cambios en esta página.
- Este documento es CC-BY-SA. Fue actualizado por última vez el 26 de mayo de 2022.
- Adaptado originalmente desde la política de privacidad de Discourse .
- title: Términos del Servicio y Políticas de Privacidad de %{instance}
themes:
contrast: Alto contraste
default: Mastodon
@@ -1616,7 +1551,7 @@ es-MX:
change_password: cambies tu contraseña
details: 'Aquí están los detalles del inicio de sesión:'
explanation: Hemos detectado un inicio de sesión en tu cuenta desde una nueva dirección IP.
- further_actions_html: Si fuiste tú, te recomendamos que %{action} inmediatamente y habilites la autenticación de dos factores para mantener tu cuenta segura.
+ further_actions_html: Si no fuiste tú, te recomendamos que %{action} inmediatamente y habilites la autenticación de dos factores para mantener tu cuenta segura.
subject: Tu cuenta ha sido accedida desde una nueva dirección IP
title: Un nuevo inicio de sesión
warning:
@@ -1652,20 +1587,13 @@ es-MX:
suspend: Cuenta suspendida
welcome:
edit_profile_action: Configurar el perfil
- edit_profile_step: Puedes personalizar tu perfil subiendo un avatar, una cabecera, cambiando tu nombre de usuario y más cosas. Si quieres revisar a tus nuevos seguidores antes de que se les permita seguirte, puedes bloquear tu cuenta.
+ edit_profile_step: Puedes personalizar tu perfil subiendo una foto de perfil, cambiando tu nombre de usuario y mucho más. Puedes optar por revisar a los nuevos seguidores antes de que puedan seguirte.
explanation: Aquí hay algunos consejos para empezar
final_action: Empezar a publicar
- final_step: '¡Empieza a publicar! Incluso sin seguidores, tus mensajes públicos pueden ser vistos por otros, por ejemplo en la linea de tiempo local y con "hashtags". Podrías querer introducirte con el "hashtag" #introductions.'
+ final_step: "¡Empieza a publicar! Incluso sin seguidores, tus publicaciones públicas pueden ser vistas por otros, por ejemplo en la línea de tiempo local o en etiquetas. Tal vez quieras presentarte con la etiqueta de #introducciones."
full_handle: Su sobrenombre completo
full_handle_hint: Esto es lo que le dirías a tus amigos para que ellos puedan enviarte mensajes o seguirte desde otra instancia.
- review_preferences_action: Cambiar preferencias
- review_preferences_step: Asegúrate de poner tus preferencias, como que correos te gustaría recibir, o que nivel de privacidad te gustaría que tus publicaciones tengan por defecto. Si no tienes mareos, podrías elegir habilitar la reproducción automática de "GIFs".
subject: Bienvenido a Mastodon
- tip_federated_timeline: La línea de tiempo federada es una vista de la red de Mastodon. Pero solo incluye gente que tus vecinos están siguiendo, así que no está completa.
- tip_following: Sigues a tus administradores de servidor por defecto. Para encontrar más gente interesante, revisa las lineas de tiempo local y federada.
- tip_local_timeline: La linea de tiempo local is una vista de la gente en %{instance}. Estos son tus vecinos inmediatos!
- tip_mobile_webapp: Si el navegador de tu dispositivo móvil ofrece agregar Mastodon a tu página de inicio, puedes recibir notificaciones. Actúa como una aplicación nativa en muchas formas!
- tips: Consejos
title: Te damos la bienvenida a bordo, %{name}!
users:
follow_limit_reached: No puedes seguir a más de %{limit} personas
diff --git a/config/locales/es.yml b/config/locales/es.yml
index 9001931341..d0a2d970c5 100644
--- a/config/locales/es.yml
+++ b/config/locales/es.yml
@@ -1,94 +1,27 @@
---
es:
about:
- about_hashtag_html: Estos son publicaciones públicas etiquetadas con #%{hashtag} . Puedes interactuar con ellas si tienes una cuenta en cualquier parte del fediverso.
about_mastodon_html: 'La red social del futuro: ¡Sin anuncios, sin vigilancia corporativa, diseño ético, y descentralización! ¡Sé dueño de tu información con Mastodon!'
- about_this: Información
- active_count_after: activo
- active_footnote: Usuarios Activos Mensuales (UAM)
- administered_by: 'Administrado por:'
- api: API
- apps: Aplicaciones móviles
- apps_platforms: Utiliza Mastodon desde iOS, Android y otras plataformas
- browse_directory: Navega por el directorio de perfiles y filtra por intereses
- browse_local_posts: Explora en vivo los posts públicos de este servidor
- browse_public_posts: Navega por un transmisión en vivo de publicaciones públicas en Mastodon
- contact: Contacto
contact_missing: No especificado
contact_unavailable: No disponible
- continue_to_web: Continuar con la aplicación web
- discover_users: Descubrir usuarios
- documentation: Documentación
- federation_hint_html: Con una cuenta en %{instance} usted podrá seguir a las personas en cualquier servidor de Mastodon y más allá.
- get_apps: Probar una aplicación móvil
hosted_on: Mastodon alojado en %{domain}
- instance_actor_flash: |
- Esta cuenta es un actor virtual usado para representar al servidor y no a ningún usuario individual.
- Se usa para fines federativos y no debe ser bloqueado a menos que usted quiera bloquear toda la instancia, en cuyo caso se debe utilizar un bloque de dominio.
- learn_more: Aprende más
- logged_in_as_html: Actualmente has iniciado sesión como %{username}.
- logout_before_registering: Ya has iniciado sesión.
- privacy_policy: Política de privacidad
- rules: Normas del servidor
- rules_html: 'A continuación hay un resumen de las normas que debes seguir si quieres tener una cuenta en este servidor de Mastodon:'
- see_whats_happening: Ver lo que está pasando
- server_stats: 'Datos del servidor:'
- source_code: Código fuente
- status_count_after:
- one: estado
- other: estados
- status_count_before: Qué han escrito
- tagline: Seguir a amigos existentes y descubre nuevos
- terms: Condiciones de servicio
- unavailable_content: Contenido no disponible
- unavailable_content_description:
- domain: Servidor
- reason: 'Motivo:'
- rejecting_media: Los archivos multimedia de este servidor no serán procesados y no se mostrarán miniaturas, lo que requiere un clic manual en el otro servidor.
- rejecting_media_title: Medios filtrados
- silenced: Las publicaciones de este servidor no se mostrarán en ningún lugar salvo en el Inicio si sigues al autor.
- silenced_title: Servidores silenciados
- suspended: No podrás seguir a nadie de este servidor, y ningún dato de este será procesado o almacenado, y no se intercambiarán datos.
- suspended_title: Servidores suspendidos
- unavailable_content_html: Mastodon generalmente le permite ver contenido e interactuar con usuarios de cualquier otro servidor en el fediverso. Estas son las excepciones que se han hecho en este servidor en particular.
- user_count_after:
- one: usuario
- other: usuarios
- user_count_before: Tenemos
- what_is_mastodon: "¿Qué es Mastodon?"
+ title: Acerca de
accounts:
- choices_html: 'Elecciones de %{name}:'
- endorsements_hint: Puedes recomendar a gente que sigues desde la interfaz web, y aparecerán allí.
- featured_tags_hint: Puede presentar hashtags específicos que se mostrarán aquí.
follow: Seguir
followers:
one: Seguidor
other: Seguidores
following: Siguiendo
instance_actor_flash: Esta cuenta es un actor virtual utilizado para representar al servidor en sí mismo y no a ningún usuario individual. Se utiliza para propósitos de la federación y no se debe suspender.
- joined: Se unió el %{date}
last_active: última conexión
link_verified_on: La propiedad de este vínculo fue verificada el %{date}
- media: Multimedia
- moved_html: "%{name} se ha trasladado a %{new_profile_link}:"
- network_hidden: Esta información no está disponible
nothing_here: "¡No hay nada aquí!"
- people_followed_by: Usuarios a quien %{name} sigue
- people_who_follow: Usuarios que siguen a %{name}
pin_errors:
following: Debes estar siguiendo a la persona a la que quieres aprobar
posts:
one: Publicación
other: Publicaciones
posts_tab_heading: Publicaciones
- posts_with_replies: Publicaciones y respuestas
- roles:
- admin: Administrador
- bot: Bot
- group: Grupo
- moderator: Moderador
- unavailable: Perfil no disponible
- unfollow: Dejar de seguir
admin:
account_actions:
action: Realizar acción
@@ -105,12 +38,17 @@ es:
avatar: Avatar
by_domain: Dominio
change_email:
- changed_msg: "¡El correo electrónico se ha actualizado correctamente!"
+ changed_msg: "¡Email cambiado con éxito!"
current_email: Correo electrónico actual
label: Cambiar el correo electrónico
new_email: Nuevo correo electrónico
submit: Cambiar el correo electrónico
title: Cambiar el correo electrónico de %{username}
+ change_role:
+ changed_msg: "¡Rol cambiado con éxito!"
+ label: Cambiar rol
+ no_role: Sin rol
+ title: Cambiar rol para %{username}
confirm: Confirmar
confirmed: Confirmado
confirming: Confirmando
@@ -154,6 +92,7 @@ es:
active: Activo
all: Todos
pending: Pendiente
+ silenced: Limitado
suspended: Suspendidos
title: Moderación
moderation_notes: Notas de moderación
@@ -161,6 +100,7 @@ es:
most_recent_ip: IP más reciente
no_account_selected: Ninguna cuenta se cambió como ninguna fue seleccionada
no_limits_imposed: Sin límites impuestos
+ no_role_assigned: Ningún rol asignado
not_subscribed: No se está suscrito
pending: Revisión pendiente
perform_full_suspension: Suspender
@@ -187,12 +127,7 @@ es:
reset: Reiniciar
reset_password: Reiniciar contraseña
resubscribe: Re-suscribir
- role: Permisos
- roles:
- admin: Administrador
- moderator: Moderador
- staff: Personal
- user: Usuario
+ role: Rol
search: Buscar
search_same_email_domain: Otros usuarios con el mismo dominio de correo
search_same_ip: Otros usuarios con la misma IP
@@ -235,17 +170,21 @@ es:
approve_user: Aprobar Usuario
assigned_to_self_report: Asignar Reporte
change_email_user: Cambiar Correo Electrónico del Usuario
+ change_role_user: Cambiar Rol de Usuario
confirm_user: Confirmar Usuario
create_account_warning: Crear Advertencia
create_announcement: Crear Anuncio
+ create_canonical_email_block: Crear Bloqueo de Correo Electrónico
create_custom_emoji: Crear Emoji Personalizado
create_domain_allow: Crear Permiso de Dominio
create_domain_block: Crear Bloqueo de Dominio
create_email_domain_block: Crear Bloqueo de Dominio de Correo Electrónico
create_ip_block: Crear regla IP
create_unavailable_domain: Crear Dominio No Disponible
+ create_user_role: Crear Rol
demote_user: Degradar Usuario
destroy_announcement: Eliminar Anuncio
+ destroy_canonical_email_block: Eliminar Bloqueo de Correo Electrónico
destroy_custom_emoji: Eliminar Emoji Personalizado
destroy_domain_allow: Eliminar Permiso de Dominio
destroy_domain_block: Eliminar Bloqueo de Dominio
@@ -254,6 +193,7 @@ es:
destroy_ip_block: Eliminar regla IP
destroy_status: Eliminar Estado
destroy_unavailable_domain: Eliminar Dominio No Disponible
+ destroy_user_role: Destruir Rol
disable_2fa_user: Deshabilitar 2FA
disable_custom_emoji: Deshabilitar Emoji Personalizado
disable_sign_in_token_auth_user: Deshabilitar la Autenticación por Token de Correo Electrónico para el Usuario
@@ -280,24 +220,30 @@ es:
update_announcement: Actualizar Anuncio
update_custom_emoji: Actualizar Emoji Personalizado
update_domain_block: Actualizar el Bloqueo de Dominio
+ update_ip_block: Actualizar regla IP
update_status: Actualizar Estado
+ update_user_role: Actualizar Rol
actions:
approve_appeal_html: "%{name} aprobó la solicitud de moderación de %{target}"
approve_user_html: "%{name} aprobó el registro de %{target}"
assigned_to_self_report_html: "%{name} asignó el informe %{target} a sí mismo"
change_email_user_html: "%{name} cambió la dirección de correo electrónico del usuario %{target}"
+ change_role_user_html: "%{name} cambió el rol de %{target}"
confirm_user_html: "%{name} confirmó la dirección de correo electrónico del usuario %{target}"
create_account_warning_html: "%{name} envió una advertencia a %{target}"
create_announcement_html: "%{name} ha creado un nuevo anuncio %{target}"
+ create_canonical_email_block_html: "%{name} bloqueó el correo electrónico con el hash %{target}"
create_custom_emoji_html: "%{name} subió un nuevo emoji %{target}"
create_domain_allow_html: "%{name} permitió la federación con el dominio %{target}"
create_domain_block_html: "%{name} bloqueó el dominio %{target}"
create_email_domain_block_html: "%{name} bloqueó el dominio de correo electrónico %{target}"
create_ip_block_html: "%{name} creó una regla para la IP %{target}"
create_unavailable_domain_html: "%{name} detuvo las entregas al dominio %{target}"
+ create_user_role_html: "%{name} creó el rol %{target}"
demote_user_html: "%{name} degradó al usuario %{target}"
destroy_announcement_html: "%{name} eliminó el anuncio %{target}"
- destroy_custom_emoji_html: "%{name} destruyó emoji %{target}"
+ destroy_canonical_email_block_html: "%{name} desbloqueó el correo electrónico con el hash %{target}"
+ destroy_custom_emoji_html: "%{name} eliminó el emoji %{target}"
destroy_domain_allow_html: "%{name} bloqueó la federación con el dominio %{target}"
destroy_domain_block_html: "%{name} desbloqueó el dominio %{target}"
destroy_email_domain_block_html: "%{name} desbloqueó el dominio de correo electrónico %{target}"
@@ -305,6 +251,7 @@ es:
destroy_ip_block_html: "%{name} eliminó una regla para la IP %{target}"
destroy_status_html: "%{name} eliminó el estado por %{target}"
destroy_unavailable_domain_html: "%{name} reanudó las entregas al dominio %{target}"
+ destroy_user_role_html: "%{name} eliminó el rol %{target}"
disable_2fa_user_html: "%{name} desactivó el requisito de dos factores para el usuario %{target}"
disable_custom_emoji_html: "%{name} desactivó el emoji %{target}"
disable_sign_in_token_auth_user_html: "%{name} ha deshabilitado la autenticación por token de correo electrónico para %{target}"
@@ -331,8 +278,9 @@ es:
update_announcement_html: "%{name} actualizó el anuncio %{target}"
update_custom_emoji_html: "%{name} actualizó el emoji %{target}"
update_domain_block_html: "%{name} actualizó el bloqueo de dominio para %{target}"
+ update_ip_block_html: "%{name} cambió la regla para la IP %{target}"
update_status_html: "%{name} actualizó el estado de %{target}"
- deleted_status: "(estado borrado)"
+ update_user_role_html: "%{name} cambió el rol %{target}"
empty: No se encontraron registros.
filter_by_action: Filtrar por acción
filter_by_user: Filtrar por usuario
@@ -376,6 +324,7 @@ es:
listed: Listados
new:
title: Añadir nuevo emoji personalizado
+ no_emoji_selected: No se cambió ningún emoji ya que no se seleccionó ninguno
not_permitted: No tienes permiso para realizar esta acción
overwrite: Sobrescribir
shortcode: Código de atajo
@@ -649,6 +598,67 @@ es:
unresolved: No resuelto
updated_at: Actualizado
view_profile: Ver perfil
+ roles:
+ add_new: Añadir rol
+ assigned_users:
+ one: "%{count} usuario"
+ other: "%{count} usuarios"
+ categories:
+ administration: Administración
+ devops: DevOps
+ invites: Invitaciones
+ moderation: Moderación
+ special: Especial
+ delete: Eliminar
+ description_html: Con roles de usuario , puede personalizar las funciones y áreas de Mastodon a las que pueden acceder sus usuarios.
+ edit: Editar rol '%{name}'
+ everyone: Permisos por defecto
+ everyone_full_description_html: Este es el rol base que afecta a todos los usuarios , incluso aquellos sin un rol asignado. Todos los otros roles heredan permisos de él.
+ permissions_count:
+ one: "%{count} permiso"
+ other: "%{count} permisos"
+ privileges:
+ administrator: Administrador
+ administrator_description: Los usuarios con este permiso saltarán todos los permisos
+ delete_user_data: Borrar Datos de Usuario
+ delete_user_data_description: Permite a los usuarios eliminar los datos de otros usuarios sin demora
+ invite_users: Invitar usuarios
+ invite_users_description: Permite a los usuarios invitar a nuevas personas al servidor
+ manage_announcements: Administrar Anuncios
+ manage_announcements_description: Permite a los usuarios gestionar anuncios en el servidor
+ manage_appeals: Administrar Apelaciones
+ manage_appeals_description: Permite a los usuarios revisar apelaciones contra acciones de moderación
+ manage_blocks: Administrar Bloqueos
+ manage_blocks_description: Permite a los usuarios bloquear los proveedores de e-mail y las direcciones IP
+ manage_custom_emojis: Administrar Emojis Personalizados
+ manage_custom_emojis_description: Permite a los usuarios gestionar emojis personalizados en el servidor
+ manage_federation: Administrar Federación
+ manage_federation_description: Permite a los usuarios bloquear o permitir la federación con otros dominios, y controlar la entregabilidad
+ manage_invites: Administrar Invitaciones
+ manage_invites_description: Permite a los usuarios navegar y desactivar los enlaces de invitación
+ manage_reports: Administrar Informes
+ manage_reports_description: Permite a los usuarios revisar informes y realizar acciones de moderación basadas en ellos
+ manage_roles: Administrar Roles
+ manage_roles_description: Permite a los usuarios administrar y asignar roles por debajo de los suyos
+ manage_rules: Gestionar Reglas
+ manage_rules_description: Permite a los usuarios cambiar las reglas del servidor
+ manage_settings: Administrar Ajustes
+ manage_settings_description: Permite a los usuarios cambiar la configuración del sitio
+ manage_taxonomies: Administrar Taxonomías
+ manage_taxonomies_description: Permite a los usuarios revisar el contenido en tendencia y actualizar la configuración de las etiquetas
+ manage_user_access: Administrar Acceso de Usuarios
+ manage_user_access_description: Permite a los usuarios desactivar la autenticación de dos factores de otros usuarios, cambiar su dirección de correo electrónico y restablecer su contraseña
+ manage_users: Administrar Usuarios
+ manage_users_description: Permite a los usuarios ver los detalles de otros usuarios y realizar acciones de moderación contra ellos
+ manage_webhooks: Administrar Webhooks
+ manage_webhooks_description: Permite a los usuarios configurar webhooks para eventos administrativos
+ view_audit_log: Ver Registro de Auditoría
+ view_audit_log_description: Permite a los usuarios ver un historial de acciones administrativas en el servidor
+ view_dashboard: Ver Panel de Control
+ view_dashboard_description: Permite a los usuarios acceder al panel de control y varias métricas
+ view_devops: DevOps
+ view_devops_description: Permite a los usuarios acceder a los paneles de control Sidekiq y pgHero
+ title: Roles
rules:
add_new: Añadir norma
delete: Eliminar
@@ -657,94 +667,40 @@ es:
empty: Aún no se han definido las normas del servidor.
title: Normas del servidor
settings:
- activity_api_enabled:
- desc_html: Conteo de estados publicados localmente, usuarios activos, y nuevos registros en periodos semanales
- title: Publicar estadísticas locales acerca de actividad de usuario
- bootstrap_timeline_accounts:
- desc_html: Separa con comas los nombres de usuario. Solo funcionará para cuentas locales desbloqueadas. Si se deja vacío, se tomará como valor por defecto a todos los administradores locales.
- title: Seguimientos predeterminados para usuarios nuevos
- contact_information:
- email: Correo de trabajo
- username: Nombre de usuario
- custom_css:
- desc_html: Modificar el aspecto con CSS cargado en cada página
- title: CSS personalizado
- default_noindex:
- desc_html: Afecta a todos los usuarios que no han cambiado esta configuración por sí mismos
- title: Optar por los usuarios fuera de la indexación en los motores de búsqueda por defecto
+ about:
+ manage_rules: Administrar reglas del servidor
+ preamble: Proporciona información detallada sobre cómo el servidor es operado, moderado y financiado.
+ rules_hint: Hay un área dedicada para las reglas a las que se espera que tus usuarios se adhieran.
+ title: Acerca de
+ appearance:
+ preamble: Personalizar la interfaz web de Mastodon.
+ title: Apariencia
+ branding:
+ preamble: La marca de tu servidor lo diferencia de otros servidores de la red. Esta información puede mostrarse a través de una variedad de entornos, como en la interfaz web de Mastodon, en aplicaciones nativas, en previsualizaciones de enlaces en otros sitios web y en aplicaciones de mensajería, etc. Por esta razón, es mejor mantener esta información clara, breve y concisa.
+ title: Marca
+ content_retention:
+ preamble: Controlar cómo el contenido generado por el usuario se almacena en Mastodon.
+ title: Retención de contenido
+ discovery:
+ follow_recommendations: Recomendaciones de cuentas
+ preamble: Exponer contenido interesante a la superficie es fundamental para incorporar nuevos usuarios que pueden no conocer a nadie Mastodon. Controla cómo funcionan varias opciones de descubrimiento en tu servidor.
+ profile_directory: Directorio de perfiles
+ public_timelines: Lineas de tiempo públicas
+ title: Descubrimiento
+ trends: Tendencias
domain_blocks:
all: A todos
disabled: A nadie
- title: Mostrar dominios bloqueados
users: Para los usuarios locales que han iniciado sesión
- domain_blocks_rationale:
- title: Mostrar la razón de ser
- hero:
- desc_html: Mostrado en la página principal. Recomendable al menos 600x100px. Por defecto se establece a la miniatura de la instancia
- title: Imagen de portada
- mascot:
- desc_html: Mostrado en múltiples páginas. Se recomienda un tamaño mínimo de 293x205px. Cuando no se especifica, se muestra la mascota por defecto
- title: Imagen de la mascota
- peers_api_enabled:
- desc_html: Nombres de dominio que esta instancia ha encontrado en el fediverso
- title: Publicar lista de instancias descubiertas
- preview_sensitive_media:
- desc_html: Los enlaces de vistas previas en otras web mostrarán una miniatura incluso si el medio está marcado como contenido sensible
- title: Mostrar contenido sensible en previews de OpenGraph
- profile_directory:
- desc_html: Permitir que los usuarios puedan ser descubiertos
- title: Habilitar directorio de perfiles
registrations:
- closed_message:
- desc_html: Se muestra en la portada cuando los registros están cerrados. Puedes usar tags HTML
- title: Mensaje de registro cerrado
- deletion:
- desc_html: Permite a cualquiera a eliminar su cuenta
- title: Eliminación de cuenta abierta
- min_invite_role:
- disabled: Nadie
- title: Permitir invitaciones de
- require_invite_text:
- desc_html: Cuando los registros requieren aprobación manual, haga obligatorio en la invitaciones el campo "¿Por qué quieres unirte?" en lugar de opcional
- title: Requiere a los nuevos usuarios rellenar un texto de solicitud de invitación
+ preamble: Controla quién puede crear una cuenta en tu servidor.
+ title: Registros
registrations_mode:
modes:
approved: Se requiere aprobación para registrarse
none: Nadie puede registrarse
open: Cualquiera puede registrarse
- title: Modo de registros
- show_known_fediverse_at_about_page:
- desc_html: Cuando esté desactivado, se mostrarán solamente publicaciones locales en la línea temporal pública
- title: Incluye contenido federado en la página de línea de tiempo pública no autenticada
- show_staff_badge:
- desc_html: Mostrar un parche de staff en la página de un usuario
- title: Mostrar parche de staff
- site_description:
- desc_html: Párrafo introductorio en la portada y en meta tags. Puedes usar tags HTML, en particular <a>
y <em>
.
- title: Descripción de instancia
- site_description_extended:
- desc_html: Un buen lugar para tu código de conducta, reglas, guías y otras cosas que estén impuestas aparte en tu instancia. Puedes usar tags HTML
- title: Información extendida personalizada
- site_short_description:
- desc_html: Mostrado en la barra lateral y las etiquetas de metadatos. Describe lo que es Mastodon y qué hace especial a este servidor en un solo párrafo. si está vacío, pone por defecto la descripción de la instancia.
- title: Descripción corta de la instancia
- site_terms:
- desc_html: Puedes escribir tus propias políticas de privacidad, términos de servicio u otras legalidades. Puedes usar tags HTML
- title: Términos de servicio personalizados
- site_title: Nombre de instancia
- thumbnail:
- desc_html: Se usa para muestras con OpenGraph y APIs. Se recomienda 1200x630px
- title: Portada de instancia
- timeline_preview:
- desc_html: Mostrar línea de tiempo pública en la portada
- title: Previsualización
- title: Ajustes del sitio
- trendable_by_default:
- desc_html: Afecta a etiquetas que no han sido previamente rechazadas
- title: Permitir que las etiquetas sean tendencia sin revisión previa
- trends:
- desc_html: Mostrar públicamente hashtags previamente revisados que son tendencia
- title: Hashtags de tendencia
+ title: Ajustes del Servidor
site_uploads:
delete: Eliminar archivo subido
destroyed_msg: "¡Carga del sitio eliminada con éxito!"
@@ -798,6 +754,9 @@ es:
description_html: Estos son enlaces que actualmente están siendo compartidos mucho por las cuentas desde las que tu servidor ve los mensajes. Pueden ayudar a tus usuarios a averiguar qué está pasando en el mundo. Ningún enlace se muestren públicamente hasta que autorice al dominio. También puede permitir o rechazar enlaces individuales.
disallow: Rechazar enlace
disallow_provider: Rechazar medio
+ no_link_selected: No se cambió ningún enlace ya que no se seleccionó ninguno
+ publishers:
+ no_publisher_selected: No se cambió ningún editor ya que no se seleccionó ninguno
shared_by_over_week:
one: Compartido por una persona durante la última semana
other: Compartido por %{count} personas durante la última semana
@@ -817,6 +776,7 @@ es:
description_html: Estos son publicaciones que su servidor conoce que están siendo compartidas y marcadas como favoritas mucho en este momento. Pueden ayudar a tus usuarios nuevos y retornantes a encontrar más gente a la que seguir. No hay mensajes que se muestren públicamente hasta que apruebes el autor y el autor permita que su cuenta sea sugerida a otros. También puedes permitir o rechazar mensajes individuales.
disallow: No permitir publicación
disallow_account: No permitir autor
+ no_status_selected: No se cambió ninguna publicación en tendencia ya que no se seleccionó ninguna
not_discoverable: El autor no ha optado por ser detectable
shared_by:
one: Compartido o marcado como favorito una vez
@@ -832,6 +792,7 @@ es:
tag_uses_measure: usos totales
description_html: Estos son etiquetas que están apareciendo en muchos posts que tu servidor ve. Pueden ayudar a tus usuarios a averiguar de qué habla más gente en estos momentos. No hay hashtags que se muestren públicamente hasta que los apruebes.
listable: Pueden ser recomendadas
+ no_tag_selected: No se cambió ninguna etiqueta ya que no se seleccionó ninguna
not_listable: No serán recomendadas
not_trendable: No aparecerán en tendencias
not_usable: No pueden ser usadas
@@ -852,6 +813,26 @@ es:
edit_preset: Editar aviso predeterminado
empty: Aún no has definido ningún preajuste de advertencia.
title: Editar configuración predeterminada de avisos
+ webhooks:
+ add_new: Añadir endpoint
+ delete: Eliminar
+ description_html: Un webhook permite a Mastodon enviar notificaciones en tiempo real sobre los eventos elegidos a tu propia aplicación, para que tu aplicación pueda lanzar reacciones automáticamente .
+ disable: Deshabilitar
+ disabled: Deshabilitado
+ edit: Editar endpoint
+ empty: Aún no tienes ningún endpoint de webhook configurado.
+ enable: Habilitar
+ enabled: Activo
+ enabled_events:
+ one: 1 evento habilitado
+ other: "%{count} eventos habilitados"
+ events: Eventos
+ new: Nuevo webhook
+ rotate_secret: Rotar secreto
+ secret: Firmando secreto
+ status: Estado
+ title: Webhooks
+ webhook: Webhook
admin_mailer:
new_appeal:
actions:
@@ -875,12 +856,8 @@ es:
new_trends:
body: 'Los siguientes elementos necesitan una revisión antes de que se puedan mostrar públicamente:'
new_trending_links:
- no_approved_links: Actualmente no hay enlaces en tendencia aprobados.
- requirements: 'Cualquiera de estos candidatos podría superar el enlace de tendencia aprobado por #%{rank}, que actualmente es "%{lowest_link_title}" con una puntuación de %{lowest_link_score}.'
title: Enlaces en tendencia
new_trending_statuses:
- no_approved_statuses: Actualmente no hay enlaces en tendencia aprobados.
- requirements: 'Cualquiera de estos candidatos podría superar la publicación en tendencia aprobado por #%{rank}, que actualmente es %{lowest_status_url} con una puntuación de %{lowest_status_score}.'
title: Publicaciones en tendencia
new_trending_tags:
no_approved_tags: Actualmente no hay ninguna etiqueta en tendencia aprobada.
@@ -916,16 +893,13 @@ es:
applications:
created: Aplicación creada exitosamente
destroyed: Apicación eliminada exitosamente
- invalid_url: La URL proporcionada es incorrecta
regenerate_token: Regenerar token de acceso
token_regenerated: Token de acceso regenerado exitosamente
warning: Ten mucho cuidado con estos datos. ¡No los compartas con nadie!
your_token: Tu token de acceso
auth:
- apply_for_account: Solicitar una invitación
+ apply_for_account: Entrar en la lista de espera
change_password: Contraseña
- checkbox_agreement_html: Acepto las reglas del servidor y términos de servicio
- checkbox_agreement_without_rules_html: Acepto los términos de servicio
delete_account: Borrar cuenta
delete_account_html: Si desea eliminar su cuenta, puede proceder aquí . Será pedido de una confirmación.
description:
@@ -944,6 +918,7 @@ es:
migrate_account: Mudarse a otra cuenta
migrate_account_html: Si deseas redireccionar esta cuenta a otra distinta, puedes configurarlo aquí .
or_log_in_with: O inicia sesión con
+ privacy_policy_agreement_html: He leído y acepto la política de privacidad
providers:
cas: CAS
saml: SAML
@@ -951,12 +926,18 @@ es:
registration_closed: "%{instance} no está aceptando nuevos miembros"
resend_confirmation: Volver a enviar el correo de confirmación
reset_password: Restablecer contraseña
+ rules:
+ preamble: Estas son establecidas y aplicadas por los moderadores de %{domain}.
+ title: Algunas reglas básicas.
security: Cambiar contraseña
set_new_password: Establecer nueva contraseña
setup:
email_below_hint_html: Si la dirección de correo electrónico que aparece a continuación es incorrecta, se puede cambiarla aquí y recibir un nuevo correo electrónico de confirmación.
email_settings_hint_html: El correo electrónico de confirmación fue enviado a %{email}. Si esa dirección de correo electrónico no sea correcta, se puede cambiarla en la configuración de la cuenta.
title: Configuración
+ sign_up:
+ preamble: Con una cuenta en este servidor de Mastodon, podrás seguir a cualquier otra persona en la red, independientemente de en qué servidor esté su cuenta.
+ title: Vamos a configurar el %{domain}.
status:
account_status: Estado de la cuenta
confirming: Esperando confirmación de correo electrónico.
@@ -965,7 +946,6 @@ es:
redirecting_to: Tu cuenta se encuentra inactiva porque está siendo redirigida a %{acct}.
view_strikes: Ver amonestaciones pasadas contra tu cuenta
too_fast: Formulario enviado demasiado rápido, inténtelo de nuevo.
- trouble_logging_in: "¿Problemas para iniciar sesión?"
use_security_key: Usar la clave de seguridad
authorize_follow:
already_following: Ya estás siguiendo a esta cuenta
@@ -1023,10 +1003,6 @@ es:
more_details_html: Para más detalles, ver la política de privacidad .
username_available: Tu nombre de usuario volverá a estar disponible
username_unavailable: Tu nombre de usuario no estará disponible
- directories:
- directory: Directorio de perfiles
- explanation: Descubre usuarios según sus intereses
- explore_mastodon: Explorar %{title}
disputes:
strikes:
action_taken: Acción realizada
@@ -1105,29 +1081,60 @@ es:
public: Líneas de tiempo públicas
thread: Conversaciones
edit:
+ add_keyword: Añadir palabra clave
+ keywords: Palabras clave
+ statuses: Publicaciones individuales
+ statuses_hint_html: Este filtro se aplica a la selección de publicaciones individuales independientemente de si coinciden con las palabras clave a continuación. Revise o elimine publicaciones del filtro .
title: Editar filtro
errors:
+ deprecated_api_multiple_keywords: Estos parámetros no se pueden cambiar desde esta aplicación porque se aplican a más de una palabra clave de filtro. Utilice una aplicación más reciente o la interfaz web.
invalid_context: Se suminstró un contexto inválido o vacío
- invalid_irreversible: El filtrado irreversible solo funciona con los contextos propios o de notificaciones
index:
+ contexts: Filtros en %{contexts}
delete: Borrar
empty: No tienes filtros.
+ expires_in: Caduca en %{distance}
+ expires_on: Expira el %{date}
+ keywords:
+ one: "%{count} palabra clave"
+ other: "%{count} palabras clave"
+ statuses:
+ one: "%{count} publicación"
+ other: "%{count} publicaciones"
+ statuses_long:
+ one: "%{count} publicación individual oculta"
+ other: "%{count} publicaciones individuales ocultas"
title: Filtros
new:
+ save: Guardar nuevo filtro
title: Añadir nuevo filtro
+ statuses:
+ back_to_filter: Volver a filtrar
+ batch:
+ remove: Eliminar del filtro
+ index:
+ hint: Este filtro se aplica a la selección de publicaciones individuales independientemente de otros criterios. Puede añadir más publicaciones a este filtro desde la interfaz web.
+ title: Publicaciones filtradas
footer:
- developers: Desarrolladores
- more: Mas…
- resources: Recursos
trending_now: Tendencia ahora
generic:
all: Todos
+ all_items_on_page_selected_html:
+ one: "%{count} elemento en esta página está seleccionado."
+ other: Todos los %{count} elementos en esta página están seleccionados.
+ all_matching_items_selected_html:
+ one: "%{count} elemento que coincide con su búsqueda está seleccionado."
+ other: Todos los %{count} elementos que coinciden con su búsqueda están seleccionados.
changes_saved_msg: "¡Cambios guardados con éxito!"
copy: Copiar
delete: Eliminar
+ deselect: Deseleccionar todo
none: Nada
order_by: Ordenar por
save_changes: Guardar cambios
+ select_all_matching_items:
+ one: Seleccionar %{count} elemento que coincide con tu búsqueda.
+ other: Seleccionar todos los %{count} elementos que coinciden con tu búsqueda.
today: hoy
validation_errors:
one: "¡Algo no está bien! Por favor, revisa el error"
@@ -1151,7 +1158,6 @@ es:
following: Lista de seguidos
muting: Lista de silenciados
upload: Cargar
- in_memoriam_html: En memoria.
invites:
delete: Desactivar
expired: Expiradas
@@ -1232,19 +1238,10 @@ es:
copy_account_note_text: 'Este usuario se mudó desde %{acct}, aquí estaban tus notas anteriores sobre él:'
notification_mailer:
admin:
+ report:
+ subject: "%{name} envió un informe"
sign_up:
subject: "%{name} se registró"
- digest:
- action: Ver todas las notificaciones
- body: Un resumen de los mensajes que perdiste en desde tu última visita, el %{since}
- mention: "%{name} te ha mencionado en:"
- new_followers_summary:
- one: "¡Ademas, has adquirido un nuevo seguidor mientras no estabas! ¡Hurra!"
- other: "¡Ademas, has adquirido %{count} nuevos seguidores mientras no estabas! ¡Genial!"
- subject:
- one: "1 nueva notificación desde tu última visita 🐘"
- other: "%{count} nuevas notificaciones desde tu última visita 🐘"
- title: En tu ausencia…
favourite:
body: 'Tu estado fue marcado como favorito por %{name}:'
subject: "%{name} marcó como favorito tu estado"
@@ -1316,6 +1313,8 @@ es:
other: Otros
posting_defaults: Configuración por defecto de publicaciones
public_timelines: Líneas de tiempo públicas
+ privacy_policy:
+ title: Política de Privacidad
reactions:
errors:
limit_reached: Límite de reacciones diferentes alcanzado
@@ -1338,22 +1337,7 @@ es:
remove_selected_follows: Dejar de seguir a los usuarios seleccionados
status: Estado de la cuenta
remote_follow:
- acct: Ingresa tu usuario@dominio desde el que quieres seguir
missing_resource: No se pudo encontrar la URL de redirección requerida para tu cuenta
- no_account_html: "¿No tienes una cuenta? Puedes registrarte aqui "
- proceed: Proceder a seguir
- prompt: 'Vas a seguir a:'
- reason_html: "¿Por qué es necesario este paso? %{instance}
puede que no sea el servidor donde estás registrado, así que necesitamos redirigirte primero a tu servidor de origen."
- remote_interaction:
- favourite:
- proceed: Proceder a marcar como favorito
- prompt: 'Quieres marcar como favorita esta publicación:'
- reblog:
- proceed: Proceder a retootear
- prompt: 'Quieres retootear esta publicación:'
- reply:
- proceed: Proceder a responder
- prompt: 'Quieres responder a esta publicación:'
reports:
errors:
invalid_rules: no hace referencia a reglas válidas
@@ -1525,56 +1509,6 @@ es:
too_late: Es demasiado tarde para apelar esta amonestación
tags:
does_not_match_previous_name: no coincide con el nombre anterior
- terms:
- body_html: |
- Política de Privacidad
- ¿Qué información recogemos?
-
- Información básica sobre su cuenta : Si se registra en este servidor, se le requerirá un nombre de usuario, una dirección de correo electrónico y una contraseña. Además puede incluir información adicional en el perfil como un nombre de perfil y una biografía, y subir una foto de perfil y una imagen de cabecera. El nombre de usuario, nombre de perfil, biografía, foto de perfil e imagen de cabecera siempre son visibles públicamente
- Publicaciones, seguimiento y otra información pública : La lista de gente a la que sigue es mostrada públicamente, al igual que sus seguidores. Cuando publica un mensaje, la fecha y hora es almacenada, así como la aplicación desde la cual publicó el mensaje. Los mensajes pueden contener archivos adjuntos multimedia, como imágenes y vídeos. Las publicaciones públicas y no listadas están disponibles públicamente. Cuando destaca una entrada en su perfil, también es información disponible públicamente. Sus publicaciones son entregadas a sus seguidores, en algunos casos significa que son entregadas a diferentes servidores y las copias son almacenadas allí. Cuando elimina publicaciones, esto también se transfiere a sus seguidores. La acción de rebloguear o marcar como favorito otra publicación es siempre pública.
- Publicaciones directas y sólo para seguidores : Todos los mensajes se almacenan y procesan en el servidor. Los mensajes sólo para seguidores se entregan a los seguidores y usuarios que se mencionan en ellos, y los mensajes directos se entregan sólo a los usuarios que se mencionan en ellos. En algunos casos significa que se entregan a diferentes servidores y que las copias se almacenan allí. Hacemos un esfuerzo de buena fe para limitar el acceso a esas publicaciones sólo a las personas autorizadas, pero otros servidores pueden no hacerlo. Por lo tanto, es importante revisar los servidores a los que pertenecen sus seguidores. Puede cambiar una opción para aprobar y rechazar nuevos seguidores manualmente en la configuración Por favor, tenga en cuenta que los operadores del servidor y de cualquier servidor receptor pueden ver dichos mensajes , y que los destinatarios pueden capturarlos, copiarlos o volver a compartirlos de alguna otra manera. No comparta ninguna información sensible en Mastodon.
- Direcciones IP y otros metadatos : Al iniciar sesión, registramos la dirección IP desde la que se ha iniciado sesión, así como el nombre de la aplicación de su navegador. Todas las sesiones iniciadas están disponibles para su revisión y revocación en los ajustes. La última dirección IP utilizada se almacena hasta 12 meses. También podemos conservar los registros del servidor que incluyen la dirección IP de cada solicitud a nuestro servidor.
-
-
- ¿Para qué utilizamos su información?
- Toda la información que obtenemos de usted puede ser utilizada de las siguientes maneras:
-
- Para proporcionar la funcionalidad principal de Mastodon. Sólo puedes interactuar con el contenido de otras personas y publicar tu propio contenido cuando estés conectado. Por ejemplo, puedes seguir a otras personas para ver sus mensajes combinados en tu propia línea de tiempo personalizada.
- Para ayudar a la moderación de la comunidad, por ejemplo, comparando su dirección IP con otras conocidas para determinar la evasión de prohibiciones u otras violaciones.
- La dirección de correo electrónico que nos proporcione podrá utilizarse para enviarle información, notificaciones sobre otras personas que interactúen con su contenido o para enviarle mensajes, así como para responder a consultas y/u otras solicitudes o preguntas.
-
-
- ¿Cómo protegemos su información?
- Implementamos una variedad de medidas de seguridad para mantener la seguridad de su información personal cuando usted ingresa, envía o accede a su información personal. Entre otras cosas, la sesión de su navegador, así como el tráfico entre sus aplicaciones y la API, están protegidos con SSL, y su contraseña está protegida mediante un algoritmo unidireccional fuerte. Puede habilitar la autenticación de dos factores para un acceso más seguro a su cuenta.
-
- ¿Cuál es nuestra política de retención de datos?
- Haremos un esfuerzo de buena fe para:
-
- Conservar los registros del servidor que contengan la dirección IP de todas las peticiones a este servidor, en la medida en que se mantengan dichos registros, no más de 90 días.
- Conservar las direcciones IP asociadas a los usuarios registrados no más de 12 meses.
-
- Puede solicitar y descargar un archivo de su contenido, incluidos sus mensajes, archivos adjuntos multimedia, foto de perfil e imagen de cabecera.
- Usted puede borrar su cuenta de forma irreversible en cualquier momento.
-
- ¿Utilizamos cookies?
- Sí. Las cookies son pequeños archivos que un sitio o su proveedor de servicios transfiere al disco duro de su ordenador a través de su navegador web (si usted lo permite). Estas cookies permiten al sitio reconocer su navegador y, si tiene una cuenta registrada, asociarla con su cuenta registrada.
- Utilizamos cookies para entender y guardar sus preferencias para futuras visitas.
-
- ¿Revelamos alguna información a terceros?
- No vendemos, comerciamos ni transferimos a terceros su información personal identificable. Esto no incluye a los terceros de confianza que nos asisten en la operación de nuestro sitio, en la realización de nuestros negocios o en la prestación de servicios, siempre y cuando dichas partes acuerden mantener la confidencialidad de esta información. También podemos divulgar su información cuando creamos que es apropiado para cumplir con la ley, hacer cumplir las políticas de nuestro sitio, o proteger nuestros u otros derechos, propiedad o seguridad.
- Su contenido público puede ser descargado por otros servidores de la red. Tus mensajes públicos y sólo para seguidores se envían a los servidores donde residen tus seguidores, y los mensajes directos se envían a los servidores de los destinatarios, en la medida en que dichos seguidores o destinatarios residan en un servidor diferente.
- Cuando usted autoriza a una aplicación a usar su cuenta, dependiendo del alcance de los permisos que usted apruebe, puede acceder a la información de su perfil público, su lista de seguimiento, sus seguidores, sus listas, todos sus mensajes y sus favoritos. Las aplicaciones nunca podrán acceder a su dirección de correo electrónico o contraseña.
-
- Uso del sitio por parte de los niños
- Si este servidor está en la UE o en el EEE: Nuestro sitio, productos y servicios están dirigidos a personas mayores de 16 años. Si es menor de 16 años, según los requisitos de la GDPR (General Data Protection Regulation ) no utilice este sitio.
- Si este servidor está en los EE.UU.: Nuestro sitio, productos y servicios están todos dirigidos a personas que tienen al menos 13 años de edad. Si usted es menor de 13 años, según los requisitos de COPPA (Children's Online Privacy Protection Act ) no utilice este sitio.
- Los requisitos legales pueden ser diferentes si este servidor está en otra jurisdicción.
-
- Cambios en nuestra Política de Privacidad
- Si decidimos cambiar nuestra política de privacidad, publicaremos esos cambios en esta página.
- Este documento es CC-BY-SA. Fue actualizado por última vez el 26 de mayo de 2022.
- Adaptado originalmente desde la política de privacidad de Discourse .
- title: Términos del Servicio y Políticas de Privacidad de %{instance}
themes:
contrast: Alto contraste
default: Mastodon
@@ -1617,7 +1551,7 @@ es:
change_password: cambies tu contraseña
details: 'Aquí están los detalles del inicio de sesión:'
explanation: Hemos detectado un inicio de sesión en tu cuenta desde una nueva dirección IP.
- further_actions_html: Si fuiste tú, te recomendamos que %{action} inmediatamente y habilites la autenticación de dos factores para mantener tu cuenta segura.
+ further_actions_html: Si no fuiste tú, te recomendamos que %{action} inmediatamente y habilites la autenticación de dos factores para mantener tu cuenta segura.
subject: Tu cuenta ha sido accedida desde una nueva dirección IP
title: Un nuevo inicio de sesión
warning:
@@ -1653,20 +1587,13 @@ es:
suspend: Cuenta suspendida
welcome:
edit_profile_action: Configurar el perfil
- edit_profile_step: Puedes personalizar tu perfil subiendo un avatar, una cabecera, cambiando tu nombre de usuario y más cosas. Si quieres revisar a tus nuevos seguidores antes de que se les permita seguirte, puedes bloquear tu cuenta.
+ edit_profile_step: Puedes personalizar tu perfil subiendo una foto de perfil, cambiando tu nombre de usuario y mucho más. Puedes optar por revisar a los nuevos seguidores antes de que puedan seguirte.
explanation: Aquí hay algunos consejos para empezar
final_action: Empezar a publicar
- final_step: '¡Empieza a publicar! Incluso sin seguidores, tus mensajes públicos pueden ser vistos por otros, por ejemplo en la linea de tiempo local y con "hashtags". Podrías querer introducirte con el "hashtag" #introductions.'
+ final_step: "¡Empieza a publicar! Incluso sin seguidores, tus publicaciones públicas pueden ser vistas por otros, por ejemplo en la línea de tiempo local o en etiquetas. Tal vez quieras presentarte con la etiqueta de #introducciones."
full_handle: Su sobrenombre completo
full_handle_hint: Esto es lo que le dirías a tus amigos para que ellos puedan enviarte mensajes o seguirte desde otra instancia.
- review_preferences_action: Cambiar preferencias
- review_preferences_step: Asegúrate de poner tus preferencias, como que correos te gustaría recibir, o que nivel de privacidad te gustaría que tus publicaciones tengan por defecto. Si no tienes mareos, podrías elegir habilitar la reproducción automática de "GIFs".
subject: Bienvenido a Mastodon
- tip_federated_timeline: La línea de tiempo federada es una vista de la red de Mastodon. Pero solo incluye gente que tus vecinos están siguiendo, así que no está completa.
- tip_following: Sigues a tus administradores de servidor por defecto. Para encontrar más gente interesante, revisa las lineas de tiempo local y federada.
- tip_local_timeline: La línea de tiempo local es una vista de la gente en %{instance}. ¡Estos son tus vecinos inmediatos!
- tip_mobile_webapp: Si el navegador de tu dispositivo móvil ofrece agregar Mastodon a tu página de inicio, puedes recibir notificaciones. Actúa como una aplicación nativa en muchas formas!
- tips: Consejos
title: Te damos la bienvenida a bordo, %{name}!
users:
follow_limit_reached: No puedes seguir a más de %{limit} personas
diff --git a/config/locales/et.yml b/config/locales/et.yml
index 3c48bad5b7..10f7b67ca8 100644
--- a/config/locales/et.yml
+++ b/config/locales/et.yml
@@ -1,87 +1,25 @@
---
et:
about:
- about_hashtag_html: Need on avalikud tuututused sildistatud sildiga #%{hashtag} . Te saate suhelda nendega, kui Teil on konto üks kõik kus terves fediversumis.
about_mastodon_html: 'Tuleviku sotsiaalvõrgustik: Reklaamivaba, korporatiivse järelvalveta, eetiline kujundus ning detsentraliseeritus! Oma enda andmeid Mastodonis!'
- about_this: Meist
- active_count_after: aktiivne
- active_footnote: Igakuiselt aktiivseid kasutajaid (MAU)
- administered_by: 'Administraator:'
- api: API
- apps: Mobiilirakendused
- apps_platforms: Kasuta Mastodoni iOS-is, Androidis ja teistel platvormidel
- browse_directory: Sirvi profiilide kataloogi ja filtreeri huvide alusel
- browse_local_posts: Sirvi reaalajas voogu avalikest postitustest sellest serverist
- browse_public_posts: Sirvi reaalajas voogu avalikest postitustest Mastodonis
- contact: Kontakt
contact_missing: Määramata
contact_unavailable: Pole saadaval
- discover_users: Avasta kasutajaid
- documentation: Dokumentatsioon
- federation_hint_html: Kui Teil on kasutaja %{instance}-is, saate Te jälgida inimesi üks kõik millisel Mastodoni serveril ja kaugemalgi.
- get_apps: Proovi mobiilirakendusi
hosted_on: Mastodon majutatud %{domain}-is
- instance_actor_flash: |
- See konto on virtuaalne näitleja, mis esindab tervet serverit ning mitte ühtegi kindlat isikut.
- Seda kasutatakse föderatiivsetel põhjustel ning seda ei tohiks blokeerida, välja arvatud juhul, kui soovite blokeerida tervet serverit, kuid sellel juhul soovitame hoopis kasutada domeeni blokeerimist.
- learn_more: Lisateave
- privacy_policy: Privaatsuspoliitika
- rules: Serveri reeglid
- rules_html: 'Järgneb kokkuvõte reeglitest, mida pead järgima, kui lood endale siin Mastodoni serveris konto:'
- see_whats_happening: Vaata, mis toimub
- server_stats: 'Serveri statistika:'
- source_code: Lähtekood
- status_count_after:
- one: postitust
- other: staatuseid
- status_count_before: Kes on avaldanud
- tagline: Jälgi sõpru ja leia uusi
- terms: Kasutustingimused
- unavailable_content: Sisu pole saadaval
- unavailable_content_description:
- reason: Põhjus
- rejecting_media: 'Meedia failid sellelt serverilt ei töödelda ega salvestata ning mitte ühtegi eelvaadet ei kuvata, mis nõuab manuaalselt vajutust originaalfailile:'
- rejecting_media_title: Filtreeritud meediaga
- silenced: 'Postitused nendelt serveritelt peidetakse avalikes ajajoontes ja vestlustes ning mitte ühtegi teavitust ei tehta nende kasutajate tegevustest, välja arvatud juhul, kui Te neid jälgite:'
- suspended: 'Mitte mingeid andmeid nendelt serveritelt ei töödelda, salvestata ega vahetata, tehes igasuguse interaktsiooni või kirjavahetuse kasutajatega nendelt serveritelt võimatuks:'
- unavailable_content_html: Mastodon tavaliselt lubab Teil vaadata sisu ning suhelda kasutajatega üks kõik millisest teisest serverist fediversumis. Need on erandid, mis on paika pandud sellel kindlal serveril.
- user_count_after:
- one: kasutajale
- other: kasutajale
- user_count_before: Koduks
- what_is_mastodon: Mis on Mastodon?
accounts:
- choices_html: "%{name}-i valikud:"
- endorsements_hint: Te saate heaks kiita inimesi, keda jälgite, veebiliidesest ning neid kuvatakse siin.
- featured_tags_hint: Te saate valida kindlaid silte, mida kuvatakse siin.
follow: Jälgi
followers:
one: Jälgija
other: Jälgijaid
following: Jälgib
- joined: Liitus %{date}
last_active: viimati aktiivne
link_verified_on: Selle lingi autorsust kontrolliti %{date}
- media: Meedia
- moved_html: "%{name} kolis %{new_profile_link}:"
- network_hidden: Neid andmeid pole saadaval
nothing_here: Siin pole midagi!
- people_followed_by: Inimesed, keda %{name} jälgib
- people_who_follow: Inimesed, kes jälgivad kasutajat %{name}
pin_errors:
following: Te peate juba olema selle kasutaja jälgija, keda te heaks kiidate
posts:
one: Postitus
other: Postitused
posts_tab_heading: Postitused
- posts_with_replies: Postitused ja vastused
- roles:
- admin: Administraator
- bot: Robot
- group: Grupp
- moderator: Moderaator
- unavailable: Profiil pole saadaval
- unfollow: Lõpeta jälgimine
admin:
account_actions:
action: Täida tegevus
@@ -97,7 +35,6 @@ et:
avatar: Profiilipilt
by_domain: Domeen
change_email:
- changed_msg: Konto e-postiaadress edukalt muudetud!
current_email: Praegune e-postiaadress
label: Muuda e-posti aadressi
new_email: Uus е-posti aadress
@@ -161,12 +98,6 @@ et:
reset: Lähtesta
reset_password: Lähtesta salasõna
resubscribe: Telli taas
- role: Õigused
- roles:
- admin: Administraator
- moderator: Moderaator
- staff: Personal
- user: Kasutaja
search: Otsi
search_same_email_domain: Muud kasutajad sama e-posti domeeniga
search_same_ip: Teised kasutajad, kellel on sama IP
@@ -225,7 +156,6 @@ et:
update_announcement: Uuenda teadaannet
update_custom_emoji: Uuendas kohandatud emotikoni
update_status: Uuendas staatust
- deleted_status: "(kustutatud staatus)"
empty: Logisi ei leitud.
filter_by_action: Filtreeri tegevuse järgi
filter_by_user: Filtreeri kasutaja järgi
@@ -400,91 +330,15 @@ et:
unresolved: Lahendamata
updated_at: Uuendatud
settings:
- activity_api_enabled:
- desc_html: Kohalike postituste, aktiivsete kasutajate ja uute registreerimiste numbrid iganädalaste "ämbritena"
- title: Avalda koondstatistikat selle kasutaja aktiivsusest
- bootstrap_timeline_accounts:
- desc_html: Eralda mitut kasutajanime komadega. Ainult kohalikud ja lukustamata kasutajate nimed töötavad. Kui tühi, on vaikesätteks kõik kohalikud administraatorid.
- title: Vaikimisi jälgimised uutele kasutajatele
- contact_information:
- email: Äri e-post
- username: Kontakt kasutajanimi
- custom_css:
- desc_html: Muuda kujundust CSSi abil, mis laetakse igal lehel
- title: Kohandatud CSS
- default_noindex:
- desc_html: Mõjutab kõiki kasutajaid, kes pole seda sätet ise muutnud
- title: Loobu kasutajate otsingumootoritesse indekseerimisest vaikimisi
domain_blocks:
all: Kõigile
disabled: Mitte kellelegi
- title: Näita domeeniblokeeringuid
users: Sisseloginud kohalikele kasutajatele
- domain_blocks_rationale:
- title: Näita põhjendust
- hero:
- desc_html: Kuvatud kodulehel. Vähemalt 600x100px soovitatud. Kui pole seadistatud, kuvatakse serveri pisililt
- title: Maskotipilt
- mascot:
- desc_html: Kuvatakse mitmel lehel. Vähemalt 293x205px soovitatud. Kui pole seadistatud, kuvatakse vaikimisi maskott
- title: Maskotipilt
- peers_api_enabled:
- desc_html: Domeenid, mida see server on kohanud fediversumis
- title: Avalda nimekiri avastatud serveritest
- preview_sensitive_media:
- desc_html: Lingi eelvaated teistel veebisaitidel kuvab pisipilti, isegi kui meedia on märgitud tundlikuks
- title: Kuva tundlikku meediat OpenGraphi eelvaadetes
- profile_directory:
- desc_html: Luba kasutajate avastamine
- title: Luba profiilikataloog
- registrations:
- closed_message:
- desc_html: Kuvatud esilehel kui registreerimised on suletud. Te võite kasutada HTMLi silte
- title: Suletud registreerimiste sõnum
- deletion:
- desc_html: Luba kasutajatel oma konto kustutada
- title: Ava kontode kustutamine
- min_invite_role:
- disabled: Mitte keegi
- title: Luba kutseid
registrations_mode:
modes:
approved: Kinnitus vajalik konto loomisel
none: Keegi ei saa kontoid luua
open: Kõik võivad kontoid luua
- title: Registreerimisrežiim
- show_known_fediverse_at_about_page:
- desc_html: Kui lubatud, näitab kõiki teatud fediversumi tuututusi. Vastasel juhul näidatakse ainult kohalike tuututusi.
- title: Näita teatud fediversumit ajajoone eelvaates
- show_staff_badge:
- desc_html: Näita personalimärki kasutaja profiilil
- title: Näita personalimärki
- site_description:
- desc_html: Sissejuhatuslik lõik API kohta. Kirjelda, mis teeb selle Mastodoni serveri eriliseks ja ka muud tähtsat. Te saate kasutada HTMLi silte, peamiselt <a>
ja <em>
.
- title: Serveri kirjeldus
- site_description_extended:
- desc_html: Hea koht käitumisreegliteks, reegliteks, suunisteks ja muuks, mis teevad Teie serveri eriliseks. Te saate kasutada HTML silte
- title: Lisa informatsioon
- site_short_description:
- desc_html: Kuvatud küljeribal ja metasiltides. Kirjelda, mis on Mastodon ja mis on selles serveris erilist ühes lõigus.
- title: Serveri lühikirjeldus
- site_terms:
- desc_html: Te saate kirjutada oma privaatsuspoliitika, kasutustingimused jm seaduslikku infot. Te saate kasutada HTMLi silte
- title: Kasutustingimused
- site_title: Serveri nimi
- thumbnail:
- desc_html: Kasutatud OpenGraph ja API eelvaadeteks. 1200x630px soovitatud
- title: Serveri pisipilt
- timeline_preview:
- desc_html: Kuva avalikku ajajoont esilehel
- title: Ajajoone eelvaade
- title: Lehe seaded
- trendable_by_default:
- desc_html: Puudutab silte, mis pole varem keelatud
- title: Luba siltide trendimine ilma eelneva ülevaatuseta
- trends:
- desc_html: Kuva avalikult eelnevalt üle vaadatud sildid, mis on praegu trendikad
- title: Populaarsed sildid praegu
site_uploads:
delete: Kustuta üleslaetud fail
destroyed_msg: Üleslaetud fail edukalt kustutatud!
@@ -540,16 +394,12 @@ et:
applications:
created: Rakenduse loomine õnnestus
destroyed: Rakenduse kustutamine õnnestus
- invalid_url: Antud URL on vale
regenerate_token: Loo uus access token
token_regenerated: Access tokeni loomine õnnestus
warning: Olge nende andmetega ettevaatlikud. Ärge jagage neid kellegagi!
your_token: Teie access token
auth:
- apply_for_account: Taotle kutse
change_password: Salasõna
- checkbox_agreement_html: Ma nõustun serveri reeglitega ja kasutustingimustega
- checkbox_agreement_without_rules_html: Ma nõustun kasutustingimustega
delete_account: Kustuta konto
delete_account_html: Kui Te soovite oma kontot kustutada, võite jätkata siit . Teilt küsitakse kinnitust.
description:
@@ -579,7 +429,6 @@ et:
confirming: Ootan e-posti kinnitust.
pending: Teie taotlus ootab ülevaadet meie personali poolt. See võib võtta mõnda aega. Kui Teie taotlus on vastu võetud, saadetakse Teile e-kiri.
redirecting_to: Teie konto ei ole aktiivne, kuna hetkel suunatakse ümber kasutajale %{acct}.
- trouble_logging_in: Probleeme sisselogimisega?
authorize_follow:
already_following: Te juba jälgite seda kontot
already_requested: Te juba saatsite jälgimistaotluse sellele kontole
@@ -632,10 +481,6 @@ et:
more_details_html: Rohkemate detailide jaoks palun lugege privaatsuspoliitikat .
username_available: Teie kasutajanimi muutub uuesti kasutatavaks
username_unavailable: Teie kasutajanimi jääb mitte kasutatavaks
- directories:
- directory: Profiilikataloog
- explanation: Avasta kasutajaid nende huvide põhjal
- explore_mastodon: Avasta %{title}
domain_validator:
invalid_domain: ei ole sobiv domeeni nimi
errors:
@@ -685,7 +530,6 @@ et:
title: Muuda filtrit
errors:
invalid_context: Puudulik või vale kontekst
- invalid_irreversible: Taastamatu filter töötab ainult kodu või teavituste kontekstis
index:
delete: Kustuta
empty: Teil pole filtreid.
@@ -693,9 +537,6 @@ et:
new:
title: Lisa uus filter
footer:
- developers: Arendajad
- more: Rohkem…
- resources: Materjalid
trending_now: Praegu trendikad
generic:
all: Kõik
@@ -723,7 +564,6 @@ et:
following: Jälgimiste nimekiri
muting: Vaigistuse nimekiri
upload: Lae üles
- in_memoriam_html: Mälestamaks.
invites:
delete: Peata
expired: Aegunud
@@ -788,14 +628,6 @@ et:
moderation:
title: Moderatsioon
notification_mailer:
- digest:
- action: Vaata kõiki teateid
- body: Siin on kiire ülevaade sellest, mis sõnumeid Te ei näinud pärast Teie viimast külastust %{since}
- mention: "%{name} mainis Teid postituses:"
- new_followers_summary:
- one: Ja veel, Te saite ühe uue jälgija kui Te olite eemal! Jee!
- other: Ja veel, Te saite %{count} uut jälgijat kui Te olite eemal! Hämmastav!
- title: Teie puudumisel...
favourite:
body: "%{name} lisas Teie staatuse lemmikutesse:"
subject: "%{name} märkis su staatuse lemmikuks"
@@ -869,24 +701,7 @@ et:
remove_selected_follows: Lõpeta valitud kasutajate jälgimine
status: Konto olek
remote_follow:
- acct: Sisestage oma kasutajanimi@domeen, kust te soovite jälgida
missing_resource: Ei suutnud leida vajalikku suunamise URLi Teie konto jaoks
- no_account_html: Teil pole veel kontot? Saate luua ühe siit
- proceed: Jätka jälgimiseks
- prompt: 'Te hakkate jälgima:'
- reason_html: |-
- Miks on see samm vajalik?
- %{instance}
ei pruugi olla server, kus asub Teie konto, nii et me peame Teid suunama oma kodu serverile.
- remote_interaction:
- favourite:
- proceed: Jätka lemmikuks lisamiseks
- prompt: 'Te soovite lisada seda tuututust lemmikutesse:'
- reblog:
- proceed: Jätka upitamiseks
- prompt: 'Te soovite seda tuututust upitada:'
- reply:
- proceed: Jätka vastamiseks
- prompt: 'Te soovite vastata sellele tuututusele:'
scheduled_statuses:
over_daily_limit: Te olete jõudnud maksimum lubatud ajastatud tuututuste arvuni %{limit} selle päeva kohta
over_total_limit: Te olete jõudnud maksimum lubatud ajastatud tuututuste arvuni %{limit}
@@ -968,8 +783,6 @@ et:
sensitive_content: Tundlik sisu
tags:
does_not_match_previous_name: ei ühti eelmise nimega
- terms:
- title: "%{instance} Kasutustingimused ja Privaatsuspoliitika"
themes:
contrast: Mastodon (Kõrge kontrast)
default: Mastodon (Tume)
@@ -1005,20 +818,11 @@ et:
suspend: Konto peatatud
welcome:
edit_profile_action: Sea üles profiil
- edit_profile_step: Te saate oma profiili isikupärastada näiteks lisades profiilipildi, päise, muutes oma kuvanime ja muud. Kui Te soovite üle vaadata inimesi, kes Teid jälgida soovivad, saate lukustada oma konto.
explanation: Siin on mõned nõuanded, mis aitavad sul alustada
final_action: Alusa postitamist
- final_step: 'Alusta postitamist! Isegi ilma jälgijateta näevad teised Teie avalikke postitusi, näiteks kohalikul ajajoonel ning siltidest. Te võite ennast tutvustada kasutades silti #introductions.'
full_handle: Teie täisnimi
full_handle_hint: See on mida oma sõpradega jagada, et nad saaksid Teile sõnumeid saata ning Teid jälgida teiselt serverilt.
- review_preferences_action: Muuda eelistusi
- review_preferences_step: Kindlasti seadistage oma sätted Teie maitse järgi, näiteks e-kirju, mida soovite saada, või millist privaatsustaset Te soovite vaikimisi. Kui Teil pole merehaigust, võite Te näiteks lubada GIFide automaatse mängimise.
subject: Tere tulemast Mastodoni
- tip_federated_timeline: Föderatiivne ajajoon on reaalajas voogvaade tervest Mastodoni võrgust. Aga see sisaldab ainult inimesi, keda su naabrid tellivad, niiet see pole täiuslik.
- tip_following: Vaikimisi, Te jälgite ainult oma serveri administraator(eid). Et leida rohkem huvitavamaid inimesi, vaadake kohalikke ja föderatiivseid ajajooni.
- tip_local_timeline: Kohalik ajajoon on reaalajas voogvaade inimestest, kes on serveris %{instance}. Need on Teie lähimad naabrid!
- tip_mobile_webapp: Kui Teie mobiilne veebilehitseja pakub Teile lisada meid Teie avaekraanile, saate Te reaalajas teateid. See töötab nagu tavaline mobiilirakendus mitmel moel!
- tips: Nõuanded
title: Tere tulemast pardale, %{name}!
users:
follow_limit_reached: Te ei saa jälgida rohkem kui %{limit} inimest
diff --git a/config/locales/eu.yml b/config/locales/eu.yml
index 096dd276b5..d71a10dfa5 100644
--- a/config/locales/eu.yml
+++ b/config/locales/eu.yml
@@ -1,92 +1,26 @@
---
eu:
about:
- about_hashtag_html: Hauek #%{hashtag} traola duten bidalketa publikoak dira. Fedibertsoko edozein kontu baduzu haiekin elkarrekintza izan dezakezu.
about_mastodon_html: 'Etorkizuneko sare soziala: ez iragarkirik eta ez zelatatze korporatiborik, diseinu etikoa eta deszentralizazioa! Izan zure datuen jabea Mastodonekin!'
- about_this: Honi buruz
- active_count_after: aktibo
- active_footnote: Hilabeteko erabiltzaile aktiboak (HEA)
- administered_by: 'Administratzailea(k):'
- api: APIa
- apps: Aplikazio mugikorrak
- apps_platforms: Erabili Mastodon, iOS, Android eta beste plataformetatik
- browse_directory: Arakatu profilen direktorio bat eta iragazi interesen arabera
- browse_local_posts: Arakatu zerbitzari honetako bidalketa publikoen zuzeneko jario bat
- browse_public_posts: Arakatu Mastodoneko bidalketa publikoen zuzeneko jario bat
- contact: Kontaktua
contact_missing: Ezarri gabe
contact_unavailable: E/E
- continue_to_web: Jarraitu web aplikaziora
- discover_users: Aurkitu erabiltzaileak
- documentation: Dokumentazioa
- federation_hint_html: "%{instance} instantzian kontu bat izanda edozein Mastodon zerbitzariko jendea jarraitu ahal izango duzu, eta harago ere."
- get_apps: Probatu mugikorrerako aplikazio bat
hosted_on: Mastodon %{domain} domeinuan ostatatua
- instance_actor_flash: "Kontu hau zerbitzaria bera adierazten duen aktore birtual bat da, ez norbanako bat. Federaziorako erabiltzen da eta ez zenuke blokeatu behar instantzia osoa blokeatu nahi ez baduzu, kasu horretan domeinua blokeatzea egokia litzateke. \n"
- learn_more: Ikasi gehiago
- logged_in_as_html: "%{username} bezala saioa hasita zaude."
- logout_before_registering: Saioa hasi duzu jada.
- privacy_policy: Pribatutasun politika
- rules: Zerbitzariaren arauak
- rules_html: 'Behean Mastodon zerbitzari honetan kontua eduki nahi baduzu jarraitu beharreko arauen laburpena daukazu:'
- see_whats_happening: Ikusi zer gertatzen ari den
- server_stats: 'Zerbitzariaren estatistikak:'
- source_code: Iturburu kodea
- status_count_after:
- one: bidalketa
- other: bidalketa
- status_count_before: Hauek
- tagline: Jarraitu lagunak eta egin berriak
- terms: Erabilera baldintzak
- unavailable_content: Eduki eskuraezina
- unavailable_content_description:
- domain: Zerbitzaria
- reason: Arrazoia
- rejecting_media: 'Zerbitzari hauetako multimedia fitxategiak ez dira prozesatuko ez gordeko, eta ez dira iruditxoak bistaratuko, jatorrizko irudira joan behar izango da klik eginez:'
- rejecting_media_title: Iragazitako multimedia
- silenced: 'Zerbitzari hauetako bidalketak denbora-lerro eta elkarrizketa publikoetan ezkutatuko dira, eta bere erabiltzaileen interakzioek ez dute jakinarazpenik sortuko ez badituzu jarraitzen:'
- silenced_title: Isilarazitako zerbitzariak
- suspended: 'Ez da zerbitzari hauetako daturik prozesatuko, gordeko, edo partekatuko, zerbitzari hauetako erabiltzaileekin komunikatzea ezinezkoa eginez:'
- suspended_title: Kanporatutako zerbitzariak
- unavailable_content_html: Mastodonek orokorrean fedibertsoko beste zerbitzarietako erabiltzaileen edukia ikustea eta beraiekin aritzea ahalbidetzen dizu. Salbuespena egin da zerbitzari zehatz honekin.
- user_count_after:
- one: erabiltzaile
- other: erabiltzaile
- user_count_before: Hemen
- what_is_mastodon: Zer da Mastodon?
accounts:
- choices_html: "%{name}(r)en aukerak:"
- endorsements_hint: Jarraitzen duzun jendea sustatu dezakezu web interfazearen bidez, eta hemen agertuko da.
- featured_tags_hint: Hemen agertuko diren traolak nabarmendu ditzakezu.
follow: Jarraitu
followers:
one: Jarraitzaile
other: jarraitzaile
following: Jarraitzen
instance_actor_flash: Kontu hau zerbitzaria adierazten duen aktore birtual bat da eta ez banako erabiltzaile bat. Federatzeko helburuarekin erabiltzen da eta ez da kanporatu behar.
- joined: "%{date}(e)an elkartua"
last_active: azkenekoz aktiboa
link_verified_on: 'Esteka honen jabetzaren egiaztaketa data: %{date}'
- media: Multimedia
- moved_html: "%{name} hona migratu da %{new_profile_link}:"
- network_hidden: Informazio hau ez dago eskuragarri
nothing_here: Ez dago ezer hemen!
- people_followed_by: "%{name}(e)k jarraitzen dituenak"
- people_who_follow: "%{name} jarraitzen dutenak"
pin_errors:
following: Onetsi nahi duzun pertsona aurretik jarraitu behar duzu
posts:
one: Bidalketa
other: Bidalketa
posts_tab_heading: Bidalketa
- posts_with_replies: Bidalketak eta erantzunak
- roles:
- admin: Administratzailea
- bot: Bot-a
- group: Taldea
- moderator: Moderatzailea
- unavailable: Profila ez dago eskuragarri
- unfollow: Utzi jarraitzeari
admin:
account_actions:
action: Burutu ekintza
@@ -103,7 +37,6 @@ eu:
avatar: Abatarra
by_domain: Domeinua
change_email:
- changed_msg: e-mail kontua ongi aldatu da!
current_email: Uneko e-mail helbidea
label: Aldatu e-mail helbidea
new_email: E-mail berria
@@ -185,12 +118,6 @@ eu:
reset: Berrezarri
reset_password: Berrezarri pasahitza
resubscribe: Berriro harpidetu
- role: Baimenak
- roles:
- admin: Administratzailea
- moderator: Moderatzailea
- staff: Langilea
- user: Erabiltzailea
search: Bilatu
search_same_email_domain: E-mail domeinu bera duten beste erabiltzailean
search_same_ip: IP bera duten beste erabiltzaileak
@@ -295,7 +222,6 @@ eu:
create_unavailable_domain_html: "%{name}(e)k %{target} domeinurako banaketa gelditu du"
demote_user_html: "%{name} erabiltzaileak %{target} erabiltzailea mailaz jaitsi du"
destroy_announcement_html: "%{name} erabiltzaileak %{target} iragarpena ezabatu du"
- destroy_custom_emoji_html: "%{name} erabiltzaileak %{target} emojia suntsitu du"
destroy_domain_allow_html: "%{name} erabiltzaileak %{target} domeinuarekin federatzea debekatu du"
destroy_domain_block_html: "%{name} erabiltzaileak %{target} domeinua desblokeatu du"
destroy_email_domain_block_html: "%{name} erabiltzaileak %{target} e-posta helbideen domeinua desblokeatu du"
@@ -330,7 +256,6 @@ eu:
update_custom_emoji_html: "%{name} erabiltzaileak %{target} emoji-a eguneratu du"
update_domain_block_html: "%{name} erabiltzaileak %{target} domeinu-blokeoa eguneratu du"
update_status_html: "%{name} erabiltzaileak %{target} erabiltzailearen bidalketa eguneratu du"
- deleted_status: "(ezabatutako bidalketa)"
empty: Ez da egunkaririk aurkitu.
filter_by_action: Iragazi ekintzen arabera
filter_by_user: Iragazi erabiltzaileen arabera
@@ -631,94 +556,15 @@ eu:
empty: Ez da zerbitzariko araurik definitu oraindik.
title: Zerbitzariaren arauak
settings:
- activity_api_enabled:
- desc_html: Lokalki argitaratutako bidalketa kopurua, erabiltzaile aktiboak, eta izen emate berriak asteko
- title: Argitaratu erabiltzaile-jardueraren estatistikak
- bootstrap_timeline_accounts:
- desc_html: Banandu erabiltzaile-izenak koma bitartez. Giltzapetu gabeko kontu lokalekin dabil bakarrik. Hutsik dagoenean lehenetsitakoa admin lokal guztiak da.
- title: Lehenetsitako jarraipena erabiltzaile berrientzat
- contact_information:
- email: Laneko e-mail helbidea
- username: Kontaktuaren erabiltzaile-izena
- custom_css:
- desc_html: Aldatu itxura orri bakoitzean kargatutako CSS bidez
- title: CSS pertsonala
- default_noindex:
- desc_html: Ezarpen hau berez aldatu ez duten erabiltzaile guztiei eragiten die
- title: Utzi erabiltzaileak bilatzailearen indexaziotik kanpo lehenetsita
domain_blocks:
all: Guztiei
disabled: Inori ez
- title: Erakutsi domeinu-blokeoak
users: Saioa hasita duten erabiltzaile lokalei
- domain_blocks_rationale:
- title: Erakutsi arrazoia
- hero:
- desc_html: Azaleko orrian bistaratua. Gutxienez 600x100px aholkatzen da. Ezartzen ez bada, zerbitzariaren irudia hartuko du
- title: Azaleko irudia
- mascot:
- desc_html: Hainbat orritan bistaratua. Gutxienez 293x205px aholkatzen da. Ezarri ezean lehenetsitako maskota erakutsiko da
- title: Maskotaren irudia
- peers_api_enabled:
- desc_html: Zerbitzari honek fedibertsoan aurkitutako domeinu-izenak
- title: Argitaratu aurkitutako zerbitzarien zerrenda
- preview_sensitive_media:
- desc_html: Beste webguneetako esteken aurrebistak iruditxoa izango du multimedia hunkigarri gisa markatzen bada ere
- title: Erakutsi multimedia hunkigarria OpenGraph aurrebistetan
- profile_directory:
- desc_html: Baimendu erabiltzaileak aurkigarriak izatea
- title: Gaitu profil-direktorioa
- registrations:
- closed_message:
- desc_html: Azaleko orrian bistaratua izen ematea ixten denean. HTML etiketak erabili ditzakezu
- title: Izen emate itxiaren mezua
- deletion:
- desc_html: Baimendu edonori bere kontua ezabatzea
- title: Ireki kontu ezabaketa
- min_invite_role:
- disabled: Inor ez
- title: Baimendu hauen gobidapenak
- require_invite_text:
- desc_html: Izen emateak eskuz onartu behar direnean, "Zergatik elkartu nahi duzu?" testu sarrera derrigorrezko bezala ezarri, ez hautazko
- title: Eskatu erabiltzaile berriei bat egiteko arrazoia sartzeko
registrations_mode:
modes:
approved: Izena emateko onarpena behar da
none: Ezin du inork izena eman
open: Edonork eman dezake izena
- title: Erregistratzeko modua
- show_known_fediverse_at_about_page:
- desc_html: Txandakatzean, fedibertso ezagun osoko tootak bistaratuko ditu aurrebistan. Bestela, toot lokalak besterik ez ditu erakutsiko
- title: Erakutsi fedibertsu ezagun osoko denbora-lerroa aurrebistan
- show_staff_badge:
- desc_html: Erakutsi langile banda erabiltzailearen orrian
- title: Erakutsi langile banda
- site_description:
- desc_html: Azaleko orrian agertuko den sarrera paragrafoa. Azaldu zerk egiten duen berezi Mastodon zerbitzari hau eta garrantzizko beste edozer. HTML etiketak erabili ditzakezu, zehazki <a>
eta <em>
.
- title: Zerbitzariaren deskripzioa
- site_description_extended:
- desc_html: Zure jokabide-koderako toki on bat, arauak, gidalerroak eta zure zerbitzari desberdin egiten duten bestelakoak. HTML etiketak erabili ditzakezu
- title: Informazio hedatu pertsonalizatua
- site_short_description:
- desc_html: Albo-barra eta meta etiketetan bistaratua. Deskribatu zerk egiten duen Mastodon zerbitzari hau berezia paragrafo batean. Hutsik lagatzekotan lehenetsitako deskripzioa agertuko da.
- title: Zerbitzariaren deskripzio laburra
- site_terms:
- desc_html: Zure pribatutasun politika, erabilera baldintzak eta bestelako testu legalak idatzi ditzakezu. HTML etiketak erabili ditzakezu
- title: Erabilera baldintza pertsonalizatuak
- site_title: Zerbitzariaren izena
- thumbnail:
- desc_html: Aurrebistetarako erabilia OpenGraph eta API bidez. 1200x630px aholkatzen da
- title: Zerbitzariaren iruditxoa
- timeline_preview:
- desc_html: Bistaratu denbora-lerro publikoa hasiera orrian
- title: Denbora-lerroaren aurrebista
- title: Gunearen ezarpenak
- trendable_by_default:
- desc_html: Aurretik debekatu ez diren traola guztiei eragiten dio
- title: Baimendu traolak joera bihurtzea aurretik errebisatu gabe
- trends:
- desc_html: Erakutsi publikoki orain joeran dauden aurretik errebisatutako traolak
- title: Traolak joeran
site_uploads:
delete: Ezabatu igotako fitxategia
destroyed_msg: Guneko igoera ongi ezabatu da!
@@ -855,16 +701,12 @@ eu:
applications:
created: Aplikazioa ongi sortu da
destroyed: Aplikazioa ongi ezabatu da
- invalid_url: Emandako URL-a baliogabea da
regenerate_token: Birsortu sarbide token-a
token_regenerated: Sarbide token-a ongi birsortu da
warning: Kontuz datu hauekin, ez partekatu inoiz inorekin!
your_token: Zure sarbide token-a
auth:
- apply_for_account: Eskatu gonbidapen bat
change_password: Pasahitza
- checkbox_agreement_html: Zerbitzariaren arauak eta erabilera baldintzak onartzen ditut
- checkbox_agreement_without_rules_html: Erabilera baldintzak onartzen ditut
delete_account: Ezabatu kontua
delete_account_html: Kontua ezabatu nahi baduzu, jarraitu hemen . Berrestea eskatuko zaizu.
description:
@@ -903,7 +745,6 @@ eu:
pending: Zure eskaera gainbegiratzeko dago oraindik. Honek denbora behar lezake. Zure eskaera onartzen bada e-mail bat jasoko duzu.
redirecting_to: Zure kontua ez dago aktibo orain %{acct} kontura birbideratzen duelako.
too_fast: Formularioa azkarregi bidali duzu, saiatu berriro.
- trouble_logging_in: Arazoak saioa hasteko?
use_security_key: Erabili segurtasun gakoa
authorize_follow:
already_following: Kontu hau aurretik jarraitzen duzu
@@ -961,10 +802,6 @@ eu:
more_details_html: Xehetasun gehiagorako, ikusi pribatutasun politika .
username_available: Zure erabiltzaile-izena berriro eskuragarri egongo da
username_unavailable: Zure erabiltzaile-izena ez da eskuragarri egongo
- directories:
- directory: Profilen direktorioa
- explanation: Deskubritu erabiltzaileak interesen arabera
- explore_mastodon: Esploratu %{title}
disputes:
strikes:
appeal: Apelazioa
@@ -1022,7 +859,6 @@ eu:
title: Editatu iragazkia
errors:
invalid_context: Testuinguru baliogabe edo hutsa eman da
- invalid_irreversible: Behin betiko iragazketa hasiera edo jakinarazpenen testuinguruan besterik ez dabil
index:
delete: Ezabatu
empty: Ez duzu iragazkirik.
@@ -1030,9 +866,6 @@ eu:
new:
title: Gehitu iragazki berria
footer:
- developers: Garatzaileak
- more: Gehiago…
- resources: Baliabideak
trending_now: Joera orain
generic:
all: Denak
@@ -1065,7 +898,6 @@ eu:
following: Jarraitutakoen zerrenda
muting: Mutututakoen zerrenda
upload: Igo
- in_memoriam_html: Memoriala.
invites:
delete: Desaktibatu
expired: Iraungitua
@@ -1145,14 +977,6 @@ eu:
carry_mutes_over_text: Erabiltzaile hau %{acct} kontutik dator, zeina isilarazita daukazun.
copy_account_note_text: 'Erabiltzaile hau %{acct} kontutik dator, hemen berari buruzko zure aurreko oharrak:'
notification_mailer:
- digest:
- action: Ikusi jakinarazpen guztiak
- body: Hona zure %{since}(e)ko azken bisitatik galdu dituzun mezuen laburpen bat
- mention: "%{name}(e)k aipatu zaitu:"
- new_followers_summary:
- one: Kanpoan zeundela jarraitzaile berri bat gehitu zaizu!
- other: Kanpoan zeundela %{count} jarraitzaile berri bat gehitu zaizkizu!
- title: Kanpoan zeundela...
favourite:
body: "%{name}(e)k zure bidalketa gogoko du:"
subject: "%{name}(e)k zure bidalketa gogoko du"
@@ -1244,22 +1068,7 @@ eu:
remove_selected_follows: Utzi hautatutako erabiltzaileak jarraitzeari
status: Kontuaren egoera
remote_follow:
- acct: Sartu jarraitzeko erabili nahi duzun erabiltzaile@domeinua
missing_resource: Ezin izan da zure konturako behar den birbideratze URL-a
- no_account_html: Ez duzu konturik? Izena eman dezakezu
- proceed: Ekin jarraitzeari
- prompt: 'Hau jarraituko duzu:'
- reason_html: "Zergaitik eman behar da urrats hau? %{instance}
agian ez da izena eman duzun zerbitzaria, eta zure hasiera-zerbitzarira eraman behar zaitugu aurretik."
- remote_interaction:
- favourite:
- proceed: Bihurtu gogoko
- prompt: 'Bidalketa hau gogoko bihurtu nahi duzu:'
- reblog:
- proceed: Eman bultzada
- prompt: 'Bidalketa honi bultzada eman nahi diozu:'
- reply:
- proceed: Ekin erantzuteari
- prompt: 'Bidalketa honi erantzun nahi diozu:'
scheduled_statuses:
over_daily_limit: 'Egun horretarako programatutako bidalketa kopuruaren muga gainditu duzu: %{limit}'
over_total_limit: 'Programatutako bidalketa kopuruaren muga gainditu duzu: %{limit}'
@@ -1416,8 +1225,6 @@ eu:
sensitive_content: 'Kontuz: Eduki hunkigarria'
tags:
does_not_match_previous_name: ez dator aurreko izenarekin bat
- terms:
- title: "%{instance} instantziaren erabilera baldintzak eta pribatutasun politika"
themes:
contrast: Mastodon (Kontraste altua)
default: Mastodon (Iluna)
@@ -1459,20 +1266,11 @@ eu:
suspend: Kontu kanporatua
welcome:
edit_profile_action: Ezarri profila
- edit_profile_step: Pertsonalizatu profila abatar bat igoz, goiburu bat, zure pantaila-izena aldatuz eta gehiago. Jarraitzaile berriak onartu aurretik gainbegiratu nahi badituzu, kontua giltzaperatu dezakezu.
explanation: Hona hasteko aholku batzuk
final_action: Hasi bidalketak argitaratzen
- final_step: 'Hasi argitaratzen! Jarraitzailerik ez baduzu ere zure bidalketa publikoak besteek ikusi ditzakete, esaterako denbora-lerro lokalean eta traoletan. Zure burua aurkeztu nahi baduzu #aurkezpenak traola erabili zenezake.'
full_handle: Zure erabiltzaile-izen osoa
full_handle_hint: Hau da lagunei esango zeniekeena beste zerbitzari batetik zu jarraitzeko edo zuri mezuak bidaltzeko.
- review_preferences_action: Aldatu hobespenak
- review_preferences_step: Ziurtatu hobespenak ezartzen dituzula, hala nola, jaso nahi dituzu e-postak edo lehenetsitako pribatutasuna bidalketa berrietarako. Mareatzen ez bazaitu GIF-ak automatikoki abiatzea ere ezarri dezakezu.
subject: Ongi etorri Mastodon-era
- tip_federated_timeline: Federatutako denbora-lerroan Mastodon sarearen trafikoa ikusten da. Baina zure instantziako auzokideak jarraitutakoak besterik ez daude hor, ez da osoa.
- tip_following: Lehenetsita zerbitzariko administratzailea jarraitzen duzu. Jende interesgarri gehiago aurkitzeko, egiaztatu denbora-lerro lokala eta federatua.
- tip_local_timeline: Denbora-lerro lokalean %{instance} instantziako trafikoa ikusten da. Hauek zure instantziako auzokideak dira!
- tip_mobile_webapp: Zure mugikorreko nabigatzaileak Mastodon hasiera pantailan gehitzea eskaintzen badizu, push jakinarazpenak jaso ditzakezu. Aplikazio natiboaren parekoa da zentzu askotan!
- tips: Aholkuak
title: Ongi etorri, %{name}!
users:
follow_limit_reached: Ezin dituzu %{limit} pertsona baino gehiago jarraitu
diff --git a/config/locales/fa.yml b/config/locales/fa.yml
index 1c7b9f9cc2..7dc4dae0a8 100644
--- a/config/locales/fa.yml
+++ b/config/locales/fa.yml
@@ -1,94 +1,26 @@
---
fa:
about:
- about_hashtag_html: اینها نوشتههای عمومی هستند که برچسب (هشتگ) #%{hashtag} را دارند. اگر شما روی هر کارسازی حساب داشته باشید میتوانید به این نوشتهها واکنش نشان دهید.
about_mastodon_html: 'شبکهٔ اجتماعی آینده: بدون تبلیغات، بدون شنود از طرف شرکتها، طراحی اخلاقمدار، و معماری غیرمتمرکز! با ماستودون صاحب دادههای خودتان باشید!'
- about_this: درباره
- active_count_after: فعّال
- active_footnote: کاربران فعّال ماهانه
- administered_by: 'به مدیریت:'
- api: رابط برنامهنویسی کاربردی
- apps: اپهای موبایل
- apps_platforms: ماستودون را در iOS، اندروید، و سایر سیستمها داشته باشید
- browse_directory: شاخهٔ نمایهای را مرور کرده و بر حسب علاقه، بپالایید
- browse_local_posts: جریانی زنده از فرستههای عمومی این کارساز را ببینید
- browse_public_posts: جریانی زنده از فرستههای عمومی روی ماستودون را ببینید
- contact: تماس
contact_missing: تنظیم نشده
contact_unavailable: موجود نیست
- continue_to_web: در کارهٔ وب ادامه دهید
- discover_users: یافتن کاربران
- documentation: مستندات
- federation_hint_html: با حسابی روی %{instance} میتوانید افراد روی هر کارساز ماستودون و بیش از آن را پی بگیرید.
- get_apps: یک اپ موبایل را بیازمایید
hosted_on: ماستودون، میزبانیشده روی %{domain}
- instance_actor_flash: |
- این حساب، بازیگری مجازی به نمایندگی خود کارساز بوده و کاربری واقعی نیست.
- این حساب برای مقاصد خودگردانی به کار میرفته و نباید مسدود شود؛ مگر این که بخواهید کل نمونه را مسدود کنید که در آن صورت نیز باید از انسداد دامنه استفاده کنید.
- learn_more: بیشتر بدانید
- logged_in_as_html: شما هماکنون به عنوان %{username} وارد شدهاید.
- logout_before_registering: شما هماکنون وارد شدهاید.
- privacy_policy: سیاست رازداری
- rules: قوانین کارساز
- rules_html: 'در زیر خلاصهای از قوانینی که در صورت علاقه به داشتن حسابی روی این کارساز ماستودون، باید رعایت کنید آمده است:'
- see_whats_happening: ببینید چه خبر است
- server_stats: 'آمار کارساز:'
- source_code: کدهای منبع
- status_count_after:
- one: چیز نوشتهاند
- other: چیز نوشتهاند
- status_count_before: که در کنار هم
- tagline: با دوستان خود در ارتباط باشید و دوستان تازه پیدا کنید
- terms: شرایط خدمت
- unavailable_content: محتوای ناموجود
- unavailable_content_description:
- domain: کارساز
- reason: دلیل
- rejecting_media: 'پروندههای رسانه از این کارسازها پردازش یا ذخیره نخواهند شد و هیچ بندانگشتیای نمایش نخواهد یافت. نیازمند کلیک دستی برای رسیدن به پروندهٔ اصلی:'
- rejecting_media_title: رسانههای پالوده
- silenced: 'فرستهها از این کارسازها در خطزمانیهای عمومی و گفتوگوها پنهان خواهند بود و هیچ آگاهیای از برهمکنشهای کاربرانشان ایجاد نخواهد شد،مگر این که دنبالشان کنید:'
- silenced_title: کارسازهای خموش
- suspended: 'هیچ دادهای از این کارسازها پردازش، ذخیره یا مبادله نخواهد شد، که هرگونه برهمکنش یا ارتباط با کاربران این کارسازها را غیرممکن خواهد کرد:'
- suspended_title: کارسازهای معلّق
- unavailable_content_html: ماستودون عموماً میگذارد محتوا را از از هر کارساز دیگری در دنیای شبکههای اجتماعی غیرمتمرکز دیده و با آنان برهمکنش داشته باشید. اینها استثناهایی هستند که روی این کارساز خاص وضع شدهاند.
- user_count_after:
- one: کاربر
- other: کاربر
- user_count_before: میزبان
- what_is_mastodon: ماستودون چیست؟
accounts:
- choices_html: 'انتخابهای %{name}:'
- endorsements_hint: شما میتوانید از محیط وب ماستودون، کسانی را که پی میگیرید به دیگران هم پیشنهاد دهید تا اینجا نشان داده شوند.
- featured_tags_hint: میتوانید برچسبهای خاصی را مشخّص کنید تا اینجا دیده شوند.
follow: پیگیری
followers:
one: پیگیر
other: پیگیر
following: پی میگیرد
instance_actor_flash: این حساب یک عامل مجازی است که به نمایندگی از خود کارساز استفاده میشود و نه هیچ یکی از کاربران. این حساب به منظور اتصال به فدراسیون استفاده میشود و نباید معلق شود.
- joined: پیوسته از %{date}
last_active: آخرین فعالیت
link_verified_on: مالکیت این پیوند در %{date} بررسی شد
- media: عکس و ویدیو
- moved_html: "%{name} حساب خود را به %{new_profile_link} منتقل کرده است:"
- network_hidden: این اطلاعات در دسترس نیست
nothing_here: اینجا چیزی نیست!
- people_followed_by: کسانی که %{name} پی میگیرد
- people_who_follow: کسانی که %{name} را پی میگیرند
pin_errors:
following: باید کاربری که میخواهید پیشنهاد دهید را دنبال کرده باشید
posts:
one: فرسته
other: فرستهها
posts_tab_heading: فرستهها
- posts_with_replies: فرستهها و پاسخها
- roles:
- admin: مدیر
- bot: ربات
- group: گروه
- moderator: ناظر
- unavailable: نمایهٔ ناموجود
- unfollow: پایان پیگیری
admin:
account_actions:
action: انجامِ کنش
@@ -105,7 +37,6 @@ fa:
avatar: تصویر نمایه
by_domain: دامین
change_email:
- changed_msg: نشانی رایانامهٔ این حساب با موفقیت تغییر کرد!
current_email: رایانامهٔ کنونی
label: تغییر رایانامه
new_email: رایانامهٔ جدید
@@ -184,12 +115,6 @@ fa:
reset: بازنشانی
reset_password: بازنشانی رمز
resubscribe: اشتراک دوباره
- role: اجازهها
- roles:
- admin: مدیر
- moderator: ناظر
- staff: کارمند
- user: کاربر
search: جستجو
search_same_email_domain: دیگر کاربران با دامنهٔ رایانامهٔ یکسان
search_same_ip: دیگر کاربران با IP یکسان
@@ -294,7 +219,6 @@ fa:
create_unavailable_domain_html: "%{name} تحویل محتوا به دامنه %{target} را متوقف کرد"
demote_user_html: "%{name} کاربر %{target} را تنزل داد"
destroy_announcement_html: "%{name} اعلامیهٔ %{target} را حذف کرد"
- destroy_custom_emoji_html: "%{name} اموجی %{target} را نابود کرد"
destroy_domain_allow_html: "%{name} دامنهٔ %{target} را از فهرست مجاز برداشت"
destroy_domain_block_html: "%{name} انسداد دامنهٔ %{target} را رفع کرد"
destroy_email_domain_block_html: "%{name} انسداد دامنهٔ رایانامهٔ %{target} را برداشت"
@@ -329,7 +253,6 @@ fa:
update_custom_emoji_html: "%{name} شکلک %{target} را بهروز کرد"
update_domain_block_html: "%{name} مسدودسازی دامنه را برای %{target} بهروزرسانی کرد"
update_status_html: "%{name} نوشتهٔ %{target} را بهروز کرد"
- deleted_status: "(نوشتهٔ پاکشده)"
empty: هیچ گزارشی پیدا نشد.
filter_by_action: پالایش بر اساس کنش
filter_by_user: پالایش بر اساس کاربر
@@ -611,94 +534,15 @@ fa:
empty: هنوز هیچ قانونی برای کارساز تعریف نشده.
title: قوانین کارساز
settings:
- activity_api_enabled:
- desc_html: تعداد فرستههای محلی، کاربران فعال، و کاربران تازه در هر هفته
- title: انتشار آمار تجمیعی دربارهٔ فعالیت کاربران
- bootstrap_timeline_accounts:
- desc_html: نامهای کاربری را با ویرگول از هم جدا کنید. این حسابها تضمین میشوند که در پیشنهادهای پیگیری نشان داده شوند
- title: پیگیریهای پیشفرض برای کاربران تازه
- contact_information:
- email: رایانامهٔ تجاری
- username: نام کاربری
- custom_css:
- desc_html: ظاهر ماستودون را با CSS-ای که در همهٔ صفحهها جاسازی میشود تغییر دهید
- title: سبک CSS سفارشی
- default_noindex:
- desc_html: روی همهٔ کاربرانی که این تنظیم را خودشان تغییر ندادهاند تأثیر میگذارد
- title: درخواست پیشفرض از طرف کاربران برای ظاهر نشدن در نتایج موتورهای جستجوگر
domain_blocks:
all: برای همه
disabled: برای هیچکدام
- title: نمایش دامنههای مسدود شده
users: برای کاربران محلی واردشده
- domain_blocks_rationale:
- title: دیدن دلیل
- hero:
- desc_html: در صفحهٔ آغازین نمایش مییابد. دستکم ۶۰۰×۱۰۰ پیکسل توصیه میشود. اگر تعیین نشود، با تصویر بندانگشتی سرور جایگزین خواهد شد
- title: تصویر سربرگ
- mascot:
- desc_html: در صفحههای گوناگونی نمایش مییابد. دستکم ۲۹۳×۲۰۵ پیکسل. اگر تعیین نشود، با تصویر پیشفرض جایگزین خواهد شد
- title: تصویر نماد
- peers_api_enabled:
- desc_html: دامینهایی که این سرور به آنها برخورده است
- title: انتشار سیاههٔ کارسازهای کشف شده در API
- preview_sensitive_media:
- desc_html: پیوند به سایتهای دیگر پیشنمایشی خواهد داشت که یک تصویر کوچک را نشان میدهد، حتی اگر نوشته به عنوان حساس علامتگذاری شده باشد
- title: نمایش تصاویر حساسیتبرانگیز در پیشنمایشهای OpenGraph
- profile_directory:
- desc_html: اجازه به کاربران برای قابل کشف بودن
- title: به کار انداختن شاخهٔ نمایه
- registrations:
- closed_message:
- desc_html: وقتی امکان ثبت نام روی سرور فعال نباشد در صفحهٔ اصلی نمایش مییابد میتوانید HTML بنویسید
- title: پیغام برای فعالنبودن ثبت نام
- deletion:
- desc_html: هر کسی بتواند حساب خود را پاک کند
- title: فعالسازی پاککردن حساب
- min_invite_role:
- disabled: هیچ کس
- title: اجازهٔ دعوت به
- require_invite_text:
- desc_html: زمانی که نامنویسی نیازمند تایید دستی است، متن «چرا میخواهید عضو شود؟» بخش درخواست دعوت را به جای اختیاری، اجباری کنید
- title: نیازمند پر کردن متن درخواست دعوت توسط کاربران جدید
registrations_mode:
modes:
approved: ثبت نام نیازمند تأیید مدیران است
none: کسی نمیتواند ثبت نام کند
open: همه میتوانند ثبت نام کنند
- title: شرایط ثبت نام
- show_known_fediverse_at_about_page:
- desc_html: اگر از کار انداخته شود، خطزمانی همگانی را محدود میکند؛ تا فقط محتوای محلّی را نمایش دهد.
- title: نمایش سرورهای دیگر در پیشنمایش این سرور
- show_staff_badge:
- desc_html: نمایش علامت همکار روی صفحهٔ کاربر
- title: نمایش علامت همکار
- site_description:
- desc_html: معرفی کوتاهی دربارهٔ رابط برنامهنویسی کاربردی. دربارهٔ این که چه چیزی دربارهٔ این کارساز ماستودون ویژه است یا هر چیز مهم دیگری بنویسید. میتوانید HTML بنویسید، بهویژه <a>
و <em>
.
- title: دربارهٔ این سرور
- site_description_extended:
- desc_html: جای خوبی برای نوشتن سیاستهای کاربری، قانونها، راهنماها، و هر چیزی که ویژهٔ این سرور است. تگهای HTML هم مجاز است
- title: اطلاعات تکمیلی سفارشی
- site_short_description:
- desc_html: روی نوار کناری و همچنین به عنوان فرادادهٔ صفحهها نمایش مییابد. در یک بند توضیح دهید که ماستودون چیست و چرا این کارساز با بقیه فرق دارد.
- title: توضیح کوتاه دربارهٔ سرور
- site_terms:
- desc_html: میتوانید سیاست رازداری، شرایط استفاده، یا سایر مسائل قانونی را به دلخواه خود بنویسید. تگهای HTML هم مجاز است
- title: شرایط استفادهٔ سفارشی
- site_title: نام سرور
- thumbnail:
- desc_html: برای دیدن با OpenGraph و رابط برنامهنویسی. وضوح پیشنهادی ۱۲۰۰×۶۳۰ پیکسل
- title: تصویر کوچک سرور
- timeline_preview:
- desc_html: نوشتههای عمومی این سرور را در صفحهٔ آغازین نشان دهید
- title: پیشنمایش نوشتهها
- title: تنظیمات سایت
- trendable_by_default:
- desc_html: روی برچسبهایی که پیش از این ممنوع نشدهاند تأثیر میگذارد
- title: بگذارید که برچسبهای پرطرفدار بدون بازبینی قبلی نمایش داده شوند
- trends:
- desc_html: برچسبهای عمومی که پیشتر بازبینی شدهاند و هماینک پرطرفدارند
- title: پرطرفدارها
site_uploads:
delete: پرونده بارگذاری شده را پاک کنید
destroyed_msg: بارگذاری پایگاه با موفقیت حذف شد!
@@ -780,7 +624,6 @@ fa:
subject: گزارش تازهای برای %{instance} (#%{id})
new_trends:
new_trending_links:
- no_approved_links: در حال حاضر هیچ پیوند پرطرفداری پذیرفته نشده است.
title: پیوندهای داغ
new_trending_statuses:
title: فرستههای داغ
@@ -813,16 +656,12 @@ fa:
applications:
created: برنامه با موفقیت ساخته شد
destroyed: برنامه با موفقیت پاک شد
- invalid_url: نشانی واردشده معتبر نیست
regenerate_token: دوبارهسازی کد دسترسی
token_regenerated: کد دسترسی با موفقیت ساخته شد
warning: خیلی مواظب این اطلاعات باشید و آن را به هیچ کس ندهید!
your_token: کد دسترسی شما
auth:
- apply_for_account: درخواست دعوتنامه
change_password: رمز
- checkbox_agreement_html: با قانونهای این کارساز و شرایط خدماتش موافقم
- checkbox_agreement_without_rules_html: من با شرایط استفاده موافقم
delete_account: پاککردن حساب
delete_account_html: اگر میخواهید حساب خود را پاک کنید، از اینجا پیش بروید. از شما درخواست تأیید خواهد شد.
description:
@@ -860,7 +699,6 @@ fa:
pending: درخواست شما منتظر تأیید مسئولان سایت است و این فرایند ممکن است کمی طول بکشد. اگر درخواست شما پذیرفته شود به شما ایمیلی فرستاده خواهد شد.
redirecting_to: حساب شما غیرفعال است زیرا هماکنون به %{acct} منتقل شده است.
too_fast: فرم با سرعت بسیار زیادی فرستاده شد، دوباره تلاش کنید.
- trouble_logging_in: برای ورود مشکلی دارید؟
use_security_key: استفاده از کلید امنیتی
authorize_follow:
already_following: شما همین الان هم این حساب را پیمیگیرید
@@ -918,10 +756,6 @@ fa:
more_details_html: برای اطلاعات بیشتر سیاست رازداری را ببینید.
username_available: نام کاربری شما دوباره در دسترس خواهد بود
username_unavailable: نام کاربری شما برای دیگران غیرقابل دسترس خواهد ماند
- directories:
- directory: شاخهٔ نمایه
- explanation: کاربران را بر اساس علاقهمندیهایشان بیابید
- explore_mastodon: گشت و گذار در %{title}
disputes:
strikes:
appeal: درخواست تجدیدنظر
@@ -985,7 +819,6 @@ fa:
title: ویرایش پالایه
errors:
invalid_context: زمینهای موجود نیست یا نامعتبر است
- invalid_irreversible: پالایش برگشتناپذیر تنها در زمینهٔ خانه یا آگاهیها کار میکنند
index:
delete: پاککردن
empty: هیچ پالایهای ندارید.
@@ -993,9 +826,6 @@ fa:
new:
title: افزودن پالایهٔ جدید
footer:
- developers: برنامهنویسان
- more: بیشتر…
- resources: منابع
trending_now: پرطرفدار
generic:
all: همه
@@ -1028,7 +858,6 @@ fa:
following: سیاههٔ پیگیری
muting: سیاههٔ خموشی
upload: بارگذاری
- in_memoriam_html: به یادبود.
invites:
delete: غیرفعالسازی
expired: منقضیشده
@@ -1111,14 +940,6 @@ fa:
admin:
sign_up:
subject: "%{name} ثبت نام کرد"
- digest:
- action: دیدن تمامی آگاهیها
- body: خلاصهای از پیغامهایی که از زمان آخرین بازدید شما در %{since} فرستاده شد
- mention: "%{name} اینجا از شما نام برد:"
- new_followers_summary:
- one: در ضمن، وقتی که نبودید یک پیگیر تازه پیدا کردید! ای ول!
- other: در ضمن، وقتی که نبودید %{count} پیگیر تازه پیدا کردید! چه عالی!
- title: در مدتی که نبودید...
favourite:
body: "%{name} این نوشتهٔ شما را پسندید:"
subject: "%{name} نوشتهٔ شما را پسندید"
@@ -1210,22 +1031,7 @@ fa:
remove_selected_follows: به پیگیری از کاربران انتخابشده پایان بده
status: وضعیت حساب
remote_follow:
- acct: نشانی حساب username@domain خود را اینجا بنویسید
missing_resource: نشانی اینترنتی برای رسیدن به حساب شما پیدا نشد
- no_account_html: هنوز عضو نیستید؟ اینجا میتوانید حساب باز کنید
- proceed: درخواست پیگیری
- prompt: 'شما قرار است این حساب را پیگیری کنید:'
- reason_html: "چرا این گام ضروریست؟ ممکن است %{instance}
کارسازی نباشد که شما رویش حساب دارید؛ پس لازم است پیش از هرچیز، به کارساز خودتان هدایتتان کنیم."
- remote_interaction:
- favourite:
- proceed: به سمت پسندیدن
- prompt: 'شما میخواهید این فرسته را بپسندید:'
- reblog:
- proceed: به سمت تقویت
- prompt: 'شما میخواهید این فرسته را تقویت کنید:'
- reply:
- proceed: به سمت پاسخدادن
- prompt: 'شما میخواهید به این فرسته پاسخ دهید:'
scheduled_statuses:
over_daily_limit: شما از حد مجاز %{limit} فرسته زمانبندیشده در آن روز فراتر رفتهاید
over_total_limit: شما از حد مجاز %{limit} فرسته زمانبندیشده فراتر رفتهاید
@@ -1383,8 +1189,6 @@ fa:
sensitive_content: محتوای حساس
tags:
does_not_match_previous_name: با نام پیشین مطابق نیست
- terms:
- title: شرایط استفاده و سیاست رازداری %{instance}
themes:
contrast: ماستودون (سایهروشن بالا)
default: ماستودون (تیره)
@@ -1442,20 +1246,11 @@ fa:
suspend: حساب معلق شده است
welcome:
edit_profile_action: تنظیم نمایه
- edit_profile_step: 'شما میتوانید نمایهٔ خود را به دلخواه خود تغییر دهید: میتوانید تصویر نمایه، تصویر پسزمینه، نام، و چیزهای دیگری را تعیین کنید. اگر بخواهید، میتوانید حساب خود را خصوصی کنید تا فقط کسانی که شما اجازه میدهید بتوانند پیگیر حساب شما شوند.'
explanation: نکتههایی که برای آغاز کار به شما کمک میکنند
final_action: چیزی منتشر کنید
- final_step: 'چیزی بنویسید! حتی اگر الان کسی پیگیر شما نباشد، دیگران نوشتههای عمومی شما را میبینند، مثلاً در فهرست نوشتههای محلی و در برچسب (هشتگ)ها. شاید بخواهید با برچسب #معرفی خودتان را معرفی کنید.'
full_handle: نام کاربری کامل شما
full_handle_hint: این چیزی است که باید به دوستانتان بگویید تا بتوانند از کارسازی دیگر به شما پیام داده یا پیگیرتان شوند.
- review_preferences_action: تغییر ترجیحات
- review_preferences_step: با رفتن به صفحهٔ ترجیحات میتوانید چیزهای گوناگونی را تنظیم کنید. مثلاً این که چه ایمیلهای آگاهسازیای به شما فرستاده شود، یا حریم خصوصی پیشفرض نوشتههایتان چه باشد. اگر بیماری سفر (حالت تهوع بر اثر دیدن اجسام متحرک) ندارید، میتوانید پخش خودکار ویدیوها را فعال کنید.
subject: به ماستودون خوش آمدید
- tip_federated_timeline: "«فهرست نوشتههای همهجا» نمایی کلی از شبکهٔ ماستودون است. ولی فقط شامل افرادیست که همسایگانتان پیگیرشان هستند؛ پس کامل نیست."
- tip_following: به طور پیشگزیده مدیر(ان) کارسازتان را پی میگیرید. برای یافتن افراد جالب دیگر، فهرست «نوشتههای محلی» و «نوشتههای همهجا» را ببینید.
- tip_local_timeline: فهرست نوشتههای محلی نمایی کلی از کاربران روی %{instance} را ارائه میدهد. اینها همسایههای شما هستند!
- tip_mobile_webapp: اگر مرورگر همراهتان پیشنهاد افزودن ماستودون به صفحهٔ اصلیتان را میدهد، میتوانید آگاهیهای ارسالی را دریافت کنید. این کار از بسیاری جهتها،مانند یک کارهٔ بومی عمل میکند!
- tips: نکتهها
title: خوش آمدید، کاربر %{name}!
users:
follow_limit_reached: شما نمیتوانید بیش از %{limit} نفر را پی بگیرید
diff --git a/config/locales/fi.yml b/config/locales/fi.yml
index 55e2332cfc..c7ab01ab0e 100644
--- a/config/locales/fi.yml
+++ b/config/locales/fi.yml
@@ -1,94 +1,27 @@
---
fi:
about:
- about_hashtag_html: Nämä julkiset julkaisut on merkitty hastagilla #%{hashtag} . Voit vastata niihin, jos sinulla on tili jossain päin fediversumia.
about_mastodon_html: 'Tulevaisuuden sosiaalinen verkosto: Ei mainoksia, ei valvontaa, toteutettu avoimilla protokollilla ja hajautettu! Pidä tietosi ominasi Mastodonilla!'
- about_this: Tietoa tästä palvelimesta
- active_count_after: aktiivista
- active_footnote: Kuukausittain aktiiviset käyttäjät (MAU)
- administered_by: 'Ylläpitäjä:'
- api: Rajapinta
- apps: Mobiilisovellukset
- apps_platforms: Käytä Mastodonia Androidilla, iOS:llä ja muilla alustoilla
- browse_directory: Selaa profiilihakemistoa
- browse_local_posts: Selaa julkisia julkaisuja tältä palvelimelta
- browse_public_posts: Selaa julkisia julkaisuja Mastodonissa
- contact: Ota yhteyttä
contact_missing: Ei asetettu
contact_unavailable: Ei saatavilla
- continue_to_web: Jatka verkkosovellukseen
- discover_users: Löydä käyttäjiä
- documentation: Dokumentaatio
- federation_hint_html: Tilillä %{instance}:ssa voit seurata ihmisiä millä tahansa Mastodon-palvelimella ja sen ulkopuolella.
- get_apps: Kokeile mobiilisovellusta
hosted_on: Mastodon palvelimella %{domain}
- instance_actor_flash: |
- Tämä on virtuaalitili, joka edustaa itse palvelinta eikä yksittäistä käyttäjää.
- Sitä käytetään yhdistämistarkoituksiin, eikä sitä saa estää, ellet halua estää koko palvelinta, jolloin sinun on käytettävä verkkotunnuksen estoa.
- learn_more: Lisätietoja
- logged_in_as_html: Olet kirjautunut sisään nimellä %{username}.
- logout_before_registering: Olet jo kirjautunut sisään.
- privacy_policy: Tietosuojakäytäntö
- rules: Palvelimen säännöt
- rules_html: 'Alla on yhteenveto säännöistä, joita sinun on noudatettava, jos haluat olla tili tällä Mastodonin palvelimella:'
- see_whats_happening: Näe mitä tapahtuu
- server_stats: 'Palvelimen tilastot:'
- source_code: Lähdekoodi
- status_count_after:
- one: julkaisun
- other: julkaisua
- status_count_before: Julkaistu
- tagline: Seuraa ja löydä uusia kavereita
- terms: Käyttöehdot
- unavailable_content: Moderoidut palvelimet
- unavailable_content_description:
- domain: Palvelin
- reason: Syy
- rejecting_media: 'Näiden palvelimien mediatiedostoja ei käsitellä tai tallenneta eikä pikkukuvia näytetä, mikä edellyttää manuaalista klikkausta alkuperäiseen tiedostoon:'
- rejecting_media_title: Media suodatettu
- silenced: 'Julkaisut näiltä palvelimilta piilotetaan julkisilta aikajanoilta ja keskusteluista, ilmoituksia ei luoda näiden käyttäjien tekemistä toiminnoista, jos et seuraa heitä:'
- silenced_title: Hiljennetyt palvelimet
- suspended: 'Dataa näiltä palvelimilta ei tulla käsittelemään, tallentamaan tai jakamaan. Tämä tekee kommunikoinnin näiden käyttäjien kanssa mahdottomaksi:'
- suspended_title: Keskeytetyt palvelimet
- unavailable_content_html: Mastodonin avulla voit yleensä tarkastella sisältöä ja olla vuorovaikutuksessa käyttäjien kanssa millä tahansa muulla palvelimella fediversessä. Nämä ovat poikkeuksia, jotka on tehty tälle palvelimelle.
- user_count_after:
- one: käyttäjä
- other: käyttäjää
- user_count_before: Palvelimella
- what_is_mastodon: Mikä on Mastodon?
+ title: Tietoja
accounts:
- choices_html: "%{name} valinnat:"
- endorsements_hint: Voit suositella seuraamiasi henkilöitä web käyttöliittymän kautta, ne tulevat näkymään tähän.
- featured_tags_hint: Voit käyttää tiettyjä aihesanoja, jotka näytetään täällä.
follow: Seuraa
followers:
one: Seuraaja
other: Seuraajat
following: Seuratut
instance_actor_flash: Tämä on virtuaalitili, jota käytetään edustamaan itse palvelinta eikä yksittäistä käyttäjää. Sitä käytetään yhdistämistarkoituksiin, eikä sitä tule keskeyttää.
- joined: Liittynyt %{date}
last_active: viimeksi aktiivinen
link_verified_on: Tämän linkin omistus on tarkastettu %{date}
- media: Media
- moved_html: "%{name} on muuttanut osoitteeseen %{new_profile_link}:"
- network_hidden: Nämä tiedot eivät ole käytettävissä
nothing_here: Täällä ei ole mitään!
- people_followed_by: Henkilöt, joita %{name} seuraa
- people_who_follow: Käyttäjän %{name} seuraajat
pin_errors:
following: Sinun täytyy seurata henkilöä jota haluat tukea
posts:
one: Julkaisu
other: Julkaisut
posts_tab_heading: Julkaisut
- posts_with_replies: Julkaisut ja vastaukset
- roles:
- admin: Ylläpitäjä
- bot: Botti
- group: Ryhmä
- moderator: Moderaattori
- unavailable: Profiili ei saatavilla
- unfollow: Lopeta seuraaminen
admin:
account_actions:
action: Suorita toimenpide
@@ -105,12 +38,17 @@ fi:
avatar: Profiilikuva
by_domain: Verkkotunnus
change_email:
- changed_msg: Tilin sähköposti vaihdettu onnistuneesti!
+ changed_msg: Sähköpostin vaihto onnistui!
current_email: Nykyinen sähköposti
label: Vaihda sähköposti
new_email: Uusi sähköposti
submit: Vaihda sähköposti
title: Vaihda sähköposti käyttäjälle %{username}
+ change_role:
+ changed_msg: Rooli vaihdettu onnistuneesti!
+ label: Vaihda roolia
+ no_role: Ei roolia
+ title: Vaihda roolia käyttäjälle %{username}
confirm: Vahvista
confirmed: Vahvistettu
confirming: Vahvistetaan
@@ -154,6 +92,7 @@ fi:
active: Aktiivinen
all: Kaikki
pending: Odottavat
+ silenced: Rajoitettu
suspended: Jäähyllä
title: Moderointi
moderation_notes: Moderointimerkinnät
@@ -161,10 +100,14 @@ fi:
most_recent_ip: Viimeisin IP
no_account_selected: Yhtään tiliä ei muutettu, koska mitään ei valittu
no_limits_imposed: Rajoituksia ei ole asetettu
+ no_role_assigned: Roolia ei ole määritetty
not_subscribed: Ei tilaaja
pending: Odottaa tarkistusta
perform_full_suspension: Siirrä kokonaan jäähylle
previous_strikes: Aiemmat varoitukset
+ previous_strikes_description_html:
+ one: Tällä tilillä on yksi varoitus.
+ other: Tällä tilillä on %{count} varoitusta.
promote: Ylennä
protocol: Protokolla
public: Julkinen
@@ -184,12 +127,7 @@ fi:
reset: Palauta
reset_password: Palauta salasana
resubscribe: Tilaa uudelleen
- role: Oikeudet
- roles:
- admin: Ylläpitäjä
- moderator: Moderaattori
- staff: Henkilöstö
- user: Käyttäjä
+ role: Rooli
search: Hae
search_same_email_domain: Muut käyttäjät, joilla on sama sähköpostiverkkotunnus
search_same_ip: Muut käyttäjät samalla IP-osoitteella
@@ -232,17 +170,21 @@ fi:
approve_user: Hyväksy käyttäjä
assigned_to_self_report: Määritä raportti
change_email_user: Vaihda sähköposti käyttäjälle
+ change_role_user: Muuta käyttäjän roolia
confirm_user: Vahvista käyttäjä
create_account_warning: Luo varoitus
create_announcement: Luo ilmoitus
+ create_canonical_email_block: Luo sähköpostin esto
create_custom_emoji: Luo mukautettu emoji
create_domain_allow: Salli palvelin
create_domain_block: Estä palvelin
create_email_domain_block: Estä sähköpostipalvelin
create_ip_block: Luo IP-sääntö
create_unavailable_domain: Luo ei-saatavilla oleva verkkotunnus
+ create_user_role: Luo rooli
demote_user: Alenna käyttäjä
destroy_announcement: Poista ilmoitus
+ destroy_canonical_email_block: Poista sähköpostin esto
destroy_custom_emoji: Poista mukautettu emoji
destroy_domain_allow: Salli verkkotunnuksen poisto
destroy_domain_block: Poista verkkotunnuksen esto
@@ -251,6 +193,7 @@ fi:
destroy_ip_block: Poista IP-sääntö
destroy_status: Poista julkaisu
destroy_unavailable_domain: Poista ei-saatavilla oleva verkkotunnus
+ destroy_user_role: Hävitä rooli
disable_2fa_user: Poista kaksivaiheinen tunnistautuminen käytöstä
disable_custom_emoji: Estä mukautettu emoji
disable_sign_in_token_auth_user: Estä käyttäjältä sähköpostitunnuksen todennus
@@ -277,23 +220,29 @@ fi:
update_announcement: Päivitä ilmoitus
update_custom_emoji: Päivitä muokattu emoji
update_domain_block: Päivitä verkkotunnuksen esto
+ update_ip_block: Päivitä IP-sääntö
update_status: Päivitä viesti
+ update_user_role: Päivitä rooli
actions:
approve_appeal_html: "%{name} hyväksyi moderointipäätöksen muutoksenhaun lähettäjältä %{target}"
approve_user_html: "%{name} hyväksyi käyttäjän rekisteröitymisen kohteesta %{target}"
assigned_to_self_report_html: "%{name} otti raportin %{target} tehtäväkseen"
change_email_user_html: "%{name} vaihtoi käyttäjän %{target} sähköpostiosoitteen"
+ change_role_user_html: "%{name} muutti roolia %{target}"
confirm_user_html: "%{name} vahvisti käyttäjän %{target} sähköpostiosoitteen"
create_account_warning_html: "%{name} lähetti varoituksen henkilölle %{target}"
create_announcement_html: "%{name} loi uuden ilmoituksen %{target}"
+ create_canonical_email_block_html: "%{name} esti sähköpostin hashilla %{target}"
create_custom_emoji_html: "%{name} lähetti uuden emojin %{target}"
create_domain_allow_html: "%{name} salli yhdistäminen verkkotunnuksella %{target}"
create_domain_block_html: "%{name} esti verkkotunnuksen %{target}"
create_email_domain_block_html: "%{name} esti sähköpostin %{target}"
create_ip_block_html: "%{name} luonut IP-säännön %{target}"
create_unavailable_domain_html: "%{name} pysäytti toimituksen verkkotunnukseen %{target}"
+ create_user_role_html: "%{name} luonut %{target} roolin"
demote_user_html: "%{name} alensi käyttäjän %{target}"
destroy_announcement_html: "%{name} poisti ilmoituksen %{target}"
+ destroy_canonical_email_block_html: "%{name} poisti sähköposti eston hashilla %{target}"
destroy_custom_emoji_html: "%{name} poisti emojin %{target}"
destroy_domain_allow_html: "%{name} esti yhdistämisen verkkotunnuksella %{target}"
destroy_domain_block_html: "%{name} poisti verkkotunnuksen %{target} eston"
@@ -302,6 +251,7 @@ fi:
destroy_ip_block_html: "%{name} poisti IP-säännön %{target}"
destroy_status_html: "%{name} poisti viestin %{target}"
destroy_unavailable_domain_html: "%{name} jatkoi toimitusta verkkotunnukseen %{target}"
+ destroy_user_role_html: "%{name} poisti %{target} roolin"
disable_2fa_user_html: "%{name} poisti käyttäjältä %{target} vaatimuksen kaksivaiheisen todentamiseen"
disable_custom_emoji_html: "%{name} poisti emojin %{target}"
disable_sign_in_token_auth_user_html: "%{name} poisti sähköpostitunnuksen %{target} todennuksen käytöstä"
@@ -328,8 +278,9 @@ fi:
update_announcement_html: "%{name} päivitti ilmoituksen %{target}"
update_custom_emoji_html: "%{name} päivitti emojin %{target}"
update_domain_block_html: "%{name} päivitti verkkotunnuksen %{target}"
+ update_ip_block_html: "%{name} muutti sääntöä IP-osoitteelle %{target}"
update_status_html: "%{name} päivitti viestin %{target}"
- deleted_status: "(poistettu julkaisu)"
+ update_user_role_html: "%{name} muutti roolia %{target}"
empty: Lokeja ei löytynyt.
filter_by_action: Suodata tapahtuman mukaan
filter_by_user: Suodata käyttäjän mukaan
@@ -368,10 +319,12 @@ fi:
enable: Ota käyttöön
enabled: Käytössä
enabled_msg: Emojin käyttöönotto onnistui
+ image_hint: PNG tai GIF enintään %{size}
list: Listaa
listed: Listassa
new:
title: Lisää uusi mukautettu emoji
+ no_emoji_selected: Hymiöitä ei muutettu, koska yhtään ei valittu
not_permitted: Sinulla ei ole oikeutta suorittaa tätä toimintoa
overwrite: Kirjoita yli
shortcode: Lyhennekoodi
@@ -424,6 +377,7 @@ fi:
destroyed_msg: Verkkotunnuksen esto on peruttu
domain: Verkkotunnus
edit: Muokkaa verkkotunnuksen estoa
+ existing_domain_block: Olet jo asettanut tiukemmat rajoitukset %{name}.
existing_domain_block_html: Olet jo asettanut %{name} tiukemmat rajat ja sinun täytyy poistaa se ensin.
new:
create: Luo esto
@@ -474,14 +428,46 @@ fi:
title: Noudata suosituksia
unsuppress: Palauta seuraa suositus
instances:
+ availability:
+ description_html:
+ one: Jos toimitus verkkotunnukseen epäonnistuu %{count} päivä ilman onnistumista, uusia yrityksiä ei tehdä ennen kuin toimitus alkaen verkkotunnukselta on vastaanotettu.
+ other: Jos toimitus verkkotunnukselle, epäonnistuu %{count} eri päivänä ilman onnistumista, uusia yrityksiä ei tehdä ennen kuin toimitus alkaen verkkotunnuselta on vastaanotettu.
+ failure_threshold_reached: Epäonnistumisen kynnys saavutettu %{date}.
+ failures_recorded:
+ one: Epäonnistuneita yrityksiä %{count} päivässä.
+ other: Epäonnistuneita yrityksiä %{count} päivää.
+ no_failures_recorded: Ei epäonnistumisia kirjattu.
+ title: Saatavuus
+ warning: Viimeisin yritys yhdistää yhteys tähän palvelimeen on epäonnistunut
back_to_all: Kaikki
back_to_limited: Rajoitettu
back_to_warning: Varoitus
by_domain: Verkkotunnus
confirm_purge: Oletko varma, että haluat pysyvästi poistaa tiedot tältä verkkotunnukselta?
+ content_policies:
+ comment: Sisäinen huomautus
+ description_html: Voit määrittää sisältökäytännöt, joita sovelletaan kaikkiin tämän verkkotunnuksen ja sen aliverkkotunnuksien tileihin.
+ policies:
+ reject_media: Hylkää media
+ reject_reports: Hylkää raportit
+ silence: Rajoitus
+ suspend: Jäädytä
+ policy: Käytännöt
+ reason: Julkinen syy
+ title: Sisällön toimintatavat
+ dashboard:
+ instance_accounts_dimension: Seuratuimmat tilit
+ instance_accounts_measure: tallennetut tilit
+ instance_followers_measure: seuraajamme siellä
+ instance_follows_measure: heidän seuraajansa täällä
+ instance_languages_dimension: Suosituimmat kielet
+ instance_media_attachments_measure: tallennetut median liitteet
+ instance_reports_measure: niitä koskevat raportit
+ instance_statuses_measure: tallennetut viestit
delivery:
all: Kaikki
clear: Tyhjennä toimitusvirheet
+ failing: Epäonnistuminen
restart: Käynnistä toimitus uudelleen
stop: Lopeta toimitus
unavailable: Ei saatavilla
@@ -490,6 +476,9 @@ fi:
delivery_error_hint: Jos toimitus ei ole mahdollista %{count} päivän aikana, se merkitään automaattisesti toimittamattomaksi.
destroyed_msg: Tiedot %{domain} on nyt jonossa välitöntä poistoa varten.
empty: Verkkotunnuksia ei löytynyt.
+ known_accounts:
+ one: "%{count} tunnettu tili"
+ other: "%{count} tunnettua tiliä"
moderation:
all: Kaikki
limited: Rajoitettu
@@ -497,12 +486,14 @@ fi:
private_comment: Yksityinen kommentti
public_comment: Julkinen kommentti
purge: Tyhjennä
+ purge_description_html: Jos uskot tämän verkkotunnuksen olevan offline-tilassa, voit poistaa kaikki tilitietueet ja niihin liittyvät tiedot sinun tallennustilasta. Tämä voi kestää jonkin aikaa.
title: Tiedossa olevat instanssit
total_blocked_by_us: Estetty meidän toimesta
total_followed_by_them: Heidän seuraama
total_followed_by_us: Meidän seuraama
total_reported: Niitä koskevat raportit
total_storage: Medialiitteet
+ totals_time_period_hint_html: Alla näkyvät yhteenlasketut tiedot sisältävät koko ajan.
invites:
deactivate_all: Poista kaikki käytöstä
filter:
@@ -557,6 +548,7 @@ fi:
action_taken_by: Toimenpiteen tekijä
actions:
delete_description_html: Ilmoitetut viestit poistetaan ja kirjataan varoitus, joka auttaa sinua saman tilin tulevista rikkomuksista.
+ mark_as_sensitive_description_html: Ilmoitettujen viestien media merkitään arkaluonteisiksi ja varoitus tallennetaan, jotta voit kärjistää saman tilin tulevia rikkomuksia.
other_description_html: Katso lisää vaihtoehtoja tilin käytöksen hallitsemiseksi ja ilmoitetun tilin viestinnän mukauttamiseksi.
resolve_description_html: Ilmoitettua tiliä vastaan ei ryhdytä toimenpiteisiin, varoitusta ei kirjata ja raportti suljetaan.
silence_description_html: Profiili näkyy vain niille, jotka jo seuraavat sitä tai etsivät sen manuaalisesti, mikä rajoittaa merkittävästi kattavuutta. Se voidaan aina palauttaa.
@@ -606,6 +598,67 @@ fi:
unresolved: Ratkaisemattomat
updated_at: Päivitetty
view_profile: Näytä profiili
+ roles:
+ add_new: Lisää rooli
+ assigned_users:
+ one: "%{count} käyttäjä"
+ other: "%{count} käyttäjää"
+ categories:
+ administration: Ylläpito
+ devops: Operaattorit
+ invites: Kutsut
+ moderation: Moderointi
+ special: Erikois
+ delete: Poista
+ description_html: Käyttäjän roolit , voit muokata toimintoja ja alueita mitä sinun Mastodon käyttäjät voivat käyttää.
+ edit: Muokkaa "%{name}" roolia
+ everyone: Oletus käyttöoikeudet
+ everyone_full_description_html: Tämä on perusrooli joka vaikuttaa kaikkiin käyttäjiin , jopa ilman määrättyä roolia. Kaikki muut roolit perivät sen käyttöoikeudet.
+ permissions_count:
+ one: "%{count} käyttöoikeus"
+ other: "%{count} käyttöoikeutta"
+ privileges:
+ administrator: Ylläpitäjä
+ administrator_description: Käyttäjät, joilla on tämä käyttöoikeus, ohittavat jokaisen käyttöoikeuden
+ delete_user_data: Poista käyttäjän tiedot
+ delete_user_data_description: Salli käyttäjien poistaa muiden käyttäjien tiedot viipymättä
+ invite_users: Kutsu käyttäjiä
+ invite_users_description: Sallii käyttäjien kutsua uusia ihmisiä palvelimelle
+ manage_announcements: Hallitse Ilmoituksia
+ manage_announcements_description: Salli käyttäjien hallita ilmoituksia palvelimella
+ manage_appeals: Hallitse valituksia
+ manage_appeals_description: Antaa käyttäjien tarkastella valvontatoimia koskevia valituksia
+ manage_blocks: Hallitse lohkoja
+ manage_blocks_description: Sallii käyttäjien estää sähköpostipalvelujen ja IP-osoitteiden käytön
+ manage_custom_emojis: Hallita mukautettuja hymiöitä
+ manage_custom_emojis_description: Salli käyttäjien hallita mukautettuja hymiöitä palvelimella
+ manage_federation: Hallita liitoksia
+ manage_federation_description: Sallii käyttäjien estää tai sallia liitoksen muiden verkkotunnusten kanssa ja hallita toimitusta
+ manage_invites: Hallita kutsuja
+ manage_invites_description: Sallii käyttäjien selata ja poistaa kutsulinkkejä käytöstä
+ manage_reports: Hallita raportteja
+ manage_reports_description: Sallii käyttäjien tarkastella raportteja ja suorittaa valvontatoimia niitä vastaan
+ manage_roles: Hallita rooleja
+ manage_roles_description: Sallii käyttäjien hallita ja määrittää rooleja heidän alapuolellaan
+ manage_rules: Hallita sääntöjä
+ manage_rules_description: Sallii käyttäjien vaihtaa palvelinsääntöjä
+ manage_settings: Hallita asetuksia
+ manage_settings_description: Salli käyttäjien muuttaa sivuston asetuksia
+ manage_taxonomies: Hallita luokittelua
+ manage_taxonomies_description: Sallii käyttäjien tarkistaa trendillisen sisällön ja päivittää hashtag-asetuksia
+ manage_user_access: Hallita käyttäjän oikeuksia
+ manage_user_access_description: Sallii käyttäjien poistaa käytöstä muiden käyttäjien kaksivaiheisen todennuksen, muuttaa heidän sähköpostiosoitettaan ja nollata heidän salasanansa
+ manage_users: Hallita käyttäjiä
+ manage_users_description: Sallii käyttäjien tarkastella muiden käyttäjien tietoja ja suorittaa valvontatoimia heitä vastaan
+ manage_webhooks: Hallita Webhookit
+ manage_webhooks_description: Sallii käyttäjien luoda webhookit hallinnollisiin tapahtumiin
+ view_audit_log: Katsoa valvontalokia
+ view_audit_log_description: Sallii käyttäjien nähdä palvelimen hallinnollisten toimien historian
+ view_dashboard: Näytä koontinäyttö
+ view_dashboard_description: Sallii käyttäjien käyttää kojelautaa ja erilaisia mittareita
+ view_devops: Operaattorit
+ view_devops_description: Sallii käyttäjille oikeuden käyttää Sidekiq ja pgHero dashboardeja
+ title: Roolit
rules:
add_new: Lisää sääntö
delete: Poista
@@ -614,108 +667,67 @@ fi:
empty: Palvelimen sääntöjä ei ole vielä määritelty.
title: Palvelimen säännöt
settings:
- activity_api_enabled:
- desc_html: Paikallisesti julkaistujen tilojen, aktiivisten käyttäjien ja uusien rekisteröintien määrät viikoittain
- title: Julkaise koostetilastoja käyttäjien aktiivisuudesta
- bootstrap_timeline_accounts:
- desc_html: Erota käyttäjänimet pilkulla. Vain paikalliset ja lukitsemattomat tilit toimivat. Jos kenttä jätetään tyhjäksi, oletusarvona ovat kaikki paikalliset ylläpitäjät.
- title: Uudet käyttäjät seuraavat oletuksena seuraavia tilejä
- contact_information:
- email: Työsähköposti
- username: Yhteyshenkilön käyttäjänimi
- custom_css:
- desc_html: Muokkaa ulkoasua CSS:llä, joka on ladattu jokaiselle sivulle
- title: Mukautettu CSS
- default_noindex:
- desc_html: Vaikuttaa kaikkiin käyttäjiin, jotka eivät ole muuttaneet tätä asetusta itse
- title: Valitse oletuksena käyttäjät hakukoneiden indeksoinnin ulkopuolelle
+ about:
+ manage_rules: Hallinnoi palvelimen sääntöjä
+ preamble: Anna perusteellista tietoa siitä, miten palvelinta käytetään, valvotaan, rahoitetaan.
+ rules_hint: On olemassa erityinen alue sääntöjä, joita käyttäjien odotetaan noudattavan.
+ title: Tietoja
+ appearance:
+ preamble: Muokkaa Mastodonin web-käyttöliittymää.
+ title: Ulkoasu
+ branding:
+ preamble: Palvelimesi brändäys erottaa sen muista verkon palvelimista. Nämä tiedot voidaan näyttää useissa eri ympäristöissä, kuten Mastodonin käyttöliittymässä, sovelluksissa, linkkien esikatselu muilla sivustoilla ja viestisovelluksien sisällä ja niin edelleen. Tästä syystä on parasta pitää nämä tiedot selkeinä, lyhyinä ja ytimekkäinä.
+ title: Brändäys
+ content_retention:
+ preamble: Määritä, miten käyttäjän luoma sisältö tallennetaan Mastodoniin.
+ title: Sisällön säilyttäminen
+ discovery:
+ follow_recommendations: Noudata suosituksia
+ preamble: Mielenkiintoisen sisällön esille tuominen auttaa saamaan uusia käyttäjiä, jotka eivät ehkä tunne ketään Mastodonista. Määrittele, kuinka erilaiset etsintäominaisuudet toimivat palvelimellasi.
+ profile_directory: Profiilihakemisto
+ public_timelines: Julkiset aikajanat
+ title: Löytäminen
+ trends: Trendit
domain_blocks:
all: Kaikille
disabled: Ei kenellekkään
- title: Näytä domainestot
users: Kirjautuneille paikallisille käyttäjille
- domain_blocks_rationale:
- title: Näytä syy
- hero:
- desc_html: Näytetään etusivulla. Suosituskoko vähintään 600x100 pikseliä. Jos kuvaa ei aseteta, käytetään instanssin pikkukuvaa
- title: Sankarin kuva
- mascot:
- desc_html: Näytetään useilla sivuilla. Suositus vähintään 293×205px. Kun ei ole asetettu, käytetään oletuskuvaa
- title: Maskottikuva
- peers_api_enabled:
- desc_html: Verkkotunnukset, jotka tämä instanssi on kohdannut fediversumissa
- title: Julkaise löydettyjen instanssien luettelo
- preview_sensitive_media:
- desc_html: Linkin esikatselu muilla sivustoilla näyttää pikkukuvan vaikka media on merkitty arkaluonteiseksi
- title: Näytä arkaluontoiset mediat OpenGraph esikatselussa
- profile_directory:
- desc_html: Salli käyttäjien olla löydettävissä
- title: Ota profiilihakemisto käyttöön
registrations:
- closed_message:
- desc_html: Näytetään etusivulla, kun rekisteröinti on suljettu. HTML-tagit käytössä
- title: Viesti, kun rekisteröinti on suljettu
- deletion:
- desc_html: Salli jokaisen poistaa oma tilinsä
- title: Avoin tilin poisto
- min_invite_role:
- disabled: Ei kukaan
- title: Salli kutsut käyttäjältä
- require_invite_text:
- desc_html: Kun rekisteröinnit edellyttävät manuaalista hyväksyntää, tee “Miksi haluat liittyä?” teksti pakolliseksi eikä valinnaiseksi
- title: Vaadi uusia käyttäjiä antamaan liittymisen syy
+ preamble: Määritä, kuka voi luoda tilin palvelimellesi.
+ title: Rekisteröinnit
registrations_mode:
modes:
approved: Rekisteröinti vaatii hyväksynnän
none: Kukaan ei voi rekisteröityä
open: Kaikki voivat rekisteröityä
- title: Rekisteröintitapa
- show_known_fediverse_at_about_page:
- desc_html: Kun tämä on valittu, esikatselussa näytetään tuuttaukset kaikkialta tunnetusta fediversumista. Muutoin näytetään vain paikalliset tuuttaukset.
- title: Näytä aikajanan esikatselussa koko tunnettu fediversumi
- show_staff_badge:
- desc_html: Näytä käyttäjäsivulla henkilöstömerkki
- title: Näytä henkilöstömerkki
- site_description:
- desc_html: Esittelykappale etusivulla ja metatunnisteissa. HTML-tagit käytössä, tärkeimmät ovat <a>
ja <em>
.
- title: Instanssin kuvaus
- site_description_extended:
- desc_html: Hyvä paikka käytösohjeille, säännöille, ohjeistuksille ja muille instanssin muista erottaville asioille. HTML-tagit käytössä
- title: Omavalintaiset laajat tiedot
- site_short_description:
- desc_html: Näytetään sivupalkissa ja kuvauksessa. Kerro yhdessä kappaleessa, mitä Mastodon on ja mikä tekee palvelimesta erityisen.
- title: Lyhyt instanssin kuvaus
- site_terms:
- desc_html: Tähän voit kirjoittaa tietosuojakäytännöistä, käyttöehdoista ja sen sellaisista asioista. Voit käyttää HTML-tageja
- title: Omavalintaiset käyttöehdot
- site_title: Instanssin nimi
- thumbnail:
- desc_html: Käytetään esikatseluissa OpenGraphin ja API:n kautta. Suosituskoko 1200x630 pikseliä
- title: Instanssin pikkukuva
- timeline_preview:
- desc_html: Näytä julkinen aikajana aloitussivulla
- title: Aikajanan esikatselu
- title: Sivuston asetukset
- trendable_by_default:
- desc_html: Vaikuttaa hashtageihin, joita ei ole aiemmin poistettu käytöstä
- title: Salli hashtagit ilman tarkistusta ennakkoon
- trends:
- desc_html: Näytä julkisesti aiemmin tarkistetut hashtagit, jotka ovat tällä hetkellä saatavilla
- title: Trendaavat aihetunnisteet
+ title: Palvelimen asetukset
site_uploads:
delete: Poista ladattu tiedosto
destroyed_msg: Sivuston lataus onnistuneesti poistettu!
statuses:
+ account: Tekijä
+ application: Sovellus
back_to_account: Takaisin tilin sivulle
back_to_report: Takaisin raporttisivulle
batch:
remove_from_report: Poista raportista
report: Raportti
deleted: Poistettu
+ favourites: Suosikit
+ history: Versiohistoria
+ in_reply_to: Vastaa
+ language: Kieli
media:
title: Media
+ metadata: Metadata
no_status_selected: Viestejä ei muutettu, koska yhtään ei ole valittuna
+ open: Avaa viesti
+ original_status: Alkuperäinen viesti
+ reblogs: Edelleen jako
+ status_changed: Viesti muutettu
title: Tilin tilat
+ trending: Nousussa
+ visibility: Näkyvyys
with_media: Sisältää mediaa
strikes:
actions:
@@ -731,6 +743,11 @@ fi:
system_checks:
database_schema_check:
message_html: Tietokannan siirto on vireillä. Suorita ne varmistaaksesi, että sovellus toimii odotetulla tavalla
+ elasticsearch_running_check:
+ message_html: Ei saatu yhteyttä Elasticsearch. Tarkista, että se on käynnissä tai poista kokotekstihaku käytöstä
+ elasticsearch_version_check:
+ message_html: 'Yhteensopimaton Elasticsearch versio: %{value}'
+ version_comparison: Elasticsearch %{running_version} on käynnissä, kun %{required_version} vaaditaan
rules_check:
action: Hallinnoi palvelimen sääntöjä
message_html: Et ole määrittänyt mitään palvelimen sääntöä.
@@ -750,8 +767,15 @@ fi:
description_html: Nämä ovat linkkejä, joita jaetaan tällä hetkellä paljon tileillä, joilta palvelimesi näkee viestejä. Se voi auttaa käyttäjiäsi saamaan selville, mitä maailmassa tapahtuu. Linkkejä ei näytetä julkisesti, ennen kuin hyväksyt julkaisijan. Voit myös sallia tai hylätä yksittäiset linkit.
disallow: Hylkää linkki
disallow_provider: Estä julkaisija
+ no_link_selected: Yhtään linkkiä ei muutettu, koska yhtään ei valittu
+ publishers:
+ no_publisher_selected: Julkaisijoita ei muutettu, koska yhtään ei valittu
+ shared_by_over_week:
+ one: Yksi henkilö jakanut viimeisen viikon aikana
+ other: Jakanut %{count} henkilöä viimeisen viikon aikana
title: Suositut linkit
usage_comparison: Jaettu %{today} kertaa tänään verrattuna eilen %{yesterday}
+ only_allowed: Vain sallittu
pending_review: Odottaa tarkistusta
preview_card_providers:
allowed: Tämän julkaisijan linkit voivat trendata
@@ -765,6 +789,7 @@ fi:
description_html: Nämä ovat viestejä, jotka palvelimesi tietää tällä hetkellä jaetuksi ja suosituksi. Tämä voi auttaa uusia ja palaavia ihmisiä löytämään lisää ihmisiä, joita seurata seurata. Julkaisuja ei näytetä julkisesti ennen kuin hyväksyt tekijän ja kirjoittaja sallii tilinsä ehdottamisen muille. Voit myös sallia tai hylätä yksittäiset viestit.
disallow: Estä viesti
disallow_account: Estä tekijä
+ no_status_selected: Suosittuja viestejä ei muutettu, koska yhtään ei valittu
not_discoverable: Tekijä ei ole ilmoittanut olevansa löydettävissä
shared_by:
one: Jaettu tai suosikki kerran
@@ -780,6 +805,7 @@ fi:
tag_uses_measure: käyttökerrat
description_html: Nämä ovat hashtageja, jotka näkyvät tällä hetkellä monissa viesteissä, jotka palvelimesi näkee. Tämä voi auttaa käyttäjiäsi selvittämään, mistä ihmiset puhuvat eniten tällä hetkellä. Mitään hashtageja ei näytetä julkisesti ennen kuin hyväksyt ne.
listable: Voidaan ehdottaa
+ no_tag_selected: Yhtään tagia ei muutettu, koska yhtään ei valittu
not_listable: Ei tulla ehdottamaan
not_trendable: Ei näy trendien alla
not_usable: Ei voida käyttää
@@ -789,13 +815,37 @@ fi:
trending_rank: 'Nousussa #%{rank}'
usable: Voidaan käyttää
usage_comparison: Käytetty %{today} kertaa tänään, verrattuna %{yesterday} eiliseen
+ used_by_over_week:
+ one: Yhden henkilön käyttämä viime viikon aikana
+ other: Käyttänyt %{count} henkilöä viimeisen viikon aikana
title: Trendit
+ trending: Nousussa
warning_presets:
add_new: Lisää uusi
delete: Poista
edit_preset: Muokkaa varoituksen esiasetusta
empty: Et ole vielä määrittänyt yhtään varoitusesiasetusta.
title: Hallinnoi varoitusesiasetuksia
+ webhooks:
+ add_new: Lisää päätepiste
+ delete: Poista
+ description_html: A webhook mahdollistaa Mastodonin työntää reaaliaikaisia ilmoituksia valituista tapahtumista omaan sovellukseesi, joten sovelluksesi voi laukaista automaattisesti reaktioita .
+ disable: Poista käytöstä
+ disabled: Ei käytössä
+ edit: Muokkaa päätepistettä
+ empty: Sinulla ei ole vielä määritetty webhook-päätepisteitä.
+ enable: Ota käyttöön
+ enabled: Aktiivinen
+ enabled_events:
+ one: 1 aktivoitu tapahtuma
+ other: "%{count} aktivoitua tapahtumaa"
+ events: Tapahtumat
+ new: Uusi webhook
+ rotate_secret: Vaihda salaus
+ secret: Salainen tunnus
+ status: Tila
+ title: Webhookit
+ webhook: Webhook
admin_mailer:
new_appeal:
actions:
@@ -819,12 +869,8 @@ fi:
new_trends:
body: 'Seuraavat kohteet on tarkistettava ennen kuin ne voidaan näyttää julkisesti:'
new_trending_links:
- no_approved_links: Tällä hetkellä ei ole hyväksyttyjä trendikkäitä linkkejä.
- requirements: 'Mikä tahansa näistä ehdokkaista voisi ylittää #%{rank} hyväksytyn trendikkään linkin, joka on tällä hetkellä "%{lowest_link_title}" arvosanalla %{lowest_link_score}.'
title: Suositut linkit
new_trending_statuses:
- no_approved_statuses: Tällä hetkellä ei ole hyväksyttyjä trendikkäitä viestejä.
- requirements: 'Mikä tahansa näistä ehdokkaista voisi ylittää #%{rank} hyväksytyn trendikkään julkaisun, joka on tällä hetkellä %{lowest_status_url} arvosanalla %{lowest_status_score}.'
title: Suositut viestit
new_trending_tags:
no_approved_tags: Tällä hetkellä ei ole hyväksyttyjä trendikkäitä hashtageja.
@@ -860,16 +906,13 @@ fi:
applications:
created: Sovelluksen luonti onnistui
destroyed: Sovelluksen poisto onnistui
- invalid_url: Annettu URL on virheellinen
regenerate_token: Luo pääsytunnus uudelleen
token_regenerated: Pääsytunnuksen uudelleenluonti onnistui
warning: Säilytä tietoa hyvin. Älä milloinkaan jaa sitä muille!
your_token: Pääsytunnus
auth:
- apply_for_account: Pyydä kutsu
+ apply_for_account: Tule jonotuslistalle
change_password: Salasana
- checkbox_agreement_html: Hyväksyn palvelimen käytännöt ja käyttöehdot
- checkbox_agreement_without_rules_html: Hyväksyn käyttöehdot
delete_account: Poista tili
delete_account_html: Jos haluat poistaa tilisi, paina tästä . Poisto on vahvistettava.
description:
@@ -888,6 +931,7 @@ fi:
migrate_account: Muuta toiseen tiliin
migrate_account_html: Jos haluat ohjata tämän tilin toiseen tiliin, voit asettaa toisen tilin tästä .
or_log_in_with: Tai käytä kirjautumiseen
+ privacy_policy_agreement_html: Olen lukenut ja hyväksynyt tietosuojakäytännön
providers:
cas: CAS
saml: SAML
@@ -895,12 +939,18 @@ fi:
registration_closed: "%{instance} ei hyväksy uusia jäseniä"
resend_confirmation: Lähetä vahvistusohjeet uudestaan
reset_password: Palauta salasana
+ rules:
+ preamble: "%{domain} valvojat määrittävät ja valvovat sääntöjä."
+ title: Joitakin perussääntöjä.
security: Tunnukset
set_new_password: Aseta uusi salasana
setup:
email_below_hint_html: Jos alla oleva sähköpostiosoite on virheellinen, voit muuttaa sitä täällä ja tilata uuden vahvistussähköpostiviestin.
email_settings_hint_html: Vahvistussähköposti lähetettiin osoitteeseen %{email}. Jos sähköpostiosoite ei ole oikea, voit muuttaa sitä tiliasetuksissa.
title: Asetukset
+ sign_up:
+ preamble: Kun sinulla on tili tällä Mastodon-palvelimella, voit seurata kaikkia muita verkossa olevia henkilöitä riippumatta siitä, missä heidän tilinsä on.
+ title: Otetaan sinulle käyttöön %{domain}.
status:
account_status: Tilin tila
confirming: Odotetaan sähköpostivahvistuksen valmistumista.
@@ -909,7 +959,6 @@ fi:
redirecting_to: Tilisi ei ole aktiivinen, koska se ohjaa tällä hetkellä kohteeseen %{acct}.
view_strikes: Näytä tiliäsi koskevia aiempia varoituksia
too_fast: Lomake lähetettiin liian nopeasti, yritä uudelleen.
- trouble_logging_in: Ongelmia kirjautumisessa?
use_security_key: Käytä suojausavainta
authorize_follow:
already_following: Sinä seuraat jo tätä tiliä
@@ -967,10 +1016,6 @@ fi:
more_details_html: Lisätietoja saat tietosuojakäytännöstämme .
username_available: Käyttäjänimesi tulee saataville uudestaan
username_unavailable: Käyttäjänimesi ei tule saataville enää uudestaan
- directories:
- directory: Profiilihakemisto
- explanation: Löydä käyttäjiä heidän kiinnostustensa mukaan
- explore_mastodon: Tutki %{title}ia
disputes:
strikes:
action_taken: Toteutetut toimet
@@ -981,10 +1026,12 @@ fi:
appealed_msg: Valituksesi on lähetetty. Jos se hyväksytään, sinulle ilmoitetaan.
appeals:
submit: Lähetä valitus
+ approve_appeal: Hyväksy valitus
associated_report: Liittyvä raportti
created_at: Päivätty
description_html: Nämä ovat tiliäsi koskevia toimia ja varoituksia, jotka %{instance} henkilökunta on lähettänyt sinulle.
recipient: Osoitettu
+ reject_appeal: Hylkää valitus
status: 'Viesti #%{id}'
status_removed: Viesti on jo poistettu järjestelmästä
title: "%{action} alkaen %{date}"
@@ -1047,29 +1094,60 @@ fi:
public: Julkiset aikajanat
thread: Keskustelut
edit:
+ add_keyword: Lisää avainsana
+ keywords: Avainsanat
+ statuses: Yksittäiset postaukset
+ statuses_hint_html: Tämä suodatin koskee yksittäisten postausten valintaa riippumatta siitä, vastaavatko ne alla olevia avainsanoja. Tarkista tai poista viestit suodattimesta .
title: Muokkaa suodatinta
errors:
+ deprecated_api_multiple_keywords: Näitä parametreja ei voi muuttaa tästä sovelluksesta, koska ne koskevat useampaa kuin yhtä suodattimen avainsanaa. Käytä uudempaa sovellusta tai web-käyttöliittymää.
invalid_context: Ei sisältöä tai se on virheellinen
- invalid_irreversible: Sen sijaan suodatus toimii vain kodin tai ilmoitusten yhteydessä
index:
+ contexts: Suodattimet %{contexts}
delete: Poista
empty: Sinulla ei ole suodattimia.
+ expires_in: Vanhenee %{distance}
+ expires_on: Vanhenee %{date}
+ keywords:
+ one: "%{count} avainsana"
+ other: "%{count} avainsanaa"
+ statuses:
+ one: "%{count} viesti"
+ other: "%{count} viestiä"
+ statuses_long:
+ one: "%{count} yksittäinen viesti piilotettu"
+ other: "%{count} yksittäistä viestiä piilotettu"
title: Suodattimet
new:
+ save: Tallenna uusi suodatin
title: Lisää uusi suodatin
+ statuses:
+ back_to_filter: Takaisin suodattimeen
+ batch:
+ remove: Poista suodattimista
+ index:
+ hint: Tämä suodatin koskee yksittäisten viestien valintaa muista kriteereistä riippumatta. Voit lisätä lisää viestejä tähän suodattimeen web-käyttöliittymästä.
+ title: Suodatetut viestit
footer:
- developers: Kehittäjille
- more: Lisää…
- resources: Resurssit
trending_now: Suosittua nyt
generic:
all: Kaikki
+ all_items_on_page_selected_html:
+ one: "%{count} kohde tällä sivulla on valittu."
+ other: Kaikki %{count} kohdetta tällä sivulla on valittu.
+ all_matching_items_selected_html:
+ one: "%{count} tuotetta, joka vastaa hakuasi."
+ other: Kaikki %{count} kohdetta, jotka vastaavat hakuasi.
changes_saved_msg: Muutosten tallennus onnistui!
copy: Kopioi
delete: Poista
+ deselect: Poista kaikki valinnat
none: Ei mitään
order_by: Järjestä
save_changes: Tallenna muutokset
+ select_all_matching_items:
+ one: Valitse %{count} kohdetta, joka vastaa hakuasi.
+ other: Valitse kaikki %{count} kohdetta, jotka vastaavat hakuasi.
today: tänään
validation_errors:
one: Kaikki ei ole aivan oikein! Tarkasta alla oleva virhe
@@ -1093,7 +1171,6 @@ fi:
following: Seurattujen lista
muting: Mykistettyjen lista
upload: Lähetä
- in_memoriam_html: Muistoissamme.
invites:
delete: Poista käytöstä
expired: Vanhentunut
@@ -1174,16 +1251,10 @@ fi:
copy_account_note_text: 'Tämä käyttäjä siirtyi paikasta %{acct}, tässä olivat aiemmat muistiinpanosi niistä:'
notification_mailer:
admin:
+ report:
+ subject: "%{name} lähetti raportin"
sign_up:
subject: "%{name} kirjautunut"
- digest:
- action: Näytä kaikki ilmoitukset
- body: Tässä lyhyt yhteenveto viime käyntisi (%{since}) jälkeen tulleista viesteistä
- mention: "%{name} mainitsi sinut:"
- new_followers_summary:
- one: Olet myös saanut yhden uuden seuraajan! Juhuu!
- other: Olet myös saanut %{count} uutta seuraajaa! Aivan mahtavaa!
- title: Poissaollessasi…
favourite:
body: "%{name} tykkäsi tilastasi:"
subject: "%{name} tykkäsi tilastasi"
@@ -1255,6 +1326,8 @@ fi:
other: Muut
posting_defaults: Julkaisujen oletusasetukset
public_timelines: Julkiset aikajanat
+ privacy_policy:
+ title: Tietosuojakäytäntö
reactions:
errors:
limit_reached: Erilaisten reaktioiden raja saavutettu
@@ -1277,25 +1350,15 @@ fi:
remove_selected_follows: Lopeta valittujen käyttäjien seuraaminen
status: Tilin tila
remote_follow:
- acct: Syötä se käyttäjätunnus@verkkotunnus, josta haluat seurata
missing_resource: Vaadittavaa uudelleenohjaus-URL:ää tiliisi ei löytynyt
- no_account_html: Eikö sinulla ole tiliä? Voit rekisteröityä täällä
- proceed: Siirry seuraamaan
- prompt: 'Olet aikeissa seurata:'
- reason_html: "Miksi tämä vaihe on tarpeen? %{instance}
ei ehkä ole se palvelin, jolle olet rekisteröitynyt, joten meidän täytyy ensin ohjata sinut kotipalvelimellesi."
- remote_interaction:
- favourite:
- proceed: Jatka suosikiksi lisäämiseen
- prompt: 'Haluat lisätä suosikiksi julkaisun:'
- reblog:
- proceed: Jatka buustaamiseen
- prompt: 'Haluat buustata julkaisun:'
- reply:
- proceed: Jatka vastaamiseen
- prompt: 'Haluat vastata julkaisuun:'
reports:
errors:
invalid_rules: ei viittaa voimassa oleviin sääntöihin
+ rss:
+ content_warning: 'Sisällön varoitus:'
+ descriptions:
+ account: Julkiset viestit lähettäjältä @%{acct}
+ tag: 'Julkiset viestit merkitty #%{hashtag}'
scheduled_statuses:
over_daily_limit: Olet ylittänyt %{limit} ajoitetun viestin rajan tälle päivälle
over_total_limit: Olet ylittänyt %{limit} ajoitetun viestin rajan
@@ -1383,6 +1446,7 @@ fi:
disallowed_hashtags:
one: 'sisälsi aihetunnisteen jota ei sallita: %{tags}'
other: 'sisälsi aihetunnisteet joita ei sallita: %{tags}'
+ edited_at_html: Muokattu %{date}
errors:
in_reply_not_found: Viesti, johon yrität vastata, ei näytä olevan olemassa.
open_in_web: Avaa selaimessa
@@ -1453,10 +1517,11 @@ fi:
pinned: Kiinnitetty tuuttaus
reblogged: buustasi
sensitive_content: Arkaluontoista sisältöä
+ strikes:
+ errors:
+ too_late: On liian myöhäistä vedota tähän varoitukseen
tags:
does_not_match_previous_name: ei vastaa edellistä nimeä
- terms:
- title: "%{instance}, käyttöehdot ja tietosuojakäytäntö"
themes:
contrast: Mastodon (Korkea kontrasti)
default: Mastodon (Tumma)
@@ -1495,6 +1560,13 @@ fi:
explanation: Pyysit täydellistä varmuuskopiota Mastodon-tilistäsi. Voit nyt ladata sen!
subject: Arkisto on valmiina ladattavaksi
title: Arkiston tallennus
+ suspicious_sign_in:
+ change_password: vaihda salasanasi
+ details: 'Tässä on tiedot kirjautumisesta:'
+ explanation: Olemme havainneet kirjautumisen tilillesi uudesta IP-osoitteesta.
+ further_actions_html: Jos et ollut sinä, suosittelemme, että %{action} teet välittömästi ja otat kaksivaiheisen todennuksen käyttöön tilisi turvallisuuden varmistamiseksi.
+ subject: Tiliäsi on käytetty uudesta IP-osoitteesta
+ title: Uusi kirjautuminen
warning:
appeal: Lähetä valitus
appeal_description: Jos uskot, että tämä on virhe, voit hakea muutosta henkilökunnalta %{instance}.
@@ -1528,20 +1600,13 @@ fi:
suspend: Tilin käyttäminen keskeytetty
welcome:
edit_profile_action: Aseta profiili
- edit_profile_step: Voit mukauttaa profiiliasi lataamalla profiilikuvan ja otsakekuvan, muuttamalla näyttönimeäsi ym. Jos haluat hyväksyä uudet seuraajat ennen kuin he voivat seurata sinua, voit lukita tilisi.
+ edit_profile_step: Voit muokata profiiliasi lataamalla profiilikuvan, vaihtamalla näyttönimeä ja paljon muuta. Voit halutessasi arvioida uudet seuraajat ennen kuin he saavat seurata sinua.
explanation: Näillä vinkeillä pääset alkuun
final_action: Ala julkaista
- final_step: 'Ala julkaista! Vaikkei sinulla olisi seuraajia, monet voivat nähdä julkiset viestisi esimerkiksi paikallisella aikajanalla ja hashtagien avulla. Kannattaa esittäytyä! Käytä hashtagia #introductions. (Jos haluat esittäytyä myös suomeksi, se kannattaa tehdä erillisessä tuuttauksessa ja käyttää hashtagia #esittely.).'
+ final_step: 'Aloita julkaiseminen! Jopa ilman seuraajia, muut voivat nähdä julkiset viestisi esimerkiksi paikallisella aikajanalla tai hashtageilla. Haluat ehkä esitellä itsesi #introductions hashtag.'
full_handle: Koko käyttäjätunnuksesi
full_handle_hint: Kerro tämä ystävillesi, niin he voivat lähettää sinulle viestejä tai löytää sinut toisen instanssin kautta.
- review_preferences_action: Muuta asetuksia
- review_preferences_step: Käy tarkistamassa, että asetukset ovat haluamallasi tavalla. Voit valita, missä tilanteissa haluat saada sähköpostia, mikä on julkaisujesi oletusnäkyvyys jne. Jos et saa helposti pahoinvointia, voit valita, että GIF-animaatiot toistetaan automaattisesti.
subject: Tervetuloa Mastodoniin
- tip_federated_timeline: Yleinen aikajana näyttää sisältöä koko Mastodon-verkostosta. Siinä näkyvät kuitenkin vain ne henkilöt, joita oman instanssisi käyttäjät seuraavat. Siinä ei siis näytetä aivan kaikkea.
- tip_following: Oletusarvoisesti seuraat oman palvelimesi ylläpitäjiä. Etsi lisää kiinnostavia ihmisiä paikalliselta ja yleiseltä aikajanalta.
- tip_local_timeline: Paikallinen aikajana näyttää instanssin %{instance} käyttäjien julkaisut. He ovat naapureitasi!
- tip_mobile_webapp: Jos voit lisätä Mastodonin mobiiliselaimen kautta aloitusnäytöllesi, voit vastaanottaa push-ilmoituksia. Toiminta vastaa monin tavoin tavanomaista sovellusta!
- tips: Vinkkejä
title: Tervetuloa mukaan, %{name}!
users:
follow_limit_reached: Et voi seurata yli %{limit} henkilöä
diff --git a/config/locales/fr.yml b/config/locales/fr.yml
index 109fd68496..878f87f1db 100644
--- a/config/locales/fr.yml
+++ b/config/locales/fr.yml
@@ -1,94 +1,27 @@
---
fr:
about:
- about_hashtag_html: Voici des messages publics tagués avec #%{hashtag} . Vous pouvez interagir avec si vous avez un compte n’importe où dans le fédiverse.
about_mastodon_html: 'Le réseau social de l''avenir : pas de publicité, pas de surveillance institutionnelle, conception éthique et décentralisation ! Gardez le contrôle de vos données avec Mastodon !'
- about_this: À propos
- active_count_after: actif·ve·s
- active_footnote: Nombre mensuel d'utilisateur·rice·s actif·ve·s (NMUA)
- administered_by: 'Administré par :'
- api: API
- apps: Applications mobiles
- apps_platforms: Utilisez Mastodon depuis iOS, Android et d’autres plates-formes
- browse_directory: Parcourir l’annuaire des profils et filtrer par centres d’intérêts
- browse_local_posts: Parcourir en direct un flux de messages publics depuis ce serveur
- browse_public_posts: Parcourir en direct un flux de messages publics sur Mastodon
- contact: Contact
contact_missing: Non défini
contact_unavailable: Non disponible
- continue_to_web: Continuer vers l’application web
- discover_users: Découvrez des utilisateur·rice·s
- documentation: Documentation
- federation_hint_html: Avec un compte sur %{instance}, vous pourrez suivre des gens sur n’importe quel serveur Mastodon et au-delà.
- get_apps: Essayez une application mobile
hosted_on: Serveur Mastodon hébergé sur %{domain}
- instance_actor_flash: |
- Ce compte est un acteur virtuel utilisé pour représenter le serveur lui-même et non un·e utilisateur·rice individuel·le.
- Il est utilisé à des fins de fédération et ne doit pas être bloqué à moins que vous ne vouliez bloquer l’instance entière, auquel cas vous devriez utiliser un blocage de domaine.
- learn_more: En savoir plus
- logged_in_as_html: Vous êtes actuellement connecté·e en tant que %{username}.
- logout_before_registering: Vous êtes déjà connecté·e.
- privacy_policy: Politique de confidentialité
- rules: Règles du serveur
- rules_html: 'Voici un résumé des règles que vous devez suivre si vous voulez avoir un compte sur ce serveur de Mastodon :'
- see_whats_happening: Quoi de neuf
- server_stats: 'Statistiques du serveur :'
- source_code: Code source
- status_count_after:
- one: message
- other: messages
- status_count_before: Qui a publié
- tagline: Suivez vos ami·e·s et découvrez-en de nouveaux·elles
- terms: Conditions d’utilisation
- unavailable_content: Serveurs modérés
- unavailable_content_description:
- domain: Serveur
- reason: Motif
- rejecting_media: 'Les fichiers média de ces serveurs ne seront ni traités ni stockés, et aucune miniature ne sera affichée, rendant nécessaire de cliquer vers le fichier d’origine :'
- rejecting_media_title: Médias filtrés
- silenced: 'Les messages de ces serveurs seront cachés des flux publics et conversations, et les interactions de leurs utilisateur·rice·s ne donneront lieu à aucune notification, à moins que vous ne les suiviez :'
- silenced_title: Serveurs limités
- suspended: 'Aucune donnée venant de ces serveurs ne sera traitée, stockée ou échangée, rendant impossible toute interaction ou communication avec les utilisateur·rice·s de ces serveurs :'
- suspended_title: Serveurs suspendus
- unavailable_content_html: Mastodon vous permet généralement de visualiser le contenu et d'interagir avec les utilisateur·rice·s de n'importe quel autre serveur dans le fédiverse. Voici les exceptions qui ont été faites sur ce serveur en particulier.
- user_count_after:
- one: utilisateur
- other: utilisateur·rice·s
- user_count_before: Abrite
- what_is_mastodon: Qu’est-ce que Mastodon ?
+ title: À propos
accounts:
- choices_html: "%{name} recommande :"
- endorsements_hint: Vous pouvez recommander des personnes que vous suivez depuis l’interface web, et elles apparaîtront ici.
- featured_tags_hint: Vous pouvez mettre en avant certains hashtags qui seront affichés ici.
follow: Suivre
followers:
one: Abonné·e
other: Abonné·e·s
following: Abonnements
instance_actor_flash: Ce compte est un acteur virtuel utilisé pour représenter le serveur lui-même et non un utilisateur individuel. Il est utilisé à des fins de fédération et ne doit pas être suspendu.
- joined: Inscrit·e en %{date}
last_active: dernière activité
link_verified_on: La propriété de ce lien a été vérifiée le %{date}
- media: Médias
- moved_html: "%{name} a changé de compte pour %{new_profile_link} :"
- network_hidden: Cette information n’est pas disponible
nothing_here: Rien à voir ici !
- people_followed_by: Personnes suivies par %{name}
- people_who_follow: Personnes qui suivent %{name}
pin_errors:
following: Vous devez être déjà abonné·e à la personne que vous désirez recommander
posts:
one: Message
other: Messages
posts_tab_heading: Messages
- posts_with_replies: Messages et réponses
- roles:
- admin: Admin
- bot: Robot
- group: Groupe
- moderator: Modérateur·trice
- unavailable: Profil non disponible
- unfollow: Ne plus suivre
admin:
account_actions:
action: Effectuer l'action
@@ -105,12 +38,17 @@ fr:
avatar: Avatar
by_domain: Domaine
change_email:
- changed_msg: Courriel du compte modifié avec succès !
+ changed_msg: Courriel modifié avec succès !
current_email: Courriel actuel
label: Modifier le courriel
new_email: Nouveau courriel
submit: Modifier le courriel
title: Modifier le courriel pour %{username}
+ change_role:
+ changed_msg: Rôle modifié avec succès !
+ label: Modifier le rôle
+ no_role: Aucun rôle
+ title: Modifier le rôle de %{username}
confirm: Confirmer
confirmed: Confirmé
confirming: Confirmation
@@ -154,6 +92,7 @@ fr:
active: Actifs
all: Tous
pending: En cours de traitement
+ silenced: Limité
suspended: Suspendus
title: Modération
moderation_notes: Notes de modération
@@ -161,6 +100,7 @@ fr:
most_recent_ip: Adresse IP la plus récente
no_account_selected: Aucun compte n’a été modifié, car aucun n’a été sélectionné
no_limits_imposed: Aucune limite imposée
+ no_role_assigned: Aucun rôle assigné
not_subscribed: Non abonné
pending: En attente d’approbation
perform_full_suspension: Suspendre
@@ -187,12 +127,7 @@ fr:
reset: Réinitialiser
reset_password: Réinitialiser le mot de passe
resubscribe: Se réabonner
- role: Permissions
- roles:
- admin: Administrateur
- moderator: Modérateur
- staff: Équipe
- user: Utilisateur
+ role: Rôle
search: Rechercher
search_same_email_domain: Autres utilisateurs·trices avec le même domaine de courriel
search_same_ip: Autres utilisateur·rice·s avec la même IP
@@ -234,7 +169,8 @@ fr:
approve_appeal: Approuver l'appel
approve_user: Approuver l’utilisateur
assigned_to_self_report: Affecter le signalement
- change_email_user: Modifier le courriel pour
+ change_email_user: Modifier le courriel pour ce compte
+ change_role_user: Changer le rôle de l’utilisateur·rice
confirm_user: Confirmer l’utilisateur
create_account_warning: Créer une alerte
create_announcement: Créer une annonce
@@ -244,6 +180,7 @@ fr:
create_email_domain_block: Créer un blocage de domaine de courriel
create_ip_block: Créer une règle IP
create_unavailable_domain: Créer un domaine indisponible
+ create_user_role: Créer le rôle
demote_user: Rétrograder l’utilisateur·ice
destroy_announcement: Supprimer l’annonce
destroy_custom_emoji: Supprimer des émojis personnalisés
@@ -254,6 +191,7 @@ fr:
destroy_ip_block: Supprimer la règle IP
destroy_status: Supprimer le message
destroy_unavailable_domain: Supprimer le domaine indisponible
+ destroy_user_role: Détruire le rôle
disable_2fa_user: Désactiver l’A2F
disable_custom_emoji: Désactiver les émojis personnalisés
disable_sign_in_token_auth_user: Désactiver l'authentification basée sur les jetons envoyés par courriel pour l'utilisateur·rice
@@ -280,24 +218,28 @@ fr:
update_announcement: Modifier l’annonce
update_custom_emoji: Mettre à jour les émojis personnalisés
update_domain_block: Mettre à jour le blocage de domaine
+ update_ip_block: Mettre à jour la règle IP
update_status: Mettre à jour le message
+ update_user_role: Mettre à jour le rôle
actions:
approve_appeal_html: "%{name} a approuvé l'appel de la décision de modération émis par %{target}"
approve_user_html: "%{name} a approuvé l’inscription de %{target}"
assigned_to_self_report_html: "%{name} s’est assigné·e le signalement de %{target}"
change_email_user_html: "%{name} a modifié l'adresse de courriel de l'utilisateur·rice %{target}"
+ change_role_user_html: "%{name} a changé le rôle de %{target}"
confirm_user_html: "%{name} a confirmé l'adresse courriel de l'utilisateur %{target}"
create_account_warning_html: "%{name} a envoyé un avertissement à %{target}"
create_announcement_html: "%{name} a créé une nouvelle annonce %{target}"
+ create_canonical_email_block_html: "%{name} a bloqué l’e-mail avec le hachage %{target}"
create_custom_emoji_html: "%{name} a téléversé un nouvel émoji %{target}"
create_domain_allow_html: "%{name} a autorisé la fédération avec le domaine %{target}"
create_domain_block_html: "%{name} a bloqué le domaine %{target}"
create_email_domain_block_html: "%{name} a bloqué de domaine de courriel %{target}"
create_ip_block_html: "%{name} a créé une règle pour l'IP %{target}"
create_unavailable_domain_html: "%{name} a arrêté la livraison vers le domaine %{target}"
+ create_user_role_html: "%{name} a créé le rôle %{target}"
demote_user_html: "%{name} a rétrogradé l'utilisateur·rice %{target}"
destroy_announcement_html: "%{name} a supprimé l'annonce %{target}"
- destroy_custom_emoji_html: "%{name} a détruit l'émoji %{target}"
destroy_domain_allow_html: "%{name} a rejeté la fédération avec le domaine %{target}"
destroy_domain_block_html: "%{name} a débloqué le domaine %{target}"
destroy_email_domain_block_html: "%{name} a débloqué le domaine de courriel %{target}"
@@ -332,7 +274,7 @@ fr:
update_custom_emoji_html: "%{name} a mis à jour l'émoji %{target}"
update_domain_block_html: "%{name} a mis à jour le blocage de domaine pour %{target}"
update_status_html: "%{name} a mis à jour le message de %{target}"
- deleted_status: "(message supprimé)"
+ update_user_role_html: "%{name} a changé le rôle %{target}"
empty: Aucun journal trouvé.
filter_by_action: Filtrer par action
filter_by_user: Filtrer par utilisateur·ice
@@ -428,6 +370,7 @@ fr:
destroyed_msg: Le blocage de domaine a été désactivé
domain: Domaine
edit: Modifier le blocage de domaine
+ existing_domain_block: Vous avez déjà imposé des limites plus strictes à %{name}.
existing_domain_block_html: Vous avez déjà imposé des limites plus strictes à %{name}, vous devez d’abord le/la débloquer .
new:
create: Créer le blocage
@@ -480,8 +423,8 @@ fr:
instances:
availability:
description_html:
- one: Si la livraison au domaine échoue pendant %{count} jour sans succès, aucune autre tentative de livraison ne sera faite à moins qu'une livraison depuis le domaine soit reçue.
- other: Si la livraison au domaine échoue pendant %{count} jours différents sans succès, aucune autre tentative de livraison ne sera faite à moins qu'une livraison depuis le domaine soit reçue.
+ one: Si la livraison au domaine échoue pendant %{count} jour , aucune autre tentative de livraison ne sera faite à moins qu'une livraison depuis le domaine ne soit reçue.
+ other: Si la livraison au domaine échoue pendant %{count} jours différents , aucune autre tentative de livraison ne sera faite à moins qu'une livraison depuis le domaine ne soit reçue.
failure_threshold_reached: Le seuil de défaillance a été atteint le %{date}.
failures_recorded:
one: Tentative échouée pendant %{count} jour.
@@ -648,6 +591,67 @@ fr:
unresolved: Non résolus
updated_at: Mis à jour
view_profile: Voir le profil
+ roles:
+ add_new: Ajouter un rôle
+ assigned_users:
+ one: "%{count} utilisateur·rice"
+ other: "%{count} utilisateur·rice·s"
+ categories:
+ administration: Administration
+ devops: Devops
+ invites: Invitations
+ moderation: Modération
+ special: Spécial
+ delete: Supprimer
+ description_html: Les rôles utilisateur vous permettent de personnaliser les fonctions et les zones de Mastodon auxquelles vos utilisateur⋅rice⋅s peuvent accéder.
+ edit: Modifier le rôle '%{name}'
+ everyone: Autorisations par défaut
+ everyone_full_description_html: Ceci est le rôle de base qui impacte tou⋅te⋅s les utilisateur⋅rice⋅s , même celleux sans rôle assigné. Tous les autres rôles héritent des autorisations de celui-ci.
+ permissions_count:
+ one: "%{count} autorisation"
+ other: "%{count} autorisations"
+ privileges:
+ administrator: Administrateur·rice
+ administrator_description: Les utilisateur⋅rice⋅s ayant cette autorisation pourront contourner toutes les autorisations
+ delete_user_data: Supprimer les données de l'utilisateur⋅rice
+ delete_user_data_description: Permet aux utilisateur⋅rice⋅s de supprimer sans délai les données des autres utilisateur⋅rice⋅s
+ invite_users: Inviter des utilisateur⋅rice⋅s
+ invite_users_description: Permet aux utilisateur⋅rice⋅s d'inviter de nouvelles personnes sur le serveur
+ manage_announcements: Gérer les annonces
+ manage_announcements_description: Permet aux utilisateur⋅rice⋅s de gérer les annonces sur le serveur
+ manage_appeals: Gérer les contestations
+ manage_appeals_description: Permet aux utilisateur⋅rice⋅s d'examiner les appels contre les actions de modération
+ manage_blocks: Gérer les blocages
+ manage_blocks_description: Permet aux utilisateur⋅rice⋅s de bloquer des fournisseurs de courriel et des adresses IP
+ manage_custom_emojis: Gérer les émojis personnalisés
+ manage_custom_emojis_description: Permet aux utilisateur⋅rice⋅s de gérer les émoticônes personnalisées sur le serveur
+ manage_federation: Gérer de la féderation
+ manage_federation_description: Permet aux utilisateur⋅rice⋅s de bloquer ou d'autoriser la fédération avec d'autres domaines, et de contrôler la capacité de livraison
+ manage_invites: Gérer les invitations
+ manage_invites_description: Permet aux utilisateur⋅rice⋅s de parcourir et de désactiver les liens d'invitation
+ manage_reports: Gérer les rapports
+ manage_reports_description: Permet aux utilisateur⋅rice⋅s d'examiner les signalements et d'effectuer des actions de modération en conséquence
+ manage_roles: Gérer les rôles
+ manage_roles_description: Permet aux utilisateur⋅rice⋅s de gérer et d'assigner des rôles inférieurs au leur
+ manage_rules: Gérer les règles
+ manage_rules_description: Permet aux utilisateur·rice·s de modifier les règles du serveur
+ manage_settings: Gérer les paramètres
+ manage_settings_description: Permet aux utilisateur·rice·s de modifier les paramètres du site
+ manage_taxonomies: Gérer les taxonomies
+ manage_taxonomies_description: Permet aux utilisateur⋅rice⋅s d'examiner les contenus tendance et de mettre à jour les paramètres des hashtags
+ manage_user_access: Gérer l'accès utilisateur
+ manage_user_access_description: Permet aux utilisateur⋅rice⋅s de désactiver l'authentification à deux facteurs, de modifier l'adresse courriel et de réinitialiser le mot de passe des autres utilisateur⋅rice⋅s
+ manage_users: Gérer les utilisateur·rice·s
+ manage_users_description: Permet aux utilisateur⋅rice⋅s de voir les détails des autres utilisateur⋅rice⋅s et d'effectuer des actions de modération en conséquence
+ manage_webhooks: Gérer les points d’ancrage web
+ manage_webhooks_description: Permet aux utilisateur⋅rice⋅s de configurer des webhooks pour des événements d'administration
+ view_audit_log: Afficher le journal d'audit
+ view_audit_log_description: Permet aux utilisateur⋅rice⋅s de voir l'historique des opérations d'administration sur le serveur
+ view_dashboard: Voir le tableau de bord
+ view_dashboard_description: Permet aux utilisateur⋅rice⋅s d'accéder au tableau de bord et à diverses statistiques
+ view_devops: Devops
+ view_devops_description: Permet aux utilisateur⋅rice⋅s d'accéder aux tableaux de bord Sidekiq et pgHero
+ title: Rôles
rules:
add_new: Ajouter une règle
delete: Supprimer
@@ -656,108 +660,45 @@ fr:
empty: Aucune règle de serveur n'a été définie pour l'instant.
title: Règles du serveur
settings:
- activity_api_enabled:
- desc_html: Nombre de messages publiés localement, de comptes actifs et de nouvelles inscriptions regroupés par semaine
- title: Publier des statistiques agrégées sur l’activité des utilisateur·rice·s
- bootstrap_timeline_accounts:
- desc_html: Séparez les noms d'utilisateur·rice·s par des virgules. Ces comptes seront affichés dans les recommendations d'abonnement
- title: Recommender ces comptes aux nouveaux·elles utilisateur·rice·s
- contact_information:
- email: Entrez une adresse courriel publique
- username: Entrez un nom d’utilisateur·ice
- custom_css:
- desc_html: Modifier l’apparence avec une CSS chargée sur chaque page
- title: CSS personnalisé
- default_noindex:
- desc_html: Affecte tous les utilisateurs qui n'ont pas changé eux-mêmes ce paramètre
- title: Opter pour le retrait de l'indexation des moteurs de recherche par défaut
+ about:
+ manage_rules: Gérer les règles du serveur
+ title: À propos
+ appearance:
+ title: Apparence
+ discovery:
+ profile_directory: Annuaire des profils
+ public_timelines: Fils publics
+ trends: Tendances
domain_blocks:
all: À tout le monde
disabled: À personne
- title: Afficher le blocage de domaines
users: Aux utilisateur·rice·s connecté·e·s localement
- domain_blocks_rationale:
- title: Montrer la raison
- hero:
- desc_html: Affichée sur la page d’accueil. Au moins 600x100px recommandé. Lorsqu’elle n’est pas définie, se rabat sur la vignette du serveur
- title: Image d’en-tête
- mascot:
- desc_html: Affiché sur plusieurs pages. Au moins 293×205px recommandé. Lorsqu’il n’est pas défini, retombe à la mascotte par défaut
- title: Image de la mascotte
- peers_api_enabled:
- desc_html: Noms des domaines que ce serveur a découvert dans le fédiverse
- title: Publier la liste des serveurs découverts dans l’API
- preview_sensitive_media:
- desc_html: Les aperçus de lien sur les autres sites web afficheront une vignette même si les médias sont marqués comme sensibles
- title: Montrer les médias sensibles dans les prévisualisations OpenGraph
- profile_directory:
- desc_html: Permettre aux utilisateur·ice·s d’être découvert·e·s
- title: Activer l’annuaire des profils
registrations:
- closed_message:
- desc_html: Affiché sur la page d’accueil lorsque les inscriptions sont fermées. Vous pouvez utiliser des balises HTML
- title: Message de fermeture des inscriptions
- deletion:
- desc_html: Permettre à tou·te·s les utilisateur·rice·s de supprimer leur compte
- title: Autoriser les suppressions de compte
- min_invite_role:
- disabled: Personne
- title: Autoriser les invitations par
- require_invite_text:
- desc_html: Lorsque les enregistrements nécessitent une approbation manuelle, rendre le texte de l’invitation "Pourquoi voulez-vous vous inscrire ?" obligatoire plutôt que facultatif
- title: Exiger que les nouveaux utilisateurs remplissent un texte de demande d’invitation
+ title: Inscriptions
registrations_mode:
modes:
approved: Approbation requise pour s’inscrire
none: Personne ne peut s’inscrire
open: N’importe qui peut s’inscrire
- title: Mode d’enregistrement
- show_known_fediverse_at_about_page:
- desc_html: Lorsque désactivée, restreint le fil public accessible via la page d’accueil de l’instance pour ne montrer que le contenu local
- title: Inclure le contenu fédéré sur la page de fil public sans authentification
- show_staff_badge:
- desc_html: Montrer un badge de responsable sur une page utilisateur·rice
- title: Montrer un badge de responsable
- site_description:
- desc_html: Paragraphe introductif sur l'API. Décrivez les particularités de ce serveur Mastodon et précisez toute autre chose qui vous semble importante. Vous pouvez utiliser des balises HTML, en particulier <a>
et <em>
.
- title: Description du serveur
- site_description_extended:
- desc_html: L’endroit idéal pour afficher votre code de conduite, les règles, les guides et autres choses qui rendent votre serveur différent. Vous pouvez utiliser des balises HTML
- title: Description étendue du serveur
- site_short_description:
- desc_html: Affichée dans la barre latérale et dans les méta-tags. Décrivez ce qui rend spécifique ce serveur Mastodon en un seul paragraphe. Si laissée vide, la description du serveur sera affiché par défaut.
- title: Description courte du serveur
- site_terms:
- desc_html: Vous pouvez écrire votre propre politique de confidentialité, conditions d’utilisation ou autre jargon juridique. Vous pouvez utiliser des balises HTML
- title: Politique de confidentialité
- site_title: Nom du serveur
- thumbnail:
- desc_html: Utilisée pour les prévisualisations via OpenGraph et l’API. 1200x630px recommandé
- title: Vignette du serveur
- timeline_preview:
- desc_html: Afficher un lien vers le fil public sur la page d’accueil et autoriser l'accès anonyme au fil public via l'API
- title: Autoriser la prévisualisation anonyme du fil global
title: Paramètres du serveur
- trendable_by_default:
- desc_html: Affecte les hashtags qui n'ont pas été précédemment non autorisés
- title: Autoriser les hashtags à apparaître dans les tendances sans approbation préalable
- trends:
- desc_html: Afficher publiquement les hashtags approuvés qui sont populaires en ce moment
- title: Hashtags populaires
site_uploads:
delete: Supprimer le fichier téléversé
destroyed_msg: Téléversement sur le site supprimé avec succès !
statuses:
+ account: Auteur·rice
+ application: Application
back_to_account: Retour à la page du compte
back_to_report: Retour à la page du rapport
batch:
remove_from_report: Retirer du rapport
report: Signalement
deleted: Supprimé
+ language: Langue
media:
title: Médias
no_status_selected: Aucun message n’a été modifié car aucun n’a été sélectionné
title: Messages du compte
+ visibility: Visibilité
with_media: Avec médias
strikes:
actions:
@@ -851,6 +792,26 @@ fr:
edit_preset: Éditer les avertissements prédéfinis
empty: Vous n'avez pas encore créé de paramètres prédéfinis pour les avertissements.
title: Gérer les avertissements prédéfinis
+ webhooks:
+ add_new: Ajouter un point de terminaison
+ delete: Supprimer
+ description_html: Un point d'ancrage web permet à Mastodon d'envoyer des notifications en temps réel concernant des événements sélectionnés vers votre propre application, afin que celle-ci puisse déclencher automatiquement des réactions .
+ disable: Désactiver
+ disabled: Désactivé
+ edit: Modifier le point de terminaison
+ empty: Pour l'instant, vous n'avez configuré aucun lien d'ancrage web pour point de terminaison.
+ enable: Activer
+ enabled: Actif
+ enabled_events:
+ one: 1 événement activé
+ other: "%{count} événements activés"
+ events: Événements
+ new: Nouveau point d’ancrage web
+ rotate_secret: Effectuer une rotation du secret
+ secret: Jeton de connexion
+ status: État
+ title: Points d’ancrage web
+ webhook: Point d’ancrage web
admin_mailer:
new_appeal:
actions:
@@ -874,12 +835,8 @@ fr:
new_trends:
body: 'Les éléments suivants doivent être approuvés avant de pouvoir être affichés publiquement :'
new_trending_links:
- no_approved_links: Il n'y a pas de lien tendance approuvé actuellement.
- requirements: N'importe quel élément de la sélection pourrait surpasser le lien tendance approuvé n°%{rank}, qui est actuellement « %{lowest_link_title} » avec un résultat de %{lowest_link_score}.
title: Liens tendance
new_trending_statuses:
- no_approved_statuses: Il n'y a pas de message tendance approuvé actuellement.
- requirements: N'importe quel élément de la sélection pourrait surpasser le message tendance approuvé n°%{rank}, qui est actuellement « %{lowest_status_url} » avec un résultat de %{lowest_status_score}.
title: Messages tendance
new_trending_tags:
no_approved_tags: Il n'y a pas de hashtag tendance approuvé actuellement.
@@ -915,16 +872,13 @@ fr:
applications:
created: Application créée avec succès
destroyed: Application supprimée avec succès
- invalid_url: L’URL fournie est invalide
regenerate_token: Régénérer le jeton d’accès
token_regenerated: Jeton d’accès régénéré avec succès
warning: Soyez prudent·e avec ces données. Ne les partagez pas !
your_token: Votre jeton d’accès
auth:
- apply_for_account: Demander une invitation
+ apply_for_account: S’inscrire sur la liste d’attente
change_password: Mot de passe
- checkbox_agreement_html: J’accepte les règles du serveur et les conditions de service
- checkbox_agreement_without_rules_html: J’accepte les conditions d’utilisation
delete_account: Supprimer le compte
delete_account_html: Si vous désirez supprimer votre compte, vous pouvez cliquer ici . Il vous sera demandé de confirmer cette action.
description:
@@ -943,6 +897,7 @@ fr:
migrate_account: Déménager vers un compte différent
migrate_account_html: Si vous voulez rediriger ce compte vers un autre, vous pouvez le configurer ici .
or_log_in_with: Ou authentifiez-vous avec
+ privacy_policy_agreement_html: J’ai lu et j’accepte la politique de confidentialité
providers:
cas: CAS
saml: SAML
@@ -950,12 +905,17 @@ fr:
registration_closed: "%{instance} a désactivé les inscriptions"
resend_confirmation: Envoyer à nouveau les consignes de confirmation
reset_password: Réinitialiser le mot de passe
+ rules:
+ title: Quelques règles de base.
security: Sécurité
set_new_password: Définir le nouveau mot de passe
setup:
email_below_hint_html: Si l’adresse de courriel ci-dessous est incorrecte, vous pouvez la modifier ici et recevoir un nouveau courriel de confirmation.
email_settings_hint_html: Le courriel de confirmation a été envoyé à %{email}. Si cette adresse de courriel n’est pas correcte, vous pouvez la modifier dans les paramètres du compte.
title: Configuration
+ sign_up:
+ preamble: Avec un compte sur ce serveur Mastodon, vous serez en mesure de suivre toute autre personne sur le réseau, quel que soit l’endroit où son compte est hébergé.
+ title: Mettons les choses en place pour %{domain}.
status:
account_status: État du compte
confirming: En attente de la confirmation par courriel à compléter.
@@ -964,7 +924,6 @@ fr:
redirecting_to: Votre compte est inactif car il est actuellement redirigé vers %{acct}.
view_strikes: Voir les sanctions précédemment appliquées à votre compte
too_fast: Formulaire envoyé trop rapidement, veuillez réessayer.
- trouble_logging_in: Vous avez un problème pour vous connecter ?
use_security_key: Utiliser la clé de sécurité
authorize_follow:
already_following: Vous suivez déjà ce compte
@@ -1022,10 +981,6 @@ fr:
more_details_html: Pour plus de détails, voir la politique de confidentialité .
username_available: Votre nom d’utilisateur·rice sera à nouveau disponible
username_unavailable: Votre nom d’utilisateur·rice restera indisponible
- directories:
- directory: Annuaire des profils
- explanation: Découvrir des utilisateur·rice·s en fonction de leurs centres d’intérêt
- explore_mastodon: Explorer %{title}
disputes:
strikes:
action_taken: Mesure prise
@@ -1104,26 +1059,43 @@ fr:
public: Fils publics
thread: Discussions
edit:
+ add_keyword: Ajouter un mot-clé
+ keywords: Mots-clés
+ statuses: Publications individuelles
title: Éditer le filtre
errors:
+ deprecated_api_multiple_keywords: Ces paramètres ne peuvent pas être modifiés depuis cette application, car ils s'appliquent à plus d'un filtre de mot-clé. Utilisez une application plus récente ou l'interface web.
invalid_context: Contexte invalide ou insuffisant
- invalid_irreversible: Le filtrage irréversible ne fonctionne que pour l’accueil et les notifications
index:
+ contexts: Filtres dans %{contexts}
delete: Supprimer
empty: Vous n'avez aucun filtre.
+ expires_in: Expire dans %{distance}
+ expires_on: Expire le %{date}
+ keywords:
+ one: "%{count} mot-clé"
+ other: "%{count} mots-clés"
+ statuses:
+ one: "%{count} message"
+ other: "%{count} messages"
title: Filtres
new:
+ save: Enregistrer le nouveau filtre
title: Ajouter un nouveau filtre
+ statuses:
+ back_to_filter: Retour au filtre
+ batch:
+ remove: Retirer du filtre
+ index:
+ title: Messages filtrés
footer:
- developers: Développeurs
- more: Davantage…
- resources: Ressources
trending_now: Tendance en ce moment
generic:
all: Tous
changes_saved_msg: Les modifications ont été enregistrées avec succès !
copy: Copier
delete: Supprimer
+ deselect: Tout déselectionner
none: Aucun
order_by: Classer par
save_changes: Enregistrer les modifications
@@ -1150,7 +1122,6 @@ fr:
following: Liste d’utilisateur·rice·s suivi·e·s
muting: Liste d’utilisateur·rice·s que vous masquez
upload: Importer
- in_memoriam_html: En mémoire de.
invites:
delete: Désactiver
expired: Expiré
@@ -1231,19 +1202,10 @@ fr:
copy_account_note_text: 'Cet·te utilisateur·rice est parti·e de %{acct}, voici vos notes précédentes à son sujet :'
notification_mailer:
admin:
+ report:
+ subject: "%{name} a soumis un signalement"
sign_up:
subject: "%{name} s'est inscrit·e"
- digest:
- action: Voir toutes les notifications
- body: Voici un bref résumé des messages que vous avez raté depuis votre dernière visite le %{since}
- mention: "%{name} vous a mentionné⋅e dans :"
- new_followers_summary:
- one: De plus, vous avez un·e nouvel·le abonné·e ! Youpi !
- other: De plus, vous avez %{count} abonné·e·s de plus ! Incroyable !
- subject:
- one: "Une nouvelle notification depuis votre dernière visite 🐘"
- other: "%{count} nouvelles notifications depuis votre dernière visite 🐘"
- title: Pendant votre absence…
favourite:
body: "%{name} a ajouté votre message à ses favoris :"
subject: "%{name} a ajouté votre message à ses favoris"
@@ -1315,6 +1277,8 @@ fr:
other: Autre
posting_defaults: Paramètres de publication par défaut
public_timelines: Fils publics
+ privacy_policy:
+ title: Politique de confidentialité
reactions:
errors:
limit_reached: Limite de réactions différentes atteinte
@@ -1337,22 +1301,7 @@ fr:
remove_selected_follows: Ne plus suivre les comptes sélectionnés
status: État du compte
remote_follow:
- acct: Entrez l’adresse profil@serveur depuis laquelle vous voulez effectuer cette action
missing_resource: L’URL de redirection requise pour votre compte n’a pas pu être trouvée
- no_account_html: Vous n’avez pas de compte ? Vous pouvez vous inscrire ici
- proceed: Confirmer l’abonnement
- prompt: 'Vous allez suivre :'
- reason_html: "Pourquoi cette étape est-elle nécessaire? %{instance}
pourrait ne pas être le serveur sur lequel vous vous êtes inscrit·e, et nous devons donc vous rediriger vers votre serveur de base en premier."
- remote_interaction:
- favourite:
- proceed: Confirmer l’ajout aux favoris
- prompt: 'Vous souhaitez ajouter ce message à vos favoris :'
- reblog:
- proceed: Confirmer le partage
- prompt: 'Vous souhaitez partager ce message :'
- reply:
- proceed: Confirmer la réponse
- prompt: 'Vous souhaitez répondre à ce message :'
reports:
errors:
invalid_rules: ne fait pas référence à des règles valides
@@ -1519,10 +1468,11 @@ fr:
pinned: Message épinglé
reblogged: a partagé
sensitive_content: Contenu sensible
+ strikes:
+ errors:
+ too_late: Il est trop tard pour faire appel à cette sanction
tags:
does_not_match_previous_name: ne correspond pas au nom précédent
- terms:
- title: Conditions d’utilisation et politique de confidentialité de %{instance}
themes:
contrast: Mastodon (Contraste élevé)
default: Mastodon (Sombre)
@@ -1601,20 +1551,11 @@ fr:
suspend: Compte suspendu
welcome:
edit_profile_action: Configuration du profil
- edit_profile_step: Vous pouvez personnaliser votre profil en téléchargeant un avatar, une image d’en-tête, en changeant votre pseudo et plus encore. Si vous souhaitez examiner les nouveaux·lles abonné·e·s avant qu’iels ne soient autorisé·e·s à vous suivre, vous pouvez verrouiller votre compte.
explanation: Voici quelques conseils pour vous aider à démarrer
final_action: Commencez à publier
- final_step: 'Commencez à publier ! Même sans abonné·e·s, vos messages publics peuvent être vus par d’autres, par exemple sur le fil public local et dans les hashtags. Vous pouvez vous présenter sur le hashtag #introductions.'
full_handle: Votre identifiant complet
full_handle_hint: C’est ce que vous diriez à vos ami·e·s pour leur permettre de vous envoyer un message ou vous suivre à partir d’un autre serveur.
- review_preferences_action: Modifier les préférences
- review_preferences_step: Assurez-vous de définir vos préférences, telles que les courriels que vous aimeriez recevoir ou le niveau de confidentialité auquel vous publier vos messages par défaut. Si vous n’avez pas le mal des transports, vous pouvez choisir d’activer la lecture automatique des GIF.
subject: Bienvenue sur Mastodon
- tip_federated_timeline: Le fil public global est une vue en direct du réseau Mastodon. Mais elle n’inclut que les personnes auxquelles vos voisin·e·s sont abonné·e·s, donc elle n’est pas complète.
- tip_following: Vous suivez les administrateurs de votre serveur par défaut. Pour trouver d’autres personnes intéressantes, consultez les fils publics local et global.
- tip_local_timeline: Le fil public local est une vue des personnes sur %{instance}. Ce sont vos voisines et voisins immédiats !
- tip_mobile_webapp: Si votre navigateur mobile vous propose d’ajouter Mastodon à votre écran d’accueil, vous pouvez recevoir des notifications. Il agit comme une application native de bien des façons !
- tips: Astuces
title: Bienvenue à bord, %{name} !
users:
follow_limit_reached: Vous ne pouvez pas suivre plus de %{limit} personnes
diff --git a/config/locales/fy.yml b/config/locales/fy.yml
index fa727d6fe4..c48a0b1b5c 100644
--- a/config/locales/fy.yml
+++ b/config/locales/fy.yml
@@ -1,8 +1,5 @@
---
fy:
- about:
- active_count_after: warber
- active_footnote: Moanliks Warbere Brûkers (MWB)
accounts:
last_active: letst warber
admin:
@@ -37,8 +34,6 @@ fy:
contexts:
thread: Petearen
notification_mailer:
- digest:
- mention: "%{name} hat jo fermeld yn:"
mention:
action: Beäntwurdzje
body: 'Jo binne fermeld troch %{name} yn:'
diff --git a/config/locales/ga.yml b/config/locales/ga.yml
index 8a280c0012..14936b4ba7 100644
--- a/config/locales/ga.yml
+++ b/config/locales/ga.yml
@@ -1,18 +1,7 @@
---
ga:
- about:
- api: API
- privacy_policy: Polasaí príobháideachais
- unavailable_content_description:
- domain: Freastalaí
- reason: Fáth
accounts:
posts_tab_heading: Postálacha
- roles:
- bot: Róbat
- group: Grúpa
- moderator: Modhnóir
- unfollow: Ná lean
admin:
accounts:
are_you_sure: An bhfuil tú cinnte?
@@ -27,11 +16,6 @@ ga:
all: Uile
public: Poiblí
reject: Diúltaigh
- roles:
- admin: Riarthóir
- moderator: Modhnóir
- staff: Foireann
- user: Úsáideoir
search: Cuardaigh
statuses: Postálacha
title: Cuntais
diff --git a/config/locales/gd.yml b/config/locales/gd.yml
index 931cea4fb1..82398d53c3 100644
--- a/config/locales/gd.yml
+++ b/config/locales/gd.yml
@@ -1,69 +1,12 @@
---
gd:
about:
- about_hashtag_html: Seo postaichean poblach le taga #%{hashtag} riutha. ’S urrainn dhut conaltradh leotha ma tha cunntas agad àite sam bith sa cho-shaoghal.
about_mastodon_html: 'An lìonra sòisealta dhan àm ri teachd: Gun sanasachd, gun chaithris corporra, dealbhadh beusail agus dì-mheadhanachadh! Gabh sealbh air an dàta agad fhèin le Mastodon!'
- about_this: Mu dhèidhinn
- active_count_after: gnìomhach
- active_footnote: Cleachdaichean gnìomhach gach mìos (MAU)
- administered_by: 'Rianachd le:'
- api: API
- apps: Aplacaidean mobile
- apps_platforms: Cleachd Mastodon o iOS, Android ’s ùrlaran eile
- browse_directory: Rùraich eòlaire phròifilean ’s criathraich a-rèir ùidhean
- browse_local_posts: Brabhsaich sruth beò de phostaichean poblach on fhrithealaiche seo
- browse_public_posts: Brabhsaich sruth beò de phostaichean poblach air Mastodon
- contact: Fios thugainn
contact_missing: Cha deach a shuidheachadh
contact_unavailable: Chan eil seo iomchaidh
- continue_to_web: Lean air adhart dhan aplacaid-lìn
- discover_users: Rùraich cleachdaichean
- documentation: Docamaideadh
- federation_hint_html: Le cunntas air %{instance}, ’s urrainn dhut leantainn air daoine air frithealaiche Mastodon sam bith is a bharrachd.
- get_apps: Feuch aplacaid mobile
hosted_on: Mastodon ’ga òstadh air %{domain}
- instance_actor_flash: |
- ’S e actar biortail a tha sa chunntas seo a riochdaicheas am frithealaiche fhèin seach cleachdaiche sònraichte.
- Tha e ’ga chleachdadh a chùm co-nasgaidh agus cha bu chòir dhut a bhacadh ach ma tha thu airson an t-ionstans gu lèir a bhacadh agus b’ fheàirrde thu bacadh àrainne a chleachdadh an àite sin.
- learn_more: Barrachd fiosrachaidh
- logged_in_as_html: Tha thu air do chlàradh a-steach an-dràsta mar %{username}.
- logout_before_registering: Tha thu air clàradh a-steach mu thràth.
- privacy_policy: Poileasaidh prìobhaideachd
- rules: Riaghailtean an fhrithealaiche
- rules_html: 'Tha geàrr-chunntas air na riaghailtean a dh’fheumas tu gèilleadh riutha ma tha thu airson cunntas fhaighinn air an fhrithealaiche Mastodon seo gu h-ìosal:'
- see_whats_happening: Faic dè tha dol
- server_stats: 'Stadastaireachd an fhrithealaiche:'
- source_code: Bun-tùs
- status_count_after:
- few: postaichean
- one: phost
- other: post
- two: phost
- status_count_before: A dh’fhoillsich
- tagline: Lean air caraidean ’s rùraich feadhainn ùra
- terms: Teirmichean na seirbheise
- unavailable_content: Frithealaichean fo mhaorsainneachd
- unavailable_content_description:
- domain: Frithealaiche
- reason: Adhbhar
- rejecting_media: 'Cha dèid faidhlichean meadhain o na frithealaichean seo a phròiseasadh no a stòradh agus cha dèid dealbhagan dhiubh a shealltainn. Feumar briogadh gus an ruigear am faidhle tùsail a làimh:'
- rejecting_media_title: Meadhanan criathraichte
- silenced: 'Thèid postaichean o na frithealaichean seo fhalach air loidhnichean-ama is còmhraidhean poblach agus cha dèid brathan a ghintinn à conaltraidhean nan cleachdaichean aca ach ma bhios tu fèin a’ leantainn orra:'
- silenced_title: Frithealaichean cuingichte
- suspended: 'Cha dèid dàta sam bith o na frithealaichean seo a phròiseasadh, a stòradh no iomlaid agus chan urrainn do na cleachdaichean o na frithealaichean sin conaltradh an-seo:'
- suspended_title: Frithealaichean à rèim
- unavailable_content_html: San fharsaingeachd, leigidh Mastodon leat susbaint o fhrithealaiche sam bith sa cho-shaoghal a shealltainn agus conaltradh leis na cleachdaichean uapa-san. Seo na h-easgaidhean a tha an sàs air an fhrithealaiche shònraichte seo.
- user_count_after:
- few: cleachdaichean
- one: chleachdaiche
- other: cleachdaiche
- two: chleachdaiche
- user_count_before: "’Na dhachaigh do"
- what_is_mastodon: Dè th’ ann am Mastodon?
+ title: Mu dhèidhinn
accounts:
- choices_html: 'Roghadh is taghadh %{name}:'
- endorsements_hint: "’S urrainn dhut daoine air a leanas tu a bhrosnachadh on eadar-aghaidh-lìn agus nochdaidh iad an-seo."
- featured_tags_hint: "’S urrainn dhut tagaichean hais sònraichte a bhrosnachadh a thèid a shealltainn an-seo."
follow: Lean air
followers:
few: Luchd-leantainn
@@ -72,15 +15,9 @@ gd:
two: Luchd-leantainn
following: A’ leantainn
instance_actor_flash: "’S e actar biortail a tha sa chunntas seo a riochdaicheas am frithealaiche fhèin seach cleachdaiche sònraichte. Tha e ’ga chleachdadh a chùm co-nasgaidh agus cha bu chòir dhut a chur à rèim."
- joined: Air ballrachd fhaighinn %{date}
last_active: an gnìomh mu dheireadh
link_verified_on: Chaidh dearbhadh cò leis a tha an ceangal seo %{date}
- media: Meadhanan
- moved_html: 'Chaidh %{name} imrich gu %{new_profile_link}:'
- network_hidden: Chan eil am fiosrachadh seo ri fhaighinn
nothing_here: Chan eil dad an-seo!
- people_followed_by: Daoine air a leanas %{name}
- people_who_follow: Daoine a tha a’ leantainn air %{name}
pin_errors:
following: Feumaidh tu leantainn air neach mus urrainn dhut a bhrosnachadh
posts:
@@ -89,14 +26,6 @@ gd:
other: Postaichean
two: Postaichean
posts_tab_heading: Postaichean
- posts_with_replies: Postaichean ’s freagairtean
- roles:
- admin: Rianaire
- bot: Bot
- group: Buidheann
- moderator: Maor
- unavailable: Chan eil a’ phròifil ri làimh
- unfollow: Na lean tuilleadh
admin:
account_actions:
action: Gabh an gnìomh
@@ -113,12 +42,17 @@ gd:
avatar: Avatar
by_domain: Àrainn
change_email:
- changed_msg: Chaidh post-d a’ chunntais atharrachadh!
+ changed_msg: Chaidh am post-d atharrachadh!
current_email: Am post-d làithreach
label: Atharraich am post-d
new_email: Post-d ùr
submit: Atharraich am post-d
title: Atharraich am post-d airson %{username}
+ change_role:
+ changed_msg: Chaidh an dreuchd atharrachadh!
+ label: Atharraich an dreuchd
+ no_role: Gun dreuchd
+ title: Atharraich an dreuchd aig %{username}
confirm: Dearbh
confirmed: Chaidh a dhearbhachadh
confirming: "’Ga dhearbhadh"
@@ -162,6 +96,7 @@ gd:
active: Gnìomhach
all: Na h-uile
pending: Ri dhèiligeadh
+ silenced: Cuingichte
suspended: À rèim
title: Maorsainneachd
moderation_notes: Nòtaichean na maorsainneachd
@@ -169,6 +104,7 @@ gd:
most_recent_ip: An IP as ùire
no_account_selected: Cha deach cunntas sam bith atharrachadh o nach deach gin dhiubh a thaghadh
no_limits_imposed: Cha deach crìoch sam bith a sparradh
+ no_role_assigned: Cha deach dreuchd iomruineadh
not_subscribed: Gun fho-sgrìobhadh
pending: A’ feitheamh air lèirmheas
perform_full_suspension: Cuir à rèim
@@ -197,12 +133,7 @@ gd:
reset: Ath-shuidhich
reset_password: Ath-shuidhich am facal-faire
resubscribe: Fo-sgrìobh a-rithist
- role: Ceadan
- roles:
- admin: Rianaire
- moderator: Maor
- staff: Ball dhen sgioba
- user: Cleachdaiche
+ role: Dreuchd
search: Lorg
search_same_email_domain: Cleachdaichean eile aig a bheil an aon àrainn puist-d
search_same_ip: Cleachdaichean eile aig a bheil an t-aon IP
@@ -245,17 +176,21 @@ gd:
approve_user: Aontaich ris a’ chleachdaiche
assigned_to_self_report: Iomruin an gearan
change_email_user: Atharraich post-d a’ chleachdaiche
+ change_role_user: Atharraich dreuchd a’ chleachdaiche
confirm_user: Dearbh an cleachdaiche
create_account_warning: Cruthaich rabhadh
create_announcement: Cruthaich brath-fios
+ create_canonical_email_block: Cruthaich bacadh puist-d
create_custom_emoji: Cruthaich Emoji gnàthaichte
create_domain_allow: Cruthaich ceadachadh àrainne
create_domain_block: Cruthaich bacadh àrainne
create_email_domain_block: Cruthaich bacadh àrainne puist-d
create_ip_block: Cruthaich riaghailt IP
create_unavailable_domain: Cruthaich àrainn nach eil ri fhaighinn
+ create_user_role: Cruthaich dreuchd
demote_user: Ìslich an cleachdaiche
destroy_announcement: Sguab às am brath-fios
+ destroy_canonical_email_block: Sguab às dhan bhacadh puist-d
destroy_custom_emoji: Sguab às an t-Emoji gnàthaichte
destroy_domain_allow: Sguab às ceadachadh na h-àrainne
destroy_domain_block: Sguab às bacadh na h-àrainne
@@ -264,6 +199,7 @@ gd:
destroy_ip_block: Sguab às an riaghailt IP
destroy_status: Sguab às am post
destroy_unavailable_domain: Sguab às àrainn nach eil ri fhaighinn
+ destroy_user_role: Mill an dreuchd
disable_2fa_user: Cuir an dearbhadh dà-cheumnach à comas
disable_custom_emoji: Cuir an t-Emoji gnàthaichte à comas
disable_sign_in_token_auth_user: Cuir à comas dearbhadh le tòcan puist-d dhan chleachdaiche
@@ -290,24 +226,30 @@ gd:
update_announcement: Ùraich am brath-fios
update_custom_emoji: Ùraich an t-Emoji gnàthaichte
update_domain_block: Ùraich bacadh na h-àrainne
+ update_ip_block: Ùraich an riaghailt IP
update_status: Ùraich am post
+ update_user_role: Ùraich an dreuchd
actions:
approve_appeal_html: Dh’aontaich %{name} ri ath-thagradh air co-dhùnadh na maorsainneachd o %{target}
approve_user_html: Dh’aontaich %{name} ri clàradh o %{target}
assigned_to_self_report_html: Dh’iomruin %{name} an gearan %{target} dhaibh fhèin
change_email_user_html: Dh’atharraich %{name} seòladh puist-d a’ chleachdaiche %{target}
+ change_role_user_html: Atharraich %{name} an dreuchd aig %{target}
confirm_user_html: Dhearbh %{name} seòladh puist-d a’ chleachdaiche %{target}
create_account_warning_html: Chuir %{name} rabhadh gu %{target}
create_announcement_html: Chruthaich %{name} brath-fios %{target} ùr
+ create_canonical_email_block_html: Bhac %{name} am post-d air a bheil an hais %{target}
create_custom_emoji_html: Luchdaich %{name} suas Emoji %{target} ùr
create_domain_allow_html: Cheadaich %{name} co-nasgadh leis an àrainn %{target}
create_domain_block_html: Bhac %{name} an àrainn %{target}
create_email_domain_block_html: Bhac %{name} an àrainn puist-d %{target}
create_ip_block_html: Chruthaich %{name} riaghailt dhan IP %{target}
create_unavailable_domain_html: Sguir %{name} ris an lìbhrigeadh dhan àrainn %{target}
+ create_user_role_html: Chruthaich %{name} an dreuchd %{target}
demote_user_html: Dh’ìslich %{name} an cleachdaiche %{target}
destroy_announcement_html: Sguab %{name} às am brath-fios %{target}
- destroy_custom_emoji_html: Mhill %{name} an Emoji %{target}
+ destroy_canonical_email_block_html: Dhì-bhac %{name} am post-d air a bheil an hais %{target}
+ destroy_custom_emoji_html: Sguab %{name} às an Emoji %{target}
destroy_domain_allow_html: Dì-cheadaich %{name} co-nasgadh leis an àrainn %{target}
destroy_domain_block_html: Dì-bhac %{name} an àrainn %{target}
destroy_email_domain_block_html: Dì-bhac %{name} an àrainn puist-d %{target}
@@ -315,6 +257,7 @@ gd:
destroy_ip_block_html: Sguab %{name} às riaghailt dhan IP %{target}
destroy_status_html: Thug %{name} post aig %{target} air falbh
destroy_unavailable_domain_html: Lean %{name} air adhart leis an lìbhrigeadh dhan àrainn %{target}
+ destroy_user_role_html: Sguab %{name} às an dreuchd %{target}
disable_2fa_user_html: Chuir %{name} riatanas an dearbhaidh dà-cheumnaich à comas dhan chleachdaiche %{target}
disable_custom_emoji_html: Chuir %{name} an Emoji %{target} à comas
disable_sign_in_token_auth_user_html: Chuir %{name} à comas dearbhadh le tòcan puist-d dha %{target}
@@ -341,8 +284,9 @@ gd:
update_announcement_html: Dh’ùraich %{name} am brath-fios %{target}
update_custom_emoji_html: Dh’ùraich %{name} an Emoji %{target}
update_domain_block_html: Dh’ùraich %{name} bacadh na h-àrainne %{target}
+ update_ip_block_html: Sguab %{name} às riaghailt dhan IP %{target}
update_status_html: Dh’ùraich %{name} post le %{target}
- deleted_status: "(post air a sguabadh às)"
+ update_user_role_html: Dh’atharraich %{name} an dreuchd %{target}
empty: Cha deach loga a lorg.
filter_by_action: Criathraich a-rèir gnìomha
filter_by_user: Criathraich a-rèir cleachdaiche
@@ -386,6 +330,7 @@ gd:
listed: Liostaichte
new:
title: Cuir Emoji gnàthaichte ùr ris
+ no_emoji_selected: Cha deach Emoji sam bith atharrachadh o nach deach gin dhiubh a thaghadh
not_permitted: Chan fhaod thu seo a dhèanamh
overwrite: Sgrìobh thairis air
shortcode: Geàrr-chòd
@@ -446,6 +391,7 @@ gd:
destroyed_msg: Chan eil an àrainn ’ga bacadh tuilleadh
domain: Àrainn
edit: Deasaich bacadh na h-àrainne
+ existing_domain_block: Chuir thu cuingeachaidhean nas teinne air %{name} mu thràth.
existing_domain_block_html: Chuir thu cuingeachadh nas teinne air %{name} mu thràth, feumaidh tu a dì-bhacadh an toiseach.
new:
create: Cruthaich bacadh
@@ -458,7 +404,7 @@ gd:
title: Bacadh àrainne ùr
obfuscate: Doilleirich ainm na h-àrainne
obfuscate_hint: Doilleirich pàirt de dh’ainm na h-àrainne air an liosta ma tha foillseachadh liosta nan cuingeachaidhean àrainne an comas
- private_comment: Beachd prìobhaideachd
+ private_comment: Beachd prìobhaideach
private_comment_hint: Beachd mu chuingeachadh na h-àrainne seo nach cleachd ach na maoir.
public_comment: Beachd poblach
public_comment_hint: Beachd poblach mu chuingeachadh na h-àrainne seo ma tha foillseachadh liosta nan cuingeachaidhean àrainne an comas.
@@ -559,7 +505,7 @@ gd:
all: Na h-uile
limited: Cuingichte
title: Maorsainneachd
- private_comment: Beachd prìobhaideachd
+ private_comment: Beachd prìobhaideach
public_comment: Beachd poblach
purge: Purgaidich
purge_description_html: Ma tha thu dhen bheachd gu bheil an àrainn seo far loidhne gu buan, ’s urrainn dhut a h-uile clàr cunntais ’s an dàta co-cheangailte on àrainn ud a sguabadh às san stòras agad. Dh’fhaoidte gun doir sin greis mhath.
@@ -676,6 +622,71 @@ gd:
unresolved: Gun fhuasgladh
updated_at: Air ùrachadh
view_profile: Seall a’ phròifil
+ roles:
+ add_new: Cuir dreuchd ris
+ assigned_users:
+ few: "%{count} cleachdaichean"
+ one: "%{count} chleachdaiche"
+ other: "%{count} cleachdaiche"
+ two: "%{count} chleachdaiche"
+ categories:
+ administration: Rianachd
+ devops: DevOps
+ invites: Cuiridhean
+ moderation: Maorsainneachd
+ special: Sònraichte
+ delete: Sguab às
+ description_html: Le dreuchdan chleachdaichean , ’s urrainn dhut gnàthachadh dè na gleusan is raointean de Mhastodon as urrainn dha na cleachdaichean agad inntrigeadh.
+ edit: Deasaich an dreuchd aig “%{name}“
+ everyone: Na ceadan bunaiteach
+ everyone_full_description_html: Seo an dreuchd bhunaiteach a bheir buaidh air gach cleachdaiche , fiù an fheadhainn nach deach dreuchd iomruineadh dhaibh. Gheibh a h-uile dreuch ceadan uaipe mar dhìleab.
+ permissions_count:
+ few: "%{count} ceadan"
+ one: "%{count} chead"
+ other: "%{count} cead"
+ two: "%{count} chead"
+ privileges:
+ administrator: Rianaire
+ administrator_description: Chan eil cuingeachadh sam bith air na cleachdaichean aig bheil an cead seo
+ delete_user_data: Sguab às dàta a’ chleachdaiche
+ delete_user_data_description: Leigidh seo le cleachdaichean dàta chleachdaichean eile a sguabadh às gun dàil
+ invite_users: Thoir cuireadh do chleachdaichean
+ invite_users_description: Leigidh seo le cleachdaichean cuireadh dhan fhrithealaiche a chur gu daoine eile
+ manage_announcements: Stiùireadh nam brathan-fios
+ manage_announcements_description: Leigidh seo le cleachdaichean brathan-fios a stiùireadh air an fhrithealaiche
+ manage_appeals: Stiùireadh ath-thagraidhean
+ manage_appeals_description: Leigidh seo le cleachdaichean lèirmheas a dhèanamh air ath-thagraidhean an aghaidh gnìomhan mhaor
+ manage_blocks: Stiùireadh nam bacaidhean
+ manage_blocks_description: Leigidh seo le cleachdaichean solaraichean puist-d is seòlaidhean IP a bhacadh
+ manage_custom_emojis: Stiùireadh nan Emojis gnàthaichte
+ manage_custom_emojis_description: Leigidh seo le cleachdaichean Emojis gnàthaichte a stiùireadh air an fhrithealaiche
+ manage_federation: Stiùireadh a’ cho-nasgaidh
+ manage_federation_description: Leigidh seo le cleachdaichean an co-nasgadh le àrainnean eile a bhacadh no a cheadachadh agus stiùireadh dè ghabhas lìbhrigeadh
+ manage_invites: Stiùireadh nan cuiridhean
+ manage_invites_description: Leigidh seo le cleachdaichean ceanglaichean cuiridh a rùrachadh ’s a chur à gnìomh
+ manage_reports: Stiùireadh ghearanan
+ manage_reports_description: Leigidh seo le cleachdaichean lèirmheas a dhèanamh air gearanan agus gnìomhan maoir a ghabhail ’nan aghaidh
+ manage_roles: Stiùireadh dhreuchdan
+ manage_roles_description: Leigidh seo le cleachdaichean dreuchdan a stiùireadh is iomruineadh do dh’ìochdaran
+ manage_rules: Stiùireadh nan riaghailtean
+ manage_rules_description: Leigidh seo le cleachdaichean riaghailtean an fhrithealaiche atharrachadh
+ manage_settings: Stiùireadh nan roghainnean
+ manage_settings_description: Leigidh seo le cleachdaichean roghainnean na làraich atharrachadh
+ manage_taxonomies: Stiùireadh thacsonamaidhean
+ manage_taxonomies_description: Leigidh seo le cleachdaichean lèirmheas a dhèanamh air an t-susbaint a tha a’ treandadh agus roghainnean nan tagaichean hais ùrachadh
+ manage_user_access: Stiùireadh inntrigeadh chleachdaichean
+ manage_user_access_description: Leigidh seo le cleachdaichean gun cuir iad à comas dearbhadh dà-cheumnach càich, gun atharraich iad an seòladh puist-d aca is gun ath-shuidhich iad am facal-faire aca
+ manage_users: Stiùireadh chleachdaichean
+ manage_users_description: Leigidh seo le cleachdaichean mion-fhiosrachadh càich a shealltainn agus gnìomhan maoir a ghabhail ’nan aghaidh
+ manage_webhooks: Stiùireadh nan webhooks
+ manage_webhooks_description: Leigidh seo le cleachdaichean webhooks a shuidheachadh do thachartasan na rianachd
+ view_audit_log: Coimhead air an loga sgrùdaidh
+ view_audit_log_description: Leigidh seo le cleachdaichean coimhead air eachdraidh gnìomhan na rianachd air an fhrithealaiche
+ view_dashboard: Coimhead air an deas-bhòrd
+ view_dashboard_description: Leigidh seo le cleachdaichean an deas-bhòrd agus meatrachdan inntrigeadh
+ view_devops: DevOps
+ view_devops_description: Leigidh seo le cleachdaichean na deas-bhùird aig Sidekiq is pgHero inntrigeadh
+ title: Dreuchdan
rules:
add_new: Cuir riaghailt ris
delete: Sguab às
@@ -684,108 +695,67 @@ gd:
empty: Cha deach riaghailtean an fhrithealaiche a mhìneachadh fhathast.
title: Riaghailtean an fhrithealaiche
settings:
- activity_api_enabled:
- desc_html: Cunntasan nam postaichean a chaidh fhoillseachadh gu h-ionadail, nan cleachdaichean gnìomhach ’s nan clàraidhean ùra an am bucaidean seachdaineil
- title: Foillsich agragaid dhen stadastaireachd mu ghnìomhachd nan cleachdaichean san API
- bootstrap_timeline_accounts:
- desc_html: Sgar iomadh ainm cleachdaiche le cromag. Cuiridh sinn geall gun nochd na cunntasan seo am measg nam molaidhean leantainn
- title: Mol na cunntasan seo do chleachdaichean ùra
- contact_information:
- email: Post-d gnìomhachais
- username: Ainm cleachdaiche a’ chonaltraidh
- custom_css:
- desc_html: Atharraich an coltas le CSS a thèid a luchdadh le gach duilleag
- title: CSS gnàthaichte
- default_noindex:
- desc_html: Bidh buaidh air a h-uile cleachdaiche nach do dh’atharraich an roghainn seo dhaibh fhèin
- title: Thoir air falbh ro-aonta nan cleachdaichean air inneacsadh le einnseanan-luirg mar a’ bhun-roghainn
+ about:
+ manage_rules: Stiùirich riaghailtean an fhrithealaiche
+ preamble: Solair fiosrachadh domhainn mu sholar, maorsainneachd is maoineachadh an fhrithealaiche seo.
+ rules_hint: Tha roinn sònraichte ann dha na riaghailtean air am bu chòir an luchd-cleachdaidh agad a leantainn.
+ title: Mu dhèidhinn
+ appearance:
+ preamble: Gnàthaich eadar-aghaidh-lìn Mhastodon.
+ title: Coltas
+ branding:
+ preamble: Tha branndadh an fhrithealaiche agad eadar-dhealaichte o fhrithealaichean eile san lìonra. Faodaidh gun nochd am fiosrachadh seo thar iomadh àrainneachd, can eadar-aghaidh-lìn Mhastodon, aplacaidean tùsail, ro-sheallaidhean air ceanglaichean air làraichean-lìn eile agus am broinn aplacaidean theachdaireachdan is mar sin air adhart. Air an adhbhar seo, mholamaid gun cùm thu am fiosrachadh seo soilleir is goirid.
+ title: Branndadh
+ content_retention:
+ preamble: Stiùirich mar a tha susbaint an luchd-cleachdaidh ’ga stòradh ann am Mastodon.
+ title: Glèidheadh na susbaint
+ discovery:
+ follow_recommendations: Molaidhean leantainn
+ preamble: Tha tighinn an uachdar susbainte inntinniche fìor-chudromach airson toiseach-tòiseachaidh an luchd-cleachdaidh ùr nach eil eòlach air duine sam bith air Mastodon, ma dh’fhaoidte. Stiùirich mar a dh’obraicheas gleusan an rannsachaidh air an fhrithealaiche agad.
+ profile_directory: Eòlaire nam pròifil
+ public_timelines: Loidhnichean-ama poblach
+ title: Rùrachadh
+ trends: Treandaichean
domain_blocks:
all: Dhan a h-uile duine
disabled: Na seall idir
- title: Seall bacaidhean àrainne
users: Dhan luchd-chleachdaidh a clàraich a-steach gu h-ionadail
- domain_blocks_rationale:
- title: Seall an t-adhbhar
- hero:
- desc_html: Thèid seo a shealltainn air a’ phrìomh-dhuilleag. Mholamaid 600x100px air a char as lugha. Mura dèid seo a shuidheachadh, thèid dealbhag an fhrithealaiche a shealltainn ’na àite
- title: Dealbh gaisgich
- mascot:
- desc_html: Thèid seo a shealltainn air iomadh duilleag. Mholamaid 293×205px air a char as lugha. Mura dèid seo a shuidheachadh, thèid an suaichnean a shealltainn ’na àite
- title: Dealbh suaichnein
- peers_api_enabled:
- desc_html: Ainmean àrainne air an do thachair am frithealaiche seo sa cho-shaoghal
- title: Foillsich liosta nam frithealaichean a chaidh a rùrachadh san API
- preview_sensitive_media:
- desc_html: Ro-sheallaidh ceanglaichean dealbhag fhiù ’s ma chaidh comharradh gu bheil am meadhan frionasach
- title: Seall meadhanan frionasach ann an ro-sheallaidhean OpenGraph
- profile_directory:
- desc_html: Suidhich gun gabh cleachdaichean a rùrachadh
- title: Cuir eòlaire nam pròifil an comas
registrations:
- closed_message:
- desc_html: Thèid seo a shealltainn air an duilleag-dhachaigh nuair a bhios an clàradh dùinte. ’S urrainn dhut tagaichean HTML a chleachdadh
- title: Teachdaireachd a’ chlàraidh dhùinte
- deletion:
- desc_html: Leig le neach sa bith an cunntas a sguabadh às
- title: Fosgail sguabadh às chunntasan
- min_invite_role:
- disabled: Na ceadaich idir
- title: Ceadaich cuiridhean le
- require_invite_text:
- desc_html: Nuair a bhios aontachadh a làimh riatanach dhan chlàradh, dèan an raon teacsa “Carson a bu mhiann leat ballrachd fhaighinn?” riatanach seach roghainneil
- title: Iarr air cleachdaichean ùra gun innis iad carson a tha iad ag iarraidh ballrachd
+ preamble: Stiùirich cò dh’fhaodas cunntas a chruthachadh air an fhrithealaiche agad.
+ title: Clàraidhean
registrations_mode:
modes:
approved: Tha aontachadh riatanach airson clàradh
none: Chan fhaod neach sam bith clàradh
open: "’S urrainn do neach sam bith clàradh"
- title: Modh a’ chlàraidh
- show_known_fediverse_at_about_page:
- desc_html: Nuair a bhios seo à comas, cha sheall an loidhne-ama phoblach a thèid a cheangal rithe on duilleag-landaidh ach susbaint ionadail
- title: Gabh a-staigh susbaint cho-naisgte air duilleag na loidhne-ama poblaich gun ùghdarrachadh
- show_staff_badge:
- desc_html: Seall bràist sgioba air duilleag cleachdaiche
- title: Seall bràist sgioba
- site_description:
- desc_html: Earrann tuairisgeil air an API. Mìnich dè tha sònraichte mun fhrithealaiche Mastodon seo agus rud sa bith eile a tha cudromach. ’S urrainn dhut tagaichean HTML a chleachdadh agus <a>
’s <em>
gu sònraichte.
- title: Tuairisgeul an fhrithealaiche
- site_description_extended:
- desc_html: Seo deagh àite airson an còd-giùlain, na riaghailtean ’s na comharran-treòrachaidh agad agus do nithean eile a tha sònraichte mun fhrithealaiche agad. ‘S urrainn dhut tagaichean HTML a chleachdadh
- title: Fiosrachadh leudaichte gnàthaichte
- site_short_description:
- desc_html: Nochdaidh seo air a’ bhàr-taoibh agus sna meata-thagaichean. Mìnich dè th’ ann am Mastodon agus dè tha sònraichte mun fhrithealaiche agad ann an aon earrann a-mhàin.
- title: Tuairisgeul goirid an fhrithealaiche
- site_terms:
- desc_html: "’S urrainn dhut am poileasaidh prìobhaideachd no teirmichean na seirbheise agad fhèin no fiosrachadh laghail sa bith eile a sgrìobhadh. ‘S urrainn dhut tagaichean HTML a chleachdadh"
- title: Teirmichean gnàthaichte na seirbheise
- site_title: Ainm an fhrithealaiche
- thumbnail:
- desc_html: Thèid seo a chleachdadh airson ro-sheallaidhean slighe OpenGraph no API. Mholamaid 1200x630px
- title: Dealbhag an fhrithealaiche
- timeline_preview:
- desc_html: Seall ceangal dhan loidhne-ama phoblach air an duilleag-landaidh is ceadaich inntrigeadh gun ùghdarrachadh leis an API air an loidhne-ama phoblach
- title: Ceadaich inntrigeadh gun ùghdarrachadh air an loidhne-ama phoblach
- title: Roghainnean na làraich
- trendable_by_default:
- desc_html: Bheir seo buaidh air na tagaichean hais nach deach a dhì-cheadachadh roimhe
- title: Leig le tagaichean hais treandadh às aonais lèirmheis ro làimh
- trends:
- desc_html: Seall susbaint gu poblach a chaidh lèirmheas a dhèanamh oirre roimhe ’s a tha a’ treandadh
- title: Treandaichean
+ title: Roghainnean an fhrithealaiche
site_uploads:
delete: Sguab às am faidhle a chaidh a luchdadh suas
destroyed_msg: Chaidh an luchdadh suas dhan làrach a sguabadh às!
statuses:
+ account: Ùghdar
+ application: Aplacaid
back_to_account: Till gu duilleag a’ chunntais
back_to_report: Till gu duilleag a’ ghearain
batch:
remove_from_report: Thoir air falbh on ghearan
report: Gearan
deleted: Chaidh a sguabadh às
+ favourites: Annsachdan
+ history: Eachdraidh nan tionndadh
+ in_reply_to: Air freagairt gu
+ language: Cànan
media:
title: Meadhanan
+ metadata: Meata-dàta
no_status_selected: Cha deach post sam bith atharrachadh o nach deach gin dhiubh a thaghadh
+ open: Fosgail am post
+ original_status: Am post tùsail
+ reblogs: Brosnachaidhean
+ status_changed: Post air atharrachadh
title: Postaichean a’ chunntais
+ trending: A’ treandadh
+ visibility: Faicsinneachd
with_media: Le meadhanan riutha
strikes:
actions:
@@ -825,6 +795,9 @@ gd:
description_html: Seo na ceanglaichean a tha ’gan co-roinneadh le iomadh cunntas on a chì am frithealaiche agad na postaichean. Faodaidh iad a bhith ’nan cuideachadh dhan luchd-cleachdaidh ach am faigh iad a-mach dè tha tachairt air an t-saoghal. Cha dèid ceanglaichean a shealltainn gu poblach gus an aontaich thu ris an fhoillsichear. ’S urrainn dhut ceanglaichean àraidh a cheadachadh no a dhiùltadh cuideachd.
disallow: Na ceadaich an ceangal
disallow_provider: Na ceadaich am foillsichear
+ no_link_selected: Cha deach ceangal sam bith atharrachadh o nach deach gin dhiubh a thaghadh
+ publishers:
+ no_publisher_selected: Cha deach foillsichear sam bith atharrachadh o nach deach gin dhiubh a thaghadh
shared_by_over_week:
few: Chaidh a cho-roinneadh le %{count} rè na seachdain seo chaidh
one: Chaidh a cho-roinneadh le %{count} rè na seachdain seo chaidh
@@ -846,6 +819,7 @@ gd:
description_html: Seo na postaichean air a bheil am frithealaiche agad eòlach ’s a tha ’gan co-roinneadh is ’nan annsachd gu tric aig an àm seo. Faodaidh iad a bhith ’nan cuideachadh dhan luchd-cleachdaidh ùr no a thill ach an lorg iad daoine airson leantainn orra. Cha dèid postaichean a shealltainn gu poblach gus an gabh thu ris an ùghdar agus gus an aontaich an t-ùghdar gun dèid an cunntas aca a mholadh do dhaoine eile. ’S urrainn dhut postaichean àraidh a cheadachadh no a dhiùltadh cuideachd.
disallow: Na ceadaich am post
disallow_account: Na ceadaich an t-ùghdar
+ no_status_selected: Cha deach post a’ treandadh sam bith atharrachadh o nach deach gin dhiubh a thaghadh
not_discoverable: Cha do chuir an t-ùghdar roimhe gun gabh a rùrachadh
shared_by:
few: Chaidh a cho-roinneadh no ’na annsachd %{friendly_count} tursan
@@ -863,6 +837,7 @@ gd:
tag_uses_measure: cleachdaidhean iomlan
description_html: Seo na tagaichean hais a nochdas ann an grunn phostaichean a chì am frithealaiche agad aig an àm seo. Faodaidh iad a bhith ’nan cuideachadh dhan luchd-cleachdaidh agad ach am faigh iad a-mach cò air a tha daoine a’ bruidhinn nas trice aig an àm seo. Cha dèid tagaichean hais a shealltainn gu poblach gus an aontaich thu riutha.
listable: Gabhaidh a mholadh
+ no_tag_selected: Cha deach taga sam bith atharrachadh o nach deach gin dhiubh a thaghadh
not_listable: Cha dèid a mholadh
not_trendable: Cha nochd e am measg nan treandaichean
not_usable: Cha ghabh a chleachdadh
@@ -885,6 +860,28 @@ gd:
edit_preset: Deasaich rabhadh ro-shuidhichte
empty: Cha do mhìnich thu ro-sheataichean rabhaidhean fhathast.
title: Stiùirich na rabhaidhean ro-shuidhichte
+ webhooks:
+ add_new: Cuir puing-dheiridh ris
+ delete: Sguab às
+ description_html: Bheir webhook comas do Mhastodon gus brathan fìor-ama a phutadh dhan aplacaid agad fhèin mu na tachartasan a thagh thu ach an adhbharaich an aplacaid agad freagairtean gu fèin-obrachail .
+ disable: Cuir à comas
+ disabled: À comas
+ edit: Deasaich a’ phuing-dheiridh
+ empty: Cha deach puing-deiridh webhook sam bith a rèiteachadh fhathast.
+ enable: Cuir an comas
+ enabled: Gnìomhach
+ enabled_events:
+ few: Tha %{count} tachartasan an comas
+ one: Tha %{count} tachartas an comas
+ other: Tha %{count} tachartas an comas
+ two: Tha %{count} thachartas an comas
+ events: Tachartasan
+ new: Webhook ùr
+ rotate_secret: Cuairtich an rùn
+ secret: Rùn soidhnich
+ status: Staid
+ title: Webhooks
+ webhook: Webhook
admin_mailer:
new_appeal:
actions:
@@ -908,12 +905,8 @@ gd:
new_trends:
body: 'Tha na nithean seo feumach air lèirmheas mus nochd iad gu poblach:'
new_trending_links:
- no_approved_links: Chan eil ceangal a’ treandadh le aontachadh ann.
- requirements: "’S urrainn do ghin dhe na tagraichean seo dol thairis air #%{rank} a tha aig a’ cheangal “%{lowest_link_title}” a’ treandadh as ìsle le aontachadh agus sgòr de %{lowest_link_score} air."
title: Ceanglaichean a’ treandadh
new_trending_statuses:
- no_approved_statuses: Chan eil post a’ treandadh le aontachadh ann.
- requirements: "’S urrainn do ghin dhe na tagraichean seo dol thairis air #%{rank} a tha aig a’ phost %{lowest_status_url} a’ treandadh as ìsle le aontachadh agus sgòr de %{lowest_status_score} air."
title: Postaichean a’ treandadh
new_trending_tags:
no_approved_tags: Chan eil taga hais a’ treandadh le aontachadh ann.
@@ -949,16 +942,13 @@ gd:
applications:
created: Chaidh an t-iarrtas a chruthachadh
destroyed: Chaidh an t-iarrtas a sguabadh às
- invalid_url: Tha an t-URL a thugadh seachad mì-dhligheach
regenerate_token: Ath-ghin an tòcan inntrigidh
token_regenerated: Chaidh an tòcan inntrigidh ath-ghintinn
warning: Bi glè chùramach leis an dàta seo. Na co-roinn le duine sam bith e!
your_token: An tòcan inntrigidh agad
auth:
- apply_for_account: Iarr cuireadh
+ apply_for_account: Faigh air an liosta-fheitheimh
change_password: Facal-faire
- checkbox_agreement_html: Gabhaidh mi ri riaghailtean an fhrithealaiche ’s teirmichean a’ chleachdaidh
- checkbox_agreement_without_rules_html: Gabhaidh mi ri teirmichean a’ chleachdaidh
delete_account: Sguab às an cunntas
delete_account_html: Nam bu mhiann leat an cunntas agad a sguabadh às, nì thu an-seo e . Thèid dearbhadh iarraidh ort.
description:
@@ -977,6 +967,7 @@ gd:
migrate_account: Imrich gu cunntas eile
migrate_account_html: Nam bu mhiann leat an cunntas seo ath-stiùireadh gu fear eile, ’s urrainn dhut a rèiteachadh an-seo .
or_log_in_with: No clàraich a-steach le
+ privacy_policy_agreement_html: Leugh mi is tha mi ag aontachadh ris a’ phoileasaidh prìobhaideachd
providers:
cas: CAS
saml: SAML
@@ -984,12 +975,18 @@ gd:
registration_closed: Cha ghabh %{instance} ri buill ùra
resend_confirmation: Cuir an stiùireadh mun dearbhadh a-rithist
reset_password: Ath-shuidhich am facal-faire
+ rules:
+ preamble: Tha iad ’gan stèidheachadh is a chur an gnìomh leis na maoir aig %{domain}.
+ title: Riaghailtean bunasach.
security: Tèarainteachd
set_new_password: Suidhich facal-faire ùr
setup:
email_below_hint_html: Mur eil am post-d gu h-ìosal mar bu chòir, ’s urrainn dhut atharrachadh an-seo agus gheibh thu post-d dearbhaidh ùr.
email_settings_hint_html: Chaidh am post-d dearbhaidh a chur gu %{email}. Mur eil an seòladh puist-d seo mar bu chòir, ’s urrainn dhut atharrachadh ann an roghainnean a’ chunntais.
title: Suidheachadh
+ sign_up:
+ preamble: Le cunntas air an fhrithealaiche Mastodon seo, ’s urrainn dhut leantainn air neach sam bith air an lìonra, ge b’ e càit a bheil an cunntas aca-san ’ga òstadh.
+ title: Suidhicheamaid %{domain} dhut.
status:
account_status: Staid a’ chunntais
confirming: A’ feitheamh air coileanadh an dearbhaidh on phost-d.
@@ -998,7 +995,6 @@ gd:
redirecting_to: Chan eil an cunntas gad gnìomhach on a tha e ’ga ath-stiùireadh gu %{acct}.
view_strikes: Seall na rabhaidhean a fhuair an cunntas agad roimhe
too_fast: Chaidh am foirm a chur a-null ro luath, feuch ris a-rithist.
- trouble_logging_in: A bheil duilgheadas agad leis a’ chlàradh a-steach?
use_security_key: Cleachd iuchair tèarainteachd
authorize_follow:
already_following: Tha thu a’ leantainn air a’ chunntas seo mu thràth
@@ -1010,7 +1006,7 @@ gd:
post_follow:
close: Air neo dùin an uinneag seo.
return: Seall pròifil a’ chleachdaiche
- web: Tadhail air an lìon
+ web: Tadhail air an duilleag-lìn
title: Lean air %{acct}
challenge:
confirm: Lean air adhart
@@ -1056,10 +1052,6 @@ gd:
more_details_html: Airson barrachd fiosrachaidh faic am poileasaidh prìobhaideachd .
username_available: Bidh an t-ainm-cleachdaiche agad ri fhaighinn a-rithist
username_unavailable: Cha bhi an t-ainm-cleachdaiche agad ri fhaighinn fhathast
- directories:
- directory: Eòlaire nam pròifil
- explanation: Rùraich cleachdaichean stèidhichte air an ùidhean
- explore_mastodon: Rùraich %{title}
disputes:
strikes:
action_taken: An gnìomh a ghabhadh
@@ -1138,29 +1130,72 @@ gd:
public: Loidhnichean-ama poblach
thread: Còmhraidhean
edit:
+ add_keyword: Cuir facal-luirg ris
+ keywords: Faclan-luirg
+ statuses: Postaichean fa leth
+ statuses_hint_html: Bidh a’ chriathrag seo an sàs air taghadh de phostaichean fa leth ge b’ e am freagair iad ris na faclan-luirg gu h-ìosal gus nach freagair. Dèan lèirmheas air na postaichean no thoir iad air falbh on chriathrag seo .
title: Deasaich a’ chriathrag
errors:
+ deprecated_api_multiple_keywords: Cha ghabh na paramadairean seo atharrachadh on aplacaid seo on a bhios iad an sàs air iomadh facal-luirg na criathraige. Cleachd aplacaid nas ùire no an eadar-aghaidh-lìn.
invalid_context: Cha deach co-theacs a sholar no tha e mì-dhligheach
- invalid_irreversible: Chan obraich criathradh buan ach ann an co-theacsa na dachaigh no na brathan
index:
+ contexts: Criathradh am broinn %{contexts}
delete: Sguab às
empty: Chan eil criathrag agad.
+ expires_in: Falbhaidh an ùine air an ceann %{distance}
+ expires_on: Falbhaidh an ùine air %{date}
+ keywords:
+ few: "%{count} faclan-luirg"
+ one: "%{count} fhacal-luirg"
+ other: "%{count} facal-luirg"
+ two: "%{count} fhacal-luirg"
+ statuses:
+ few: "%{count} postaichean"
+ one: "%{count} phost"
+ other: "%{count} post"
+ two: "%{count} phost"
+ statuses_long:
+ few: Chaidh %{count} postaichean fa leth fhalach
+ one: Chaidh %{count} phost fa leth fhalach
+ other: Chaidh %{count} post fa leth fhalach
+ two: Chaidh %{count} phost fa leth fhalach
title: Criathragan
new:
+ save: Sàbhail a’ chriathrag ùr
title: Cuir criathrag ùr ris
+ statuses:
+ back_to_filter: Air ais dhan chriathrag
+ batch:
+ remove: Thoir air falbh on chriathrag
+ index:
+ hint: Bidh a’ chriathrag seo an sàs air postaichean fa leth ge b’ e dè na roghainnean eile. ’S urrainn dhut barrachd phostaichean a chur ris a’ chriathrag seo leis an eadar-aghaidh-lìn.
+ title: Postaichean criathraichte
footer:
- developers: Luchd-leasachaidh
- more: Barrachd…
- resources: Goireasan
trending_now: A’ treandadh an-dràsta
generic:
all: Na h-uile
+ all_items_on_page_selected_html:
+ few: Chaidh na %{count} nithean uile a thaghadh air an duilleag seo.
+ one: Chaidh %{count} nì a thaghadh air an duilleag seo.
+ other: Chaidh an %{count} nì uile a thaghadh air an duilleag seo.
+ two: Chaidh an %{count} nì uile a thaghadh air an duilleag seo.
+ all_matching_items_selected_html:
+ few: Chaidh %{count} nithean a thaghadh a fhreagras dha na lorg thu.
+ one: Chaidh %{count} nì a thaghadh a fhreagras dha na lorg thu.
+ other: Chaidh %{count} nì a thaghadh a fhreagras dha na lorg thu.
+ two: Chaidh %{count} nì a thaghadh a fhreagras dha na lorg thu.
changes_saved_msg: Chaidh na h-atharraichean a shàbhaladh!
copy: Dèan lethbhreac
delete: Sguab às
+ deselect: Dì-thagh na h-uile
none: Chan eil gin
order_by: Seòrsaich a-rèir
save_changes: Sàbhail na h-atharraichean
+ select_all_matching_items:
+ few: Tagh na %{count} nithean uile a fhreagras dha na lorg thu.
+ one: Tagh %{count} nì a fhreagras dha na lorg thu.
+ other: Tagh an %{count} nì uile a fhreagras dha na lorg thu.
+ two: Tagh an %{count} nì uile a fhreagras dha na lorg thu.
today: an-diugh
validation_errors:
few: Tha rud ann nach eil buileach ceart fhathast! Thoir sùil air na %{count} mhearachdan gu h-ìosal
@@ -1186,7 +1221,6 @@ gd:
following: Liosta dhen fheadhainn air a leanas tu
muting: Liosta a’ mhùchaidh
upload: Luchdaich suas
- in_memoriam_html: Mar chuimhneachan.
invites:
delete: Cuir à gnìomh
expired: Dh’fhalbh an ùine air
@@ -1269,23 +1303,10 @@ gd:
copy_account_note_text: 'Da cleachdaiche air gluasad o %{acct}, seo na nòtaichean a bh’ agad mu dhèidhinn roimhe:'
notification_mailer:
admin:
+ report:
+ subject: Rinn %{name} gearan
sign_up:
subject: Chlàraich %{name}
- digest:
- action: Seall a h-uile brath
- body: Seo geàrr-chunntas air na h-atharraichean nach fhaca thu on tadhal mu dheireadh agad %{since}
- mention: 'Thug %{name} iomradh ort an-seo:'
- new_followers_summary:
- few: Cuideachd, bhuannaich thu %{count} luchd-leantainn ùr on àm a bha thu air falbh! Nach ma sin!
- one: Cuideachd, bhuannaich thu %{count} neach-leantainn ùr on àm a bha thu air falbh! Nach ma sin!
- other: Cuideachd, bhuannaich thu %{count} luchd-leantainn ùr on àm a bha thu air falbh! Nach ma sin!
- two: Cuideachd, bhuannaich thu %{count} neach-leantainn ùr on àm a bha thu air falbh! Nach ma sin!
- subject:
- few: "%{count} brathan ùra on tadhal mu dheireadh agad 🐘"
- one: "%{count} bhrath ùr on tadhal mu dheireadh agad 🐘"
- other: "%{count} brath ùr on tadhal mu dheireadh agad 🐘"
- two: "%{count} bhrath ùr on tadhal mu dheireadh agad 🐘"
- title: Fhad ’s a bha thu air falbh…
favourite:
body: 'Is annsa le %{name} am post agad:'
subject: Is annsa le %{name} am post agad
@@ -1345,7 +1366,7 @@ gd:
polls:
errors:
already_voted: Chuir thu bhòt sa chunntas-bheachd seo mu thràth
- duplicate_options: " – tha nithean dùblaichte ann"
+ duplicate_options: "– tha nithean dùblaichte ann"
duration_too_long: "– tha seo ro fhad air falbh san àm ri teachd"
duration_too_short: "– tha seo ro aithghearr"
expired: Tha an cunntas-bheachd air a thighinn gu crìoch
@@ -1357,6 +1378,8 @@ gd:
other: Eile
posting_defaults: Bun-roghainnean a’ phostaidh
public_timelines: Loidhnichean-ama poblach
+ privacy_policy:
+ title: Poileasaidh prìobhaideachd
reactions:
errors:
limit_reached: Ràinig thu crìoch nam freagairtean eadar-dhealaichte
@@ -1379,22 +1402,7 @@ gd:
remove_selected_follows: Na lean air na cleachdaichean a thagh thu tuilleadh
status: Staid a’ chunntais
remote_follow:
- acct: Cuir a-steach ainm-cleachdaiche@àrainn airson a chur ort
missing_resource: Cha do lorg sinn URL ath-stiùiridh riatanach a’ chunntais agad
- no_account_html: Nach eil cunntas agad? ’S urrainn dhut clàradh leinn an-seo
- proceed: Lean air adhart gus leantainn air
- prompt: 'Bidh thu a’ leantainn air:'
- reason_html: "Carson a tha feum air a’ cheum seo? Dh’fhaoidte nach e %{instance}
am frithealaiche far an do rinn thu clàradh agus feumaidh sinn d’ ath-stiùireadh dhan fhrithealaiche dachaigh agad an toiseach."
- remote_interaction:
- favourite:
- proceed: Lean air adhart gus a chur ris na h-annsachdan
- prompt: 'Tha thu airson am post seo a chur ris na h-annsachdan:'
- reblog:
- proceed: Lean air adhart gus a bhrosnachadh
- prompt: 'Tha thu airson am post seo a bhrosnachadh:'
- reply:
- proceed: Lean air adhart gus freagairt
- prompt: 'Tha thu airson freagairt dhan phost seo:'
reports:
errors:
invalid_rules: gun iomradh air riaghailtean dligheach
@@ -1578,103 +1586,6 @@ gd:
too_late: Tha e ro anmoch airson an rabhadh seo ath-thagradh
tags:
does_not_match_previous_name: "– chan eil seo a-rèir an ainm roimhe"
- terms:
- body_html: |
- Poileasaidh prìobhaideachd
-
- Dè am fiosrachadh a chruinnicheas sinn?
-
-
-
- Fiosrachadh bunasach a’ cunntais : Ma chlàraicheas tu leis an fhrithealaiche seo, dh’fhaoidte gun dèid iarraidh ort gun cuir thu a-steach ainm-cleachdaiche, seòladh puist-d agus facal-faire. Faodaidh tu barrachd fiosrachaidh a chur ris a’ phròifil agad ma thogras tu, can ainm-taisbeanaidh agus teacsa mu do dhèidhinn agus dealbhan pròifile ’s banna-chinn a luchdadh suas. Thèid an t-ainm-cleachdaiche, an t-ainm-taisbeanaidh, an teacsa mu do dhèidhinn agus dealbhan na pròifile ’s a bhanna-chinn a shealltainn gu poblach an-còmhnaidh.
-
- Postaichean, luchd-leantainn agus fiosrachadh poblach eile : Tha liosta nan daoine air a leanas tu poblach mar a tha i dhan luchd-leantainn agad. Nuair a chuireas tu a-null teachdaireachd, thèid an t-àm ’s an ceann-latha a stòradh cho math ris an aplacaid leis an do chuir thu am foirm a-null. Faodaidh ceanglachain meadhain a bhith am broinn teachdaireachdan, can dealbhan no videothan. Tha postaichean poblach agus postaichean falaichte o liostaichean ri ’m faighinn gu poblach. Nuair a bhrosnaicheas tu post air a’ phròifil agad, ’s e fiosrachadh poblach a tha sin cuideachd. Thèid na postaichean agad a lìbhrigeadh dhan luchd-leantainn agad agus is ciall dha seo gun dèid an lìbhrigeadh gu frithealaichean eile aig amannan is gun dèid lethbhreacan dhiubh a stòradh thall. Nuair a sguabas tu às post, thèid sin a lìbhrigeadh dhan luchd-leantainn agad cuideachd. Tha ath-bhlogachadh no dèanamh annsachd de phost eile poblach an-còmhnaidh.
-
- Postaichean dìreach is dhan luchd-leantainn a-mhàin : Thèid a h-uile post a stòradh ’s a phròiseasadh air an fhrithealaiche. Thèid na postaichean dhan luchd-leantainn a-mhàin a lìbhrigeadh dhan luchd-leantainn agad agus dhan luchd-chleachdaidh a chaidh iomradh a dhèanamh orra sa phost. Thèid postaichean dìreach a lìbhrigeadh dhan luchd-chleachdaidh a chaidh iomradh a dhèanamh orra sa phost a-mhàin. Is ciall dha seo gun dèid an lìbhrigeadh gu frithealaichean eile aig amannan is gun dèid lethbhreacan dhiubh a stòradh thall. Nì sinn ar dìcheall gun cuingich sinn an t-inntrigeadh dha na postaichean air na daoine a fhuair ùghdarrachadh dhaibh ach dh’fhaoidte nach dèan frithealaichean eile seo. Mar sin dheth, tha e cudromach gun doir thu sùil air na frithealaichean dhan a bhuineas an luchd-leantainn agad. Faodaidh tu roghainn a chur air no dheth a leigeas leat aontachadh ri luchd-leantainn ùra no an diùltadh a làimh. Thoir an aire gum faic rianairean an fhrithealaiche agus frithealaiche sam bith a gheibh am fiosrachadh na teachdaireachdan dhen leithid agus gur urrainn dha na faightearan glacaidhean-sgrìn no lethbhreacan dhiubh a dhèanamh no an cho-roinneadh air dòighean eile. Na co-roinn fiosrachadh dìomhair air Mastodon idir.
-
- IPan is meata-dàta eile : Nuair a nì thu clàradh a-steach, clàraidh sinn an seòladh IP on a rinn thu clàradh a-steach cuide ri ainm aplacaid a’ bhrabhsair agad. Bidh a h-uile seisean clàraidh a-steach ri làimh dhut airson an lèirmheas agus an cùl-ghairm sna roghainnean. Thèid an seòladh IP as ùire a chleachd thu a stòradh suas ri 12 mhìos. Faodaidh sinn cuideachd logaichean an fhrithealaiche a chumail a ghabhas a-steach seòladh IP aig a h-uile iarrtas dhan fhrithealaiche againn.
-
-
-
-
-
- Dè na h-adhbharan air an cleachd sinn am fiosrachadh agad?
-
- Seo na dòighean air an cleachd sinn fiosrachadh sam bith a chruinnich sinn uat ma dh’fhaoidte:
-
-
-
- Airson bun-ghleusan Mhastodon a lìbhrigeadh. Chan urrainn dhut eadar-ghnìomh a ghabhail le susbaint càich no an t-susbaint agad fhèin a phostadh ach nuair a bhios tu air do chlàradh a-steach. Mar eisimpleir, faodaidh tu leantainn air càch ach am faic thu na postaichean aca còmhla air loidhne-ama pearsanaichte na dachaigh agad.
-
- Airson cuideachadh le maorsainneachd na coimhearsnachd, can airson coimeas a dhèanamh eadar an seòladh IP agad ri feadhainn eile feuch am mothaich sinn do sheachnadh toirmisg no briseadh eile nan riaghailtean.
-
- Faodaidh sinn an seòladh puist-d agad a chleachdadh airson fiosrachadh no brathan mu eadar-ghnìomhan a ghabh càch leis an t-susbaint agad no teachdaireachdan a chur thugad, airson freagairt ri ceasnachaidhean agus/no iarrtasan no ceistean eile.
-
-
-
-
-
- Ciamar a dhìonas sinn am fiosrachadh agad?
-
- Cuiridh sinn iomadh gleus tèarainteachd an sàs ach an glèidheadh sinn sàbhailteachd an fhiosrachaidh phearsanta agad nuair a chuireas tu gin a-steach, nuair a chuireas tu a-null e no nuair a nì thu inntrigeadh air. Am measg gleusan eile, thèid seisean a’ bhrabhsair agad cuide ris an trafaig eadar na h-aplacaidean agad ’s an API a dhìon le SSL agus thèid hais a dhèanamh dhen fhacal-fhaire agad le algairim aon-shligheach làidir. Faodaidh tu dearbhadh dà-cheumnach a chur an comas airson barrachd tèarainteachd a chur ris an inntrigeadh dhan chunntas agad.
-
-
-
- Dè am poileasaidh cumail dàta againn?
-
- Nì sinn ar dìcheall:
-
-
-
- Nach cùm sinn logaidhean an fhrithealaiche sa bheil seòlaidhean IP nan iarrtasan uile dhan fhrithealaiche seo nas fhaide na 90 latha ma chumas sinn logaichean dhen leithid idir.
-
- Nach cùm sinn na seòlaidhean IP a tha co-cheangailte ri cleachdaichean clàraichte nas fhaide na 12 mhìos.
-
-
-
- ’S urrainn dhut tasg-lann iarraidh dhen t-susbaint agad ’s a luchdadh a-nuas is gabhaidh seo a-staigh na postaichean, na ceanglachain meadhain, dealbh na pròifil agus dealbh a’ bhanna-chinn agad.
-
- ’S urrainn dhut an cunntas agad a sguabadh às gu buan uair sam bith.
-
-
-
- An cleachd sinn briosgaidhean?
-
- Cleachdaidh. ’S e faidhlichean beaga a tha sna briosgaidean a thar-chuireas làrach no solaraiche seirbheise gu clàr-cruaidh a’ choimpiutair agad leis a’ bhrabhsair-lìn agad (ma cheadaicheas tu sin). Bheir na briosgaidean sin comas dhan làrach gun aithnich i am brabhsair agad agus ma tha cunntas clàraichte agad, gun co-cheangail i ris a’ chunntas chlàraichte agad e.
-
- Cleachdaidh sinn briosgaidean airson na roghainnean agad a thuigsinn ’s a ghlèidheadh gus an tadhail thu oirnn san àm ri teachd.
-
-
-
- Am foillsich sinn fiosrachadh sam bith gu pàrtaidhean air an taobh a-muigh?
-
- Cha reic, malairt no tar-chuir sinn fiosrachadh air a dh’aithnichear thu fhèin gu pàrtaidh sam bith air an taobh a-muigh. Cha ghabh seo a-staigh treas-phàrtaidhean earbsach a chuidicheas leinn le ruith na làraich againn, le obrachadh a’ ghnìomhachais againn no gus an t-seirbheis a thoirt leat cho fada ’s a dh’aontaicheas na treas-phàrtaidhean sin gun cùm iad am fiosrachadh dìomhair. Faodaidh sinn am fiosrachadh agad fhoillseachadh cuideachd nuair a bhios sinn dhen bheachd gu bheil am foillseachadh sin iomchaidh airson gèilleadh dhan lagh, poileasaidhean na làraich againn èigneachadh no na còraichean, an sealbh no an t-sàbhailteachd againn fhèin no aig càch a dhìon.
-
- Dh’fhaoidte gun dèid an t-susbaint phoblach agad a luchdadh a-nuas le frithealaichean eile san lìonra. Thèid na postaichean poblach agad ’s an fheadhainn dhan luchd-leantainn a-mhàin a lìbhrigeadh dha na frithealaichean far a bheil an luchd-leantainn agad a’ còmhnaidh agus thèid na teachdaireachdan dìreach a lìbhrigeadh gu frithealaichean nam faightearan nuair a bhios iad a’ còmhnaidh air frithealaiche eile.
-
- Nuair a dh’ùghdarraicheas tu aplacaid gun cleachd i an cunntas agad, a-rèir sgòp nan ceadan a dh’aontaicheas tu riutha, faodaidh i fiosrachadh poblach na pròifil agad, liosta na feadhna air a bhios tu a’ leantainn, an luchd-leantainn agad, na liostaichean agad, na postaichean agad uile ’s na h-annsachdan agad inntrigeadh. Chan urrainn do dh’aplacaidean an seòladh puist-d no am facal-faire agad inntrigeadh idir.
-
-
-
- Cleachdadh na làraich leis a’ chloinn
-
- Ma tha am frithealaiche seo san Aonadh Eòrpach (AE) no san Roinn Eaconomach na h-Eòrpa (EEA): Tha an làrach, na batharan agus na seirbheisean againn uile ag amas air an fheadhainn a tha co-dhiù 16 bliadhnaichean a dh’aois. Ma tha thu nas òige na 16 bliadhnaichean a dh’aois, tha e riatanach fon GDPR (General Data Protection Regulation ) nach cleachd thu an làrach seo.
-
- Ma tha am frithealaiche seo sna Stàitean Aonaichte (SAA): Tha an làrach, na batharan agus na seirbheisean againn uile ag amas air an fheadhainn a tha co-dhiù 13 bliadhnaichean a dh’aois. Ma tha thu nas òige na 16 bliadhnaichean a dh’aois, tha e riatanach fon COPPA (Children''s Online Privacy Protection Act ) nach cleachd thu an làrach seo.
-
-
- Dh’fhaoidte gu bheil am frithealaiche seo fo riatanasan lagha eile ma tha e ann an uachdranas laghail eile.
-
-
-
- Atharraichean air a’ phoileasaidh phrìobhaideachd againn
-
- Ma chuireas sinn romhainn am poileasaidh prìobhaideachd againn atharrachadh, postaichidh sinn na h-atharraichean dhan duilleag seo.
-
- Tha an sgrìobhainn seo fo cheadachas CC-BY-SA. Chaidh ùrachadh an turas mu dheireadh an t-26mh dhen Chèitean 2022.
-
- Chaidh a fhreagarrachadh o thùs o phoileasaidh prìobhaideachd Discourse .
- title: Teirmichean na seirbheise ⁊ poileasaidh prìobhaideachd %{instance}
themes:
contrast: Mastodon (iomsgaradh àrd)
default: Mastodon (dorcha)
@@ -1753,20 +1664,13 @@ gd:
suspend: Cunntas à rèim
welcome:
edit_profile_action: Suidhich a’ phròifil agad
- edit_profile_step: "’S urrainn dhut a’ phròifil agad a ghnàthachadh is tu a’ luchdadh suas avatar no bann-cinn, ag atharrachadh d’ ainm-taisbeanaidh is a bharrachd. Nam bu mhiann leat lèirmheas a dhèanamh air daoine mus fhaod iad leantainn ort, ’s urrainn dhut an cunntas agad a ghlasadh."
+ edit_profile_step: "’S urrainn dhut a’ phròifil agad a ghnàthachadh is tu a’ luchdadh suas dealbh pròifil, ag atharrachadh d’ ainm-taisbeanaidh is a bharrachd. ’S urrainn dhut lèirmheas a dhèanamh air daoine mus fhaod iad leantainn ort ma thogras tu."
explanation: Seo gliocas no dhà gus tòiseachadh
final_action: Tòisich air postadh
- final_step: 'Tòisich air postadh! Fiù ’s mur eil duine sam bith a’ leantainn ort, chì cuid mhath na postaichean poblach agad, can air an loidhne-ama ionadail agus le tagaichean hais. Saoil an innis thu beagan mu d’ dhèidhinn air an taga hais #introductions?'
+ final_step: 'Tòisich air postadh! Fiù ’s mur eil duine sam bith a’ leantainn ort, chì cuid mhath na postaichean poblach agad, can air an loidhne-ama ionadail no le tagaichean hais. Saoil an innis thu beagan mu d’ dhèidhinn air an taga hais #fàilte?'
full_handle: D’ ainm-cleachdaiche slàn
full_handle_hint: Seo na bheir thu dha na caraidean agad ach an urrainn dhaibh teachdaireachd a chur thugad no leantainn ort o fhrithealaiche eile.
- review_preferences_action: Atharraich na roghainnean
- review_preferences_step: Dèan cinnteach gun suidhich thu na roghainnean agad, can dè na puist-d a bu mhiann leat fhaighinn no dè a’ bun-roghainn air ìre na prìobhaideachd a bu chòir a bhith aig na postaichean agad. Mura cuir gluasad an òrrais ort, b’ urrainn dhut cluich fèin-obrachail nan GIFs a chur an comas.
subject: Fàilte gu Mastodon
- tip_federated_timeline: "’S e sealladh farsaing dhen lìonra Mastodon a tha san loidhne-ama cho-naisgte. Gidheadh, cha ghabh i a-staigh ach na daoine air an do rinn do nàbaidhean fo-sgrìobhadh, mar sin chan eil i coileanta."
- tip_following: Leanaidh tu air rianaire(an) an fhrithealaiche agad a ghnàth. Airson daoine nas inntinniche a lorg, thoir sùil air na loidhnichean-ama ionadail is co-naisgte.
- tip_local_timeline: "’S e sealladh farsaing air na daoine a th’ air %{instance} a tha san loidhne-ama ionadail agad. Seo na nàbaidhean a tha faisg ort!"
- tip_mobile_webapp: Ma leigeas am brabhsair mobile agad leat Mastodon a chur ris an sgrìn-dhachaigh, ’s urrainn dhut brathan putaidh fhaighinn. Bidh e ’ga ghiùlan fhèin coltach ri aplacaid thùsail air iomadh dòigh!
- tips: Gliocasan
title: Fàilte air bòrd, %{name}!
users:
follow_limit_reached: Chan urrainn dhut leantainn air còrr is %{limit} daoine
diff --git a/config/locales/gl.yml b/config/locales/gl.yml
index 48435b45bb..da00efe89b 100644
--- a/config/locales/gl.yml
+++ b/config/locales/gl.yml
@@ -1,94 +1,27 @@
---
gl:
about:
- about_hashtag_html: Estas son publicacións públicas etiquetadas con #%{hashtag} . Podes interactuar con elas se tes unha conta nalgures do fediverso.
about_mastodon_html: 'A rede social do futuro: Sen publicidade, sen seguimento por empresas, deseño ético e descentralización! En Mastodon ti posúes os teus datos!'
- about_this: Acerca de
- active_count_after: activas
- active_footnote: Usuarias Activas no Mes (UAM)
- administered_by: 'Administrada por:'
- api: API
- apps: Aplicacións móbiles
- apps_platforms: Emprega Mastodon dende iOS, Android e outras plataformas
- browse_directory: Mira o directorio e filtra por intereses
- browse_local_posts: Navega polas publicacións públicas deste servidor en tempo real
- browse_public_posts: Navega polas publicacións públicas de Mastodon en tempo real
- contact: Contacto
contact_missing: Non establecido
contact_unavailable: Non dispoñíbel
- continue_to_web: Continuar na app web
- discover_users: Descubrir usuarias
- documentation: Documentación
- federation_hint_html: Cunha conta en %{instance} poderás seguir ás persoas en calquera servidor do Mastodon e alén.
- get_apps: Probar unha aplicación móbil
hosted_on: Mastodon aloxado en %{domain}
- instance_actor_flash: 'Esta conta é un actor virtual utilizado para representar ao servidor e non a unha usuaria individual. Utilízase para propósitos de federación e non debería estar bloqueada a menos que queiras bloquear a toda a instancia, en tal caso deberías utilizar o bloqueo do dominio.
-
- '
- learn_more: Saber máis
- logged_in_as_html: Entraches como %{username}.
- logout_before_registering: Xa iniciaches sesión.
- privacy_policy: Política de privacidade
- rules: Regras do servidor
- rules_html: 'Aquí tes un resumo das regras que debes seguir se queres ter unha conta neste servidor de Mastodon:'
- see_whats_happening: Ver o que está a acontecer
- server_stats: 'Estatísticas do servidor:'
- source_code: Código fonte
- status_count_after:
- one: publicación
- other: publicacións
- status_count_before: Que publicaron
- tagline: Segue ás túas amizades e coñece novas
- terms: Termos do servizo
- unavailable_content: Contido non dispoñíbel
- unavailable_content_description:
- domain: Servidor
- reason: Razón
- rejecting_media: 'Os ficheiros multimedia deste servidor non serán procesados e non se amosarán miniaturas, o que require un clic manual no ficheiro orixinal:'
- rejecting_media_title: Multimedia filtrado
- silenced: 'As publicacións destes servidores non se amosarán en conversas e cronoloxías públicas, nin terás notificacións xeradas polas interaccións das usuarias, a menos que as estés a seguir:'
- silenced_title: Servidores acalados
- suspended: 'Non se procesarán, almacenarán nin intercambiarán datos destes servidores, o que fai imposíbel calquera interacción ou comunicación coas usuarias dende estes servidores:'
- suspended_title: Servidores suspendidos
- unavailable_content_html: O Mastodon de xeito xeral permíteche ver contidos doutros servidores do fediverso e interactuar coas súas usuarias. Estas son as excepcións que se estabeleceron neste servidor en particular.
- user_count_after:
- one: usuaria
- other: usuarias
- user_count_before: Fogar de
- what_is_mastodon: Qué é Mastodon?
+ title: Acerca de
accounts:
- choices_html: 'Escollas de %{name}:'
- endorsements_hint: Podes suxerir a persoas que segues dende a interface web, e amosaranse aquí.
- featured_tags_hint: Podes destacar determinados cancelos que se amosarán aquí.
follow: Seguir
followers:
one: Seguidora
other: Seguidoras
following: Seguindo
instance_actor_flash: Esta conta é un actor virtual utilizado para representar ó servidor mesmo e non a unha usuaria individual. Utilízase por motivos de federación e non debería estar suspendida.
- joined: Uniuse en %{date}
last_active: última actividade
link_verified_on: A propiedade desta ligazón foi verificada en %{date}
- media: Multimedia
- moved_html: "%{name} mudouse a %{new_profile_link}:"
- network_hidden: Esta información non está dispoñíbel
nothing_here: Non hai nada aquí!
- people_followed_by: Persoas que segue %{name}
- people_who_follow: Persoas que seguen a %{name}
pin_errors:
following: Tes que seguir á persoa que queres engadir
posts:
one: Publicación
other: Publicacións
posts_tab_heading: Publicacións
- posts_with_replies: Publicacións e respostas
- roles:
- admin: Administradora
- bot: Bot
- group: Grupo
- moderator: Moderadora
- unavailable: Perfil non dispoñíbel
- unfollow: Deixar de seguir
admin:
account_actions:
action: Executar acción
@@ -105,12 +38,17 @@ gl:
avatar: Imaxe de perfil
by_domain: Dominio
change_email:
- changed_msg: Email da conta mudado de xeito correcto!
+ changed_msg: Email mudado de xeito correcto!
current_email: Email actual
label: Mudar email
new_email: Novo email
submit: Mudar email
title: Mudar email de %{username}
+ change_role:
+ changed_msg: Rol mudado correctamente!
+ label: Cambiar rol
+ no_role: Sen rol
+ title: Cambiar o rol de %{username}
confirm: Confirmar
confirmed: Confirmado
confirming: Estase a confirmar
@@ -154,6 +92,7 @@ gl:
active: Activa
all: Todo
pending: Pendente
+ silenced: Limitada
suspended: Suspendidos
title: Moderación
moderation_notes: Notas de moderación
@@ -161,6 +100,7 @@ gl:
most_recent_ip: IP máis recente
no_account_selected: Ningunha conta mudou porque ningunha foi seleccionada
no_limits_imposed: Sen límites impostos
+ no_role_assigned: Sen rol asignado
not_subscribed: Non subscrita
pending: Revisión pendente
perform_full_suspension: Suspender
@@ -187,12 +127,7 @@ gl:
reset: Restabelecer
reset_password: Restabelecer contrasinal
resubscribe: Resubscribir
- role: Permisos
- roles:
- admin: Administrador
- moderator: Moderador
- staff: Persoal (staff)
- user: Usuaria
+ role: Rol
search: Procurar
search_same_email_domain: Outras usuarias co mesmo dominio de email
search_same_ip: Outras usuarias co mesmo IP
@@ -235,17 +170,21 @@ gl:
approve_user: Aprobar Usuaria
assigned_to_self_report: Asignar denuncia
change_email_user: Editar email da usuaria
+ change_role_user: Cambiar Rol da Usuaria
confirm_user: Confirmar usuaria
create_account_warning: Crear aviso
create_announcement: Crear anuncio
+ create_canonical_email_block: Crear Bloqueo de email
create_custom_emoji: Crear emoticonas personalizadas
create_domain_allow: Crear Dominio Permitido
create_domain_block: Crear bloquedo do Dominio
create_email_domain_block: Crear bloqueo de dominio de correo electrónico
create_ip_block: Crear regra IP
create_unavailable_domain: Crear dominio Non dispoñible
+ create_user_role: Crear Rol
demote_user: Degradar usuaria
destroy_announcement: Eliminar anuncio
+ destroy_canonical_email_block: Eliminar Bloqueo de email
destroy_custom_emoji: Eliminar emoticona personalizada
destroy_domain_allow: Eliminar Dominio permitido
destroy_domain_block: Eliminar bloqueo do Dominio
@@ -254,6 +193,7 @@ gl:
destroy_ip_block: Eliminar regra IP
destroy_status: Eliminar publicación
destroy_unavailable_domain: Eliminar dominio Non dispoñible
+ destroy_user_role: Eliminar Rol
disable_2fa_user: Desactivar 2FA
disable_custom_emoji: Desactivar emoticona personalizada
disable_sign_in_token_auth_user: Desactivar Autenticación por token no email para Usuaria
@@ -280,24 +220,30 @@ gl:
update_announcement: Actualizar anuncio
update_custom_emoji: Actualizar emoticona personalizada
update_domain_block: Actualizar bloqueo do dominio
+ update_ip_block: Actualizar regra IP
update_status: Actualizar publicación
+ update_user_role: Actualizar Rol
actions:
approve_appeal_html: "%{name} aprobou a apelación da decisión da moderación de %{target}"
approve_user_html: "%{name} aprobou o rexistro de %{target}"
assigned_to_self_report_html: "%{name} asignou a denuncia %{target} para si mesma"
change_email_user_html: "%{name} cambiou o enderezo de email da usuaria %{target}"
+ change_role_user_html: "%{name} cambiou o rol de %{target}"
confirm_user_html: "%{name} confirmou o enderezo de email da usuaria %{target}"
create_account_warning_html: "%{name} envioulle unha advertencia a %{target}"
create_announcement_html: "%{name} creou un novo anuncio %{target}"
+ create_canonical_email_block_html: "%{name} bloqueou o email con hash %{target}"
create_custom_emoji_html: "%{name} subiu un novo emoji %{target}"
create_domain_allow_html: "%{name} permitiu a federación co dominio %{target}"
create_domain_block_html: "%{name} bloqueou o dominio %{target}"
create_email_domain_block_html: "%{name} bloqueou o dominio de email %{target}"
create_ip_block_html: "%{name} creou regra para o IP %{target}"
create_unavailable_domain_html: "%{name} deixou de interactuar co dominio %{target}"
+ create_user_role_html: "%{name} creou o rol %{target}"
demote_user_html: "%{name} degradou a usuaria %{target}"
destroy_announcement_html: "%{name} eliminou o anuncio %{target}"
- destroy_custom_emoji_html: "%{name} destruíu o emoji %{target}"
+ destroy_canonical_email_block_html: "%{name} desbloqueou o email con hash %{target}"
+ destroy_custom_emoji_html: "%{name} eliminou o emoji %{target}"
destroy_domain_allow_html: "%{name} retirou a federación co dominio %{target}"
destroy_domain_block_html: "%{name} desbloqueou o dominio %{target}"
destroy_email_domain_block_html: "%{name} desbloqueou o dominio de email %{target}"
@@ -305,6 +251,7 @@ gl:
destroy_ip_block_html: "%{name} eliminou a regra para o IP %{target}"
destroy_status_html: "%{name} eliminou a publicación de %{target}"
destroy_unavailable_domain_html: "%{name} retomou a interacción co dominio %{target}"
+ destroy_user_role_html: "%{name} eliminou o rol %{target}"
disable_2fa_user_html: "%{name} desactivou o requerimento do segundo factor para a usuaria %{target}"
disable_custom_emoji_html: "%{name} desactivou o emoji %{target}"
disable_sign_in_token_auth_user_html: "%{name} desactivou a autenticación por token no email para %{target}"
@@ -331,8 +278,9 @@ gl:
update_announcement_html: "%{name} actualizou o anuncio %{target}"
update_custom_emoji_html: "%{name} actualizou o emoji %{target}"
update_domain_block_html: "%{name} actualizou o bloqueo do dominio para %{target}"
+ update_ip_block_html: "%{name} cambiou a regra para IP %{target}"
update_status_html: "%{name} actualizou a publicación de %{target}"
- deleted_status: "(publicación eliminada)"
+ update_user_role_html: "%{name} cambiou o rol %{target}"
empty: Non se atoparon rexistros.
filter_by_action: Filtrar por acción
filter_by_user: Filtrar por usuaria
@@ -376,6 +324,7 @@ gl:
listed: Listado
new:
title: Engadir nova emoticona personalizado
+ no_emoji_selected: Non se cambiou ningún emoji xa que ningún foi seleccionado
not_permitted: Non podes realizar esta acción
overwrite: Sobrescribir
shortcode: Código curto
@@ -601,7 +550,7 @@ gl:
delete_description_html: As publicacións denunciadas van ser eliminadas e gárdase un aviso para axudarche a xestionar futuras infraccións desta conta.
mark_as_sensitive_description_html: Os multimedia das publicacións denunciadas serán marcados como sensibles e engadirase un aviso para axudarche a xestionar futuras infraccións da mesma conta.
other_description_html: Mira máis opcións para controlar o comportamento da conta e personalizar as comunicacións coa conta denunciada.
- resolve_description_html: Non se van tomar accións contra a conta denunciada, nin se gardan avisos, e a denuncia arquivada.
+ resolve_description_html: Non se van tomar accións contra a conta denunciada, nin se gardarán avisos, e pecharase a denuncia.
silence_description_html: O perfil será visible só para quen xa o está a seguir ou quen o buscou manualmente, limitando moito o seu alcance. Pódese cambiar.
suspend_description_html: O perfil e tódolos seus contidos será inaccesbles e finalmente eliminados. A interacción coa conta non será posible. Reversible durante 30 días.
actions_description_html: Decide que acción tomar respecto desta denuncia. Se tomas accións punitivas contra a conta denunciada, enviaráselles un email coa notificación, excepto se está seleccionada a categoría Spam .
@@ -631,7 +580,7 @@ gl:
placeholder: Describir que accións foron tomadas ou calquera outra novidade sobre esta denuncia...
title: Notas
notes_description_html: Ver e deixar unha nota para ti no futuro e outras moderadoras
- quick_actions_description_html: 'Tomar unha acción rápida ou desprázate abaixo para ver o contido denunciado:'
+ quick_actions_description_html: 'Toma unha acción rápida ou desprázate abaixo para ver o contido denunciado:'
remote_user_placeholder: a usuaria remota desde %{instance}
reopen: Reabrir denuncia
report: 'Denuncia #%{id}'
@@ -649,6 +598,67 @@ gl:
unresolved: Non resolto
updated_at: Actualizado
view_profile: Ver perfil
+ roles:
+ add_new: Engadir rol
+ assigned_users:
+ one: "%{count} usuaria"
+ other: "%{count} usuarias"
+ categories:
+ administration: Administración
+ devops: DevOps
+ invites: Convites
+ moderation: Moderación
+ special: Especial
+ delete: Eliminar
+ description_html: Cos roles das usuarias podes personalizar as funcións e áreas de Mastodon ás que as usuarias poden acceder.
+ edit: Editar rol '%{name}'
+ everyone: Permisos por defecto
+ everyone_full_description_html: Este é o rol básico que afecta a tódalas usuarias , incluso aquelas sen un rol asignado. Tódolos outros roles herdan os seus permisos.
+ permissions_count:
+ one: "%{count} permiso"
+ other: "%{count} permisos"
+ privileges:
+ administrator: Administradora
+ administrator_description: As usuarias con este permiso poderán superar calquera restrición
+ delete_user_data: Eliminar datos de usuarias
+ delete_user_data_description: Permite eliminar datos doutras usuarias sen demoras
+ invite_users: Convidar usuarias
+ invite_users_description: Permite que outras usuarias conviden a xente ao servidor
+ manage_announcements: Xestionar anuncios
+ manage_announcements_description: Permite que xestionen os anuncios publicados no servidor
+ manage_appeals: Xestionar recursos
+ manage_appeals_description: Permite revisar as apelacións contra as accións de moderación
+ manage_blocks: Xestionar bloqueos
+ manage_blocks_description: Permite bloquear provedores de email e enderezos IP
+ manage_custom_emojis: Xestionar Emojis personalizados
+ manage_custom_emojis_description: Permite xestionar os emojis personalizados do servidor
+ manage_federation: Xestionar a federación
+ manage_federation_description: Permite bloquear ou permitir a federación con outros dominios, e controlar as entregas
+ manage_invites: Xestionar Convites
+ manage_invites_description: Permite ver e desactivar ligazóns de convite
+ manage_reports: Xestionar Denuncias
+ manage_reports_description: Permite revisar as denuncias e realizar accións de moderación sobre elas
+ manage_roles: Xestionar Roles
+ manage_roles_description: Permite xestionar e asignar roles a niveis inferiores
+ manage_rules: Xestionar Regras
+ manage_rules_description: Permite cambiar as regras do servidor
+ manage_settings: Xestionar Axustes
+ manage_settings_description: Permite cambiar os axustes do sitio web
+ manage_taxonomies: Xestionar Taxonomías
+ manage_taxonomies_description: Permite revisar o contido en voga e actualizar os axustes dos cancelos
+ manage_user_access: Xestionar Acceso das usuarias
+ manage_user_access_description: Permite desactivar o segundo factor de autenticación doutras usuarias, cambiar o enderezo de email e restablecer o contrasinal
+ manage_users: Xestionar Usuarias
+ manage_users_description: Permite ver os detalles doutras usuarias e realizar accións de moderación sobre elas
+ manage_webhooks: Xestionar Webhooks
+ manage_webhooks_description: Permite establecer webhooks para eventos administrativos
+ view_audit_log: Ver Rexistro de auditoría
+ view_audit_log_description: Permite ver o historial de accións administrativas no servidor
+ view_dashboard: Ver Taboleiro
+ view_dashboard_description: Permite acceder ao taboleiro e varias métricas do servidor
+ view_devops: Devops
+ view_devops_description: Permite acceder aos taboleiros Sidekiq e phHero
+ title: Roles
rules:
add_new: Engadir regra
delete: Eliminar
@@ -657,108 +667,67 @@ gl:
empty: Aínda non se definiron as regras do servidor.
title: Regras do servidor
settings:
- activity_api_enabled:
- desc_html: Conta de estados publicados de xeito local, usuarias activas, e novos rexistros en períodos semanais
- title: Publicar na API estatísticas acumuladas sobre a actividade da usuaria
- bootstrap_timeline_accounts:
- desc_html: Separar os múltiples nomes de usuaria con vírgulas. Estas contas teñen garantido aparecer nas recomendacións de seguimento
- title: Recoméndalle estas contas ás novas usuarias
- contact_information:
- email: Email de negocios
- username: Nome de usuaria de contacto
- custom_css:
- desc_html: Modificar a aparencia con CSS cargado en cada páxina
- title: CSS personalizado
- default_noindex:
- desc_html: Aféctalle a todas as usuarias que non cambiaron os axustes elas mesmas
- title: Por omisión exclúe as usuarias do indexado por servidores de busca
+ about:
+ manage_rules: Xestionar regras do servidor
+ preamble: Proporciona información detallada acerca do xeito en que se xestiona, modera e financia o servidor.
+ rules_hint: Hai un espazo dedicado para as normas que é de agardar que as túas usuarias cumpran.
+ title: Acerca de
+ appearance:
+ preamble: Personalizar a interface web de Mastodon.
+ title: Aparencia
+ branding:
+ preamble: A personalización do teu servidor diferénciao doutros servidores da rede. A información podería mostrarse en diversos entornos, como a interface web de Mastodon, aplicacións nativas, vista previa das ligazóns noutras webs e apps de mensaxería, e similares. Debido a esto é recomendable que a información sexa clara, curta e concisa.
+ title: Personalización
+ content_retention:
+ preamble: Controla como se gardan en Mastodon os contidos creados polas usuarias.
+ title: Retención do contido
+ discovery:
+ follow_recommendations: Recomendacións de seguimento
+ preamble: Destacar contido interesante é importante para axudar a que as novas usuarias se sintan cómodas se non coñecen a ninguén en Mastodon. Xestiona os diferentes xeitos de promocionar contidos.
+ profile_directory: Directorio de perfís
+ public_timelines: Cronoloxías públicas
+ title: Descubrir
+ trends: Tendencias
domain_blocks:
all: Para todos
disabled: Para ninguén
- title: Amosar dominios bloqueados
users: Para usuarias locais conectadas
- domain_blocks_rationale:
- title: Amosar motivo
- hero:
- desc_html: Amosado na páxina principal. Polo menos 600x100px recomendados. Se non está definido, estará por defecto a miniatura do servidor
- title: Imaxe do heroe
- mascot:
- desc_html: Amosado en varias páxinas. Polo menos 293x205px recomendados. Se non está definido, estará a mascota por defecto
- title: Imaxe da mascota
- peers_api_enabled:
- desc_html: Nomes de dominio que este servidor atopou no fediverso
- title: Publicar na API listaxe de servidores descobertos
- preview_sensitive_media:
- desc_html: A vista previa de ligazóns de outros sitios web mostrará unha imaxe incluso si os medios están marcados como sensibles
- title: Mostrar medios sensibles con vista previa OpenGraph
- profile_directory:
- desc_html: Permitir que as usuarias poidan ser descubertas
- title: Activar o directorio de perfil
registrations:
- closed_message:
- desc_html: Mostrado na páxina de portada cando o rexistro está pechado. Pode utilizar cancelos HTML
- title: Mensaxe de rexistro pechado
- deletion:
- desc_html: Permitirlle a calquera que elimine a súa conta
- title: Abrir o borrado da conta
- min_invite_role:
- disabled: Ninguén
- title: Permitir convites por
- require_invite_text:
- desc_html: Cando os rexistros requiren aprobación manual, facer que o texto "Por que te queres rexistrar?" do convite sexa obrigatorio en lugar de optativo
- title: Require que as novas usuarias completen solicitude de texto do convite
+ preamble: Xestiona quen pode crear unha conta no teu servidor.
+ title: Rexistros
registrations_mode:
modes:
approved: Precisa aprobación para rexistrarse
none: Rexistro pechado
open: Rexistro aberto
- title: Estado do rexistro
- show_known_fediverse_at_about_page:
- desc_html: Si activado, mostraralle os toots de todo o fediverso coñecido nunha vista previa. Si non só mostrará os toots locais.
- title: Incluír contido federado na páxina da cronoloxía pública sen autenticación
- show_staff_badge:
- desc_html: Mostrar unha insignia de membresía nunha páxina de usuaria
- title: Mostrar insigna de membresía
- site_description:
- desc_html: Parágrafo de presentación na páxina principal. Describe o que fai especial a este servidor Mastodon e calquera outra ouca importante. Pode utilizar cancelos HTML, en particular <a>
e <em>
.
- title: Descrición do servidor
- site_description_extended:
- desc_html: Un bo lugar para o teu código de conduta, regras, guías e outras cousas para diferenciar o teu servidor. Podes empregar cancelos HTML
- title: Información extendida da personalización
- site_short_description:
- desc_html: Amosado na barra lateral e nos cancelos meta. Describe o que é Mastodon e que fai especial a este servidor nun só parágrafo. Se está baleiro, amosará a descrición do servidor.
- title: Descrición curta do servidor
- site_terms:
- desc_html: Podes escribir a túa propia política de privacidade, termos de servizo ou aclaracións legais. Podes empregar cancelos HTML
- title: Termos de servizo personalizados
- site_title: Nome do servidor
- thumbnail:
- desc_html: Utilizado para vistas previsas vía OpenGraph e API. Recoméndase 1200x630px
- title: Icona do servidor
- timeline_preview:
- desc_html: Mostrar ligazón á cronoloxía pública na páxina de benvida e permitir o acceso API á cronoloxía pública sen ter autenticación
- title: Permitir acceso á cronoloxía pública sen autenticación
- title: Axustes do sitio
- trendable_by_default:
- desc_html: Afecta ós cancelos que non foron rexeitados de xeito previo
- title: Permite ós cancelos ser tendencia sen revisión previa
- trends:
- desc_html: Amosar de xeito público cancelos revisados previamente que actualmente son tendencia
- title: Cancelos en tendencia
+ title: Axustes do servidor
site_uploads:
delete: Eliminar o ficheiro subido
destroyed_msg: Eliminado correctamente o subido!
statuses:
+ account: Conta
+ application: Aplicación
back_to_account: Volver a páxina da conta
back_to_report: Volver a denuncias
batch:
remove_from_report: Eliminar da denuncia
report: Denuncia
deleted: Eliminado
+ favourites: Favoritas
+ history: Historial de versións
+ in_reply_to: En resposta a
+ language: Idioma
media:
title: Medios
+ metadata: Metadatos
no_status_selected: Non se cambiou ningunha publicación xa que ningunha foi seleccionada
+ open: Abrir publicación
+ original_status: Publicación orixinal
+ reblogs: Promocións
+ status_changed: Publicación editada
title: Publicacións da conta
+ trending: Tendencia
+ visibility: Visibilidade
with_media: con medios
strikes:
actions:
@@ -798,6 +767,9 @@ gl:
description_html: Estas son ligazóns que actualmente están sendo compartidas por moitas contas das que o teu servidor recibe publicación. Pode ser de utilidade para as túas usuarias para saber o que acontece polo mundo. Non se mostran ligazóns de xeito público a non ser que autorices a quen as publica. Tamén podes permitir ou rexeitar ligazóns de xeito individual.
disallow: Denegar ligazón
disallow_provider: Denegar orixe
+ no_link_selected: Non se cambiou ningunha ligazón xa que non había ningunha seleccionada
+ publishers:
+ no_publisher_selected: Non se cambiou ningún autor xa que ningún foi seleccionado
shared_by_over_week:
one: Compartido por unha persoa na última semana
other: Compartido por %{count} persoas na última semana
@@ -817,6 +789,7 @@ gl:
description_html: Estas son publicacións que o teu servidor coñece que están sendo compartidas e favorecidas en gran número neste intre. Pode ser útil para as persoas recén chegadas e as que retornan para que atopen persoas a quen seguir. Non se mostran publicamente a menos que aprobes a autora, e a autora permita que a súa conta sexa suxerida a outras. Tamén podes rexeitar ou aprobar publicacións individuais.
disallow: Rexeitar publicación
disallow_account: Rexeitar autora
+ no_status_selected: Non se cambiou ningunha publicación en voga xa que non había ningunha seleccionada
not_discoverable: A autora non elexiu poder ser atopada
shared_by:
one: Compartida ou favorecida unha vez
@@ -832,6 +805,7 @@ gl:
tag_uses_measure: total de usos
description_html: Estes son cancelos que actualmente están presentes en moitas publicacións que o teu servidor recibe. Pode ser útil para que as túas usuarias atopen a outras persoas a través do máis comentado neste intre. Non se mostran cancelos públicamente que non fosen aprobados por ti.
listable: Pode ser suxerida
+ no_tag_selected: Non se cambiaron cancelos porque ningún foi seleccionado
not_listable: Non vai ser suxerida
not_trendable: Non aparecerá en tendencias
not_usable: Non pode ser usado
@@ -852,6 +826,26 @@ gl:
edit_preset: Editar aviso preestablecido
empty: Non definiches os avisos prestablecidos.
title: Xestionar avisos preestablecidos
+ webhooks:
+ add_new: Engadir punto de extremo
+ delete: Eliminar
+ description_html: Un webhook permítelle a Mastodon enviar notificacións en tempo real á túa aplicación acerca dos eventos elexidos e así, a aplicación activará automáticamente a súa programación.
+ disable: Desactivar
+ disabled: Desactivado
+ edit: Editar extremo
+ empty: Non tes configurado ningún punto extremo para o webhook.
+ enable: Activar
+ enabled: Activo
+ enabled_events:
+ one: 1 evento activado
+ other: "%{count} eventos activados"
+ events: Eventos
+ new: Novo webhook
+ rotate_secret: Rotar segredo
+ secret: Segredo de acceso
+ status: Estado
+ title: Webhooks
+ webhook: Webhook
admin_mailer:
new_appeal:
actions:
@@ -875,12 +869,8 @@ gl:
new_trends:
body: 'Os seguintes elementos precisan revisión antes de ser mostrados públicamente:'
new_trending_links:
- no_approved_links: Actualmente non hai ligazóns en voga aprobadas.
- requirements: 'Calquera destos candidatos podería superar o #%{rank} das ligazóns en voga aprobadas, que actualmente é "%{lowest_link_title}" cunha puntuación de %{lowest_link_score}.'
title: Ligazóns en voga
new_trending_statuses:
- no_approved_statuses: Actualmente non hai publicacións en voga aprobadas.
- requirements: 'Calquera destos candidatos podería superar o #%{rank} nas publicacións en boga aprobadas, que actualmente é %{lowest_status_url} cunha puntuación de %{lowest_status_score}.'
title: Publicacións en voga
new_trending_tags:
no_approved_tags: Non hai etiquetas en voga aprobadas.
@@ -896,7 +886,7 @@ gl:
remove: Desligar alcume
appearance:
advanced_web_interface: Interface web avanzada
- advanced_web_interface_hint: Se queres empregar todo o ancho da túa pantalla, a interface web avanzada permíteche configurar diferentes columnas para ver tanta información como desexe. Inicio, notificacións, cronoloxía federada, calquera número de listaxes e cancelos.
+ advanced_web_interface_hint: Se queres empregar todo o ancho da pantalla, a interface web avanzada permíteche configurar diferentes columnas para ver tanta información como queiras. Inicio, notificacións, cronoloxía federada, varias listaxes e cancelos.
animations_and_accessibility: Animacións e accesibilidade
confirmation_dialogs: Diálogos de confirmación
discovery: Descubrir
@@ -916,16 +906,13 @@ gl:
applications:
created: Creouse con éxito este aplicativo
destroyed: Eliminouse con éxito o aplicativo
- invalid_url: A URL proporcionada non é válida
regenerate_token: Votar a xenerar o testemuño de acceso
token_regenerated: Rexenerouse con éxito o testemuño de acceso
warning: Ten moito tino con estos datos. Non os compartas nunca con ninguén!
your_token: O seu testemuño de acceso
auth:
- apply_for_account: Solicite un convite
+ apply_for_account: Solicita o acceso
change_password: Contrasinal
- checkbox_agreement_html: Acepto as regras do servidor e os termos do servizo
- checkbox_agreement_without_rules_html: Acepto os termos do servizo
delete_account: Eliminar conta
delete_account_html: Se queres eliminar a túa conta, podes facelo aquí . Deberás confirmar a acción.
description:
@@ -935,7 +922,7 @@ gl:
didnt_get_confirmation: Non recibiches as instruccións de confirmación?
dont_have_your_security_key: "¿Non tes a túa chave de seguridade?"
forgot_password: Non lembras o contrasinal?
- invalid_reset_password_token: O testemuño para restablecer o contrasinal non é válido ou caducou. Por favor solicite un novo.
+ invalid_reset_password_token: O token para restablecer o contrasinal non é válido ou caducou. Por favor solicita un novo.
link_to_otp: Escribe o código do segundo factor do móbil ou un código de recuperación
link_to_webauth: Usa o teu dispositivo de chave de seguridade
log_in_with: Accede con
@@ -944,6 +931,7 @@ gl:
migrate_account: Mover a unha conta diferente
migrate_account_html: Se queres redirixir esta conta hacia outra diferente, pode configuralo aquí .
or_log_in_with: Ou accede con
+ privacy_policy_agreement_html: Lin e acepto a política de privacidade
providers:
cas: CAS
saml: SAML
@@ -951,12 +939,18 @@ gl:
registration_closed: "%{instance} non está a aceptar novas usuarias"
resend_confirmation: Reenviar as intruccións de confirmación
reset_password: Restablecer contrasinal
+ rules:
+ preamble: Son establecidas e aplicadas pola moderación de %{domain}.
+ title: Algunhas regras básicas.
security: Seguranza
set_new_password: Estabelecer novo contrasinal
setup:
email_below_hint_html: Se o enderezo inferior non é correcto, podes cambialo aquí e recibir un correo de confirmación.
email_settings_hint_html: Enviouse un correo de confirmación a %{email}. Se o enderezo non é correcto podes cambialo nos axustes da conta.
title: Axustes
+ sign_up:
+ preamble: Cunha conta neste servidor Mastodon poderás seguir a calquera outra persoa na rede, independentemente de onde estivese hospedada esa conta.
+ title: Imos crear a túa conta en %{domain}.
status:
account_status: Estado da conta
confirming: Agardando a confirmación do correo enviado.
@@ -965,7 +959,6 @@ gl:
redirecting_to: A túa conta está inactiva porque está redirixida a %{acct}.
view_strikes: Ver avisos anteriores respecto da túa conta
too_fast: Formulario enviado demasiado rápido, inténtao outra vez.
- trouble_logging_in: Problemas para acceder?
use_security_key: Usa chave de seguridade
authorize_follow:
already_following: Xa está a seguir esta conta
@@ -1023,10 +1016,6 @@ gl:
more_details_html: Para máis detalles, mira a política de intimidade .
username_available: O nome de usuaria estará dispoñible novamente
username_unavailable: O nome de usuaria non estará dispoñible
- directories:
- directory: Directorio de perfís
- explanation: Descubre usuarias según o teu interese
- explore_mastodon: Explorar %{title}
disputes:
strikes:
action_taken: Acción tomada
@@ -1073,7 +1062,7 @@ gl:
content: Sentímolo, pero algo do noso lado falloou.
title: Esta páxina non é correcta
'503': A páxina non se puido servir debido a un fallo temporal no servidor.
- noscript_html: Para utilizar a aplicación web de Mastodon debes activar JavaScript. De xeito alternativo, probb cunha das apps nativas para Mastodon na túa plataforma.
+ noscript_html: Para utilizar a aplicación web de Mastodon debes activar JavaScript. De xeito alternativo, proba cunha das apps nativas para Mastodon na túa plataforma.
existing_username_validator:
not_found: non se atopou unha usuaria local con ese alcume
not_found_multiple: non se atopou a %{usernames}
@@ -1105,29 +1094,60 @@ gl:
public: Cronoloxías públicas
thread: Conversas
edit:
+ add_keyword: Engadir palabra chave
+ keywords: Palabras chave
+ statuses: Publicacións individuais
+ statuses_hint_html: O filtro aplícase para seleccionar publicacións individuais independentemente de se concorda coas palabras chave indicadas. Revisa ou elimina publicacións do filtro .
title: Editar filtro
errors:
+ deprecated_api_multiple_keywords: Estes parámetros non se poden cambiar desde esta aplicación porque son de aplicación a máis dun filtro de palabras chave. Usa unha aplicación máis recente ou a interface web.
invalid_context: Non se proporcionou un contexto válido
- invalid_irreversible: O filtrado non reversible só funciona con contexto de avisos ou Inicio
index:
+ contexts: Filtros para %{contexts}
delete: Eliminar
empty: Non tes filtros.
+ expires_in: Caduca en %{distance}
+ expires_on: Caduca o %{date}
+ keywords:
+ one: "%{count} palabra chave"
+ other: "%{count} palabras chave"
+ statuses:
+ one: "%{count} publicación"
+ other: "%{count} publicacións"
+ statuses_long:
+ one: "%{count} publicación individual agochada"
+ other: "%{count} publicacións individuais agochadas"
title: Filtros
new:
+ save: Gardar o novo filtro
title: Engadir novo filtro
+ statuses:
+ back_to_filter: Volver ao filtro
+ batch:
+ remove: Eliminar do filtro
+ index:
+ hint: Este filtro aplícase para seleccionar publicacións individuais independentemente de outros criterios. Podes engadir máis publicacións a este filtro desde a interface web.
+ title: Publicacións filtradas
footer:
- developers: Desenvolvedoras
- more: Máis…
- resources: Recursos
trending_now: Tendencia agora
generic:
all: Todo
+ all_items_on_page_selected_html:
+ one: "%{count} elemento seleccionado nesta páxina."
+ other: Tódolos %{count} elementos desta páxina están seleccionados.
+ all_matching_items_selected_html:
+ one: "%{count} elemento coincidente coa busca está seleccionado."
+ other: Tódolos %{count} elementos coincidentes coa busca están seleccionados.
changes_saved_msg: Cambios gardados correctamente!!
copy: Copiar
delete: Eliminar
+ deselect: Desmarcar todo
none: Ningún
order_by: Ordenar por
save_changes: Gardar cambios
+ select_all_matching_items:
+ one: Seleccionar %{count} elemento coincidente coa busca.
+ other: Seleccionar tódolos %{count} elementos coincidentes coa busca.
today: hoxe
validation_errors:
one: Algo non está ben de todo! Por favor revise abaixo o erro
@@ -1151,7 +1171,6 @@ gl:
following: Lista de seguimento
muting: Lista de usuarias acaladas
upload: Subir
- in_memoriam_html: Lembranzas.
invites:
delete: Desactivar
expired: Caducou
@@ -1232,19 +1251,10 @@ gl:
copy_account_note_text: 'Esta usuaria chegou desde %{acct}, aquí están as túas notas previas acerca dela:'
notification_mailer:
admin:
+ report:
+ subject: "%{name} enviou unha denuncia"
sign_up:
subject: "%{name} rexistrouse"
- digest:
- action: Ver todas as notificacións
- body: Aquí ten un breve resumo das mensaxes publicadas desde a súa última visita en %{since}
- mention: "%{name} mencionouna en:"
- new_followers_summary:
- one: Ademáis, ten unha nova seguidora desde entón! Ben!
- other: Ademáis, obtivo %{count} novas seguidoras desde entón! Tremendo!
- subject:
- one: "1 nova notificación desde a última visita 🐘"
- other: "%{count} novas notificacións desde a última visita 🐘"
- title: Na súa ausencia...
favourite:
body: 'A túa publicación foi marcada como favorita por %{name}:'
subject: "%{name} marcou como favorita a túa publicación"
@@ -1260,7 +1270,7 @@ gl:
title: Nova petición de seguimento
mention:
action: Responder
- body: 'Foi mencionada por %{name} en:'
+ body: "%{name} mencionoute en:"
subject: Foches mencionada por %{name}
title: Nova mención
poll:
@@ -1316,6 +1326,8 @@ gl:
other: Outro
posting_defaults: Valores por omisión
public_timelines: Cronoloxías públicas
+ privacy_policy:
+ title: Política de Privacidade
reactions:
errors:
limit_reached: Acadouse o límite das diferentes reaccións
@@ -1338,22 +1350,7 @@ gl:
remove_selected_follows: Deixar de seguir as usuarias escollidas
status: Estado da conta
remote_follow:
- acct: Introduza o seu usuaria@servidor desde onde quere interactuar
missing_resource: Non se puido atopar o URL de redirecionamento requerido para a súa conta
- no_account_html: Non ten unha conta? Pode rexistrarse aquí
- proceed: Proceda para seguir
- prompt: 'Vas seguir a:'
- reason_html: "Por que é necesario este paso? %{instance}
podería non ser o servidor onde se rexistrou, así que precisamo redirixila primeiro ao seu servidor de orixe."
- remote_interaction:
- favourite:
- proceed: Darlle a favorito
- prompt: 'Vas marcar favorita esta publicación:'
- reblog:
- proceed: Darlle a promocionar
- prompt: 'Vas promover esta publicación:'
- reply:
- proceed: Responde
- prompt: 'Vas responder a esta publicación:'
reports:
errors:
invalid_rules: non fai referencia a regras válidas
@@ -1525,56 +1522,6 @@ gl:
too_late: É demasiado tarde para recurrir este aviso
tags:
does_not_match_previous_name: non concorda co nome anterior
- terms:
- body_html: |
- Privacidade
- Que información recollemos?
-
- Información básica da conta : Se te rexistras neste servidor, pedirémosche un nome de usuaria, un enderezo de correo electrónico e un contrasinal. De xeito adicional tamén poderás incluír información como un nome público e biografía, tamén subir unha fotografía de perfil e unha imaxe para a cabeceira. O nome de usuaria, o nome público, a biografía e as imaxes de perfil e cabeceira sempre se mostran de xeito público.
- Publicacións, seguimento e outra información pública : A lista das persoas que segues é unha lista pública, o mesmo acontece coas persoas que te seguen. Cando envías unha mensaxe, a data e hora gárdanse así como a aplicación que utilizaches para enviar a mensaxe. As publicacións poderían incluír ficheiros multimeda, como fotografías e vídeos. As publicacións públicas e as non listadas están dispoñibles de xeito público. Cando destacas unha publicación no teu perfil tamén é pública. As publicacións son enviadas as túas seguidoras, nalgúns casos pode acontecer que estén en diferentes servidores e gárdanse copias neles. Cando eleminas unha publicación tamén se envía ás túas seguidoras. A acción de volver a publicar ou marcar como favorita outra publicación sempre é pública.
- Mensaxes directas e só para seguidoras : Todas as mensaxes gárdanse e procésanse no servidor. As mensaxes só para seguidoras son entregadas ás túas seguidoras e ás usuarias que son mencionadas nelas, e as mensaxes directas entréganse só ás usuarias mencionadas en elas. Nalgúns casos esto implica que son entregadas a diferentes servidores e gárdanse copias alí. Facemos un esforzo honesto para limitar o acceso a esas publicacións só ás persoas autorizadas, pero outros servidores poderían non ser tan escrupulosos. Polo tanto, é importante revisar os servidores onde se hospedan as túas seguidoras. Nos axustes podes activar a opción de aprobar ou rexeitar novas seguidoras de xeito manual. Ten en conta que a administración do servidor e todos os outros servidores implicados poden ver as mensaxes. , e as destinatarias poderían facer capturas de pantalla, copiar e volver a compartir as mensaxes. Non compartas información sensible en Mastodon.
- IPs e outros metadatos : Cando te conectas, gravamos o IP desde onde te conectas, así como o nome da aplicación desde onde o fas. Todas as sesións conectadas están dispoñibles para revisar e revogar nos axustes. O último enderezo IP utilizado gárdase ate por 12 meses. Tamén poderiamos gardar informes do servidor que inclúan o enderezo IP de cada petición ao servidor.
-
-
- De que xeito utilizamos os teus datos?
- Toda a información que recollemos podería ser utilizada dos seguintes xeitos:
-
- Para proporcionar a funcionabiliade básica de Mastodon. Só podes interactuar co contido de outra xente e publicar o teu propio contido se inicias sesión. Por exemplo, poderías seguir outra xente e ver as súas publicacións combinadas nunha cronoloxía de inicio personalizada.
- Para axudar a moderar a comunidade, por exemplo comparando o teu enderezo IP con outros coñecidos para evitar esquivar os rexeitamentos ou outras infraccións.
- O enderezo de correo electrónico que nos proporcionas podería ser utilizado para enviarche información, notificacións sobre outra xente que interactúa coas túas publicacións ou che envía mensaxes, e para responder a consultas, e/ou outras cuestións ou peticións.
-
-
- Como proxetemos os teus datos?
- Implementamos varias medidas de seguridade para protexer os teus datos persoais cando introduces, envías ou accedes á túa información persoal. Entre outras medidas, a túa sesión de navegación, así como o tráfico entre as túas aplicacións e o API están aseguradas mediante SSL, e o teu contrasinal está camuflado utilizando un algoritmo potente de unha sóa vía. Podes habilitar a autenticación por dobre factor para protexer aínda máis o acceso á túa conta.
-
- Cal é a nosa política de retención de datos?
- Faremos un sincero esforzo en:
-
- Protexer informes do servidor que conteñan direccións IP das peticións ao servidor, actualmente estos informes gárdanse por non máis de 90 días.
- Reter os enderezos IP asociados con usuarias rexistradas non máis de 12 meses.
-
- Podes solicitar e descargar un ficheiro cos teus contidos, incluíndo publicacións, anexos multimedia, imaxes de perfil e imaxe da cabeceira.
- En todo momento podes eliminar de xeito irreversible a túa conta.
-
- Utilizamos cookies?
- Si. As cookies son pequenos ficheiros que un sitio web ou o provedor de servizo transfiren ao disco duro da túa computadora a través do navegador web (se o permites). Estas cookies posibilitan ao sitio web recoñecer o teu navegador e, se tes unha conta rexistrada, asocialo con dita conta.
- Utilizamos cookies para comprender e gardar as túas preferencias para futuras visitas.
-
- Entregamos algunha información a terceiras partes alleas?
- Non vendemos, negociamos ou transferimos de ningún xeito a terceiras partes alleas a túa información identificativa persoal. Esto non inclúe terceiras partes de confianza que nos axudan a xestionar o sitio web, a xestionar a empresa, ou darche servizo se esas partes aceptan manter esa información baixo confidencialidade. Poderiamos liberar esa información se cremos que eso da cumplimento axeitado a lei, reforza as políticas do noso sitio ou protexe os nosos, e de outros, dereitos, propiedade ou seguridade.
- O teu contido público podería ser descargado por outros servidores na rede. As túas publicacións públicas e para só seguidoras son entregadas aos servidores onde residen as túas seguidoras na rede, e as mensaxes directas son entregadas aos servidores das destinatarias sempre que esas seguidoras ou destinatarios residan en servidores distintos de este.
- Cado autorizas a unha aplicación a utilizar a túa conta, dependendo do ámbito dos permisos que autorices, podería acceder a información pública de perfil, á lista de seguimento, ás túas seguidoras, as túas listas, todas as túas publicacións, as publicacións favoritas. As aplicacións non poden acceder nunca ao teu enderezo de correo nin ao teu contrasinal.
-
- Utilización do sitio web por menores
- Se este servidor está na UE ou no EEE: a nosa web, productos e servizos están dirixidos a persoas de 16 ou máis anos. Se tes menos de 16 anos, a requerimento da GDPR (General Data Protection Regulation ) non uses esta web.
- Se este servidor está nos EEUU: a nosa web, productos e servizos están dirixidos a persoas de 13 ou máis anos. Se non tes 13 anos de idade, a requerimento de COPPA (Children's Online Privacy Protection Act ) non uses esta web.
- Os requerimentos legais poden ser diferentes se este servidor está baixo outra xurisdición.
-
- Cambios na nosa política de privacidade
- Se decidimos cambiar a nosa política de privacidade publicaremos os cambios nesta páxina.
- Este documento ten licenza CC-BY-SA. Actualizouse o 26 de maio de 2022.
- Adaptado do orixinal política de privacidade de Discourse .
- title: "%{instance} Termos do Servizo e Política de Intimidade"
themes:
contrast: Mastodon (Alto contraste)
default: Mastodon (Escuro)
@@ -1653,20 +1600,13 @@ gl:
suspend: Conta suspendida
welcome:
edit_profile_action: Configurar perfil
- edit_profile_step: Podes personalizar o teu perfil subindo un avatar, cabeceira, cambiar o nome público e aínda máis. Se restrinxes a túa conta podes revisar a conta das persoas que solicitan seguirte antes de permitirlles o acceso aos teus toots.
+ edit_profile_step: Podes personalizar o teu perfil subindo unha imaxe de perfil, cambiar o nome público e moito máis. Podes elexir revisar as solicitudes de seguimento recibidas antes de permitirlles que te sigan.
explanation: Aquí tes algunhas endereitas para ir aprendendo
final_action: Comeza a publicar
- final_step: 'Publica! Incluso sen seguidoras as túas mensaxes públicas serán vistas por outras persoas, por exemplo na cronoloxía local e nos cancelos. Poderías presentarte ao #fediverso utilizando o cancelo #introductions.'
+ final_step: 'Publica! Incluso sen seguidoras, as túas mensaxes públicas serán vistas por outras persoas, por exemplo na cronoloxía local e nos cancelos. Poderías presentarte ao #fediverso utilizando o cancelo #introductions.'
full_handle: O teu alcume completo
full_handle_hint: Compárteo coas túas amizades para que poidan seguirte ou enviarche mensaxes desde outros servidores.
- review_preferences_action: Cambiar preferencias
- review_preferences_step: Lembra establecer as preferencias, tales como o tipo de emails que queres recibir, ou o nivel de privacidade por defecto para as túas publicacións. Se non che molestan as imaxes con movemento, podes elexir que os GIF se reproduzan automáticamente.
subject: Benvida a Mastodon
- tip_federated_timeline: A cronoloxía federada é unha visión reducida da rede Mastodon. Só inclúe a persoas relacionadas coas persoas ás que estás subscrita, polo que non é a totalidade do fediverso.
- tip_following: Por defecto segues a Admin(s) no teu servidor. Para atopar máis xente interesante, mira nas cronoloxías local e federada.
- tip_local_timeline: A cronoloxía local é unha ollada xeral sobre a xente en %{instance}. Son as súas veciñas máis próximas!
- tip_mobile_webapp: Se o navegador móbil che ofrece engadir Mastodon a pantalla de inicio, podes recibir notificacións push. En moitos aspectos comportarase como unha aplicación nativa!
- tips: Consellos
title: Benvida, %{name}!
users:
follow_limit_reached: Non pode seguir a máis de %{limit} persoas
diff --git a/config/locales/he.yml b/config/locales/he.yml
index 2d0cf8ae94..46fd07d308 100644
--- a/config/locales/he.yml
+++ b/config/locales/he.yml
@@ -1,69 +1,11 @@
---
he:
about:
- about_hashtag_html: אלו סטטוסים פומביים המתוייגים בתור#%{hashtag} . ניתן להגיב, להדהד או לחבב אותם אם יש לך חשבון בכל מקום בפדרציה.
about_mastodon_html: מסטודון היא רשת חברתית חופשית, מבוססת תוכנה חופשית ("קוד פתוח") . כאלטרנטיבה בלתי ריכוזית לפלטפרומות המסחריות, מסטודון מאפשרת להמנע מהסיכונים הנלווים להפקדת התקשורת שלך בידי חברה יחידה. שמת את מבטחך בשרת אחד — לא משנה במי בחרת, תמיד אפשר לדבר עם כל שאר המשתמשים. לכל מי שרוצה יש את האפשרות להקים שרת מסטודון עצמאי, ולהשתתף ברשת החברתית באופן חלק.
- about_this: אודות שרת זה
- active_count_after: פעיל
- active_footnote: משתמשים פעילים חודשית (MAU)
- administered_by: 'מנוהל ע"י:'
- api: ממשק
- apps: יישומונים לנייד
- apps_platforms: שימוש במסטודון מ-iOS, אנדרואיד ופלטפורמות אחרות
- browse_directory: עיון בספריית פרופילים וסינון לפי תחומי עניין
- browse_local_posts: עיון בפיד חי של חצרוצים פומביים בשרת זה
- browse_public_posts: עיון בפיד חי של חצרוצים פומביים בשרת זה
- contact: יצירת קשר
contact_missing: ללא הגדרה
contact_unavailable: לא רלוונטי/חסר
- continue_to_web: להמשיך לאפליקציית ווב
- discover_users: גילוי משתמשים
- documentation: תיעוד
- federation_hint_html: עם חשבון ב-%{instance} ניתן לעקוב אחרי אנשים בכל שרת מסטודון ומעבר.
- get_apps: נסה/י יישומון לנייד
hosted_on: מסטודון שיושב בכתובת %{domain}
- instance_actor_flash: |
- חשבון זה הינו פועל וירטואלי המשמש לייצוג השרת עצמו ולא משתמש ספציפי.
- הוא משמש למטרת פדרציה ואין לחסום אותו אלא למטרת חסימת המופע כולו, ובמקרה כזה עדיף להשתמש בחסימת מופע.
- learn_more: מידע נוסף
- logged_in_as_html: הנך מחובר/ת כרגע כ-%{username}.
- logout_before_registering: חשבון זה כבר מחובר.
- privacy_policy: מדיניות פרטיות
- rules: כללי השרת
- rules_html: 'להלן סיכום הכללים שעליך לעקוב אחריהם על מנת להשתמש בחשבון בשרת מסטודון זה:'
- see_whats_happening: מה קורה כעת
- server_stats: 'סטטיסטיקות שרת:'
- source_code: קוד מקור
- status_count_after:
- many: חצרוצים
- one: חצרוץ
- other: חצרוצים
- two: חצרוצים
- status_count_before: שכתבו
- tagline: מעקב אחרי חברים וגילוי חדשים
- terms: תנאי שימוש
- unavailable_content: שרתים מוגבלים
- unavailable_content_description:
- domain: שרת
- reason: סיבה
- rejecting_media: 'קבצי מדיה משרתים אלה לא יעובדו או ישמרו, ותמונות ממוזערות לא יוצגו. נדרשת הקלקה ידנית על מנת לצפות בקובץ המקורי:'
- rejecting_media_title: מדיה מסוננת
- silenced: 'חצרוצים משרתים אלה יוסתרו מפידים ושיחות פומביים, ושום התראות לא ינתנו על אינטראקציות עם משתמשיהם, אלא אם הינך במעקב אחריהם:'
- silenced_title: שרתים מוגבלים
- suspended: 'שום מידע עם שרתים אלה לא יעובד, יישמר או יוחלף, מה שהופך כל תקשורת עם משתמשיהם לבלתי אפשרית:'
- suspended_title: שרתים מושעים
- unavailable_content_html: ככלל מסטודון מאפשר לך לצפות בתוכן ולתקשר עם משתמשים בכל שרת בפדרציה. אלו הם היוצאים מן הכלל שהוגדרו עבור שרת זה.
- user_count_after:
- many: משתמשים
- one: משתמש
- other: משתמשים
- two: משתמשים
- user_count_before: ביתם של
- what_is_mastodon: מה זה מסטודון?
accounts:
- choices_html: 'בחירותיו/ה של %{name}:'
- endorsements_hint: תוכל/י להמליץ על אנשים לעקוב אחריהם דרך ממשק הווב, והם יופיעו כאן.
- featured_tags_hint: תוכל/י להציג האשתגיות ספציפיות והן תופענה כאן.
follow: לעקוב
followers:
many: עוקבים
@@ -72,31 +14,17 @@ he:
two: עוקבים
following: נעקבים
instance_actor_flash: חשבון זה הינו פועל וירטואלי המשמש לייצוג השרת עצמו ולא אף משתמש ספציפי. הוא משמש למטרות פדרציה ואין להשעותו.
- joined: הצטרף/ה ב-%{date}
last_active: פעילות אחרונה
link_verified_on: בעלות על קישורית זו נבדקה לאחרונה ב-%{date}
- media: מדיה
- moved_html: "%{name} עבר(ה) אל %{new_profile_link}:"
- network_hidden: מידע זה אינו זמין
nothing_here: אין פה שום דבר!
- people_followed_by: הנעקבים של %{name}
- people_who_follow: העוקבים של %{name}
pin_errors:
following: עליך לעקוב אחרי חשבון לפני שניתן יהיה להמליץ עליו
posts:
- many: חצרוצים
- one: חצרוץ
- other: חצרוצים
- two: חצרוצים
+ many: פוסטים
+ one: פוסט
+ other: פוסטים
+ two: פוסטים
posts_tab_heading: חצרוצים
- posts_with_replies: חצרוצים ותגובות
- roles:
- admin: מנהל
- bot: בוט
- group: קבוצה
- moderator: מנחה
- unavailable: פרופיל לא זמין
- unfollow: הפסקת מעקב
admin:
account_actions:
action: בצע/י פעולה
@@ -113,12 +41,17 @@ he:
avatar: יַצְגָן
by_domain: שם מתחם
change_email:
- changed_msg: כתובת הדוא"ל המשוייכת לחשבון שונתה בהצלחה !
+ changed_msg: דוא"ל שונה בהצלחה
current_email: כתובת דוא"ל נוכחית
label: שינוי כתובת דוא"ל משוייכת לחשבון
new_email: כתובת דוא"ל חדשה
submit: שלחי בקשה לשינוי דוא"ל
title: שינוי כתובת דוא"ל עבור המשתמש.ת %{username}
+ change_role:
+ changed_msg: תפקיד שונה בהצלחה !
+ label: שנה תפקיד
+ no_role: ללא תפקיד
+ title: שינוי תפקיד עבור המשתמש.ת %{username}
confirm: אישור
confirmed: אושר
confirming: המאשר
@@ -162,6 +95,7 @@ he:
active: פעילים
all: הכל
pending: בהמתנה
+ silenced: מוגבלים
suspended: מושהים
title: ניהול קהילה
moderation_notes: הודעות מנחה
@@ -169,6 +103,7 @@ he:
most_recent_ip: כתובות אחרונות
no_account_selected: לא בוצעו שינויים בחשבונות ל שכן לא נבחרו חשבונות
no_limits_imposed: לא הוטלו הגבלות
+ no_role_assigned: ללא תפקיד
not_subscribed: לא רשום
pending: ממתינים לסקירה
perform_full_suspension: ביצוע השעייה מלאה
@@ -195,20 +130,15 @@ he:
send: שלח מחדש דוא"ל אימות
success: הודעת האימייל נשלחה בהצלחה!
reset: איפוס
- reset_password: אתחול סיסמא
+ reset_password: איפוס סיסמה
resubscribe: להרשם מחדש
- role: הרשאות
- roles:
- admin: מנהל מערכת
- moderator: מנחה דיונים
- staff: צוות
- user: משתמש(ת)
+ role: תפקיד
search: חיפוש
search_same_email_domain: משתמשים אחרים מאותו דומיין דוא"ל
search_same_ip: משתמשים אחרים מאותה כתובת IP
security_measures:
- only_password: סיסמא בלבד
- password_and_2fa: סיסמא ואימות דו-גורמי
+ only_password: סיסמה בלבד
+ password_and_2fa: סיסמה ואימות דו-שלבי
sensitive: מאולצים לרגישות
sensitized: מסומנים כרגישים
shared_inbox_url: תיבה משותפת לדואר נכנס
@@ -245,6 +175,7 @@ he:
approve_user: אישור משתמש
assigned_to_self_report: הקצאת דו"ח
change_email_user: שינוי כתובת דוא"ל למשתמש
+ change_role_user: שינוי תפקיד למשתמש
confirm_user: אשר משתמש
create_account_warning: יצירת אזהרה
create_announcement: יצירת הכרזה
@@ -254,6 +185,7 @@ he:
create_email_domain_block: יצירת חסימת דומיין דוא"ל
create_ip_block: יצירת כלל IP
create_unavailable_domain: יצירת דומיין בלתי זמין
+ create_user_role: יצירת תפקיד
demote_user: הורדת משתמש בדרגה
destroy_announcement: מחיקת הכרזה
destroy_custom_emoji: מחיקת אמוג'י יחודי
@@ -262,8 +194,9 @@ he:
destroy_email_domain_block: מחיקת חסימת דומיין דוא"ל
destroy_instance: טיהור דומיין
destroy_ip_block: מחיקת כלל IP
- destroy_status: מחיקת חצרוץ
+ destroy_status: מחיקת פוסט
destroy_unavailable_domain: מחיקת דומיין בלתי זמין
+ destroy_user_role: מחיקת תפקיד
disable_2fa_user: השעיית זיהוי דו-גורמי
disable_custom_emoji: השעיית אמוג'י מיוחד
disable_sign_in_token_auth_user: השעיית אסימון הזדהות בדוא"ל של משתמש
@@ -277,7 +210,7 @@ he:
reject_user: דחיית משתמש
remove_avatar_user: הסרת תמונת פרופיל
reopen_report: פתיחת דו"ח מחדש
- reset_password_user: איפוס סיסמא
+ reset_password_user: איפוס סיסמה
resolve_report: פתירת דו"ח
sensitive_account: חשבון רגיש לכח
silence_account: הגבלת חשבון
@@ -291,11 +224,13 @@ he:
update_custom_emoji: עדכון סמלון מותאם אישית
update_domain_block: עדכון חסימת שם מתחם
update_status: סטטוס עדכון
+ update_user_role: עדכון תפקיד
actions:
approve_appeal_html: "%{name} אישר/ה ערעור על החלטת מנהלי הקהילה מ-%{target}"
approve_user_html: "%{name} אישר/ה הרשמה מ-%{target}"
assigned_to_self_report_html: '%{name} הקצה/תה דו"ח %{target} לעצמם'
change_email_user_html: '%{name} שינה/תה את כתובת הדוא"ל של המשתמש %{target}'
+ change_role_user_html: "%{name} שינה את התפקיד של %{target}"
confirm_user_html: '%{name} אישר/ה את כותבת הדו"אל של המשתמש %{target}'
create_account_warning_html: "%{name} שלח/ה אזהרה ל %{target}"
create_announcement_html: "%{name} יצר/ה הכרזה חדשה %{target}"
@@ -305,16 +240,18 @@ he:
create_email_domain_block_html: '%{name} חסם/ה את דומיין הדוא"ל %{target}'
create_ip_block_html: "%{name} יצר/ה כלל עבור IP %{target}"
create_unavailable_domain_html: "%{name} הפסיק/ה משלוח לדומיין %{target}"
+ create_user_role_html: "%{name} יצר את התפקיד של %{target}"
demote_user_html: "%{name} הוריד/ה בדרגה את המשתמש %{target}"
destroy_announcement_html: "%{name} מחק/ה את ההכרזה %{target}"
- destroy_custom_emoji_html: "%{name} השמיד/ה את האמוג'י %{target}"
+ destroy_custom_emoji_html: "%{name} מחק אמוג'י של %{target}"
destroy_domain_allow_html: "%{name} לא התיר/ה פדרציה עם הדומיין %{target}"
destroy_domain_block_html: "%{name} הסיר/ה חסימה מהדומיין %{target}"
destroy_email_domain_block_html: '%{name} הסיר/ה חסימה מדומיין הדוא"ל %{target}'
destroy_instance_html: "%{name} טיהר/ה את הדומיין %{target}"
destroy_ip_block_html: "%{name} מחק/ה את הכלל עבור IP %{target}"
- destroy_status_html: "%{name} הסיר/ה חצרוץ מאת %{target}"
+ destroy_status_html: "%{name} הסיר/ה פוסט מאת %{target}"
destroy_unavailable_domain_html: "%{name} התחיל/ה מחדש משלוח לדומיין %{target}"
+ destroy_user_role_html: "%{name} ביטל את התפקיד של %{target}"
disable_2fa_user_html: "%{name} ביטל/ה את הדרישה לאימות דו-גורמי למשתמש %{target}"
disable_custom_emoji_html: "%{name} השבית/ה את האמוג'י %{target}"
disable_sign_in_token_auth_user_html: '%{name} השבית/ה את האימות בעזרת אסימון דוא"ל עבור %{target}'
@@ -328,7 +265,7 @@ he:
reject_user_html: "%{name} דחו הרשמה מ-%{target}"
remove_avatar_user_html: "%{name} הסירו את תמונת הפרופיל של %{target}"
reopen_report_html: '%{name} פתח מחדש דו"ח %{target}'
- reset_password_user_html: "%{name} איפס/ה סיסמא עבור המשתמש %{target}"
+ reset_password_user_html: הסיסמה עבור המשתמש %{target} התאפסה על־ידי %{name}
resolve_report_html: '%{name} פתר/ה דו"ח %{target}'
sensitive_account_html: "%{name} סימן/ה את המדיה של %{target} כרגיש"
silence_account_html: "%{name} הגביל/ה את חשבונו של %{target}"
@@ -341,8 +278,8 @@ he:
update_announcement_html: "%{name} עדכן/ה הכרזה %{target}"
update_custom_emoji_html: "%{name} עדכן/ה אמוג'י %{target}"
update_domain_block_html: "%{name} עדכן/ה חסימת דומיין עבור %{target}"
- update_status_html: "%{name} עדכן/ה חצרוץ של %{target}"
- deleted_status: "(חצרוץ נמחק)"
+ update_status_html: "%{name} עדכן/ה פוסט של %{target}"
+ update_user_role_html: "%{name} שינה את התפקיד של %{target}"
empty: לא נמצאו יומנים.
filter_by_action: סינון לפי פעולה
filter_by_user: סינון לפי משתמש
@@ -446,6 +383,7 @@ he:
destroyed_msg: חסימת שרת בוטלה
domain: שרת
edit: עריכת חסימת שם מתחם
+ existing_domain_block: כבר החלת הגבלות מחמירות יותר על %{name}
existing_domain_block_html: כבר הפעלת הגבלות חמורות יותר על %{name}, עליך ראשית להסיר מעליו/ה את החסימה .
new:
create: יצירת חסימה
@@ -676,6 +614,71 @@ he:
unresolved: לא פתור
updated_at: עודכן
view_profile: צפה בפרופיל
+ roles:
+ add_new: הוספת תפקיד
+ assigned_users:
+ many: "%{count} משתמשים"
+ one: 'משתמש %{count} '
+ other: "%{count} משתמשים"
+ two: "%{count} שני משתמשים"
+ categories:
+ administration: ניהול מערכת
+ devops: פיתוח
+ invites: הזמנות
+ moderation: פיקוח
+ special: מיוחדים
+ delete: מחיקה
+ description_html: באמצעות תפקידי משתמש , תוכלו להתאים אישית לאילו פונקציות ואזורים של מסטודון המשתמשים יוכלו לגשת
+ edit: עריכת התפקיד של %{name}
+ everyone: הרשאות ברירת מחדל
+ everyone_full_description_html: זהו התפקיד הבסיסי שמשפיע על כלל המשתשמשים , אפילו אלו ללא תפקיד. כל התפקידים האחרים יורשים את ההרשאות שלהם ממנו.
+ permissions_count:
+ many: "%{count} הרשאות"
+ one: הרשאה %{count}
+ other: "%{count} הרשאות"
+ two: "%{count} הרשאות"
+ privileges:
+ administrator: מנהל מערכת
+ administrator_description: משתמשים עם הרשאה זו יוכלו לעקוף כל הרשאה
+ delete_user_data: מחיקת כל נתוני המשתמש
+ delete_user_data_description: מאפשר למשתמשים למחוק נתוני משתמשים אחרים ללא דיחוי
+ invite_users: הזמנת משתמשים
+ invite_users_description: מאפשר למשתמשים להזמין אנשים חדשים לשרת
+ manage_announcements: ניהול הכרזות
+ manage_announcements_description: מאפשר למשתמשים לנהל הכרזות של השרת
+ manage_appeals: ניהול ערעורים
+ manage_appeals_description: מאפשר למשתמשים לסקור ערעורים כנגד פעולות מודרציה
+ manage_blocks: ניהול חסימות
+ manage_blocks_description: מאפשר למשתמשים לחסום ספקי דוא"ל וכתובות IP
+ manage_custom_emojis: ניהול סמלונים בהתאמה אישית
+ manage_custom_emojis_description: מאפשר למשתמשים לנהל סמלונים בהתאמה אישית של השרת
+ manage_federation: ניהול פדרציה
+ manage_federation_description: מאפשר למשתמשים לחסום או לאפשר התממשקות עם שמות מתחם אחרים
+ manage_invites: ניהול הזמנות
+ manage_invites_description: מאפשר למשתמשים לעלעל ב ולבטל קישורי הזמנה
+ manage_reports: ניהול דו"חות
+ manage_reports_description: מאפשר למשתמשים לסקור דו"חות ולבצע פעולות מודרציה בהתבסס עליהם
+ manage_roles: ניהול תפקידים
+ manage_roles_description: מאפשר למשתמשים לנהל ולמנות אחרים לתפקידים נמוכים יותר משלהם.
+ manage_rules: ניהול כללים
+ manage_rules_description: מאפשר למשתמשים לנהל את כללי השרת
+ manage_settings: נהל הגדרות
+ manage_settings_description: מאפשר למשתמשים לנהל את הגדרות השרת
+ manage_taxonomies: ניהול טקסונומיות
+ manage_taxonomies_description: מאפשר למשתמשים לסקור תוכן אופנתי (טרנדי) ולעדכן אפשרויות של תגיות.
+ manage_user_access: ניהול גישת משתמשים
+ manage_user_access_description: מאפשר למשתמשים לבטל אימות דו-שלבי של משתמשים אחרים, לשנות את כתובות הדוא"ל שלהם, ולאפס את סיסמתם
+ manage_users: ניהול משתמשים
+ manage_users_description: מאפשר למשתמשים לצפות בפרטים של משתמשים אחרים ולבצע פעולות מודרציה לפיהם
+ manage_webhooks: ניהול Webhooks
+ manage_webhooks_description: מאפשר למשתמשים להגדיר Webhooks לאירועים מנהלתיים
+ view_audit_log: צפייה בלוג ביקורת
+ view_audit_log_description: מאפשר למשתשמשים לצפות בהיסטוריה של פעולות מנהלתיות על השרת
+ view_dashboard: הצג לוח מחוונים
+ view_dashboard_description: אפשר למשתמשים לגשת ללוח המחוונים
+ view_devops: פיתוח
+ view_devops_description: מאפשר למשתמשים לגשת ללוחות המחוונים של Sidekiq ושל pgHero
+ title: תפקידים
rules:
add_new: הוספת כלל
delete: מחיקה
@@ -684,94 +687,15 @@ he:
empty: שום כללי שרת לא הוגדרו עדיין.
title: כללי שרת
settings:
- activity_api_enabled:
- desc_html: מספר החצרוצים שפורסמו מקומית, משתמשים פעילים, והרשמות חדשות בדליים שבועיים
- title: פרסום סטטיסטיקות מקובצות עבור פעילות משתמשים בממשק
- bootstrap_timeline_accounts:
- desc_html: הפרדת משתמשים מרובים בפסיק. למשתמשים אלה מובטח שהם יכללו בהמלצות המעקב
- title: המלצה על חשבונות אלה למשתמשים חדשים
- contact_information:
- email: נא להקליד כתובת דוא"ל פומבית
- username: נא להכניס שם משתמש
- custom_css:
- desc_html: שינוי המראה בעזרת CSS הנטען בכל דף
- title: CSS יחודי
- default_noindex:
- desc_html: משפיע על כל המשתמשים שלא שינו את ההגדרה בעצמם
- title: לא לכלול משתמשים במנוע החיפוש כברירת מחדל
domain_blocks:
all: לכולם
disabled: לאף אחד
- title: צפיה בחסימת דומיינים
users: למשתמשים מקומיים מחוברים
- domain_blocks_rationale:
- title: הצגת רציונל
- hero:
- desc_html: מוצגת בדף הראשי. מומלץ לפחות 600x100px. אם לא נבחר, מוצגת במקום תמונה מוקטנת מהשרת
- title: תמונת גיבור
- mascot:
- desc_html: מוצגת בכל מיני דפים. מומלץ לפחות 293×205px. אם לא נבחר, מוצג במקום קמע ברירת המחדל
- title: תמונת קמע
- peers_api_enabled:
- desc_html: שמות דומיינים ששרת זה נתקל בהם ברחבי הפדרציה
- title: פרסם רשימה של שרתים שנתגלו דרך הממשק
- preview_sensitive_media:
- desc_html: תצוגה מקדימה של קישוריות לאתרים אחרים יוצגו כתמונה מוקטנת אפילו אם המדיה מסומנת כרגישה
- title: הצגת מדיה רגישה בתצוגה מקדימה של OpenGraph
- profile_directory:
- desc_html: הרשאה למשתמשים להתגלות
- title: הרשאה לספריית פרופילים
- registrations:
- closed_message:
- desc_html: מוצג על הדף הראשי כאשר ההרשמות סגורות. ניתן להשתמש בתגיות HTML
- title: מסר סגירת הרשמות
- deletion:
- desc_html: הרשאה לכולם למחוק את חשבונם
- title: פתיחת מחיקת חשבון
- min_invite_role:
- disabled: אף אחד
- title: אפשר הזמנות לפי
- require_invite_text:
- desc_html: כאשר הרשמות דורשות אישור ידני, הפיכת טקסט ה"מדוע את/ה רוצה להצטרף" להכרחי במקום אופציונלי
- title: אלץ משתמשים חדשים למלא סיבת הצטרפות
registrations_mode:
modes:
approved: נדרש אישור הרשמה
none: אף אחד לא יכול להרשם
open: כל אחד יכול להרשם
- title: מצב הרשמות
- show_known_fediverse_at_about_page:
- desc_html: כאשר לא מופעל, מגביל את הפיד הפומבי המקושר מדף הנחיתה להצגת תוכן מקומי בלבד
- title: הכללת תוכן פדרטיבי בדף הפיד הפומבי הבלתי מאומת
- show_staff_badge:
- desc_html: הצג תג צוות בדף המשתמש
- title: הצג תג צוות
- site_description:
- desc_html: מוצג כפסקה על הדף הראשי ומשמש כתגית מטא. ניתן להשתמש בתגיות HTML, ובמיוחד ב־ < a>
ו־ < em>
.
- title: תיאור האתר
- site_description_extended:
- desc_html: מקום טוב להצגת כללים, הנחיות, ודברים אחרים שמבדלים אותך ממופעים אחרים. ניתן להשתמש בתגיות HTML
- title: תיאור אתר מורחב
- site_short_description:
- desc_html: מוצג בעמודה הצידית ובמטא תגים. מתאר מהו מסטודון ומה מיחד שרת זה בפסקה בודדת.
- title: תאור שרת קצר
- site_terms:
- desc_html: ניתן לכתוב מדיניות פרטיות, תנאי שירות ושאר מסמכים חוקיים בעצמך. ניתן להשתמש בתגי HTML
- title: תנאי שירות יחודיים
- site_title: כותרת האתר
- thumbnail:
- desc_html: משמש לתצוגה מקדימה דרך OpenGraph והממשק. מומלץ 1200x630px
- title: תמונה ממוזערת מהשרת
- timeline_preview:
- desc_html: הצגת קישורית לפיד הפומבי מדף הנחיתה והרשאה לממשק לגשת לפיד הפומבי ללא אימות
- title: הרשאת גישה בלתי מאומתת לפיד הפומבי
- title: הגדרות אתר
- trendable_by_default:
- desc_html: משפיע על האשתגיות שלא נאסרו קודם לכן
- title: הרשאה להאשתגיות להופיע בנושאים החמים ללא אישור מוקדם
- trends:
- desc_html: הצגה פומבית של תוכן שנסקר בעבר ומופיע כרגע בנושאים החמים
- title: נושאים חמים
site_uploads:
delete: מחיקת קובץ שהועלה
destroyed_msg: העלאת אתר נמחקה בהצלחה!
@@ -841,10 +765,10 @@ he:
title: מפרסמים
rejected: דחוי
statuses:
- allow: הרשאת חצרוץ
+ allow: הרשאת פוסט
allow_account: הרשאת מחבר/ת
description_html: אלו הם חצרוצים שהשרת שלך מכיר וזוכים להדהודים וחיבובים רבים כרגע. זה עשוי למשתמשיך החדשים והחוזרים למצוא עוד נעקבים. החצרוצים לא מוצגים עד שיאושר המחבר/ת, והמחבר/ת יאשרו שחשבונים יומלץ לאחרים. ניתן לאשר או לדחות חצרוצים ספציפיים.
- disallow: לא לאשר חצרוץ
+ disallow: לדחות פוסט
disallow_account: לא לאשר מחבר/ת
not_discoverable: המחבר/ת לא בחר/ה לאפשר את גילויים
shared_by:
@@ -885,6 +809,27 @@ he:
edit_preset: ערוך/י טקסט מוכן מראש לאזהרה
empty: לא הגדרת עדיין שום טקסט מוכן מראש לאזהרה.
title: ניהול טקסטים מוכנים מראש לאזהרות
+ webhooks:
+ add_new: הוספת נקודת קצה
+ delete: מחיקה
+ disable: כיבוי
+ disabled: כבוי
+ edit: עריכת נקודת קצה
+ empty: לא הוגדו נקודות קצה להתליות רשת עדיין.
+ enable: אפשר
+ enabled: פעילים
+ enabled_events:
+ many: "%{count} אירועים אופשרו"
+ one: אירוע %{count} מאופשר
+ other: "%{count} אירועים אופשרו"
+ two: "%{count} אירועים אופשרו"
+ events: אירועים
+ new: Webhook חדש
+ rotate_secret: החלף מפתח
+ secret: מפתח הרשמה
+ status: סטטוס
+ title: התליות רשת
+ webhook: התליית רשת
admin_mailer:
new_appeal:
actions:
@@ -908,12 +853,8 @@ he:
new_trends:
body: 'הפריטים הבאים זקוקים לסקירה לפני שניתן יהיה להציגם פומבית:'
new_trending_links:
- no_approved_links: אין כרגע שום קישוריות חמות מאושרות.
- requirements: כל אחד מהמועמדים האלה עשוי לעבור את הקישורית החמה המאושרת מדרגה %{rank}, שהיא כרגע %{lowest_link_title} עם ציון של %{lowest_link_score}.
title: נושאים חמים
new_trending_statuses:
- no_approved_statuses: אין כרגע שום חצרוצים חמים מאושרים.
- requirements: כל אחד מהמועמדים האלה עשוי לעבור החצרוץ החם המאושר מדרגה %{rank}, שההא כרגע %{lowest_status_url} עם ציון של %{lowest_status_score}.
title: חצרוצים לוהטים
new_trending_tags:
no_approved_tags: אין כרגע שום האשתגיות חמות מאושרות.
@@ -938,27 +879,23 @@ he:
guide_link: https://crowdin.com/project/mastodon
guide_link_text: כולם יכולים לתרום.
sensitive_content: תוכן רגיש
- toot_layout: פריסת חצרוץ
+ toot_layout: פריסת פוסט
application_mailer:
notification_preferences: שינוי העדפות דוא"ל
salutation: "%{name},"
settings: 'שינוי הגדרות דוא"ל: %{link}'
view: 'תצוגה:'
view_profile: צפיה בפרופיל
- view_status: הצגת חצרוץ
+ view_status: הצגת פוסט
applications:
created: ישום נוצר בהצלחה
destroyed: ישום נמחק בהצלחה
- invalid_url: כתובת הקישורית אינה חוקית
regenerate_token: יצירת אסימון גישה מחדש
token_regenerated: אסימון גישה יוצר מחדש בהצלחה
warning: זהירות רבה נדרשת עם מידע זה. אין לחלוק אותו אף פעם עם אף אחד!
your_token: אסימון הגישה שלך
auth:
- apply_for_account: בקשת הזמנה
- change_password: סיסמא
- checkbox_agreement_html: אני מסכים/ה לכללי השרת ולתנאי השימוש
- checkbox_agreement_without_rules_html: אני מסכים/ה לתנאי השימוש
+ change_password: סיסמה
delete_account: מחיקת חשבון
delete_account_html: אם ברצונך למחוק את החשבון, ניתן להמשיך כאן . תתבקש/י לספק אישור נוסף.
description:
@@ -968,7 +905,7 @@ he:
didnt_get_confirmation: לא התקבלו הוראות אימות?
dont_have_your_security_key: אין לך מפתח אבטחה?
forgot_password: הנשתכחה סיסמתך?
- invalid_reset_password_token: אסימון איפוס הסיסמא לא תקין או פג תוקף. נא לבקש אחד חדש.
+ invalid_reset_password_token: טוקן איפוס הסיסמה אינו תקין או שפג תוקף. נא לבקש אחד חדש.
link_to_otp: נא להכניס את קוד האימות הדו-גורמי מהטלפון או את קוד האחזור
link_to_webauth: נא להשתמש במכשיר מפתח האבטחה
log_in_with: התחבר באמצעות
@@ -983,9 +920,9 @@ he:
register: הרשמה
registration_closed: "%{instance} לא מקבל חברים חדשים"
resend_confirmation: שלח הוראות אימות בשנית
- reset_password: איפוס סיסמא
- security: החלפת סיסמא
- set_new_password: שינוי סיסמא
+ reset_password: איפוס סיסמה
+ security: אבטחה
+ set_new_password: סיסמה חדשה
setup:
email_below_hint_html: אם כתובת הדוא"ל להלן לא נכונה, ניתן לשנותה כאן ולקבל דוא"ל אישור חדש.
email_settings_hint_html: דוא"ל האישור נשלח ל-%{email}. אם כתובת הדוא"ל הזו לא נכונה, ניתן לשנותה בהגדרות החשבון.
@@ -998,7 +935,6 @@ he:
redirecting_to: חשבונכם לא פעיל כעת מכיוון שמפנה ל%{acct}.
view_strikes: צפיה בעברות קודמות שנרשמו נגד חשבונך
too_fast: הטופס הוגש מהר מדי, נסה/י שוב.
- trouble_logging_in: בעיה להתחבר לאתר?
use_security_key: שימוש במפתח אבטחה
authorize_follow:
already_following: את/ה כבר עוקב/ת אחרי חשבון זה
@@ -1015,8 +951,8 @@ he:
challenge:
confirm: המשך
hint_html: "טיפ: לא נבקש את סיסמתך שוב בשעה הקרובה."
- invalid_password: סיסמא שגויה
- prompt: אשר/י סיסמא להמשך
+ invalid_password: סיסמה שגויה
+ prompt: יש לאשר את הסיסמה כדי להמשיך
crypto:
errors:
invalid_key: זהו לא מפתח Ed25519 או Curve25519 קביל
@@ -1041,7 +977,7 @@ he:
x_seconds: "%{count} שניות"
deletes:
challenge_not_passed: המידע שהכנסת לא היה נכון
- confirm_password: נא להכניס את הסיסמא הנוכחית כדי לוודא את זהותך
+ confirm_password: נא להכניס את הסיסמה הנוכחית כדי לאמת את זהותך
confirm_username: נא להכניס את שם המשתמש כדאי לאשר את הפעולה
proceed: מחיקת חשבון
success_msg: חשבונך נמחק בהצלחה
@@ -1056,10 +992,6 @@ he:
more_details_html: לפרטים נוספים, ראו את מדיניות הפרטיות .
username_available: שם המשתמש שלך שוב יהיה זמין
username_unavailable: שם המשתמש שלך יישאר בלתי זמין
- directories:
- directory: מדריך פרופילים
- explanation: גלו משתמשים בהתבסס על תחומי העניין שלהם
- explore_mastodon: חקור את %{title}
disputes:
strikes:
action_taken: הפעולה שבוצעה
@@ -1070,15 +1002,17 @@ he:
appealed_msg: הערעור שלך הוגש. במידה ויאושר, תיודע.
appeals:
submit: הגש ערעור
+ approve_appeal: קבלת ערעור
associated_report: הדו"ח המשויך
created_at: מתאריך
description_html: אלו הן הפעולות שננקטו כנגד חשבונך והאזהרות שנשלחו אליך על ידי צוות %{instance}.
recipient: הנמען
- status: 'חצרוץ #%{id}'
- status_removed: החצרוץ כבר הוסר מהמערכת
+ reject_appeal: דחיית ערעור
+ status: 'פוסט #%{id}'
+ status_removed: הפוסט כבר הוסר מהמערכת
title: "%{action} מתאריך %{date}"
title_actions:
- delete_statuses: הסרת חצרוץ
+ delete_statuses: הסרת פוסט
disable: הקפאת חשבון
mark_statuses_as_sensitive: סימון חצרוצים כרגישים
none: אזהרה
@@ -1136,26 +1070,43 @@ he:
public: פידים פומביים
thread: שיחות
edit:
+ add_keyword: הוספת מילת מפתח
+ keywords: מילות מפתח
+ statuses: פוסטים יחידים
title: ערוך מסנן
errors:
+ deprecated_api_multiple_keywords: לא ניתן לשנות פרמטרים אלו מהיישומון הזה בגלל שהם חלים על יותר ממילת מפתח אחת. ניתן להשתמש ביישומון מעודכן יותר או בממשק הוובי.
invalid_context: לא סופק הקשר או הקשר לא תקין
- invalid_irreversible: סינון בלתי הפיך עובד רק בהקשר פיד הבית או התראות
index:
+ contexts: פילטרים ב %{contexts}
delete: למחוק
empty: אין לך מסננים.
+ expires_in: פג תוקף ב %{distance}
+ expires_on: פג תוקף ב %{date}
+ keywords:
+ many: "%{count} מילות מפתח"
+ one: מילת מפתח %{count}
+ other: "%{count} מילות מפתח"
+ two: "%{count} מילות מפתח"
title: מסננים
new:
+ save: שמירת מסנן חדש
title: הוספת מסנן חדש
+ statuses:
+ back_to_filter: חזרה לפילטר
+ batch:
+ remove: הסרה מפילטר
+ index:
+ hint: פילטר זה חל באופן של בחירת פוסטים בודדים ללא תלות בקריטריונים אחרים. תוכלו להוסיף עוד פוסטים לפילטר זה ממשק הווב.
+ title: פוסטים שסוננו
footer:
- developers: מפתחות
- more: עוד…
- resources: משאבים
trending_now: נושאים חמים
generic:
all: הכל
changes_saved_msg: השינויים נשמרו בהצלחה!
copy: להעתיק
delete: למחוק
+ deselect: בטל בחירה של הכל
none: כלום
order_by: מיין לפי
save_changes: שמור שינויים
@@ -1184,7 +1135,6 @@ he:
following: רשימת נעקבים
muting: רשימת השתקות
upload: יבוא
- in_memoriam_html: לזכר.
invites:
delete: ביטול הפעלה
expired: פג תוקף
@@ -1215,7 +1165,7 @@ he:
login_activities:
authentication_methods:
otp: יישומון אימות דו-שלבי
- password: סיסמא
+ password: סיסמה
sign_in_token: קוד אימות בדוא"ל
webauthn: מפתחות אבטחה
description_html: אם את/ה רואה פעילות שאינך מזהה, אנא שנה/י את סיסמתך והפעל/י אימות דו-גורמי.
@@ -1225,7 +1175,7 @@ he:
title: הסטוריית אימותים
media_attachments:
validations:
- images_and_video: לא ניתן להוסיף וידאו לחצרוץ שכבר מכיל תמונות
+ images_and_video: לא ניתן להוסיף וידאו לפוסט שכבר מכיל תמונות
not_ready: לא ניתן להצמיד קבצים שהעלאתם לא הסתיימה. נסה/י שוב בעוד רגע!
too_many: לא ניתן להוסיף יותר מארבעה קבצים
migrations:
@@ -1267,23 +1217,10 @@ he:
copy_account_note_text: 'חשבון זה הועבר מ-%{acct}, הנה הערותיך הקודמות לגביהם:'
notification_mailer:
admin:
+ report:
+ subject: '%{name} שלח/ה דו"ח'
sign_up:
subject: "%{name} נרשמו"
- digest:
- action: הצגת כל ההתראות
- body: להלן סיכום זריז של הדברים שקרו על מאז ביקורך האחרון ב-%{since}
- mention: "%{name} פנה אליך ב:"
- new_followers_summary:
- many: חוץ מזה, נוספו לך %{count} עוקבים חדשים בזמן שלא היית! מדהים!
- one: חוץ מזה, נוסף לך עוקב חדש בזמן שלא היית! הידד!
- other: חוץ מזה, נוספו לך %{count} עוקבים חדשים בזמן שלא היית! מדהים!
- two: חוץ מזה, נוספו לך %{count} עוקבים חדשים בזמן שלא היית! מדהים!
- subject:
- many: "%{count} התראות חדשות מאז ביקורך האחרון 🐘"
- one: "התראה חדשה אחת מאז ביקורך האחרון 🐘"
- other: "%{count} התראות חדשות מאז ביקורך האחרון 🐘"
- two: "%{count} התראות חדשות מאז ביקורך האחרון 🐘"
- title: בהעדרך...
favourite:
body: 'חצרוצך חובב על ידי %{name}:'
subject: חצרוצך חובב על ידי %{name}
@@ -1353,7 +1290,7 @@ he:
too_many_options: לא יכול להכיל יותר מ-%{max} פריטים
preferences:
other: שונות
- posting_defaults: ברירות מחדל לחצרוץ
+ posting_defaults: ברירות מחדל לפוסטים
public_timelines: פידים פומביים
reactions:
errors:
@@ -1377,22 +1314,7 @@ he:
remove_selected_follows: בטל מעקב אחר המשתמשים שסומנו
status: מצב חשבון
remote_follow:
- acct: נא להקליד שם_משתמש@קהילה מהם ברצונך לעקוב
missing_resource: לא ניתן למצוא קישורית להפניה לחשבונך
- no_account_html: אין לך חשבון? ניתן להרשם כאן
- proceed: להמשיך ולעקוב
- prompt: 'לעקוב אחרי:'
- reason_html: "למה שלב זה הכרחי? %{instance}
עשוי לא להיות השרת בו את/ה רשום/ה, כך שנצטרך קודם כל להעביר אותך לשרת הבית."
- remote_interaction:
- favourite:
- proceed: המשך לחיבוב
- prompt: 'ברצונך לחבב חצרוץ זה:'
- reblog:
- proceed: המשיכו להדהוד
- prompt: 'ברצונך להדהד חצרוץ זה:'
- reply:
- proceed: המשיבו לתגובה
- prompt: 'ברצונך להשיב לחצרוץ זה:'
reports:
errors:
invalid_rules: לא מתייחס לכללים קבילים
@@ -1498,7 +1420,7 @@ he:
two: 'מכיל את ההאשתגיות האסורות: %{tags}'
edited_at_html: נערך ב-%{date}
errors:
- in_reply_not_found: נראה שהחצרוץ שאת/ה מנסה להגיב לו לא קיים.
+ in_reply_not_found: נראה שהפוסט שאת/ה מנסה להגיב לו לא קיים.
open_in_web: פתח ברשת
over_character_limit: חריגה מגבול התווים של %{max}
pin_errors:
@@ -1568,7 +1490,7 @@ he:
min_reblogs: שמור חצרוצים מהודהדים לפחות
min_reblogs_hint: לא מוחק מי מחצרוציך שקיבלו לפחות את המספר הזה של הדהודים. להשאיר ריק כדי למחוק חצרוצים ללא קשר למספר ההדהודים שקיבלו
stream_entries:
- pinned: חצרוץ מוצמד
+ pinned: פוסט נעוץ
reblogged: הודהד
sensitive_content: תוכן רגיש
strikes:
@@ -1576,8 +1498,6 @@ he:
too_late: מאוחר מדי להגיש ערעור
tags:
does_not_match_previous_name: לא תואם את השם האחרון
- terms:
- title: תנאי שימוש ומדיניות פרטיות ב-%{instance}
themes:
contrast: מסטודון (ניגודיות גבוהה)
default: מסטודון (כהה)
@@ -1656,20 +1576,11 @@ he:
suspend: חשבון מושעה
welcome:
edit_profile_action: הגדרת פרופיל
- edit_profile_step: תוכל.י להתאים אישית את הפרויל באמצעות העלאת יצגן (אוואטר), כותרת, שינוי כינוי ועוד. אם תרצה.י לסקור את עוקביך/ייך החדשים לפני שתרשה.י להם לעקוב אחריך/ייך, תוכל.י לנעול את החשבון לשם כך.
explanation: הנה כמה טיפים לעזור לך להתחיל
final_action: התחל/ילי לחצרץ
- final_step: 'התחל/ילי לחצרץ ! אפילו ללא עוקבים ייתכן שהחצרוצים הפומביים של יצפו ע"י אחרים, למשל בציר הזמן המקומי או בתגי הקבצה (האשטגים). כדאי להציג את עצמך תחת התג #introductions או #היוש'
full_handle: שם המשתמש המלא שלך
full_handle_hint: זה מה שתאמר.י לחברייך כדי שיוכלו לשלוח לך הודעה או לעקוב אחרייך ממופע אחר.
- review_preferences_action: שנה הגדרות
- review_preferences_step: וודא לקבוע את העדפותייך, למשל איזה הודעות דוא"ל תרצה/י לקבל, או איזו רמת פרטיות תרצה כברירת מחדל לחצרוצים שלך. אם אין לך בעיה עם זה, תוכל לאפשר הפעלה אוטומטית של הנפשות GIF
subject: ברוכים הבאים למסטודון
- tip_federated_timeline: ציר הזמן הפדרטיבי הוא מבט לכל הפדיברס, אך הוא כולל רק אנשים שחבריך למופע הספציפי שהתחברת אליו נרשמו אליו, כך שהוא לא שלם.
- tip_following: את.ה כבר עוקב.ת אחר האדמין (מנהל השרת) כברירת מחדל. על מנת למצוא עוד אנשים מעניינים, בדוק את צירי הזמן המקומי והפדרטיבי.
- tip_local_timeline: ציר הזמן המקומי מספק מבט לאנשים במופע זה (%{instance}). אלו הם שכנייך המידיים !
- tip_mobile_webapp: אם דפדפן הנייד שלך מאפשר את הוספת מסטודון למסך הבית שלך, תוכל לקבל התראות בדחיפה (push). במובנים רבים אפשרות זאת מתנהגת כמו ישומון !
- tips: טיפים
title: ברוך/ה הבא/ה, %{name} !
users:
follow_limit_reached: לא תוכל לעקוב אחר יותר מ %{limit} אנשים
diff --git a/config/locales/hi.yml b/config/locales/hi.yml
index d0b1082fcd..7678edc385 100644
--- a/config/locales/hi.yml
+++ b/config/locales/hi.yml
@@ -1,17 +1,5 @@
---
hi:
- about:
- about_this: विवरण
- active_count_after: सक्रिय
- contact: संपर्क
- learn_more: अधिक जानें
- privacy_policy: गोपनीयता नीति
- status_count_after:
- one: स्थिति
- other: स्थितियां
- unavailable_content_description:
- domain: सर्वर
- reason: कारण
errors:
'400': The request you submitted was invalid or malformed.
'403': You don't have permission to view this page.
diff --git a/config/locales/hr.yml b/config/locales/hr.yml
index dd3b99dccb..7a9ee2dc39 100644
--- a/config/locales/hr.yml
+++ b/config/locales/hr.yml
@@ -1,39 +1,14 @@
---
hr:
about:
- about_hashtag_html: Ovo su javni tootovi označeni s #%{hashtag} . Možete biti u interakciji s njima, ako imate račun bilo gdje u fediverzumu.
about_mastodon_html: 'Društvena mreža budućnosti: bez oglasa, bez korporativnog nadzora, etički dizajn i decentralizacija! Budite u vlasništvu svojih podataka pomoću Mastodona!'
- about_this: Dodatne informacije
- active_count_after: aktivnih
- active_footnote: Mjesečno aktivnih korisnika (MAU)
- apps: Mobilne aplikacije
- apps_platforms: Koristite Mastodon na iOS-u, Androidu i drugim platformama
- contact: Kontakt
contact_missing: Nije postavljeno
- discover_users: Otkrijte korisnike
- documentation: Dokumentacija
- get_apps: Isprobajte mobilnu aplikaciju
- learn_more: Saznajte više
- privacy_policy: Politika privatnosti
- server_stats: 'Statistika poslužitelja:'
- source_code: Izvorni kôd
- status_count_before: Koji su objavili
- terms: Uvjeti pružanja usluga
- unavailable_content: Moderirani poslužitelji
accounts:
follow: Prati
following: Praćenih
last_active: posljednja aktivnost
- media: Medijski sadržaj
nothing_here: Ovdje nema ničeg!
- people_followed_by: Ljudi koje %{name} prati
- people_who_follow: Ljudi koji prate %{name}
posts_tab_heading: Tootovi
- posts_with_replies: Tootovi i odgovori
- roles:
- group: Grupa
- unavailable: Profil nije dostupan
- unfollow: Prestani pratiti
admin:
account_actions:
action: Izvrši radnju
@@ -44,7 +19,6 @@ hr:
are_you_sure: Jeste li sigurni?
by_domain: Domena
change_email:
- changed_msg: E-pošta računa uspješno je promijenjena!
current_email: Trenutna e-pošta
label: Promijeni e-poštu
new_email: Nova e-pošta
@@ -72,15 +46,12 @@ hr:
moderation:
all: Sve
action_logs:
- deleted_status: "(izbrisani status)"
empty: Nema pronađenih izvješća.
filter_by_action: Filtriraj prema radnji
filter_by_user: Filtriraj prema korisniku
application_mailer:
settings: 'Promijeni postavke e-pošte: %{link}'
view: 'Vidi:'
- applications:
- invalid_url: Unesena poveznica nije valjana
auth:
didnt_get_confirmation: Niste primili upute za potvrđivanje?
forgot_password: Zaboravljena lozinka?
@@ -131,9 +102,6 @@ hr:
new:
title: Dodaj novi filter
footer:
- developers: Razvijatelji
- more: Više…
- resources: Resursi
trending_now: Popularno
generic:
all: Sve
@@ -165,9 +133,6 @@ hr:
one: 1 korištenje
other: "%{count} korištenja"
notification_mailer:
- digest:
- body: Ovo je kratak sažetak propuštenih poruka od Vašeg prošlog posjeta %{since}
- mention: "%{name} Vas je spomenuo/la:"
favourite:
body: "%{name} je označio/la Vaš status favoritom:"
subject: "%{name} je označio/la Vaš status favoritom"
@@ -202,10 +167,7 @@ hr:
errors:
already_voted: Već ste glasali u ovoj anketi
remote_follow:
- acct: Unesite Vaše KorisničkoIme@domena s kojim želite izvršiti radnju
missing_resource: Nije moguće pronaći traženi URL preusmjeravanja za Vaš račun
- proceed: Dalje
- prompt: 'Pratit ćete:'
sessions:
platforms:
other: nepoznata platforma
@@ -262,9 +224,7 @@ hr:
suspend: Račun je suspendiran
welcome:
edit_profile_action: Postavi profil
- review_preferences_action: Promijeni postavke
subject: Dobro došli na Mastodon
- tips: Savjeti
users:
invalid_otp_token: Nevažeći dvo-faktorski kôd
signed_in_as: 'Prijavljeni kao:'
diff --git a/config/locales/hu.yml b/config/locales/hu.yml
index faee9de06f..890eb6956e 100644
--- a/config/locales/hu.yml
+++ b/config/locales/hu.yml
@@ -1,96 +1,27 @@
---
hu:
about:
- about_hashtag_html: Ezek a #%{hashtag} hashtaggel ellátott nyilvános bejegyzések. Reagálhatsz rájuk, ha már van felhasználói fiókod valahol a föderációban.
about_mastodon_html: 'A jövő közösségi hálózata: Hirdetések és céges megfigyelés nélkül, etikus dizájnnal és decentralizációval! Legyél a saját adataid ura a Mastodonnal!'
- about_this: Névjegy
- active_count_after: aktív
- active_footnote: Havonta aktív felhasználók
- administered_by: 'Adminisztrátor:'
- api: API
- apps: Mobil appok
- apps_platforms: Használd a Mastodont iOS-ről, Androidról vagy más platformról
- browse_directory: Böngészd a profilokat és szűrj érdeklődési körre
- browse_local_posts: Nézz bele a szerver élő, nyilvános bejegyzéseibe
- browse_public_posts: Nézz bele a Mastodon élő, nyilvános bejegyzéseibe
- contact: Kapcsolat
contact_missing: Nincs megadva
contact_unavailable: N/A
- continue_to_web: Tovább a webes alkalmazáshoz
- discover_users: Találj meg másokat
- documentation: Dokumentáció
- federation_hint_html: Egy %{instance} fiókkal bármely más Mastodon szerveren vagy a föderációban lévő felhasználót követni tudsz.
- get_apps: Próbálj ki egy mobil appot
hosted_on: "%{domain} Mastodon szerver"
- instance_actor_flash: |
- Ez a fiók virtuális, magát a szervert reprezentálja, nem pedig konkrét
- felhasználót. Föderációs célokra szolgál, nem szabad tehát felfüggeszteni, hacsak nem akarod a teljes szervert kitiltani, mely esetben a domain tiltásának használata javasolt.
- learn_more: Tudj meg többet
- logged_in_as_html: Belépve, mint %{username}.
- logout_before_registering: Már be vagy jelentkezve.
- privacy_policy: Adatvédelmi szabályzat
- rules: Szerverünk szabályai
- rules_html: 'Alább látod azon követendő szabályok összefoglalóját, melyet be kell tartanod, ha szeretnél fiókot ezen a szerveren:'
- see_whats_happening: Nézd, mi történik
- server_stats: 'Szerver statisztika:'
- source_code: Forráskód
- status_count_after:
- one: bejegyzést írt
- other: bejegyzést írt
- status_count_before: Eddig
- tagline: Kövess barátokat és találj újakat
- terms: Felhasználási feltételek
- unavailable_content: Kimoderált szerverek
- unavailable_content_description:
- domain: Szerver
- reason: 'Indok:'
- rejecting_media: A szerverről származó médiafájlok nem kerülnek feldolgozásra, és nem jelennek meg miniatűrök, amelyek kézi átkattintást igényelnek a másik szerverre.
- rejecting_media_title: Kiszűrt média
- silenced: 'Az ezen szerverekről származó bejegyzéseket elrejtjük a nyilvános idővonalakról és beszélgetésekből, a rajtuk lévő felhasználók műveleteiről nem küldünk értesítéseket, hacsak nem követed őket:'
- silenced_title: Elnémított szerverek
- suspended: Nem fogsz tudni követni senkit ebből a szerverből, és nem kerül feldolgozásra vagy tárolásra a tőle származó adat, és nincs adatcsere.
- suspended_title: Felfüggesztett szerverek
- unavailable_content_html: A Mastodon általában mindenféle tartalomcserét és interakciót lehetővé tesz bármelyik szerverrel a fediverzumban. Ezek azok a kivételek, melyek a mi szerverünkön érvényben vannak.
- user_count_after:
- one: felhasználónk
- other: felhasználónk
- user_count_before: Összesen
- what_is_mastodon: Mi a Mastodon?
+ title: Névjegy
accounts:
- choices_html: "%{name} választásai:"
- endorsements_hint: A webes felületen promózhatsz általad követett embereket, akik itt fognak megjelenni.
- featured_tags_hint: Szerepeltethetsz bizonyos hashtageket, melyek itt jelennek majd meg.
follow: Követés
followers:
one: Követő
other: Követő
following: Követett
- instance_actor_flash: |-
- Ez a fiók virtuális, magát a szervert reprezentálja, nem pedig konkrét
- felhasználót. Föderációs célokra szolgál, nem szabad tehát felfüggeszteni.
- joined: Csatlakozott %{date}
+ instance_actor_flash: Ez a fiók virtuális, magát a kiszolgálót reprezentálja, nem pedig konkrét felhasználót. Föderációs célokra szolgál, nem szabad tehát felfüggeszteni.
last_active: utoljára aktív
link_verified_on: 'A hivatkozás tulajdonosa ekkor volt ellenőrizve: %{date}'
- media: Média
- moved_html: "%{name} ide költözött: %{new_profile_link}"
- network_hidden: Ez az információ nem elérhető
nothing_here: Nincs itt semmi!
- people_followed_by: "%{name} követettjei"
- people_who_follow: "%{name} követői"
pin_errors:
following: Ehhez szükséges, hogy kövesd már a felhasználót
posts:
one: Bejegyzés
other: Bejegyzés
posts_tab_heading: Bejegyzés
- posts_with_replies: Bejegyzés válaszokkal
- roles:
- admin: Adminisztrátor
- bot: Bot
- group: Csoport
- moderator: Moderátor
- unavailable: Nincs ilyen profil
- unfollow: Követés vége
admin:
account_actions:
action: Művelet végrehajtása
@@ -107,12 +38,17 @@ hu:
avatar: Profilkép
by_domain: Domain
change_email:
- changed_msg: A fiókhoz tartozó e-mailt megváltoztattuk!
+ changed_msg: Az emailt sikeresen megváltoztattuk!
current_email: Jelenlegi e-mail
label: E-mail megváltoztatása
new_email: Új e-mail
submit: E-mail megváltoztatása
title: "%{username} felhasználó e-mail változás"
+ change_role:
+ changed_msg: A szerepet sikeresen megváltoztattuk!
+ label: Szerep megváltoztatása
+ no_role: Nincs szerep
+ title: "%{username} szerepének megváltoztatása"
confirm: Megerősítés
confirmed: Megerősítve
confirming: Megerősítés alatt
@@ -156,6 +92,7 @@ hu:
active: Aktív
all: Összes
pending: Függőben
+ silenced: Korlátozott
suspended: Felfüggesztve
title: Moderáció
moderation_notes: Moderációs bejegyzés
@@ -163,6 +100,7 @@ hu:
most_recent_ip: Legutóbbi IP-cím
no_account_selected: Nem változott meg egy fiók sem, mert semmi sem volt kiválasztva
no_limits_imposed: Nincs korlátozás
+ no_role_assigned: Nincs szerep hozzárendelve
not_subscribed: Nincs feliratkozás
pending: Engedélyezés alatt
perform_full_suspension: Felfüggesztés
@@ -189,12 +127,7 @@ hu:
reset: Visszaállítás
reset_password: Jelszó visszaállítása
resubscribe: Feliratkozás ismét
- role: Engedélyek
- roles:
- admin: Adminisztrátor
- moderator: Moderátor
- staff: Stáb
- user: Felhasználó
+ role: Szerep
search: Keresés
search_same_email_domain: Felhasználók ugyanezzel az email domainnel
search_same_ip: Más felhasználók ugyanezzel az IP-vel
@@ -237,17 +170,21 @@ hu:
approve_user: Felhasználó Jóváhagyása
assigned_to_self_report: Jelentés hozzárendelése
change_email_user: Felhasználó e-mail címének módosítása
+ change_role_user: Felhasználó szerepkörének módosítása
confirm_user: Felhasználó megerősítése
create_account_warning: Figyelmeztetés létrehozása
create_announcement: Közlemény létrehozása
+ create_canonical_email_block: E-mail tiltás létrehozása
create_custom_emoji: Egyéni emodzsi létrehozása
create_domain_allow: Domain engedélyezés létrehozása
create_domain_block: Domain tiltás létrehozása
create_email_domain_block: E-mail domain tiltás létrehozása
create_ip_block: IP szabály létrehozása
create_unavailable_domain: Elérhetetlen domain létrehozása
+ create_user_role: Szerepkör létrehozása
demote_user: Felhasználó lefokozása
destroy_announcement: Közlemény törlése
+ destroy_canonical_email_block: E-mail tiltás törlése
destroy_custom_emoji: Egyéni emodzsi törlése
destroy_domain_allow: Domain engedélyezés törlése
destroy_domain_block: Domain tiltás törlése
@@ -256,6 +193,7 @@ hu:
destroy_ip_block: IP szabály törlése
destroy_status: Bejegyzés törlése
destroy_unavailable_domain: Elérhetetlen domain törlése
+ destroy_user_role: Szerepkör eltávolítása
disable_2fa_user: Kétlépcsős hitelesítés letiltása
disable_custom_emoji: Egyéni emodzsi letiltása
disable_sign_in_token_auth_user: A felhasználó tokenes e-mail hitelesítésének letiltása
@@ -282,31 +220,38 @@ hu:
update_announcement: Közlemény frissítése
update_custom_emoji: Egyéni emodzsi frissítése
update_domain_block: Domain tiltás frissítése
+ update_ip_block: IP-szabály frissítése
update_status: Bejegyzés frissítése
+ update_user_role: Szerepkör frissítése
actions:
approve_appeal_html: "%{name} jóváhagyott egy fellebbezést %{target} moderátori döntéséről"
approve_user_html: "%{name} jóváhagyta %{target} regisztrációját"
assigned_to_self_report_html: "%{name} a %{target} bejelentést magához rendelte"
change_email_user_html: "%{name} megváltoztatta %{target} felhasználó e-mail címét"
+ change_role_user_html: "%{name} módosította %{target} szerepkörét"
confirm_user_html: "%{name} megerősítette %{target} e-mail-címét"
create_account_warning_html: "%{name} figyelmeztetést küldött %{target} számára"
create_announcement_html: "%{name} új közleményt hozott létre: %{target}"
+ create_canonical_email_block_html: "%{name} letiltotta a(z) %{target} hashű e-mailt"
create_custom_emoji_html: "%{name} új emodzsit töltött fel: %{target}"
create_domain_allow_html: "%{name} engedélyezte a föderációt %{target} domainnel"
create_domain_block_html: "%{name} letiltotta a %{target} domaint"
create_email_domain_block_html: "%{name} letiltotta a %{target} e-mail domaint"
- create_ip_block_html: "%{name} létrehozott egy szabályt a %{target} IP-vel kapcsolatban"
+ create_ip_block_html: "%{name} létrehozta a(z) %{target} IP-címre vonatkozó szabályt"
create_unavailable_domain_html: "%{name} leállította a kézbesítést a %{target} domainbe"
+ create_user_role_html: "%{name} létrehozta a(z) %{target} szerepkört"
demote_user_html: "%{name} lefokozta %{target} felhasználót"
destroy_announcement_html: "%{name} törölte a %{target} közleményt"
- destroy_custom_emoji_html: "%{name} törölte az emodzsit: %{target}"
+ destroy_canonical_email_block_html: "%{name} engedélyezte a(z) %{target} hashű e-mailt"
+ destroy_custom_emoji_html: "%{name} törölte a(z) %{target} emodzsit"
destroy_domain_allow_html: "%{name} letiltotta a föderációt a %{target} domainnel"
destroy_domain_block_html: "%{name} engedélyezte a %{target} domaint"
destroy_email_domain_block_html: "%{name} engedélyezte a %{target} e-mail domaint"
destroy_instance_html: "%{name} véglegesen törölte a(z) %{target} domaint"
- destroy_ip_block_html: "%{name} törölt egy szabályt a %{target} IP-vel kapcsolatban"
+ destroy_ip_block_html: "%{name} törölte a(z) %{target} IP-címre vonatkozó szabályt"
destroy_status_html: "%{name} eltávolította %{target} felhasználó bejegyzését"
destroy_unavailable_domain_html: "%{name} újraindította a kézbesítést a %{target} domainbe"
+ destroy_user_role_html: "%{name} törölte a(z) %{target} szerepkört"
disable_2fa_user_html: "%{name} kikapcsolta a kétlépcsős azonosítást %{target} felhasználó fiókján"
disable_custom_emoji_html: "%{name} letiltotta az emodzsit: %{target}"
disable_sign_in_token_auth_user_html: "%{name} letiltotta a tokenes e-mail hitelesítést %{target} felhasználóra"
@@ -333,8 +278,9 @@ hu:
update_announcement_html: "%{name} frissítette a %{target} közleményt"
update_custom_emoji_html: "%{name} frissítette az emodzsit: %{target}"
update_domain_block_html: "%{name} frissítette a %{target} domain tiltását"
+ update_ip_block_html: "%{name} módosította a(z) %{target} IP-címre vonatkozó szabályt"
update_status_html: "%{name} frissítette %{target} felhasználó bejegyzését"
- deleted_status: "(törölt bejegyzés)"
+ update_user_role_html: "%{name} módosította a(z) %{target} szerepkört"
empty: Nem található napló.
filter_by_action: Szűrés művelet alapján
filter_by_user: Szűrés felhasználó alapján
@@ -378,6 +324,7 @@ hu:
listed: Felsorolva
new:
title: Új egyéni emodzsi hozzáadása
+ no_emoji_selected: Nem változott meg egy emodzsi sem, mert semmi sem volt kiválasztva
not_permitted: Nem vagy jogosult a művelet végrehajtására
overwrite: Felülírás
shortcode: Rövidítés
@@ -413,7 +360,7 @@ hu:
space: Tárhely használat
title: Műszerfal
top_languages: Legaktívabb nyelvek
- top_servers: Legaktívabb szerverek
+ top_servers: Legaktívabb kiszolgálók
website: Weboldal
disputes:
appeals:
@@ -468,7 +415,7 @@ hu:
create: Domain hozzáadása
resolve: Domain feloldása
title: Új e-mail domain tiltása
- no_email_domain_block_selected: Nem változott meg egyetlen e-mail domain tiltás sem, mert nem volt egy sem kiválasztva
+ no_email_domain_block_selected: Nem változott meg egy domain tiltás sem, mert semmi sem volt kiválasztva
resolved_dns_records_hint_html: A domain név a következő MX domain-ekre oldódik fel, melyek valójában fogadják az e-mailt. Az MX domain letiltása minden olyan feliratkozást tiltani fog, melyben az e-mailcím ugyanazt az MX domaint használja, még akkor is, ha a látható domain név más. Légy óvatos, hogy ne tilts le nagy e-mail szolgáltatókat.
resolved_through_html: Feloldva %{domain}-n keresztül
title: Tiltott e-mail domainek
@@ -491,7 +438,7 @@ hu:
other: Sikertelen próbálkozás %{count} különböző napon.
no_failures_recorded: Nem rögzítettünk hibát.
title: Elérhetőség
- warning: Sikertelen volt az utolsó csatlakozási próbálkozás ehhez a szerverhez
+ warning: Az utolsó csatlakozási próbálkozás ehhez a kiszolgálóhoz sikertelen volt
back_to_all: Mind
back_to_limited: Korlátozott
back_to_warning: Figyelmeztetés
@@ -568,7 +515,7 @@ hu:
'94670856': 3 év
new:
title: Új IP szabály létrehozása
- no_ip_block_selected: Nem változtattunk egy IP szabályon sem, mivel egy sem volt kiválasztva
+ no_ip_block_selected: Nem változott meg egy IP-szabály sem, mert semmi sem volt kiválasztva
title: IP szabály
relationships:
title: "%{acct} kapcsolatai"
@@ -651,116 +598,133 @@ hu:
unresolved: Megoldatlan
updated_at: Frissítve
view_profile: Profil megtekintése
+ roles:
+ add_new: Szerep hozzáadása
+ assigned_users:
+ one: "%{count} felhasználó"
+ other: "%{count} felhasználó"
+ categories:
+ administration: Adminisztráció
+ devops: Devops
+ invites: Meghívások
+ moderation: Moderáció
+ special: Speciális
+ delete: Törlés
+ description_html: A felhasználói szerepekkel testreszabhatod, hogy a felhasználóid milyen Mastodon funkciókat és területeket érjenek el.
+ edit: "'%{name}' szerep szerkesztése"
+ everyone: Alapértelmezett engedélyek
+ everyone_full_description_html: Ez az alap szerep , mely minden felhasználóra kihat, azokra is, akiknek nincs hozzárendelt szerepük. Minden más szerep ebből örökli az engedélyeit.
+ permissions_count:
+ one: "%{count} engedély"
+ other: "%{count} engedély"
+ privileges:
+ administrator: Adminisztrátor
+ administrator_description: A felhasználók ezzel a szereppel minden jogosultsággal rendelkeznek
+ delete_user_data: Felhasználói adatok törlése
+ delete_user_data_description: Lehetővé teszi a felhasználónak, hogy azonnal törölhesse más felhasználó adatait
+ invite_users: Felhasználók meghívása
+ invite_users_description: Lehetővé teszi a felhasználónak, hogy új embereket hívjon meg a kiszolgálóra
+ manage_announcements: Hirdetmények kezelése
+ manage_announcements_description: Lehetővé teszi a felhasználónak, hogy a kiszolgáló hirdetményeit kezelje
+ manage_appeals: Fellebbezések kezelése
+ manage_appeals_description: Lehetővé teszi, hogy a felhasználó átnézze a moderációval kapcsolatos fellebbezéseket
+ manage_blocks: Letiltások kezelése
+ manage_blocks_description: Lehetővé teszi, hogy a felhasználó letiltson email szolgáltatókat és IP címeket
+ manage_custom_emojis: Egyedi emodzsik kezelése
+ manage_custom_emojis_description: Lehetővé teszi a felhasználó számára, hogy a kiszolgáló egyéni emodzsiait kezelje
+ manage_federation: Föderáció kezelése
+ manage_federation_description: Lehetővé teszi a felhasználó számára, hogy más domainnekkel való föderációt engedélyezzen vagy letiltson, illetve szabályozza a kézbesítést
+ manage_invites: Meghívások kezelése
+ manage_invites_description: Lehetővé teszi a felhasználó számára, hogy böngéssze és deaktiválja a meghívási hivatkozásokat
+ manage_reports: Bejelentések kezelése
+ manage_reports_description: Lehetővé teszi a felhasználó számára, hogy átnézze a bejelentéseket és moderáljon ezek alapján
+ manage_roles: Szerepek kezelése
+ manage_roles_description: Lehetővé teszi a felhasználó számára, hogy a sajátjánál alacsonyabb rangú szerepeket kezeljen és hozzárendeljen másokhoz
+ manage_rules: Szabályok kezelése
+ manage_rules_description: Lehetővé teszi a felhasználó számára, hogy megváltoztassa a kiszolgáló szabályait
+ manage_settings: Beállítások kezelése
+ manage_settings_description: Lehetővé teszi, hogy a felhasználó megváltoztassa az oldal beállításait
+ manage_taxonomies: Taxonómiák kezelése
+ manage_taxonomies_description: Lehetővé teszi, hogy a felhasználó átnézze a felkapott tartalmakat és frissítse a hashtagek beállításait
+ manage_user_access: Felhasználói hozzáférések kezelése
+ manage_user_access_description: Lehetővé teszi, hogy a felhasználó letiltsa mások kétlépcsős azonosítását, megváltoztassa az email címüket, és alaphelyzetbe állítsa a jelszavukat
+ manage_users: Felhasználók kezelése
+ manage_users_description: Lehetővé teszi, hogy a felhasználó megtekintse mások részletes adatait és moderálja őket
+ manage_webhooks: Webhookok kezelése
+ manage_webhooks_description: Lehetővé teszi, hogy a felhasználó webhookokat állítson be adminisztratív eseményekhez
+ view_audit_log: Audit napló megtekintése
+ view_audit_log_description: Lehetővé teszi, hogy a felhasználó megtekintse a kiszolgáló adminisztratív eseményeinek történetét
+ view_dashboard: Irányítópult megtekintése
+ view_dashboard_description: Lehetővé teszi, hogy a felhasználó elérje az irányítópultot és vele számos metrikát
+ view_devops: Devops
+ view_devops_description: Lehetővé teszi, hogy a felhasználó elérje a Sidekiq és pgHero irányítópultjait
+ title: Szerepek
rules:
add_new: Szabály hozzáadása
delete: Törlés
- description_html: Bár a többség azt állítja, hogy elolvasták és egyetértenek a felhasználói feltételekkel, általában ez nem teljesül, amíg egy probléma elő nem jön. Tedd könnyebbé a szervered szabályainak áttekintését azzal, hogy pontokba foglalod azt egy listába. Próbáld meg a különálló szabályokat megtartani rövidnek, egyszerűnek. Próbáld meg azt is, hogy nem darabolod fel őket sok különálló kis pontra.
+ description_html: Bár a többség azt állítja, hogy elolvasták és egyetértenek a felhasználói feltételekkel, általában ez nem teljesül, amíg egy probléma elő nem jön. Tedd könnyebbé a kiszolgálód szabályainak áttekintését azzal, hogy pontokba foglalod azt egy listában. Az egyes szabályok legyenek rövidek és egyszerűek. Próbáld meg nem túl sok önálló pontra darabolni őket.
edit: Szabály szerkesztése
- empty: Nincsenek még szerver szabályok definiálva.
- title: Szerverszabályzat
+ empty: Még nincsenek meghatározva a kiszolgáló szabályai.
+ title: Kiszolgáló szabályai
settings:
- activity_api_enabled:
- desc_html: Helyi bejegyzések, aktív felhasználók és új regisztrációk száma heti bontásban
- title: Felhasználói aktivitás összesített statisztikájának publikussá tétele
- bootstrap_timeline_accounts:
- desc_html: Az egyes felhasználóneveket vesszővel válaszd el! Csak helyi és aktivált fiókok esetében működik. Üresen (alapértelmezettként) minden helyi adminisztrátorra érvényes.
- title: Alapértelmezett követések új felhasználók esetében
- contact_information:
- email: Kapcsolattartói e-mail cím
- username: Kapcsolattartó felhasználóneve
- custom_css:
- desc_html: Változtasd meg a kinézetet ebben a CSS-ben, mely minden oldalon be fog töltődni
- title: Egyéni CSS
- default_noindex:
- desc_html: Olyan felhasználókat érinti, akik nem módosították ezt a beállítást
- title: Alapértelmezésként ne indexeljék a keresők a felhasználóinkat
+ about:
+ manage_rules: Kiszolgáló szabályainak kezelése
+ preamble: Adj meg részletes információkat arról, hogy a kiszolgáló hogyan működik, miként moderálják és finanszírozzák.
+ title: Névjegy
+ appearance:
+ preamble: A Mastodon webes felületének testreszabása.
+ title: Megjelenés
+ branding:
+ preamble: A kiszolgáló márkajelzése különbözteti meg a hálózat többi kiszolgálójától. Ez az információ számos környezetben megjelenhet, például a Mastodon webes felületén, natív alkalmazásokban, más weboldalakon és üzenetküldő alkalmazásokban megjelenő hivatkozások előnézetben stb. Ezért a legjobb, ha ez az információ világos, rövid és tömör.
+ content_retention:
+ title: Tartalom megtartása
+ discovery:
+ follow_recommendations: Ajánlottak követése
+ preamble: Az érdekes tartalmak felszínre hozása fontos szerepet játszik az új felhasználók bevonásában, akik esetleg nem ismerik a Mastodont. Szabályozd, hogy a különböző felfedezési funkciók hogyan működjenek a kiszolgálón.
+ profile_directory: Profiladatbázis
+ public_timelines: Nyilvános idővonalak
+ title: Felfedezés
+ trends: Trendek
domain_blocks:
all: Mindenkinek
disabled: Senkinek
- title: Domain tiltások megjelenitése
users: Bejelentkezett helyi felhasználóknak
- domain_blocks_rationale:
- title: Mutasd meg az indokolást
- hero:
- desc_html: A kezdőoldalon látszik. Legalább 600x100px méret javasolt. Ha nincs beállítva, a szerver bélyegképet használjuk
- title: Hősi kép
- mascot:
- desc_html: Több oldalon is látszik. Legalább 293×205px méret javasolt. Ha nincs beállítva, az alapértelmezett kabalát használjuk
- title: Kabala kép
- peers_api_enabled:
- desc_html: Domainek, amelyekkel ez a szerver kapcsolatban áll
- title: Szerverek listájának közzététele, melyekkel ez a szerver kapcsolatban áll
- preview_sensitive_media:
- desc_html: Más weboldalakon linkelt tartalmaink előnézetében mindenképp benne lesz egy bélyegkép még akkor is, ha a médiát kényesnek jelölték meg
- title: Kényes média mutatása OpenGraph előnézetben
- profile_directory:
- desc_html: Lehetővé teszi, hogy a felhasználóinkat megtalálják
- title: Profil adatbázis engedélyezése
registrations:
- closed_message:
- desc_html: Ez az üzenet jelenik meg a főoldalon, ha a regisztráció nem engedélyezett. HTML-tageket is használhatsz
- title: Üzenet, ha a regisztráció nem engedélyezett
- deletion:
- desc_html: Engedélyezed a felhasználóknak, hogy töröljék fiókjukat
- title: Fiók törlésének engedélyezése
- min_invite_role:
- disabled: Senki
- title: Meghívások engedélyezése
- require_invite_text:
- desc_html: Ha a regisztrációhoz kézi jóváhagyásra van szükség, akkor a „Miért akarsz csatlakozni?” válasz kitöltése legyen kötelező, és ne opcionális
- title: Az új felhasználóktól legyen megkövetelve a meghívási kérés szövegének kitöltése
+ preamble: Szabályozd, hogy ki hozhat létre fiókot a kiszolgálón.
+ title: Regisztrációk
registrations_mode:
modes:
approved: A regisztráció engedélyhez kötött
none: Senki sem regisztrálhat
open: Bárki regisztrálhat
- title: Regisztrációs mód
- show_known_fediverse_at_about_page:
- desc_html: Ha le van tiltva, a nyilvános, főoldalról elérhető idővonalon csak helyi tartalmak jelennek meg
- title: Mutassuk az általunk ismert föderációt az idővonal előnézetben
- show_staff_badge:
- desc_html: Stáb-jelvény megjelenítése a felhasználó oldalán
- title: Stáb-jelvény megjelenítése
- site_description:
- desc_html: Rövid bemutatkozás a főoldalon és a meta fejlécekben. Írd le, mi teszi ezt a szervert különlegessé! Használhatod a <a>
és <em>
HTML tageket.
- title: Kiszolgáló leírása
- site_description_extended:
- desc_html: Ide teheted például a közösségi és egyéb szabályzatot, útmutatókat és mindent, ami egyedivé teszi szerveredet. HTML-tageket is használhatsz
- title: További egyéni információk
- site_short_description:
- desc_html: Oldalsávban és meta tag-ekben jelenik meg. Írd le, mi teszi ezt a szervert különlegessé egyetlen bekezdésben.
- title: Rövid leírás
- site_terms:
- desc_html: Megírhatod saját adatkezelési szabályzatodat, felhasználási feltételeidet vagy más hasonló jellegű dokumentumodat. HTML-tageket is használhatsz
- title: Egyéni felhasználási feltételek
- site_title: A szerver neve
- thumbnail:
- desc_html: Az OpenGraph-on és API-n keresztüli előnézetekhez használatos. Ajánlott mérete 1200×630 képpont.
- title: A szerver bélyegképe
- timeline_preview:
- desc_html: Nyilvános idővonal megjelenítése a főoldalon
- title: Idővonal előnézete
- title: Webhely beállításai
- trendable_by_default:
- desc_html: Azokra a hashtagekere hat, melyet előzőleg nem tiltottak le
- title: Felkapott hashtagek engedélyezése előzetes ellenőrzés nélkül
- trends:
- desc_html: Előzetesen engedélyezett és most felkapott hashtagek nyilvános megjelenítése
- title: Felkapott hashtagek
+ title: Kiszolgálóbeállítások
site_uploads:
delete: Feltöltött fájl törlése
destroyed_msg: Sikeresen töröltük a site feltöltését!
statuses:
+ account: Szerző
+ application: Alkalmazás
back_to_account: Vissza a fiók oldalára
back_to_report: Vissza a bejelentés oldalra
batch:
remove_from_report: Eltávolítás a bejelentésből
report: Bejelentés
deleted: Törölve
+ favourites: Kedvencek
+ history: Verziótörténet
+ in_reply_to: 'Válasz címzettje:'
+ language: Nyelv
media:
title: Média
+ metadata: Metaadatok
no_status_selected: Nem változtattunk meg egy bejegyzést sem, mert semmi sem volt kiválasztva
+ open: Bejegyzés megnyitása
+ original_status: Eredeti bejegyzés
+ reblogs: Megosztások
+ status_changed: A bejegyzés megváltozott
title: Fiók bejegyzései
+ trending: Felkapott
+ visibility: Láthatóság
with_media: Médiával
strikes:
actions:
@@ -782,7 +746,7 @@ hu:
message_html: 'Nem kompatibilis Elasticsearch verzió: %{value}'
version_comparison: Az Elasticsearch %{running_version} fut, de %{required_version} szükséges
rules_check:
- action: Szerver szabályok menedzselése
+ action: Kiszolgáló szabályainak kezelése
message_html: Még nem definiáltál egy szerver szabályt sem.
sidekiq_process_check:
message_html: Nincs Sidekiq folyamat, mely a %{value} sorhoz van rendelve. Kérlek, nézd át a Sidekiq beállításait
@@ -797,9 +761,12 @@ hu:
links:
allow: Hivatkozás engedélyezése
allow_provider: Közzétevő engedélyezése
- description_html: Ezek olyan hivatkozások, melyeket a szervered által látott fiókok mostanában sokat osztanak meg. Ez segíthet a felhasználóidnak rátalálni arra, hogy mi történik a világban. Egy hivatkozást sem mutatunk meg nyilvánosan, amíg a közzétevőt jóvá nem hagytad. A hivatkozásokat külön is engedélyezheted vagy visszautasíthatod.
+ description_html: Ezek olyan hivatkozások, melyeket a kiszolgálód által látott fiókok mostanában sokat osztanak meg. Ez segíthet a felhasználóidnak rátalálni arra, hogy mi történik a világban. Egy hivatkozást sem jelenik meg nyilvánosan, amíg a közzétevőt jóvá nem hagytad. A hivatkozásokat külön is engedélyezheted vagy elutasíthatod.
disallow: Hivatkozás letiltása
disallow_provider: Közzétevő letiltása
+ no_link_selected: Nem változott meg egy hivatkozás sem, mert semmi sem volt kiválasztva
+ publishers:
+ no_publisher_selected: Nem változott meg egy közzétevő sem, mert semmi sem volt kiválasztva
shared_by_over_week:
one: Egy ember osztotta meg a múlt héten
other: "%{count} ember osztotta meg a múlt héten"
@@ -809,16 +776,17 @@ hu:
pending_review: Áttekintésre vár
preview_card_providers:
allowed: A közzétevő hivatkozásai felkapottak lehetnek
- description_html: Ezek olyan domainek, melyekre vonatkozó hivatkozásokat gyakran osztanak meg a szervereden. A hivatkozások nem lesznek nyilvánosan trendik, amíg a hivatkozás domainjét jóvá nem hagytad. A jóváhagyásod (vagy visszautasításod) az aldomainekre is vonatkozik.
+ description_html: Ezek olyan domainek, melyekre vonatkozó hivatkozásokat gyakran osztanak meg a kiszolgálódon. A hivatkozások nem lesznek nyilvánosan felkapottak, amíg a hivatkozás domainjét jóvá nem hagytad. A jóváhagyásod (vagy elutasításod) az aldomainekre is vonatkozik.
rejected: A közzétevő hivatkozásai nem lesznek felkapottak
title: Közzétévők
rejected: Elutasított
statuses:
allow: Bejegyzés engedélyezése
allow_account: Szerző engedélyezése
- description_html: Ezek olyan, a szervered által ismert bejegyzések, melyeket mostanság gyakran osztanak meg vagy jelölnek kedvencnek. Ez segíthet az új vagy visszatérő felhasználóidnak, hogy több követhető személyt találjanak Egyetlen bejegyzést sem mutatunk meg nyilvánosan, amíg ennek szerzőjét nem hagytad jóvá és ő nem járult hozzá, hogy őt másoknak ajánlják. Bejegyzéseket egyenként is engedélyezhetsz vagy visszautasíthatsz.
+ description_html: Ezek olyan, a szervered által ismert bejegyzések, melyeket mostanság gyakran osztanak meg vagy jelölnek kedvencnek. Ez segíthet az új vagy visszatérő felhasználóidnak, hogy több követhető személyt találjanak. Egyetlen bejegyzés sem jelenik meg nyilvánosan, amíg ennek szerzőjét nem hagytad jóvá és ő nem járult hozzá, hogy őt másoknak ajánlják. Bejegyzéseket egyenként is engedélyezhetsz vagy visszautasíthatsz.
disallow: Bejegyzés tiltása
disallow_account: Szerző tiltása
+ no_status_selected: Nem változott meg egy felkapott bejegyzés sem, mert semmi sem volt kiválasztva
not_discoverable: A szerző nem járult hozzá, hogy mások rátalálhassanak
shared_by:
one: Megosztva vagy kedvencnek jelölve egy alkalommal
@@ -832,8 +800,9 @@ hu:
tag_servers_dimension: Legnépszerűbb kiszolgálók
tag_servers_measure: különböző kiszolgáló
tag_uses_measure: összes használat
- description_html: Ezek olyan hashtag-ek, melyek mostanság nagyon sok bejegyzésben jelennek meg, melyet a szervered lát. Ez segíthet a felhasználóidnak abban, hogy megtudják, miről beszélnek legtöbbet az emberek az adott pillanatban. Egyetlen hashtag-et sem mutatunk meg nyilvánosan, amíg azt nem hagytad jóvá.
+ description_html: Ezek olyan hashtagek, melyek mostanság nagyon sok bejegyzésben jelennek meg, melyet a szervered lát. Ez segíthet a felhasználóidnak abban, hogy megtudják, miről beszélnek legtöbbet az emberek az adott pillanatban. Egyetlen hashtaget sem jelenik meg nyilvánosan, amíg azt nem hagytad jóvá.
listable: Javasolható
+ no_tag_selected: Nem változott meg egy címke sem, mert semmi sem volt kiválasztva
not_listable: Nem lesz javasolva
not_trendable: Nem fog megjelenni a trendek alatt
not_usable: Nem használható
@@ -854,6 +823,26 @@ hu:
edit_preset: Figyelmeztetés szerkesztése
empty: Nem definiáltál még egyetlen figyelmeztetést sem.
title: Figyelmeztetések
+ webhooks:
+ add_new: Végpont hozzáadása
+ delete: Törlés
+ description_html: Egy webhook lehetővé teszi a Mastodon számára, hogy valósidejű értesítéseket küldjön le a kiválasztott eseményekről a te alkalmazásodnak, így az alkalmazásod automatikusan reagálhat ezekre.
+ disable: Letiltás
+ disabled: Letiltva
+ edit: Végpont szerkesztése
+ empty: Még nincs beállított webhook végpontod.
+ enable: Engedélyezés
+ enabled: Aktív
+ enabled_events:
+ one: 1 engedélyezett esemény
+ other: "%{count} engedélyezett esemény"
+ events: Események
+ new: Új webhook
+ rotate_secret: Titok forgatása
+ secret: Titok aláírása
+ status: Állapot
+ title: Webhookok
+ webhook: Webhook
admin_mailer:
new_appeal:
actions:
@@ -877,12 +866,8 @@ hu:
new_trends:
body: 'A következő elemeket ellenőrizni kell, mielőtt nyilvánosan megjelennének:'
new_trending_links:
- no_approved_links: Jelenleg nincsenek jóváhagyott felkapott hivatkozások.
- requirements: 'Ezek közül bármelyik jelölt lehagyná a %{rank}. jóváhagyott felkapott hivatkozást, amely jelenleg a(z) „%{lowest_link_title}” ezzel a pontszámmal: %{lowest_link_score}.'
title: Felkapott hivatkozások
new_trending_statuses:
- no_approved_statuses: Jelenleg nincsenek jóváhagyott felkapott bejegyzések.
- requirements: 'Ezek közül bármelyik jelölt lehagyná a %{rank}. jóváhagyott felkapott bejegyzést, amely jelenleg a(z) „%{lowest_status_url}” ezzel a pontszámmal: %{lowest_status_score}.'
title: Felkapott bejegyzések
new_trending_tags:
no_approved_tags: Jelenleg nincsenek jóváhagyott felkapott hashtagek.
@@ -918,20 +903,17 @@ hu:
applications:
created: Alkalmazás sikeresen létrehozva
destroyed: Alkalmazás sikeresen eltávolítva
- invalid_url: A megadott URL nem megfelelő
regenerate_token: Hozzáférési kulcs újragenerálása
token_regenerated: Hozzáférési kulcs sikeresen újragenerálva
warning: Ez érzékeny adat. Soha ne oszd meg másokkal!
your_token: Hozzáférési kulcsod
auth:
- apply_for_account: Meghívó kérése
+ apply_for_account: Felkerülés a várólistára
change_password: Jelszó
- checkbox_agreement_html: Egyetértek a szerver szabályaival és a felhasználási feltételekkel
- checkbox_agreement_without_rules_html: Egyetértek a felhasználási feltételekkel
delete_account: Felhasználói fiók törlése
delete_account_html: Felhasználói fiókod törléséhez kattints ide . A rendszer újbóli megerősítést fog kérni.
description:
- prefix_invited_by_user: "@%{name} meghív téged, hogy csatlakozz erre a Mastodon szerverre!"
+ prefix_invited_by_user: "@%{name} meghív téged, hogy csatlakozz ehhez a Mastodon kiszolgálóhoz."
prefix_sign_up: Regisztrláj még ma a Mastodonra!
suffix: Egy fiókkal követhetsz másokat, bejegyzéseket tehetsz közzé, eszmét cserélhetsz más Mastodon szerverek felhasználóival!
didnt_get_confirmation: Nem kaptad meg a megerősítési lépéseket?
@@ -946,6 +928,7 @@ hu:
migrate_account: Felhasználói fiók költöztetése
migrate_account_html: Ha szeretnéd átirányítani ezt a fiókodat egy másikra, a beállításokat itt találod meg .
or_log_in_with: Vagy jelentkezz be ezzel
+ privacy_policy_agreement_html: Elolvastam és egyetértek az adatvédemi nyilatkozattal
providers:
cas: CAS
saml: SAML
@@ -953,12 +936,18 @@ hu:
registration_closed: "%{instance} nem fogad új tagokat"
resend_confirmation: Megerősítési lépések újraküldése
reset_password: Jelszó visszaállítása
+ rules:
+ preamble: Ezeket a(z) %{domain} moderátorai adjak meg és tartatják be.
+ title: Néhány alapszabály.
security: Biztonság
set_new_password: Új jelszó beállítása
setup:
email_below_hint_html: Ha az alábbi e-mail cím nem megfelelő, itt megváltoztathatod és kaphatsz egy új igazoló e-mailt.
email_settings_hint_html: A visszaigazoló e-mailt elküldtük ide %{email}. Ha az e-mail cím nem megfelelő, megváltoztathatod a fiókod beállításainál.
title: Beállítás
+ sign_up:
+ preamble: Egy fiókkal ezen a Mastodon kiszolgálón követhetsz bárkit a hálózaton, függetlenül attól, hogy az illető fiókja melyik kiszolgálón található.
+ title: Állítsuk be a fiókod a %{domain} kiszolgálón.
status:
account_status: Fiók állapota
confirming: Várakozás az e-mailes visszaigazolásra.
@@ -967,7 +956,6 @@ hu:
redirecting_to: A fiókod inaktív, mert jelenleg ide %{acct} van átirányítva.
view_strikes: Fiókod elleni korábbi szankciók megtekintése
too_fast: Túl gyorsan küldted el az űrlapot, próbáld később.
- trouble_logging_in: Problémád van a bejelentkezéssel?
use_security_key: Biztonsági kulcs használata
authorize_follow:
already_following: Már követed ezt a felhasználót
@@ -1025,10 +1013,6 @@ hu:
more_details_html: A részletekért nézd meg az adatvédelmi szabályzatot .
username_available: A fiókod ismét elérhetővé válik
username_unavailable: A fiókod elérhetetlen marad
- directories:
- directory: Profilok
- explanation: Találj másokra érdeklődésük alapján
- explore_mastodon: "%{title} felfedezése"
disputes:
strikes:
action_taken: Intézkedés
@@ -1074,7 +1058,7 @@ hu:
'500':
content: Sajnáljuk, valami hiba történt a mi oldalunkon.
title: Az oldal nem megfelelő
- '503': Az oldalt nem tudjuk megmutatni átmeneti szerverprobléma miatt.
+ '503': Az oldalt átmeneti kiszolgálóprobléma miatt nem lehet kiszolgálni.
noscript_html: A Mastodon webalkalmazás használatához engedélyezned kell a JavaScriptet. A másik megoldás, hogy kipróbálsz egy platformodnak megfelelő alkalmazást .
existing_username_validator:
not_found: ezzel a névvel nem találtunk helyi felhasználót
@@ -1107,29 +1091,60 @@ hu:
public: Nyilvános idővonalak
thread: Beszélgetések
edit:
+ add_keyword: Kulcsszó hozzáadása
+ keywords: Kulcsszavak
+ statuses: Egyedi bejegyzések
+ statuses_hint_html: Ez a szűrő egyedi bejegyzések kiválasztására vonatkozik, függetlenül attól, hogy megfelelnek-e a lenti kulcsszavaknak. Engedélyezze vagy távolítsa el a bejegyzéseket a szűrőből .
title: Szűrő szerkesztése
errors:
+ deprecated_api_multiple_keywords: Ezek a paraméterek nem módosíthatóak az alkalmazásból, mert több mint egy szűrőkulcsszóra is hatással vannak. Használd az alkalmazás vagy a webes felület újabb verzióját.
invalid_context: A megadott kontextus hamis vagy hiányzik
- invalid_irreversible: Visszafordíthatatlan szűrést csak saját idővonalon vagy értesítéseken lehet végezni
index:
+ contexts: 'Szűrés helye: %{contexts}'
delete: Törlés
empty: Nincs szűrés.
+ expires_in: 'Ennyi idő múlva jár le: %{distance}'
+ expires_on: 'Lejárat ideje: %{date}'
+ keywords:
+ one: "%{count} kulcsszó"
+ other: "%{count} kulcsszó"
+ statuses:
+ one: "%{count} bejegyzés"
+ other: "%{count} bejegyzés"
+ statuses_long:
+ one: "%{count} egyedi bejegyzés elrejtve"
+ other: "%{count} egyedi bejegyzés elrejtve"
title: Szűrők
new:
+ save: Új szűrő mentése
title: Új szűrő hozzáadása
+ statuses:
+ back_to_filter: Vissza a szűrőhöz
+ batch:
+ remove: Eltávolítás a szűrőből
+ index:
+ hint: Ez a szűrő egyedi bejegyzések kiválasztására vonatkozik a megadott kritériumoktól függetlenül. Újabb bejegyzéseket adhatsz hozzá ehhez a szűrőhöz a webes felületen keresztül.
+ title: Megszűrt bejegyzések
footer:
- developers: Fejlesztőknek
- more: Többet…
- resources: Segédanyagok
trending_now: Most felkapott
generic:
all: Mind
+ all_items_on_page_selected_html:
+ one: "%{count} elem kiválasztva ezen az oldalon."
+ other: Mind a(z) %{count} elem kiválasztva ezen az oldalon.
+ all_matching_items_selected_html:
+ one: "%{count} , a keresésnek megfelelő elem kiválasztva."
+ other: Mind a(z) %{count} , a keresésnek megfelelő elem kiválasztva.
changes_saved_msg: A változásokat elmentettük!
copy: Másolás
delete: Törlés
+ deselect: Összes kiválasztás megszüntetése
none: Nincs
order_by: Rendezés
save_changes: Változások mentése
+ select_all_matching_items:
+ one: "%{count}, a keresésnek megfelelő elem kiválasztása."
+ other: Mind a(z) %{count}, a keresésnek megfelelő elem kiválasztása.
today: ma
validation_errors:
one: Valami nincs rendjén! Tekintsd meg a hibát lent
@@ -1144,7 +1159,7 @@ hu:
merge_long: Megtartjuk a meglévő bejegyzéseket és hozzávesszük az újakat
overwrite: Felülírás
overwrite_long: Lecseréljük újakkal a jelenlegi bejegyzéseket
- preface: Itt importálhatod egy másik szerverről lementett adataidat, például követettjeid és letiltott felhasználóid listáját.
+ preface: Itt importálhatod egy másik kiszolgálóról lementett adataidat, például követettjeid és letiltott felhasználóid listáját.
success: Adataidat sikeresen feltöltöttük és feldolgozásukat megkezdtük
types:
blocking: Letiltottak listája
@@ -1153,7 +1168,6 @@ hu:
following: Követettjeid listája
muting: Némított felhasználók listája
upload: Feltöltés
- in_memoriam_html: Emlékünkben.
invites:
delete: Visszavonás
expired: Lejárt
@@ -1171,7 +1185,7 @@ hu:
one: 1 használat
other: "%{count} használat"
max_uses_prompt: Nincs korlát
- prompt: Az itt generált linkek megosztásával hívhatod meg ismerőseidet erre a szerverre
+ prompt: Az itt előállított hivatkozások megosztásával hívhatod meg ismerőseidet erre a kiszolgálóra
table:
expires_at: Lejárat
uses: Használat
@@ -1234,19 +1248,10 @@ hu:
copy_account_note_text: 'Ez a fiók elköltözött innen %{acct}, itt vannak a bejegyzéseitek róla:'
notification_mailer:
admin:
+ report:
+ subject: "%{name} bejelentést küldött"
sign_up:
subject: "%{name} feliratkozott"
- digest:
- action: Összes értesítés megtekintése
- body: Itt a legutóbbi látogatásod (%{since}) óta írott üzenetek rövid összefoglalása
- mention: "%{name} megemlített itt:"
- new_followers_summary:
- one: Sőt, egy új követőd is lett, amióta nem jártál itt. Hurrá!
- other: Sőt, %{count} új követőd is lett, amióta nem jártál itt. Hihetetlen!
- subject:
- one: "1 új értesítés az utolsó látogatásod óta 🐘"
- other: "%{count} új értesítés az utolsó látogatásod óta 🐘"
- title: Amíg távol voltál…
favourite:
body: 'A bejegyzésedet kedvencnek jelölte %{name}:'
subject: "%{name} kedvencnek jelölte a bejegyzésedet"
@@ -1296,7 +1301,7 @@ hu:
instructions_html: "Olvasd be ezt a QR-kódot a telefonodon futó Google Authenticator vagy egyéb TOTP alkalmazással . A jövőben ez az alkalmazás fog számodra hozzáférési kódot generálni a belépéshez."
manual_instructions: 'Ha nem sikerült a QR-kód beolvasása, itt a szöveges kulcs, amelyet manuálisan kell begépelned:'
setup: Beállítás
- wrong_code: A beírt kód nem érvényes! A szerver órája és az eszközöd órája szinkronban jár?
+ wrong_code: A beírt kód nem érvényes. A kiszolgáló órája és az eszközöd órája szinkronban jár?
pagination:
newer: Újabb
next: Következő
@@ -1318,6 +1323,8 @@ hu:
other: Egyéb
posting_defaults: Bejegyzések alapértelmezései
public_timelines: Nyilvános idővonalak
+ privacy_policy:
+ title: Adatvédelmi irányelvek
reactions:
errors:
limit_reached: A különböző reakciók száma elérte a határértéket
@@ -1340,22 +1347,7 @@ hu:
remove_selected_follows: Kiválasztottak követésének abbahagyása
status: Fiók állapota
remote_follow:
- acct: Írd be a felhasználódat, amelyről követni szeretnéd felhasznalonev@domain formátumban
missing_resource: A fiókodnál nem található a szükséges átirányítási URL
- no_account_html: Nincs fiókod? Regisztrálj itt
- proceed: Tovább a követéshez
- prompt: 'Őt tervezed követni:'
- reason_html: "Miért van erre szükség? %{instance}
nem feltétlenül az a szerver, ahol regisztrálva vagy, ezért először a saját szerveredre irányítunk."
- remote_interaction:
- favourite:
- proceed: Jelöljük kedvencnek
- prompt: 'Ezt a bejegyzést szeretnéd kedvencnek jelölni:'
- reblog:
- proceed: Tovább a megtoláshoz
- prompt: 'Ezt a bejegyzést szeretnéd megtolni:'
- reply:
- proceed: Válaszadás
- prompt: 'Erre a bejegyzésre szeretnél válaszolni:'
reports:
errors:
invalid_rules: nem hivatkozik érvényes szabályra
@@ -1487,7 +1479,7 @@ hu:
enabled: Régi bejegyzések automatikus törlése
enabled_hint: Automatikusan törli a bejegyzéseidet, ahogy azok elérik a megadott korhatárt, kivéve azokat, melyek illeszkednek valamely alábbi kivételre
exceptions: Kivételek
- explanation: Mivel a bejegyzések törlése drága művelet, ezt időben elnyújtva tesszük meg, amikor a szerver éppen nem elfoglalt. Ezért lehetséges, hogy a bejegyzéseidet valamivel később töröljük, mint ahogy azok elérik a korhatárukat.
+ explanation: Mivel a bejegyzések törlése drága művelet, ezért ez időben elnyújtva történik, amikor a kiszolgáló épp nem elfoglalt. Ezért lehetséges, hogy a bejegyzéseid valamivel később lesznek törölve, mint ahogy azok elérik a korhatárukat.
ignore_favs: Kedvencek kihagyása
ignore_reblogs: Megtolások kihagyása
interaction_exceptions: Interakció alapú kivételek
@@ -1527,89 +1519,6 @@ hu:
too_late: Túl késő, hogy fellebbezd ezt a szankciót
tags:
does_not_match_previous_name: nem illeszkedik az előző névvel
- terms:
- body_html: |
- Adatvédelmi nyilatkozat
- Milyen adatokat gyűjtünk?
-
-
- Alapvető fiókadatok : Ha regisztrálsz ezen a szerveren, kérhetünk tőled felhasználói nevet, e-mail címet és jelszót is. Megadhatsz magadról egyéb profil információt, megjelenítendő nevet, bemutatkozást, feltölthetsz profilképet, háttérképet. A felhasználói neved, megjelenítendő neved, bemutatkozásod, profil képed és háttér képed mindig nyilvánosak mindenki számára.
- Bejegyzések, követések, más nyilvános adatok : Az általad követett emberek listája nyilvános. Ugyanez igaz a te követőidre is. Ha küldesz egy üzenetet, ennek az idejét eltároljuk azzal az alkalmazással együtt, melyből az üzenetet küldted. Az üzenetek tartalmazhatnak média csatolmányt, képeket, videókat. A nyilvános bejegyzések bárki számára elérhetőek. Ha egy bejegyzést kiemelsz a profilodon, az is nyilvánossá válik. Amikor a bejegyzéseidet a követőidnek továbbítjuk, a bejegyzés más szerverekre is átkerülhet, melyeken így másolatok képződhetnek. Ha törölsz bejegyzéseket, ez is továbbítódik a követőid felé. A megtolás (reblog) és kedvencnek jelölés művelete is mindig nyilvános.
- Közvetlen üzenetek és csak követőknek szánt bejegyzések : Minden bejegyzés a szerveren tárolódik. A csak követőknek szánt bejegyzéseket a követőidnek és az ezekben megemlítetteknek továbbítjuk, míg a közvetlen üzeneteket kizárólag az ebben megemlítettek kapják. Néhány esetben ez azt jelenti, hogy ezek más szerverekre is továbbítódnak, így ott másolatok keletkezhetnek. Jóhiszeműen feltételezzük, hogy más szerverek is hasonlóan járnak el, mikor ezeket az üzeneteket csak az arra jogosultaknak mutatják meg. Ugyanakkor ez nem feltétlenül teljesül. Érdemes ezért megvizsgálni azokat a szervereket, melyeken követőid vannak. Be tudod állítani, hogy minden követési kérelmet jóvá kelljen hagynod. Tartsd észben, hogy a szerver üzemeltetői láthatják az üzeneteket , illetve a fogadók képernyőképet, másolatot készíthetnek belőlük, vagy újraoszthatják őket. Ne ossz meg érzékeny információt a Mastodon hálózaton!
- IP címek és egyéb metaadatok : Bejelentkezéskor letároljuk a használt böngésződet és IP címedet. Minden rögzített munkamenet elérhető és visszavonható a beállítások között. Az utoljára rögzített IP címet maximum 12 hónapig tároljuk. Egyéb szerver logokat is megtarthatunk, melyek HTTP kérésenként is tárolhatják az IP címedet.
-
-
-
-
- Mire használjuk az adataidat?
-
- Bármely tőled begyűjtött adatot a következő célokra használhatjuk fel:
-
-
- Mastodon alapfunkcióinak biztosítása: Csak akkor léphetsz kapcsolatba másokkal, ha be vagy jelentkezve. Pl. követhetsz másokat a saját, személyre szabott idővonaladon.
- Közösségi moderáció elősegítése: Pl. IP címek összehasonlítása másokéval, hogy kiszűrjük a kitiltások megkerülését.
- Kapcsolattartás veled: Az általad megadott e-mail címen infókat, értesítéseket küldünk mások interakcióiról, kérésekről, kérdésekről.
-
-
-
-
- Hogyan védjük az adataidat?
-
- Üzemben tartunk néhány biztonsági rendszert, hogy megvédjük a személyes adataidat, amikor eléred vagy karbantartod ezeket. Többek között a böngésződ munkamenete, a szerver oldal, valamint a böngésző közötti teljes kommunikáció SSL-lel van titkosítva, a jelszavadat pedig erős, egyirányú algoritmussal hash-eljük. Kétlépcsős azonosítást is bekapcsolhatsz, hogy még biztonságosabbá tedd a fiókodhoz való hozzáférést.
-
-
-
- Mik az adatmegőrzési szabályaink?
-
- Mindent megteszünk, hogy:
-
-
- A szerver logokat, melyek kérésenként tartalmazzák a felhasználó IP címét maximum 90 napig tartsuk meg.
- A regisztrált felhasználókat IP címeikkel összekötő adatokat maximum 12 hónapig tartsuk meg.
-
-
- Kérhetsz mentést minden tárolt adatodról, bejegyzésedről, média fájlodról, profil- és háttér képedről.
-
- Bármikor visszaállíthatatlanul le is törölheted a fiókodat.
-
-
-
- Használunk sütiket?
-
- Igen. A sütik pici állományok, melyeket az oldalunk a böngésződön keresztül a háttértáradra rak, ha engedélyezed ezt. Ezek a sütik teszik lehetővé, hogy az oldalunk felismerje a böngésződet, és ha regisztráltál, hozzá tudjon kötni a fiókodhoz.
-
- Arra is használjuk a sütiket, hogy elmenthessük a beállításaidat egy következő látogatás céljából.
-
-
-
- Átadunk bármilyen adatot harmadik személynek?
-
- Az azonosításodra alkalmazható adatokat nem adjuk el, nem kereskedünk vele, nem adjuk át külső szereplőnek. Ez nem foglalja magában azon harmadik személyeket, aki az üzemeltetésben, felhasználók kiszolgálásban és a tevékenységünkben segítenek, de csak addig, amíg ők is elfogadják, hogy ezeket az adatokat bizalmasan kezelik. Akkor is átadhatjuk ezeket az adatokat, ha erre hitünk szerint törvény kötelez minket, ha betartatjuk az oldalunk szabályzatát vagy megvédjük a saját vagy mások személyiségi jogait, tulajdonát, biztonságát.
-
- A nyilvános tartalmaidat más hálózatban lévő szerverek letölthetik. A nyilvános és csak követőknek szánt bejegyzéseid olyan szerverekre is elküldődnek, melyeken követőid vannak. A közvetlen üzenetek is átkerülnek a címzettek szervereire, ha ők más szerveren regisztráltak.
-
- Ha felhatalmazol egy alkalmazást, hogy használja a fiókodat, a jóváhagyott hatásköröktől függően ez elérheti a nyilvános profiladataidat, a követettjeid listáját, a követőidet, listáidat, bejegyzéseidet és kedvenceidet is. Ezek az alkalmazások ugyanakkor sosem érhetik el a jelszavadat és e-mail címedet.
-
-
-
- Az oldal gyerekek általi használata
-
- Ha ez a szerver az EU-ban vagy EEA-ban található: Az oldalunk, szolgáltatásaink és termékeink mind 16 éven felülieket céloznak. Ha 16 évnél fiatalabb vagy, a GDPR (General Data Protection Regulation ) értelmében kérlek ne használd ezt az oldalt!
-
- Ha ez a szerver az USA-ban található: Az oldalunk, szolgáltatásaink és termékeink mind 13 éven felülieket céloznak. Ha 13 évnél fiatalabb vagy, a COPPA (Children's Online Privacy Protection Act ) értelmében kérlek ne használd ezt az oldalt!
-
- A jogi előírások különbözhetnek ettől a világ egyéb tájain.
-
-
-
- Adatvédelmi nyilatkozat változásai
-
- Ha úgy döntünk, hogy megváltoztatjuk az adatvédelmi nyilatkozatot, ezt ezen az oldalon közzé fogjuk tenni.
-
- Ez a dokumentum CC-BY-SA. Utoljára 2022.05.26-án frissült.
-
- Eredetileg innen adaptálva Discourse privacy policy .
- title: "%{instance} Felhasználási feltételek és Adatkezelési nyilatkozat"
themes:
contrast: Mastodon (Nagy kontrasztú)
default: Mastodon (Sötét)
@@ -1666,7 +1575,7 @@ hu:
disable: Nem használhatod tovább a fiókodat, bár a profil- és egyéb adataid érintetlenül maradnak. Kérhetsz mentést az adataidról, megváltoztathatod a beállításaidat vagy törölheted a fiókodat.
mark_statuses_as_sensitive: Néhány bejegyzésedet a %{instance} moderátorai érzékenynek jelölték. Ez azt jelenti, hogy az embereknek először rá kell nyomni a bejegyzés médiatartalmára, mielőtt egy előnézet megjelenne. A jövőben te is megjelölheted bejegyzés írása közben a médiatartalmat érzékenyként.
sensitive: Mostantól minden feltöltött médiaállományodat érzékeny tartalomként jelölünk meg és kattintásos figyelmeztetés mögé rejtjük.
- silence: A fiókodat most is használhatod, de ezen a kiszolgálón csak olyanok láthatják a bejegyzéseidet, akik már eddig is a követőid voltak, valamint kihagyunk különböző felfedezésre használható funkciókból. Ettől még mások továbbra is manuálisan be tudnak követni.
+ silence: A fiókodat most is használhatod, de ezen a kiszolgálón csak olyanok láthatják a bejegyzéseidet, akik már eddig is a követőid voltak, valamint kimaradhatsz a különböző felfedezési funkciókból. Viszont mások kézileg továbbra is be tudnak követni.
suspend: Többé nem használhatod a fiókodat, a profilod és más adataid többé nem elérhetőek. Még be tudsz jelentkezni, hogy mentést kérj az adataidról addig, amíg kb. 30 nap múlva teljesen le nem töröljük őket. Néhány alapadatot megtartunk, hogy el tudjuk kerülni, hogy megkerüld a felfüggesztést.
reason: 'Indok:'
statuses: 'Bejegyzések idézve:'
@@ -1688,20 +1597,13 @@ hu:
suspend: Felfüggesztett fiók
welcome:
edit_profile_action: Készítsd el profilod
- edit_profile_step: 'Itt tudod egyedivé tenni a profilod: feltölthetsz profil- és borítóképet, megváltoztathatod a megjelenített neved és így tovább. Ha jóvá szeretnéd hagyni követőidet, mielőtt követhetnek, itt tudod a fiókodat zárttá tenni.'
+ edit_profile_step: Testreszabhatod a profilod egy profilkép feltöltésével, a megjelenített neved megváltoztatásával és így tovább. Bekapcsolhatod az új követőid jóváhagyását, mielőtt követhetnek.
explanation: Néhány tipp a kezdeti lépésekhez
final_action: Kezdj bejegyzéseket írni
- final_step: 'Kezdj tülkölni! Nyilvános üzeneteid még követők híján is megjelennek másoknak, például a helyi idővonalon és a hashtageknél. Kezdd azzal, hogy bemutatkozol a #bemutatkozas vagy az #introductions hashtag használatával.'
+ final_step: 'Kezdj tülkölni! A nyilvános bejegyzéseid még követők híján is megjelennek másoknak, például a helyi idővonalon vagy a hashtageknél. Kezdd azzal, hogy bemutatkozol a #bemutatkozas vagy az #introductions hashtag használatával.'
full_handle: Teljes felhasználóneved
full_handle_hint: Ez az, amit megadhatsz másoknak, hogy üzenhessenek neked vagy követhessenek téged más szerverekről.
- review_preferences_action: Beállítások módosítása
- review_preferences_step: Tekintsd át a beállításaidat, például hogy milyen értesítéseket kérsz e-mailben, vagy hogy alapértelmezettként mi legyen a bejegyzéseid láthatósága. Ha nem vagy szédülős alkat, GIF-ek automatikus lejátszását is engedélyezheted.
subject: Üdvözöl a Mastodon
- tip_federated_timeline: A föderációs idővonal a Mastodon hálózat ütőere. Nem teljes, mivel csak azokat az embereket fogod látni, akiket a szervered többi felhasználója közül valaki már követ.
- tip_following: Alapértelmezettként szervered adminisztrátorait követed. Látogasd meg a helyi és a nyilvános idővonalat, hogy más érdekes emberekre is rátalálj.
- tip_local_timeline: A helyi idővonal a saját szervered (%{instance}) ütőere. Ezek a kedves emberek itt mind a szomszédaid!
- tip_mobile_webapp: Ha a böngésződ lehetővé teszi, hogy a kezdőképernyődhöz add a Mastodont, még értesítéseket is fogsz kapni, akárcsak egy igazi alkalmazás esetében!
- tips: Tippek
title: Üdv a fedélzeten, %{name}!
users:
follow_limit_reached: Nem követhetsz több, mint %{limit} embert
diff --git a/config/locales/hy.yml b/config/locales/hy.yml
index f24b3197e6..5094ca898a 100644
--- a/config/locales/hy.yml
+++ b/config/locales/hy.yml
@@ -1,89 +1,26 @@
---
hy:
about:
- about_hashtag_html: Սրանք #%{hashtag} հեշթեգով հանրային հրապարակումներն են։ Կարող էք փոխգործակցել դրանց հետ եթե ունէք որեւէ հաշիւ դաշտեզերքում։
about_mastodon_html: Ապագայի սոցցանցը։ Ոչ մի գովազդ, ոչ մի կորպորատիվ վերահսկողութիւն, էթիկական դիզայն, եւ ապակենտրոնացում։ Մաստադոնում դու ես քո տուեալների տէրը։
- about_this: Մեր մասին
- active_count_after: ակտիվ
- active_footnote: Ամսեկան ակտիւ օգտատէրեր (MAU)
- administered_by: Ադմինիստրատոր՝
- api: API
- apps: Բջջային յաւելուածներ
- apps_platforms: Մաստադոնը հասանելի է iOS, Android եւ այլ տարբեր հենքերում
- browse_directory: Պրպտիր օգտատէրերի շտեմարանը եւ գտիր հետաքրքիր մարդկանց
- browse_local_posts: Տես այս հանգոյցի հանրային գրառումների հոսքը
- browse_public_posts: Դիտիր Մաստադոնի հանրային գրառումների հոսքը
- contact: Կոնտակտ
contact_missing: Սահմանված չէ
contact_unavailable: Ոչինչ չկա
- discover_users: Գտնել օգտատերներ
- documentation: Փաստաթղթեր
- federation_hint_html: "«%{instance}»-ում հաշիւ բացելով դու կը կարողանաս հետեւել մարդկանց Մաստոդոնի ցանկացած հանգոյցից և ոչ միայն։"
- get_apps: Փորձէք բջջային յաւելուածը
hosted_on: Մաստոդոնը տեղակայուած է %{domain}ում
- instance_actor_flash: "Այս հաշիւ վիրտուալ դերասան է, օգտագործուում է սպասարկիչը, այլ ոչ անհատ օգտատիրոջը ներկայացնելու, համար։ Օգտագործուում է ֆեդերացիայի նպատակով, ու չպէտք է արգելափակուի, եթէ չէք ցանկանում արգելափակել ողջ հանգոյցը, որի դէպքում պէտք է օգտագործէք տիրոյթի արգելափակումը։ \n"
- learn_more: Իմանալ ավելին
- privacy_policy: Գաղտնիության քաղաքականություն
- rules: Սերուերի կանոնները
- rules_html: Այս սերուերում հաշիւ ունենալու համար անհրաժեշտ է պահպանել ստորեւ նշուած կանոնները։
- see_whats_happening: Տես ինչ կը կատարուի
- server_stats: Սերվերի վիճակը․
- source_code: Ելատեքստ
- status_count_after:
- one: գրառում
- other: ստատուս
- status_count_before: Որոնք արել են՝
- tagline: Հետեւիր ընկերներիդ եւ գտիր նորերին
- terms: Ծառայութեան պայմանները
- unavailable_content: Մոդերացուող սպասարկիչներ
- unavailable_content_description:
- domain: Սպասարկիչ
- reason: Պատճառը՝
- rejecting_media: Այս հանգոյցների նիւթերը չեն մշակուի կամ պահուի։ Չեն ցուցադրուի նաև մանրապատկերները, պահանջելով ինքնուրոյն անցում դէպի բնօրինակ նիւթը։
- rejecting_media_title: Զտուած մեդիա
- silenced: Այս սպասարկչի հրապարակումները թաքցուած են հանրային հոսքից եւ զրոյցներից, եւ ոչ մի ծանուցում չի գեներացուում նրանց օգտատէրերի գործողութիւններից, եթէ նրանց չէք հետեւում․
- silenced_title: Լռեցուած սպասարկիչներ
- suspended: Ոչ մի տուեալ այս սպասարկիչներից չի գործարկուում, պահուում կամ փոխանակուում, կատարել որեւէ գործողութիւն կամ հաղորդակցութիւն այս սպասարկիչի օգտատէրերի հետ անհնար է․
- suspended_title: Կասեցուած սպասարկիչներ
- unavailable_content_html: Մաստոդոնն ընդհանրապէս թոյլատրում է տեսնել բովանդակութիւնը եւ շփուել այլ դաշնեզերքի այլ հանգոյցների հետ։ Սրանք բացառութիւններն են, որոնք կիրառուել են հէնց այս հանգոյցի համար։
- user_count_after:
- one: օգտատէր
- other: օգտատերեր
- user_count_before: Այստեղ են
- what_is_mastodon: Ի՞նչ է Մաստոդոնը
accounts:
- choices_html: "%{name}-ի ընտրանի՝"
- endorsements_hint: Վէբ ինտերֆէյսից կարող ես ցուցադրել մարդկանց, որոնց հետեւում ես, եւ նրանք կը ցուցադրուեն այստեղ։
- featured_tags_hint: Դու կարող ես ցուցադրել յատուկ պիտակներ, որոնք կը ցուցադրուեն այստեղ։
follow: Հետևել
followers:
one: Հետեւորդ
other: Հետևորդներ
following: Հետեւած
instance_actor_flash: Այս հաշիւը վիրտուալ դերասան է, որը ներկայացնում է հանգոյցը, եւ ոչ որեւէ անհատ օգտատիրոջ։ Այն օգտագործուում է ֆեդերացիայի նպատակներով եւ չպէտք է կասեցուի։
- joined: Միացել են %{date}
last_active: վերջին այցը
link_verified_on: Սոյն յղման տիրապետումը ստուգուած է՝ %{date}֊ին
- media: Մեդիա
- moved_html: "%{name} տեղափոխուել է %{new_profile_link}"
- network_hidden: Այս տուեալը հասանելի չէ
nothing_here: Այստեղ բան չկայ
- people_followed_by: Մարդիկ, որոնց %{name}ը հետեւում է
- people_who_follow: Մարդիկ, որոնք հետեւում են %{name}ին
pin_errors:
following: Դու պէտք է հետեւես մարդուն, որին ցանկանում ես խրախուսել
posts:
one: Գրառում
other: Գրառումներ
posts_tab_heading: Գրառումներ
- posts_with_replies: Գրառումներ եւ պատասխաններ
- roles:
- admin: Ադմինիստրատոր
- bot: Բոտ
- group: Խումբ
- moderator: Մոդերատոր
- unavailable: Պրոֆիլը հասանելի չի
- unfollow: Չհետևել
admin:
account_actions:
action: Կատարել գործողութիւն
@@ -100,7 +37,6 @@ hy:
avatar: Աւատար
by_domain: Դոմէն
change_email:
- changed_msg: Հաշուի էլ․ հասցէն բարեյաջող փոփոխուեց
current_email: Ներկայիս էլ․ հասցէ
label: Փոխել էլ. հասցէն
new_email: Նոր էլ․ փոստ
@@ -175,12 +111,6 @@ hy:
reset: Վերականգնել
reset_password: Վերականգնել գաղտանաբառը
resubscribe: Կրկին բաժանորդագրուել
- role: Թոյլտուութիւններ
- roles:
- admin: Ադմինիստրատոր
- moderator: Մոդերատոր
- staff: Անձնակազմ
- user: Oգտատէր
search: Որոնել
search_same_email_domain: Այլ օգտատէրեր նոյն էլ․ փոստի դոմէյնով
search_same_ip: Այլ օգտատէրեր նոյն IP֊ով
@@ -255,7 +185,6 @@ hy:
update_custom_emoji: Թարմացնել սեփական էմոջիները
update_domain_block: Թարմացնել տիրոյթի արգելափակումը
update_status: Թարմացնել գրառումը
- deleted_status: "(ջնջուած գրառում)"
empty: Ոչ մի գրառում չկայ։
filter_by_action: Զտել ըստ գործողութեան
filter_by_user: Զտել ըստ օգտատիրոջ
@@ -446,52 +375,14 @@ hy:
empty: Սերուերի կանոնները դեռեւս սահմանուած չեն։
title: Սերուերի կանոնները
settings:
- contact_information:
- email: Գործնական էլփոստ
- username: Կոնտակտի ծածկանուն
- custom_css:
- title: Սեփական CSS
domain_blocks:
all: Բոլորին
disabled: Ոչ մէկին
- title: Ցուցադրել տիրոյթը արգելափակումները
- hero:
- title: Հերոսի պատկեր
- profile_directory:
- desc_html: Թոյլատրել օգտատէրերին բացայայտուել
- title: Միացնել հաշուի մատեանը
- registrations:
- closed_message:
- desc_html: Ցուցադրուում է արտաքին էջում, երբ գրանցումները փակ են։ Կարող ես օգտագործել նաեւ HTML թէգեր
- title: Փակ գրանցման հաղորդագրութիւն
- deletion:
- desc_html: Բոլորին թոյլատրել ջնջել իրենց հաշիւը
- title: Բացել հաշուի ջնջումը
- min_invite_role:
- disabled: Ոչ ոք
- title: Թոյլատրել հրաւէրներ
registrations_mode:
modes:
approved: Գրանցման համար անհրաժեշտ է հաստատում
none: Ոչ ոք չի կարող գրանցուել
open: Բոլորը կարող են գրանցուել
- title: Գրանցումային ռեժիմ
- show_staff_badge:
- desc_html: Ցուցադրել անձնակազմի անդամի նշանը օգտատիրոջ էջում
- title: Ցուցադրել անձնակազմի անդամի նշանը
- site_description:
- title: Կայքի նկարագրութիւն
- site_short_description:
- title: Կայքի հակիրճ նկարագրութիւն
- site_terms:
- desc_html: Դու կարող ես գրել քո սեփական գաղտնիութեան քաղաքականութիւնը, օգտագործման պայմանները եւ այլ կանոններ։ Կարող ես օգտագործել HTML թեգեր
- title: Սեփական օգտագործման կանոնները
- site_title: Սպասարկչի անուն
- thumbnail:
- title: Հանգոյցի նկարը
- title: Կայքի կարգաւորումներ
- trends:
- title: Թրենդային պիտակներ
site_uploads:
delete: Ջնջել վերբեռնուած ֆայլը
destroyed_msg: Կայքի վերբեռնումը բարեյաջող ջնջուեց
@@ -551,14 +442,10 @@ hy:
view_profile: Նայել անձնական էջը
view_status: Նայել գրառումը
applications:
- invalid_url: Տրամադրուած URL անվաւեր է
regenerate_token: Ստեղծել նոր հասանելիութեան կտրոն
your_token: Քո մուտքի բանալին
auth:
- apply_for_account: Հրաւէրի հարցում
change_password: Գաղտնաբառ
- checkbox_agreement_html: Ես համաձայն եմ սպասարկիչի կանոններին և ծառայութեան պայմաններին
- checkbox_agreement_without_rules_html: Ես համաձայն եմ ծառայությունների պայմաններին
delete_account: Ջնջել հաշիվը
description:
prefix_sign_up: Գրանցուի՛ր Մաստոդոնում հենց այսօր
@@ -579,7 +466,6 @@ hy:
status:
account_status: Հաշուի կարգավիճակ
pending: Դիմումը պէտք է քննուի մեր անձնակազմի կողմից, ինչը կարող է մի փոքր ժամանակ խլել։ Դիմումի հաստատուելու դէպքում, կտեղեկացնենք նամակով։
- trouble_logging_in: Մուտք գործելու խնդիրնե՞ր կան։
use_security_key: Օգտագործել անվտանգութեան բանալի
authorize_follow:
already_following: Դու արդէն հետեւում ես այս հաշուին
@@ -626,10 +512,6 @@ hy:
success_msg: Հաշիւդ բարեյաջող ջնջուեց
warning:
username_available: Քո օգտանունը կրկին հասանելի կը դառնայ
- directories:
- directory: Հաշուի մատեան
- explanation: Բացայայտիր մարդկանց ըստ նրանց հետաքրքրութիւնների
- explore_mastodon: Ուսումնասիրիր «%{title}»-ը
domain_validator:
invalid_domain: անվաւէր տիրոյթի անուն
errors:
@@ -676,9 +558,6 @@ hy:
new:
title: Ավելացնել ֆիլտր
footer:
- developers: Մշակողներ
- more: Ավելին…
- resources: Ռեսուրսներ
trending_now: Այժմ արդիական
generic:
all: Բոլորը
@@ -750,10 +629,6 @@ hy:
admin:
sign_up:
subject: "%{name}-ը գրանցուած է"
- digest:
- action: Դիտել բոլոր ծանուցումները
- mention: "%{name} նշել է քեզ՝"
- title: Երբ բացակայ էիր...
favourite:
body: Քո գրառումը հաւանել է %{name}-ը։
subject: "%{name} հաւանեց գրառումդ"
@@ -834,9 +709,6 @@ hy:
remove_selected_followers: Հեռացնել նշուած հետեւորդներին
remove_selected_follows: Ապահետեւել նշուած օգտատէրերին
status: Հաշուի կարգավիճակ
- remote_follow:
- acct: Մուտքագրիր քո օգտանուն@տիրոյթ, որի անունից ցանկանում ես գործել
- prompt: Դու պատրաստուում ես հետևել՝
scheduled_statuses:
too_soon: Նախադրուած ամսաթիւը պէտք է լինի ապագայում
sessions:
@@ -992,13 +864,7 @@ hy:
welcome:
edit_profile_action: Կարգաւորել հաշիւը
final_action: Սկսել գրել
- final_step: 'Սկսիր գրել։ Անգամ առանց հետեւորդների քո հանրային գրառումներ կարող են երևալ ուրիշների մօտ, օրինակ՝ տեղական հոսում կամ հեշթեգերում։ Թէ ցանկանաս, կարող ես յայտնել քո մասին օգտագործելով #եսնորեկեմ հեշթեգը։'
- review_preferences_action: Փոփոխել կարգաւորումները
subject: Բարի գալուստ Մաստոդոն
- tip_federated_timeline: Դաշնային հոսքում երևում է ամբողջ Մաստոդոնի ցանցը։ Բայց այն ներառում է միայն այն օգտատէրերին որոնց բաժանորդագրուած են ձեր հարևաններ, այդ պատճառով այն կարող է լինել ոչ ամբողջական։
- tip_following: Դու հետեւում էս քո հանգոյցի ադմին(ներ)ին լռելայն։ Այլ հետաքրքիր անձանց գտնելու համար՝ թերթիր տեղական և դաշնային հոսքերը։
- tip_local_timeline: Տեղական հոսքում երևում են %{instance} հանգոյցի մարդկանց գրառումները։ Նրանք քո հանգոյցի հարևաններն են։
- tips: Հուշումներ
title: Բարի գալուստ նաւամատոյց, %{name}
users:
invalid_otp_token: Անվաւեր 2F կոդ
diff --git a/config/locales/id.yml b/config/locales/id.yml
index c278f749f6..9248eab308 100644
--- a/config/locales/id.yml
+++ b/config/locales/id.yml
@@ -1,88 +1,24 @@
---
id:
about:
- about_hashtag_html: Ini adalah toot publik yang ditandai dengan #%{hashtag} . Anda bisa berinteraksi dengan mereka jika anda memiliki akun dimanapun di fediverse.
about_mastodon_html: Mastodon adalah sebuah jejaring sosial terbuka, open-sourcedesentralisasi dari platform komersial, menjauhkan anda resiko dari sebuah perusahaan yang memonopoli komunikasi anda. Pilih server yang anda percayai — apapun yang anda pilih, anda tetap dapat berinteraksi dengan semua orang. Semua orang dapat menjalankan server Mastodon sendiri dan berpartisipasi dalam jejaring sosial dengan mudah.
- about_this: Tentang server ini
- active_count_after: aktif
- active_footnote: Pengguna Aktif Bulanan (PAB)
- administered_by: 'Dikelola oleh:'
- api: API
- apps: Aplikasi mobile
- apps_platforms: Gunakan Mastodon dari iOS, Android, dan platform lain
- browse_directory: Jelajahi direktori profil dan saring sesuai minat
- browse_local_posts: Jelajahi siaran langsung dari pos publik server ini
- browse_public_posts: Jelajahi siaran langsung pos publik di Mastodon
- contact: Kontak
contact_missing: Belum diset
contact_unavailable: Tidak Tersedia
- continue_to_web: Lanjut ke apl web
- discover_users: Temukan pengguna
- documentation: Dokumentasi
- federation_hint_html: Dengan akun di %{instance} Anda dapat mengikuti orang di server Mastodon mana pun dan di luarnya.
- get_apps: Coba aplikasi mobile
hosted_on: Mastodon dihosting di %{domain}
- instance_actor_flash: "Akun ini adalah aktor virtual yang dipakai untuk merepresentasikan server, bukan pengguna individu. Ini dipakai untuk tujuan federasi dan jangan diblokir kecuali Anda ingin memblokir seluruh instansi, yang seharusnya Anda pakai blokir domain. \n"
- learn_more: Pelajari selengkapnya
- logged_in_as_html: Anda sedang masuk sebagai %{username}.
- logout_before_registering: Anda sudah masuk.
- privacy_policy: Kebijakan Privasi
- rules: Aturan server
- rules_html: 'Di bawah ini adalah ringkasan aturan yang perlu Anda ikuti jika Anda ingin memiliki akun di server Mastodon ini:'
- see_whats_happening: Lihat apa yang sedang terjadi
- server_stats: 'Statistik server:'
- source_code: Kode sumber
- status_count_after:
- other: status
- status_count_before: Yang telah menulis
- tagline: Ikuti teman dan temukan yang baru
- terms: Kebijakan layanan
- unavailable_content: Konten tak tersedia
- unavailable_content_description:
- domain: Server
- reason: Alasan
- rejecting_media: 'Berkas media dari server ini tak akan diproses dan disimpan, dan tak akan ada gambar kecil yang ditampilkan, perlu klik manual utk menuju berkas asli:'
- rejecting_media_title: Media yang disaring
- silenced: 'Pos dari server ini akan disembunyikan dari linimasa publik dan percakapan, dan takkan ada notifikasi yang dibuat dari interaksi pengguna mereka, kecuali Anda mengikuti mereka:'
- silenced_title: Server yang dibisukan
- suspended: 'Takkan ada data yang diproses, disimpan, dan ditukarkan dari server ini, sehingga interaksi atau komunikasi dengan pengguna dari server ini tak mungkin dilakukan:'
- suspended_title: Server yang ditangguhkan
- unavailable_content_html: Mastodon umumnya mengizinkan Anda untuk melihat konten dan berinteraksi dengan pengguna dari server lain di fediverse. Ini adalah pengecualian yang dibuat untuk beberapa server.
- user_count_after:
- other: pengguna
- user_count_before: Tempat bernaung bagi
- what_is_mastodon: Apa itu Mastodon?
accounts:
- choices_html: 'Pilihan %{name}:'
- endorsements_hint: Anda dapat mempromosikan orang yang Anda ikuti lewat antar muka web, dan mereka akan muncul di sini.
- featured_tags_hint: Anda dapat mengunggulkan tagar tertentu yang akan ditampilkan di sini.
follow: Ikuti
followers:
other: Pengikut
following: Mengikuti
instance_actor_flash: Akun ini adalah aktor virtual yang merepresentasikan server itu sendiri dan bukan pengguna individu. Ini dipakai untuk tujuan gabungan dan seharusnya tidak ditangguhkan.
- joined: Bergabung pada %{date}
last_active: terakhir aktif
link_verified_on: Kepemilikan tautan ini telah dicek pada %{date}
- media: Media
- moved_html: "%{name} telah pindah ke %{new_profile_link}:"
- network_hidden: Informasi ini tidak tersedia
nothing_here: Tidak ada apapun disini!
- people_followed_by: Orang yang diikuti %{name}
- people_who_follow: Orang-orang yang mengikuti %{name}
pin_errors:
following: Anda harus mengikuti orang yang ingin anda endorse
posts:
other: Toot
posts_tab_heading: Toot
- posts_with_replies: Toot dan balasan
- roles:
- admin: Admin
- bot: Bot
- group: Grup
- moderator: Moderator
- unavailable: Profil tidak tersedia
- unfollow: Berhenti mengikuti
admin:
account_actions:
action: Lakukan aksi
@@ -99,12 +35,14 @@ id:
avatar: Avatar
by_domain: Domian
change_email:
- changed_msg: Email akun ini berhasil diubah!
+ changed_msg: כתובת דוא"ל שונתה בהצלחה !
current_email: Email saat ini
label: Ganti email
new_email: Email baru
submit: Ganti email
title: Ganti email untuk %{username}
+ change_role:
+ changed_msg: תפקיד שונה בהצלחה !
confirm: Konfirmasi
confirmed: Dikonfirmasi
confirming: Mengkonfirmasi
@@ -180,12 +118,6 @@ id:
reset: Atur ulang
reset_password: Reset kata sandi
resubscribe: Langganan ulang
- role: Hak akses
- roles:
- admin: Administrator
- moderator: Moderator
- staff: Staf
- user: Pengguna
search: Cari
search_same_email_domain: Pengguna lain dengan domain email yang sama
search_same_ip: Pengguna lain dengan IP yang sama
@@ -290,7 +222,6 @@ id:
create_unavailable_domain_html: "%{name} menghentikan pengiriman ke domain %{target}"
demote_user_html: "%{name} menurunkan pengguna %{target}"
destroy_announcement_html: "%{name} menghapus pengumuman %{target}"
- destroy_custom_emoji_html: "%{name} menghapus emoji %{target}"
destroy_domain_allow_html: "%{name} membatalkan izin penggabungan dengan domain %{target}"
destroy_domain_block_html: "%{name} membuka blokir domain %{target}"
destroy_email_domain_block_html: "%{name} membuka blokir domain email %{target}"
@@ -325,7 +256,6 @@ id:
update_custom_emoji_html: "%{name} memperbarui emoji %{target}"
update_domain_block_html: "%{name} memperbarui blokir domain untuk %{target}"
update_status_html: "%{name} memperbarui status %{target}"
- deleted_status: "(status dihapus)"
empty: Log tidak ditemukan.
filter_by_action: Filter berdasarkan tindakan
filter_by_user: Filter berdasarkan pengguna
@@ -633,6 +563,8 @@ id:
unresolved: Belum Terseleseikan
updated_at: Diperbarui
view_profile: Lihat profil
+ roles:
+ edit: ערכי את התפקיד של '%{name}'
rules:
add_new: Tambah aturan
delete: Hapus
@@ -641,94 +573,15 @@ id:
empty: Belum ada aturan server yang didefinisikan.
title: Aturan server
settings:
- activity_api_enabled:
- desc_html: Hitung status yang dipos scr lokal, pengguna aktif, dan registrasi baru dlm keranjang bulanan
- title: Terbitkan statistik keseluruhan tentang aktivitas pengguna
- bootstrap_timeline_accounts:
- desc_html: Pisahkan nama pengguna dengan koma. Hanya akun lokal dan tak terkunci yang akan bekerja. Isi bawaan jika kosong adalah semua admin lokal.
- title: Ikuti scr bawaan untuk pengguna baru
- contact_information:
- email: Masukkan alamat email
- username: Masukkan nama pengguna
- custom_css:
- desc_html: Ubah tampilan dengan CSS yang dimuat di setiap halaman
- title: CSS Kustom
- default_noindex:
- desc_html: Memengaruhi semua pengguna yang tidak mengubah setelan ini sendiri
- title: Singkirkan pengguna dari pengindeksan mesin pencari scr bawaan
domain_blocks:
all: Kepada semua orang
disabled: Tidak kepada siapa pun
- title: Lihat blokir domain
users: Ke pengguna lokal yang sudah login
- domain_blocks_rationale:
- title: Tampilkan alasan
- hero:
- desc_html: Ditampilkan di halaman depan. Direkomendasikan minimal 600x100px. Jika tidak diatur, kembali ke server gambar kecil
- title: Gambar pertama
- mascot:
- desc_html: Ditampilkan di banyak halaman. Direkomendasikan minimal 293x205px. Jika tidak diatur, kembali ke maskot bawaan
- title: Gambar maskot
- peers_api_enabled:
- desc_html: Nama domain server ini dijumpai di fediverse
- title: Terbitkan daftar server yang ditemukan
- preview_sensitive_media:
- desc_html: Pratinjau tautan pada situsweb lain akan menampilkan gambar kecil meski media ditandai sebagai sensitif
- title: Tampilkan media sensitif di pratinjau OpenGraph
- profile_directory:
- desc_html: Izinkan pengguna untuk ditemukan
- title: Aktifkan direktori profil
- registrations:
- closed_message:
- desc_html: Ditampilkan pada halaman depan saat pendaftaran ditutup Anda bisa menggunakan tag HTML
- title: Pesan penutupan pendaftaran
- deletion:
- desc_html: Izinkan siapapun untuk menghapus akun miliknya
- title: Buka penghapusan akun
- min_invite_role:
- disabled: Tidak ada satu pun
- title: Izinkan undangan oleh
- require_invite_text:
- desc_html: Saat pendaftaran harus disetujui manual, buat input teks "Mengapa Anda ingin bergabung?" sebagai hal wajib bukan opsional
- title: Pengguna baru harus memasukkan alasan bergabung
registrations_mode:
modes:
approved: Persetujuan diperlukan untuk mendaftar
none: Tidak ada yang dapat mendaftar
open: Siapa pun dapat mendaftar
- title: Mode registrasi
- show_known_fediverse_at_about_page:
- desc_html: Ketika dimatikan, batasi linimasa publik yang ditautkan dari halaman landas untuk menampilkan konten lokal saja
- title: Masukkan konten gabungan di halaman linimasa publik tanpa autentifikasi
- show_staff_badge:
- desc_html: Tampilkan lencana staf pada halaman pengguna
- title: Tampilkan lencana staf
- site_description:
- desc_html: Ditampilkan sebagai sebuah paragraf di halaman depan dan digunakan sebagai tag meta. Anda bisa menggunakan tag HTML, khususnya <a>
dan <em>
.
- title: Deskripsi situs
- site_description_extended:
- desc_html: Ditampilkan pada halaman informasi tambahan Anda bisa menggunakan tag HTML
- title: Deskripsi situs tambahan
- site_short_description:
- desc_html: Ditampilkan pada bilah samping dan tag meta. Jelaskan apa itu Mastodon dan yang membuat server ini spesial dalam satu paragraf.
- title: Deskripsi server pendek
- site_terms:
- desc_html: Anda dapat menulis kebijakan privasi, ketentuan layanan, atau hal legal lainnya sendiri. Anda dapat menggunakan tag HTML
- title: Ketentuan layanan kustom
- site_title: Judul Situs
- thumbnail:
- desc_html: Dipakai sebagai pratinjau via OpenGraph dan API. Direkomendasikan 1200x630px
- title: Server gambar kecil
- timeline_preview:
- desc_html: Tampilkan tautan ke linimasa publik pada halaman landas dan izinkan API mengakses linimasa publik tanpa autentifikasi
- title: Izinkan akses linimasa publik tanpa autentifikasi
- title: Pengaturan situs
- trendable_by_default:
- desc_html: Memengaruhi tagar yang belum pernah diizinkan
- title: Izinkan tagar masuk tren tanpa peninjauan
- trends:
- desc_html: Tampilkan secara publik tagar tertinjau yang kini sedang tren
- title: Tagar sedang tren
site_uploads:
delete: Hapus berkas yang diunggah
destroyed_msg: Situs yang diunggah berhasil dihapus!
@@ -833,6 +686,21 @@ id:
edit_preset: Sunting preset peringatan
empty: Anda belum mendefinisikan peringatan apapun.
title: Kelola preset peringatan
+ webhooks:
+ add_new: Tambah titik akhir
+ delete: Hapus
+ disable: Matikan
+ disabled: Nonaktif
+ edit: Edit titik akhir
+ enable: Aktifkan
+ enabled: Aktif
+ enabled_events:
+ other: "%{count} acara aktif"
+ events: Acara
+ new: Webhook baru
+ status: Status
+ title: Webhook
+ webhook: Webhook
admin_mailer:
new_appeal:
actions:
@@ -856,12 +724,8 @@ id:
new_trends:
body: 'Item berikut harus ditinjau sebelum ditampilkan secara publik:'
new_trending_links:
- no_approved_links: Saat ini tidak ada tautan tren yang disetujui.
- requirements: 'Kandidat yang ada di sini bisa saja melewati peringkat #%{rank} tautan tren yang disetujui, yang kini "%{lowest_link_title}" memiliki nilai %{lowest_link_score}.'
title: Tautan sedang tren
new_trending_statuses:
- no_approved_statuses: Tidak ada kiriman sedang tren yang disetujui.
- requirements: 'Kandidat yang ada di sini bisa saja melewati peringkat #%{rank} kiriman tren yang disetujui, yang kini %{lowest_status_url} memiliki nilai %{lowest_status_score}.'
title: Kiriman yang sedang tren
new_trending_tags:
no_approved_tags: Saat ini tidak ada tagar tren yang disetujui.
@@ -897,16 +761,12 @@ id:
applications:
created: Aplikasi berhasil dibuat
destroyed: Aplikasi berhasil dihapus
- invalid_url: URL tidak sesuai
regenerate_token: Buat ulang token akses
token_regenerated: Token akses berhasil dibuat ulang
warning: Hati-hati dengan data ini. Jangan bagikan kepada siapapun!
your_token: Token akses Anda
auth:
- apply_for_account: Meminta undangan
change_password: Kata sandi
- checkbox_agreement_html: Saya setuju dengan peraturan server dan ketentuan layanan
- checkbox_agreement_without_rules_html: Saya setuju dengan ketentuan layanan
delete_account: Hapus akun
delete_account_html: Jika Anda ingin menghapus akun Anda, Anda dapat memproses ini . Anda akan dikonfirmasi.
description:
@@ -946,7 +806,6 @@ id:
redirecting_to: Akun Anda tidak aktif karena sekarang dialihkan ke %{acct}.
view_strikes: Lihat hukuman lalu yang pernah terjadi kepada akun Anda
too_fast: Formulir dikirim terlalu cepat, coba lagi.
- trouble_logging_in: Kesulitan masuk?
use_security_key: Gunakan kunci keamanan
authorize_follow:
already_following: Anda sudah mengikuti akun ini
@@ -1004,10 +863,6 @@ id:
more_details_html: Lebih detailnya, lihat kebijakan privasi .
username_available: Nama pengguna Anda akan tersedia lagi
username_unavailable: Nama pengguna Anda tetap tidak akan tersedia
- directories:
- directory: Direktori profil
- explanation: Temukan pengguna berdasarkan minatnya
- explore_mastodon: Jelajahi %{title}
disputes:
strikes:
action_taken: Tindakan dilaksanakan
@@ -1089,7 +944,6 @@ id:
title: Ubah saringan
errors:
invalid_context: Konteks tidak ada atau invalid
- invalid_irreversible: Penyaringan yang tidak dapat dipulihkan hanya bekerja di beranda atau konteks notifikasi
index:
delete: Hapus
empty: Anda tidak memiliki filter.
@@ -1097,9 +951,6 @@ id:
new:
title: Tambah saringan baru
footer:
- developers: Pengembang
- more: Lainnya…
- resources: Sumber daya
trending_now: Sedang tren
generic:
all: Semua
@@ -1131,7 +982,6 @@ id:
following: Daftar diikuti
muting: Daftar didiamkan
upload: Unggah
- in_memoriam_html: Dalam memori.
invites:
delete: Nonaktifkan
expired: Kedaluwarsa
@@ -1213,15 +1063,6 @@ id:
admin:
sign_up:
subject: "%{name} mendaftar"
- digest:
- action: Lihat semua notifikasi
- body: Ini adalah ringkasan singkat yang anda lewatkan pada sejak kunjungan terakhir anda pada %{since}
- mention: "%{name} menyebut anda di:"
- new_followers_summary:
- other: Anda mendapatkan %{count} pengikut baru! Luar biasa!
- subject:
- other: "%{count} notifikasi baru sejak kunjungan Anda terakhir 🐘"
- title: Saat Anda tidak muncul...
favourite:
body: 'Status anda disukai oleh %{name}:'
subject: "%{name} menyukai status anda"
@@ -1315,22 +1156,7 @@ id:
remove_selected_follows: Batal ikuti pengguna terpilih
status: Status akun
remote_follow:
- acct: Masukkan namapengguna@domain yang akan anda ikuti
missing_resource: Tidak dapat menemukan URL redirect dari akun anda
- no_account_html: Tidak memiliki akun? Anda dapat mendaftar di sini
- proceed: Lanjutkan untuk mengikuti
- prompt: 'Anda akan mengikuti:'
- reason_html: "Mengapa langkah ini penting? %{instance}
mungkin saja bukan tempat Anda mendaftar, sehingga kami perlu mengalihkan Anda ke server beranda lebih dahulu."
- remote_interaction:
- favourite:
- proceed: Lanjutkan ke favorit
- prompt: 'Anda ingin memfavoritkan toot ini:'
- reblog:
- proceed: Lanjutkan ke boost
- prompt: 'Anda ingin mem-boost toot ini:'
- reply:
- proceed: Lanjutkan ke balasan
- prompt: 'Anda ingin membalas toot ini:'
reports:
errors:
invalid_rules: tidak mereferensikan aturan yang valid
@@ -1496,8 +1322,6 @@ id:
too_late: Terlambat untuk mengajukan banding hukuman ini
tags:
does_not_match_previous_name: tidak cocok dengan nama sebelumnya
- terms:
- title: "%{instance} Ketentuan Layanan dan Kebijakan Privasi"
themes:
contrast: Mastodon (Kontras tinggi)
default: Mastodon (Gelap)
@@ -1576,20 +1400,11 @@ id:
suspend: Akun ditangguhkan
welcome:
edit_profile_action: Siapkan profil
- edit_profile_step: Anda dapat menyesuaikan profil Anda dengan mengunggah avatar, kepala, mengubah tampilan nama dan lainnya. Jika Anda ingin meninjau pengikut baru sebelum Anda terima sebagai pengikut, Anda dapat mengunci akun Anda.
explanation: Beberapa tips sebelum Anda memulai
final_action: Mulai mengirim
- final_step: 'Mulai mengirim! Tanpa pengikut, pesan publik Anda akan tetap dapat dilihat oleh akun lain, contohnya di linimasa lokal atau di tagar. Anda mungkin ingin memperkenalkan diri dengan tagar #introductions.'
full_handle: Penanganan penuh Anda
full_handle_hint: Ini yang dapat Anda sampaikan kepada teman agar mereka dapat mengirim pesan atau mengikuti Anda dari server lain.
- review_preferences_action: Ubah preferensi
- review_preferences_step: Pastikan Anda telah mengatur preferensi Anda, seperti email untuk menerima pesan, atau tingkat privasi bawaan untuk postingan Anda. Jika Anda tidak alergi dengan gerakan gambar, Anda dapat mengaktifkan opsi mainkan otomatis GIF.
subject: Selamat datang di Mastodon
- tip_federated_timeline: Linimasa gabungan adalah ruang yang menampilkan jaringan Mastodon. Tapi ini hanya berisi tetangga orang-orang yang Anda ikuti, jadi tidak sepenuhnya komplet.
- tip_following: Anda secara otomatis mengikuti admin server. Untuk mencari akun-akun yang menarik, silakan periksa linimasa lokal dan gabungan.
- tip_local_timeline: Linimasa lokal adalah ruang yang menampilkan orang-orang di %{instance}. Mereka adalah tetangga dekat!
- tip_mobile_webapp: Jika peramban mobile Anda ingin menambahkan Mastodon ke layar utama, Anda dapat menerima notifikasi dorong. Ia akan berjalan seperti aplikasi asli!
- tips: Tips
title: Selamat datang, %{name}!
users:
follow_limit_reached: Anda tidak dapat mengikuti lebih dari %{limit} orang
diff --git a/config/locales/io.yml b/config/locales/io.yml
index 3649ec946b..5a513f4f70 100644
--- a/config/locales/io.yml
+++ b/config/locales/io.yml
@@ -1,94 +1,27 @@
---
io:
about:
- about_hashtag_html: Co esas publika posti quo etiketigesis kun #%{hashtag} . Vu povas interagar kun oli se vu havas konto irgaloke en fediverso.
about_mastodon_html: Mastodon esas gratuita, apertitkodexa sociala reto. Ol esas sencentra altra alternativo a komercala servadi. Ol evitigas, ke sola firmo guvernez tua tota komunikadol. Selektez servero, quan tu fidas. Irge qua esas tua selekto, tu povas komunikar kun omna altra uzeri. Irgu povas krear sua propra instaluro di Mastodon en sua servero, e partoprenar en la sociala reto tote glate.
- about_this: Pri ta instaluro
- active_count_after: aktiva
- active_footnote: Monade Aktiva Uzanti (MAU)
- administered_by: 'Administresis da:'
- api: API
- apps: Smartfonsoftwari
- apps_platforms: Uzez Mastodon de iOS, Android e altra platformi
- browse_directory: Videz profilcheflisto e filtrez segun interesi
- browse_local_posts: Videz samtempa video di publika posti de ca servilo
- browse_public_posts: Videz samtempa video di publika posti che Mastodon
- contact: Kontaktar
contact_missing: Ne fixigita
contact_unavailable: Nula
- continue_to_web: Durez a retsoftwaro
- discover_users: Deskovrez uzanti
- documentation: Dokumentajo
- federation_hint_html: Per konto che %{instance}, vu povas sequar persono che irga servilo di Mastodon e altra siti.
- get_apps: Probez smartfonsoftwaro
hosted_on: Mastodon hostigesas che %{domain}
- instance_actor_flash: 'Ca konto esas virtuala aganto quo uzesas por reprezentar la servilo e ne irga individuala uzanto. Ol uzesas por federskopo e ne debas restriktesar se vu ne volas obstruktar tota instanco, se ol esas la kaso, do vu debas uzar domenobstrukto.
-
- '
- learn_more: Lernez pluse
- logged_in_as_html: Vu nun eniras quale %{username}.
- logout_before_registering: Vu ja eniris.
- privacy_policy: Privatesguidilo
- rules: Servilreguli
- rules_html: 'La subo montras rezumo di reguli quon vu bezonas sequar se vu volas havar konto che ca servilo di Mastodon:'
- see_whats_happening: Videz quo eventas
- server_stats: 'Servilstatistiko:'
- source_code: Fontkodexo
- status_count_after:
- one: posto
- other: posti
- status_count_before: Qua publikigis
- tagline: Sequez amiki e deskovrez nova personi
- terms: Serveskondicioni
- unavailable_content: Jerata servili
- unavailable_content_description:
- domain: Servilo
- reason: Motivo
- rejecting_media: 'Mediifaili de ca servili ne procedagesas o retenesos, e imajeti ne montresos, do manuala klikto bezonesas a originala failo:'
- rejecting_media_title: Filtrita medii
- silenced: 'Posti de ca servili celesos en publika tempolinei e konversi, e notifiki ne facesos de oli uzantinteragi, se vu ne sequas oli:'
- silenced_title: Limitizita servili
- suspended: 'Informi de ca servili procedagesos o retenesos o interchanjesos, do irga interago o komuniko kun uzanti de ca servili esas neposibla:'
- suspended_title: Restriktita servili
- unavailable_content_html: Mastodon generale permisas on vidar kontenajo e interagar kun uzanti de irga altra servilo en fediverso. Existas eceptioni quo facesis che ca partikulara servilo.
- user_count_after:
- one: uzanto
- other: uzanti
- user_count_before: Hemo di
- what_is_mastodon: Quo esas Mastodon?
+ title: Pri co
accounts:
- choices_html: 'Selektaji di %{name}:'
- endorsements_hint: Vu povas rekomendar personi quon vu sequas de retintervizajo, e oli montresos hike.
- featured_tags_hint: Vu povas estalar partikulara hashtagi quo montresos hike.
follow: Sequar
followers:
one: Sequanto
other: Sequanti
following: Sequati
instance_actor_flash: Ca konto esas virtuala aganto quo uzesas por reprezentar la servilo e ne irga individuala uzanto. Ol uzesas por federskopo e ne debas restriktesar.
- joined: Juntis ye %{date}
last_active: lasta aktiva tempo
link_verified_on: Proprieteso di ca ligilo kontrolesis ye %{date}
- media: Medii
- moved_html: "%{name} transferesis a %{new_profile_link}:"
- network_hidden: Ca informi ne esas disponebla
nothing_here: Esas nulo hike!
- people_followed_by: Sequati da %{name}
- people_who_follow: Sequanti di %{name}
pin_errors:
following: Vu mustas ja sequar persono quon vu volas estalar
posts:
one: Posto
other: Posti
posts_tab_heading: Posti
- posts_with_replies: Posti e respondi
- roles:
- admin: Administrero
- bot: Boto
- group: Grupo
- moderator: Jerero
- unavailable: Profilo esas nedisponebla
- unfollow: Dessequar
admin:
account_actions:
action: Agez
@@ -111,6 +44,11 @@ io:
new_email: Nova retposto
submit: Chanjez retposto
title: Chanjez retposto por %{username}
+ change_role:
+ changed_msg: Rolo sucesoze chanjesis!
+ label: Chanjez rolo
+ no_role: Nula rolo
+ title: Chanjez rolo por %{username}
confirm: Konfirmez
confirmed: Konfirmita
confirming: Ankore konfirmesas
@@ -154,6 +92,7 @@ io:
active: Aktiva
all: Omna
pending: Vartanta
+ silenced: Limitizita
suspended: Restriktita
title: Jero
moderation_notes: Jernoti
@@ -161,6 +100,7 @@ io:
most_recent_ip: Maxim recenta IP
no_account_selected: Nula konti chanjesis pro ke nulo selektesis
no_limits_imposed: Limiti ne fixesis
+ no_role_assigned: Nula rolo
not_subscribed: Ne abonita
pending: Vartar kontrolo
perform_full_suspension: Perform full suspension
@@ -187,12 +127,7 @@ io:
reset: Richanjez
reset_password: Richanjez pasvorto
resubscribe: Riabonez
- role: Permisi
- roles:
- admin: Administrero
- moderator: Jerero
- staff: Laborero
- user: Uzanto
+ role: Rolo
search: Trovez
search_same_email_domain: Altra uzanti kun sama retpostodomeno
search_same_ip: Altra uzanti kun sama IP
@@ -235,17 +170,21 @@ io:
approve_user: Aprobez uzanto
assigned_to_self_report: Taskigez raporto
change_email_user: Chanjez retposto por uzanto
+ change_role_user: Chanjez rolo di uzanto
confirm_user: Konfirmez uzanto
create_account_warning: Kreez averto
create_announcement: Kreez anunco
+ create_canonical_email_block: Kreez domenobstrukto
create_custom_emoji: Kreez kustumizita emocimajo
create_domain_allow: Kreez domenpermiso
create_domain_block: Kreez domenobstrukto
create_email_domain_block: Kreez retpostodomenobstrukto
create_ip_block: Kreez IP-regulo
create_unavailable_domain: Kreez nedisponebla domeno
+ create_user_role: Kreez rolo
demote_user: Despromocez uzanto
destroy_announcement: Efacez anunco
+ destroy_canonical_email_block: Efacez domenobstrukto
destroy_custom_emoji: Efacez kustumizita emocimajo
destroy_domain_allow: Efacez domenpermiso
destroy_domain_block: Efacez domenobstrukto
@@ -254,6 +193,7 @@ io:
destroy_ip_block: Efacez IP-regulo
destroy_status: Efacez posto
destroy_unavailable_domain: Efacez nedisponebla domeno
+ destroy_user_role: Destruktez rolo
disable_2fa_user: Desaktivigez 2FA
disable_custom_emoji: Desaktivigez kustumizita emocimajo
disable_sign_in_token_auth_user: Desaktivigez retpostofichyurizo por uzanto
@@ -280,24 +220,30 @@ io:
update_announcement: Novigez anunco
update_custom_emoji: Novigez kustumizita emocimajo
update_domain_block: Novigez domenobstrukto
+ update_ip_block: Kreez IP-regulo
update_status: Novigez posto
+ update_user_role: Novigez rolo
actions:
approve_appeal_html: "%{name} aprobis jerdecidapelo de %{target}"
approve_user_html: "%{name} aprobis registro de %{target}"
assigned_to_self_report_html: "%{name} taskigis raporto %{target} a su"
change_email_user_html: "%{name} chanjis retpostoadreso di uzanto %{target}"
+ change_role_user_html: "%{name} chanjis rolo di %{target}"
confirm_user_html: "%{name} konfirmis retpostoadreso di uzanto %{target}"
create_account_warning_html: "%{name} sendis averto a %{target}"
create_announcement_html: "%{name} kreis nova anunco %{target}"
+ create_canonical_email_block_html: "%{name} obstruktis retpostodomeno %{target}"
create_custom_emoji_html: "%{name} adchargis nova emocimajo %{target}"
create_domain_allow_html: "%{name} permisis federato kun domeno %{target}"
create_domain_block_html: "%{name} obstruktis domeno %{target}"
create_email_domain_block_html: "%{name} obstruktis retpostodomeno %{target}"
create_ip_block_html: "%{name} kreis regulo por IP %{target}"
create_unavailable_domain_html: "%{name} cesis sendo a domeno %{target}"
+ create_user_role_html: "%{name} kreis rolo di %{target}"
demote_user_html: "%{name} despromocis uzanto %{target}"
destroy_announcement_html: "%{name} efacis anunco %{target}"
- destroy_custom_emoji_html: "%{name} destruktis emocimajo %{target}"
+ destroy_canonical_email_block_html: "%{name} obstruktis retpostodomeno %{target}"
+ destroy_custom_emoji_html: "%{name} efacis emocimajo %{target}"
destroy_domain_allow_html: "%{name} despermisis federato kun domeno %{target}"
destroy_domain_block_html: "%{name} deobstruktis domeno %{target}"
destroy_email_domain_block_html: "%{name} deobstruktis retpostodomeno %{target}"
@@ -305,6 +251,7 @@ io:
destroy_ip_block_html: "%{name} efacis regulo por IP %{target}"
destroy_status_html: "%{name} efacis posto da %{target}"
destroy_unavailable_domain_html: "%{name} durigis sendo a domeno %{target}"
+ destroy_user_role_html: "%{name} efacis rolo di %{target}"
disable_2fa_user_html: "%{name} desaktivigis 2-faktorbezono por uzanto %{target}"
disable_custom_emoji_html: "%{name} desaktivigis emocimajo %{target}"
disable_sign_in_token_auth_user_html: "%{name} desaktivigis retpostofichyurizo por %{target}"
@@ -331,8 +278,9 @@ io:
update_announcement_html: "%{name} novigis anunco %{target}"
update_custom_emoji_html: "%{name} novigis emocimajo %{target}"
update_domain_block_html: "%{name} novigis domenobstrukto por %{target}"
+ update_ip_block_html: "%{name} kreis regulo por IP %{target}"
update_status_html: "%{name} novigis posto da %{target}"
- deleted_status: "(efacita posto)"
+ update_user_role_html: "%{name} chanjis rolo di %{target}"
empty: Nula logi.
filter_by_action: Filtrez segun ago
filter_by_user: Filtrez segun uzanto
@@ -376,6 +324,7 @@ io:
listed: Listita
new:
title: Insertez nova kustumizita emocimajo
+ no_emoji_selected: Nula emocimaji chanjesis pro ke nulo selektesis
not_permitted: Vu ne permisesis agar co
overwrite: Remplasez
shortcode: Kurtkodexo
@@ -649,6 +598,67 @@ io:
unresolved: Nerezolvita
updated_at: Novigesis
view_profile: Videz profilo
+ roles:
+ add_new: Insertez rolo
+ assigned_users:
+ one: "%{count} uzanto"
+ other: "%{count} uzanti"
+ categories:
+ administration: Administro
+ devops: Developeri
+ invites: Inviti
+ moderation: Jero
+ special: Specala
+ delete: Efacez
+ description_html: Per uzantoroli , vu povas kustumizar funciono e siti di Mastodon quon vua uzanti povas uzar.
+ edit: Modifikez rolo di '%{name}'
+ everyone: Originala permisi
+ everyone_full_description_html: Co esas bazrolo quo efektigas omna uzanti , mem personi sen rolo. Omna altra roli ganas sama permisi de ol.
+ permissions_count:
+ one: "%{count} permiso"
+ other: "%{count} permisi"
+ privileges:
+ administrator: Administrero
+ administrator_description: Uzanti kun ca permiso ignoros singla permiso
+ delete_user_data: Efacez uzantinformi
+ delete_user_data_description: Permisez uzanti efacar informi di altra uzanti sen varto
+ invite_users: Invitez uzanti
+ invite_users_description: Permisez uzanti invitar nova personi a la servilo
+ manage_announcements: Jerez anunci
+ manage_announcements_description: Permisez uzanti jerar anunci en la servilo
+ manage_appeals: Jerez apeli
+ manage_appeals_description: Permisez uzanti kontrolar apeli kontra jero
+ manage_blocks: Jerez obstrukti
+ manage_blocks_description: Permisez uzanti obstruktar retpostoservilo e adresi di IP
+ manage_custom_emojis: Jerez kustumizita emocimaji
+ manage_custom_emojis_description: Permisez uzanti jerar kustumizita emocimaji en la servilo
+ manage_federation: Jerez federo
+ manage_federation_description: Permisez uzanti obstruktar o permisez federo kun altra domeni, e dominacar sendebleso
+ manage_invites: Jerez inviti
+ manage_invites_description: Permisez uzanti vidar e desaktivigar invitligili
+ manage_reports: Jerez raporti
+ manage_reports_description: Permisez uzanti kontrolar raporti e jerez kontra oli
+ manage_roles: Jerez roli
+ manage_roles_description: Permisez uzanti jerar e ajustar plu basa roli di olia
+ manage_rules: Jerez reguli
+ manage_rules_description: Permisez uzanti chanjar servilreguli
+ manage_settings: Jerez opcioni
+ manage_settings_description: Permisez uzanti chanjar sitopcioni
+ manage_taxonomies: Jerez nomkategorii
+ manage_taxonomies_description: Permisez uzanti kontrolar tendencoza kontenajo e novigar hashtagopcioni
+ manage_user_access: Jerez uzantoeniro
+ manage_user_access_description: Permisez uzanti desaktivigar 2-faktoryurizeso di altra uzanti, chanjar olia retpostoadreso e richanjar olia pasvorto
+ manage_users: Jerez uzanti
+ manage_users_description: Permisez uzanti vidar detali di altra uzanti e jerar kontra oli
+ manage_webhooks: Jerez interrethoki
+ manage_webhooks_description: Permisez uzanti igas interrethoki por administrala eventi
+ view_audit_log: Videz kontrollogo
+ view_audit_log_description: Permisez uzanti vidar historio di administrala agi en la servilo
+ view_dashboard: Videz chefpanelo
+ view_dashboard_description: Permisez uzanti uzar chefpanelo e diversa opcioni
+ view_devops: Developeri
+ view_devops_description: Permisez uzanti uzar chefpaneli Sidekiq e pgHero
+ title: Roli
rules:
add_new: Insertez regulo
delete: Efacez
@@ -657,94 +667,40 @@ io:
empty: Nula servilreguli fixesis til nun.
title: Servilreguli
settings:
- activity_api_enabled:
- desc_html: Quanto de lokale publikigita posti, aktiva uzanti e nova registri quale semane faski
- title: Publikigez rezumstatistiko pri uzantoaktiveso en API
- bootstrap_timeline_accounts:
- desc_html: Separez multopla uzantonomi kun komo. Ca konti garantiesos montresar en sequorekomendi
- title: Rekomendez ca konti a nova uzanti
- contact_information:
- email: Enter a public e-mail address
- username: Enter a username
- custom_css:
- desc_html: Modifikez aspekto kun CSS chargasas che singla pagino
- title: Kustumizita CSS
- default_noindex:
- desc_html: Efektigar omna uzanti quo ne chanjis ca opciono per su
- title: Despartoprenigez uzanti de trovmotorindexo quale originala stando
+ about:
+ manage_rules: Jerez servilreguli
+ preamble: Donez detaloza informi pri quale la servilo funcionar, jeresar e moyenigesar.
+ rules_hint: Havas partikulara areo por reguli quo uzanti expektesar sequar.
+ title: Pri co
+ appearance:
+ preamble: Kustumizitez retintervizajo di Mastodon.
+ title: Aspekto
+ branding:
+ preamble: Fabrikmarko di ca servilo diferentigas lu de altra servili en la reto. Ca informi forsan montresas che diversa loki. Do, ca informi debas esar klara.
+ title: Fabrikmarkeso
+ content_retention:
+ preamble: Dominacez quale uzantigita kontenajo retenesar en Mastodon.
+ title: Kontenajreteneso
+ discovery:
+ follow_recommendations: Sequez rekomendaji
+ preamble: Montrar interesanta kontenajo esas importanta ye voligar nova uzanti quo forsan ne savas irgu. Dominacez quale ca deskovrotraiti funcionar en ca servilo.
+ profile_directory: Profilcheflisto
+ public_timelines: Publika tempolinei
+ title: Deskovro
+ trends: Tendenci
domain_blocks:
all: A omnu
disabled: A nulu
- title: Montrez domenobstrukti
users: A enirinta lokala uzanti
- domain_blocks_rationale:
- title: Montrez motivo
- hero:
- desc_html: Montresas che chefpagino. Minime 600x100px rekomendesas. Se ne fixesis, ol retrouzas servilimajeto
- title: Heroimajo
- mascot:
- desc_html: Montresas che multa chefpagino. Minime 293x205px rekomendesas. Se ne fixesis, ol retrouzas reprezentanto
- title: Reprezenterimajo
- peers_api_enabled:
- desc_html: Domennomo quon ca servilo renkontris en fediverso
- title: Publikigez listo di deskovrita servili en API
- preview_sensitive_media:
- desc_html: Ligilprevidi che altra retsiti montros imajeto mem se medii markizesas quale sentoza
- title: Montrez sentoza medii e OpenGraph previdi
- profile_directory:
- desc_html: Permisez uzanti deskovresar
- title: Aktivigez profilcheflisto
registrations:
- closed_message:
- desc_html: Displayed on frontpage when registrations are closed You can use HTML tags
- title: Mesajo di klozita registro
- deletion:
- desc_html: Permisez irgu efacar sua konto
- title: Apertez kontoefaco
- min_invite_role:
- disabled: Nulu
- title: Permisez inviti da
- require_invite_text:
- desc_html: Se registri bezonas manuala aprobo, kauzigar "Por quo vu volas juntar?" textoenpoz divenar obligata
- title: Bezonez nova uzanti insertar motivo por juntar
+ preamble: Dominacez qua povas krear konto en ca servilo.
+ title: Registragi
registrations_mode:
modes:
approved: Aprobo bezonesas por registro
none: Nulu povas registrar
open: Irgu povas registrar
- title: Registromodo
- show_known_fediverse_at_about_page:
- desc_html: Se desaktivigesis, co permisas publika tempolineo quo ligesas de atingopagino montrar nur lokala kontenajo
- title: Inkluzez federatita kontenajo che neyurizita publika tempolineopagino
- show_staff_badge:
- desc_html: Montrez laborerinsigno che uzantopagino
- title: Montrez laborerinsigno
- site_description:
- desc_html: Displayed as a paragraph on the frontpage and used as a meta tag. You can use HTML tags, in particular <a>
and <em>
.
- title: Site description
- site_description_extended:
- desc_html: Displayed on extended information page You can use HTML tags
- title: Extended site description
- site_short_description:
- desc_html: Montresas en flankobaro e metatagi. Deskriptez Mastodon e por quo ca servilo esas specala per 1 paragrafo.
- title: Kurta servildeskripto
- site_terms:
- desc_html: Vu povas skribar sua privatesguidilo, serveskondicioni e altra legi. Vu povas uzar HTML-tagi
- title: Kustumizita serveskondicioni
- site_title: Site title
- thumbnail:
- desc_html: Uzesis por previdi tra OpenGraph e API. 1200x630px rekomendesas
- title: Servilimajeto
- timeline_preview:
- desc_html: Montrez ligilo e publika tempolineo che atingopagino e permisez API acesar publika tempolineo sen yurizo
- title: Permisez neyurizita aceso a publika tempolineo
- title: Site Settings
- trendable_by_default:
- desc_html: Efektigas hashtagi quo ante nepermisesis
- title: Permisez hashtagi divenies tendencoza sen bezonata kontrolo
- trends:
- desc_html: Publika montrez antee kontrolita kontenajo quo nun esas tendencoza
- title: Tendenci
+ title: Servilopcioni
site_uploads:
delete: Efacez adchargita failo
destroyed_msg: Sitadchargito sucesoze efacesis!
@@ -798,6 +754,9 @@ io:
description_html: Co esas ligili quo nun multe partigesas da konti kun posti quon vua servilo vidas. Ol povas helpar vua uzanti lernar quo eventas en mondo. Ligili ne publike montresas til vu aprobar publikiganto. Vu povas anke permisar o refuzar individuala ligili.
disallow: Despermisez ligilo
disallow_provider: Despermisez publikiganto
+ no_link_selected: Nula ligili chanjesis pro ke nulo selektesis
+ publishers:
+ no_publisher_selected: Nula publikiganti chanjesis pro ke nulo selektesis
shared_by_over_week:
one: Partigesis da 1 persono de pos antea semano
other: Partigesis da %{count} personi de pos antea semano
@@ -817,6 +776,7 @@ io:
description_html: Co esas posti quon vua servilo savas quale nun partigesas e favorizesas multe nun. Ol povas helpar vua nova e retrovenanta uzanti trovar plu multa personi por sequar. Posti ne publike montresas til vu aprobar la skribanto, e la skribanto permisas sua konto sugestesas a altra personi. Vu povas anke permisar o refuzar individuala posti.
disallow: Despermisez posto
disallow_account: Despermisez skribanto
+ no_status_selected: Nula tendencoza posti chanjesis pro ke nulo selektesis
not_discoverable: Skribanto ne konsentis pri esar deskovrebla
shared_by:
one: Partigesis o favorizesis 1 foye
@@ -832,6 +792,7 @@ io:
tag_uses_measure: uzsumo
description_html: Co esas hashtagi quo nun aparas en multa posti quon vua servilo vidas. Ol povas helpar vua uzanti lernar quon personi parolas frequente nun. Hashtagi ne montresas publike til vu aprobar.
listable: Povas sugestesar
+ no_tag_selected: Nula tagi chanjesis pro ke nulo selektesis
not_listable: Ne sugestesar
not_trendable: Ne aparas che tendenci
not_usable: Ne povas uzesar
@@ -852,6 +813,26 @@ io:
edit_preset: Modifikez avertfixito
empty: Vu ne fixis irga avertfixito til nun.
title: Jerez avertfixiti
+ webhooks:
+ add_new: Insertez finpunto
+ delete: Efacez
+ description_html: "Rethoko povigas Mastodon sendar samtempoavizi pri selektita eventi a vua sua apliko, por ke vua apliko povas automate kauzigar reakti ."
+ disable: Desaktivigez
+ disabled: Desaktivigita
+ edit: Modifikez finpunto
+ empty: Vu ne havas irga ajustita finpunti ankore.
+ enable: Aktivigez
+ enabled: Aktiva
+ enabled_events:
+ one: 1 aktivigita evento
+ other: "%{count} aktivigita eventi"
+ events: Eventi
+ new: Nova rethoko
+ rotate_secret: Rotacigez sekreto
+ secret: Signosekreto
+ status: Stando
+ title: Rethoki
+ webhook: Rethok
admin_mailer:
new_appeal:
actions:
@@ -875,12 +856,8 @@ io:
new_trends:
body: 'Ca kozi bezonas kontrol ante ol povas montresar publike:'
new_trending_links:
- no_approved_links: Nun no existas aprobita tendencoza ligili.
- requirements: 'Irga ca probanti povas ecesar la #%{rank} aprobita tendencoligilo, quale nun esas %{lowest_link_title} kun punto %{lowest_link_score}.'
title: Tendencoza ligili
new_trending_statuses:
- no_approved_statuses: Nun ne existas aprobita tendencoza posti.
- requirements: 'Irga ca probanti povas ecesar la #%{rank} aprobita tendencoligilo, quale nun esas %{lowest_status_url} kun punto %{lowest_status_score}.'
title: Tendencoza posti
new_trending_tags:
no_approved_tags: Nun ne existas aprobita tendencoza hashtagi.
@@ -916,16 +893,13 @@ io:
applications:
created: Apliko sucesoze kreesas
destroyed: Apliko sucesoze efacesas
- invalid_url: La URL donita ne esas valida
regenerate_token: Rifacez acesficho
token_regenerated: Acesficho sucesoze riganesas
warning: Sorgemez per ca informi. Ne partigez kun irgu!
your_token: Vua acesficho
auth:
- apply_for_account: Demandez invito
+ apply_for_account: Esez sur vartlisto
change_password: Pasvorto
- checkbox_agreement_html: Se konsentas servilreguli e serveskondiconi
- checkbox_agreement_without_rules_html: Me konsentar serveskondicioni
delete_account: Efacez konto
delete_account_html: Se vu volas efacar vua konto, vu povas irar hike . Vu demandesos konfirmar.
description:
@@ -944,6 +918,7 @@ io:
migrate_account: Transferez a diferanta konto
migrate_account_html: Se vu volas ridirektar ca konto a diferanto, vu povas ajustar hike .
or_log_in_with: O eniras per
+ privacy_policy_agreement_html: Me lektis e konsentis privatesguidilo
providers:
cas: CAS
saml: SAML
@@ -951,12 +926,18 @@ io:
registration_closed: "%{instance} ne aceptas nova membri"
resend_confirmation: Risendar la instrucioni por konfirmar
reset_password: Chanjar la pasvorto
+ rules:
+ preamble: Co igesas e exekutesas da jereri di %{domain}.
+ title: Kelka bazala reguli.
security: Chanjar pasvorto
set_new_password: Selektar nova pasvorto
setup:
email_below_hint_html: Se suba retpostoadreso esas nekorekta, vu povas chanjar hike e ganar nova konfirmretposto.
email_settings_hint_html: Konfirmretposto sendesis a %{email}. Se ta retpostoadreso ne esas korekta, vu povas chanjar en kontoopcioni.
title: Komencoprocedo
+ sign_up:
+ preamble: Per konto en ca servilo di Mastodon, on povas sequar irga persono en ca reto, ne ye ube ona konto hostagisas.
+ title: Ni komencigez vu en %{domain}.
status:
account_status: Kontostando
confirming: Vartas retpostokonfirmo finar.
@@ -965,7 +946,6 @@ io:
redirecting_to: Vua konto esas neaktiva pro ke ol nun ridirektesos a %{acct}.
view_strikes: Videz antea streki kontre vua konto
too_fast: Formulario sendesis tro rapide, probez itere.
- trouble_logging_in: Ka ne povas enirar?
use_security_key: Uzes sekuresklefo
authorize_follow:
already_following: Vu ja sequis ca konto
@@ -1023,10 +1003,6 @@ io:
more_details_html: Por plu multa detali, videz privatesguidilo .
username_available: Vua uzantonomo divenos disponebla itere
username_unavailable: Vua uzantonomo restos nedisponebla
- directories:
- directory: Profilcheflisto
- explanation: Deskovrez uzanti segun olia intereso
- explore_mastodon: Explorez %{title}
disputes:
strikes:
action_taken: Agesis
@@ -1105,29 +1081,60 @@ io:
public: Publika tempolinei
thread: Konversi
edit:
+ add_keyword: Insertez klefvorto
+ keywords: Klefvorti
+ statuses: Individuala posti
+ statuses_hint_html: Ca filtrilo aplikesas a selektita posti ne segun kad oli parigesas kun basa klefvorti. Kontrolez o efacez posti de la filtrilo .
title: Modifikez filtrilo
errors:
+ deprecated_api_multiple_keywords: Ca parametri ne povas chanjesar per ca softwaro pro quo oli efektigas plu kam 1 filtrilklefvorto. Uzez plu recenta softwaro o interretintervizajo.
invalid_context: Nula o nevalida kuntexto donesis
- invalid_irreversible: Neinversigebla filtro nur funcionas kun hemo- e aviz- kuntexto
index:
+ contexts: Filtrili kun %{contexts}
delete: Efacez
empty: Vu ne havas filtrili.
+ expires_in: Expiras ye %{distance}
+ expires_on: Expiras ye %{date}
+ keywords:
+ one: "%{count} klefvorto"
+ other: "%{count} klefvorti"
+ statuses:
+ one: "%{count} posto"
+ other: "%{count} posti"
+ statuses_long:
+ one: "%{count} posto celesas"
+ other: "%{count} posti celesas"
title: Filtrili
new:
+ save: Salvez nova filtrilo
title: Insertez nova filtrilo
+ statuses:
+ back_to_filter: Retrovenez a filtrilo
+ batch:
+ remove: Efacez de filtrilo
+ index:
+ hint: Ca filtrilo aplikesas a selektita posti ne segun altra kriterio. Vu povas pozar plu multa posti a ca filtrilo de retintervizajo.
+ title: Filtrita posti
footer:
- developers: Developeri
- more: Pluse…
- resources: Moyeni
trending_now: Nuna tendenco
generic:
all: Omna
+ all_items_on_page_selected_html:
+ one: "%{count} kozo sur ca sito selektesas."
+ other: Omna %{count} kozi sur ca sito selektesas.
+ all_matching_items_selected_html:
+ one: "%{count} kozo quo parigesas kun vua trovato selektesas."
+ other: Omna %{count} kozi quo parigesas kun vua trovato selektesas.
changes_saved_msg: Chanji senprobleme konservita!
copy: Kopiez
delete: Efacez
+ deselect: Deselektez omno
none: Nulo
order_by: Asortez quale
save_changes: Konservar la chanji
+ select_all_matching_items:
+ one: Selektez %{count} kozo quo parigesas kun vua trovato.
+ other: Selektez omna %{count} kozi quo parigesas kun vua trovato.
today: hodie
validation_errors:
one: Ulo ne eventis senprobleme! Voluntez konsultar la suba eror-raporto
@@ -1151,7 +1158,6 @@ io:
following: Listo de sequati
muting: Silenciglisto
upload: Kargar
- in_memoriam_html: Memorialo.
invites:
delete: Deaktivigez
expired: Expiris
@@ -1232,19 +1238,10 @@ io:
copy_account_note_text: 'Ca uzanti transferesis de %{acct}, co esas vua antea noti pri ol:'
notification_mailer:
admin:
+ report:
+ subject: "%{name} sendis raporto"
sign_up:
subject: "%{name} registris"
- digest:
- action: Videz omna avizi
- body: Yen mikra rezumo di to, depos ke tu laste vizitis en %{since}
- mention: "%{name} mencionis tu en:"
- new_followers_summary:
- one: Tu obtenis nova sequanto! Yey!
- other: Tu obtenis %{count} nova sequanti! Astonive!
- subject:
- one: "1 nova avizo de pos vua antea vizito 🐘"
- other: "%{count} nova avizi de pos vua antea vizito 🐘"
- title: Dum vua neprezenteso...
favourite:
body: "%{name} favoris tua mesajo:"
subject: "%{name} favoris tua mesajo"
@@ -1316,6 +1313,8 @@ io:
other: Altra
posting_defaults: Originala postoopcioni
public_timelines: Publika tempolinei
+ privacy_policy:
+ title: Privatesguidilo
reactions:
errors:
limit_reached: Limito di diferanta reakto atingesis
@@ -1338,22 +1337,7 @@ io:
remove_selected_follows: Desequez selektita uzanti
status: Kontostando
remote_follow:
- acct: Enpozez tua uzernomo@instaluro de ube tu volas sequar ta uzero
missing_resource: La URL di plussendado ne povis esar trovita
- no_account_html: Ka vu ne havas konto? Vu povas registrar hike
- proceed: Durar por plussendar
- prompt: 'Tu sequeskos:'
- reason_html: "Por quo ca demarsho bezonesas? %{instance}
forsan ne esas servilo ube vu registris, do ni bezonas ridirektar vu a vua hemservilo unesme."
- remote_interaction:
- favourite:
- proceed: Durez favorizar
- prompt: 'Vu povas favorizar ca posto:'
- reblog:
- proceed: Durez bustar
- prompt: 'Vu volas bustar ca posto:'
- reply:
- proceed: Durez respondar
- prompt: 'Vu volas respondar ca posto:'
reports:
errors:
invalid_rules: ne refera valida reguli
@@ -1525,90 +1509,6 @@ io:
too_late: Ol esas tro tarda ye apelar ca strekizo
tags:
does_not_match_previous_name: ne parigesas a antea nomo
- terms:
- body_html: |
- Privatesguidilo
- Quo informi kolektesas da ni?
-
-
- Bazala kontoinformo
- Posti, sequo e altra publika informo
- Direta e sequantinura posti : Noto, operacero di servilo e gananta servilo povas vidar tala mesaji . Ne partigez irga privata informi che Mastodon.
- IP e altra metainformi
-
-
-
-
- Por quo ni uzas vua informi?
-
-
- Irga informi quon ni kolektas de vu forsan uzesas per ca metodi:
-
-
- Por donar precipua funciono di Mastodon.
- Por helpar jero di komunitato.
- Retpostoadreso quon vu donas forsan uzesas por sendar informi a vu.
-
-
-
-
- Quale ni protektas vua informi?
-
- Ni facar diversa sekuresdemarsh por mmantenar sekureso di vua personala informi kande vu enirar, sendar o acesar vua personala informi.
-
-
-
- Quo esas nia informiretenguidilo?
-
- Ni esforcive proba:
-
-
- Retenar servillogi quo kontenar IP-adreso di omna demandi a ca servilo.
- Retenar IP-adresi quo relatata kun registrinta uzanti til 12 monati.
-
-
- Vu povas demandar e deschargar arkivo di vua kontenajo.
-
- Vu povas inversigebla efacar vua konto irgatempe.
-
-
-
- Ka ni uzas kukii?
-
- Yes. (Se vu permisas)
-
- Ni uzas kukii por komprenar e sparar vua preferaji por viziti en futuro.
-
-
-
- Ka ni revelas irga informi a externe grupi?
-
- Ni ne vendas, komercar e transferar a externe grupi vua personala identigebla informi.
-
- Vua publika kontenajo forsan deschargesas da altra servili en reto.
-
- Kande vu yurizas softwaro uzar vua konto, ol forsan ganar vua publika profilinformi.
-
-
-
- Situzo da pueri
-
- Se ca servilo esas en EU o EEA: Minimo esas 16 yari. (General Data Protection Regulation )
-
- Se ca servilo esas en USA: Minimo esas 13 yari. (Children's Online Privacy Protection Act )
-
- Legalbezonaji forsan esas diferanta se ca servilo esas en altra regiono.
-
-
-
- Chanji di privatesguidilo
-
- Se ni decidas chanjar nia privatesguidilo, ni postigos ta chanji a ca pagino.
-
- Ca dokumento esas CC-BY-SA.
-
- Tradukesis e modifikesis de Angla de Discourse privacy policy .
- title: Serveskondiconi e Privatesguidilo di %{instance}
themes:
contrast: Mastodon (Alta kontrasteso)
default: Mastodon (Obskura)
@@ -1687,20 +1587,13 @@ io:
suspend: Konto restriktigesis
welcome:
edit_profile_action: Facez profilo
- edit_profile_step: Vu povas kustumizar vua profilo per adchargar profilimajo, kapimajo, chanjar vua montronomo e pluse. Se vu volas kontrolar nova sequanti ante oli permisesar sequantar vu, vu povas klefklozar vua konto.
+ edit_profile_step: Vu povas kustumizar vua profilo per adchargar profilimajo, chanjesar vua montronomo e plue. Vu povas selektas kontrolar nova sequanti ante oli permisesas sequar vu.
explanation: Subo esas guidilo por helpar vu komencar
final_action: Komencez postigar
final_step: 'Jus postigez! Mem sen sequanti, vua publika posti povas videsar da altra personi, exemplo es en lokala tempolineo e en hashtagi. Vu povas anke introduktar su en #introductions hashtagi.'
full_handle: Vua kompleta profilnomo
full_handle_hint: Co esas quon vu dicos a amiki por ke oli povas mesajigar o sequar vu de altra servilo.
- review_preferences_action: Chanjez preferaji
- review_preferences_step: Certigez ke vu fixas vua preferaji, tale quala retposto quon vu volas ganar, o privatesnivelo quo vu volas vua posti normale uzar. Se vu ne havas movmalado, vu povas selektar aktivigar GIF-autopleo.
subject: Bonveno a Mastodon
- tip_federated_timeline: Federatata tempolineo esas generala vido di reto di Mastodon. Ma, ol nur inkluzas personi quon vua vicini abonis, do ol ne esas kompleta.
- tip_following: Vu sequas vua administrer(o) di servilo quale originala stando. Por sequar plu multa interesanta personi, videz lokala e federatata tempolinei.
- tip_local_timeline: Lokala tempolineo esas generala vido di personi che %{instance}. Co esas vua apuda vicini!
- tip_mobile_webapp: Se vua smartfonvidilo povigas vu pozar Mastodon a vua hemskreno, vu povas ganar pulsavizi. Ol funcionas tale traiti di smartfonsoftwaro!
- tips: Guidili
title: Bonveno, %{name}!
users:
follow_limit_reached: Vu ne povas sequar plu kam %{limit} personi
diff --git a/config/locales/is.yml b/config/locales/is.yml
index 4e3f9353eb..cf4f8cbc51 100644
--- a/config/locales/is.yml
+++ b/config/locales/is.yml
@@ -1,94 +1,27 @@
---
is:
about:
- about_hashtag_html: Þetta eru opinberar færslur sem merkt eru með #%{hashtag} . Þú getur unnið með þau ef þú ert með skráðan aðgang einhversstaðar í skýjasambandinu.
about_mastodon_html: 'Samfélagsnet framtíðarinnar: Engar auglýsingar, ekkert eftirlit stórfyrirtækja, siðleg hönnun og engin miðstýring! Þú átt þín eigin gögn í Mastodon!'
- about_this: Um hugbúnaðinn
- active_count_after: virkt
- active_footnote: Mánaðarlega virkir notendur (MAU)
- administered_by: 'Stýrt af:'
- api: API-kerfisviðmót
- apps: Farsímaforrit
- apps_platforms: Notaðu Mastodon frá iOS, Android og öðrum stýrikerfum
- browse_directory: Skoða notendur og sía eftir áhugamálum
- browse_local_posts: Skoðaðu kvikt streymi af opinberum færslum á þessum vefþjóni
- browse_public_posts: Skoðaðu kvikt streymi af opinberum færslum á Mastodon
- contact: Hafa samband
contact_missing: Ekki skilgreint
contact_unavailable: Ekki til staðar
- continue_to_web: Halda áfram í vefforritið
- discover_users: Uppgötva notendur
- documentation: Hjálparskjöl
- federation_hint_html: Með notandaaðgangi á %{instance} geturðu fylgst með fólki á hvaða Mastodon-þjóni sem er og reyndar víðar.
- get_apps: Prófaðu farsímaforrit
hosted_on: Mastodon hýst á %{domain}
- instance_actor_flash: |
- Þessi aðgangur er sýndarnotandi sem er notaður til að tákna sjálfan vefþjóninn en ekki neinn einstakan notanda.
- Tilgangur hans tengist virkni vefþjónasambandsins og ætti alls ekki að loka á hann nema að þú viljir útiloka allan viðkomandi vefþjón, en þá ætti frekar að útiloka sjálft lénið.
- learn_more: Kanna nánar
- logged_in_as_html: Þú ert núna skráð/ur inn sem %{username}.
- logout_before_registering: Þú ert þegar skráð/ur inn.
- privacy_policy: Persónuverndarstefna
- rules: Reglur netþjónsins
- rules_html: 'Hér fyrir neðan er yfirlit yfir þær reglur sem þú þarft að fara eftir ef þú ætlar að vera með notandaaðgang á þessum Mastodon-netþjóni:'
- see_whats_happening: Sjáðu hvað er í gangi
- server_stats: 'Tölfræði þjóns:'
- source_code: Grunnkóði
- status_count_after:
- one: færsla
- other: færslur
- status_count_before: Sem stóðu fyrir
- tagline: Fylgstu með vinum og uppgötvaðu nýja
- terms: Þjónustuskilmálar
- unavailable_content: Ekki tiltækt efni
- unavailable_content_description:
- domain: Vefþjónn
- reason: Ástæða
- rejecting_media: 'Myndefnisskrár frá þessum vefþjónum verða hvorki birtar né geymdar og engar smámyndir frá þeim birtar, sem krefst þess að smellt sé handvirkt til að nálgast upprunalegu skrárnar:'
- rejecting_media_title: Síuð gögn
- silenced: 'Færslur frá þessum vefþjónum verða faldar í opinberum tímalínum og samtölum, auk þess sem engar tilkynningar verða til þvið aðgerðir notendanna, nema ef þú fylgist með þeim:'
- silenced_title: Þaggaðir netþjónar
- suspended: 'Engin gögn frá þessum vefþjónum verða unnin, geymd eða skipst á, sem gerir samskipti við notendur frá þessum vefþjónum ómöguleg:'
- suspended_title: Netþjónar í frysti
- unavailable_content_html: Mastodon leyfir þér almennt að skoða og eiga við efni frá notendum frá hvaða vefþjóni sem er í vefþjónasambandinu. Þetta eru þær undantekningar sem hafa verið gerðar á þessum tiltekna vefþjóni.
- user_count_after:
- one: notanda
- other: notendur
- user_count_before: Hýsir
- what_is_mastodon: Hvað er Mastodon?
+ title: Um hugbúnaðinn
accounts:
- choices_html: "%{name} hefur valið:"
- endorsements_hint: Þú getur auglýst efni frá fólki sem þú fylgir í vefviðmótinu og mun það birtast hér.
- featured_tags_hint: Þú getur gefið sérstökum myllumerkjum aukið vægi og birtast þau þá hér.
follow: Fylgjast með
followers:
one: fylgjandi
other: fylgjendur
following: Fylgist með
instance_actor_flash: Þessi notandaaðgangur er sýndarnotandi sem stendur fyrir sjálfan netþjóninn en ekki neinn einstakling. Hann er notaður við skýjasambandsmiðlun og ætti ekki að setja hann í bið eða banna.
- joined: Gerðist þátttakandi %{date}
last_active: síðasta virkni
link_verified_on: Eignarhald á þessum tengli var athugað þann %{date}
- media: Myndefni
- moved_html: "%{name} hefur verið færður í %{new_profile_link}:"
- network_hidden: Þessar upplýsingar ekki tiltækar
nothing_here: Það er ekkert hér!
- people_followed_by: Fólk sem %{name} fylgist með
- people_who_follow: Fólk sem fylgist með %{name}
pin_errors:
following: Þú þarft að vera þegar að fylgjast með þeim sem þú ætlar að mæla með
posts:
one: Færsla
other: Færslur
posts_tab_heading: Færslur
- posts_with_replies: Færslur og svör
- roles:
- admin: Stjóri
- bot: Róbót
- group: Hópur
- moderator: Umsjón
- unavailable: Notandasnið ekki tiltækt
- unfollow: Hætta að fylgja
admin:
account_actions:
action: Framkvæma aðgerð
@@ -105,12 +38,17 @@ is:
avatar: Auðkennismynd
by_domain: Lén
change_email:
- changed_msg: Tölvupóstfangi notandaaðgangsins hefur verið breytt!
+ changed_msg: Tókst að breyta tölvupóstfangi!
current_email: Núverandi tölvupóstfang
label: Breyta tölvupóstfangi
new_email: Nýr tölvupóstur
submit: Breyta tölvupóstfangi
title: Breyta tölvupóstfangi fyrir %{username}
+ change_role:
+ changed_msg: Tókst að breyta hlutverki!
+ label: Breyta hlutverki
+ no_role: Ekkert hlutverk
+ title: Breyta hlutverki fyrir %{username}
confirm: Staðfesta
confirmed: Staðfest
confirming: Staðfesti
@@ -154,6 +92,7 @@ is:
active: Virkur
all: Allt
pending: Í bið
+ silenced: Takmarkað
suspended: Í bið
title: Umsjón
moderation_notes: Minnispunktar umsjónarmanna
@@ -161,6 +100,7 @@ is:
most_recent_ip: Nýjasta IP-vistfang
no_account_selected: Engum aðgöngum var breytt þar sem engir voru valdir
no_limits_imposed: Engra takmarka krafist
+ no_role_assigned: Engu hlutverki úthlutað
not_subscribed: Ekki í áskrift
pending: Bíður eftir yfirlestri
perform_full_suspension: Setja í bið
@@ -187,12 +127,7 @@ is:
reset: Endurstilla
reset_password: Endurstilla lykilorð
resubscribe: Gerast áskrifandi aftur
- role: Heimildir
- roles:
- admin: Stjórnandi
- moderator: Umsjónarmaður
- staff: Starfsmaður
- user: Notandi
+ role: Hlutverk
search: Leita
search_same_email_domain: Aðra notendur með sama tölvupóstlén
search_same_ip: Aðrir notendur með sama IP-vistfang
@@ -235,17 +170,21 @@ is:
approve_user: Samþykkja notanda
assigned_to_self_report: Úthluta kæru
change_email_user: Skipta um tölvupóstfang notanda
+ change_role_user: Breyta hlutverki notanda
confirm_user: Staðfesta notanda
create_account_warning: Útbúa aðvörun
create_announcement: Búa til tilkynningu
+ create_canonical_email_block: Búa til útilokunarblokk tölvupósts
create_custom_emoji: Búa til sérsniðið tjáningartákn
create_domain_allow: Búa til lén leyft
create_domain_block: Búa til útilokun léns
create_email_domain_block: Búa til útilokun tölvupóstléns
create_ip_block: Búa til IP-reglu
create_unavailable_domain: Útbúa lén sem ekki er tiltækt
+ create_user_role: Útbúa hlutverk
demote_user: Lækka notanda í tign
destroy_announcement: Eyða tilkynningu
+ destroy_canonical_email_block: Eyða útilokunarblokk tölvupósts
destroy_custom_emoji: Eyða sérsniðnu tjáningartákni
destroy_domain_allow: Eyða léni leyft
destroy_domain_block: Eyða útilokun léns
@@ -254,6 +193,7 @@ is:
destroy_ip_block: Eyða IP-reglu
destroy_status: Eyða færslu
destroy_unavailable_domain: Eyða léni sem ekki er tiltækt
+ destroy_user_role: Eyða hlutverki
disable_2fa_user: Gera tveggja-þátta auðkenningu óvirka
disable_custom_emoji: Gera sérsniðið tjáningartákn óvirkt
disable_sign_in_token_auth_user: Gera óvirka auðkenningu með teikni í tölvupósti fyrir notandann
@@ -280,24 +220,30 @@ is:
update_announcement: Uppfæra tilkynningu
update_custom_emoji: Uppfæra sérsniðið tjáningartákn
update_domain_block: Uppfæra útilokun léns
+ update_ip_block: Uppfæra reglu IP-vistfangs
update_status: Uppfæra færslu
+ update_user_role: Uppfæra hlutverk
actions:
approve_appeal_html: "%{name} samþykkti áfrýjun á ákvörðun umsjónarmanns frá %{target}"
approve_user_html: "%{name} samþykkti nýskráningu frá %{target}"
assigned_to_self_report_html: "%{name} úthlutaði kæru %{target} til sín"
change_email_user_html: "%{name} breytti tölvupóstfangi fyrir notandann %{target}"
+ change_role_user_html: "%{name} breytti hlutverki %{target}"
confirm_user_html: "%{name} staðfesti tölvupóstfang fyrir notandann %{target}"
create_account_warning_html: "%{name} sendi aðvörun til %{target}"
create_announcement_html: "%{name} útbjó nýja tilkynningu %{target}"
+ create_canonical_email_block_html: "%{name} útilokaði tölvupóst með tætigildið %{target}"
create_custom_emoji_html: "%{name} sendi inn nýtt tjáningartákn %{target}"
create_domain_allow_html: "%{name} leyfði skýjasamband með léninu %{target}"
create_domain_block_html: "%{name} útilokaði lénið %{target}"
create_email_domain_block_html: "%{name} útilokaði póstlénið %{target}"
create_ip_block_html: "%{name} útbjó reglu fyrir IP-vistfangið %{target}"
create_unavailable_domain_html: "%{name} stöðvaði afhendingu til lénsins %{target}"
+ create_user_role_html: "%{name} útbjó %{target} hlutverk"
demote_user_html: "%{name} lækkaði notandann %{target} í tign"
destroy_announcement_html: "%{name} eyddi tilkynninguni %{target}"
- destroy_custom_emoji_html: "%{name} henti út tjáningartákninu %{target}"
+ destroy_canonical_email_block_html: "%{name} tók af útilokun á tölvupósti með tætigildið %{target}"
+ destroy_custom_emoji_html: "%{name} eyddi emoji-tákni %{target}"
destroy_domain_allow_html: "%{name} bannaði skýjasamband með léninu %{target}"
destroy_domain_block_html: "%{name} aflétti útilokun af léninu %{target}"
destroy_email_domain_block_html: "%{name} aflétti útilokun af póstléninu %{target}"
@@ -305,6 +251,7 @@ is:
destroy_ip_block_html: "%{name} eyddi reglu fyrir IP-vistfangið %{target}"
destroy_status_html: "%{name} fjarlægði færslu frá %{target}"
destroy_unavailable_domain_html: "%{name} hóf aftur afhendingu til lénsins %{target}"
+ destroy_user_role_html: "%{name} eyddi hlutverki %{target}"
disable_2fa_user_html: "%{name} gerði kröfu um tveggja-þátta innskráningu óvirka fyrir notandann %{target}"
disable_custom_emoji_html: "%{name} gerði tjáningartáknið %{target} óvirkt"
disable_sign_in_token_auth_user_html: "%{name} gerði óvirka auðkenningu með teikni í tölvupósti fyrir %{target}"
@@ -331,8 +278,9 @@ is:
update_announcement_html: "%{name} uppfærði tilkynningu %{target}"
update_custom_emoji_html: "%{name} uppfærði tjáningartáknið %{target}"
update_domain_block_html: "%{name} uppfærði útilokun lénsins %{target}"
+ update_ip_block_html: "%{name} breytti reglu fyrir IP-vistfangið %{target}"
update_status_html: "%{name} uppfærði færslu frá %{target}"
- deleted_status: "(eydd færsla)"
+ update_user_role_html: "%{name} breytti hlutverki %{target}"
empty: Engar atvikaskrár fundust.
filter_by_action: Sía eftir aðgerð
filter_by_user: Sía eftir notanda
@@ -376,6 +324,7 @@ is:
listed: Skráð
new:
title: Bæta við nýju sérsniðnu tjáningartákni
+ no_emoji_selected: Engum táknum var breytt þar sem engin voru valin
not_permitted: Þú hefur ekki réttindi til að framkvæma þessa aðgerð
overwrite: Skrifa yfir
shortcode: Stuttkóði
@@ -538,7 +487,7 @@ is:
public_comment: Opinber athugasemd
purge: Henda
purge_description_html: Ef þú heldur að þetta lén sé farið endanlega af netinu, geturðu eytt öllum færslum aðganga og tengdum gögnum frá þessu léni úr gagnageymslum þínum. Þetta gæti tekið þó nokkra stund.
- title: Samband
+ title: Netþjónasambönd
total_blocked_by_us: Útilokað af okkur
total_followed_by_them: Fylgt af þeim
total_followed_by_us: Fylgt af okkur
@@ -649,6 +598,67 @@ is:
unresolved: Óleyst
updated_at: Uppfært
view_profile: Skoða notandasnið
+ roles:
+ add_new: Bæta við hlutverki
+ assigned_users:
+ one: "%{count} notandi"
+ other: "%{count} notendur"
+ categories:
+ administration: Stjórnun
+ devops: Kerfisstjórar
+ invites: Boðsgestir
+ moderation: Umsjón
+ special: Sérstakt
+ delete: Eyða
+ description_html: Með hlutverkum notenda geturðu sérsniðið að hvaða aðgerðum og hvaða svæðum í Mastodon notendurnir þínir hafa aðgang.
+ edit: Breyta hlutverki fyrir '%{name}'
+ everyone: Sjálfgefnar heimildir
+ everyone_full_description_html: Þetta er grunnhlutverk sem allir notendur fá, líka þeir sem ekki hafa fengið neitt sérstakt hlutverk. Öll önnur hlutverk erfa heimildir frá þessu.
+ permissions_count:
+ one: "%{count} heimild"
+ other: "%{count} heimildir"
+ privileges:
+ administrator: Stjórnandi
+ administrator_description: Notendur með þessa heimild fara framhjá öllum öðrum heimildum
+ delete_user_data: Eyða gögnum notanda
+ delete_user_data_description: Leyfir notendum að eyða gögnum annarra notenda án tafar
+ invite_users: Bjóða notendum
+ invite_users_description: Leyfir notendum að bjóða nýju fólki inn á netþjóninn
+ manage_announcements: Sýsla með tilkynningar
+ manage_announcements_description: Leyfir notendum að sýsla með tilkynningar á netþjóninum
+ manage_appeals: Sýsla með áfrýanir
+ manage_appeals_description: Leyfir notendum að yfirfara áfrýjanir vegna aðgerða umsjónarfólks
+ manage_blocks: Sýsla með útilokanir
+ manage_blocks_description: Leyfir notendum að loka á tölvupóstþjónustur og IP-vistföng
+ manage_custom_emojis: Sýsla með sérsniðin tjáningartákn
+ manage_custom_emojis_description: Leyfir notendum að sýsla með sérsniðin tjáningartákn á netþjóninum
+ manage_federation: Sýsla með netþjónasambönd
+ manage_federation_description: Leyfir notendum að loka á eða leyfa samþættingu við önnur lén (federation) og stýra afhendingu skilaboða
+ manage_invites: Sýsla með boðsgesti
+ manage_invites_description: Leyfir notendum að vafra um og gera boðstengla óvirka
+ manage_reports: Sýsla með kærur
+ manage_reports_description: Leyfir notendum að yfirfara kærur og framkvæma umsýsluaðgerðir sem byggjast á þeim
+ manage_roles: Sýsla með hlutverk
+ manage_roles_description: Leyfir notendum að sýsla með hlutverk og úthluta hlutverkum sem eru réttminni en þeirra eigið
+ manage_rules: Sýsla með reglur
+ manage_rules_description: Leyfir notendum að breyta reglum á netþjóninum
+ manage_settings: Sýsla með stillingar
+ manage_settings_description: Leyfir notendum að breyta stillingum vefsvæðisins
+ manage_taxonomies: Sýsla með vægi efnis
+ manage_taxonomies_description: Leyfir notendum að yfirfara vinsælt efni og uppfæra stillingar myllumerkja
+ manage_user_access: Sýsla með notendaaðgang
+ manage_user_access_description: Leyfir notendum að gera tveggja-þátta auðkenningu annarra notenda óvirka, breyta tölvupóstfangi þeirra og endurstilla lykilorð
+ manage_users: Sýsla með notendur
+ manage_users_description: Leyfir notendum að sýsla með nánari upplýsingar um aðra notendur og framkvæma umsýsluaðgerðir gagnvart þeim
+ manage_webhooks: Sýsla með Webhook-vefkrækjur
+ manage_webhooks_description: Leyfir notendum að setja upp webhook-vefkrækjur vagna stjórnunartengdra atburða
+ view_audit_log: Skoða atvikaskráningu
+ view_audit_log_description: Leyfir notendum að skoða feril stjórnunaraðgerða á netþjóninum
+ view_dashboard: Skoða stjórnborð
+ view_dashboard_description: Leyfir notendum að skoða stjórnborðið og sjá ýmsar mælingar
+ view_devops: Kerfisstjórar
+ view_devops_description: Leyfir notendum að skoða Sidekiq og pgHero stjórnborð
+ title: Hlutverk
rules:
add_new: Skrá reglu
delete: Eyða
@@ -657,108 +667,67 @@ is:
empty: Engar reglur fyrir netþjón hafa ennþá verið skilgreindar.
title: Reglur netþjónsins
settings:
- activity_api_enabled:
- desc_html: Fjöldi staðvært birtra færslna, virkra notenda og nýskráninga í vikulegum skömmtum
- title: Birta samantektartölfræði um virkni notanda
- bootstrap_timeline_accounts:
- desc_html: Aðskildu mörg notendanöfn með kommum. Einungis staðværir og ólæstir aðgangar virka. Þegar þetta er autt er sjálgefið miðað við alla staðværa stjórnendur.
- title: Sjálfgefnar fylgnistillingar fyrir nýja notendur
- contact_information:
- email: Fyrirtækistölvupóstur
- username: Notandanafn tengiliðar
- custom_css:
- desc_html: Breyttu útlitinu með CSS-skilgreiningum sem hlaðið er inn á hverri síðu
- title: Sérsniðið CSS
- default_noindex:
- desc_html: Hefur áhrif á alla þá notendur sem ekki hafa breytt þessum stillingum sjálfir
- title: Sjálfgefið láta notendur afþakka atriðaskráningu í leitarvélum
+ about:
+ manage_rules: Sýsla með reglur netþjónsins
+ preamble: Gefðu nánari upplýsingar um hvernig þessi netþjónn er rekinn, hvernig umsjón fer fram með efni á honum eða hann fjármagnaður.
+ rules_hint: Það er sérstakt svæði með þeim reglum sem ætlast er til að notendur þínir fari eftir.
+ title: Um hugbúnaðinn
+ appearance:
+ preamble: Sérsníddu vefviðmót Mastodon.
+ title: Útlit
+ branding:
+ preamble: Útlitsleg einkenni aðgreina netþjóninn þinn frá öðrum netþjónum á netkerfinu. Þessar upplýsingar geta birst á margvíslegum stöðum, eins og til dæmis í vefviðmóti Mastodon, einstökum forritum, í forskoðun tengla á öðrum vefsvæðum og innan samskiptaforrita, svo eitthvað sé talið. Þess vegna er vest að þessar upplýsingar séu skýrar, stuttar og tæmandi.
+ title: Útlitsleg aðgreining
+ content_retention:
+ preamble: Stýrðu hvernig efni frá notendum sé geymt í Mastodon.
+ title: Geymsla efnis
+ discovery:
+ follow_recommendations: Meðmæli um að fylgjast með
+ preamble: Að láta áhugavert efni koma skýrt fram er sérstaklega mikilvægt til að nálgast nýja notendur sem ekki þekkja neinn sem er á Mastodon. Stýrðu því hvernig hinir ýmsu eiginleikar við uppgötvun efnis virka á netþjóninum þínum.
+ profile_directory: Notendamappa
+ public_timelines: Opinberar tímalínur
+ title: Uppgötvun
+ trends: Vinsælt
domain_blocks:
all: Til allra
disabled: Til engra
- title: Birta útilokanir á lénum
users: Til innskráðra staðværra notenda
- domain_blocks_rationale:
- title: Birta röksemdafærslu
- hero:
- desc_html: Birt á forsíðunni. Mælt með að hún sé a.m.k. 600×100 mynddílar. Þegar þetta er ekki stillt, er notuð smámynd netþjónsins
- title: Aðalmynd
- mascot:
- desc_html: Birt á ýmsum síðum. Mælt með að hún sé a.m.k. 293×205 mynddílar. Þegar þetta er ekki stillt, er notuð smámynd netþjónsins
- title: Mynd af lukkudýri
- peers_api_enabled:
- desc_html: Lénaheiti sem þessi netþjónn hefur rekist á í skýjasambandinu (samtengdum vefþjónum - fediverse)
- title: Birta lista yfir uppgötvaða netþjóna
- preview_sensitive_media:
- desc_html: Forskoðun tengla á önnur vefsvæði mun birta smámynd jafnvel þótt myndefnið sé merkt sem viðkvæmt
- title: Birta viðkvæmt myndefni í OpenGraph-forskoðun
- profile_directory:
- desc_html: Leyfa að hægt sé að finna notendur
- title: Virkja notandasniðamöppu
registrations:
- closed_message:
- desc_html: Birt á forsíðu þegar lokað er fyrir nýskráningar. Þú getur notað HTML-einindi
- title: Skilaboð vegna lokunar á nýskráningu
- deletion:
- desc_html: Leyfa öllum að eyða aðgangnum sínum
- title: Opna eyðingu á notandaaðgangi
- min_invite_role:
- disabled: Enginn
- title: Leyfa boð frá
- require_invite_text:
- desc_html: Þegar nýskráningar krefjast handvirks samþykkis, skal gera "Hvers vegna viltu taka þátt?" boðstexta að skyldu fremur en valkvæðan
- title: Krefja nýja notendur um að fylla út boðstexta
+ preamble: Stýrðu því hverjir geta útbúið notandaaðgang á netþjóninum þínum.
+ title: Nýskráningar
registrations_mode:
modes:
approved: Krafist er samþykkt nýskráningar
none: Enginn getur nýskráð sig
open: Allir geta nýskráð sig
- title: Nýskráningarhamur
- show_known_fediverse_at_about_page:
- desc_html: Þegar þetta er óvirkt, takmarkast opinbera tímalínan sem tengt er í af upphafssíðunni við að birta einungis staðvært efni (af sama vefþjóni)
- title: Hafa með efni úr skýjasambandi á síðu fyrir óauðkennda opinbera tímalínu
- show_staff_badge:
- desc_html: Sýna starfsmannamerki á síðu notandans
- title: Sýna starfsmannamerki
- site_description:
- desc_html: Kynningarmálsgrein í API. Lýstu því hvað það er sem geri þennan Mastodon-þjón sérstakan, auk annarra mikilvægra upplýsinga. Þú getur notað HTML-einindi, sér í lagi <a>
og <em>
.
- title: Lýsing á vefþjóni
- site_description_extended:
- desc_html: Góður staður fyrir siðareglur, almennt regluverk, leiðbeiningar og annað sem gerir netþjóninni þinn sérstakann. Þú getur notað HTML-einindi
- title: Sérsniðnar ítarlegar upplýsingar
- site_short_description:
- desc_html: Birt á hliðarspjaldi og í lýsigögnum. Lýstu því hvað Mastodon gerir og hvað það er sem geri þennan vefþjón sérstakan, í einni málsgrein.
- title: Stutt lýsing á netþjóninum
- site_terms:
- desc_html: Þú getur skrifað þína eigin persónuverndarstefnu, þjónustuskilmála eða annað lagatæknilegt. Þú getur notað HTML-einindi
- title: Sérsniðnir þjónustuskilmálar
- site_title: Heiti vefþjóns
- thumbnail:
- desc_html: Notað við forskoðun í gegnum OpenGraph og API-kerfisviðmót. Mælt með 1200×630 mynddílum
- title: Smámynd vefþjóns
- timeline_preview:
- desc_html: Birta tengil í opinbera tímalínu á upphafssíðu og leyfa aðgang API-kerfisviðmóts að opinberri tímalínu án auðkenningar
- title: Leyfa óauðkenndan aðgang að opinberri tímalínu
- title: Stillingar vefsvæðis
- trendable_by_default:
- desc_html: Hefur áhrif á myllumerki sem ekki hafa áður verið gerð óleyfileg
- title: Leyfa myllumerkjum að fara í umræðuna án þess að þau séu fyrst yfirfarin
- trends:
- desc_html: Birta opinberlega þau áður yfirförnu myllumerki sem eru núna í umræðunni
- title: Myllumerki í umræðunni
+ title: Stillingar netþjóns
site_uploads:
delete: Eyða innsendri skrá
destroyed_msg: Það tókst að eyða innsendingu á vefsvæði!
statuses:
+ account: Höfundur
+ application: Forrit
back_to_account: Fara aftur á síðu notandaaðgangsins
back_to_report: Til baka á kærusíðu
batch:
remove_from_report: Fjarlægja úr kæru
report: Kæra
deleted: Eytt
+ favourites: Eftirlæti
+ history: Útgáfuferill
+ in_reply_to: Svarar til
+ language: Tungumál
media:
title: Myndefni
+ metadata: Lýsigögn
no_status_selected: Engum færslum var breytt þar sem engar voru valdar
+ open: Opna færslu
+ original_status: Upprunaleg færsla
+ reblogs: Endurbirtingar
+ status_changed: Færslu breytt
title: Færslur notandaaðgangs
+ trending: Vinsælt
+ visibility: Sýnileiki
with_media: Með myndefni
strikes:
actions:
@@ -798,6 +767,9 @@ is:
description_html: Þetta eru tenglar/slóðir sem mikið er deilt af notendum sem netþjónninn þinn sér færslur frá. Þeir geta hjálpað notendunum þínu við að finna út hvað sé í gangi í heiminum. Engir tenglar birtast opinberlega fyrr en þú hefur samþykkt útgefanda þeirra. Þú getur líka leyft eða hafnað eintökum tenglum.
disallow: Ekki leyfa tengil
disallow_provider: Ekki leyfa útgefanda
+ no_link_selected: Engum tenglum var breytt þar sem engir voru valdir
+ publishers:
+ no_publisher_selected: Engum útgefendum var breytt þar sem engir voru valdir
shared_by_over_week:
one: Deilt af einum aðila síðustu vikuna
other: Deilt af %{count} aðilum síðustu vikuna
@@ -817,6 +789,7 @@ is:
description_html: Þetta eru færslur sem netþjónninn þinn veit að er víða deilt eða eru mikið sett í eftirlæti þessa stundina. Þær geta hjálpað nýjum sem eldri notendum þínum við að finna fleira fólk til að fylgjast með. Engar færslur birtast opinberlega fyrr en þú hefur samþykkt höfund þeirra og að viðkomandi höfundur leyfi að efni frá þeim sé notað í tillögur til annarra. Þú getur líka leyft eða hafnað eintökum færslum.
disallow: Ekki leyfa færslu
disallow_account: Ekki leyfa höfund
+ no_status_selected: Engum vinsælum færslum var breytt þar sem engar voru valdar
not_discoverable: Höfundur hefur ekki beðið um að vera finnanlegur
shared_by:
one: ShaDeilt eða gert að eftirlæti einu sinni
@@ -832,6 +805,7 @@ is:
tag_uses_measure: tilvik alls
description_html: Þetta eru myllumerki sem birtast núna í mjög mörgum færslum sem netþjónninn þinn sér. Þau geta hjálpað notendunum þínu við að finna út hvað sé mest í umræðunni hjá öðru fólki. Engin myllumerki birtast opinberlega fyrr en þú hefur samþykkt þau.
listable: Má stinga uppá
+ no_tag_selected: Engum merkjum var breytt þar sem engin voru valin
not_listable: Mun ekki vera stungið uppá
not_trendable: Mun ekki birtast í vinsældum
not_usable: Má ekki nota
@@ -852,6 +826,26 @@ is:
edit_preset: Breyta forstilltri aðvörun
empty: Þú hefur ekki enn skilgreint neinar aðvaranaforstillingar.
title: Sýsla með forstilltar aðvaranir
+ webhooks:
+ add_new: Bæta við endapunkti
+ delete: Eyða
+ description_html: "webhook-vefkrækja gerir Mastodon kleift að ýta rauntíma-tilkynningum um valda atburði til þinna eigin forrita, þannig að þau forrit getir sett sjálfvirk viðbrögð í gang ."
+ disable: Gera óvirkt
+ disabled: Óvirkt
+ edit: Breyta endapunkti
+ empty: Þú ert ekki enn búin/n að stilla neina endapunkta á webhook-vefkrækjum.
+ enable: Virkja
+ enabled: Virkt
+ enabled_events:
+ one: 1 virkjaður atburður
+ other: "%{count} virkjaðir atburðir"
+ events: Atburðir
+ new: Ný webhook-vefkrækja
+ rotate_secret: Skipta um leyniteikn
+ secret: Leyniteikn undirritunar
+ status: Staða
+ title: Webhook-vefkrækjur
+ webhook: Webhook-vefkrækja
admin_mailer:
new_appeal:
actions:
@@ -875,12 +869,8 @@ is:
new_trends:
body: 'Eftirfarandi atriði þarfnast yfirferðar áður en hægt er að birta þau opinberlega:'
new_trending_links:
- no_approved_links: Það eru í augnablikinu engir samþykktir vinsælir tenglar.
- requirements: 'Hver af þessum tillögum gætu farið yfir samþykkta vinsæla tengilinn númer #%{rank}, sem í augnablikinu er "%{lowest_link_title}" með %{lowest_link_score} stig.'
title: Vinsælir tenglar
new_trending_statuses:
- no_approved_statuses: Það eru í augnablikinu engar samþykktar vinsælar færslur.
- requirements: 'Hver af þessum tillögum gætu farið yfir samþykktu vinsælu færsluna númer #%{rank}, sem í augnablikinu er %{lowest_status_url} með %{lowest_status_score} stig'
title: Vinsælar færslur
new_trending_tags:
no_approved_tags: Það eru í augnablikinu engin samþykkt vinsæl myllumerki.
@@ -916,16 +906,13 @@ is:
applications:
created: Það tókst að búa til forrit
destroyed: Það tókst að eyða forriti
- invalid_url: Slóðin sem þú gafst upp er ógild
regenerate_token: Endurgera aðgangsteikn
token_regenerated: Það tókst að endurgera aðgangsteiknið
warning: Farðu mjög varlega með þessi gögn. Þú skalt aldrei deila þeim með neinum!
your_token: Aðgangsteiknið þitt
auth:
- apply_for_account: Beiðni um boð
+ apply_for_account: Fara á biðlista
change_password: Lykilorð
- checkbox_agreement_html: Ég samþykki reglur vefþjónsins og þjónustuskilmálana
- checkbox_agreement_without_rules_html: Ég samþykki þjónustuskilmálana
delete_account: Eyða notandaaðgangi
delete_account_html: Ef þú vilt eyða notandaaðgangnum þínum, þá geturðu farið í það hér . Þú verður beðin/n um staðfestingu.
description:
@@ -944,6 +931,7 @@ is:
migrate_account: Færa á annan notandaaðgang
migrate_account_html: Ef þú vilt endurbeina þessum aðgangi á einhvern annan, geturðu stillt það hér .
or_log_in_with: Eða skráðu inn með
+ privacy_policy_agreement_html: Ég hef lesið og samþykkt persónuverndarstefnuna
providers:
cas: CAS
saml: SAML
@@ -951,12 +939,18 @@ is:
registration_closed: "%{instance} samþykkir ekki nýja meðlimi"
resend_confirmation: Senda leiðbeiningar vegna staðfestingar aftur
reset_password: Endursetja lykilorð
+ rules:
+ preamble: Þær eru settar og þeim framfylgt af umsjónarmönnum %{domain}.
+ title: Nokkrar grunnreglur.
security: Öryggi
set_new_password: Stilla nýtt lykilorð
setup:
email_below_hint_html: Ef tölvupóstfangið hér fyrir neðan er rangt, skaltu breyta því hér og fá nýjan staðfestingarpóst.
email_settings_hint_html: Staðfestingarpósturinn var sendur til %{email}. Ef það tölvupóstfang er ekki rétt geturðu breytt því í stillingum notandaaðgangsins.
title: Uppsetning
+ sign_up:
+ preamble: Með notandaaðgangi á þessum Mastodon-þjóni geturðu fylgst með hverjum sem er á netkerfinu, sama hvar notandaaðgangurinn þeirra er hýstur.
+ title: Förum núna að setja þig upp á %{domain}.
status:
account_status: Staða notandaaðgangs
confirming: Bíð eftir að staðfestingu tölvupósts sé lokið.
@@ -965,7 +959,6 @@ is:
redirecting_to: Notandaaðgangurinn þinn er óvirkur vegna þess að hann endurbeinist á %{acct}.
view_strikes: Skoða fyrri bönn notandaaðgangsins þíns
too_fast: Innfyllingarform sent inn of hratt, prófaðu aftur.
- trouble_logging_in: Vandræði við að skrá inn?
use_security_key: Nota öryggislykil
authorize_follow:
already_following: Þú ert að þegar fylgjast með þessum aðgangi
@@ -1023,10 +1016,6 @@ is:
more_details_html: Til að skoða þetta nánar, er gott að líta á persónuverndarstefnuna .
username_available: Notandanafnið þitt mun verða tiltækt aftur
username_unavailable: Notandanafnið þitt mun verða áfram ótiltækt
- directories:
- directory: Notandasniðamappa
- explanation: Leitaðu að notendum eftir áhugamálum þeirra
- explore_mastodon: Kannaðu %{title}
disputes:
strikes:
action_taken: Framkvæmd aðgerð
@@ -1105,29 +1094,60 @@ is:
public: Opinberar tímalínur
thread: Samtöl
edit:
+ add_keyword: Bæta við stikkorði
+ keywords: Stikkorð
+ statuses: Einstakar færslur
+ statuses_hint_html: Þessi sía virkar til að velja stakar færslur án tillits til annarra skilyrða. Yfirfarðu eða fjarlægðu færslur úr síunni .
title: Breyta síu
errors:
+ deprecated_api_multiple_keywords: Þessum viðföngum er ekki hægt að breyta úr þessu forriti, þar sem þau eiga við fleiri en eitt stikkorð síu. Notaðu nýrra forrit eða farðu í vefviðmótið.
invalid_context: Ekkert eða ógilt samhengi var gefið
- invalid_irreversible: Óendurkræf síun virkar bara í sambandi við heimasvæði eða tilkynningar
index:
+ contexts: Síur í %{contexts}
delete: Eyða
empty: Þú ert ekki með neinar síur.
+ expires_in: Rennur út %{distance}
+ expires_on: Rennur út þann %{date}
+ keywords:
+ one: "%{count} stikkorð"
+ other: "%{count} stikkorð"
+ statuses:
+ one: "%{count} færsla"
+ other: "%{count} færslur"
+ statuses_long:
+ one: "%{count} stök færsla falin"
+ other: "%{count} stakar færslur faldar"
title: Síur
new:
+ save: Vista nýja síu
title: Bæta við nýrri síu
+ statuses:
+ back_to_filter: Til baka í síu
+ batch:
+ remove: Fjarlægja úr síu
+ index:
+ hint: Þessi sía virkar til að velja stakar færslur án tillits til annarra skilyrða. Þú getur bætt fleiri færslum í þessa síu í vefviðmótinu.
+ title: Síaðar færslur
footer:
- developers: Forritarar
- more: Meira…
- resources: Tilföng
trending_now: Í umræðunni núna
generic:
all: Allt
+ all_items_on_page_selected_html:
+ one: "%{count} atriði á þessari síðu er valið."
+ other: Öll %{count} atriðin á þessari síðu eru valin.
+ all_matching_items_selected_html:
+ one: "%{count} atriði sem samsvarar leitinni þinni er valið."
+ other: Öll %{count} atriðin sem samsvara leitinni þinni eru valin.
changes_saved_msg: Það tókst að vista breytingarnar!
copy: Afrita
delete: Eyða
+ deselect: Afvelja allt
none: Ekkert
order_by: Raða eftir
save_changes: Vista breytingar
+ select_all_matching_items:
+ one: Veldu %{count} atriði sem samsvarar leitinni þinni.
+ other: Veldu öll %{count} atriðin sem samsvara leitinni þinni.
today: í dag
validation_errors:
one: Ennþá er ekk alvegi allt í lagi! Skoðaðu vel villuna hér fyrir neðan
@@ -1151,7 +1171,6 @@ is:
following: Listi yfir þá sem fylgst er með
muting: Listi yfir þagganir
upload: Senda inn
- in_memoriam_html: Minning.
invites:
delete: Gera óvirkt
expired: Útrunnið
@@ -1232,19 +1251,10 @@ is:
copy_account_note_text: 'Þessi notandi fluttist frá %{acct}, hér eru fyrri minnispunktar þínir um hann:'
notification_mailer:
admin:
+ report:
+ subject: "%{name} sendi inn kæru"
sign_up:
subject: "%{name} nýskráði sig"
- digest:
- action: Skoða allar tilkynningar
- body: Hér er stutt yfirlit yfir þau skilaboð sem þú gætir hafa misst af síðan þú leist inn síðast %{since}
- mention: "%{name} minntist á þig í:"
- new_followers_summary:
- one: Að auki, þú hefur fengið einn nýjan fylgjanda á meðan þú varst fjarverandi! Húh!
- other: Að auki, þú hefur fengið %{count} nýja fylgjendur á meðan þú varst fjarverandi! Frábært!
- subject:
- one: "1 ný tilkynning síðan þú leist inn síðast 🐘"
- other: "%{count} nýjar tilkynningar síðan þú leist inn síðast 🐘"
- title: Á meðan þú varst fjarverandi...
favourite:
body: 'Færslan þín var sett í eftirlæti af %{name}:'
subject: "%{name} setti færsluna þína í eftirlæti"
@@ -1316,6 +1326,8 @@ is:
other: Annað
posting_defaults: Sjálfgefin gildi við gerð færslna
public_timelines: Opinberar tímalínur
+ privacy_policy:
+ title: Persónuverndarstefna
reactions:
errors:
limit_reached: Hámarki mismunandi viðbragða náð
@@ -1338,22 +1350,7 @@ is:
remove_selected_follows: Hætta að fylgjast með völdum notendum
status: Staða aðgangs
remote_follow:
- acct: Settu inn notandanafn@lén þaðan sem þú vilt vera virk/ur
missing_resource: Gat ekki fundið endurbeiningarslóðina fyrir notandaaðganginn þinn
- no_account_html: Ertu ekki með aðgang? Þú getur nýskráð þig hér
- proceed: Halda áfram í að fylgjast með
- prompt: 'Þú ætlar að fara að fylgjast með:'
- reason_html: "Hvers vegna er þetta skref nauðsynlegt? %{instance}
er ekki endilega netþjónninn þar sem þú ert skráð/ur, þannig að við verðum að endurbeina þér á heimaþjóninn þinn fyrst."
- remote_interaction:
- favourite:
- proceed: Halda áfram í að setja í eftirlæti
- prompt: 'Þú ætlar að setja þessa færslu í eftirlæti:'
- reblog:
- proceed: Halda áfram í endurbirtingu
- prompt: 'Þú ætlar að endurbirta þessa færslu:'
- reply:
- proceed: Halda áfram í að svara
- prompt: 'Þú ætlar að svara þessari færslu:'
reports:
errors:
invalid_rules: vísar ekki til gildra reglna
@@ -1525,89 +1522,6 @@ is:
too_late: Það er orðið of sint að áfrýja þessari refsingu
tags:
does_not_match_previous_name: samsvarar ekki fyrra nafni
- terms:
- body_html: |
- Persónuverndarstefna
- Hvaða upplýsingum söfnum við?
-
-
- Grunnupplýsingar um notandaaðgang : Ef þú skráir þig á þennan netþjón gætir þú verið beðinn um að setja inn notandanafn, tölvupóstfang og lykilorð. Þú getur líka slegið inn viðbótarupplýsingar um notandasniðið eins og birtingarnafn og æviágrip og hlaðið inn auðkennismynd og mynd á hausborða. Notandanafn, birtingarnafn, æviágrip, auðkennismynd og hausmynd eru alltaf skráð opinberlega.
- Færslur, fylgjendur og aðrar opinberar upplýsingar : Listinn yfir fólk sem þú fylgist með er skráður opinberlega, það sama á við um fylgjendur þína. Þegar þú sendir skilaboð er dagsetning og tími vistuð sem og forritið sem þú sendir skilaboðin frá. Skilaboð geta innihaldið margmiðlunarviðhengi, svo sem myndir og myndskeið. Opinberar og óskráðar færslur eru aðgengilegar opinberlega. Þegar þú birtir færslu á notandaaðgangnum þínum eru það einnig opinberar upplýsingar. Færslurnar þínar eru afhentar fylgjendum þínum, í sumum tilfellum þýðir það að þær eru sendar á mismunandi netþjóna og afrit eru geymd þar. Þegar þú eyðir færslum er þetta líka sent til fylgjenda þinna. Aðgerðin að endurbirta eða setja aðra færslu sem eftirlæti er alltaf opinber.
- Bein skilaboð og eingöngu til fylgjenda : Allar færslur eru geymdar og unnar á þjóninum. Færslur sem eingöngu eru fyrir fylgjendur eru sendar fylgjendum þínum og notendum sem eru nefndir í þeim og bein skilaboð eru aðeins send til notenda sem nefndir eru í þeim. Í sumum tilfellum þýðir það að þeir eru afhentir á mismunandi netþjóna og afrit eru geymd þar. Við leggjum mikið upp úr því að takmarka aðgang að þessum færslum við viðurkennda aðila, en aðrir netþjónar gætu ekki gert það. Þess vegna er mikilvægt að skoða netþjónanana sem fylgjendur þínir tilheyra. Þú getur virkjað valkosti til að samþykkja og hafna nýjum fylgjendum handvirkt í stillingunum. Vinsamlegast hafðu í huga að stjórnendur netþjónsins og móttökuþjóna geta skoðað slík skilaboð og að viðtakendur geta tekið skjámyndir, afritað eða endurdeilt þeim á annan hátt. Ekki deila neinum viðkvæmum upplýsingum í gegnum Mastodon.
- IP-vistföng og önnur lýsigögn : Þegar þú skráir þig inn tökum við upp IP-töluna sem þú skráir þig inn af, svo og heiti vafraforritsins þíns. Allar innskráðar setur eru tiltækar til skoðunar og afturköllunar í stillingunum. Nýjasta IP-talan sem notuð er er geymd í allt að 12 mánuði. Við gætum líka geymt netþjónaskrár sem innihalda IP-tölu hverrar beiðni til netþjónsins okkar.
-
-
-
-
- Í hvað notum við upplýsingarnar þínar?
-
- Allar þær upplýsingar sem við söfnum frá þér gætu verið notaðar á eftirfarandi hátt:
-
-
- Til að veita kjarnavirkni Mastodon. Þú getur aðeins haft samskipti við efni annarra og birt þitt eigið efni þegar þú ert skráð/ur inn. Til dæmis geturðu fylgst með öðru fólki til að skoða sameinaðar færslur þeirra á þinni eigin persónulegu heimatímalínu.
- Til að hjálpa við umsjón samfélagsins, til dæmis að bera saman IP-vistfang þitt við önnur þekkt til að ákvarða bönn eða önnur brot.
- Tölvupóstfangið sem þú gefur upp gæti verið notað til að senda þér upplýsingar, tilkynningar um annað fólk sem hefur samskipti við efnið þitt eða sendir þér skilaboð og til að svara fyrirspurnum og/eða öðrum beiðnum eða spurningum.
-
-
-
-
- Hvernig verndum við upplýsingarnar þínar?
-
- Við innleiðum margvíslegar öryggisráðstafanir til að viðhalda öryggi persónuupplýsinga þinna þegar þú slærð inn, sendir inn eða opnar persónuupplýsingar þínar. Meðal annars er vafralotan þín, sem og umferðin milli forritanna þinna og API-kerfisviðmótsins, tryggð með SSL og lykilorðið þitt er gert að tætigildi með sterku einstefnualgrími. Þú gætir virkjað tveggja-þátta auðkenningu til að tryggja enn frekar aðgang að reikningnum þínum.
-
-
-
- Hver er stefna okkar varðandi varðveislu gagna?
-
- Við munum leggja okkur fram um að:
-
-
- Geyma netþjónaskrár sem innihalda IP-tölu allra beiðna til þessa netþjóns, að því marki sem slíkar skrár eru geymdar, ekki lengur en í 90 daga.
- Geyma IP-tölur tengdar skráðum notendum ekki lengur en í 12 mánuði.
-
-
- Þú getur beðið um og sótt safnskrá með efninu þínu, þar á meðal færslurnar þínar, margmiðlunarviðhengjum, auðkennismynd og hausmynd.
-
- Þú getur eytt reikningnum þínum óafturkræft hvenær sem er.
-
-
-
- Notum við vafrakökur?
-
- Já. Vafrakökur eru litlar skrár sem síða eða þjónustuaðili hennar flytur á harða disk tölvunnar þinnar í gegnum netvafrann þinn (ef þú leyfir). Þessar vafrakökur gera síðunni kleift að þekkja vafrann þinn og, ef þú ert með skráðan reikning, tengja hann við skráða reikninginn þinn.
-
- Við notum vafrakökur til að skilja og vista kjörstillingar þínar fyrir framtíðarheimsóknir.
-
-
-
- Gefum við utanaðkomandi aðilum einhverjar upplýsingar?
-
- Við seljum ekki, skiptum eða sendum á annan hátt til utanaðkomandi aðila neinar persónugreinanlegar upplýsingar um þig. Þetta felur ekki í sér treysta utanaðkomandi aðila sem aðstoða okkur við að reka síðuna okkar, stunda viðskipti við okkur eða þjónusta þig, svo framarlega sem þessir aðilar eru sammála um að halda þessum upplýsingum sem trúnaðarmáli. Við gætum einnig gefið út upplýsingarnar þínar þegar við teljum að það sé viðeigandi til að fara að lögum, framfylgja stefnu okkar á vefsvæðinu eða verja réttindi okkar eða annarra, eignir eða öryggi okkar.
-
- Opinberu efni frá þér gæti verið hlaðið niður af öðrum netþjónum á netinu. Opinberu færslurnar þínar og þær sem eingöngu eru fyrir fylgjendur eru sendar til netþjónanna þar sem fylgjendur þínir eru hýstir og bein skilaboð eru send til netþjóna viðtakenda, að svo miklu leyti sem þessir fylgjendur eða viðtakendur eru hýstir á öðrum netþjóni en þessum.
-
- Þegar þú heimilar forriti að nota reikninginn þinn, fer það eftir umfangi þeirra heimilda sem þú samþykkir, hvort það fái aðgang að opinberum upplýsingunum notandaaðgangsins þínus, lista yfir þá sem þú fylgist með, fylgjendur þína, listunum þínum, öllum færslum þínum og eftirlætum. Forrit hafa aldrei aðgang að netfanginu þínu eða lykilorði.
-
-
-
- Vefsíðunotkun barna
-
- Ef þessi netþjónn er í ESB eða EES: Vefsvæðinu okkar, vörum og þjónustu er öllum beint til fólks sem er að minnsta kosti 16 ára. Ef þú ert yngri en 16 ára, máttu samkvæmt kröfum (GDPR - Almennu gagnaverndarreglugerðinni ) ekki nota þessa síðu .
-
- Ef þessi netþjónn er í Bandaríkjunum: Vefsvæðinu okkar, vörum og þjónustu er öllum beint til fólks sem er að minnsta kosti 13 ára. Ef þú ert yngri en 13 ára, máttu samkvæmt kröfum (COPPA - Children's Online Privacy Protection Act ) ekki nota þessari síðu.
-
- Lagakröfur geta verið mismunandi ef þessi þjónn er í öðru lögsagnarumdæmi.
-
-
-
- Breytingar á persónuverndarstefnu okkar
-
- Ef við ákveðum að breyta persónuverndarstefnu okkar munum við birta þær breytingar á þessari síðu.
-
- Þetta skjal er CC-BY-SA nptkunarleyfi. Það var síðast uppfært 26. maí 2022.
-
- Upphaflega aðlagað frá persónuverndarstefnu Discourse .
- title: "%{instance} - Þjónustuskilmálar og persónuverndarstefna"
themes:
contrast: Mastodon (mikil birtuskil)
default: Mastodon (dökkt)
@@ -1686,20 +1600,13 @@ is:
suspend: Notandaaðgangur í bið
welcome:
edit_profile_action: Setja upp notandasnið
- edit_profile_step: Þú getur sérsniðið notandasniðið þitt með því að senda inn auðkennismynd, síðuhaus, breytt birtingarnafninu þínu og ýmislegt fleira. Ef þú vilt yfirfara nýja fylgjendur áður en þeim er leyft að fylgjast með þér geturðu læst aðgangnum þínum.
+ edit_profile_step: Þú getur sérsniðið notandasniðið þitt með því að setja inn auðkennismynd þína, breyta birtingarnafninu þínu og ýmislegt fleira. Þú getur valið að yfirfara nýja fylgjendur áður en þú leyfir þeim að fylgjast með þér.
explanation: Hér eru nokkrar ábendingar til að koma þér í gang
final_action: Byrjaðu að skrifa
- final_step: 'Byrjaðu að tjá þig! Jafnvel án fylgjenda geta aðrir séð opinberar færslur frá þér, til dæmis á staðværu tímalínunni og í myllumerkjum. Þú gætir jafnvel viljað kynna þig með myllumerkinu #introductions.'
+ final_step: 'Byrjaðu að tjá þig! Jafnvel án fylgjenda geta aðrir séð opinberar færslur frá þér, til dæmis á staðværu tímalínunni eða í myllumerkjum. Þú gætir jafnvel viljað kynna þig á myllumerkinu #introductions.'
full_handle: Fullt auðkenni þitt
full_handle_hint: Þetta er það sem þú myndir gefa upp við vini þína svo þeir geti sent þér skilaboð eða fylgst með þér af öðrum netþjóni.
- review_preferences_action: Breyta kjörstillingum
- review_preferences_step: Gakktu úr skugga um að kjörstillingarnar séu eins og þú vilt hafa þær, eins og t.d. hvaða tölvupóst þú vilt fá, eða hvaða stig friðhelgi þú vilt að færslurnar þínar hafi sjálfgefið. Ef þú hefur ekkert á móti sjónrænu áreiti geturðu virkjað sjálvirka spilun GIF-hreyfimynda.
subject: Velkomin í Mastodon
- tip_federated_timeline: Sameiginlega tímalínan er færibandasýn á Mastodon netkerfið. En hún inniheldur bara fólk sem nágrannar þínir eru áskrifendur að, þannig að hún er ekki tæmandi.
- tip_following: Sjálfgefið er að þú fylgist með stjórnanda eða stjórnendum vefþjónsins. Til að finna fleira áhugavert fólk ættirðu að kíkja á staðværu og sameiginlegu tímalínurnar.
- tip_local_timeline: Staðværa tímalínan er færibandasýn á allt fólkið á %{instance}. Þetta eru þínir næstu nágrannar!
- tip_mobile_webapp: Ef farsímavafrinn býður þér að bæta Mastodon á heimaskjáinn þinn, muntu geta tekið á móti ýti-tilkynningum. Það virkar á ýmsa vegu eins og um uppsett forrit sé að ræða!
- tips: Ábendingar
title: Velkomin/n um borð, %{name}!
users:
follow_limit_reached: Þú getur ekki fylgst með fleiri en %{limit} aðilum
diff --git a/config/locales/it.yml b/config/locales/it.yml
index 708436ee1c..a81ede69d1 100644
--- a/config/locales/it.yml
+++ b/config/locales/it.yml
@@ -1,94 +1,27 @@
---
it:
about:
- about_hashtag_html: Questi sono i toot pubblici etichettati con #%{hashtag} . Puoi interagire con loro se hai un account nel fediverse.
about_mastodon_html: 'Il social network del futuro: niente pubblicità, niente controllo da parte di qualche azienda privata, design etico e decentralizzazione! Con Mastodon il proprietario dei tuoi dati sei tu!'
- about_this: A proposito di questo server
- active_count_after: attivo
- active_footnote: Utenti Attivi Mensili (MAU)
- administered_by: 'Amministrato da:'
- api: API
- apps: Applicazioni per dispositivi mobili
- apps_platforms: Usa Mastodon da iOS, Android e altre piattaforme
- browse_directory: Sfoglia la directory dei profili e filtra per interessi
- browse_local_posts: Sfoglia il flusso di post pubblici in tempo reale su questo server
- browse_public_posts: Sfoglia il flusso di post pubblici in tempo reale su Mastodon
- contact: Contatti
contact_missing: Non impostato
contact_unavailable: N/D
- continue_to_web: Continua all'app web
- discover_users: Scopri utenti
- documentation: Documentazione
- federation_hint_html: Con un account su %{instance} sarai in grado di seguire persone su qualsiasi server Mastodon e oltre.
- get_apps: Prova un'app per smartphone
hosted_on: Mastodon ospitato su %{domain}
- instance_actor_flash: |
- Questo account è un attore virtuale utilizzato per rappresentare il server stesso e non un particolare utente.
- È utilizzato per scopi di federazione e non dovrebbe essere bloccato a meno che non si voglia bloccare l'intera istanza: in questo caso si dovrebbe utilizzare un blocco di dominio.
- learn_more: Scopri altro
- logged_in_as_html: Sei correntemente connesso come %{username}.
- logout_before_registering: Hai già effettuato l'accesso.
- privacy_policy: Politica della privacy
- rules: Regole del server
- rules_html: 'Di seguito è riportato un riassunto delle regole che devi seguire se vuoi avere un account su questo server di Mastodon:'
- see_whats_happening: Guarda cosa succede
- server_stats: 'Statistiche del server:'
- source_code: Codice sorgente
- status_count_after:
- one: stato
- other: stati
- status_count_before: Che hanno pubblicato
- tagline: Segui amici e trovane di nuovi
- terms: Termini di Servizio
- unavailable_content: Server moderati
- unavailable_content_description:
- domain: Server
- reason: 'Motivo:'
- rejecting_media: I file multimediali di questo server non saranno elaborati e non verranno visualizzate miniature, che richiedono clic manuale sull'altro server.
- rejecting_media_title: Media filtrati
- silenced: 'I messaggi da questi server saranno nascosti nelle timeline e nelle conversazioni pubbliche, e nessuna notifica verrà generata dalle interazioni dei loro utenti, a meno che non li stai seguendo:'
- silenced_title: Server silenziati
- suspended: 'Nessun dato da questi server sarà elaborato, memorizzato o scambiato, rendendo impossibile qualsiasi interazione o comunicazione con gli utenti di questi server:'
- suspended_title: Server sospesi
- unavailable_content_html: Mastodon generalmente permette di visualizzare i contenuti e interagire con gli utenti di qualsiasi altro server nel fediverse. Queste sono le eccezioni che sono state create su questo specifico server.
- user_count_after:
- one: utente
- other: utenti
- user_count_before: Home di
- what_is_mastodon: Che cos'è Mastodon?
+ title: Info
accounts:
- choices_html: 'Suggerimenti da %{name}:'
- endorsements_hint: 'Puoi segnalare persone che segui e che apprezzi dall''interfaccia web: saranno mostrate qui.'
- featured_tags_hint: Puoi mettere in evidenza determinati hashtag che verranno visualizzati qui.
follow: Segui
followers:
one: Seguace
other: Seguaci
following: Segui
instance_actor_flash: Questo account è un attore virtuale usato per rappresentare il server stesso e non un singolo utente. Viene utilizzato per scopi federativi e non dovrebbe essere sospeso.
- joined: Dal %{date}
last_active: ultima attività
link_verified_on: La proprietà di questo link è stata controllata il %{date}
- media: Media
- moved_html: "%{name} si è spostato su %{new_profile_link}:"
- network_hidden: Questa informazione non e' disponibile
nothing_here: Qui non c'è nulla!
- people_followed_by: Persone seguite da %{name}
- people_who_follow: Persone che seguono %{name}
pin_errors:
following: Devi gia seguire la persona che vuoi promuovere
posts:
one: Toot
other: Toot
posts_tab_heading: Toot
- posts_with_replies: Toot e risposte
- roles:
- admin: Amministratore
- bot: Bot
- group: Gruppo
- moderator: Moderatore
- unavailable: Profilo non disponibile
- unfollow: Non seguire più
admin:
account_actions:
action: Esegui azione
@@ -105,12 +38,17 @@ it:
avatar: Immagine di profilo
by_domain: Dominio
change_email:
- changed_msg: Account email cambiato con successo!
+ changed_msg: Email modificata!
current_email: Email attuale
label: Cambia email
new_email: Nuova email
submit: Cambia email
title: Cambia email per %{username}
+ change_role:
+ changed_msg: Ruolo modificato correttamente!
+ label: Cambia ruolo
+ no_role: Nessun ruolo
+ title: Cambia ruolo per %{username}
confirm: Conferma
confirmed: Confermato
confirming: Confermando
@@ -154,6 +92,7 @@ it:
active: Attivo
all: Tutto
pending: In attesa
+ silenced: Limitato
suspended: Sospesi
title: Moderazione
moderation_notes: Note di moderazione
@@ -161,6 +100,7 @@ it:
most_recent_ip: IP più recente
no_account_selected: Nessun account è stato modificato visto che non ne è stato selezionato nessuno
no_limits_imposed: Nessun limite imposto
+ no_role_assigned: Nessun ruolo assegnato
not_subscribed: Non sottoscritto
pending: Revisioni in attesa
perform_full_suspension: Sospendi
@@ -187,12 +127,7 @@ it:
reset: Reimposta
reset_password: Reimposta password
resubscribe: Riscriversi
- role: Permessi
- roles:
- admin: Amministratore
- moderator: Moderatore
- staff: Personale
- user: Utente
+ role: Ruolo
search: Cerca
search_same_email_domain: Altri utenti con lo stesso dominio e-mail
search_same_ip: Altri utenti con lo stesso IP
@@ -235,17 +170,21 @@ it:
approve_user: Approva Utente
assigned_to_self_report: Assegna report
change_email_user: Cambia l'e-mail per l'utente
+ change_role_user: Cambia il Ruolo dell'Utente
confirm_user: Conferma utente
create_account_warning: Crea avviso
create_announcement: Crea un annuncio
+ create_canonical_email_block: Crea Blocco E-mail
create_custom_emoji: Crea emoji personalizzata
create_domain_allow: Crea permesso di dominio
create_domain_block: Crea blocco di dominio
create_email_domain_block: Crea blocco dominio e-mail
create_ip_block: Crea regola IP
create_unavailable_domain: Crea dominio non disponibile
+ create_user_role: Crea Ruolo
demote_user: Degrada l'utente
destroy_announcement: Cancella annuncio
+ destroy_canonical_email_block: Elimina Blocco E-mail
destroy_custom_emoji: Cancella emoji personalizzata
destroy_domain_allow: Cancella permesso di dominio
destroy_domain_block: Cancella blocco di dominio
@@ -254,6 +193,7 @@ it:
destroy_ip_block: Elimina regola IP
destroy_status: Cancella stato
destroy_unavailable_domain: Elimina dominio non disponibile
+ destroy_user_role: Distruggi Ruolo
disable_2fa_user: Disabilita l'autenticazione a due fattori
disable_custom_emoji: Disabilita emoji personalizzata
disable_sign_in_token_auth_user: Disabilita autenticazione con codice via email per l'utente
@@ -280,24 +220,30 @@ it:
update_announcement: Aggiorna annuncio
update_custom_emoji: Aggiorna emoji personalizzata
update_domain_block: Aggiorna blocco di dominio
+ update_ip_block: Aggiorna regola IP
update_status: Aggiorna stato
+ update_user_role: Aggiorna Ruolo
actions:
approve_appeal_html: "%{name} ha approvato il ricorso contro la decisione di moderazione da %{target}"
approve_user_html: "%{name} ha approvato la registrazione da %{target}"
assigned_to_self_report_html: "%{name} ha assegnato il rapporto %{target} a se stesso"
change_email_user_html: "%{name} ha cambiato l'indirizzo e-mail dell'utente %{target}"
+ change_role_user_html: "%{name} ha cambiato il ruolo di %{target}"
confirm_user_html: "%{name} ha confermato l'indirizzo e-mail dell'utente %{target}"
create_account_warning_html: "%{name} ha inviato un avviso a %{target}"
create_announcement_html: "%{name} ha creato un nuovo annuncio %{target}"
+ create_canonical_email_block_html: "%{name} ha bloccato l'e-mail con l'hash %{target}"
create_custom_emoji_html: "%{name} ha caricato una nuova emoji %{target}"
create_domain_allow_html: "%{name} ha consentito alla federazione col dominio %{target}"
create_domain_block_html: "%{name} ha bloccato dominio %{target}"
create_email_domain_block_html: "%{name} ha bloccato dominio e-mail %{target}"
create_ip_block_html: "%{name} ha creato una regola per l'IP %{target}"
create_unavailable_domain_html: "%{name} ha interrotto la consegna al dominio %{target}"
+ create_user_role_html: "%{name} ha creato il ruolo %{target}"
demote_user_html: "%{name} ha retrocesso l'utente %{target}"
destroy_announcement_html: "%{name} ha eliminato l'annuncio %{target}"
- destroy_custom_emoji_html: "%{name} ha eliminato emoji %{target}"
+ destroy_canonical_email_block_html: "%{name} ha sbloccato l'email con l'hash %{target}"
+ destroy_custom_emoji_html: "%{name} ha eliminato l'emoji %{target}"
destroy_domain_allow_html: "%{name} ha negato la federazione al dominio %{target}"
destroy_domain_block_html: "%{name} ha sbloccato dominio %{target}"
destroy_email_domain_block_html: "%{name} ha sbloccato il dominio e-mail %{target}"
@@ -305,6 +251,7 @@ it:
destroy_ip_block_html: "%{name} ha eliminato la regola per l'IP %{target}"
destroy_status_html: "%{name} ha eliminato lo status di %{target}"
destroy_unavailable_domain_html: "%{name} ha ripreso la consegna al dominio %{target}"
+ destroy_user_role_html: "%{name} ha eliminato il ruolo %{target}"
disable_2fa_user_html: "%{name} ha disabilitato l'autenticazione a due fattori per l'utente %{target}"
disable_custom_emoji_html: "%{name} ha disabilitato emoji %{target}"
disable_sign_in_token_auth_user_html: "%{name} ha disabilitato l'autenticazione con codice via email per %{target}"
@@ -331,8 +278,9 @@ it:
update_announcement_html: "%{name} ha aggiornato l'annuncio %{target}"
update_custom_emoji_html: "%{name} ha aggiornato emoji %{target}"
update_domain_block_html: "%{name} ha aggiornato il blocco dominio per %{target}"
+ update_ip_block_html: "%{name} ha cambiato la regola per l'IP %{target}"
update_status_html: "%{name} ha aggiornato lo status di %{target}"
- deleted_status: "(stato cancellato)"
+ update_user_role_html: "%{name} ha modificato il ruolo %{target}"
empty: Nessun log trovato.
filter_by_action: Filtra per azione
filter_by_user: Filtra per utente
@@ -376,6 +324,7 @@ it:
listed: Elencato
new:
title: Aggiungi nuovo emoji personalizzato
+ no_emoji_selected: Nessuna emoji è stata cambiata in quanto nessuna è stata selezionata
not_permitted: Non hai il permesso di eseguire questa azione
overwrite: Sovrascrivi
shortcode: Scorciatoia
@@ -649,6 +598,67 @@ it:
unresolved: Non risolto
updated_at: Aggiornato
view_profile: Visualizza profilo
+ roles:
+ add_new: Aggiungi ruolo
+ assigned_users:
+ one: "%{count} utente"
+ other: "%{count} utenti"
+ categories:
+ administration: Amministrazione
+ devops: Devops
+ invites: Inviti
+ moderation: Moderazione
+ special: Speciale
+ delete: Cancella
+ description_html: Con i ruoli utente , puoi personalizzare a quali funzioni e aree di Mastodon i tuoi utenti possono accedere.
+ edit: Modifica il ruolo '%{name}'
+ everyone: Permessi predefiniti
+ everyone_full_description_html: Questo è il ruolo base che influenza tutti gli utenti , anche quelli senza un ruolo assegnato. Tutti gli altri ruoli ereditano i permessi da esso.
+ permissions_count:
+ one: "%{count} permesso"
+ other: "%{count} permessi"
+ privileges:
+ administrator: Amministratore
+ administrator_description: Gli utenti con questo permesso saranno esentati da ogni permesso
+ delete_user_data: Cancella dati utente
+ delete_user_data_description: Consente agli utenti di eliminare subito i dati degli altri utenti
+ invite_users: Invita Utenti
+ invite_users_description: Consente agli utenti di invitare nuove persone su questo server
+ manage_announcements: Gestisci Annunci
+ manage_announcements_description: Consente agli utenti di gestire gli annunci sul server
+ manage_appeals: Gestisci appelli
+ manage_appeals_description: Consente agli utenti di esaminare i ricorsi contro le azioni di moderazione
+ manage_blocks: Gestisci Blocchi
+ manage_blocks_description: Consente agli utenti di bloccare provider e-mail e indirizzi IP
+ manage_custom_emojis: Gestisci emoji personalizzate
+ manage_custom_emojis_description: Consente agli utenti di gestire emoji personalizzate sul server
+ manage_federation: Gestisci Federazione
+ manage_federation_description: Consente agli utenti di bloccare o consentire la federazione con altri domini e controllare la consegnabilità
+ manage_invites: Gestisci Inviti
+ manage_invites_description: Consente agli utenti di esaminare e disattivare i link di invito
+ manage_reports: Gestisci report
+ manage_reports_description: Consente agli utenti di esaminare i report ed eseguire azioni di moderazione su di essi
+ manage_roles: Gestisci Ruoli
+ manage_roles_description: Consente agli utenti di gestire e assegnare i ruoli inferiori al loro
+ manage_rules: Gestisci Regole
+ manage_rules_description: Consente agli utenti di modificare le regole del server
+ manage_settings: Gestisci impostazioni
+ manage_settings_description: Consente agli utenti di modificare le impostazioni del sito
+ manage_taxonomies: Gestisci Tassonomie
+ manage_taxonomies_description: Consente agli utenti di esaminare i contenuti di tendenza e aggiornare le impostazioni degli hashtag
+ manage_user_access: Gestisci accesso utenti
+ manage_user_access_description: Consente agli utenti di disabilitare l'autenticazione a due fattori degli altri utenti, modificare il loro indirizzo e-mail e reimpostare la password
+ manage_users: Gestisci utenti
+ manage_users_description: Consente agli utenti di visualizzare le informazioni sugli altri utenti ed eseguire azioni di moderazione contro di loro
+ manage_webhooks: Gestisci Webhook
+ manage_webhooks_description: Consente agli utenti di impostare webhook per eventi amministrativi
+ view_audit_log: Visualizza Registro Attività
+ view_audit_log_description: Consente agli utenti di vedere una cronologia delle azioni amministrative sul server
+ view_dashboard: Mostra dashboard
+ view_dashboard_description: Consente agli utenti di accedere alla dashboard e alle varie metriche
+ view_devops: Devops
+ view_devops_description: Consente agli utenti di accedere alle dashboard Sidekiq e pgHero
+ title: Ruoli
rules:
add_new: Aggiungi regola
delete: Cancella
@@ -657,108 +667,67 @@ it:
empty: Non sono ancora state definite regole del server.
title: Regole del server
settings:
- activity_api_enabled:
- desc_html: Conteggi degli status pubblicati localmente, degli utenti attivi e delle nuove registrazioni in gruppi settimanali
- title: Pubblica statistiche aggregate circa l'attività dell'utente
- bootstrap_timeline_accounts:
- desc_html: Separa i nomi utente con virgola. Funziona solo con account locali e non bloccati. Quando vuoto, valido per tutti gli amministratori locali.
- title: Seguiti predefiniti per i nuovi utenti
- contact_information:
- email: E-mail di lavoro
- username: Nome utente del contatto
- custom_css:
- desc_html: Modifica l'aspetto con il CSS caricato in ogni pagina
- title: CSS personalizzato
- default_noindex:
- desc_html: Influisce su tutti gli utenti che non hanno cambiato questa impostazione
- title: Esclude gli utenti dall'indicizzazione dei motori di ricerca per impostazione predefinita
+ about:
+ manage_rules: Gestisci le regole del server
+ preamble: Fornire informazioni approfondite su come, il server, venga gestito, moderato e finanziato.
+ rules_hint: C'è un'area dedicata per le regole che i tuoi utenti dovrebbero rispettare.
+ title: Info
+ appearance:
+ preamble: Personalizza l'interfaccia web di Mastodon.
+ title: Aspetto
+ branding:
+ preamble: 'Il marchio del tuo server lo differenzia dagli altri server nella rete. Queste informazioni possono essere visualizzate in una varietà di ambienti, come: l''interfaccia web di Mastodon, le applicazioni native, nelle anteprime dei collegamenti su altri siti Web e all''interno delle app di messaggistica e così via. Per questo motivo, è meglio mantenere queste informazioni chiare, brevi e concise.'
+ title: Marchio
+ content_retention:
+ preamble: Controlla come vengono memorizzati i contenuti generati dall'utente in Mastodon.
+ title: Conservazione dei contenuti
+ discovery:
+ follow_recommendations: Segui le raccomandazioni
+ preamble: La comparsa di contenuti interessanti è determinante per l'arrivo di nuovi utenti che potrebbero non conoscere nessuno su Mastodon. Controlla in che modo varie funzionalità di scoperta funzionano sul tuo server.
+ profile_directory: Directory del profilo
+ public_timelines: Timeline pubbliche
+ title: Scopri
+ trends: Tendenze
domain_blocks:
all: A tutti
disabled: A nessuno
- title: Mostra blocchi di dominio
users: Agli utenti locali connessi
- domain_blocks_rationale:
- title: Mostra motivazione
- hero:
- desc_html: Mostrata nella pagina iniziale. Almeno 600x100 px consigliati. Se non impostata, sarà usato il thumbnail del server
- title: Immagine dell'eroe
- mascot:
- desc_html: Mostrata su più pagine. Almeno 293×205px consigliati. Se non impostata, sarò usata la mascotte predefinita
- title: Immagine della mascotte
- peers_api_enabled:
- desc_html: Nomi di dominio che questo server ha incontrato nel fediverse
- title: Pubblica elenco dei server scoperti
- preview_sensitive_media:
- desc_html: Le anteprime dei link su altri siti mostreranno un thumbnail anche se il media è segnato come sensibile
- title: Mostra media sensibili nella anteprime OpenGraph
- profile_directory:
- desc_html: Permetti agli utenti di essere trovati
- title: Attiva directory dei profili
registrations:
- closed_message:
- desc_html: Mostrato nella pagina iniziale quando le registrazioni sono chiuse. Puoi usare tag HTML
- title: Messaggio per registrazioni chiuse
- deletion:
- desc_html: Consenti a chiunque di cancellare il proprio account
- title: Apri la cancellazione dell'account
- min_invite_role:
- disabled: Nessuno
- title: Permetti inviti da
- require_invite_text:
- desc_html: Quando le iscrizioni richiedono l'approvazione manuale, rendere la richiesta “Perché si desidera iscriversi?” obbligatoria invece che opzionale
- title: Richiedi ai nuovi utenti di rispondere alla richiesta di motivazione per l'iscrizione
+ preamble: Controlla chi può creare un account sul tuo server.
+ title: Registrazioni
registrations_mode:
modes:
approved: Approvazione richiesta per le iscrizioni
none: Nessuno può iscriversi
open: Chiunque può iscriversi
- title: Modalità di registrazione
- show_known_fediverse_at_about_page:
- desc_html: Quando attivato, mostra nell'anteprima i toot da tutte le istanze conosciute. Altrimenti mostra solo i toot locali.
- title: Mostra la fediverse conosciuta nell'anteprima della timeline
- show_staff_badge:
- desc_html: Mostra un distintivo dello staff sulla pagina dell'utente
- title: Mostra badge staff
- site_description:
- desc_html: Paragrafo introduttivo nella pagina iniziale. Descrive ciò che rende speciale questo server Mastodon e qualunque altra cosa sia importante dire. Potete usare marcatori HTML, in particolare <a>
e <em>
.
- title: Descrizione del server
- site_description_extended:
- desc_html: Un posto adatto le regole di comportamento, linee guida e altre cose specifiche del vostro server. Potete usare marcatori HTML
- title: Informazioni estese personalizzate
- site_short_description:
- desc_html: Mostrato nella barra laterale e nei tag meta. Descrive in un paragrafo che cos'è Mastodon e che cosa rende questo server speciale. Se vuoto, sarà usata la descrizione predefinita del server.
- title: Breve descrizione del server
- site_terms:
- desc_html: Potete scrivere la vostra politica sulla privacy, condizioni del servizio o altre informazioni legali. Potete usare tag HTML
- title: Termini di servizio personalizzati
- site_title: Nome del server
- thumbnail:
- desc_html: Usato per anteprime tramite OpenGraph e API. 1200x630px consigliati
- title: Thumbnail del server
- timeline_preview:
- desc_html: Mostra la timeline pubblica sulla pagina iniziale
- title: Anteprima timeline
- title: Impostazioni sito
- trendable_by_default:
- desc_html: Interessa gli hashtag che non sono stati precedentemente disattivati
- title: Permetti agli hashtag di comparire nei trend senza prima controllarli
- trends:
- desc_html: Visualizza pubblicamente gli hashtag precedentemente esaminati che sono attualmente in tendenza
- title: Hashtag di tendenza
+ title: Impostazioni del server
site_uploads:
delete: Cancella il file caricato
destroyed_msg: Caricamento sito eliminato!
statuses:
+ account: Autore
+ application: Applicazione
back_to_account: Torna alla pagina dell'account
back_to_report: Torna alla pagina del report
batch:
remove_from_report: Rimuovi dal report
report: Rapporto
deleted: Cancellato
+ favourites: Preferiti
+ history: Cronologia delle versioni
+ in_reply_to: In risposta a
+ language: Lingua
media:
title: Media
+ metadata: Metadati
no_status_selected: Nessun status è stato modificato perché nessuno era stato selezionato
+ open: Apri il post
+ original_status: Post originale
+ reblogs: Condivisioni
+ status_changed: Post modificato
title: Gli status dell'account
+ trending: Di tendenza
+ visibility: Visibilità
with_media: con media
strikes:
actions:
@@ -798,6 +767,9 @@ it:
description_html: Questi sono collegamenti che attualmente vengono molto condivisi dagli account di cui il server vede i post. Può aiutare i tuoi utenti a scoprire cosa sta succedendo nel mondo. Nessun link viene visualizzato pubblicamente finché non si approva chi lo pubblica. È anche possibile permettere o rifiutare i singoli collegamenti.
disallow: Non consentire link
disallow_provider: Non consentire editore
+ no_link_selected: Nessun collegamento è stato modificato in quanto nessuno è stato selezionato
+ publishers:
+ no_publisher_selected: Nessun editore è stato modificato in quanto nessuno è stato selezionato
shared_by_over_week:
one: Condiviso da una persona nell'ultima settimana
other: Condiviso da %{count} persone nell'ultima settimana
@@ -817,6 +789,7 @@ it:
description_html: Questi sono post noti al tuo server che sono attualmente molto condivisi e preferiti. Può aiutare i tuoi utenti (nuovi e non) a trovare più persone da seguire. Nessun post viene visualizzato pubblicamente fino a quando si approva l'autore, e l'autore permette che il suo account sia suggerito ad altri. È anche possibile permettere o rifiutare singoli post.
disallow: Non consentire post
disallow_account: Non consentire autore
+ no_status_selected: Nessun post di tendenza è stato modificato in quanto nessuno è stato selezionato
not_discoverable: L'autore non ha optato di essere scopribile
shared_by:
one: Condiviso o preferito una volta
@@ -832,6 +805,7 @@ it:
tag_uses_measure: usi totali
description_html: Questi sono hashtag che attualmente compaiono in molti post che il tuo server vede. Può aiutare i tuoi utenti a scoprire di cosa le persone stanno parlando di più al momento. Nessun hashtag viene visualizzato pubblicamente finché non lo approvi.
listable: Suggeribile
+ no_tag_selected: Nessun tag è stato modificato in quanto nessuno è stato selezionato
not_listable: Non sarà suggerito
not_trendable: Non apparirà nelle tendenze
not_usable: Inutilizzabile
@@ -852,6 +826,26 @@ it:
edit_preset: Modifica avviso predefinito
empty: Non hai ancora definito alcun avviso preimpostato.
title: Gestisci avvisi predefiniti
+ webhooks:
+ add_new: Aggiungi endpoint
+ delete: Elimina
+ description_html: Un webhook consente a Mastodon di inviare notifiche in tempo reale su determinati eventi alla tua applicazione, così la tua applicazione può attivare automaticamente delle reazioni .
+ disable: Disabilita
+ disabled: Disabilitato
+ edit: Modifica endpoint
+ empty: Non hai ancora configurato alcun endpoint per webhook.
+ enable: Abilita
+ enabled: Attivo
+ enabled_events:
+ one: 1 evento abilitato
+ other: "%{count} eventi abilitati"
+ events: Eventi
+ new: Nuovo webhook
+ rotate_secret: Ruota segreto
+ secret: Segreto per firma
+ status: Stato
+ title: Webhook
+ webhook: Webhook
admin_mailer:
new_appeal:
actions:
@@ -875,12 +869,8 @@ it:
new_trends:
body: 'I seguenti elementi necessitano di un controllo prima che possano essere visualizzati pubblicamente:'
new_trending_links:
- no_approved_links: Attualmente non ci sono link in tendenza approvati.
- requirements: 'Ognuno di questi candidati potrebbe superare il #%{rank} link di tendenza approvato, che è attualmente "%{lowest_link_title}" con un punteggio di %{lowest_link_score}.'
title: Link di tendenza
new_trending_statuses:
- no_approved_statuses: Attualmente non ci sono post di tendenza approvati.
- requirements: 'Ognuno di questi candidati potrebbe superare il #%{rank} post di tendenza approvato, che è attualmente "%{lowest_status_url}" con un punteggio di %{lowest_status_score}.'
title: Post di tendenza
new_trending_tags:
no_approved_tags: Attualmente non ci sono hashtag di tendenza approvati.
@@ -918,16 +908,13 @@ it:
applications:
created: Applicazione creata con successo
destroyed: Applicazione eliminata con successo
- invalid_url: L'URL fornito non è valido
regenerate_token: Rigenera il token di accesso
token_regenerated: Token di accesso rigenerato
warning: Fa' molta attenzione con questi dati. Non fornirli mai a nessun altro!
your_token: Il tuo token di accesso
auth:
- apply_for_account: Chiedi un invito
+ apply_for_account: Mettiti in lista d'attesa
change_password: Password
- checkbox_agreement_html: Sono d'accordo con le regole del server ed i termini di servizio
- checkbox_agreement_without_rules_html: Accetto i termini di servizio
delete_account: Elimina account
delete_account_html: Se desideri cancellare il tuo account, puoi farlo qui . Ti sarà chiesta conferma.
description:
@@ -946,6 +933,7 @@ it:
migrate_account: Sposta ad un account differente
migrate_account_html: Se vuoi che questo account sia reindirizzato a uno diverso, puoi configurarlo qui .
or_log_in_with: Oppure accedi con
+ privacy_policy_agreement_html: Ho letto e accetto l'informativa sulla privacy
providers:
cas: CAS
saml: SAML
@@ -953,12 +941,18 @@ it:
registration_closed: "%{instance} non accetta nuovi membri"
resend_confirmation: Invia di nuovo le istruzioni di conferma
reset_password: Resetta la password
+ rules:
+ preamble: Questi sono impostati e applicati dai moderatori di %{domain}.
+ title: Alcune regole di base.
security: Credenziali
set_new_password: Imposta una nuova password
setup:
email_below_hint_html: Se l'indirizzo e-mail sottostante non è corretto, puoi cambiarlo qui e ricevere una nuova e-mail di conferma.
email_settings_hint_html: L'email di conferma è stata inviata a %{email}. Se l'indirizzo e-mail non è corretto, puoi modificarlo nelle impostazioni dell'account.
title: Configurazione
+ sign_up:
+ preamble: Con un account su questo server Mastodon, sarai in grado di seguire qualsiasi altra persona sulla rete, indipendentemente da dove sia ospitato il suo account.
+ title: Lascia che ti configuriamo su %{domain}.
status:
account_status: Stato dell'account
confirming: In attesa che la conferma e-mail sia completata.
@@ -967,7 +961,6 @@ it:
redirecting_to: Il tuo account è inattivo perché attualmente reindirizza a %{acct}.
view_strikes: Visualizza le sanzioni precedenti prese nei confronti del tuo account
too_fast: Modulo inviato troppo velocemente, riprova.
- trouble_logging_in: Problemi di accesso?
use_security_key: Usa la chiave di sicurezza
authorize_follow:
already_following: Stai già seguendo questo account
@@ -1025,10 +1018,6 @@ it:
more_details_html: Per maggiori dettagli, vedi la politica di privacy .
username_available: Il tuo nome utente sarà nuovamente disponibile
username_unavailable: Il tuo nome utente rimarrà non disponibile
- directories:
- directory: Directory dei profili
- explanation: Scopri utenti in base ai loro interessi
- explore_mastodon: Esplora %{title}
disputes:
strikes:
action_taken: Azione intrapresa
@@ -1107,29 +1096,60 @@ it:
public: Timeline pubbliche
thread: Conversazioni
edit:
+ add_keyword: Aggiungi parola chiave
+ keywords: Parole chiave
+ statuses: Post singoli
+ statuses_hint_html: Questo filtro si applica a singoli post indipendentemente dal fatto che corrispondano alle parole chiave qui sotto. Rivedi o rimuovi i post dal filtro .
title: Modifica filtro
errors:
+ deprecated_api_multiple_keywords: Questi parametri non possono essere modificati da questa applicazione perché si applicano a più di una parola chiave che fa da filtro. Utilizzare un'applicazione più recente o l'interfaccia web.
invalid_context: Contesto mancante o non valido
- invalid_irreversible: Il filtraggio irreversibile funziona solo nei contesti di home o notifiche
index:
+ contexts: Filtri in %{contexts}
delete: Cancella
empty: Non hai alcun filtro.
+ expires_in: Scade tra %{distance}
+ expires_on: Scade il %{date}
+ keywords:
+ one: "%{count} parola chiave"
+ other: "%{count} parole chiave"
+ statuses:
+ one: "%{count} post"
+ other: "%{count} post"
+ statuses_long:
+ one: "%{count} singolo post nascosto"
+ other: "%{count} singoli post nascosti"
title: Filtri
new:
+ save: Salva nuovo filtro
title: Aggiungi filtro
+ statuses:
+ back_to_filter: Torna al filtro
+ batch:
+ remove: Togli dal filtro
+ index:
+ hint: Questo filtro si applica a singoli post indipendentemente da altri criteri. Puoi aggiungere più post a questo filtro dall'interfaccia Web.
+ title: Post filtrati
footer:
- developers: Sviluppatori
- more: Altro…
- resources: Risorse
trending_now: Di tendenza ora
generic:
all: Tutto
+ all_items_on_page_selected_html:
+ one: "%{count} elemento su questa pagina è selezionato."
+ other: Tutti i %{count} elementi su questa pagina sono selezionati.
+ all_matching_items_selected_html:
+ one: "%{count} elemento corrispondente alla tua ricerca è selezionato."
+ other: Tutti i %{count} elementi corrispondenti alla tua ricerca sono selezionati.
changes_saved_msg: Modifiche effettuate con successo!
copy: Copia
delete: Cancella
+ deselect: Deseleziona tutto
none: Nessuno
order_by: Ordina per
save_changes: Salva modifiche
+ select_all_matching_items:
+ one: Seleziona %{count} elemento corrispondente alla tua ricerca.
+ other: Seleziona tutti gli elementi %{count} corrispondenti alla tua ricerca.
today: oggi
validation_errors:
one: Qualcosa ancora non va bene! Per favore, controlla l'errore qui sotto
@@ -1153,7 +1173,6 @@ it:
following: Lista dei seguiti
muting: Lista dei silenziati
upload: Carica
- in_memoriam_html: In Memoriam.
invites:
delete: Disattiva
expired: Scaduto
@@ -1234,19 +1253,10 @@ it:
copy_account_note_text: 'Questo utente si è spostato da %{acct}, ecco le tue note precedenti su di loro:'
notification_mailer:
admin:
+ report:
+ subject: "%{name} ha inviato una segnalazione"
sign_up:
subject: "%{name} si è iscritto"
- digest:
- action: Vedi tutte le notifiche
- body: Ecco un breve riassunto di quello che ti sei perso dalla tua ultima visita del %{since}
- mention: "%{name} ti ha menzionato:"
- new_followers_summary:
- one: E inoltre hai ricevuto un nuovo seguace mentre eri assente! Urrà!
- other: Inoltre, hai acquisito %{count} nuovi seguaci mentre eri assente! Incredibile!
- subject:
- one: "1 nuova notifica dalla tua ultima visita 🐘"
- other: "%{count} nuove notifiche dalla tua ultima visita 🐘"
- title: In tua assenza…
favourite:
body: 'Il tuo status è stato apprezzato da %{name}:'
subject: "%{name} ha apprezzato il tuo status"
@@ -1318,6 +1328,8 @@ it:
other: Altro
posting_defaults: Predefinite di pubblicazione
public_timelines: Timeline pubbliche
+ privacy_policy:
+ title: Politica sulla privacy
reactions:
errors:
limit_reached: Raggiunto il limite di reazioni diverse
@@ -1340,22 +1352,7 @@ it:
remove_selected_follows: Smetti di seguire gli utenti selezionati
status: Stato dell'account
remote_follow:
- acct: Inserisci il tuo username@dominio da cui vuoi seguire questo utente
missing_resource: Impossibile trovare l'URL di reindirizzamento richiesto per il tuo account
- no_account_html: Non hai un account? Puoi iscriverti qui
- proceed: Conferma
- prompt: 'Stai per seguire:'
- reason_html: "Perchè questo passo è necessario? %{instance}
potrebbe non essere il server nel quale tu sei registrato, quindi dobbiamo reindirizzarti prima al tuo server."
- remote_interaction:
- favourite:
- proceed: Continua per segnare come apprezzato
- prompt: 'Vuoi segnare questo post come apprezzato:'
- reblog:
- proceed: Continua per condividere
- prompt: 'Vuoi condividere questo post:'
- reply:
- proceed: Continua per rispondere
- prompt: 'Vuoi rispondere a questo post:'
reports:
errors:
invalid_rules: non fa riferimento a regole valide
@@ -1527,89 +1524,6 @@ it:
too_late: È troppo tardi per fare appello contro questa sanzione
tags:
does_not_match_previous_name: non corrisponde al nome precedente
- terms:
- body_html: |
- Politica della Privacy
- Che informazioni raccogliamo?
-
-
- Informazioni di base del profilo : Se ti registri su questo server, ti potrebbe venir chiesto di inserire un nome utente, un indirizzo e-mail ed una password. Potresti anche inserire informazioni aggiuntive del profilo come un nome a schermo ed una biografia e caricare una foto profilo ed un'immagine di intestazione. Il nome utente, il nome a schermo, la biografia, la foto profilo e l'immagine di intestazione, sono sempre elencati pubblicamente.
- I post, i seguiti ed altre informazioni pubbliche : L'elenco di persone che segui viene elencata pubblicamente, la stessa cosa è vera per i tuoi seguaci. Quando invii un messaggio, la data e l'orario sono memorizzati così come l'applicazione da cui hai inviato il messaggio. I messaggi potrebbero contenere allegati media, come immagini e video. I post pubblici e non elencati sono disponibili pubblicamente. Quando mostri un post sul tuo profilo, anche questo diventa disponibile pubblicamente. I tuoi post sono consegnati ai tuoi seguaci, in alcuni casi significa che sono consegnati a server differenti e che lì sono memorizzate delle copie. Quando elimini i post, anche questo viene notificato ai tuoi seguaci. L'azione di ripubblicare o preferire un altro post è sempre pubblica.
- Post diretti e solo per i seguaci : Tutti i post sono archiviati ed elaborati sul server. I post solo per seguaci sono consegnati ai tuoi seguaci ed agli utenti che vi hai menzionato, ed i post diretti sono consegnati solo agli utenti in essi menzionati. In alcuni casi significa che sono consegnati a server differenti e che lì sono memorizzate delle copie. Compiamo uno sforzo in buona fede per limitare l'accesso a questi post solo a persone autorizzate, ma gli altri server potrebbero non riuscire a fare ciò. Dunque, è importante rivedere i server a cui appartengono i tuoi seguaci. Potresti attivare/disattivare un'opzione per approvare e rifiutare i nuovi seguaci manualmente nelle impostazioni. Sei pregato di tenere a mente che gli operatori del server e di ogni server ricevente potrebbero visualizzare tali messaggi e che i riceventi potrebbero fotografarli, copiarlo o altrimenti ricondividerli. Non condividere dati sensibili su Mastodon.
- IP ed altri metadati : Quando accedi, registriamo l'indirizzo IP da cui accedi, così come il nome della tua applicazione browser. Tutte le sessioni accedute sono disponibili per la tua revisione e revoca nelle impostazioni. L'ultimo indirizzo IP usato è memorizzato anche fino a 12 mesi. Potremmo anche trattenere i registri del server che includono l'indirizzo IP di ogni richiesta al nostro server.
-
-
-
-
- Per cosa usiamo le tue informazioni
-
- Ogni informazioni che raccogliamo da te potrebbe essere usata nei modi seguenti:
-
-
- Per fornire la funzionalità principale di Mastodon. Puoi interagire solo con il contenuto di altre persone ed postare i tuoi contenuti quando sei acceduto. Per esempio, potresti seguire altre persone per vedere i loro post combinati nella timeline principale personalizzata e tua.
- Per aiutare a moderare la comunità, per esempio comparando il tuo indirizzo IP con altri noti per determinare evasioni dei ban o altre violazioni.
- L'indirizzo email che fornisci potrebbe essere usato per inviarti informazioni, notifiche sull'interazione di altre persone con i tuoi contenuti o inviarti messaggi e per rispondere a interrogativi e/o altre richieste o domande.
-
-
-
-
- Come proteggiamo le tue informazioni
-
- Implementiamo una varietà di misure di sicurezza per mantenere la sicurezza delle tue informazioni personali quando inserisci, invii o accedi alle tue informazioni personali. Tra le altre cose, la tua sessione del browser, così come il tuo traffico tra le tue applicazioni e le API, sono assicurate con SSL e la tua password è in hash usando un forte algoritmo a singolo metodo. Puoi abilitare l'autenticazione a due fattori per assicurare ulteriormente il tuo profilo.
-
-
-
- Qual è la nostra politica di ritenzione dei dati?
-
- Faremo un grande sforzo in buona fede per:
-
-
- Tratteniamo i registri del server contenenti l'indirizzo IP di tutte le richieste in questo server, in cui i registri sono mantenuti, per non più di 90 giorni.
- Tratteniamo gli indirizzi IP associati con utenti registrati da non oltre 12 mesi.
-
-
- Puoi richiedere e scaricare un archivio del tuo contenuto, inclusi i tuoi post, allegati media, foto profilo ed immagine di intestazione.
-
- Puoi eliminare irreversibilmente il tuo profilo in ogni momento.
-
-
-
- Usiamo i cookie
-
- Sì. I cookie sono piccoli file che un sito o il suo fornitore dei servizi trasferisce all'hard drive del tuo computer tramite il tuo browser web (se acconsenti). Questi cookie abilitano il sito a riconoscere il tuo browser e, se hai un profilo registrato, lo associano con il tuo profilo registrato.
-
- Usiamo i cookie per comprendere e salvare le vostre preferenze per visite future.
-
-
-
- Diffondiamo alcuna informazione a terze parti?
-
- Non vendiamo, non scambiamo o trasferiamo altrimenti a terze parti le tue informazioni personalmente identificabili. Questo non include terze parti fidate che ci assistono nell'operare il nostro sito, nel condurre il nostro business o nel servirti, finché queste parti acconsentono a mantenere queste informazioni confidenziali. potremmo anche rilasciare le tue informazioni quando crediamo che il rilascio sia appropriato e soddisfi la legge, si applichi alle nostre politiche del sito o protegga noi o i diritti, la proprietà o la sicurezza di altri.
-
- Il tuo contenuto pubblico potrebbe essere scaricato da altri server nella rete. I tuoi post pubblici e per soli seguaci sono consegnati ai server dove risiedono i seguaci ed i messaggi diretti sono consegnati ai server dei destinatari, finché questi seguaci o destinatari risiedono su un server differente da questo.
-
- Quando autorizzi un'applicazione ad usare il tuo profilo, in base allo scopo dei permessi che approvi, potrebbe accedere alle tue informazioni del profilo pubbliche, l'elenco di chi segui, i tuoi seguaci, i tuoi elenchi, tutti i tuoi post ed i tuoi preferiti. Le applicazioni non possono mai accedere al tuo indirizzo e-mail o alla tua password.
-
-
-
- Uso del sito da bambini
-
- Se questo server è in UE o nell'EEA: Il nostro sito, i prodotti ed i servizi sono tutti diretti a persone che abbiano almeno 16 anni. Se hai meno di 16 anni, per i requisiti del GDPR (General Data Protection Regulation ) non usare questo sito.
-
- Se questo server è negli USA: Il nostro sito, i prodotti ed i servizi sono tutti diretti a persone che abbiano almeno 13 anni. Se hai meno di 13 anni, per i requisiti del COPPA (Children's Online Privacy Protection Act ) non usare questo sito.
-
- I requisiti di legge possono essere diversi se questo server è in un'altra giurisdizione.
-
-
-
- Modifiche alla nostra Politica della Privacy
-
- Se decidiamo di modificare la nostra politica della privacy, posteremo queste modifiche su questa pagina.
-
- Questo documento è CC-BY-SA. L'ultimo aggiornamento è del 26 maggio 2022.
-
- Adattato originalmente dal Discorso Politica della Privacy .
- title: "%{instance} Termini di servizio e politica della privacy"
themes:
contrast: Mastodon (contrasto elevato)
default: Mastodon (scuro)
@@ -1688,20 +1602,13 @@ it:
suspend: Account sospeso
welcome:
edit_profile_action: Configura profilo
- edit_profile_step: Puoi personalizzare il tuo profilo caricando un avatar, un'intestazione, modificando il tuo nome visualizzato e così via. Se vuoi controllare i tuoi nuovi seguaci prima di autorizzarli a seguirti, puoi bloccare il tuo account.
+ edit_profile_step: Puoi personalizzare il tuo profilo caricando un'immagine del profilo, cambiare il tuo nome e altro ancora. Puoi scegliere di esaminare i nuovi seguaci prima che loro siano autorizzati a seguirti.
explanation: Ecco alcuni suggerimenti per iniziare
final_action: Inizia a postare
- final_step: 'Inizia a postare! Anche se non hai seguaci, i tuoi messaggi pubblici possono essere visti da altri, ad esempio nelle timeline locali e negli hashtag. Se vuoi puoi presentarti con l''hashtag #introductions.'
+ final_step: 'Inizia a pubblicare! Anche senza seguaci, i tuoi post pubblici possono essere visti da altri, ad esempio sulla timeline locale o negli hashtag. Potresti presentarti con l''hashtag #presentazione.'
full_handle: Il tuo nome utente completo
full_handle_hint: Questo è ciò che diresti ai tuoi amici in modo che possano seguirti o contattarti da un altro server.
- review_preferences_action: Cambia preferenze
- review_preferences_step: Dovresti impostare le tue preferenze, ad esempio quali email vuoi ricevere oppure il livello predefinito di privacy per i tuoi post. Se le immagini in movimento non ti danno fastidio, puoi abilitare l'animazione automatica delle GIF.
subject: Benvenuto/a su Mastodon
- tip_federated_timeline: La timeline federata visualizza uno dopo l'altro i messaggi pubblicati su Mastodon. Ma comprende solo gli utenti seguiti dai tuoi vicini, quindi non è completa.
- tip_following: Per impostazione predefinita, segui gli amministratori del tuo server. Per trovare utenti più interessanti, dà un'occhiata alle timeline locale e federata.
- tip_local_timeline: La timeline locale visualizza uno dopo l'altro i messaggi degli utenti di %{instance}. Questi sono i tuoi vicini!
- tip_mobile_webapp: Se il tuo browser mobile ti dà la possibilità di aggiungere Mastodon allo schermo, puoi ricevere le notifiche. Funziona un po' come un'app natova!
- tips: Suggerimenti
title: Benvenuto a bordo, %{name}!
users:
follow_limit_reached: Non puoi seguire più di %{limit} persone
diff --git a/config/locales/ja.yml b/config/locales/ja.yml
index defd5ab7ca..bea0677adb 100644
--- a/config/locales/ja.yml
+++ b/config/locales/ja.yml
@@ -1,88 +1,25 @@
---
ja:
about:
- about_hashtag_html: ハッシュタグ #%{hashtag} の公開投稿です。どこか連合に参加しているSNS上にアカウントを作れば、会話に参加することができます。
about_mastodon_html: Mastodonは、オープンなウェブプロトコルを採用した、自由でオープンソースなソーシャルネットワークです。電子メールのような分散型の仕組みを採っています。
- about_this: 詳細情報
- active_count_after: 人がアクティブ
- active_footnote: 月間アクティブユーザー数 (MAU)
- administered_by: '管理者:'
- api: API
- apps: アプリ
- apps_platforms: iOSやAndroidなど、各種環境から利用できます
- browse_directory: ディレクトリから気になる人を探しましょう
- browse_local_posts: このサーバーの公開タイムラインをご覧ください
- browse_public_posts: Mastodonの公開ライブストリームをご覧ください
- contact: 連絡先
contact_missing: 未設定
contact_unavailable: N/A
- continue_to_web: アプリで続ける
- discover_users: ユーザーを見つける
- documentation: ドキュメント
- federation_hint_html: "%{instance}のアカウントひとつでどんなMastodon互換サーバーのユーザーでもフォローできるでしょう。"
- get_apps: モバイルアプリを試す
hosted_on: Mastodon hosted on %{domain}
- instance_actor_flash: "このアカウントはサーバーそのものを示す仮想的なもので、特定のユーザーを示すものではありません。これはサーバーの連合のために使用されます。サーバー全体をブロックするときは、このアカウントをブロックせずに、ドメインブロックを使用してください。 \n"
- learn_more: もっと詳しく
- logged_in_as_html: "%{username}としてログインしています。"
- logout_before_registering: 既にログインしています。
- privacy_policy: プライバシーポリシー
- rules: サーバーのルール
- rules_html: 'このMastodonサーバーには、アカウントの所持にあたって従うべきルールが設定されています。概要は以下の通りです:'
- see_whats_happening: やりとりを見てみる
- server_stats: 'サーバー統計:'
- source_code: ソースコード
- status_count_after:
- other: 投稿
- status_count_before: 投稿数
- tagline: Follow friends and discover new ones
- terms: 利用規約
- unavailable_content: 制限中のサーバー
- unavailable_content_description:
- domain: サーバー
- reason: 制限理由
- rejecting_media: 'これらのサーバーからのメディアファイルは処理されず、保存や変換もされません。サムネイルも表示されません。表示するにはクリックしてそのサーバーに直接アクセスする必要があります:'
- rejecting_media_title: メディアを拒否しているサーバー
- silenced: 'これらのサーバーからの投稿は公開タイムラインと会話から隠されます。また該当するユーザーからの通知は相手をフォローしている場合を除き表示されません:'
- silenced_title: サイレンス済みのサーバー
- suspended: 'これらのサーバーからのデータは処理されず、保存や変換もされません。該当するユーザーとの交流もできません:'
- suspended_title: 停止済みのサーバー
- unavailable_content_html: 通常Mastodonでは連合先のどんなサーバーのユーザーとでもやりとりできます。ただし次のサーバーには例外が設定されています。
- user_count_after:
- other: 人
- user_count_before: ユーザー数
- what_is_mastodon: Mastodonとは?
+ title: About
accounts:
- choices_html: "%{name}によるおすすめ:"
- endorsements_hint: あなたがフォローしている中でおすすめしたい人をここで紹介できます。
- featured_tags_hint: 特定のハッシュタグをここに表示できます。
follow: フォロー
followers:
other: フォロワー
following: フォロー中
instance_actor_flash: このアカウントは、個々のユーザーではなく、サーバー自体を表すために使用される仮想のユーザーです。 連合のために使用されるため、停止しないで下さい。
- joined: "%{date}に登録"
last_active: 最後の活動
link_verified_on: このリンクの所有権は%{date}に確認されました
- media: メディア
- moved_html: "%{name}さんは%{new_profile_link}に引っ越しました:"
- network_hidden: この情報は利用できません
nothing_here: 何もありません!
- people_followed_by: "%{name}さんがフォロー中のアカウント"
- people_who_follow: "%{name}さんをフォロー中のアカウント"
pin_errors:
following: おすすめしたい人はあなたが既にフォローしている必要があります
posts:
other: 投稿
posts_tab_heading: 投稿
- posts_with_replies: 投稿と返信
- roles:
- admin: Admin
- bot: Bot
- group: Group
- moderator: Mod
- unavailable: プロフィールは利用できません
- unfollow: フォロー解除
admin:
account_actions:
action: アクションを実行
@@ -99,12 +36,17 @@ ja:
avatar: アイコン
by_domain: ドメイン
change_email:
- changed_msg: メールアドレスの変更に成功しました!
+ changed_msg: メールアドレスを変更しました!
current_email: 現在のメールアドレス
label: メールアドレスを変更
new_email: 新しいメールアドレス
submit: メールアドレスの変更
title: "%{username}さんのメールアドレスを変更"
+ change_role:
+ changed_msg: ロールを変更しました!
+ label: ロールを変更
+ no_role: ロールがありません
+ title: "%{username}さんのロールを変更"
confirm: 確認
confirmed: 確認済み
confirming: 確認中
@@ -148,6 +90,7 @@ ja:
active: アクティブ
all: すべて
pending: 承認待ち
+ silenced: 制限
suspended: 停止済み
title: モデレーション
moderation_notes: モデレーションメモ
@@ -155,6 +98,7 @@ ja:
most_recent_ip: 直近のIP
no_account_selected: 何も選択されていないため、変更されていません
no_limits_imposed: 制限なし
+ no_role_assigned: ロールが割り当てられていません
not_subscribed: 購読していない
pending: 承認待ち
perform_full_suspension: 活動を完全に停止させる
@@ -180,12 +124,7 @@ ja:
reset: リセット
reset_password: パスワード再設定
resubscribe: 再講読
- role: 役割
- roles:
- admin: 管理者
- moderator: モデレーター
- staff: スタッフ
- user: ユーザー
+ role: ロール
search: 検索
search_same_email_domain: 同じドメインのメールアドレスを使用しているユーザー
search_same_ip: 同じIPのユーザーを検索
@@ -228,17 +167,21 @@ ja:
approve_user: ユーザーの承認
assigned_to_self_report: 通報の担当者に設定
change_email_user: ユーザーのメールアドレスを変更
+ change_role_user: ユーザーのロールを変更
confirm_user: ユーザーの確認
create_account_warning: 警告を作成
create_announcement: お知らせを作成
+ create_canonical_email_block: メールブロックを作成
create_custom_emoji: カスタム絵文字を作成
create_domain_allow: 連合を許可
create_domain_block: ドメインブロックを作成
create_email_domain_block: メールドメインブロックを作成
create_ip_block: IPルールを作成
create_unavailable_domain: 配送できないドメインを作成
+ create_user_role: ロールを作成
demote_user: ユーザーを降格
destroy_announcement: お知らせを削除
+ destroy_canonical_email_block: メールブロックを削除
destroy_custom_emoji: カスタム絵文字を削除
destroy_domain_allow: 連合許可を外す
destroy_domain_block: ドメインブロックを削除
@@ -247,6 +190,7 @@ ja:
destroy_ip_block: IPルールを削除
destroy_status: 投稿を削除
destroy_unavailable_domain: 配送できないドメインを削除
+ destroy_user_role: ロールを削除
disable_2fa_user: 二要素認証を無効化
disable_custom_emoji: カスタム絵文字を無効化
disable_sign_in_token_auth_user: ユーザーのメールトークン認証を無効にする
@@ -273,12 +217,15 @@ ja:
update_announcement: お知らせを更新
update_custom_emoji: カスタム絵文字を更新
update_domain_block: ドメインブロックを更新
+ update_ip_block: IPルールを更新
update_status: 投稿を更新
+ update_user_role: ロールを更新
actions:
approve_appeal_html: "%{name}さんが%{target}さんからの抗議を承認しました"
approve_user_html: "%{target}から登録された%{name}さんを承認しました"
assigned_to_self_report_html: "%{name}さんが通報 %{target}を自身の担当に割り当てました"
change_email_user_html: "%{name}さんが%{target}さんのメールアドレスを変更しました"
+ change_role_user_html: "%{name}さんが%{target}さんのロールを変更しました"
confirm_user_html: "%{name}さんが%{target}さんのメールアドレスを確認済みにしました"
create_account_warning_html: "%{name}さんが%{target}さんに警告メールを送信しました"
create_announcement_html: "%{name}さんが新しいお知らせ %{target}を作成しました"
@@ -288,9 +235,10 @@ ja:
create_email_domain_block_html: "%{name}さんが%{target}をメールドメインブロックに追加しました"
create_ip_block_html: "%{name}さんがIP %{target}のルールを作成しました"
create_unavailable_domain_html: "%{name}がドメイン %{target}への配送を停止しました"
+ create_user_role_html: "%{name}さんがロール『%{target}』を作成しました"
demote_user_html: "%{name}さんが%{target}さんを降格しました"
destroy_announcement_html: "%{name}さんがお知らせ %{target}を削除しました"
- destroy_custom_emoji_html: "%{name}さんがカスタム絵文字 %{target}を削除しました"
+ destroy_custom_emoji_html: "%{name}さんがカスタム絵文字『%{target}』を削除しました"
destroy_domain_allow_html: "%{name}さんが%{target}の連合許可を外しました"
destroy_domain_block_html: "%{name}さんがドメイン %{target}のブロックを外しました"
destroy_email_domain_block_html: "%{name}さんが%{target}をメールドメインブロックから外しました"
@@ -298,6 +246,7 @@ ja:
destroy_ip_block_html: "%{name}さんが IP %{target}のルールを削除しました"
destroy_status_html: "%{name}さんが%{target}さんの投稿を削除しました"
destroy_unavailable_domain_html: "%{name}がドメイン %{target}への配送を再開しました"
+ destroy_user_role_html: "%{name}さんがロール『%{target}』を削除しました"
disable_2fa_user_html: "%{name}さんが%{target}さんの二要素認証を無効化しました"
disable_custom_emoji_html: "%{name}さんがカスタム絵文字 %{target}を無効化しました"
disable_sign_in_token_auth_user_html: "%{name}さんが%{target}さんのメールトークン認証を無効にしました"
@@ -325,7 +274,7 @@ ja:
update_custom_emoji_html: "%{name}さんがカスタム絵文字 %{target}を更新しました"
update_domain_block_html: "%{name}さんが%{target}のドメインブロックを更新しました"
update_status_html: "%{name}さんが%{target}さんの投稿を更新しました"
- deleted_status: "(削除済)"
+ update_user_role_html: "%{name}さんがロール『%{target}』を変更しました"
empty: ログが見つかりませんでした
filter_by_action: アクションでフィルター
filter_by_user: ユーザーでフィルター
@@ -417,6 +366,7 @@ ja:
destroyed_msg: ドメインブロックを外しました
domain: ドメイン
edit: ドメインブロックを編集
+ existing_domain_block: あなたは既に%{name}さんに厳しい制限を課しています。
existing_domain_block_html: 既に%{name}に対して、より厳しい制限を課しています。先にその制限を解除 する必要があります。
new:
create: ブロックを作成
@@ -629,6 +579,62 @@ ja:
unresolved: 未解決
updated_at: 更新日時
view_profile: プロフィールを表示
+ roles:
+ add_new: ロールを追加
+ assigned_users:
+ other: "%{count}人"
+ categories:
+ administration: 管理
+ devops: 開発者
+ invites: 招待
+ moderation: モデレーション
+ special: スペシャル
+ delete: 削除
+ description_html: "ユーザー ロール を使用すると、ユーザーがアクセスできる Mastodon の機能や領域をカスタマイズできます。"
+ edit: "『%{name}』のロールを編集"
+ everyone: デフォルトの権限
+ everyone_full_description_html: これは、割り当てられたロールを持っていないものであっても、 すべてのユーザー に影響を与える 基本ロール です。 他のすべてのロールは、そこから権限を継承します。
+ permissions_count:
+ other: "%{count}件の権限"
+ privileges:
+ administrator: 管理者
+ administrator_description: この権限を持つユーザーはすべての権限をバイパスします
+ delete_user_data: ユーザーデータの削除
+ delete_user_data_description: ユーザーは、遅滞なく他のユーザーのデータを削除することができます
+ invite_users: ユーザーを招待
+ invite_users_description: ユーザーが新しい人を招待できるようにします
+ manage_announcements: お知らせの管理
+ manage_announcements_description: ユーザーがアナウンスを管理できるようにします
+ manage_appeals: 抗議の管理
+ manage_appeals_description: ユーザーはモデレーションアクションに対する抗議を確認できます
+ manage_blocks: ブロックの管理
+ manage_blocks_description: ユーザーがメールプロバイダとIPアドレスをブロックできるようにします
+ manage_custom_emojis: カスタム絵文字を管理
+ manage_custom_emojis_description: ユーザーがサーバー上のカスタム絵文字を管理できるようにします
+ manage_federation: 連合の管理
+ manage_federation_description: ユーザーが他のドメインとの連合をブロックまたは許可したり、配信を制御したりできます。
+ manage_invites: 招待を管理
+ manage_reports: レポートの管理
+ manage_reports_description: ユーザーがレポートを確認したり、モデレーションアクションを実行したりできます。
+ manage_roles: ロールの管理
+ manage_rules: ルールの管理
+ manage_rules_description: ユーザーがサーバールールを変更できるようにします
+ manage_settings: 設定の管理
+ manage_settings_description: ユーザーがサイト設定を変更できるようにします
+ manage_taxonomies: 分類の管理
+ manage_taxonomies_description: トレンドコンテンツの確認とハッシュタグの設定の更新
+ manage_user_access: アクセス権を管理
+ manage_user_access_description: 他のユーザーの2段階認証を無効にしたり、メールアドレスを変更したり、パスワードをリセットしたりすることができます。
+ manage_users: ユーザーの管理
+ manage_webhooks: Webhookの管理
+ manage_webhooks_description: 管理者イベントのWebhookを設定できます。
+ view_audit_log: 監査ログの表示
+ view_audit_log_description: ユーザーがサーバー上で管理アクションの履歴を表示できるようにします
+ view_dashboard: ダッシュボードの表示
+ view_dashboard_description: ユーザーがダッシュボードやさまざまなメトリクスにアクセスできるようにします
+ view_devops: 開発者
+ view_devops_description: Sidekiq と pgHero ダッシュボードにアクセスできるようにします
+ title: ロール
rules:
add_new: ルールを追加
delete: 削除
@@ -637,94 +643,34 @@ ja:
empty: サーバーのルールが定義されていません。
title: サーバーのルール
settings:
- activity_api_enabled:
- desc_html: 週ごとのローカルに投稿された投稿数、アクティブなユーザー数、新規登録者数
- title: ユーザーアクティビティに関する統計を公開する
- bootstrap_timeline_accounts:
- desc_html: 複数のユーザー名を指定する場合コンマで区切ります。おすすめに表示されます。
- title: 新規ユーザーにおすすめするアカウント
- contact_information:
- email: ビジネスメールアドレス
- username: 連絡先ユーザー名
- custom_css:
- desc_html: 全ページに適用されるCSSの編集
- title: カスタムCSS
- default_noindex:
- desc_html: この設定を変更していない全ユーザーに影響します
- title: デフォルトで検索エンジンによるインデックスを拒否する
+ about:
+ manage_rules: サーバーのルールを管理
+ title: About
+ appearance:
+ preamble: ウェブインターフェースをカスタマイズします。
+ title: 外観
+ branding:
+ title: ブランディング
+ content_retention:
+ title: コンテンツの保持
+ discovery:
+ follow_recommendations: おすすめフォロー
+ profile_directory: ディレクトリ
+ public_timelines: 公開タイムライン
+ trends: トレンド
domain_blocks:
all: 誰にでも許可
disabled: 誰にも許可しない
- title: ドメインブロックを表示
users: ログイン済みローカルユーザーのみ許可
- domain_blocks_rationale:
- title: コメントを表示
- hero:
- desc_html: フロントページに表示されます。サイズは600x100px以上推奨です。未設定の場合、標準のサムネイルが使用されます
- title: ヒーローイメージ
- mascot:
- desc_html: 複数のページに表示されます。サイズは293x205px以上推奨です。未設定の場合、標準のマスコットが使用されます
- title: マスコットイメージ
- peers_api_enabled:
- desc_html: 連合内でこのサーバーが遭遇したドメインの名前
- title: 接続しているサーバーのリストを公開する
- preview_sensitive_media:
- desc_html: 他のウェブサイトにリンクを貼った際、メディアが閲覧注意としてマークされていてもサムネイルが表示されます
- title: OpenGraphによるプレビューで閲覧注意のメディアも表示する
- profile_directory:
- desc_html: ユーザーが見つかりやすくできるようになります
- title: ディレクトリを有効にする
registrations:
- closed_message:
- desc_html: 新規登録を停止しているときにフロントページに表示されます。HTMLタグが使えます
- title: 新規登録停止時のメッセージ
- deletion:
- desc_html: 誰でも自分のアカウントを削除できるようにします
- title: アカウント削除を受け付ける
- min_invite_role:
- disabled: 誰にも許可しない
- title: 招待の作成を許可
- require_invite_text:
- desc_html: アカウント登録が承認制の場合、「意気込みをお聞かせください」のテキストを必須入力にする
- title: 新規ユーザー登録時の理由を必須入力にする
+ preamble: あなたのサーバー上でアカウントを作成できるユーザーを制御します。
+ title: 登録
registrations_mode:
modes:
approved: 登録には承認が必要
none: 誰にも許可しない
open: 誰でも登録可
- title: 新規登録
- show_known_fediverse_at_about_page:
- desc_html: チェックを外すと、ランディングページからリンクされた公開タイムラインにローカルの公開投稿のみ表示します。
- title: 公開タイムラインに連合先のコンテンツも表示する
- show_staff_badge:
- desc_html: ユーザーページにスタッフのバッジを表示します
- title: スタッフバッジを表示する
- site_description:
- desc_html: フロントページへの表示に使用される紹介文です。このMastodonサーバーを特徴付けることやその他重要なことを記述してください。HTMLタグ、特に<a>
と <em>
が使えます。
- title: サーバーの説明
- site_description_extended:
- desc_html: あなたのサーバーにおける行動規範やルール、ガイドライン、そのほかの記述をする際に最適な場所です。HTMLタグが使えます
- title: カスタム詳細説明
- site_short_description:
- desc_html: サイドバーとmetaタグに表示されます。Mastodonとは何か、そしてこのサーバーの特別な何かを1段落で記述してください。空欄の場合、サーバーの説明が使用されます。
- title: 短いサーバーの説明
- site_terms:
- desc_html: 独自のプライバシーポリシーや利用規約、その他の法的根拠を記述できます。HTMLタグが使えます
- title: カスタム利用規約
- site_title: サーバーの名前
- thumbnail:
- desc_html: OpenGraphとAPIによるプレビューに使用されます。サイズは1200×630px推奨です
- title: サーバーのサムネイル
- timeline_preview:
- desc_html: ランディングページに公開タイムラインへのリンクを表示し、認証なしでの公開タイムラインへのAPIアクセスを許可します
- title: 公開タイムラインへの未認証のアクセスを許可する
- title: サイト設定
- trendable_by_default:
- desc_html: 表示を拒否していないハッシュタグに影響します
- title: 審査前のハッシュタグのトレンドへの表示を許可する
- trends:
- desc_html: 現在トレンドになっている承認済みのハッシュタグを公開します
- title: トレンドタグを有効にする
+ title: サーバー設定
site_uploads:
delete: ファイルを削除
destroyed_msg: ファイルを削除しました!
@@ -825,6 +771,21 @@ ja:
edit_preset: プリセット警告文を編集
empty: まだプリセット警告文が作成されていません。
title: プリセット警告文を管理
+ webhooks:
+ add_new: エンドポイントを追加
+ delete: 削除
+ disable: 無効化
+ disabled: 無効
+ edit: エンドポイントを編集
+ enable: 有効化
+ enabled: アクティブ
+ enabled_events:
+ other: "%{count}件の有効なイベント"
+ events: イベント
+ new: 新しいwebhook
+ status: ステータス
+ title: Webhooks
+ webhook: Webhook
admin_mailer:
new_appeal:
actions:
@@ -847,10 +808,8 @@ ja:
new_trends:
body: 以下の項目は、公開する前に審査が必要です。
new_trending_links:
- no_approved_links: 承認されたトレンドリンクはありません。
title: トレンドリンク
new_trending_statuses:
- no_approved_statuses: 承認されたトレンド投稿はありません。
title: トレンド投稿
new_trending_tags:
no_approved_tags: 承認されたトレンドハッシュタグはありません。
@@ -885,16 +844,13 @@ ja:
applications:
created: アプリが作成されました
destroyed: アプリが削除されました
- invalid_url: URLが無効です
regenerate_token: アクセストークンの再生成
token_regenerated: アクセストークンが再生成されました
warning: このデータは気をつけて取り扱ってください。他の人と共有しないでください!
your_token: アクセストークン
auth:
- apply_for_account: 登録を申請する
+ apply_for_account: ウェイトリストを取得する
change_password: パスワード
- checkbox_agreement_html: サーバーのルール とプライバシーポリシー に同意します
- checkbox_agreement_without_rules_html: 利用規約 に同意します
delete_account: アカウントの削除
delete_account_html: アカウントを削除したい場合、こちら から手続きが行えます。削除する前に、確認画面があります。
description:
@@ -934,7 +890,6 @@ ja:
redirecting_to: アカウントは%{acct}に引っ越し設定されているため非アクティブになっています。
view_strikes: 過去のストライクを表示
too_fast: フォームの送信が速すぎます。もう一度やり直してください。
- trouble_logging_in: ログインできませんか?
use_security_key: セキュリティキーを使用
authorize_follow:
already_following: あなたは既にこのアカウントをフォローしています
@@ -992,10 +947,6 @@ ja:
more_details_html: 詳しくはプライバシーポリシー をご覧ください。
username_available: あなたのユーザー名は再利用できるようになります
username_unavailable: あなたのユーザー名は引き続き利用できません
- directories:
- directory: ディレクトリ
- explanation: 関心を軸にユーザーを発見しよう
- explore_mastodon: "%{title}を探索"
disputes:
strikes:
action_taken: 取られた措置
@@ -1074,26 +1025,42 @@ ja:
public: 公開タイムライン
thread: 会話
edit:
+ add_keyword: キーワードを追加
+ keywords: キーワード
+ statuses: 個別の投稿
title: フィルターを編集
errors:
invalid_context: 対象がないか無効です
- invalid_irreversible: この機能はホームタイムラインまたは通知と一緒に指定する場合のみ機能します
index:
+ contexts: "%{contexts}のフィルター"
delete: 削除
empty: フィルターはありません。
+ expires_in: "%{distance}で期限切れ"
+ expires_on: 有効期限 %{date}
+ keywords:
+ other: "%{count}件のキーワード"
+ statuses:
+ other: "%{count}件の投稿"
+ statuses_long:
+ other: "%{count}件の投稿を非表示にしました"
title: フィルター
new:
+ save: 新規フィルターを保存
title: 新規フィルターを追加
+ statuses:
+ back_to_filter: フィルタに戻る
+ batch:
+ remove: フィルターから削除する
+ index:
+ title: フィルターされた投稿
footer:
- developers: 開発者向け
- more: さらに…
- resources: リソース
trending_now: トレンドタグ
generic:
all: すべて
changes_saved_msg: 正常に変更されました!
copy: コピー
delete: 削除
+ deselect: 選択解除
none: なし
order_by: 並び順
save_changes: 変更を保存
@@ -1119,7 +1086,6 @@ ja:
following: フォロー中のアカウントリスト
muting: ミュートしたアカウントリスト
upload: アップロード
- in_memoriam_html: 故人を偲んで。
invites:
delete: 無効化
expired: 期限切れ
@@ -1199,17 +1165,10 @@ ja:
copy_account_note_text: このユーザーは%{acct}から引っ越しました。これは以前のメモです。
notification_mailer:
admin:
+ report:
+ subject: "%{name}さんがレポートを送信しました"
sign_up:
subject: "%{name}さんがサインアップしました"
- digest:
- action: 全ての通知を表示
- body: '最後のログイン(%{since})からの出来事:'
- mention: "%{name}さんがあなたに返信しました:"
- new_followers_summary:
- other: また、離れている間に%{count}人の新たなフォロワーを獲得しました!
- subject:
- other: "前回の訪問から%{count}件の新しい通知 🐘"
- title: 不在の間に…
favourite:
body: "%{name}さんにお気に入り登録された、あなたの投稿があります:"
subject: "%{name}さんにお気に入りに登録されました"
@@ -1281,6 +1240,8 @@ ja:
other: その他
posting_defaults: デフォルトの投稿設定
public_timelines: 公開タイムライン
+ privacy_policy:
+ title: プライバシーポリシー
reactions:
errors:
limit_reached: リアクションの種類が上限に達しました
@@ -1303,22 +1264,7 @@ ja:
remove_selected_follows: 選択したユーザーをフォロー解除
status: 状態
remote_follow:
- acct: あなたの ユーザー名@ドメイン を入力してください
missing_resource: リダイレクト先が見つかりませんでした
- no_account_html: アカウントをお持ちではないですか?こちら からサインアップできます
- proceed: フォローする
- prompt: 'フォローしようとしています:'
- reason_html: "なぜこの手順が必要でしょうか? %{instance}
はあなたが登録されているサーバーではないかもしれないので、まずあなたのサーバーに転送する必要があります。"
- remote_interaction:
- favourite:
- proceed: お気に入り登録する
- prompt: 'お気に入り登録しようとしています:'
- reblog:
- proceed: ブーストする
- prompt: 'ブーストしようとしています:'
- reply:
- proceed: 返信する
- prompt: '返信しようとしています:'
reports:
errors:
invalid_rules: 有効なルールを参照していません
@@ -1481,89 +1427,6 @@ ja:
sensitive_content: 閲覧注意
tags:
does_not_match_previous_name: 以前の名前と一致しません
- terms:
- body_html: |
- プライバシーポリシー
- どのような情報を収集しますか?
-
-
- 基本的なアカウント情報 : 当サイトに登録すると、ユーザー名・メールアドレス・パスワードの入力を求められることがあります。また表示名や自己紹介・プロフィール画像・ヘッダー画像といった追加のプロフィールを登録できます。ユーザー名・表示名・自己紹介・プロフィール画像・ヘッダー画像は常に公開されます。
- 投稿・フォロー・その他公開情報 : フォローしているユーザーの一覧は一般公開されます。フォロワーも同様です。メッセージを投稿する際、日時だけでなく投稿に使用したアプリケーション名も記録されます。メッセージには写真や動画といった添付メディアを含むことがあります。「公開」や「未収載」の投稿は一般公開されます。プロフィールに投稿を載せるとそれもまた公開情報となります。投稿はフォロワーに配信されます。場合によっては他のサーバーに配信され、そこにコピーが保存されることを意味します。投稿を削除した場合も同様にフォロワーに配信されます。他の投稿をリブログやお気に入り登録する行動は常に公開されます。
- 「ダイレクト」と「フォロワー限定」投稿 : すべての投稿はサーバーに保存され、処理されます。「フォロワー限定」投稿はフォロワーと投稿に書かれたユーザーに配信されます。「ダイレクト」投稿は投稿に書かれたユーザーにのみ配信されます。場合によっては他のサーバーに配信され、そこにコピーが保存されることを意味します。私たちはこれらの閲覧を一部の許可された者に限定するよう誠意を持って努めます。しかし他のサーバーにおいても同様に扱われるとは限りません。したがって、相手の所属するサーバーを吟味することが重要です。設定で新しいフォロワーの承認または拒否を手動で行うよう切り替えることもできます。サーバー管理者は「ダイレクト」や「フォロワー限定」投稿も閲覧する可能性があることを忘れないでください。 また受信者がスクリーンショットやコピー、もしくは共有する可能性があることを忘れないでください。いかなる機微な情報もMastodon上で共有しないでください。
- IPアドレスやその他メタデータ : ログインする際IPアドレスだけでなくブラウザーアプリケーション名を記録します。ログインしたセッションはすべてユーザー設定で見直し、取り消すことができます。使用されている最新のIPアドレスは最大12ヵ月間保存されます。またサーバーへのIPアドレスを含むすべてのリクエストのログを保持することがあります。
-
-
-
-
- 情報を何に使用しますか?
-
- 収集した情報は次の用途に使用されることがあります:
-
-
- Mastodonのコア機能の提供: ログインしている間にかぎり他の人たちと投稿を通じて交流することができます。例えば自分専用のホームタイムラインで投稿をまとめて読むために他の人たちをフォローできます。
- コミュニティ維持の補助: 例えばIPアドレスを既知のものと比較し、BAN回避目的の複数登録者やその他違反者を判別します。
- 提供されたメールアドレスはお知らせの送信・投稿に対するリアクションやメッセージ送信の通知・お問い合わせやその他要求や質問への返信に使用されることがあります。
-
-
-
-
- 情報をどのように保護しますか?
-
- 私たちはあなたが入力・送信する際や自身の情報にアクセスする際に個人情報を安全に保つため、さまざまなセキュリティ上の対策を実施します。特にブラウザーセッションだけでなくアプリケーションとAPI間の通信もSSLによって保護されます。またパスワードは強力な不可逆アルゴリズムでハッシュ化されます。二要素認証を有効にし、アカウントへのアクセスをさらに安全にすることができます。
-
-
-
- データ保持方針はどうなっていますか?
-
- 私たちは次のように誠意を持って努めます:
-
-
- 当サイトへのIPアドレスを含むすべての要求に対するサーバーログを90日以内のできるかぎりの間保持します。
- 登録されたユーザーに関連付けられたIPアドレスを12ヵ月以内の間保持します。
-
-
- あなたは投稿・添付メディア・プロフィール画像・ヘッダー画像を含む自身のデータのアーカイブを要求し、ダウンロードすることができます。
-
- あなたはいつでもアカウントの削除を要求できます。削除は取り消すことができません。
-
-
-
- クッキーを使用していますか?
-
- はい。クッキーは (あなたが許可した場合に) WebサイトやサービスがWebブラウザーを介してコンピューターに保存する小さなファイルです。使用することでWebサイトがブラウザーを識別し、登録済みのアカウントがある場合関連付けます。
-
- 私たちはクッキーを将来の訪問のために設定を保存し呼び出す用途に使用します。
-
-
-
- なんらかの情報を外部に提供していますか?
-
- 私たちは個人を特定できる情報を外部へ販売・取引・その他方法で渡すことはありません。これには当サイトの運営・業務遂行・サービス提供を行ううえで補助する信頼できる第三者をこの機密情報の保護に同意するかぎり含みません。法令の遵守やサイトポリシーの施行、権利・財産・安全の保護に適切と判断した場合、あなたの情報を公開することがあります。
-
- あなたの公開情報はネットワーク上の他のサーバーにダウンロードされることがあります。相手が異なるサーバーに所属する場合、「公開」と「フォロワー限定」投稿はフォロワーの所属するサーバーに配信され、「ダイレクト」投稿は受信者の所属するサーバーに配信されます。
-
- あなたがアカウントの使用をアプリケーションに許可すると、承認した権限の範囲内で公開プロフィール情報・フォローリスト・フォロワー・リスト・すべての投稿・お気に入り登録にアクセスできます。アプリケーションはメールアドレスやパスワードに決してアクセスできません。
-
-
-
- 児童によるサイト利用について
-
- サーバーがEUまたはEEA圏内にある場合: 当サイト・製品・サービスは16歳以上の人を対象としています。あなたが16歳未満の場合、GDPR (General Data Protection Regulation - EU一般データ保護規則) により当サイトを使用できません。
-
- サーバーが米国にある場合: 当サイト・製品・サービスは13歳以上の人を対象としています。あなたが13歳未満の場合、COPPA (Children's Online Privacy Protection Act - 児童オンラインプライバシー保護法) により当サイトを使用できません。
-
- サーバーが別の管轄区域にある場合、法的要件は異なることがあります。
-
-
-
- プライバシーポリシーの変更
-
- プライバシーポリシーの変更を決定した場合、このページに変更点を掲載します。
-
- この文章のライセンスはCC-BY-SAです。最終更新日は2021年6月1日です。
-
- オリジナルの出典: Discourse privacy policy
- title: "%{instance} 利用規約・プライバシーポリシー"
themes:
contrast: Mastodon (ハイコントラスト)
default: Mastodon (ダーク)
@@ -1642,20 +1505,11 @@ ja:
suspend: アカウントが停止されました
welcome:
edit_profile_action: プロフィールを設定
- edit_profile_step: アイコンやヘッダーの画像をアップロードしたり、表示名を変更したりして、自分のプロフィールをカスタマイズすることができます。また、誰かからの新規フォローを許可する前にその人の様子を見ておきたい場合、アカウントを承認制にすることもできます。
explanation: 始めるにあたってのアドバイスです
final_action: 始めましょう
- final_step: 'さあ、始めましょう! たとえフォロワーがまだいなくても、あなたの公開した投稿はローカルタイムラインやハッシュタグなどを通じて誰かの目にとまるはずです。自己紹介をしたいときには #introductions ハッシュタグが便利かもしれません。'
full_handle: あなたの正式なユーザーID
full_handle_hint: 別のサーバーの友達とフォローやメッセージをやり取りする際には、これを伝えることになります。
- review_preferences_action: 設定の変更
- review_preferences_step: 受け取りたいメールの種類や投稿のデフォルト公開範囲など、ユーザー設定を必ず済ませておきましょう。目が回らない自信があるなら、アニメーションGIFを自動再生する設定もご検討ください。
subject: Mastodonへようこそ
- tip_federated_timeline: 連合タイムラインはMastodonネットワークの流れを見られるものです。ただしあなたと同じサーバーの人がフォローしている人だけが含まれるので、それが全てではありません。
- tip_following: 最初は、サーバーの管理者をフォローした状態になっています。もっと興味のある人たちを見つけるには、ローカルタイムラインと連合タイムラインを確認してみましょう。
- tip_local_timeline: ローカルタイムラインは%{instance}にいる人々の流れを見られるものです。彼らはあなたと同じサーバーにいる隣人のようなものです!
- tip_mobile_webapp: お使いのモバイル端末で、ブラウザからMastodonをホーム画面に追加できますか? もし追加できる場合、プッシュ通知の受け取りなど、まるで「普通の」アプリのような機能が楽しめます!
- tips: 豆知識
title: ようこそ、%{name}さん!
users:
follow_limit_reached: あなたは現在 %{limit}人以上フォローできません
diff --git a/config/locales/ka.yml b/config/locales/ka.yml
index 7e6d591eca..5a2fb56a70 100644
--- a/config/locales/ka.yml
+++ b/config/locales/ka.yml
@@ -1,43 +1,16 @@
---
ka:
about:
- about_hashtag_html: ეს საჯარო ტუტებია, რომლებიც ატარებენ #%{hashtag} ტეგს. მათთან ინტერაქციას შეძლებთ, თუ ფედივერსში გაქვთ რაიმე ანგარიში.
about_mastodon_html: მასტოდონი ღია ვებ პროტოკოლებზე და უფასო, ღია პროგრამებზე დაფუძნებული სოციალური ქსელია. ის ისეთი დეცენტრალიზებულია როგორც ელ-ფოსტა.
- about_this: შესახებ
- administered_by: 'ადმინისტრატორი:'
- api: აპი
- apps: მობილური აპლიკაციები
- contact: კონტაქტი
contact_missing: არაა დაყენებული
contact_unavailable: მიუწ.
- documentation: დოკუმენტაცია
hosted_on: მასტოდონს მასპინძლობს %{domain}
- learn_more: გაიგე მეტი
- privacy_policy: კონფიდენციალურობის პოლიტიკა
- source_code: კოდი
- status_count_before: ვინც უავტორა
- terms: მომსახურების პირობები
- user_count_before: სახლი
- what_is_mastodon: რა არის მასტოდონი?
accounts:
- choices_html: "%{name}-ის არჩევნები:"
follow: გაყევი
following: მიჰყვება
- joined: გაწევრიანდა %{date}
- media: მედია
- moved_html: "%{name} გადავიდა %{new_profile_link}:"
- network_hidden: ეს ინფორმაცია ხელმიუწვდომელია
nothing_here: აქ არაფერია!
- people_followed_by: ხალხი ვისაც %{name} მიჰყვება
- people_who_follow: ხალხი ვინც მიჰყვება %{name}-ს
pin_errors:
following: იმ ადამიანს, ვინც მოგწონთ, უკვე უნდა მიჰყვებოდეთ
- posts_with_replies: ტუტები და პასუხები
- roles:
- admin: ადმინისტრატორი
- bot: ბოტი
- moderator: მოდერატორი
- unfollow: ნუღარ მიჰყვები
admin:
account_moderation_notes:
create: დატოვეთ ჩანაწერი
@@ -48,7 +21,6 @@ ka:
avatar: ავატარი
by_domain: დომენი
change_email:
- changed_msg: ანგარიშის ელ-ფოსტა წარმატებით შეიცვალა!
current_email: მიმდინარე ელ-ფოსტა
label: ელ-ფოსტის შეცვლა
new_email: ახალი ელ-ფოსტა
@@ -102,12 +74,6 @@ ka:
reset: გადატვირთვა
reset_password: პაროლის გადატვირთვა
resubscribe: ხელახალი გამოწერა
- role: უფლებები
- roles:
- admin: ადმინისტრატორი
- moderator: მოდერატორი
- staff: სტაფი
- user: მომხმარებელი
search: ძებნა
shared_inbox_url: გაზიარებული ინბოქსის ურლ
show:
@@ -124,7 +90,6 @@ ka:
username: მომხმარებლის სახელი
web: ვები
action_logs:
- deleted_status: "(გაუქმებული სტატუსი)"
title: აუდიტის ლოგი
custom_emojis:
by_domain: დომენი
@@ -228,61 +193,6 @@ ka:
unassign: გადაყენება
unresolved: გადაუწყვეტელი
updated_at: განახების დრო
- settings:
- activity_api_enabled:
- desc_html: ლოკალურად გამოქვეყნებული სტატუსების, აქტიური მომხმარებლების და ყოველკვირეული რეგისტრაციების მთვლელი
- title: გამოაქვეყნე აგრეგატი სტატისტიკები მომხმარებლის აქტივობაზე
- bootstrap_timeline_accounts:
- desc_html: გამოჰყავი მომხმარებლები მძიმით. იმუშავებს მხოლოდ ლოკალური და "ბლოკ-მოხსნილ" ანგარიშები. საწყისი როდესაც ცარიელია ყველა ლოკალური ადმინი.
- title: საწყისი მიდევნებები ახლა მომხმარებლებზე
- contact_information:
- email: ბიზნეს ელ-ფოსტა
- username: საკონტაქტო მომხმარებლის სახელი
- hero:
- desc_html: წინა გვერდზე გამოჩენილი. მინ. 600/100პიქს. რეკომენდირებული. როდესაც არაა დაყენებული, ჩნდება ინსტანციის პიქტოგრამა
- title: გმირი სურათი
- peers_api_enabled:
- desc_html: დომენების სახელები რომლებსაც შეხვდა ეს ინსტანცია ფედივერსში
- title: გამოაქვეყნე აღმოჩენილი ინსტანციების სია
- preview_sensitive_media:
- desc_html: ბმულის პრევიუები სხვა ვებ-საიტებზე გამოაჩენენ პიქტოგრამას, მაშინაც კი თუ მედია მონიშნულია მგრძნობიარედ
- title: გამოაჩინე მგრძნობიარე მედია ოუფენ-გრეფ პრევიუებში
- registrations:
- closed_message:
- desc_html: გამოჩნდება წინა გვერდზე, როდესაც რეგისტრაციები დახურულია. შეგიძლიათ გამოიყენოთ ჰტმლ ტეგები
- title: დახურული რეგისტრაციის წერილი
- deletion:
- desc_html: უფლება მიეცით ყველას, გააუქმონ თავიანთი ანგარიში
- title: ღია ანგარიშის გაუქმება
- min_invite_role:
- disabled: არავინ
- title: ნება დაერთოს მოწვეევებს
- show_known_fediverse_at_about_page:
- desc_html: ჩართვისას, ეს გამოაჩენს ტუტებს ყველა ცნობილი ფედივერსისგან პრევიუზე. სხვა შემთხვევაში, გამოაჩენს მხოლოდ ლოკალურ ტუტებს.
- title: გამოჩნდეს ცნობილი ვედივერსი თაიმლაინ პრევიუში
- show_staff_badge:
- desc_html: გამოჩნდეს სტაფის ნიშანი მომხმარებლის გვერდზე
- title: სტაფის ნიშნის გამოჩენა
- site_description:
- desc_html: საშესავლო პარაგრაფი წინა გვერდზე. აღწერეთ თუ რა ხდის ამ მასტოდონის სერვერს განსაკუთრებულს და სხვა მნიშვნელოვანი. შეგიძლიათ გამოიყენოთ ჰტმლ ტეგები, კერძოდ <a>
და <em>
.
- title: ინსტანციის აღწერილობა
- site_description_extended:
- desc_html: კარგი ადგილი მოქცევის კოდექსისთვის, წესები, სახელმძღვანელოები და სხვა რაც გამოარჩევს თქვენს ინსტანციას. შეგიძლიათ გამოიყენოთ ჰტმლ ტეგები
- title: პერსონალიზირებული განვრცობილი ინფორმაცია
- site_short_description:
- desc_html: გამოჩნდება გვერდით ბარში და მეტა ტეგებში. აღწერეთ თუ რა არის მასტოდონი და რა ხდის ამ სერვერს უნიკალურს ერთ პარაგრაფში. თუ ცარიელია, გამოჩნდება ინსტანციის აღწერილობა.
- title: აჩვენეთ ინსტანციის აღწერილობა
- site_terms:
- desc_html: შეგიძლიათ დაწეროთ საკუთარი კონფიდენციალურობის პოლიტიკა, მომსახურების პირობები ან სხვა იურიდიული დოკუმენტი. შეგიძლიათ გამოიყენოთ ჰტმლ ტეგები
- title: პერსონალიზირებული მომსახურების პირობები
- site_title: ინსტანციის სახელი
- thumbnail:
- desc_html: გამოიყენება პრევიუებისთვის ოუფენ-გრეფში და აპი-ში. 1200/630პიქს. რეკომენდირებული
- title: ინსტანციის პიქტოგრამა
- timeline_preview:
- desc_html: აჩვენეთ საჯარო თაიმლაინი ლენდინგ გვერდზე
- title: თაიმლაინ პრევიუ
- title: საიტის პარამეტრები
statuses:
back_to_account: უკან ანგარიშის გვერდისკენ
media:
@@ -305,7 +215,6 @@ ka:
applications:
created: აპლიკაცია წარმატებით შეიქმნა
destroyed: აპლიკაცია წარმატებით გაუქმდა
- invalid_url: მოწოდებული ურლ არასწორია
regenerate_token: წვდომის ტოკენის რეგენერაცია
token_regenerated: წვდომის ტოკენის რეგენერაცია მოხერხდა
warning: იყავით ძალიან ფრთხილად ამ მონაცემთან. არასდროს გააზიაროთ ეს!
@@ -396,16 +305,11 @@ ka:
title: ფილტრის ცვლილება
errors:
invalid_context: მოწოდებულია არასწორი ან ცარიელი კონტექსტი
- invalid_irreversible: დაუბრუნებელი ფილტრაცია მუშაობს მხოლოდ სახლის ან ნოტიფიკაციის კონტექსტში
index:
delete: გაუქმება
title: ფილტრები
new:
title: ახალი ფილტრის დამატება
- footer:
- developers: დეველოპერები
- more: მეტი…
- resources: რესურსები
generic:
changes_saved_msg: ცვლილებები წარმატებით დამახსოვრდა!
save_changes: ცვლილებების შენახვა
@@ -420,7 +324,6 @@ ka:
following: დადევნების სია
muting: გაჩუმების სია
upload: ატვირთვა
- in_memoriam_html: მემორანდუმში.
invites:
delete: დეაქტივაცია
expired: ვადა გაუვიდა
@@ -455,14 +358,6 @@ ka:
moderation:
title: მოდერაცია
notification_mailer:
- digest:
- action: ყველა შეტყობინების ჩვენება
- body: 'აქ მოკლე შინაარსია წერილების, რომლებიც გამოგეპარათ წინა სტუმრობის შემდეგ: %{since}'
- mention: "%{name}-მა დაგასახელათ:"
- new_followers_summary:
- one: ასევე, არყოფნისას შეგეძინათ ერთი ახალი მიმდევარი! იეი!
- other: ასევე, არყოფნისას შეგეძინათ %{count} ახალი მიმდევარი! შესანიშნავია!
- title: თქვენს არყოფნაში...
favourite:
body: 'თქვენი სტატუსი ფავორიტი გახადა %{name}-მა:'
subject: "%{name}-მა თქვენი სტატუსი გახადა ფავორიტი"
@@ -502,11 +397,7 @@ ka:
preferences:
other: სხვა
remote_follow:
- acct: შეიყვანეთ თქვენი username@domain საიდანაც გსურთ გაჰყვეთ
missing_resource: საჭირო გადამისამართების ურლ თქვენი ანგარიშისთვის ვერ მოიძებნა
- no_account_html: არ გაქვთ ანგარიში? შეგიძლიათ დარეგისტრირდეთ აქ
- proceed: გააგრძელეთ გასაყოლად
- prompt: 'თქვენ გაჰყვებით:'
sessions:
activity: ბოლო აქტივობა
browser: ბრაუზერი
@@ -593,8 +484,6 @@ ka:
pinned: აპინული ტუტი
reblogged: გაზრდილი
sensitive_content: მგრძნობიარე კონტენტი
- terms:
- title: "%{instance} მომსახურების პირობები და კონფიდენციალურობის პოლიტიკა"
themes:
contrast: მაღალი კონტრასტი
default: მასტოდონი
@@ -615,20 +504,11 @@ ka:
title: არქივის მიღება
welcome:
edit_profile_action: პროფილის მოწყობა
- edit_profile_step: შეგიძლიათ მოაწყოთ თქვენი პროფილი ავატარის ატვირთვით, დასათაურების სურათით, თქვენი დისპლეი სახელის შეცვლით და სხვა. თუ გსურთ გაუწიოთ ახალ მიმდევრებს რევიუ, სანამ რეალურად გამოგყვებიან, შეგიძლიათ ჩაკეტოთ თქვენი ანგარიში.
explanation: აქ რამდენიმე რჩევაა დასაწყისისთვის
final_action: დაიწყე პოსტვა
- final_step: 'დაიწყე პოსტვა! თქვენი ღია წერილები შესაძლოა ნახონ სხვებმა მიმდევრების გარეშეც კი, მაგალითად თქვენს ლოკალურ თაიმლაინზე ან ჰეშტეგებში. შეგიძლიათ წარადგინოთ თქვენი თავი #introductions ჰეშტეგით.'
full_handle: თქვენი სრული სახელური
full_handle_hint: ეს არის ის რასაც ეტყვით თქვენს მეგობრებს, რათა მოგწერონ ან გამოგყვნენ სხვა ინსტანციიდან.
- review_preferences_action: შეცვალეთ პრეფერენსიები
- review_preferences_step: დარწმუნდით რომ აყენებთ თქვენს პრეფერენსიებს, მაგალითად რა ელ-ფოსტის წერილების მიღება გსურთ, ან კონფიდენციალურობის რა დონე გსურთ ჰქონდეთ თქვენს პოსტებს საწყისად. თუ არ გაღიზიანებთ მოძრაობა, შეგიძლიათ ჩართოთ გიფის ავტო-დაკვრა.
subject: კეთილი იყოს თქვენი მობრძანება მასტოდონში
- tip_federated_timeline: ფედერალური თაიმლაინი მასტოდონის ქსელის ცეცხლოვანი ხედია. ის მოიცავს მხოლოდ იმ ადამიანებს, რომელთაგანაც გამოიწერეს თქვენმა მეზობლებმა, ასე რომ ეს არაა სრული.
- tip_following: თქვენ საწყისად მიჰყვებით თქვენი სერვერის ადმინისტრატორ(ებ)ს. უფრო საინტერესო ადამიანების მოსაძებნად იხილეთ ლოკალური და ფედერალური თაიმლაინები.
- tip_local_timeline: ლოკალური თაიმლაინი ცეცხლოვანი ხედია ადამიანებისთვის %{instance}-ზე. ისინი არიან თქვენი უსიტყვო მეზობლები!
- tip_mobile_webapp: თუ თქვენი მობილური ბრაუზერი გთავაზობთ მასტოდონის სახლის-ეკრანზე დამატებას, შეძლებთ ფუშ შეტყობინებების მიღებას. ეს მრავალმხრივ მოქმედებს როგორც მშობლიური აპლიკაცია!
- tips: რჩევები
title: კეთილი იყოს თქვენი მობრძანება, %{name}!
users:
invalid_otp_token: არასწორი მეორე ფაქტორის კოდი
diff --git a/config/locales/kab.yml b/config/locales/kab.yml
index 66d029d7a9..a4ea1f2119 100644
--- a/config/locales/kab.yml
+++ b/config/locales/kab.yml
@@ -1,75 +1,23 @@
---
kab:
about:
- about_hashtag_html: Tigi d tijewwiqin tizuyaz, ɣur-sent #%{hashtag} . Tzemreḍ ad tesdemreḍ akked yid-sent ma tesɛiḍ amiḍan deg kra n umḍiq deg fedivers.
about_mastodon_html: 'Azeṭṭa ametti n uzekka: Ulac deg-s asussen, ulac taɛessast n tsuddiwin fell-ak, yebna ɣef leqder d ttrebga, daɣen d akeslemmas! Akked Maṣṭudun, isefka-inek ad qimen inek!'
- about_this: Γef
- active_count_after: d urmid
- active_footnote: Imseqdacen yekkren s wayyur (MAU)
- administered_by: 'Yettwadbel sɣur:'
- api: API
- apps: Isnasen izirazen
- apps_platforms: Seqdec Maṣṭudun deg iOS, Android d tɣeṛγṛin-nniḍen
- browse_directory: Qelleb deg ukaram n imaɣnuten teǧǧeḍ-d gar-asen widak tebɣiḍ
- contact: Anermis
contact_missing: Ur yettusbadu ara
contact_unavailable: Wlac
- discover_users: Af-d imseqdacen
- documentation: Amnir
- federation_hint_html: S umiḍan deg %{instance} tzemreḍ ad tḍefṛeḍ imdanen deg yal aqeddac Maṣṭudun d wugar n waya.
- get_apps: Ɛreḍ asnas aziraz
hosted_on: Maṣṭudun yersen deg %{domain}
- learn_more: Issin ugar
- privacy_policy: Tasertit tabaḍnit
- rules: Ilugan n uqeddac
- see_whats_happening: Ẓer d acu i iḍerrun
- server_stats: 'Tidaddanin n uqeddac:'
- source_code: Tangalt Taɣbalut
- status_count_after:
- one: n tsuffeɣt
- other: n tsuffiɣin
- status_count_before: I d-yessuffɣen
- tagline: Ḍfeṛ imddukkal-ik tissineḍ-d wiyaḍ
- terms: Tiwetlin n useqdec
- unavailable_content: Ulac agbur
- unavailable_content_description:
- domain: Aqeddac
- reason: Taɣzent
- silenced: 'Tisuffɣin ara d-yekken seg yiqeddacen-agi ad ttwaffrent deg tsuddmin tizuyaz d yidiwenniten, daɣen ur ttilin ara telɣa ɣef usedmer n yimseqdacen-nsen, skud ur ten-teḍfiṛeḍ ara:'
- silenced_title: Imeẓla yeggugmen
- unavailable_content_html: Maṣṭudun s umata yeḍmen-ak ad teẓreḍ agbur, ad tesdemreḍ akked yimseqdacen-nniḍen seg yal aqeddac deg fedivers. Ha-tent-an ɣur-k tsuraf i yellan deg uqeddac-agi.
- user_count_after:
- one: amseqdac
- other: imseqdacen
- user_count_before: Amagger n
- what_is_mastodon: D acu-t Maṣṭudun?
+ title: Γef
accounts:
- choices_html: 'Afranen n %{name}:'
follow: Ḍfeṛ
followers:
one: Umeḍfaṛ
other: Imeḍfaṛen
following: Yeṭafaṛ
- joined: Ikcemed deg %{date}
last_active: armud aneggaru
- media: Taɣwalt
- moved_html: 'ibeddel %{name} amiḍan ɣer %{new_profile_link}:'
- network_hidden: Ulac isalli-agi
nothing_here: Ulac kra da!
- people_followed_by: Imdanen i yeṭṭafaṛ %{name}
- people_who_follow: Imdanen yeṭṭafaṛen %{name}
posts:
one: Tajewwiqt
other: Tijewwiqin
posts_tab_heading: Tijewwiqin
- posts_with_replies: Tijewwaqin akked tririyin
- roles:
- admin: Anedbal
- bot: Aṛubut
- group: Agraw
- moderator: Atrar
- unavailable: Ur nufi ara amaɣnu-a
- unfollow: Ur ṭṭafaṛ ara
admin:
account_actions:
action: Eg tigawt
@@ -82,7 +30,6 @@ kab:
avatar: Tugna n umaɣnu
by_domain: Taɣult
change_email:
- changed_msg: Imayl n umiḍan yettwabeddel mebla ugur!
current_email: Imayl n tura
label: Beddel imayl
new_email: Imayl amaynut
@@ -153,12 +100,6 @@ kab:
reset: Wennez
reset_password: Beddel awal uffir
resubscribe: Ales ajerred
- role: Tisirag
- roles:
- admin: Anedbal
- moderator: Aseɣyad
- staff: Tarbaɛt
- user: Amseqdac
search: Nadi
search_same_email_domain: Iseqdacen-nniḍen s yiwet n taɣult n yimayl
search_same_ip: Imseqdacen-nniḍen s tansa IP am tinn-ik
@@ -233,7 +174,6 @@ kab:
create_unavailable_domain_html: "%{name} iseḥbes asiweḍ ɣer taɣult %{target}"
demote_user_html: "%{name} iṣubb-d deg usellun aseqdac %{target}"
destroy_announcement_html: "%{name} yekkes taselɣut %{target}"
- destroy_custom_emoji_html: "%{name} ihudd imuji %{target}"
destroy_domain_allow_html: "%{name} yekkes taɣult %{target} seg tebdart tamellalt"
destroy_domain_block_html: "%{name} yekkes aseḥbes n taɣult %{target}"
destroy_email_domain_block_html: "%{name} yekkes asewḥel i taɣult n imayl %{target}"
@@ -257,7 +197,6 @@ kab:
update_custom_emoji_html: "%{name} ileqqem imuji %{target}"
update_domain_block_html: "%{name} ileqqem iḥder n taɣult i %{target}"
update_status_html: "%{name} ileqqem tasufeɣt n %{target}"
- deleted_status: "(tasuffeɣt tettwakkes)"
empty: Ulac iɣmisen i yellan.
filter_by_action: Fren s tigawt
filter_by_user: Sizdeg s useqdac
@@ -431,6 +370,11 @@ kab:
unresolved: Ur yefra ara
updated_at: Yettwaleqqem
view_profile: Wali amaɣnu
+ roles:
+ categories:
+ administration: Tadbelt
+ privileges:
+ administrator: Anedbal
rules:
add_new: Rnu alugen
delete: Kkes
@@ -438,26 +382,14 @@ kab:
empty: Mazal ur ttwasbadun ara yilugan n uqeddac.
title: Ilugan n uqeddac
settings:
- custom_css:
- desc_html: Beddel aγan s CSS ara d-yettwasalayen deg yal asebter
- title: CSS udmawan
domain_blocks:
all: I medden akk
disabled: Γef ula yiwen
users: Γef yimseqdacen idiganen i yeqqnen
- profile_directory:
- title: Rmed akaram n imaγnuten
- registrations:
- min_invite_role:
- disabled: Ula yiwen·t
registrations_mode:
modes:
none: Yiwen·t ur yzmir ad izeddi
open: Zemren akk ad jerden
- site_description:
- title: Aglam n uqeddac
- site_title: Isem n uqeddac
- title: Iγewwaṛen n usmel
site_uploads:
delete: Kkes afaylu yulin
statuses:
@@ -492,10 +424,7 @@ kab:
token_regenerated: Ajuṭu n unekcum yettusirew i tikkelt-nniḍen akken iwata
your_token: Ajiṭun-ik·im n unekcum
auth:
- apply_for_account: Suter asnebgi
change_password: Awal uffir
- checkbox_agreement_html: Qebleγ ilugan n uqeddac-a akked tiwtilin n useqdec
- checkbox_agreement_without_rules_html: Qebleγ tiwtilin n useqdec
delete_account: Kkes amiḍan
description:
prefix_invited_by_user: "@%{name} inced-ik·ikem ad ternuḍ ɣer uqeddac-a n Mastodon!"
@@ -518,7 +447,6 @@ kab:
title: Sbadu
status:
account_status: Addad n umiḍan
- trouble_logging_in: Γur-k uguren n tuqqna?
use_security_key: Seqdec tasarut n teɣlist
authorize_follow:
already_following: Teṭafareḍ ya kan amiḍan-a
@@ -555,9 +483,6 @@ kab:
warning:
username_available: Isem-ik·im n useqdac ad yuɣal yella i tikkelt-nniḍen
username_unavailable: Isem-ik·im n useqdac ad yeqqim ulac-it
- directories:
- directory: Akaram n imaγnuten
- explore_mastodon: Snirem %{title}
errors:
'400': The request you submitted was invalid or malformed.
'403': You don't have permission to view this page.
@@ -595,9 +520,7 @@ kab:
new:
title: Rnu yiwen umzizdig amaynut
footer:
- developers: Ineflayen
- more: Ugar…
- resources: Iɣbula
+ trending_now: Ayen mucaɛen tura
generic:
all: Akk
changes_saved_msg: Ttwaskelsen ibelliden-ik·im akken ilaq!
@@ -645,9 +568,6 @@ kab:
incoming_migrations: Tusiḍ-d seg umiḍan nniḍen
proceed_with_move: Awid imeḍfaṛen-ik
notification_mailer:
- digest:
- action: Wali akk tilγa
- mention: 'Yuder-ik-id %{name} deg:'
favourite:
subject: "%{name} yesmenyaf addad-ik·im"
follow:
@@ -694,16 +614,6 @@ kab:
primary: Agejdan
relationship: Assaɣ
status: Addad n umiḍan
- remote_follow:
- no_account_html: Ur tesɛid ara amiḍan? Tzmreḍ ad jerdeḍ da
- proceed: Kemmel taḍfart
- remote_interaction:
- favourite:
- proceed: Kemmel asmenyef
- reblog:
- proceed: Sentem beṭṭu
- reply:
- proceed: Kemmel tiririt
sessions:
activity: Armud aneggaru
browser: Iminig
@@ -773,6 +683,7 @@ kab:
video:
one: "%{count} n tbidyutt"
other: "%{count} n tbidyutin"
+ edited_at_html: Tettwaẓreg %{date}
open_in_web: Ldi deg Web
poll:
total_people:
@@ -801,14 +712,12 @@ kab:
'2629746': 1 n wayyur
'31556952': 1 n useggas
'5259492': 2 n wayyuren
- '604800': 1 week
+ '604800': 1 umalas
'63113904': 2 n yiseggasen
'7889238': 3 n wayyuren
stream_entries:
pinned: Tijewwiqt yettwasentḍen
sensitive_content: Agbur amḥulfu
- terms:
- title: Tiwtilin n useqdec akked tsertit tabaḍnit n %{instance}
themes:
contrast: Maṣṭudun (agnil awriran)
default: Maṣṭudun (Aberkan)
@@ -827,6 +736,8 @@ kab:
otp: Asnas n usesteb
webauthn: Tisura n teɣlist
user_mailer:
+ appeal_approved:
+ action: Ddu ɣer umiḍan-ik·im
warning:
categories:
spam: Aspam
@@ -837,9 +748,7 @@ kab:
suspend: Amiḍan yettwaḥebsen
welcome:
full_handle: Tansa umiḍan-ik takemmalit
- review_preferences_action: Beddel imenyafen
subject: Ansuf γer Maṣṭudun
- tips: Tixbaluyin
title: Ansuf yessek·em, %{name}!
users:
signed_in_as: 'Teqqneḍ amzun d:'
diff --git a/config/locales/kk.yml b/config/locales/kk.yml
index a01a2424aa..1ac423e993 100644
--- a/config/locales/kk.yml
+++ b/config/locales/kk.yml
@@ -1,84 +1,25 @@
---
kk:
about:
- about_hashtag_html: Бұл жерде #%{hashtag} хэштегімен жинақталған жазбалар. Желіге тіркеліп, сіз де қосыла аласыз бұл ортаға.
about_mastodon_html: Mastodon - әлеуметтік желіге негізделген, тегін және веб протоколды, ашық кодты бағдарлама. Ол email сияқты орталығы жоқ құрылым.
- about_this: Туралы
- active_count_after: актив
- active_footnote: Соңғы айдағы актив қолданушылар (MAU)
- administered_by: 'Админ:'
- apps: Мобиль қосымшалар
- apps_platforms: iOS, Android және басқа платформалардағы Mastodon қолданыңыз
- browse_directory: Профильдер каталогын қажет фильтрлер арқылы қараңыз
- browse_local_posts: Осы желідегі ашық посттар стримын қараңыз
- browse_public_posts: Mastodon-дағы ашық посттар стримын қараңыз
- contact: Байланыс
contact_missing: Бапталмаған
contact_unavailable: Белгісіз
- discover_users: Қолданушыларды іздеңіз
- documentation: Құжаттама
- federation_hint_html: "%{instance} платформасындағы аккаунтыңыз арқылы Mastodon желісіндегі кез келген сервердегі қолданушыларға жазыла аласыз."
- get_apps: Мобиль қосымшаны қолданып көріңіз
hosted_on: Mastodon орнатылған %{domain} доменінде
- instance_actor_flash: |
- Бұл аккаунт кез-келген жеке пайдаланушыны емес, сервердің өзін көрсету үшін қолданылатын виртуалды актер.
- Ол федерация мақсаттарында қолданылады және сіз барлығын бұғаттағыңыз келмейінше, бұғатталмауы керек, бұл жағдайда сіз домен блогын қолданған жөн.
- learn_more: Көбірек білу
- privacy_policy: Құпиялылық саясаты
- see_whats_happening: Не болып жатқанын қараңыз
- server_stats: 'Сервер статистикасы:'
- source_code: Ашық коды
- status_count_after:
- one: жазба
- other: жазба
- status_count_before: Барлығы
- tagline: Достарыңызды оқыңыз және жаңа авторларды табыңыз
- terms: Қолдану шарттары
- unavailable_content: Қолжетімсіз контент
- unavailable_content_description:
- domain: Сервер
- reason: Себеп
- rejecting_media: 'Бұл серверлердегі медиа файлдар өңделмейді немесе сақталмайды және түпнұсқаға қолмен басуды қажет ететін нобайлар көрсетілмейді:'
- silenced: 'Осы серверлердегі жазбалар жалпы уақыт кестесінде және сөйлесулерде жасырын болады және егер сіз оларды бақыламасаңыз, олардың пайдаланушыларының өзара әрекеттестігі туралы ешқандай хабарламалар жасалмайды:'
- suspended: 'Бұл серверлерден ешқандай дерек өңделмейді, сақталмайды немесе алмаспайды, бұл серверлердегі пайдаланушылармен өзара әрекеттесуді немесе байланыс орнатуды мүмкін етпейді:'
- unavailable_content_html: Мастодон, әдетте, мазмұнды көруге және кез-келген басқа сервердегі пайдаланушылармен қарым-қатынас жасауға мүмкіндік береді. Бұл нақты серверде жасалған ерекше жағдайлар.
- user_count_after:
- one: қолданушы
- other: қолданушы
- user_count_before: Желіде
- what_is_mastodon: Mastodon деген не?
accounts:
- choices_html: "%{name} таңдаулары:"
- endorsements_hint: Сіз веб-интерфейстен адамдарға қолдау көрсете аласыз және олар осында көрсетіледі.
- featured_tags_hint: Мұнда көрсетілетін нақты хэштегтерді ұсына аласыз.
follow: Жазылу
followers:
one: Оқырман
other: Оқырман
following: Жазылғандары
- joined: Тіркелген күні %{date}
last_active: соңғы әрекеті
link_verified_on: Сілтеме меншігі расталған күн %{date}
- media: Медиа
- moved_html: "%{name} мына жерге көшті %{new_profile_link}:"
- network_hidden: Бұл ақпарат қолжетімді емес
nothing_here: Бұл жерде ештеңе жоқ!
- people_followed_by: "%{name} жазылған адамдар"
- people_who_follow: "%{name} атты қолданушының оқырмандары"
pin_errors:
following: Оқығыңыз келген адамға жазылуыңыз керек
posts:
one: Жазба
other: Жазба
posts_tab_heading: Жазба
- posts_with_replies: Жазбалар және жауаптар
- roles:
- admin: Админ
- bot: Бот
- group: Топ
- moderator: Мод
- unavailable: Профиль қолжетімді емес
- unfollow: Оқымау
admin:
account_actions:
action: Әрекетті орындаңыз
@@ -93,7 +34,6 @@ kk:
avatar: Аватар
by_domain: Домен
change_email:
- changed_msg: Аккаунт email-і сәтті өзгертілді!
current_email: Қазіргі email
label: email өзгерту
new_email: Жаңа email
@@ -158,12 +98,6 @@ kk:
reset: Қалпына келтіру
reset_password: Құпиясөзді қалпына келтіру
resubscribe: Resubscribе
- role: Рұқсаттар
- roles:
- admin: Админ
- moderator: Модератор
- staff: Қызметкерлер
- user: Қолданушы
search: Іздеу
search_same_ip: Осы ІРмен кірген басқа қолданушылар
shared_inbox_url: Бөлісілген инбокс URL
@@ -185,7 +119,6 @@ kk:
web: Веб
whitelisted: Рұқсат тізімі
action_logs:
- deleted_status: "(өшірілген жазба)"
title: Аудит логы
announcements:
destroyed_msg: Анонс сәтті өшірілді!
@@ -342,91 +275,15 @@ kk:
unresolved: Шешілмеген
updated_at: Жаңартылды
settings:
- activity_api_enabled:
- desc_html: Соңғы аптада жазылған жазбалар, белсенді қолданушылар, жаңа тіркелімдер
- title: Пайдаланушы әрекеті туралы жиынтық статистиканы жариялау
- bootstrap_timeline_accounts:
- desc_html: Бірнеше пайдаланушы атын үтірмен бөліңіз. Тек жергілікті және бұғатталмаған аккаунттар. Барлық жергілікті админдер бос болғанда.
- title: Жаңа қолданушыларға жазылғандар
- contact_information:
- email: Бизнес e-mail
- username: Қолданушымен байланыс
- custom_css:
- desc_html: Әр беттегі өзгерістерді CSS жаңаруымен қарау
- title: Жеке CSS
- default_noindex:
- desc_html: Бұл параметрді өзгертпеген барлық пайдаланушыларға әсер етеді
- title: Әдепкі бойынша іздеу жүйелерін индекстеуден бас тарту
domain_blocks:
all: Бәріне
disabled: Ешкімге
- title: Домен блоктарын көрсету
users: Жергілікті қолданушыларға
- domain_blocks_rationale:
- title: Дәлелді көрсету
- hero:
- desc_html: Бастапқы бетінде көрсетіледі. Кем дегенде 600x100px ұсынылады. Орнатылмаған кезде, сервердің нобайына оралады
- title: Қаһарман суреті
- mascot:
- desc_html: Displayed on multiple pages. Кем дегенде 293×205px рекоменделеді. When not set, falls back to default mascot
- title: Маскот суреті
- peers_api_enabled:
- desc_html: Домен names this server has encountered in the fediverse
- title: Publish list of discovered серверлер
- preview_sensitive_media:
- desc_html: Link previews on other websites will display a thumbnail even if the media is marked as сезімтал
- title: Show sensitive media in OpenGraph превью
- profile_directory:
- desc_html: Рұқсат users to be discoverable
- title: Enable профиль directory
- registrations:
- closed_message:
- desc_html: Displayed on frontpage when registrations are closed. You can use HTML тег
- title: Closed registration мессадж
- deletion:
- desc_html: Allow anyone to delete their аккаунт
- title: Open аккаунт deletion
- min_invite_role:
- disabled: Ешкім
- title: Allow шақырулар by
registrations_mode:
modes:
approved: Тіркелу үшін мақұлдау қажет
none: Ешкім тіркеле алмайды
open: Бәрі тіркеле алады
- title: Тіркелулер
- show_known_fediverse_at_about_page:
- desc_html: When toggled, it will show toots from all the known fediverse on preview. Otherwise it will only show жергілікті toots.
- title: Show known fediverse on timeline превью
- show_staff_badge:
- desc_html: Show a staff badge on a user бет
- title: Көрсет staff badge
- site_description:
- desc_html: Introductory paragraph on the басты бет. Describe what makes this Mastodon server special and anything else important. You can use HTML tags, in particular <a>
and <em>
.
- title: Сервер туралы
- site_description_extended:
- desc_html: A good place for your code of conduct, rules, guidelines and other things that set your server apart. You can use HTML тег
- title: Custom extended ақпарат
- site_short_description:
- desc_html: Displayed in sidebar and meta tags. Describe what Mastodon is and what makes this server special in a single paragraph. If empty, defaults to сервер description.
- title: Short сервер description
- site_terms:
- desc_html: You can write your own privacy policy, terms of service or other legalese. You can use HTML тег
- title: Қолдану шарттары мен ережелер
- site_title: Сервер аты
- thumbnail:
- desc_html: Used for previews via OpenGraph and API. 1200x630px рекоменделеді
- title: Сервер суреті
- timeline_preview:
- desc_html: Display public timeline on лендинг пейдж
- title: Таймлайн превьюі
- title: Сайт баптаулары
- trendable_by_default:
- desc_html: Бұрын тыйым салынбаған хэштегтерге әсер етеді
- title: Хэштегтерге алдын-ала шолусыз тренд беруге рұқсат етіңіз
- trends:
- desc_html: Бұрын қарастырылған хэштегтерді қазіргі уақытта трендте көпшілікке көрсету
- title: Тренд хештегтер
site_uploads:
delete: Жүктелген файлды өшір
destroyed_msg: Жүктелген файл сәтті өшірілді!
@@ -477,16 +334,12 @@ kk:
applications:
created: Application succеssfully created
destroyed: Application succеssfully deleted
- invalid_url: The providеd URL is invalid
regenerate_token: Regenerate accеss token
token_regenerated: Access token succеssfully regenerated
warning: Be very carеful with this data. Never share it with anyone!
your_token: Your access tokеn
auth:
- apply_for_account: Шақыруды сұрау
change_password: Құпиясөз
- checkbox_agreement_html: Мен ережелер мен шарттарды қабылдаймын
- checkbox_agreement_without_rules_html: Мен шарттармен келісемін
delete_account: Аккаунт өшіру
delete_account_html: Аккаунтыңызды жойғыңыз келсе, мына жерді басыңыз. Сізден растау сұралатын болады.
description:
@@ -519,7 +372,6 @@ kk:
confirming: Электрондық поштаны растау аяқталуын күтуде.
pending: Сіздің өтінішіңіз біздің қызметкерлеріміздің қарауында. Бұл біраз уақыт алуы мүмкін. Өтінішіңіз мақұлданса, сізге электрондық пошта хабарламасы келеді.
redirecting_to: Сіздің есептік жазбаңыз белсенді емес, себебі ол %{acct} жүйесіне қайта бағытталуда.
- trouble_logging_in: Кіру қиын ба?
authorize_follow:
already_following: Бұл аккаунтқа жазылғансыз
error: Өкінішке орай, қашықтағы тіркелгіні іздеуде қате пайда болды
@@ -567,10 +419,6 @@ kk:
more_details_html: Қосымша мәліметтер алу үшін құпиялылық саясатын қараңыз.
username_available: Аккаунтыңыз қайтадан қолжетімді болады
username_unavailable: Логиніңіз қолжетімді болмайды
- directories:
- directory: Профильдер каталогы
- explanation: Қолданушыларды қызығушылықтарына қарай реттеу
- explore_mastodon: "%{title} шарлау"
domain_validator:
invalid_domain: жарамды домен атауы емес
errors:
@@ -620,7 +468,6 @@ kk:
title: Фильтр өңдеу
errors:
invalid_context: Жоқ немесе жарамсыз контекст берілген
- invalid_irreversible: Қайтарылмайтын сүзгі тек ішкі немесе ескертпелер контекстімен жұмыс істейді
index:
delete: Өшіру
empty: Сізде ешқандай фильтр жоқ.
@@ -628,9 +475,6 @@ kk:
new:
title: Жаңа фильтр қосу
footer:
- developers: Жасаушылар
- more: Тағы…
- resources: Ресурстар
trending_now: Бүгінгі трендтер
generic:
all: Барлығы
@@ -657,7 +501,6 @@ kk:
following: Жазылғандар тізімі
muting: Үнсіздер тізімі
upload: Жүктеу
- in_memoriam_html: Естеліктерде.
invites:
delete: Ажырату
expired: Мерзімі өткен
@@ -703,14 +546,6 @@ kk:
moderation:
title: Модерация
notification_mailer:
- digest:
- action: Барлық ескертпелер
- body: Міне, соңғы кірген уақыттан кейін келген хаттардың қысқаша мазмұны %{since}
- mention: "%{name} сізді атап өтіпті:"
- new_followers_summary:
- one: Сондай-ақ, сіз бір жаңа оқырман таптыңыз! Алақай!
- other: Сондай-ақ, сіз %{count} жаңа оқырман таптыңыз! Керемет!
- title: Сіз жоқ кезде...
favourite:
body: 'Жазбаңызды ұнатып, таңдаулыға қосты %{name}:'
subject: "%{name} жазбаңызды таңдаулыға қосты"
@@ -785,22 +620,7 @@ kk:
remove_selected_follows: Таңдалған қолданушыларды оқымау
status: Аккаунт статусы
remote_follow:
- acct: Өзіңіздің username@domain теріңіз
missing_resource: Аккаунтыңызға байланған URL табылмады
- no_account_html: Әлі тіркелмегенсіз бе? Мына жерден тіркеліп алыңыз
- proceed: Жазылу
- prompt: 'Жазылғыңыз келеді:'
- reason_html: "Неліктен бұл қадам қажет? %{instance}
тіркелгіңіз келген сервер болмауы мүмкін, сондықтан сізді алдымен ішкі серверіңізге қайта бағыттау қажет."
- remote_interaction:
- favourite:
- proceed: Таңдаулыға қосу
- prompt: 'Мына жазбаны таңдаулыға қосасыз:'
- reblog:
- proceed: Жазба бөлісу
- prompt: 'Сіз мына жазбаны бөлісесіз:'
- reply:
- proceed: Жауап жазу
- prompt: 'Сіз мына жазбаға жауап жазасыз:'
scheduled_statuses:
over_daily_limit: Сіз бір күндік %{limit} жазба лимитін тауыстыңыз
over_total_limit: Сіз %{limit} жазба лимитін тауыстыңыз
@@ -910,8 +730,6 @@ kk:
sensitive_content: Нәзік мазмұн
tags:
does_not_match_previous_name: алдыңғы атқа сәйкес келмейді
- terms:
- title: "%{instance} Қызмет көрсету шарттары және Құпиялылық саясаты"
themes:
contrast: Mastodon (Жоғары контраст)
default: Mastodon (Қою)
@@ -943,20 +761,11 @@ kk:
suspend: Аккаунт тоқтатылды
welcome:
edit_profile_action: Профиль өңдеу
- edit_profile_step: Профиліңізге аватар, мұқаба сурет жүктей аласыз, аты-жөніңізді көрсете аласыз. Оқырмандарыңызға сізбен танысуға рұқсат бермес бұрын аккаунтыңызды уақытша құлыптап қоюға болады.
explanation: Мына кеңестерді шолып өтіңіз
final_action: Жазба жазу
- final_step: 'Жазуды бастаңыз! Тіпті оқырмандарыңыз болмаса да, сіздің жалпы жазбаларыңызды басқа адамдар көре алады, мысалы, жергілікті желіде және хэштегтерде. Жазбаларыңызға # протоколды хэштег қоссаңыз болады.'
full_handle: Желі тұтқасы
full_handle_hint: This is what you would tell your friends so they can message or follow you frоm another server.
- review_preferences_action: Таңдауларды өзгерту
- review_preferences_step: Қандай хат-хабарларын алуды қалайтыныңызды немесе сіздің хабарламаларыңыздың қандай құпиялылық деңгейін алғыңыз келетінін анықтаңыз. Сондай-ақ, сіз GIF автоматты түрде ойнату мүмкіндігін қосуды таңдай аласыз.
subject: Mastodon Желісіне қош келдіңіз
- tip_federated_timeline: Жаһандық желі - Mastodon желісінің негізгі құндылығы.
- tip_following: Сіз бірден желі админіне жазылған болып саналасыз. Басқа адамдарға жазылу үшін жергілікті және жаһандық желіні шолып шығыңыз.
- tip_local_timeline: Жерігілкті желіде маңайыздағы адамдардың белсенділігін көре аласыз %{instance}. Олар - негізгі көршілеріңіз!
- tip_mobile_webapp: Мобиль браузеріңіз Mastodon желісін бастапқы бетке қосуды ұсынса, қабылдаңыз. Ескертпелер де шығатын болады. Арнайы қосымша сияқты бұл!
- tips: Кеңестер
title: Ортаға қош келдің, %{name}!
users:
follow_limit_reached: Сіз %{limit} лимитінен көп адамға жазыла алмайсыз
diff --git a/config/locales/ko.yml b/config/locales/ko.yml
index 630beabfbd..3ae3fa6816 100644
--- a/config/locales/ko.yml
+++ b/config/locales/ko.yml
@@ -1,90 +1,25 @@
---
ko:
about:
- about_hashtag_html: "#%{hashtag} 해시태그가 붙은 공개 게시물입니다. 같은 연합에 속한 임의의 인스턴스에 계정을 생성하면 당신도 대화에 참여할 수 있습니다."
about_mastodon_html: 마스토돈은 오픈 소스 기반의 소셜 네트워크 서비스 입니다. 상용 플랫폼의 대체로서 분산형 구조 를 채택해, 여러분의 대화가 한 회사에 독점되는 것을 방지합니다. 신뢰할 수 있는 인스턴스를 선택하세요 — 어떤 인스턴스를 고르더라도, 누구와도 대화할 수 있습니다. 누구나 자신만의 마스토돈 인스턴스를 만들 수 있으며, 아주 매끄럽게 소셜 네트워크 에 참가할 수 있습니다.
- about_this: 이 인스턴스에 대해서
- active_count_after: 활성 사용자
- active_footnote: 월간 활성 사용자
- administered_by: '관리자:'
- api: API
- apps: 모바일 앱
- apps_platforms: 마스토돈을 iOS, 안드로이드, 다른 플랫폼들에서도 사용하세요
- browse_directory: 프로필 책자를 둘러보고 관심사 찾기
- browse_local_posts: 이 서버의 공개글 실시간 스트림을 둘러보기
- browse_public_posts: 마스토돈의 공개 라이브 스트림을 둘러보기
- contact: 연락처
contact_missing: 미설정
contact_unavailable: 없음
- continue_to_web: 웹앱에서 계속하기
- discover_users: 사용자 발견하기
- documentation: 문서
- federation_hint_html: "%{instance}에 계정을 만드는 것으로 모든 마스토돈 서버, 그리고 호환 되는 모든 서버의 사용자를 팔로우 할 수 있습니다."
- get_apps: 모바일 앱 사용해 보기
hosted_on: "%{domain}에서 호스팅 되는 마스토돈"
- instance_actor_flash: |
- 이 계정은 가상의 actor로서 개인 사용자가 아닌 서버 자체를 나타냅니다.
- 이것은 페더레이션을 목적으로 사용 되며 인스턴스 전체를 차단하려 하지 않는 이상 차단하지 않아야 합니다, 그 경우에는 도메인 차단을 사용하세요.
- learn_more: 자세히
- logged_in_as_html: 현재 %{username}으로 로그인 했습니다.
- logout_before_registering: 이미 로그인 했습니다.
- privacy_policy: 개인정보 정책
- rules: 서버 규칙
- rules_html: '아래의 글은 이 마스토돈 서버에 계정이 있다면 따라야 할 규칙의 요약입니다:'
- see_whats_happening: 무슨 일이 일어나는 지 보기
- server_stats: '서버 통계:'
- source_code: 소스 코드
- status_count_after:
- other: 개
- status_count_before: 게시물 수
- tagline: 친구들을 팔로우 하고 새로운 사람들도 만나기
- terms: 이용약관
- unavailable_content: 이용 불가능한 컨텐츠
- unavailable_content_description:
- domain: 서버
- reason: 이유
- rejecting_media: 이 서버의 미디어 파일들은 처리되지 않고 썸네일또한 보이지 않게 됩니다. 수동으로 클릭하여 해당 서버로 가게 됩니다.
- rejecting_media_title: 필터링 된 미디어
- silenced: 이 서버의 게시물은 작성자를 팔로우 한 경우에만 홈 피드에 나타나며 이를 제외한 어디에도 나타나지 않습니다.
- silenced_title: 침묵 된 서버들
- suspended: 이 서버의 아무도 팔로우 할 수 없으며, 어떤 데이터도 처리되거나 저장 되지 않고 데이터가 교환 되지도 않습니다.
- suspended_title: 금지된 서버들
- unavailable_content_html: 마스토돈은 일반적으로 연합우주에 있는 어떤 서버의 사용자와도 게시물을 보고 응답을 할 수 있도록 허용합니다. 다음 항목들은 특정한 서버에 대해 만들어 진 예외사항입니다.
- user_count_after:
- other: 명
- user_count_before: 사용자 수
- what_is_mastodon: 마스토돈이란?
+ title: 정보
accounts:
- choices_html: "%{name}의 추천:"
- endorsements_hint: 내가 팔로우 하고 있는 사람들을 여기에 추천 할 수 있습니다.
- featured_tags_hint: 특정한 해시태그들을 여기에 표시되도록 할 수 있습니다.
follow: 팔로우
followers:
other: 팔로워
following: 팔로잉
instance_actor_flash: 이 계정은 서버 자신을 나타내기 위한 가상의 계정이며 개인 사용자가 아닙니다. 이 계정은 연합을 위해 사용되며 정지되지 않아야 합니다.
- joined: "%{date}에 가입함"
last_active: 최근 활동
link_verified_on: "%{date}에 이 링크의 소유가 확인되었습니다"
- media: 미디어
- moved_html: "%{name}은 %{new_profile_link}으로 이동되었습니다:"
- network_hidden: 이 정보는 사용할 수 없습니다
nothing_here: 아무 것도 없습니다!
- people_followed_by: "%{name} 님이 팔로우 중인 계정"
- people_who_follow: "%{name} 님을 팔로우 중인 계정"
pin_errors:
following: 추천하려는 사람을 팔로우 하고 있어야 합니다
posts:
other: 게시물
posts_tab_heading: 게시물
- posts_with_replies: 게시물과 답장
- roles:
- admin: 관리자
- bot: 봇
- group: 그룹
- moderator: 중재자
- unavailable: 프로필 사용 불가
- unfollow: 팔로우 해제
admin:
account_actions:
action: 조치 취하기
@@ -101,12 +36,17 @@ ko:
avatar: 아바타
by_domain: 도메인
change_email:
- changed_msg: 이메일이 성공적으로 바뀌었습니다!
+ changed_msg: 이메일이 성공적으로 변경되었습니다!
current_email: 현재 이메일 주소
label: 이메일 주소 변경
new_email: 새 이메일 주소
submit: 이메일 주소 변경
title: "%{username}의 이메일 주소 변경"
+ change_role:
+ changed_msg: 역할이 성공적으로 변경되었습니다!
+ label: 역할 변경
+ no_role: 역할 없음
+ title: "%{username}의 역할 변경"
confirm: 확인
confirmed: 확인됨
confirming: 확인 중
@@ -150,16 +90,18 @@ ko:
active: 활동
all: 전체
pending: 대기중
+ silenced: 제한됨
suspended: 정지 중
title: 중재
moderation_notes: 중재 기록
most_recent_activity: 최근 활동
most_recent_ip: 최근 IP
- no_account_selected: 아무 계정도 선택 되지 않아 아무 것도 변경 되지 않았습니다
+ no_account_selected: 아무 것도 선택 되지 않아 어떤 계정도 변경 되지 않았습니다
no_limits_imposed: 제한 없음
+ no_role_assigned: 할당된 역할 없음
not_subscribed: 구독하지 않음
pending: 심사 대기
- perform_full_suspension: 정지시키기
+ perform_full_suspension: 정지
previous_strikes: 이전의 처벌들
previous_strikes_description_html:
other: 이 계정은 %{count} 번의 처벌이 있었습니다.
@@ -182,19 +124,14 @@ ko:
reset: 초기화
reset_password: 암호 초기화
resubscribe: 다시 구독
- role: 권한
- roles:
- admin: 관리자
- moderator: 중재자
- staff: 스태프
- user: 사용자
+ role: 역할
search: 검색
search_same_email_domain: 같은 이메일 도메인을 가진 다른 사용자들
search_same_ip: 같은 IP의 다른 사용자들
security_measures:
only_password: 암호만
password_and_2fa: 암호와 2단계 인증
- sensitive: 민감함
+ sensitive: 민감함 강제
sensitized: 민감함으로 설정됨
shared_inbox_url: 공유된 inbox URL
show:
@@ -230,17 +167,21 @@ ko:
approve_user: 사용자 승인
assigned_to_self_report: 신고 맡기
change_email_user: 사용자의 이메일 변경
+ change_role_user: 사용자 역할 변경
confirm_user: 사용자 확인
create_account_warning: 경고 생성
create_announcement: 공지사항 생성
+ create_canonical_email_block: 이메일 차단 생성
create_custom_emoji: 커스텀 에모지 생성
create_domain_allow: 도메인 허용 생성
create_domain_block: 도메인 차단 추가
create_email_domain_block: 이메일 도메인 차단 생성
create_ip_block: IP 규칙 만들기
create_unavailable_domain: 사용 불가능한 도메인 생성
+ create_user_role: 역할 생성
demote_user: 사용자 강등
destroy_announcement: 공지사항 삭제
+ destroy_canonical_email_block: 이메일 차단 삭제
destroy_custom_emoji: 커스텀 에모지 삭제
destroy_domain_allow: 도메인 허용 삭제
destroy_domain_block: 도메인 차단 삭제
@@ -249,6 +190,7 @@ ko:
destroy_ip_block: IP 규칙 삭제
destroy_status: 게시물 삭제
destroy_unavailable_domain: 사용 불가능한 도메인 제거
+ destroy_user_role: 역할 삭제
disable_2fa_user: 2단계 인증 비활성화
disable_custom_emoji: 커스텀 에모지 비활성화
disable_sign_in_token_auth_user: 사용자에 대한 이메일 토큰 인증 비활성화
@@ -275,24 +217,30 @@ ko:
update_announcement: 공지사항 업데이트
update_custom_emoji: 커스텀 에모지 업데이트
update_domain_block: 도메인 차단 갱신
+ update_ip_block: IP 규칙 수정
update_status: 게시물 게시
+ update_user_role: 역할 수정
actions:
approve_appeal_html: "%{name} 님이 %{target}의 중재 결정에 대한 이의제기를 승인했습니다"
approve_user_html: "%{name} 님이 %{target}의 가입을 승인했습니다"
assigned_to_self_report_html: "%{name} 님이 신고 %{target}을 자신에게 할당했습니다"
change_email_user_html: "%{name} 님이 사용자 %{target}의 이메일 주소를 변경했습니다"
+ change_role_user_html: "%{name} 님이 %{target} 님의 역할을 수정했습니다"
confirm_user_html: "%{name} 님이 사용자 %{target}의 이메일 주소를 승인했습니다"
create_account_warning_html: "%{name} 님이 %{target}에게 경고를 보냈습니다"
create_announcement_html: "%{name} 님이 새 공지 %{target}을 만들었습니다"
+ create_canonical_email_block_html: "%{name} 님이 %{target} 해시를 가진 이메일을 차단했습니다"
create_custom_emoji_html: "%{name} 님이 새로운 에모지 %{target}를 업로드 했습니다"
create_domain_allow_html: "%{name} 님이 %{target} 도메인을 허용리스트에 넣었습니다"
create_domain_block_html: "%{name} 님이 도메인 %{target}를 차단했습니다"
create_email_domain_block_html: "%{name} 님이 이메일 도메인 %{target}를 차단했습니다"
create_ip_block_html: "%{name} 님이 IP 규칙 %{target}을 만들었습니다"
create_unavailable_domain_html: "%{name} 님이 도메인 %{target}에 대한 전달을 중지했습니다"
+ create_user_role_html: "%{name} 님이 %{target} 역할을 생성했습니다"
demote_user_html: "%{name} 님이 사용자 %{target} 님을 강등했습니다"
destroy_announcement_html: "%{name} 님이 공지 %{target}을 삭제했습니다"
- destroy_custom_emoji_html: "%{name} 님이 %{target} 에모지를 삭제했습니다"
+ destroy_canonical_email_block_html: "%{name} 님이 %{target} 해시를 가진 이메일을 차단 해제했습니다"
+ destroy_custom_emoji_html: "%{name} 님이 에모지 %{target}를 삭제했습니다"
destroy_domain_allow_html: "%{name} 님이 %{target} 도메인과의 연합을 금지했습니다"
destroy_domain_block_html: "%{name} 님이 도메인 %{target}의 차단을 해제했습니다"
destroy_email_domain_block_html: "%{name} 님이 이메일 도메인 %{target}을 차단 해제하였습니다"
@@ -300,6 +248,7 @@ ko:
destroy_ip_block_html: "%{name} 님이 IP 규칙 %{target}을 삭제하였습니다"
destroy_status_html: "%{name} 님이 %{target}의 게시물을 삭제했습니다"
destroy_unavailable_domain_html: "%{name} 님이 도메인 %{target}에 대한 전달을 재개"
+ destroy_user_role_html: "%{name} 님이 %{target} 역할을 삭제했습니다"
disable_2fa_user_html: "%{name} 님이 사용자 %{target}의 2FA를 비활성화 했습니다"
disable_custom_emoji_html: "%{name} 님이 에모지 %{target}를 비활성화 했습니다"
disable_sign_in_token_auth_user_html: "%{name} 님이 %{target} 님의 이메일 토큰 인증을 비활성화 했습니다"
@@ -326,8 +275,9 @@ ko:
update_announcement_html: "%{name} 님이 공지사항 %{target}을 갱신했습니다"
update_custom_emoji_html: "%{name} 님이 에모지 %{target}를 업데이트 했습니다"
update_domain_block_html: "%{name} 님이 %{target}에 대한 도메인 차단을 갱신했습니다"
+ update_ip_block_html: "%{name} 님이 IP 규칙 %{target}을 수정했습니다"
update_status_html: "%{name} 님이 %{target}의 게시물을 업데이트 했습니다"
- deleted_status: "(삭제된 게시물)"
+ update_user_role_html: "%{name} 님이 %{target} 역할을 수정했습니다"
empty: 로그를 찾을 수 없습니다
filter_by_action: 행동으로 거르기
filter_by_user: 사용자로 거르기
@@ -371,6 +321,7 @@ ko:
listed: 목록에 실림
new:
title: 새 커스텀 에모지 추가
+ no_emoji_selected: 아무 것도 선택 되지 않아 어떤 에모지도 바뀌지 않았습니다
not_permitted: 이 작업을 수행할 권한이 없습니다
overwrite: 덮어쓰기
shortcode: 짧은 코드
@@ -637,6 +588,65 @@ ko:
unresolved: 미해결
updated_at: 업데이트 시각
view_profile: 프로필 보기
+ roles:
+ add_new: 역할 추가
+ assigned_users:
+ other: "%{count} 명의 사용자"
+ categories:
+ administration: 관리
+ devops: 데브옵스
+ invites: 초대
+ moderation: 중재
+ special: 특수
+ delete: 삭제
+ description_html: "사용자 역할 을 통해, 사용자들이 마스토돈의 어떤 기능과 영역에 접근할 수 있을지 설정할 수 있습니다."
+ edit: "%{name} 역할 수정"
+ everyone: 기본 권한
+ everyone_full_description_html: 이것은 모든 사용자 에게 적용될 기본 역할 이며, 역할을 지정하지 않아도 적용됩니다. 다른 모든 역할들은 여기에서 권한을 상속합니다.
+ permissions_count:
+ other: "%{count} 개의 권한"
+ privileges:
+ administrator: 관리자
+ administrator_description: 이 권한을 가진 사용자는 모든 권한을 우회합니다
+ delete_user_data: 사용자 데이터 삭제
+ delete_user_data_description: 사용자가 다른 사용자의 데이터를 지체 없이 삭제할 수 있도록 허용
+ invite_users: 사용자 초대
+ invite_users_description: 사용자가 다른 사람들을 서버에 초대할 수 있도록 허용
+ manage_announcements: 공지 관리
+ manage_announcements_description: 사용자가 서버의 공지사항을 관리할 수 있도록 허용
+ manage_appeals: 이의제기 관리
+ manage_appeals_description: 사용자가 중재에 대한 이의제기를 리뷰할 수 있도록 허용
+ manage_blocks: 차단 관리
+ manage_blocks_description: 사용자가 이메일 제공자와 IP 주소를 차단할 수 있도록 허용
+ manage_custom_emojis: 커스텀 에모지 관리
+ manage_custom_emojis_description: 사용자가 서버의 커스텀 에모지를 관리할 수 있도록 허용
+ manage_federation: 연합 관리
+ manage_federation_description: 사용자가 다른 도메인과의 연합을 차단하거나 허용할 수 있도록 하고, 전달 가능 여부를 조정할 수 있도록 허용
+ manage_invites: 초대 관리
+ manage_invites_description: 사용자가 초대 링크를 보고 비활성화 할 수 있도록 허용
+ manage_reports: 신고 관리
+ manage_reports_description: 사용자가 신고를 리뷰하고 해당 사용자에 대한 중재활동을 수행할 수 있도록 허용
+ manage_roles: 역할 관리
+ manage_roles_description: 사용자가 그들 이하의 권한에 대해 관리하고 할당할 수 있도록 허용
+ manage_rules: 규칙 관리
+ manage_rules_description: 사용자가 서버 규칙을 수정할 수 있도록 허용합니다
+ manage_settings: 설정 관리
+ manage_settings_description: 사용자가 서버 설정을 수정할 수 있도록 허용합니다
+ manage_taxonomies: 분류 관리
+ manage_taxonomies_description: 사용자가 트렌드를 리뷰하고 해시태그 설정을 수정할 수 있도록 허용합니다
+ manage_user_access: 사용자 접근 관리
+ manage_user_access_description: 사용자가 다른 사용자의 2차 인증을 비활성화 하거나, 이메일 주소를 바꾸거나, 암호를 초기화 할 수 있도록 허용
+ manage_users: 사용자 관리
+ manage_users_description: 사용자가 다른 사용자의 상세정보를 보고 해당 사용자에 대한 중재활동을 할 수 있도록 허용
+ manage_webhooks: 웹훅 관리
+ manage_webhooks_description: 사용자가 관리용 웹훅을 설정할 수 있도록 허용
+ view_audit_log: 감사 기록 보기
+ view_audit_log_description: 사용자가 서버의 감사 기록을 볼 수 있도록 허용
+ view_dashboard: 대시보드 보기
+ view_dashboard_description: 사용자가 여러 통계정보를 볼 수 있는 대시보드에 접근할 수 있도록 허용
+ view_devops: 데브옵스
+ view_devops_description: Sidekiq과 pgHero 대시보드에 접근할 수 있도록 허용
+ title: 역할
rules:
add_new: 규칙 추가
delete: 삭제
@@ -645,108 +655,61 @@ ko:
empty: 아직 정의된 서버 규칙이 없습니다.
title: 서버 규칙
settings:
- activity_api_enabled:
- desc_html: 주별 로컬에 게시 된 글, 활성 사용자 및 새로운 가입자 수
- title: 사용자 활동에 대한 통계 발행
- bootstrap_timeline_accounts:
- desc_html: 콤마로 여러 사용자명을 구분. 이 계정들은 팔로우 추천에 반드시 나타나게 됩니다
- title: 새로운 사용자들에게 추천할 계정들
- contact_information:
- email: 공개할 메일 주소를 입력
- username: 연락 받을 관리자 사용자명
- custom_css:
- desc_html: 모든 페이지에 적용할 CSS
- title: 커스텀 CSS
- default_noindex:
- desc_html: 이 설정을 바꾸지 않은 모든 사용자들에게 적용 됩니다
- title: 사용자들이 기본적으로 검색엔진에 인덱싱 되지 않도록 합니다
+ about:
+ manage_rules: 서버 규칙 관리
+ title: 정보
+ appearance:
+ preamble: 마스토돈의 웹 인터페이스를 변경
+ title: 외관
+ branding:
+ title: 브랜딩
+ content_retention:
+ title: 콘텐츠 보존기한
+ discovery:
+ follow_recommendations: 팔로우 추천
+ profile_directory: 프로필 책자
+ public_timelines: 공개 타임라인
+ title: 발견하기
+ trends: 유행
domain_blocks:
all: 모두에게
disabled: 아무에게도 안 함
- title: 도메인 차단 보여주기
users: 로그인 한 사용자에게
- domain_blocks_rationale:
- title: 사유 보여주기
- hero:
- desc_html: 프론트페이지에 표시 됩니다. 최소 600x100픽셀을 권장합니다. 만약 설정되지 않았다면, 서버의 썸네일이 사용 됩니다
- title: 히어로 이미지
- mascot:
- desc_html: 여러 페이지에서 보여집니다. 최소 293x205px을 추천합니다. 설정 되지 않은 경우, 기본 마스코트가 사용 됩니다
- title: 마스코트 이미지
- peers_api_enabled:
- desc_html: 이 서버가 페디버스에서 만났던 도메인 네임들
- title: 발견 된 서버들의 리스트 발행
- preview_sensitive_media:
- desc_html: 민감한 미디어로 설정되었더라도 다른 웹사이트에서 링크 미리보기에 썸네일을 보여줍니다
- title: 민감한 미디어를 오픈그래프 미리보기에 보여주기
- profile_directory:
- desc_html: 사용자들이 발견 될 수 있도록 허용
- title: 프로필 책자 활성화
registrations:
- closed_message:
- desc_html: 신규 등록을 받지 않을 때 프론트 페이지에 표시됩니다. HTML 태그를 사용할 수 있습니다
- title: 신규 등록 정지 시 메시지
- deletion:
- desc_html: 사용자가 자신의 계정을 삭제할 수 있도록 허용합니다
- title: 계정 삭제를 허가함
- min_invite_role:
- disabled: 아무도 못 하게
- title: 초대링크를 만들 수 있는 권한
- require_invite_text:
- desc_html: 가입이 수동 승인을 필요로 할 때, "왜 가입하려고 하나요?" 항목을 선택사항으로 두는 것보다는 필수로 두는 것이 낫습니다
- title: 새 사용자가 초대 요청 글을 작성해야 하도록
+ title: 가입
registrations_mode:
modes:
approved: 가입하려면 승인이 필요함
none: 아무도 가입 할 수 없음
open: 누구나 가입 할 수 있음
- title: 가입 모드
- show_known_fediverse_at_about_page:
- desc_html: 활성화 되면 프리뷰 페이지에서 페디버스의 모든 게시물을 표시합니다. 비활성화시 로컬에 있는 게시물만 표시 됩니다.
- title: 타임라인 프리뷰에 알려진 페디버스 표시하기
- show_staff_badge:
- desc_html: 사용자 페이지에 스태프 배지를 표시합니다
- title: 스태프 배지 표시
- site_description:
- desc_html: API의 소개문에 사용 됩니다.이 마스토돈 서버의 특별한 점 등을 설명하세요. HTML 태그, 주로 <a>
, <em>
같은 것을 사용 가능합니다.
- title: 서버 설명
- site_description_extended:
- desc_html: 규칙, 가이드라인 등을 작성하기 좋은 곳입니다. HTML 태그를 사용할 수 있습니다
- title: 사이트 상세 설명
- site_short_description:
- desc_html: 사이드바와 메타 태그에 나타납니다. 마스토돈이 무엇이고 이 서버의 특징은 무엇인지 한 문장으로 설명하세요.
- title: 짧은 서버 설명
- site_terms:
- desc_html: 당신은 독자적인 개인정보 취급 방침이나 이용약관, 그 외의 법적 근거를 작성할 수 있습니다. HTML태그를 사용할 수 있습니다
- title: 커스텀 서비스 이용 약관
- site_title: 서버 이름
- thumbnail:
- desc_html: OpenGraph와 API의 미리보기로 사용 됩니다. 1200x630px을 권장합니다
- title: 서버 썸네일
- timeline_preview:
- desc_html: 랜딩 페이지에 공개 타임라인을 표시합니다
- title: 타임라인 프리뷰
- title: 사이트 설정
- trendable_by_default:
- desc_html: 이전에 거부되지 않은 해시태그들에 영향을 미칩니다
- title: 해시태그가 사전 리뷰 없이 트렌드에 올라갈 수 있도록 허용
- trends:
- desc_html: 리뷰를 거친 해시태그를 유행하는 해시태그에 공개적으로 보여줍니다
- title: 유행하는 해시태그
+ title: 서버 설정
site_uploads:
delete: 업로드한 파일 삭제
destroyed_msg: 사이트 업로드를 성공적으로 삭제했습니다!
statuses:
+ account: 작성자
+ application: 애플리케이션
back_to_account: 계정으로 돌아가기
back_to_report: 신고 페이지로 돌아가기
batch:
remove_from_report: 신고에서 제거
report: 신고
deleted: 삭제됨
+ favourites: 좋아요
+ history: 버전 이력
+ in_reply_to: '회신 대상:'
+ language: 언어
media:
title: 미디어
- no_status_selected: 아무 게시물도 선택 되지 않아 아무 것도 바뀌지 않았습니다
+ metadata: 메타데이터
+ no_status_selected: 아무 것도 선택 되지 않아 어떤 게시물도 바뀌지 않았습니다
+ open: 게시물 열기
+ original_status: 원본 게시물
+ reblogs: 리블로그
+ status_changed: 게시물 변경됨
title: 계정 게시물
+ trending: 유행중
+ visibility: 공개 설정
with_media: 미디어 있음
strikes:
actions:
@@ -786,6 +749,9 @@ ko:
description_html: 현재 서버에서 게시물을 볼 수 있는 계정에서 많이 공유되고 있는 링크들입니다. 사용자가 세상 돌아가는 상황을 파악하는 데 도움이 됩니다. 출처를 승인할 때까지 링크는 공개적으로 게시되지 않습니다. 각각의 링크를 개별적으로 허용하거나 거부할 수도 있습니다.
disallow: 링크 거부하기
disallow_provider: 출처 거부하기
+ no_link_selected: 아무 것도 선택 되지 않아 어떤 링크도 바뀌지 않았습니다
+ publishers:
+ no_publisher_selected: 아무 것도 선택 되지 않아 어떤 게시자도 바뀌지 않았습니다
shared_by_over_week:
other: 지난 주 동안 %{count} 명의 사람들이 공유했습니다
title: 유행하는 링크
@@ -804,6 +770,7 @@ ko:
description_html: 당신의 서버가 알기로 현재 많은 수의 공유와 좋아요가 되고 있는 게시물들입니다. 새로운 사용자나 돌아오는 사용자들이 팔로우 할 사람들을 찾는 데 도움이 될 수 있습니다. 작성자를 승인하고, 작성자가 그들의 계정이 다른 계정에게 탐색되도록 설정하지 않는 한 게시물들은 공개적으로 표시되지 않습니다. 또한 각각의 게시물을 별개로 거절할 수도 있습니다.
disallow: 게시물 불허
disallow_account: 작성자 불허
+ no_status_selected: 아무 것도 선택 되지 않아 어떤 유행중인 게시물도 바뀌지 않았습니다
not_discoverable: 작성자가 발견되기를 원치 않습니다
shared_by:
other: "%{friendly_count} 번 공유되고 마음에 들어했습니다"
@@ -818,6 +785,7 @@ ko:
tag_uses_measure: 총 사용
description_html: 현재 서버에서 볼 수 있는 게시물에서 많이 공유되고 있는 해시태그들입니다. 현재 사람들이 무슨 이야기를 하고 있는지 사용자들이 파악할 수 있도록 도움이 됩니다. 승인하지 않는 한 해시태그는 공개적으로 게시되지 않습니다.
listable: 추천될 수 있습니다
+ no_tag_selected: 아무 것도 선택 되지 않아 어떤 태그도 바뀌지 않았습니다
not_listable: 추천될 수 없습니다
not_trendable: 유행 목록에 나타나지 않습니다
not_usable: 사용불가
@@ -837,6 +805,25 @@ ko:
edit_preset: 경고 틀 수정
empty: 아직 어떤 경고 틀도 정의되지 않았습니다.
title: 경고 틀 관리
+ webhooks:
+ add_new: 엔드포인트 추가
+ delete: 삭제
+ description_html: "웹훅 은 선택한 이벤트에 대해 마스토돈이 실시간 알림 을 각자의 응용프로그램에게 보냄으로서, 당신의 응용프로그램이 자동으로 반응 을 할 수 있도록 만듧니다."
+ disable: 비활성화
+ disabled: 비활성화됨
+ edit: 엔드포인트 수정
+ empty: 아직 설정한 웹훅 엔드포인트가 없습니다.
+ enable: 활성화
+ enabled: 활성화됨
+ enabled_events:
+ other: "%{count}개의 이벤트가 활성화되어 있습니다"
+ events: 이벤트
+ new: 새 웹훅
+ rotate_secret: 비밀키 회전
+ secret: 비밀키 서명
+ status: 상태
+ title: 웹훅
+ webhook: 웹훅
admin_mailer:
new_appeal:
actions:
@@ -860,12 +847,8 @@ ko:
new_trends:
body: '아래에 있는 항목들은 공개적으로 보여지기 전에 검토를 거쳐야 합니다:'
new_trending_links:
- no_approved_links: 현재 승인된 유행 중인 링크가 없습니다.
- requirements: '이 후보들 중 어떤 것이라도 #%{rank}위의 승인된 유행 중인 링크를 앞지를 수 있으며, 이것은 현재 "%{lowest_link_title}"이고 %{lowest_link_score}점을 기록하고 있습니다.'
title: 유행하는 링크
new_trending_statuses:
- no_approved_statuses: 현재 승인된 유행 중인 게시물이 없습니다.
- requirements: '이 후보들 중 어떤 것이라도 #%{rank}위의 승인된 유행 중인 게시물을 앞지를 수 있으며, 이것은 현재 %{lowest_status_url}이고 %{lowest_status_score}점을 기록하고 있습니다.'
title: 유행하는 게시물
new_trending_tags:
no_approved_tags: 현재 승인된 유행 중인 해시태그가 없습니다.
@@ -901,16 +884,13 @@ ko:
applications:
created: 애플리케이션이 성공적으로 생성되었습니다
destroyed: 애플리케이션이 성공적으로 삭제되었습니다
- invalid_url: 올바르지 않은 URL입니다
regenerate_token: 토큰 재생성
token_regenerated: 액세스 토큰이 성공적으로 재생성되었습니다
warning: 이 데이터를 조심히 다뤄 주세요. 다른 사람들과 절대로 공유하지 마세요!
your_token: 액세스 토큰
auth:
- apply_for_account: 가입 요청하기
+ apply_for_account: 대기자 명단에 들어가기
change_password: 패스워드
- checkbox_agreement_html: 서버 규칙 과 이용약관 에 동의합니다
- checkbox_agreement_without_rules_html: 이용 약관 에 동의합니다
delete_account: 계정 삭제
delete_account_html: 계정을 삭제하고 싶은 경우, 여기서 삭제할 수 있습니다. 삭제 전 확인 화면이 표시됩니다.
description:
@@ -929,6 +909,7 @@ ko:
migrate_account: 계정 옮기기
migrate_account_html: 이 계정을 다른 계정으로 리디렉션 하길 원하는 경우 여기 에서 설정할 수 있습니다.
or_log_in_with: 다른 방법으로 로그인 하려면
+ privacy_policy_agreement_html: 개인정보 보호정책 을 읽었고 동의합니다
providers:
cas: CAS
saml: SAML
@@ -936,12 +917,18 @@ ko:
registration_closed: "%{instance}는 새로운 가입을 받지 않고 있습니다"
resend_confirmation: 확인 메일을 다시 보내기
reset_password: 암호 재설정
+ rules:
+ preamble: 다음은 %{domain}의 중재자들에 의해 설정되고 적용되는 규칙들입니다.
+ title: 몇 개의 규칙이 있습니다.
security: 보안
set_new_password: 새 암호
setup:
email_below_hint_html: 아래의 이메일 계정이 올바르지 않을 경우, 여기서 변경하고 새 확인 메일을 받을 수 있습니다.
email_settings_hint_html: 확인 메일이 %{email}로 보내졌습니다. 이메일 주소가 올바르지 않은 경우, 계정 설정에서 변경하세요.
title: 설정
+ sign_up:
+ preamble: 이 마스토돈 서버의 계정을 통해, 네트워크에 속한 다른 사람들을, 그들이 어떤 서버에 있든 팔로우 할 수 있습니다.
+ title: "%{domain}에 가입하기 위한 정보들을 입력하세요."
status:
account_status: 계정 상태
confirming: 이메일 확인 과정이 완료되기를 기다리는 중.
@@ -950,7 +937,6 @@ ko:
redirecting_to: 계정이 %{acct}로 리다이렉트 중이기 때문에 비활성 상태입니다.
view_strikes: 내 계정에 대한 과거 중재 기록 보기
too_fast: 너무 빠르게 양식이 제출되었습니다, 다시 시도하세요.
- trouble_logging_in: 로그인 하는데 문제가 있나요?
use_security_key: 보안 키 사용
authorize_follow:
already_following: 이미 이 계정을 팔로우 하고 있습니다
@@ -1008,10 +994,6 @@ ko:
more_details_html: 더 자세한 정보는, 개인정보 정책 을 참고하세요.
username_available: 당신의 계정명은 다시 사용할 수 있게 됩니다
username_unavailable: 당신의 계정명은 앞으로 사용할 수 없습니다
- directories:
- directory: 프로필 책자
- explanation: 관심사에 대한 사용자들을 발견합니다
- explore_mastodon: "%{title} 탐사하기"
disputes:
strikes:
action_taken: 내려진 징계
@@ -1090,29 +1072,54 @@ ko:
public: 퍼블릭 타임라인
thread: 대화
edit:
+ add_keyword: 키워드 추가
+ keywords: 키워드
+ statuses: 개별 게시물
+ statuses_hint_html: 이 필터는 아래의 키워드에 매칭되는지 여부와 관계 없이 몇몇개의 게시물들에 별개로 적용되었습니다. 검토하거나 필터에서 삭제하세요
title: 필터 편집
errors:
+ deprecated_api_multiple_keywords: 이 파라미터들은 하나를 초과하는 필터 키워드에 적용되기 때문에 이 응용프로그램에서 수정될 수 없습니다. 더 최신의 응용프로그램이나 웹 인터페이스를 사용하세요.
invalid_context: 컨텍스트가 없거나 올바르지 않습니다
- invalid_irreversible: 되돌릴 수 없는 필터링은 홈 타임라인과 알림에서만 동작합니다
index:
+ contexts: "%{contexts}에 대한 필터"
delete: 삭제
empty: 필터가 없습니다.
+ expires_in: "%{distance} 안에 만료됨"
+ expires_on: "%{date}에 만료됨"
+ keywords:
+ other: "%{count}개의 키워드"
+ statuses:
+ other: "%{count}개의 게시물"
+ statuses_long:
+ other: "%{count}개의 개별적인 게시물 숨겨짐"
title: 필터
new:
+ save: 새 필터 저장
title: 필터 추가
+ statuses:
+ back_to_filter: 필터로 돌아가기
+ batch:
+ remove: 필터에서 제거
+ index:
+ hint: 이 필터는 다른 기준에 관계 없이 선택된 개별적인 게시물들에 적용됩니다. 웹 인터페이스에서 더 많은 게시물들을 이 필터에 추가할 수 있습니다.
+ title: 필터링된 게시물
footer:
- developers: 개발자
- more: 더 보기…
- resources: 리소스
trending_now: 지금 유행중
generic:
all: 모두
+ all_items_on_page_selected_html:
+ other: 현재 페이지에서 %{count} 개의 항목이 선택되었습니다
+ all_matching_items_selected_html:
+ other: 검색에 잡히는 %{count} 개의 항목이 선택되었습니다
changes_saved_msg: 정상적으로 변경되었습니다!
copy: 복사
delete: 삭제
+ deselect: 전체 선택 해제
none: 없음
order_by: 순서
save_changes: 변경 사항을 저장
+ select_all_matching_items:
+ other: 검색에 잡힌 %{count} 개의 항목을 모두 선택하기
today: 오늘
validation_errors:
other: 오류가 발생했습니다. 아래 %{count}개 오류를 확인해 주십시오
@@ -1135,7 +1142,6 @@ ko:
following: 팔로우 중인 계정 목록
muting: 뮤트 중인 계정 목록
upload: 업로드
- in_memoriam_html: 고인의 계정입니다.
invites:
delete: 비활성화
expired: 만료됨
@@ -1215,17 +1221,10 @@ ko:
copy_account_note_text: '이 사용자는 %{acct}로부터 이동하였습니다. 당신의 이전 노트는 이렇습니다:'
notification_mailer:
admin:
+ report:
+ subject: "%{name} 님이 신고를 제출했습니다"
sign_up:
subject: "%{name} 님이 가입했습니다"
- digest:
- action: 모든 알림 보기
- body: 마지막 로그인(%{since}) 이후로 일어난 일들에 관한 요약
- mention: "%{name} 님이 나를 언급했습니다:"
- new_followers_summary:
- other: 게다가, 접속하지 않은 동안 %{count} 명의 팔로워가 생겼습니다!
- subject:
- other: 마지막 방문 이후로 %{count} 건의 새로운 알림
- title: 당신이 없는 동안에...
favourite:
body: '당신의 게시물을 %{name} 님이 마음에 들어했습니다:'
subject: "%{name} 님이 내 게시물을 마음에 들어했습니다"
@@ -1297,6 +1296,8 @@ ko:
other: 기타
posting_defaults: 게시물 기본설정
public_timelines: 공개 타임라인
+ privacy_policy:
+ title: 개인정보 정책
reactions:
errors:
limit_reached: 다른 리액션 제한에 도달했습니다
@@ -1319,22 +1320,7 @@ ko:
remove_selected_follows: 선택한 사용자들을 팔로우 해제
status: 계정 상태
remote_follow:
- acct: 당신이 사용하는 아이디@도메인을 입력해 주십시오
missing_resource: 리디렉션 대상을 찾을 수 없습니다
- no_account_html: 계정이 없나요? 여기에서 가입 할 수 있습니다
- proceed: 팔로우 하기
- prompt: '팔로우 하려 하고 있습니다:'
- reason_html: "왜 이 과정이 필요하죠? %{instance}
는 당신이 가입한 서버가 아닐 것입니다, 당신의 홈 서버로 먼저 가야 합니다."
- remote_interaction:
- favourite:
- proceed: 좋아요 진행
- prompt: '이 게시물을 좋아요 하려고 합니다:'
- reblog:
- proceed: 부스트 진행
- prompt: '이 게시물을 부스트 하려 합니다:'
- reply:
- proceed: 답장 진행
- prompt: '이 게시물에 답장을 하려 합니다:'
reports:
errors:
invalid_rules: 올바른 규칙을 포함하지 않습니다
@@ -1500,89 +1486,6 @@ ko:
too_late: 이의를 제기하기에 너무 늦었습니다
tags:
does_not_match_previous_name: 이전 이름과 맞지 않습니다
- terms:
- body_html: |
- 개인정보 정책
- 우리가 어떤 정보를 수집하나요?
-
-
- 기본 계정 정보 : 이 서버에 가입하실 때 사용자명, 이메일 주소, 패스워드 등을 입력 받게 됩니다. 추가적으로 표시되는 이름이나 자기소개, 프로필 이미지, 헤더 이미지 등의 프로필 정보를 입력하게 됩니다. 사용자명, 표시되는 이름, 자기소개, 프로필 이미지와 헤더 이미지는 언제나 공개적으로 게시됩니다.
- 게시물, 팔로잉, 기타 공개된 정보 : 당신이 팔로우 하는 사람들의 리스트는 공개됩니다. 당신을 팔로우 하는 사람들도 마찬가지입니다. 당신이 게시물을 작성하는 경우, 응용프로그램이 메시지를 받았을 때의 날짜와 시간이 기록 됩니다. 게시물은 그림이나 영상 등의 미디어를 포함할 수 있습니다. 퍼블릭과 미표시(unlisted) 게시물은 공개적으로 접근이 가능합니다. 프로필에 게시물을 고정하는 경우 마찬가지로 공개적으로 접근 가능한 정보가 됩니다. 당신의 게시물들은 당신의 팔로워들에게 전송 됩니다. 몇몇 경우 이것은 다른 서버에 전송되고 그곳에 사본이 저장 됩니다. 당신이 게시물을 삭제하는 경우 이 또한 당신의 팔로워들에게 전송 됩니다. 다른 게시물을 리블로깅 하거나 좋아요 하는 경우 이는 언제나 공개적으로 제공 됩니다.
- DM, 팔로워 공개 게시물 : 모든 게시물들은 서버에서 처리되고 저장됩니다. 팔로워 공개 게시물은 당신의 팔로워와 멘션 된 사람들에게 전달이 됩니다. 다이렉트 메시지는 멘션 된 사람들에게만 전송 됩니다. 몇몇 경우 이것은 다른 서버에 전송 되고 그곳에 사본이 저장됨을 의미합니다. 우리는 이 게시물들이 권한을 가진 사람들만 열람이 가능하도록 노력을 할 것이지만 다른 서버에서는 이것이 실패할 수도 있습니다. 그러므로 당신의 팔로워들이 속한 서버를 재확인하는 것이 중요합니다. 당신은 새 팔로워를 수동으로 승인하거나 거절하도록 설정을 변경할 수 있습니다. 해당 서버의 운영자는 서버가 받는 메시지를 열람할 수 있다는 것을 항상 염두해 두세요 , 그리고 수신자들은 스크린샷을 찍거나 복사하는 등의 방법으로 다시 공유할 수 있습니다. 민감한 정보를 마스토돈을 통해 공유하지 마세요.
- IP와 기타 메타데이터 : 당신이 로그인 하는 경우 IP 주소와 브라우저의 이름을 저장합니다. 모든 세션은 당신이 검토하고 취소할 수 있도록 설정에서 제공 됩니다. 마지막으로 사용 된 IP 주소는 최대 12개월 간 저장됩니다. 또한, 모든 요청에 대해 IP주소를 포함한 정보를 로그에 저장할 수 있습니다.
-
-
-
-
- 우리가 당신의 정보를 어디에 쓰나요?
-
- 당신에게서 수집한 정보는 다음과 같은 곳에 사용 됩니다:
-
-
- 마스토돈의 주요 기능 제공. 다른 사람의 게시물에 상호작용 하거나 자신의 게시물을 작성하기 위해서는 로그인을 해야 합니다. 예를 들어, 다른 사람의 게시물을 자신만의 홈 타임라인에서 모아 보기 위해 팔로우를 할 수 있습니다.
- 커뮤니티의 중재를 위해, 예를 들어 당신의 IP 주소와 기타 사항을 비교하여 금지를 우회하거나 다른 규칙을 위반하는지 판단하는 데에 사용할 수 있습니다.
- 당신이 제공한 이메일 주소를 통해 정보, 다른 사람들의 반응이나 받은 메시지에 대한 알림, 기타 요청 등에 관한 응답 요청 등을 보내는 데에 활용됩니다.
-
-
-
-
- 어떻게 당신의 정보를 보호하나요?
-
- 우리는 당신이 입력, 전송, 접근하는 개인정보를 보호하기 위해 다양한 보안 대책을 적용합니다. 당신의 브라우저 세션, 당신의 응용프로그램과의 통신, API는 SSL로 보호 되며 패스워드는 강력한 단방향 해시 알고리즘을 사용합니다. 계정의 더 나은 보안을 위해 2단계 인증을 활성화 할 수 있습니다.
-
-
-
- 자료 저장 정책은 무엇이죠?
-
- 우리는 다음을 위해 노력을 할 것입니다:
-
-
- IP를 포함해 이 서버에 전송 되는 모든 요청에 대한 로그는 90일을 초과하여 저장되지 않습니다.
- 가입 된 사용자의 IP 정보는 12개월을 초과하여 저장 되지 않습니다.
-
-
- 당신은 언제든지 게시물, 미디어 첨부, 프로필 이미지, 헤더 이미지를 포함한 당신의 컨텐트에 대한 아카이브를 요청하고 다운로드 할 수 있습니다.
-
- 언제든지 계정을 완전히 삭제할 수 있습니다.
-
-
-
- 쿠키를 사용하나요?
-
- 네. 쿠키는 (당신이 허용한다면) 당신의 웹 브라우저를 통해 서버에서 당신의 하드드라이브에 저장하도록 전송하는 작은 파일들입니다. 이 쿠키들은 당신의 브라우저를 인식하고, 계정이 있는 경우 이와 연결하는 것을 가능하게 합니다.
-
- 당신의 환경설정을 저장하고 다음 방문에 활용하기 위해 쿠키를 사용합니다.
-
-
-
- 외부에 정보를 공개하나요?
-
- 우리는 당신을 식별 가능한 개인정보를 외부에 팔거나 제공하거나 전송하지 않습니다. 이는 당사의 사이트를 운영하기 위한, 기밀 유지에 동의하는, 신뢰 가능한 서드파티를 포함하지 않습니다. 또한 법률 준수, 사이트 정책 시행, 또는 당사나 타인에 대한 권리, 재산, 또는 안전보호를 위해 적절하다고 판단되는 경우 당신의 정보를 공개할 수 있습니다.
-
- 당신의 공개 게시물은 네트워크에 속한 다른 서버가 다운로드 할 수 있습니다. 당신의 팔로워나 수신자가 이 서버가 아닌 다른 곳에 존재하는 경우 당신의 공개, 팔로워 공개 게시물은 당신의 팔로워가 존재하는 서버로 전송되며, 다이렉트메시지는 수신자가 존재하는 서버로 전송 됩니다.
-
- 당신이 계정을 사용하기 위해 응용프로그램을 승인하는 경우 당신이 허용한 권한에 따라 응용프로그램은 당신의 공개 계정정보, 팔로잉 리스트, 팔로워 리스트, 게시물, 좋아요 등에 접근이 가능해집니다. 응용프로그램은 절대로 당신의 이메일 주소나 패스워드에 접근할 수 없습니다.
-
-
-
- 어린이의 사이트 사용
-
- 이 서버가 EU나 EEA에 속해 있다면: 당사의 사이트, 제품과 서비스는 16세 이상인 사람들을 위해 제공됩니다. 당신이 16세 미만이라면 GDPR(General Data Protection Regulation )의 요건에 따라 이 사이트를 사용할 수 없습니다.
-
- 이 서버가 미국에 속해 있다면: 당사의 사이트, 제품과 서비스는 13세 이상인 사람들을 위해 제공됩니다. 당신이 13세 미만이라면 COPPA (Children's Online Privacy Protection Act )의 요건에 따라 이 사이트를 사용할 수 없습니다.
-
- 이 서버가 있는 관할권에 따라 법적 요구가 달라질 수 있습니다.
-
-
-
- 개인정보 정책의 변경
-
- 만약 우리의 개인정보 정책이 바뀐다면, 이 페이지에 바뀐 정책이 게시됩니다.
-
- 이 문서는 CC-BY-SA 라이센스입니다. 마지막 업데이트는 2012년 5월 26일입니다.
-
- Originally adapted from the Discourse privacy policy .
- title: "%{instance} 이용약관과 개인정보 취급 방침"
themes:
contrast: 마스토돈 (고대비)
default: 마스토돈 (어두움)
@@ -1661,20 +1564,13 @@ ko:
suspend: 계정 정지 됨
welcome:
edit_profile_action: 프로필 설정
- edit_profile_step: 아바타, 헤더를 업로드하고, 사람들에게 표시 될 이름을 바꾸는 것으로 당신의 프로필을 커스텀 할 수 있습니다. 사람들이 당신을 팔로우 하기 전에 리뷰를 거치게 하고 싶다면 계정을 잠그면 됩니다.
+ edit_profile_step: 프로필 사진을 업로드하고, 사람들에게 표시 될 이름을 바꾸는 것 등으로 당신의 프로필을 커스텀 할 수 있습니다. 사람들이 당신을 팔로우 하기 전에 리뷰를 거치게 할 수도 있습니다.
explanation: 시작하기 전에 몇가지 팁들을 준비했습니다
final_action: 포스팅 시작하기
- final_step: '포스팅을 시작하세요! 팔로워가 없더라도 퍼블릭 메시지는 다른 사람들이 볼 수 있습니다, 예를 들면 로컬 타임라인이나 해시태그에서요. 사람들에게 자신을 소개하고 싶다면 #introductions 해시태그를 이용해보세요.'
+ final_step: '게시물을 올리세요! 팔로워가 없더라도, 공개 게시물들은 다른 사람에게 보여질 수 있습니다, 예를 들자면 로컬이나 연합 타임라인 등이 있습니다. 사람들에게 자신을 소개하고 싶다면 #툿친소 해시태그를 이용해보세요.'
full_handle: 당신의 풀 핸들
full_handle_hint: 이것을 당신의 친구들에게 알려주면 다른 서버에서 팔로우 하거나 메시지를 보낼 수 있습니다.
- review_preferences_action: 설정 바꾸기
- review_preferences_step: 당신의 설정을 확인하세요. 어떤 이메일로 알림을 받을 것인지, 기본적으로 어떤 프라이버시 설정을 사용할 것인지, 멀미가 없다면 GIF를 자동 재생하도록 설정할 수도 있습니다.
subject: 마스토돈에 오신 것을 환영합니다
- tip_federated_timeline: 연합 타임라인은 마스토돈 네트워크의 소방호스입니다. 다만 여기엔 당신의 이웃들이 구독 중인 것만 뜹니다, 모든 것이 다 오는 것은 아니예요.
- tip_following: 기본적으로 서버의 관리자를 팔로우 하도록 되어 있습니다. 흥미로운 사람들을 더 찾으려면 로컬과 연합 타임라인을 확인해 보세요.
- tip_local_timeline: 로컬 타임라인은 %{instance}의 소방호스입니다. 여기 있는 사람들은 당신의 이웃들이에요!
- tip_mobile_webapp: 모바일 브라우저가 홈 스크린에 바로가기를 추가해 줬다면 푸시 알림도 받을 수 있습니다. 이건 거의 네이티브 앱처럼 작동해요!
- tips: 팁
title: 환영합니다 %{name} 님!
users:
follow_limit_reached: 당신은 %{limit}명의 사람을 넘어서 팔로우 할 수 없습니다
diff --git a/config/locales/ku.yml b/config/locales/ku.yml
index 78d99c2e51..335271f3f3 100644
--- a/config/locales/ku.yml
+++ b/config/locales/ku.yml
@@ -1,94 +1,27 @@
---
ku:
about:
- about_hashtag_html: Ev şandiyeke gelemperî ye bi #%{hashtag} re nîşankirî ye. Tu dikarî pê re çalak bibî heke ajimêreke te heye li ser fediverse.
about_mastodon_html: 'Tora civakî ya pêşerojê: Ne reklam, ne çavdêriya pargîdanî, sêwirana exlaqî, û desentralîzasyon! Bi Mastodon re bibe xwediyê daneyên xwe!'
- about_this: Derbar
- active_count_after: çalak
- active_footnote: Mehane bikarhênerên çalak (MBÇ)
- administered_by: 'Tê bi rêvebirin ji aliyê:'
- api: API
- apps: Sepana mobîl
- apps_platforms: Mastodon ji iOS, Android û platformên din bi kar bîne
- browse_directory: Li riya profîlê bigere û li gorî berjewendiyan parzûn bike
- browse_local_posts: Ji vî rajekarê weşaneke zindî ya şandiyên giştî bigere
- browse_public_posts: Weşaneke zindî ya şandiyên giştî bigere li ser Mastodon
- contact: Têkilî
contact_missing: Nehate sazkirin
contact_unavailable: N/A
- continue_to_web: Bo malpera sepanê bidomîne
- discover_users: Bikarhêneran keşf bike
- documentation: Pelbend
- federation_hint_html: Bi ajimêrê xwe %{instance} re tu dikarî kesên rajekar û li derveyî mastodonê bişopînî.
- get_apps: Sepaneke mobîl bicerbîne
hosted_on: Mastodon li ser %{domain} tê pêşkêşkirin
- instance_actor_flash: 'Ev ajimêr aktorekî aşopî ye ji bo rajekar were temsîl kirin tê bikaranîn ne ajimêra kesî ye. Ji bo armanca federasyonê dixebite û divê ney asteng kirin heta ku te xwest hemû nimûneyan asteng bikî, di vir de ger tu blogek navper bikarbînî.
-
- '
- learn_more: Bêtir fêr bibe
- logged_in_as_html: Tu niha wekî %{username} têketî ye.
- logout_before_registering: Jixwe te berê têketin kiriye.
- privacy_policy: Polîtikaya nihêniyê
- rules: Rêbazên rajekar
- rules_html: 'Heger tu bixwazî ajimêrekî li ser rajekarê mastodon vebikî, li jêrê de kurtasî ya qaîdeyên ku tu guh bidî heye:'
- see_whats_happening: Binêre ka çi diqewime
- server_stats: 'Statîstîkên rajekar:'
- source_code: Çavkaniya Kodî
- status_count_after:
- one: şandî
- other: şandî
- status_count_before: Hatin weşan
- tagline: Hevalên xwe bişopîne û yên nû bibîne
- terms: Peyama mercan
- unavailable_content: Rajekarên li hev kirî
- unavailable_content_description:
- domain: Rajekar
- reason: Sedem
- rejecting_media: 'Pelên medyayê yên ji van rajekaran nayên pêvajoyî kirin an tomarkirin, û tu dîmenek nayên xuyakirin, ku pêdivî ye ku bi desta pêlêkirina pelika rasteqîn hebe:'
- rejecting_media_title: Medyayên parzûnkirî
- silenced: 'Şandiyên ji van rajekaran dê di demnameyên û axaftinên gelemperî de bêne veşartin, û heya ku tu wan neşopînî dê ji çalakiyên bikarhênerên wan agahdariyek çênebe:'
- silenced_title: Rajekarên sînor kirî
- suspended: 'Dê tu daneya ji van rajekaran neyê berhev kirin, tomarkirin an jî guhertin, ku têkilî an danûstendinek bi bikarhênerên van rajekaran re tune dike:'
- suspended_title: Rajekarên rawestî
- unavailable_content_html: Mastodon bi gelemperî dihêle ku tu naverokê bibînî û bi bikarhênerên ji rajekareke din a li fendiverse re têkilî dayne. Ev awaretyên ku li ser vê rajekara taybetî hatine çêkirin ev in.
- user_count_after:
- one: bikarhêner
- other: bikarhêner
- user_count_before: Serrûpel
- what_is_mastodon: Mastodon çi ye?
+ title: Derbar
accounts:
- choices_html: 'Hilbijartina %{name}:'
- endorsements_hint: Tu dikarî kesên ku di navrûyê wep de dişopînî bipejirînî û ew li vir were nîşan kirin.
- featured_tags_hint: Tu dikarî hashtagên teybetî li vir tê nîşan kirin di pê de derxî.
follow: Bişopîne
followers:
one: Şopîner
other: Şopîner
following: Dişopîne
- instance_actor_flash: Ev ajimêr listikvaneke rastkî ye ku ji bo wek nûnerê rajekar bixwe tê bikaranîn û ne bikarhênerek kesane. Ew ji bo mebestên yekbûyî tê bikaranîn û divê neyê rawestandin.
- joined: Di %{date} de tevlî bû
+ instance_actor_flash: Ev ajimêr listikvaneke rastkî ye ku ji bo wek nûnerê rajekar bixwe tê bikaranîn û ne bikarhênerek kesane. Ew ji bo mebestên giştî tê bikaranîn û divê neyê rawestandin.
last_active: çalakiya dawî
link_verified_on: Xwedaniya li vê girêdanê di %{date} de hatiye kontrolkirin
- media: Medya
- moved_html: "%{name} bar kire %{new_profile_link}:"
- network_hidden: Ev zanyarî berdest nîne
nothing_here: Li vir tiştek tune ye!
- people_followed_by: Kesên ku%{name} wan dişopîne
- people_who_follow: Kesên%{name} dişopîne
pin_errors:
following: Kesê ku tu dixwazî bipejirînî jixwe tu vê dişopînî
posts:
one: Şandî
other: Şandî
posts_tab_heading: Şandî
- posts_with_replies: Şandî û bersiv
- roles:
- admin: Rêvebir
- bot: Bot
- group: Kom
- moderator: Moderator
- unavailable: Profîl nay bikaranîn
- unfollow: Neşopîne
admin:
account_actions:
action: Çalakî yê bike
@@ -105,12 +38,17 @@ ku:
avatar: Wêne
by_domain: Navper
change_email:
- changed_msg: E-nameya ajimêr bi awayekî serkeftî hate guhertin!
+ changed_msg: E-name bi awayekî serkeftî hate guhertin!
current_email: E-nameya heyî
label: E-nameyê biguherîne
new_email: E-nameya nû
submit: E-nameyê biguherîne
title: E-nameyê biguherîne bo %{username}
+ change_role:
+ changed_msg: Rol bi awayekî serkeftî hate guhertin!
+ label: Rolê biguherîne
+ no_role: Rol tune
+ title: Rolê biguherîne ji bo %{username}
confirm: Bipejirîne
confirmed: Hate pejirandin
confirming: Tê pejirandin
@@ -154,6 +92,7 @@ ku:
active: Çalak
all: Hemû
pending: Tê nirxandin
+ silenced: Sînorkirî
suspended: Sekinandî
title: Çavdêrî
moderation_notes: Nîşeyên Rêvebirinê
@@ -161,6 +100,7 @@ ku:
most_recent_ip: IP' a dawî
no_account_selected: Tu ajimêr nehat hilbijartin ji ber vê tu ajimêr nehat guhertin
no_limits_imposed: Sînor nay danîn
+ no_role_assigned: Ti rol nehatin diyarkirin
not_subscribed: Beşdar nebû
pending: Li benda nirxandinê ye
perform_full_suspension: Sekinî
@@ -187,12 +127,7 @@ ku:
reset: Ji nû ve saz bike
reset_password: Borînpeyvê ji nû ve saz bike
resubscribe: Dîsa beşdar bibe
- role: Maf
- roles:
- admin: Rêvebir
- moderator: Çavdêr
- staff: Xebatkar
- user: Bikarhêner
+ role: Rol
search: Bigere
search_same_email_domain: Bikarhênerên din ên bi heman navpera e-nameyê
search_same_ip: Bikarhênerên din ên xwedî heman IP
@@ -228,24 +163,28 @@ ku:
view_domain: Kurte ji bo navperê bide nîşan
warn: Hişyarî
web: Tevn
- whitelisted: Ji bona yekbûyînê maf tê dayîn
+ whitelisted: Ji bo demnameya giştî maf hate dayin
action_logs:
action_types:
approve_appeal: Îtîrazê bipejirîne
approve_user: Bikarhêner bipejirîne
assigned_to_self_report: Ragihandinê diyar bike
change_email_user: E-nameya bikarhêner biguherîne
+ change_role_user: Rola bikarhêner biguherîne
confirm_user: Bikarhêner bipejirîne
create_account_warning: Hişyariyekê çê bike
create_announcement: Daxûyaniyekê çê bike
+ create_canonical_email_block: Astengkirina e-nameyê biafirîne
create_custom_emoji: Emojiyên kesanekirî çê bike
create_domain_allow: Navpera ku destûr standiye peyda bike
create_domain_block: Navpera ku asteng bûye ava bike
create_email_domain_block: Navpera e-name yê de asteng kirinê peyda bike
create_ip_block: Rêziknameya IPyê saz bike
create_unavailable_domain: Navpera ku nayê bikaranîn pêk bîne
+ create_user_role: Rolê biafirîne
demote_user: Bikarhênerê kaşê jêr bike
destroy_announcement: Daxûyanîyê jê bibe
+ destroy_canonical_email_block: Astengkirina e-nameyê jê bibe
destroy_custom_emoji: Emojîya kesanekirî jê bibe
destroy_domain_allow: Navperên mafdayî jê bibe
destroy_domain_block: Navperên astengkirî jê bibe
@@ -254,6 +193,7 @@ ku:
destroy_ip_block: Tomara IPyê jêbibe
destroy_status: Şandiyê jê bibe
destroy_unavailable_domain: Navperên tuneyî jê bibe
+ destroy_user_role: Rolê hilweşîne
disable_2fa_user: 2FA neçalak bike
disable_custom_emoji: Emojîya kesanekirî neçalak bike
disable_sign_in_token_auth_user: Ji bo bikarhênerê piştrastkirina navnîşana e-name yê ya token neçalak bike
@@ -280,31 +220,38 @@ ku:
update_announcement: Daxûyaniyê rojane bike
update_custom_emoji: Emojîya kesanekirî rojane bike
update_domain_block: Navperên astengkirî rojane bike
+ update_ip_block: Rolê IP rojane bike
update_status: Şandiyê rojane bike
+ update_user_role: Rolê rojane bike
actions:
approve_appeal_html: "%{name} îtiraza biryara çavdêriyê ji %{target} pejirand"
approve_user_html: "%{name} tomarkirina ji %{target} pejirand"
assigned_to_self_report_html: "%{name} ji xwe re ragihandinek %{target} hilda"
change_email_user_html: "%{name} navnîşana e-nameya bikarhêner %{target} guherand"
+ change_role_user_html: "%{name} rolê %{target} guhert"
confirm_user_html: "%{name} navnîşana e-nameya bikarhêner %{target} piştrast kir"
create_account_warning_html: "%{name} ji bo %{target} hişyariyek şand"
create_announcement_html: "%{name} agahdarkirineke nû çêkir %{target}"
+ create_canonical_email_block_html: "%{name} bi riya dabeşkirinê e-nameya %{target} asteng kir"
create_custom_emoji_html: "%{name} emojîyeke nû ya %{target} bar kir"
- create_domain_allow_html: "%{name} bi navperê %{target} re maf da federeyê"
+ create_domain_allow_html: "%{name} bi navperê %{target} re maf da demnameya giştî"
create_domain_block_html: "%{name} navpera %{target} asteng kir"
create_email_domain_block_html: "%{name} e-nameya navperê %{target} asteng kir"
create_ip_block_html: "%{name} ji bo IPya %{target} rêzikname saz kir"
create_unavailable_domain_html: "%{name} bi navperê %{target} re gihandinê rawestand"
+ create_user_role_html: "%{name} rola %{target} afirand"
demote_user_html: "%{name} bikarhênerê %{target} kaşê jêr kir"
destroy_announcement_html: "%{name} daxûyaniyeke %{target} jê bir"
- destroy_custom_emoji_html: "%{name} emojiya %{target} tune kir"
- destroy_domain_allow_html: "%{name} bi navperê %{target} re maf neda federeyê"
+ destroy_canonical_email_block_html: "%{name} bi riya dabeşkirinê astengiya li ser e-nameya %{target} rakir"
+ destroy_custom_emoji_html: "%{name} emojiya %{target} jê bir"
+ destroy_domain_allow_html: "%{name} bi navperê %{target} re maf neda demnameya giştî"
destroy_domain_block_html: "%{name} navpera %{target} asteng kir"
destroy_email_domain_block_html: "%{name} astengiya li ser navpera e-nameyê %{target} rakir"
destroy_instance_html: "%{name} navpera %{target} asteng kir"
destroy_ip_block_html: "%{name}, ji bo IPya %{target} rêziknameyê jêbir"
destroy_status_html: "%{name} ji alîyê %{target} ve şandiyê rakir"
destroy_unavailable_domain_html: "%{name} bi navperê %{target} re gihandinê berdewam kir"
+ destroy_user_role_html: "%{name} rola %{target} jê bir"
disable_2fa_user_html: "%{name} ji bo bikarhênerê %{target} du faktorî neçalak kir"
disable_custom_emoji_html: "%{name} emojiya %{target} neçalak kir"
disable_sign_in_token_auth_user_html: "%{name} ji bo %{target} nîşana mafdayîna e-nameya ne çalak kir"
@@ -331,8 +278,9 @@ ku:
update_announcement_html: "%{name} daxûyaniya %{target} rojane kir"
update_custom_emoji_html: "%{name} emojiya %{target} rojane kir"
update_domain_block_html: "%{name} ji bo navpera %{target} astengkirin rojane kir"
+ update_ip_block_html: "%{name} rolê %{target} guhert ji bo IP"
update_status_html: "%{name} şandiya bikarhêner %{target} rojane kir"
- deleted_status: "(şandiyeke jêbirî)"
+ update_user_role_html: "%{name} rola %{target} guherand"
empty: Tomarkirin nehate dîtin.
filter_by_action: Li gorî çalakiyê biparzinîne
filter_by_user: Li gorî bikarhênerê biparzinîne
@@ -376,6 +324,7 @@ ku:
listed: Rêzokkirî
new:
title: Hestokên kesane yên nû lê zêde bike
+ no_emoji_selected: Tu emojî nehatin hilbijartin ji ber vê tu şandî jî nehatin guhertin
not_permitted: Mafê te tune ku tu vê çalakiyê bikî
overwrite: Bi ser de binivsîne
shortcode: Kurtekod
@@ -418,10 +367,10 @@ ku:
empty: Îtîraz nehatin dîtin.
title: Îtîraz
domain_allows:
- add_new: Maf bide navpera federasyonê
- created_msg: Ji bo federasyonê maf dayîna navperê bi serkeftî hate dayîn
- destroyed_msg: Ji bo federasyonê maf dayîna navperê nehat dayîn
- undo: Maf nede navpera federasyonê
+ add_new: Mafê bide navpera demnameya giştî
+ created_msg: Ji bo demnameya giştî mafdayîna navperê bi serkeftî hate dayîn
+ destroyed_msg: Ji bo demnameya giştî mafdayîna navperê nehat dayîn
+ undo: Mafê nede navpera demnameya giştî
domain_blocks:
add_new: Astengkirina navpera nû
created_msg: Navpera asteng kirinê nû hat şixulandin
@@ -515,7 +464,7 @@ ku:
instance_follows_measure: şopînerên wan li vir
instance_languages_dimension: Zimanên pir tên bikaranîn
instance_media_attachments_measure: pêvekên medyayê tomarkirî
- instance_reports_measure: giliyên derbarê wan de
+ instance_reports_measure: ragehandinên di derbarê wan de
instance_statuses_measure: şandiyên tomarkirî
delivery:
all: Hemû
@@ -544,7 +493,7 @@ ku:
total_blocked_by_us: Ji aliyê me ve hatiye astengkirin
total_followed_by_them: Ji aliyê wan ve hatiye şopandin
total_followed_by_us: Ji aliyê me ve hatiye şopandin
- total_reported: Giliyên derheqê wan de
+ total_reported: Ragehandinên di derbarê wan de
total_storage: Pêvekên medyayê
totals_time_period_hint_html: Tevahiyên ku li jêr têne xuyakirin daneyên hemû deman dihewîne.
invites:
@@ -575,7 +524,7 @@ ku:
relays:
add_new: Guhêrkerê nû tevlê bike
delete: Jê bibe
- description_html: "Guhêrkerê giştî rajekareke navberkar e ku hejmareke mezin ji şandiyan di navbera rajekaran ku jê re dibin endam û weşanê dikin diguherîne. Ew dikare ji rajekarên piçûk û navîn re bibe alîkar ku naveroka ji fendiverse ê bibîne, ku bi rengeke din pêdivî dike ku bikarhênerên herêmî bi desta li dû kesên din ên li rajekarên ji dûr be bişopînin."
+ description_html: "Guhêrkerê giştî rajekareke navberkar e ku hejmareke mezin ji şandiyan di navbera rajekaran ku jê re dibin endam û weşanê dikin diguherîne. Ew dikare ji rajekarên piçûk û navîn re bibe alîkar ku naveroka ji fediverse ê bibîne, ku bi rengeke din pêdivî dike ku bikarhênerên herêmî bi desta li dû kesên din ên li rajekarên ji dûr be bişopînin."
disable: Neçalak bike
disabled: Neçalakkirî
enable: Çalak bike
@@ -585,7 +534,7 @@ ku:
pending: Li benda pêjirandina guhêrker e
save_and_enable: Tomar û çalak bike
setup: Girêdanekê guhêrker saz bike
- signatures_not_enabled: Dema ku moda ewle ya jî moda rêzoka spî çalak be guhêrker wê birêkûpêk nexebite
+ signatures_not_enabled: Dema ku moda ewle yan jî moda demnameya giştî çalak be guhêrker wê birêkûpêk nexebite
status: Rewş
title: Guhêrker
report_notes:
@@ -651,6 +600,67 @@ ku:
unresolved: Neçareserkirî
updated_at: Rojanekirî
view_profile: Profîlê nîşan bide
+ roles:
+ add_new: Rolê tevlî bike
+ assigned_users:
+ one: "%{count} bikarhêner"
+ other: "%{count} bikarhêner"
+ categories:
+ administration: Rêvebirî
+ devops: Devops
+ invites: Vexwendin
+ moderation: Çavdêrî
+ special: Taybet
+ delete: Jê bibe
+ description_html: Bi rolên bikarhêner , tu dikarî fonksiyon û deverên Mastodon ku bikarhênerên wê dikarin xwe bigihînin kesane bikî.
+ edit: Rolê '%{name}' serrast bike
+ everyone: Mafdayînên berdest
+ everyone_full_description_html: Ev rola bingehîn bandorê li hemû bikarhêneran dike, tevî yên bêyî rolek diyarkirî jî. Hemû rolên din mafdayînan jê digirin.
+ permissions_count:
+ one: "%{count} mafdayîn"
+ other: "%{count} mafdayîn"
+ privileges:
+ administrator: Rêvebir
+ administrator_description: Bikarhênerên xwediyê vê mafdayînan wê her mafdayîn derbas bike
+ delete_user_data: Daneyên bikarhêner jê bibe
+ delete_user_data_description: Mafê dide bikarhêneran ku daneyên bikarhênerên din bêyî derengxisitn jê bibin
+ invite_users: Bikarhêneran vexwîne
+ invite_users_description: Mafê dide bikarhêneran ku mirovên nû vexwîne bo rajekarê
+ manage_announcements: Reklaman bi rê be bibe
+ manage_announcements_description: Mafê dide bikarhêneran ku reklaman bi rê ve bibin li ser vê rajekarê
+ manage_appeals: Îtîrazan bi rê ve bibe
+ manage_appeals_description: Mafê dide bikarhêneran ku îtîrazan binirxînin li dijî çalakiyên çavdêriyê
+ manage_blocks: Astengkirinan bi rê ve bibe
+ manage_blocks_description: Mafê dide bikarhêneran ku peydakarê e-nameyê û navnîşanên IP asteng bike
+ manage_custom_emojis: Emojiyên kesane bi rêve bibe
+ manage_custom_emojis_description: Mafê dide bikarhêneran ku îmojî kesane bikin li ser vê rajekarê
+ manage_federation: Demnameya giştî bi rê ve bibe
+ manage_federation_description: Mafê dide bikarhêneran ku demnameya giştî bi navparên din re asteng bikin û radestkirinê kontrol bikin
+ manage_invites: Vexwendinan bi rêve bibe
+ manage_invites_description: Mafê dide bikarhêneran ku li girêdanên vexwendinê bigerin û neçalak bikin
+ manage_reports: Ragihandinan bi rê ve bibe
+ manage_reports_description: Mafê dide bikarhêneran ku ragihandinan binirxînin û li dijî wan kiryarên çavdêriyê çalakiyan pêk bînin
+ manage_roles: Rolan bi rêve bibe
+ manage_roles_description: Mafê dide bikarhêneran ku rolên li jêr ên xwe birêve bibin û nîşan bikin
+ manage_rules: Rolan bi rêve bibe
+ manage_rules_description: Mafê dide bikarhêneran ku rêzikên rajekarê biguherînin
+ manage_settings: Sazkariyan bi rê ve bibe
+ manage_settings_description: Mafê dide bikarhêneran ku sazkariyên malperê biguherînin
+ manage_taxonomies: Beşan bi rê ve bibe
+ manage_taxonomies_description: Mafê dide bikarhêneran ku naveroka rojevê binirxînin û sazkariyên hashtagê rojane bikin
+ manage_user_access: Gihiştinê bikarhêner bi rê ve bibe
+ manage_user_access_description: Mafê dide bikarhêneran ku piştrastkirina du-gavî ya bikarhênerên din neçalak bikin, navnîşana e-nameya xwe biguherînin û borînpeyva xwe ji nû ve bikin
+ manage_users: Bikarhêneran bi rêve bibe
+ manage_users_description: Mafê dide bikarhêneran ku hûrguliyên bikarhênerên din bibînin û li dijî wan kiryarên çavdêriyê çalakiyan pêk bînin
+ manage_webhooks: Webhook bi rê ve bibe
+ manage_webhooks_description: Mafê dide bikarhêneran ku ji bo bûyerên rêveberî yên webhook saz bikin
+ view_audit_log: Têketinên kontrolê nîşan bide
+ view_audit_log_description: Mafê dide bikarhêneran ku dîroka çalakiyên rêveberî yên li ser rajekarê bibînin
+ view_dashboard: Destgehê nîşan bide
+ view_dashboard_description: Mafê dide bikarhêneran ku bigihîjin destgehê û pîvanên cuda
+ view_devops: Pêşdebir
+ view_devops_description: Mafê dide bikarhêneran ku bigihîjin destgehên Sidekiq û pgHero
+ title: Rol
rules:
add_new: Rêbazekê tevlî bike
delete: Jê bibe
@@ -659,94 +669,28 @@ ku:
empty: Tu rêbazên rajekar hê nehatine dîyarkirin.
title: Rêbazên rajekar
settings:
- activity_api_enabled:
- desc_html: Hejmara şandiyên weşandî yên herêmî, bikarhênerên çalak, û tomarkirin ên nû heftane
- title: Tevahî amarên ên di derbarê çalakiya bikarhêneran de biweşîne
- bootstrap_timeline_accounts:
- desc_html: Navên bikarhênerên pir bi xalîçê veqetîne. Dê van ajimêran di pêşnîyarên jêrîn de werin xuyakirin
- title: Van ajimêran ji bikarhênerên nû re pêşniyar bike
- contact_information:
- email: E-nameya karsazî
- username: Bi bikarhêner re têkeve têkiliyê
- custom_css:
- desc_html: Bi CSS a ku li her rûpelê hatiye barkirin, awayê dîmenê biguherîne
- title: CSS a kesanekirî
- default_noindex:
- desc_html: Hemû bikarhênerên ku ev sazkarî bi xwe neguhertiye bandor dike
- title: Pêlrêçkirna bikarhêneran ji motorê lêgerînê dûr bixe
+ about:
+ manage_rules: Rêzikên rajekaran bi rê ve bibe
+ preamble: Zanyariyên kûr peyda bike li ser ka rajekar çawa tê xebitandin, çavdêrîkirin, fînansekirin.
+ rules_hint: Ji bo rêbazên ku ji bikarhênerên ve tê hêvîkirin ku pê ve girêdayî bin deverek veqetandî heye.
+ title: Derbar
+ appearance:
+ preamble: Navrûya tevnê ya Mastodon kesane bike.
+ title: Xuyang
+ discovery:
+ trends: Rojev
domain_blocks:
all: Bo herkesî
disabled: Bo tu kesî
- title: Astengkirinên navperê nîşan bide
users: Ji bo bikarhênerên herêmî yên xwe tomar kirine
- domain_blocks_rationale:
- title: Sedemê nîşan bike
- hero:
- desc_html: Li ser rûpela pêşîn tê xuyakirin. Bi kêmanî 600x100px tê pêşniyarkirin. Dema ku neyê sazkirin, vedigere ser dîmena wêneya piçûk a rajekar
- title: Wêneya lehengê
- mascot:
- desc_html: Li ser rûpela pêşîn tê xuyakirin. Bi kêmanî 293×205px tê pêşniyarkirin. Dema ku neyê sazkirin, vedigere ser dîmena wêneya piçûk a maskot ya heyî
- title: Wêneya maskot
- peers_api_enabled:
- desc_html: Navê navperên ku ev rajekar di fendiverse de rastî wan hatiye
- title: Rêzoka rajekarên hatiye dîtin di API-yê de biweşîne
- preview_sensitive_media:
- desc_html: Pêşdîtinên girêdanê yên li ser malperên din tevlî ku medya wekî hestyar hatiye nîşandan wê wekî wêneyekî piçûk nîşan bide
- title: Medyayê hestyar nîşan bide di pêşdîtinên OpenGraph de
- profile_directory:
- desc_html: Mafê bide bikarhêneran ku bêne vedîtin
- title: Pelrêçên profilê çalak bike
registrations:
- closed_message:
- desc_html: Gava ku tomarkirin têne girtin li ser rûpelê pêşîn têne xuyang kirin. Tu dikarî nîşanên HTML-ê bi kar bîne
- title: Tomarkirinê girtî ya peyaman
- deletion:
- desc_html: Maf bide ku herkes bikaribe ajimêrê te jê bibe
- title: Jê birina ajimêrê vekek
- min_invite_role:
- disabled: Ne yek
- title: Maf bide vexwendinên ji alîyê
- require_invite_text:
- desc_html: Gava ku tomarkirin pêdiviya pejirandina destan dike, Têketina nivîsê "Tu çima dixwazî beşdar bibî?" Bibe sereke ji devla vebijêrkî be
- title: Ji bo bikarhênerên nû divê ku sedemek tevlêbûnê binivîsinin
+ title: Tomarkirin
registrations_mode:
modes:
approved: Ji bo têketinê erêkirin pêwîste
none: Kesek nikare tomar bibe
open: Herkes dikare tomar bibe
- title: Awayê tomarkirinê
- show_known_fediverse_at_about_page:
- desc_html: Dema ku neçalak be, demnameya gerdûnî ya ku ji rûpela zeviyê ve hatî girêdan tenê bi nîşandana naveroka herêmî tên sînorkirin
- title: Li ser rûpela demnameya ne naskirî naveroka giştî nîşan bide
- show_staff_badge:
- desc_html: Di rûpela bikarhêner da rozeta xebatkaran nîşan bike
- title: Rozeta xebatkara nîşan bike
- site_description:
- desc_html: Paragrafa destpêkê li ser API. Dide nasîn ka çi ev rajekarê Mastodon taybet dike û tiştên din ên girîn. Tu dikarî hashtagên HTML-ê, bi kar bîne di <a>
û <em>
de.
- title: Danasîna rajekar
- site_description_extended:
- desc_html: Ji bo kodê perwerdetî, rêzik, rêbername û tiştên din ên ku rajekara te ji hev cihê dike cîhekî baş e. Tu dikarî hashtagên HTML-ê bi kar bîne
- title: Zanyarên berfirehkirî ya rajekar
- site_short_description:
- desc_html: Ew di alavdanka kêlekê û tagên meta de tên xuyakirin. Di yek paragrafê de rave bike ka Mastodon çi ye û ya ku ev rajekar taybetî dike.
- title: Danasîna rajekarê kurt
- site_terms:
- desc_html: Tu dikarî polîtika nihêniyê xwe, mercên karûbar an nameyên din binvisîne. Tu dikarî nîşanên HTML-ê bi kar bîne
- title: Mercên bikaranîn a kesanekirî
- site_title: Navê rajekar
- thumbnail:
- desc_html: Ji bo pêşdîtinên bi riya OpenGraph û API-yê têne bikaranîn. 1200x630px tê pêşniyar kirin
- title: Wêneya piçûk a rajekar
- timeline_preview:
- desc_html: Girêdana demnameya gelemperî li ser rûpela daxistinê nîşan bide û mafê bide ku API bêyî rastandinê bigihîje damnameya gelemperî
- title: Mafê bide gihîştina ne naskirî bo demnameya gelemperî
- title: Sazkariyên malperê
- trendable_by_default:
- desc_html: Hashtagên ku berê hatibûn qedexekirin bandor dike
- title: Bihêle ku hashtag bêyî nirxandinek pêşîn bibe rojev
- trends:
- desc_html: Hashtagên ku berê hatibûn nirxandin ên ku niha rojev in bi gelemperî bide xuyakirin
- title: Hashtagên rojevê
+ title: Sazkariyên rajekarê
site_uploads:
delete: Pela barkirî jê bibe
destroyed_msg: Barkirina malperê bi serkeftî hate jêbirin!
@@ -800,6 +744,9 @@ ku:
description_html: Van girêdanên ku niha ji hêla ajimêrên ku rajekarê te ji wan peyaman dibîne pir têne parvekirin. Ew dikare ji bikarhênerên te re bibe alîkar ku fêr bibin ka li cîhanê çi diqewime. Heya ku tu weşanger nepejirînin, ti girêdan bi gelemperî nayê xuyangkirin. Her weha tu dikarî mafê bidî girêdanên kesane an jî nedî.
disallow: Mafê nede girêdanê
disallow_provider: Mafê nede weşanger
+ no_link_selected: Tu girêdan nehatin hilbijartin ji ber vê tu girêdan jî nehatin guhertin
+ publishers:
+ no_publisher_selected: Tu weşan nehatin hilbijartin ji ber vê tu weşan jî nehatin guhertin
shared_by_over_week:
one: Di nava hefteya dawî de ji aliyê keskekî ve hate parvekirin
other: Di nava hefteya dawî de ji aliyê %{count} ve hate parvekirin
@@ -819,6 +766,7 @@ ku:
description_html: Van şandiyên ku rajekarê te pê dizane ku niha pir têne parvekirin û bijartekirin. Ew dikare ji bikarhênerên te yên nû û yên vedigerin re bibe alîkar ku bêtir mirovên ku bişopînin bibînin. Heya ku tu nivîskar nepejirînî, tu şandî bi gelemperî nayên xuyangkirin, û nivîskar mafê dide ku ajimêrê xwe ji kesên din re were pêşniyarkirin. Her weha tu dikarî mafê bidî şandiyên kesane an jî nedî.
disallow: Mafê nede şandiyê
disallow_account: Mafê nede nivîskar
+ no_status_selected: Tu şandiyên rojevê nehatin hilbijartin ji ber vê tu şandî jî nehatin guhertin
not_discoverable: Nivîskar nejilbijartiye ji bo ku were kifşkirin
shared_by:
one: Yek carî parvekirî an bijartî
@@ -834,6 +782,7 @@ ku:
tag_uses_measure: bikaranîna giştî
description_html: Ev hashtag in ku niha di gelek şandiyên ku rajekarê te dibîne de xuya dibin. Ew dikare ji bikarhênerên te re bibe alîkar ku fêr bibin ka mirov di vê demê de herî pir li ser çi diaxive. Heya ku tu wan nepejirînî, tu hashtag bi gelemperî nayê xuyangkirin.
listable: Dikare were pêşniyarkirin
+ no_tag_selected: Tu hashtag nehatin hilbijartin ji ber vê tu hashtag jî nehatin guhertin
not_listable: Nikare wer pêşniyarkirin
not_trendable: Wê di bin rojevan de xuya neke
not_usable: Nikare were bikaranîn
@@ -854,6 +803,26 @@ ku:
edit_preset: Hişyariyên pêşsazkirî serrast bike
empty: Te hin tu hişyariyên pêşsazkirî destnîşan nekirine.
title: Hişyariyên pêşsazkirî bi rêve bibe
+ webhooks:
+ add_new: Xala dawîbûnê tevlî bike
+ delete: Jê bibe
+ description_html: "çengeleke tevnê dihêle ku Mastodon agahdariyên dema-rastîn ên derbarê çalakiyên hilbijartî de bisepîne ser sepana te, bi vî awayî sepana te dikare reaksiyonan bi awayekî bixweber nîşan bide ."
+ disable: Neçalak bike
+ disabled: Neçalakkirî
+ edit: Xala dawîbûnê serrast bike
+ empty: Hîn çengela tevnê ya xala dawîbûnê ya te ku hatiye pevesazkirin tune ne.
+ enable: Çalak bike
+ enabled: Çalak
+ enabled_events:
+ one: 1 bûyer çalakkirî
+ other: "%{count} bûyer çalakkirî"
+ events: Bûyer
+ new: Çengela tevnê ya nû
+ rotate_secret: Veşartî bizivirîne
+ secret: Îmzekirina veşartî
+ status: Rewş
+ title: Çengelên tevnê
+ webhook: Çengela tevnê
admin_mailer:
new_appeal:
actions:
@@ -877,12 +846,8 @@ ku:
new_trends:
body: 'Tiştên jêrîn berî ku ew bi gelemperî werin xuyakirin divê werin nirxandin:'
new_trending_links:
- no_approved_links: Niha tu girêdanên rojeva pejirandî tune ne.
- requirements: 'Yek ji namzedên li jêr dikare ji #%{rank} girêdana diyarkirî ya pejirandî derbas bibe, niha ku "%{lowest_link_title}" bi %{lowest_link_score} puan e.'
title: Girêdanên rojevê
new_trending_statuses:
- no_approved_statuses: Niha tu şandiyên rojeva pejirandî tune ne.
- requirements: 'Yek ji namzedên li jêr dikare ji #%{rank} şandiyaa diyarkirî ya pejirandî derbas bibe, niha ku %{lowest_status_url} bi %{lowest_status_score} puan e.'
title: Şandiyên rojevê
new_trending_tags:
no_approved_tags: Niha hashtagên rojevê pejirandî tune ne.
@@ -898,7 +863,7 @@ ku:
remove: Girêdana nûçikê rake
appearance:
advanced_web_interface: Navrûya tevnê yê pêşketî
- advanced_web_interface_hint: 'Heke tu bixwazin tevahiya ferehiya dîmendera xwe bi kar bînî, navrûya pêşketî ya tevnê dihêle ku tu gelek stûnên cihêreng saz bikî da ku di heman demê de bi qasî ku tu dixwazî zanyariyan bibînî: Serrûpel, agahdarî, demnameya giştî, her hejmarek ji rêzik û hashtagan.'
+ advanced_web_interface_hint: 'Ku tu bixwazî tevahiya ferehiya dîmendera xwe bi kar bînî, navrûya pêşketî ya tevnê dihêle ku tu gelek stûnên cihêreng saz bikî da ku di heman demê de bi qasî ku tu dixwazî zanyariyan bibînî: Serrûpel, agahdarî, demnameya giştî, her hejmarek ji rêzik û hashtagan.'
animations_and_accessibility: Anîmasyon û gihînî
confirmation_dialogs: Gotûbêjên piştrastkirî
discovery: Vedîtin
@@ -918,16 +883,13 @@ ku:
applications:
created: Sepan bi awayekî serkeftî hat çêkirin
destroyed: Sepan bi awayekî serkeftî hat jêbirin
- invalid_url: URL ya hatiye dayîn ne derbasdar e
regenerate_token: Nîşandera gihandinê bi nûve çêbike
token_regenerated: Nîşandera gihandinê bi serkeftî nû ve hat çêkirin
warning: Bi van daneyan re pir baldar be. Tu caran bi kesî re parve neke!
your_token: Nîşana gihîştina te
auth:
- apply_for_account: Daxwaza vexwendinekê bike
+ apply_for_account: Li ser lîsteya bendemayînê bistîne
change_password: Borînpeyv
- checkbox_agreement_html: Ez rêbazên rajeker û hêmanên karûbaran dipejirînim
- checkbox_agreement_without_rules_html: Ez hêmanên karûbaran rêbazên rajeker dipejirînim
delete_account: Ajimêr jê bibe
delete_account_html: Heke tu dixwazî ajimêra xwe jê bibe, tu dikarî li vir bidomîne . Ji te tê xwestin ku were pejirandin.
description:
@@ -946,6 +908,7 @@ ku:
migrate_account: Derbasî ajimêreke din bibe
migrate_account_html: Heke tu dixwazî ev ajimêr li ajimêreke cuda beralî bikî, tu dikarî ji vir de saz bike .
or_log_in_with: An têketinê bike bi riya
+ privacy_policy_agreement_html: Min Politîka taybetiyê xwend û dipejirînim
providers:
cas: CAS
saml: SAML
@@ -953,12 +916,18 @@ ku:
registration_closed: "%{instance} endamên nû napejirîne"
resend_confirmation: Rêwerên pejirandinê ji nû ve bişîne
reset_password: Borînpeyvê ji nû ve saz bike
+ rules:
+ preamble: Ev rêzik ji aliyê çavdêrên %{domain} ve tên sazkirin.
+ title: Hinek rêzikên bingehîn.
security: Ewlehî
set_new_password: Borînpeyveke nû ji nû ve saz bike
setup:
email_below_hint_html: Heke navnîşana e-nameya jêrîn ne rast be, tu dikarî wê li vir biguherîne û e-nameyeke pejirandinê ya nû bistîne.
email_settings_hint_html: E-nameya pejirandinê ji %{email} re hate şandin. Heke ew navnîşana e-nameyê ne rast be, tu dikarî wê di sazkariyên ajimêr de biguherîne.
title: Damezirandin
+ sign_up:
+ preamble: Bi ajimêrekê li ser vê rajekarê Mastodon re, tu yê karîbî her keseke din li ser torê bişopînî, her ku ajimêrê wan li ku derê tê pêşkêşkirin.
+ title: Ka em te bi rê bixin li ser %{domain}.
status:
account_status: Rewşa ajimêr
confirming: Li benda pejirandina e-nameyê ne da ku biqede.
@@ -967,7 +936,6 @@ ku:
redirecting_to: Ajimêra te neçalak e ji ber ku niha ber bi %{acct} ve tê beralîkirin.
view_strikes: Binpêkirinên berê yên dijî ajimêrê xwe bibîne
too_fast: Form pir zû hat şandin, dîsa biceribîne.
- trouble_logging_in: Têketina te de pirsgirêk çêdibe?
use_security_key: Kilîteke ewlehiyê bi kar bîne
authorize_follow:
already_following: Jixwe tu vê ajimêrê dişopînî
@@ -1025,10 +993,6 @@ ku:
more_details_html: Bo bêhtir zanyarî, polîtika nihêniyê binêre.
username_available: Navê bikarhêneriyê te wê dîsa peyda bibe
username_unavailable: Navê bikarhêneriyê ye wê tuneyî bimîne
- directories:
- directory: Rêgeha profîlê
- explanation: Bikarhêneran li gorî berjewendiyên wan bibîne
- explore_mastodon: Vekole %{title}
disputes:
strikes:
action_taken: Çalakî hatin kirin
@@ -1107,29 +1071,60 @@ ku:
public: Demnameya gelemperî
thread: Axaftin
edit:
+ add_keyword: Kilîtpeyv tevî bike
+ keywords: Peyvkilît
+ statuses: Şandiyên kesane
+ statuses_hint_html: Ev parzûn ji bo hibijartina şandiyên kesane tê sepandin bêyî ku ew bi peyvkilîtên jêrîn re lihevhatî bin. Şandiyan binirxîne an jî ji parzûnê rake .
title: Parzûnê serrast bike
errors:
+ deprecated_api_multiple_keywords: Van parameteran ji vê sepanê nayên guhertin ji ber ku ew li ser bêtirî yek kilîtpeyvên parzûnkirî têne sepandin. Sepaneke nûtir an navrûya bikarhêneriyê ya malperê bi kar bîne.
invalid_context: Naverok tune ye yan jî nederbasdar tê peydakirin
- invalid_irreversible: Tenê qadên agahdarkirinê û serrûpel bi parzûna bêveger re dixebitin
index:
+ contexts: Parzûnên di %{contexts} de
delete: Jê bibe
empty: Parzûnên te tune ne.
+ expires_in: Di %{distance} de diqede
+ expires_on: Di %{date} de diqede
+ keywords:
+ one: "%{count} kilîtpeyv"
+ other: "%{count} kilîtpeyv"
+ statuses:
+ one: "%{count} şandî"
+ other: "%{count} şandî"
+ statuses_long:
+ one: "%{count} şandiyê kesane yê veşartî"
+ other: "%{count} şandiyê kesane yê veşartî"
title: Parzûn
new:
+ save: Parzûna nû tomar bike
title: Parzûnek nû li zêde bike
+ statuses:
+ back_to_filter: Vegere bo parzûnê
+ batch:
+ remove: Ji parzûnê rake
+ index:
+ hint: Ev parzûn bêyî pîvanên din ji bo hilbijartina şandiyên kesane tê sepandin. Tu dikarî ji navrûya tevnê bêtir şandiyan tevlî vê parzûnê bikî.
+ title: Şandiyên parzûnkirî
footer:
- developers: Pêşdebir
- more: Bêtir…
- resources: Çavkanî
trending_now: Niha rojevê de
generic:
all: Hemû
+ all_items_on_page_selected_html:
+ one: Berhemê %{count} li ser vê rûpelê hatiye hilbijartin.
+ other: Hemû berhemên %{count} li ser vê rûpelê hatine hilbijartin.
+ all_matching_items_selected_html:
+ one: Berhemê %{count} ku bi lêgerîna te re lihevhatî ye hatiye hilbijartin.
+ other: Hemû berhemên %{count} ku bi lêgerîna te re lihevhatî ne hatine hilbijartin.
changes_saved_msg: Guhertin bi serkeftî tomar bû!
copy: Jê bigire
delete: Jê bibe
+ deselect: Hemûyan hilnebijêre
none: Ne yek
order_by: Rêz bike bi
save_changes: Guhertinan tomar bike
+ select_all_matching_items:
+ one: Berhemê %{count} ku bi lêgerîna te re lihevhatî ye hilbijêre.
+ other: Hemû berhemên %{count} ku bi lêgerîna te re lihevhatî ne hilbijêre.
today: îro
validation_errors:
one: Tiştek hîn ne rast e! Ji kerema xwe çewtiya li jêr di ber çavan re derbas bike
@@ -1153,7 +1148,6 @@ ku:
following: Rêzoka yên dişopînin
muting: Rêzoka bêdengiyê
upload: Bar bike
- in_memoriam_html: Di bîranînê de.
invites:
delete: Neçalak bike
expired: Dema wê qediya
@@ -1185,7 +1179,7 @@ ku:
password: borînpeyv
sign_in_token: koda ewlehiyê bo e-nameyê
webauthn: kilîtên ewlehiyê
- description_html: Heke çalakiya ku nas nakî dibînî, çêtir dibe ku borînpeyva xwe biguherînî û rastandina du-gavî çalak bikî.
+ description_html: Çalakiya ku nas nakî dibînî, çêtir dibe ku borînpeyva xwe biguherînî û rastandina du-gavî çalak bikî.
empty: Dîroka piştrastkirinê tune ye
failed_sign_in_html: Hewldana têketinê ser neket bi%{method} ji %{ip} (%{browser}) de
successful_sign_in_html: Bi serkeftî têketin bi %{method} ji %{ip}(%{browser}) çêbû
@@ -1234,19 +1228,10 @@ ku:
copy_account_note_text: 'Ev bikarhêner ji %{acct} livî ye, li vir nîşeyên te yên berê ku te di derbarê wî/ê de nivîsandiye:'
notification_mailer:
admin:
+ report:
+ subject: "%{name} ragihandinek şand"
sign_up:
subject: "%{name} tomar bû"
- digest:
- action: Hemû agahdariyan nîşan bide
- body: Li vir kurteyeke peyamên ku li te derbasbûnd ji serdana te ya dawîn di %{since} de
- mention: "%{name} behsa te kir:"
- new_followers_summary:
- one: Herwiha, dema tu dûr bûyî te şopînerek nû bi dest xist! Bijî!
- other: Herwiha, dema tu dûr bûyî te %{count} şopînerek nû bi dest xist! Bijî!
- subject:
- one: "1 agahdarî ji serdana te ya herî dawî 🐘"
- other: "%{count} agahdarî ji serdana te ya herî dawî 🐘"
- title: Di tunebûna te de...
favourite:
body: 'Şandiya te hate bijartin ji alî %{name} ve:'
subject: "%{name} şandiya te hez kir"
@@ -1318,6 +1303,8 @@ ku:
other: Yên din
posting_defaults: Berdestên şandiyê
public_timelines: Demnameya gelemperî
+ privacy_policy:
+ title: Politîka taybetiyê
reactions:
errors:
limit_reached: Sînorê reaksiyonên cihêrengî gihîşte asta dawî
@@ -1340,22 +1327,7 @@ ku:
remove_selected_follows: Bikarhênerên hilbijartî neşopîne
status: Rewşa ajimêr
remote_follow:
- acct: Navnîşana ajimêra xwe username@domain yê ku tu yê jê çalakî bikî binvsîne
missing_resource: Ji bona ajimêra te pêwistiya beralîkirina URLyê nehate dîtin
- no_account_html: Ajimêra te tune? Tu dikarîli vir tomar bibe
- proceed: Şopandinê bidomîne
- prompt: 'Tu yê bişopînî:'
- reason_html: "Ev gav ji bona çi pêwîst e? %{instance}
rajekerên ku tu tomarkiriyî dibe ku tunebe, ji bona vê divê pêşî te beralîyê rajekera te bi xwe bikin."
- remote_interaction:
- favourite:
- proceed: Ber bi bijarteyê ve biçe
- prompt: 'Tu dixwazî vê şandiyê bibijêrî:'
- reblog:
- proceed: Bo bilindkirinê bidomîne
- prompt: 'Tu dixwazî vê şandî ye bilind bikî:'
- reply:
- proceed: Bersivandinê bidomîne
- prompt: 'Tu dixwazî bersiva vê şandiyê bidî:'
reports:
errors:
invalid_rules: rêbazên derbasdar nîşan nadê
@@ -1527,89 +1499,6 @@ ku:
too_late: Pir dereng e ji bo îtîrazê li ser vê binpêkirinê
tags:
does_not_match_previous_name: bi navê berê re li hev nayê
- terms:
- body_html: |
- Politîka taybetiyê
- Em çi zanyarî kom dikin?
-
-
- Zanyariyên asayî : Ku tu xwe li ser vê rajekarê tomar bikî, Wê ji te xwestin ku e-name û borînpeyvekê têxî. Her wiha dibe ku tu zanyariyên vebijêrkî têxî wekî zanyariyên profîlê profile mînak: Navê xuyangê û jiyanname, wêneya profîlê û wêneya jormalperê bar bikî. Navê bikarhêneriyê, navê xuyangê, jiyanname, wêneya profîlê û wêneya jormalperêher dem bi giştî tên nîşandan.
- Şandî, şopandin û zanyariyên giştî yên din : Kesên ku tu wan dişopînî bi giştî tê nîşandan, heman tişt bo şopîneran e. Dema tu peyamekê dişînî, dane û dem tên tomarkirin wekî sepanê. Messages may contain media attachments, such as pictures and videos. Public and unlisted posts are available publicly. When you feature a post on your profile, that is also publicly available information. Your posts are delivered to your followers, in some cases it means they are delivered to different servers and copies are stored there. When you delete posts, this is likewise delivered to your followers. The action of reblogging or favouriting another post is always public.
- Direct and followers-only posts : All posts are stored and processed on the server. Followers-only posts are delivered to your followers and users who are mentioned in them, and direct posts are delivered only to users mentioned in them. In some cases it means they are delivered to different servers and copies are stored there. We make a good faith effort to limit the access to those posts only to authorized persons, but other servers may fail to do so. Therefore it's important to review servers your followers belong to. You may toggle an option to approve and reject new followers manually in the settings. Please keep in mind that the operators of the server and any receiving server may view such messages , and that recipients may screenshot, copy or otherwise re-share them. Do not share any sensitive information over Mastodon.
- IPs and other metadata : When you log in, we record the IP address you log in from, as well as the name of your browser application. All the logged in sessions are available for your review and revocation in the settings. The latest IP address used is stored for up to 12 months. We also may retain server logs which include the IP address of every request to our server.
-
-
-
-
- What do we use your information for?
-
- Any of the information we collect from you may be used in the following ways:
-
-
- To provide the core functionality of Mastodon. You can only interact with other people's content and post your own content when you are logged in. For example, you may follow other people to view their combined posts in your own personalized home timeline.
- To aid moderation of the community, for example comparing your IP address with other known ones to determine ban evasion or other violations.
- The email address you provide may be used to send you information, notifications about other people interacting with your content or sending you messages, and to respond to inquiries, and/or other requests or questions.
-
-
-
-
- How do we protect your information?
-
- We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL, and your password is hashed using a strong one-way algorithm. You may enable two-factor authentication to further secure access to your account.
-
-
-
- What is our data retention policy?
-
- We will make a good faith effort to:
-
-
- Retain server logs containing the IP address of all requests to this server, in so far as such logs are kept, no more than 90 days.
- Retain the IP addresses associated with registered users no more than 12 months.
-
-
- You can request and download an archive of your content, including your posts, media attachments, profile picture, and header image.
-
- You may irreversibly delete your account at any time.
-
-
-
- Do we use cookies?
-
- Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.
-
- We use cookies to understand and save your preferences for future visits.
-
-
-
- Do we disclose any information to outside parties?
-
- We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety.
-
- Your public content may be downloaded by other servers in the network. Your public and followers-only posts are delivered to the servers where your followers reside, and direct messages are delivered to the servers of the recipients, in so far as those followers or recipients reside on a different server than this.
-
- When you authorize an application to use your account, depending on the scope of permissions you approve, it may access your public profile information, your following list, your followers, your lists, all your posts, and your favourites. Applications can never access your e-mail address or password.
-
-
-
- Site usage by children
-
- If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (General Data Protection Regulation ) do not use this site.
-
- If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (Children's Online Privacy Protection Act ) do not use this site.
-
- Law requirements can be different if this server is in another jurisdiction.
-
-
-
- Changes to our Privacy Policy
-
- If we decide to change our privacy policy, we will post those changes on this page.
-
- This document is CC-BY-SA. It was last updated May 26, 2022.
-
- Originally adapted from the Discourse privacy policy .
- title: "%{instance} mercên bikaranîn û politîkayên nehêniyê"
themes:
contrast: Mastodon (Dijberiya bilind)
default: Mastodon (Tarî)
@@ -1652,7 +1541,7 @@ ku:
change_password: borînpeyva xwe biguherîne
details: 'Li vir hûrgiliyên hewldanên têketinê hene:'
explanation: Me têketineke nû ji ajimêra te ji navnîşaneke IP ya nû dît.
- further_actions_html: Ku ev ne tu bû, em ji te re pêşniyar dikin ku tu di tavilê de %{action} bikî û piştrastkirina du-gavî çalak bikî da ku ajimêra te di ewlehiyê de bimîne.
+ further_actions_html: Ku ev ne tu ye, em pêşniyar dikin ku tu di tavilê de %{action} û piştrastkirina du-gavî çalak bikî da ku ajimêra te di ewlehiyê de bimîne.
subject: Ajimêra te ji navnîşaneke IP ya nû ve hatiye gihîştin
title: Têketineke nû
warning:
@@ -1688,20 +1577,13 @@ ku:
suspend: Ajimêr hatiye rawestandin
welcome:
edit_profile_action: Profîlê saz bike
- edit_profile_step: Tu dikarî profîla xwe bi barkirina wêne, sernav, guherandina navê xuyangê xwe û bêhtir ve xweş bikî. Heke tu dixwazî şagirtên nû binirxînî berî ku mafê bidî ku ew te bişopînê, tu dikarî ajimêra xwe kilît bike.
+ edit_profile_step: Tu dikarî bi barkirina wêneyek profîlê, guhertina navê xwe ya xuyangê û bêtir profîla xwe kesane bikî. Berî ku mafê bidî ku te şopînerên nû te bişopînin, tu dikarî binirxînî.
explanation: Li vir çend serişte hene ku tu dest pê bike
final_action: Dest bi weşandinê bike
final_step: 'Dest bi weşandinê bike! Bêyî şopîneran jî dibe ku şandiyên te yên gelemperî ji hêla kesên din ve werin dîtin, mînakî li ser demjimêra herêmî û di hashtagan de. Dibe ku tu bixwazî xwe li ser hashtagê #nasname bidî nasandin.'
full_handle: Hemî destikê te
full_handle_hint: Ji hevalên xwe re, ji bona ji rajekarekê din peyam bişîne an jî ji bona ku te bikaribe bişopîne tişta ku tu bibêjî ev e.
- review_preferences_action: Bijartinan biguherîne
- review_preferences_step: Pê bawer be ku vebijêrkên xwe saz bikî, wek mînak kîjan e-nameyên ku tu dixwaziî wergirîne, an tu dixwazî weşanên te ji kîjan astê nehêniyê de kesanekirî bin. Heke nexweşiya te ya tevgerê tune be, tu dikarî hilbijêrî ku GIF ya xweser çalak bibe.
subject: Tu bi xêr hatî Mastodon
- tip_federated_timeline: Demnameya giştî dimenêke gelemperî a Mastodon e. Lê tenê kesên ku ciranên te endamên wê ne dihewîne, ji ber vê yekê ew hemû nîne.
- tip_following: Tu rêvebir (ên) rajeker wek berdest dişopînî. Ji bo mirovên balkêştir bibînî, demnameya herêmî û federasyonî kontrol bike.
- tip_local_timeline: Demnameya herêmî, dimenêke bi giştî ye li ser %{instance} e. Ev ciranên te yên herî nêzik in!
- tip_mobile_webapp: Ger geroka te ya desta pêşkêşî te bike ku tu Mastodon li ser ekrana xwe ya malê lê zêde bikî, tu dikarî agahdariyên push bistînî. Ew bi gelek awayan mîna serîlêdanek xwemalî tevdigere!
- tips: Serbend
title: Bi xêr hatî, %{name}!
users:
follow_limit_reached: Tu nikarî zêdetirî %{limit} kesan bişopînî
diff --git a/config/locales/kw.yml b/config/locales/kw.yml
index 62d535b1b0..7683e30423 100644
--- a/config/locales/kw.yml
+++ b/config/locales/kw.yml
@@ -1,10 +1,5 @@
---
kw:
- about:
- about_this: A-dro dhe
- accounts:
- roles:
- group: Bagas
admin:
accounts:
email: Ebost
diff --git a/config/locales/lt.yml b/config/locales/lt.yml
index 864d2f43f3..d0d8bb4b81 100644
--- a/config/locales/lt.yml
+++ b/config/locales/lt.yml
@@ -1,44 +1,18 @@
---
lt:
about:
- about_hashtag_html: Čia visiems prieinamas įrankis #%{hashtag} . Jūs galite juo naudotis bet kur, jeigu turite paskyra fedi-visatoje.
about_mastodon_html: Mastodon, tai socialinis tinklas pagrįstas atviro kodo programavimu, ir atvirais web protokolais. Visiškai nemokamas. Ši sistema decantrilizuota kaip jūsų elektroninis paštas.
- about_this: Apie
- administered_by: 'Administruoja:'
- apps: Mobilioji Aplikacija
- contact: Kontaktai
contact_missing: Nenustatyta
- documentation: Dokumentacija
hosted_on: Mastodon palaikomas naudojantis %{domain} talpinimu
- learn_more: Daugiau
- privacy_policy: Privatumo Politika
- source_code: Šaltinio kodas
- status_count_before: Autorius
- terms: Naudojimo sąlygos
- user_count_before: Namai
- what_is_mastodon: Kas tai, Mastodon?
accounts:
- choices_html: "%{name} pasirinkimai:"
follow: Sekti
following: Sekami
- joined: Prisijungiai %{date}
last_active: paskutinį kartą aktyvus
link_verified_on: Nuorodos nuosavybė paskutinį kartą tikrinta %{date}
- media: Medija
- moved_html: "%{name} persikėlė į %{new_profile_link}:"
- network_hidden: Ši informacija neprieinama
nothing_here: Čia nieko nėra!
- people_followed_by: Žmonės, kuriuos %{name} seka
- people_who_follow: Žmonės kurie seka %{name}
pin_errors:
following: Privalai sekti žmogų kurį nori pagerbti
posts_tab_heading: Tootai
- posts_with_replies: Tootai ir atsakymai
- roles:
- admin: Administratorius
- bot: Bot'as
- moderator: Moderatorius
- unfollow: Nesekti
admin:
account_actions:
action: Veiksmas
@@ -52,7 +26,6 @@ lt:
avatar: Profilio nuotrauka
by_domain: Domenas
change_email:
- changed_msg: Paskyros el paštas sėkmingai pakeistas!
current_email: Dabartinis el paštas
label: Pakeisti el pašto adresą
new_email: Naujas el pašto adresas
@@ -112,12 +85,6 @@ lt:
reset: Iš naujo
reset_password: Atkurti slaptažodį
resubscribe: Per prenumeruoti
- role: Leidimai
- roles:
- admin: Administratorius
- moderator: Moderatorius
- staff: Personalas
- user: Vartotojas
search: Ieškoti
shared_inbox_url: Bendroji gautųjų URL
show:
@@ -136,7 +103,6 @@ lt:
username: Slapyvardis
warn: Įspėti
action_logs:
- deleted_status: "(panaikintas statusas)"
title: Audito žurnalas
custom_emojis:
by_domain: Domenas
@@ -262,70 +228,6 @@ lt:
unassign: Nepriskirti
unresolved: Neišspręsti
updated_at: Atnaujinti
- settings:
- activity_api_enabled:
- desc_html: Skaičiai lokaliai įkeltų statusų, aktyvių vartotojų ir naujų registracijų, kas savaitiniuose atnaujinimuose
- title: Paskelbti agreguotą statistiką apie vartotojo veiklą
- bootstrap_timeline_accounts:
- desc_html: Atskirti vartotojų vardus naudojant kablelį (,). Tik lokalios ir neužblokuotos paskyros veiks. Pradinis kai tuščia, visi lokalūs administratoriai.
- title: Numatyti sekimai naujiems vartotojams
- contact_information:
- email: Verslo el paštas
- username: Kontaktinis slapyvardis
- custom_css:
- desc_html: Pakeisk išvaizdą su CSS užkraunamu kiekviename puslapyje
- title: Asmeninis CSS
- hero:
- desc_html: Rodomas pagrindiniame puslapyje. Bent 600x100px rekomenduojama. Kai nenustatyta, renkamasi numatytą serverio nuotrauką
- title: Herojaus nuotrauka
- mascot:
- desc_html: Rodoma keleta puslapių. Bent 293×205px rekomenduoja. Kai nenustatyą, renkamasi numatytą varianta
- title: Talismano nuotrauka
- peers_api_enabled:
- desc_html: Domeno vardai, kuriuos šis serveris sutiko fedi-visatoje
- title: Paskelbti sąrašą atrastų serveriu
- preview_sensitive_media:
- desc_html: Nuorodų peržiūros kituose tinklalapiuose bus rodomos su maža nuotrauka, net jeigu failas parinktas kaip "jautraus turinio"
- title: Rodyti jautrią informaciją OpenGraph peržiūrose
- profile_directory:
- desc_html: Leisti vartotojams būti atrastiems
- title: Įjungti profilio direktorija
- registrations:
- closed_message:
- desc_html: Rodoma pagrindiniame puslapyje, kuomet registracijos uždarytos. Jūs galite naudoti HTML
- title: Uždarytos registracijos žinutė
- deletion:
- desc_html: Leisti visiems ištrinti savo paskyrą
- title: Atidaryti paskyros trynimą
- min_invite_role:
- disabled: Nei vienas
- title: Leisti pakvietimus
- show_known_fediverse_at_about_page:
- desc_html: Kai įjungta, rodys įrašus iš visos žinomos fedi-visatos. Kitokiu atvėju, rodys tik lokalius įrašus.
- title: Rodyti žinoma fedi-visatos laiko juosta peržiūroje
- show_staff_badge:
- desc_html: Rodyti personalo ženklelį vartotojo puslapyje
- title: Rodyti personalo ženklelį
- site_description:
- desc_html: Introdukcinis paragrafas pagrindiniame puslapyje. Apibūdink, kas padaro šį Mastodon serverį išskirtiniu ir visa kita, kas svarbu. Nebijok naudoti HTML žymes, pavyzdžiui < a >
bei <em>
.
- title: Serverio apibūdinimas
- site_description_extended:
- desc_html: Gera vieta Jūsų elgesio kodeksui, taisyklėms, nuorodms ir kitokiai informacijai, kuri yra išskirtinė Jūsų serveriui. Galite naudoti HTML žymes
- title: Išsamesnė išskirtine informacija
- site_short_description:
- desc_html: Rodoma šoniniame meniu ir meta žymėse. Apibūdink kas yra Mastodon, ir kas daro šį serverį išskirtiniu, vienu paragrafu. Jeigu tuščias, naudojamas numatytasis tekstas.
- title: Trumpas serverio apibūdinimas
- site_terms:
- desc_html: Jūs galite parašyti savo pačio privatumo politika, naudojimo sąlygas ar kita informacija. Galite naudoti HTML žymes
- title: Išskirtinės naudojimosi taisyklės
- site_title: Serverio pavadinimas
- thumbnail:
- desc_html: Naudojama OpenGraph peržiūroms ir API. Rekomenduojama 1200x630px
- title: Serverio miniatūra
- timeline_preview:
- desc_html: Rodyti viešą laiko juostą apsilankymo puslapyje
- title: Laiko juostos peržiūra
- title: Tinklalapio nustatymai
statuses:
back_to_account: Atgal į paskyros puslapį
media:
@@ -353,7 +255,6 @@ lt:
applications:
created: Aplikacija sėkmingai sukurta
destroyed: Aplikacija sėkmingai ištrinta
- invalid_url: Gauta URL nuoroda netinkama
regenerate_token: Regeneruoti prieigos žetoną
token_regenerated: Prieigos žetonas sėkmingai sugeneruotas
warning: Būkite atsargūs su šia informacija. Niekada jos nesidalinkite!
@@ -404,10 +305,6 @@ lt:
confirm_password: Kad patvirtintumėte savo tapatybę, įveskite dabartini slaptažodį
proceed: Ištrinti paskyrą
success_msg: Jūsų paskyra sėkmingai ištrinta
- directories:
- directory: Profilio direktorija
- explanation: Raskite vartotojus, remiantis tuo, kuo jie domisi
- explore_mastodon: Naršyti %{title}
errors:
'400': The request you submitted was invalid or malformed.
'403': Jūs neturie prieigos matyti šiam puslapiui.
@@ -450,16 +347,11 @@ lt:
title: Keisti filtrą
errors:
invalid_context: Jokio arba netinkamas pateiktas kontekstas
- invalid_irreversible: Negrąžinamas filtras veikia tik namų ir priminimų kontekste
index:
delete: Ištrinti
title: Filtrai
new:
title: Pridėti naują filtrą
- footer:
- developers: Programuotojai
- more: Daugiau…
- resources: Resursai
generic:
changes_saved_msg: Pakeitimai sėkmingai išsaugoti!
copy: Kopijuoti
@@ -478,7 +370,6 @@ lt:
following: Sekėju sąrašas
muting: Tildomų sąrašas
upload: Įkelti
- in_memoriam_html: Atminimui.
invites:
delete: Deaktyvuoti
expired: Pasibaigęs
@@ -510,11 +401,6 @@ lt:
moderation:
title: Moderacija
notification_mailer:
- digest:
- action: Peržiurėti visus pranešimus
- body: Čia yra trumpa santrauka žinutės, kurią jūs praleidote nuo jūsų paskutinio apsilankymo %{since}
- mention: "%{name} paminėjo jus:"
- title: Kol jūsų nebuvo...
favourite:
body: 'Jūsų statusą pamėgo %{name}:'
subject: "%{name} pamėgo Jūsų statusą"
@@ -545,22 +431,7 @@ lt:
preferences:
other: Kita
remote_follow:
- acct: Įveskite Jūsų slapyvardį@domenas kurį norite naudoti
missing_resource: Jūsų paskyros nukreipimo URL nerasta
- no_account_html: Neturite paskyros? Jūs galite užsiregistruoti čia
- proceed: Sekti
- prompt: 'Jūs seksite:'
- reason_html: "Kodėl šis žingsnis svarbus? %{instance}
gali būti serveris, kuriame jūs nesate užsiregistravęs, todėl mes turime jus nukreipti į Jūsų namų serveri."
- remote_interaction:
- favourite:
- proceed: Pamėgti
- prompt: 'Jūs norite pamėgti šį toot''ą:'
- reblog:
- proceed: Pakelti
- prompt: 'Jūs norite pakelti šį toot''ą:'
- reply:
- proceed: Atsakyti
- prompt: 'Jūs norite atsakyti šiam toot''ui:'
scheduled_statuses:
over_daily_limit: Jūs pasieketė limitą (%{limit}) galimų toot'ų per dieną
over_total_limit: Jūs pasieketė %{limit} limitą galimų toot'ų
@@ -615,8 +486,6 @@ lt:
pinned: Prisegtas toot'as
reblogged: pakeltas
sensitive_content: Jautrus turinys
- terms:
- title: "%{instance} Naudojimosi Sąlygos ir Privatumo Politika"
themes:
contrast: Mastodon (Didelio Kontrasto)
default: Mastodon (Tamsus)
@@ -648,20 +517,11 @@ lt:
suspend: Paskyra užrakinta
welcome:
edit_profile_action: Nustatyti profilį
- edit_profile_step: Jūs galite keisti savo profilį įkeldami profilio nuotrauką, antraštę, pakeičiant savo rodomą vardą ir dar daugiau. Jeigu norėtumete peržiurėti naujus sekėjus prieš leidžiant jiems jus sekti, galite užrakinti savo paskyrą.
explanation: Štai keletas patarimų Jums
final_action: Pradėti kelti įrašus
- final_step: 'Pradėk kelti įrašus! Net jeigu neturi sekėjų, Jūsų viešos žinutės gali būti matomos kitų, pavyzdžiui, lokalioje laiko juostoje ir saitažodžiuose. Galite norėti prisistatyti naudojan saitąžodį #introductions.'
full_handle: Jūsų pilnas slapyvardis
full_handle_hint: Štai ką jūs sakytumėte savo draugams, kad jie galėtų jums siųsti žinutes arba just sekti iš kitų serverių.
- review_preferences_action: Pakeisti pasirinkimus
- review_preferences_step: Nustatykite savo pasirinkimus, tokius kaip el pašto laiškai, kuriuos norėtumėte gauti, arba kokiu privatumo lygiu norėtumėte, kad jūsų įrašai būtų talpinami, taip pat galite įjungti automatinį GIF paleidimą.
subject: Sveiki atvykę į Mastodon
- tip_federated_timeline: Federuota laiko juosta yra lyg gaisrininkų žarną rodanti Mastodon tinklą. Tačiau, joje rodomi tik žmonės kurie yra sekami Jūsų kaimynų.
- tip_following: Jūs sekate savo serverio administratorius numatyta tvarka. Norint rasti įdomesnių žmonių, patikrinkite lokalią bei federuotą laiko juostas.
- tip_local_timeline: Lokali laiko juosta, joje rodomi žmonės iš %{instance}. Jie yra Jūsų artimiausi kaimynai!
- tip_mobile_webapp: Jeigu Jūsų mobilioji naršyklė leidžia jums pridėti Mastodon prie namų ekrano, jūs galite gauti priminimus. Tai gali veikti kaip vietinė aplikacija!
- tips: Patarimai
title: Sveiki atvykę, %{name}!
users:
follow_limit_reached: Negalite sekti daugiau nei %{limit} žmonių
diff --git a/config/locales/lv.yml b/config/locales/lv.yml
index f9d404303d..47dafbad67 100644
--- a/config/locales/lv.yml
+++ b/config/locales/lv.yml
@@ -1,83 +1,22 @@
---
lv:
about:
- about_hashtag_html: Šīs ir publiskas ziņas, kas atzīmētas ar #%{hashtag} . Tu vari mijiedarboties ar tām, ja tev ir konts jebkurā federācijas vietnē.
about_mastodon_html: 'Nākotnes sociālais tīkls: bez reklāmām, bez korporatīvās uzraudzības, ētisks dizains un decentralizācija! Pārvaldi savus datus ar Mastodon!'
- about_this: Par
- active_count_after: aktīvs
- active_footnote: Ikmēneša aktīvie lietotāji (IAL)
- administered_by: 'Administrē:'
- api: API
- apps: Mobilās lietotnes
- apps_platforms: Lieto Mastodon iOS, Android un citās platformās
- browse_directory: Pārlūko profila direktoriju un atlasi pēc interesēm
- browse_local_posts: Pārlūko publisko ziņu straumi no šī servera
- browse_public_posts: Pārlūko publisko ziņu straumi no Mastodon
- contact: Kontakts
contact_missing: Nav uzstādīts
contact_unavailable: N/A
- continue_to_web: Pārej uz tīmekļa lietotni
- discover_users: Atklāj lietotājus
- documentation: Dokumentācija
- federation_hint_html: Izmantojot kontu vietnē %{instance}, varēsi sekot cilvēkiem jebkurā Mastodon serverī un ārpus tā.
- get_apps: Izmēģini mobilo lietotni
hosted_on: Mastodon mitināts %{domain}
- instance_actor_flash: |
- Šis konts ir virtuāls aktieris, ko izmanto, lai pārstāvētu pašu serveri, nevis atsevišķu lietotāju.
- To izmanto apvienošanas nolūkos, un to nedrīkst bloķēt, ja vien nevēlies bloķēt visu instanci, un tādā gadījumā tev jāizmanto domēna bloķēšana.
- learn_more: Uzzināt vairāk
- logged_in_as_html: Tu pašlaik esi pieteicies kā %{username}.
- logout_before_registering: Tu jau esi pieteicies.
- privacy_policy: Privātuma politika
- rules: Servera noteikumi
- rules_html: 'Tālāk ir sniegts noteikumu kopsavilkums, kas jāievēro, ja vēlies izveidot kontu šajā Mastodon serverī:'
- see_whats_happening: Redzēt, kas notiek
- server_stats: 'Servera statistika:'
- source_code: Pirmkods
- status_count_after:
- one: ziņa
- other: ziņas
- zero: nav
- status_count_before: Kurš publicējis
- tagline: Seko draugiem un atrodi jaunus
- terms: Pakalpojuma noteikumi
- unavailable_content: Moderētie serveri
- unavailable_content_description:
- domain: Serveris
- reason: Iemesls
- rejecting_media: 'Multivides faili no šiem serveriem netiks apstrādāti vai saglabāti, un netiks parādīti sīktēli, kuriem nepieciešama manuāla noklikšķināšana uz sākotnējā faila:'
- rejecting_media_title: Filtrēts saturs
- silenced: 'Ziņas no šiem serveriem tiks paslēptas publiskās ziņu lentās un sarunās, un no lietotāju mijiedarbības netiks ģenerēti paziņojumi, ja vien tu tiem nesekosi:'
- silenced_title: Ierobežoti serveri
- suspended: 'Nekādi dati no šiem serveriem netiks apstrādāti, uzglabāti vai apmainīti, padarot neiespējamu jebkādu mijiedarbību vai saziņu ar lietotājiem no šiem serveriem:'
- suspended_title: Apturēti serveri
- unavailable_content_html: Mastodon parasti ļauj apskatīt saturu un mijiedarboties ar lietotājiem no jebkura cita federācijas servera. Šie ir izņēmumi, kas veikti šajā konkrētajā serverī.
- user_count_after:
- one: lietotājs
- other: lietotāji
- zero: lietotājI
- user_count_before: Mājās uz
- what_is_mastodon: Kas ir Mastodon?
+ title: Par
accounts:
- choices_html: "%{name} izvēles:"
- endorsements_hint: Jūs varat apstiprināt cilvēkus, kuriem sekojat no tīmekļa saskarnes, un viņi tiks parādīti šeit.
- featured_tags_hint: Šeit vari norādīt īpašus tēmturus, kuri tiks parādīti šeit.
- follow: Seko
+ follow: Sekot
followers:
one: Sekotājs
other: Sekotāji
zero: Sekotāju
following: Seko
instance_actor_flash: Šis konts ir virtuāls aktieris, ko izmanto, lai pārstāvētu pašu serveri, nevis atsevišķu lietotāju. To izmanto federācijas nolūkos, un to nevajadzētu apturēt.
- joined: Pievienojās %{date}
last_active: pēdējā aktivitāte
link_verified_on: Šīs saites piederība tika pārbaudīta %{date}
- media: Mediji
- moved_html: "%{name} ir pārcēlies uz %{new_profile_link}:"
- network_hidden: Šāda informācija nav pieejama
nothing_here: Te nekā nav!
- people_followed_by: Cilvēki, kuriem %{name} seko
- people_who_follow: Cilvēki, kuri seko %{name}
pin_errors:
following: Tev jau ir jāseko personai, kuru vēlies apstiprināt
posts:
@@ -85,14 +24,6 @@ lv:
other: Ziņas
zero: Ziņu
posts_tab_heading: Ziņas
- posts_with_replies: Ziņas un atbildes
- roles:
- admin: Admins
- bot: Bots
- group: Grupa
- moderator: Moder
- unavailable: Profils nav pieejams
- unfollow: Pārstāt sekot
admin:
account_actions:
action: Veikt darbību
@@ -109,12 +40,17 @@ lv:
avatar: Avatars
by_domain: Domēns
change_email:
- changed_msg: Konta e-pasts veiksmīgi nomainīts!
+ changed_msg: E-pasts veiksmīgi nomainīts!
current_email: Pašreizējais e-pasts
label: Mainīt e-pastu
new_email: Jaunā e-pasta adrese
submit: Mainīt e-pastu
title: Mainīt e-pastu %{username}
+ change_role:
+ changed_msg: Loma veiksmīgi nomainīta!
+ label: Mainīt lomu
+ no_role: Nav lomas
+ title: Mainīt lomu %{username}
confirm: Apstiprināt
confirmed: Apstiprināts
confirming: Apstiprina
@@ -150,7 +86,7 @@ lv:
remote: Attālinātie
title: Atrašanās vieta
login_status: Pieteikšanās statuss
- media_attachments: Mediju pielikumi
+ media_attachments: Multivides pielikumi
memorialize: Pārvērst atmiņās
memorialized: Piemiņa saglabāta
memorialized_msg: "%{username} veiksmīgi pārvērsts par piemiņas kontu"
@@ -158,6 +94,7 @@ lv:
active: Aktīvie
all: Visi
pending: Gaida
+ silenced: Ierobežotie
suspended: Apturētie
title: Moderācija
moderation_notes: Moderācijas piezīmes
@@ -165,6 +102,7 @@ lv:
most_recent_ip: Pati pēdējā IP
no_account_selected: Neviens konts netika mainīts, jo neviens netika atlasīts
no_limits_imposed: Nav noteikti ierobežojumi
+ no_role_assigned: Loma nav piešķirta
not_subscribed: Nav abonēts
pending: Gaida pārskatīšanu
perform_full_suspension: Apturēt
@@ -192,12 +130,7 @@ lv:
reset: Atiestatīt
reset_password: Atiestatīt paroli
resubscribe: Pieteikties vēlreiz
- role: Privilēģijas
- roles:
- admin: Administrators
- moderator: Moderators
- staff: Personāls
- user: Lietotājs
+ role: Loma
search: Meklēt
search_same_email_domain: Citi lietotāji ar tādu pašu e-pasta domēnu
search_same_ip: Citi lietotāji ar tādu pašu IP
@@ -240,17 +173,21 @@ lv:
approve_user: Apstiprināt lietotāju
assigned_to_self_report: Piešķirt Pārskatu
change_email_user: Mainīt e-pastu lietotājam
+ change_role_user: Mainīt lietotāja lomu
confirm_user: Apstiprināt lietotāju
create_account_warning: Izveidot Brīdinājumu
create_announcement: Izveidot Paziņojumu
+ create_canonical_email_block: Izveidot E-pasta Bloku
create_custom_emoji: Izveidot pielāgotu emocijzīmi
create_domain_allow: Izveidot Domēna Atļauju
create_domain_block: Izveidot Domēna Bloku
create_email_domain_block: Izveidot E-pasta Domēna Bloku
create_ip_block: Izveidot IP noteikumu
create_unavailable_domain: Izveidot Nepieejamu Domēnu
+ create_user_role: Izveidot lomu
demote_user: Pazemināt Lietotāju
destroy_announcement: Dzēst Paziņojumu
+ destroy_canonical_email_block: Dzēst E-pasta Bloku
destroy_custom_emoji: Dzēst pielāgoto emocijzīmi
destroy_domain_allow: Dzēst Domēna Atļauju
destroy_domain_block: Dzēst Domēna Bloku
@@ -259,6 +196,7 @@ lv:
destroy_ip_block: Dzēst IP noteikumu
destroy_status: Izdzēst Rakstu
destroy_unavailable_domain: Dzēst Nepieejamu Domēnu
+ destroy_user_role: Iznīcināt lomu
disable_2fa_user: Atspējot 2FA
disable_custom_emoji: Atspējot pielāgotu emocijzīmi
disable_sign_in_token_auth_user: Atspējoja e-pasta marķiera autentifikāciju lietotājam
@@ -285,24 +223,30 @@ lv:
update_announcement: Atjaunināt Paziņojumu
update_custom_emoji: Atjaunināt pielāgoto emocijzīmi
update_domain_block: Atjaunināt Domēna Bloku
+ update_ip_block: Atjaunināt IP noteikumu
update_status: Atjaunināt ziņu
+ update_user_role: Atjaunināt lomu
actions:
approve_appeal_html: "%{name} apstiprināja moderācijas lēmuma apelāciju no %{target}"
approve_user_html: "%{name} apstiprināja reģistrēšanos no %{target}"
assigned_to_self_report_html: "%{name} piešķīra pārskatu %{target} sev"
change_email_user_html: "%{name} nomainīja e-pasta adresi lietotājam %{target}"
+ change_role_user_html: "%{name} nomainīja lomu uz %{target}"
confirm_user_html: "%{name} apstiprināja e-pasta adresi lietotājam %{target}"
create_account_warning_html: "%{name} nosūtīja brīdinājumu %{target}"
create_announcement_html: "%{name} izveidoja jaunu paziņojumu %{target}"
+ create_canonical_email_block_html: "%{name} bloķēja e-pastu ar hešu %{target}"
create_custom_emoji_html: "%{name} augšupielādēja jaunu emocijzīmi %{target}"
create_domain_allow_html: "%{name} atļāva federāciju ar domēnu %{target}"
create_domain_block_html: "%{name} bloķēja domēnu %{target}"
create_email_domain_block_html: "%{name} bloķēja e-pasta domēnu %{target}"
create_ip_block_html: "%{name} izveidoja nosacījumu priekš IP %{target}"
create_unavailable_domain_html: "%{name} apturēja piegādi uz domēnu %{target}"
+ create_user_role_html: "%{name} nomainīja %{target} lomu"
demote_user_html: "%{name} pazemināja lietotāju %{target}"
destroy_announcement_html: "%{name} izdzēsa paziņojumu %{target}"
- destroy_custom_emoji_html: "%{name} iznīcināja emocijzīmi %{target}"
+ destroy_canonical_email_block_html: "%{name} atbloķēja e-pastu ar hešu %{target}"
+ destroy_custom_emoji_html: "%{name} izdzēsa emocijzīmi %{target}"
destroy_domain_allow_html: "%{name} neatļāva federāciju ar domēnu %{target}"
destroy_domain_block_html: "%{name} atbloķēja domēnu %{target}"
destroy_email_domain_block_html: "%{name} atbloķēja e-pasta domēnu %{target}"
@@ -310,6 +254,7 @@ lv:
destroy_ip_block_html: "%{name} izdzēsa nosacījumu priekš IP %{target}"
destroy_status_html: "%{name} noņēma ziņu %{target}"
destroy_unavailable_domain_html: "%{name} atjaunoja piegādi uz domēnu %{target}"
+ destroy_user_role_html: "%{name} izdzēsa %{target} lomu"
disable_2fa_user_html: "%{name} atspējoja divfaktoru prasības lietotājam %{target}"
disable_custom_emoji_html: "%{name} atspējoja emocijzīmi %{target}"
disable_sign_in_token_auth_user_html: "%{name} atspējoja e-pasta marķiera autentifikāciju %{target}"
@@ -336,8 +281,9 @@ lv:
update_announcement_html: "%{name} atjaunināja paziņojumu %{target}"
update_custom_emoji_html: "%{name} atjaunināja emocijzīmi %{target}"
update_domain_block_html: "%{name} atjaunināja domēna bloku %{target}"
+ update_ip_block_html: "%{name} mainīja nosacījumu priekš IP %{target}"
update_status_html: "%{name} atjaunināja ziņu %{target}"
- deleted_status: "(dzēsta ziņa)"
+ update_user_role_html: "%{name} nomainīja %{target} lomu"
empty: Žurnāli nav atrasti.
filter_by_action: Filtrēt pēc darbības
filter_by_user: Filtrēt pēc lietotāja
@@ -381,6 +327,7 @@ lv:
listed: Uzrakstītas
new:
title: Pievienojiet jaunas pielāgotās emocijzīmes
+ no_emoji_selected: Neviena emocijzīme netika mainīta, jo neviena netika atlasīta
not_permitted: Tev nav atļauts veikt šo darbību
overwrite: Pārrakstīt
shortcode: Īskods
@@ -663,6 +610,69 @@ lv:
unresolved: Neatrisinātie
updated_at: Atjaunināts
view_profile: Skatīt profilu
+ roles:
+ add_new: Pievienot lomu
+ assigned_users:
+ one: "%{count} lietotājs"
+ other: "%{count} lietotāji"
+ zero: "%{count} lietotāju"
+ categories:
+ administration: Administrēšana
+ devops: Izstrādātāji
+ invites: Uzaicinājumi
+ moderation: Moderācija
+ special: Īpašās
+ delete: Dzēst
+ description_html: Izmantojot lietotāju lomas , vari pielāgot, kurām Mastodon funkcijām un apgabaliem var piekļūt tavi lietotāji.
+ edit: Rediģēt lomu '%{name}'
+ everyone: Noklusētās atļaujas
+ everyone_full_description_html: Šī ir pamata loma , kas ietekmē visus lietotājus , pat tos, kuriem nav piešķirta loma. Visas pārējās lomas manto atļaujas no šīs.
+ permissions_count:
+ one: "%{count} atļauja"
+ other: "%{count} atļaujas"
+ zero: "%{count} atļauju"
+ privileges:
+ administrator: Administrators
+ administrator_description: Lietotāji ar šo atļauju apies visas atļaujas
+ delete_user_data: Dzēst Lietotāja Datus
+ delete_user_data_description: Ļauj lietotājiem bez kavēšanās dzēst citu lietotāju datus
+ invite_users: Uzaicināt Lietotājus
+ invite_users_description: Ļauj lietotājiem uzaicināt jaunus cilvēkus uz šo serveri
+ manage_announcements: Pārvaldīt Paziņojumus
+ manage_announcements_description: Ļauj lietotājiem pārvaldīt paziņojumus serverī
+ manage_appeals: Pārvaldīt Pārsūdzības
+ manage_appeals_description: Ļauj lietotājiem izskatīt apelācijas pret regulēšanas darbībām
+ manage_blocks: Pārvaldīt Bloķus
+ manage_blocks_description: Ļauj lietotājiem bloķēt e-pasta pakalpojumu sniedzējus un IP adreses
+ manage_custom_emojis: Pārvaldīt Pielāgotās Emocijzīmes
+ manage_custom_emojis_description: Ļauj lietotājiem pārvaldīt pielāgotās emocijzīmes serverī
+ manage_federation: Pārvaldīt Federāciju
+ manage_federation_description: Ļauj lietotājiem bloķēt vai atļaut federāciju ar citiem domēniem un kontrolēt piegādi
+ manage_invites: Pārvaldīt Uzaicinājumus
+ manage_invites_description: Ļauj lietotājiem pārlūkot un deaktivizēt uzaicinājuma saites
+ manage_reports: Pārvaldīt Pārskatus
+ manage_reports_description: Ļauj lietotājiem pārskatīt pārskatus un veikt pret tiem regulēšanas darbības
+ manage_roles: Pārvaldīt Lomas
+ manage_roles_description: Ļauj lietotājiem pārvaldīt un piešķirt lomas, kas ir zemākas par viņu lomu
+ manage_rules: Pārvaldīt Noteikumus
+ manage_rules_description: Ļauj lietotājiem mainīt servera noteikumus
+ manage_settings: Pārvaldīt Iestatījumus
+ manage_settings_description: Ļauj lietotājiem mainīt vietnes uzstādījumus
+ manage_taxonomies: Pārvaldīt Taksonomijas
+ manage_taxonomies_description: Ļauj lietotājiem pārskatīt aktuālo saturu un atjaunināt atsauces iestatījumus
+ manage_user_access: Pārvaldīt Lietotāju Piekļuves
+ manage_user_access_description: Ļauj lietotājiem atspējot citu lietotāju divu faktoru autentifikāciju, mainīt savu e-pasta adresi un atiestatīt paroli
+ manage_users: Pārvaldīt Lietotājus
+ manage_users_description: Ļauj lietotājiem skatīt citu lietotāju informāciju un veikt pret viņiem regulēšanas darbības
+ manage_webhooks: Pārvaldīt Tīmekļa Aizķeres
+ manage_webhooks_description: Ļauj lietotājiem iestatīt tīmekļa aizķeres administratīviem pasākumiem
+ view_audit_log: Skatīt Audita Žurnālu
+ view_audit_log_description: Ļauj lietotājiem redzēt serverī veikto administratīvo darbību vēsturi
+ view_dashboard: Skatīt Informācijas Paneli
+ view_dashboard_description: Ļauj lietotājiem piekļūt informācijas panelim un dažādiem rādītājiem
+ view_devops: Izstrādātāji
+ view_devops_description: Ļauj lietotājiem piekļūt Sidekiq un pgHero informācijas paneļiem
+ title: Lomas
rules:
add_new: Pievienot noteikumu
delete: Dzēst
@@ -671,108 +681,67 @@ lv:
empty: Servera noteikumi vēl nav definēti.
title: Servera noteikumi
settings:
- activity_api_enabled:
- desc_html: Vietēji publicēto ziņu, aktīvo lietotāju un jauno reģistrāciju skaits nedēļas kopās
- title: Publicējiet apkopotu statistiku par lietotāju darbībām API
- bootstrap_timeline_accounts:
- desc_html: Atdaliet vairākus lietotājvārdus ar komatu. Tiks garantēts, ka šie konti tiks parādīti ieteikumos
- title: Iesaki šos kontus jaunajiem lietotājiem
- contact_information:
- email: Lietišķais e-pasts
- username: Saziņas lietotājvārds
- custom_css:
- desc_html: Maini izskatu, izmantojot CSS, kas ielādēta katrā lapā
- title: Pielāgota CSS
- default_noindex:
- desc_html: Ietekmē visus lietotājus, kuri paši nav mainījuši šo iestatījumu
- title: Pēc noklusējuma lietotāji būs atteikušies no meklētājprogrammu indeksēšanas
+ about:
+ manage_rules: Pārvaldīt servera nosacījumus
+ preamble: Sniedz padziļinātu informāciju par to, kā serveris tiek darbināts, moderēts un finansēts.
+ rules_hint: Noteikumiem, kas taviem lietotājiem ir jāievēro, ir īpaša sadaļa.
+ title: Par
+ appearance:
+ preamble: Pielāgo Mastodon tīmekļa saskarni.
+ title: Izskats
+ branding:
+ preamble: Tava servera zīmols to atšķir no citiem tīkla serveriem. Šī informācija var tikt parādīta dažādās vidēs, piemēram, Mastodon tīmekļa saskarnē, vietējās lietojumprogrammās, saišu priekšskatījumos citās vietnēs un ziņojumapmaiņas lietotnēs un tā tālāk. Šī iemesla dēļ vislabāk ir saglabāt šo informāciju skaidru, īsu un kodolīgu.
+ title: Zīmola veidošana
+ content_retention:
+ preamble: Kontrolē, kā Mastodon tiek glabāts lietotāju ģenerēts saturs.
+ title: Satura saglabāšana
+ discovery:
+ follow_recommendations: Sekotšanas rekomendācijas
+ preamble: Interesanta satura parādīšana palīdz piesaistīt jaunus lietotājus, kuri, iespējams, nepazīst nevienu Mastodon. Kontrolē, kā tavā serverī darbojas dažādi atklāšanas līdzekļi.
+ profile_directory: Profila direktorija
+ public_timelines: Publiskās ziņu lentas
+ title: Atklāt
+ trends: Tendences
domain_blocks:
all: Visiem
disabled: Nevienam
- title: Rādīt domēnu bloķēšanas
users: Vietējiem reģistrētiem lietotājiem
- domain_blocks_rationale:
- title: Rādīt pamatojumus
- hero:
- desc_html: Parādīts pirmajā lapā. Ieteicams vismaz 600x100 pikseļus. Ja tas nav iestatīts, atgriežas servera sīktēlā
- title: Varoņa attēls
- mascot:
- desc_html: Parādīts vairākās lapās. Ieteicams vismaz 293 × 205 pikseļi. Ja tas nav iestatīts, tiek atgriezts noklusējuma talismans
- title: Talismana attēls
- peers_api_enabled:
- desc_html: Domēna vārdi, ar kuriem šis serveris ir saskāries fediversā
- title: Publicēt API atklāto serveru sarakstu
- preview_sensitive_media:
- desc_html: Saites priekšskatījumus citās vietnēs parādīs kā sīktēlu pat tad, ja medijs ir atzīmēts kā sensitīvs
- title: Parādīt sensitīvos medijus OpenGraph priekšskatījumos
- profile_directory:
- desc_html: Atļaut lietotājiem būt atklājamiem
- title: Iespējot profila direktoriju
registrations:
- closed_message:
- desc_html: Tiek parādīts sākumlapā, kad reģistrācija ir slēgta. Tu vari izmantot HTML tagus
- title: Paziņojums par slēgtu reģistrāciju
- deletion:
- desc_html: Atļaut ikvienam dzēst savu kontu
- title: Atvērt konta dzēšanu
- min_invite_role:
- disabled: Nevienam
- title: Atļaut uzaicinājumus
- require_invite_text:
- desc_html: 'Ja reģistrācijai nepieciešama manuāla apstiprināšana, izdari, lai teksta: “Kāpēc vēlaties pievienoties?” ievade ir obligāta, nevis neobligāts'
- title: Pieprasīt jauniem lietotājiem ievadīt pievienošanās iemeslu
+ preamble: Kontrolē, kurš var izveidot kontu tavā serverī.
+ title: Reģistrācijas
registrations_mode:
modes:
approved: Reģistrācijai nepieciešams apstiprinājums
none: Neviens nevar reģistrēties
open: Jebkurš var reģistrēties
- title: Reģistrācijas režīms
- show_known_fediverse_at_about_page:
- desc_html: Ja šī funkcija ir atspējota, tā ierobežo publisko ziņu lentu, kas ir saistīta ar galveno lapu, lai parādītu tikai vietējo saturu
- title: Iekļaut federēto saturu neautentificētā publiskā ziņu lentas lapā
- show_staff_badge:
- desc_html: Parāda personāla emblēmu lietotāja lapā
- title: Parādīt personāla emblēmu
- site_description:
- desc_html: Ievadpunkts par API. Apraksti, kas padara šo Mastodon serveri īpašu, un jebko citu svarīgu. Vari izmantot HTML tagus, jo īpaši <a>
un <em>
.
- title: Servera apraksts
- site_description_extended:
- desc_html: Laba vieta tavam rīcības kodeksam, noteikumiem, vadlīnijām un citām lietām, kas atšķir tavu serveri. Tu vari izmantot HTML tagus
- title: Pielāgota paplašināta informācija
- site_short_description:
- desc_html: Tiek parādīts sānjoslā un metatagos. Vienā rindkopā apraksti, kas ir Mastodon un ar ko šis serveris ir īpašs.
- title: Īss servera apraksts
- site_terms:
- desc_html: Tu vari uzrakstīt savu privātuma politiku, pakalpojumu sniegšanas noteikumus vai citu likumīgu. Tu vari izmantot HTML tagus
- title: Pielāgoti pakalpojuma sniegšanas noteikumi
- site_title: Servera nosaukums
- thumbnail:
- desc_html: Izmanto priekšskatījumiem, izmantojot OpenGraph un API. Ieteicams 1200x630 pikseļi
- title: Servera sīkbilde
- timeline_preview:
- desc_html: Galvenajā lapā parādi saiti uz publisku laika skalu un ļauj API piekļūt publiskai ziņu lentai bez autentifikācijas
- title: Atļaut neautentificētu piekļuvi publiskai ziņu lentai
- title: Vietnes iestatījumi
- trendable_by_default:
- desc_html: Ietekmē tēmturus, kas iepriekš nav bijuši aizliegti
- title: Ļaujiet tēmturiem mainīties bez iepriekšējas pārskatīšanas
- trends:
- desc_html: Publiski parādīt iepriekš pārskatītus tēmturus, kas pašlaik ir populāri
- title: Populārākie tēmturi
+ title: Servera Iestatījumi
site_uploads:
delete: Dzēst augšupielādēto failu
destroyed_msg: Vietnes augšupielāde ir veiksmīgi izdzēsta!
statuses:
+ account: Autors
+ application: Lietotne
back_to_account: Atpakaļ uz konta lapu
back_to_report: Atpakaļ uz paziņojumu lapu
batch:
remove_from_report: Noņemt no ziņojuma
report: Ziņojums
deleted: Dzēstie
+ favourites: Izlase
+ history: Versiju vēsture
+ in_reply_to: Atbildot uz
+ language: Valoda
media:
- title: Mediji
+ title: Multivide
+ metadata: Metadati
no_status_selected: Neviena ziņa netika mainīta, jo neviena netika atlasīta
+ open: Atvērt ziņu
+ original_status: Oriģinālā ziņa
+ reblogs: Reblogi
+ status_changed: Ziņa mainīta
title: Konta ziņas
+ trending: Tendences
+ visibility: Redzamība
with_media: Ar medijiem
strikes:
actions:
@@ -812,6 +781,9 @@ lv:
description_html: Šīs ir saites, kuras pašlaik bieži koplieto konti, no kuriem tavs serveris redz ziņas. Tas var palīdzēt taviem lietotājiem uzzināt, kas notiek pasaulē. Kamēr tu neapstiprini izdevēju, neviena saite netiek rādīta publiski. Vari arī atļaut vai noraidīt atsevišķas saites.
disallow: Neatļaut saiti
disallow_provider: Neatļaut publicētāju
+ no_link_selected: Neviena saite netika mainīta, jo neviena netika atlasīta
+ publishers:
+ no_publisher_selected: Neviens publicētājs netika mainīts, jo neviens netika atlasīts
shared_by_over_week:
one: Pēdējās nedēļas laikā kopīgoja viena persona
other: Pēdējās nedēļas laikā kopīgoja %{count} personas
@@ -832,6 +804,7 @@ lv:
description_html: Šīs ir ziņas, par kurām tavs serveris zina un kuras pašlaik tiek koplietotas un pašlaik ir daudz izlasē. Tas var palīdzēt taviem jaunajiem un atkārtotiem lietotājiem atrast vairāk cilvēku, kam sekot. Neviena ziņa netiek publiski rādīta, kamēr neesi apstiprinājis autoru un autors atļauj savu kontu ieteikt citiem. Vari arī atļaut vai noraidīt atsevišķas ziņas.
disallow: Neatļaut publicēt
disallow_account: Neatļaut autoru
+ no_status_selected: Neviena populāra ziņa netika mainīta, jo neviena netika atlasīta
not_discoverable: Autors nav izvēlējies būt atklājams
shared_by:
one: Vienreiz kopīgots vai pievienots izlasei
@@ -848,6 +821,7 @@ lv:
tag_uses_measure: lietojumi pavisam
description_html: Šīs ir atsauces, kas pašlaik tiek rādītas daudzās ziņās, kuras redz tavs serveris. Tas var palīdzēt taviem lietotājiem uzzināt, par ko cilvēki šobrīd runā visvairāk. Neviena atsauce netiek rādīta publiski, kamēr tu neesi tās apstiprinājis.
listable: Var tikt ieteikts
+ no_tag_selected: Neviena atzīme netika mainīta, jo neviena netika atlasīta
not_listable: Nevar tikt ieteikts
not_trendable: Neparādīsies pie tendencēm
not_usable: Nevar tikt lietots
@@ -869,6 +843,27 @@ lv:
edit_preset: Labot iepriekš iestatītus brīdinājumus
empty: Tu vēl neesi definējis iepriekš iestatītos brīdinājumus.
title: Pārvaldīt brīdinājuma iestatījumus
+ webhooks:
+ add_new: Pievienot galapunktu
+ delete: Dzēst
+ description_html: Izmantojot tīmekļa aizķeri , Mastodon var nosūtīt jūsu lietojumprogrammai reāllaika paziņojumus par izvēlētajiem notikumiem, lai tava lietojumprogramma varētu automātiski izraisīt reakcijas .
+ disable: Atspējot
+ disabled: Atspējots
+ edit: Rediģēt galapunktu
+ empty: Tev vēl nav konfigurēts neviens tīmekļa aizķeres galapunkts.
+ enable: Iespējot
+ enabled: Aktīvie
+ enabled_events:
+ one: 1 iespējots notikums
+ other: "%{count} iespējoti notikumi"
+ zero: "%{count} iespējotu notikumu"
+ events: Notikumi
+ new: Jauna tīmekļa aizķere
+ rotate_secret: Pagriezt noslēpumu
+ secret: Paraksta noslēpums
+ status: Statuss
+ title: Tīmekļa āķi
+ webhook: Tīmekļa āķis
admin_mailer:
new_appeal:
actions:
@@ -892,12 +887,8 @@ lv:
new_trends:
body: 'Tālāk norādītie vienumi ir jāpārskata, lai tos varētu parādīt publiski:'
new_trending_links:
- no_approved_links: Pašlaik nav apstiprinātu tendenču saišu.
- requirements: 'Jebkurš no šiem kandidātiem varētu pārspēt #%{rank} apstiprināto populāro saiti, kas pašlaik ir "%{lowest_link_title}" ar rezultātu %{lowest_link_score}.'
title: Populārākās saites
new_trending_statuses:
- no_approved_statuses: Pašlaik nav apstiprinātu tendenču saišu.
- requirements: 'Jebkurš no šiem kandidātiem varētu pārspēt #%{rank} apstiprināto populāro ziņu, kas pašlaik ir %{lowest_status_url} ar rezultātu %{lowest_status_score}.'
title: Populārākās ziņas
new_trending_tags:
no_approved_tags: Pašlaik nav apstiprinātu tendenču tēmturu.
@@ -924,25 +915,22 @@ lv:
sensitive_content: Sensitīvs saturs
toot_layout: Ziņas izskats
application_mailer:
- notification_preferences: Mainīt e-pasta preferences
+ notification_preferences: Mainīt e-pasta uztādījumus
salutation: "%{name},"
- settings: 'Mainīt e-pasta preferences: %{link}'
+ settings: 'Mainīt e-pasta uztādījumus: %{link}'
view: 'Skatījums:'
view_profile: Skatīt profilu
view_status: Skatīt ziņu
applications:
created: Lietojumprogramma ir veiksmīgi izveidota
destroyed: Lietojumprogramma ir veiksmīgi dzēsta
- invalid_url: Norādītais URL nav derīgs
regenerate_token: Atjaunot piekļuves marķieri
token_regenerated: Piekļuves marķieris veiksmīgi atjaunots
warning: Esi ļoti uzmanīgs ar šiem datiem. Nekad nedalies ne ar vienu ar tiem!
your_token: Tavs piekļuves marķieris
auth:
- apply_for_account: Pieprasīt ielūgumu
+ apply_for_account: Iekļūt gaidīšanas sarakstā
change_password: Parole
- checkbox_agreement_html: Es piekrītu servera noteikumiem un pakalpojuma sniegšanas noteikumiem
- checkbox_agreement_without_rules_html: Es piekrītu pakalpojuma sniegšanas noteikumiem
delete_account: Dzēst kontu
delete_account_html: Ja vēlies dzēst savu kontu, tu vari turpināt šeit . Tev tiks lūgts apstiprinājums.
description:
@@ -961,6 +949,7 @@ lv:
migrate_account: Pāriešana uz citu kontu
migrate_account_html: Ja vēlies novirzīt šo kontu uz citu, tu vari to konfigurēt šeit .
or_log_in_with: Vai piesakies ar
+ privacy_policy_agreement_html: Esmu izlasījis un piekrītu privātuma politikai
providers:
cas: CAS
saml: SAML
@@ -968,12 +957,18 @@ lv:
registration_closed: "%{instance} nepieņem jaunus dalībniekus"
resend_confirmation: Atkārtoti nosūtīt apstiprinājuma norādījumus
reset_password: Atiestatīt paroli
+ rules:
+ preamble: Tos iestata un ievieš %{domain} moderatori.
+ title: Daži pamatnoteikumi.
security: Drošība
set_new_password: Iestatīt jaunu paroli
setup:
email_below_hint_html: Ja zemāk norādītā e-pasta adrese ir nepareiza, vari to nomainīt šeit un saņemt jaunu apstiprinājuma e-pastu.
email_settings_hint_html: Apstiprinājuma e-pasts tika nosūtīts uz %{email}. Ja šī e-pasta adrese nav pareiza, vari to nomainīt konta iestatījumos.
title: Iestatīt
+ sign_up:
+ preamble: Izmantojot kontu šajā Mastodon serverī, tu varēsi sekot jebkurai citai personai tīklā neatkarīgi no tā, kur tiek mitināts viņas konts.
+ title: Atļauj tevi iestatīt %{domain}.
status:
account_status: Konta statuss
confirming: Gaida e-pasta apstiprinājuma pabeigšanu.
@@ -982,7 +977,6 @@ lv:
redirecting_to: Tavs konts ir neaktīvs, jo pašlaik tas tiek novirzīts uz %{acct}.
view_strikes: Skati iepriekšējos brīdinājumus par savu kontu
too_fast: Veidlapa ir iesniegta pārāk ātri, mēģini vēlreiz.
- trouble_logging_in: Problēma ar pieteikšanos?
use_security_key: Lietot drošības atslēgu
authorize_follow:
already_following: Tu jau seko šim kontam
@@ -1040,10 +1034,6 @@ lv:
more_details_html: Plašāku informāciju skatīt privātuma politika .
username_available: Tavs lietotājvārds atkal būs pieejams
username_unavailable: Tavs lietotājvārds paliks nepieejams
- directories:
- directory: Profila direktorija
- explanation: Atklāj lietotājus, pamatojoties uz viņu interesēm
- explore_mastodon: Izpētīt %{title}
disputes:
strikes:
action_taken: Veiktā darbība
@@ -1122,29 +1112,66 @@ lv:
public: Publiskās ziņu lentas
thread: Sarunas
edit:
+ add_keyword: Pievienot atslēgvārdu
+ keywords: Atslēgvārdi
+ statuses: Individuālās ziņas
+ statuses_hint_html: Šis filtrs attiecas uz atsevišķām ziņām neatkarīgi no tā, vai tās atbilst tālāk norādītajiem atslēgvārdiem. Pārskatīt vai noņemt ziņas no filtra .
title: Rediģēt filtru
errors:
+ deprecated_api_multiple_keywords: Šos parametrus šajā lietojumprogrammā nevar mainīt, jo tie attiecas uz vairāk nekā vienu filtra atslēgvārdu. Izmanto jaunāku lietojumprogrammu vai tīmekļa saskarni.
invalid_context: Nav, vai piegādāts nederīgs konteksts
- invalid_irreversible: Neatgriezeniskā filtrēšana darbojas tikai sākuma vai paziņojumu kontekstā
index:
+ contexts: Filtri %{contexts}
delete: Dzēst
empty: Tev nav filtru.
+ expires_in: Beidzas %{distance}
+ expires_on: Beidzas %{date}
+ keywords:
+ one: "%{count} atsēgvārds"
+ other: "%{count} atslēgvārdi"
+ zero: "%{count} atslēgvārdu"
+ statuses:
+ one: "%{count} ziņa"
+ other: "%{count} ziņas"
+ zero: "%{count} ziņu"
+ statuses_long:
+ one: paslēpta %{count} individuālā ziņa
+ other: slēptas %{count} individuālās ziņas
+ zero: "%{count} paslēptu ziņu"
title: Filtri
new:
+ save: Saglabāt jauno filtru
title: Pievienot jaunu filtru
+ statuses:
+ back_to_filter: Atpakaļ pie filtra
+ batch:
+ remove: Noņemt no filtra
+ index:
+ hint: Šis filtrs attiecas uz atsevišķu ziņu atlasi neatkarīgi no citiem kritērijiem. Šim filtram tu vari pievienot vairāk ziņu, izmantojot tīmekļa saskarni.
+ title: Filtrētās ziņas
footer:
- developers: Izstrādātāji
- more: Vairāk…
- resources: Resursi
trending_now: Šobrīd tendences
generic:
all: Visi
+ all_items_on_page_selected_html:
+ one: Šajā lapā ir atlasīts %{count} vienums.
+ other: Šajā lapā ir atlasīti %{count} vienumi.
+ zero: Šajā lapā ir atlasīts %{count} vienumu.
+ all_matching_items_selected_html:
+ one: Atlasīts %{count} vienums, kas atbilst tavam meklēšanas vaicājumam.
+ other: Atlasīti visi %{count} vienumi, kas atbilst tavam meklēšanas vaicājumam.
+ zero: Atlasīts %{count} vienumu, kas atbilst tavam meklēšanas vaicājumam.
changes_saved_msg: Izmaiņas veiksmīgi saglabātas!
copy: Kopēt
delete: Dzēst
+ deselect: Atcelt visu atlasi
none: Neviens
order_by: Kārtot pēc
save_changes: Saglabāt izmaiņas
+ select_all_matching_items:
+ one: Atlasi %{count} vienumu, kas atbilst tavam meklēšanas vaicājumam.
+ other: Atlasi visus %{count} vienumus, kas atbilst tavam meklēšanas vaicājumam.
+ zero: Atlasi %{count} vienumu, kas atbilst tavam meklēšanas vaicājumam.
today: šodien
validation_errors:
one: Kaut kas vēl nav īsti kārtībā! Lūdzu, pārskati zemāk norādīto kļūdu
@@ -1169,7 +1196,6 @@ lv:
following: Šāds saraksts
muting: Izslēgšanas saraksts
upload: Augšupielādēt
- in_memoriam_html: Piemiņai.
invites:
delete: Deaktivizēt
expired: Beigušies
@@ -1251,21 +1277,10 @@ lv:
copy_account_note_text: 'Šis lietotājs pārcēlās no %{acct}, šeit bija tavas iepriekšējās piezīmes par viņu:'
notification_mailer:
admin:
+ report:
+ subject: "%{name} iesniedza ziņojumu"
sign_up:
subject: "%{name} ir pierakstījies"
- digest:
- action: Rādīt visus paziņojumus
- body: Šeit ir īss kopsavilkums par ziņojumiem, kurus tu esi palaidis garām kopš pēdējā apmeklējuma %{since}
- mention: "%{name} pieminēja tevi:"
- new_followers_summary:
- one: Tāpat, atrodoties prom, esi ieguvis vienu jaunu sekotāju! Jip!
- other: Turklāt, atrodoties prom, esi ieguvis %{count} jaunus sekotājus! Apbrīnojami!
- zero: "%{count} jaunu sekotāju!"
- subject:
- one: "1 jauns paziņojums kopš tava pēdējā apmeklējuma 🐘"
- other: "%{count} jauni paziņojumi kopš tava pēdējā apmeklējuma 🐘"
- zero: "%{count} jaunu paziņojumu kopš tava pēdējā apmeklējuma"
- title: Tavas prombūtnes laikā...
favourite:
body: 'Tavu ziņu izlasei pievienoja %{name}:'
subject: "%{name} pievienoja tavu ziņu izlasei"
@@ -1337,6 +1352,8 @@ lv:
other: Citi
posting_defaults: Publicēšanas noklusējuma iestatījumi
public_timelines: Publiskās ziņu lentas
+ privacy_policy:
+ title: Privātuma Politika
reactions:
errors:
limit_reached: Sasniegts dažādu reakciju limits
@@ -1359,22 +1376,7 @@ lv:
remove_selected_follows: Pārtraukt sekošanu atlasītajiem lietotājiem
status: Konta statuss
remote_follow:
- acct: Ievadi savu lietotajvards@domens, no kura vēlies darboties
missing_resource: Nevarēja atrast tavam kontam nepieciešamo novirzīšanas URL
- no_account_html: Vai tev nav konta? Tu vari piereģistrēties šeit
- proceed: Turpini lai sekotu
- prompt: 'Tu gatavojies sekot:'
- reason_html: " Kāpēc šis solis ir nepieciešams? %{instance}
, iespējams, nav serveris, kurā esi reģistrēts, tāpēc mums vispirms ir jānovirza tevi uz tavu mājas serveri."
- remote_interaction:
- favourite:
- proceed: Pārej uz izlasi
- prompt: 'Tu vēlies pievienot izlasei šo ziņu:'
- reblog:
- proceed: Turpini paaugstināt
- prompt: 'Tu vēlies paugstināt šo ziņu:'
- reply:
- proceed: Turpini lai atbildētu
- prompt: 'Tu vēlies atbildēt uz šo ziņu:'
reports:
errors:
invalid_rules: neatsaucas uz derīgiem noteikumiem
@@ -1552,89 +1554,6 @@ lv:
too_late: Brīdinājuma apstrīdēšanas laiks ir nokavēts
tags:
does_not_match_previous_name: nesakrīt ar iepriekšējo nosaukumu
- terms:
- body_html: |
- Konfidencialitātes politika
- Kādu informāciju mēs apkopojam?
-
-
- Konta pamatinformācija : ja reģistrējaties šajā serverī, iespējams, jums tiks lūgts ievadīt lietotājvārdu, e-pasta adresi un paroli. Varat arī ievadīt papildu profila informāciju, piemēram, parādāmo vārdu un biogrāfiju, kā arī augšupielādēt profila attēlu un galvenes attēlu. Lietotājvārds, parādāmais vārds, biogrāfija, profila attēls un galvenes attēls vienmēr ir publiski norādīti.
- Ziņas, sekošana un cita publiska informācija : to personu saraksts, kurām sekojat, ir publiski pieejams, tas pats attiecas uz jūsu sekotājiem. Iesniedzot ziņojumu, tiek saglabāts datums un laiks, kā arī pieteikums, no kura iesniedzāt ziņojumu. Ziņojumos var būt multivides pielikumi, piemēram, attēli un video. Publiskās un nerindotās ziņas ir pieejamas publiski. Ja savā profilā ievietojat ziņu, tā ir arī publiski pieejama informācija. Jūsu ziņas tiek piegādātas jūsu sekotājiem, dažos gadījumos tas nozīmē, ka tās tiek piegādātas uz dažādiem serveriem un tur tiek glabātas kopijas. Dzēšot ziņas, tas tāpat tiek piegādāts jūsu sekotājiem. Atkārtota emuāra pievienošana vai citas ziņas pievienošana izlasei vienmēr ir publiska.
- Tiešas un tikai sekotāju ziņas : visas ziņas tiek glabātas un apstrādātas serverī. Tikai sekotājiem paredzētās ziņas tiek piegādātas jūsu sekotājiem un tajos minētajiem lietotājiem, un tiešās ziņas tiek piegādātas tikai tajos minētajiem lietotājiem. Dažos gadījumos tas nozīmē, ka tie tiek piegādāti uz dažādiem serveriem un tur tiek saglabātas kopijas. Mēs godprātīgi cenšamies ierobežot piekļuvi šīm ziņām tikai pilnvarotām personām, taču citiem serveriem tas var neizdoties. Tāpēc ir svarīgi pārskatīt serverus, kuriem pieder jūsu sekotāji. Iestatījumos varat manuāli pārslēgt iespēju apstiprināt un noraidīt jaunus sekotājus. Lūdzu, ņemiet vērā, ka servera operatori un jebkura saņēmēja servera operatori var skatīt šādus ziņojumus un ka adresāti var tos ekrānuzņēmumus, kopēt vai citādi atkārtoti kopīgot. Nekopīgojiet sensitīvu informāciju pakalpojumā Mastodon.
- IP un citi metadati : kad jūs piesakāties, mēs ierakstām IP adresi, no kuras piesakāties, kā arī jūsu pārlūkprogrammas lietojumprogrammas nosaukumu. Visas reģistrētās sesijas iestatījumos ir pieejamas pārskatīšanai un atsaukšanai. Pēdējā izmantotā IP adrese tiek glabāta līdz 12 mēnešiem. Mēs varam arī saglabāt servera žurnālus, kuros ir iekļauta katra mūsu serverim nosūtītā pieprasījuma IP adrese.
-
-
-
-
- Kam mēs izmantojam jūsu informāciju?
-
- Jebkuru informāciju, ko mēs apkopojam no jums, var izmantot šādos veidos:
-
-
- Lai nodrošinātu Mastodon pamatfunkcionalitāti. Jūs varat mijiedarboties ar citu cilvēku saturu un izlikt savu saturu tikai tad, kad esat pieteicies. Piemēram, varat sekot citām personām, lai skatītu viņu apvienotās ziņas savā personalizētajā mājas laika skalā.
- Lai palīdzētu regulēt kopienu, piemēram, salīdzinot jūsu IP adresi ar citām zināmām, lai noteiktu izvairīšanos no aizlieguma vai citus pārkāpumus.
- Jūsu norādītā e-pasta adrese var tikt izmantota, lai nosūtītu jums informāciju, paziņojumus par citām personām, kas mijiedarbojas ar jūsu saturu vai sūta jums ziņojumus, kā arī atbildētu uz jautājumiem un/vai citiem pieprasījumiem vai jautājumiem.
-
-
-
-
- Kā mēs aizsargājam jūsu informāciju?
-
- Mēs ieviešam dažādus drošības pasākumus, lai saglabātu jūsu personiskās informācijas drošību, kad ievadāt, iesniedzat vai piekļūstat savai personas informācijai. Cita starpā jūsu pārlūkprogrammas sesija, kā arī datplūsma starp jūsu lietojumprogrammām un API ir aizsargāta ar SSL, un jūsu parole tiek sajaukta, izmantojot spēcīgu vienvirziena algoritmu. Varat iespējot divu faktoru autentifikāciju, lai vēl vairāk aizsargātu piekļuvi savam kontam.
-
-
-
- Kāda ir mūsu datu saglabāšanas politika?
-
- Mēs godprātīgi centīsimies:
-
-
- Saglabājiet servera žurnālus, kuros ir visu šim serverim nosūtīto pieprasījumu IP adrese, ciktāl šādi žurnāli tiek glabāti, ne ilgāk kā 90 dienas.
- Saglabājiet ar reģistrētajiem lietotājiem saistītās IP adreses ne ilgāk kā 12 mēnešus.
-
-
- Varat pieprasīt un lejupielādēt sava satura arhīvu, tostarp ziņas, multivides pielikumus, profila attēlu un galvenes attēlu.
-
- Jūs jebkurā laikā varat neatgriezeniski dzēst savu kontu.
-
-
-
- Vai mēs izmantojam sīkfailus?
-
- Jā. Sīkfaili ir nelieli faili, ko vietne vai tās pakalpojumu sniedzējs pārsūta uz jūsu datora cieto disku, izmantojot jūsu tīmekļa pārlūkprogrammu (ja atļaujat). Šīs sīkdatnes ļauj vietnei atpazīt jūsu pārlūkprogrammu un, ja jums ir reģistrēts konts, saistīt to ar jūsu reģistrēto kontu.
-
- Mēs izmantojam sīkfailus, lai saprastu un saglabātu jūsu preferences turpmākiem apmeklējumiem.
-
-
-
- Vai mēs izpaužam kādu informāciju ārējām pusēm?
-
- Mēs nepārdodam, netirgojam vai citādi nesniedzam trešajām pusēm jūsu personu identificējošo informāciju. Tas neietver uzticamas trešās puses, kas palīdz mums darboties mūsu vietnē, veikt mūsu uzņēmējdarbību vai apkalpot jūs, ja vien šīs puses piekrīt saglabāt šīs informācijas konfidencialitāti. Mēs varam arī izpaust jūsu informāciju, ja uzskatām, ka tā ir piemērota, lai ievērotu likumus, īstenotu mūsu vietnes politikas vai aizsargātu mūsu vai citu tiesības, īpašumu vai drošību.
-
- Jūsu publisko saturu var lejupielādēt citi tīkla serveri. Jūsu publiskās un tikai sekotājiem paredzētās ziņas tiek piegādātas serveros, kur atrodas jūsu sekotāji, un tiešie ziņojumi tiek piegādāti adresātu serveriem, ja šie sekotāji vai adresāti atrodas citā serverī, nevis šajā.
-
- Kad jūs pilnvarojat lietojumprogrammu izmantot jūsu kontu, atkarībā no jūsu apstiprināto atļauju apjoma, tā var piekļūt jūsu publiskā profila informācijai, jūsu sekojošajam sarakstam, jūsu sekotājiem, jūsu sarakstiem, visām jūsu ziņām un jūsu izlasei. Lietojumprogrammas nekad nevar piekļūt jūsu e-pasta adresei vai parolei.
-
-
-
- Vietnes lietojums bērniem
-
- Ja šis serveris atrodas ES vai EEZ: mūsu vietne, produkti un pakalpojumi ir paredzēti personām, kuras ir vismaz 16 gadus vecas. Ja esat jaunāks par 16 gadiem, neizmantojiet šo vietni atbilstoši GDPR (Vispārīgās datu aizsardzības regulas ) prasībām..
-
- Ja šis serveris atrodas ASV: mūsu vietne, produkti un pakalpojumi ir paredzēti personām, kuras ir vismaz 13 gadus vecas. Ja esat jaunāks par 13 gadiem, saskaņā ar COPPA (Children's Online Privacy Protection Act ) prasībām neizmantojiet šajā vietnē.
-
- Tiesību prasības var atšķirties, ja šis serveris atrodas citā jurisdikcijā.
-
-
-
- Izmaiņas mūsu konfidencialitātes politikā
-
- Ja mēs nolemsim mainīt savu konfidencialitātes politiku, mēs publicēsim šīs izmaiņas šajā lapā.
-
- Šis dokuments ir CC-BY-SA. Pēdējo reizi tas tika atjaunināts 2022. gada 26. maijā.
-
- Sākotnēji adaptēts no Discourse konfidencialitātes politikas .
- title: "%{instance} Pakalpojuma Noteikumi un Privātuma Politika"
themes:
contrast: Mastodon (Augsts kontrasts)
default: Mastodon (Tumšs)
@@ -1713,20 +1632,13 @@ lv:
suspend: Konts apturēts
welcome:
edit_profile_action: Iestatīt profilu
- edit_profile_step: Vari pielāgot savu profilu, augšupielādējot avataru, galveni, mainot parādāmo vārdu un daudz ko citu. Ja vēlies pārskatīt jaunus sekotājus, pirms viņiem ir atļauts tev sekot, tu vari bloķēt savu kontu.
+ edit_profile_step: Tu vari pielāgot savu profilu, augšupielādējot profila attēlu, mainot parādāmo vārdu un citas lietas. Vari izvēlēties pārskatīt jaunus sekotājus, pirms atļauj viņiem tev sekot.
explanation: Šeit ir daži padomi, kā sākt darbu
final_action: Sāc publicēt
- final_step: 'Sāc publicēt! Pat bez sekotājiem tavas publiskās ziņas var redzēt citi, piemēram, vietējā ziņu lentā un atsaucēs. Iespējams, tu vēlēsies iepazīstināt ar sevi, izmantojot tēmturi #introductions.'
+ final_step: 'Sāc publicēt! Pat bez sekotājiem tavas publiskās ziņas var redzēt citi, piemēram, vietējā ziņu lentā vai atsaucēs. Iespējams, tu vēlēsies iepazīstināt ar sevi, izmantojot tēmturi #introductions.'
full_handle: Tavs pilnais rokturis
full_handle_hint: Šis ir tas, ko tu pasaki saviem draugiem, lai viņi varētu tev ziņot vai sekot tev no cita servera.
- review_preferences_action: Mainīt preferences
- review_preferences_step: Noteikti iestati savas preferences, piemēram, kādus e-pasta ziņojumus vēlies saņemt vai kādu konfidencialitātes līmeni vēlies iestatīt savām ziņām pēc noklusējuma. Ja tev nav kustību slimības, vari izvēlēties iespējot GIF automātisko atskaņošanu.
subject: Laipni lūgts Mastodon
- tip_federated_timeline: Apvienotā ziņu lenta ir skats caur ugunsdzēsības šļūteni uz Mastodon tīklu. Bet tajā ir iekļauti tikai tie cilvēki, kurus abonē tavi kaimiņi, tāpēc tas nav pilnīgs.
- tip_following: Pēc noklusējuma tu seko sava servera administratoram(-iem). Lai atrastu vairāk interesantu cilvēku, pārbaudi vietējās un federālās ziņu lentas.
- tip_local_timeline: Vietējā ziņu lenta ir skats caur ugunsdzēsības šļūteni uz %{instance}. Tie ir tavi tuvākie kaimiņi!
- tip_mobile_webapp: Ja tava mobilā pārlūkprogramma piedāvā pievienot Mastodon sākuma ekrānam, vari saņemt push paziņojumus. Daudzējādi tā darbojas kā vietējā lietotne!
- tips: Padomi
title: Laipni lūgts uz borta, %{name}!
users:
follow_limit_reached: Tu nevari sekot vairāk par %{limit} cilvēkiem
diff --git a/config/locales/ml.yml b/config/locales/ml.yml
index daee6098c5..d5442c96cb 100644
--- a/config/locales/ml.yml
+++ b/config/locales/ml.yml
@@ -1,45 +1,15 @@
---
ml:
about:
- about_this: കുറിച്ച്
- api: എപിഐ
- apps: മൊബൈൽ ആപ്പുകൾ
- contact: ബന്ധപ്പെടുക
contact_missing: സജ്ജമാക്കിയിട്ടില്ല
contact_unavailable: ലഭ്യമല്ല
- discover_users: ഉപയോഗ്താക്കളെ കണ്ടെത്തുക
- documentation: വിവരണം
- get_apps: മൊബൈൽ ആപ്പ് പരീക്ഷിക്കുക
- learn_more: കൂടുതൽ പഠിക്കുക
- privacy_policy: സ്വകാര്യതാ നയം
- see_whats_happening: എന്തൊക്കെ സംഭവിക്കുന്നു എന്ന് കാണുക
- source_code: സോഴ്സ് കോഡ്
- status_count_before: ആരാൽ എഴുതപ്പെട്ടു
- tagline: സുഹൃത്തുക്കളെ പിന്തുടരുകയും പുതിയവരെ കണ്ടെത്തുകയും ചെയ്യുക
- terms: സേവന വ്യവസ്ഥകൾ
- unavailable_content: ലഭ്യമല്ലാത്ത ഉള്ളടക്കം
- unavailable_content_description:
- domain: സെർവർ
- reason: കാരണം
- suspended_title: താൽക്കാലികമായി നിർത്തിവെച്ച സെർവറുകൾ
- what_is_mastodon: എന്താണ് മാസ്റ്റഡോൺ?
accounts:
follow: പിന്തുടരുക
following: പിന്തുടരുന്നു
- joined: "%{date} ൽ ചേർന്നു"
last_active: അവസാനം സജീവമായിരുന്നത്
link_verified_on: സന്ധിയുടെ ഉടമസ്ഥാവസ്കാശം %{date} ൽ പരിശോധിക്കപ്പെട്ടു
- media: മാധ്യമങ്ങൾ
- moved_html: "%{name}, %{new_profile_link} ലേക്ക് നീങ്ങിയിരിക്കുന്നു:"
- network_hidden: ഈ വിവരം ലഭ്യമല്ല
nothing_here: ഇവിടെ ഒന്നുമില്ല!
posts_tab_heading: ടൂട്ടുകൾ
- posts_with_replies: ടൂട്ടുകളും മറുപടികളും
- roles:
- admin: അഡ്മിന്
- bot: ബോട്ട്
- group: ഗ്രൂപ്പ്
- unavailable: പ്രൊഫൈൽ ലഭ്യമല്ല
admin:
accounts:
add_email_domain_block: ഇ-മെയിൽ ഡൊമെയ്ൻ തടയുക
@@ -48,7 +18,6 @@ ml:
avatar: അവതാർ
by_domain: മേഖല
change_email:
- changed_msg: അംഗത്തിന്റെ ഇലക്ട്രോണിക് കത്തിന്റെ മേൽവിലാസം വിജയകരമായി മാറ്റിയിരിക്കുന്നു!
current_email: ഇപ്പോഴത്തെ ഇലക്ട്രോണിക് കത്തിന്റെ മേൽവിലാസം
label: മാറിയ ഇലക്ട്രോണിക് കത്തിന്റെ മേൽവിലാസം
new_email: പുതിയ ഇലക്ട്രോണിക് കത്ത്
@@ -84,9 +53,6 @@ ml:
success: സ്ഥിരീകരണ ഇമെയിൽ വിജയകരമായി അയച്ചു!
reset: പുനഃക്രമീകരിക്കുക
reset_password: പാസ്വേഡ് പുനഃക്രമീകരിക്കുക
- role: അനുമതികൾ
- roles:
- user: ഉപയോക്താവ്
search: തിരയുക
title: അക്കൗണ്ടുകൾ
unconfirmed_email: സ്ഥിരീകരിക്കാത്ത ഇമെയിൽ
@@ -115,8 +81,6 @@ ml:
all: എല്ലാം
authorize_follow:
following: 'വിജയകരം! നിങ്ങൾ ഇപ്പോൾ പിന്തുടരുന്നു:'
- directories:
- directory: പ്രൊഫൈൽ ഡയറക്ടറി
errors:
'400': The request you submitted was invalid or malformed.
'403': You don't have permission to view this page.
@@ -133,8 +97,6 @@ ml:
generic:
all: എല്ലാം
notification_mailer:
- digest:
- action: എല്ലാ അറിയിപ്പുകളും കാണിക്കുക
follow:
body: "%{name} ഇപ്പോൾ നിങ്ങളെ പിന്തുടരുന്നു!"
subject: "%{name} ഇപ്പോൾ നിങ്ങളെ പിന്തുടരുന്നു"
diff --git a/config/locales/ms.yml b/config/locales/ms.yml
index 4e101a890d..1fc61b4623 100644
--- a/config/locales/ms.yml
+++ b/config/locales/ms.yml
@@ -1,87 +1,24 @@
---
ms:
about:
- about_hashtag_html: Ini semua hantaran awam yang ditandakan dengan #%{hashtag} . Anda boleh berinteraksi dengan mereka jika anda mempunyai akaun di mana-mana dunia persekutuan.
about_mastodon_html: 'Rangkaian sosial masa hadapan: Tiada iklan, tiada pengawasan korporat, reka bentuk beretika, dan desentralisasi! Miliki data anda dengan Mastodon!'
- about_this: Perihal
- active_count_after: aktif
- active_footnote: Pengguna Aktif Bulanan (MAU)
- administered_by: 'Ditadbir oleh:'
- api: API
- apps: Aplikasi mudah alih
- apps_platforms: Guna Mastodon daripada iOS, Android dan platform yang lain
- browse_directory: Layari direktori profil dan tapis mengikut minat
- browse_local_posts: Layari strim langsung hantaran awam daripada pelayan ini
- browse_public_posts: Layari strim langsung hantaran awam di Mastodon
- contact: Hubungi kami
contact_missing: Tidak ditetapkan
contact_unavailable: Tidak tersedia
- discover_users: Terokai pengguna
- documentation: Pendokumenan
- federation_hint_html: Dengan akaun di %{instance} anda akan mampu mengikuti orang di mana-mana pelayan Mastodon dan lebih lagi.
- get_apps: Cuba aplikasi mudah alih
hosted_on: Mastodon dihoskan di %{domain}
- instance_actor_flash: |
- Akaun ini ialah pelaku maya yang digunakan untuk mewakili pelayan itu sendiri dan bukannya mana-mana pengguna individu.
- Ia digunakan untuk tujuan persekutuan dan tidak patut disekat melainkan anda ingin menyekat keseluruhan tika, yang mana anda sepatutnya gunakan sekatan domain.
- learn_more: Ketahui lebih lanjut
- privacy_policy: Polisi privasi
- rules: Peraturan pelayan
- rules_html: 'Di bawah ini ringkasan peraturan yang anda perlu ikuti jika anda ingin mempunyai akaun di pelayan Mastodon yang ini:'
- see_whats_happening: Lihat apa yang sedang berlaku
- server_stats: 'Statistik pelayan:'
- source_code: Kod sumber
- status_count_after:
- other: hantaran
- status_count_before: Siapa terbitkan
- tagline: Ikuti rakan lama dan terokai rakan baharu
- terms: Terma perkhidmatan
- unavailable_content: Pelayan disederhanakan
- unavailable_content_description:
- domain: Pelayan
- reason: Sebab
- rejecting_media: 'Fail-fail media daripada pelayan-pelayan ini tidak akan diproses atau disimpan, dan tiada gambar kecil yang akan dipaparkan, memerlukan anda untuk klik fail asal:'
- rejecting_media_title: Media ditapis
- silenced: 'Hantaran daripada pelayan-pelayan ini akan disembunyikan di garis masa dan perbualan awam, dan tiada pemberitahuan yang akan dijana daripada interaksi pengguna mereka, melainkan anda mengikuti mereka:'
- silenced_title: Pelayan didiamkan
- suspended: 'Tiada data daripada pelayan-pelayan ini yang akan diproses, disimpan atau ditukar, membuatkan sebarang interaksi atau perhubungan dengan pengguna daripada pelayan-pelayan ini menjadi mustahil:'
- suspended_title: Pelayan digantung
- unavailable_content_html: Mastodon secara amnya membenarkan anda melihat kandungan daripada dan berinteraksi dengan pengguna daripada mana-mana pelayan dalam dunia persekutuan. Ini pengecualian yang telah dilakukan di pelayan ini secara khususnya.
- user_count_after:
- other: pengguna
- user_count_before: Rumah bagi
- what_is_mastodon: Apakah itu Mastodon?
accounts:
- choices_html: 'Pilihan %{name}:'
- endorsements_hint: Anda boleh syorkan orang yang anda ikuti menggunakan antara muka sesawang, dan mereka akan ditunjukkan di sini.
- featured_tags_hint: Anda boleh mempromosikan tanda pagar khusus yang akan dipaparkan di sini.
follow: Ikut
followers:
other: Pengikut
following: Mengikuti
instance_actor_flash: Akaun ini ialah pelaku maya yang digunakan untuk mewakili pelayan itu sendiri dan bukan mana-mana pengguna individu. Ia digunakan untuk tujuan persekutuan dan tidak patut digantung.
- joined: Sertai pada %{date}
last_active: aktif terakhir
link_verified_on: Pemilikan pautan ini diperiksa pada %{date}
- media: Media
- moved_html: "%{name} telah berpindah ke %{new_profile_link}:"
- network_hidden: Maklumat ini tidak tersedia
nothing_here: Tiada apa-apa di sini!
- people_followed_by: Orang yang %{name} ikuti
- people_who_follow: Orang yang mengikut %{name}
pin_errors:
following: Anda mestilah sudah mengikuti orang yang anda ingin syorkan
posts:
other: Hantaran
posts_tab_heading: Hantaran
- posts_with_replies: Hantaran dan balasan
- roles:
- admin: Pentadbir
- bot: Bot
- group: Kumpulan
- moderator: Penyederhana
- unavailable: Profil tidak tersedia
- unfollow: Nyahikut
admin:
account_actions:
action: Ambil tindakan
@@ -98,7 +35,6 @@ ms:
avatar: Avatar
by_domain: Domain
change_email:
- changed_msg: E-mel akaun telah berjaya ditukar!
current_email: E-mel semasa
label: Ubah e-mel
new_email: E-mel baharu
@@ -173,12 +109,6 @@ ms:
reset: Tetapkan semula
reset_password: Tetapkan semula kata laluan
resubscribe: Langgan semula
- role: Kebenaran
- roles:
- admin: Pentadbir
- moderator: Penyederhana
- staff: Kakitangan
- user: Pengguna
search: Cari
search_same_email_domain: Pengguna lain dengan domain e-mel yang sama
search_same_ip: Pengguna lain dengan alamat IP yang sama
@@ -266,7 +196,6 @@ ms:
create_unavailable_domain_html: "%{name} telah menghentikan penghantaran ke domain %{target}"
demote_user_html: "%{name} telah menurunkan taraf pengguna %{target}"
destroy_announcement_html: "%{name} telah memadamkan pengumuman %{target}"
- destroy_custom_emoji_html: "%{name} telah memusnahkan emoji %{target}"
destroy_domain_allow_html: "%{name} telah membuang kebenaran persekutuan dengan domain %{target}"
destroy_domain_block_html: "%{name} telah menyahsekat domain %{target}"
destroy_email_domain_block_html: "%{name} telah menyahsekat domain e-mel %{target}"
@@ -295,7 +224,6 @@ ms:
update_custom_emoji_html: "%{name} telah mengemaskini emoji %{target}"
update_domain_block_html: "%{name} telah mengemaskini penyekatan domain untuk %{target}"
update_status_html: "%{name} telah mengemaskini hantaran oleh %{target}"
- deleted_status: "(hantaran telah dipadam)"
empty: Tiada log dijumpai.
filter_by_action: Tapis mengikut tindakan
filter_by_user: Tapis mengikut pengguna
@@ -515,33 +443,11 @@ ms:
empty: Masih belum ada peraturan pelayan yang ditakrifkan.
title: Peraturan pelayan
settings:
- peers_api_enabled:
- title: Terbitkan senarai pelayan ditemukan dalam aplikasi
- preview_sensitive_media:
- desc_html: Pratonton laman sesawang daripada pautan akan terpapar di gambar kecil meski jika media itu ditanda sebagai sensitif
- title: Papar media sensitif di pratonton OpenGraph
- profile_directory:
- desc_html: Benarkan pengguna untuk ditemukan
- title: Benarkan direktori profil
- registrations:
- closed_message:
- desc_html: Dipaparkan di muka depan apabil pendaftaran ditutup. Anda boleh menggunakan penanda HTML
- title: Mesej pendaftaran telah ditutup
- deletion:
- desc_html: Benarkan sesiapapun memadamkan akaun mereka
- title: Buka pemadaman akaun
- min_invite_role:
- disabled: Tiada sesiapa
- title: Benarkan jemputan dari
- require_invite_text:
- desc_html: Apabila pendaftaran memerlukan kelulusan manual, tandakan input teks "Kenapa anda mahu menyertai?" sebagai wajib, bukan pilihan
- title: Memerlukan alasan bagi pengguna baru untuk menyertai
registrations_mode:
modes:
approved: Kelulusan diperlukan untuk pendaftaran
none: Tiada siapa boleh mendaftar
open: Sesiapapun boleh mendaftar
- title: Mod pendaftaran
errors:
'400': The request you submitted was invalid or malformed.
'403': You don't have permission to view this page.
@@ -555,8 +461,5 @@ ms:
exports:
archive_takeout:
in_progress: Mengkompil arkib anda...
- notification_mailer:
- digest:
- title: Ketika anda tiada di sini...
users:
follow_limit_reached: Anda tidak boleh mengikut lebih daripada %{limit} orang
diff --git a/config/locales/nl.yml b/config/locales/nl.yml
index 764ae42d69..fcc777af23 100644
--- a/config/locales/nl.yml
+++ b/config/locales/nl.yml
@@ -1,92 +1,27 @@
---
nl:
about:
- about_hashtag_html: Dit zijn openbare berichten die getagged zijn met #%{hashtag} . Je kunt er op reageren of iets anders mee doen als je op Mastodon (of ergens anders in de fediverse) een account hebt.
about_mastodon_html: Mastodon is een sociaal netwerk dat gebruikt maakt van open webprotocollen en vrije software. Het is net zoals e-mail gedecentraliseerd.
- about_this: Over deze server
- active_count_after: actief
- active_footnote: Actieve gebruikers per maand (MAU)
- administered_by: 'Beheerd door:'
- api: API
- apps: Mobiele apps
- apps_platforms: Gebruik Mastodon op iOS, Android en op andere platformen
- browse_directory: Gebruikersgids doorbladeren en op interesses filteren
- browse_local_posts: Livestream van openbare berichten op deze server bekijken
- browse_public_posts: Livestream van openbare Mastodonberichten bekijken
- contact: Contact
contact_missing: Niet ingesteld
contact_unavailable: n.v.t
- continue_to_web: Doorgaan in de web-app
- discover_users: Gebruikers ontdekken
- documentation: Documentatie
- federation_hint_html: Met een account op %{instance} ben je in staat om mensen die zich op andere Mastodonservers (en op andere plekken) bevinden te volgen.
- get_apps: Mobiele apps
hosted_on: Mastodon op %{domain}
- instance_actor_flash: "Dit account is een virtuel actor dat wordt gebruikt om de server zelf te vertegenwoordigen en is geen individuele gebruiker. Het wordt voor federatiedoeleinden gebruikt en moet niet worden geblokkeerd, tenzij je de hele server wilt blokkeren. In zo'n geval dien je echter een domeinblokkade te gebruiken. \n"
- learn_more: Meer leren
- logged_in_as_html: Je bent momenteel ingelogd als %{username}.
- logout_before_registering: Je bent al ingelogd.
- privacy_policy: Privacybeleid
- rules: Serverregels
- rules_html: 'Hieronder vind je een samenvatting van de regels die je op deze Mastodon-server moet opvolgen:'
- see_whats_happening: Kijk wat er aan de hand is
- server_stats: 'Serverstatistieken:'
- source_code: Broncode
- status_count_after:
- one: toot
- other: berichten
- status_count_before: Zij schreven
- tagline: Vrienden volgen en nieuwe ontdekken
- terms: Gebruiksvoorwaarden
- unavailable_content: Gemodereerde servers
- unavailable_content_description:
- domain: Server
- reason: 'Reden:'
- rejecting_media: 'Mediabestanden van deze server worden niet verwerkt en er worden geen thumbnails getoond. Je moet handmatig naar deze server doorklikken om de mediabestanden te kunnen bekijken:'
- rejecting_media_title: Mediabestanden geweigerd
- silenced: Berichten van deze server worden nergens weergegeven, behalve op jouw eigen starttijdlijn wanneer je het account volgt.
- silenced_title: Beperkte servers
- suspended: Je bent niet in staat om iemand van deze server te volgen, en er worden geen gegevens van deze server verwerkt of opgeslagen, en met deze server uitgewisseld.
- suspended_title: Opgeschorte servers
- unavailable_content_html: Met Mastodon kun je in het algemeen berichten bekijken van en communiceren met gebruikers van elke andere server in de fediverse. Dit zijn de uitzonderingen die door deze server zijn gemaakt en expliciet alleen hier gelden.
- user_count_after:
- one: gebruiker
- other: gebruikers
- user_count_before: Thuisbasis van
- what_is_mastodon: Wat is Mastodon?
+ title: Over
accounts:
- choices_html: 'Aanbevelingen van %{name}:'
- endorsements_hint: Je kunt mensen die je volgt in de webomgeving aanbevelen, waarna ze dan hier zullen verschijnen.
- featured_tags_hint: Je kunt specifieke hashtags uitlichten, waarna ze dan hier zullen verschijnen.
follow: Volgen
followers:
one: Volger
other: Volgers
following: Volgend
instance_actor_flash: Dit account is een 'virtual actor' waarmee de server zichzelf vertegenwoordigd en is dus geen individuele gebruiker. Het wordt voor federatiedoeleinden gebruikt en moet niet worden opgeschort.
- joined: Geregistreerd in %{date}
last_active: laatst actief
link_verified_on: Eigendom van deze link is gecontroleerd op %{date}
- media: Media
- moved_html: "%{name} is verhuisd naar %{new_profile_link}:"
- network_hidden: Deze informatie is niet beschikbaar
nothing_here: Hier is niets!
- people_followed_by: Mensen die %{name} volgen
- people_who_follow: Mensen die %{name} volgen
pin_errors:
- following: Je moet dit account wel al volgen, alvorens je het kan aanbevelen
+ following: Je moet dit account wel al volgen, alvorens je het kunt aanbevelen
posts:
one: Toot
other: Berichten
posts_tab_heading: Berichten
- posts_with_replies: Berichten en reacties
- roles:
- admin: Beheerder
- bot: Bot
- group: Groep
- moderator: Moderator
- unavailable: Profiel niet beschikbaar
- unfollow: Ontvolgen
admin:
account_actions:
action: Actie uitvoeren
@@ -98,17 +33,22 @@ nl:
accounts:
add_email_domain_block: E-maildomein blokkeren
approve: Goedkeuren
- approved_msg: Het goedkeuren van het registratieverzoek van %{username} is geslaagd
+ approved_msg: Het goedkeuren van het account van %{username} is geslaagd
are_you_sure: Weet je het zeker?
avatar: Avatar
by_domain: Domein
change_email:
- changed_msg: E-mailadres van account succesvol veranderd!
+ changed_msg: E-mailadres succesvol veranderd!
current_email: Huidig e-mailadres
label: E-mailadres wijzigen
new_email: Nieuw e-mailadres
submit: E-mailadres veranderen
title: E-mailadres wijzigen voor %{username}
+ change_role:
+ changed_msg: Rol succesvol veranderd!
+ label: Rol veranderen
+ no_role: Geen rol
+ title: Rol van %{username} veranderen
confirm: Bevestigen
confirmed: Bevestigd
confirming: Bevestiging
@@ -135,7 +75,7 @@ nl:
invite_request_text: Redenen om te registreren
invited_by: Uitgenodigd door
ip: IP
- joined: Geregistreerd in
+ joined: Geregistreerd
location:
all: Alles
local: Lokaal
@@ -150,6 +90,7 @@ nl:
active: Actief
all: Alles
pending: In afwachting
+ silenced: Beperkt
suspended: Opgeschort
title: Moderatie
moderation_notes: Opmerkingen voor moderatoren
@@ -157,20 +98,21 @@ nl:
most_recent_ip: Laatst gebruikt IP-adres
no_account_selected: Er zijn geen accounts veranderd, omdat er geen een was geselecteerd
no_limits_imposed: Geen limieten ingesteld
+ no_role_assigned: Geen rol toegewezen
not_subscribed: Niet geabonneerd
pending: Moet nog beoordeeld worden
perform_full_suspension: Opschorten
- previous_strikes: Vorige overtredingen
+ previous_strikes: Eerdere overtredingen
previous_strikes_description_html:
- one: Dit account heeft één overtreding.
- other: Dit account heeft %{count} overtredingen.
+ one: Dit account heeft één overtreding gemaakt.
+ other: Dit account heeft %{count} overtredingen gemaakt.
promote: Promoveren
protocol: Protocol
public: Openbaar
push_subscription_expires: PuSH-abonnement verloopt op
redownload: Profiel vernieuwen
redownloaded_msg: Het herstellen van het oorspronkelijke profiel van %{username} is geslaagd
- reject: Afkeuren
+ reject: Afwijzen
rejected_msg: Het afwijzen van het registratieverzoek van %{username} is geslaagd
remove_avatar: Avatar verwijderen
remove_header: Omslagfoto verwijderen
@@ -183,15 +125,13 @@ nl:
reset: Opnieuw
reset_password: Wachtwoord opnieuw instellen
resubscribe: Opnieuw abonneren
- role: Bevoegdheden
- roles:
- admin: Beheerder
- moderator: Moderator
- staff: Medewerkers
- user: Gebruiker
+ role: Rol
search: Zoeken
search_same_email_domain: Andere gebruikers met hetzelfde e-maildomein
search_same_ip: Andere gebruikers met hetzelfde IP-adres
+ security_measures:
+ only_password: Alleen wachtwoord
+ password_and_2fa: Wachtwoord en tweestapsverificatie
sensitive: Gevoelig forceren
sensitized: als gevoelig gemarkeerd
shared_inbox_url: Gedeelde inbox-URL
@@ -201,11 +141,15 @@ nl:
silence: Beperken
silenced: Beperkt
statuses: Berichten
+ strikes: Eerdere overtredingen
subscribe: Abonneren
+ suspend: Opschorten
suspended: Opgeschort
suspension_irreversible: De gegevens van dit account zijn onomkeerbaar verwijderd. Je kunt het opschorten van dit account ongedaan maken zodat het weer valt te gebruiken, maar de verwijderde gegevens worden hiermee niet hersteld.
suspension_reversible_hint_html: Dit account is opgeschort en de gegevens worden volledig verwijderd op %{date}. Tot die tijd kan dit account worden hersteld zonder nadelige gevolgen. Wanneer je alle gegevens van dit account onmiddellijk wilt verwijderen, kun je dit hieronder doen.
title: Accounts
+ unblock_email: E-mailadres deblokkeren
+ unblocked_email_msg: Het e-mailadres van %{username} is gedeblokkeerd
unconfirmed_email: Onbevestigd e-mailadres
undo_sensitized: Niet meer als gevoelig forceren
undo_silenced: Niet langer beperken
@@ -220,26 +164,34 @@ nl:
whitelisted: Goedgekeurd voor federatie
action_logs:
action_types:
+ approve_appeal: Bezwaar goedkeuren
+ approve_user: Gebruiker goedkeuren
assigned_to_self_report: Rapportage toewijzen
change_email_user: E-mailadres van gebruiker wijzigen
+ change_role_user: Gebruikersrol wijzigen
confirm_user: Gebruiker bevestigen
create_account_warning: Waarschuwing aanmaken
create_announcement: Mededeling aanmaken
+ create_canonical_email_block: E-mailblokkade aanmaken
create_custom_emoji: Lokale emoji aanmaken
create_domain_allow: Domeingoedkeuring aanmaken
create_domain_block: Domeinblokkade aanmaken
create_email_domain_block: E-maildomeinblokkade aanmaken
create_ip_block: IP-regel aanmaken
create_unavailable_domain: Niet beschikbaar domein aanmaken
+ create_user_role: Rol aanmaken
demote_user: Gebruiker degraderen
destroy_announcement: Mededeling verwijderen
+ destroy_canonical_email_block: E-mailblokkade verwijderen
destroy_custom_emoji: Lokale emoji verwijderen
destroy_domain_allow: Domeingoedkeuring verwijderen
destroy_domain_block: Domeinblokkade verwijderen
destroy_email_domain_block: Blokkade van e-maildomein verwijderen
+ destroy_instance: Domein volledig verwijderen
destroy_ip_block: IP-regel verwijderen
destroy_status: Toot verwijderen
destroy_unavailable_domain: Niet beschikbaar domein verwijderen
+ destroy_user_role: Rol permanent verwijderen
disable_2fa_user: Tweestapsverificatie uitschakelen
disable_custom_emoji: Lokale emojij uitschakelen
disable_user: Gebruiker uitschakelen
@@ -247,6 +199,8 @@ nl:
enable_user: Gebruiker inschakelen
memorialize_account: Het account in een In memoriam veranderen
promote_user: Gebruiker promoveren
+ reject_appeal: Bezwaar afwijzen
+ reject_user: Gebruiker afwijzen
remove_avatar_user: Avatar verwijderen
reopen_report: Rapportage heropenen
reset_password_user: Wachtwoord opnieuw instellen
@@ -255,34 +209,45 @@ nl:
silence_account: Account beperken
suspend_account: Account opschorten
unassigned_report: Rapportage niet langer toewijzen
+ unblock_email_account: E-mailadres deblokkeren
unsensitive_account: De media in jouw account niet langer als gevoelig markeren
unsilence_account: Account niet langer beperken
unsuspend_account: Account niet langer opschorten
update_announcement: Mededeling bijwerken
update_custom_emoji: Lokale emoji bijwerken
update_domain_block: Domeinblokkade bijwerken
+ update_ip_block: IP-regel bijwerken
update_status: Bericht bijwerken
+ update_user_role: Rol bijwerken
actions:
+ approve_appeal_html: "%{name} heeft het bezwaar tegen de moderatie-actie van %{target} goedgekeurd"
+ approve_user_html: "%{name} heeft het account van %{target} goedgekeurd"
assigned_to_self_report_html: "%{name} heeft rapportage %{target} aan zichzelf toegewezen"
change_email_user_html: "%{name} veranderde het e-mailadres van gebruiker %{target}"
+ change_role_user_html: "%{name} wijzigde de rol van %{target}"
confirm_user_html: E-mailadres van gebruiker %{target} is door %{name} bevestigd
create_account_warning_html: "%{name} verzond een waarschuwing naar %{target}"
create_announcement_html: "%{name} heeft de nieuwe mededeling %{target} aangemaakt"
+ create_canonical_email_block_html: "%{name} blokkeerde e-mail met de hash %{target}"
create_custom_emoji_html: Nieuwe emoji %{target} is door %{name} geüpload
create_domain_allow_html: "%{name} heeft de federatie met het domein %{target} goedgekeurd"
create_domain_block_html: Domein %{target} is door %{name} geblokkeerd
create_email_domain_block_html: "%{name} heeft het e-maildomein %{target} geblokkeerd"
create_ip_block_html: "%{name} maakte regel aan voor IP %{target}"
create_unavailable_domain_html: "%{name} heeft de bezorging voor domein %{target} beëindigd"
+ create_user_role_html: "%{name} maakte de rol %{target} aan"
demote_user_html: Gebruiker %{target} is door %{name} gedegradeerd
destroy_announcement_html: "%{name} heeft de mededeling %{target} verwijderd"
- destroy_custom_emoji_html: "%{name} verwijderde emoji %{target}"
+ destroy_canonical_email_block_html: "%{name} deblokkeerde e-mail met de hash %{target}"
+ destroy_custom_emoji_html: "%{name} verwijderde de emoji %{target}"
destroy_domain_allow_html: "%{name} heeft de federatie met het domein %{target} afgekeurd"
destroy_domain_block_html: Domein %{target} is door %{name} gedeblokkeerd
destroy_email_domain_block_html: "%{name} heeft het e-maildomein %{target} gedeblokkeerd"
+ destroy_instance_html: "%{name} verwijderde het domein %{target} volledig"
destroy_ip_block_html: "%{name} verwijderde regel voor IP %{target}"
destroy_status_html: Bericht van %{target} is door %{name} verwijderd
destroy_unavailable_domain_html: "%{name} heeft de bezorging voor domein %{target} hervat"
+ destroy_user_role_html: "%{name} verwijderde de rol %{target}"
disable_2fa_user_html: De vereiste tweestapsverificatie voor %{target} is door %{name} uitgeschakeld
disable_custom_emoji_html: Emoji %{target} is door %{name} uitgeschakeld
disable_user_html: Inloggen voor %{target} is door %{name} uitgeschakeld
@@ -290,6 +255,8 @@ nl:
enable_user_html: Inloggen voor %{target} is door %{name} ingeschakeld
memorialize_account_html: Het account %{target} is door %{name} in een In memoriam veranderd
promote_user_html: Gebruiker %{target} is door %{name} gepromoveerd
+ reject_appeal_html: "%{name} heeft het bezwaar tegen de moderatie-actie van %{target} afgewezen"
+ reject_user_html: "%{name} heeft de registratie van %{target} afgewezen"
remove_avatar_user_html: "%{name} verwijderde de avatar van %{target}"
reopen_report_html: "%{name} heeft rapportage %{target} heropend"
reset_password_user_html: Wachtwoord van gebruiker %{target} is door %{name} opnieuw ingesteld
@@ -304,8 +271,9 @@ nl:
update_announcement_html: "%{name} heeft de mededeling %{target} bijgewerkt"
update_custom_emoji_html: Emoji %{target} is door %{name} bijgewerkt
update_domain_block_html: "%{name} heeft de domeinblokkade bijgewerkt voor %{target}"
+ update_ip_block_html: "%{name} wijzigde de IP-regel voor %{target}"
update_status_html: "%{name} heeft de berichten van %{target} bijgewerkt"
- deleted_status: "(verwijderd bericht}"
+ update_user_role_html: "%{name} wijzigde de rol %{target}"
empty: Geen logs gevonden.
filter_by_action: Op actie filteren
filter_by_user: Op gebruiker filteren
@@ -344,10 +312,12 @@ nl:
enable: Inschakelen
enabled: Ingeschakeld
enabled_msg: Inschakelen van deze emoji geslaagd
+ image_hint: PNG of GIF niet groter dan %{size}
list: In lijst
listed: Weergegeven
new:
title: Lokale emoji toevoegen
+ no_emoji_selected: Er werden geen emoji's gewijzigd, omdat er geen enkele werd geselecteerd
not_permitted: Het hebt geen rechten om deze actie uit te voeren
overwrite: Overschrijven
shortcode: Verkorte code
@@ -360,9 +330,35 @@ nl:
updated_msg: Bijwerken van emoji is geslaagd!
upload: Uploaden
dashboard:
+ active_users: actieve gebruikers
+ interactions: interacties
+ media_storage: Opgeslagen mediabestanden
+ new_users: nieuwe gebruikers
+ opened_reports: aangemaakte rapportages
+ pending_appeals_html:
+ one: "%{count} bezwaar te beoordelen"
+ other: "%{count} bezwaren te beoordelen"
+ pending_reports_html:
+ one: "%{count} openstaande rapportage"
+ other: "%{count} openstaande rapportages"
+ pending_tags_html:
+ one: "%{count} hashtag te beoordelen"
+ other: "%{count} hashtags te beoordelen"
+ pending_users_html:
+ one: "%{count} nieuwe gebruiker te beoordelen"
+ other: "%{count} nieuwe gebruikers te beoordelen"
+ resolved_reports: opgeloste rapportages
software: Software
+ sources: Locatie van registratie
space: Ruimtegebruik
title: Dashboard
+ top_languages: Meest actieve talen
+ top_servers: Meest actieve servers
+ website: Website
+ disputes:
+ appeals:
+ empty: Geen bezwaren gevonden.
+ title: Bezwaren
domain_allows:
add_new: Federatie met domein goedkeuren
created_msg: Federatie met domein is succesvol goedgekeurd
@@ -398,12 +394,21 @@ nl:
view: Domeinblokkade bekijken
email_domain_blocks:
add_new: Nieuwe toevoegen
+ attempts_over_week:
+ one: "%{count} registratiepoging tijdens de afgelopen week"
+ other: "%{count} registratiepogingen tijdens de afgelopen week"
created_msg: Blokkeren e-maildomein geslaagd
delete: Verwijderen
+ dns:
+ types:
+ mx: MX-record
domain: Domein
new:
create: Blokkeren
+ resolve: Domein opzoeken
title: Nieuw e-maildomein blokkeren
+ resolved_dns_records_hint_html: De domeinnaam slaat op de volgende MX-domeinen die uiteindelijk verantwoordelijk zijn voor het accepteren van e-mail. Het blokkeren van een MX-domein blokkeert aanmeldingen van elk e-mailadres dat hetzelfde MX-domein gebruikt, zelfs als de zichtbare domeinnaam anders is. Pas op dat u geen grote e-mailproviders blokkeert.
+ resolved_through_html: Geblokkeerd via %{domain}
title: Geblokkeerde e-maildomeinen
follow_recommendations:
description_html: "Deze aanbevolen accounts helpen nieuwe gebruikers snel interessante inhoud te vinden. Wanneer een gebruiker niet met andere gebruikers genoeg interactie heeft gehad om gepersonaliseerde aanbevelingen te krijgen, worden in plaats daarvan deze accounts aanbevolen. Deze accounts worden dagelijks opnieuw berekend met behulp van accounts met het hoogste aantal recente interacties en het hoogste aantal lokale volgers in een bepaalde taal."
@@ -414,13 +419,38 @@ nl:
title: Aanbevolen accounts
unsuppress: Account weer aanbevelen
instances:
+ availability:
+ no_failures_recorded: Geen storingen bekend.
+ title: Beschikbaarheid
+ warning: De laatste poging om met deze server te verbinden was onsuccesvol
back_to_all: Alles
back_to_limited: Beperkt
back_to_warning: Waarschuwing
by_domain: Domein
+ content_policies:
+ comment: Interne reden
+ description_html: Je kunt het beleid bepalen dat op de accounts van dit domein en alle subdomeinen van toepassing is.
+ policies:
+ reject_media: Mediabestanden weigeren
+ reject_reports: Rapportages weigeren
+ silence: Beperkt
+ suspend: Opgeschort
+ policy: Zwaarte
+ reason: Publieke reden
+ title: Beleid
+ dashboard:
+ instance_accounts_dimension: Meest door ons gevolgde accounts
+ instance_accounts_measure: opgeslagen accounts
+ instance_followers_measure: daar ons daar gevolgd
+ instance_follows_measure: door hun hier gevolgd
+ instance_languages_dimension: Meest actieve talen
+ instance_media_attachments_measure: opgeslagen mediabestanden
+ instance_reports_measure: rapportages over hun
+ instance_statuses_measure: opgeslagen berichten
delivery:
all: Alles
clear: Bezorgfouten weghalen
+ failing: Problemen
restart: Bezorging herstarten
stop: Bezorging beëindigen
unavailable: Niet beschikbaar
@@ -428,12 +458,16 @@ nl:
delivery_error_days: Dagen met bezorgfouten
delivery_error_hint: Wanneer de bezorging voor %{count} dagen niet mogelijk is, wordt de bezorging automatisch als niet beschikbaar gemarkeerd.
empty: Geen domeinen gevonden.
+ known_accounts:
+ one: "%{count} bekend account"
+ other: "%{count} bekende accounts"
moderation:
all: Alles
limited: Beperkt
title: Moderatie
private_comment: Privé-opmerking
public_comment: Openbare opmerking
+ purge: Volledig verwijderen
title: Federatie
total_blocked_by_us: Door ons geblokkeerd
total_followed_by_them: Door hun gevolgd
@@ -484,40 +518,93 @@ nl:
report_notes:
created_msg: Opmerking bij rapportage succesvol aangemaakt!
destroyed_msg: Opmerking bij rapportage succesvol verwijderd!
+ today_at: Vandaag om %{time}
reports:
account:
notes:
one: "%{count} opmerking"
other: "%{count} opmerkingen"
+ action_log: Auditlog
action_taken_by: Actie uitgevoerd door
+ add_to_report: Meer aan de rapportage toevoegen
are_you_sure: Weet je het zeker?
assign_to_self: Aan mij toewijzen
assigned: Toegewezen moderator
by_target_domain: Domein van gerapporteerde account
+ category: Category
comment:
none: Geen
created_at: Gerapporteerd op
+ delete_and_resolve: Bericht verwijderen
forwarded: Doorgestuurd
forwarded_to: Doorgestuurd naar %{domain}
mark_as_resolved: Markeer als opgelost
+ mark_as_sensitive: Als gevoelig markeren
mark_as_unresolved: Markeer als onopgelost
+ no_one_assigned: Niemand
notes:
create: Opmerking toevoegen
create_and_resolve: Oplossen met opmerking
create_and_unresolve: Heropenen met opmerking
delete: Verwijderen
placeholder: Beschrijf welke acties zijn ondernomen of andere gerelateerde opmerkingen…
+ title: Opmerkingen
+ remote_user_placeholder: de externe gebruiker van %{instance}
reopen: Rapportage heropenen
report: 'Rapportage #%{id}'
reported_account: Gerapporteerde account
reported_by: Gerapporteerd door
resolved: Opgelost
resolved_msg: Rapportage succesvol opgelost!
- status: Bericht
+ skip_to_actions: Ga direct naar de acties
+ status: Rapportages
+ statuses: Gerapporteerde inhoud
+ target_origin: Herkomst van de gerapporteerde accounts
title: Rapportages
unassign: Niet langer toewijzen
unresolved: Onopgelost
updated_at: Bijgewerkt
+ view_profile: Profiel bekijken
+ roles:
+ add_new: Rol toevoegen
+ assigned_users:
+ one: "%{count} gebruiker"
+ other: "%{count} gebruikers"
+ categories:
+ administration: Beheer
+ devops: Devops
+ invites: Uitnodigingen
+ moderation: Moderatie
+ special: Speciaal
+ delete: Verwijderen
+ edit: Rol '%{name}' bewerken
+ everyone: Standaardrechten
+ everyone_full_description_html: Dit is de basisrol die van toepassing is op alle gebruikers , zelfs voor diegenen zonder toegewezen rol. Alle andere rollen hebben de rechten van deze rol als minimum.
+ permissions_count:
+ one: "%{count} recht"
+ other: "%{count} rechten"
+ privileges:
+ administrator: Beheerder
+ delete_user_data: Gebruikersgegevens verwijderen
+ invite_users: Gebruikers uitnodigen
+ manage_announcements: Aankondigingen beheren
+ manage_appeals: Bezwaren afhandelen
+ manage_blocks: Blokkades beheren
+ manage_custom_emojis: Lokale emoji's beheren
+ manage_federation: Federatie beheren
+ manage_invites: Uitnodigingen beheren
+ manage_reports: Rapportages afhandelen
+ manage_roles: Rollen beheren
+ manage_rules: Serverregels wijzigen
+ manage_settings: Server-instellingen wijzigen
+ manage_taxonomies: Trends en hashtags beheren
+ manage_user_access: Gebruikerstoegang beheren
+ manage_users: Gebruikers beheren
+ manage_webhooks: Webhooks beheren
+ view_audit_log: Auditlog bekijken
+ view_dashboard: Dashboard bekijken
+ view_devops: Devops
+ title: Rollen
rules:
add_new: Regel toevoegen
delete: Verwijderen
@@ -526,108 +613,77 @@ nl:
empty: Voor deze server zijn nog geen regels opgesteld.
title: Serverregels
settings:
- activity_api_enabled:
- desc_html: Wekelijks overzicht van de hoeveelheid lokale berichten, actieve gebruikers en nieuwe registraties
- title: Statistieken over gebruikersactiviteit via de API publiceren
- bootstrap_timeline_accounts:
- desc_html: Meerdere gebruikersnamen met komma's scheiden. Deze accounts worden in ieder geval aan nieuwe gebruikers aanbevolen
- title: Aanbevolen accounts voor nieuwe gebruikers
- contact_information:
- email: Vul een openbaar gebruikt e-mailadres in
- username: Vul een gebruikersnaam in
- custom_css:
- desc_html: Het uiterlijk van deze server met CSS aanpassen
- title: Aangepaste CSS
- default_noindex:
- desc_html: Heeft invloed op alle gebruikers die deze instelling niet zelf hebben veranderd
- title: Berichten van gebruikers standaard niet door zoekmachines laten indexeren
+ about:
+ manage_rules: Serverregels beheren
+ title: Over
+ appearance:
+ preamble: Mastodons webomgeving aanpassen.
+ title: Weergave
+ branding:
+ preamble: De branding van jouw server laat zien hoe het met andere servers in het netwerk verschilt. Deze informatie wordt op verschillende plekken getoond, zoals in de webomgeving van Mastodon, in mobiele apps, in voorvertoningen op andere websites en berichten-apps, enz. Daarom is het belangrijk om de informatie helder, kort en beknopt te houden.
+ title: Branding
+ content_retention:
+ preamble: Toezicht houden op hoe berichten en media van gebruikers op Mastodon worden bewaard.
+ title: Bewaartermijn berichten
+ discovery:
+ follow_recommendations: Aanbevolen accounts
+ profile_directory: Gebruikersgids
+ public_timelines: Openbare tijdlijnen
+ title: Ontdekken
+ trends: Trends
domain_blocks:
all: Aan iedereen
disabled: Aan niemand
- title: Domeinblokkades tonen
users: Aan ingelogde lokale gebruikers
- domain_blocks_rationale:
- title: Motivering tonen
- hero:
- desc_html: Wordt op de voorpagina getoond. Tenminste 600x100px aanbevolen. Wanneer dit niet is ingesteld wordt de thumbnail van de Mastodonserver getoond
- title: Hero-afbeelding
- mascot:
- desc_html: Wordt op meerdere pagina's weergegeven. Tenminste 293×205px aanbevolen. Wanneer dit niet is ingesteld wordt de standaardmascotte getoond
- title: Mascotte-afbeelding
- peers_api_enabled:
- desc_html: Domeinnamen die deze server in de fediverse is tegengekomen
- title: Lijst van bekende servers via de API publiceren
- preview_sensitive_media:
- desc_html: Linkvoorvertoningen op andere websites hebben een thumbnail, zelfs als een afbeelding of video als gevoelig is gemarkeerd
- title: Gevoelige afbeeldingen en video's in OpenGraph-voorvertoningen tonen
- profile_directory:
- desc_html: Gebruikers toestaan om vindbaar te zijn
- title: Gebruikersgids inschakelen
registrations:
- closed_message:
- desc_html: Wordt op de voorpagina weergegeven wanneer registratie van nieuwe accounts is uitgeschakeld En ook hier kan je HTML gebruiken
- title: Bericht wanneer registratie is uitgeschakeld
- deletion:
- desc_html: Toestaan dat iedereen diens eigen account kan verwijderen
- title: Verwijderen account toestaan
- min_invite_role:
- disabled: Niemand
- title: Uitnodigingen toestaan door
- require_invite_text:
- desc_html: Maak het invullen van "Waarom wil je je hier registreren?" verplicht in plaats van optioneel, wanneer registraties handmatig moeten worden goedgekeurd
- title: Nieuwe gebruikers moeten een reden invullen waarom ze zich willen registreren
+ preamble: Toezicht houden op wie een account op deze server kan registreren.
+ title: Registraties
registrations_mode:
modes:
approved: Goedkeuring vereist om te kunnen registreren
none: Niemand kan zich registreren
open: Iedereen kan zich registreren
- title: Registratiemodus
- show_known_fediverse_at_about_page:
- desc_html: Wanneer ingeschakeld wordt de globale tijdlijn op de voorpagina getoond en wanneer uitgeschakeld de lokale tijdlijn
- title: De globale tijdlijn op de openbare tijdlijnpagina tonen
- show_staff_badge:
- desc_html: Medewerkersbadge op profielpagina tonen
- title: Medewerkersbadge tonen
- site_description:
- desc_html: Introductie-alinea voor de API. Beschrijf wat er speciaal is aan deze server en andere zaken die van belang zijn. Je kan HTML gebruiken, zoals <a>
en <em>
.
- title: Omschrijving Mastodonserver (API)
- site_description_extended:
- desc_html: Een goede plek voor je gedragscode, regels, richtlijnen en andere zaken die jouw server uniek maken. Je kan ook hier HTML gebruiken
- title: Uitgebreide omschrijving Mastodonserver
- site_short_description:
- desc_html: Dit wordt gebruikt op de voorpagina, in de zijbalk op profielpagina's en als metatag in de paginabron. Beschrijf in één alinea wat Mastodon is en wat deze server speciaal maakt.
- title: Omschrijving Mastodonserver (website)
- site_terms:
- desc_html: Je kan hier jouw eigen privacybeleid, gebruiksvoorwaarden en ander juridisch jargon kwijt. Je kan HTML gebruiken
- title: Aangepaste gebruiksvoorwaarden
- site_title: Naam Mastodonserver
- thumbnail:
- desc_html: Gebruikt als voorvertoning voor OpenGraph en de API. 1200x630px aanbevolen
- title: Thumbnail Mastodonserver
- timeline_preview:
- desc_html: Toon een link naar de openbare tijdlijnpagina op de voorpagina en geef de API zonder in te loggen toegang tot de openbare tijdlijn
- title: Toegang tot de openbare tijdlijn zonder in te loggen toestaan
- title: Server-instellingen
- trendable_by_default:
- desc_html: Heeft invloed op hashtags die nog niet eerder niet zijn toegestaan
- title: Hashtags toestaan om trending te worden zonder voorafgaande beoordeling
- trends:
- desc_html: Eerder beoordeelde hashtags die op dit moment trending zijn openbaar tonen
- title: Trends
+ title: Serverinstellingen
site_uploads:
delete: Geüpload bestand verwijderen
destroyed_msg: Verwijderen website-upload geslaagd!
statuses:
+ account: Account
+ application: Toepassing
back_to_account: Terug naar accountpagina
+ back_to_report: Terug naar de rapportage
+ batch:
+ remove_from_report: Uit de rapportage verwijderen
+ report: Rapportage
deleted: Verwijderd
+ favourites: Favorieten
+ history: Versiegeschiedenis
+ in_reply_to: Reactie op
+ language: Taal
media:
title: Media
+ metadata: Metagegevens
no_status_selected: Er werden geen berichten gewijzigd, omdat er geen enkele werd geselecteerd
+ open: Bericht tonen
+ original_status: Oorspronkelijk bericht
+ reblogs: Boosts
+ status_changed: Bericht veranderd
title: Berichten van account
+ trending: Trending
+ visibility: Zichtbaarheid
with_media: Met media
+ strikes:
+ actions:
+ silence: "%{name} beperkte het account %{target}"
+ suspend: "%{name} schortte het account %{target} op"
+ appeal_approved: Bezwaar ingediend
+ appeal_pending: Bezwaar in behandeling
system_checks:
database_schema_check:
message_html: Niet alle databasemigraties zijn voltooid. Je moet deze uitvoeren om er voor te zorgen dat de applicatie blijft werken zoals het hoort
+ elasticsearch_version_check:
+ message_html: 'Incompatibele Elasticsearch-versie: %{value}'
+ version_comparison: Je gebruikt Elasticsearch %{running_version}, maar %{required_version} is vereist
rules_check:
action: Serverregels beheren
message_html: Je hebt voor deze server geen regels opgesteld.
@@ -637,20 +693,108 @@ nl:
review: Status beoordelen
updated_msg: Instellingen hashtag succesvol bijgewerkt
title: Beheer
+ trends:
+ allow: Goedkeuren
+ approved: Goedgekeurde
+ disallow: Afkeuren
+ links:
+ allow: Link goedkeuren
+ allow_provider: Website goedkeuren
+ description_html: Dit zijn links die momenteel veel worden gedeeld door accounts waar jouw server berichten van ontvangt. Hierdoor kunnen jouw gebruikers zien wat er in de wereld aan de hand is. Er worden geen links weergeven totdat je de website hebt goedgekeurd. Je kunt ook individuele links goed- of afkeuren.
+ disallow: Link afkeuren
+ disallow_provider: Website afkeuren
+ no_link_selected: Er werden geen links gewijzigd, omdat er geen enkele werd geselecteerd
+ publishers:
+ no_publisher_selected: Er werden geen websites gewijzigd, omdat er geen enkele werd geselecteerd
+ shared_by_over_week:
+ one: Deze week door één persoon gedeeld
+ other: Deze week door %{count} mensen gedeeld
+ title: Trending links
+ usage_comparison: Vandaag %{today} keer gedeeld, vergeleken met %{yesterday} keer gisteren
+ only_allowed: Alleen goedgekeurde
+ pending_review: In afwachting van beoordeling
+ preview_card_providers:
+ allowed: Links van deze website kunnen trending worden
+ rejected: Links naar deze nieuwssite kunnen niet trending worden
+ title: Websites
+ rejected: Afgekeurd
+ statuses:
+ allow: Bericht goedkeuren
+ allow_account: Account goedkeuren
+ disallow: Bericht afkeuren
+ disallow_account: Account afkeuren
+ no_status_selected: Er werden geen trending berichten gewijzigd, omdat er geen enkele werd geselecteerd
+ not_discoverable: Gebruiker heeft geen toestemming gegeven om vindbaar te zijn
+ title: Trending berichten
+ tags:
+ current_score: Huidige score is %{score}
+ dashboard:
+ tag_accounts_measure: aantal unieke keren gebruikt
+ tag_languages_dimension: Populaire talen
+ tag_servers_dimension: Populaire servers
+ tag_servers_measure: verschillende servers
+ tag_uses_measure: totaal aantal keer gebruikt
+ listable: Kan worden aanbevolen
+ no_tag_selected: Er werden geen hashtags gewijzigd, omdat er geen enkele werd geselecteerd
+ not_listable: Wordt niet aanbevolen
+ not_usable: Kan niet worden gebruikt
+ title: Trending hashtags
+ trending_rank: 'Trending #%{rank}'
+ usable: Kan worden gebruikt
+ title: Trends
+ trending: Trending
warning_presets:
add_new: Nieuwe toevoegen
delete: Verwijderen
edit_preset: Preset voor waarschuwing bewerken
empty: Je hebt nog geen presets voor waarschuwingen toegevoegd.
title: Presets voor waarschuwingen beheren
+ webhooks:
+ add_new: Eindpunt toevoegen
+ delete: Verwijderen
+ disable: Uitschakelen
+ disabled: Uitgeschakeld
+ edit: Eindpunt bewerken
+ enable: Inschakelen
+ enabled: Ingeschakeld
+ enabled_events:
+ one: 1 ingeschakelde gebeurtenis
+ other: "%{count} ingeschakelde gebeurtenissen"
+ events: Gebeurtenissen
+ new: Nieuwe webhook
+ rotate_secret: Secret opnieuw genereren
+ secret: Signing secret
+ status: Status
+ title: Webhooks
+ webhook: Webhook
admin_mailer:
+ new_appeal:
+ actions:
+ delete_statuses: het verwijderen van diens berichten
+ disable: het bevriezen van diens account
+ mark_statuses_as_sensitive: het markeren van diens berichten als gevoelig
+ none: een waarschuwing
+ sensitive: het gevoelig forceren van diens account
+ silence: het beperken van diens account
+ suspend: het opschorten van diens account
+ body: "%{target} maakt bezwaar tegen een moderatie-actie door %{action_taken_by} op %{date}, betreffende %{type}. De gebruiker schrijft:"
+ next_steps: Je kunt het bezwaar goedkeuren om daarmee de moderatie-actie ongedaan te maken, of je kunt het verwerpen.
+ subject: "%{username} maakt bezwaar tegen een moderatie-actie op %{instance}"
new_pending_account:
- body: Zie hieronder de details van het nieuwe account. Je kunt de aanvraag goedkeuren of afkeuren.
+ body: Zie hieronder de details van het nieuwe account. Je kunt de aanvraag goedkeuren of afwijzen.
subject: Er dient een nieuw account op %{instance} te worden beoordeeld (%{username})
new_report:
body: "%{reporter} heeft %{target} gerapporteerd"
body_remote: Iemand van %{domain} heeft %{target} gerapporteerd
subject: Nieuwe rapportage op %{instance} (#%{id})
+ new_trends:
+ new_trending_links:
+ title: Trending links
+ new_trending_statuses:
+ title: Trending berichten
+ new_trending_tags:
+ title: Trending hashtags
+ subject: Nieuwe trends te beoordelen op %{instance}
aliases:
add_new: Alias aanmaken
created_msg: Succesvol een nieuwe alias aangemaakt. Je kunt nu met de verhuizing vanaf het oude account beginnen.
@@ -680,16 +824,13 @@ nl:
applications:
created: Aanmaken toepassing geslaagd
destroyed: Verwijderen toepassing geslaagd
- invalid_url: De opgegeven URL is ongeldig
regenerate_token: Toegangscode opnieuw aanmaken
token_regenerated: Opnieuw aanmaken toegangscode geslaagd
warning: Wees voorzichtig met deze gegevens. Deel het nooit met iemand anders!
your_token: Jouw toegangscode
auth:
- apply_for_account: Een uitnodiging aanvragen
+ apply_for_account: Zet jezelf op de wachtlijst
change_password: Wachtwoord
- checkbox_agreement_html: Ik ga akkoord met de regels van deze server en de gebruiksvoorwaarden
- checkbox_agreement_without_rules_html: Ik ga akkoord met de gebruiksvoorwaarden
delete_account: Account verwijderen
delete_account_html: Wanneer je jouw account graag wilt verwijderen, kun je dat hier doen . We vragen jou daar om een bevestiging.
description:
@@ -702,11 +843,13 @@ nl:
invalid_reset_password_token: De code om jouw wachtwoord opnieuw in te stellen is verlopen. Vraag een nieuwe aan.
link_to_otp: Voer een tweestapsverificatiecode van je telefoon of een herstelcode in
link_to_webauth: Jouw apparaat met de authenticatie-app gebruiken
+ log_in_with: Inloggen met
login: Inloggen
logout: Uitloggen
migrate_account: Naar een ander account verhuizen
migrate_account_html: Wanneer je dit account naar een ander account wilt doorverwijzen, kun je dit hier instellen .
or_log_in_with: Of inloggen met
+ privacy_policy_agreement_html: Ik heb het privacybeleid gelezen en ga daarmee akkoord
providers:
cas: CAS
saml: SAML
@@ -714,19 +857,26 @@ nl:
registration_closed: "%{instance} laat geen nieuwe gebruikers toe"
resend_confirmation: Verstuur de bevestigingsinstructies nogmaals
reset_password: Wachtwoord opnieuw instellen
+ rules:
+ preamble: Deze zijn vastgesteld en worden gehandhaafd door de moderatoren van %{domain}.
+ title: Enkele basisregels.
security: Beveiliging
set_new_password: Nieuw wachtwoord instellen
setup:
email_below_hint_html: Wanneer onderstaand e-mailadres niet klopt, kun je dat hier veranderen. Je ontvangt dan hierna een bevestigingsmail.
email_settings_hint_html: De bevestigingsmail is verzonden naar %{email}. Wanneer dat e-mailadres niet klopt, kun je dat veranderen in je accountinstellingen.
title: Instellen
+ sign_up:
+ preamble: Je kunt met een Mastodon-account iedereen in het netwerk volgen, ongeacht waar deze persoon een account heeft.
+ title: Laten we je account op %{domain} instellen.
status:
account_status: Accountstatus
confirming: Aan het wachten totdat de e-mail is bevestigd.
+ functional: Jouw account kan in diens geheel gebruikt worden.
pending: Jouw aanvraag moet nog worden beoordeeld door een van onze medewerkers. Dit kan misschien eventjes duren. Je ontvangt een e-mail wanneer jouw aanvraag is goedgekeurd.
redirecting_to: Jouw account is inactief omdat het momenteel wordt doorverwezen naar %{acct}.
+ view_strikes: Bekijk de eerder door moderatoren vastgestelde overtredingen die je hebt gemaakt
too_fast: Formulier is te snel ingediend. Probeer het nogmaals.
- trouble_logging_in: Problemen met inloggen?
use_security_key: Beveiligingssleutel gebruiken
authorize_follow:
already_following: Je volgt dit account al
@@ -736,7 +886,7 @@ nl:
follow_request: 'Jij hebt een volgverzoek ingediend bij:'
following: 'Succes! Jij volgt nu:'
post_follow:
- close: Of je kan dit venster gewoon sluiten.
+ close: Of je kunt dit venster gewoon sluiten.
return: Profiel van deze gebruiker tonen
web: Ga naar de webapp
title: Volg %{acct}
@@ -784,20 +934,36 @@ nl:
more_details_html: Zie het privacybeleid voor meer informatie.
username_available: Jouw gebruikersnaam zal weer beschikbaar komen
username_unavailable: Jouw gebruikersnaam zal onbeschikbaar blijven
- directories:
- directory: Gebruikersgids
- explanation: Ontdek gebruikers aan de hand van hun interesses
- explore_mastodon: "%{title} verkennen"
disputes:
strikes:
- appeal: Beroep
- appeal_approved: Het aangetekende beroep is goedgekeurd en deze overtreding is niet langer geldig
- appeal_rejected: Het aangetekende beroep is afgewezen
- appeal_submitted_at: Beroep aangetekend
- appealed_msg: Jouw aangetekende beroep is ingediend. Wanneer deze wordt goedgekeurd, krijg je hiervan bericht.
+ action_taken: Genomen maatregel
+ appeal: Bezwaar
+ appeal_approved: Het ingediende bezwaar is goedgekeurd en de eerder vastgestelde overtreding is niet langer geldig
+ appeal_rejected: Het ingediende bezwaar is afgewezen
+ appeal_submitted_at: Bezwaar ingediend
+ appealed_msg: Jouw bezwaar is ingediend. Wanneer deze wordt goedgekeurd, krijg je hiervan bericht.
appeals:
- submit: Beroep aantekenen
- approve_appeal: Beroep goedkeuren
+ submit: Bezwaar indienen
+ approve_appeal: Bezwaar goedkeuren
+ associated_report: Bijbehorende rapportage
+ created_at: Datum en tijd
+ description_html: Dit zijn acties die op jouw account zijn toegepast en waarschuwingen die door medewerkers van %{instance} naar je zijn gestuurd.
+ recipient: Geadresseerd aan
+ reject_appeal: Bezwaar afgewezen
+ status: 'Bericht #%{id}'
+ status_removed: Bericht is al van de server verwijderd
+ title: "%{action} van %{date}"
+ title_actions:
+ delete_statuses: Verwijdering bericht
+ disable: Bevriezen van account
+ mark_statuses_as_sensitive: Berichten als gevoelig markeren
+ none: Waarschuwing
+ sensitive: Volledige account als gevoelig markeren
+ silence: Beperking account
+ suspend: Opschorting account
+ your_appeal_approved: Jouw bezwaar is goedgekeurd
+ your_appeal_pending: Je hebt een bezwaar ingediend
+ your_appeal_rejected: Jouw bezwaar is afgewezen
domain_validator:
invalid_domain: is een ongeldige domeinnaam
errors:
@@ -846,29 +1012,60 @@ nl:
public: Openbare tijdlijnen
thread: Gesprekken
edit:
+ add_keyword: Trefwoord toevoegen
+ keywords: Trefwoorden
+ statuses: Individuele berichten
+ statuses_hint_html: Dit filter is van toepassing om individuele berichten te selecteren, ongeacht of ze overeenkomen met de onderstaande trefwoorden. Berichten van het filter bekijken of verwijderen .
title: Filter bewerken
errors:
+ deprecated_api_multiple_keywords: Deze instellingen kunnen niet via deze applicatie worden veranderd, omdat er meer dan één trefwoord wordt gebruikt. Gebruik een meer recente applicatie of de webomgeving.
invalid_context: Geen of ongeldige context verstrekt
- invalid_irreversible: Onomkeerbaar filteren werkt alleen met de starttijdlijn en meldingen
index:
+ contexts: Filters in %{contexts}
delete: Verwijderen
empty: Je hebt geen filters aangemaakt.
+ expires_in: Vervalt na %{distance}
+ expires_on: Vervalt op %{date}
+ keywords:
+ one: "%{count} trefwoord"
+ other: "%{count} trefwoorden"
+ statuses:
+ one: "%{count} bericht"
+ other: "%{count} berichten"
+ statuses_long:
+ one: "%{count} individueel bericht verborgen"
+ other: "%{count} individuele berichten verborgen"
title: Filters
new:
+ save: Nieuwe filter opslaan
title: Nieuw filter toevoegen
+ statuses:
+ back_to_filter: Terug naar het filter
+ batch:
+ remove: Uit het filter verwijderen
+ index:
+ hint: Dit filter is van toepassing om individuele berichten te selecteren, ongeacht andere critiria. Je kunt in de webomgeving meer berichten aan dit filter toevoegen.
+ title: Gefilterde berichten
footer:
- developers: Ontwikkelaars
- more: Meer…
- resources: Hulpmiddelen
trending_now: Trends
generic:
all: Alles
+ all_items_on_page_selected_html:
+ one: "%{count} item op deze pagina is geselecteerd."
+ other: Alle %{count} items op deze pagina zijn geselecteerd.
+ all_matching_items_selected_html:
+ one: "%{count} item dat met jouw zoekopdracht overeenkomt is geselecteerd."
+ other: Alle %{count} items die met jouw zoekopdracht overeenkomen zijn geselecteerd.
changes_saved_msg: Wijzigingen succesvol opgeslagen!
copy: Kopiëren
delete: Verwijderen
+ deselect: Alles deselecteren
none: Geen
order_by: Sorteer op
save_changes: Wijzigingen opslaan
+ select_all_matching_items:
+ one: "%{count} item dat met jouw zoekopdracht overeenkomt selecteren."
+ other: Alle %{count} items die met jouw zoekopdracht overeenkomen selecteren.
today: vandaag
validation_errors:
one: Er is iets niet helemaal goed! Bekijk onderstaande fout
@@ -892,7 +1089,6 @@ nl:
following: Volglijst
muting: Negeerlijst
upload: Uploaden
- in_memoriam_html: In memoriam.
invites:
delete: Deactiveren
expired: Verlopen
@@ -918,6 +1114,17 @@ nl:
lists:
errors:
limit: Je hebt het maximaal aantal lijsten bereikt
+ login_activities:
+ authentication_methods:
+ otp: tweestapsverificatie-app
+ password: wachtwoord
+ sign_in_token: beveiligingscode via e-mail
+ webauthn: beveiligingssleutels
+ description_html: Wanneer je activiteit ziet die je niet herkent, overweeg dan uw wachtwoord te wijzigen en tweestapsverificatie in te schakelen.
+ empty: Geen inloggeschiedenis beschikbaar
+ failed_sign_in_html: Mislukte inlogpoging met %{method} van %{ip} (%{browser})
+ successful_sign_in_html: Succesvol ingelogd met %{method} van %{ip} (%{browser})
+ title: Inloggeschiedenis
media_attachments:
validations:
images_and_video: Een video kan niet aan een bericht met afbeeldingen worden gekoppeld
@@ -961,17 +1168,14 @@ nl:
carry_mutes_over_text: Deze gebruiker is verhuisd vanaf %{acct}. Je hebt dat account genegeerd.
copy_account_note_text: 'Deze gebruiker is verhuisd vanaf %{acct}. Je hebt de volgende opmerkingen over dat account gemaakt:'
notification_mailer:
- digest:
- action: Alle meldingen bekijken
- body: Hier is een korte samenvatting van de berichten die je sinds jouw laatste bezoek op %{since} hebt gemist
- mention: "%{name} vermeldde jou in:"
- new_followers_summary:
- one: Je hebt trouwens sinds je weg was er ook een nieuwe volger bijgekregen! Hoera!
- other: Je hebt trouwens sinds je weg was er ook %{count} nieuwe volgers bijgekregen! Fantastisch!
- title: Tijdens jouw afwezigheid...
+ admin:
+ report:
+ subject: "%{name} heeft een rapportage ingediend"
+ sign_up:
+ subject: "%{name} heeft zich geregistreerd"
favourite:
- body: 'Jouw bericht werd door %{name} aan diens favorieten toegevoegd:'
- subject: "%{name} voegde jouw bericht als favoriet toe"
+ body: 'Jouw bericht werd door %{name} als favoriet gemarkeerd:'
+ subject: "%{name} markeerde jouw bericht als favoriet"
title: Nieuwe favoriet
follow:
body: "%{name} volgt jou nu!"
@@ -995,6 +1199,8 @@ nl:
title: Nieuwe boost
status:
subject: "%{name} heeft zojuist een bericht geplaatst"
+ update:
+ subject: "%{name} bewerkte een bericht"
notifications:
email_events: E-mailmeldingen voor gebeurtenissen
email_events_hint: 'Selecteer gebeurtenissen waarvoor je meldingen wilt ontvangen:'
@@ -1038,6 +1244,8 @@ nl:
other: Overig
posting_defaults: Standaardinstellingen voor posten
public_timelines: Openbare tijdlijnen
+ privacy_policy:
+ title: Privacybeleid
reactions:
errors:
limit_reached: Limiet van verschillende emoji-reacties bereikt
@@ -1060,22 +1268,15 @@ nl:
remove_selected_follows: Geselecteerde gebruikers ontvolgen
status: Accountstatus
remote_follow:
- acct: Geef jouw account@domein op die je wilt gebruiken
missing_resource: Kon vereiste doorverwijzings-URL voor jouw account niet vinden
- no_account_html: Heb je geen account? Je kunt er hier een registreren
- proceed: Ga verder om te volgen
- prompt: 'Jij gaat volgen:'
- reason_html: " Waarom is deze extra stap nodig? %{instance}
is wellicht niet de server waarop jij je geregistreerd hebt. We verwijzen je eerst door naar jouw eigen server."
- remote_interaction:
- favourite:
- proceed: Doorgaan met toevoegen aan jouw favorieten
- prompt: 'Je wilt het volgende bericht aan jouw favorieten toevoegen:'
- reblog:
- proceed: Doorgaan met boosten
- prompt: 'Je wilt het volgende bericht boosten:'
- reply:
- proceed: Doorgaan met reageren
- prompt: 'Je wilt op het volgende bericht reageren:'
+ reports:
+ errors:
+ invalid_rules: verwijst niet naar geldige regels
+ rss:
+ content_warning: 'Inhoudswaarschuwing:'
+ descriptions:
+ account: Openbare berichten van @%{acct}
+ tag: 'Openbare berichten met hashtag #%{hashtag}'
scheduled_statuses:
over_daily_limit: Je hebt de limiet van %{limit} in te plannen berichten voor vandaag overschreden
over_total_limit: Je hebt de limiet van %{limit} in te plannen berichten overschreden
@@ -1121,6 +1322,7 @@ nl:
revoke: Intrekken
revoke_success: Sessie succesvol ingetrokken
title: Sessies
+ view_authentication_history: Inloggeschiedenis van jouw account bekijken
settings:
account: Account
account_settings: Accountinstellingen
@@ -1140,6 +1342,8 @@ nl:
preferences: Voorkeuren
profile: Profiel
relationships: Volgers en gevolgden
+ statuses_cleanup: Automatisch berichten verwijderen
+ strikes: Vastgestelde overtredingen
two_factor_authentication: Tweestapsverificatie
webauthn_authentication: Beveiligingssleutels
statuses:
@@ -1156,14 +1360,17 @@ nl:
other: "%{count} video's"
boosted_from_html: Geboost van %{acct_link}
content_warning: 'Inhoudswaarschuwing: %{warning}'
+ default_language: Hetzelfde als de taal van de gebruikersomgeving
disallowed_hashtags:
one: 'bevatte een niet toegestane hashtag: %{tags}'
other: 'bevatte niet toegestane hashtags: %{tags}'
+ edited_at_html: Bewerkt op %{date}
errors:
in_reply_not_found: Het bericht waarop je probeert te reageren lijkt niet te bestaan.
open_in_web: In de webapp openen
over_character_limit: Limiet van %{max} tekens overschreden
pin_errors:
+ direct: Berichten die alleen zichtbaar zijn voor vermelde gebruikers, kunnen niet worden vastgezet
limit: Je hebt het maximaal aantal bericht al vastgemaakt
ownership: Een bericht van iemand anders kan niet worden vastgemaakt
reblog: Een boost kan niet worden vastgezet
@@ -1189,95 +1396,50 @@ nl:
public_long: Aan iedereen tonen, ook op openbare tijdlijnen
unlisted: Minder openbaar
unlisted_long: Aan iedereen tonen, maar niet op openbare tijdlijnen
+ statuses_cleanup:
+ enabled: Automatisch oude berichten verwijderen
+ enabled_hint: Verwijder uw berichten automatisch zodra ze een bepaalde leeftijdsgrens bereiken, tenzij ze overeenkomen met een van de onderstaande uitzonderingen
+ exceptions: Uitzonderingen
+ explanation: Doordat het verwijderen van berichten de server zwaar belast, gebeurt dit geleidelijk aan op momenten dat de server niet bezig is. Om deze reden kunnen uw berichten een tijdje nadat ze de leeftijdsgrens hebben bereikt worden verwijderd.
+ ignore_favs: Favorieten negeren
+ ignore_reblogs: Boosts negeren
+ interaction_exceptions: Uitzonderingen op basis van interacties
+ interaction_exceptions_explanation: Merk op dat er geen garantie is dat berichten worden verwijderd, wanneer eenmaal het aantal favorieten of boosts boven de ingestelde grenswaarde zijn geweest.
+ keep_direct: Directe berichten behouden
+ keep_direct_hint: Verwijdert geen enkel directe bericht van jou
+ keep_media: Berichten met mediabijlagen behouden
+ keep_media_hint: Verwijdert geen enkel bericht met mediabijlagen
+ keep_pinned: Vastgemaakte berichten behouden
+ keep_pinned_hint: Verwijdert geen enkel vastgezet bericht van jou
+ keep_polls: Polls behouden
+ keep_polls_hint: Geen enkele poll van jou wordt verwijderd
+ keep_self_bookmark: Bladwijzers behouden
+ keep_self_bookmark_hint: Eigen berichten die je aan je bladwijzers hebt toegevoegd worden niet verwijderd
+ keep_self_fav: Favorieten behouden
+ keep_self_fav_hint: Eigen berichten die je als favoriet hebt gemarkeerd worden niet verwijderd
+ min_age:
+ '1209600': 2 weken
+ '15778476': 6 maanden
+ '2629746': 1 maand
+ '31556952': 1 jaar
+ '5259492': 2 maanden
+ '604800': 1 week
+ '63113904': 2 jaar
+ '7889238': 3 maanden
+ min_age_label: Te verwijderen na
+ min_favs: Berichten die tenminste zoveel keer als favoriet zijn gemarkeerd behouden
+ min_favs_hint: Verwijdert geen berichten die tenminste zoveel keer als favoriet zijn gemarkeerd. Laat leeg om berichten ongeacht het aantal favorieten te verwijderen
+ min_reblogs: Berichten die minstens zoveel keer zijn geboost behouden
+ min_reblogs_hint: Verwijdert geen berichten die tenminste zoveel keer zijn geboost. Laat leeg om berichten ongeacht het aantal boosts te verwijderen
stream_entries:
pinned: Vastgemaakt bericht
reblogged: boostte
sensitive_content: Gevoelige inhoud
+ strikes:
+ errors:
+ too_late: De periode dat je bezwaar kunt maken tegen deze overtreding is verstreken
tags:
does_not_match_previous_name: komt niet overeen met de vorige naam
- terms:
- body_html: |
- Privacy Policy
- What information do we collect?
-
-
- Basic account information : If you register on this server, you may be asked to enter a username, an e-mail address and a password. You may also enter additional profile information such as a display name and biography, and upload a profile picture and header image. The username, display name, biography, profile picture and header image are always listed publicly.
- Posts, following and other public information : The list of people you follow is listed publicly, the same is true for your followers. When you submit a message, the date and time is stored as well as the application you submitted the message from. Messages may contain media attachments, such as pictures and videos. Public and unlisted posts are available publicly. When you feature a post on your profile, that is also publicly available information. Your posts are delivered to your followers, in some cases it means they are delivered to different servers and copies are stored there. When you delete posts, this is likewise delivered to your followers. The action of reblogging or favouriting another post is always public.
- Direct and followers-only posts : All posts are stored and processed on the server. Followers-only posts are delivered to your followers and users who are mentioned in them, and direct posts are delivered only to users mentioned in them. In some cases it means they are delivered to different servers and copies are stored there. We make a good faith effort to limit the access to those posts only to authorized persons, but other servers may fail to do so. Therefore it's important to review servers your followers belong to. You may toggle an option to approve and reject new followers manually in the settings. Please keep in mind that the operators of the server and any receiving server may view such messages , and that recipients may screenshot, copy or otherwise re-share them. Do not share any sensitive information over Mastodon.
- IPs and other metadata : When you log in, we record the IP address you log in from, as well as the name of your browser application. All the logged in sessions are available for your review and revocation in the settings. The latest IP address used is stored for up to 12 months. We also may retain server logs which include the IP address of every request to our server.
-
-
-
-
- What do we use your information for?
-
- Any of the information we collect from you may be used in the following ways:
-
-
- To provide the core functionality of Mastodon. You can only interact with other people's content and post your own content when you are logged in. For example, you may follow other people to view their combined posts in your own personalized home timeline.
- To aid moderation of the community, for example comparing your IP address with other known ones to determine ban evasion or other violations.
- The email address you provide may be used to send you information, notifications about other people interacting with your content or sending you messages, and to respond to inquiries, and/or other requests or questions.
-
-
-
-
- How do we protect your information?
-
- We implement a variety of security measures to maintain the safety of your personal information when you enter, submit, or access your personal information. Among other things, your browser session, as well as the traffic between your applications and the API, are secured with SSL, and your password is hashed using a strong one-way algorithm. You may enable two-factor authentication to further secure access to your account.
-
-
-
- What is our data retention policy?
-
- We will make a good faith effort to:
-
-
- Retain server logs containing the IP address of all requests to this server, in so far as such logs are kept, no more than 90 days.
- Retain the IP addresses associated with registered users no more than 12 months.
-
-
- You can request and download an archive of your content, including your posts, media attachments, profile picture, and header image.
-
- You may irreversibly delete your account at any time.
-
-
-
- Do we use cookies?
-
- Yes. Cookies are small files that a site or its service provider transfers to your computer's hard drive through your Web browser (if you allow). These cookies enable the site to recognize your browser and, if you have a registered account, associate it with your registered account.
-
- We use cookies to understand and save your preferences for future visits.
-
-
-
- Do we disclose any information to outside parties?
-
- We do not sell, trade, or otherwise transfer to outside parties your personally identifiable information. This does not include trusted third parties who assist us in operating our site, conducting our business, or servicing you, so long as those parties agree to keep this information confidential. We may also release your information when we believe release is appropriate to comply with the law, enforce our site policies, or protect ours or others rights, property, or safety.
-
- Your public content may be downloaded by other servers in the network. Your public and followers-only posts are delivered to the servers where your followers reside, and direct messages are delivered to the servers of the recipients, in so far as those followers or recipients reside on a different server than this.
-
- When you authorize an application to use your account, depending on the scope of permissions you approve, it may access your public profile information, your following list, your followers, your lists, all your posts, and your favourites. Applications can never access your e-mail address or password.
-
-
-
- Site usage by children
-
- If this server is in the EU or the EEA: Our site, products and services are all directed to people who are at least 16 years old. If you are under the age of 16, per the requirements of the GDPR (General Data Protection Regulation ) do not use this site.
-
- If this server is in the USA: Our site, products and services are all directed to people who are at least 13 years old. If you are under the age of 13, per the requirements of COPPA (Children's Online Privacy Protection Act ) do not use this site.
-
- Law requirements can be different if this server is in another jurisdiction.
-
-
-
- Changes to our Privacy Policy
-
- If we decide to change our privacy policy, we will post those changes on this page.
-
- This document is CC-BY-SA. It was last updated May 26, 2022.
-
- Originally adapted from the Discourse privacy policy .
- title: Gebruiksvoorwaarden en privacybeleid van %{instance}
themes:
contrast: Mastodon (hoog contrast)
default: Mastodon (donker)
@@ -1286,6 +1448,7 @@ nl:
formats:
default: "%d %B %Y om %H:%M"
month: "%b %Y"
+ time: "%H:%M"
two_factor_authentication:
add: Toevoegen
disable: Tweestapsverificatie uitschakelen
@@ -1302,37 +1465,66 @@ nl:
recovery_instructions_html: Wanneer je ooit de toegang verliest tot jouw telefoon, kan je met behulp van een van de herstelcodes hieronder opnieuw toegang krijgen tot jouw account. Zorg ervoor dat je de herstelcodes op een veilige plek bewaard . Je kunt ze bijvoorbeeld printen en ze samen met andere belangrijke documenten bewaren.
webauthn: Beveiligingssleutels
user_mailer:
+ appeal_approved:
+ action: Ga naar je account
+ explanation: Het bezwaar tegen een door een moderator vastgestelde overtreding van jou op %{strike_date}, ingediend op %{appeal_date}, is goedgekeurd. De eerder vastgestelde overtreding is hierbij niet langer geldig.
+ subject: Jouw bezwaar van %{date} is goedgekeurd
+ title: Bezwaar goedgekeurd
+ appeal_rejected:
+ explanation: Het bezwaar tegen een door een moderator vastgestelde overtreding van jou op %{strike_date}, ingediend op %{appeal_date}, is afgewezen. De vastgestelde overtreding blijft daarom ongewijzigd.
+ subject: Jouw bezwaar van %{date} is afgewezen
+ title: Bezwaar afgewezen
backup_ready:
explanation: Je hebt een volledige back-up van jouw Mastodon-account opgevraagd. Het staat nu klaar om te worden gedownload!
subject: Jouw archief staat klaar om te worden gedownload
title: Archief ophalen
+ suspicious_sign_in:
+ change_password: je wachtwoord te wijzigen
+ details: 'Hier zijn de details van inlogpoging:'
+ explanation: We hebben vastgesteld dat iemand vanaf een nieuw IP-adres op jouw account is ingelogd.
+ further_actions_html: Wanneer jij dit niet was, adviseren wij om onmiddellijk %{action} en om tweestapsverificatie in te schakelen, om zo je account veilig te houden.
+ subject: Jouw account is vanaf een nieuw IP-adres benaderd
+ title: Een nieuwe registratie
warning:
+ appeal: Bezwaar indienen
+ appeal_description: Wanneer je denkt dat dit een fout is, kun je een bezwaar indienen bij de medewerkers van %{instance}.
+ categories:
+ spam: Spam
+ violation: De inhoud is in strijd met de volgende communityrichtlijnen
+ explanation:
+ delete_statuses: Er is vastgesteld dat sommige van jouw berichten in strijd zijn met één of meerdere communityrichtlijnen en daarom door de moderatoren van %{instance} zijn verwijderd.
+ disable: Je kunt niet langer jouw account gebruiken, maar jouw profiel en andere gegevens zijn nog wel intact. Je kunt een backup van je gegevens opvragen, accountinstellingen wijzigen of je account verwijderen.
+ mark_statuses_as_sensitive: Sommige van jouw berichten zijn als gevoelig gemarkeerd door de moderatoren van %{instance}. Dit betekent dat mensen op de media in de berichten moeten klikken/tikken om deze weer te geven. Je kunt media in de toekomst ook zelf als gevoelig markeren.
+ sensitive: Vanaf nu worden al jouw geüploade media als gevoelig gemarkeerd en verborgen achter een waarschuwing.
+ silence: Je kunt nog steeds jouw account gebruiken, maar alleen mensen die jou al volgen kunnen jouw berichten zien, en je kunt minder goed worden gevonden. Andere kunnen je echter nog wel steeds handmatig volgen.
+ suspend: Je kunt niet langer jouw account gebruiken, en jouw profiel en andere gegevens zijn niet langer toegankelijk. Je kunt nog steeds inloggen om een backup van jouw gegevens op te vragen, totdat deze na 30 dagen volledig worden verwijderd. We zullen wel enkele basisgegevens behouden om te voorkomen dat je onder je schorsing uit probeert te komen.
+ reason: 'Reden:'
+ statuses: 'Gerapporteerde berichten:'
subject:
+ delete_statuses: Deze berichten van %{acct} zijn verwijderd
disable: Jouw account %{acct} is bevroren
+ mark_statuses_as_sensitive: Deze berichten van %{acct} zijn als gevoelig gemarkeerd
none: Waarschuwing voor %{acct}
+ sensitive: Berichten van %{acct} zullen vanaf nu altijd als gevoelig worden gemarkeerd
silence: Jouw account %{acct} is nu beperkt
suspend: Jouw account %{acct} is opgeschort
title:
+ delete_statuses: Berichten verwijderd
disable: Account bevroren
+ mark_statuses_as_sensitive: Berichten als gevoelig gemarkeerd
none: Waarschuwing
+ sensitive: Account is als gevoelig gemarkeerd
silence: Account beperkt
suspend: Account opgeschort
welcome:
edit_profile_action: Profiel instellen
- edit_profile_step: Je kunt jouw profiel aanpassen door een avatar (profielfoto) en omslagfoto te uploaden, jouw weergavenaam in te stellen en iets over jezelf te vertellen. Wanneer je nieuwe volgers eerst wilt goedkeuren, kun je jouw account besloten maken.
+ edit_profile_step: Je kunt jouw profiel aanpassen door een profielafbeelding (avatar) te uploaden, jouw weergavenaam aan te passen en meer. Je kunt het handmatig goedkeuren van volgers instellen.
explanation: Hier zijn enkele tips om je op weg te helpen
final_action: Begin berichten te plaatsen
- final_step: 'Begin berichten te plaatsen! Zelfs zonder volgers kunnen jouw openbare berichten door anderen gezien worden, bijvoorbeeld op de lokale tijdlijn en via hashtags. Je wilt jezelf misschien introduceren met de hashtag #introductions.'
+ final_step: 'Begin berichten te plaatsen! Zelfs zonder volgers kunnen jouw openbare berichten door anderen bekeken worden, bijvoorbeeld op de lokale tijdlijn en onder hashtags. Je kunt jezelf voorstellen met het gebruik van de hashtag #introductions.'
full_handle: Jouw volledige Mastodonadres
full_handle_hint: Dit geef je aan jouw vrienden, zodat ze jouw berichten kunnen sturen of (vanaf een andere Mastodonserver) kunnen volgen.
- review_preferences_action: Instellingen veranderen
- review_preferences_step: Zorg dat je jouw instellingen naloopt, zoals welke e-mails je wilt ontvangen of voor wie jouw berichten standaard zichtbaar moeten zijn. Wanneer je geen last hebt van bewegende beelden, kun je het afspelen van geanimeerde GIF's inschakelen.
subject: Welkom op Mastodon
- tip_federated_timeline: De globale tijdlijn toont berichten in het Mastodonnetwerk. Het bevat echter alleen berichten van mensen waar jouw buren mee zijn verbonden, dus het is niet compleet.
- tip_following: Je volgt standaard de beheerder(s) van jouw Mastodonserver. Bekijk de lokale en de globale tijdlijnen om meer interessante mensen te vinden.
- tip_local_timeline: De lokale tijdlijn toont berichten van mensen op %{instance}. Dit zijn jouw naaste buren!
- tip_mobile_webapp: Wanneer jouw mobiele webbrowser Mastodon aan jouw startscherm wilt toevoegen, kun je pushmeldingen ontvangen. Het gedraagt zich op meerdere manieren als een native app!
- tips: Tips
title: Welkom aan boord %{name}!
users:
follow_limit_reached: Je kunt niet meer dan %{limit} accounts volgen
diff --git a/config/locales/nn.yml b/config/locales/nn.yml
index ea5020bbfe..b989db081e 100644
--- a/config/locales/nn.yml
+++ b/config/locales/nn.yml
@@ -1,86 +1,26 @@
---
nn:
about:
- about_hashtag_html: Dette er offentlege tut merkt med #%{hashtag} . Du kan nytta dei om du har ein konto kvar som helst i fødiverset.
about_mastodon_html: 'Framtidas sosiale nettverk: Ingen annonsar, ingen verksemder som overvaker deg, etisk design og desentralisering! Eig idéane dine med Mastodon!'
- about_this: Om oss
- active_count_after: aktiv
- active_footnote: Månadlege aktive brukarar (MAB)
- administered_by: 'Administrert av:'
- api: API
- apps: Mobilappar
- apps_platforms: Bruk Mastodon på iOS, Android og andre plattformer
- browse_directory: Bla gjennom en profilmappe og filtrer etter interesser
- browse_local_posts: Bla i en sanntidsstrøm av offentlige innlegg fra denne tjeneren
- browse_public_posts: Sjå ei direktesending av offentlege innlegg på Mastodon
- contact: Kontakt
contact_missing: Ikkje sett
contact_unavailable: I/T
- discover_users: Oppdag brukarar
- documentation: Dokumentasjon
- federation_hint_html: Med ein konto på %{instance} kan du fylgja folk på kva som helst slags Mastod-tenar og meir.
- get_apps: Prøv ein mobilapp
hosted_on: "%{domain} er vert for Mastodon"
- instance_actor_flash: "Denne brukeren er en virtuell aktør brukt til å representere selve serveren og ingen individuell bruker. Det brukes til foreningsformål og bør ikke blokkeres med mindre du vil blokkere hele instansen, hvor domeneblokkering bør brukes i stedet. \n"
- learn_more: Lær meir
- privacy_policy: Personvernsreglar
- rules: Server regler
- rules_html: 'Nedenfor er et sammendrag av reglene du må følge om du vil ha en konto på denne serveren av Mastodon:'
- see_whats_happening: Sjå kva som skjer
- server_stats: 'Tenarstatistikk:'
- source_code: Kjeldekode
- status_count_before: Som skreiv
- tagline: Fylg vener og oppdag nye
- terms: Brukarvilkår
- unavailable_content: Utilgjengeleg innhald
- unavailable_content_description:
- domain: Sørvar
- reason: Grunn
- rejecting_media: 'Mediafiler fra disse tjenerne vil ikke bli behandlet eller lagret, og ingen miniatyrbilder vil bli vist, noe som vil kreve manuell klikking for å besøke den opprinnelige filen:'
- rejecting_media_title: Filtrert media
- silenced: 'Innlegg frå desse tenarane vert gøymde frå offentlege tidsliner og samtalar, og det kjem ingen varsel frå samhandlingane til brukarane deira, med mindre du fylgjer dei:'
- silenced_title: Stilnede tjenere
- suspended: 'Ingen data frå desse tenarane vert handsama, lagra eller sende til andre, som gjer det umogeleg å samhandla eller kommunisera med andre brukarar frå desse tenarane:'
- suspended_title: Suspenderte tjenere
- unavailable_content_html: Mastodon gjev deg som regel lov til å sjå innhald og samhandla med brukarar frå alle andre tenarar i fødiverset. Dette er unnataka som er valde for akkurat denne tenaren.
- user_count_after:
- one: brukar
- other: brukarar
- user_count_before: Her bur
- what_is_mastodon: Kva er Mastodon?
accounts:
- choices_html: "%{name} sine val:"
- endorsements_hint: Du kan fremja folk dy fylgjer frå grensesnittet på nettet, og då visast dei her.
- featured_tags_hint: Du kan velja emneknaggar som skal visast her.
follow: Fylg
followers:
one: Fylgjar
other: Fylgjarar
following: Fylgjer
instance_actor_flash: Denne kontoen er en virtuell figur som brukes til å representere selve serveren og ikke noen individuell bruker. Den brukes til forbundsformål og bør ikke oppheves.
- joined: Vart med %{date}
last_active: sist aktiv
link_verified_on: Eigarskap for denne lenkja vart sist sjekka %{date}
- media: Media
- moved_html: "%{name} har flytta til %{new_profile_link}:"
- network_hidden: Denne informasjonen er ikkje tilgjengeleg
nothing_here: Her er det ingenting!
- people_followed_by: Folk som %{name} fylgjer
- people_who_follow: Folk som fylgjer %{name}
pin_errors:
following: Du må allereie fylgja personen du vil fremja
posts:
one: Tut
other: Tut
posts_tab_heading: Tut
- posts_with_replies: Tut og svar
- roles:
- admin: Administrator
- bot: Robot
- group: Gruppe
- moderator: Moderator
- unavailable: Profil ikkje tilgjengeleg
- unfollow: Slutt å fylgja
admin:
account_actions:
action: Utfør
@@ -97,12 +37,15 @@ nn:
avatar: Bilete
by_domain: Domene
change_email:
- changed_msg: Konto-e-posten er endra!
current_email: Noverande e-post
label: Byt e-post
new_email: Ny e-post
submit: Byt e-post
title: Byt e-post for %{username}
+ change_role:
+ label: Endre rolle
+ no_role: Inga rolle
+ title: Endre rolle for %{username}
confirm: Stadfest
confirmed: Stadfesta
confirming: Stadfestar
@@ -174,17 +117,12 @@ nn:
reset: Attstill
reset_password: Attstill passord
resubscribe: Ting på nytt
- role: Løyve
- roles:
- admin: Administrator
- moderator: Ordstyrer
- staff: Personell
- user: Brukar
+ role: Rolle
search: Søk
search_same_email_domain: Andre brukarar med same e-postdomene
search_same_ip: Andre brukarar med same IP
security_measures:
- only_password: Bare passord
+ only_password: Kun passord
password_and_2fa: Passord og 2FA
sensitized: Merket som følsom
shared_inbox_url: Delt Innboks URL
@@ -257,7 +195,6 @@ nn:
create_ip_block_html: "%{name} opprettet regel for IP %{target}"
reject_user_html: "%{name} avslo registrering fra %{target}"
silence_account_html: "%{name} begrenset %{target} sin konto"
- deleted_status: "(sletta status)"
empty: Ingen loggar funne.
filter_by_action: Sorter etter handling
filter_by_user: Sorter etter brukar
@@ -486,92 +423,15 @@ nn:
empty: Ingen serverregler har blitt definert ennå.
title: Server regler
settings:
- activity_api_enabled:
- desc_html: Antall lokale statusposter, aktive brukere og nye registreringer i ukentlige oppdelinger
- title: Publiser samlet statistikk om brukeraktiviteter
- bootstrap_timeline_accounts:
- desc_html: Separer flere brukernavn med komma. Kun lokale og ulåste kontoer vil kunne brukes. Dersom tomt er standarden alle lokale administratorer.
- title: Standard fylgjer for nye brukarar
- contact_information:
- email: Offentleg e-postadresse
- username: Brukarnamn for kontakt
- custom_css:
- desc_html: Modifiser utseendet med CSS lastet på hver side
- title: Eigen CSS
- default_noindex:
- desc_html: Påverkar alle brukarar som ikkje har justert denne innstillinga sjølve
- title: Velg brukere som er ute av søkemotoren indeksering som standard
domain_blocks:
all: Til alle
disabled: Til ingen
- title: Vis domeneblokkeringer
users: Til lokale brukarar som er logga inn
- domain_blocks_rationale:
- title: Vis kvifor
- hero:
- desc_html: Vises på forsiden. Minst 600×100px er anbefalt. Dersom dette ikke er valgt, faller det tilbake på tjenerens miniatyrbilde
- title: Heltebilete
- mascot:
- desc_html: Vist på flere sider. Minst 293×205px er anbefalt. Dersom det ikke er valgt, faller det tilbake til standardmaskoten
- title: Maskotbilete
- peers_api_enabled:
- desc_html: Domenenavn denne instansen har truffet på i fediverset
- title: Publiser liste over oppdaga tenarar
- preview_sensitive_media:
- desc_html: Lenkeforhåndsvisninger på andre nettsteder vil vise et miniatyrbilde selv dersom mediet er merket som sensitivt
- title: Vis sensitive medier i OpenGraph-forhåndsvisninger
- profile_directory:
- desc_html: Gjer at brukarar kan oppdagast
- title: Skru på profilmappen
- registrations:
- closed_message:
- desc_html: Vises på forsiden når registreringer er lukket Du kan bruke HTML-tagger
- title: Melding for lukket registrering
- deletion:
- desc_html: Tillat alle å sletta kontoen sin
- title: Åpne kontosletting
- min_invite_role:
- disabled: Ingen
- title: Tillat innbydingar frå
- require_invite_text:
- desc_html: Når registreringer krever manuell godkjenning, må du føye «Hvorfor vil du bli med?» tekstinput obligatoriske i stedet for valgfritt
- title: Krev nye brukere for å oppgi en grunn for å delta
registrations_mode:
modes:
approved: Godkjenning kreves for påmelding
none: Ingen kan melda seg inn
open: Kven som helst kan melda seg inn
- title: Registreringsmodus
- show_known_fediverse_at_about_page:
- desc_html: Begrenser den offentlige tidslinjen som er knyttet til landingssiden når den er deaktivert, og viser bare lokalt innhold
- show_staff_badge:
- desc_html: Vis personalmerke på ei brukarside
- title: Vis personalmerke
- site_description:
- desc_html: Vises som et avsnitt på forsiden og brukes som en meta-tagg. Du kan bruke HTML-tagger, spesielt <a>
og <em>
.
- title: Tenarskilding
- site_description_extended:
- desc_html: Ein god stad å setja reglar for åtferdskode, reglar, rettningsliner og andre ting som skil din tenar frå andre. Du kan nytta HTML-taggar
- title: Utvidet nettstedsinformasjon
- site_short_description:
- desc_html: Vist i sidelinjen og i metastempler. Beskriv hva Mastodon er og hva som gjør denne tjeneren spesiell i én enkelt paragraf.
- title: Stutt om tenaren
- site_terms:
- desc_html: Du kan skrive din egen personverns-strategi, bruksviklår og andre regler. Du kan bruke HTML tagger
- title: Eigne brukarvilkår
- site_title: Tenarnamn
- thumbnail:
- desc_html: Brukes ved forhandsvisning via OpenGraph og API. 1200x630px anbefales
- title: Småbilete for tenaren
- timeline_preview:
- desc_html: Vis offentlig tidslinje på landingssiden
- title: Tillat uautentisert tilgang til offentleg tidsline
- title: Sideinnstillingar
- trendable_by_default:
- desc_html: Påverkar emneknaggar som ikkje har vore tillatne tidlegare
- title: Tillat emneknaggar å verta populære utan gjennomgang på førehand
- trends:
- title: Populære emneknaggar
site_uploads:
delete: Slett opplasta fil
destroyed_msg: Vellukka sletting av sideopplasting!
@@ -634,16 +494,12 @@ nn:
applications:
created: Søknad laga
destroyed: Søknad sletta
- invalid_url: Denne lenkja er ugyldig
regenerate_token: Lag tilgangsnykel på nytt
token_regenerated: Tilgangsnykel laga på nytt
warning: Ver varsam med dette datumet. Aldri del det med nokon!
your_token: Tilgangsnykelen din
auth:
- apply_for_account: Bed om innbyding
change_password: Passord
- checkbox_agreement_html: Eg godtek tenarreglane og tenestevilkåra
- checkbox_agreement_without_rules_html: Eg godtek tenestevilkåra
delete_account: Slett konto
delete_account_html: Om du vil sletta kontoen din, kan du gå hit . Du vert spurd etter stadfesting.
description:
@@ -679,7 +535,6 @@ nn:
confirming: Ventar på stadfesting av e-post.
pending: Søknaden din ventar på gjennomgang frå personalet vårt. Dette kan taka litt tid. Du får ein e-post om søknaden din vert godkjend.
redirecting_to: Kontoen din er inaktiv fordi den for øyeblikket omdirigerer til %{acct}.
- trouble_logging_in: Får du ikkje logga inn?
use_security_key: Bruk sikkerhetsnøkkel
authorize_follow:
already_following: Du fylgjer allereie denne kontoen
@@ -733,10 +588,6 @@ nn:
more_details_html: For fleire detaljar, sjå personvernsvilkåra .
username_available: Brukarnamnet ditt vert tilgjengeleg igjen
username_unavailable: Brukarnamnet ditt kjem til å halda seg utilgjengeleg
- directories:
- directory: Profilkatalog
- explanation: Leit fram brukarar etter interessa deira
- explore_mastodon: Utforsk %{title}
domain_validator:
invalid_domain: er ikkje eit gangbart domenenamn
errors:
@@ -795,9 +646,6 @@ nn:
new:
title: Legg til nytt filter
footer:
- developers: Utviklarar
- more: Meir…
- resources: Ressursar
trending_now: Populært no
generic:
all: Alle
@@ -826,7 +674,6 @@ nn:
following: Fylgjeliste
muting: Dempeliste
upload: Last opp
- in_memoriam_html: Til minne.
invites:
delete: Slå av
expired: Utgått
@@ -898,14 +745,6 @@ nn:
carry_mutes_over_text: Denne brukeren flyttet fra %{acct}, som du hadde dempet.
copy_account_note_text: 'Denne brukeren flyttet fra %{acct}, her var dine tidligere notater om dem:'
notification_mailer:
- digest:
- action: Sjå alle varsel
- body: Her er ei kort samanfatting av meldingane du gjekk glepp av sidan siste gong du var innom %{since}
- mention: "%{name} nemnde deg i:"
- new_followers_summary:
- one: Du har forresten fått deg ein ny fylgjar mens du var borte! Hurra!
- other: Du har forresten fått deg %{count} nye fylgjarar mens du var borte! Hurra!
- title: Mens du var borte...
favourite:
body: 'Statusen din vart merkt som favoritt av %{name}:'
subject: "%{name} merkte statusen din som favoritt"
@@ -995,22 +834,7 @@ nn:
remove_selected_follows: Slutt å fylgja desse brukarane
status: Kontostatus
remote_follow:
- acct: Tast inn brukernavn@domene som du vil følge fra
missing_resource: Kunne ikke finne URLen for din konto
- no_account_html: Har du ikkje konto? Du kan melda deg inn her
- proceed: Hald fram med å fylgja
- prompt: 'Du kjem til å fylgja:'
- reason_html: "Hvorfor dette trinnet er nødvendig? %{instance}
er kanskje ikke tjeneren som du er registrert på, så vi må omdirigere deg til hjemmetjeneren din først."
- remote_interaction:
- favourite:
- proceed: Merk som favoritt
- prompt: 'Du vil merkja dette tutet som favoritt:'
- reblog:
- proceed: Framhev
- prompt: 'Du vil framheva dette tutet:'
- reply:
- proceed: Svar
- prompt: 'Du vil svara på dette tutet:'
scheduled_statuses:
over_daily_limit: Du har overskredet grensen på %{limit} planlagte tuter for den dagen
over_total_limit: Du har overskredet grensen på %{limit} planlagte tuter
@@ -1126,8 +950,6 @@ nn:
sensitive_content: Følsomt innhold
tags:
does_not_match_previous_name: stemmar ikkje med det førre namnet
- terms:
- title: Tenestevilkår og personvernsvilkår for %{instance}
themes:
contrast: Mastodon (Høg kontrast)
default: Mastodon (Mørkt)
@@ -1168,20 +990,11 @@ nn:
suspend: Konto utvist
welcome:
edit_profile_action: Lag til profil
- edit_profile_step: Du kan tilpasse din profil ved å laste opp en avatar, overskrift, endre ditt visningsnavn med mer. Hvis du vil godkjenne hvilke personer som får lov til å følge deg kan du låse kontoen.
explanation: Her er nokre tips for å koma i gang
final_action: Kom i gang med å leggja ut
- final_step: 'Byrj å skriva innlegg! Sjølv utan fylgjarar kan andre sjå dei offentlege meldingane dine, til dømes på den lokale tidslina og i emneknaggar. Du har kanskje lyst til å introdusera deg med emneknaggen #introductions.'
full_handle: Det fulle brukarnamnet ditt
full_handle_hint: Dette er det du fortel venene dine for at dei skal kunna senda deg meldingar eller fylgja deg frå ein annan tenar.
- review_preferences_action: Endr innstillingar
- review_preferences_step: Husk å justere dine innstillinger, som hvilke e-poster du ønsker å motta, eller hvor private du ønsker at dine poster skal være som standard. Hvis du ikke har bevegelsessyke kan du skru på automatisk avspilling av GIF-animasjoner.
subject: Velkomen til Mastodon
- tip_federated_timeline: Den forente tidslinjen blir konstant matet med meldinger fra Mastodon-nettverket. Men den inkluderer bare personer dine naboer abbonerer på, så den er ikke komplett.
- tip_following: Du fylgjer automatisk tenaradministrator(ane). For å finna fleire forvitnelege folk kan du sjekka den lokale og fødererte tidslina.
- tip_local_timeline: Den lokale tidslinjen blir kontant matet med meldinger fra personer på %{instance}. Dette er dine nærmeste naboer!
- tip_mobile_webapp: Hvis din mobile nettleser tilbyr deg å legge Mastadon til din hjemmeskjerm kan du motta push-varslinger. Det er nesten som en integrert app på mange måter!
- tips: Tips
title: Velkomen om bord, %{name}!
users:
follow_limit_reached: Du kan ikkje fylgja fleire enn %{limit} folk
diff --git a/config/locales/no.yml b/config/locales/no.yml
index 4abc8f086d..09dcc93c7e 100644
--- a/config/locales/no.yml
+++ b/config/locales/no.yml
@@ -1,89 +1,26 @@
---
'no':
about:
- about_hashtag_html: Dette er offentlige toots merket med #%{hashtag} . Du kan interagere med dem om du har en konto et sted i fediverset.
about_mastodon_html: Mastodon er et sosialt nettverk laget med fri programvare . Et desentralisert alternativ til kommersielle plattformer. Slik kan det unngå risikoene ved å ha et enkelt selskap som monopoliserer din kommunikasjon. Velg en tjener du stoler på — uansett hvilken du velger så kan du kommunisere med alle andre. Alle kan kjøre sin egen Mastodon og delta sømløst i det sosiale nettverket.
- about_this: Om
- active_count_after: aktive
- active_footnote: Månedlige aktive brukere (MAU)
- administered_by: 'Administrert av:'
- api: API
- apps: Mobilapper
- apps_platforms: Bruk Mastodon gjennom iOS, Android og andre plattformer
- browse_directory: Bla gjennom en profilmappe og filtrer etter interesser
- browse_local_posts: Bla i en sanntidsstrøm av offentlige innlegg fra denne tjeneren
- browse_public_posts: Bla i en sanntidsstrøm av offentlige innlegg på Mastodon
- contact: Kontakt
contact_missing: Ikke innstilt
contact_unavailable: Ikke tilgjengelig
- discover_users: Oppdag brukere
- documentation: Dokumentasjon
- federation_hint_html: Med en konto på %{instance} vil du kunne følge folk på enhver Mastodon-tjener, og mer til.
- get_apps: Prøv en mobilapp
hosted_on: Mastodon driftet på %{domain}
- instance_actor_flash: "Denne brukeren er en virtuell aktør brukt til å representere selve serveren og ingen individuell bruker. Det brukes til foreningsformål og bør ikke blokkeres med mindre du vil blokkere hele instansen, hvor domeneblokkering bør brukes i stedet. \n"
- learn_more: Lær mer
- privacy_policy: Privatlivsretningslinjer
- rules: Server regler
- rules_html: 'Nedenfor er et sammendrag av reglene du må følge om du vil ha en konto på denne serveren av Mastodon:'
- see_whats_happening: Se hva som skjer
- server_stats: 'Tjenerstatistikker:'
- source_code: Kildekode
- status_count_after:
- one: innlegg
- other: statuser
- status_count_before: Som skrev
- tagline: Følg venner og oppdag nye
- terms: Bruksvilkår
- unavailable_content: Utilgjengelig innhold
- unavailable_content_description:
- domain: Tjener
- reason: Årsak
- rejecting_media: 'Mediafiler fra disse tjenerne vil ikke bli behandlet eller lagret, og ingen miniatyrbilder vil bli vist, noe som vil kreve manuell klikking for å besøke den opprinnelige filen:'
- rejecting_media_title: Filtrert media
- silenced: 'Innlegg fra disse tjenerne vil bli skjult fra offentlige tidslinjer og samtaler, og ingen varslinger vil bli generert fra disse brukernes samhandlinger, med mindre du følger dem:'
- silenced_title: Stilnede tjenere
- suspended: 'Ingen data fra disse tjenerne vil bli behandlet, lagret, eller utvekslet, noe som vil gjøre enhver samhandling eller kommunikasjon med brukere fra disse tjenerne umulig:'
- suspended_title: Suspenderte tjenere
- unavailable_content_html: Mastodon lar deg vanligvis se innhold fra og samhandle med brukere fra enhver annen tjener i strømiverset. Dette er unntakene som har blitt gjort på denne spesifikke tjeneren.
- user_count_after:
- one: bruker
- other: brukere
- user_count_before: Her bor
- what_is_mastodon: Hva er Mastodon?
accounts:
- choices_html: "%{name} sine anbefalte:"
- endorsements_hint: Du kan fremheve personer du følger fra nettgrensesnittet som deretter vil bli vist her.
- featured_tags_hint: Du kan fremheve spesifikke emneknagger som vil bli vist her.
follow: Følg
followers:
one: Følger
other: Følgere
following: Følger
instance_actor_flash: Denne kontoen er en virtuell figur som brukes til å representere selve serveren og ikke noen individuell bruker. Den brukes til forbundsformål og bør ikke oppheves.
- joined: Ble med den %{date}
last_active: sist aktiv
link_verified_on: Eierskap av denne lenken ble sjekket %{date}
- media: Media
- moved_html: "%{name} har flyttet til %{new_profile_link}:"
- network_hidden: Denne informasjonen er ikke tilgjengelig
nothing_here: Det er ingenting her!
- people_followed_by: Folk som %{name} følger
- people_who_follow: Folk som følger %{name}
pin_errors:
following: Du må allerede følge personen du vil fremheve
posts:
one: Tut
other: Tuter
posts_tab_heading: Tuter
- posts_with_replies: Tuter med svar
- roles:
- admin: Administrator
- bot: Bot
- group: Gruppe
- moderator: Moderere
- unavailable: Profilen er utilgjengelig
- unfollow: Slutt å følge
admin:
account_actions:
action: Utfør handling
@@ -100,7 +37,6 @@
avatar: Profilbilde
by_domain: Domene
change_email:
- changed_msg: Konto-E-postadressen ble vellykket endret!
current_email: Nåværende E-post
label: Endre e-post
new_email: Ny E-post
@@ -177,12 +113,6 @@
reset: Tilbakestill
reset_password: Nullstill passord
resubscribe: Abonner på nytt
- role: Rettigheter
- roles:
- admin: Administrator
- moderator: Ordstyrer
- staff: Personale
- user: Bruker
search: Søk
search_same_email_domain: Andre brukere med samme E-postdomene
search_same_ip: Andre brukere med den samme IP-en
@@ -257,7 +187,6 @@
create_ip_block_html: "%{name} opprettet regel for IP %{target}"
reject_user_html: "%{name} avslo registrering fra %{target}"
silence_account_html: "%{name} begrenset %{target} sin konto"
- deleted_status: "(statusen er slettet)"
empty: Ingen loggføringer ble funnet.
filter_by_action: Sorter etter handling
filter_by_user: Sorter etter bruker
@@ -486,92 +415,15 @@
empty: Ingen serverregler har blitt definert ennå.
title: Server regler
settings:
- activity_api_enabled:
- desc_html: Antall lokale statusposter, aktive brukere og nye registreringer i ukentlige oppdelinger
- title: Publiser samlet statistikk om brukeraktiviteter
- bootstrap_timeline_accounts:
- desc_html: Separer flere brukernavn med komma. Kun lokale og ulåste kontoer vil kunne brukes. Dersom tomt er standarden alle lokale administratorer.
- title: Standard følgere for nye brukere
- contact_information:
- email: Skriv en offentlig e-postadresse
- username: Skriv brukernavn
- custom_css:
- desc_html: Modifiser utseendet med CSS lastet på hver side
- title: Egendefinert CSS
- default_noindex:
- desc_html: Påvirker alle brukerne som ikke har justert denne innstillingen selv
- title: Velg brukere som er ute av søkemotoren indeksering som standard
domain_blocks:
all: Til alle
disabled: Til ingen
- title: Vis domeneblokkeringer
users: Til lokale brukere som er logget inn
- domain_blocks_rationale:
- title: Vis grunnlaget
- hero:
- desc_html: Vises på forsiden. Minst 600×100px er anbefalt. Dersom dette ikke er valgt, faller det tilbake på tjenerens miniatyrbilde
- title: Heltebilde
- mascot:
- desc_html: Vist på flere sider. Minst 293×205px er anbefalt. Dersom det ikke er valgt, faller det tilbake til standardmaskoten
- title: Maskotbilde
- peers_api_enabled:
- desc_html: Domenenavn denne instansen har truffet på i fediverset
- title: Publiser liste over oppdagede instanser
- preview_sensitive_media:
- desc_html: Lenkeforhåndsvisninger på andre nettsteder vil vise et miniatyrbilde selv dersom mediet er merket som sensitivt
- title: Vis sensitive medier i OpenGraph-forhåndsvisninger
- profile_directory:
- desc_html: Tillat brukere å bli oppdagelige
- title: Skru på profilmappen
- registrations:
- closed_message:
- desc_html: Vises på forsiden når registreringer er lukket Du kan bruke HTML-tagger
- title: Melding for lukket registrering
- deletion:
- desc_html: Tillat alle å slette sin konto
- title: Åpne kontosletting
- min_invite_role:
- disabled: Ingen
- title: Tillat invitasjoner fra
- require_invite_text:
- desc_html: Når registreringer krever manuell godkjenning, må du føye «Hvorfor vil du bli med?» tekstinput obligatoriske i stedet for valgfritt
- title: Krev nye brukere for å oppgi en grunn for å delta
registrations_mode:
modes:
approved: Godkjenning kreves for påmelding
none: Ingen kan melde seg inn
open: Hvem som helst kan melde seg inn
- title: Registreringsmodus
- show_known_fediverse_at_about_page:
- desc_html: Begrenser den offentlige tidslinjen som er knyttet til landingssiden når den er deaktivert, og viser bare lokalt innhold
- show_staff_badge:
- desc_html: Vis personalemerke på brukersiden
- title: Vis personalemerke
- site_description:
- desc_html: Vises som et avsnitt på forsiden og brukes som en meta-tagg. Du kan bruke HTML-tagger, spesielt <a>
og <em>
.
- title: Nettstedsbeskrivelse
- site_description_extended:
- desc_html: Vises på side for utvidet informasjon. Du kan bruke HTML-tagger
- title: Utvidet nettstedsinformasjon
- site_short_description:
- desc_html: Vist i sidelinjen og i metastempler. Beskriv hva Mastodon er og hva som gjør denne tjeneren spesiell i én enkelt paragraf.
- title: Kort tjenerbeskrivelse
- site_terms:
- desc_html: Du kan skrive din egen personverns-strategi, bruksviklår og andre regler. Du kan bruke HTML tagger
- title: Skreddersydde bruksvilkår
- site_title: Nettstedstittel
- thumbnail:
- desc_html: Brukes ved forhandsvisning via OpenGraph og API. 1200x630px anbefales
- title: Miniatyrbilde for instans
- timeline_preview:
- desc_html: Vis offentlig tidslinje på landingssiden
- title: Forhandsvis tidslinjen
- title: Nettstedsinnstillinger
- trendable_by_default:
- desc_html: Påvirker hashtags som ikke har blitt nektet tidligere
- title: Tillat hashtags for trend uten foregående vurdering
- trends:
- title: Trendende emneknagger
site_uploads:
delete: Slett den opplastede filen
destroyed_msg: Vellykket sletting av sideopplasting!
@@ -629,16 +481,12 @@
applications:
created: Søknaden ble vellykket oppretttet
destroyed: Søknaden ble vellykket slettet
- invalid_url: Den oppgitte URLen er ugyldig
regenerate_token: Regenerer tilgangsnøkkel
token_regenerated: Tilgangsnøkkel vellykket regenerert
warning: Vær veldig forsiktig med denne data. Aldri del den med noen!
your_token: Din tilgangsnøkkel
auth:
- apply_for_account: Be om en invitasjon
change_password: Passord
- checkbox_agreement_html: Jeg godtar tjenerens regler og bruksvilkår
- checkbox_agreement_without_rules_html: Jeg godtar bruksvilkårene
delete_account: Slett konto
delete_account_html: Hvis du ønsker å slette kontoen din, kan du gå hit . Du vil bli spurt om bekreftelse.
description:
@@ -674,7 +522,6 @@
confirming: Venter på at e-postbekreftelsen er fullført.
pending: Søknaden din avventer gjennomgang av styret vårt. Dette kan ta litt tid. Du vil motta en E-post dersom søknaden din blir godkjent.
redirecting_to: Kontoen din er inaktiv fordi den for øyeblikket omdirigerer til %{acct}.
- trouble_logging_in: Har du problemer med å logge på?
use_security_key: Bruk sikkerhetsnøkkel
authorize_follow:
already_following: Du følger allerede denne kontoen
@@ -727,10 +574,6 @@
more_details_html: For mere detaljer, se privatlivsretningslinjene .
username_available: Brukernavnet ditt vil bli gjort tilgjengelig igjen
username_unavailable: Brukernavnet ditt vil forbli utilgjengelig
- directories:
- directory: Profilmappe
- explanation: Oppdag brukere basert på deres interesser
- explore_mastodon: Utforsk %{title}
domain_validator:
invalid_domain: er ikke et gyldig domenenavn
errors:
@@ -785,9 +628,6 @@
new:
title: Legg til nytt filter
footer:
- developers: Utviklere
- more: Mer…
- resources: Ressurser
trending_now: Trender nå
generic:
all: Alle
@@ -813,7 +653,6 @@
following: Følgeliste
muting: Dempeliste
upload: Opplastning
- in_memoriam_html: Til minne.
invites:
delete: Deaktiver
expired: Utløpt
@@ -885,14 +724,6 @@
carry_mutes_over_text: Denne brukeren flyttet fra %{acct}, som du hadde dempet.
copy_account_note_text: 'Denne brukeren flyttet fra %{acct}, her var dine tidligere notater om dem:'
notification_mailer:
- digest:
- action: Vis alle varslinger
- body: Her er en kort oppsummering av hva du har gått glipp av siden du sist logget inn den %{since}
- mention: "%{name} nevnte deg i:"
- new_followers_summary:
- one: I tillegg har du fått en ny følger mens du var borte. Hurra!
- other: I tillegg har du har fått %{count} nye følgere mens du var borte! Imponerende!
- title: I ditt fravær…
favourite:
body: 'Statusen din ble likt av %{name}:'
subject: "%{name} likte statusen din"
@@ -982,22 +813,7 @@
remove_selected_follows: Avfølg de valgte brukerne
status: Kontostatus
remote_follow:
- acct: Tast inn brukernavn@domene som du vil følge fra
missing_resource: Kunne ikke finne URLen for din konto
- no_account_html: Har du ikke en konto? Da kan du lage en konto her
- proceed: Fortsett med følging
- prompt: 'Du vil følge:'
- reason_html: "Hvorfor dette trinnet er nødvendig? %{instance}
er kanskje ikke tjeneren som du er registrert på, så vi må omdirigere deg til hjemmetjeneren din først."
- remote_interaction:
- favourite:
- proceed: Fortsett til likingen
- prompt: 'Du ønsker å like denne tuten:'
- reblog:
- proceed: Fortsett til fremhevingen
- prompt: 'Du ønsker å fremheve denne tuten:'
- reply:
- proceed: Fortsett til svaret
- prompt: 'Du ønsker å svare på denne tuten:'
scheduled_statuses:
over_daily_limit: Du har overskredet grensen på %{limit} planlagte tuter for den dagen
over_total_limit: Du har overskredet grensen på %{limit} planlagte tuter
@@ -1116,8 +932,6 @@
sensitive_content: Følsomt innhold
tags:
does_not_match_previous_name: samsvarer ikke med det forrige navnet
- terms:
- title: "%{instance} Personvern og villkår for bruk av nettstedet"
themes:
contrast: Mastodon (Høykontrast)
default: Mastodon
@@ -1158,20 +972,11 @@
suspend: Kontoen er suspendert
welcome:
edit_profile_action: Sett opp profil
- edit_profile_step: Du kan tilpasse din profil ved å laste opp en avatar, overskrift, endre ditt visningsnavn med mer. Hvis du vil godkjenne hvilke personer som får lov til å følge deg kan du låse kontoen.
explanation: Her er noen tips for å komme i gang
final_action: Start postingen
- final_step: 'Start å poste! Selv uten følgere kan dine offentlige meldinger bli sett av andre, for eksempel på den lokale tidslinjen og i emneknagger. Du kan introdusere deg selv ved å bruke emneknaggen #introductions.'
full_handle: Ditt fullstendige brukernavn
full_handle_hint: Dette er hva du forteller venner slik at de kan sende melding eller følge deg fra en annen instanse.
- review_preferences_action: Endre innstillinger
- review_preferences_step: Husk å justere dine innstillinger, som hvilke e-poster du ønsker å motta, eller hvor private du ønsker at dine poster skal være som standard. Hvis du ikke har bevegelsessyke kan du skru på automatisk avspilling av GIF-animasjoner.
subject: Velkommen til Mastodon
- tip_federated_timeline: Den forente tidslinjen blir konstant matet med meldinger fra Mastodon-nettverket. Men den inkluderer bare personer dine naboer abbonerer på, så den er ikke komplett.
- tip_following: Du følger din tjeners administrator(er) som standard. For å finne mer interessante personer, sjekk den lokale og forente tidslinjen.
- tip_local_timeline: Den lokale tidslinjen blir kontant matet med meldinger fra personer på %{instance}. Dette er dine nærmeste naboer!
- tip_mobile_webapp: Hvis din mobile nettleser tilbyr deg å legge Mastadon til din hjemmeskjerm kan du motta push-varslinger. Det er nesten som en integrert app på mange måter!
- tips: Tips
title: Velkommen ombord, %{name}!
users:
follow_limit_reached: Du kan ikke følge mer enn %{limit} personer
diff --git a/config/locales/oc.yml b/config/locales/oc.yml
index 678d5d0dcd..2c625f46bf 100644
--- a/config/locales/oc.yml
+++ b/config/locales/oc.yml
@@ -1,83 +1,25 @@
---
oc:
about:
- about_hashtag_html: Vaquí los estatuts publics ligats a #%{hashtag} . Podètz interagir amb eles s’avètz un compte ont que siasque sul fediverse.
about_mastodon_html: Mastodon es un malhum social bastit amb de protocòls liures e gratuits. Es descentralizat coma los corrièls.
- about_this: A prepaus d’aquesta instància
- active_count_after: actius
- active_footnote: Utilizaire actius per mes (UAM)
- administered_by: 'Administrat per :'
- api: API
- apps: Aplicacions per mobil
- apps_platforms: Utilizatz Mastodon d‘iOS, Android o d’autras plataforma estant
- browse_directory: Navigatz per l’annuari de perfil e filtratz segon çò qu’aimatz
- browse_local_posts: Percórrer un flux en dirècte de las publicacions publicas d’aqueste servidor
- browse_public_posts: Navigatz pel flux public a Mastodon
- contact: Contacte
contact_missing: Pas parametrat
contact_unavailable: Pas disponible
- discover_users: Descobrissètz de nòvas personas
- documentation: Documentacion
- federation_hint_html: Amb un compte sus %{instance} poiretz sègre de personas de qualque siasque servidor Mastodon e encara mai.
- get_apps: Ensajatz una aplicacion mobil
hosted_on: Mastodon albergat sus %{domain}
- learn_more: Ne saber mai
- privacy_policy: Politica de confidencialitat
- rules: Règlas del servidor
- see_whats_happening: Agachatz çò qu’arriba
- server_stats: 'Estatisticas del servidor :'
- source_code: Còdi font
- status_count_after:
- one: estatut
- other: estatuts
- status_count_before: qu’an escrich
- tagline: Seguètz d’amics e trobatz-ne de nòus
- terms: Condicions d’utilizacion
- unavailable_content: Contengut pas disponible
- unavailable_content_description:
- domain: Servidor
- reason: 'Motiu :'
- rejecting_media: 'Los fichièrs mèdias d’aquestes servidors estant seràn pas tractats o gardats e pas cap de miniatura serà pas mostrada, demanda de clicar sul fichièr original :'
- rejecting_media_title: Mèdias filtrats
- silenced_title: Servidors muts
- suspended_title: Servidors suspenduts
- user_count_after:
- one: utilizaire
- other: utilizaires
- user_count_before: Ostal de
- what_is_mastodon: Qu’es Mastodon ?
accounts:
- choices_html: 'Recomandacions de %{name} :'
- endorsements_hint: Podètz recomandar personas que seguètz a partir de l’interfàcia web, apreissaràn aquí.
- featured_tags_hint: Podètz indicar d’etiquetas que mostrarem aquí.
follow: Sègre
followers:
one: Seguidor
other: Seguidors
following: Abonaments
- joined: Arribèt en %{date}
last_active: darrièra activitat
link_verified_on: La proprietat d’aqueste ligam foguèt verificada lo %{date}
- media: Mèdias
- moved_html: "%{name} a mudat a %{new_profile_link} :"
- network_hidden: Aquesta informacion es pas disponibla
nothing_here: I a pas res aquí !
- people_followed_by: Lo monde que %{name} sèc
- people_who_follow: Lo monde que sègon %{name}
pin_errors:
following: Vos cal d’en primièr sègre las personas que volètz promòure
posts:
one: Tut
other: Tuts
posts_tab_heading: Tuts
- posts_with_replies: Tuts e responsas
- roles:
- admin: Admin
- bot: Robòt
- group: Grop
- moderator: Moderador
- unavailable: Perfil indisponible
- unfollow: Quitar de sègre
admin:
account_actions:
action: Realizar una accion
@@ -93,7 +35,6 @@ oc:
avatar: Avatar
by_domain: Domeni
change_email:
- changed_msg: Adreça corrèctament cambiada !
current_email: Adreça actuala
label: Cambiar d’adreça
new_email: Novèla adreça
@@ -161,12 +102,6 @@ oc:
reset: Reïnicializar
reset_password: Reïnicializar lo senhal
resubscribe: Se tornar abonar
- role: Autorizacions
- roles:
- admin: Administrator
- moderator: Moderador
- staff: Personnal
- user: Uitlizaire
search: Cercar
search_same_ip: Autres utilizaires amb la meteissa IP
security_measures:
@@ -226,7 +161,6 @@ oc:
update_announcement: Actualizar l’anóncia
update_custom_emoji: Actualizar l’emoji personalizat
update_status: Actualizar l’estatut
- deleted_status: "(estatut suprimit)"
empty: Cap de jornal pas trobat.
filter_by_action: Filtrar per accion
filter_by_user: Filtrar per utilizaire
@@ -433,86 +367,15 @@ oc:
rules:
title: Règlas del servidor
settings:
- activity_api_enabled:
- desc_html: Nombre d’estatuts publicats, d’utilizaires actius e de novèlas inscripcions en rapòrt setmanièr
- title: Publicar las estatisticas totalas de l’activitat dels utilizaires
- bootstrap_timeline_accounts:
- desc_html: Separatz los noms d’utilizaire amb de virgula. Pas que los comptes locals e pas clavats foncionaràn. Se lo camp es void los admins seràn selecionats.
- title: Per defaut los nòuvenguts sègon
- contact_information:
- email: Picatz una adreça de corrièl
- username: Picatz un nom d’utilizaire
- custom_css:
- desc_html: Modificar l’estil amb una fuèlha CSS cargada sus cada pagina
- title: CSS personalizada
- default_noindex:
- desc_html: Tòca totes los utilizaires qu’an pas cambiat lo paramètre
domain_blocks:
all: A tot lo monde
disabled: A degun
- title: Mostrar los blocatges de domeni
users: Als utilizaires locals connectats
- domain_blocks_rationale:
- title: Mostrar lo rasonament
- hero:
- desc_html: Mostrat en primièra pagina. Almens 600x100px recomandat. S’es pas configurat l’imatge del servidor serà mostrat
- title: Imatge de l’eròi
- mascot:
- desc_html: Mostrat sus mantun pagina. Almens 293×205px recomandat. S’es pas configurat, mostrarem la mascòta per defaut
- title: Imatge de la mascòta
- peers_api_enabled:
- desc_html: Noms de domeni qu’aqueste servidor a trobats pel fediverse
- title: Publicar la lista dels servidors coneguts
- preview_sensitive_media:
- desc_html: Los apercebuts dels ligams sus los autres sites mostraràn una vinheta encara que lo mèdia siá marcat coma sensible
- title: Mostrar los mèdias sensibles dins los apercebuts OpenGraph
- profile_directory:
- desc_html: Permet als utilizaires d’èsser trobats
- title: Activar l’annuari de perfils
- registrations:
- closed_message:
- desc_html: Mostrat sus las pagina d’acuèlh quand las inscripcions son tampadas. Podètz utilizar de balisas HTML
- title: Messatge de barradura de las inscripcions
- deletion:
- desc_html: Autorizar lo monde a suprimir lor compte
- title: Possibilitat de suprimir lo compte
- min_invite_role:
- disabled: Degun
- title: Autorizat amb invitacions
registrations_mode:
modes:
approved: Validacion necessària per s’inscriure
none: Degun pòt pas se marcar
open: Tot lo monde se pòt marcar
- title: Mòdes d’inscripcion
- show_known_fediverse_at_about_page:
- desc_html: Un còp activat mostrarà los tuts de totes los fediverse dins l’apercebut. Autrament mostrarà pas que los tuts locals.
- title: Mostrar los fediverse coneguts dins l’apercebut del flux
- show_staff_badge:
- desc_html: Mostrar lo badge Personal sus la pagina de perfil
- title: Mostrar lo badge personal
- site_description:
- desc_html: Paragraf d’introduccion sus la pagina d’acuèlh. Explicatz çò que fa diferent aqueste servidor Mastodon e tot çò qu’es important de dire. Podètz utilizare de balises HTML, en particular <a>
e<em>
.
- title: Descripcion del servidor
- site_description_extended:
- desc_html: Un bon lòc per las règles de compòrtament e d’autras causas que fan venir vòstre servidor diferent. Podètz utilizar de balisas HTML
- title: Descripcion espandida del site
- site_short_description:
- desc_html: Mostrat dins la barra laterala e dins las meta balisas. Explica çò qu’es Mastodon e perque aqueste servidor es especial en un solet paragraf. S’es void, serà garnit amb la descripcion del servidor.
- title: Descripcion corta del servidor
- site_terms:
- desc_html: Afichada sus la pagina de las condicions d’utilizacion Podètz utilizar de balisas HTML
- title: Politica de confidencialitat del site
- site_title: Títol del servidor
- thumbnail:
- desc_html: Servís pels apercebuts via OpenGraph e las API. Talha de 1200x630px recomandada
- title: Miniatura del servidor
- timeline_preview:
- desc_html: Mostrar lo flux public sus la pagina d’acuèlh
- title: Apercebut flux public
- title: Paramètres del site
- trends:
- title: Etiquetas tendéncia
site_uploads:
delete: Suprimir lo fichièr enviat
statuses:
@@ -573,16 +436,12 @@ oc:
applications:
created: Aplicacion ben creada
destroyed: Aplication corrcètament suprimida
- invalid_url: L’URL donada es invalida
regenerate_token: Tornar generar lo geton d’accès
token_regenerated: Geton d’accès ben regenerat
warning: Mèfi ! Agachatz de partejar aquela donada amb degun !
your_token: Vòstre geton d’accès
auth:
- apply_for_account: Demandar una invitacion
change_password: Senhal
- checkbox_agreement_html: Accepti las règlas del servidor e los tèrmes del servici
- checkbox_agreement_without_rules_html: Soi d’acòrdi amb las condicions d’utilizacion
delete_account: Suprimir lo compte
delete_account_html: Se volètz suprimir vòstre compte, podètz o far aquí . Vos demandarem que confirmetz.
description:
@@ -609,7 +468,6 @@ oc:
title: Configuracion
status:
account_status: Estat del compte
- trouble_logging_in: Problèmas de connexion ?
use_security_key: Utilizar clau de seguretat
authorize_follow:
already_following: Seguètz ja aqueste compte
@@ -659,10 +517,6 @@ oc:
more_details_html: Per mai d’informacion, vejatz la politica de confidencialitat .
username_available: Vòstre nom d’utilizaire serà disponible de nòu
username_unavailable: Vòstre nom d’utilizaire demorarà pas disponible
- directories:
- directory: Annuari de perfils
- explanation: Trobar d’utilizaires segon lor interèsses
- explore_mastodon: Explorar %{title}
domain_validator:
invalid_domain: es pas un nom de domeni valid
errors:
@@ -713,7 +567,6 @@ oc:
title: Modificar lo filtre
errors:
invalid_context: Cap de contèxte o contèxte invalid fornit
- invalid_irreversible: Lo filtratge irreversible fonciona pas qu’amb lo flux d’actualitat o en contèxte de notificacion
index:
delete: Suprimir
empty: Avètz pas cap de filtre.
@@ -721,9 +574,6 @@ oc:
new:
title: Ajustar un nòu filtre
footer:
- developers: Desvolopaires
- more: Mai…
- resources: Ressorsas
trending_now: Tendéncia del moment
generic:
all: Tot
@@ -753,7 +603,6 @@ oc:
following: Lista de monde que seguètz
muting: Lista de monde que volètz pas legir
upload: Importar
- in_memoriam_html: En Memòria.
invites:
delete: Desactivar
expired: Expirat
@@ -811,14 +660,6 @@ oc:
moderation:
title: Moderacion
notification_mailer:
- digest:
- action: Veire totas las notificacions
- body: Trobatz aquí un resumit dels messatges qu’avètz mancats dempuèi vòstra darrièra visita lo %{since}
- mention: "%{name} vos a mencionat dins :"
- new_followers_summary:
- one: Avètz un nòu seguidor dempuèi vòstra darrièra visita ! Ouà !
- other: Avètz %{count} nòus seguidors dempuèi vòstra darrièra visita ! Qué crane !
- title: Pendent vòstra abséncia…
favourite:
body: "%{name} a mes vòstre estatut en favorit :"
subject: "%{name} a mes vòstre estatut en favorit"
@@ -895,22 +736,7 @@ oc:
remove_selected_follows: Quitar de sègre las personas seleccionadas
status: Estat del compte
remote_follow:
- acct: Picatz vòstre utilizaire@domeni que que volètz utilizar per sègre aqueste utilizaire
missing_resource: URL de redireccion pas trobada
- no_account_html: Avètz pas cap de compte ? Podètz vos marcar aquí
- proceed: Clicatz per sègre
- prompt: 'Sètz per sègre :'
- reason_html: "Perque aquesta etapa es necessària ? %{instance}
es benlèu pas lo servidor ont vos marquèretz, doncas nos cal vos redirigir cap a vòstre prim servidor per començar."
- remote_interaction:
- favourite:
- proceed: Contunhar per metre en favorit
- prompt: 'Volètz metre en favorit aqueste tut :'
- reblog:
- proceed: Contunhar per repartejar
- prompt: 'Volètz repartejar aqueste tut :'
- reply:
- proceed: Contunhar per respondre
- prompt: 'Volètz respondre a aqueste tut :'
scheduled_statuses:
over_daily_limit: Avètz passat la limita de %{limit} tuts programats per aquel jorn
over_total_limit: Avètz passat la limita de %{limit} tuts programats
@@ -1041,8 +867,6 @@ oc:
sensitive_content: Contengut sensible
tags:
does_not_match_previous_name: correspond pas al nom precedent
- terms:
- title: Condicions d’utilizacion e politica de confidencialitat de %{instance}
themes:
contrast: Mastodon (Fòrt contrast)
default: Mastodon (Escur)
@@ -1084,20 +908,11 @@ oc:
suspend: Compte suspendut
welcome:
edit_profile_action: Configuracion del perfil
- edit_profile_step: Podètz personalizar lo perfil en mandar un avatard, cambiar l’escais-nom e mai. Se volètz repassar las demandas d’abonaments abans que los nòus seguidors pòscan veire vòstre perfil, podètz clavar vòstre compte.
explanation: Vaquí qualques astúcias per vos preparar
final_action: Començar de publicar
- final_step: 'Començatz de publicar ! Quitament s’avètz pas de seguidors los autres pòdon veire vòstres messatges publics, per exemple pel flux d’actualitat local e per las etiquetas. Benlèu que volètz vos presentar amb l’etiquetas #introductions.'
full_handle: Vòstre escais-nom complèt
full_handle_hint: Es aquò que vos cal donar a vòstres amics per que pòscan vos escriure o sègre a partir d’un autre servidor.
- review_preferences_action: Cambiar las preferéncias
- review_preferences_step: Pensatz de configurar vòstras preferéncias, tal coma los corrièls que volètz recebrer o lo nivèl de confidencialitat de vòstres tuts per defaut. O se l’animacion vos dòna pas enveja de rendre, podètz activar la lectura automatica dels GIF.
subject: Benvengut a Mastodon
- tip_federated_timeline: Lo flux d’actualitat federat es una vista generala del malhum Mastodon. Mas aquò inclutz solament lo monde que vòstres vesins sègon, doncas es pas complèt.
- tip_following: Seguètz l’administrator del servidor per defaut. Per trobar de monde mai interessant, agachatz lo flux d’actualitat local e lo global.
- tip_local_timeline: Lo flux d’actualitat local es una vista del monde de %{instance}. Son vòstres vesins dirèctes !
- tip_mobile_webapp: Se vòstre navigator mobil nos permet d’apondre Mastodon a l’ecran d‘acuèlh, podètz recebre de notificacions. Aquò se compòrta coma una aplicacion nativa !
- tips: Astúcias
title: Vos desirem la benvenguda a bòrd %{name} !
users:
follow_limit_reached: Podètz pas sègre mai de %{limit} personas
diff --git a/config/locales/pl.yml b/config/locales/pl.yml
index 2709572def..9f6c024c84 100644
--- a/config/locales/pl.yml
+++ b/config/locales/pl.yml
@@ -1,69 +1,12 @@
---
pl:
about:
- about_hashtag_html: Znajdują się tu publiczne wpisy oznaczone hashtagiem #%{hashtag} . Możesz dołączyć do dyskusji, jeżeli posiadasz konto gdziekolwiek w Fediwersum.
about_mastodon_html: Mastodon jest wolną i otwartą siecią społecznościową, zdecentralizowaną alternatywą dla zamkniętych, komercyjnych platform.
- about_this: O tej instancji
- active_count_after: aktywni
- active_footnote: Aktywni użytkownicy miesięcznie (MAU)
- administered_by: 'Administrowana przez:'
- api: API
- apps: Aplikacje
- apps_platforms: Korzystaj z Mastodona z poziomu iOS-a, Androida i innych
- browse_directory: Przeglądaj katalog profilów i filtruj z uwzględnieniem zainteresowań
- browse_local_posts: Przeglądaj strumień publicznych wpisów z tego serwera
- browse_public_posts: Przeglądaj strumień publicznych wpisów na Mastodonie na żywo
- contact: Kontakt
contact_missing: Nie ustawiono
contact_unavailable: Nie dotyczy
- continue_to_web: Kontynuuj przez aplikację webową
- discover_users: Odkrywaj użytkowników
- documentation: Dokumentacja
- federation_hint_html: Z kontem na %{instance}, możesz śledzić użytkowników każdego serwera Mastodona i nie tylko.
- get_apps: Spróbuj aplikacji mobilnej
hosted_on: Mastodon uruchomiony na %{domain}
- instance_actor_flash: |
- To konto jest wirtualnym nadawcą, używanym do reprezentacji serwera, a nie jakiegokolwiek użytkownika.
- Jest używane w celu federowania i nie powinno być blokowane, chyba że chcesz zablokować całą instację, w takim przypadku użyj blokady domeny.
- learn_more: Dowiedz się więcej
- logged_in_as_html: Jesteś obecnie zalogowany/a jako %{username}.
- logout_before_registering: Jesteś już zalogowany/a.
- privacy_policy: Polityka prywatności
- rules: Regulamin serwera
- rules_html: 'Poniżej znajduje się podsumowanie zasad, których musisz przestrzegać, jeśli chcesz mieć konto na tym serwerze Mastodona:'
- see_whats_happening: Zobacz co się dzieje
- server_stats: 'Statystyki serwera:'
- source_code: Kod źródłowy
- status_count_after:
- few: wpisów
- many: wpisów
- one: wpisu
- other: wpisów
- status_count_before: Są autorami
- tagline: Śledź znajomych i poznawaj nowych
- terms: Zasady użytkowania
- unavailable_content: Niedostępne treści
- unavailable_content_description:
- domain: Serwer
- reason: Powód
- rejecting_media: 'Pliki multimedialne z tych serwerów nie będą przetwarzane ani przechowywane, ani ich miniaturki nie będą wyświetlane, wymuszając ręczne przejście do oryginalnego pliku:'
- rejecting_media_title: Filtrowana zawartość multimedialna
- silenced: 'Posty z tych serwerów będą ukryte na publicznych osiach czasu i konwersacjach, a powiadomienia z interakcji ich użytkowników nie będą generowane, chyba że ich obserwujesz:'
- silenced_title: Wyciszone serwery
- suspended: 'Żadne dane z tych serwerów nie będą przetwarzane, przechowywane ani wymieniane, sprawiając że jakakolwiek interakcja czy komunikacja z użytkownikami tych serwerów będzie niemożliwa:'
- suspended_title: Zawieszone serwery
- unavailable_content_html: Normalnie Mastodon pozwala ci przeglądać treści od innych użytkowników z jakiegokolwiek serwera w fediwersum. To są wyjątki, które zostały stworzone na tym konkretnym serwerze.
- user_count_after:
- few: użytkowników
- many: użytkowników
- one: użytkownik
- other: użytkowników
- user_count_before: Z serwera korzysta
- what_is_mastodon: Czym jest Mastodon?
+ title: O nas
accounts:
- choices_html: 'Polecani przez %{name}:'
- endorsements_hint: Możesz promować ludzi, których obserwujesz, z poziomu interfejsu webowego - wtedy oni pojawią się w tym miejscu.
- featured_tags_hint: Możesz przedstawić w tym miejscu kilka wybranych hasztagów.
follow: Śledź
followers:
few: śledzących
@@ -72,15 +15,9 @@ pl:
other: Śledzących
following: śledzonych
instance_actor_flash: To konto jest wirtualnym profilem używanym do reprezentowania samego serwera, a nie żadnego indywidualnego użytkownika. Jest ono stosowane do celów federacji i nie powinien być zawieszany.
- joined: Dołączył(a) %{date}
last_active: ostatnio aktywny(-a)
link_verified_on: Własność tego odnośnika została sprawdzona %{date}
- media: Zawartość multimedialna
- moved_html: "%{name} korzysta teraz z konta %{new_profile_link}:"
- network_hidden: Ta informacja nie jest dostępna
nothing_here: Niczego tu nie ma!
- people_followed_by: Konta śledzone przez %{name}
- people_who_follow: Osoby, które śledzą konto %{name}
pin_errors:
following: Musisz śledzić osobę, którą chcesz polecać
posts:
@@ -89,14 +26,6 @@ pl:
one: wpis
other: Wpisów
posts_tab_heading: Wpisy
- posts_with_replies: Wpisy z odpowiedziami
- roles:
- admin: Administrator
- bot: Bot
- group: Grupa
- moderator: Moderator
- unavailable: Profil niedostępny
- unfollow: Przestań śledzić
admin:
account_actions:
action: Wykonaj działanie
@@ -113,12 +42,17 @@ pl:
avatar: Awatar
by_domain: Domena
change_email:
- changed_msg: Pomyślnie zmieniono adres e-mail konta!
+ changed_msg: Pomyślnie zmieniono adres e-mail!
current_email: Obecny adres e-mail
label: Zmień adres e-mail
new_email: Nowy adres e-mail
submit: Zmień adres e-mail
title: Zmień adres e-mail dla %{username}
+ change_role:
+ changed_msg: Pomyślnie zmieniono rolę!
+ label: Zmień rolę
+ no_role: Brak roli
+ title: Zmień rolę dla %{username}
confirm: Potwierdź
confirmed: Potwierdzono
confirming: Potwierdzanie
@@ -162,6 +96,7 @@ pl:
active: Aktywne
all: Wszystkie
pending: Oczekujące
+ silenced: Ograniczone
suspended: Zawieszone
title: Moderacja
moderation_notes: Notatki moderacyjne
@@ -169,6 +104,7 @@ pl:
most_recent_ip: Ostatnie IP
no_account_selected: Żadne konto nie zostało zmienione, bo żadne nie zostało wybrane
no_limits_imposed: Nie nałożono ograniczeń
+ no_role_assigned: Nie przypisano żadnej roli
not_subscribed: Nie zasubskrybowano
pending: Oczekuje na przegląd
perform_full_suspension: Zawieś
@@ -197,12 +133,7 @@ pl:
reset: Resetuj
reset_password: Resetuj hasło
resubscribe: Ponów subskrypcję
- role: Uprawnienia
- roles:
- admin: Administrator
- moderator: Moderator
- staff: Ekipa
- user: Użytkownik
+ role: Rola
search: Szukaj
search_same_email_domain: Inni użytkownicy z e-mail w tej domenie
search_same_ip: Inni użytkownicy z tym samym IP
@@ -245,17 +176,21 @@ pl:
approve_user: Zatwierdź użytkownika
assigned_to_self_report: Przypisz zgłoszenie
change_email_user: Zmień adres e-mail użytkownika
+ change_role_user: Zmień rolę użytkownika
confirm_user: Potwierdź użytkownika
create_account_warning: Utwórz ostrzeżenie
create_announcement: Utwórz ogłoszenie
+ create_canonical_email_block: Utwórz blokadę e-mail
create_custom_emoji: Utwórz niestandardowe emoji
create_domain_allow: Utwórz zezwolenie dla domeny
create_domain_block: Utwórz blokadę domeny
create_email_domain_block: Utwórz blokadę domeny e-mail
create_ip_block: Utwórz regułę IP
create_unavailable_domain: Utwórz niedostępną domenę
+ create_user_role: Utwórz rolę
demote_user: Zdegraduj użytkownika
destroy_announcement: Usuń ogłoszenie
+ destroy_canonical_email_block: Usuń blokadę e-mail
destroy_custom_emoji: Usuń niestandardowe emoji
destroy_domain_allow: Usuń zezwolenie dla domeny
destroy_domain_block: Usuń blokadę domeny
@@ -264,6 +199,7 @@ pl:
destroy_ip_block: Usuń regułę IP
destroy_status: Usuń wpis
destroy_unavailable_domain: Usuń niedostępną domenę
+ destroy_user_role: Zlikwiduj rolę
disable_2fa_user: Wyłącz 2FA
disable_custom_emoji: Wyłącz niestandardowe emoji
disable_sign_in_token_auth_user: Wyłącz uwierzytelnianie tokenu e-mail dla użytkownika
@@ -290,24 +226,30 @@ pl:
update_announcement: Aktualizuj ogłoszenie
update_custom_emoji: Aktualizuj niestandardowe emoji
update_domain_block: Zaktualizuj blokadę domeny
+ update_ip_block: Aktualizuj regułę IP
update_status: Aktualizuj wpis
+ update_user_role: Aktualizuj rolę
actions:
approve_appeal_html: "%{name} zatwierdził(-a) odwołanie decyzji moderacyjnej od %{target}"
approve_user_html: "%{name} zatwierdził rejestrację od %{target}"
assigned_to_self_report_html: "%{name} przypisał(a) sobie zgłoszenie %{target}"
change_email_user_html: "%{name} zmienił(a) adres e-mail użytkownika %{target}"
+ change_role_user_html: "%{name} zmienił rolę %{target}"
confirm_user_html: "%{name} potwierdził(a) adres e-mail użytkownika %{target}"
create_account_warning_html: "%{name} wysłał(a) ostrzeżenie do %{target}"
create_announcement_html: "%{name} utworzył(a) nowe ogłoszenie %{target}"
+ create_canonical_email_block_html: "%{name} zablokował e-mail z hasłem %{target}"
create_custom_emoji_html: "%{name} dodał(a) nowe emoji %{target}"
create_domain_allow_html: "%{name} dodał(a) na białą listę domenę %{target}"
create_domain_block_html: "%{name} zablokował(a) domenę %{target}"
create_email_domain_block_html: "%{name} dodał(a) domenę e-mail %{target} na czarną listę"
create_ip_block_html: "%{name} stworzył(a) regułę dla IP %{target}"
create_unavailable_domain_html: "%{name} przestał(a) doręczać na domenę %{target}"
+ create_user_role_html: "%{name} utworzył rolę %{target}"
demote_user_html: "%{name} zdegradował(a) użytkownika %{target}"
destroy_announcement_html: "%{name} usunął(-ęła) ogłoszenie %{target}"
- destroy_custom_emoji_html: "%{name} usunął(-ęła) emoji %{target}"
+ destroy_canonical_email_block_html: "%{name} odblokował(a) e-mail z hasłem %{target}"
+ destroy_custom_emoji_html: "%{name} usunął emoji %{target}"
destroy_domain_allow_html: "%{name} usunął(-ęła) domenę %{target} z białej listy"
destroy_domain_block_html: "%{name} odblokował(a) domenę %{target}"
destroy_email_domain_block_html: "%{name} usunął(-ęła) domenę e-mail %{target} z czarnej listy"
@@ -315,6 +257,7 @@ pl:
destroy_ip_block_html: "%{name} usunął(-ęła) regułę dla IP %{target}"
destroy_status_html: "%{name} usunął(-ęła) wpis użytkownika %{target}"
destroy_unavailable_domain_html: "%{name} wznowił(a) doręczanie do domeny %{target}"
+ destroy_user_role_html: "%{name} usunął rolę %{target}"
disable_2fa_user_html: "%{name} wyłączył(a) uwierzytelnianie dwustopniowe użytkownikowi %{target}"
disable_custom_emoji_html: "%{name} wyłączył(a) emoji %{target}"
disable_sign_in_token_auth_user_html: "%{name} wyłączył/a uwierzytelnianie tokenem e-mail dla %{target}"
@@ -341,8 +284,9 @@ pl:
update_announcement_html: "%{name} zaktualizował(a) ogłoszenie %{target}"
update_custom_emoji_html: "%{name} zaktualizował(a) emoji %{target}"
update_domain_block_html: "%{name} zaktualizował(a) blokadę domeny dla %{target}"
+ update_ip_block_html: "%{name} stworzył(a) regułę dla IP %{target}"
update_status_html: "%{name} zaktualizował(a) wpis użytkownika %{target}"
- deleted_status: "(usunięty wpis)"
+ update_user_role_html: "%{name} zmienił rolę %{target}"
empty: Nie znaleziono aktywności w dzienniku.
filter_by_action: Filtruj według działania
filter_by_user: Filtruj według użytkownika
@@ -386,6 +330,7 @@ pl:
listed: Widoczne
new:
title: Dodaj nowe niestandardowe emoji
+ no_emoji_selected: Żadne emoji nie zostały zmienione, ponieważ żadnych nie wybrano
not_permitted: Nie masz uprawnień do wykonania tego działania
overwrite: Zastąp
shortcode: Krótki kod
@@ -500,6 +445,11 @@ pl:
unsuppress: Przywróć polecenie śledzenia konta
instances:
availability:
+ description_html:
+ few: Jeśli dostarczenie do domeny nie powiedzie się %{count} dni bez powodzenia, nie zostaną podjęte dalsze próby dostawy, chyba że otrzymano dostawę od domeny.
+ many: Jeśli dostarczenie do domeny nie powiedzie się %{count} dni bez powodzenia, nie zostaną podjęte dalsze próby dostawy, chyba że otrzymano dostawę od domeny.
+ one: Jeśli dostarczenie do domeny nie powiedzie się %{count} dzień bez powodzenia, nie zostaną podjęte dalsze próby dostawy, chyba że otrzymano dostawę od domeny.
+ other: Jeśli dostarczenie do domeny nie powiedzie się %{count} dni bez powodzenia, nie zostaną podjęte dalsze próby dostawy, chyba że otrzymano dostawę od domeny.
failure_threshold_reached: Próg niepowodzenia osiągnięty dnia %{date}.
failures_recorded:
few: Nieudane próby w %{count} różnych dniach.
@@ -672,6 +622,71 @@ pl:
unresolved: Nierozwiązane
updated_at: Zaktualizowano
view_profile: Wyświetl profil
+ roles:
+ add_new: Dodaj rolę
+ assigned_users:
+ few: "%{count} użytkowników"
+ many: "%{count} użytkowników"
+ one: "%{count} użytkownik"
+ other: "%{count} użytkowników"
+ categories:
+ administration: Administracja
+ devops: DevOps
+ invites: Zaproszenia
+ moderation: Moderacja
+ special: Specjalne
+ delete: Usuń
+ description_html: Za pomocą ról użytkowników możesz dostosowywać funkcje i obszary Mastodon, do których użytkownicy mogą uzyskać dostęp.
+ edit: Edytuj rolę '%{name}'
+ everyone: Domyślnie uprawnienia
+ everyone_full_description_html: To jest rola podstawowa wpływająca na wszystkich użytkowników , nawet tych, którzy nie mają przypisanej roli. Wszystkie inne role dziedziczą z niej uprawnienia.
+ permissions_count:
+ few: "%{count} uprawnień"
+ many: "%{count} uprawnień"
+ one: "%{count} uprawnienie"
+ other: "%{count} uprawnień"
+ privileges:
+ administrator: Administrator
+ administrator_description: Użytkownicy z tym uprawnieniem omijają każde uprawnienie
+ delete_user_data: Usuń dane użytkownika
+ delete_user_data_description: Pozwala użytkownikom na bezzwłoczne usuwanie danych innych użytkowników
+ invite_users: Zaproś użytkowników
+ invite_users_description: Pozwala użytkownikom zapraszać nowych ludzi na serwer
+ manage_announcements: Zarządzaj ogłoszeniami
+ manage_announcements_description: Pozwala użytkownikom zarządzać ogłoszeniami na serwerze
+ manage_appeals: Zarządzaj odwołaniami
+ manage_appeals_description: Pozwala użytkownikom przeglądać odwołania od działań moderacyjnych
+ manage_blocks: Zarządzaj blokami
+ manage_blocks_description: Pozwala użytkownikom na blokowanie dostawców poczty elektronicznej i adresów IP
+ manage_custom_emojis: Zarządzaj niestandardowymi emoji
+ manage_custom_emojis_description: Pozwala użytkownikom zarządzać niestandardowymi emoji na serwerze
+ manage_federation: Zarządzaj federacją
+ manage_federation_description: Pozwala użytkownikom na blokowanie lub zezwalanie federacji z innymi domenami i kontrolowanie doręczania
+ manage_invites: Zarządzaj zaproszeniami
+ manage_invites_description: Pozwala użytkownikom przeglądać i dezaktywować linki z zaproszeniami
+ manage_reports: Zarządzaj raportami
+ manage_reports_description: Pozwala użytkownikom przeglądać raporty i wykonywać przeciwko nim działania moderacyjne
+ manage_roles: Zarządzaj rolami
+ manage_roles_description: Pozwala użytkownikom zarządzać rolami i przypisywać role poniżej ich własnych
+ manage_rules: Zarządzaj regułami
+ manage_rules_description: Pozwala użytkownikom na zmianę reguł serwera
+ manage_settings: Zarządzaj ustawieniami
+ manage_settings_description: Pozwala użytkownikom na zmianę ustawień witryny
+ manage_taxonomies: Zarządzaj taksonomiami
+ manage_taxonomies_description: Pozwala użytkownikom przeglądać najpopularniejsze treści i aktualizować ustawienia hasztagów
+ manage_user_access: Zarządzaj dostępem użytkownika
+ manage_user_access_description: Pozwala użytkownikom na wyłączenie uwierzytelniania dwuskładnikowego innych użytkowników, zmianę adresu e-mail i zresetowanie hasła
+ manage_users: Zarządzanie użytkownikami
+ manage_users_description: Pozwala użytkownikom na oglądanie szczegółów innych użytkowników i wykonywanie na ich kontach działań moderacyjnych
+ manage_webhooks: Zarządzanie webhookami
+ manage_webhooks_description: Pozwala użytkownikom na konfigurację webhooków dla wydarzeń administracyjnych
+ view_audit_log: Wyświetl dziennik zdarzeń
+ view_audit_log_description: Pozwala użytkownikom zobaczyć historię działań administracyjnych na serwerze
+ view_dashboard: Wyświetl panel
+ view_dashboard_description: Pozwala użytkownikom na dostęp do panelu i różnych metryk
+ view_devops: Devops
+ view_devops_description: Pozwala użytkownikom na dostęp do paneli Sidekiq i pgHero
+ title: Role
rules:
add_new: Dodaj zasadę
delete: Usuń
@@ -680,108 +695,67 @@ pl:
empty: Jeszcze nie zdefiniowano zasad serwera.
title: Regulamin serwera
settings:
- activity_api_enabled:
- desc_html: Liczy publikowane lokalnie wpisy, aktywnych użytkowników i nowe rejestracje w ciągu danego tygodnia
- title: Publikuj zbiorowe statystyki o aktywności użytkowników
- bootstrap_timeline_accounts:
- desc_html: Oddzielaj nazwy użytkowników przecinkami. Działa tylko dla niezablokowanych kont w obrębie instancji. Jeżeli puste, zostaną użyte konta administratorów instancji.
- title: Domyślnie obserwowani użytkownicy
- contact_information:
- email: Służbowy adres e-mail
- username: Nazwa użytkownika do kontaktu
- custom_css:
- desc_html: Modyfikuj wygląd pliku CSS ładowanego na każdej stronie
- title: Niestandardowy CSS
- default_noindex:
- desc_html: Wpływa na wszystkich użytkowników, którzy nie zmienili tego ustawienia
- title: Domyślnie żądaj nieindeksowania użytkowników w wyszukiwarkach
+ about:
+ manage_rules: Zarządzaj regułami serwera
+ preamble: Podaj szczegółowe informacje na temat sposobu działania, moderacji i finansowania serwera.
+ rules_hint: Istnieje dedykowany obszar dla reguł, których twoi użytkownicy mają przestrzegać.
+ title: O...
+ appearance:
+ preamble: Dostosuj interfejs www Mastodon.
+ title: Wygląd
+ branding:
+ preamble: Marka Twojego serwera odróżnia go od innych serwerów w sieci. Informacje te mogą być wyświetlane w różnych środowiskach, takich jak interfejs internetowy Mastodon, aplikacje natywne, w podglądzie linków na innych stronach internetowych i w aplikacjach do wysyłania wiadomości itd. Z tego względu najlepiej zachować jasną, krótką i zwięzłą informację.
+ title: Marka
+ content_retention:
+ preamble: Kontroluj, jak treści generowane przez użytkownika są przechowywane w Mastodon.
+ title: Retencja treści
+ discovery:
+ follow_recommendations: Postępuj zgodnie z zaleceniami
+ preamble: Prezentowanie interesujących treści ma kluczowe znaczenie dla nowych użytkowników, którzy mogą nie znać nikogo z Mastodona. Kontroluj, jak różne funkcje odkrywania działają na Twoim serwerze.
+ profile_directory: Katalog profilów
+ public_timelines: Publiczne osie czasu
+ title: Odkrywanie
+ trends: Trendy
domain_blocks:
all: Każdemu
disabled: Nikomu
- title: Pokazuj zablokowane domeny
users: Zalogowanym lokalnym użytkownikom
- domain_blocks_rationale:
- title: Pokaż uzasadnienia
- hero:
- desc_html: Wyświetlany na stronie głównej. Zalecany jest rozmiar przynajmniej 600x100 pikseli. Jeżeli nie ustawiony, zostanie użyta miniatura serwera
- title: Obraz bohatera
- mascot:
- desc_html: Wyświetlany na wielu stronach. Zalecany jest rozmiar przynajmniej 293px × 205px. Jeżeli nie ustawiono, zostanie użyta domyślna
- title: Obraz maskotki
- peers_api_enabled:
- desc_html: Nazwy domen, z którymi ten serwer wchodził w interakcje
- title: Publikuj listę znanych serwerów
- preview_sensitive_media:
- desc_html: Podgląd odnośników na innych instancjach będzie wyświetlał miniaturę nawet jeśli zawartość multimedialna zostanie oznaczona jako wrażliwa
- title: Wyświetlaj zawartość wrażliwą w podglądzie OpenGraph
- profile_directory:
- desc_html: Pozwalaj na poznawanie użytkowników
- title: Włącz katalog profilów
registrations:
- closed_message:
- desc_html: Wyświetlana na stronie głównej, gdy możliwość otwarej rejestracji nie jest dostępna. Możesz korzystać z tagów HTML
- title: Wiadomość o nieaktywnej rejestracji
- deletion:
- desc_html: Pozwól każdemu na usunięcie konta
- title: Możliwość usunięcia
- min_invite_role:
- disabled: Nikt
- title: Kto może zapraszać użytkowników
- require_invite_text:
- desc_html: Kiedy rejestracje wymagają ręcznego zatwierdzenia, ustaw pole "Dlaczego chcesz dołączyć?" jako obowiązkowe, a nie opcjonalne
- title: Wymagaj od nowych użytkowników wypełnienia tekstu prośby o zaproszenie
+ preamble: Kontroluj, kto może utworzyć konto na Twoim serwerze.
+ title: Rejestracje
registrations_mode:
modes:
approved: Przyjęcie jest wymagane do rejestracji
none: Nikt nie może się zarejestrować
open: Każdy może się zarejestrować
- title: Tryb rejestracji
- show_known_fediverse_at_about_page:
- desc_html: Jeśli włączone, podgląd instancji będzie wyświetlał wpisy z całego Fediwersum. W innym przypadku, będą wyświetlane tylko lokalne wpisy.
- title: Pokazuj wszystkie znane wpisy na podglądzie instancji
- show_staff_badge:
- desc_html: Pokazuj odznakę uprawnień na stronie profilu użytkownika
- title: Pokazuj odznakę administracji
- site_description:
- desc_html: Akapit wprowadzający, widoczny na stronie głównej. Opisz, co czyni tę instancję wyjątkową. Możesz korzystać ze znaczników HTML, w szczególności <a>
i <em>
.
- title: Opis serwera
- site_description_extended:
- desc_html: Dobre miejsce na zasady użytkowania, wprowadzenie i inne rzeczy, które wyróżniają ten serwer. Możesz korzystać ze znaczników HTML
- title: Niestandardowy opis strony
- site_short_description:
- desc_html: Wyświetlany na pasku bocznym i w znacznikach meta. Opisz w jednym akapicie, czym jest Mastodon i czym wyróżnia się ten serwer. Jeżeli pusty, zostanie użyty opis serwera.
- title: Krótki opis serwera
- site_terms:
- desc_html: Miejsce na własną politykę prywatności, zasady użytkowania i inne unormowania prawne. Możesz korzystać ze znaczników HTML
- title: Niestandardowe zasady użytkowania
- site_title: Nazwa serwera
- thumbnail:
- desc_html: 'Używana w podglądzie przez OpenGraph i API. Zalecany rozmiar: 1200x630 pikseli'
- title: Miniatura serwera
- timeline_preview:
- desc_html: Wyświetlaj publiczną oś czasu na stronie widocznej dla niezalogowanych
- title: Podgląd osi czasu
- title: Ustawienia strony
- trendable_by_default:
- desc_html: Wpływa na hashtagi, które nie były wcześniej niedozwolone
- title: Hashtagi mogą pojawiać się w trendach bez wcześniejszego zatwierdzenia
- trends:
- desc_html: Wyświetlaj publicznie wcześniej sprawdzone hashtagi, które są obecnie na czasie
- title: Popularne hashtagi
+ title: Ustawienia serwera
site_uploads:
delete: Usuń przesłany plik
destroyed_msg: Pomyślnie usunięto przesłany plik!
statuses:
+ account: Autor
+ application: Aplikacja
back_to_account: Wróć na konto
back_to_report: Wróć do strony zgłoszenia
batch:
remove_from_report: Usuń ze zgłoszenia
report: Zgłoszenie
deleted: Usunięto
+ favourites: Ulubione
+ history: Historia wersji
+ in_reply_to: W odpowiedzi na
+ language: Język
media:
title: Multimedia
+ metadata: Metadane
no_status_selected: Żaden wpis nie został zmieniony, bo żaden nie został wybrany
+ open: Otwarty post
+ original_status: Oryginalny post
+ reblogs: Podbicia
+ status_changed: Post zmieniony
title: Wpisy konta
+ trending: Popularne
+ visibility: Widoczność
with_media: Z zawartością multimedialną
strikes:
actions:
@@ -821,6 +795,14 @@ pl:
description_html: Są to linki, które są obecnie często udostępniane przez konta, z których Twój serwer widzi posty. Może to pomóc Twoim użytkownikom dowiedzieć się, co dzieje się na świecie. Żadne linki nie są wyświetlane publicznie dopóki nie zaakceptujesz wydawcy. Możesz również zezwolić lub odrzucić indywidualne linki.
disallow: Nie zezwalaj na link
disallow_provider: Nie zezwalaj na wydawcę
+ no_link_selected: Żadne linki nie zostały zmienione, ponieważ żadnych nie wybrano
+ publishers:
+ no_publisher_selected: Żadni publikujcy nie zostali zmienieni, ponieważ żadnych nie wybrano
+ shared_by_over_week:
+ few: Udostępnione przez %{count} osoby w ciągu ostatniego tygodnia
+ many: Udostępnione przez %{count} osób w ciągu ostatniego tygodnia
+ one: Udostępnione przez jedną osobę w ciągu ostatniego tygodnia
+ other: Udostępnione przez %{count} osoby w ciągu ostatniego tygodnia
title: Popularne linki
usage_comparison: Udostępnione %{today} razy dzisiaj, w porównaniu z %{yesterday} wczoraj
only_allowed: Tylko dozwolone
@@ -837,7 +819,13 @@ pl:
description_html: Są to wpisy, o których Twój serwer wie i które są obecnie często udostępniane i dodawane do ulubionych. Może to pomóc nowym i powracającym użytkownikom znaleźć więcej osób do śledzenia. Żadne posty nie są wyświetlane publicznie, dopóki nie zatwierdzisz autora, a autor ustawi zezwolenie na wyświetlanie się w katalogu. Możesz również zezwolić lub odrzucić poszczególne posty.
disallow: Nie zezwalaj na post
disallow_account: Nie zezwalaj na autora
+ no_status_selected: Żadne popularne wpisy nie zostały zmienione, ponieważ żadnych nie wybrano
not_discoverable: Autor nie włączył opcji, by być wyświetlany w katalogu
+ shared_by:
+ few: Udostępnione i dodane do ulubionych %{friendly_count} razy
+ many: Udostępnione i dodane do ulubionych %{friendly_count} razy
+ one: Udostępnione lub dodane do ulubionych jednorazowo
+ other: Udostępnione i dodane do ulubionych %{friendly_count} razy
title: Popularne teraz
tags:
current_score: Bieżący wynik %{score}
@@ -849,6 +837,7 @@ pl:
tag_uses_measure: użyć łącznie
description_html: To są hasztagi, które obecnie pojawiają się w wielu wpisach, które widzisz na serwerze. Może to pomóc Twoim użytkownikom dowiedzieć się, o czym obecnie ludzie najchętniej rozmawiają. Żadne hasztagi nie są wyświetlane publicznie, dopóki ich nie zaakceptujesz.
listable: Można zasugerować
+ no_tag_selected: Żadne tagi nie zostały zmienione, ponieważ żadnych nie wybrano
not_listable: Nie można zasugerować
not_trendable: Nie pojawia się pod trendami
not_usable: Nie mogą zostać użyte
@@ -871,6 +860,28 @@ pl:
edit_preset: Edytuj szablon ostrzeżenia
empty: Nie zdefiniowano jeszcze żadnych szablonów ostrzegawczych.
title: Zarządzaj szablonami ostrzeżeń
+ webhooks:
+ add_new: Dodaj punkt końcowy
+ delete: Usuń
+ description_html: "webhook umożliwia Mastodon dostarczanie powiadomień w czasie rzeczywistym o wybranych wydarzeniach do twojej aplikacji, aby mogła automatycznie wyzwalać reakcje ."
+ disable: Wyłącz
+ disabled: Wyłączone
+ edit: Edytuj punkt końcowy
+ empty: Nie masz jeszcze skonfigurowanych żadnych webhooków do punktów końcowych.
+ enable: Włącz
+ enabled: Aktywne
+ enabled_events:
+ few: "%{count} włączone zdarzenia"
+ many: "%{count} włączonych zdarzeń"
+ one: 1 włączone zdarzenie
+ other: "%{count} włączonych zdarzeń"
+ events: Zdarzenia
+ new: Nowy webhook
+ rotate_secret: Odśwież klucz szyfrowania
+ secret: Podpisywanie klucza szyfrowania
+ status: Stan
+ title: Webhooki
+ webhook: Webhook
admin_mailer:
new_appeal:
actions:
@@ -894,12 +905,8 @@ pl:
new_trends:
body: 'Następujące elementy potrzebują recenzji zanim będą mogły być wyświetlane publicznie:'
new_trending_links:
- no_approved_links: Obecnie nie ma zatwierdzonych linków trendów.
- requirements: 'Każdy z tych kandydatów może przekroczyć #%{rank} zatwierdzonych popularnych linków, który wynosi obecnie "%{lowest_link_title}" z wynikiem %{lowest_link_score}.'
title: Popularne linki
new_trending_statuses:
- no_approved_statuses: Obecnie nie ma zatwierdzonych popularnych linków.
- requirements: 'Każdy z tych kandydatów może przekroczyć #%{rank} zatwierdzonych popularnych teraz wpisów, który wynosi obecnie %{lowest_status_url} z wynikiem %{lowest_status_score}.'
title: Popularne teraz
new_trending_tags:
no_approved_tags: Obecnie nie ma żadnych zatwierdzonych popularnych hasztagów.
@@ -935,16 +942,13 @@ pl:
applications:
created: Pomyślnie utworzono aplikację
destroyed: Pomyślnie usunięto aplikację
- invalid_url: Wprowadzony adres URL jest nieprawidłowy
regenerate_token: Wygeneruj nowy token dostępu
token_regenerated: Pomyślnie wygenerowano nowy token dostępu
warning: Przechowuj te dane ostrożnie. Nie udostępniaj ich nikomu!
your_token: Twój token dostępu
auth:
- apply_for_account: Poproś o zaproszenie
+ apply_for_account: Dodaj na listę oczekujących
change_password: Hasło
- checkbox_agreement_html: Zgadzam się z regułami serwera i zasadami korzystania z usługi
- checkbox_agreement_without_rules_html: Akceptuję warunki korzystania z usługi
delete_account: Usunięcie konta
delete_account_html: Jeżeli chcesz usunąć konto, przejdź tutaj . Otrzymasz prośbę o potwierdzenie.
description:
@@ -963,6 +967,7 @@ pl:
migrate_account: Przenieś konto
migrate_account_html: Jeżeli chcesz skonfigurować przekierowanie z obecnego konta na inne, możesz zrobić to tutaj .
or_log_in_with: Lub zaloguj się z użyciem
+ privacy_policy_agreement_html: Przeczytałem/am i akceptuję politykę prywatności
providers:
cas: CAS
saml: SAML
@@ -970,12 +975,18 @@ pl:
registration_closed: "%{instance} nie przyjmuje nowych członków"
resend_confirmation: Ponownie prześlij instrukcje weryfikacji
reset_password: Zresetuj hasło
+ rules:
+ preamble: Są one ustawione i wymuszone przez moderatorów %{domain}.
+ title: Kilka podstawowych zasad.
security: Bezpieczeństwo
set_new_password: Ustaw nowe hasło
setup:
email_below_hint_html: Jeżeli poniższy adres e-mail jest nieprawidłowy, możesz zmienić go tutaj i otrzymać nowy e-mail potwierdzający.
email_settings_hint_html: E-mail potwierdzający został wysłany na %{email}. Jeżeli adres e-mail nie jest prawidłowy, możesz zmienić go w ustawieniach konta.
title: Konfiguracja
+ sign_up:
+ preamble: Z kontem na tym serwerze Mastodon będziesz mógł obserwować każdą inną osobę w sieci, niezależnie od miejsca przechowywania ich konta.
+ title: Skonfigurujmy Twoje konto na %{domain}.
status:
account_status: Stan konta
confirming: Oczekiwanie na potwierdzenie adresu e-mail.
@@ -984,7 +995,6 @@ pl:
redirecting_to: Twoje konto jest nieaktywne, ponieważ obecnie przekierowuje je na %{acct}.
view_strikes: Zobacz dawne ostrzeżenia nałożone na twoje konto
too_fast: Zbyt szybko przesłano formularz, spróbuj ponownie.
- trouble_logging_in: Masz problem z zalogowaniem się?
use_security_key: Użyj klucza bezpieczeństwa
authorize_follow:
already_following: Już śledzisz to konto
@@ -1042,10 +1052,6 @@ pl:
more_details_html: Aby uzyskać więcej szczegółów, przeczytaj naszą politykę prywatności .
username_available: Twoja nazwa użytkownika będzie z powrotem dostępna
username_unavailable: Twoja nazwa użytkownika pozostanie niedostępna
- directories:
- directory: Katalog profilów
- explanation: Poznaj profile na podstawie zainteresowań
- explore_mastodon: Odkrywaj %{title}
disputes:
strikes:
action_taken: Podjęte działania
@@ -1124,29 +1130,72 @@ pl:
public: Publiczne osie czasu
thread: Konwersacje
edit:
+ add_keyword: Dodaj słowo kluczowe
+ keywords: Słowa kluczowe
+ statuses: Pojedyncze wpisy
+ statuses_hint_html: Ten filtr ma zastosowanie do wybierania poszczególnych wpisów niezależnie od tego, czy pasują one do słów kluczowych poniżej. Przejrzyj lub usuń wpisy z filtra .
title: Edytuj filtr
errors:
+ deprecated_api_multiple_keywords: Te parametry nie mogą zostać zmienione z tej aplikacji, ponieważ dotyczą więcej niż jednego słowa kluczowego. Użyj nowszej wersji aplikacji lub interfejsu internetowego.
invalid_context: Nie podano lub podano nieprawidłową treść
- invalid_irreversible: Nieodwracalne filtrowanie działa tylko na stronie głównej i w powiadomieniach
index:
+ contexts: Filtry w %{contexts}
delete: Usuń
empty: Nie masz żadnych filtrów.
+ expires_in: Wygasa za %{distance}
+ expires_on: Wygasa %{date}
+ keywords:
+ few: "%{count} słowa kluczowe"
+ many: "%{count} słów kluczowych"
+ one: "%{count} słowo kluczowe"
+ other: "%{count} słów kluczowych"
+ statuses:
+ few: "%{count} posty"
+ many: "%{count} postów"
+ one: "%{count} post"
+ other: "%{count} postów"
+ statuses_long:
+ few: "%{count} ukryte posty"
+ many: "%{count} ukrytych postów"
+ one: "%{count} ukryty post"
+ other: "%{count} postów ukrytych"
title: Filtry
new:
+ save: Zapisz jako nowy filtr
title: Dodaj nowy filtr
+ statuses:
+ back_to_filter: Powrót do filtra
+ batch:
+ remove: Usuń z filtra
+ index:
+ hint: Ten filtr ma zastosowanie do wybierania poszczególnych wpisów niezależnie od pozostałych kryteriów. Możesz dodać więcej wpisów do tego filtra z interfejsu internetowego.
+ title: Filtrowane posty
footer:
- developers: Dla programistów
- more: Więcej…
- resources: Zasoby
trending_now: Obecnie na czasie
generic:
all: Wszystkie
+ all_items_on_page_selected_html:
+ few: "%{count} elementy na tej stronie są wybrane."
+ many: "%{count} elementów na tej stronie jest wybrane."
+ one: "%{count} element na tej stronie jest wybrany."
+ other: "%{count} elementów na tej stronie jest wybrane."
+ all_matching_items_selected_html:
+ few: Wszystkie %{count} elementy pasujące do Twojego wyszukiwania zostały wybrane.
+ many: Wszystkie %{count} elementy pasujące do Twojego wyszukiwania zostały wybrane.
+ one: "%{count} element pasujący do Twojego wyszukiwania został wybrany."
+ other: Wszystkie %{count} elementy pasujące do Twojego wyszukiwania zostały wybrane.
changes_saved_msg: Ustawienia zapisane!
copy: Kopiuj
delete: Usuń
+ deselect: Odznacz wszystkie
none: Żaden
order_by: Uporządkuj według
save_changes: Zapisz zmiany
+ select_all_matching_items:
+ few: Zaznacz wszystkie %{count} elementy pasujące do wyszukiwania.
+ many: Zaznacz wszystkie %{count} elementy pasujące do wyszukiwania.
+ one: Zaznacz %{count} element pasujący do wyszukiwania.
+ other: Zaznacz wszystkie %{count} elementy pasujące do wyszukiwania.
today: dzisiaj
validation_errors:
few: Coś jest wciąż nie tak! Przejrzyj %{count} poniższe błędy
@@ -1172,7 +1221,6 @@ pl:
following: Lista śledzonych
muting: Lista wyciszonych
upload: Załaduj
- in_memoriam_html: Ku pamięci.
invites:
delete: Wygaś
expired: Wygasły
@@ -1255,23 +1303,10 @@ pl:
copy_account_note_text: 'Ten użytkownik przeniósł się z konta %{acct}, oto Twoje poprzednie notatki o nim:'
notification_mailer:
admin:
+ report:
+ subject: "%{name} wysłał raport"
sign_up:
subject: "%{name} zarejestrował(-a) się"
- digest:
- action: Wyświetl wszystkie powiadomienia
- body: Oto krótkie podsumowanie wiadomości, które ominęły Cię od Twojej ostatniej wizyty (%{since})
- mention: "%{name} wspomniał o Tobie w:"
- new_followers_summary:
- few: "(%{count}) nowe osoby śledzą Cię!"
- many: "(%{count}) nowych osób Cię śledzi! Wspaniale!"
- one: Dodatkowo, w czasie nieobecności zaczęła śledzić Cię jedna osoba Gratulacje!
- other: Dodatkowo, zaczęło Cię śledzić %{count} nowych osób! Wspaniale!
- subject:
- few: "%{count} nowe powiadomienia od Twojej ostatniej wizyty 🐘"
- many: "%{count} nowych powiadomień od Twojej ostatniej wizyty 🐘"
- one: "1 nowe powiadomienie od Twojej ostatniej wizyty 🐘"
- other: "%{count} nowych powiadomień od Twojej ostatniej wizyty 🐘"
- title: W trakcie Twojej nieobecności…
favourite:
body: 'Twój wpis został polubiony przez %{name}:'
subject: "%{name} lubi Twój wpis"
@@ -1343,6 +1378,8 @@ pl:
other: Pozostałe
posting_defaults: Domyślne ustawienia wpisów
public_timelines: Publiczne osie czasu
+ privacy_policy:
+ title: Polityka prywatności
reactions:
errors:
limit_reached: Przekroczono limit różnych reakcji
@@ -1365,22 +1402,7 @@ pl:
remove_selected_follows: Przestań śledzić zaznaczonych użytkowników
status: Stan konta
remote_follow:
- acct: Podaj swój adres (nazwa@domena), z którego chcesz wykonać działanie
missing_resource: Nie udało się znaleźć adresu przekierowania z Twojej domeny
- no_account_html: Nie masz konta? Możesz zarejestrować się tutaj
- proceed: Śledź
- prompt: 'Zamierzasz śledzić:'
- reason_html: "Dlaczego ten krok jest konieczny? %{instance}
może nie być serwerem na którym jesteś zarejestrowany(-a), więc musisz zostać przekierowany(-a) na swój serwer."
- remote_interaction:
- favourite:
- proceed: Przejdź do dodania do ulubionych
- prompt: 'Chcesz dodać ten wpis do ulubionych:'
- reblog:
- proceed: Przejdź do podbicia
- prompt: 'Chcesz podbić ten wpis:'
- reply:
- proceed: Przejdź do dodawania odpowiedzi
- prompt: 'Chcesz odpowiedzieć na ten wpis:'
reports:
errors:
invalid_rules: nie odwołuje się do prawidłowych reguł
@@ -1564,88 +1586,6 @@ pl:
too_late: Jest za późno na odwołanie się od tego ostrzeżenia
tags:
does_not_match_previous_name: nie pasuje do poprzedniej nazwy
- terms:
- body_html: |
- Polityka prywatności
- Jakie informacje zbieramy? .
-
-
- Podstawowe informacje o koncie : Podczas rejestracji na tym serwerze możesz zostać poproszony o podanie nazwy użytkownika, adresu e-mail i hasła. Możesz również wprowadzić dodatkowe informacje dotyczące profilu, takie jak nazwa użytkownika i biogram, a także przesłać zdjęcie profilowe i obrazek w nagłówku. Nazwa użytkownika, nazwa wyświetlana, biogram, zdjęcie profilowe i obrazek w nagłówku są zawsze wyświetlane publicznie. Posty, obserwacje i inne informacje publiczne : Lista osób, które obserwujesz, jest dostępna publicznie; to samo dotyczy osób Ciebie śledzących. Gdy wysyłasz wiadomość, zapisywana jest data i godzina, a także aplikacja, z której wysłałeś wiadomość. Wiadomości mogą zawierać załączniki multimedialne, takie jak zdjęcia i filmy. Publiczne i niepubliczne posty są dostępne publicznie. Gdy wyróżnisz post na swoim profilu, jest to również informacja dostępna publicznie. Twoje posty są dostarczane do Twoich obserwatorów, w niektórych przypadkach oznacza to, że są dostarczane na różne serwery i tam przechowywane są ich kopie. Kiedy usuwasz posty, również jest to przekazywane Twoim obserwatorom. Czynność reblogowania lub lajkowania innego postu jest zawsze publiczna.
- Posty bezpośrednie i posty tylko dla obserwatorów : Wszystkie posty są przechowywane i przetwarzane na serwerze. Posty tylko dla followersów są dostarczane do followersów i użytkowników, którzy są w nich wymienieni, a posty bezpośrednie są dostarczane tylko do użytkowników, którzy są w nich wymienieni. W niektórych przypadkach oznacza to, że są one dostarczane na różne serwery i tam przechowywane są ich kopie. Dokładamy starań, aby ograniczyć dostęp do tych postów tylko do osób upoważnionych, ale inne serwery mogą tego nie robić. Dlatego ważne jest, aby sprawdzać serwery, na których znajdują się osoby śledzące Twoje posty. Możesz włączyć w ustawieniach opcję ręcznego zatwierdzania i odrzucania nowych obserwatorów. Miej na uwadze, że operatorzy serwera i każdego serwera odbierającego mogą zobaczyć takie wiadomości , oraz że Odbiorcy mogą wykonywać zrzuty ekranu, kopiować je lub w inny sposób udostępniać. Nie udostępniaj żadnych wrażliwych informacji za pośrednictwem Mastodona.
- Adresy IP i inne metadane : Gdy użytkownik się loguje, zapisujemy adres IP, z którego się loguje, a także nazwę przeglądarki, z której korzysta. Wszystkie zalogowane sesje są dostępne do wglądu i usunięcia w ustawieniach. Ostatnio używany adres IP jest przechowywany przez okres do 12 miesięcy. Możemy również przechowywać dzienniki serwera, które zawierają adres IP każdego żądania skierowanego do naszego serwera.
-
-
-
-
- Do czego wykorzystujemy informacje o użytkowniku?
-
- Wszelkie zebrane przez nas informacje mogą być wykorzystane w następujący sposób:
-
-
- Aby zapewnić podstawową funkcjonalność serwisu Mastodon. Użytkownik może wchodzić w interakcje z treściami innych osób i publikować własne treści tylko wtedy, gdy jest zalogowany. Użytkownik może na przykład śledzić inne osoby, aby wyświetlać ich posty na własnej, spersonalizowanej osi czasu.
- Aby wspomóc moderację społeczności, na przykład porównując Twój adres IP z innymi znanymi adresami w celu stwierdzenia przypadków omijania zakazów lub innych naruszeń.
- Podany przez Ciebie adres e-mail może być wykorzystywany do wysyłania Ci informacji, powiadomień o interakcji innych osób z treściami lub wysyłania Ci wiadomości, a także do odpowiadania na zapytania i/lub inne prośby lub pytania.
-
-
-
-
- Jak chronimy Twoje dane?
-
- Wdrażamy szereg zabezpieczeń, aby zapewnić bezpieczeństwo Twoich danych osobowych podczas ich wprowadzania, przesyłania lub uzyskiwania do nich dostępu. Na przykład sesja przeglądarki, a także ruch między aplikacjami użytkownika a interfejsem API są zabezpieczone protokołem SSL, a hasło użytkownika jest haszowane przy użyciu silnej funkcji skrótu. Możesz włączyć uwierzytelnianie dwuskładnikowe, aby jeszcze bardziej zabezpieczyć dostęp do swojego konta.
-
-
-
- Jakie są nasze zasady przechowywania danych?
-
- W dobrej wierze podejmiemy starania, aby:
-
-
- Przechowywać dzienniki serwera zawierające adres IP wszystkich żądań kierowanych do tego serwera, na tyle, na ile takie dzienniki są przechowywane, nie dłużej niż 90 dni.
- Przechowywać adresy IP związane z zarejestrowanymi użytkownikami nie dłużej niż 12 miesięcy.
-
-
- Możesz zażądać i pobrać archiwum swojej zawartości, w tym posty, załączniki multimedialne, zdjęcie profilowe i obrazek w nagłówku.
-
- Możesz w każdej chwili nieodwracalnie usunąć swoje konto.
-
-
-
- Czy używamy plików cookie?
-
- Tak. Pliki cookie to małe pliki, które witryna lub jej dostawca usług przesyłają na dysk twardy komputera użytkownika za pośrednictwem przeglądarki internetowej (jeśli użytkownik na to pozwala). Pliki te pozwalają witrynie rozpoznać Twoją przeglądarkę i, jeśli masz zarejestrowane konto, powiązać je z Twoim zarejestrowanym kontem.
-
-
Używamy plików cookie, aby zrozumieć i zapisać preferencje użytkownika na potrzeby przyszłych wizyt.
-
-
-
- Czy ujawniamy jakieś informacje podmiotom zewnętrznym?
-
- Nie sprzedajemy, zamieniamy ani w inny sposób nie przekazujemy podmiotom zewnętrznym danych osobowych użytkowników. Nie dotyczy to zaufanych osób trzecich, które pomagają nam w prowadzeniu naszej witryny, działalności gospodarczej lub obsłudze użytkowników, o ile osoby te zobowiążą się do zachowania poufności tych informacji. Możemy również ujawnić informacje o użytkowniku, jeśli uznamy to za stosowne w celu zachowania zgodności z prawem, egzekwowania zasad obowiązujących na naszej stronie lub ochrony praw, własności lub bezpieczeństwa naszego lub innych podmiotów.
-
- Twoje treści publiczne mogą być pobierane przez inne serwery w sieci. Twoje posty publiczne i posty przeznaczone tylko dla followersów są dostarczane do serwerów, na których rezydują Twoi followersi, a wiadomości bezpośrednie są dostarczane do serwerów odbiorców, o ile ci followersi lub odbiorcy rezydują na innym serwerze niż ten.
-
- Gdy upoważnisz aplikację do korzystania z Twojego konta, w zależności od zakresu uprawnień, które zatwierdzisz, może ona uzyskać dostęp do informacji o Twoim profilu publicznym, listy Twoich followersów, Twoich list, wszystkich Twoich postów i polubień. Aplikacje nigdy nie mogą uzyskać dostępu do Twojego adresu e-mail ani hasła.
-
-
-
- Korzystanie z witryny przez dzieci
-
- Jeśli ten serwer znajduje się w Unii Europejskiej lub Europejskim Obszarze Gospodarczym: Nasza strona, produkty i usługi są skierowane do osób, które ukończyły 16 lat. Jeśli nie masz ukończonych 16 lat, zgodnie z wymogami RODO (Ogólne rozporządzenie o ochronie danych ) nie używaj tego portalu.
-
- Jeśli ten serwer znajduje się w USA: Nasza strona, produkty i usługi są skierowane do osób, które ukończyły 13 lat. Jeśli masz mniej niż 13 lat, zgodnie z wymogami COPPA (Children's Online Privacy Protection Act ) nie używaj tego portalu.
-
- Wymagania prawne mogą być inne, jeśli serwer znajduje się w innej jurysdykcji.
-
-
-
- Zmiany w naszej Polityce prywatności
-
- Jeśli zdecydujemy się na zmianę naszej polityki prywatności, opublikujemy te zmiany tutaj.
-
- Ten dokument jest CC-BY-SA . Data ostatniej aktualizacji: 26 maja 2022.
-
- Oryginalnie zaadaptowany z Discourse privacy policy .
- title: Zasady korzystania i polityka prywatności %{instance}
themes:
contrast: Mastodon (Wysoki kontrast)
default: Mastodon (Ciemny)
@@ -1724,20 +1664,13 @@ pl:
suspend: Konto zawieszone
welcome:
edit_profile_action: Skonfiguruj profil
- edit_profile_step: Możesz dostosować profil wysyłając awatar, obraz nagłówka, zmieniając wyświetlaną nazwę i wiele więcej. Jeżeli chcesz, możesz zablokować konto, aby kontrolować, kto może Cię śledzić.
+ edit_profile_step: Możesz dostosować profil wysyłając awatar, zmieniając wyświetlaną nazwę i o wiele więcej. Jeżeli chcesz, możesz również włączyć przeglądanie i ręczne akceptowanie nowych zgłoszeń śledzenia Twojego profilu.
explanation: Kilka wskazówek, które pomogą Ci rozpocząć
final_action: Zacznij pisać
final_step: 'Zacznij tworzyć! Nawet jeżeli nikt Cię nie śledzi, Twoje publiczne wiadomości będą widziane przez innych, na przykład na lokalnej osi czasu i w hashtagach. Możesz też utworzyć wpis wprowadzający używając hashtagu #introductions.'
full_handle: Twój pełny adres
full_handle_hint: Ten adres możesz podać znajomym, aby mogli skontaktować się z Tobą lub zacząć śledzić z innego serwera.
- review_preferences_action: Zmień ustawienia
- review_preferences_step: Upewnij się, że zmieniłeś(-aś) ustawienia, takie jak maile, które chciałbyś otrzymywać lub domyślne opcje prywatności. Jeżeli nie masz choroby lokomocyjnej, możesz włączyć automatyczne odtwarzanie animacji GIF.
subject: Witaj w Mastodonie
- tip_federated_timeline: Oś czasu federacji przedstawia całą sieć Mastodona. Wyświetla tylko wpisy osób, które śledzą użytkownicy Twojej instancji, więc nie jest kompletna.
- tip_following: Domyślnie śledzisz administratora/ów swojej instancji. Aby znaleźć więcej ciekawych ludzi, zajrzyj na lokalną i federalną oś czasu.
- tip_local_timeline: Lokalna oś czasu przedstawia osoby z %{instance}. To Twoi najbliżsi sąsiedzi!
- tip_mobile_webapp: Jeżeli Twoja przeglądarka pozwala na dodanie Mastodona na ekran główny, będziesz otrzymywać natychmiastowe powiadomienia. Działa to prawie jak natywna aplikacja!
- tips: Wskazówki
title: Witaj na pokładzie, %{name}!
users:
follow_limit_reached: Nie możesz śledzić więcej niż %{limit} osób
diff --git a/config/locales/pt-BR.yml b/config/locales/pt-BR.yml
index b248110490..8ac53680d8 100644
--- a/config/locales/pt-BR.yml
+++ b/config/locales/pt-BR.yml
@@ -1,94 +1,26 @@
---
pt-BR:
about:
- about_hashtag_html: Estes são toots públicos com a hashtag #%{hashtag} . Você pode interagir com eles se tiver uma conta em qualquer lugar no fediverso.
about_mastodon_html: 'A rede social do futuro: Sem anúncios, sem vigilância corporativa, com design ético e muita descentralização! Possua seus próprios dados com o Mastodon!'
- about_this: Sobre
- active_count_after: ativo
- active_footnote: Usuários Ativos Mensalmente (UAM)
- administered_by: 'Administrado por:'
- api: API
- apps: Aplicativos
- apps_platforms: Use o Mastodon a partir do iOS, Android e outras plataformas
- browse_directory: Navegue pelo diretório de perfis e filtre por interesses
- browse_local_posts: Navegue pelos toots públicos locais em tempo real
- browse_public_posts: Navegue pelos toots públicos globais em tempo real
- contact: Contato
contact_missing: Não definido
contact_unavailable: Não disponível
- continue_to_web: Continuar no aplicativo web
- discover_users: Descubra usuários
- documentation: Documentação
- federation_hint_html: Com uma conta em %{instance} você vai poder seguir e interagir com pessoas de qualquer canto do fediverso.
- get_apps: Experimente um aplicativo
hosted_on: Instância Mastodon em %{domain}
- instance_actor_flash: |
- Esta conta é um ator virtual usado para representar o próprio servidor e não qualquer usuário individual.
- É usado para propósitos de federação e não deve ser bloqueado a menos que queira bloquear toda a instância, o que no caso devia usar um bloqueio de domínio.
- learn_more: Saiba mais
- logged_in_as_html: Você está atualmente logado como %{username}.
- logout_before_registering: Já está logado.
- privacy_policy: Política de Privacidade
- rules: Regras do servidor
- rules_html: 'Abaixo está um resumo das regras que você precisa seguir se você quer ter uma conta neste servidor do Mastodon:'
- see_whats_happening: Veja o que está acontecendo
- server_stats: 'Estatísticas da instância:'
- source_code: Código-fonte
- status_count_after:
- one: toot
- other: toots
- status_count_before: Autores de
- tagline: Siga seus amigos e faça novas amizades
- terms: Termos de serviço
- unavailable_content: Conteúdo indisponível
- unavailable_content_description:
- domain: Instância
- reason: 'Motivo:'
- rejecting_media: 'Arquivos de mídia destas instâncias não serão processados ou armazenados e nenhuma miniatura será exibida, exigindo que o usuário abra o arquivo original manualmente:'
- rejecting_media_title: Mídia filtrada
- silenced: 'Toots destas instâncias serão ocultos em linhas e conversas públicas, e nenhuma notificação será gerada a partir das interações dos seus usuários, a menos que esteja sendo seguido:'
- silenced_title: Servidores silenciados
- suspended: 'Você não será capaz de seguir ninguém destas instâncias, e nenhum dado delas será processado, armazenado ou trocado:'
- suspended_title: Servidores banidos
- unavailable_content_html: Mastodon geralmente permite que você veja o conteúdo e interaja com usuários de qualquer outra instância no fediverso. Estas são as exceções desta instância em específico.
- user_count_after:
- one: usuário
- other: usuários
- user_count_before: Casa de
- what_is_mastodon: O que é Mastodon?
accounts:
- choices_html: 'Sugestões de %{name}:'
- endorsements_hint: Você pode sugerir pessoas que você segue, elas aparecerão aqui.
- featured_tags_hint: Você pode destacar hashtags específicas, elas aparecerão aqui.
follow: Seguir
followers:
one: Seguidor
other: Seguidores
following: Seguindo
instance_actor_flash: Esta conta é um ator virtual usado para representar o próprio servidor e não um usuário individual. É utilizada para fins de federação e não deve ser suspensa.
- joined: Entrou em %{date}
last_active: última atividade
link_verified_on: O link foi verificado em %{date}
- media: Mídia
- moved_html: "%{name} se mudou para %{new_profile_link}:"
- network_hidden: Informação indisponível
nothing_here: Nada aqui!
- people_followed_by: Pessoas que %{name} segue
- people_who_follow: Pessoas que seguem %{name}
pin_errors:
following: Você deve estar seguindo a pessoa que você deseja sugerir
posts:
one: Toot
other: Toots
posts_tab_heading: Toots
- posts_with_replies: Toots e respostas
- roles:
- admin: Admin
- bot: Robô
- group: Grupo
- moderator: Moderador
- unavailable: Perfil indisponível
- unfollow: Deixar de seguir
admin:
account_actions:
action: Tomar uma atitude
@@ -105,12 +37,17 @@ pt-BR:
avatar: Imagem de perfil
by_domain: Domínio
change_email:
- changed_msg: E-mail da conta alterado com sucesso!
+ changed_msg: E-mail alterado com sucesso!
current_email: E-mail atual
label: Alterar e-mail
new_email: Novo e-mail
submit: Alterar e-mail
title: Alterar e-mail para %{username}
+ change_role:
+ changed_msg: Função alterada com sucesso!
+ label: Alterar função
+ no_role: Nenhuma função
+ title: Alterar função para %{username}
confirm: Confirmar
confirmed: Confirmado
confirming: Confirmando
@@ -154,6 +91,7 @@ pt-BR:
active: Ativo
all: Todos
pending: Pendente
+ silenced: Limitado
suspended: Banidos
title: Moderação
moderation_notes: Notas de moderação
@@ -161,6 +99,7 @@ pt-BR:
most_recent_ip: IP mais recente
no_account_selected: Nenhuma conta foi alterada, pois nenhuma conta foi selecionada
no_limits_imposed: Nenhum limite imposto
+ no_role_assigned: Nenhuma função atribuída
not_subscribed: Não inscrito
pending: Revisão pendente
perform_full_suspension: Banir
@@ -187,12 +126,7 @@ pt-BR:
reset: Redefinir
reset_password: Redefinir senha
resubscribe: Reinscrever-se
- role: Permissões
- roles:
- admin: Administrador
- moderator: Moderador
- staff: Equipe
- user: Usuário
+ role: Função
search: Pesquisar
search_same_email_domain: Outros usuários com o mesmo domínio de e-mail
search_same_ip: Outros usuários com o mesmo IP
@@ -235,6 +169,7 @@ pt-BR:
approve_user: Aprovar Usuário
assigned_to_self_report: Adicionar relatório
change_email_user: Editar e-mail do usuário
+ change_role_user: Alteração de Função do Usuário
confirm_user: Confirmar Usuário
create_account_warning: Criar Aviso
create_announcement: Criar Anúncio
@@ -244,6 +179,7 @@ pt-BR:
create_email_domain_block: Criar Bloqueio de Domínio de E-mail
create_ip_block: Criar regra de IP
create_unavailable_domain: Criar domínio indisponível
+ create_user_role: Criar Função
demote_user: Rebaixar usuário
destroy_announcement: Excluir anúncio
destroy_custom_emoji: Excluir emoji personalizado
@@ -254,6 +190,7 @@ pt-BR:
destroy_ip_block: Excluir regra de IP
destroy_status: Excluir Status
destroy_unavailable_domain: Deletar domínio indisponível
+ destroy_user_role: Destruir Função
disable_2fa_user: Desativar autenticação de dois fatores
disable_custom_emoji: Desativar Emoji Personalizado
disable_sign_in_token_auth_user: Desativar autenticação via token por email para Usuário
@@ -281,11 +218,13 @@ pt-BR:
update_custom_emoji: Editar Emoji Personalizado
update_domain_block: Atualizar bloqueio de domínio
update_status: Editar Status
+ update_user_role: Atualizar função
actions:
approve_appeal_html: "%{name} aprovou o recurso de decisão de moderação de %{target}"
approve_user_html: "%{name} aprovado inscrição de %{target}"
assigned_to_self_report_html: "%{name} atribuiu o relatório %{target} para si"
change_email_user_html: "%{name} alterou o endereço de e-mail do usuário %{target}"
+ change_role_user_html: "%{name} alterou a função de %{target}"
confirm_user_html: "%{name} confirmou o endereço de e-mail do usuário %{target}"
create_account_warning_html: "%{name} enviou um aviso para %{target}"
create_announcement_html: "%{name} criou o novo anúncio %{target}"
@@ -295,9 +234,9 @@ pt-BR:
create_email_domain_block_html: "%{name} bloqueou do domínio de e-mail %{target}"
create_ip_block_html: "%{name} criou regra para o IP %{target}"
create_unavailable_domain_html: "%{name} parou a entrega ao domínio %{target}"
+ create_user_role_html: "%{name} criou a função %{target}"
demote_user_html: "%{name} rebaixou o usuário %{target}"
destroy_announcement_html: "%{name} excluiu o anúncio %{target}"
- destroy_custom_emoji_html: "%{name} excluiu emoji %{target}"
destroy_domain_allow_html: "%{name} bloqueou federação com domínio %{target}"
destroy_domain_block_html: "%{name} deixou de bloquear domínio %{target}"
destroy_email_domain_block_html: "%{name} adicionou domínio de e-mail %{target} à lista branca"
@@ -305,6 +244,7 @@ pt-BR:
destroy_ip_block_html: "%{name} excluiu regra para o IP %{target}"
destroy_status_html: "%{name} excluiu post de %{target}"
destroy_unavailable_domain_html: "%{name} retomou a entrega ao domínio %{target}"
+ destroy_user_role_html: "%{name} excluiu a função %{target}"
disable_2fa_user_html: "%{name} desativou a exigência de autenticação de dois fatores para o usuário %{target}"
disable_custom_emoji_html: "%{name} desativou o emoji %{target}"
disable_sign_in_token_auth_user_html: "%{name} desativou a autenticação via token por email para %{target}"
@@ -332,7 +272,7 @@ pt-BR:
update_custom_emoji_html: "%{name} atualizou o emoji %{target}"
update_domain_block_html: "%{name} atualizou o bloqueio de domínio de %{target}"
update_status_html: "%{name} atualizou a publicação de %{target}"
- deleted_status: "(status excluído)"
+ update_user_role_html: "%{name} alterou a função %{target}"
empty: Nenhum registro encontrado.
filter_by_action: Filtrar por ação
filter_by_user: Filtrar por usuário
@@ -428,6 +368,7 @@ pt-BR:
destroyed_msg: Domínio desbloqueado
domain: Domínio
edit: Editar bloqueio de domínio
+ existing_domain_block: Você já impôs limites mais rigorosos em %{name}.
existing_domain_block_html: Você já impôs limites mais estritos em %{name}, você precisa desbloqueá-lo primeiro.
new:
create: Criar bloqueio
@@ -615,6 +556,7 @@ pt-BR:
forwarded: Encaminhados
forwarded_to: Encaminhado para %{domain}
mark_as_resolved: Marcar como resolvido
+ mark_as_sensitive: Marcar como sensível
mark_as_unresolved: Marcar como não resolvido
no_one_assigned: Ninguém
notes:
@@ -642,6 +584,54 @@ pt-BR:
unresolved: Não resolvido
updated_at: Atualizado
view_profile: Ver perfil
+ roles:
+ add_new: Adicionar função
+ assigned_users:
+ one: "%{count} usuário"
+ other: "%{count} usuários"
+ categories:
+ administration: Administração
+ invites: Convites
+ moderation: Moderação
+ special: Especial
+ delete: Excluir
+ description_html: Com as funções de usuário , você pode personalizar quais funções e áreas do Mastodon seus usuários podem acessar.
+ edit: Editar função de '%{name}'
+ everyone: Permissões padrão
+ everyone_full_description_html: Esta é a função base que afeta todos os usuários , mesmo aqueles sem uma função atribuída. Todas as outras funções dela herdam as suas permissões.
+ privileges:
+ administrator: Administrador
+ administrator_description: Usuários com essa permissão irão ignorar todas as permissões
+ invite_users: Convidar Usuários
+ invite_users_description: Permite que os usuários convidem novas pessoas para o servidor
+ manage_announcements: Gerenciar Avisos
+ manage_announcements_description: Permite aos usuários gerenciar anúncios no servidor
+ manage_blocks_description: Permite aos usuários bloquear provedores de e-mail e endereços IP
+ manage_custom_emojis_description: Permite aos usuários gerenciar emojis personalizados no servidor
+ manage_federation: Gerenciar Federação
+ manage_federation_description: Permite aos usuários bloquear ou permitir federação com outros domínios e controlar a entregabilidade
+ manage_invites: Gerenciar convites
+ manage_invites_description: Permite que os usuários naveguem e desativem os links de convites
+ manage_reports: Gerenciar relatórios
+ manage_roles: Gerenciar Funções
+ manage_roles_description: Permitir que os usuários gerenciem e atribuam papéis abaixo deles
+ manage_rules: Gerenciar Regras
+ manage_rules_description: Permite que os usuários alterarem as regras do servidor
+ manage_settings: Gerenciar Configurações
+ manage_settings_description: Permite que os usuários alterem as configurações do site
+ manage_taxonomies: Gerenciar taxonomias
+ manage_taxonomies_description: Permite aos usuários rever o conteúdo em alta e atualizar as configurações de hashtag
+ manage_user_access: Gerenciar Acesso de Usuário
+ manage_user_access_description: Permite aos usuários desativar a autenticação de dois fatores de outros usuários, alterar seu endereço de e-mail e redefinir sua senha
+ manage_users: Gerenciar usuários
+ manage_users_description: Permite aos usuários ver os detalhes de outros usuários e executar ações de moderação contra eles
+ manage_webhooks: Gerenciar Webhooks
+ manage_webhooks_description: Permite aos usuários configurar webhooks para eventos administrativos
+ view_audit_log: Ver o registro de auditoria
+ view_audit_log_description: Permite aos usuários ver um histórico de ações administrativas no servidor
+ view_dashboard: Ver painel
+ view_dashboard_description: Permite que os usuários acessem o painel e várias métricas
+ title: Funções
rules:
add_new: Adicionar regra
delete: Deletar
@@ -650,94 +640,15 @@ pt-BR:
empty: Nenhuma regra do servidor foi definida.
title: Regras do servidor
settings:
- activity_api_enabled:
- desc_html: Contagem de toots locais, usuários ativos e novos usuários semanalmente
- title: Publicar estatísticas agregadas sobre atividade de usuários
- bootstrap_timeline_accounts:
- desc_html: Separe nomes de usuário através de vírgulas. Funciona apenas com contas locais e destrancadas. O padrão quando vazio são todos os administradores locais.
- title: Usuários a serem seguidos por padrão por novas contas
- contact_information:
- email: E-mail
- username: Usuário de contato
- custom_css:
- desc_html: Alterar o visual com CSS carregado em todas as páginas
- title: CSS personalizado
- default_noindex:
- desc_html: Afeta qualquer usuário que não tenha alterado esta configuração manualmente
- title: Optar por excluir usuários da indexação de mecanismos de pesquisa por padrão
domain_blocks:
all: Para todos
disabled: Para ninguém
- title: Mostrar domínios bloqueados
users: Para usuários locais logados
- domain_blocks_rationale:
- title: Mostrar motivo
- hero:
- desc_html: Aparece na página inicial. Recomendado ao menos 600x100px. Se não estiver definido, a miniatura da instância é usada no lugar
- title: Imagem de capa
- mascot:
- desc_html: Mostrado em diversas páginas. Recomendado ao menos 293×205px. Quando não está definido, o mascote padrão é mostrado
- title: Imagem do mascote
- peers_api_enabled:
- desc_html: Nomes de domínio que essa instância encontrou no fediverso
- title: Publicar lista de instâncias descobertas
- preview_sensitive_media:
- desc_html: A prévia do link em outros sites vai incluir uma miniatura mesmo se a mídia estiver marcada como sensível
- title: Mostrar mídia sensível em prévias OpenGraph
- profile_directory:
- desc_html: Permitir que usuários possam ser descobertos
- title: Ativar diretório de perfis
- registrations:
- closed_message:
- desc_html: Mostrado na página inicial quando a instância está fechada. Você pode usar tags HTML
- title: Mensagem de instância fechada
- deletion:
- desc_html: Permitir que qualquer um exclua a própria conta
- title: Exclusão aberta de contas
- min_invite_role:
- disabled: Ninguém
- title: Permitir convites de
- require_invite_text:
- desc_html: Quando o cadastro de novas contas exigir aprovação manual, tornar obrigatório, ao invés de opcional, o texto de solicitação de convite em "Por que você deseja criar uma conta aqui?"
- title: Exigir que novos usuários preencham um texto de solicitação de convite
registrations_mode:
modes:
approved: Aprovação necessária para criar conta
none: Ninguém pode criar conta
open: Qualquer um pode criar conta
- title: Modo de novos usuários
- show_known_fediverse_at_about_page:
- desc_html: Quando ativado, mostra toots globais na prévia da linha, se não, mostra somente toots locais
- title: Mostrar toots globais na prévia da linha
- show_staff_badge:
- desc_html: Mostrar uma insígnia de Equipe na página de usuário
- title: Mostrar insígnia de equipe
- site_description:
- desc_html: Parágrafo introdutório na página inicial. Descreva o que faz esse servidor especial, e qualquer outra coisa de importante. Você pode usar tags HTML, em especial <a>
e <em>
.
- title: Descrição da instância
- site_description_extended:
- desc_html: Um ótimo lugar para seu código de conduta, regras, diretrizes e outras coisas para diferenciar a sua instância. Você pode usar tags HTML
- title: Informação estendida personalizada
- site_short_description:
- desc_html: Mostrada na barra lateral e em etiquetas de metadados. Descreve o que é o Mastodon e o que torna esta instância especial num único parágrafo. Se deixada em branco, é substituído pela descrição da instância.
- title: Descrição curta da instância
- site_terms:
- desc_html: Você pode escrever a sua própria Política de Privacidade, Termos de Serviço, entre outras coisas. Você pode usar tags HTML
- title: Termos de serviço personalizados
- site_title: Nome da instância
- thumbnail:
- desc_html: Usada para prévias via OpenGraph e API. Recomenda-se 1200x630px
- title: Miniatura da instância
- timeline_preview:
- desc_html: Mostra a linha do tempo pública na página inicial e permite acesso da API à mesma sem autenticação
- title: Permitir acesso não autenticado à linha pública
- title: Configurações do site
- trendable_by_default:
- desc_html: Afeta as hashtags que não foram reprovadas anteriormente
- title: Permitir que hashtags fiquem em alta sem revisão prévia
- trends:
- desc_html: Mostrar publicamente hashtags previamente revisadas que estão em alta
- title: Hashtags em alta
site_uploads:
delete: Excluir arquivo enviado
destroyed_msg: Upload do site excluído com sucesso!
@@ -745,6 +656,7 @@ pt-BR:
back_to_account: Voltar para página da conta
back_to_report: Voltar às denúncias
batch:
+ remove_from_report: Remover do relatório
report: Denunciar
deleted: Excluídos
media:
@@ -752,9 +664,16 @@ pt-BR:
no_status_selected: Nenhum status foi modificado porque nenhum estava selecionado
title: Toots da conta
with_media: Com mídia
+ strikes:
+ appeal_approved: Apelado
+ appeal_pending: Recurso pendente
system_checks:
database_schema_check:
message_html: Existem migrações de banco de dados pendentes. Por favor, execute-as para garantir que o aplicativo se comporte como esperado
+ elasticsearch_running_check:
+ message_html: Não foi possível conectar ao Elasticsearch. Por favor, verifique se está em execução, ou desabilite a pesquisa de texto completo
+ elasticsearch_version_check:
+ message_html: 'Versão de Elasticsearch incompatível: %{value}'
rules_check:
action: Gerenciar regras do servidor
message_html: Você não definiu nenhuma regra de servidor.
@@ -773,15 +692,18 @@ pt-BR:
disallow_provider: Anular editor
title: Em alta no momento
usage_comparison: Compartilhado %{today} vezes hoje, em comparação com %{yesterday} de ontem
+ only_allowed: Somente permitido
pending_review: Revisão pendente
preview_card_providers:
allowed: Links deste editor podem tender
+ description_html: Estes são domínios a partir dos quais links são comumente compartilhados em seu servidor. Links não tenderão publicamente a menos que o domínio do link seja aprovado. Sua aprovação (ou rejeição) estende-se aos subdomínios.
rejected: Links deste editor não vão tender
title: Editor
rejected: Rejeitado
statuses:
allow: Permitir postagem
allow_account: Permitir autor
+ description_html: Estes são posts que seu servidor sabe que estão sendo muito compartilhados e favorecidos no momento. Isso pode ajudar seus usuários, novos e retornantes, a encontrar mais pessoas para seguir. Nenhum post é exibido publicamente até que você aprove o autor e o autor permitir que sua conta seja sugerida a outros. Você também pode permitir ou rejeitar postagens individuais.
title: Publicações em alta
tags:
current_score: Pontuação atual %{score}
@@ -800,13 +722,28 @@ pt-BR:
usable: Pode ser usado
usage_comparison: Usado %{today} vezes hoje, em comparação com %{yesterday} de ontem
title: Em alta
+ trending: Em alta
warning_presets:
add_new: Adicionar novo
delete: Excluir
edit_preset: Editar o aviso pré-definido
empty: Você ainda não definiu nenhuma predefinição de alerta.
title: Gerenciar os avisos pré-definidos
+ webhooks:
+ delete: Excluir
+ disable: Desabilitar
+ disabled: Desativado
+ enable: Habilitar
+ enabled: Ativo
+ events: Eventos
+ status: Status
admin_mailer:
+ new_appeal:
+ actions:
+ delete_statuses: para excluir suas publicações
+ none: um aviso
+ sensitive: para marcar sua conta como sensível
+ silence: para limitar sua conta
new_pending_account:
body: Os detalhes da nova conta estão abaixo. Você pode aprovar ou vetar.
subject: Nova conta para revisão em %{instance} (%{username})
@@ -851,16 +788,12 @@ pt-BR:
applications:
created: Aplicativo criado com sucesso
destroyed: Aplicativo excluído com sucesso
- invalid_url: O link fornecido é inválido
regenerate_token: Gerar código de acesso
token_regenerated: Código de acesso gerado com sucesso
warning: Tenha cuidado com estes dados. Nunca compartilhe com alguém!
your_token: Seu código de acesso
auth:
- apply_for_account: Solicitar convite
change_password: Senha
- checkbox_agreement_html: Concordo com as regras da instância e com os termos de serviço
- checkbox_agreement_without_rules_html: Concordo com os termos do serviço
delete_account: Excluir conta
delete_account_html: Se você deseja excluir sua conta, você pode fazer isso aqui . Uma confirmação será solicitada.
description:
@@ -900,7 +833,6 @@ pt-BR:
redirecting_to: Sua conta está inativa porque atualmente está redirecionando para %{acct}.
view_strikes: Veja os ataques anteriores contra a sua conta
too_fast: O formulário foi enviado muito rapidamente, tente novamente.
- trouble_logging_in: Problemas para entrar?
use_security_key: Usar chave de segurança
authorize_follow:
already_following: Você já segue
@@ -958,10 +890,6 @@ pt-BR:
more_details_html: Para mais detalhes, consulte a Política de Privacidade .
username_available: Seu nome de usuário ficará disponível novamente
username_unavailable: Seu nome de usuário permanecerá indisponível
- directories:
- directory: Diretório de perfis
- explanation: Descobrir usuários baseado em seus interesses
- explore_mastodon: Explore o %{title}
disputes:
strikes:
action_taken: Ações tomadas
@@ -972,10 +900,12 @@ pt-BR:
appealed_msg: Seu recurso foi enviado. Se ele for aprovado, você será notificado.
appeals:
submit: Enviar recurso
+ approve_appeal: Aprovar recurso
associated_report: Relatório associado
created_at: Datado
description_html: Estas são ações tomadas contra sua conta e avisos que foram enviados a você pela equipe de %{instance}.
recipient: Endereçado para
+ reject_appeal: Rejeitar recurso
status: 'Postagem #%{id}'
status_removed: Postagem já removida do sistema
title: "%{action} de %{date}"
@@ -1038,20 +968,20 @@ pt-BR:
public: Linhas públicas
thread: Conversas
edit:
+ add_keyword: Adicionar palavra-chave
+ keywords: Palavras-chave
+ statuses: Postagens individuais
title: Editar filtro
errors:
invalid_context: Contexto inválido ou nenhum contexto informado
- invalid_irreversible: O filtro irreversível só funciona com os contextos página inicial e notificações
index:
delete: Remover
empty: Sem filtros.
title: Filtros
new:
+ save: Salvar novo filtro
title: Adicionar filtro
footer:
- developers: Desenvolvedores
- more: Mais…
- resources: Recursos
trending_now: Em alta no momento
generic:
all: Tudo
@@ -1084,7 +1014,6 @@ pt-BR:
following: Pessoas que você segue
muting: Lista de silenciados
upload: Enviar
- in_memoriam_html: Em memória.
invites:
delete: Desativar
expired: Expirados
@@ -1165,19 +1094,10 @@ pt-BR:
copy_account_note_text: 'Este usuário saiu de %{acct}, aqui estão suas notas anteriores sobre ele:'
notification_mailer:
admin:
+ report:
+ subject: "%{name} enviou uma denúncia"
sign_up:
subject: "%{name} se inscreveu"
- digest:
- action: Ver todas as notificações
- body: Aqui está um breve resumo das mensagens que você perdeu desde o seu último acesso em %{since}
- mention: "%{name} te mencionou em:"
- new_followers_summary:
- one: Você tem um novo seguidor! Uia!
- other: Você tem %{count} novos seguidores! AÊÊÊ!
- subject:
- one: "Uma nova notificação desde o seu último acesso 🐘"
- other: "%{count} novas notificações desde o seu último acesso 🐘"
- title: Enquanto você estava ausente...
favourite:
body: "%{name} favoritou seu toot:"
subject: "%{name} favoritou seu toot"
@@ -1271,25 +1191,12 @@ pt-BR:
remove_selected_follows: Deixar de seguir usuários selecionados
status: Status da conta
remote_follow:
- acct: Digite o seu usuário@domínio para continuar
missing_resource: Não foi possível encontrar o link de redirecionamento para sua conta
- no_account_html: Não tem uma conta? Você pode criar uma aqui
- proceed: Continue para seguir
- prompt: 'Você seguirá:'
- reason_html: "Por que esse passo é necessário? %{instance}
pode não ser a instância onde você se hospedou, então precisamos redirecionar você para a sua instância primeiro."
- remote_interaction:
- favourite:
- proceed: Continue para favoritar
- prompt: 'Você favoritará este toot:'
- reblog:
- proceed: Continue para dar boost
- prompt: 'Você dará boost neste toot:'
- reply:
- proceed: Continue para responder
- prompt: 'Você responderá este toot:'
reports:
errors:
invalid_rules: não faz referência a regras válidas
+ rss:
+ content_warning: 'Aviso de conteúdo:'
scheduled_statuses:
over_daily_limit: Você excedeu o limite de %{limit} toots agendados para esse dia
over_total_limit: Você excedeu o limite de %{limit} toots agendados
@@ -1450,8 +1357,6 @@ pt-BR:
sensitive_content: Conteúdo sensível
tags:
does_not_match_previous_name: não corresponde ao nome anterior
- terms:
- title: Termos de Serviço e Política de Privacidade de %{instance}
themes:
contrast: Mastodon (Alto contraste)
default: Mastodon (Noturno)
@@ -1521,20 +1426,11 @@ pt-BR:
suspend: Conta banida
welcome:
edit_profile_action: Configurar perfil
- edit_profile_step: Você pode personalizar o seu perfil enviando um avatar, uma capa, alterando seu nome de exibição e etc. Se você preferir aprovar seus novos seguidores antes de eles te seguirem, você pode trancar a sua conta.
explanation: Aqui estão algumas dicas para você começar
final_action: Comece a tootar
- final_step: 'Comece a tootar! Mesmo sem seguidores, suas mensagens públicas podem ser vistas pelos outros, por exemplo, na linha local e nas hashtags. Você pode querer fazer uma introdução usando a hashtag #introdução, ou em inglês usando a hashtag #introductions.'
full_handle: Seu nome de usuário completo
full_handle_hint: Isso é o que você compartilha com aos seus amigos para que eles possam te mandar toots ou te seguir a partir de outra instância.
- review_preferences_action: Alterar preferências
- review_preferences_step: Não se esqueça de configurar suas preferências, como quais e-mails você gostaria de receber, que nível de privacidade você gostaria que seus toots tenham por padrão. Se você não sofre de enjoo com movimento, você pode habilitar GIFs animado automaticamente.
subject: Boas-vindas ao Mastodon
- tip_federated_timeline: A linha global é uma visão contínua da rede do Mastodon. Mas ela só inclui pessoas de instâncias que a sua instância conhece, então não é a rede completa.
- tip_following: Você vai seguir administrador(es) da sua instância por padrão. Para encontrar mais gente interessante, confira as linhas local e global.
- tip_local_timeline: A linha local é uma visão contínua das pessoas em %{instance}. Estes são seus vizinhos!
- tip_mobile_webapp: Se o seu navegador móvel oferecer a opção de adicionar Mastodon à tela inicial, você pode receber notificações push. Será como um aplicativo nativo!
- tips: Dicas
title: Boas vindas, %{name}!
users:
follow_limit_reached: Você não pode seguir mais de %{limit} pessoas
diff --git a/config/locales/pt-PT.yml b/config/locales/pt-PT.yml
index 377360a9d8..a5c4a6de1e 100644
--- a/config/locales/pt-PT.yml
+++ b/config/locales/pt-PT.yml
@@ -1,94 +1,27 @@
---
pt-PT:
about:
- about_hashtag_html: Estes são toots públicos marcados com #%{hashtag} . Podes interagir com eles se tiveres uma conta Mastodon.
about_mastodon_html: Mastodon é uma rede social baseada em protocolos abertos da web e software livre e gratuito. É descentralizado como e-mail.
- about_this: Sobre esta instância
- active_count_after: activo
- active_footnote: Utilizadores activos mensais (UAM)
- administered_by: 'Administrado por:'
- api: API
- apps: Aplicações móveis
- apps_platforms: Usar o Mastodon a partir do iOS, Android e outras plataformas
- browse_directory: Navegue pelo directório de perfis e filtre por interesses
- browse_local_posts: Visualize as publicações públicas desta instância em tempo real
- browse_public_posts: Visualize as publicações públicas do Mastodon em tempo real
- contact: Contacto
contact_missing: Não configurado
contact_unavailable: n.d.
- continue_to_web: Continuar para a aplicação web
- discover_users: Descobrir utilizadores
- documentation: Documentação
- federation_hint_html: Ter uma conta em %{instance} permitirá seguir pessoas em qualquer instância Mastodon.
- get_apps: Experimente uma aplicação
hosted_on: Mastodon em %{domain}
- instance_actor_flash: |
- Esta conta é um actor virtual usado para representar a própria instância e não um utilizador individual.
- É usada para motivos de federação e não deve ser bloqueada a não ser que que queira bloquear a instância por completo. Se for esse o caso, deverá usar o bloqueio de domínio.
- learn_more: Saber mais
- logged_in_as_html: Está de momento ligado como %{username}.
- logout_before_registering: Já tem sessão iniciada.
- privacy_policy: Política de privacidade
- rules: Regras da instância
- rules_html: 'Abaixo está um resumo das regras que precisa seguir se pretender ter uma conta nesta instância do Mastodon:'
- see_whats_happening: Veja o que está a acontecer
- server_stats: 'Estatísticas da instância:'
- source_code: Código fonte
- status_count_after:
- one: publicação
- other: publicações
- status_count_before: Que fizeram
- tagline: Siga os seus amigos e descubra novas amizades
- terms: Termos de serviço
- unavailable_content: Conteúdo indisponível
- unavailable_content_description:
- domain: Instância
- reason: Motivo
- rejecting_media: 'Arquivos de media destas instâncias não serão processados ou armazenados, e nenhuma miniatura será exibida, o que requer que o utilizador clique e abra o arquivo original manualmente:'
- rejecting_media_title: Media filtrada
- silenced: 'Publicações destas instâncias serão ocultas em linhas do tempo e conversas públicas, e nenhuma notificação será gerada a partir das interações dos seus utilizadores, a menos que você os esteja a seguir:'
- silenced_title: Servidores silenciados
- suspended: 'Nenhum dado dessas instâncias será processado, armazenado ou trocado, tornando qualquer interação ou comunicação com os utilizadores dessas instâncias impossível:'
- suspended_title: Servidores suspensos
- unavailable_content_html: Mastodon geralmente permite que você veja o conteúdo e interaja com utilizadores de qualquer outra instância no fediverso. Estas são as exceções desta instância em específico.
- user_count_after:
- one: utilizador
- other: utilizadores
- user_count_before: Casa para
- what_is_mastodon: O que é o Mastodon?
+ title: Sobre
accounts:
- choices_html: 'escolhas de %{name}:'
- endorsements_hint: Você pode, através da interface web, escolher endossar pessoas que segue, e elas aparecerão aqui.
- featured_tags_hint: Você pode destacar hashtags específicas que serão exibidas aqui.
follow: Seguir
followers:
one: Seguidor
other: Seguidores
following: A seguir
instance_actor_flash: Esta conta é um actor virtual usado para representar a própria instância e não um utilizador individual. É usada para motivos de federação e não deve ser suspenso.
- joined: Aderiu %{date}
last_active: última vez activo
link_verified_on: A posse deste link foi verificada em %{date}
- media: Media
- moved_html: "%{name} mudou-se para %{new_profile_link}:"
- network_hidden: Esta informação não está disponível
nothing_here: Não há nada aqui!
- people_followed_by: Pessoas seguidas por %{name}
- people_who_follow: Pessoas que seguem %{name}
pin_errors:
following: Tu tens de estar a seguir a pessoa que pretendes apoiar
posts:
one: Publicação
other: Publicações
posts_tab_heading: Publicações
- posts_with_replies: Posts e Respostas
- roles:
- admin: Administrador(a)
- bot: Robô
- group: Grupo
- moderator: Moderador
- unavailable: Perfil indisponível
- unfollow: Deixar de seguir
admin:
account_actions:
action: Executar acção
@@ -105,12 +38,17 @@ pt-PT:
avatar: Imagem de Perfil
by_domain: Domínio
change_email:
- changed_msg: E-mail da conta alterado com sucesso!
+ changed_msg: E-mail alterado com sucesso!
current_email: E-mail atual
label: Alterar e-mail
new_email: Novo e-mail
submit: Alterar e-mail
title: Alterar e-mail para %{username}
+ change_role:
+ changed_msg: Função alterada com sucesso!
+ label: Alterar função
+ no_role: Nenhuma função
+ title: Alterar a função de %{username}
confirm: Confirmar
confirmed: Confirmado
confirming: A confirmar
@@ -154,6 +92,7 @@ pt-PT:
active: Activo
all: Todos
pending: Pendente
+ silenced: Limitadas
suspended: Supensos
title: Moderação
moderation_notes: Notas de moderação
@@ -161,6 +100,7 @@ pt-PT:
most_recent_ip: IP mais recente
no_account_selected: Nenhuma conta foi alterada porque nenhuma foi selecionada
no_limits_imposed: Sem limites impostos
+ no_role_assigned: Nenhuma função atribuída
not_subscribed: Não inscrito
pending: Pendente de revisão
perform_full_suspension: Fazer suspensão completa
@@ -187,12 +127,7 @@ pt-PT:
reset: Restaurar
reset_password: Reset palavra-passe
resubscribe: Reinscrever
- role: Permissões
- roles:
- admin: Administrador(a)
- moderator: Moderador
- staff: Equipa
- user: Utilizador
+ role: Função
search: Pesquisar
search_same_email_domain: Outros utilizadores com o mesmo domínio de e-mail
search_same_ip: Outros utilizadores com o mesmo IP
@@ -235,17 +170,21 @@ pt-PT:
approve_user: Aprovar Utilizador
assigned_to_self_report: Atribuir Denúncia
change_email_user: Alterar E-mail do Utilizador
+ change_role_user: Alterar Função do Utilizador
confirm_user: Confirmar Utilizador
create_account_warning: Criar Aviso
create_announcement: Criar Anúncio
+ create_canonical_email_block: Criar Bloqueio de E-mail
create_custom_emoji: Criar Emoji Personalizado
create_domain_allow: Criar Permissão de Domínio
create_domain_block: Criar Bloqueio de Domínio
create_email_domain_block: Criar Bloqueio de Domínio de E-mail
create_ip_block: Criar regra de IP
create_unavailable_domain: Criar Domínio Indisponível
+ create_user_role: Criar Função
demote_user: Despromover Utilizador
destroy_announcement: Eliminar Anúncio
+ destroy_canonical_email_block: Eliminar Bloqueio de E-mail
destroy_custom_emoji: Eliminar Emoji Personalizado
destroy_domain_allow: Eliminar Permissão de Domínio
destroy_domain_block: Eliminar Bloqueio de Domínio
@@ -254,6 +193,7 @@ pt-PT:
destroy_ip_block: Eliminar regra de IP
destroy_status: Eliminar Publicação
destroy_unavailable_domain: Eliminar Domínio Indisponível
+ destroy_user_role: Eliminar Função
disable_2fa_user: Desativar 2FA
disable_custom_emoji: Desativar Emoji Personalizado
disable_sign_in_token_auth_user: Desativar token de autenticação por e-mail para Utilizador
@@ -280,24 +220,30 @@ pt-PT:
update_announcement: Atualizar Anúncio
update_custom_emoji: Atualizar Emoji Personalizado
update_domain_block: Atualizar Bloqueio de Domínio
+ update_ip_block: Atualizar regra de IP
update_status: Atualizar Estado
+ update_user_role: Atualizar Função
actions:
approve_appeal_html: "%{name} aprovou recurso da decisão de moderação de %{target}"
approve_user_html: "%{name} aprovou a inscrição de %{target}"
assigned_to_self_report_html: "%{name} atribuiu a denúncia %{target} a si próprio"
change_email_user_html: "%{name} alterou o endereço de e-mail do utilizador %{target}"
+ change_role_user_html: "%{name} alterou a função de %{target}"
confirm_user_html: "%{name} confirmou o endereço de e-mail do utilizador %{target}"
create_account_warning_html: "%{name} enviou um aviso para %{target}"
create_announcement_html: "%{name} criou o novo anúncio %{target}"
+ create_canonical_email_block_html: "%{name} bloqueou o e-mail com a hash %{target}"
create_custom_emoji_html: "%{name} carregou o novo emoji %{target}"
create_domain_allow_html: "%{name} habilitou a federação com o domínio %{target}"
create_domain_block_html: "%{name} bloqueou o domínio %{target}"
create_email_domain_block_html: "%{name} bloqueou o domínio de e-mail %{target}"
create_ip_block_html: "%{name} criou regra para o IP %{target}"
create_unavailable_domain_html: "%{name} parou a entrega ao domínio %{target}"
+ create_user_role_html: "%{name} criou a função %{target}"
demote_user_html: "%{name} despromoveu o utilizador %{target}"
destroy_announcement_html: "%{name} eliminou o anúncio %{target}"
- destroy_custom_emoji_html: "%{name} destruiu o emoji %{target}"
+ destroy_canonical_email_block_html: "%{name} desbloqueou o e-mail com a hash %{target}"
+ destroy_custom_emoji_html: "%{name} eliminou o emoji %{target}"
destroy_domain_allow_html: "%{name} desabilitou a federação com o domínio %{target}"
destroy_domain_block_html: "%{name} desbloqueou o domínio %{target}"
destroy_email_domain_block_html: "%{name} desbloqueou o domínio de e-mail %{target}"
@@ -305,6 +251,7 @@ pt-PT:
destroy_ip_block_html: "%{name} eliminou regra para o IP %{target}"
destroy_status_html: "%{name} removeu a publicação de %{target}"
destroy_unavailable_domain_html: "%{name} retomou a entrega ao domínio %{target}"
+ destroy_user_role_html: "%{name} eliminou a função %{target}"
disable_2fa_user_html: "%{name} desativou o requerimento de autenticação em dois passos para o utilizador %{target}"
disable_custom_emoji_html: "%{name} desabilitou o emoji %{target}"
disable_sign_in_token_auth_user_html: "%{name} desativou token de autenticação por e-mail para %{target}"
@@ -331,8 +278,9 @@ pt-PT:
update_announcement_html: "%{name} atualizou o anúncio %{target}"
update_custom_emoji_html: "%{name} atualizou o emoji %{target}"
update_domain_block_html: "%{name} atualizou o bloqueio de domínio para %{target}"
+ update_ip_block_html: "%{name} alterou regra para IP %{target}"
update_status_html: "%{name} atualizou o estado de %{target}"
- deleted_status: "(publicação eliminada)"
+ update_user_role_html: "%{name} alterou a função %{target}"
empty: Não foram encontrados registos.
filter_by_action: Filtrar por ação
filter_by_user: Filtrar por utilizador
@@ -376,6 +324,7 @@ pt-PT:
listed: Listado
new:
title: Adicionar novo emoji customizado
+ no_emoji_selected: Nenhum emojis foi alterado, pois nenhum foi selecionado
not_permitted: Não está autorizado a executar esta ação
overwrite: Sobrescrever
shortcode: Código de atalho
@@ -649,6 +598,67 @@ pt-PT:
unresolved: Por resolver
updated_at: Atualizado
view_profile: Ver perfil
+ roles:
+ add_new: Adicionar função
+ assigned_users:
+ one: "%{count} utilizador"
+ other: "%{count} utilizadores"
+ categories:
+ administration: Administração
+ devops: DevOps
+ invites: Convites
+ moderation: Moderação
+ special: Especiais
+ delete: Eliminar
+ description_html: Com as funções de utilizador , pode personalizar quais funções e áreas do Mastodon os seus utilizadores podem aceder.
+ edit: Editar função '%{name}'
+ everyone: Permissões padrão
+ everyone_full_description_html: Esta é a função base que afeta todos os utilizadores , mesmo aqueles sem uma função atribuída. Todas as outras funções herdam as permissões desta.
+ permissions_count:
+ one: "%{count} permissão"
+ other: "%{count} permissões"
+ privileges:
+ administrator: Administrador
+ administrator_description: Utilizadores com esta permissão irão contornar todas as permissões
+ delete_user_data: Eliminar Dados de Utilizador
+ delete_user_data_description: Permite que os utilizadores eliminem os dados de outros utilizadores sem atraso
+ invite_users: Convidar Utilizadores
+ invite_users_description: Permite aos utilizadores convidar pessoas novas para o servidor
+ manage_announcements: Gerir Anúncios
+ manage_announcements_description: Permite aos utilizadores gerir anúncios no servidor
+ manage_appeals: Gerir Recursos
+ manage_appeals_description: Permite aos utilizadores rever recursos de moderação
+ manage_blocks: Gerir Bloqueios
+ manage_blocks_description: Permite aos utilizadores bloquear provedores de e-mail e endereços IP
+ manage_custom_emojis: Gerir Emojis Personalizados
+ manage_custom_emojis_description: Permite aos utilizadores gerir os emojis personalizados do servidor
+ manage_federation: Gerir Federação
+ manage_federation_description: Permite aos utilizadores bloquear ou permitir federação com outros domínios e controlar a entregabilidade
+ manage_invites: Gerir Convites
+ manage_invites_description: Permite aos utilizadores pesquisar e desativar links de convite
+ manage_reports: Gerir Relatórios
+ manage_reports_description: Permite aos utilizadores rever relatórios e executar ações de moderação contra eles
+ manage_roles: Gerir Funções
+ manage_roles_description: Permite aos usuários gerir e atribuir funções abaixo das deles
+ manage_rules: Gerir Regras
+ manage_rules_description: Permite aos utilizadores alterar as regras do servidor
+ manage_settings: Gerir Configurações
+ manage_settings_description: Permite aos utilizadores alterar as configurações do site
+ manage_taxonomies: Gerir Taxonomias
+ manage_taxonomies_description: Permite aos utilizadores rever o conteúdo em tendência e atualizar as configurações de hashtag
+ manage_user_access: Gerir Acesso de Utilizador
+ manage_user_access_description: Permite aos utilizadores desativar a autenticação em duas etapas de outros utilizadores, alterar o seu endereço de e-mail e redefinir a sua palavra-passe
+ manage_users: Gerir Utilizadores
+ manage_users_description: Permite aos utilizadores ver os detalhes de outros utilizadores e executar ações de moderação contra eles
+ manage_webhooks: Gerir Webhooks
+ manage_webhooks_description: Permite aos utilizadores configurar webhooks para eventos administrativos
+ view_audit_log: Ver Registo de Auditoria
+ view_audit_log_description: Permite aos utilizadores ver um histórico de ações administrativas no servidor
+ view_dashboard: Ver Painel de Controlo
+ view_dashboard_description: Permite aos utilizadores aceder ao painel de controlo e várias métricas
+ view_devops: DevOps
+ view_devops_description: Permite aos utilizadores aceder aos painéis de controlo do Sidekiq e pgHero
+ title: Funções
rules:
add_new: Adicionar regra
delete: Eliminar
@@ -657,108 +667,67 @@ pt-PT:
empty: Nenhuma regra de instância foi ainda definida.
title: Regras da instância
settings:
- activity_api_enabled:
- desc_html: Contagem semanais de publicações locais, utilizadores activos e novos registos
- title: Publicar estatísticas agregadas sobre atividade dos utilizadores
- bootstrap_timeline_accounts:
- desc_html: Separa os nomes de utilizadores por vírgulas. Funciona apenas com contas locais e desbloqueadas. O padrão quando vazio são todos os administradores locais.
- title: Seguidores predefinidos para novas contas
- contact_information:
- email: Inserir um endereço de e-mail para tornar público
- username: Insira um nome de utilizador
- custom_css:
- desc_html: Modificar a aparência com CSS carregado em cada página
- title: CSS personalizado
- default_noindex:
- desc_html: Afeta todos os utilizadores que não alteraram esta configuração
- title: Desativar, por omissão, a indexação de utilizadores por parte dos motores de pesquisa
+ about:
+ manage_rules: Gerir regras do servidor
+ preamble: Forneça informações aprofundadas sobre como o servidor é operado, moderado, financiado.
+ rules_hint: Existe uma área dedicada às regras a que os seus utilizadores devem aderir.
+ title: Sobre
+ appearance:
+ preamble: Personalize a interface web do Mastodon.
+ title: Aspeto
+ branding:
+ preamble: A marca do seu servidor diferencia-a de outros servidores na rede. Essa informação pode ser exibida em vários ambientes, como a interface web do Mastodon, aplicativos nativos, visualizações de links em outros sites e dentro de aplicativos de mensagens, etc. Por esta razão, é melhor manter esta informação clara, curta e concisa.
+ title: Marca
+ content_retention:
+ preamble: Controle como o conteúdo gerado pelos utilizadores é armazenado no Mastodon.
+ title: Retenção de conteúdo
+ discovery:
+ follow_recommendations: Recomendações para seguir
+ preamble: Revelar conteúdos interessantes é fundamental para a entrada de novos utilizadores que podem não conhecer ninguém no Mastodon. Controle como os vários recursos de descoberta funcionam no seu servidor.
+ profile_directory: Diretório de perfis
+ public_timelines: Cronologias públicas
+ title: Descobrir
+ trends: Tendências
domain_blocks:
all: Para toda a gente
disabled: Para ninguém
- title: Mostrar domínios bloqueados
users: Para utilizadores locais que se encontrem autenticados
- domain_blocks_rationale:
- title: Mostrar motivo
- hero:
- desc_html: Apresentado na primeira página. Pelo menos 600x100px recomendados. Quando não é definido, é apresentada a miniatura da instância
- title: Imagem Hero
- mascot:
- desc_html: Apresentada em múltiplas páginas. Pelo menos 293x205px recomendados. Quando não é definida, é apresentada a mascote predefinida
- title: Imagem da mascote
- peers_api_enabled:
- desc_html: Nomes de domínio que esta instância encontrou no fediverso
- title: Publicar lista de instâncias descobertas
- preview_sensitive_media:
- desc_html: A pre-visualização de links noutros sites irá apresentar uma miniatura, mesmo que a media seja marcada como sensível
- title: Mostrar media sensível em pre-visualizações OpenGraph
- profile_directory:
- desc_html: Permite aos utilizadores serem descobertos
- title: Ativar directório do perfil
registrations:
- closed_message:
- desc_html: Mostrar na página inicial quando registos estão encerrados Podes usar tags HTML
- title: Mensagem de registos encerrados
- deletion:
- desc_html: Permitir a qualquer utilizador eliminar a sua conta
- title: Permitir eliminar contas
- min_invite_role:
- disabled: Ninguém
- title: Permitir convites de
- require_invite_text:
- desc_html: Quando os registos exigirem aprovação manual, faça o texto "Porque se quer juntar a nós?" da solicitação de convite obrigatório, em vez de opcional
- title: Exigir que novos utilizadores preencham um texto de solicitação de convite
+ preamble: Controle quem pode criar uma conta no seu servidor.
+ title: Inscrições
registrations_mode:
modes:
approved: Registo sujeito a aprovação
none: Ninguém se pode registar
open: Qualquer pessoa se pode registar
- title: Modo de registo
- show_known_fediverse_at_about_page:
- desc_html: Quando comutado, irá mostrar a previsualização de publicações de todo o fediverse conhecido. De outro modo só mostrará publicações locais.
- title: Mostrar o fediverse conhecido na previsualização da cronologia
- show_staff_badge:
- desc_html: Mostrar um crachá da equipa na página de utilizador
- title: Mostrar crachá da equipa
- site_description:
- desc_html: Mostrar como parágrafo na página inicial e usado como meta tag.Podes usar tags HTML, em particular <a>
e <em>
.
- title: Descrição do site
- site_description_extended:
- desc_html: Mostrar na página de mais informações Podes usar tags HTML
- title: Página de mais informações
- site_short_description:
- desc_html: Mostrada na barra lateral e em etiquetas de metadados. Descreve o que o Mastodon é e o que torna esta instância especial num único parágrafo. Se deixada em branco, remete para a descrição da instância.
- title: Breve descrição da instância
- site_terms:
- desc_html: Podes escrever a sua própria política de privacidade, termos de serviço, entre outras coisas. Pode utilizar etiquetas HTML
- title: Termos de serviço personalizados
- site_title: Título do site
- thumbnail:
- desc_html: Usada para visualizações via OpenGraph e API. Recomenda-se 1200x630px
- title: Miniatura da instância
- timeline_preview:
- desc_html: Exibir a linha temporal pública na página inicial
- title: Visualização da linha temporal
- title: Configurações do site
- trendable_by_default:
- desc_html: Afecta as hashtags que ainda não tenham sido proibidas
- title: Permitir hashtags em tendência sem revisão prévia
- trends:
- desc_html: Exibir publicamente hashtags atualmente em destaque que já tenham sido revistas anteriormente
- title: Hashtags em destaque
+ title: Definições do Servidor
site_uploads:
delete: Eliminar arquivo carregado
destroyed_msg: Upload do site eliminado com sucesso!
statuses:
+ account: Autor
+ application: Aplicação
back_to_account: Voltar para página da conta
back_to_report: Voltar à página da denúncia
batch:
remove_from_report: Remover da denúncia
report: Denúncia
deleted: Eliminado
+ favourites: Favoritos
+ history: Histórico de versões
+ in_reply_to: A responder a
+ language: Idioma
media:
title: Media
+ metadata: Metadados
no_status_selected: Nenhum estado foi alterado porque nenhum foi selecionado
+ open: Abrir publicação
+ original_status: Publicação original
+ reblogs: Reblogs
+ status_changed: Publicação alterada
title: Estado das contas
+ trending: Em destaque
+ visibility: Visibilidade
with_media: Com media
strikes:
actions:
@@ -798,6 +767,9 @@ pt-PT:
description_html: Estes são links que atualmente estão a ser frequentemente partilhados por contas visiveis pelo seu servidor. Eles podem ajudar os seus utilizador a descobrir o que está a acontecer no mundo. Nenhum link é exibido publicamente até que aprove o editor. Também pode permitir ou rejeitar links individualmente.
disallow: Não permitir link
disallow_provider: Não permitir editor
+ no_link_selected: Nenhum link foi alterado, pois nenhum foi selecionado
+ publishers:
+ no_publisher_selected: Nenhum editor foi alterado, pois nenhum foi selecionado
shared_by_over_week:
one: Partilhado por uma pessoa na última semana
other: Partilhado por %{count} pessoas na última semana
@@ -817,6 +789,7 @@ pt-PT:
description_html: Estas são publicações que o seu servidor conhece e que atualmente estão a ser frequentemente partilhadas e adicionadas aos favoritos. Isto pode ajudar os seus utilizadores, novos e retornados, a encontrar mais pessoas para seguir. Nenhuma publicação será exibida publicamente até que aprove o autor, e o autor permita que a sua conta seja sugerida a outros. Você também pode permitir ou rejeitar publicações individualmente.
disallow: Não permitir publicação
disallow_account: Não permitir autor
+ no_status_selected: Nenhuma publicação em tendência foi alterada, pois nenhuma foi selecionada
not_discoverable: O autor optou por não permitir que a sua conta seja sugerida a outros
shared_by:
one: Partilhado ou adicionado aos favoritos uma vez
@@ -832,6 +805,7 @@ pt-PT:
tag_uses_measure: utilizações totais
description_html: Estas são hashtags que aparecem atualmente com frequência em publicações visíveis pelo seu servidor. Isto pode ajudar os seus utilizadores a descobrir o que está ser mais falado no momento. Nenhuma hashtag é exibida publicamente até que a aprove.
listable: Pode ser sugerida
+ no_tag_selected: Nenhuma etiqueta foi alterada, pois nenhuma foi selecionada
not_listable: Não será sugerida
not_trendable: Não aparecerá nas tendências
not_usable: Não pode ser utilizada
@@ -852,6 +826,26 @@ pt-PT:
edit_preset: Editar o aviso predefinido
empty: Ainda não definiu nenhum aviso predefinido.
title: Gerir os avisos predefinidos
+ webhooks:
+ add_new: Adicionar endpoint
+ delete: Eliminar
+ description_html: Um webhook possibilita que o Mastodon envie notificações em tempo real de eventos seleccionados, para um seu aplicativo, para que este possa acionar ações automaticamente .
+ disable: Desativar
+ disabled: Desativado
+ edit: Editar endpoint
+ empty: Não tem ainda qualquer endpoint de webhook configurado.
+ enable: Ativar
+ enabled: Activo
+ enabled_events:
+ one: 1 evento ativado
+ other: "%{count} eventos ativados"
+ events: Eventos
+ new: Novo webhook
+ rotate_secret: Alternar segredo
+ secret: Segredo de assinatura
+ status: Estado
+ title: Webhooks
+ webhook: Webhook
admin_mailer:
new_appeal:
actions:
@@ -875,12 +869,8 @@ pt-PT:
new_trends:
body: 'Os seguintes itens precisam ser revistos antes de poderem ser exibidos publicamente:'
new_trending_links:
- no_approved_links: Não existem, atualmente, links aprovados em destaque.
- requirements: 'Qualquer um destes candidatos pode ultrapassar o #%{rank} link aprovado em destaque, que é atualmente "%{lowest_link_title}" com uma pontuação de %{lowest_link_score}.'
title: Links em destaque
new_trending_statuses:
- no_approved_statuses: Não existem, atualmente, publicações aprovadas em destaque.
- requirements: 'Qualquer um destes candidatos pode ultrapassar a #%{rank} publicação aprovada em destaque, que é atualmente %{lowest_status_url} com uma pontuação de %{lowest_status_score}.'
title: Publicações em destaque
new_trending_tags:
no_approved_tags: Não existem, atualmente, hashtags aprovadas em destaque.
@@ -916,16 +906,13 @@ pt-PT:
applications:
created: Aplicação criada com sucesso
destroyed: Aplicação eliminada com sucesso
- invalid_url: O URL é inválido
regenerate_token: Regenerar token de acesso
token_regenerated: Token de acesso regenerado com sucesso
warning: Cuidado com estes dados. Não partilhar com ninguém!
your_token: O teu token de acesso
auth:
- apply_for_account: Solicitar um convite
+ apply_for_account: Juntar-se à lista de espera
change_password: Palavra-passe
- checkbox_agreement_html: Concordo com as regras da instância e com os termos de serviço
- checkbox_agreement_without_rules_html: Concordo com os termos do serviço
delete_account: Eliminar conta
delete_account_html: Se deseja eliminar a sua conta, pode continuar aqui . Uma confirmação será solicitada.
description:
@@ -944,6 +931,7 @@ pt-PT:
migrate_account: Mudar para uma conta diferente
migrate_account_html: Se deseja redirecionar esta conta para uma outra pode configurar isso aqui .
or_log_in_with: Ou iniciar sessão com
+ privacy_policy_agreement_html: Eu li e concordo com a política de privacidade
providers:
cas: CAS
saml: SAML
@@ -951,12 +939,18 @@ pt-PT:
registration_closed: "%{instance} não está a aceitar novos membros"
resend_confirmation: Reenviar instruções de confirmação
reset_password: Criar nova palavra-passe
+ rules:
+ preamble: Estas são definidos e aplicadas pelos moderadores de %{domain}.
+ title: Algumas regras básicas.
security: Alterar palavra-passe
set_new_password: Editar palavra-passe
setup:
email_below_hint_html: Se o endereço de e-mail abaixo estiver incorreto, pode alterá-lo aqui e receber um novo e-mail de confirmação.
email_settings_hint_html: O e-mail de confirmação foi enviado para %{email}. Se esse endereço de e-mail não estiver correto, pode alterá-lo nas definições da conta.
title: Configuração
+ sign_up:
+ preamble: Com uma conta neste servidor Mastodon, poderá seguir qualquer outra pessoa na rede, independentemente do servidor onde a conta esteja hospedada.
+ title: Vamos lá inscrevê-lo em %{domain}.
status:
account_status: Estado da conta
confirming: A aguardar que conclua a confirmação do e-mail.
@@ -965,7 +959,6 @@ pt-PT:
redirecting_to: A sua conta está inativa porque está atualmente a ser redirecionada para %{acct}.
view_strikes: Veja as punições anteriores contra a sua conta
too_fast: Formulário enviado muito rapidamente, tente novamente.
- trouble_logging_in: Problemas em iniciar sessão?
use_security_key: Usar chave de segurança
authorize_follow:
already_following: Tu já estás a seguir esta conta
@@ -1023,10 +1016,6 @@ pt-PT:
more_details_html: Para mais detalhes, leia a política de privacidade .
username_available: O seu nome de utilizador ficará novamente disponível
username_unavailable: O seu nome de utilizador permanecerá indisponível
- directories:
- directory: Dirétorio de perfil
- explanation: Descobre utilizadores com base nos seus interesses
- explore_mastodon: Explorar %{title}
disputes:
strikes:
action_taken: Ação tomada
@@ -1105,29 +1094,60 @@ pt-PT:
public: Cronologias públicas
thread: Conversações
edit:
+ add_keyword: Adicionar palavra-chave
+ keywords: Palavras-chave
+ statuses: Publicações individuais
+ statuses_hint_html: Este filtro aplica-se a publicações individuais selecionadas independentemente de estas corresponderem às palavras-chave abaixo. Reveja ou remova publicações do filtro .
title: Editar filtros
errors:
+ deprecated_api_multiple_keywords: Estes parâmetros não podem ser alterados a partir deste aplicativo porque se aplicam a mais de um filtro de palavra-chave. Use um aplicativo mais recente ou a interface web.
invalid_context: Inválido ou nenhum contexto fornecido
- invalid_irreversible: Filtragem irreversível só funciona no contexto das notificações ou do início
index:
+ contexts: Filtros em %{contexts}
delete: Eliminar
empty: Não tem filtros.
+ expires_in: Expira em %{distance}
+ expires_on: Expira em %{date}
+ keywords:
+ one: "%{count} palavra-chave"
+ other: "%{count} palavras-chaves"
+ statuses:
+ one: "%{count} publicação"
+ other: "%{count} publicações"
+ statuses_long:
+ one: "%{count} publicação individual ocultada"
+ other: "%{count} publicações individuais ocultadas"
title: Filtros
new:
+ save: Salvar novo filtro
title: Adicionar novo filtro
+ statuses:
+ back_to_filter: Voltar ao filtro
+ batch:
+ remove: Remover do filtro
+ index:
+ hint: Este filtro aplica-se a publicações individuais selecionadas independentemente de outros critérios. Pode adicionar mais publicações a este filtro através da interface web.
+ title: Publicações filtradas
footer:
- developers: Responsáveis pelo desenvolvimento
- more: Mais…
- resources: Recursos
trending_now: Tendências atuais
generic:
all: Tudo
+ all_items_on_page_selected_html:
+ one: "%{count} item nesta página está selecionado."
+ other: Todo os %{count} items nesta página estão selecionados.
+ all_matching_items_selected_html:
+ one: "%{count} item que corresponde à sua pesquisa está selecionado."
+ other: Todos os %{count} items que correspondem à sua pesquisa estão selecionados.
changes_saved_msg: Alterações guardadas!
copy: Copiar
delete: Eliminar
+ deselect: Desmarcar todos
none: Nenhum
order_by: Ordenar por
save_changes: Guardar alterações
+ select_all_matching_items:
+ one: Selecione %{count} item que corresponde à sua pesquisa.
+ other: Selecione todos os %{count} items que correspondem à sua pesquisa.
today: hoje
validation_errors:
one: Algo não está correcto. Por favor vê o erro abaixo
@@ -1151,7 +1171,6 @@ pt-PT:
following: Lista de pessoas que estás a seguir
muting: Lista de utilizadores silenciados
upload: Enviar
- in_memoriam_html: Em memória.
invites:
delete: Desativar
expired: Expirados
@@ -1232,19 +1251,10 @@ pt-PT:
copy_account_note_text: 'Este utilizador migrou de %{acct}, aqui estão as suas notas anteriores sobre ele:'
notification_mailer:
admin:
+ report:
+ subject: "%{name} submeteu uma denúncia"
sign_up:
subject: "%{name} inscreveu-se"
- digest:
- action: Ver todas as notificações
- body: Aqui tens um breve resumo do que perdeste desde o último acesso a %{since}
- mention: "%{name} mencionou-te em:"
- new_followers_summary:
- one: Tens um novo seguidor! Boa!
- other: Tens %{count} novos seguidores! Fantástico!
- subject:
- one: "1 nova notificação desde o seu último acesso 🐘"
- other: "%{count} novas notificações desde o seu último acesso 🐘"
- title: Enquanto estiveste ausente…
favourite:
body: 'O teu post foi adicionado aos favoritos por %{name}:'
subject: "%{name} adicionou o teu post aos favoritos"
@@ -1316,6 +1326,8 @@ pt-PT:
other: Outro
posting_defaults: Padrões de publicação
public_timelines: Cronologias públicas
+ privacy_policy:
+ title: Política de Privacidade
reactions:
errors:
limit_reached: Limite de reações diferentes atingido
@@ -1338,22 +1350,7 @@ pt-PT:
remove_selected_follows: Deixar de seguir os utilizadores selecionados
status: Estado da conta
remote_follow:
- acct: Introduza o seu utilizador@domínio do qual quer seguir
missing_resource: Não foi possível achar a URL de redirecionamento para sua conta
- no_account_html: Não tens uma conta? Tu podes aderir aqui
- proceed: Prossiga para seguir
- prompt: 'Você vai seguir:'
- reason_html: " Porque é este passo necessário? %{instance}
pode não ser a instância onde você está registado. Por isso, precisamos de o redirecionar para a sua instância de origem em primeiro lugar."
- remote_interaction:
- favourite:
- proceed: Prosseguir para os favoritos
- prompt: 'Queres favoritar esta publicação:'
- reblog:
- proceed: Prosseguir com partilha
- prompt: 'Queres partilhar esta publicação:'
- reply:
- proceed: Prosseguir com resposta
- prompt: 'Queres responder a esta publicação:'
reports:
errors:
invalid_rules: não faz referência a regras válidas
@@ -1525,8 +1522,6 @@ pt-PT:
too_late: É tarde demais para apelar desta punição
tags:
does_not_match_previous_name: não coincide com o nome anterior
- terms:
- title: "%{instance} Termos de Serviço e Política de Privacidade"
themes:
contrast: Mastodon (Elevado contraste)
default: Mastodon
@@ -1605,20 +1600,13 @@ pt-PT:
suspend: Conta suspensa
welcome:
edit_profile_action: Configurar o perfil
- edit_profile_step: Pode personalizar o seu perfil carregando uma imagem de perfil e de cabeçalho ou alterando o nome a exibir, entre outras opções. Se preferir rever os novos seguidores antes de estes o poderem seguir, pode tornar a sua conta privada.
+ edit_profile_step: Pode personalizar o seu perfil carregando uma imagem de perfil, alterando o nome a exibir, entre outras opções. Pode optar por rever os novos seguidores antes de estes o poderem seguir.
explanation: Aqui estão algumas dicas para começar
final_action: Começar a publicar
- final_step: 'Começa a publicar! Mesmo sem seguidores, as suas mensagens públicas podem ser vistas por outros, por exemplo, na cronologia local e em hashtags. Pode querer apresentar-se utilizando a hashtag #introduções ou #introductions.'
+ final_step: 'Comece a publicar! Mesmo sem seguidores, as suas mensagens públicas podem ser vistas por outros, por exemplo, na cronologia local e em hashtags. Pode querer apresentar-se utilizando a hashtag #introduções ou #introductions.'
full_handle: O seu nome completo
full_handle_hint: Isto é o que tem de facultar aos seus amigos para que eles lhe possam enviar mensagens ou seguir a partir de outra instância.
- review_preferences_action: Alterar preferências
- review_preferences_step: Certifique-se de configurar as suas preferências, tais como os e-mails que gostaria de receber ou o nível de privacidade que deseja que as suas publicações tenham por defeito. Se não sofre de enjoo de movimento, pode ativar a opção de auto-iniciar GIFs.
subject: Bem-vindo ao Mastodon
- tip_federated_timeline: A cronologia federativa é uma visão global da rede Mastodon. Mas só inclui pessoas que os teus vizinhos subscrevem, por isso não é uma visão completa.
- tip_following: Segues o(s) administrador(es) do teu servidor por defeito. Para encontrar mais pessoas interessantes, procura nas cronologias local e federada.
- tip_local_timeline: A cronologia local é uma visão global das pessoas em %{instance}. Estes são os seus vizinhos mais próximos!
- tip_mobile_webapp: Se o teu navegador móvel te oferecer a possibilidade de adicionar o Mastodon ao teu homescreen, tu podes receber notificações push. Ele age como uma aplicação nativa de vários modos!
- tips: Dicas
title: Bem-vindo a bordo, %{name}!
users:
follow_limit_reached: Não podes seguir mais do que %{limit} pessoas
diff --git a/config/locales/ro.yml b/config/locales/ro.yml
index d13aa54647..b96d22dd59 100644
--- a/config/locales/ro.yml
+++ b/config/locales/ro.yml
@@ -1,64 +1,11 @@
---
ro:
about:
- about_hashtag_html: Acestea sunt postări publice etichetate cu #%{hashtag} . Poți interacționa cu ele dacă ai un cont oriunde în rețea.
about_mastodon_html: 'Rețeaua socială a viitorului: Fără reclame, fără supraveghere corporativă, design etic și descentralizare! Dețineți-vă datele cu Mastodon!'
- about_this: Despre
- active_count_after: activi
- active_footnote: Utilizatori activi lunar (UAL)
- administered_by: 'Administrat de:'
- api: API
- apps: Aplicații mobile
- apps_platforms: Folosește Mastodon de pe iOS, Android și alte platforme
- browse_directory: Răsfoiți directorul de profil și filtrați după interese
- browse_local_posts: Răsfoiți un flux live al postărilor publice de pe acest server
- browse_public_posts: Răsfoiește un flux live de postări publice pe Mastodon
- contact: Contact
contact_missing: Nesetat
contact_unavailable: Indisponibil
- discover_users: Descoperă utilizatori
- documentation: Documentație
- federation_hint_html: Cu un cont pe %{instance} vei putea urmări oameni pe orice server de Mastodon sau mai departe.
- get_apps: Încercați o aplicație pentru mobil
hosted_on: Mastodon găzduit de %{domain}
- instance_actor_flash: |
- Acest cont este un actor virtual folosit pentru a reprezenta serverul în sine și nu un utilizator individual.
- Acesta este folosit în scopuri de federație și nu ar trebui blocat decât dacă doriți să blocați întreaga instanță, în ce caz trebuie să utilizaţi un bloc de domeniu.
- learn_more: Află mai multe
- privacy_policy: Politica de confidenţialitate
- rules: Regulile serverului
- rules_html: 'Mai jos este un rezumat al regulilor pe care trebuie să le urmezi dacă vrei să ai un cont pe acest server de Mastodon:'
- see_whats_happening: Vezi ce se întâmplă
- server_stats: 'Statistici server:'
- source_code: Cod sursă
- status_count_after:
- few: stări
- one: stare
- other: de stări
- status_count_before: Care au postat
- tagline: Urmăriți prietenii și descoperiți alții noi
- terms: Termeni de serviciu
- unavailable_content: Conținut indisponibil
- unavailable_content_description:
- domain: Server
- reason: Motiv
- rejecting_media: 'Fişierele media de pe aceste servere nu vor fi procesate sau stocate şi nici o miniatură nu va fi afişată, necesitând click manual la fişierul original:'
- rejecting_media_title: Fișiere media filtrate
- silenced: 'Postările de pe aceste servere vor fi ascunse în cronologii și conversații publice, și nici o notificare nu va fi generată de interacțiunile utilizatorilor lor decât dacă le urmărești:'
- silenced_title: Servere limitate
- suspended: 'Nici o informație de pe aceste servere nu va fi procesată, stocată sau schimbată, ceea ce face imposibilă orice interacțiune sau comunicare cu utilizatorii de pe aceste servere:'
- suspended_title: Servere suspendate
- unavailable_content_html: Mastodon vă permite în general să vedeți conținutul din orice alt server și să interacționați cu utilizatorii din rețea. Acestea sunt excepţiile care au fost făcute pe acest server.
- user_count_after:
- few: utilizatori
- one: utilizator
- other: de utilizatori
- user_count_before: Casa a
- what_is_mastodon: Ce este Mastodon?
accounts:
- choices_html: 'Alegerile lui %{name}:'
- endorsements_hint: Poți promova oameni pe care îi urmărești din interfața web, și ei vor apărea aici.
- featured_tags_hint: Puteți promova anumite hashtag-uri care vor fi afișate aici.
follow: Urmărește
followers:
few: Urmăritori
@@ -66,15 +13,9 @@ ro:
other: De Urmăritori
following: Urmăriți
instance_actor_flash: Acest cont este un actor virtual folosit pentru a reprezenta serverul în sine și nu un utilizator individual. Acesta este utilizat în scopuri federative şi nu trebuie suspendat.
- joined: Înscris %{date}
last_active: ultima activitate
link_verified_on: Proprietatea acestui link a fost verificată la %{date}
- media: Media
- moved_html: "%{name} s-a mutat la %{new_profile_link}:"
- network_hidden: Aceste informaţii nu sunt disponibile
nothing_here: Nu există nimic aici!
- people_followed_by: Persoane pe care %{name} le urmărește
- people_who_follow: Persoane care urmăresc pe %{name}
pin_errors:
following: Trebuie să urmăriți deja persoana pe care doriți să o aprobați
posts:
@@ -82,14 +23,6 @@ ro:
one: Postare
other: De Postări
posts_tab_heading: Postări
- posts_with_replies: Postări și răspunsuri
- roles:
- admin: Admin
- bot: Robot
- group: Grup
- moderator: Moderator
- unavailable: Profil indisponibil
- unfollow: Nu mai urmării
admin:
account_actions:
action: Efectuează acțiunea
@@ -106,7 +39,6 @@ ro:
avatar: Poză de profil
by_domain: Domeniu
change_email:
- changed_msg: E-mail de cont schimbat cu succes!
current_email: E-mailul curent
label: Schimbă adresa de email
new_email: E-mail nou
@@ -184,12 +116,6 @@ ro:
reset: Resetează
reset_password: Resetează parola
resubscribe: Resubscrie-te
- role: Permisiuni
- roles:
- admin: Administrator
- moderator: Moderator
- staff: Personal
- user: Utilizator
search: Caută
search_same_email_domain: Alţi utilizatori cu acelaşi domeniu de e-mail
search_same_ip: Alţi utilizatori cu acelaşi IP
@@ -295,16 +221,12 @@ ro:
applications:
created: Aplicație creată cu succes
destroyed: Aplicație ștearsă cu succes
- invalid_url: URL-ul furnizat nu este valid
regenerate_token: Regenerează token-ul de acces
token_regenerated: Token de acces regenerat cu succes
warning: Fiți foarte atent cu aceste date. Nu le împărtășiți niciodată cu cineva!
your_token: Token-ul tău de acces
auth:
- apply_for_account: Solicită o invitație
change_password: Parolă
- checkbox_agreement_html: Sunt de acord cu regulile serverului şi termenii de serviciu
- checkbox_agreement_without_rules_html: Sunt de acord cu termenii serviciului
delete_account: Șterge contul
delete_account_html: Dacă vrei să ștergi acest cont poți începe aici . Va trebui să confirmi această acțiune.
description:
@@ -334,7 +256,6 @@ ro:
confirming: Se așteaptă finalizarea confirmării prin e-mail.
pending: Cererea dvs. este în curs de revizuire de către personalul nostru. Este posibil să dureze ceva timp. Veți primi un e-mail dacă cererea dvs. este aprobată.
redirecting_to: Contul dvs. este inactiv deoarece în prezent se redirecționează către %{acct}.
- trouble_logging_in: Probleme la conectare?
authorize_follow:
already_following: Urmărești deja acest cont
already_requested: Ați trimis deja o cerere de urmărire către acel cont
@@ -379,9 +300,6 @@ ro:
data_removal: Postările tale și alte date vor fi șterse permanent
email_change_html: Puteți schimba adresa de e-mail fără a șterge contul dvs
email_contact_html: Dacă tot nu ajunge, puteți trimite e-mail la %{email} pentru ajutor
- directories:
- explanation: Descoperă oameni și companii în funcție de interesele lor
- explore_mastodon: Explorează %{title}
errors:
'400': The request you submitted was invalid or malformed.
'403': Nu ai permisiunea să vizitezi această pagină.
@@ -419,7 +337,6 @@ ro:
title: Editează filtru
errors:
invalid_context: Lipsa conținut sau acesta este invalid
- invalid_irreversible: Filtrarea ireversibilă funcționează dor cu context din fluxul Acasă și notificări
index:
delete: Șterge
title: Filtre
@@ -437,7 +354,6 @@ ro:
following: Lista de urmărire
muting: Lista de ignorare
upload: Încarcă
- in_memoriam_html: În Memoria.
invites:
delete: Dezactivați
expired: Expirat
@@ -527,22 +443,7 @@ ro:
remove_selected_follows: Anulează urmărirea utilizatorilor selectați
status: Starea contului
remote_follow:
- acct: Introduceți numele@domeniu din care doriți să acționați
missing_resource: Nu s-a putut găsi URL-ul de redirecționare necesar pentru contul dvs
- no_account_html: Nu ai un cont? Poți să te înregistrezi aici
- proceed: Continuă să urmărești
- prompt: 'Vei urmării pe:'
- reason_html: "De ce este necesar acest pas? %{instance}
ar putea să nu fie serverul în care sunteți înregistrat, așa că trebuie să te redirecționăm către serverul tău de acasă."
- remote_interaction:
- favourite:
- proceed: Continuă să favorizezi
- prompt: 'Vrei să favorizezi această postare:'
- reblog:
- proceed: Continuă să dai impuls
- prompt: 'Vrei să impulsionezi această postare:'
- reply:
- proceed: Continuă să răspunzi
- prompt: 'Vrei să răspunzi la această postare:'
scheduled_statuses:
over_daily_limit: Ai depășit limita de %{limit} postări programate pentru acea zi
over_total_limit: Ai depășit limita de %{limit} postări programate
@@ -604,8 +505,6 @@ ro:
sensitive_content: Conținut sensibil
tags:
does_not_match_previous_name: nu se potrivește cu numele anterior
- terms:
- title: "%{instance} Termeni de utilizare și Politica de confidențialitate"
themes:
contrast: Mastodon (contrast mare)
default: Mastodon (Întunecat)
@@ -641,20 +540,11 @@ ro:
suspend: Cont suspendat
welcome:
edit_profile_action: Configurare profil
- edit_profile_step: Vă puteți personaliza profilul încărcând un avatar, un antet, schimbându-vă numele afișat și multe altele. Dacă dorești să revizuiești noi urmăritori înainte de a primi permisiunea de a te urmări, îți poți bloca contul.
explanation: Iată câteva sfaturi pentru a începe
final_action: Începe să postezi
- final_step: 'Începe să postezi! Chiar și fără urmăritori, mesajele publice pot fi văzute de alții, de exemplu pe fluxul local și pe hashtag-uri. Poate doriți să vă prezentați pe hashtag-ul #introducere.'
full_handle: Numele tău complet
full_handle_hint: Asta este ceea ce vei putea spune prietenilor pentru a te putea contacta sau pentru a te urmării de pe un alt server.
- review_preferences_action: Schimbă preferințele
- review_preferences_step: Asigură-te că setezi preferințele tale, cum ar fi e-mailurile pe care dorești să le primești sau ce nivel de confidențialitate vrei ca mesajele tale să fie implicite. Dacă nu ai rău de mişcare, ai putea alege să activezi imaginile GIF să pornească automat.
subject: Bine ai venit
- tip_federated_timeline: Fluxul federat este o vedere de ansamblu a rețelei Mastodon. Dar include doar oameni la care s-au abonat vecinii tăi, așa că nu este completă.
- tip_following: Urmăriți implicit administratorul(ii) serverului. Pentru a găsi oameni mai interesanți, verificați fluxurile locale și federalizate.
- tip_local_timeline: Fluxul local este o vedere în ansamblu a persoanelor de pe %{instance}. Aceștia sunt vecinii tăi apropiați!
- tip_mobile_webapp: Dacă navigatorul tău mobil îți oferă să adaugi Mastodon pe ecranul tău de pornire, poți primi notificări push. Se comportă ca o aplicație nativă în multe moduri!
- tips: Sfaturi
title: Bine ai venit la bord, %{name}!
users:
follow_limit_reached: Nu poți urmări mai mult de %{limit} persoane
diff --git a/config/locales/ru.yml b/config/locales/ru.yml
index 39a3b3eb7d..086c282267 100644
--- a/config/locales/ru.yml
+++ b/config/locales/ru.yml
@@ -1,69 +1,11 @@
---
ru:
about:
- about_hashtag_html: Это публичные посты, отмеченные хэштегом #%{hashtag} . Вы можете взаимодействовать с ними при наличии у Вас учётной записи в глобальной сети Mastodon.
about_mastodon_html: 'Социальная сеть будущего: никакой рекламы, слежки корпорациями, этичный дизайн и децентрализация! С Mastodon ваши данные под вашим контролем.'
- about_this: Об этом узле
- active_count_after: активных
- active_footnote: Ежемесячно активные пользователи (MAU)
- administered_by: 'Администратор узла:'
- api: API
- apps: Приложения
- apps_platforms: Используйте Mastodon на iOS, Android и других платформах
- browse_directory: Изучите каталог и найдите профили по интересам
- browse_local_posts: Просматривайте в реальном времени новые посты с этого сервера
- browse_public_posts: Взгляните на новые посты Mastodon в реальном времени
- contact: Связаться
contact_missing: не указан
contact_unavailable: неизв.
- continue_to_web: Продолжить в веб-приложении
- discover_users: Найдите пользователей
- documentation: Документация
- federation_hint_html: С учётной записью на %{instance} вы сможете подписываться на людей с любого сервера Mastodon и не только.
- get_apps: Попробуйте мобильные приложения
hosted_on: Вы получили это сообщение, так как зарегистрированы на %{domain}
- instance_actor_flash: |
- Эта учетная запись является виртуальным персонажем, используемым для представления самого сервера, а не какого-либо пользователя.
- Используется для целей федерации и не должен быть заблокирован, если вы не хотите заблокировать всю инстанцию, вместо этого лучше использовать доменную блокировку.
- learn_more: Узнать больше
- logged_in_as_html: Вы вошли в систему как %{username}.
- logout_before_registering: Вы уже вошли.
- privacy_policy: Политика конфиденциальности
- rules: Правила сервера
- rules_html: 'Ниже приведена сводка правил, которых вам нужно придерживаться, если вы хотите иметь учётную запись на этом сервере Мастодона:'
- see_whats_happening: Узнайте, что происходит вокруг
- server_stats: 'Статистика сервера:'
- source_code: Исходный код
- status_count_after:
- few: поста
- many: постов
- one: пост
- other: поста
- status_count_before: И опубликовано
- tagline: Подписывайтесь на друзей и заводите новые знакомства
- terms: Условия использования
- unavailable_content: Недоступный контент
- unavailable_content_description:
- domain: Сервер
- reason: Причина
- rejecting_media: 'Медиафайлы с этих серверов не будут обработаны или сохранены. Их миниатюры не будут отображаться и вам придётся вручную нажимать на исходный файл:'
- rejecting_media_title: Отфильтрованные файлы
- silenced: 'Посты с этих серверов будут скрыты из публичных лент и обсуждений, как и не будут рассылаться уведомления касательно действий тамошних пользователей, если, конечно, вы не подписаны на них:'
- silenced_title: Заглушенные серверы
- suspended: 'Обмен, хранение и обработка данных с этих серверов будут прекращены, что сделает невозможным взаимодействие или общение с пользователями с этих серверов:'
- suspended_title: Заблокированные пользователи
- unavailable_content_html: 'Mastodon в основном позволяет просматривать содержимое и взаимодействовать с другими пользователями любых серверов в федерации. Вот исключения, сделанные конкретно для этого сервера:'
- user_count_after:
- few: пользователя
- many: пользователей
- one: пользователь
- other: пользователя
- user_count_before: Здесь расположились
- what_is_mastodon: Что такое Mastodon?
accounts:
- choices_html: "%{name} рекомендует:"
- endorsements_hint: Вы можете рекомендовать людей, которые вы отслеживаете из веб-интерфейса, и они будут показаны здесь.
- featured_tags_hint: Вы можете указать конкретные хэштеги, которые будут отображаться здесь.
follow: Подписаться
followers:
few: подписчика
@@ -72,15 +14,9 @@ ru:
other: подписчиков
following: подписки
instance_actor_flash: Эта учетная запись - виртуальный пользователь, используемый для представления самого сервера, а не отдельного пользователя. Она используется для организационных целей и не может быть заморожена.
- joined: 'Дата регистрации: %{date}'
last_active: последняя активность
link_verified_on: Владение этой ссылкой было проверено %{date}
- media: Медиафайлы
- moved_html: "%{name} переехал(а) на %{new_profile_link}:"
- network_hidden: Эта информация недоступна
nothing_here: Здесь ничего нет!
- people_followed_by: Люди, на которых подписан(а) %{name}
- people_who_follow: Подписчики %{name}
pin_errors:
following: Чтобы порекомендовать кого-то, надо сначала на них подписаться
posts:
@@ -89,14 +25,6 @@ ru:
one: Пост
other: статусов
posts_tab_heading: Посты
- posts_with_replies: Посты с ответами
- roles:
- admin: Администратор
- bot: Бот
- group: Группа
- moderator: Модератор
- unavailable: Профиль недоступен
- unfollow: Отписаться
admin:
account_actions:
action: Выполнить действие
@@ -113,12 +41,17 @@ ru:
avatar: Аватар
by_domain: Домен
change_email:
- changed_msg: E-mail учётной записи успешно изменён!
+ changed_msg: Адрес эл. почты успешно изменен!
current_email: Текущий e-mail
label: Сменить e-mail
new_email: Новый e-mail
submit: Сменить e-mail
title: Сменить e-mail для %{username}
+ change_role:
+ changed_msg: Роль успешно изменена!
+ label: Изменить роль
+ no_role: Нет роли
+ title: Изменить роль %{username}
confirm: Подтвердить
confirmed: Подтверждено
confirming: Подтверждение
@@ -162,6 +95,7 @@ ru:
active: Действующие
all: Все
pending: В ожидании
+ silenced: Ограниченные
suspended: Заблокированные
title: Модерация
moderation_notes: Заметки модератора
@@ -169,6 +103,7 @@ ru:
most_recent_ip: Последний IP
no_account_selected: Ничего не изменилось, так как ни одна учётная запись не была выделена
no_limits_imposed: Без ограничений
+ no_role_assigned: Роль не присвоена
not_subscribed: Не подписаны
pending: Ожидает рассмотрения
perform_full_suspension: Блокировка
@@ -197,12 +132,7 @@ ru:
reset: Сбросить
reset_password: Сбросить пароль
resubscribe: Переподписаться
- role: Разрешения
- roles:
- admin: Администратор
- moderator: Модератор
- staff: Персонал
- user: Пользователь
+ role: Роль
search: Поиск
search_same_email_domain: Другие пользователи с тем же доменом электронной почты
search_same_ip: Другие пользователи с таким же IP
@@ -245,17 +175,21 @@ ru:
approve_user: Утвердить
assigned_to_self_report: Присвоение жалоб
change_email_user: Изменение эл. почты пользователя
+ change_role_user: Изменить роль пользователя
confirm_user: Подтверждение пользователей
create_account_warning: Выдача предупреждения
create_announcement: Создание объявлений
+ create_canonical_email_block: Создать блокировку эл. почты
create_custom_emoji: Добавление эмодзи
create_domain_allow: Разрешение доменов
create_domain_block: Блокировка доменов
create_email_domain_block: Блокировка e-mail доменов
create_ip_block: Создание правил для IP-адресов
create_unavailable_domain: Добавление домена в список недоступных
+ create_user_role: Создать роль
demote_user: Разжалование пользователей
destroy_announcement: Удаление объявлений
+ destroy_canonical_email_block: Удалить блокировку эл. почты
destroy_custom_emoji: Удаление эмодзи
destroy_domain_allow: Отзыв разрешений для доменов
destroy_domain_block: Разблокировка доменов
@@ -264,6 +198,7 @@ ru:
destroy_ip_block: Удаление правил для IP-адресов
destroy_status: Удаление постов
destroy_unavailable_domain: Исключение доменов из списка недоступных
+ destroy_user_role: Удалить роль
disable_2fa_user: Отключение 2FA
disable_custom_emoji: Отключение эмодзи
disable_sign_in_token_auth_user: Отключение аутентификации по e-mail кодам у пользователей
@@ -290,21 +225,26 @@ ru:
update_announcement: Обновление объявлений
update_custom_emoji: Обновление эмодзи
update_domain_block: Изменение блокировки домена
+ update_ip_block: Обновить правило для IP-адреса
update_status: Изменение постов
+ update_user_role: Обновить роль
actions:
approve_appeal_html: "%{name} одобрил апелляцию на умеренное решение от %{target}"
approve_user_html: "%{name} утвердил(а) регистрацию %{target}"
assigned_to_self_report_html: "%{name} назначил(а) себя для решения жалобы %{target}"
change_email_user_html: "%{name} сменил(а) e-mail пользователя %{target}"
+ change_role_user_html: "%{name} изменил(а) роль %{target}"
confirm_user_html: "%{name} подтвердил(а) e-mail адрес пользователя %{target}"
create_account_warning_html: "%{name} выдал(а) предупреждение %{target}"
create_announcement_html: "%{name} создал(а) новое объявление %{target}"
+ create_canonical_email_block_html: "%{name} заблокировал(а) эл. почту с хешем %{target}"
create_custom_emoji_html: "%{name} загрузил(а) новый эмодзи %{target}"
create_domain_allow_html: "%{name} разрешил(а) федерацию с доменом %{target}"
create_domain_block_html: "%{name} заблокировал(а) домен %{target}"
create_email_domain_block_html: "%{name} заблокировал(а) e-mail домен %{target}"
create_ip_block_html: "%{name} создал(а) правило для IP %{target}"
create_unavailable_domain_html: "%{name} приостановил доставку на узел %{target}"
+ create_user_role_html: "%{name} создал(а) роль %{target}"
demote_user_html: "%{name} разжаловал(а) пользователя %{target}"
destroy_announcement_html: "%{name} удалил(а) объявление %{target}"
destroy_custom_emoji_html: "%{name} удалил(а) эмодзи %{target}"
@@ -315,6 +255,7 @@ ru:
destroy_ip_block_html: "%{name} удалил(а) правило для IP %{target}"
destroy_status_html: "%{name} удалил(а) пост пользователя %{target}"
destroy_unavailable_domain_html: "%{name} возобновил доставку на узел %{target}"
+ destroy_user_role_html: "%{name} удалил(а) роль %{target}"
disable_2fa_user_html: "%{name} отключил(а) требование двухэтапной авторизации для пользователя %{target}"
disable_custom_emoji_html: "%{name} отключил(а) эмодзи %{target}"
disable_sign_in_token_auth_user_html: "%{name} отключил(а) аутентификацию по e-mail кодам для %{target}"
@@ -341,12 +282,13 @@ ru:
update_announcement_html: "%{name} обновил(а) объявление %{target}"
update_custom_emoji_html: "%{name} обновил(а) эмодзи %{target}"
update_domain_block_html: "%{name} обновил(а) блокировку домена для %{target}"
+ update_ip_block_html: "%{name} изменил(а) правило для IP %{target}"
update_status_html: "%{name} изменил(а) пост пользователя %{target}"
- deleted_status: "(удалённый пост)"
+ update_user_role_html: "%{name} изменил(а) роль %{target}"
empty: Журнал пуст.
filter_by_action: Фильтр по действию
filter_by_user: Фильтр по пользователю
- title: Журнал событий
+ title: Журнал аудита
announcements:
destroyed_msg: Объявление удалено.
edit:
@@ -386,6 +328,7 @@ ru:
listed: В списке
new:
title: Добавить новый эмодзи
+ no_emoji_selected: Не было изменено ни одного эмодзи
not_permitted: У вас нет прав для совершения данного действия
overwrite: Заменить
shortcode: Краткий код
@@ -403,6 +346,21 @@ ru:
media_storage: Медиа файлы
new_users: новые пользователи
opened_reports: жалоб открыто
+ pending_reports_html:
+ few: "%{count} ожидающих отчета"
+ many: "%{count} ожидающих отчетов"
+ one: "%{count} ожидающий отчет"
+ other: "%{count} ожидающих отчетов"
+ pending_tags_html:
+ few: "%{count} ожидающих хэштега"
+ many: "%{count} ожидающих хэштегов"
+ one: "%{count} ожидающий хэштег"
+ other: "%{count} ожидающих хэштегов"
+ pending_users_html:
+ few: "%{count} ожидающих пользователя"
+ many: "%{count} ожидающих пользователей"
+ one: "%{count} ожидающий пользователь"
+ other: "%{count} ожидающих пользователей"
resolved_reports: жалоб решено
software: Программное обеспечение
sources: Источники регистрации
@@ -484,6 +442,11 @@ ru:
unsuppress: Восстановить рекомендацию
instances:
availability:
+ failures_recorded:
+ few: Попытки неудачны уже %{count} дня.
+ many: Попытки неудачны уже %{count} дней.
+ one: Попытки неудачны %{count} день.
+ other: Попытки неудачны уже %{count} дней.
no_failures_recorded: Сбоев в записи нет.
title: Доступность
warning: Последняя попытка подключения к этому серверу не удалась
@@ -496,10 +459,12 @@ ru:
comment: Внутренняя заметка
policies:
reject_media: Отклонить медиа
+ reject_reports: Отклонять жалобы
silence: Лимит
suspend: Приостановить
policy: Политика
reason: Публичная причина
+ title: Политика контента
dashboard:
instance_accounts_dimension: Популярные аккаунты
instance_accounts_measure: сохраненные учетные записи
@@ -590,7 +555,7 @@ ru:
many: "%{count} заметок"
one: "%{count} заметка"
other: "%{count} заметок"
- action_log: Журнал событий
+ action_log: Журнал аудита
action_taken_by: 'Действие предпринято:'
actions:
resolve_description_html: Никаких действий не будет выполнено относительно доложенного содержимого. Жалоба будет закрыта.
@@ -639,6 +604,42 @@ ru:
unresolved: Нерешённые
updated_at: Обновлена
view_profile: Открыть профиль
+ roles:
+ add_new: Добавить роль
+ assigned_users:
+ few: "%{count} пользователя"
+ many: "%{count} пользователей"
+ one: "%{count} пользователь"
+ other: "%{count} пользователей"
+ categories:
+ administration: Администрация
+ devops: DevOps
+ invites: Приглашения
+ moderation: Модерация
+ special: Особые
+ delete: Удалить
+ description_html: С помощью ролей пользователей вы можете настроить, к каким функциям и областям Mastodon у ваших пользователей будет доступ.
+ edit: Изменить роль '%{name}' '
+ everyone: Разрешения по умолчанию
+ everyone_full_description_html: Это базовая роль , касающаяся всех пользователей , даже тех, кто не имеет назначенной роли. Все другие роли наследуют разрешения от нее.
+ permissions_count:
+ few: "%{count} разрешения"
+ many: "%{count} разрешений"
+ one: "%{count} разрешение"
+ other: "%{count} разрешений"
+ privileges:
+ administrator: Администратор
+ delete_user_data: Удалить пользовательские данные
+ delete_user_data_description: Позволяет пользователям удалять данные других пользователей без задержки
+ invite_users: Пригласить пользователей
+ invite_users_description: Позволяет пользователям приглашать новых людей на сервер
+ manage_announcements: Управление объявлениями
+ manage_announcements_description: Позволяет пользователям управлять объявлениями на сервере
+ view_audit_log: Посмотреть журнал аудита
+ view_audit_log_description: Позволяет пользователям просматривать историю административных действий на сервере
+ view_dashboard: Открыть панель управления
+ view_devops: DevOps
+ title: Роли
rules:
add_new: Добавить правило
delete: Удалить
@@ -647,108 +648,38 @@ ru:
empty: Правила сервера еще не определены.
title: Правила сервера
settings:
- activity_api_enabled:
- desc_html: Подсчёт количества локальных постов, активных пользователей и новых регистраций на еженедельной основе
- title: Публикация агрегированной статистики активности пользователей
- bootstrap_timeline_accounts:
- desc_html: Разделяйте имена пользователей запятыми. Сработает только для локальных незакрытых учётных записей. По умолчанию включены все локальные администраторы.
- title: Подписки по умолчанию для новых пользователей
- contact_information:
- email: Введите публичный e-mail
- username: Введите имя пользователя
- custom_css:
- desc_html: Измените внешний вид с CSS, загружаемым на каждой странице
- title: Особый CSS
- default_noindex:
- desc_html: Влияет на всех пользователей, которые не изменили эти настройки сами
- title: Исключить пользователей из индексации поисковиками по умолчанию
domain_blocks:
all: Всем
disabled: Никому
- title: Доменные блокировки
users: Залогиненным локальным пользователям
- domain_blocks_rationale:
- title: Показать обоснование
- hero:
- desc_html: Отображается на главной странице. Рекомендуется разрешение не менее 600х100px. Если не установлено, используется изображение узла
- title: Баннер узла
- mascot:
- desc_html: Отображается на различных страницах. Рекомендуется размер не менее 293×205px. Если ничего не выбрано, используется персонаж по умолчанию
- title: Персонаж сервера
- peers_api_enabled:
- desc_html: Домены, которые были замечены этим узлом среди всей федерации
- title: Публикация списка обнаруженных узлов
- preview_sensitive_media:
- desc_html: Предпросмотр для ссылок будет показывать миниатюры даже для содержимого, помеченного как «деликатного характера»
- title: Показывать медиафайлы «деликатного характера» в превью OpenGraph
- profile_directory:
- desc_html: Позволять находить пользователей
- title: Включить каталог профилей
- registrations:
- closed_message:
- desc_html: Отображается на титульной странице, когда закрыта регистрация Можно использовать HTML-теги
- title: Сообщение о закрытой регистрации
- deletion:
- desc_html: Позволяет всем удалять собственные учётные записи
- title: Разрешить удаление учётных записей
- min_invite_role:
- disabled: Никого
- title: Разрешать приглашения от
- require_invite_text:
- desc_html: Когда регистрация требует ручного подтверждения, сделать ответ на вопрос "Почему вы хотите присоединиться?" обязательным, а не опциональным
- title: Обязать новых пользователей заполнять текст запроса на приглашение
registrations_mode:
modes:
approved: Для регистрации требуется подтверждение
none: Никто не может регистрироваться
open: Все могут регистрироваться
- title: Режим регистраций
- show_known_fediverse_at_about_page:
- desc_html: Если включено, показывает посты со всех известных узлов в предпросмотре ленты. В противном случае отображаются только локальные посты.
- title: Показывать контент со всей федерации в публичной ленте неавторизованным пользователям
- show_staff_badge:
- desc_html: Показывать метку персонала на странице пользователя
- title: Показывать метку персонала
- site_description:
- desc_html: Отображается в качестве параграфа на титульной странице и используется в качестве мета-тега. Можно использовать HTML-теги, в особенности <a>
и <em>
.
- title: Описание сайта
- site_description_extended:
- desc_html: Отображается на странице дополнительной информации Можно использовать HTML-теги
- title: Расширенное описание узла
- site_short_description:
- desc_html: Отображается в боковой панели и в тегах. Опишите, что такое Mastodon и что делает именно этот узел особенным. Если пусто, используется описание узла по умолчанию.
- title: Краткое описание узла
- site_terms:
- desc_html: Вы можете добавить сюда собственную политику конфиденциальности, пользовательское соглашение и другие документы. Можно использовать теги HTML
- title: Условия использования
- site_title: Название сайта
- thumbnail:
- desc_html: Используется для предпросмотра с помощью OpenGraph и API. Рекомендуется разрешение 1200x630px
- title: Картинка узла
- timeline_preview:
- desc_html: Показывать публичную ленту на приветственной странице
- title: Предпросмотр ленты
- title: Настройки сайта
- trendable_by_default:
- desc_html: Влияет на хэштеги, которые не были ранее запрещены
- title: Разрешить добавление хештегов в список актульных без предварительной проверки
- trends:
- desc_html: Публично отобразить проверенные хэштеги, актуальные на данный момент
- title: Популярные хэштеги
site_uploads:
delete: Удалить загруженный файл
destroyed_msg: Файл успешно удалён.
statuses:
+ account: Автор
+ application: Заявка
back_to_account: Назад к учётной записи
back_to_report: Вернуться к жалобе
batch:
remove_from_report: Убрать из жалобы
report: Пожаловаться
deleted: Удалено
+ favourites: Избранное
+ history: История версий
+ in_reply_to: В ответ
+ language: Язык
media:
title: Файлы мультимедиа
+ metadata: Метаданные
no_status_selected: Ничего не изменилось, так как ни один пост не был выделен
title: Посты пользователя
+ trending: Популярное
+ visibility: Видимость
with_media: С файлами
strikes:
actions:
@@ -786,6 +717,7 @@ ru:
allow_provider: Разрешить издание
disallow: Запретить ссылку
disallow_provider: Отклонить издание
+ no_link_selected: Ссылки не были изменены, так как не были выбраны ни один
shared_by_over_week:
few: Поделилось %{count} человека за последнюю неделю
many: Поделилось %{count} человек за последнюю неделю
@@ -803,6 +735,13 @@ ru:
statuses:
allow: Разрешить пост
allow_account: Разрешить автора
+ disallow: Запретить пост
+ disallow_account: Запретить автора
+ shared_by:
+ few: Поделились или добавили в избранное %{friendly_count} раза
+ many: Поделились или добавили в избранное %{friendly_count} раз
+ one: Поделились или добавили в избранное один раз
+ other: Поделились или добавили в избранное %{friendly_count} раз
title: Популярные посты
tags:
current_score: Текущий счет %{score}
@@ -818,6 +757,7 @@ ru:
peaked_on_and_decaying: Последний пик — %{date}, сейчас идёт на спад
title: Актуальные хэштеги
trendable: Может появляться в списке «актуального»
+ trending_rank: 'Популярное #%{rank}'
usable: Может использоваться
usage_comparison: Использовано %{today} сегодня, для сравнения вчера %{yesterday}
used_by_over_week:
@@ -833,12 +773,35 @@ ru:
edit_preset: Удалить шаблон предупреждения
empty: Вы еще не определили пресеты предупреждений.
title: Управление шаблонами предупреждений
+ webhooks:
+ add_new: Добавить конечную точку
+ delete: Удалить
+ description_html: "Вебхуки позволяют Mastodon отправлять вашим приложениям уведомления в реальном времени о выбранных происходящих событиях, а они могут обрабатывать их в автоматическом режиме ."
+ disable: Отключить
+ disabled: Отключено
+ edit: Редактировать вебхук
+ empty: У вас пока нет настроенных конечных точек вебхуков.
+ enable: Включить
+ enabled: Активен
+ enabled_events:
+ few: "%{count} события включено"
+ many: "%{count} событий включено"
+ one: "%{count} событие включено"
+ other: "%{count} событий включено"
+ events: События
+ new: Новый вебхук
+ rotate_secret: Сгенерировать новый
+ secret: Ключ подписи
+ status: Состояние
+ title: Вебхуки
+ webhook: Вебхук
admin_mailer:
new_appeal:
actions:
none: предупреждение
silence: ограничить учётную запись
suspend: приостановить действие учётной записи
+ body: "%{target} обжалуют решение модератора %{action_taken_by} от %{date}, которое %{type}. Они написали:"
subject: "%{username} обжалует решение модерации на %{instance}"
new_pending_account:
body: Ниже указана информация учётной записи. Вы можете одобрить или отклонить заявку.
@@ -856,6 +819,7 @@ ru:
new_trending_tags:
no_approved_tags: На данный момент популярные подтвержденные хэштеги отсутствуют.
title: Популярные хэштеги
+ subject: Новые тренды для проверки на %{instance}
aliases:
add_new: Создать псевдоним
created_msg: Новый псевдоним установлен. Теперь мы можете начать миграцию со старой учётной записи.
@@ -885,16 +849,13 @@ ru:
applications:
created: Приложение успешно создано
destroyed: Приложение успешно удалено
- invalid_url: Введенный URL неверен
regenerate_token: Повторно сгенерировать токен доступа
token_regenerated: Токен доступа успешно сгенерирован
warning: Будьте очень внимательны с этими данными. Не делитесь ими ни с кем!
your_token: Ваш токен доступа
auth:
- apply_for_account: Запросить приглашение
+ apply_for_account: Подать заявку
change_password: Пароль
- checkbox_agreement_html: Я соглашаюсь с правилами сервера и Условиями использования
- checkbox_agreement_without_rules_html: Я согласен с условиями использования
delete_account: Удалить учётную запись
delete_account_html: Удалить свою учётную запись можно в два счёта здесь , но прежде у вас будет спрошено подтверждение.
description:
@@ -913,6 +874,7 @@ ru:
migrate_account: Перенос учётной записи
migrate_account_html: Завели новую учётную запись? Перенаправьте подписчиков на неё — настройте перенаправление тут .
or_log_in_with: Или войти с помощью
+ privacy_policy_agreement_html: Мной прочитана и принята политика конфиденциальности
providers:
cas: CAS
saml: SAML
@@ -920,12 +882,18 @@ ru:
registration_closed: "%{instance} не принимает новых участников"
resend_confirmation: Повторить отправку инструкции для подтверждения
reset_password: Сбросить пароль
+ rules:
+ preamble: Они устанавливаются и применяются модераторами %{domain}.
+ title: Несколько основных правил.
security: Безопасность
set_new_password: Задать новый пароль
setup:
email_below_hint_html: Если ниже указан неправильный адрес, вы можете исправить его здесь и получить новое письмо подтверждения.
email_settings_hint_html: Письмо с подтверждением было отправлено на %{email}. Если адрес указан неправильно, его можно поменять в настройках учётной записи.
title: Установка
+ sign_up:
+ preamble: С учётной записью на этом сервере Mastodon вы сможете следить за любым другим пользователем в сети, независимо от того, где размещён их аккаунт.
+ title: Зарегистрируйтесь в %{domain}.
status:
account_status: Статус учётной записи
confirming: Ожидание подтверждения e-mail.
@@ -934,7 +902,6 @@ ru:
redirecting_to: Ваша учётная запись деактивированна, потому что вы настроили перенаправление на %{acct}.
view_strikes: Просмотр предыдущих замечаний в адрес вашей учетной записи
too_fast: Форма отправлена слишком быстро, попробуйте еще раз.
- trouble_logging_in: Не удаётся войти?
use_security_key: Использовать ключ безопасности
authorize_follow:
already_following: Вы уже подписаны на эту учётную запись
@@ -992,10 +959,6 @@ ru:
more_details_html: За всеми подробностями, изучите политику конфиденциальности .
username_available: Ваше имя пользователя снова станет доступным
username_unavailable: Ваше имя пользователя останется недоступным для использования
- directories:
- directory: Каталог профилей
- explanation: Находите пользователей по интересам
- explore_mastodon: Изучайте %{title}
disputes:
strikes:
action_taken: Предпринятые меры
@@ -1058,7 +1021,7 @@ ru:
csv: CSV
domain_blocks: Доменные блокировки
lists: Списки
- mutes: Ваши игнорируемые
+ mutes: Ваши игнорируете
storage: Ваши файлы
featured_tags:
add_new: Добавить
@@ -1073,20 +1036,33 @@ ru:
public: Публичные ленты
thread: Диалоги
edit:
+ add_keyword: Добавить ключевое слово
+ keywords: Ключевые слова
+ statuses: Отдельные сообщения
title: Изменить фильтр
errors:
+ deprecated_api_multiple_keywords: Эти параметры нельзя изменить из этого приложения, так как применяются к более чем одному ключевому слову фильтра. Используйте более последнее приложение или веб-интерфейс.
invalid_context: Некорректный контекст или ничего
- invalid_irreversible: Необратимая фильтрация работает только с лентой уведомлений и домашней лентой
index:
+ contexts: Фильтры по %{contexts}
delete: Удалить
empty: У вас пока нет фильтров.
+ expires_in: Истекает через %{distance}
+ expires_on: Истекает %{date}
+ keywords:
+ few: "%{count} ключевых слова"
+ many: "%{count} ключевых слов"
+ one: "%{count} ключевое слово"
+ other: "%{count} ключевых слов"
title: Фильтры
new:
+ save: Сохранить новый фильтр
title: Добавить фильтр
+ statuses:
+ back_to_filter: Вернуться к фильтру
+ batch:
+ remove: Удалить из фильтра
footer:
- developers: Разработчикам
- more: Ещё…
- resources: Ссылки
trending_now: Актуально сейчас
generic:
all: Любой
@@ -1121,7 +1097,6 @@ ru:
following: Подписки
muting: Список глушения
upload: Загрузить
- in_memoriam_html: В память о пользователе.
invites:
delete: Удалить
expired: Истекло
@@ -1200,27 +1175,14 @@ ru:
title: Модерация
move_handler:
carry_blocks_over_text: Этот пользователь переехал с учётной записи %{acct}, которую вы заблокировали.
- carry_mutes_over_text: Этот пользователь переехал с учётной записи %{acct}, которую вы добавили в список игнорирования.
+ carry_mutes_over_text: Этот пользователь перешёл с учётной записи %{acct}, которую вы игнорируете.
copy_account_note_text: 'Этот пользователь переехал с %{acct}, вот ваша предыдущая заметка о нём:'
notification_mailer:
admin:
+ report:
+ subject: "%{name} отправил жалобу"
sign_up:
subject: "%{name} зарегистрирован"
- digest:
- action: Просмотреть все уведомления
- body: Вот краткая сводка сообщений, которые вы пропустили с последнего захода %{since}
- mention: "%{name} упомянул(а) Вас в:"
- new_followers_summary:
- few: У вас появилось %{count} новых подписчика! Отлично!
- many: У вас появилось %{count} новых подписчиков! Отлично!
- one: Также, пока вас не было, у вас появился новый подписчик! Ура!
- other: Также, пока вас не было, у вас появилось %{count} новых подписчиков! Отлично!
- subject:
- few: "%{count} новых уведомления с вашего последнего посещения 🐘"
- many: "%{count} новых уведомлений с вашего последнего посещения 🐘"
- one: "1 новое уведомление с вашего последнего посещения 🐘"
- other: "%{count} новых уведомлений с вашего последнего посещения 🐘"
- title: В ваше отсутствие…
favourite:
body: "%{name} добавил(а) ваш пост в избранное:"
subject: "%{name} добавил(а) ваш пост в избранное"
@@ -1292,6 +1254,8 @@ ru:
other: Остальное
posting_defaults: Настройки отправки по умолчанию
public_timelines: Публичные ленты
+ privacy_policy:
+ title: Политика конфиденциальности
reactions:
errors:
limit_reached: Достигнут лимит разных реакций
@@ -1314,22 +1278,7 @@ ru:
remove_selected_follows: Отписаться от выбранных пользователей
status: Статус учётной записи
remote_follow:
- acct: Введите свой username@domain для продолжения
missing_resource: Поиск требуемого перенаправления URL для Вашей учётной записи завершился неудачей
- no_account_html: Нет учётной записи? Вы можете зарегистрироваться здесь
- proceed: Продолжить подписку
- prompt: 'Вы хотите подписаться на:'
- reason_html: "Почему это необходимо? Возможно, %{instance}
не является узлом, на котором вы зарегистрированы, поэтому нам сперва нужно перенаправить вас на домашний узел."
- remote_interaction:
- favourite:
- proceed: Добавить в избранное
- prompt: 'Вы собираетесь добавить в избранное следующий пост:'
- reblog:
- proceed: Продвинуть пост
- prompt: 'Вы хотите продвинуть этот пост:'
- reply:
- proceed: Ответить
- prompt: 'Вы собираетесь ответить на этот пост:'
reports:
errors:
invalid_rules: не ссылается на действительные правила
@@ -1474,7 +1423,7 @@ ru:
enabled_hint: Автоматически удаляет ваши посты после того, как они достигли определённого возрастного порога, за некоторыми исключениями ниже.
exceptions: Исключения
explanation: Из-за того, что удаление постов — это ресурсоёмкий процесс, оно производится медленно со временем, когда сервер менее всего загружен. По этой причине, посты могут удаляться не сразу, а спустя определённое время, по достижению возрастного порога.
- ignore_favs: Игнорировать отметки «избранного»
+ ignore_favs: Игнорировать избранное
ignore_reblogs: Игнорировать продвижения
interaction_exceptions: Исключения на основе взаимодействий
interaction_exceptions_explanation: 'Обратите внимание: нет никаких гарантий, что посты будут удалены, после того, как они единожды перешли порог по отметкам «избранного» или продвижений.'
@@ -1513,8 +1462,6 @@ ru:
too_late: Слишком поздно обжаловать это замечание
tags:
does_not_match_previous_name: не совпадает с предыдущим именем
- terms:
- title: Условия обслуживания и политика конфиденциальности %{instance}
themes:
contrast: Mastodon (высококонтрастная)
default: Mastodon (тёмная)
@@ -1591,20 +1538,11 @@ ru:
suspend: Учётная запись заблокирована
welcome:
edit_profile_action: Настроить профиль
- edit_profile_step: Настройте свой профиль, загрузив аватарку, шапку, изменив отображаемое имя и ещё много чего. Если вы хотите вручную рассматривать и подтверждать подписчиков, можно закрыть свою учётную запись.
explanation: Вот несколько советов для новичков
final_action: Начать постить
- final_step: 'Начните постить! Ваши публичные посты могут видеть другие, например, в локальной ленте или по хэштегам, даже если у вас нет подписчиков. Вы также можете поздороваться с остальными и представиться, используя хэштег #приветствие.'
full_handle: Ваше обращение
full_handle_hint: То, что Вы хотите сообщить своим друзьям, чтобы они могли написать Вам или подписаться с другого узла.
- review_preferences_action: Изменить настройки
- review_preferences_step: Проверьте все настройки, например, какие письма вы хотите получать или уровень приватности постов по умолчанию. Если вы не страдаете морской болезнью, можете включить автовоспроизведение GIF.
subject: Добро пожаловать в Mastodon
- tip_federated_timeline: В глобальной ленте отображается сеть Mastodon. Но в ней показаны посты только от людей, на которых подписаны вы и ваши соседи, поэтому лента может быть неполной.
- tip_following: По умолчанию вы подписаны на администратора(-ов) вашего узла. Чтобы найти других интересных людей, проверьте локальную и глобальную ленты.
- tip_local_timeline: В локальной ленте показаны посты от людей с %{instance}. Это ваши непосредственные соседи!
- tip_mobile_webapp: Если ваш мобильный браузер предлагает добавить иконку Mastodon на домашний экран, то вы можете получать push-уведомления. Прямо как полноценное приложение!
- tips: Советы
title: Добро пожаловать на борт, %{name}!
users:
follow_limit_reached: Вы не можете подписаться больше, чем на %{limit} человек
diff --git a/config/locales/sc.yml b/config/locales/sc.yml
index 99cd3f0b58..bf24b2686f 100644
--- a/config/locales/sc.yml
+++ b/config/locales/sc.yml
@@ -1,91 +1,26 @@
---
sc:
about:
- about_hashtag_html: Custos sunt tuts pùblicos etichetados cun #%{hashtag} . Bi podes intrare in cuntatu si tenes unu contu in cale si siat logu de su fediversu.
about_mastodon_html: 'Sa rete sotziale de su benidore: sena publitzidade, sena vigilàntzia corporativa, disinnu èticu e detzentralizatzione! Sias mere de is datos tuos cun Mastodon!'
- about_this: Informatziones
- active_count_after: ativu
- active_footnote: Utentes cun atividade mensile (UAM)
- administered_by: 'Amministradu dae:'
- api: API
- apps: Aplicatziones mòbiles
- apps_platforms: Imprea Mastodon dae iOS, Android e àteras prataformas
- browse_directory: Nàviga in su diretòriu de profilos e filtra segundu interessos
- browse_local_posts: Nàviga in unu flussu in direta de messàgios pùblicos de custu serbidore
- browse_public_posts: Nàviga in unu flussu in direta de messàgios pùblicos in Mastodon
- contact: Cuntatu
contact_missing: No cunfiguradu
contact_unavailable: No a disponimentu
- discover_users: Iscoberi utentes
- documentation: Documentatzione
- federation_hint_html: Cun unu contu in %{instance} as a pòdere sighire persones in cale si siat serbidore de Mastodon o de su fediversu.
- get_apps: Proa un'aplicatzione mòbile
hosted_on: Mastodon allogiadu in %{domain}
- instance_actor_flash: 'Custu contu est un''atore virtuale impreadu pro rapresentare su pròpiu serbidore, no est un''utente individuale. Benit impreadu pro punnas de federatzione e no ddu dias dèpere blocare si non boles blocare su domìniu intreu, e in cussu casu dias dèpere impreare unu blocu de domìniu.
-
- '
- learn_more: Àteras informatziones
- privacy_policy: Polìtica de riservadesa
- rules: Règulas de su serbidore
- rules_html: 'Depes sighire is règulas imbenientes si boles tènnere unu contu in custu serbidore de Mastodon:'
- see_whats_happening: Càstia su chi est acontessende
- server_stats: 'Istatìsticas de su serbidore:'
- source_code: Còdighe de orìgine
- status_count_after:
- one: istadu
- other: istados
- status_count_before: Atributzione de
- tagline: Sighi is amistades tuas e iscoberi·nde àteras
- terms: Cunditziones de su servìtziu
- unavailable_content: Serbidores moderados
- unavailable_content_description:
- domain: Serbidore
- reason: Resone
- rejecting_media: 'Is documentos multimediales de custos serbidores no ant a èssere protzessados o sarvados e peruna miniadura at a èssere ammustrada, ca tenent bisòngiu de unu clic manuale in su documentu originale:'
- rejecting_media_title: Cuntenutos multimediales filtrados
- silenced: 'Is messàgios dae custos serbidores ant a èssere cuados in is lìnias de tempus e is arresonadas pùblicas, e no at a èssere generada peruna notìfica dae is interatziones de is utentes, francu chi nde sias sighende:'
- silenced_title: Serbidores a sa muda
- suspended: 'Perunu datu de custos serbidores at a èssere protzessadu, immagasinadu o cuncambiadu; est impossìbile duncas cale si siat interatzione o comunicatzione cun is utentes de custos serbidores:'
- suspended_title: Serbidores suspèndidos
- unavailable_content_html: Mastodon ti permitit de bìdere su cuntenutu de utentes de cale si siat àteru serbidore de su fediversu. Custas sunt etzetziones fatas in custu serbidore ispetzìficu.
- user_count_after:
- one: utente
- other: utentes
- user_count_before: Allogiadu dae
- what_is_mastodon: Ite est Mastodon?
accounts:
- choices_html: 'Sèberos de %{name}:'
- endorsements_hint: Podes cussigiare gente chi sighis dae s'interfache web, e at a aparèssere inoghe.
- featured_tags_hint: Podes evidentziare etichetas ispetzìficas chi ant a èssere ammustradas inoghe.
follow: Sighi
followers:
one: Sighidura
other: Sighiduras
following: Sighende
instance_actor_flash: Custu contu est un'atore virtuale chi costumaiat a rapresentare su serbidore etotu e nono unu cale si siat utente individuale. Est impreadu pro finalidades de sa federatzione e non si depet suspèndere.
- joined: At aderidu su %{date}
last_active: ùrtima atividade
link_verified_on: Sa propiedade de custu ligàmene est istada controllada su %{date}
- media: Elementos multimediales
- moved_html: "%{name} est istadu trasferidu a %{new_profile_link}:"
- network_hidden: Custa informatzione no est a disponimentu
nothing_here: Nudda inoghe.
- people_followed_by: Gente sighida dae %{name}
- people_who_follow: Gente chi sighit a %{name}
pin_errors:
following: Depes sighire sa persone chi boles promòvere
posts:
one: Tut
other: Tuts
posts_tab_heading: Tuts
- posts_with_replies: Tuts e rispostas
- roles:
- admin: Admin
- bot: Bot
- group: Grupu
- moderator: Moderatzione
- unavailable: Su profilu no est a disponimentu
- unfollow: Non sigas prus
admin:
account_actions:
action: Faghe un'atzione
@@ -102,7 +37,6 @@ sc:
avatar: Immàgine de profilu
by_domain: Domìniu
change_email:
- changed_msg: As cambiadu s'indiritzu eletrònicu.
current_email: Indiritzu eletrònicu atuale
label: Muda s'indiritzu eletrònicu
new_email: Indiritzu eletrònicu nou
@@ -177,12 +111,6 @@ sc:
reset: Reseta
reset_password: Reseta sa crae
resubscribe: Torra a sutascrìere
- role: Permissos
- roles:
- admin: Amministratzione
- moderator: Moderatzione
- staff: Personale
- user: Utente
search: Chirca
search_same_email_domain: Àteras persones cun su pròpiu domìniu de posta
search_same_ip: Àteras persones cun sa pròpiu IP
@@ -267,7 +195,6 @@ sc:
create_ip_block_html: "%{name} at creadu una règula pro s'IP %{target}"
demote_user_html: "%{name} at degradadu s'utente %{target}"
destroy_announcement_html: "%{name} at cantzelladu s'annùntziu %{target}"
- destroy_custom_emoji_html: "%{name} at cantzelladu s'emoji %{target}"
destroy_domain_allow_html: "%{name} no at permìtidu sa federatzione cun su domìniu %{target}"
destroy_domain_block_html: "%{name} at isblocadu su domìniu %{target}"
destroy_email_domain_block_html: "%{name} at isblocadu su domìniu de posta eletrònica %{target}"
@@ -295,7 +222,6 @@ sc:
update_custom_emoji_html: "%{name} at atualizadu s'emoji %{target}"
update_domain_block_html: "%{name} at atualizadu su blocu de domìniu pro %{target}"
update_status_html: "%{name} at atualizadu sa publicatzione de %{target}"
- deleted_status: "(istadu cantzelladu)"
empty: Perunu registru agatadu.
filter_by_action: Filtra pro atzione
filter_by_user: Filtra pro utente
@@ -505,94 +431,15 @@ sc:
empty: Peruna règula de serbidore definida ancora.
title: Règulas de su serbidore
settings:
- activity_api_enabled:
- desc_html: Nùmeru de tuts publicados in locale, utentes ativos e registros noos in perìodos chidajolos
- title: Pùblica istatìsticas agregadas subra s'atividade de s'utente
- bootstrap_timeline_accounts:
- desc_html: Imprea vìrgulas intre is nòmines de utente. Isceti is contos locales e isblocados ant a funtzionare. Su valore predefinidu cando est bòidu est totu is admins locales
- title: Cussìgia custos contos a is persones noas
- contact_information:
- email: Indiritzu eletrònicu de impresa
- username: Nòmine de utente de su cuntatu
- custom_css:
- desc_html: Modìfica s'aspetu cun CSS carrigadu in cada pàgina
- title: CSS personalizadu
- default_noindex:
- desc_html: Ìmplicat a totu is utentes chi no apant modificadu custa cunfiguratzione
- title: Esclude in manera predefinida is utentes dae s'inditzamentu de is motores de chirca
domain_blocks:
all: Pro totus
disabled: Pro nemos
- title: Ammustra blocos de domìniu
users: Pro utentes locales in lìnia
- domain_blocks_rationale:
- title: Ammustra sa resone
- hero:
- desc_html: Ammustradu in sa pàgina printzipale. Cussigiadu a su mancu 600x100px. Si no est cunfiguradu, at a èssere ammustradu cussu de su serbidore
- title: Immàgine de eroe
- mascot:
- desc_html: Ammustrada in vàrias pàginas. Cussigiadu a su mancu 293x205px. Si no est cunfiguradu, torra a su personàgiu predefinidu
- title: Immàgine de su personàgiu
- peers_api_enabled:
- desc_html: Is nòmines de domìniu chi custu serbidore at agatadu in su fediversu
- title: Pùblica sa lista de serbidores iscobertos in s'API
- preview_sensitive_media:
- desc_html: Is previsualizatziones de ligòngios de àteros sitos web ant a ammustrare una miniadura fintzas cando is elementos multimediales siant marcados comente a sensìbiles
- title: Ammustra elementos multimediales sensìbiles in is previsualizatziones de OpenGraph
- profile_directory:
- desc_html: Permite a is persones de èssere iscobertas
- title: Ativa diretòriu de profilos
- registrations:
- closed_message:
- desc_html: Ammustradu in sa prima pàgina cando is registratziones sunt serradas. Podes impreare etichetas HTML
- title: Messàgiu de registru serradu
- deletion:
- desc_html: Permite a chie si siat de cantzellare su contu suo
- title: Aberi s'eliminatzione de su contu
- min_invite_role:
- disabled: Nemos
- title: Permite invitos de
- require_invite_text:
- desc_html: Cando is registratziones rechedent s'aprovatzione manuale, faghe chi a incarcare su butone "Pro ite ti boles iscrìere?" siat obligatòriu e no a praghere
- title: Rechede a is persones noas chi iscriant una resone prima de aderire
registrations_mode:
modes:
approved: Aprovatzione rechesta pro si registrare
none: Nemos si podet registrare
open: Chie si siat si podet registrare
- title: Modu de registratzione
- show_known_fediverse_at_about_page:
- desc_html: Cando ativu, ammustrat in sa previsualizatzione is tuts de totu is istàntzias connòschidas. Si nono, ammustrat isceti is cuntenutos locales
- title: Include su cuntenutu federadu in sa pàgina no autenticada de sa lìnia de tempus pùblica
- show_staff_badge:
- desc_html: Ammustra un'insigna de personale in sa pàgina de utente
- title: Ammustra insigna de personale
- site_description:
- desc_html: Paràgrafu de introdutzione a s'API. Descrie pro ite custu serbidore de Mastodon siat ispetziale e cale si siat àtera cosa de importu. Podes impreare etichetas HTML, mescamente <a>
e <em>
.
- title: Descritzione de su serbidore
- site_description_extended:
- desc_html: Unu logu adatu pro publicare su còdighe de cumportamentu, règulas, diretivas e àteras caraterìsticas ispetzìficas de su serbidore tuo. Podes impreare etichetas HTML
- title: Descritzione estèndida de su logu
- site_short_description:
- desc_html: Ammustradu in sa barra laterale e in is meta-etichetas. Descrie ite est Mastodon e pro ite custu serbidore est ispetziale in unu paràgrafu.
- title: Descritzione curtza de su serbidore
- site_terms:
- desc_html: Podes iscrìere sa normativa de riservadesa tua, cunditziones de servìtziu e àteras normas legales. Podes impreare etichetas HTML
- title: Cunditziones de su servìtziu personalizadas
- site_title: Nòmine de su serbidore
- thumbnail:
- desc_html: Impreadu pro otènnere pre-visualizatziones pro mèdiu de OpenGraph e API. Cussigiadu 1200x630px
- title: Miniadura de su serbidore
- timeline_preview:
- desc_html: Ammustra su ligàmene a sa lìnia de tempus pùblica in sa pàgina initziale e permite s'atzessu pro mèdiu de s'API a sa lìnia de tempus pùblica sena autenticatzione
- title: Permite s'atzessu no autenticadu a sa lìnia de tempus pùblica
- title: Cunfiguratzione de su logu
- trendable_by_default:
- desc_html: Tocat a is etichetas chi non siant istadas refudadas prima
- title: Permite chi is etichetas divenant tendèntzia sena revisione pretzedente
- trends:
- desc_html: Ammustra in pùblicu is etichetas chi siant istadas revisionadas in passadu e chi oe siant in tendèntzia
- title: Etichetas de tendèntzia
site_uploads:
delete: Cantzella s'archìviu carrigadu
destroyed_msg: Càrriga de su situ cantzellada.
@@ -659,16 +506,12 @@ sc:
applications:
created: Aplicatzione creada
destroyed: Aplicatzione cantzellada
- invalid_url: S'URL frunidu no est curretu
regenerate_token: Torra a generare s'identificadore de atzessu
token_regenerated: Identificadore de atzessu generadu
warning: Dae cara a custos datos. Non ddos cumpartzas mai cun nemos!
your_token: S'identificadore tuo de atzessu
auth:
- apply_for_account: Pedi un'invitu
change_password: Crae
- checkbox_agreement_html: So de acòrdiu cun is règulas de su serbidore e is cunditziones de su servìtziu
- checkbox_agreement_without_rules_html: So de acòrdiu cun is cunditziones de su servìtziu
delete_account: Cantzella su contu
delete_account_html: Si boles cantzellare su contu, ddu podes fàghere inoghe . T'amus a dimandare una cunfirmatzione.
description:
@@ -705,7 +548,6 @@ sc:
pending: Sa dimanda tua est in protzessu de revisione dae su personale nostru. Podet serbire unu pagu de tempus. As a retzire unu messàgiu eletrònicu si sa dimanda est aprovada.
redirecting_to: Su contu tuo est inativu pro ite in die de oe est torrende a indiritzare a %{acct}.
too_fast: Formulàriu imbiadu tropu a lestru, torra a proare.
- trouble_logging_in: Tenes problemas de atzessu?
use_security_key: Imprea una crae de seguresa
authorize_follow:
already_following: Ses giai sighende custu contu
@@ -763,10 +605,6 @@ sc:
more_details_html: Pro àteros detàllios, bide sa normativa de riservadesa .
username_available: Su nòmine de utente tuo at a torrare a èssere a disponimentu
username_unavailable: Su nòmine de utente tuo no at a abarrare a disponimentu
- directories:
- directory: Diretòriu de profilos
- explanation: Iscoberi gente segundu is interessos suos
- explore_mastodon: Esplora %{title}
domain_validator:
invalid_domain: no est unu nòmine de domìniu vàlidu
errors:
@@ -818,7 +656,6 @@ sc:
title: Modìfica filtru
errors:
invalid_context: Cuntestu mancante o non vàlidu
- invalid_irreversible: Su filtràgiu non reversìbile funtzionat isceti in is cuntestos printzipale o de notìficas
index:
delete: Cantzella
empty: Non tenes perunu filtru.
@@ -826,9 +663,6 @@ sc:
new:
title: Agiunghe unu filtru nou
footer:
- developers: Iscuadra de isvilupu
- more: Àteru…
- resources: Resursas
trending_now: Est tendèntzia immoe
generic:
all: Totus
@@ -859,7 +693,6 @@ sc:
following: Lista de sighiduras
muting: Lista gente a sa muda
upload: Càrriga
- in_memoriam_html: In memoriam.
invites:
delete: Disativa
expired: Iscadidu
@@ -928,14 +761,6 @@ sc:
carry_mutes_over_text: Custa persone s'est tramudada dae %{acct}, chi as postu a sa muda.
copy_account_note_text: 'Custa persone s''est tramudada dae %{acct}, custas sunt is notas antepostas tuas chi ddi pertocant:'
notification_mailer:
- digest:
- action: Ammustra totu is notìficas
- body: Custu est unu resumu de su chi ti est sutzèdidu dae sa visita ùrtima tua su %{since}
- mention: "%{name} t'at mentovadu in:"
- new_followers_summary:
- one: In prus, %{count} persone noa ti sighit dae cando fias assente. Incredìbile!
- other: In prus, %{count} persones noas ti sighint dae cando fias assente. Incredìbile!
- title: Durante s'ausèntzia tua...
favourite:
body: "%{name} at marcadu comente a preferidu s'istadu tuo:"
subject: "%{name} at marcadu comente a preferidu s'istadu tuo"
@@ -1027,22 +852,7 @@ sc:
remove_selected_follows: Non sigas prus is persones seletzionadas
status: Istadu de su contu
remote_follow:
- acct: Inserta·nche s'utente@domìniu tuo dae su chi boles sighire custa persone
missing_resource: Impossìbile agatare sa rechesta de indiritzamentu URL pro su contu tuo
- no_account_html: Non tenes ancora unu contu? Ti podes registrare inoghe
- proceed: Cumintza a sighire
- prompt: 'As a sighire a:'
- reason_html: "Pro ite serbit custu? Podet èssere chi %{instance}
non siat su serbidore aunde ses registradu, pro custu tenimus bisòngiu de ti torrare a indiritzare prima a su serbidore tuo."
- remote_interaction:
- favourite:
- proceed: Sighi pro marcare che a preferidu
- prompt: 'Boles marcare comente a preferidu custu tut:'
- reblog:
- proceed: Sighi pro cumpartzire
- prompt: 'Boles cumpartzire custu tut:'
- reply:
- proceed: Sighi pro rispòndere
- prompt: 'Boles rispòndere a custu tut:'
scheduled_statuses:
over_daily_limit: As superadu su lìmite de %{limit} tuts programmados pro cudda die
over_total_limit: As superadu su lìmite de %{limit} tuts programmados
@@ -1172,8 +982,6 @@ sc:
sensitive_content: Cuntenutu sensìbile
tags:
does_not_match_previous_name: non cointzidet cun su nòmine anteriore
- terms:
- title: "%{instance} Cunditziones de su servìtziu e polìtica de riservadesa"
themes:
contrast: Mastodon (cuntrastu artu)
default: Mastodon (iscuru)
@@ -1215,20 +1023,11 @@ sc:
suspend: Contu suspèndidu
welcome:
edit_profile_action: Cunfigura su profilu
- edit_profile_step: Podes personalizare su profilu tuo carrighende un'immàgine de profilu o un'intestatzione, cambiende su nòmine de utente tuo e àteru. Si boles revisionare is sighidores noos in antis chi tèngiant su permissu de ti sighire podes blocare su contu tuo.
explanation: Inoghe ddoe at una paja de impòsitos pro cumintzare
final_action: Cumintza a publicare
- final_step: 'Cumintza a publicare! Fintzas si no ti sighit nemos àtera gente podet bìdere is messàgios pùblicos tuos, pro esèmpiu in sa lìnia de tempus locale e in is etichetas ("hashtags"). Ti dias pòdere bòlere introduire a sa comunidade cun s''eticheta #introductions.'
full_handle: Su nòmine utente intreu tuo
full_handle_hint: Custu est su chi dias nàrrere a is amistades tuas pro chi ti potzant imbiare messàgios o sighire dae un'àteru serbidore.
- review_preferences_action: Muda is preferèntzias
- review_preferences_step: Regorda·ti de cunfigurare is preferèntzias tuas, comente a cale messàgios de posta eletrònicas boles retzire, o ite livellu de riservadesa dias bòlere chi siat predefinidu pro is messàgios tuos. Si is immàgines in movimentu non ti infadant podes seberare de abilitare sa riprodutzione automàtica de is GIF.
subject: Ti donamus su benebènnidu a Mastodon
- tip_federated_timeline: Sa lìnia de tempus federada est una vista globale de sa retza de Mastodon. Ma includet isceti is persones sighidas dae is bighinos tuos, duncas no est totale.
- tip_following: Pro more de is cunfiguratziones predefinidas sighis s'amministratzione de su serbidore tuo. Pro agatare àteras persones de interessu, càstia is lìnias de su tempus locale e federada.
- tip_local_timeline: Sa lìnia de tempus locale est una vista globale de is persones in %{instance}. Custos sunt is bighinos tuos!
- tip_mobile_webapp: Si su navigadore mòbile tuo t'oferit de agiùnghere Mastodon a s'ischermada printzipale tua podes retzire notìficas push. Funtzionat che a un'aplicatzione nativa in maneras medas!
- tips: Impòsitos
title: Ti donamus su benebènnidu, %{name}!
users:
follow_limit_reached: Non podes sighire prus de %{limit} persones
diff --git a/config/locales/si.yml b/config/locales/si.yml
index de029aa501..2c41e40b88 100644
--- a/config/locales/si.yml
+++ b/config/locales/si.yml
@@ -1,66 +1,74 @@
---
si:
about:
- about_this: පිලිබඳව
- active_count_after: සක්රීයයි
- active_footnote: මාසික ක්රියාකාරී පරිශීලකයින් (මාක්රිප)
- api: යෙ.ක්ර. මු. (API)
- apps: ජංගම යෙදුම්
- contact: සබඳතාව
- contact_missing: සකසා නැත
+ about_mastodon_html: 'අනාගත සමාජ ජාලය: දැන්වීම් නැත, ආයතනික නිරීක්ෂණ නැත, සදාචාරාත්මක සැලසුම් සහ විමධ්යගත කිරීම! Mastodon සමඟ ඔබේ දත්ත අයිති කරගන්න!'
+ contact_missing: සකස් කර නැත
contact_unavailable: අ/නොවේ
- documentation: ප්රලේඛනය
- get_apps: ජංගම යෙදුමක් උත්සාහ කරන්න
- learn_more: තව දැනගන්න
- privacy_policy: රහස්යතා ප්රතිපත්තිය
- rules: සේවාදායකයේ නීති
- source_code: මූල කේතය
- status_count_after:
- one: තත්වය
- other: තත්වයන්
- terms: සේවාවේ කොන්දේසි
- unavailable_content_description:
- domain: සේවාදායකය
- reason: හේතුව
- silenced_title: සීමාසහිත සේවාදායක
- suspended_title: අත්හිටවූ සේවාදායකයන්
- user_count_after:
- one: පරිශීලක
- other: පරිශීලකයින්
- what_is_mastodon: මාස්ටඩන් යනු කුමක්ද?
+ hosted_on: Mastodon %{domain}හි සත්කාරකත්වය දරයි
accounts:
- joined: "%{date} එක් වී ඇත"
- media: මාධ්යය
+ follow: අනුගමනය
+ followers:
+ one: අනුගාමිකයා
+ other: අනුගාමිකයින්
+ following: අනුගමනය
+ instance_actor_flash: මෙම ගිණුම සේවාදායකයම නියෝජනය කිරීමට භාවිතා කරන අතථ්ය නළුවෙකු වන අතර කිසිදු තනි පරිශීලකයෙකු නොවේ. එය ෆෙඩරේෂන් අරමුණු සඳහා භාවිතා කරන අතර අත්හිටුවිය යුතු නොවේ.
+ last_active: අවසාන ක්රියාකාරී
+ link_verified_on: මෙම සබැඳියේ හිමිකාරිත්වය %{date}හි පරීක්ෂා කරන ලදී
nothing_here: මෙහි කිසිත් නැත!
- roles:
- admin: පරිපාලක
- bot: ස්වයං ක්රමලේඛය
- group: සමූහය
+ pin_errors:
+ following: ඔබට අනුමත කිරීමට අවශ්ය පුද්ගලයා ඔබ දැනටමත් අනුගමනය කරමින් සිටිය යුතුය
+ posts:
+ one: ලිපිය
+ other: ලිපි
+ posts_tab_heading: ලිපි
admin:
+ account_actions:
+ action: ක්රියාව සිදු කරන්න
+ title: "%{acct}මත මධ්යස්ථ ක්රියාව සිදු කරන්න"
account_moderation_notes:
create: සටහන හැරයන්න
+ created_msg: මධ්යස්ථ සටහන සාර්ථකව සාදන ලදී!
+ destroyed_msg: මධ්යස්ථ සටහන සාර්ථකව විනාශ විය!
accounts:
add_email_domain_block: වි-තැපැල් වසම අවහිර කරන්න
approve: අනුමත කරන්න
+ approved_msg: "%{username}හි ලියාපදිංචි වීමේ යෙදුම සාර්ථකව අනුමත කරන ලදී"
are_you_sure: ඔබට විශ්වාසද?
+ avatar: අවතාරය
by_domain: වසම
change_email:
- changed_msg: ගිණුමේ වි-තැපෑල සාර්ථකව වෙනස් කෙරිණි!
current_email: වත්මන් වි-තැපෑල
label: වි-තැපෑල වෙනස් කරන්න
new_email: නව විද්යුත් තැපෑල
submit: වි-තැපෑල වෙනස් කරන්න
title: "%{username} සඳහා වි-තැපෑල වෙනස් කරන්න"
confirm: සනාථ කරන්න
- confirmed: සනාථ කර ඇත
+ confirmed: තහවුරු කර ඇත
confirming: සනාථ කරමින්
+ custom: අභිරුචි
+ delete: දත්ත මකන්න
+ deleted: මකා දමන ලදී
+ demote: පහත් කරන්න
+ destroyed_msg: "%{username}හි දත්ත ඉක්මනින් මකා දැමීමට පෝලිම් කර ඇත"
+ disable: කැටි කරන්න
+ disable_sign_in_token_auth: ඊමේල් ටෝකන් සත්යාපනය අක්රීය කරන්න
+ disable_two_factor_authentication: 2FA අබල කරන්න
+ disabled: ශීත කළ
+ display_name: ප්රදර්ශන නාමය
domain: වසම
edit: සංස්කරණය
email: විද්යුත් තැපෑල
email_status: වි-තැපෑලෙහි තත්වය
+ enable: කැටි කිරීම ඉවත් කරන්න
+ enable_sign_in_token_auth: විද්යුත් තැපෑල ටෝකන් සත්යාපනය සබල කරන්න
enabled: සබල කර ඇත
+ enabled_msg: "%{username}ගේ ගිණුම සාර්ථකව අත්හිටුවා ඇත"
+ followers: අනුගාමිකයින්
+ follows: පහත සඳහන්
header: ශීර්ෂය
- invite_request_text: එක්වීම සඳහා හේතුව
+ inbox_url: එන ලිපි URL
+ invite_request_text: එක්වීම සඳහා
+ invited_by: විසින් ආරාධනා කරන ලදී
ip: අ.ජා. කෙ. (IP)
joined: එක් වී ඇත
location:
@@ -70,259 +78,1119 @@ si:
title: ස්ථානය
login_status: පිවිසීමේ තත්වය
media_attachments: මාධ්ය ඇමුණුම්
+ memorialize: මතක සටහන් බවට පත් කරන්න
+ memorialized: අනුස්මරණය කරන ලදී
+ memorialized_msg: සාර්ථක ලෙස %{username} අනුස්මරණ ගිණුමක් බවට පත් කරන ලදී
moderation:
active: සක්රීයයි
all: සියල්ල
+ pending: පොරොත්තුවෙන්
suspended: අත්හිටුවන ලදි
- most_recent_ip: වඩා මෑත අ.ජා.කෙ.(IP)
+ title: මධ්යස්ථභාවය
+ moderation_notes: මධ්යස්ථ සටහන්
+ most_recent_activity: වඩාත්ම මෑත ක්රියාකාරිත්වය
+ most_recent_ip: ඊට වඩා අ.ජා.කේ.(IP)
+ no_account_selected: කිසිවක් තෝරා නොගත් බැවින් ගිණුම් කිසිවක් වෙනස් කර නැත
+ no_limits_imposed: සීමාවන් පනවා නැත
+ not_subscribed: දායක වී නැත
+ pending: පොරොත්තු සමාලෝචනය
perform_full_suspension: අත්හිටුවන්න
+ previous_strikes: පෙර වැඩ වර්ජන
+ previous_strikes_description_html:
+ one: මෙම ගිණුමට එක වර්ජනයක් ඇත.
+ other: මෙම ගිණුමේ වර්ජන %{count} ඇත.
+ promote: ප්රවර්ධනය කරන්න
protocol: කෙටුම්පත
- public: ප්රසිද්ධ
+ public: ප්රසිද්ධ
+ push_subscription_expires: පුෂ් දායකත්වය කල් ඉකුත් වේ
redownload: පැතිකඩ නැවුම්කරන්න
+ redownloaded_msg: මූලාරම්භයේ සිට %{username}හි පැතිකඩ සාර්ථකව නැවුම් කරන ලදී
reject: ප්රතික්ෂේප
+ rejected_msg: "%{username}හි ලියාපදිංචි වීමේ අයදුම්පත සාර්ථකව ප්රතික්ෂේප විය"
+ remove_avatar: අවතාරය ඉවත් කරන්න
remove_header: ශීර්ෂය ඉවත්කරන්න
+ removed_avatar_msg: "%{username}ගේ අවතාර රූපය සාර්ථකව ඉවත් කරන ලදී"
+ removed_header_msg: "%{username}හි ශීර්ෂ රූපය සාර්ථකව ඉවත් කරන ලදී"
+ resend_confirmation:
+ already_confirmed: මෙම පරිශීලකයා දැනටමත් තහවුරු කර ඇත
+ send: තහවුරුකිරීමේ විද්යුත් තැපැල් පණිවිඩය නැවත එවන්න
+ success: තහවුරු කිරීමේ විද්යුත් තැපෑල සාර්ථකව යවා ඇත!
reset: නැවත සකසන්න
reset_password: මුරපදය නැවතසකසන්න
- role: අවසරයන්
- roles:
- admin: පරිපාලක
- staff: කාර්ය මණ්ඩලය
- user: පරිශීලක
+ resubscribe: නැවත දායක වන්න
search: සොයන්න
+ search_same_email_domain: එකම විද්යුත් තැපැල් වසම සහිත වෙනත් පරිශීලකයන්
+ search_same_ip: එකම IP සහිත වෙනත් පරිශීලකයන්
security_measures:
only_password: මුරපදය පමණි
+ password_and_2fa: මුරපදය සහ 2FA
sensitive: සංවේදී
+ sensitized: සංවේදී ලෙස සලකුණු කර ඇත
+ shared_inbox_url: බෙදාගත් එන ලිපි URL
+ show:
+ created_reports: වාර්තා හැදුවා
+ targeted_reports: වෙනත් අය විසින් වාර්තා කරන ලදී
silence: සීමාව
silenced: සීමාසහිත
- statuses: තත්වයන්
+ statuses: ලිපි
+ strikes: පෙර වැඩ වර්ජන
+ subscribe: දායක වන්න
+ suspend: අත්හිටුවන්න
suspended: අත්හිටුවන ලදි
+ suspension_irreversible: මෙම ගිණුමේ දත්ත ආපසු හැරවිය නොහැකි ලෙස මකා ඇත. ඔබට එය භාවිතා කළ හැකි බවට පත් කිරීම සඳහා ගිණුම අත්හිටුවිය හැක නමුත් එය පෙර තිබූ දත්ත කිසිවක් ප්රතිසාධනය නොකරයි.
+ suspension_reversible_hint_html: ගිණුම අත්හිටුවා ඇති අතර, දත්ත සම්පූර්ණයෙන්ම %{date}දින ඉවත් කරනු ලැබේ. එතෙක් කිසිදු අයහපත් ප්රතිඵලයකින් තොරව ගිණුම යථා තත්ත්වයට පත් කළ හැක. ඔබට ගිණුමේ සියලුම දත්ත වහාම ඉවත් කිරීමට අවශ්ය නම්, ඔබට එය පහතින් කළ හැක.
title: ගිණුම්
+ unblock_email: ඊමේල් ලිපිනය අවහිර කිරීම ඉවත් කරන්න
+ unblocked_email_msg: "%{username}ගේ විද්යුත් තැපැල් ලිපිනය අවහිර කිරීම සාර්ථකව ඉවත් කරන ලදී"
+ unconfirmed_email: තහවුරු නොකළ ඊමේල්
+ undo_sensitized: බල සංවේදී අහෝසි කරන්න
+ undo_silenced: සීමාව අහෝසි කරන්න
+ undo_suspension: අත්හිටුවීම අහෝසි කරන්න
+ unsilenced_msg: "%{username}ගිණුමේ සීමාව සාර්ථකව ඉවත් කරන ලදී"
+ unsubscribe: දායක නොවන්න
+ unsuspended_msg: "%{username}ගිණුම සාර්ථකව අත්හිටුවන ලදී"
username: පරිශීලක නාමය
+ view_domain: වසම සඳහා සාරාංශය බලන්න
warn: අවවාද
web: වියමන
+ whitelisted: ෆෙඩරේෂන් සඳහා අවසර ඇත
action_logs:
action_types:
- change_email_user: පරිශීලකට වි-තැපෑල වෙනස් කරන්න
+ approve_appeal: අභියාචනය අනුමත කරන්න
+ approve_user: පරිශීලක අනුමත කරන්න
+ assigned_to_self_report: වාර්තාව පැවරීම
+ change_email_user: පරිශීලකයින්ට වි-තැපෑල වෙනස් කරන්න
+ confirm_user: පරිශීලක තහවුරු කරන්න
create_account_warning: අවවාදයක් සාදන්න
create_announcement: නිවේදනය සාදන්න
+ create_custom_emoji: අභිරුචි ඉමොජි සාදන්න
create_domain_allow: වසම් ඉඩදීමක් සාදන්න
create_domain_block: වසම් අවහිරයක් සාදන්න
+ create_email_domain_block: ඊමේල් ඩොමේන් බ්ලොක් එකක් සාදන්න
create_ip_block: අ.ජා. කෙ. (IP) නීතියක් සාදන්න
- disable_user: පරිශීලක අබල කරන්න
+ create_unavailable_domain: ලබා ගත නොහැකි වසම සාදන්න
+ demote_user: පරිශීලකයා පහත් කරන්න
+ destroy_announcement: නිවේදනය මකන්න
+ destroy_custom_emoji: අභිරුචි ඉමොජි මකන්න
+ destroy_domain_allow: වසම මකන්න ඉඩ දෙන්න
+ destroy_domain_block: වසම් වාරණය මකන්න
+ destroy_email_domain_block: ඊමේල් ඩොමේන් බ්ලොක් එක මකන්න
+ destroy_instance: වසම පිරිසිදු කරන්න
+ destroy_ip_block: IP රීතිය මකන්න
+ destroy_status: පළ කිරීම මකන්න
+ destroy_unavailable_domain: ලබා ගත නොහැකි වසම මකන්න
+ disable_2fa_user: 2FA අබල කරන්න
+ disable_custom_emoji: අභිරුචි ඉමොජි අබල කරන්න
+ disable_sign_in_token_auth_user: පරිශීලකයා සඳහා ඊමේල් ටෝකන් සත්යාපනය අක්රීය කරන්න
+ disable_user: පරිශීලනය කරන්න
+ enable_custom_emoji: අභිරුචි ඉමොජි සබල කරන්න
+ enable_sign_in_token_auth_user: පරිශීලකයා සඳහා විද්යුත් තැපෑල ටෝකන් සත්යාපනය සක්රීය කරන්න
enable_user: පරිශීලක සබල කරන්න
+ memorialize_account: ගිණුම අනුස්මරණ කරන්න
+ promote_user: පරිශීලක ප්රවර්ධනය කරන්න
+ reject_appeal: අභියාචනය ප්රතික්ෂේප කරන්න
+ reject_user: පරිශීලක ප්රතික්ෂේප කරන්න
+ remove_avatar_user: Avatar ඉවත් කරන්න
reopen_report: වාර්තාව නැවත විවෘත කරන්න
reset_password_user: මුරපදය නැවතසකසන්න
- suspend_account: ගිණුම අත්හිටුවන්න
+ resolve_report: වාර්තාව විසඳන්න
+ sensitive_account: බල සංවේදී ගිණුම
+ silence_account: ගිණුම සීමා කරන්න
+ suspend_account: සැලකිය යුතු
+ unassigned_report: වාර්තාව පැවරීම ඉවත් කරන්න
+ unblock_email_account: ඊමේල් ලිපිනය අවහිර කිරීම ඉවත් කරන්න
+ unsensitive_account: බල සංවේදී ගිණුම අහෝසි කරන්න
+ unsilence_account: සීමාව ගිණුම අහෝසි කරන්න
+ unsuspend_account: ගිණුම අත්හිටුවීම
update_announcement: නිවේදනය යාවත්කාල කරන්න
- filter_by_action: ක්රියාමාර්ගය අනුව පෙරන්න
+ update_custom_emoji: අභිරුචි ඉමොජි යාවත්කාලීන කරන්න
+ update_domain_block: ඩොමේන් බ්ලොක් යාවත්කාලීන කරන්න
+ update_status: පළ කිරීම යාවත්කාලීන කරන්න
+ actions:
+ approve_appeal_html: "%{name} අනුමත මධ්යස්ථ තීරණ අභියාචනය %{target}සිට"
+ approve_user_html: "%{name} අනුමත ලියාපදිංචිය %{target}සිට"
+ assigned_to_self_report_html: "%{name} වාර්තාව %{target} තමන්ටම පවරා ඇත"
+ change_email_user_html: "%{name} පරිශීලක %{target}ගේ ඊමේල් ලිපිනය වෙනස් කළේය"
+ confirm_user_html: "%{name} පරිශීලකයාගේ තහවුරු කරන ලද විද්යුත් තැපැල් ලිපිනය %{target}"
+ create_account_warning_html: "%{name} %{target}අනතුරු ඇඟවීමක් යවා ඇත"
+ create_announcement_html: "%{name} නව නිවේදනයක් තනන %{target}"
+ create_custom_emoji_html: "%{name} නව ඉමොජි %{target}උඩුගත කරන ලදී"
+ create_domain_allow_html: "%{name} වසම %{target}සමඟ ෆෙඩරේෂණයට අවසර දී ඇත"
+ create_domain_block_html: "%{name} අවහිර කළ වසම %{target}"
+ create_email_domain_block_html: "%{name} අවහිර කරන ලද විද්යුත් තැපැල් වසම %{target}"
+ create_ip_block_html: "%{name} IP %{target}සඳහා රීතිය සාදන ලදී"
+ create_unavailable_domain_html: "%{name} වසම %{target}වෙත බෙදා හැරීම නැවැත්වීය"
+ demote_user_html: "%{name} පහත හෙලන ලද පරිශීලක %{target}"
+ destroy_announcement_html: "%{name} මකා දැමූ නිවේදනය %{target}"
+ destroy_domain_allow_html: වසම %{target}සමඟ %{name} අවසර නොදුන් සම්මේලනය
+ destroy_domain_block_html: "%{name} අවහිර නොකළ වසම %{target}"
+ destroy_email_domain_block_html: "%{name} අවහිර නොකළ විද්යුත් තැපැල් වසම %{target}"
+ destroy_instance_html: "%{name} පිරිසිදු කරන ලද වසම %{target}"
+ destroy_ip_block_html: IP %{target}සඳහා %{name} මකා දැමූ රීතිය
+ destroy_status_html: "%{name} පෝස්ට් %{target}විසින් ඉවත් කරන ලදී"
+ destroy_unavailable_domain_html: "%{name} වසම %{target}වෙත බෙදා හැරීම නැවත ආරම්භ විය"
+ disable_2fa_user_html: "%{name} පරිශීලක %{target}සඳහා සාධක දෙකක අවශ්යතාවය අක්රීය කර ඇත"
+ disable_custom_emoji_html: "%{name} ආබාධිත ඉමොජි %{target}"
+ disable_sign_in_token_auth_user_html: "%{name} අක්රීය කරන ලද විද්යුත් තැපෑල ටෝකන් සත්යාපනය සඳහා %{target}"
+ disable_user_html: "%{name} පරිශීලක %{target}සඳහා අබල කළ පිවිසුම"
+ enable_custom_emoji_html: "%{name} සක්රීය ඉමොජි %{target}"
+ enable_sign_in_token_auth_user_html: "%{name} %{target}විද්යුත් තැපෑල ටෝකන් සත්යාපනය සක්රීය කර ඇත"
+ enable_user_html: පරිශීලක %{target}සඳහා %{name} සක්රීය පුරනය වීම
+ memorialize_account_html: "%{name} %{target}ගේ ගිණුම සිහිවටන පිටුවක් බවට පත් කළේය"
+ promote_user_html: "%{name} උසස් පරිශීලක %{target}"
+ reject_appeal_html: "%{name} %{target}සිට මධ්යස්ථ තීරණ අභියාචනය ප්රතික්ෂේප කරන ලදී"
+ reject_user_html: "%{name} %{target}සිට ලියාපදිංචි වීම ප්රතික්ෂේප විය"
+ remove_avatar_user_html: "%{name} %{target}ගේ අවතාරය ඉවත් කරන ලදී"
+ reopen_report_html: "%{name} නැවත විවෘත කළ වාර්තාව %{target}"
+ reset_password_user_html: "%{name} පරිශීලක %{target}හි මුරපදය යළි පිහිටුවන්න"
+ resolve_report_html: "%{name} විසඳන ලද වාර්තාව %{target}"
+ sensitive_account_html: "%{name} %{target}හි මාධ්ය සංවේදී ලෙස සලකුණු කර ඇත"
+ silence_account_html: "%{name} සීමිත %{target}ගිණුමක්"
+ suspend_account_html: "%{name} %{target}ගේ ගිණුම අත්හිටුවා ඇත"
+ unassigned_report_html: "%{name} පවරා නොදුන් වාර්තාව %{target}"
+ unblock_email_account_html: "%{name} %{target}ගේ ඊමේල් ලිපිනය අවහිර කිරීම ඉවත් කරන ලදී"
+ unsensitive_account_html: "%{name} සලකුණු නොකළ %{target}ගේ මාධ්ය සංවේදී ලෙස"
+ unsilence_account_html: "%{target}ගිණුමේ %{name} undid සීමාව"
+ unsuspend_account_html: "%{name} අත්හිටුවන ලද %{target}ගිණුම"
+ update_announcement_html: "%{name} යාවත්කාලීන නිවේදනය %{target}"
+ update_custom_emoji_html: "%{name} යාවත්කාලීන කළ ඉමොජි %{target}"
+ update_domain_block_html: "%{target}සඳහා %{name} යාවත්කාලීන කරන ලද වසම් වාරණ"
+ update_status_html: "%{name} %{target}යාවත්කාලීන කරන ලද පළ කිරීම"
+ empty: ලඝු-සටහන් හමු නොවිණි.
+ filter_by_action: ක්රියාව අනුව පෙරන්න
filter_by_user: පරිශීලක අනුව පෙරන්න
+ title: විගණන සටහන
announcements:
+ destroyed_msg: නිවේදනය සාර්ථකව මකා ඇත!
edit:
title: නිවේදනය සංස්කරණය
+ empty: නිවේදන කිසිවක් හමු නොවීය.
live: සජීවී
new:
create: නිවේදනය සාදන්න
title: නව නිවේදනය
+ publish: ප්රකාශ කරන්න
published_msg: නිවේදනය සාර්ථකව ප්රකාශයට පත් කරන ලදි!
+ scheduled_for: "%{time}සඳහා සැලසුම් කර ඇත"
+ scheduled_msg: නිවේදනය නිකුත් කිරීමට නියමිතයි!
title: නිවේදන
+ unpublish: ප්රකාශනය ඉවත් කරන්න
+ unpublished_msg: නිවේදනය සාර්ථකව ප්රකාශයට පත් නොකළේය!
+ updated_msg: නිවේදනය සාර්ථකව යාවත්කාලීන කරන ලදී!
custom_emojis:
+ assign_category: කාණ්ඩය පැවරීම
by_domain: වසම
+ copied_msg: ඉමොජි වල දේශීය පිටපත සාර්ථකව සාදන ලදී
copy: පිටපත්
+ copy_failed_msg: එම ඉමොජියේ දේශීය පිටපතක් සෑදීමට නොහැකි විය
create_new_category: නව ප්රවර්ගයක් සාදන්න
+ created_msg: ඉමොජි සාර්ථකව නිර්මාණය කළා!
+ delete: මකන්න
+ destroyed_msg: Emojo සාර්ථකව විනාශ විය!
disable: අබල කරන්න
disabled: අබල කර ඇත
+ disabled_msg: එම ඉමොජිය සාර්ථකව අබල කරන ලදී
+ emoji: ඉමොජි
enable: සබල කරන්න
enabled: සබල කර ඇත
+ enabled_msg: එම ඉමොජි සාර්ථකව සබල කරන ලදී
+ image_hint: PNG හෝ GIF %{size}දක්වා
list: ලැයිස්තුව
+ listed: ලැයිස්තුගත කර ඇත
+ new:
+ title: නව අභිරුචි ඉමොජි එක් කරන්න
+ not_permitted: මෙම ක්රියාව සිදු කිරීමට ඔබට අවසර නැත
+ overwrite: උඩින් ලියන්න
shortcode: කෙටිකේතය
+ shortcode_hint: අවම වශයෙන් අක්ෂර 2 ක්, අක්ෂරාංක අක්ෂර සහ යටි ඉරි පමණි
+ title: අභිරුචි ඉමෝජි
+ uncategorized: වර්ගීකරණය නොකළ
+ unlist: ලැයිස්තුගත නොකරන්න
+ unlisted: ලැයිස්තුගත නොකළ
+ update_failed_msg: එම ඉමොජි යාවත්කාලීන කළ නොහැකි විය
+ updated_msg: ඉමොජි සාර්ථකව යාවත්කාලීන කරන ලදී!
upload: උඩුගත කරන්න
dashboard:
+ active_users: ක්රියාකාරී පරිශීලකයන්
+ interactions: අන්තර්ක්රියා
+ media_storage: මාධ්ය ගබඩාව
+ new_users: නව පරිශීලකයන්
+ opened_reports: වාර්තා විවෘත විය
+ pending_appeals_html:
+ one: "%{count} අභියාචනයක් බලාපොරොත්තු වේ"
+ other: "%{count} අභියාචනා පොරොත්තු"
+ pending_reports_html:
+ one: "%{count} පොරොත්තු වාර්තාව"
+ other: "%{count} පොරොත්තු වාර්තා"
+ pending_tags_html:
+ one: "%{count} පොරොත්තු හැෂ් ටැගය"
+ other: "%{count} පොරොත්තු හැෂ් ටැග්"
+ pending_users_html:
+ one: "%{count} අපේක්ෂිත පරිශීලකයා"
+ other: "%{count} අපේක්ෂිත පරිශීලකයින්"
+ resolved_reports: වාර්තා විසඳා ඇත
software: මෘදුකාංගය
+ sources: ලියාපදිංචි මූලාශ්ර
+ space: අවකාශය භාවිතය
title: උපකරණ පුවරුව
+ top_languages: ඉහළම ක්රියාකාරී භාෂා
+ top_servers: ඉහළම ක්රියාකාරී සේවාදායකයන්
+ website: වෙබ් අඩවිය
+ disputes:
+ appeals:
+ empty: අභියාචනා හමු නොවීය.
+ title: අභියාචනා
+ domain_allows:
+ add_new: වසම සමඟ සම්මේලනයට ඉඩ දෙන්න
+ created_msg: ෆෙඩරේෂන් සඳහා වසම සාර්ථකව අවසර දී ඇත
+ destroyed_msg: ෆෙඩරේෂන් වෙතින් වසම අනුමත කර නැත
+ undo: වසම සමඟ සම්මේලනයට ඉඩ නොදෙන්න
domain_blocks:
+ add_new: නව වසම් වාරණ එක් කරන්න
+ created_msg: වසම් අවහිර කිරීම දැන් සකසමින් පවතී
+ destroyed_msg: වසම් අවහිර කිරීම ඉවත් කර ඇත
domain: වසම
+ edit: වසම් වාරණය සංස්කරණය කරන්න
+ existing_domain_block: ඔබ දැනටමත් %{name}මත දැඩි සීමාවන් පනවා ඇත.
+ existing_domain_block_html: ඔබ දැනටමත් %{name}මත දැඩි සීමාවන් පනවා ඇත, ඔබට එය අවහිර කිරීම ඉවත් කිරීමට අවශ්යයි .
new:
+ create: බ්ලොක් එකක් සාදන්න
+ hint: ඩොමේන් බ්ලොක් එක දත්ත සමුදාය තුල ගිණුම් ඇතුලත් කිරීම් නිර්මාණය වීම වලක්වන්නේ නැත, නමුත් එම ගිණුම් වලට ප්රතික්රියාශීලීව සහ ස්වයංක්රීයව විශේෂිත මධ්යස්ථ ක්රම යොදනු ඇත.
severity:
+ desc_html: "Silence ගිණුමේ පළ කිරීම් ඒවා අනුගමනය නොකරන ඕනෑම කෙනෙකුට නොපෙනී යයි. අත්හිටුවීම ගිණුමේ අන්තර්ගතය, මාධ්ය සහ පැතිකඩ දත්ත සියල්ල ඉවත් කරයි. ඔබට මාධ්ය ගොනු ප්රතික්ෂේප කිරීමට අවශ්ය නම් None භාවිතා කරන්න."
noop: කිසිවක් නැත
+ silence: නිශ්ශබ්දතාව
suspend: අත්හිටුවන්න
+ title: නව වසම් වාරණ
+ obfuscate: අපැහැදිලි වසම් නාමය
+ obfuscate_hint: වසම් සීමාවන් ලැයිස්තුව ප්රචාරණය කිරීම සබල කර ඇත්නම් ලැයිස්තුවේ වසම් නාමය අර්ධ වශයෙන් අපැහැදිලි කරන්න
private_comment: පුද්ගලික අදහස
+ private_comment_hint: පරිපාලකයින් විසින් අභ්යන්තර භාවිතය සඳහා මෙම වසම් සීමාව ගැන අදහස් දක්වන්න.
public_comment: ප්රසිද්ධ අදහස
+ public_comment_hint: වසම් සීමාවන් ලැයිස්තුව ප්රචාරණය කිරීම සබල කර ඇත්නම්, සාමාන්ය ජනතාව සඳහා මෙම වසම් සීමාව ගැන අදහස් දක්වන්න.
+ reject_media: මාධ්ය ගොනු ප්රතික්ෂේප කරන්න
+ reject_media_hint: දේශීයව ගබඩා කර ඇති මාධ්ය ගොනු ඉවත් කරන අතර අනාගතයේදී ඒවා බාගත කිරීම ප්රතික්ෂේප කරයි. අත්හිටුවීම් සඳහා අදාළ නොවේ
reject_reports: වාර්තා ප්රතික්ෂේප කරන්න
+ reject_reports_hint: මෙම වසමෙන් එන සියලුම වාර්තා නොසලකා හරින්න. අත්හිටුවීම් සඳහා අදාළ නොවේ
+ undo: වසම් අවහිර කිරීම අහෝසි කරන්න
+ view: වසම් වාරණය බලන්න
email_domain_blocks:
+ add_new: අලුතින් එකතු කරන්න
+ attempts_over_week:
+ one: පසුගිය සතිය පුරා %{count} උත්සාහයක්
+ other: පසුගිය සතියේ ලියාපදිංචි වීමේ උත්සාහයන් %{count} ක්
+ created_msg: විද්යුත් තැපැල් වසම සාර්ථකව අවහිර කරන ලදී
+ delete: මකන්න
+ dns:
+ types:
+ mx: MX වාර්තාව
domain: වසම
new:
create: වසම එකතු කරන්න
+ resolve: වසම විසඳන්න
+ title: නව විද්යුත් තැපැල් වසම අවහිර කරන්න
+ no_email_domain_block_selected: කිසිවක් තෝරා නොගත් බැවින් විද්යුත් තැපැල් වසම් වාරණ කිසිවක් වෙනස් කර නැත
+ resolved_dns_records_hint_html: ඩොමේන් නාමය පහත දැක්වෙන MX වසම් වලට විසඳයි, ඒවා අවසානයේ ඊමේල් පිළිගැනීම සඳහා වගකිව යුතුය. MX වසමක් අවහිර කිරීම දෘශ්ය වසම් නාමය වෙනස් වුවද, එකම MX වසම භාවිතා කරන ඕනෑම විද්යුත් තැපැල් ලිපිනයකින් ලියාපදිංචි වීම අවහිර කරයි. ප්රධාන විද්යුත් තැපැල් සපයන්නන් අවහිර නොකිරීමට ප්රවේශම් වන්න.
+ resolved_through_html: "%{domain}හරහා විසඳා ඇත"
title: අවහිර කළ වි-තැපැල් වසම්
follow_recommendations:
+ description_html: "නව පරිශීලකයින්ට රසවත් අන්තර්ගතයන් ඉක්මනින් සොයා ගැනීමට උපකාර වන නිර්දේශ අනුගමනය කරන්න . පෞද්ගලීකරණය කළ පසු විපරම් නිර්දේශ සැකසීමට තරම් පරිශීලකයෙකු අන් අය සමඟ අන්තර් ක්රියා කර නොමැති විට, ඒ වෙනුවට මෙම ගිණුම් නිර්දේශ කෙරේ. දී ඇති භාෂාවක් සඳහා ඉහළම මෑත කාලීන නියැලීම් සහ ඉහළම දේශීය අනුගාමික සංඛ්යාව සහිත ගිණුම් මිශ්රණයකින් ඒවා දෛනික පදනමින් නැවත ගණනය කෙරේ."
language: භාෂාව සඳහා
- status: තත්වය
+ status: තත්වය
+ suppress: අනුගමනය නිර්දේශය යටපත් කරන්න
+ suppressed: යටපත් කළා
+ title: නිර්දේශ අනුගමනය කරන්න
+ unsuppress: නිර්දේශ පිළිපැදීම ප්රතිසාධනය කරන්න
instances:
+ availability:
+ description_html:
+ one: වසම වෙත බෙදා හැරීම සාර්ථක නොවී දින %{count} අසාර්ථක වුවහොත්, වසම න් බෙදා හැරීමක් ලැබෙන්නේ නම් මිස වැඩිදුර බෙදා හැරීමේ උත්සාහයන් සිදු නොකෙරේ.
+ other: වසම වෙත බෙදා හැරීම සාර්ථක නොවී %{count} වෙනස් දින අසාර්ථක වුවහොත්, වසම සිට බෙදා හැරීමක් නොලැබුනේ නම්, තවදුරටත් බෙදා හැරීමේ උත්සාහයන් සිදු නොකෙරේ.
+ failure_threshold_reached: අසාර්ථක වීමේ සීමාව %{date}ට ළඟා විය.
+ failures_recorded:
+ one: දින %{count} කින් අසාර්ථක උත්සාහයක්.
+ other: විවිධ දින %{count} ක අසාර්ථක උත්සාහයන්.
+ no_failures_recorded: වාර්තාගත අසාර්ථක වීම් නොමැත.
+ title: පවතින බව
+ warning: මෙම සේවාදායකයට සම්බන්ධ වීමට ගත් අවසන් උත්සාහය අසාර්ථක විය
back_to_all: සියල්ල
+ back_to_limited: සීමා සහිතයි
back_to_warning: අවවාදයයි
by_domain: වසම
+ confirm_purge: ඔබට මෙම වසමෙන් දත්ත ස්ථිරවම මැකීමට අවශ්ය බව විශ්වාසද?
+ content_policies:
+ comment: අභ්යන්තර සටහන
+ description_html: ඔබට මෙම වසම සහ එහි ඕනෑම උප වසමකින් සියලුම ගිණුම් වලට අදාළ වන අන්තර්ගත ප්රතිපත්ති නිර්වචනය කළ හැක.
+ policies:
+ reject_media: මාධ්ය ප්රතික්ෂේප කරන්න
+ reject_reports: වාර්තා ප්රතික්ෂේප කරන්න
+ silence: සීමාව
+ suspend: අත්හිටුවන්න
+ policy: ප්රතිපත්ති
+ reason: පොදු හේතුව
+ title: අන්තර්ගත ප්රතිපත්ති
+ dashboard:
+ instance_accounts_dimension: වැඩිපුරම අනුගමනය කරන ගිණුම්
+ instance_accounts_measure: ගබඩා කර ඇති ගිණුම්
+ instance_followers_measure: එතන අපේ අනුගාමිකයෝ
+ instance_follows_measure: ඔවුන්ගේ අනුගාමිකයන් මෙහි
+ instance_languages_dimension: ඉහළම භාෂා
+ instance_media_attachments_measure: ගබඩා කළ මාධ්ය ඇමුණුම්
+ instance_reports_measure: ඔවුන් ගැන වාර්තා
+ instance_statuses_measure: ගබඩා කළ ලිපි
delivery:
all: සියල්ල
+ clear: බෙදා හැරීමේ දෝෂ ඉවත් කරන්න
+ failing: අසාර්ථක වෙනවා
+ restart: බෙදා හැරීම නැවත ආරම්භ කරන්න
+ stop: බෙදා හැරීම නවත්වන්න
+ unavailable: ලබා ගත නොහැක
+ delivery_available: බෙදා හැරීම ලබා ගත හැකිය
+ delivery_error_days: බෙදා හැරීමේ දෝෂ සහිත දින
+ delivery_error_hint: දින %{count} ක් සඳහා බෙදා හැරීම කළ නොහැකි නම්, එය ස්වයංක්රීයව බෙදා හැරිය නොහැකි ලෙස ලකුණු කරනු ලැබේ.
+ destroyed_msg: "%{domain} සිට දත්ත දැන් ආසන්න මකාදැමීම සඳහා පෝලිම් කර ඇත."
+ empty: වසම් කිසිවක් හමු නොවීය.
+ known_accounts:
+ one: "%{count} දන්නා ගිණුම්"
+ other: දන්නා ගිණුම් %{count} ක්
moderation:
all: සියල්ල
+ limited: සීමා සහිතයි
+ title: මධ්යස්ථභාවය
private_comment: පුද්ගලික අදහස
public_comment: ප්රසිද්ධ අදහස
+ purge: පිරිසිදු කරන්න
+ purge_description_html: මෙම වසම යහපත සඳහා නොබැඳි බව ඔබ විශ්වාස කරන්නේ නම්, ඔබට ඔබගේ ගබඩාවෙන් මෙම වසමෙන් සියලුම ගිණුම් වාර්තා සහ ආශ්රිත දත්ත මකා දැමිය හැක. මෙයට යම් කාලයක් ගත විය හැක.
+ title: සම්මේලනය
+ total_blocked_by_us: අප විසින් අවහිර කරන ලදී
+ total_followed_by_them: ඔවුන් විසින් අනුගමනය කරන ලදී
+ total_followed_by_us: අප විසින් අනුගමනය කරන ලදී
+ total_reported: ඔවුන් ගැන වාර්තා
+ total_storage: මාධ්ය ඇමුණුම්
+ totals_time_period_hint_html: පහත දැක්වෙන එකතුවෙහි සියලු කාලය සඳහා දත්ත ඇතුළත් වේ.
invites:
+ deactivate_all: සියල්ල අක්රිය කරන්න
filter:
all: සියල්ල
- expired: කල් ඉකුත් වී ඇත
+ available: පවතින
+ expired: ඉකුත් වී ඇත
title: පෙරහන
title: ඇරයුම්
ip_blocks:
add_new: නීතිය සාදන්න
+ created_msg: නව IP රීතිය සාර්ථකව එක් කරන ලදී
+ delete: මකන්න
expires_in:
'1209600': සති 2
'15778476': මාස 6
'2629746': මාස 1
'31556952': අවුරුදු 1
- '86400': දින 1
+ '86400': දවස් 1
'94670856': අවුරුදු 3
new:
- title: නව අ.ජා. කෙ.(IP) නීතියක් සාදන්න
+ title: නව අ.ජා.කෙ. නීතියක් සාදන්න
+ no_ip_block_selected: IP රීති කිසිවක් තෝරා නොගත් බැවින් වෙනස් කර නැත
title: අ.ජා. කෙ. (IP) නීති
+ relationships:
+ title: "%{acct}හි සබඳතා"
relays:
+ add_new: නව රිලේ එක් කරන්න
+ delete: මකන්න
+ description_html: "ෆෙඩරේෂන් රිලේ යනු එයට දායක වී ප්රකාශයට පත් කරන සේවාදායකයන් අතර විශාල ප්රසිද්ධ පළ කිරීම් හුවමාරු කරන අතරමැදි සේවාදායකයකි. එය කුඩා සහ මධ්යම සේවාදායකයන්ට fediverse වෙතින් අන්තර්ගතය සොයා ගැනීමට උදවු කළ හැකි අතර, එසේ නොමැති නම් දේශීය පරිශීලකයින්ට දුරස්ථ සේවාදායකයන් මත වෙනත් පුද්ගලයින් හස්තීයව අනුගමනය කිරීම අවශ්ය වේ."
disable: අබල කරන්න
disabled: අබල කර ඇත
enable: සබල කරන්න
+ enable_hint: සක්රිය කළ පසු, ඔබේ සේවාදායකය මෙම රිලේ වෙතින් සියලුම පොදු පළ කිරීම් සඳහා දායක වන අතර, මෙම සේවාදායකයේ පොදු පළ කිරීම් එයට යැවීම ආරම්භ කරනු ඇත.
enabled: සබල කර ඇත
+ inbox_url: රිලේ URL
+ pending: රිලේ අනුමැතිය සඳහා රැඳී සිටිමින්
+ save_and_enable: සුරකින්න සහ සක්රිය කරන්න
+ setup: රිලේ සම්බන්ධතාවයක් සකසන්න
+ signatures_not_enabled: ආරක්ෂිත මාදිලිය හෝ සීමිත ෆෙඩරේෂන් මාදිලිය සබල කර ඇති අතර රිලේ නිවැරදිව ක්රියා නොකරනු ඇත
status: තත්වය
+ title: රිලේස්
+ report_notes:
+ created_msg: වාර්තා සටහන සාර්ථකව සාදන ලදී!
+ destroyed_msg: වාර්තා සටහන සාර්ථකව මකා ඇත!
+ today_at: අද %{time}ට
reports:
+ account:
+ notes:
+ one: "%{count} සටහන"
+ other: "%{count} සටහන්"
+ action_log: විගණන සටහන
+ action_taken_by: විසින් ගන්නා ලද පියවර
+ actions:
+ delete_description_html: වාර්තා කරන ලද පළ කිරීම් මකා දැමෙනු ඇති අතර එම ගිණුමේම අනාගත උල්ලංඝනයන් තීව්ර කිරීමට ඔබට උදවු කිරීමට වර්ජනයක් වාර්තා කරනු ඇත.
+ mark_as_sensitive_description_html: වාර්තා කරන ලද පළ කිරීම් වල මාධ්ය සංවේදී ලෙස සලකුණු කරනු ලබන අතර එම ගිණුම මගින් අනාගත උල්ලංඝනයන් උත්සන්න කිරීමට ඔබට උපකාර කිරීමට වර්ජනයක් වාර්තා කරනු ඇත.
+ other_description_html: ගිණුමේ හැසිරීම පාලනය කිරීම සහ වාර්තා කළ ගිණුමට සන්නිවේදනය අභිරුචිකරණය කිරීම සඳහා තවත් විකල්ප බලන්න.
+ resolve_description_html: වාර්තා කරන ලද ගිණුමට එරෙහිව කිසිදු ක්රියාමාර්ගයක් නොගනු ඇත, වැඩ වර්ජනයක් වාර්තා නොකෙරේ, වාර්තාව වසා දමනු ඇත.
+ silence_description_html: පැතිකඩ දෘශ්යමාන වනු ඇත්තේ දැනටමත් එය අනුගමනය කරන හෝ අතින් බලන අයට පමණක් වන අතර, එහි ළඟාවීම දැඩි ලෙස සීමා කරයි. සෑම විටම ආපසු හැරවිය හැක.
+ suspend_description_html: එය අවසානයේ මකා දමන තුරු පැතිකඩ සහ එහි සියලුම අන්තර්ගතයන් ප්රවේශ විය නොහැකි වනු ඇත. ගිණුම සමඟ අන්තර් ක්රියා කිරීම කළ නොහැකි වනු ඇත. දින 30 ක් ඇතුළත ආපසු හැරවිය හැකිය.
+ actions_description_html: මෙම වාර්තාව විසඳීමට ගත යුතු ක්රියාමාර්ගය තීරණය කරන්න. ඔබ වාර්තා කරන ලද ගිණුමට එරෙහිව දණ්ඩනීය ක්රියාමාර්ගයක් ගන්නේ නම්, Spam කාණ්ඩය තෝරාගත් විට හැර, ඔවුන්ට විද්යුත් තැපෑලෙන් දැනුම්දීමක් යවනු ලැබේ.
+ add_to_report: වාර්තා කිරීමට තවත් එක් කරන්න
are_you_sure: ඔබට විශ්වාසද?
+ assign_to_self: මට පවරන්න
+ assigned: පවරා ඇති උපපරිපාලක
by_target_domain: වාර්තා කළ ගිණුමෙහි වසම
+ category: වර්ගය
+ category_description_html: මෙම ගිණුම සහ/හෝ අන්තර්ගතය වාර්තා කළ හේතුව වාර්තා කළ ගිණුම සමඟ සන්නිවේදනයේ සඳහන් කරනු ඇත
comment:
none: කිසිවක් නැත
+ comment_description_html: 'වැඩි විස්තර සැපයීම සඳහා, %{name} ලිවීය:'
+ created_at: වාර්තා කර ඇත
+ delete_and_resolve: පළ කිරීම් මකන්න
+ forwarded: යොමු කළා
+ forwarded_to: "%{domain}වෙත යොමු කරන ලදී"
+ mark_as_resolved: විසඳා ඇති ලෙස ලකුණු කරන්න
+ mark_as_sensitive: සංවේදී ලෙස ලකුණු කරන්න
+ mark_as_unresolved: නොවිසඳුනු ලෙස ලකුණු කරන්න
+ no_one_assigned: කිසි කෙනෙක නැහැ
notes:
create: සටහන එකතු කරන්න
+ create_and_resolve: සටහන සමඟ විසඳන්න
+ create_and_unresolve: සටහනක් සමඟ නැවත විවෘත කරන්න
+ delete: මකන්න
+ placeholder: ගෙන ඇති ක්රියාමාර්ග, හෝ වෙනත් අදාළ යාවත්කාලීන විස්තර කරන්න...
+ title: සටහන්
+ notes_description_html: අනෙකුත් උපපරිපාලකයින්ට සහ ඔබේ අනාගතයට සටහන් බලන්න සහ තබන්න
+ quick_actions_description_html: 'වාර්තා කළ අන්තර්ගතය බැලීමට ඉක්මන් ක්රියාමාර්ගයක් ගන්න හෝ පහළට අනුචලනය කරන්න:'
+ remote_user_placeholder: "%{instance}සිට දුරස්ථ පරිශීලකයා"
reopen: වාර්තාව නැවත විවෘත කරන්න
report: "@%{id} වාර්තා කරන්න"
reported_account: වාර්තා කළ ගිණුම
+ reported_by: විසින් වාර්තා
+ resolved: විසඳා ඇත
+ resolved_msg: වාර්තාව සාර්ථකව විසඳා ඇත!
+ skip_to_actions: ක්රියාවන් වෙත යන්න
status: තත්වය
+ statuses: වාර්තා කළ අන්තර්ගතය
+ statuses_description_html: වාර්තා කරන ලද ගිණුම සමඟ සන්නිවේදනය කිරීමේදී වැරදි අන්තර්ගතයන් උපුටා දක්වනු ඇත
+ target_origin: වාර්තා කළ ගිණුමේ ආරම්භය
title: වාර්තා
+ unassign: පැවරීම ඉවත් කරන්න
+ unresolved: නොවිසඳී ඇත
+ updated_at: යාවත්කාලීන කරන ලදී
+ view_profile: පැතිකඩ බලන්න
rules:
add_new: නීතිය එකතු කරන්න
+ delete: මකන්න
+ description_html: බොහෝ දෙනා සේවා කොන්දේසි කියවා එකඟ වූ බව ප්රකාශ කරන අතර, සාමාන්යයෙන් මිනිසුන් ගැටලුවක් පැනනඟින තුරු කියවා නොගනිති. පැතලි බුලට් පොයින්ට් ලිස්ට් එකකින් ඒවා ලබා දීමෙන් බැලූ බැල්මට ඔබේ සේවාදායකයේ නීති බැලීම පහසු කරන්න. තනි නීති කෙටි හා සරලව තබා ගැනීමට උත්සාහ කරන්න, නමුත් ඒවා විවිධ අයිතම වලට බෙදීමට උත්සාහ නොකරන්න.
edit: නීතිය සංස්කරණය කරන්න
+ empty: තවමත් සේවාදායක රීති නිර්වචනය කර නොමැත.
title: සේවාදායකයේ නීති
settings:
- contact_information:
- email: ව්යාපාරික වි-තැපෑල
- site_description:
- title: සේවාදායකයේ සවිස්තරය
- site_short_description:
- title: සේවාදායකයේ කෙටි සවිස්තරය
- site_title: සේවාදායකයේ නම
- title: අඩවියේ සැකසුම්
+ domain_blocks:
+ all: හැමෝටම
+ disabled: කාටවත් නෑ
+ users: පුරනය වී ඇති දේශීය පරිශීලකයින් වෙත
+ registrations_mode:
+ modes:
+ approved: ලියාපදිංචි වීමට අනුමැතිය අවශ්යයි
+ none: කිසිවෙකුට ලියාපදිංචි විය නොහැක
+ open: ඕනෑම කෙනෙකුට ලියාපදිංචි විය හැක
+ site_uploads:
+ delete: උඩුගත කළ ගොනුව මකන්න
+ destroyed_msg: අඩවිය උඩුගත කිරීම සාර්ථකව මකා ඇත!
statuses:
back_to_account: ගිණුම් පිටුවට ආපසු යන්න
+ back_to_report: වාර්තා පිටුවට ආපසු යන්න
+ batch:
+ remove_from_report: වාර්තාවෙන් ඉවත් කරන්න
+ report: වාර්තාව
+ deleted: මකා දමන ලදී
media:
title: මාධ්යය
- with_media: මාධ්ය සමඟ
+ no_status_selected: කිසිවක් තෝරා නොගත් බැවින් තනතුරු කිසිවක් වෙනස් කර නැත
+ title: ගිණුම් තනතුරු
+ with_media: මාධ්ය දායකත්වය
+ strikes:
+ actions:
+ delete_statuses: "%{target}ගේ පළ කිරීම් %{name} මකා දමන ලදී"
+ disable: "%{name} %{target}ගේ ගිණුම නිශ්චල කළේය"
+ mark_statuses_as_sensitive: "%{name} %{target}ගේ පළ කිරීම් සංවේදී ලෙස ලකුණු කර ඇත"
+ none: "%{name} %{target}අනතුරු ඇඟවීමක් යවා ඇත"
+ sensitive: "%{name} %{target}ගේ ගිණුම සංවේදී ලෙස ලකුණු කර ඇත"
+ silence: "%{name} සීමිත %{target}ගිණුමක්"
+ suspend: "%{name} %{target}ගේ ගිණුම අත්හිටුවා ඇත"
+ appeal_approved: අභියාචනා කළා
+ appeal_pending: අභියාචනය පොරොත්තුවෙන්
+ system_checks:
+ database_schema_check:
+ message_html: පොරොත්තු දත්ත සමුදා සංක්රමණයන් ඇත. යෙදුම අපේක්ෂිත පරිදි ක්රියා කරන බව සහතික කිරීමට කරුණාකර ඒවා ධාවනය කරන්න
+ elasticsearch_running_check:
+ message_html: Elasticsearch වෙත සම්බන්ධ වීමට නොහැකි විය. කරුණාකර එය ක්රියාත්මක වන බව පරීක්ෂා කරන්න, නැතහොත් සම්පූර්ණ පෙළ සෙවීම අක්රීය කරන්න
+ elasticsearch_version_check:
+ message_html: 'නොගැලපෙන ඉලාස්ටික් සෙවුම් අනුවාදය: %{value}'
+ version_comparison: Elasticsearch %{running_version} ක්රියාත්මක වන අතර %{required_version} අවශ්ය වේ
+ rules_check:
+ action: සේවාදායක නීති කළමනාකරණය කරන්න
+ message_html: ඔබ සේවාදායක රීති කිසිවක් නිර්වචනය කර නැත.
+ sidekiq_process_check:
+ message_html: "%{value} පෝලිම්(ය) සඳහා Sidekiq ක්රියාවලියක් ක්රියාත්මක නොවේ. කරුණාකර ඔබේ Sidekiq වින්යාසය සමාලෝචනය කරන්න"
+ tags:
+ review: තත්වය සමාලෝචනය
+ updated_msg: Hashtag සැකසුම් සාර්ථකව යාවත්කාලීන කරන ලදී
title: පරිපාලනය
+ trends:
+ allow: ඉඩ දෙන්න
+ approved: අනුමත කළා
+ disallow: අවසර නොදෙන්න
+ links:
+ allow: සබැඳියට ඉඩ දෙන්න
+ allow_provider: ප්රකාශකයාට ඉඩ දෙන්න
+ description_html: මේවා ඔබගේ සේවාදායකය විසින් පළ කිරීම් දකින ගිණුම් මගින් දැනට බොහෝ සෙයින් බෙදා ගන්නා සබැඳි වේ. එය ඔබගේ පරිශීලකයින්ට ලෝකයේ සිදුවෙමින් පවතින දේ සොයා ගැනීමට උදවු කළ හැක. ඔබ ප්රකාශකයා අනුමත කරන තුරු සබැඳි කිසිවක් ප්රසිද්ධියේ ප්රදර්ශනය නොවේ. ඔබට තනි සබැඳිවලට ඉඩ දීමට හෝ ප්රතික්ෂේප කිරීමටද හැකිය.
+ disallow: සබැඳියට ඉඩ නොදෙන්න
+ disallow_provider: ප්රකාශකයාට ඉඩ නොදෙන්න
+ shared_by_over_week:
+ one: පසුගිය සතිය පුරා එක් පුද්ගලයෙකු විසින් බෙදා ගන්නා ලදී
+ other: පසුගිය සතිය පුරා පුද්ගලයින් %{count} දෙනෙකු විසින් බෙදා ගන්නා ලදී
+ title: නැඟී එන සබැඳි
+ usage_comparison: ඊයේ %{yesterday} හා සසඳන විට අද %{today} වරක් බෙදා ගන්නා ලදී
+ only_allowed: අවසර දී ඇත
+ pending_review: පොරොත්තු සමාලෝචනය
+ preview_card_providers:
+ allowed: මෙම ප්රකාශකයාගේ සබැඳි නැඹුරු විය හැක
+ description_html: මේවා බොහෝ විට ඔබගේ සේවාදායකයේ සබැඳි බෙදා ගන්නා වසම් වේ. සබැඳියේ වසම අනුමත කරන්නේ නම් මිස සබැඳි ප්රසිද්ධියේ නැඹුරු නොවේ. ඔබගේ අනුමැතිය (හෝ ප්රතික්ෂේප කිරීම) උපවසම් දක්වා විහිදේ.
+ rejected: මෙම ප්රකාශකයාගේ සබැඳි නැඹුරු නොවනු ඇත
+ title: ප්රකාශකයන්
+ rejected: ප්රතික්ෂේප කළා
+ statuses:
+ allow: පළ කිරීමට ඉඩ දෙන්න
+ allow_account: කතුවරයාට ඉඩ දෙන්න
+ description_html: මේ වන විට ඔබේ සේවාදායකය දන්නා පෝස්ට් මේ වන විට බොහෝ බෙදාහරින සහ මේ මොහොතේ වැඩි කැමැත්තක් දක්වයි. එය ඔබගේ නව සහ නැවත පැමිණෙන පරිශීලකයින්ට අනුගමනය කිරීමට තවත් පුද්ගලයින් සොයා ගැනීමට උදවු කළ හැක. ඔබ කර්තෘ අනුමත කරන තෙක් පළ කිරීම් කිසිවක් ප්රසිද්ධියේ නොපෙන්වන අතර, කර්තෘ තම ගිණුම අන් අයට යෝජනා කිරීමට ඉඩ දෙයි. ඔබට තනි පළ කිරීම්වලට ඉඩ දීමට හෝ ප්රතික්ෂේප කිරීමටද හැකිය.
+ disallow: පළ කිරීමට ඉඩ නොදෙන්න
+ disallow_account: කතුවරයාට ඉඩ නොදෙන්න
+ not_discoverable: කර්තෘ සොයා ගත හැකි බව තෝරාගෙන නැත
+ shared_by:
+ one: එක් වරක් බෙදාගත් හෝ ප්රිය කරන ලදී
+ other: "%{friendly_count} වරක් බෙදාගෙන ප්රිය කරන ලදී"
+ title: ප්රවණතා පළ කිරීම්
+ tags:
+ current_score: වත්මන් ලකුණු %{score}
+ dashboard:
+ tag_accounts_measure: අද්විතීය භාවිතයන්
+ tag_languages_dimension: ඉහළම භාෂා
+ tag_servers_dimension: ඉහළම සේවාදායකයන්
+ tag_servers_measure: විවිධ සේවාදායකයන්
+ tag_uses_measure: සම්පූර්ණ භාවිතය
+ description_html: මේවා දැනට ඔබගේ සේවාදායකය දකින බොහෝ පළ කිරීම් වල දිස්වන හැෂ් ටැග් වේ. මේ මොහොතේ මිනිසුන් වැඩිපුරම කතා කරන්නේ කුමක් දැයි සොයා ගැනීමට එය ඔබගේ පරිශීලකයින්ට උදවු කළ හැක. ඔබ ඒවා අනුමත කරන තුරු හෑෂ් ටැග් ප්රසිද්ධියේ නොපෙන්වයි.
+ listable: යෝජනා කළ හැක
+ not_listable: යෝජනා නොකරනු ඇත
+ not_trendable: ප්රවණතා යටතේ දිස් නොවනු ඇත
+ not_usable: භාවිතා කළ නොහැක
+ peaked_on_and_decaying: "%{date}හි උච්චතම, දැන් දිරාපත් වෙමින් පවතී"
+ title: ප්රවණතා හැෂ් ටැග්
+ trendable: ප්රවණතා යටතේ පෙනී සිටිය හැක
+ trending_rank: 'නැඹුරු #%{rank}'
+ usable: භාවිතා කළ හැක
+ usage_comparison: ඊයේ %{yesterday} හා සසඳන විට අද %{today} වරක් භාවිතා වේ
+ used_by_over_week:
+ one: පසුගිය සතිය පුරා එක් පුද්ගලයෙකු විසින් භාවිතා කරන ලදී
+ other: පසුගිය සතිය පුරා පුද්ගලයින් %{count} දෙනෙකු විසින් භාවිතා කරන ලදී
+ title: ප්රවණතා
+ trending: ප්රවණතා
+ warning_presets:
+ add_new: අලුතින් එකතු කරන්න
+ delete: මකන්න
+ edit_preset: අනතුරු ඇඟවීමේ පෙර සැකසුම සංස්කරණය කරන්න
+ empty: ඔබ තවම කිසිදු අනතුරු ඇඟවීමේ පෙරසිටුවක් නිර්වචනය කර නැත.
+ title: අනතුරු ඇඟවීමේ පෙරසිටුවීම් කළමනාකරණය කරන්න
+ webhooks:
+ add_new: අන්ත ලක්ෂ්යය එක් කරන්න
+ delete: මකන්න
+ description_html: A webhook Mastodon හට තෝරාගත් සිදුවීම් පිළිබඳ තත්ය කාලීන දැනුම්දීම් ක් ඔබේම යෙදුමට තල්ලු කිරීමට හැකියාව ලබා දෙයි, එම නිසා ඔබේ යෙදුමට ස්වයංක්රීයව ප්රතික්රියා අවුලුවාලීමට හැකිය .
+ disable: අක්රිය කරන්න
+ disabled: ආබාධිතයි
+ edit: අන්ත ලක්ෂ්යය සංස්කරණය කරන්න
+ empty: ඔබට තවම වින්යාස කර ඇති කිසිදු webhook අන්ත ලක්ෂ්යයක් නොමැත.
+ enable: සබල කරන්න
+ enabled: ක්රියාකාරී
+ enabled_events:
+ one: 1 සබල කළ සිදුවීමක්
+ other: "%{count} සබල කළ සිදුවීම්"
+ events: සිදුවීම්
+ new: නව webhook
+ rotate_secret: රහස කරකවන්න
+ secret: අත්සන් කිරීමේ රහස
+ status: තත්වය
+ webhook: වෙබ්හුක්
+ admin_mailer:
+ new_appeal:
+ actions:
+ delete_statuses: ඔවුන්ගේ පළ කිරීම් මකා දැමීමට
+ disable: ඔවුන්ගේ ගිණුම කැටි කිරීමට
+ mark_statuses_as_sensitive: ඔවුන්ගේ තනතුරු සංවේදී ලෙස සලකුණු කිරීමට
+ none: අනතුරු ඇඟවීමක්
+ sensitive: ඔවුන්ගේ ගිණුම සංවේදී ලෙස සලකුණු කිරීමට
+ silence: ඔවුන්ගේ ගිණුම සීමා කිරීමට
+ suspend: ඔවුන්ගේ ගිණුම අත්හිටුවීමට
+ body: "%{target} යනු %{type}ක් වූ %{date}සිට %{action_taken_by} කින් මධ්යස්ථ තීරණයක් අභියාචනා කරයි. ඔවුන් මෙසේ ලිවීය."
+ next_steps: ඔබට මධ්යස්ථ තීරණය අවලංගු කිරීමට අභියාචනය අනුමත කළ හැකිය, නැතහොත් එය නොසලකා හරින්න.
+ subject: "%{username} යනු %{instance}හි මධ්යස්ථ තීරණයකට අභියාචනා කරයි"
+ new_pending_account:
+ body: නව ගිණුමේ විස්තර පහතින්. ඔබට මෙම යෙදුම අනුමත කිරීමට හෝ ප්රතික්ෂේප කිරීමට හැකිය.
+ subject: නව ගිණුම සමාලෝචනය සඳහා %{instance} (%{username})
+ new_report:
+ body: "%{reporter} %{target}වාර්තා කර ඇත"
+ body_remote: "%{domain} සිට යමෙක් %{target}වාර්තා කර ඇත"
+ subject: "%{instance} සඳහා නව වාර්තාව (#%{id})"
+ new_trends:
+ body: 'පහත අයිතම ප්රසිද්ධියේ ප්රදර්ශනය කිරීමට පෙර සමාලෝචනයක් අවශ්ය වේ:'
+ new_trending_links:
+ title: නැඟී එන සබැඳි
+ new_trending_statuses:
+ title: ප්රවණතා පළ කිරීම්
+ new_trending_tags:
+ no_approved_tags: දැනට අනුමත ප්රවණතා හැෂ් ටැග් නොමැත.
+ requirements: 'මෙම ඕනෑම අපේක්ෂකයෙකුට #%{rank} අනුමත ප්රවණතා හැෂ් ටැගය අභිබවා යා හැකිය, එය දැනට ලකුණු %{lowest_tag_score}ක් සමඟ #%{lowest_tag_name} වේ.'
+ title: ප්රවණතා හැෂ් ටැග්
+ subject: "%{instance}හි සමාලෝචනය සඳහා නව ප්රවණතා"
+ aliases:
+ add_new: අන්වර්ථ නාමයක් සාදන්න
+ created_msg: නව අන්වර්ථ නාමයක් සාර්ථකව නිර්මාණය කරන ලදී. ඔබට දැන් පැරණි ගිණුමෙන් මාරුවීම ආරම්භ කළ හැක.
+ deleted_msg: අන්වර්ථය සාර්ථකව ඉවත් කරන ලදී. එම ගිණුමෙන් මෙම ගිණුමට මාරුවීම තවදුරටත් කළ නොහැකි වනු ඇත.
+ empty: ඔබට අන්වර්ථ නාම නොමැත.
+ hint_html: ඔබට වෙනත් ගිණුමකින් මෙය වෙත මාරු වීමට අවශ්ය නම්, මෙහිදී ඔබට අන්වර්ථ නාමයක් සෑදිය හැක, එය පැරණි ගිණුමෙන් අනුගාමිකයින් මෙම ගිණුමට ගෙන යාමට පෙර අවශ්ය වේ. මෙම ක්රියාවම හානිකර නොවන සහ ආපසු හැරවිය හැකි වේ. ගිණුම් සංක්රමණය පැරණි ගිණුමෙන් ආරම්භ වේ .
+ remove: අන්වර්ථය විසන්ධි කරන්න
appearance:
advanced_web_interface: උසස් වියමන අතුරුමුහුණත
+ advanced_web_interface_hint: 'ඔබට ඔබේ සම්පූර්ණ තිරයේ පළල භාවිතා කිරීමට අවශ්ය නම්, උසස් වෙබ් අතුරු මුහුණත ඔබට අවශ්ය පරිදි එකම වේලාවක බොහෝ තොරතුරු බැලීමට විවිධ තීරු වින්යාස කිරීමට ඉඩ දෙයි: නිවස, දැනුම්දීම්, ෆෙඩරේටඩ් කාලරාමුව, ඕනෑම ලැයිස්තු සහ හැෂ් ටැග්.'
+ animations_and_accessibility: සජීවිකරණ සහ ප්රවේශ්යතාව
+ confirmation_dialogs: තහවුරු කිරීමේ සංවාද
+ discovery: සොයාගැනීම
localization:
+ body: Mastodon ස්වේච්ඡා සේවකයන් විසින් පරිවර්තනය කර ඇත.
guide_link: https://crowdin.com/project/mastodon
- sensitive_content: සංවේදී අන්තර්ගතයකි
+ guide_link_text: සෑම කෙනෙකුටම දායක විය හැකිය.
+ sensitive_content: සංවේදී අන්තර්ගතය
+ toot_layout: පෝස්ට් පිරිසැලසුම
application_mailer:
+ notification_preferences: ඊමේල් මනාප වෙනස් කරන්න
salutation: "%{name},"
+ settings: 'ඊමේල් මනාප වෙනස් කරන්න: %{link}'
+ view: 'දැක්ම:'
+ view_profile: පැතිකඩ බලන්න
+ view_status: පළ කිරීම බලන්න
+ applications:
+ created: යෙදුම සාර්ථකව නිර්මාණය කරන ලදී
+ destroyed: යෙදුම සාර්ථකව මකා ඇත
+ regenerate_token: ප්රවේශ ටෝකනය නැවත උත්පාදනය කරන්න
+ token_regenerated: ප්රවේශ ටෝකනය සාර්ථකව ප්රතිජනනය කරන ලදී
+ warning: මෙම දත්ත සමඟ ඉතා ප්රවේශම් වන්න. එය කිසි විටෙක කිසිවෙකු සමඟ බෙදා නොගන්න!
+ your_token: ඔබේ ප්රවේශ ටෝකනය
auth:
change_password: මුර පදය
+ delete_account: ගිණුම මකන්න
+ delete_account_html: ඔබට ඔබගේ ගිණුම මකා දැමීමට අවශ්ය නම්, ඔබට මෙතැනින් ඉදිරියට යා හැක . තහවුරු කිරීම සඳහා ඔබෙන් අසනු ඇත.
+ description:
+ prefix_invited_by_user: "@%{name} ඔබට Mastodon හි මෙම සේවාදායකයට සම්බන්ධ වීමට ආරාධනා කරයි!"
+ prefix_sign_up: අදම මාස්ටඩන් හි ලියාපදිංචි වන්න!
+ suffix: ගිණුමක් සමඟ, ඔබට ඕනෑම Mastodon සේවාදායකයකින් සහ තවත් බොහෝ දේ භාවිතා කරන්නන් සමඟ පුද්ගලයින් අනුගමනය කිරීමට, යාවත්කාලීන කිරීම් පළ කිරීමට සහ පණිවිඩ හුවමාරු කර ගැනීමට හැකි වනු ඇත!
+ didnt_get_confirmation: තහවුරු කිරීමේ උපදෙස් ලැබුණේ නැද්ද?
+ dont_have_your_security_key: ඔබගේ ආරක්ෂක යතුර නොමැතිද?
+ forgot_password: මුරපදය අමතක වුනාද?
+ invalid_reset_password_token: මුරපද යළි පිහිටුවීමේ ටෝකනය අවලංගු හෝ කල් ඉකුත් වී ඇත. කරුණාකර අලුත් එකක් ඉල්ලන්න.
+ link_to_otp: ඔබගේ දුරකථනයෙන් ද්වි සාධක කේතයක් හෝ ප්රතිසාධන කේතයක් ඇතුළු කරන්න
+ link_to_webauth: ඔබගේ ආරක්ෂක යතුරු උපාංගය භාවිතා කරන්න
+ log_in_with: සමඟ ලොග් වන්න
login: පිවිසෙන්න
logout: නික්මෙන්න
- or_log_in_with: හෝ සමඟ පිවිසෙන්න
+ migrate_account: වෙනත් ගිණුමකට යන්න
+ migrate_account_html: ඔබට මෙම ගිණුම වෙනත් එකකට හරවා යැවීමට අවශ්ය නම්, ඔබට එය මෙහි වින්යාසගත කළ හැක .
+ or_log_in_with: හෝ සමඟින් පිවිසෙන්න
+ register: ලියාපදිංචිය
+ registration_closed: "%{instance} නව සාමාජිකයින් පිළිගන්නේ නැත"
+ resend_confirmation: තහවුරු කිරීමේ උපදෙස් නැවත යවන්න
+ reset_password: මුරපදය නැවත සකසන්න
security: ආරක්ෂාව
+ set_new_password: නව මුරපදය සකසන්න
+ setup:
+ email_below_hint_html: පහත විද්යුත් තැපැල් ලිපිනය වැරදි නම්, ඔබට එය මෙතැනින් වෙනස් කර නව තහවුරු කිරීමේ විද්යුත් තැපෑලක් ලබා ගත හැක.
+ email_settings_hint_html: තහවුරු කිරීමේ විද්යුත් තැපෑල %{email}වෙත යවන ලදී. එම විද්යුත් තැපැල් ලිපිනය නිවැරදි නොවේ නම්, ඔබට එය ගිණුම් සැකසුම් තුළ වෙනස් කළ හැක.
+ title: සැලසුම
status:
account_status: ගිණුමේ තත්වය
+ confirming: විද්යුත් තැපෑල තහවුරු කිරීම සම්පූර්ණ කිරීම සඳහා රැඳී සිටිමින්.
+ functional: ඔබගේ ගිණුම සම්පුර්ණයෙන්ම ක්රියාත්මකයි.
+ pending: ඔබගේ අයදුම්පත අපගේ කාර්ය මණ්ඩලය විසින් සමාලෝචනය කිරීමට බලාපොරොත්තු වේ. මෙය යම් කාලයක් ගත විය හැක. ඔබගේ අයදුම්පත අනුමත වුවහොත් ඔබට විද්යුත් තැපෑලක් ලැබෙනු ඇත.
+ redirecting_to: එය දැනට %{acct}වෙත හරවා යවන බැවින් ඔබගේ ගිණුම අක්රියයි.
+ view_strikes: ඔබගේ ගිණුමට එරෙහිව පසුගිය වර්ජන බලන්න
+ too_fast: පෝරමය ඉතා වේගයෙන් ඉදිරිපත් කර ඇත, නැවත උත්සාහ කරන්න.
+ use_security_key: ආරක්ෂක යතුර භාවිතා කරන්න
authorize_follow:
+ already_following: ඔබ දැනටමත් මෙම ගිණුම අනුගමනය කරයි
+ already_requested: ඔබ දැනටමත් එම ගිණුමට අනුගමනය ඉල්ලීමක් යවා ඇත
+ error: අවාසනාවකට, දුරස්ථ ගිණුම සෙවීමේදී දෝෂයක් ඇති විය
+ follow: අනුගමනය
+ follow_request: 'ඔබ පහත ඉල්ලීමක් යවා ඇත:'
+ following: 'සාර්ථකත්වය! ඔබ දැන් පහත දැක්වේ:'
post_follow:
close: හෝ ඔබට මෙම කවුළුව වසාදැමිය හැකිය.
return: පරිශීලකගේ පැතිකඩ පෙන්වන්න
web: වියමන ට යන්න
+ title: "%{acct} අනුගමනය"
challenge:
confirm: ඉදිරියට
- invalid_password: අවලංගු නොවන මුරපදයකි
+ hint_html: "ඉඟිය: අපි ඉදිරි පැය සඳහා නැවත ඔබගේ මුරපදය ඔබෙන් නොඉල්ලමු."
+ invalid_password: නොවන මුරපදයකි
+ prompt: ඉදිරියට යාමට මුරපදය තහවුරු කරන්න
+ crypto:
+ errors:
+ invalid_key: වලංගු Ed25519 හෝ Curve25519 යතුරක් නොවේ
+ invalid_signature: වලංගු Ed25519 අත්සනක් නොවේ
date:
formats:
default: "%b %d, %Y"
with_month_name: "%B %d, %Y"
datetime:
distance_in_words:
+ about_x_hours: පැය %{count}
+ about_x_months: මාස %{count}
+ half_a_minute: මේ දැන්
+ less_than_x_minutes: මීටර් %{count}
less_than_x_seconds: මේ දැන්
+ x_minutes: මීටර් %{count}
+ x_months: මාස %{count}
+ x_seconds: "%{count}තත්"
+ deletes:
+ challenge_not_passed: ඔබ ඇතුළත් කළ තොරතුරු නිවැරදි නැත
+ confirm_password: ඔබගේ අනන්යතාවය තහවුරු කිරීමට ඔබගේ වත්මන් මුරපදය ඇතුලත් කරන්න
+ confirm_username: ක්රියා පටිපාටිය තහවුරු කිරීමට ඔබගේ පරිශීලක නාමය ඇතුලත් කරන්න
+ proceed: ගිණුම මකන්න
+ success_msg: ඔබගේ ගිණුම සාර්ථකව මකා ඇත
+ warning:
+ before: 'ඉදිරියට යාමට පෙර, කරුණාකර මෙම සටහන් හොඳින් කියවන්න:'
+ caches: වෙනත් සේවාදායකයන් විසින් හැඹිලිගත කර ඇති අන්තර්ගතය දිගටම පැවතිය හැක
+ data_removal: ඔබගේ පළ කිරීම් සහ අනෙකුත් දත්ත ස්ථිරවම ඉවත් කරනු ලැබේ
+ email_change_html: ඔබට ඔබගේ ගිණුම මකා කළ හැක
+ email_contact_html: එය තවමත් නොපැමිණියේ නම්, ඔබට උදව් සඳහා %{email} විද්යුත් තැපෑලෙන් යැවිය හැක
+ email_reconfirmation_html: ඔබට තහවුරු කිරීමේ විද්යුත් තැපෑල නොලැබුනේ නම්, ඔබට එය නැවත ඉල්ලා සිටිය හැක
+ irreversible: ඔබට ඔබගේ ගිණුම ප්රතිසාධනය කිරීමට හෝ නැවත සක්රිය කිරීමට නොහැකි වනු ඇත
+ more_details_html: වැඩි විස්තර සඳහා, පෞද්ගලිකත්ව ප්රතිපත්තිය බලන්න.
+ username_available: ඔබගේ පරිශීලක නාමය නැවත ලබා ගත හැකි වනු ඇත
+ username_unavailable: ඔබගේ පරිශීලක නාමය නොතිබෙනු ඇත
+ disputes:
+ strikes:
+ action_taken: පියවර ගත්තා
+ appeal: අභියාචනය
+ appeal_approved: මෙම වර්ජනය සාර්ථකව අභියාචනා කර ඇති අතර එය තවදුරටත් වලංගු නොවේ
+ appeal_rejected: අභියාචනය ප්රතික්ෂේප කර ඇත
+ appeal_submitted_at: අභියාචනය ඉදිරිපත් කරන ලදී
+ appealed_msg: ඔබගේ අභියාචනය ඉදිරිපත් කර ඇත. එය අනුමත වුවහොත්, ඔබට දැනුම් දෙනු ලැබේ.
+ appeals:
+ submit: අභියාචනය ඉදිරිපත් කරන්න
+ approve_appeal: අභියාචනය අනුමත කරන්න
+ associated_report: ආශ්රිත වාර්තාව
+ created_at: දිනැති
+ description_html: මේවා ඔබගේ ගිණුමට එරෙහිව ගන්නා ලද ක්රියා සහ %{instance}හි කාර්ය මණ්ඩලය විසින් ඔබට එවා ඇති අනතුරු ඇඟවීම් වේ.
+ recipient: වෙත යොමු කරන ලදී
+ reject_appeal: අභියාචනය ප්රතික්ෂේප කරන්න
+ status: 'පළ කිරීම #%{id}'
+ status_removed: පළ කිරීම දැනටමත් පද්ධතියෙන් ඉවත් කර ඇත
+ title: "%{action} සිට %{date}"
+ title_actions:
+ delete_statuses: පසු ඉවත් කිරීම
+ disable: ගිණුම කැටි කිරීම
+ mark_statuses_as_sensitive: තනතුරු සංවේදී ලෙස සලකුණු කිරීම
+ none: අවවාදයයි
+ sensitive: ගිණුම සංවේදී ලෙස සලකුණු කිරීම
+ silence: ගිණුම සීමා කිරීම
+ suspend: ගිණුම අත්හිටුවීම
+ your_appeal_approved: ඔබගේ අභියාචනය අනුමත කර ඇත
+ your_appeal_pending: ඔබ අභියාචනයක් ඉදිරිපත් කර ඇත
+ your_appeal_rejected: ඔබගේ අභියාචනය ප්රතික්ෂේප කර ඇත
+ domain_validator:
+ invalid_domain: වලංගු ඩොමේන් නාමයක් නොවේ
errors:
- '400': The request you submitted was invalid or malformed.
- '403': You don't have permission to view this page.
- '404': The page you are looking for isn't here.
- '406': This page is not available in the requested format.
- '410': The page you were looking for doesn't exist here anymore.
- '422':
- '429': Too many requests
- '500':
- '503': The page could not be served due to a temporary server failure.
+ '400': ඔබ ඉදිරිපත් කළ ඉල්ලීම අවලංගු හෝ විකෘති විය.
+ '403': ඔබට මෙම පිටුව බැලීමට අවසර නැත.
+ '404': ඔබ සොයන පිටුව මෙහි නොමැත.
+ '406': මෙම පිටුව ඉල්ලන ලද ආකෘතියෙන් නොමැත.
+ '410': ඔබ සොයන පිටුව තවදුරටත් මෙහි නොමැත.
+ '422':
+ content: ආරක්ෂක සත්යාපනය අසාර්ථක විය. ඔබ කුකීස් අවහිර කරනවාද?
+ title: ආරක්ෂක සත්යාපනය අසාර්ථක විය
+ '429': ඉල්ලීම් වැඩියි
+ '500':
+ content: අපට කණගාටුයි, නමුත් අපගේ පැත්තෙන් යමක් වැරදී ඇත.
+ title: මෙම පිටුව නිවැරදි නොවේ
+ '503': තාවකාලික සේවාදායකයේ අසාර්ථක වීමක් හේතුවෙන් පිටුව සේවය කිරීමට නොහැකි විය.
+ noscript_html: Mastodon වෙබ් යෙදුම භාවිතා කිරීමට, කරුණාකර JavaScript සක්රීය කරන්න. විකල්පයක් ලෙස, ඔබේ වේදිකාව සඳහා එකක් උත්සාහ කරන්න.
+ existing_username_validator:
+ not_found: එම පරිශීලක නාමය සහිත දේශීය පරිශීලකයෙකු සොයා ගැනීමට නොහැකි විය
+ not_found_multiple: "%{usernames}සොයා ගැනීමට නොහැකි විය"
exports:
archive_takeout:
date: දිනය
- download: ඔබගේ සංරක්ෂිතය බාගන්න
+ download: ඔබගේ සුරක්ෂිතභාවය බාගන්න
+ hint_html: ඔබට ඔබගේ පළ කිරීම් සහ උඩුගත කළ මාධ්ය හි සංරක්ෂිතයක් ඉල්ලා සිටිය හැක. නිර්යාත කළ දත්ත ActivityPub ආකෘතියෙන්, ඕනෑම අනුකූල මෘදුකාංගයකට කියවිය හැකිය. ඔබට දින 7කට වරක් ලේඛනාගාරයක් ඉල්ලා සිටිය හැක.
+ in_progress: ඔබගේ සංරක්ෂිතය සම්පාදනය කරමින්...
+ request: ඔබගේ සංරක්ෂිතය ඉල්ලන්න
size: ප්රමාණය
- bookmarks: පොත් යොමු
- lists: ලැයිස්තු
+ blocks: ඔබ අවහිර කරන්න
+ bookmarks: පොත් යොමු කරන්න
+ domain_blocks: වසම් අවහිර කිරීම්
+ lists: ලැයිස්තුව
+ mutes: ඔබ නිහඬ කරන්න
storage: මාධ්ය ගබඩාව
+ featured_tags:
+ add_new: අලුතින් එකතු කරන්න
+ errors:
+ limit: ඔබ දැනටමත් උපරිම හෑෂ් ටැග් ප්රමාණය විශේෂාංග කර ඇත
+ hint_html: "විශේෂාංගගත හැෂ් ටැග් මොනවාද? ඒවා ඔබේ පොදු පැතිකඩෙහි ප්රමුඛව ප්රදර්ශනය වන අතර එම හැෂ් ටැග් යටතේ ඔබේ පොදු පළ කිරීම් බ්රවුස් කිරීමට මිනිසුන්ට ඉඩ සලසයි. නිර්මාණාත්මක කෘති හෝ දිගු කාලීන ව්යාපෘති පිළිබඳ වාර්තාවක් තබා ගැනීම සඳහා ඔවුන් විශිෂ්ට මෙවලමක් වේ."
filters:
contexts:
account: පැතිකඩයන්
+ home: නිවස සහ ලැයිස්තු
notifications: දැනුම්දීම්
+ public: පොදු කාලරේඛා
thread: සංවාද
edit:
+ add_keyword: මූල පදය එක් කරන්න
+ keywords: මූල පද
title: පෙරහන සංස්කරණය
+ errors:
+ deprecated_api_multiple_keywords: මෙම පරාමිති පෙරහන් මූල පද එකකට වඩා අදාළ වන බැවින් මෙම යෙදුමෙන් වෙනස් කළ නොහැක. වඩාත් මෑත යෙදුමක් හෝ වෙබ් අතුරු මුහුණතක් භාවිතා කරන්න.
+ invalid_context: කිසිවක් හෝ වලංගු නොවන සන්දර්භයක් සපයා නැත
index:
+ contexts: "%{contexts}හි පෙරහන්"
+ delete: මකන්න
+ empty: ඔබට පෙරහන් නොමැත.
+ expires_in: "%{distance}කින් කල් ඉකුත් වේ"
+ expires_on: "%{date}දින කල් ඉකුත් වේ"
+ keywords:
+ one: "%{count} මූල පදය"
+ other: "%{count} මූල පද"
title: පෙරහන්
new:
+ save: නව පෙරහන සුරකින්න
title: නව පෙරහනක් එකතු කරන්න
footer:
- developers: සංවර්ධකයින්
- more: තව…
- resources: සම්පත්
+ trending_now: දැන් ප්රවණතාවය
generic:
all: සියල්ල
- copy: පිටපත්
+ changes_saved_msg: වෙනස්කම් සාර්ථකව සුරකින ලදී!
+ copy: පිටපතක්
+ delete: මකන්න
+ none: කිසිවක් නැත
+ order_by: විසින් ඇණවුම් කරන්න
save_changes: වෙනස්කම් සුරකින්න
+ today: අද
+ validation_errors:
+ one: යමක් තවමත් හරි නැත! කරුණාකර පහත දෝෂය සමාලෝචනය කරන්න
+ other: යමක් තවමත් හරි නැත! කරුණාකර පහත දෝෂ %{count} ක් සමාලෝචනය කරන්න
+ html_validator:
+ invalid_markup: 'වලංගු නොවන HTML සලකුණු අඩංගු වේ: %{error}'
imports:
+ errors:
+ over_rows_processing_limit: පේළි %{count} කට වඩා අඩංගු වේ
+ modes:
+ merge: ඒකාබද්ධ කරන්න
+ merge_long: පවතින වාර්තා තබා නව ඒවා එකතු කරන්න
+ overwrite: උඩින් ලියන්න
+ overwrite_long: වත්මන් වාර්තා නව ඒවා සමඟ ප්රතිස්ථාපනය කරන්න
+ preface: ඔබ අනුගමන කරන හෝ අවහිර කරන පුද්ගලයින්ගේ ලැයිස්තුවක් වැනි වෙනත් සේවාදායකයකින් ඔබ නිර්යාත කර ඇති දත්ත ඔබට ආයාත කළ හැක.
+ success: ඔබගේ දත්ත සාර්ථකව උඩුගත කර ඇති අතර නියමිත වේලාවට සැකසෙනු ඇත
types:
+ blocking: අවහිර කිරීමේ ලැයිස්තුව
bookmarks: පොත් යොමු
+ domain_blocking: වසම් අවහිර කිරීමේ ලැයිස්තුව
+ following: පහත ලැයිස්තුව
+ muting: නිහඬ කිරීමේ ලැයිස්තුව
upload: උඩුගත කරන්න
invites:
+ delete: අක්රිය කරන්න
+ expired: කල් ඉකුත් වී ඇත
expires_in:
'1800': විනාඩි 30
- '21600': හෝරා 6
- '3600': හෝරා 1
- '43200': හෝරා 12
+ '21600': පැය 6
+ '3600': පැය 1
+ '43200': පැය 12
'604800': සති 1
'86400': දවස් 1
+ expires_in_prompt: කවදාවත් නැහැ
+ generate: ආරාධනා සබැඳිය උත්පාදනය කරන්න
+ invited_by: 'ඔබට ආරාධනා කළේ:'
+ max_uses:
+ one: 1 භාවිතය
+ other: "%{count} භාවිතා කරයි"
+ max_uses_prompt: සීමාවක් නැත
+ prompt: මෙම සේවාදායකයට ප්රවේශය ලබා දීමට අන් අය සමඟ සබැඳි ජනනය කර බෙදා ගන්න
+ table:
+ expires_at: කල් ඉකුත් වේ
+ uses: භාවිතා කරයි
title: මිනිසුන්ට ආරාධනා කරන්න
+ lists:
+ errors:
+ limit: ඔබ උපරිම ලැයිස්තු ප්රමාණයට ළඟා වී ඇත
login_activities:
authentication_methods:
- password: මුර පදය
+ otp: ද්වි-සාධක සත්යාපන යෙදුම
+ password: මුරපදය
+ sign_in_token: ඊමේල් ආරක්ෂක කේතය
+ webauthn: ආරක්ෂක යතුරු
+ description_html: ඔබ හඳුනා නොගත් ක්රියාකාරකම් ඔබ දුටුවහොත්, ඔබේ මුරපදය වෙනස් කිරීම සහ ද්වි-සාධක සත්යාපනය සක්රීය කිරීම සලකා බලන්න.
+ empty: සත්යාපන ඉතිහාසයක් නොමැත
+ failed_sign_in_html: "%{ip} (%{browser}) සිට %{method} සමඟ අසාර්ථක පුරනය වීමේ උත්සාහය"
+ successful_sign_in_html: "%{ip} (%{browser}) සිට %{method} සමඟ සාර්ථක පුරනය වීම"
+ title: සත්යාපන ඉතිහාසය
+ media_attachments:
+ validations:
+ images_and_video: දැනටමත් පින්තූර අඩංගු පළ කිරීමකට වීඩියෝවක් ඇමිණිය නොහැක
+ not_ready: සැකසීම අවසන් නොකළ ගොනු ඇමිණිය නොහැක. මොහොතකින් නැවත උත්සාහ කරන්න!
+ too_many: ගොනු 4කට වඩා ඇමිණිය නොහැක
+ migrations:
+ acct: වෙත ගෙන යන ලදී
+ cancel: යළි-යොමුවීම් අවලංගු කරන්න
+ cancel_explanation: යළි-යොමුවීම් අවලංගු කිරීම ඔබගේ ජංගම ගිණුම නැවත සක්රිය කරනු ඇත, නමුත් එම ගිණුමට ගෙන ගිය අනුගාමිකයින් ආපසු ගෙන එන්නේ නැත.
+ cancelled_msg: යළි-යොමුවීම සාර්ථකව අවලංගු කරන ලදී.
+ errors:
+ already_moved: ඔබ දැනටමත් මාරු කර ඇති ගිණුමයි
+ missing_also_known_as: මෙම ගිණුමේ අන්වර්ථ නාමයක් නොවේ
+ move_to_self: ජංගම ගිණුම විය නොහැක
+ not_found: සොයා ගැනීමට නොහැකි විය
+ on_cooldown: ඔබ සිසිලනය මත සිටී
+ followers_count: චලනය වන අවස්ථාවේ අනුගාමිකයන්
+ incoming_migrations: වෙනත් ගිණුමකින් මාරු වීම
+ incoming_migrations_html: වෙනත් ගිණුමකින් මෙම ගිණුමට මාරු වීමට, පළමුව ඔබ අන්වර්ථ ගිණුමක් සෑදිය යුතුය.
+ moved_msg: ඔබගේ ගිණුම දැන් %{acct} වෙත හරවා යවනු ලබන අතර ඔබගේ අනුගාමිකයින් එහා මෙහා ගෙන යමින් පවතී.
+ not_redirecting: ඔබගේ ගිණුම දැනට වෙනත් කිසිදු ගිණුමකට හරවා යවන්නේ නැත.
+ on_cooldown: ඔබ මෑතකදී ඔබගේ ගිණුම සංක්රමණය කර ඇත. මෙම කාර්යය දින %{count} කින් නැවත ලබා ගත හැකි වනු ඇත.
+ past_migrations: අතීත සංක්රමණ
+ proceed_with_move: අනුගාමිකයන් මාරු කරන්න
+ redirected_msg: ඔබගේ ගිණුම දැන් %{acct}වෙත හරවා යවනු ලැබේ.
+ redirecting_to: ඔබගේ ගිණුම %{acct}වෙත හරවා යවනු ලැබේ.
+ set_redirect: යළි-යොමුවීම් සකසන්න
+ warning:
+ backreference_required: නව ගිණුම ප්රථමයෙන් මෙය ආපසු යොමු කිරීමට වින්යාස කළ යුතුය
+ before: 'ඉදිරියට යාමට පෙර, කරුණාකර මෙම සටහන් හොඳින් කියවන්න:'
+ cooldown: මාරු වීමෙන් පසු ඔබට නැවත ගමන් කිරීමට නොහැකි වනු ඇති පොරොත්තු කාල සීමාවක් ඇත
+ disabled_account: ඔබගේ ජංගම ගිණුම පසුව සම්පූර්ණයෙන්ම භාවිතා කළ නොහැක. කෙසේ වෙතත්, ඔබට දත්ත අපනයනයට මෙන්ම නැවත සක්රිය කිරීමට ප්රවේශය ඇත.
+ followers: මෙම ක්රියාව සියළුම අනුගාමිකයින් ජංගම ගිණුමේ සිට නව ගිණුමට ගෙන යනු ඇත
+ only_redirect_html: විකල්පයක් ලෙස, ඔබට ඔබගේ පැතිකඩ හි යළි-යොමුවීමක් පමණක් තැබිය හැකිය.
+ other_data: වෙනත් දත්ත කිසිවක් ස්වයංක්රීයව ගෙන නොයනු ඇත
+ redirect: ඔබගේ ජංගම ගිණුමේ පැතිකඩ යළි-යොමු කිරීමේ දැන්වීමක් සමඟ යාවත්කාලීන කෙරෙන අතර සෙවුම් වලින් බැහැර කරනු ලැබේ
+ moderation:
+ title: මධ්යස්ථභාවය
+ move_handler:
+ carry_blocks_over_text: මෙම පරිශීලකයා ඔබ අවහිර කර තිබූ %{acct}සිට මාරු විය.
+ carry_mutes_over_text: මෙම පරිශීලකයා ඔබ නිශ්ශබ්ද කර තිබූ %{acct}වෙතින් මාරු විය.
+ copy_account_note_text: 'මෙම පරිශීලකයා %{acct}සිට මාරු විය, මෙන්න ඔවුන් ගැන ඔබේ පෙර සටහන්:'
notification_mailer:
+ admin:
+ report:
+ subject: "%{name} වාර්තාවක් ඉදිරිපත් කළේය"
+ sign_up:
+ subject: "%{name} අත්සන් කර ඇත"
+ favourite:
+ body: 'ඔබේ පළ කිරීම %{name}විසින් ප්රිය කරන ලදී:'
+ subject: "%{name} ඔබගේ පළ කිරීම ප්රිය කරන ලදී"
+ title: නව ප්රියතම
+ follow:
+ body: "%{name} දැන් ඔබව අනුගමනය කරයි!"
+ subject: "%{name} දැන් ඔබව අනුගමනය කරයි"
+ title: නව අනුගාමිකයෙක්
+ follow_request:
+ action: අනුගමනය කරන ඉල්ලීම් කළමනාකරණය කරන්න
+ body: "%{name} ඔබව අනුගමනය කිරීමට ඉල්ලා ඇත"
+ subject: 'පොරොත්තු අනුගාමිකයා: %{name}'
+ title: නව අනුගමනය ඉල්ලීම
mention:
action: පිළිතුර
+ body: 'ඔබව මෙහි %{name} කින් සඳහන් කර ඇත:'
+ subject: ඔබව %{name}මගින් සඳහන් කර ඇත
title: නව සඳැහුම
+ poll:
+ subject: "%{name} න් මත විමසුමක් අවසන් විය"
+ reblog:
+ body: 'ඔබේ පළ කිරීම %{name}කින් වැඩි කරන ලදී:'
+ subject: "%{name} ඔබේ පළ කිරීම ඉහළ නැංවීය"
+ title: නව තල්ලුවක්
+ status:
+ subject: "%{name} දැන් පළ කළා"
+ update:
+ subject: "%{name} පළ කිරීමක් සංස්කරණය කළා"
notifications:
+ email_events: ඊමේල් දැනුම්දීම් සඳහා සිදුවීම්
+ email_events_hint: 'ඔබට දැනුම්දීම් ලැබීමට අවශ්ය සිදුවීම් තෝරන්න:'
other_settings: වෙනත් දැනුම්දීම් සැකසුම්
number:
human:
decimal_units:
format: "%n%u"
+ units:
+ billion: බී
+ million: ද.ල.
+ quadrillion: ප්රශ්නය
+ thousand: ද.
+ trillion: ටී
otp_authentication:
+ code_hint: තහවුරු කිරීමට ඔබගේ සත්යාපන යෙදුම මගින් ජනනය කරන ලද කේතය ඇතුළු කරන්න
+ description_html: ඔබ සත්යාපන යෙදුමක් භාවිතයෙන් ද්වි-සාධක සත්යාපනය සක්රීය කරන්නේ නම්, ලොගින් වීමේදී ඔබට ඔබගේ දුරකථනය සන්තකයේ තබා ගැනීමට අවශ්ය වනු ඇත, එය ඔබට ඇතුළු වීමට ටෝකන ජනනය කරයි.
enable: සබල කරන්න
+ instructions_html: "මෙම QR කේතය ඔබගේ දුරකථනයේ Google Authenticator හෝ එවැනිම TOTP යෙදුමකට පරිලෝකනය කරන්න . මෙතැන් සිට, එම යෙදුම ඔබට ලොග් වීමේදී ඇතුළත් කළ යුතු ටෝකන ජනනය කරයි."
+ manual_instructions: 'ඔබට QR කේතය පරිලෝකනය කළ නොහැකි නම් සහ එය අතින් ඇතුල් කිරීමට අවශ්ය නම්, මෙන්න සරල පෙළ රහස:'
+ setup: සැලසුම
+ wrong_code: ඇතුළත් කළ කේතය අවලංගුයි! සේවාදායක වේලාව සහ උපාංග වේලාව නිවැරදිද?
pagination:
+ newer: අලුත්
next: ඊළඟ
+ older: වැඩිහිටි
+ prev: පෙර
truncate: "…"
+ polls:
+ errors:
+ already_voted: ඔබ දැනටමත් මෙම මත විමසුමට ඡන්දය දී ඇත
+ duplicate_options: අනුපිටපත් අයිතම අඩංගු වේ
+ duration_too_long: අනාගතයට බොහෝ දුරයි
+ duration_too_short: ඉතා ඉක්මනින් වේ
+ expired: මත විමසුම දැනටමත් අවසන් වී ඇත
+ invalid_choice: තෝරාගත් ඡන්ද විකල්පය නොපවතී
+ over_character_limit: එක් එක් අක්ෂර %{max} ට වඩා දිගු විය නොහැක
+ too_few_options: එක් අයිතමයකට වඩා තිබිය යුතුය
+ too_many_options: අයිතම %{max} කට වඩා අඩංගු විය නොහැක
+ preferences:
+ other: වෙනත්
+ posting_defaults: පෙරනිමි පළ කිරීම
+ public_timelines: පොදු කාලරේඛා
+ reactions:
+ errors:
+ limit_reached: විවිධ ප්රතික්රියා වල සීමාව ළඟා විය
+ unrecognized_emoji: පිළිගත් ඉමොජියක් නොවේ
relationships:
activity: ගිණුමේ ක්රියාකාරකම්
- status: ගිණුමේ තත්වය
+ dormant: නිදිමතයි
+ follow_selected_followers: තෝරාගත් අනුගාමිකයින් අනුගමනය කරන්න
+ followers: අනුගාමිකයින්
+ following: අනුගමනය
+ invited: ආරාධනා කළා
+ last_active: අවසන් වරට ක්රියාකාරී
+ most_recent: මෑතකාලීන
+ moved: මාරු කළා
+ mutual: අන්යෝන්ය
+ primary: ප්රාථමික
+ relationship: සම්බන්ධතාවය
+ remove_selected_domains: තෝරාගත් වසම් වලින් සියලුම අනුගාමිකයින් ඉවත් කරන්න
+ remove_selected_followers: තෝරාගත් අනුගාමිකයින් ඉවත් කරන්න
+ remove_selected_follows: තෝරාගත් පරිශීලකයින් අනුගමනය නොකරන්න
+ status: ගිණුමේ තත්වය
+ remote_follow:
+ missing_resource: ඔබගේ ගිණුම සඳහා අවශ්ය යළි-යොමුවීම් URL එක සොයා ගැනීමට නොහැකි විය
+ reports:
+ errors:
+ invalid_rules: වලංගු නීති සඳහන් නොකරයි
+ rss:
+ content_warning: 'අන්තර්ගත අනතුරු ඇඟවීම:'
+ descriptions:
+ account: "@%{acct}සිට පොදු පළ කිරීම්"
+ tag: "#%{hashtag}ටැග් කර ඇති පොදු පළ කිරීම්"
+ scheduled_statuses:
+ over_daily_limit: ඔබ අද දිනට නියමිත පළ කිරීම් %{limit} සීමාව ඉක්මවා ඇත
+ over_total_limit: ඔබ නියමිත පළ කිරීම් %{limit} සීමාව ඉක්මවා ඇත
+ too_soon: නියමිත දිනය අනාගතයේ විය යුතුය
sessions:
+ activity: අවසාන ක්රියාකාරකම
browser: අතිරික්සුව
browsers:
alipay: අලිපේ
@@ -334,12 +1202,16 @@ si:
generic: නොදන්නා අතිරික්සුවකි
ie: ඉන්ටර්නෙට් එක්ස්ප්ලෝරර්
micro_messenger: මයික්රොමැසෙන්ජර්
+ nokia: Nokia S40 Ovi බ්රව්සරය
opera: ඔපෙරා
otter: ඔටර්
qq: කියුකියු අතිරික්සුව
safari: සෆාරි
uc_browser: යූසී අතිරික්සුව
weibo: වෙයිබො
+ current_session: වත්මන් සැසිය
+ description: "%{browser} මත %{platform}"
+ explanation: මේවා දැනට ඔබගේ Mastodon ගිණුමට ලොග් වී ඇති වෙබ් බ්රව්සර් වේ.
ip: අ.ජා. කෙ. (IP)
platforms:
adobe_air: ඇඩෝබි එයාර්
@@ -350,25 +1222,233 @@ si:
ios: අයිඕඑස්
linux: ලිනක්ස්
mac: මැක්ඕඑස්
+ other: නොදන්නා වේදිකාව
windows: වින්ඩෝස්
windows_mobile: වින්ඩෝස් මොබයිල්
windows_phone: වින්ඩෝස් පෝන්
+ revoke: අවලංගු කරන්න
+ revoke_success: සැසිය සාර්ථකව අවලංගු කරන ලදී
+ title: සැසිවාර
+ view_authentication_history: ඔබගේ ගිණුමේ සත්යාපන ඉතිහාසය බලන්න
settings:
account: ගිණුම
account_settings: ගිණුමේ සැකසුම්
+ aliases: ගිණුම් අන්වර්ථ නාමයන්
+ appearance: පෙනුම
+ authorized_apps: අවසර ලත් යෙදුම්
+ back: Mastodon වෙත නැවත යන්න
+ delete: ගිණුම මකා දැමීම
+ development: සංවර්ධනය
edit_profile: පැතිකඩ සංස්කරණය
- export: දත්ත නිර්යාත
- import: ආයාත කරන්න
- import_and_export: ආයාත සහ නිර්යාත
+ export: දත්ත නිර්යාතය
+ featured_tags: විශේෂාංගගත හැෂ් ටැග්
+ import: ආයාතය
+ import_and_export: ආයාත හා නිර්යාත
+ migrate: ගිණුම් සංක්රමණය
notifications: දැනුම්දීම්
+ preferences: මනාප
profile: පැතිකඩ
+ relationships: අනුගාමිකයින් සහ අනුගාමිකයින්
+ statuses_cleanup: ස්වයංක්රීය පළ කිරීම් මකාදැමීම
+ strikes: මධ්යස්ථ වැඩ වර්ජන
+ two_factor_authentication: ද්වි සාධක Aut
+ webauthn_authentication: ආරක්ෂක යතුරු
statuses:
+ attached:
+ audio:
+ one: "%{count} ශ්රව්ය"
+ other: "%{count} ශ්රව්ය"
+ description: 'අමුණා ඇත: %{attached}'
+ image:
+ one: "%{count} රූපය"
+ other: පින්තූර %{count}
+ video:
+ one: "%{count} වීඩියෝ"
+ other: වීඩියෝ %{count}
+ boosted_from_html: "%{acct_link}සිට වැඩි කරන ලදී"
+ content_warning: 'අන්තර්ගත අනතුරු ඇඟවීම: %{warning}'
+ default_language: අතුරු මුහුණත් භාෂාවට සමානයි
+ disallowed_hashtags:
+ one: 'අනුමත නොකළ හැෂ් ටැගයක් අඩංගු විය: %{tags}'
+ other: 'අනුමත නොකළ හැෂ් ටැග් අඩංගු විය: %{tags}'
+ edited_at_html: සංස්කරණය %{date}
+ errors:
+ in_reply_not_found: ඔබ පිළිතුරු දීමට උත්සාහ කරන පළ කිරීම පවතින බවක් නොපෙනේ.
+ open_in_web: වෙබයේ විවෘත කරන්න
+ over_character_limit: අක්ෂර සීමාව %{max} ඉක්මවා ඇත
+ pin_errors:
+ direct: සඳහන් කළ පරිශීලකයින්ට පමණක් පෙනෙන පළ කිරීම් ඇමිණිය නොහැක
+ limit: ඔබ දැනටමත් උපරිම පළ කිරීම් සංඛ්යාව අමුණා ඇත
+ ownership: වෙනත් කෙනෙකුගේ පළ කිරීමක් ඇමිණිය නොහැක
+ reblog: බූස්ට් එකක් ඇලවිය නොහැක
+ poll:
+ total_people:
+ one: "%{count} පුද්ගලයෙක්"
+ other: පුද්ගලයන් %{count}
+ total_votes:
+ one: "%{count} ඡන්ද"
+ other: ඡන්ද %{count} යි
+ vote: ඡන්දය දෙන්න
show_more: තව පෙන්වන්න
+ show_newer: අලුත්ම පෙන්වන්න
+ show_older: පැරණි පෙන්වන්න
+ show_thread: නූල් පෙන්වන්න
+ sign_in_to_participate: සංවාදයට සහභාගී වීමට පුරන්න
title: '%{name}: "%{quote}"'
visibilities:
+ direct: සෘජු
+ private: අනුගාමිකයින්-පමණි
+ private_long: අනුගාමිකයින්ට පමණක් පෙන්වන්න
public: ප්රසිද්ධ
+ public_long: හැමෝටම පේනවා
+ unlisted: ලැයිස්තුගත නොකළ
+ unlisted_long: සෑම කෙනෙකුටම දැකිය හැක, නමුත් පොදු කාලරාමුවෙහි ලැයිස්තුගත කර නොමැත
+ statuses_cleanup:
+ enabled: පැරණි පළ කිරීම් ස්වයංක්රීයව මකන්න
+ enabled_hint: ඔබේ පළ කිරීම් පහත ව්යතිරේකවලින් එකකට ගැලපෙන්නේ නම් මිස, ඒවා නිශ්චිත වයස් සීමාවකට ළඟා වූ පසු ස්වයංක්රීයව මකයි
+ exceptions: ව්යතිරේක
+ explanation: පළ කිරීම් මකා දැමීම මිල අධික මෙහෙයුමක් වන බැවින්, සේවාදායකය වෙනත් ආකාරයකින් කාර්යබහුල නොවන විට කාලයත් සමඟ මෙය සෙමින් සිදු කෙරේ. මෙම හේතුව නිසා, ඔබේ පළ කිරීම් වයස් සීමාවට ළඟා වූ පසු ටික වේලාවකට පසුව මකා දැමිය හැක.
+ ignore_favs: ප්රියතමයන් නොසලකා හරින්න
+ ignore_reblogs: වැඩි කිරීම් නොසලකා හරින්න
+ interaction_exceptions: අන්තර්ක්රියා මත පදනම් වූ ව්යතිරේක
+ interaction_exceptions_explanation: පළ කිරීම් වරක් ඒවා ඉක්මවා ගිය පසු ප්රියතම හෝ බූස්ට් සීමාවට පහළින් ගියහොත් ඒවා මැකීමට සහතිකයක් නොමැති බව සලකන්න.
+ keep_direct: සෘජු පණිවිඩ තබා ගන්න
+ keep_direct_hint: ඔබගේ සෘජු පණිවිඩ කිසිවක් මකන්නේ නැත
+ keep_media: මාධ්ය ඇමුණුම් සමඟ පළ කිරීම් තබා ගන්න
+ keep_media_hint: මාධ්ය ඇමුණුම් ඇති ඔබේ පළ කිරීම් කිසිවක් මකන්නේ නැත
+ keep_pinned: ඇමිණූ ලිපි තබාගන්න
+ keep_pinned_hint: ඔබ ඇමිණූ ලිපි කිසිවක් නොමැකෙයි
+ keep_polls: ඡන්ද තබා ගන්න
+ keep_polls_hint: ඔබගේ ඡන්ද විමසීම් කිසිවක් මකන්නේ නැත
+ keep_self_bookmark: ඔබ පිටු සලකුණු කළ පළ කිරීම් තබා ගන්න
+ keep_self_bookmark_hint: ඔබ ඔබේම පළ කිරීම් පිටු සලකුණු කර ඇත්නම් ඒවා මකා නොදමන්න
+ keep_self_fav: ඔබ කැමති පළ කිරීම් තබා ගන්න
+ keep_self_fav_hint: ඔබ ඒවාට කැමති නම් ඔබේම පළ කිරීම් මකා නොදමන්න
+ min_age:
+ '1209600': සති 2 යි
+ '15778476': මාස 6 යි
+ '2629746': මාස 1 යි
+ '31556952': වසර 1 යි
+ '5259492': මාස 2 ක්
+ '604800': 1 සතිය
+ '63113904': අවුරුදු 2 ක්
+ '7889238': මාස 3 යි
+ min_age_label: වයස් සීමාව
+ min_favs: අඩුම තරමින් පෝස්ට් ප්රිය කරන ලෙස තබා ගන්න
+ min_favs_hint: අවම වශයෙන් මෙම ප්රියතම ප්රමාණය ලබා ඇති ඔබේ පළ කිරීම් කිසිවක් මකන්නේ නැත. ඔවුන්ගේ ප්රියතමයන් ගණන නොතකා පළ කිරීම් මැකීමට හිස්ව තබන්න
+ min_reblogs: අඩුම තරමේ පෝස්ට් බූස්ට් කරගෙන තියාගන්න
+ min_reblogs_hint: අඩුම තරමින් මෙම වාර ගණන වැඩි කර ඇති ඔබගේ පළ කිරීම් කිසිවක් මකා නොදමන්න. බූස්ට් ගණන නොතකා පළ කිරීම් මැකීමට හිස්ව තබන්න
stream_entries:
+ pinned: ඇමිණූ ලිපිය
+ reblogged: ඉහල නැංවීය
sensitive_content: සංවේදී අන්තර්ගතයකි
+ strikes:
+ errors:
+ too_late: මෙම වර්ජනයට අභියාචනයක් ඉදිරිපත් කිරීමට ප්රමාද වැඩියි
+ tags:
+ does_not_match_previous_name: පෙර නමට නොගැලපේ
+ themes:
+ contrast: Mastodon (ඉහළ වෙනස)
+ default: මැස්ටෝඩන් (අඳුරු)
+ mastodon-light: මැස්ටෝඩන් (ආලෝකය)
two_factor_authentication:
+ add: එකතු කරන්න
+ disable: 2FA අබල කරන්න
+ disabled_success: ද්වි-සාධක සත්යාපනය සාර්ථකව අබල කර ඇත
edit: සංස්කරණය
+ enabled: ද්වි-සාධක සත්යාපනය සක්රීය කර ඇත
+ enabled_success: ද්වි-සාධක සත්යාපනය සාර්ථකව සබල කර ඇත
+ generate_recovery_codes: ප්රතිසාධන කේත ජනනය කරන්න
+ lost_recovery_codes: ඔබගේ දුරකථනය නැති වුවහොත් ඔබගේ ගිණුමට ප්රවේශය නැවත ලබා ගැනීමට ප්රතිසාධන කේත ඔබට ඉඩ සලසයි. ඔබට ඔබේ ප්රතිසාධන කේත නැති වී ඇත්නම්, ඔබට ඒවා මෙහි නැවත උත්පාදනය කළ හැක. ඔබගේ පැරණි ප්රතිසාධන කේත අවලංගු වනු ඇත.
+ methods: ද්වි සාධක ක්රම
+ otp: Authenticator යෙදුම
+ recovery_codes: උපස්ථ ප්රතිසාධන කේත
+ recovery_codes_regenerated: ප්රතිසාධන කේත සාර්ථකව ප්රතිජනනය කරන ලදී
+ recovery_instructions_html: ඔබට කවදා හෝ ඔබගේ දුරකථනයට ප්රවේශය අහිමි වුවහොත්, ඔබගේ ගිණුමට ප්රවේශය නැවත ලබා ගැනීමට පහත ප්රතිසාධන කේත වලින් එකක් භාවිතා කළ හැක. ප්රතිසාධන කේත ආරක්ෂිතව තබා ගන්න . උදාහරණයක් ලෙස, ඔබට ඒවා මුද්රණය කර වෙනත් වැදගත් ලේඛන සමඟ ගබඩා කළ හැකිය.
webauthn: ආරක්ෂණ යතුරු
+ user_mailer:
+ appeal_approved:
+ action: ඔබගේ ගිණුමට යන්න
+ explanation: ඔබ %{appeal_date} දින ඉදිරිපත් කළ %{strike_date} හි ඔබේ ගිණුමට එරෙහි වර්ජනයේ අභියාචනය අනුමත කර ඇත. ඔබගේ ගිණුම නැවත වරක් හොඳ තත්වයක පවතී.
+ subject: "%{date} සිට ඔබගේ අභියාචනය අනුමත කර ඇත"
+ title: අභියාචනය අනුමත කර ඇත
+ appeal_rejected:
+ explanation: "%{strike_date} දින ඔබේ ගිණුමට එරෙහිව ඔබ %{appeal_date} දින ඉදිරිපත් කළ වර්ජනයේ අභියාචනය ප්රතික්ෂේප කර ඇත."
+ subject: "%{date} සිට ඔබගේ අභියාචනය ප්රතික්ෂේප කර ඇත"
+ title: අභියාචනය ප්රතික්ෂේප විය
+ backup_ready:
+ explanation: ඔබ ඔබේ Mastodon ගිණුමේ සම්පූර්ණ උපස්ථයක් ඉල්ලා ඇත. එය දැන් බාගත කිරීම සඳහා සූදානම්!
+ subject: ඔබගේ සංරක්ෂිතය බාගැනීමට සූදානම්ය
+ title: සංරක්ෂිත රැගෙන යාම
+ suspicious_sign_in:
+ change_password: ඔබගේ මුරපදය වෙනස් කරන්න
+ details: 'පුරනය වීමේ විස්තර මෙන්න:'
+ explanation: අපි නව IP ලිපිනයකින් ඔබගේ ගිණුමට පුරනය වීමක් අනාවරණය කරගෙන ඇත.
+ further_actions_html: මෙය ඔබ නොවේ නම්, අපි ඔබට වහාම %{action} ලෙස නිර්දේශ කර ඔබගේ ගිණුම සුරක්ෂිතව තබා ගැනීමට සාධක දෙකක සත්යාපනය සබල කරන්න.
+ subject: ඔබගේ ගිණුම නව IP ලිපිනයකින් ප්රවේශ වී ඇත
+ title: නව පුරනය වීමක්
+ warning:
+ appeal: අභියාචනයක් ඉදිරිපත් කරන්න
+ appeal_description: මෙය දෝෂයක් බව ඔබ විශ්වාස කරන්නේ නම්, ඔබට %{instance}හි කාර්ය මණ්ඩලයට අභියාචනයක් ඉදිරිපත් කළ හැක.
+ categories:
+ spam: ආයාචිත තැපැල්
+ violation: අන්තර්ගතය පහත ප්රජා මාර්ගෝපදේශ උල්ලංඝනය කරයි
+ explanation:
+ delete_statuses: ඔබගේ සමහර පළ කිරීම් ප්රජා මාර්ගෝපදේශ එකක් හෝ කිහිපයක් උල්ලංඝනය කරන බව සොයා ගෙන ඇති අතර පසුව %{instance}හි උපපරිපාලකයින් විසින් ඉවත් කර ඇත.
+ disable: ඔබට තවදුරටත් ඔබගේ ගිණුම භාවිතා කළ නොහැක, නමුත් ඔබගේ පැතිකඩ සහ අනෙකුත් දත්ත නොවෙනස්ව පවතී. ඔබට ඔබගේ දත්තවල උපස්ථයක් ඉල්ලා සිටීමට, ගිණුම් සැකසීම් වෙනස් කිරීමට හෝ ඔබගේ ගිණුම මකා දැමීමට හැකිය.
+ mark_statuses_as_sensitive: ඔබගේ සමහර පළ කිරීම් %{instance}හි පරිපාලකයින් විසින් සංවේදී ලෙස සලකුණු කර ඇත. මෙයින් අදහස් කරන්නේ පෙරදසුනක් දර්ශනය වීමට පෙර පුද්ගලයින්ට පළ කිරීම් වල මාධ්ය තට්ටු කිරීමට අවශ්ය වනු ඇති බවයි. අනාගතයේදී පළ කිරීමේදී ඔබට මාධ්ය සංවේදී ලෙස සලකුණු කළ හැක.
+ sensitive: මෙතැන් සිට, ඔබගේ උඩුගත කරන ලද සියලුම මාධ්ය ගොනු සංවේදී ලෙස සලකුණු කර ක්ලික්-හරහා අනතුරු ඇඟවීමක් පිටුපස සඟවනු ඇත.
+ silence: ඔබට තවමත් ඔබගේ ගිණුම භාවිතා කළ හැකි නමුත් දැනටමත් ඔබව අනුගමනය කරන පුද්ගලයින් පමණක් මෙම සේවාදායකයේ ඔබගේ පළ කිරීම් දකිනු ඇති අතර, විවිධ සොයාගැනීම් විශේෂාංග වලින් ඔබව බැහැර කරනු ලැබිය හැක. කෙසේ වෙතත්, අනෙක් අය තවමත් ඔබව අතින් අනුගමනය කළ හැක.
+ suspend: ඔබට තවදුරටත් ඔබගේ ගිණුම භාවිතා කළ නොහැකි අතර, ඔබගේ පැතිකඩ සහ අනෙකුත් දත්ත තවදුරටත් ප්රවේශ විය නොහැක. දින 30කින් පමණ දත්ත සම්පූර්ණයෙන් ඉවත් කරන තෙක් ඔබට තවමත් ඔබේ දත්තවල උපස්ථයක් ඉල්ලා සිටීමට පුරනය විය හැක, නමුත් ඔබව අත්හිටුවීම මගහැර යාම වැළැක්වීමට අපි මූලික දත්ත කිහිපයක් රඳවා ගන්නෙමු.
+ reason: 'හේතුව:'
+ statuses: 'උපුටා දක්වන ලද පළ කිරීම්:'
+ subject:
+ delete_statuses: "%{acct} හි ඔබගේ පළ කිරීම් ඉවත් කර ඇත"
+ disable: ඔබගේ ගිණුම %{acct} කර ඇත
+ mark_statuses_as_sensitive: "%{acct} හි ඔබගේ පළ කිරීම් සංවේදී ලෙස සලකුණු කර ඇත"
+ none: "%{acct}සඳහා අනතුරු ඇඟවීම"
+ sensitive: "%{acct} හි ඔබගේ පළ කිරීම් මෙතැන් සිට සංවේදී ලෙස සලකුණු කෙරේ"
+ silence: ඔබගේ ගිණුම %{acct} සීමා කර ඇත
+ suspend: ඔබගේ ගිණුම %{acct} අත්හිටුවා ඇත
+ title:
+ delete_statuses: පළ කිරීම් ඉවත් කරන ලදී
+ disable: ගිණුම නිශ්චල කර ඇත
+ mark_statuses_as_sensitive: පළ කිරීම් සංවේදී ලෙස ලකුණු කර ඇත
+ none: අවවාදයයි
+ sensitive: ගිණුම සංවේදී ලෙස ලකුණු කර ඇත
+ silence: ගිණුම සීමා සහිතයි
+ suspend: ගිණුම අත්හිටුවා ඇත
+ welcome:
+ edit_profile_action: සැකසුම් පැතිකඩ
+ explanation: ඔබ ආරම්භ කිරීමට උපදෙස් කිහිපයක් මෙන්න
+ final_action: පළ කිරීම ආරම්භ කරන්න
+ full_handle: ඔබේ සම්පූර්ණ හසුරුව
+ full_handle_hint: මෙය ඔබ ඔබේ මිතුරන්ට පවසනු ඇත, එවිට ඔවුන්ට වෙනත් සේවාදායකයකින් ඔබට පණිවිඩ යැවීමට හෝ අනුගමනය කිරීමට හැකිය.
+ subject: Mastodon වෙත සාදරයෙන් පිළිගනිමු
+ title: නැවට සාදරයෙන් පිළිගනිමු, %{name}!
+ users:
+ follow_limit_reached: ඔබට පුද්ගලයින් %{limit} කට වඩා අනුගමනය කළ නොහැක
+ invalid_otp_token: වලංගු නොවන ද්වි-සාධක කේතය
+ otp_lost_help_html: ඔබට දෙකටම ප්රවේශය අහිමි වුවහොත්, ඔබට %{email}සමඟ සම්බන්ධ විය හැක
+ seamless_external_login: ඔබ බාහිර සේවාවක් හරහා ලොග් වී ඇත, එබැවින් මුරපදය සහ ඊමේල් සැකසුම් නොමැත.
+ signed_in_as: 'මෙසේ පුරනය වී ඇත:'
+ verification:
+ explanation_html: 'ඔබගේ පැතිකඩ පාරදත්තහි ඇති සබැඳි වල හිමිකරු ලෙස ඔබට සත්යාපනය කළ හැක. ඒ සඳහා, සම්බන්ධිත වෙබ් අඩවියේ ඔබේ Mastodon පැතිකඩ වෙත ආපසු සබැඳියක් තිබිය යුතුය. සබැඳිය ආපසු යුතුය. සබැඳියේ පෙළ අන්තර්ගතය වැදගත් නොවේ. මෙන්න උදාහරණයක්:'
+ verification: සත්යාපනය
+ webauthn_credentials:
+ add: නව ආරක්ෂක යතුර එක් කරන්න
+ create:
+ error: ඔබගේ ආරක්ෂක යතුර එක් කිරීමේ ගැටලුවක් ඇති විය. කරුණාකර නැවත උත්සාහ කරන්න.
+ success: ඔබගේ ආරක්ෂක යතුර සාර්ථකව එක් කරන ලදී.
+ delete: මකන්න
+ delete_confirmation: ඔබට මෙම ආරක්ෂක යතුර මැකීමට අවශ්ය බව විශ්වාසද?
+ description_html: ඔබ ආරක්ෂක යතුරු සත්යාපනය සක්රීය කරන්නේ නම්, පුරනය වීමේදී ඔබගේ ආරක්ෂක යතුරු වලින් එකක් භාවිතා කිරීම අවශ්ය වේ.
+ destroy:
+ error: ඔබගේ ආරක්ෂක යතුර මැකීමේ ගැටලුවක් ඇති විය. කරුණාකර නැවත උත්සාහ කරන්න.
+ success: ඔබගේ ආරක්ෂක යතුර සාර්ථකව මකා ඇත.
+ invalid_credential: වලංගු නොවන ආරක්ෂක යතුර
+ nickname_hint: ඔබගේ නව ආරක්ෂක යතුරේ අන්වර්ථ නාමය ඇතුළත් කරන්න
+ not_enabled: ඔබ තවමත් WebAuthn සබල කර නැත
+ not_supported: මෙම බ්රවුසරය ආරක්ෂක යතුරු සඳහා සහය නොදක්වයි
+ otp_required: ආරක්ෂක යතුරු භාවිතා කිරීමට කරුණාකර පළමුව ද්වි-සාධක සත්යාපනය සක්රීය කරන්න.
+ registered_on: "%{date}හි ලියාපදිංචි වී ඇත"
diff --git a/config/locales/simple_form.af.yml b/config/locales/simple_form.af.yml
index 252f9fd5a2..a52c53eba1 100644
--- a/config/locales/simple_form.af.yml
+++ b/config/locales/simple_form.af.yml
@@ -1 +1,11 @@
+---
af:
+ simple_form:
+ hints:
+ webhook:
+ events: Kies gebeurtenisse om te stuur
+ url: Waarheen gebeurtenisse gestuur sal word
+ labels:
+ webhook:
+ events: Geaktiveerde gebeurtenisse
+ url: End-punt URL
diff --git a/config/locales/simple_form.ar.yml b/config/locales/simple_form.ar.yml
index ea01e68825..35772a11e7 100644
--- a/config/locales/simple_form.ar.yml
+++ b/config/locales/simple_form.ar.yml
@@ -185,6 +185,11 @@ ar:
with_dns_records: تضمين سجلات MX و عناوين IP للنطاق
featured_tag:
name: الوسم
+ form_admin_settings:
+ site_terms: سياسة الخصوصية
+ site_title: اسم الخادم
+ theme: الحُلَّة الإفتراضية
+ thumbnail: الصورة المصغرة للخادم
interactions:
must_be_follower: حظر الإخطارات القادمة من حسابات لا تتبعك
must_be_following: حظر الإخطارات القادمة من الحسابات التي لا تتابعها
@@ -216,7 +221,12 @@ ar:
name: الوسم
trendable: السماح لهذه الكلمة المفتاحية بالظهور تحت المتداوَلة
usable: اسمح للمنشورات استخدام هذا الوسم
+ user:
+ role: الدور
+ user_role:
+ color: لون الشارة
'no': لا
+ not_recommended: غير مستحسن
recommended: موصى بها
required:
mark: "*"
diff --git a/config/locales/simple_form.ast.yml b/config/locales/simple_form.ast.yml
index c989139851..7c5400f94e 100644
--- a/config/locales/simple_form.ast.yml
+++ b/config/locales/simple_form.ast.yml
@@ -10,7 +10,7 @@ ast:
irreversible: Los barritos peñeraos van desapaecer de mou irreversible, magar que se desanicie la peñera dempués
password: Usa 8 caráuteres polo menos
setting_hide_network: La xente que sigas y teas siguiendo nun va amosase nel perfil
- setting_show_application: L'aplicación qu'uses pa barritar va amosase na vista detallada d'ellos
+ setting_show_application: L'aplicación qu'uses pa espublizar apaez na vista detallada de los tos artículos
username: El nome d'usuariu va ser únicu en %{domain}
featured_tag:
name: 'Quiciabes quieras usar unu d''estos:'
@@ -96,6 +96,10 @@ ast:
reblog: Daquién compartió dalgún estáu de to
tag:
name: Etiqueta
+ user_role:
+ name: Nome
+ permissions_as_keys: Permisos
+ position: Prioridá
'no': Non
recommended: Aconséyase
required:
diff --git a/config/locales/simple_form.ca.yml b/config/locales/simple_form.ca.yml
index 2e06326484..a21fd78cde 100644
--- a/config/locales/simple_form.ca.yml
+++ b/config/locales/simple_form.ca.yml
@@ -68,6 +68,32 @@ ca:
with_dns_records: Es procurarà resoldre els registres DNS del domini determinat i els resultats també es llistaran a la llista negra
featured_tag:
name: 'És possible que vulguis utilitzar una d''aquestes:'
+ filters:
+ action: Tria quina acció cal executar quan una publicació coincideixi amb el filtre
+ actions:
+ hide: Ocultar completament el contingut filtrat, comportant-se com si no existís
+ warn: Oculta el contingut filtrat rera un avís mencionant el títol del filtre
+ form_admin_settings:
+ backups_retention_period: Mantenir els arxius d'usuari generats durant el número de dies especificats.
+ bootstrap_timeline_accounts: Aquests comptes es fixaran en la part superior de les recomanacions de seguiment dels nous usuaris.
+ closed_registrations_message: Mostrat quan el registres estan tancats
+ content_cache_retention_period: Els apunts des d'altres servidors s'esborraran després del número de dies especificat quan es configura un valor positiu. Això pot ser irreversible.
+ custom_css: Pots aplicar estils personalitzats en la versió web de Mastodon.
+ mascot: Anul·la l'ilustració en l'interfície web avançada.
+ media_cache_retention_period: Els fitxers multimèdia descarregats s'esborraran després del número de dies especificat quan el valor configurat és positiu, i tornats a descarregats sota demanda.
+ profile_directory: El directori de perfils llista tots els usuaris que tenen activat ser descoberts.
+ require_invite_text: Quan el registre requereix aprovació manual, fer que sigui obligatori enlloc d'opcional escriure el text de la solicitud d'invitació "Perquè vols unirte?"
+ site_contact_email: Com pot la gent comunicar amb tu per a consultes legals o de recolzament.
+ site_contact_username: Com pot la gent trobar-te a Mastodon.
+ site_extended_description: Qualsevol informació adicional que pot ser útil per els visitants i els teus usuaris. Pot ser estructurat amb format Markdown.
+ site_short_description: Una descripció curta per ajudar a identificar de manera única el teu servidor. Qui el fa anar, per a qui és?
+ site_terms: Usa la teva pròpia política de privacitat o deixa-ho en blanc per a usar la per defecte. Pot ser estructurat amb format Markdown.
+ site_title: Com pot la gent referir-se al teu servidor a part del seu nom de domini.
+ theme: El tema que els visitants i els nous usuaris veuen.
+ thumbnail: Una imatge d'aproximadament 2:1 mostrada junt l'informació del teu servidor.
+ timeline_preview: Els visitants amb sessió no iniciada seran capaços de navegar per els apunts públics més recents en el teu servidor.
+ trendable_by_default: Omet la revisió manual del contingut en tendència. Els articles individuals poden encara ser eliminats després del fet.
+ trends: Les tendències mostres els apunts, les etiquetes i les noves històries que estan guanyant atenció en el teu servidor.
form_challenge:
current_password: Estàs entrant en una àrea segura
imports:
@@ -80,6 +106,7 @@ ca:
ip: Introdueix una adreça IPv4 o IPv6. Pots bloquejar rangs complets amb la sintaxi CIDR. Ves a compte no et bloquegis a tu mateix!
severities:
no_access: Bloqueja l’accés a tots els recursos
+ sign_up_block: Els nous registres no seran possibles
sign_up_requires_approval: Els nous registres requeriran la teva aprovació
severity: Tria què passarà amb les sol·licituds des d’aquesta IP
rule:
@@ -91,6 +118,16 @@ ca:
name: Només pots canviar la caixa de les lletres, per exemple, per fer-la més llegible
user:
chosen_languages: Quan estigui marcat, només es mostraran les publicacions en les llengües seleccionades en les línies de temps públiques
+ role: El rol controla quines permissions té l'usuari
+ user_role:
+ color: Color que s'utilitzarà per al rol a tota la interfície d'usuari, com a RGB en format hexadecimal
+ highlighted: Això torno el rol visibile publicament
+ name: Nom públic del rol, si el rol està configurat per a ser mostrat com a insígnia
+ permissions_as_keys: Els usuaris amb aquest rol tingran accés a...
+ position: El rol superior decideix la resolució de conflictes en certes situacions. Certes accions només es poden realitzar amb rols amb menor prioritat
+ webhook:
+ events: Selecciona esdeveniments a enviar
+ url: On els esdeveniments seran enviats
labels:
account:
fields:
@@ -178,6 +215,7 @@ ca:
setting_use_pending_items: Mode lent
severity: Severitat
sign_in_token_attempt: Codi de seguretat
+ title: Títol
type: Importa el tipus
username: Nom d'usuari
username_or_email: Nom d'usuari o adreça electrònica
@@ -186,6 +224,28 @@ ca:
with_dns_records: Incloure registres MX i IP del domini
featured_tag:
name: Etiqueta
+ filters:
+ actions:
+ hide: Oculta completament
+ warn: Oculta amb un avís
+ form_admin_settings:
+ backups_retention_period: Període de retenció del arxiu d'usuari
+ bootstrap_timeline_accounts: Recomana sempre aquests comptes als nous usuaris
+ closed_registrations_message: Missatge personalitzat quan el registre està tancat
+ content_cache_retention_period: Periode de retenció de la memòria cau de contingut
+ custom_css: CSS personalitzat
+ mascot: Mascota personalitzada (llegat)
+ media_cache_retention_period: Període de retenció del cau multimèdia
+ profile_directory: Habilita el directori de perfils
+ registrations_mode: Qui es pot registrar
+ require_invite_text: Requereix un motiu per el registre
+ show_domain_blocks: Mostra els bloquejos de domini
+ show_domain_blocks_rationale: Mostra perquè estan bloquejats els dominis
+ site_contact_email: E-mail de contacte
+ site_contact_username: Nom d'usuari del contacte
+ site_extended_description: Descripció ampliada
+ site_short_description: Descripció del servidor
+ site_terms: Política de Privacitat
interactions:
must_be_follower: Bloqueja les notificacions de persones que no em segueixen
must_be_following: Bloqueja les notificacions de persones no seguides
@@ -199,6 +259,7 @@ ca:
ip: IP
severities:
no_access: Bloquejar l’accés
+ sign_up_block: Bloqueja registres
sign_up_requires_approval: Limitar els registres
severity: Regla
notification_emails:
@@ -219,7 +280,19 @@ ca:
name: Etiqueta
trendable: Permet que aquesta etiqueta aparegui en les tendències
usable: Permetre a les publicacions emprar aquesta etiqueta
+ user:
+ role: Rol
+ user_role:
+ color: Color de la insígnia
+ highlighted: Motra el rol com a insígnia en el perfil dels usuaris
+ name: Nom
+ permissions_as_keys: Permisos
+ position: Prioritat
+ webhook:
+ events: Esdeveniments activats
+ url: URL del extrem
'no': 'No'
+ not_recommended: No recomanat
recommended: Recomanat
required:
mark: "*"
diff --git a/config/locales/simple_form.cs.yml b/config/locales/simple_form.cs.yml
index 32711aa0df..a7dce2b677 100644
--- a/config/locales/simple_form.cs.yml
+++ b/config/locales/simple_form.cs.yml
@@ -68,6 +68,23 @@ cs:
with_dns_records: Dojde k pokusu o překlad DNS záznamů dané domény a výsledky budou rovněž zablokovány
featured_tag:
name: 'Nejspíš budete chtít použít jeden z těchto:'
+ filters:
+ action: Vyberte jakou akci provést, když příspěvek odpovídá filtru
+ actions:
+ hide: Úplně schovat filtrovaný obsah tak, jako by neexistoval
+ warn: Schovat filtrovaný obsah za varováním zmiňujicím název filtru
+ form_admin_settings:
+ backups_retention_period: Zachovat generované uživatelské archivy pro zadaný počet dní.
+ bootstrap_timeline_accounts: Tyto účty budou připnuty na vrchol nových uživatelů podle doporučení.
+ closed_registrations_message: Zobrazeno při zavření registrace
+ content_cache_retention_period: Příspěvky z jiných serverů budou odstraněny po zadaném počtu dní, pokud je nastavena kladná hodnota. To může být nevratné.
+ custom_css: Můžete použít vlastní styly ve verzi Mastodonu.
+ media_cache_retention_period: Stažené mediální soubory budou po zadaném počtu dní odstraněny, pokud je nastavena kladná hodnota, a na požádání znovu staženy.
+ profile_directory: Adresář profilu obsahuje seznam všech uživatelů, kteří se přihlásili, aby mohli být nalezeni.
+ site_contact_username: Jak vás lidé mohou oslovit na Mastodon.
+ site_extended_description: Jakékoli další informace, které mohou být užitečné pro návštěvníky a vaše uživatele. Může být strukturováno pomocí Markdown syntaxe.
+ site_terms: Použijte vlastní zásady ochrany osobních údajů nebo ponechte prázdné pro použití výchozího nastavení. Může být strukturováno pomocí Markdown syntaxe.
+ thumbnail: Přibližně 2:1 obrázek zobrazený vedle informací o vašem serveru.
form_challenge:
current_password: Vstupujete do zabezpečeného prostoru
imports:
@@ -80,6 +97,7 @@ cs:
ip: Zadejte IPv4 nebo IPv6 adresu. Můžete blokovat celé rozsahy použitím CIDR notace. Dejte pozor, ať neodříznete přístup sami sobě!
severities:
no_access: Blokovat přístup ke všem zdrojům
+ sign_up_block: Nové přihlášení nebude možné
sign_up_requires_approval: Nové registrace budou vyžadovat schválení
severity: Zvolte, jak naložit s požadavky z dané IP
rule:
@@ -91,6 +109,16 @@ cs:
name: Můžete měnit pouze velikost písmen, například kvůli lepší čitelnosti
user:
chosen_languages: Po zaškrtnutí budou ve veřejných časových osách zobrazeny pouze příspěvky ve zvolených jazycích
+ role: Role určuje, která oprávnění má uživatel
+ user_role:
+ color: Barva, která má být použita pro roli v celém UI, jako RGB v hex formátu
+ highlighted: Toto roli učiní veřejně viditelnou
+ name: Veřejný název role, pokud má být role zobrazena jako odznak
+ permissions_as_keys: Uživatelé s touto rolí budou moci...
+ position: Vyšší role rozhoduje o řešení konfliktů v určitých situacích. Některé akce lze provádět pouze na rolích s nižší prioritou
+ webhook:
+ events: Zvolte odesílané události
+ url: Kam budou události odesílány
labels:
account:
fields:
@@ -178,6 +206,7 @@ cs:
setting_use_pending_items: Pomalý režim
severity: Vážnost
sign_in_token_attempt: Bezpečnostní kód
+ title: Název
type: Typ importu
username: Uživatelské jméno
username_or_email: Uživatelské jméno nebo e-mail
@@ -186,6 +215,33 @@ cs:
with_dns_records: Zahrnout MX záznamy a IP adresy domény
featured_tag:
name: Hashtag
+ filters:
+ actions:
+ hide: Zcela skrýt
+ warn: Skrýt s varováním
+ form_admin_settings:
+ backups_retention_period: Doba uchovávání archivu uživatelů
+ bootstrap_timeline_accounts: Vždy doporučovat tyto účty novým uživatelům
+ content_cache_retention_period: Doba uchování mezipaměti obsahu
+ custom_css: Vlastní CSS
+ mascot: Vlastní maskot (zastaralé)
+ media_cache_retention_period: Doba uchovávání mezipaměti médií
+ profile_directory: Povolit adresář profilů
+ registrations_mode: Kdo se může přihlásit
+ require_invite_text: Požadovat důvod pro připojení
+ show_domain_blocks: Zobrazit blokace domén
+ show_domain_blocks_rationale: Zobrazit proč byly blokovány domény
+ site_contact_email: Kontaktní e-mail
+ site_contact_username: Jméno kontaktu
+ site_extended_description: Rozšířený popis
+ site_short_description: Popis serveru
+ site_terms: Ochrana osobních údajů
+ site_title: Název serveru
+ theme: Výchozí motiv
+ thumbnail: Miniatura serveru
+ timeline_preview: Povolit neověřený přístup k veřejným časovým osám
+ trendable_by_default: Povolit trendy bez předchozí revize
+ trends: Povolit trendy
interactions:
must_be_follower: Blokovat oznámení od lidí, kteří vás nesledují
must_be_following: Blokovat oznámení od lidí, které nesledujete
@@ -199,6 +255,7 @@ cs:
ip: IP
severities:
no_access: Blokovat přístup
+ sign_up_block: Blokovat registrace
sign_up_requires_approval: Omezit registrace
severity: Pravidlo
notification_emails:
@@ -219,7 +276,19 @@ cs:
name: Hashtag
trendable: Povolit zobrazení tohoto hashtagu mezi populárními
usable: Povolit používat tento hashtag v příspěvcích
+ user:
+ role: Role
+ user_role:
+ color: Barva odznaku
+ highlighted: Zobrazit roli jako odznak na profilech uživatelů
+ name: Název
+ permissions_as_keys: Oprávnění
+ position: Priorita
+ webhook:
+ events: Zapnuté události
+ url: URL koncového bodu
'no': Ne
+ not_recommended: Nedoporučuje se
recommended: Doporučeno
required:
mark: "*"
diff --git a/config/locales/simple_form.cy.yml b/config/locales/simple_form.cy.yml
index 77b46ad2b3..b0217cfe30 100644
--- a/config/locales/simple_form.cy.yml
+++ b/config/locales/simple_form.cy.yml
@@ -73,6 +73,7 @@ cy:
labels:
account:
fields:
+ name: Label
value: Cynnwys
account_alias:
acct: Enw'r hen gyfrif
@@ -89,6 +90,7 @@ cy:
types:
disable: Analluogi
none: Gwneud dim
+ sensitive: Sensitif
silence: Tawelwch
suspend: Dileu data cyfrif
warning_preset_id: Defnyddiwch ragnod rhag rhybudd
@@ -107,6 +109,7 @@ cy:
confirm_password: Cadarnhau cyfrinair
context: Hidlo cyd-destunau
current_password: Cyfrinair presennol
+ data: Data
discoverable: Rhestrwch y cyfrif hwn ar y cyfeiriadur
display_name: Enw arddangos
email: Cyfeiriad e-bost
@@ -149,6 +152,7 @@ cy:
setting_use_pending_items: Modd araf
severity: Difrifoldeb
sign_in_token_attempt: Cod dioelwch
+ title: Teitl
type: Modd mewnforio
username: Enw defnyddiwr
username_or_email: Enw defnyddiwr neu e-bost
@@ -166,6 +170,8 @@ cy:
invite_request:
text: Pam hoffech ymuno?
ip_block:
+ comment: Sylw
+ ip: IP
severity: Rheol
notification_emails:
digest: Anfonwch e-byst crynhoi
@@ -183,6 +189,11 @@ cy:
name: Hashnod
trendable: Gadewch i'r hashnod hwn ymddangos o dan dueddiadau
usable: Caniatáu i tŵtiau ddefnyddio'r hashnod hwn
+ user:
+ role: Rôl
+ user_role:
+ name: Enw
+ permissions_as_keys: Caniatâd
'no': Na
recommended: Argymhellwyd
required:
diff --git a/config/locales/simple_form.da.yml b/config/locales/simple_form.da.yml
index 88b17a6c53..9f2c2e562b 100644
--- a/config/locales/simple_form.da.yml
+++ b/config/locales/simple_form.da.yml
@@ -68,6 +68,31 @@ da:
with_dns_records: Et forsøg på at opløse det givne domænes DNS-poster foretages, og resultaterne blokeres ligeledes
featured_tag:
name: 'Et af flg. ønskes måske anvendt:'
+ filters:
+ action: Vælg handlingen til eksekvering, når et indlæg matcher filteret
+ actions:
+ hide: Skjul filtreret indhold helt (adfærd som om, det ikke fandtes)
+ warn: Skjul filtreret indhold bag en advarsel, der nævner filterets titel
+ form_admin_settings:
+ backups_retention_period: Behold genererede brugerarkiver i det angivne antal dage.
+ bootstrap_timeline_accounts: Disse konti fastgøres øverst på nye brugeres følg-anbefalinger.
+ closed_registrations_message: Vises, når tilmeldinger er lukket
+ content_cache_retention_period: Indlæg fra andre servere slettes efter det angivne antal dage, når sat til en positiv værdi. Dette kan være irreversibelt.
+ custom_css: Man kan anvende tilpassede stilarter på Mastodon-webversionen.
+ mascot: Tilsidesætter illustrationen i den avancerede webgrænseflade.
+ media_cache_retention_period: Downloadede mediefiler slettes efter det angivne antal dage, når sat til en positiv værdi, og gendownloades på forlangende.
+ profile_directory: Profilmappen oplister alle brugere, som har valgt at kunne opdages.
+ require_invite_text: Når tilmelding kræver manuel godkendelse, så gør “Hvorfor ønsker du at deltage?” tekstinput obligatorisk i stedet for valgfrit
+ site_contact_email: Hvordan folk kan opnå kontakt ifm. juridiske eller supportforespørgsler.
+ site_contact_username: Hvordan folk kan kontakte dig på Mastodon.
+ site_extended_description: Evt. yderligere oplysninger, som kan være nyttige for både besøgende og brugere. Kan struktureres vha. Markdown-syntaks.
+ site_short_description: En kort beskrivelse mhp. entydigt at kunne identificere denne server. Hvem kører den, hvem er den for?
+ site_terms: Brug egen fortrolighedspolitik eller lad stå tomt for standardpolitikken. Kan struktureres med Markdown-syntaks.
+ site_title: Hvordan folk kan henvise til serveren udover domænenavnet.
+ theme: Tema, som udloggede besøgende og nye brugere ser.
+ thumbnail: Et ca. 2:1 billede vist sammen med serveroplysningerne.
+ timeline_preview: Udloggede besøgende kan gennemse serverens seneste offentlige indlæg.
+ trends: Tendenser viser, hvilke indlæg, hashtags og nyheder opnår momentum på serveren.
form_challenge:
current_password: Du bevæger dig ind på et sikkert område
imports:
@@ -80,6 +105,7 @@ da:
ip: Angiv en IPv4- eller IPv6-adresse. Hele intervaller kan blokeres vha. CIDR-syntaksen. Pas på med ikke selv at blive låst ude!
severities:
no_access: Blokér adgang til alle ressourcer
+ sign_up_block: Nye tilmeldinger vil ikke være mulige
sign_up_requires_approval: Nye tilmeldinger kræver din godkendelse
severity: Afgør, hvordan forespørgsler fra denne IP behandles
rule:
@@ -91,6 +117,16 @@ da:
name: Kun bogstavtyper (store/små) kan ændres, eksempelvis for at gøre det mere læsbart
user:
chosen_languages: Når markeret, vil kun indlæg på de valgte sprog fremgå på offentlige tidslinjer
+ role: Rollen styrer, hvilke tilladelser brugeren har
+ user_role:
+ color: Farven, i RGB hex-format, der skal bruges til rollen i hele UI'en
+ highlighted: Dette gør rollen offentligt synlig
+ name: Offentligt rollennavn, hvis rollen er opsat til fremstå som et badge
+ permissions_as_keys: Brugere med denne rolle vil kunne tilgå...
+ position: Højere rolle bestemmer konfliktløsning i visse situationer. Visse handlinger kan kun udføres på roller med lavere prioritet
+ webhook:
+ events: Vælg begivenheder at sende
+ url: Hvor begivenheder sendes til
labels:
account:
fields:
@@ -178,6 +214,7 @@ da:
setting_use_pending_items: Langsom tilstand
severity: Alvorlighed
sign_in_token_attempt: Sikkerhedskode
+ title: Titel
type: Importtype
username: Brugernavn
username_or_email: Brugernavn eller e-mail
@@ -186,6 +223,34 @@ da:
with_dns_records: Inkludér domænets MX-poster og IP'er
featured_tag:
name: Hashtag
+ filters:
+ actions:
+ hide: Skjul helt
+ warn: Skjul bag en advarsel
+ form_admin_settings:
+ backups_retention_period: Brugerarkivs opbevaringsperiode
+ bootstrap_timeline_accounts: Anbefal altid disse konti til nye brugere
+ closed_registrations_message: Tilpasset besked, når tilmelding er utilgængelig
+ content_cache_retention_period: Indholds-cache opbevaringsperiode
+ custom_css: Tilpasset CSS
+ mascot: Tilpasset maskot (ældre funktion)
+ media_cache_retention_period: Media-cache opbevaringsperiode
+ profile_directory: Aktivér profiloversigt
+ registrations_mode: Hvem, der kan tilmelde sig
+ require_invite_text: Kræv tilmeldingsbegrundelse
+ show_domain_blocks: Vis domæneblokeringer
+ show_domain_blocks_rationale: Vis, hvorfor domæner blev blokeret
+ site_contact_email: Kontakt e-mail
+ site_contact_username: Kontakt brugernavn
+ site_extended_description: Udvidet beskrivelse
+ site_short_description: Serverbeskrivelse
+ site_terms: Fortrolighedspolitik
+ site_title: Servernavn
+ theme: Standardtema
+ thumbnail: Serverminiaturebillede
+ timeline_preview: Tillad ikke-godkendt adgang til offentlige tidslinjer
+ trendable_by_default: Tillad ikke-reviderede tendenser
+ trends: Aktivér trends
interactions:
must_be_follower: Blokér notifikationer fra ikke-følgere
must_be_following: Blokér notifikationer fra folk, som ikke følges
@@ -199,6 +264,7 @@ da:
ip: IP
severities:
no_access: Blokér adgang
+ sign_up_block: Blokér tilmeldinger
sign_up_requires_approval: Begræns tilmeldinger
severity: Regel
notification_emails:
@@ -219,7 +285,19 @@ da:
name: Hashtag
trendable: Tillad visning af dette hashtag under trends
usable: Tillad indlæg at benytte dette hashtag
+ user:
+ role: Rolle
+ user_role:
+ color: Badge-farve
+ highlighted: Vis rolle som badge på brugerprofiler
+ name: Navn
+ permissions_as_keys: Tilladelser
+ position: Prioritet
+ webhook:
+ events: Aktive begivenheder
+ url: Endepunkts-URL
'no': Nej
+ not_recommended: Ikke anbefalet
recommended: Anbefalet
required:
mark: "*"
diff --git a/config/locales/simple_form.de.yml b/config/locales/simple_form.de.yml
index e9ae172069..c0638b323f 100644
--- a/config/locales/simple_form.de.yml
+++ b/config/locales/simple_form.de.yml
@@ -22,9 +22,9 @@ de:
suspend: Verhindert jegliche Interaktion von oder zu diesem Konto und löscht dessen Inhalt. Kann innerhalb von 30 Tagen rückgängig gemacht werden.
warning_preset_id: Optional. Du kannst immer noch eigenen Text an das Ende der Vorlage hinzufügen
announcement:
- all_day: Wenn aktiviert werden nur die Daten des Zeitraums angezeigt
+ all_day: Wenn aktiviert, werden nur die Daten des Zeitraums angezeigt
ends_at: Optional. Die Ankündigung wird zu diesem Zeitpunkt automatisch zurückgezogen
- scheduled_at: Leer lassen um die Ankündigung sofort zu veröffentlichen
+ scheduled_at: Leer lassen, um die Ankündigung sofort zu veröffentlichen
starts_at: Optional. Falls deine Ankündigung an einen bestimmten Zeitraum gebunden ist
text: Du kannst die Toot-Syntax verwenden. Bitte beachte den Platz, den die Ankündigung auf dem Bildschirm des Benutzers einnehmen wird
appeal:
@@ -37,7 +37,7 @@ de:
current_password: Aus Sicherheitsgründen gib bitte das Passwort des aktuellen Kontos ein
current_username: Um das zu bestätigen, gib den Benutzernamen des aktuellen Kontos ein
digest: Wenn du eine lange Zeit inaktiv bist, wird dir eine Zusammenfassung von Erwähnungen zugeschickt, die du in deiner Abwesenheit empfangen hast
- discoverable: Erlaube deinem Konto durch Empfehlungen, Trends und andere Funktionen von Fremden entdeckt zu werden
+ discoverable: Erlaube deinem Konto, durch Empfehlungen, Trends und andere Funktionen von Fremden entdeckt zu werden
email: Du wirst eine Bestätigungs-E-Mail erhalten
fields: Du kannst bis zu 4 Elemente auf deinem Profil anzeigen lassen, die als Tabelle dargestellt werden
header: PNG, GIF oder JPG. Maximal %{size}. Wird auf %{dimensions} px herunterskaliert
@@ -58,16 +58,26 @@ de:
setting_noindex: Betrifft dein öffentliches Profil und deine Beiträge
setting_show_application: Die Anwendung die du nutzt wird in der detaillierten Ansicht deiner Beiträge angezeigt
setting_use_blurhash: Die Farbverläufe basieren auf den Farben der versteckten Medien, aber verstecken jegliche Details
- setting_use_pending_items: Neue Beiträge hinter einem Klick verstecken anstatt automatisch zu scrollen
+ setting_use_pending_items: Neue Beiträge hinter einem Klick verstecken, anstatt automatisch zu scrollen
username: Dein Benutzername wird auf %{domain} einzigartig sein
whole_word: Wenn das Schlagwort nur aus Buchstaben und Zahlen besteht, wird es nur angewendet, wenn es dem ganzen Wort entspricht
domain_allow:
- domain: Diese Domain kann Daten von diesem Server abrufen und eingehende Daten werden verarbeitet und gespeichert
+ domain: Diese Domain kann Daten von diesem Server abrufen, und eingehende Daten werden verarbeitet und gespeichert
email_domain_block:
domain: Dies kann der Domänenname sein, der in der E-Mail-Adresse oder dem von ihm verwendeten MX-Eintrag angezeigt wird. Er wird bei der Anmeldung überprüft.
- with_dns_records: Ein Versuch die DNS-Einträge der Domain aufzulösen wurde unternommen und diese Ergebnisse werden unter anderem auch geblockt
+ with_dns_records: Ein Versuch, die DNS-Einträge der Domain aufzulösen, wurde unternommen, und diese Ergebnisse werden unter anderem auch blockiert
featured_tag:
name: 'Du möchtest vielleicht einen von diesen benutzen:'
+ filters:
+ action: Wählen Sie, welche Aktion ausgeführt werden soll, wenn ein Beitrag dem Filter entspricht
+ actions:
+ hide: Den gefilterten Inhalt vollständig ausblenden, als hätte er nie existiert
+ warn: Den gefilterten Inhalt hinter einer Warnung ausblenden, die den Filtertitel beinhaltet
+ form_admin_settings:
+ backups_retention_period: Behalte generierte Benutzerarchive für die angegebene Anzahl von Tagen.
+ closed_registrations_message: Wird angezeigt, wenn Anmeldungen geschlossen sind
+ content_cache_retention_period: Beiträge von anderen Servern werden nach der angegebenen Anzahl von Tagen, wenn sie auf einen positiven Wert gesetzt werden, gelöscht. Dies kann eventuell nicht rückgängig gemacht werden.
+ media_cache_retention_period: Heruntergeladene Mediendateien werden nach der angegebenen Anzahl von Tagen, wenn sie auf einen positiven Wert gesetzt werden, gelöscht und bei Bedarf erneut heruntergeladen.
form_challenge:
current_password: Du betrittst einen sicheren Bereich
imports:
@@ -77,9 +87,10 @@ de:
ip_block:
comment: Optional. Denke daran, warum du diese Regel hinzugefügt hast.
expires_in: IP-Adressen sind eine endliche Ressource, sie werden manchmal geteilt und werden ab und zu ausgetauscht. Aus diesem Grund werden unbestimmte IP-Blöcke nicht empfohlen.
- ip: Gebe eine IPv4- oder IPv6-Adresse an. Du kannst ganze Bereiche mit der CIDR-Syntax blockieren. Achte darauf, dass du dich nicht aussperrst!
+ ip: Gib eine IPv4- oder IPv6-Adresse an. Du kannst ganze Bereiche mit der CIDR-Syntax blockieren. Achte darauf, dass du dich nicht aussperrst!
severities:
no_access: Zugriff auf alle Ressourcen blockieren
+ sign_up_block: Neue Anmeldungen werden nicht möglich sein
sign_up_requires_approval: Neue Anmeldungen erfordern deine Zustimmung
severity: Wähle aus, was mit Anfragen aus dieser IP passiert
rule:
@@ -91,6 +102,16 @@ de:
name: Du kannst zum Beispiel nur die Groß- und Kleinschreibung der Buchstaben ändern, um es lesbarer zu machen
user:
chosen_languages: Wenn aktiviert, werden nur Beiträge in den ausgewählten Sprachen auf den öffentlichen Zeitleisten angezeigt
+ role: Die Rolle kontrolliert welche Berechtigungen ein Benutzer hat
+ user_role:
+ color: Die Farbe, die für die Rolle im gesamten UI verwendet wird, als RGB im Hexformat
+ highlighted: Dies macht die Rolle öffentlich sichtbar
+ name: Öffentlicher Name der Rolle, wenn die Rolle als Abzeichen angezeigt werden soll
+ permissions_as_keys: Benutzer mit dieser Rolle haben Zugriff auf...
+ position: Die höhere Rolle entscheidet über die Konfliktlösung in bestimmten Situationen. Bestimmte Aktionen können nur in Rollen mit geringerer Priorität ausgeführt werden
+ webhook:
+ events: Zu sendende Ereignisse auswählen
+ url: Wo Ereignisse hingesendet werden
labels:
account:
fields:
@@ -169,7 +190,7 @@ de:
setting_hide_network: Netzwerk ausblenden
setting_noindex: Suchmaschinen-Indexierung verhindern
setting_reduce_motion: Bewegung in Animationen verringern
- setting_show_application: Anwendung preisgeben, die benutzt wurde um Beiträge zu versenden
+ setting_show_application: Anwendung preisgeben, die benutzt wurde, um Beiträge zu versenden
setting_system_font_ui: Standardschriftart des Systems verwenden
setting_theme: Theme
setting_trends: Heutige Trends anzeigen
@@ -178,14 +199,31 @@ de:
setting_use_pending_items: Langsamer Modus
severity: Schweregrad
sign_in_token_attempt: Sicherheitscode
+ title: Titel
type: Art des Imports
username: Profilname
username_or_email: Profilname oder E-Mail
whole_word: Ganzes Wort
email_domain_block:
- with_dns_records: MX-Einträge und IPs der Domain einbeziehen
+ with_dns_records: MX-Einträge und IP-Adressen der Domain einbeziehen
featured_tag:
name: Hashtag
+ filters:
+ actions:
+ hide: Komplett ausblenden
+ warn: Mit einer Warnung ausblenden
+ form_admin_settings:
+ backups_retention_period: Aufbewahrungsfrist für Benutzerarchive
+ closed_registrations_message: Benutzerdefinierte Nachricht, wenn Anmeldungen nicht verfügbar sind
+ content_cache_retention_period: Aufbewahrungsfrist für Inhalte im Cache
+ custom_css: Benutzerdefiniertes CSS
+ media_cache_retention_period: Aufbewahrungsfrist für den Medien-Cache
+ registrations_mode: Wer kann sich registrieren
+ show_domain_blocks: Zeige Domain-Blockaden
+ site_short_description: Serverbeschreibung
+ site_terms: Datenschutzerklärung
+ site_title: Servername
+ trends: Trends aktivieren
interactions:
must_be_follower: Benachrichtigungen von Profilen blockieren, die mir nicht folgen
must_be_following: Benachrichtigungen von Profilen blockieren, denen ich nicht folge
@@ -199,10 +237,11 @@ de:
ip: IP-Adresse
severities:
no_access: Zugriff sperren
+ sign_up_block: Anmeldungen blockieren
sign_up_requires_approval: Anmeldungen begrenzen
severity: Regel
notification_emails:
- appeal: Jemand hat Einspruch an eine Moderatorentscheidung
+ appeal: Jemand hat Einspruch gegen eine Moderatorentscheidung eingelegt
digest: Kurzfassungen über E-Mail senden
favourite: E-Mail senden, wenn jemand meinen Beitrag favorisiert
follow: E-Mail senden, wenn mir jemand folgt
@@ -215,16 +254,28 @@ de:
rule:
text: Regel
tag:
- listable: Erlaube diesem Hashtag im Profilverzeichnis zu erscheinen
+ listable: Erlaube diesem Hashtag, im Profilverzeichnis zu erscheinen
name: Hashtag
- trendable: Erlaube es diesen Hashtag in den Trends erscheinen zu lassen
- usable: Beiträge erlauben, diesen Hashtag zu verwenden
+ trendable: Erlaube es, diesen Hashtag in den Trends erscheinen zu lassen
+ usable: Beiträgen erlauben, diesen Hashtag zu verwenden
+ user:
+ role: Rolle
+ user_role:
+ color: Abzeichenfarbe
+ highlighted: Rolle als Abzeichen in Benutzerprofilen anzeigen
+ name: Name
+ permissions_as_keys: Berechtigungen
+ position: Priorität
+ webhook:
+ events: Aktivierte Ereignisse
+ url: Endpunkt-URL
'no': Nein
+ not_recommended: Nicht empfohlen
recommended: Empfohlen
required:
mark: "*"
text: Pflichtfeld
title:
sessions:
- webauthn: Verwende einer deiner Sicherheitsschlüssel zum Anmelden
+ webauthn: Verwende einen deiner Sicherheitsschlüssel zum Anmelden
'yes': Ja
diff --git a/config/locales/simple_form.el.yml b/config/locales/simple_form.el.yml
index 89ddae0cbe..9ef776059e 100644
--- a/config/locales/simple_form.el.yml
+++ b/config/locales/simple_form.el.yml
@@ -76,6 +76,7 @@ el:
ip: Εισάγετε μια διεύθυνση IPv4 ή IPv6. Μπορείτε να αποκλείσετε ολόκληρο το εύρος χρησιμοποιώντας τη σύνταξη CIDR. Προσέξτε να μην κλειδώσετε τον εαυτό σας!
severities:
no_access: Αποκλεισμός πρόσβασης σε όλους τους πόρους
+ sign_up_block: Νέες εγγραφές δεν θα είναι δυνατές
sign_up_requires_approval: Νέες εγγραφές θα απαιτούν την έγκριση σας
severity: Επιλέξτε τι θα γίνεται με αιτήσεις από αυτήν την διεύθυνση IP
rule:
@@ -172,6 +173,7 @@ el:
setting_use_pending_items: Αργή λειτουργία
severity: Αυστηρότητα
sign_in_token_attempt: Κωδικός ασφαλείας
+ title: Τίτλος
type: Τύπος εισαγωγής
username: Όνομα χρηστη
username_or_email: Όνομα ή διεύθυνση email χρήστη
@@ -180,6 +182,15 @@ el:
with_dns_records: Συμπερίληψη εγγραφών MX και διευθύνσεων IP του τομέα
featured_tag:
name: Ετικέτα
+ filters:
+ actions:
+ hide: Πλήρης απόκρυψη
+ warn: Απόκρυψη με προειδοποίηση
+ form_admin_settings:
+ custom_css: Προσαρμοσμένο CSS
+ registrations_mode: Ποιος μπορεί να εγγραφεί
+ site_contact_email: E-mail επικοινωνίας
+ site_contact_username: Όνομα χρήστη επικοινωνίας
interactions:
must_be_follower: Μπλόκαρε τις ειδοποιήσεις από όσους δεν σε ακολουθούν
must_be_following: Μπλόκαρε τις ειδοποιήσεις από όσους δεν ακολουθείς
@@ -193,6 +204,7 @@ el:
ip: Διεύθυνση IP
severities:
no_access: Αποκλεισμός πρόσβασης
+ sign_up_block: Αποκλεισμός εγγραφών
sign_up_requires_approval: Περιορισμός εγγραφών
severity: Κανόνας
notification_emails:
diff --git a/config/locales/simple_form.en-GB.yml b/config/locales/simple_form.en-GB.yml
new file mode 100644
index 0000000000..ef03d18104
--- /dev/null
+++ b/config/locales/simple_form.en-GB.yml
@@ -0,0 +1 @@
+en-GB:
diff --git a/config/locales/simple_form.en.yml b/config/locales/simple_form.en.yml
index 45720ad456..4e35573a32 100644
--- a/config/locales/simple_form.en.yml
+++ b/config/locales/simple_form.en.yml
@@ -68,6 +68,32 @@ en:
with_dns_records: An attempt to resolve the given domain's DNS records will be made and the results will also be blocked
featured_tag:
name: 'You might want to use one of these:'
+ filters:
+ action: Chose which action to perform when a post matches the filter
+ actions:
+ hide: Completely hide the filtered content, behaving as if it did not exist
+ warn: Hide the filtered content behind a warning mentioning the filter's title
+ form_admin_settings:
+ backups_retention_period: Keep generated user archives for the specified number of days.
+ bootstrap_timeline_accounts: These accounts will be pinned to the top of new users' follow recommendations.
+ closed_registrations_message: Displayed when sign-ups are closed
+ content_cache_retention_period: Posts from other servers will be deleted after the specified number of days when set to a positive value. This may be irreversible.
+ custom_css: You can apply custom styles on the web version of Mastodon.
+ mascot: Overrides the illustration in the advanced web interface.
+ media_cache_retention_period: Downloaded media files will be deleted after the specified number of days when set to a positive value, and re-downloaded on demand.
+ profile_directory: The profile directory lists all users who have opted-in to be discoverable.
+ require_invite_text: When sign-ups require manual approval, make the “Why do you want to join?” text input mandatory rather than optional
+ site_contact_email: How people can reach you for legal or support inquiries.
+ site_contact_username: How people can reach you on Mastodon.
+ site_extended_description: Any additional information that may be useful to visitors and your users. Can be structured with Markdown syntax.
+ site_short_description: A short description to help uniquely identify your server. Who is running it, who is it for?
+ site_terms: Use your own privacy policy or leave blank to use the default. Can be structured with Markdown syntax.
+ site_title: How people may refer to your server besides its domain name.
+ theme: Theme that logged out visitors and new users see.
+ thumbnail: A roughly 2:1 image displayed alongside your server information.
+ timeline_preview: Logged out visitors will be able to browse the most recent public posts available on the server.
+ trendable_by_default: Skip manual review of trending content. Individual items can still be removed from trends after the fact.
+ trends: Trends show which posts, hashtags and news stories are gaining traction on your server.
form_challenge:
current_password: You are entering a secure area
imports:
@@ -80,6 +106,7 @@ en:
ip: Enter an IPv4 or IPv6 address. You can block entire ranges using the CIDR syntax. Be careful not to lock yourself out!
severities:
no_access: Block access to all resources
+ sign_up_block: New sign-ups will not be possible
sign_up_requires_approval: New sign-ups will require your approval
severity: Choose what will happen with requests from this IP
rule:
@@ -91,6 +118,13 @@ en:
name: You can only change the casing of the letters, for example, to make it more readable
user:
chosen_languages: When checked, only posts in selected languages will be displayed in public timelines
+ role: The role controls which permissions the user has
+ user_role:
+ color: Color to be used for the role throughout the UI, as RGB in hex format
+ highlighted: This makes the role publicly visible
+ name: Public name of the role, if role is set to be displayed as a badge
+ permissions_as_keys: Users with this role will have access to...
+ position: Higher role decides conflict resolution in certain situations. Certain actions can only be performed on roles with a lower priority
webhook:
events: Select events to send
url: Where events will be sent to
@@ -181,6 +215,7 @@ en:
setting_use_pending_items: Slow mode
severity: Severity
sign_in_token_attempt: Security code
+ title: Title
type: Import type
username: Username
username_or_email: Username or Email
@@ -189,6 +224,34 @@ en:
with_dns_records: Include MX records and IPs of the domain
featured_tag:
name: Hashtag
+ filters:
+ actions:
+ hide: Hide completely
+ warn: Hide with a warning
+ form_admin_settings:
+ backups_retention_period: User archive retention period
+ bootstrap_timeline_accounts: Always recommend these accounts to new users
+ closed_registrations_message: Custom message when sign-ups are not available
+ content_cache_retention_period: Content cache retention period
+ custom_css: Custom CSS
+ mascot: Custom mascot (legacy)
+ media_cache_retention_period: Media cache retention period
+ profile_directory: Enable profile directory
+ registrations_mode: Who can sign-up
+ require_invite_text: Require a reason to join
+ show_domain_blocks: Show domain blocks
+ show_domain_blocks_rationale: Show why domains were blocked
+ site_contact_email: Contact e-mail
+ site_contact_username: Contact username
+ site_extended_description: Extended description
+ site_short_description: Server description
+ site_terms: Privacy Policy
+ site_title: Server name
+ theme: Default theme
+ thumbnail: Server thumbnail
+ timeline_preview: Allow unauthenticated access to public timelines
+ trendable_by_default: Allow trends without prior review
+ trends: Enable trends
interactions:
must_be_follower: Block notifications from non-followers
must_be_following: Block notifications from people you don't follow
@@ -202,6 +265,7 @@ en:
ip: IP
severities:
no_access: Block access
+ sign_up_block: Block sign-ups
sign_up_requires_approval: Limit sign-ups
severity: Rule
notification_emails:
@@ -222,6 +286,14 @@ en:
name: Hashtag
trendable: Allow this hashtag to appear under trends
usable: Allow posts to use this hashtag
+ user:
+ role: Role
+ user_role:
+ color: Badge color
+ highlighted: Display role as badge on user profiles
+ name: Name
+ permissions_as_keys: Permissions
+ position: Priority
webhook:
events: Enabled events
url: Endpoint URL
diff --git a/config/locales/simple_form.eo.yml b/config/locales/simple_form.eo.yml
index 47ec6559db..5076506746 100644
--- a/config/locales/simple_form.eo.yml
+++ b/config/locales/simple_form.eo.yml
@@ -10,7 +10,7 @@ eo:
text: Vi povas uzi skribmanierojn de mesaĝoj, kiel URL-ojn, kradvortojn kaj menciojn
title: Laŭvola. Ne videbla por la ricevanto
admin_account_action:
- include_statuses: La uzanto vidos, kiujn afiŝojn estas kaŭzintaj la moderigan agon aŭ averton
+ include_statuses: La uzanto vidos, kiujn afiŝojn kaŭzis la agon de moderigo aŭ de averto
send_email_notification: La uzanto ricevos klarigon pri tio, kio okazis al ties konto
text_html: Malnepra. Vi povas uzi skribmanierojn de mesaĝoj. Vi povas aldoni avertajn antaŭagordojn por ŝpari tempon
type_html: Elektu kion fari kun %{acct}
@@ -35,32 +35,36 @@ eo:
current_password: Pro sekuraj kialoj, bonvolu enigi la pasvorton de la nuna konto
current_username: Por konfirmi, bonvolu enigi la uzantnomon de la nuna konto
digest: Sendita nur post longa tempo de neaktiveco, kaj nur se vi ricevis personan mesaĝon en via foresto
- email: Vi ricevos konfirman retmesaĝon
+ email: Vi ricevos retpoŝtaĵon de konfirmo
fields: Vi povas havi ĝis 4 tabelajn elementojn en via profilo
header: Formato PNG, GIF aŭ JPG. Ĝis %{size}. Estos malgrandigita al %{dimensions}px
inbox_url: Kopiu la URL de la ĉefpaĝo de la ripetilo, kiun vi volas uzi
- irreversible: Elfiltritaj mesaĝoj malaperos por ĉiam, eĉ se la filtrilo estas poste forigita
- locale: La lingvo de la uzant-interfaco, retmesaĝoj kaj puŝ-sciigoj
+ irreversible: La filtritaj mesaĝoj malaperos por eterne, eĉ se la filtrilo poste estas forigita
+ locale: La lingvo de la fasado, de retpoŝtaĵoj, kaj de sciigoj
locked: Vi devos aprobi ĉiun peton de sekvado mane
password: Uzu almenaŭ 8 signojn
phrase: Estos provita senzorge pri la uskleco de teksto aŭ averto pri enhavo de mesaĝo
scopes: Kiujn API-ojn la aplikaĵo permesiĝos atingi. Se vi elektas supran amplekson, vi ne bezonas elekti la individuajn.
- setting_aggregate_reblogs: Ne montri novajn diskonigojn de mesaĝoj laste diskonigitaj (nur efikas al novaj diskonigoj)
- setting_default_sensitive: Tiklaj aŭdovidaĵoj estas defaŭlte kaŝita kaj povas esti malkiŝita per klako
- setting_display_media_default: Kaŝi aŭdovidaĵojn markitajn kiel tiklaj
- setting_display_media_hide_all: Ĉiam kaŝi ĉiujn aŭdovidaĵojn
- setting_display_media_show_all: Ĉiam montri aŭdovidaĵojn markitajn kiel tiklaj
- setting_hide_network: Tiuj, kiujn vi sekvas, kaj tiuj, kiuj sekvas vin ne estos videblaj en via profilo
+ setting_aggregate_reblogs: Ne montri novajn plusendojn de mesaĝoj lastatempe plusenditaj (nur efikas al nove ricevitaj plusendoj)
+ setting_always_send_emails: Normale, la sciigoj per retpoŝto ne estos senditaj kiam vi uzas Mastodon aktive
+ setting_default_sensitive: La tiklaj aŭdovidaĵoj estas kaŝitaj implicite, kaj povas esti montritaj per klako
+ setting_display_media_default: Kaŝi aŭdovidaĵojn markitajn kiel tikla
+ setting_display_media_hide_all: Ĉiam kaŝi la aŭdovidaĵojn
+ setting_display_media_show_all: Ĉiam montri la aŭdovidaĵojn
+ setting_hide_network: Tiuj kiujn vi sekvas, kaj tiuj kiuj sekvas vin estos kaŝitaj en via profilo
setting_noindex: Influas vian publikan profilon kaj mesaĝajn paĝojn
setting_show_application: La aplikaĵo, kiun vi uzas por afiŝi, estos montrita en la detala vido de viaj mesaĝoj
setting_use_blurhash: Transirojn estas bazita sur la koloroj de la kaŝitaj aŭdovidaĵoj sed ne montri iun ajn detalon
setting_use_pending_items: Kaŝi tempoliniajn ĝisdatigojn malantaŭ klako anstataŭ aŭtomate rulumi la fluon
- username: Via uzantnomo estos unika ĉe %{domain}
+ username: Via uzantnomo estos unika en %{domain}
whole_word: Kiam la vorto aŭ frazo estas nur litera aŭ cifera, ĝi estos uzata nur se ĝi kongruas kun la tuta vorto
domain_allow:
domain: Ĉi tiu domajno povos akiri datumon de ĉi tiu servilo kaj envenanta datumo estos prilaborita kaj konservita
featured_tag:
name: 'Vi povus uzi iun el la jenaj:'
+ filters:
+ actions:
+ warn: Kaŝi la enhavon filtritan malantaŭ averto mencianta la nomon de la filtro
form_challenge:
current_password: Vi eniras sekuran areon
imports:
@@ -114,7 +118,7 @@ eo:
text: Anonco
defaults:
autofollow: Inviti al sekvi vian konton
- avatar: Profilbildo
+ avatar: Rolfiguro
bot: Tio estas robota konto
chosen_languages: Filtri lingvojn
confirm_new_password: Konfirmi novan pasvorton
@@ -138,9 +142,10 @@ eo:
note: Sinprezento
otp_attempt: Kodo de dufaktora aŭtentigo
password: Pasvorto
- phrase: Vorto aŭ frazo
+ phrase: Ĉefvorto aŭ frazo
setting_advanced_layout: Ebligi altnivelan retpaĝan interfacon
setting_aggregate_reblogs: Grupigi diskonigojn en templinioj
+ setting_always_send_emails: Ĉiam sendi la sciigojn per retpoŝto
setting_auto_play_gif: Aŭtomate ekigi GIF-ojn
setting_boost_modal: Montri konfirman fenestron antaŭ ol diskonigi mesaĝon
setting_crop_images: Stuci bildojn en negrandigitaj mesaĝoj al 16x9
@@ -150,7 +155,7 @@ eo:
setting_delete_modal: Montri konfirman fenestron antaŭ ol forigi mesaĝon
setting_disable_swiping: Malebligi svingajn movojn
setting_display_media: Aŭdovidaĵa montrado
- setting_display_media_default: Dekomenca
+ setting_display_media_default: Implicita
setting_display_media_hide_all: Kaŝi ĉiujn
setting_display_media_show_all: Montri ĉiujn
setting_expand_spoilers: Ĉiam malfoldas mesaĝojn markitajn per averto pri enhavo
@@ -159,19 +164,24 @@ eo:
setting_reduce_motion: Redukti la movecojn de la animacioj
setting_show_application: Publikigi la aplikaĵon uzatan por sendi mesaĝojn
setting_system_font_ui: Uzi la dekomencan tiparon de la sistemo
- setting_theme: Reteja etoso
+ setting_theme: Etoso de la retejo
setting_trends: Montri hodiaŭajn furoraĵojn
setting_unfollow_modal: Montri konfirman fenestron antaŭ ol ĉesi sekvi iun
setting_use_blurhash: Montri buntajn transirojn por kaŝitaj aŭdovidaĵoj
setting_use_pending_items: Malrapida modo
severity: Graveco
sign_in_token_attempt: Sekureca kodo
+ title: Titolo
type: Importa tipo
username: Uzantnomo
username_or_email: Uzantnomo aŭ Retadreso
whole_word: Tuta vorto
featured_tag:
name: Kradvorto
+ filters:
+ actions:
+ hide: Kaŝi komplete
+ warn: Kaŝi malantaŭ averto
interactions:
must_be_follower: Bloki sciigojn de nesekvantoj
must_be_following: Bloki sciigojn de homoj, kiujn vi ne sekvas
diff --git a/config/locales/simple_form.es-AR.yml b/config/locales/simple_form.es-AR.yml
index d4a9ad264f..49b09ace4f 100644
--- a/config/locales/simple_form.es-AR.yml
+++ b/config/locales/simple_form.es-AR.yml
@@ -68,6 +68,32 @@ es-AR:
with_dns_records: Se hará un intento de resolver los registros DNS del dominio dado y los resultados serán también bloqueados
featured_tag:
name: 'Puede que quieras usar una de estas:'
+ filters:
+ action: Elegir qué acción realizar cuando un mensaje coincide con el filtro
+ actions:
+ hide: Ocultar completamente el contenido filtrado, comportándose como si no existiera
+ warn: Ocultar el contenido filtrado detrás de una advertencia mencionando el título del filtro
+ form_admin_settings:
+ backups_retention_period: Conservar los archivos historiales generados por el usuario durante el número de días especificado.
+ bootstrap_timeline_accounts: Estas cuentas serán fijadas a la parte superior de las recomendaciones de cuentas a seguir para nuevos usuarios.
+ closed_registrations_message: Mostrado cuando los registros están cerrados
+ content_cache_retention_period: Los mensajes de otros servidores se eliminarán después del número especificado de días cuando se establezca un valor positivo. Esto puede ser irreversible.
+ custom_css: Podés aplicar estilos personalizados a la versión web de Mastodon.
+ mascot: Reemplaza la ilustración en la interface web avanzada.
+ media_cache_retention_period: Los archivos de medios descargados se eliminarán después del número especificado de días cuando se establezca un valor positivo, y se volverán a descargar a pedido.
+ profile_directory: El directorio de perfiles lista a todos los usuarios que han optado a que su cuenta pueda ser descubierta.
+ require_invite_text: Cuando registros aprobación manual, hacé que la solicitud de invitación "¿Por qué querés unirte?" sea obligatoria, en vez de opcional
+ site_contact_email: Cómo la gente puede estar en contacto con vos para consultas legales o de ayuda.
+ site_contact_username: Cómo la gente puede estar en contacto con vos en Mastodon.
+ site_extended_description: Cualquier información adicional que pueda ser útil para los visitantes y tus usuarios. Se puede estructurar con sintaxis Markdown.
+ site_short_description: Una breve descripción para ayudar a identificar individualmente a tu servidor. ¿Quién lo administra, a quién va dirigido?
+ site_terms: Usá tu propia política de privacidad o dejala en blanco para usar la predeterminada. Puede estructurarse con sintaxis Markdown.
+ site_title: Cómo la gente puede referirse a tu servidor además de su nombre de dominio.
+ theme: El tema que los visitantes no registrados y los nuevos usuarios ven.
+ thumbnail: Una imagen de aproximadamente 2:1 se muestra junto a la información de tu servidor.
+ timeline_preview: Los visitantes no registrados podrán navegar por los mensajes públicos más recientes disponibles en el servidor.
+ trendable_by_default: Omití la revisión manual del contenido en tendencia. Los elementos individuales aún podrán eliminarse de las tendencias.
+ trends: Las tendencias muestran qué mensajes, etiquetas y noticias están ganando tracción en tu servidor.
form_challenge:
current_password: Estás ingresando en un área segura
imports:
@@ -80,6 +106,7 @@ es-AR:
ip: Ingresá una dirección IPv4 ó IPv6. Podés bloquear rangos completos usando la sintaxis CIDR. ¡Tené cuidado de no bloquearte vos mismo!
severities:
no_access: Bloquear acceso a todos los recursos
+ sign_up_block: Los nuevos registros se deshabilitarán
sign_up_requires_approval: Los nuevos registros requerirán tu aprobación
severity: Elegí lo que pasará con las solicitudes desde esta dirección IP
rule:
@@ -91,6 +118,16 @@ es-AR:
name: Sólo podés cambiar la capitalización de las letras, por ejemplo, para que sea más legible
user:
chosen_languages: Cuando estén marcados, sólo se mostrarán los mensajes en los idiomas seleccionados en las líneas temporales públicas
+ role: El rol controla qué permisos tiene el usuario
+ user_role:
+ color: Color que se utilizará para el rol a lo largo de la interface de usuario, como RGB en formato hexadecimal
+ highlighted: Esto hace que el rol sea públicamente visible
+ name: Nombre público del rol, si el rol se establece para que se muestre como una insignia
+ permissions_as_keys: Los usuarios con este rol tendrán acceso a…
+ position: Un rol más alto decide la resolución de conflictos en ciertas situaciones. Ciertas acciones sólo pueden llevarse a cabo en roles con prioridad inferior
+ webhook:
+ events: Seleccionar eventos para enviar
+ url: Adónde serán enviados los eventos
labels:
account:
fields:
@@ -178,6 +215,7 @@ es-AR:
setting_use_pending_items: Modo lento
severity: Severidad
sign_in_token_attempt: Código de seguridad
+ title: Título
type: Tipo de importación
username: Nombre de usuario
username_or_email: Nombre de usuario o correo electrónico
@@ -186,6 +224,34 @@ es-AR:
with_dns_records: Incluir los registros MX y las direcciones IP del dominio
featured_tag:
name: Etiqueta
+ filters:
+ actions:
+ hide: Ocultar completamente
+ warn: Ocultar con una advertencia
+ form_admin_settings:
+ backups_retention_period: Período de retención del archivo historial del usuario
+ bootstrap_timeline_accounts: Siempre recomendar estas cuentas a usuarios nuevos
+ closed_registrations_message: Mensaje personalizado cuando los registros no están disponibles
+ content_cache_retention_period: Período de retención de la caché de contenido
+ custom_css: CSS personalizado
+ mascot: Mascota personalizada (legado)
+ media_cache_retention_period: Período de retención de la caché de medios
+ profile_directory: Habilitar directorio de perfiles
+ registrations_mode: Quién puede registrarse
+ require_invite_text: Requerir un motivo para unirse
+ show_domain_blocks: Mostrar dominios bloqueados
+ show_domain_blocks_rationale: Mostrar por qué se bloquearon los dominios
+ site_contact_email: Dirección de correo electrónico de contacto
+ site_contact_username: Nombre de usuario de contacto
+ site_extended_description: Descripción extendida
+ site_short_description: Descripción del servidor
+ site_terms: Política de privacidad
+ site_title: Nombre del servidor
+ theme: Tema predeterminado
+ thumbnail: Miniatura del servidor
+ timeline_preview: Permitir el acceso no autenticado a las líneas temporales públicas
+ trendable_by_default: Permitir tendencias sin revisión previa
+ trends: Habilitar tendencias
interactions:
must_be_follower: Bloquear notificaciones de cuentas que no te siguen
must_be_following: Bloquear notificaciones de cuentas que no seguís
@@ -199,6 +265,7 @@ es-AR:
ip: Dirección IP
severities:
no_access: Bloquear acceso
+ sign_up_block: Bloquear registros
sign_up_requires_approval: Limitar registros
severity: Regla
notification_emails:
@@ -219,7 +286,19 @@ es-AR:
name: Etiqueta
trendable: Permitir que esta etiqueta aparezca bajo tendencias
usable: Permitir a los mensajes usar esta etiqueta
+ user:
+ role: Rol
+ user_role:
+ color: Color de Insignia
+ highlighted: Mostrar rol como insignia en perfiles de usuario
+ name: Nombre
+ permissions_as_keys: Permisos
+ position: Prioridad
+ webhook:
+ events: Eventos habilitados
+ url: Dirección web del punto final
'no': 'No'
+ not_recommended: No recomendado
recommended: Opción recomendada
required:
mark: "*"
diff --git a/config/locales/simple_form.es-MX.yml b/config/locales/simple_form.es-MX.yml
index d02e97a3ad..80d5b83fe4 100644
--- a/config/locales/simple_form.es-MX.yml
+++ b/config/locales/simple_form.es-MX.yml
@@ -49,6 +49,7 @@ es-MX:
phrase: Se aplicará sin importar las mayúsculas o los avisos de contenido de un toot
scopes: Qué APIs de la aplicación tendrán acceso. Si seleccionas el alcance de nivel mas alto, no necesitas seleccionar las individuales.
setting_aggregate_reblogs: No mostrar nuevos retoots para los toots que han sido recientemente retooteados (sólo afecta a los retoots recibidos recientemente)
+ setting_always_send_emails: Normalmente las notificaciones por correo electrónico no se enviarán cuando estés usando Mastodon activamente
setting_default_sensitive: El contenido multimedia sensible está oculto por defecto y puede ser mostrado con un click
setting_display_media_default: Ocultar contenido multimedia marcado como sensible
setting_display_media_hide_all: Siempre ocultar todo el contenido multimedia
@@ -67,6 +68,15 @@ es-MX:
with_dns_records: Se hará un intento de resolver los registros DNS del dominio dado y los resultados serán también puestos en lista negra
featured_tag:
name: 'Puede que quieras usar uno de estos:'
+ filters:
+ action: Elegir qué acción realizar cuando una publicación coincide con el filtro
+ actions:
+ hide: Ocultar completamente el contenido filtrado, comportándose como si no existiera
+ warn: Ocultar el contenido filtrado detrás de una advertencia mencionando el título del filtro
+ form_admin_settings:
+ backups_retention_period: Mantener los archivos de usuario generados durante el número de días especificado.
+ content_cache_retention_period: Las publicaciones de otros servidores se eliminarán después del número especificado de días cuando se establezca un valor positivo. Esto puede ser irreversible.
+ media_cache_retention_period: Los archivos multimedia descargados se eliminarán después del número especificado de días cuando se establezca un valor positivo, y se redescargarán bajo demanda.
form_challenge:
current_password: Estás entrando en un área segura
imports:
@@ -79,6 +89,7 @@ es-MX:
ip: Introduzca una dirección IPv4 o IPv6. Puede bloquear rangos completos usando la sintaxis CIDR. ¡Tenga cuidado de no quedarse fuera!
severities:
no_access: Bloquear acceso a todos los recursos
+ sign_up_block: Los nuevos registros se deshabilitarán
sign_up_requires_approval: Nuevos registros requerirán su aprobación
severity: Elegir lo que pasará con las peticiones desde esta IP
rule:
@@ -90,6 +101,16 @@ es-MX:
name: Sólo se puede cambiar el cajón de las letras, por ejemplo, para que sea más legible
user:
chosen_languages: Cuando se marca, solo se mostrarán los toots en los idiomas seleccionados en los timelines públicos
+ role: El rol controla qué permisos tiene el usuario
+ user_role:
+ color: Color que se utilizará para el rol a lo largo de la interfaz de usuario, como RGB en formato hexadecimal
+ highlighted: Esto hace que el rol sea públicamente visible
+ name: Nombre público del rol, si el rol se establece para que se muestre como una insignia
+ permissions_as_keys: Los usuarios con este rol tendrán acceso a...
+ position: Un rol superior decide la resolución de conflictos en ciertas situaciones. Ciertas acciones sólo pueden llevarse a cabo en roles con menor prioridad
+ webhook:
+ events: Seleccionar eventos para enviar
+ url: Donde los eventos serán enviados
labels:
account:
fields:
@@ -151,6 +172,7 @@ es-MX:
phrase: Palabra clave o frase
setting_advanced_layout: Habilitar interfaz web avanzada
setting_aggregate_reblogs: Agrupar retoots en las líneas de tiempo
+ setting_always_send_emails: Enviar siempre notificaciones por correo
setting_auto_play_gif: Reproducir automáticamente los GIFs animados
setting_boost_modal: Mostrar ventana de confirmación antes de un Retoot
setting_crop_images: Recortar a 16x9 las imágenes de los toots no expandidos
@@ -176,6 +198,7 @@ es-MX:
setting_use_pending_items: Modo lento
severity: Severidad
sign_in_token_attempt: Código de seguridad
+ title: Título
type: Importar tipo
username: Nombre de usuario
username_or_email: Usuario o Email
@@ -184,6 +207,14 @@ es-MX:
with_dns_records: Incluye los registros MX y las IP del dominio
featured_tag:
name: Etiqueta
+ filters:
+ actions:
+ hide: Ocultar completamente
+ warn: Ocultar con una advertencia
+ form_admin_settings:
+ backups_retention_period: Período de retención del archivo de usuario
+ content_cache_retention_period: Período de retención de caché de contenido
+ media_cache_retention_period: Período de retención de caché multimedia
interactions:
must_be_follower: Bloquear notificaciones de personas que no te siguen
must_be_following: Bloquear notificaciones de personas que no sigues
@@ -197,6 +228,7 @@ es-MX:
ip: IP
severities:
no_access: Bloquear acceso
+ sign_up_block: Bloquear registros
sign_up_requires_approval: Limitar registros
severity: Regla
notification_emails:
@@ -217,7 +249,19 @@ es-MX:
name: Etiqueta
trendable: Permitir que esta etiqueta aparezca bajo tendencias
usable: Permitir a los toots usar esta etiqueta
+ user:
+ role: Rol
+ user_role:
+ color: Color de insignia
+ highlighted: Mostrar rol como insignia en perfiles de usuario
+ name: Nombre
+ permissions_as_keys: Permisos
+ position: Prioridad
+ webhook:
+ events: Eventos habilitados
+ url: URL de Endpoint
'no': 'No'
+ not_recommended: No recomendado
recommended: Recomendado
required:
mark: "*"
diff --git a/config/locales/simple_form.es.yml b/config/locales/simple_form.es.yml
index 53c6d9c45e..8df08dc8d4 100644
--- a/config/locales/simple_form.es.yml
+++ b/config/locales/simple_form.es.yml
@@ -68,6 +68,32 @@ es:
with_dns_records: Se hará un intento de resolver los registros DNS del dominio dado y los resultados serán también puestos en lista negra
featured_tag:
name: 'Puede que quieras usar uno de estos:'
+ filters:
+ action: Elegir qué acción realizar cuando una publicación coincide con el filtro
+ actions:
+ hide: Ocultar completamente el contenido filtrado, comportándose como si no existiera
+ warn: Ocultar el contenido filtrado detrás de una advertencia mencionando el título del filtro
+ form_admin_settings:
+ backups_retention_period: Mantener los archivos de usuario generados durante el número de días especificado.
+ bootstrap_timeline_accounts: Estas cuentas aparecerán en la parte superior de las recomendaciones de los nuevos usuarios.
+ closed_registrations_message: Mostrado cuando los registros están cerrados
+ content_cache_retention_period: Las publicaciones de otros servidores se eliminarán después del número especificado de días cuando se establezca un valor positivo. Esto puede ser irreversible.
+ custom_css: Puedes aplicar estilos personalizados a la versión web de Mastodon.
+ mascot: Reemplaza la ilustración en la interfaz web avanzada.
+ media_cache_retention_period: Los archivos multimedia descargados se eliminarán después del número especificado de días cuando se establezca un valor positivo, y se redescargarán bajo demanda.
+ profile_directory: El directorio de perfiles lista a todos los usuarios que han optado por que su cuenta pueda ser descubierta.
+ require_invite_text: Cuando los registros requieren aprobación manual, hace obligatoria la entrada de texto "¿Por qué quieres unirte?" en lugar de opcional
+ site_contact_email: Cómo la gente puede ponerse en contacto contigo para consultas legales o de ayuda.
+ site_contact_username: Cómo puede contactarte la gente en Mastodon.
+ site_extended_description: Cualquier información adicional que pueda ser útil para los visitantes y sus usuarios. Se puede estructurar con formato Markdown.
+ site_short_description: Una breve descripción para ayudar a identificar su servidor de forma única. ¿Quién lo administra, a quién va dirigido?
+ site_terms: Utiliza tu propia política de privacidad o déjala en blanco para usar la predeterminada Puede estructurarse con formato Markdown.
+ site_title: Cómo puede referirse la gente a tu servidor además de por el nombre de dominio.
+ theme: El tema que los visitantes no registrados y los nuevos usuarios ven.
+ thumbnail: Una imagen de aproximadamente 2:1 se muestra junto a la información de tu servidor.
+ timeline_preview: Los visitantes no registrados podrán navegar por los mensajes públicos más recientes disponibles en el servidor.
+ trendable_by_default: Omitir la revisión manual del contenido en tendencia. Los elementos individuales aún podrán eliminarse de las tendencias.
+ trends: Las tendencias muestran qué mensajes, etiquetas y noticias están ganando tracción en tu servidor.
form_challenge:
current_password: Estás entrando en un área segura
imports:
@@ -80,6 +106,7 @@ es:
ip: Introduzca una dirección IPv4 o IPv6. Puede bloquear rangos completos usando la sintaxis CIDR. ¡Tenga cuidado de no quedarse fuera!
severities:
no_access: Bloquear acceso a todos los recursos
+ sign_up_block: Los nuevos registros se deshabilitarán
sign_up_requires_approval: Nuevos registros requerirán su aprobación
severity: Elegir lo que pasará con las peticiones desde esta IP
rule:
@@ -91,6 +118,16 @@ es:
name: Sólo se puede cambiar el cajón de las letras, por ejemplo, para que sea más legible
user:
chosen_languages: Cuando se marca, solo se mostrarán las publicaciones en los idiomas seleccionados en las líneas de tiempo públicas
+ role: El rol controla qué permisos tiene el usuario
+ user_role:
+ color: Color que se utilizará para el rol a lo largo de la interfaz de usuario, como RGB en formato hexadecimal
+ highlighted: Esto hace que el rol sea públicamente visible
+ name: Nombre público del rol, si el rol se establece para que se muestre como una insignia
+ permissions_as_keys: Los usuarios con este rol tendrán acceso a...
+ position: Un rol superior decide la resolución de conflictos en ciertas situaciones. Ciertas acciones sólo pueden llevarse a cabo en roles con menor prioridad
+ webhook:
+ events: Seleccionar eventos para enviar
+ url: Donde los eventos serán enviados
labels:
account:
fields:
@@ -99,7 +136,7 @@ es:
account_alias:
acct: Maneja la cuenta antigua
account_migration:
- acct: Maneja la cuenta nueva
+ acct: Alias de la nueva cuenta
account_warning_preset:
text: Texto predefinido
title: Título
@@ -178,6 +215,7 @@ es:
setting_use_pending_items: Modo lento
severity: Severidad
sign_in_token_attempt: Código de seguridad
+ title: Título
type: Importar tipo
username: Nombre de usuario
username_or_email: Usuario o Email
@@ -186,6 +224,34 @@ es:
with_dns_records: Incluye los registros MX y las IP del dominio
featured_tag:
name: Etiqueta
+ filters:
+ actions:
+ hide: Ocultar completamente
+ warn: Ocultar con una advertencia
+ form_admin_settings:
+ backups_retention_period: Período de retención del archivo de usuario
+ bootstrap_timeline_accounts: Recomendar siempre estas cuentas a nuevos usuarios
+ closed_registrations_message: Mensaje personalizado cuando los registros no están disponibles
+ content_cache_retention_period: Período de retención de caché de contenido
+ custom_css: CSS personalizado
+ mascot: Mascota personalizada (legado)
+ media_cache_retention_period: Período de retención de caché multimedia
+ profile_directory: Habilitar directorio de perfiles
+ registrations_mode: Quién puede registrarse
+ require_invite_text: Requerir una razón para unirse
+ show_domain_blocks: Mostrar dominios bloqueados
+ show_domain_blocks_rationale: Mostrar por qué se bloquearon los dominios
+ site_contact_email: Dirección de correo electrónico de contacto
+ site_contact_username: Nombre de usuario de contacto
+ site_extended_description: Descripción extendida
+ site_short_description: Descripción del servidor
+ site_terms: Política de Privacidad
+ site_title: Nombre del servidor
+ theme: Tema por defecto
+ thumbnail: Miniatura del servidor
+ timeline_preview: Permitir el acceso no autenticado a las líneas de tiempo públicas
+ trendable_by_default: Permitir tendencias sin revisión previa
+ trends: Habilitar tendencias
interactions:
must_be_follower: Bloquear notificaciones de personas que no te siguen
must_be_following: Bloquear notificaciones de personas que no sigues
@@ -199,6 +265,7 @@ es:
ip: IP
severities:
no_access: Bloquear acceso
+ sign_up_block: Bloquear registros
sign_up_requires_approval: Limitar registros
severity: Regla
notification_emails:
@@ -219,7 +286,19 @@ es:
name: Etiqueta
trendable: Permitir que esta etiqueta aparezca bajo tendencias
usable: Permitir a las publicaciones usar esta etiqueta
+ user:
+ role: Rol
+ user_role:
+ color: Color de insignia
+ highlighted: Mostrar rol como insignia en perfiles de usuario
+ name: Nombre
+ permissions_as_keys: Permisos
+ position: Prioridad
+ webhook:
+ events: Eventos habilitados
+ url: URL de Endpoint
'no': 'No'
+ not_recommended: No recomendado
recommended: Recomendado
required:
mark: "*"
diff --git a/config/locales/simple_form.fi.yml b/config/locales/simple_form.fi.yml
index 678ce72912..2a0765cfff 100644
--- a/config/locales/simple_form.fi.yml
+++ b/config/locales/simple_form.fi.yml
@@ -37,6 +37,7 @@ fi:
current_password: Turvallisuussyistä kirjoita nykyisen tilin salasana
current_username: Vahvista kirjoittamalla nykyisen tilin käyttäjätunnus
digest: Lähetetään vain pitkän poissaolon jälkeen ja vain, jos olet saanut suoria viestejä poissaolosi aikana
+ discoverable: Salli tuntemattomien löytää tilisi suositusten, trendien ja muiden ominaisuuksien kautta
email: Sinulle lähetetään vahvistussähköposti
fields: Sinulla voi olla korkeintaan 4 asiaa profiilissasi taulukossa
header: PNG, GIF tai JPG. Enintään %{size}. Skaalataan kokoon %{dimensions} px
@@ -48,6 +49,7 @@ fi:
phrase: Täytetään riippumatta julkaisun kirjainkoon tai sisällön varoituksesta
scopes: Mihin sovellusliittymiin sovellus pääsee käsiksi. Jos valitset ylätason laajuuden, sinun ei tarvitse valita yksittäisiä.
setting_aggregate_reblogs: Älä näytä uusia tehosteita viesteille, joita on äskettäin tehostettu (koskee vain äskettäin saatuja tehosteita)
+ setting_always_send_emails: Yleensä sähköposti-ilmoituksia ei lähetetä, kun käytät aktiivisesti Mastodonia
setting_default_sensitive: Arkaluontoinen media on oletuksena piilotettu ja se voidaan näyttää yhdellä napsautuksella
setting_display_media_default: Piilota arkaluonteiseksi merkitty media
setting_display_media_hide_all: Piilota aina kaikki media
@@ -66,6 +68,32 @@ fi:
with_dns_records: Annetun verkkotunnuksen DNS-tietueet yritetään ratkaista ja tulokset myös estetään
featured_tag:
name: 'Voit halutessasi käyttää jotakin näistä:'
+ filters:
+ action: Valitse, mikä toiminto suoritetaan, kun viesti vastaa suodatinta
+ actions:
+ hide: Piilota suodatettu sisältö kokonaan ja käyttäydy ikään kuin sitä ei olisi olemassa
+ warn: Piilota suodatettu sisältö varoituksen taakse, jossa mainitaan suodattimen otsikko
+ form_admin_settings:
+ backups_retention_period: Säilytä luodut arkistot määritetyn määrän päiviä.
+ bootstrap_timeline_accounts: Nämä tilit kiinnitetään uusien käyttäjien suositusten yläpuolelle.
+ closed_registrations_message: Näkyy, kun ilmoittautuminen on suljettu
+ content_cache_retention_period: Viestit muilta palvelimilta poistetaan määritetyn määrän päiviä jälkeen, kun arvo on asetettu positiiviseksi. Tämä voi olla peruuttamatonta.
+ custom_css: Voit käyttää mukautettuja tyylejä Mastodonin verkkoversiossa.
+ mascot: Ohittaa kuvituksen edistyneessä käyttöliittymässä.
+ media_cache_retention_period: Ladatut mediatiedostot poistetaan määritetyn määrän päiviä jälkeen, kun arvo on positiivinen ja ladataan uudelleen pyynnöstä.
+ profile_directory: Profiilihakemisto lueteloi kaikki käyttäjät, jotka ovat ilmoittaneet olevansa löydettävissä.
+ require_invite_text: Kun kirjautuminen vaatii manuaalisen hyväksynnän, tee ”Miksi haluat liittyä?” teksti syötetään pakolliseksi eikä vapaaehtoiseksi
+ site_contact_email: Kuinka ihmiset voivat tavoittaa sinut oikeudellisissa tai tukikysymyksissä.
+ site_contact_username: Miten ihmiset voivat tavoittaa sinut Mastodonissa.
+ site_extended_description: Kaikki lisätiedot, jotka voivat olla hyödyllisiä kävijöille ja käyttäjille. Voidaan jäsentää Markdown-syntaksilla.
+ site_short_description: Lyhyt kuvaus auttaa yksilöimään palvelimesi. Kuka sitä johtaa, kenelle se on tarkoitettu?
+ site_terms: Käytä omaa tietosuojakäytäntöä tai jätä tyhjäksi, jos haluat käyttää oletusta. Voidaan jäsentää Markdown-syntaksilla.
+ site_title: Kuinka ihmiset voivat viitata palvelimeen sen verkkotunnuksen lisäksi.
+ theme: Teema, jonka uloskirjautuneet vierailijat ja uudet käyttäjät näkevät.
+ thumbnail: Noin 2:1 kuva näytetään palvelimen tietojen rinnalla.
+ timeline_preview: Uloskirjautuneet vierailijat voivat selata uusimpia julkisia viestejä, jotka ovat saatavilla palvelimella.
+ trendable_by_default: Ohita suositun sisällön manuaalinen tarkistus. Yksittäisiä kohteita voidaan edelleen poistaa jälkikäteen.
+ trends: Trendit osoittavat, mitkä viestit, hashtagit ja uutiset ovat saamassa vetoa palvelimellasi.
form_challenge:
current_password: Olet menossa suojatulle alueelle
imports:
@@ -78,6 +106,7 @@ fi:
ip: Kirjoita IPv4- tai IPv6-osoite. Voit estää kokonaisia alueita käyttämällä CIDR-syntaksia. Varo, että et lukitse itseäsi!
severities:
no_access: Estä pääsy kaikkiin resursseihin
+ sign_up_block: Uudet kirjautumiset eivät ole mahdollisia
sign_up_requires_approval: Uudet rekisteröitymiset edellyttävät hyväksyntääsi
severity: Valitse, mitä tapahtuu tämän IP-osoitteen pyynnöille
rule:
@@ -89,6 +118,16 @@ fi:
name: Voit muuttaa esimerkiksi kirjaimia paremmin luettavaksi
user:
chosen_languages: Kun valittu, vain valituilla kielillä julkaistut viestit näkyvät julkisilla aikajanoilla
+ role: Rooli määrää, mitkä käyttöoikeudet käyttäjällä on
+ user_role:
+ color: Väri, jota käytetään roolin koko käyttöliittymässä, RGB heksamuodossa
+ highlighted: Tämä tekee roolista julkisesti näkyvän
+ name: Roolin julkinen nimi, jos rooli on asetettu näytettäväksi mekkinä
+ permissions_as_keys: Käyttäjillä, joilla on tämä rooli, on käyttöoikeus...
+ position: Korkeampi rooli ratkaisee konfliktit tietyissä tilanteissa. Tiettyjä toimintoja voidaan suorittaa vain rooleille, joiden prioriteetti on pienempi
+ webhook:
+ events: Valitse lähetettävät tapahtumat
+ url: Mihin tapahtumat lähetetään
labels:
account:
fields:
@@ -150,6 +189,7 @@ fi:
phrase: Avainsana tai lause
setting_advanced_layout: Ota käyttöön edistynyt web käyttöliittymä
setting_aggregate_reblogs: Ryhmitä boostaukset aikajanalla
+ setting_always_send_emails: Lähetä aina sähköposti-ilmoituksia
setting_auto_play_gif: Toista GIF-animaatiot automaattisesti
setting_boost_modal: Kysy vahvistusta ennen buustausta
setting_crop_images: Rajaa kuvat avaamattomissa tuuttauksissa 16:9 kuvasuhteeseen
@@ -175,6 +215,7 @@ fi:
setting_use_pending_items: Hidastila
severity: Vakavuus
sign_in_token_attempt: Turvakoodi
+ title: Otsikko
type: Tietojen laji
username: Käyttäjänimi
username_or_email: Käyttäjänimi tai sähköposti
@@ -183,6 +224,34 @@ fi:
with_dns_records: Sisällytä toimialueen MX tietueet ja IP-osoite
featured_tag:
name: Aihetunniste
+ filters:
+ actions:
+ hide: Piilota kokonaan
+ warn: Piilota varoituksella
+ form_admin_settings:
+ backups_retention_period: Käyttäjän arkiston säilytysaika
+ bootstrap_timeline_accounts: Suosittele aina näitä tilejä uusille käyttäjille
+ closed_registrations_message: Mukautettu viesti, kun kirjautumisia ei ole saatavilla
+ content_cache_retention_period: Sisällön välimuistin säilytysaika
+ custom_css: Mukautettu CSS
+ mascot: Mukautettu maskotti (legacy)
+ media_cache_retention_period: Median välimuistin säilytysaika
+ profile_directory: Ota profiilihakemisto käyttöön
+ registrations_mode: Kuka voi rekisteröityä
+ require_invite_text: Vaadi syy liittyä
+ show_domain_blocks: Näytä domainestot
+ show_domain_blocks_rationale: Näytä miksi verkkotunnukset on estetty
+ site_contact_email: Ota yhteyttä sähköpostilla
+ site_contact_username: Kontaktin käyttäjänimi
+ site_extended_description: Laajennettu kuvaus
+ site_short_description: Palvelimen kuvaus
+ site_terms: Tietosuojakäytäntö
+ site_title: Palvelimen nimi
+ theme: Oletusteema
+ thumbnail: Palvelimen pikkukuva
+ timeline_preview: Salli todentamaton pääsy julkiselle aikajanalle
+ trendable_by_default: Salli trendit ilman ennakkotarkastusta
+ trends: Trendit käyttöön
interactions:
must_be_follower: Estä ilmoitukset käyttäjiltä, jotka eivät seuraa sinua
must_be_following: Estä ilmoitukset käyttäjiltä, joita et seuraa
@@ -196,6 +265,7 @@ fi:
ip: IP
severities:
no_access: Estä pääsy
+ sign_up_block: Estä kirjautumiset
sign_up_requires_approval: Rajoita rekisteröitymisiä
severity: Sääntö
notification_emails:
@@ -216,7 +286,19 @@ fi:
name: Aihetunniste
trendable: Salli tämän aihetunnisteen näkyä trendeissä
usable: Salli postauksien käyttää tätä aihetunnistetta
+ user:
+ role: Rooli
+ user_role:
+ color: Merkin väri
+ highlighted: Näyttä rooli merkkinä käyttäjäprofiileissa
+ name: Nimi
+ permissions_as_keys: Oikeudet
+ position: Prioriteetti
+ webhook:
+ events: Tapahtumat käytössä
+ url: Päätepisteen URL
'no': Ei
+ not_recommended: Ei suositella
recommended: Suositeltu
required:
mark: "*"
diff --git a/config/locales/simple_form.fr.yml b/config/locales/simple_form.fr.yml
index 9a777c45ce..1173d54802 100644
--- a/config/locales/simple_form.fr.yml
+++ b/config/locales/simple_form.fr.yml
@@ -68,6 +68,11 @@ fr:
with_dns_records: Une tentative de résolution des enregistrements DNS du domaine donné sera effectuée et les résultats seront également mis sur liste noire
featured_tag:
name: 'Vous pourriez vouloir utiliser l’un d’entre eux :'
+ filters:
+ action: Choisir l'action à effectuer quand un message correspond au filtre
+ actions:
+ hide: Cacher complètement le contenu filtré, faire comme s'il n'existait pas
+ warn: Cacher le contenu filtré derrière un avertissement mentionnant le nom du filtre
form_challenge:
current_password: Vous entrez une zone sécurisée
imports:
@@ -80,6 +85,7 @@ fr:
ip: Entrez une adresse IPv4 ou IPv6. Vous pouvez bloquer des plages entières en utilisant la syntaxe CIDR. Faites attention à ne pas vous bloquer vous-même !
severities:
no_access: Bloquer l’accès à toutes les ressources
+ sign_up_block: Les nouvelles inscriptions ne seront pas possibles
sign_up_requires_approval: Les nouvelles inscriptions nécessiteront votre approbation
severity: Choisir ce qui se passera avec les requêtes de cette adresse IP
rule:
@@ -91,6 +97,16 @@ fr:
name: Vous ne pouvez modifier que la casse des lettres, par exemple, pour le rendre plus lisible
user:
chosen_languages: Lorsque coché, seuls les messages dans les langues sélectionnées seront affichés sur les fils publics
+ role: Le rôle définit quelles autorisations a l'utilisateur⋅rice
+ user_role:
+ color: Couleur à attribuer au rôle dans l'interface, au format hexadécimal RVB
+ highlighted: Cela rend le rôle visible publiquement
+ name: Nom public du rôle, si le rôle est configuré pour être affiché avec un badge
+ permissions_as_keys: Les utilisateur·rice·s ayant ce rôle auront accès à …
+ position: Dans certaines situations, un rôle supérieur peut trancher la résolution d'un conflit. Mais certaines opérations ne peuvent être effectuées que sur des rôles ayant une priorité inférieure
+ webhook:
+ events: Sélectionnez les événements à envoyer
+ url: Là où les événements seront envoyés
labels:
account:
fields:
@@ -178,6 +194,7 @@ fr:
setting_use_pending_items: Mode lent
severity: Sévérité
sign_in_token_attempt: Code de sécurité
+ title: Nom
type: Type d’import
username: Identifiant
username_or_email: Nom d’utilisateur·rice ou courriel
@@ -186,6 +203,25 @@ fr:
with_dns_records: Inclure les enregistrements MX et IP du domaine
featured_tag:
name: Hashtag
+ filters:
+ actions:
+ hide: Cacher complètement
+ warn: Cacher derrière un avertissement
+ form_admin_settings:
+ content_cache_retention_period: Durée de rétention du contenu dans le cache
+ mascot: Mascotte personnalisée (héritée)
+ media_cache_retention_period: Durée de rétention des médias dans le cache
+ profile_directory: Activer l’annuaire des profils
+ registrations_mode: Qui peut s’inscrire
+ site_extended_description: Description étendue
+ site_short_description: Description du serveur
+ site_terms: Politique de confidentialité
+ site_title: Nom du serveur
+ theme: Thème par défaut
+ thumbnail: Miniature du serveur
+ timeline_preview: Autoriser l’accès non authentifié aux fils publics
+ trendable_by_default: Autoriser les tendances sans révision préalable
+ trends: Activer les tendances
interactions:
must_be_follower: Bloquer les notifications des personnes qui ne vous suivent pas
must_be_following: Bloquer les notifications des personnes que vous ne suivez pas
@@ -199,6 +235,7 @@ fr:
ip: IP
severities:
no_access: Bloquer l’accès
+ sign_up_block: Bloquer les inscriptions
sign_up_requires_approval: Limite des inscriptions
severity: Règle
notification_emails:
@@ -219,7 +256,19 @@ fr:
name: Hashtag
trendable: Autoriser ce hashtag à apparaitre dans les tendances
usable: Autoriser les messages à utiliser ce hashtag
+ user:
+ role: Rôle
+ user_role:
+ color: Couleur du badge
+ highlighted: Afficher le rôle avec un badge sur les profils des utilisateur·rice·s
+ name: Nom
+ permissions_as_keys: Autorisations
+ position: Priorité
+ webhook:
+ events: Événements activés
+ url: URL du point de terminaison
'no': Non
+ not_recommended: Non recommandé
recommended: Recommandé
required:
mark: "*"
diff --git a/config/locales/simple_form.gd.yml b/config/locales/simple_form.gd.yml
index 63199e2cdc..5a23f5f851 100644
--- a/config/locales/simple_form.gd.yml
+++ b/config/locales/simple_form.gd.yml
@@ -68,6 +68,32 @@ gd:
with_dns_records: Thèid oidhirp a dhèanamh air fuasgladh clàran DNS na h-àrainne a chaidh a thoirt seachad agus thèid na toraidhean a bhacadh cuideachd
featured_tag:
name: 'Mholamaid fear dhe na tagaichean seo:'
+ filters:
+ action: Tagh na thachras nuair a bhios post a’ maidseadh na criathraige
+ actions:
+ hide: Falaich an t-susbaint chriathraichte uile gu lèir mar nach robh i ann idir
+ warn: Falaich an t-susbaint chriathraichte air cùlaibh rabhaidh a dh’innseas tiotal na criathraige
+ form_admin_settings:
+ backups_retention_period: Cùm na tasg-lannan a chaidh a ghintinn dhan luchd-cleachdaidh rè an àireamh de làithean a shònraich thu.
+ bootstrap_timeline_accounts: Thèid na cunntasan seo a phrìneachadh air bàrr nam molaidhean leantainn dhan luchd-cleachdaidh ùr.
+ closed_registrations_message: Thèid seo a shealltainn nuair a bhios an clàradh dùinte
+ content_cache_retention_period: Thèid na postaichean o fhrithealaichean eile a sguabadh às às dèidh an àireamh de làithean a shònraich thu nuair a bhios luach dearbh air. Dh’fhaoidte nach gabh seo a neo-dhèanamh.
+ custom_css: "’S urrainn dhut stoidhlean gnàthaichte a chur an sàs air an tionndadh-lìn de Mhastodon."
+ mascot: Tar-àithnidh seo an sgead-dhealbh san eadar-aghaidh-lìn adhartach.
+ media_cache_retention_period: Thèid na faidhlichean meadhain air an luchdadh a-nuas a sguabadh às às dèidh an àireamh de làithean a shònraich thu nuair a bhios luach dearbh air agus an ath-luachdadh nuair a thèid an iarraidh an uairsin.
+ profile_directory: Seallaidh eòlaire nam pròifil liosta dhen luchd-cleachdaidh a dh’aontaich gun gabh an rùrachadh.
+ require_invite_text: Nuair a bhios aontachadh a làimh riatanach dhan chlàradh, dèan an raon teacsa “Carson a bu mhiann leat ballrachd fhaighinn?” riatanach seach roghainneil
+ site_contact_email: Mar a ruigear thu le ceistean laghail no taice.
+ site_contact_username: Mar a ruigear thu air Mastodon.
+ site_extended_description: Cuir fiosrachadh sam bith eile ris a bhios feumail do dh’aoighean ’s an luchd-cleachdaidh agad. ’S urrainn dhut structar a chur air le co-chàradh Markdown.
+ site_short_description: Tuairisgeul goirid a chuidicheas le aithneachadh sònraichte an fhrithealaiche agad. Cò leis is cò dha a tha e?
+ site_terms: Cleachd am poileasaidh prìobhaideachd agad fhèin no fàg bàn e gus am fear bunaiteach a chleachdadh. ’S urrainn dhut structar a chur air le co-chàradh Markdown.
+ site_title: An t-ainm a tha air an fhrithealaiche agad seach ainm àrainne.
+ theme: An t-ùrlar a chì na h-aoighean gun chlàradh a-staigh agus an luchd-cleachdaidh ùr.
+ thumbnail: Dealbh mu 2:1 a thèid a shealltainn ri taobh fiosrachadh an fhrithealaiche agad.
+ timeline_preview: "’S urrainn dha na h-aoighean gun chlàradh a-staigh na postaichean poblach as ùire a tha ri fhaighinn air an fhrithealaiche a bhrabhsadh."
+ trendable_by_default: Geàrr leum thar lèirmheas a làimh na susbainte a’ treandadh. Gabhaidh nithean fa leth a thoirt far nan treandaichean fhathast an uairsin.
+ trends: Seallaidh na treandaichean na postaichean, tagaichean hais is naidheachdan a tha fèill mhòr orra air an fhrithealaiche agad.
form_challenge:
current_password: Tha thu a’ tighinn a-steach gu raon tèarainte
imports:
@@ -80,6 +106,7 @@ gd:
ip: Cuir a-steach seòladh IPv4 no IPv6. ’S urrainn dhut rainsean gu lèir a bhacadh le co-chàradh CIDR. Thoir an aire nach gluais thu thu fhèin a-mach!
severities:
no_access: Bac inntrigeadh dha na goireasan uile
+ sign_up_block: Cha bhi ùr-chlàradh ceadaichte
sign_up_requires_approval: Bidh cleachdaichean air an ùr-chlàradh feumach air d’ aonta
severity: Tagh na thachras le iarrtasan on IP seo
rule:
@@ -91,6 +118,16 @@ gd:
name: Mar eisimpleir, ’s urrainn dhut measgachadh de litrichean mòra ’s beaga a chleachdadh ach an gabh a leughadh nas fhasa
user:
chosen_languages: Nuair a bhios cromag ris, cha nochd ach postaichean sna cànain a thagh thu air loidhnichean-ama poblach
+ role: Stiùiridh an dreuchd dè na ceadan a bhios aig cleachdaiche
+ user_role:
+ color: An datha a bhios air an dreuchd air feadh na h-eadar-aghaidh, ’na RGB san fhòrmat sia-dheicheach
+ highlighted: Le seo, chithear an dreuchd gu poblach
+ name: Ainm poblach na dreuchd ma chaidh a suidheachadh gun nochd i na baidse
+ permissions_as_keys: Gheibh na cleachdaichean aig a bheil an dreuchd seo inntrigeadh dha…
+ position: Ma tha còmhstri ann, buannaichidh an dreuchd as àirde ann an cuid a shuidheachaidhean. Tha gnìomhan sònraichte ann nach urrainn ach dreuchdan le prìomhachas ìosail a ghabhail
+ webhook:
+ events: Tagh na tachartasan a thèid a chur
+ url: Far an dèid na tachartasan a chur
labels:
account:
fields:
@@ -178,6 +215,7 @@ gd:
setting_use_pending_items: Am modh slaodach
severity: Donad
sign_in_token_attempt: Còd-tèarainteachd
+ title: Tiotal
type: Seòrsa an ion-phortaidh
username: Ainm-cleachdaiche
username_or_email: Ainm-cleachdaiche no post-d
@@ -186,6 +224,34 @@ gd:
with_dns_records: Gabh a-steach clàran MX agus IPan na h-àrainne
featured_tag:
name: Taga hais
+ filters:
+ actions:
+ hide: Falaich uile gu lèir
+ warn: Falaich le rabhadh
+ form_admin_settings:
+ backups_retention_period: Ùine glèidhidh aig tasg-lannan an luchd-cleachdaidh
+ bootstrap_timeline_accounts: Mol na cunntasan seo do chleachdaichean ùra an-còmhnaidh
+ closed_registrations_message: Teachdaireachd ghnàthaichte nuair nach eil clàradh ri fhaighinn
+ content_cache_retention_period: Ùine glèidhidh aig tasgadan na susbainte
+ custom_css: CSS gnàthaichte
+ mascot: Suaichnean gnàthaichte (dìleabach)
+ media_cache_retention_period: Ùine glèidhidh aig tasgadan nam meadhanan
+ profile_directory: Cuir eòlaire nam pròifil an comas
+ registrations_mode: Cò dh’fhaodas clàradh
+ require_invite_text: Iarr adhbhar clàraidh
+ show_domain_blocks: Seall bacaidhean àrainne
+ show_domain_blocks_rationale: Seall carson a chaidh àrainnean a bacadh
+ site_contact_email: Post-d a’ chonaltraidh
+ site_contact_username: Ainm cleachdaiche a’ chonaltraidh
+ site_extended_description: Tuairisgeul leudaichte
+ site_short_description: Tuairisgeul an fhrithealaiche
+ site_terms: Poileasaidh prìobhaideachd
+ site_title: Ainm an fhrithealaiche
+ theme: An t-ùrlar bunaiteach
+ thumbnail: Dealbhag an fhrithealaiche
+ timeline_preview: Ceadaich inntrigeadh gun ùghdarrachadh air na loidhnichean-ama phoblach
+ trendable_by_default: Ceadaich treandaichean gu lèirmheas ro làimh
+ trends: Cuir na treandaichean an comas
interactions:
must_be_follower: Bac na brathan nach eil o luchd-leantainn
must_be_following: Bac na brathan o dhaoine air nach lean thu
@@ -199,6 +265,7 @@ gd:
ip: IP
severities:
no_access: Bac inntrigeadh
+ sign_up_block: Bac clàraidhean ùra
sign_up_requires_approval: Cuingich clàraidhean ùra
severity: Riaghailt
notification_emails:
@@ -219,7 +286,19 @@ gd:
name: Taga hais
trendable: Leig leis an taga hais seo gun nochd e am measg nan treandaichean
usable: Leig le postaichean an taga hais seo a chleachdadh
+ user:
+ role: Dreuchd
+ user_role:
+ color: Dathan na baidse
+ highlighted: Seall an dreuchd ’na baidse air pròifilean nan cleachdaichean
+ name: Ainm
+ permissions_as_keys: Ceadan
+ position: Prìomhachas
+ webhook:
+ events: Na tachartas an comas
+ url: URL na puinge-deiridh
'no': Chan eil
+ not_recommended: Cha mholamaid seo
recommended: Molta
required:
mark: "*"
diff --git a/config/locales/simple_form.gl.yml b/config/locales/simple_form.gl.yml
index 83447f7ec1..d351ff4127 100644
--- a/config/locales/simple_form.gl.yml
+++ b/config/locales/simple_form.gl.yml
@@ -49,7 +49,7 @@ gl:
phrase: Concordará independentemente das maiúsculas ou avisos de contido na publicación
scopes: A que APIs terá acceso a aplicación. Se escolles un ámbito de alto nivel, non precisas seleccionar elementos individuais.
setting_aggregate_reblogs: Non mostrar novas promocións de publicacións que foron promovidas recentemente (só afecta a promocións recén recibidas)
- setting_always_send_emails: Como norma xeral non che enviamos emails se usas activamente Mastodon
+ setting_always_send_emails: Como norma xeral non che enviamos correos electrónicos se usas activamente Mastodon
setting_default_sensitive: Medios sensibles marcados como ocultos por defecto e móstranse cun click
setting_display_media_default: Ocultar medios marcados como sensibles
setting_display_media_hide_all: Ocultar sempre os medios
@@ -57,7 +57,7 @@ gl:
setting_hide_network: Non se mostrará no teu perfil quen te segue e a quen estás a seguir
setting_noindex: Afecta ao teu perfil público e páxinas de publicación
setting_show_application: A aplicación que estás a utilizar para enviar publicacións mostrarase na vista detallada da publicación
- setting_use_blurhash: Os gradientes toman as cores da imaxe oculta pero esborranchando todos os detalles
+ setting_use_blurhash: Os gradientes toman as cores da imaxe oculta pero esvaecendo tódolos detalles
setting_use_pending_items: Agochar actualizacións da cronoloxía tras un click no lugar de desprazar automáticamente os comentarios
username: O teu nome de usuaria será único en %{domain}
whole_word: Se a chave ou frase de paso é só alfanumérica, só se aplicará se concorda a palabra completa
@@ -68,6 +68,32 @@ gl:
with_dns_records: Vaise facer un intento de resolver os rexistros DNS proporcionados e os resultados tamén irán a lista de bloqueo
featured_tag:
name: 'Poderías usar algún destos:'
+ filters:
+ action: Elixe a acción a realizar cando algunha publicación coincida co filtro
+ actions:
+ hide: Agochar todo o contido filtrado, facer coma se non existise
+ warn: Agochar o contido filtrado tras un aviso que conteña o nome do filtro
+ form_admin_settings:
+ backups_retention_period: Gardar os arquivos xerados pola usuaria durante o número de días indicado.
+ bootstrap_timeline_accounts: Estas contas aparecerán fixas na parte superior das recomendacións para as usuarias.
+ closed_registrations_message: Móstrase cando non se admiten novas usuarias
+ content_cache_retention_period: As publicacións desde outros servidores serán eliminados despois do número de días indicados ao poñer un valor positivo. É unha acción irreversible.
+ custom_css: Podes aplicar deseños personalizados na versión web de Mastodon.
+ mascot: Sobrescribe a ilustración na interface web avanzada.
+ media_cache_retention_period: Os ficheiros multimedia descargados serán eliminados despois do número de días indicado ao establecer un valor positivo, e voltos a descargar baixo petición.
+ profile_directory: O directorio de perfís inclúe a tódalas usuarias que optaron por ser descubribles.
+ require_invite_text: Cando os rexistros requiren aprobación manual, facer que o texto "Por que te queres rexistrar?" do convite sexa obrigatorio en lugar de optativo
+ site_contact_email: De que xeito se pode contactar contigo para temas legais ou obter axuda.
+ site_contact_username: De que xeito se pode contactar contigo en Mastodon.
+ site_extended_description: Calquera información adicional que poida ser útil para visitantes e usuarias. Pode utilizarse sintaxe Markdown.
+ site_short_description: Breve descrición que axuda a identificar de xeito único o teu servidor. Quen o xestiona, a quen vai dirixido?
+ site_terms: Escribe a túa propia política de privacidade ou usa o valor por defecto. Podes usar sintaxe Markdow.
+ site_title: De que xeito se pode referir o teu servidor ademáis do seu nome de dominio.
+ theme: Decorado que verán visitantes e novas usuarias.
+ thumbnail: Imaxe con proporcións 2:1 mostrada xunto á información sobre o servidor.
+ timeline_preview: Visitantes e usuarias non conectadas poderán ver as publicacións públicas máis recentes do servidor.
+ trendable_by_default: Omitir a revisión manual das tendencias. Poderás igualmente eliminar manualmente os elementos que vaian aparecendo.
+ trends: As tendencias mostran publicacións, cancelos e novas historias que teñen popularidade no teu servidor.
form_challenge:
current_password: Estás entrando nun área segura
imports:
@@ -80,6 +106,7 @@ gl:
ip: Escribe un enderezo IPv4 ou IPv6. Podes bloquear rangos completos usando a sintaxe CIDR. Ten coidado e non te bloquees a ti mesma!
severities:
no_access: Bloquear acceso a tódolos recursos
+ sign_up_block: Non se poderán rexistrar novas contas
sign_up_requires_approval: Os novos rexistros requerirán a túa aprobación
severity: Escolle que acontecerá coas peticións desde este IP
rule:
@@ -91,6 +118,16 @@ gl:
name: Só podes cambiar maiús/minúsculas, por exemplo, mellorar a lexibilidade
user:
chosen_languages: Se ten marca, só as publicacións nos idiomas seleccionados serán mostrados en cronoloxías públicas
+ role: O control dos roles adxudicados ás usuarias
+ user_role:
+ color: Cor que se usará para o rol a través da IU, como RGB en formato hex
+ highlighted: Esto fai o rol públicamente visible
+ name: Nome público do rol, se o rol se mostra como unha insignia
+ permissions_as_keys: As usuarias con este rol terá acceso a...
+ position: O rol superior decide nos conflitos en certas situacións. Algunhas accións só poden aplicarse sobre roles cunha prioridade menor
+ webhook:
+ events: Elixir eventos a enviar
+ url: A onde se enviarán os eventos
labels:
account:
fields:
@@ -105,7 +142,7 @@ gl:
title: Título
admin_account_action:
include_statuses: Incluír no correo as publicacións denunciadas
- send_email_notification: Notificar a usuaria por correo-e
+ send_email_notification: Notificar á usuaria por email
text: Aviso personalizado
type: Acción
types:
@@ -152,7 +189,7 @@ gl:
phrase: Palabra chave ou frase
setting_advanced_layout: Activar interface web avanzada
setting_aggregate_reblogs: Agrupar promocións nas cronoloxías
- setting_always_send_emails: Enviar sempre notificacións por email
+ setting_always_send_emails: Enviar sempre notificacións por correo electrónico
setting_auto_play_gif: Reprodución automática de GIFs animados
setting_boost_modal: Pedir confirmación antes de promocionar
setting_crop_images: Recortar imaxes a 16x9 en publicacións non despregadas
@@ -174,18 +211,47 @@ gl:
setting_theme: Decorado da instancia
setting_trends: Mostrar as tendencias de hoxe
setting_unfollow_modal: Solicitar confirmación antes de deixar de seguir alguén
- setting_use_blurhash: Mostrar gradientes coloridos para medios ocultos
+ setting_use_blurhash: Mostrar gradientes coloridos para multimedia oculto
setting_use_pending_items: Modo lento
severity: Severidade
sign_in_token_attempt: Código de seguridade
+ title: Título
type: Tipo de importación
username: Nome de usuaria
- username_or_email: Nome de usuaria ou Correo-e
+ username_or_email: Identificador ou Email
whole_word: Palabra completa
email_domain_block:
with_dns_records: Incluír rexistros MX e IPs do dominio
featured_tag:
name: Cancelo
+ filters:
+ actions:
+ hide: Agochar completamente
+ warn: Agochar tras un aviso
+ form_admin_settings:
+ backups_retention_period: Período de retención do arquivo da usuaria
+ bootstrap_timeline_accounts: Recomendar sempre estas contas ás novas usuarias
+ closed_registrations_message: Mensaxe personalizada para cando o rexistro está pechado
+ content_cache_retention_period: Período de retención da caché do contido
+ custom_css: CSS personalizado
+ mascot: Mascota propia (herdado)
+ media_cache_retention_period: Período de retención da caché multimedia
+ profile_directory: Activar o directorio de perfís
+ registrations_mode: Quen se pode rexistrar
+ require_invite_text: Pedir unha razón para unirse
+ show_domain_blocks: Amosar dominios bloqueados
+ show_domain_blocks_rationale: Explicar porque están bloqueados os dominios
+ site_contact_email: Email de contacto
+ site_contact_username: Nome do contacto
+ site_extended_description: Descrición ampla
+ site_short_description: Descrición do servidor
+ site_terms: Política de Privacidade
+ site_title: Nome do servidor
+ theme: Decorado por omisión
+ thumbnail: Icona do servidor
+ timeline_preview: Permitir acceso á cronoloxía pública sen autenticación
+ trendable_by_default: Permitir tendencias sen aprobación previa
+ trends: Activar tendencias
interactions:
must_be_follower: Bloquear as notificacións de non-seguidoras
must_be_following: Bloquea as notificacións de persoas que non segues
@@ -199,6 +265,7 @@ gl:
ip: IP
severities:
no_access: Bloquear acceso
+ sign_up_block: Bloquear novos rexistros
sign_up_requires_approval: Limitar o rexistro
severity: Regra
notification_emails:
@@ -219,7 +286,19 @@ gl:
name: Cancelo
trendable: Permitir que este cancelo apareza en tendencias
usable: Permitir que as publicacións utilicen este cancelo
+ user:
+ role: Rol
+ user_role:
+ color: Cor da insignia
+ highlighted: Mostrar rol como insignia en perfís de usuarias
+ name: Nome
+ permissions_as_keys: Permisos
+ position: Prioridade
+ webhook:
+ events: Eventos activados
+ url: URL do extremo
'no': Non
+ not_recommended: Non é recomendable
recommended: Recomendado
required:
mark: "*"
diff --git a/config/locales/simple_form.he.yml b/config/locales/simple_form.he.yml
index 6faf1842a3..22b5d84807 100644
--- a/config/locales/simple_form.he.yml
+++ b/config/locales/simple_form.he.yml
@@ -46,7 +46,7 @@ he:
locale: שפת ממשק המשתמש, הדוא"ל וההתראות בדחיפה
locked: מחייב אישור עוקבים באופן ידני. פרטיות ההודעות תהיה עוקבים-בלבד אלא אם יצוין אחרת
password: נא להשתמש בלפחות 8 תוים
- phrase: התאמה תמצא ללא תלות באזהרת תוכן בחצרוץ
+ phrase: התאמה תמצא ללא תלות באזהרת תוכן בפוסט
scopes: לאיזה ממשק יורשה היישום לגשת. בבחירת תחום כללי, אין צורך לבחור ממשקים ספציפיים.
setting_aggregate_reblogs: לא להראות הדהודים של חצרוצים שהודהדו לאחרונה (משפיע רק על הדהודים שהתקבלו לא מזמן)
setting_always_send_emails: בדרך כלל התראות דוא"ל לא יישלחו בזמן שימוש פעיל במסטודון
@@ -56,7 +56,7 @@ he:
setting_display_media_show_all: גלה מדיה תמיד
setting_hide_network: עוקבייך ונעקבייך יוסתרו בפרופילך
setting_noindex: משפיע על הפרופיל הציבורי שלך ועמודי ההודעות
- setting_show_application: היישום בו נעשה שימוש כדי לחצרץ יופיע בתצוגה המפורטת של החצרוץ
+ setting_show_application: היישום בו נעשה שימוש כדי לפרסם פוסט יופיע בתצוגה המפורטת של הפוסט
setting_use_blurhash: הגראדיינטים מבוססים על תוכן התמונה המוסתרת, אבל מסתירים את כל הפרטים
setting_use_pending_items: הסתר עדכוני פיד מאחורי קליק במקום לגלול את הפיד אוטומטית
username: שם המשתמש שלך יהיה ייחודי ב-%{domain}
@@ -68,6 +68,11 @@ he:
with_dns_records: ייעשה נסיון למצוא את רשומות ה-DNS של דומיין נתון והתוצאות ייחסמו גם הן
featured_tag:
name: 'אולי תרצה/י להשתמש באחד מאלה:'
+ filters:
+ action: בחרו איזו פעולה לבצע כאשר פוסט מתאים למסנן
+ actions:
+ hide: הסתר את התוכן המסונן, כאילו לא היה קיים
+ warn: הסתר את התוכן המסונן מאחורי אזהרה עם כותרת המסנן
form_challenge:
current_password: את.ה נכנס. ת לאזור מאובטח
imports:
@@ -80,6 +85,7 @@ he:
ip: נא להכניס כתובת IPv4 או IPv6. ניתן לחסום תחומים שלמים על ידי שימוש בתחביר CIDR. זהירות לא לנעול את עצמכם בחוץ!
severities:
no_access: חסימת גישה לכל המשאבים
+ sign_up_block: הרשמות חדשות לא יאופשרו
sign_up_requires_approval: הרשמות חדשות ידרשו את אישורך
severity: נא לבחור מה יקרה לבקשות מכתובת IP זו
rule:
@@ -91,6 +97,16 @@ he:
name: ניתן רק להחליף בין אותיות קטנות וגדולות, למשל כדי לשפר את הקריאות
user:
chosen_languages: אם פעיל, רק חצרוצים בשפות הנבחרות יוצגו לפידים הפומביים
+ role: התפקיד שולט על אילו הרשאות יש למשתמש
+ user_role:
+ color: צבע לתפקיד בממשק המשתמש, כ RGB בפורמט הקסדצימלי
+ highlighted: מאפשר נראות ציבורית של התפקיד
+ name: שם ציבורי של התפקיד, במידה והתפקיד מוגדר ככזה שמופיע כתג
+ permissions_as_keys: למשתמשים בתפקיד זה תהיה גישה ל...
+ position: תפקיד גבוה יותר מכריע בחילוקי דעות במצבים מסוימים. פעולות מסוימות יכולות להתבצע רק על תפקידים בדרגה נמוכה יותר
+ webhook:
+ events: בחר אירועים לשליחה
+ url: היעד שאליו יישלחו אירועים
labels:
account:
fields:
@@ -156,7 +172,7 @@ he:
setting_auto_play_gif: ניגון אוטומטי של גיפים
setting_boost_modal: הצגת דיאלוג אישור לפני הדהוד
setting_crop_images: קטום תמונות בחצרוצים לא מורחבים ל 16 על 9
- setting_default_language: שפת חצרוץ
+ setting_default_language: שפת ברירת מחדל לפוסט
setting_default_privacy: פרטיות ההודעות
setting_default_sensitive: תמיד לתת סימון "רגיש" למדיה
setting_delete_modal: להראות תיבת אישור לפני מחיקת חיצרוץ
@@ -169,7 +185,7 @@ he:
setting_hide_network: להחביא את הגרף החברתי שלך
setting_noindex: לבקש הסתרה ממנועי חיפוש
setting_reduce_motion: הפחתת תנועה בהנפשות
- setting_show_application: הצגת הישום ששימש לחצרוץ
+ setting_show_application: הצגת הישום ששימש לפרסום הפוסט
setting_system_font_ui: להשתמש בגופן ברירת המחדל של המערכת
setting_theme: ערכת העיצוב של האתר
setting_trends: הצגת הנושאים החמים
@@ -178,6 +194,7 @@ he:
setting_use_pending_items: מצב איטי
severity: חומרה
sign_in_token_attempt: קוד אבטחה
+ title: כותרת
type: סוג יבוא
username: שם משתמש
username_or_email: שם משתמש או דוא"ל
@@ -186,6 +203,10 @@ he:
with_dns_records: לכלול רשומות MX וכתובות IP של הדומיין
featured_tag:
name: האשתג
+ filters:
+ actions:
+ hide: הסתרה כוללת
+ warn: הסתרה עם אזהרה
interactions:
must_be_follower: חסימת התראות משאינם עוקבים
must_be_following: חסימת התראות משאינם נעקבים
@@ -199,17 +220,18 @@ he:
ip: IP
severities:
no_access: חסימת גישה
+ sign_up_block: חסימת הרשמות
sign_up_requires_approval: הגבלת הרשמות
severity: כלל
notification_emails:
appeal: מישהם מערערים על החלטת מנהל קהילה
digest: שליחת הודעות דוא"ל מסכמות
- favourite: שליחת דוא"ל כשמחבבים חצרוץ
+ favourite: שליחת דוא"ל כשמחבבים פוסט
follow: שליחת דוא"ל כשנוספות עוקבות
follow_request: שליחת דוא"ל כשמבקשים לעקוב
mention: שליחת דוא"ל כשפונים אלייך
pending_account: נדרשת סקירה של חשבון חדש
- reblog: שליחת דוא"ל כשמהדהדים חצרוץ שלך
+ reblog: שליחת דוא"ל כשמהדהדים פוסט שלך
report: דו"ח חדש הוגש
trending_tag: נושאים חמים חדשים דורשים סקירה
rule:
@@ -219,7 +241,19 @@ he:
name: האשתג
trendable: הרשה/י להאשתג זה להופיע תחת נושאים חמים
usable: הרשה/י לחצרוצים להכיל האשתג זה
+ user:
+ role: תפקיד
+ user_role:
+ color: צבע תג
+ highlighted: הצג תפקיד כתג בפרופיל משתמש
+ name: שם
+ permissions_as_keys: הרשאות
+ position: עדיפות
+ webhook:
+ events: אירועים מאופשרים
+ url: כתובת URL של נקודת הקצה
'no': לא
+ not_recommended: לא מומלצים
recommended: מומלץ
required:
mark: "*"
diff --git a/config/locales/simple_form.hu.yml b/config/locales/simple_form.hu.yml
index fb147a22ce..d39f8fe091 100644
--- a/config/locales/simple_form.hu.yml
+++ b/config/locales/simple_form.hu.yml
@@ -37,7 +37,7 @@ hu:
current_password: Biztonsági okok miatt kérlek, írd be a jelenlegi fiók jelszavát
current_username: A jóváhagyáshoz írd be a jelenlegi fiók felhasználói nevét
digest: Csak hosszú távollét esetén küldődik és csak ha személyes üzenetet kaptál távollétedben
- discoverable: Engedélyezzük, hogy a fiókod idegenek által megtalálható legyen javaslatokon, trendeken és más funkciókon keresztül
+ discoverable: Engedélyezés, hogy a fiókod idegenek által megtalálható legyen javaslatokon, trendeken és más funkciókon keresztül
email: Kapsz egy megerősítő e-mailt
fields: A profilodon legfeljebb 4 bejegyzés szerepelhet táblázatos formában
header: PNG, GIF vagy JPG. Maximum %{size}. Átméretezzük %{dimensions} pixelre
@@ -62,28 +62,44 @@ hu:
username: A felhasználói neved egyedi lesz a %{domain} domainen
whole_word: Ha a kulcsszó alfanumerikus, csak akkor minősül majd találatnak, ha teljes szóra illeszkedik
domain_allow:
- domain: Ez a domain adatot kérhet le a szerverünkről és az ettől érkező adatokat feldolgozzuk és mentjük
+ domain: Ez a domain adatokat kérhet le erről a kiszolgálóról, és a bejövő adatok fel lesznek dolgozva és tárolva lesznek
email_domain_block:
domain: Ez lehet az e-mail címben szereplő domain név vagy az MX rekord, melyet ez használ. Ezeket feliratkozáskor ellenőrizzük.
with_dns_records: Megpróbáljuk a megadott domain DNS rekordjait lekérni, és az eredményeket hozzáadjuk a tiltólistához
featured_tag:
name: 'Ezeket esetleg használhatod:'
+ filters:
+ action: A végrehajtandó műveletet, ha a bejegyzés megfelel a szűrőnek
+ actions:
+ hide: A szűrt tartalom teljes elrejtése, mintha nem is létezne
+ warn: A szűrt tartalom a szűrő címét említő figyelmeztetés mögé rejtése
+ form_admin_settings:
+ backups_retention_period: Az előállított felhasználói archívumok megtartása a megadott napokig.
+ content_cache_retention_period: A más kiszolgálókról származó bejegyzések megadott számú nap után törölve lesznek, ha pozitív értékre van állítva. Ez lehet, hogy nem fordítható vissza.
+ media_cache_retention_period: A letöltött médiafájlok megadott számú nap után törölve lesznek, ha pozitív értékre van állítva, és igény szerint újból le lesznek töltve.
+ site_short_description: Rövid leírás, amely segíthet a kiszolgálód egyedi azonosításában. Ki futtatja, kinek készült?
+ site_title: Hogyan hivatkozhatnak mások a kiszolgálódra a domain nevén kívül.
+ thumbnail: Egy durván 2:1 arányú kép, amely a kiszolgálóinformációk mellett jelenik meg.
+ timeline_preview: A kijelentkezett látogatók továbbra is böngészhetik a kiszolgáló legfrissebb nyilvános bejegyzéseit.
+ trendable_by_default: Kézi felülvizsgálat kihagyása a felkapott tartalmaknál. Az egyes elemek utólag távolíthatók el a trendek közül.
+ trends: A trendek azt mondják meg, hogy mely bejegyzések, hashtagek és hírbejegyzések felkapottak a kiszolgálódon.
form_challenge:
current_password: Beléptél egy biztonsági térben
imports:
- data: Egy másik Mastodon szerverről exportált CSV fájl
+ data: Egy másik Mastodon kiszolgálóról exportált CSV-fájl
invite_request:
text: Ez segít nekünk átnézni a jelentkezésedet
ip_block:
- comment: Opcionális. Emlékeztető, hogy miért is vetted fel ezt a szabályt.
+ comment: Nem kötelező. Emlékeztető, hogy miért is vetted fel ezt a szabályt.
expires_in: Az IP címek korlátos erőforrások, ezért néha meg vannak osztva és gyakran gazdát is cserélnek. Ezért a korlátlan IP tiltások használatát nem javasoljuk.
ip: Írj be egy IPv4 vagy IPv6 címet. A CIDR formátum használatával teljes tartományokat tilthatsz ki. Légy óvatos, hogy magadat véletlenül se zárd ki!
severities:
no_access: Elérés tiltása minden erőforráshoz
+ sign_up_block: Új feliratkozások nem lesznek lehetségesek
sign_up_requires_approval: Új regisztrációk csak a jóváhagyásoddal történhetnek majd meg
severity: Válaszd ki, mi történjen a kérésekkel erről az IP-ről
rule:
- text: Írd le, mi a szabály vagy elvárás ezen a szerveren a felhasználók felé. Próbálj röviden, egyszerűen fogalmazni
+ text: Írd le, mi a szabály vagy elvárás ezen a kiszolgálón a felhasználók felé. Próbálj röviden, egyszerűen fogalmazni.
sessions:
otp: 'Add meg a telefonodon generált kétlépcsős azonosító kódodat vagy használd az egyik tartalék bejelentkező kódot:'
webauthn: Ha ez egy USB kulcs, ellenőrizd, hogy csatlakoztattad és ha szükséges, aktiváltad is.
@@ -91,6 +107,16 @@ hu:
name: Csak a kis/nagybetűséget változtathatod meg, pl. hogy olvashatóbb legyen
user:
chosen_languages: Ha aktív, csak a kiválasztott nyelvű bejegyzések jelennek majd meg a nyilvános idővonalon
+ role: A szerep szabályozza, hogy a felhasználó milyen jogosultságokkal rendelkezik
+ user_role:
+ color: A szerephez használandó szín mindenhol a felhasználói felületen, hexa RGB formátumban
+ highlighted: Ez nyilvánosan láthatóvá teszi a szerepet
+ name: A szerep nyilvános neve, ha a szerepet úgy állították be, hogy jelvényként látható legyen
+ permissions_as_keys: A felhasználók ezzel a szereppel elérhetik a...
+ position: A magasabb szerepkör oldja fel az ütközéseket bizonyos helyzetekben. Bizonyos műveleteket csak alacsonyabb prioritású szerepkörrel lehet elvégezni.
+ webhook:
+ events: Válaszd ki a küldendő eseményeket
+ url: Ahová az eseményket küldjük
labels:
account:
fields:
@@ -178,6 +204,7 @@ hu:
setting_use_pending_items: Lassú mód
severity: Súlyosság
sign_in_token_attempt: Biztonsági kód
+ title: Cím
type: Importálás típusa
username: Felhasználónév
username_or_email: Felhasználónév vagy e-mail cím
@@ -186,6 +213,31 @@ hu:
with_dns_records: Domain MX rekordjainak és IP-címeinek hozzávétele
featured_tag:
name: Hashtag
+ filters:
+ actions:
+ hide: Teljes elrejtés
+ warn: Elrejtés figyelmeztetéssel
+ form_admin_settings:
+ backups_retention_period: Felhasználói archívum megtartási időszaka
+ closed_registrations_message: A feliratkozáskor megjelenő egyéni üzenet nem érhető el
+ content_cache_retention_period: Tartalom-gyorsítótár megtartási időszaka
+ custom_css: Egyéni CSS
+ mascot: Egyéni kabala (örökölt)
+ media_cache_retention_period: Média-gyorsítótár megtartási időszaka
+ profile_directory: Profiladatbázis engedélyezése
+ registrations_mode: Ki regisztrálhat
+ require_invite_text: Indok megkövetelése a csatlakozáshoz
+ show_domain_blocks: Domain tiltások megjelenitése
+ show_domain_blocks_rationale: A domainok blokkolásának okának megjelenítése
+ site_extended_description: Bővített leírás
+ site_short_description: Kiszolgáló leírása
+ site_terms: Adatvédelmi szabályzat
+ site_title: Kiszolgáló neve
+ theme: Alapértelmezett téma
+ thumbnail: Kiszolgáló bélyegképe
+ timeline_preview: A nyilvános idővonalak hitelesítés nélküli elérésének engedélyezése
+ trendable_by_default: Trendek engedélyezése előzetes ellenőrzés nélkül
+ trends: Trendek engedélyezése
interactions:
must_be_follower: Nem követőidtől érkező értesítések tiltása
must_be_following: Nem követettjeidtől érkező értesítések tiltása
@@ -199,6 +251,7 @@ hu:
ip: IP
severities:
no_access: Elérés letiltása
+ sign_up_block: Feliratkozások letiltása
sign_up_requires_approval: Regisztrációk korlátozása
severity: Szabály
notification_emails:
@@ -219,7 +272,19 @@ hu:
name: Hashtag
trendable: A hashtag megjelenhet a felkapottak között
usable: Bejegyzések használhatják ezt a hashtaget
+ user:
+ role: Szerep
+ user_role:
+ color: Jelvény színe
+ highlighted: Szerep megjelenítése jelvényként a felhasználói profilokon
+ name: Név
+ permissions_as_keys: Engedélyek
+ position: Prioritás
+ webhook:
+ events: Engedélyezett események
+ url: Végponti URL
'no': Nem
+ not_recommended: Nem ajánlott
recommended: Ajánlott
required:
mark: "*"
diff --git a/config/locales/simple_form.id.yml b/config/locales/simple_form.id.yml
index dfc4902aba..41114ef0dc 100644
--- a/config/locales/simple_form.id.yml
+++ b/config/locales/simple_form.id.yml
@@ -178,6 +178,7 @@ id:
setting_use_pending_items: Mode pelan
severity: Keparahan
sign_in_token_attempt: Kode keamanan
+ title: Judul
type: Tipe impor
username: Nama pengguna
username_or_email: Nama pengguna atau Email
@@ -186,6 +187,10 @@ id:
with_dns_records: Termasuk data MX dan IP domain
featured_tag:
name: Tagar
+ filters:
+ actions:
+ hide: Sembunyikan seluruhnya
+ warn: Sembunyikan dengan peringatan
interactions:
must_be_follower: Blokir notifikasi dari non-pengikut
must_be_following: Blokir notifikasi dari orang yang tidak anda ikuti
@@ -219,6 +224,8 @@ id:
name: Tagar
trendable: Izinkan tagar ini muncul di bawah tren
usable: Izinkan toot memakai tagar ini
+ webhook:
+ events: Acara yang diaktifkan
'no': Tidak
recommended: Direkomendasikan
required:
diff --git a/config/locales/simple_form.io.yml b/config/locales/simple_form.io.yml
index 0e2d5e3a93..7cde207ac6 100644
--- a/config/locales/simple_form.io.yml
+++ b/config/locales/simple_form.io.yml
@@ -68,6 +68,32 @@ io:
with_dns_records: Probo di rezolvar registri DNS di la domeno agesos e rezulti anke preventesos
featured_tag:
name: 'Vu forsan volas uzar 1 de co:'
+ filters:
+ action: Selektez ago kande posto parigas filtrilo
+ actions:
+ hide: Komplete celez filtrita kontenajo quale ol ne existas
+ warn: Celez filtrita kontenajo dop avert quo montras titulo di filtrilo
+ form_admin_settings:
+ backups_retention_period: Retenez igita uzantoarkivi por la diiquanto.
+ bootstrap_timeline_accounts: Ca konti pinglagesos a super sequorekomendi di nova uzanti.
+ closed_registrations_message: Montresas kande registradi klozesas
+ content_cache_retention_period: Posti de altra servili efacesos pos la diiquanto kande fixesas a positiva nombro. Co darfas desagesar.
+ custom_css: Vu povas pozar kustumizita staili en retverso di Mastodon.
+ mascot: Remplas montreso en avanca retintervizajo.
+ media_cache_retention_period: Deschargita mediifaili efacesos pos la diiquanto kande fixesas a positiva nombro, e rideschargesas irgatempe.
+ profile_directory: La profilcheflisto montras omna uzanti quo voluntale volas esar deskovrebla.
+ require_invite_text: Kande registradi bezonas manuala aprobo, ol kauzigas "Por quo vu volas juntas?" textoenpozo esar obliganta
+ site_contact_email: Quale personi povas kontaktar vu por legala o suportquestioni.
+ site_contact_username: Quale personi povas kontaktar vu en Mastodon.
+ site_extended_description: Irga plusa informi quo forsan esar utila por vizitanti e uzanti. Povas strukturigesar per sintaxo di Markdown.
+ site_short_description: Kurta deskripto por helpar unala identifikar ca servilo. Qua funcionigar lu e por qua?
+ site_terms: Uzez vua sua privatesguidilo o ignorez por uzar la originalo. Povas strukturigesar per sintaxo di Markdown.
+ site_title: Quale personi vokas ca servilo se ne uzas domennomo.
+ theme: Temo quo videsas da ekirita vizitanti e nova uzanti.
+ thumbnail: Cirkum 2:1 imajo montresar kun informo di ca servilo.
+ timeline_preview: Ekirita vizitanti videsos maxim recenta publika posti quo esas displonebla en la servilo.
+ trendable_by_default: Ignorez manuala kontrolar di tendencoza kontenajo. Singla kozi povas ankore efacesar de tendenci pose.
+ trends: Tendenci montras quala posti, hashtagi e niuzrakonti famozeskas en ca servilo.
form_challenge:
current_password: Vu eniras sekura areo
imports:
@@ -80,6 +106,7 @@ io:
ip: Tipez adreso di IPv4 o IPv6. Vu povas restrikar tota porteo per sintaxo CIDR. Sorgemez por ke vu ne klefklozas su!
severities:
no_access: Restriktez aceso a omna moyeni
+ sign_up_block: Nova registrago ne esos posibla
sign_up_requires_approval: Nova registro bezonos vua aprobo
severity: Selektez quo eventos kun demandi de ca IP
rule:
@@ -91,6 +118,16 @@ io:
name: Vu povas nur chanjar literkaso, por exemplo, por kauzigar lu divenar plu lektebla
user:
chosen_languages: Kande marketigesis, nur posti en selektesis lingui montresos en publika tempolinei
+ role: Rolo dominacas permisi quon uzanto havas
+ user_role:
+ color: Koloro quo uzesas por rolo en tota UI, quale RGB kun hexformato
+ highlighted: Co kauzigas rolo divenar publike videbla
+ name: Publika nomo di ca rolo, se rolo ajustesas quale montresas quale insigno
+ permissions_as_keys: Uzanti kun ca rolo povas...
+ position: Plu alta rolo decidas problemsolvo en kelka situeso. Kelka agi povas nur eventar a roli kun plu basa prioreso
+ webhook:
+ events: Selektigez eventi por sendar
+ url: Ibe eventi sendesos
labels:
account:
fields:
@@ -178,6 +215,7 @@ io:
setting_use_pending_items: Modo lenta
severity: Severeso
sign_in_token_attempt: Sekureskodexo
+ title: Titulo
type: Tipo di importaco
username: Uzernomo
username_or_email: Uzantonomo o retposto
@@ -186,6 +224,34 @@ io:
with_dns_records: Inkluzez registraji MX e IPi di domeno
featured_tag:
name: Hashtago
+ filters:
+ actions:
+ hide: Tote celez
+ warn: Celez kun averto
+ form_admin_settings:
+ backups_retention_period: Uzantoarkivretendurtempo
+ bootstrap_timeline_accounts: Sempre rekomendez ca konti a nova uzanti
+ closed_registrations_message: Kustumizita mesajo kande registradi ne esas disponebla
+ content_cache_retention_period: Kontenajmemorajretendurtempo
+ custom_css: Kustumizita CSS
+ mascot: Kustumizita reprezentimajo (oldo)
+ media_cache_retention_period: Mediimemorajretendurtempo
+ profile_directory: Aktivigez profilcheflisto
+ registrations_mode: Qua povas registragar
+ require_invite_text: Mustez pozar motivo por juntar
+ show_domain_blocks: Montrez domenobstrukti
+ show_domain_blocks_rationale: Montrez por quo domeni obstruktesir
+ site_contact_email: Kontaktoretposto
+ site_contact_username: Kontaktouzantonomo
+ site_extended_description: Longa deskripto
+ site_short_description: Servildeskripto
+ site_terms: Privatesguidilo
+ site_title: Servilnomo
+ theme: Originala temo
+ thumbnail: Servilimajeto
+ timeline_preview: Permisez neyurizita aceso a publika tempolineo
+ trendable_by_default: Permisez tendenci sen bezonar kontrolo
+ trends: Aktivigez tendenci
interactions:
must_be_follower: Celar la savigi da homi, qui ne sequas tu
must_be_following: Celar la savigi da homi, quin tu ne sequas
@@ -199,6 +265,7 @@ io:
ip: IP
severities:
no_access: Depermisez aceso
+ sign_up_block: Obstruktez registragi
sign_up_requires_approval: Limitigez registri
severity: Regulo
notification_emails:
@@ -219,7 +286,19 @@ io:
name: Hashtago
trendable: Permisez ca hashtago aparar che tendenci
usable: Permisez posti uzar ca hashtago
+ user:
+ role: Rolo
+ user_role:
+ color: Insignokoloro
+ highlighted: Montrez rolo quale insigno en uzantoprofili
+ name: Nomo
+ permissions_as_keys: Permisi
+ position: Prioreso
+ webhook:
+ events: Aktivigita eventi
+ url: URL di finpunto
'no': Ne
+ not_recommended: Ne rekomendesas
recommended: Rekomendito
required:
mark: "*"
diff --git a/config/locales/simple_form.is.yml b/config/locales/simple_form.is.yml
index 528e9a52a7..50019ecb67 100644
--- a/config/locales/simple_form.is.yml
+++ b/config/locales/simple_form.is.yml
@@ -68,6 +68,32 @@ is:
with_dns_records: Tilraun verður gerð til að leysa DNS-færslur uppgefins léns og munu niðurstöðurnar einnig verða útilokaðar
featured_tag:
name: 'Þú gætir viljað nota eitt af þessum:'
+ filters:
+ action: Veldu hvaða aðgerð á að framkvæma þegar færsla samsvarar síunni
+ actions:
+ hide: Fela síað efni algerlega, rétt eins og það sé ekki til staðar
+ warn: Fela síað efni á bakvið aðvörun sem tekur fram titil síunnar
+ form_admin_settings:
+ backups_retention_period: Halda safni notandans í tiltekinn fjölda daga.
+ bootstrap_timeline_accounts: Þessir notendaaðgangar verða festir efst í meðmælum til nýrra notenda um að fylgjast með þeim.
+ closed_registrations_message: Birtist þegar lokað er á nýskráningar
+ content_cache_retention_period: Færslum af öðrum netþjónum verður eytt eftir tiltekinn fjölda daga þegar þetta er jákvætt gildi. Þetta gæti verið óafturkallanleg aðgerð.
+ custom_css: Þú getur virkjað sérsniðna stíla í vefútgáfu Mastodon.
+ mascot: Þetta tekyr yfir myndskreytinguna í ítarlega vefviðmótinu.
+ media_cache_retention_period: Sóttu myndefni verður eytt eftir tiltekinn fjölda daga þegar þetta er jákvætt gildi og síðan sótt aftur eftir þörfum.
+ profile_directory: Notendamappan telur upp alla þá notendur sem hafa valið að vera uppgötvanlegir.
+ require_invite_text: Þegar nýskráningar krefjast handvirks samþykkis, þá skal gera textann í “Hvers vegna viltu taka þátt?” að kröfu en ekki valkvæðan
+ site_contact_email: Hovernig fólk getur haft samband við þig til að fá aðstoð eða vegna lagalegra mála.
+ site_contact_username: Hovernig fólk getur haft samband við þig á Mastodon.
+ site_extended_description: Hverjar þær viðbótarupplýsingar sem gætu nýst gestum þínum og notendum. Má sníða með Markdown-málskipan.
+ site_short_description: Stutt lýsing sem hjálpar til við að auðkenna netþjóninn þinn. Hver er að reka hann, fyrir hverja er hann?
+ site_terms: Notaðu þína eigin persónuverndarstefnu eða skildu þetta eftir autt til að nota sjálfgefna stefnu. Má sníða með Markdown-málskipan.
+ site_title: Hvað fólk kallar netþjóninn þinn annað en með heiti lénsins.
+ theme: Þema sem útskráðir gestir og nýjir notendur sjá.
+ thumbnail: Mynd um það bil 2:1 sem birtist samhliða upplýsingum um netþjóninn þinn.
+ timeline_preview: Gestir sem ekki eru skráðir inn munu geta skoðað nýjustu opinberu færslurnar sem tiltækar eru á þjóninum.
+ trendable_by_default: Sleppa handvirkri yfirferð á vinsælu efni. Áfram verður hægt að fjarlægja stök atriði úr vinsældarlistum.
+ trends: Vinsældir sýna hvaða færslur, myllumerki og fréttasögur séu í umræðunni á netþjóninum þínum.
form_challenge:
current_password: Þú ert að fara inn á öryggissvæði
imports:
@@ -80,6 +106,7 @@ is:
ip: Settu inn IPv4 eða IPv6 vistfang. Þú getur lokað á svið vistfanga með því að nota CIDR-framsetningu. Gættu þess að loka ekki sjálfa/n þig úti!
severities:
no_access: Loka á aðgang að öllum tilföngum
+ sign_up_block: Nýskráningar verða ekki mögulegar
sign_up_requires_approval: Nýskráningar munu þurfa samþykki þitt
severity: Veldu hvað munir gerast við beiðnir frá þessu IP-vistfangi
rule:
@@ -91,6 +118,16 @@ is:
name: Þú getur aðeins breytt stafstöði mill há-/lágstafa, til gæmis til að gera þetta læsilegra
user:
chosen_languages: Þegar merkt er við þetta, birtast einungis færslur á völdum tungumálum á opinberum tímalínum
+ role: Hlutverk stýrir hvaða heimildir notandinn hefur
+ user_role:
+ color: Litur sem notaður er fyrir hlutverkið allsstaðar í viðmótinu, sem RGB-gildi á hex-sniði
+ highlighted: Þetta gerir hlutverk sýnilegt opinberlega
+ name: Opinbert heiti hlutverks, ef birta á hlutverk sem merki
+ permissions_as_keys: Notendur með þetta hlutverk munu hafa aðgang að...
+ position: Rétthærra hlutverk ákvarðar lausn árekstra í ákveðnum tilfellum. Sumar aðgerðir er aðeins hægt að framkvæma á hlutverk með lægri forgangi
+ webhook:
+ events: Veldu atburði sem á að senda
+ url: Hvert atburðir verða sendir
labels:
account:
fields:
@@ -178,6 +215,7 @@ is:
setting_use_pending_items: Rólegur hamur
severity: Mikilvægi
sign_in_token_attempt: Öryggiskóði
+ title: Titill
type: Tegund innflutnings
username: Notandanafn
username_or_email: Notandanafn eða tölvupóstfang
@@ -186,6 +224,34 @@ is:
with_dns_records: Hafa með MX-færslur og IP-vistföng lénsins
featured_tag:
name: Myllumerki
+ filters:
+ actions:
+ hide: Fela alveg
+ warn: Fela með aðvörun
+ form_admin_settings:
+ backups_retention_period: Tímalengd sem safni notandans er haldið eftir
+ bootstrap_timeline_accounts: Alltaf mæla með þessum notendaaðgöngum fyrir nýja notendur
+ closed_registrations_message: Sérsniðin skilaboð þegar ekki er hægt að nýskrá
+ content_cache_retention_period: Tímalengd sem haldið er í biðminni
+ custom_css: Sérsniðið CSS
+ mascot: Sérsniðið gæludýr (eldra)
+ media_cache_retention_period: Tímalengd sem myndefni haldið
+ profile_directory: Virkja notendamöppu
+ registrations_mode: Hverjir geta nýskráð sig
+ require_invite_text: Krefjast ástæðu fyrir þátttöku
+ show_domain_blocks: Sýna útilokanir léna
+ show_domain_blocks_rationale: Sýna af hverju lokað var á lén
+ site_contact_email: Tölvupóstfang tengiliðar
+ site_contact_username: Notandanafn tengiliðar
+ site_extended_description: Ítarleg lýsing
+ site_short_description: Lýsing á vefþjóni
+ site_terms: Persónuverndarstefna
+ site_title: Heiti vefþjóns
+ theme: Sjálfgefið þema
+ thumbnail: Smámynd vefþjóns
+ timeline_preview: Leyfa óauðkenndan aðgang að opinberum tímalínum
+ trendable_by_default: Leyfa vinsælt efni án undanfarandi yfirferðar
+ trends: Virkja vinsælt
interactions:
must_be_follower: Loka á tilkynningar frá þeim sem ekki eru fylgjendur
must_be_following: Loka á tilkynningar frá þeim sem þú fylgist ekki með
@@ -199,6 +265,7 @@ is:
ip: IP-vistfang
severities:
no_access: Loka á aðgang
+ sign_up_block: Loka á nýskráningar
sign_up_requires_approval: Takmarka nýskráningar
severity: Regla
notification_emails:
@@ -211,15 +278,27 @@ is:
pending_account: Nýr notandaaðgangur þarfnast yfirferðar
reblog: Einhver endurbirti færsluna þína
report: Ný kæra hefur verið send inn
- trending_tag: Ný tilhneiging krefst yfirferðar
+ trending_tag: Nýtt vinsælt efni krefst yfirferðar
rule:
text: Regla
tag:
listable: Leyfa þessu myllumerki að birtast í leitum og í persónusniðamöppunni
name: Myllumerki
- trendable: Leyfa þessu myllumerki að birtast undir tilhneigingum
+ trendable: Leyfa þessu myllumerki að birtast undir vinsælu efni
usable: Leyfa færslum að nota þetta myllumerki
+ user:
+ role: Hlutverk
+ user_role:
+ color: Litur merkis
+ highlighted: Birta hlutverk sem merki á notandaauðkenni
+ name: Nafn
+ permissions_as_keys: Heimildir
+ position: Forgangur
+ webhook:
+ events: Virkjaðir atburðir
+ url: Slóð á endapunkt
'no': Nei
+ not_recommended: Ekki mælt með þessu
recommended: Mælt með
required:
mark: "*"
diff --git a/config/locales/simple_form.it.yml b/config/locales/simple_form.it.yml
index 7eb014193e..408eeedd29 100644
--- a/config/locales/simple_form.it.yml
+++ b/config/locales/simple_form.it.yml
@@ -68,6 +68,32 @@ it:
with_dns_records: Sarà effettuato un tentativo di risolvere i record DNS del dominio in questione e i risultati saranno inseriti anche nella blacklist
featured_tag:
name: 'Eccone alcuni che potresti usare:'
+ filters:
+ action: Scegli quale azione eseguire quando un post corrisponde al filtro
+ actions:
+ hide: Nascondi completamente il contenuto filtrato, come se non esistesse
+ warn: Nascondi il contenuto filtrato e mostra invece un avviso, citando il titolo del filtro
+ form_admin_settings:
+ backups_retention_period: Conserva gli archivi utente generati per il numero di giorni specificato.
+ bootstrap_timeline_accounts: Questi account verranno aggiunti in cima ai consigli da seguire dei nuovi utenti.
+ closed_registrations_message: Visualizzato alla chiusura delle iscrizioni
+ content_cache_retention_period: I post da altri server verranno eliminati dopo il numero di giorni specificato se impostato su un valore positivo. Questo potrebbe essere irreversibile.
+ custom_css: È possibile applicare stili personalizzati sulla versione web di Mastodon.
+ mascot: Sostituisce l'illustrazione nell'interfaccia web avanzata.
+ media_cache_retention_period: I file multimediali scaricati verranno eliminati dopo il numero di giorni specificato se impostati su un valore positivo e scaricati nuovamente su richiesta.
+ profile_directory: La directory del profilo elenca tutti gli utenti che hanno acconsentito ad essere individuabili.
+ require_invite_text: 'Quando le iscrizioni richiedono l''approvazione manuale, rendi la domanda: "Perché vuoi unirti?" obbligatoria anziché facoltativa'
+ site_contact_email: In che modo le persone possono contattarti per richieste legali o di supporto.
+ site_contact_username: In che modo le persone possono raggiungerti su Mastodon.
+ site_extended_description: Qualsiasi informazione aggiuntiva che possa essere utile ai visitatori e ai tuoi utenti. Può essere strutturata con la sintassi Markdown.
+ site_short_description: Una breve descrizione per aiutare a identificare in modo univoco il tuo server. Chi lo gestisce, a chi è rivolto?
+ site_terms: Usa la tua politica sulla privacy o lascia vuoto per usare l'impostazione predefinita. Può essere strutturata con la sintassi Markdown.
+ site_title: In che modo le persone possono fare riferimento al tuo server oltre al suo nome di dominio.
+ theme: Tema visualizzato dai visitatori e dai nuovi utenti disconnessi.
+ thumbnail: Un'immagine approssimativamente 2:1 visualizzata insieme alle informazioni del tuo server.
+ timeline_preview: I visitatori disconnessi potranno sfogliare i post pubblici più recenti disponibili sul server.
+ trendable_by_default: Salta la revisione manuale dei contenuti di tendenza. I singoli elementi possono ancora essere rimossi dalle tendenze dopo il fatto.
+ trends: Le tendenze mostrano quali post, hashtag e notizie stanno guadagnando popolarità sul tuo server.
form_challenge:
current_password: Stai entrando in un'area sicura
imports:
@@ -80,6 +106,7 @@ it:
ip: Inserisci un indirizzo IPv4 o IPv6. Puoi bloccare interi intervalli usando la sintassi CIDR. Fai attenzione a non bloccare te stesso!
severities:
no_access: Blocca l'accesso a tutte le risorse
+ sign_up_block: Le nuove iscrizioni non saranno possibili
sign_up_requires_approval: Le nuove iscrizioni richiederanno la tua approvazione
severity: Scegli cosa accadrà con le richieste da questo IP
rule:
@@ -91,6 +118,16 @@ it:
name: Puoi cambiare solo il minuscolo/maiuscolo delle lettere, ad esempio, per renderlo più leggibile
user:
chosen_languages: Quando una o più lingue sono contrassegnate, nelle timeline pubbliche vengono mostrati solo i toot nelle lingue selezionate
+ role: Il ruolo controlla quali permessi ha l'utente
+ user_role:
+ color: Colore da usare per il ruolo in tutta l'UI, come RGB in formato esadecimale
+ highlighted: Rende il ruolo visibile
+ name: Nome pubblico del ruolo, se il ruolo è impostato per essere visualizzato come distintivo
+ permissions_as_keys: Gli utenti con questo ruolo avranno accesso a...
+ position: Un ruolo più alto decide la risoluzione dei conflitti in determinate situazioni. Alcune azioni possono essere eseguite solo su ruoli con priorità più bassa
+ webhook:
+ events: Seleziona eventi da inviare
+ url: Dove gli eventi saranno inviati
labels:
account:
fields:
@@ -178,6 +215,7 @@ it:
setting_use_pending_items: Modalità lenta
severity: Severità
sign_in_token_attempt: Codice di sicurezza
+ title: Titolo
type: Tipo importazione
username: Nome utente
username_or_email: Nome utente o email
@@ -186,6 +224,34 @@ it:
with_dns_records: Includi record MX e indirizzi IP del dominio
featured_tag:
name: Etichetta
+ filters:
+ actions:
+ hide: Nascondi completamente
+ warn: Nascondi con avviso
+ form_admin_settings:
+ backups_retention_period: Periodo di conservazione dell'archivio utente
+ bootstrap_timeline_accounts: Consiglia sempre questi account ai nuovi utenti
+ closed_registrations_message: Messaggio personalizzato quando le iscrizioni non sono disponibili
+ content_cache_retention_period: Periodo di conservazione della cache dei contenuti
+ custom_css: Personalizza CSS
+ mascot: Personalizza mascotte (legacy)
+ media_cache_retention_period: Periodo di conservazione della cache multimediale
+ profile_directory: Abilita directory del profilo
+ registrations_mode: Chi può iscriversi
+ require_invite_text: Richiedi un motivo per unirsi
+ show_domain_blocks: Mostra i blocchi di dominio
+ show_domain_blocks_rationale: Mostra perché i domini sono stati bloccati
+ site_contact_email: Contatto email
+ site_contact_username: Nome utente di contatto
+ site_extended_description: Descrizione estesa
+ site_short_description: Descrizione del server
+ site_terms: Politica sulla privacy
+ site_title: Nome del server
+ theme: Tema predefinito
+ thumbnail: Miniatura del server
+ timeline_preview: Consenti l'accesso non autenticato alle timeline pubbliche
+ trendable_by_default: Consenti le tendenze senza revisione preventiva
+ trends: Abilita le tendenze
interactions:
must_be_follower: Blocca notifiche da chi non ti segue
must_be_following: Blocca notifiche dalle persone che non segui
@@ -199,6 +265,7 @@ it:
ip: IP
severities:
no_access: Blocca accesso
+ sign_up_block: Blocca iscrizioni
sign_up_requires_approval: Limita iscrizioni
severity: Regola
notification_emails:
@@ -219,7 +286,19 @@ it:
name: Hashtag
trendable: Permetti a questo hashtag di apparire nelle tendenze
usable: Permetti ai post di usare questo hashtag
+ user:
+ role: Ruolo
+ user_role:
+ color: Colore distintivo
+ highlighted: Mostra il ruolo come distintivo sui profili utente
+ name: Nome
+ permissions_as_keys: Permessi
+ position: Priorità
+ webhook:
+ events: Eventi abilitati
+ url: URL endpoint
'no': 'No'
+ not_recommended: Non consigliato
recommended: Consigliato
required:
mark: "*"
diff --git a/config/locales/simple_form.ja.yml b/config/locales/simple_form.ja.yml
index 5f61ee19cd..312393a068 100644
--- a/config/locales/simple_form.ja.yml
+++ b/config/locales/simple_form.ja.yml
@@ -68,6 +68,10 @@ ja:
with_dns_records: 指定したドメインのDNSレコードを取得し、その結果もメールドメインブロックに登録されます
featured_tag:
name: 'これらを使うといいかもしれません:'
+ form_admin_settings:
+ backups_retention_period: 生成されたユーザーのアーカイブを指定した日数の間保持します。
+ content_cache_retention_period: 正の値に設定されている場合、他のサーバーの投稿は指定された日数の後に削除されます。元に戻せません。
+ media_cache_retention_period: 正の値に設定されている場合、ダウンロードされたメディアファイルは指定された日数の後に削除され、リクエストに応じて再ダウンロードされます。
form_challenge:
current_password: セキュリティ上重要なエリアにアクセスしています
imports:
@@ -80,6 +84,7 @@ ja:
ip: IPv4またはIPv6アドレスを入力してください。CIDR構文を用いて範囲指定でブロックすることもできます。自分自身を締め出さないよう注意してください!
severities:
no_access: すべてのリソースへのアクセスをブロックします
+ sign_up_block: 新規のアカウント作成はできません
sign_up_requires_approval: 承認するまで新規登録が完了しなくなります
severity: このIPに対する措置を選択してください
rule:
@@ -91,6 +96,14 @@ ja:
name: 視認性向上などのためにアルファベット大文字小文字の変更のみ行うことができます
user:
chosen_languages: 選択すると、選択した言語の投稿のみが公開タイムラインに表示されるようになります
+ role: このロールはユーザーが持つ権限を管理します
+ user_role:
+ highlighted: これによりロールが公開されます。
+ name: ロールのバッジを表示する際の表示名
+ permissions_as_keys: このロールを持つユーザーは次の機能にアクセスできます
+ webhook:
+ events: 送信するイベントを選択
+ url: イベントの送信先
labels:
account:
fields:
@@ -178,6 +191,7 @@ ja:
setting_use_pending_items: 手動更新モード
severity: 重大性
sign_in_token_attempt: セキュリティコード
+ title: タイトル
type: インポートする項目
username: ユーザー名
username_or_email: ユーザー名またはメールアドレス
@@ -186,6 +200,13 @@ ja:
with_dns_records: ドメインのMXレコードとIPアドレスを含む
featured_tag:
name: ハッシュタグ
+ filters:
+ actions:
+ warn: 警告付きで隠す
+ form_admin_settings:
+ backups_retention_period: ユーザーアーカイブの保持期間
+ content_cache_retention_period: コンテンツキャッシュの保持期間
+ media_cache_retention_period: メディアキャッシュの保持期間
interactions:
must_be_follower: フォロワー以外からの通知をブロック
must_be_following: フォローしていないユーザーからの通知をブロック
@@ -199,6 +220,7 @@ ja:
ip: IP
severities:
no_access: ブロック
+ sign_up_block: アカウント作成をブロック
sign_up_requires_approval: 登録を制限
severity: ルール
notification_emails:
@@ -219,7 +241,19 @@ ja:
name: ハッシュタグ
trendable: トレンドへの表示を許可する
usable: 投稿への使用を許可する
+ user:
+ role: ロール
+ user_role:
+ color: バッジの色
+ highlighted: プロフィールにロールのバッジを表示する
+ name: 名前
+ permissions_as_keys: 権限
+ position: 優先度
+ webhook:
+ events: 有効なイベント
+ url: エンドポイントURL
'no': いいえ
+ not_recommended: 非推奨
recommended: おすすめ
required:
mark: "*"
diff --git a/config/locales/simple_form.ko.yml b/config/locales/simple_form.ko.yml
index 71d4058c82..7a3ab07d51 100644
--- a/config/locales/simple_form.ko.yml
+++ b/config/locales/simple_form.ko.yml
@@ -68,6 +68,21 @@ ko:
with_dns_records: 입력한 도메인의 DNS를 조회를 시도하여 나온 값도 차단됩니다
featured_tag:
name: '이것들을 사용하면 좋을 것 같습니다:'
+ filters:
+ action: 게시물이 필터에 걸러질 때 어떤 동작을 수행할 지 고르세요
+ actions:
+ hide: 필터에 걸러진 글을 처음부터 없었던 것처럼 완전히 가리기
+ warn: 필터에 걸러진 글을 필터 제목과 함께 경고 뒤에 가리기
+ form_admin_settings:
+ backups_retention_period: 생성된 사용자 아카이브를 며칠동안 저장할 지.
+ closed_registrations_message: 새 가입을 차단했을 때 표시됩니다
+ content_cache_retention_period: 양수가 설정되었다면 다른 서버의 게시물은 여기서 설정된 일수가 지나면 삭제될 것입니다. 되돌릴 수 없는 작업일 수 있습니다.
+ custom_css: 사용자 지정 스타일을 웹 버전의 마스토돈에 지정할 수 있습니다.
+ mascot: 고급 사용자 인터페이스에 있는 일러스트를 교체합니다.
+ media_cache_retention_period: 양수로 설정된 경우 다운로드된 미디어 파일들은 지정된 일수가 지나면 삭제될 것이고 필요할 때 다시 다운로드 될 것입니다.
+ site_contact_email: 사람들이 법적이나 도움 요청을 위해 당신에게 연락할 방법.
+ site_contact_username: 사람들이 마스토돈에서 당신에게 연락할 방법.
+ theme: 로그인 하지 않은 사용자나 새로운 사용자가 보게 될 테마.
form_challenge:
current_password: 당신은 보안 구역에 진입하고 있습니다
imports:
@@ -80,6 +95,7 @@ ko:
ip: IPv4 또는 IPv6 주소를 입력하세요. CIDR 문법을 사용해서 모든 범위를 차단할 수도 있습니다. 자기 자신을 잠가버리지 않도록 주의하세요!
severities:
no_access: 모든 자원에 대한 접근 차단
+ sign_up_block: 새 가입이 불가능하게 됩니다
sign_up_requires_approval: 새 가입이 승인을 필요로 하도록 합니다
severity: 해당 IP로부터의 요청에 대해 무엇이 일어나게 할 지 고르세요
rule:
@@ -91,6 +107,16 @@ ko:
name: 읽기 쉽게하기 위한 글자의 대소문자만 변경할 수 있습니다.
user:
chosen_languages: 체크하면, 선택 된 언어로 작성된 게시물들만 공개 타임라인에 보여집니다
+ role: 역할은 사용자가 어떤 권한을 가지게 될 지 결정합니다
+ user_role:
+ color: 색상은 사용자 인터페이스에서 역할을 나타내기 위해 사용되며, RGB 16진수 형식입니다
+ highlighted: 이 역할이 공개적으로 보이도록 설정합니다
+ name: 역할이 배지로 표시될 경우, 그 역할에 대한 공개적인 이름입니다
+ permissions_as_keys: 이 역할을 가진 사용자는 다음에 접근할 수 있게 됩니다...
+ position: 특정 상황에서 충돌이 발생할 경우 더 높은 역할이 충돌을 해결합니다. 특정 작업은 우선순위가 낮은 역할에 대해서만 수행될 수 있습니다
+ webhook:
+ events: 전송할 이벤트를 선택하세요
+ url: 이벤트가 어디로 전송될 지
labels:
account:
fields:
@@ -178,6 +204,7 @@ ko:
setting_use_pending_items: 느린 모드
severity: 심각도
sign_in_token_attempt: 보안 코드
+ title: 제목
type: 불러오기 종류
username: 사용자명
username_or_email: 사용자명 또는 이메일
@@ -186,6 +213,34 @@ ko:
with_dns_records: 도메인의 IP와 MX 레코드 값을 포함
featured_tag:
name: 해시태그
+ filters:
+ actions:
+ hide: 완전히 숨기기
+ warn: 경고와 함께 숨기기
+ form_admin_settings:
+ backups_retention_period: 사용자 아카이브 유지 기한
+ bootstrap_timeline_accounts: 새로운 사용자들에게 추천할 계정들
+ closed_registrations_message: 가입이 불가능 할 때의 사용자 지정 메시지
+ content_cache_retention_period: 컨텐트 캐시 유지 기한
+ custom_css: 사용자 정의 CSS
+ mascot: 사용자 정의 마스코트 (legacy)
+ media_cache_retention_period: 미디어 캐시 유지 기한
+ profile_directory: 프로필 책자 활성화
+ registrations_mode: 누가 가입할 수 있는지
+ require_invite_text: 가입 하는 이유를 필수로 입력하게 하기
+ show_domain_blocks: 도메인 차단 보여주기
+ show_domain_blocks_rationale: 왜 도메인이 차단되었는지 보여주기
+ site_contact_email: 연락처 이메일
+ site_contact_username: 연락 받을 관리자 사용자명
+ site_extended_description: 확장된 설명
+ site_short_description: 서버 설명
+ site_terms: 개인정보 정책
+ site_title: 서버 이름
+ theme: 기본 테마
+ thumbnail: 서버 썸네일
+ timeline_preview: 로그인 하지 않고 공개 타임라인에 접근하는 것을 허용
+ trendable_by_default: 사전 리뷰 없이 트렌드에 오르는 것을 허용
+ trends: 유행 활성화
interactions:
must_be_follower: 나를 팔로우 하지 않는 사람에게서 온 알림을 차단
must_be_following: 내가 팔로우 하지 않는 사람에게서 온 알림을 차단
@@ -199,6 +254,7 @@ ko:
ip: IP
severities:
no_access: 접근 차단
+ sign_up_block: 가입 차단
sign_up_requires_approval: 가입 제한
severity: 규칙
notification_emails:
@@ -219,7 +275,19 @@ ko:
name: 해시태그
trendable: 이 해시태그가 유행에 보여지도록 허용
usable: 이 해시태그를 게시물에 사용 가능하도록 허용
+ user:
+ role: 역할
+ user_role:
+ color: 배지 색상
+ highlighted: 역할 배지를 사용자 프로필에 표시
+ name: 이름
+ permissions_as_keys: 권한
+ position: 우선순위
+ webhook:
+ events: 활성화된 이벤트
+ url: 엔드포인트 URL
'no': 아니오
+ not_recommended: 추천하지 않음
recommended: 추천함
required:
mark: "*"
diff --git a/config/locales/simple_form.ku.yml b/config/locales/simple_form.ku.yml
index e9e6603cd0..7ef4e7ac3d 100644
--- a/config/locales/simple_form.ku.yml
+++ b/config/locales/simple_form.ku.yml
@@ -44,7 +44,7 @@ ku:
inbox_url: URLyê di rûpela pêşî de guhêrkerê ku tu dixwazî bi kar bînî jê bigire
irreversible: Şandiyên parzûnkirî êdî bê veger wenda bibe, heger parzûn paşê were rakirin jî nabe
locale: Zimanê navrûyê bikarhêner, agahdarîyên e-name û pêl kirin
- locked: Bi destan daxwazên şopê hilbijêrîne da ku kî bikaribe te bişopîne
+ locked: Bi pejirandina daxwazên şopandinê, kî dikare te bişopîne bi destan kontrol bike
password: Herî kêm 8 tîpan bi kar bîne
phrase: Ji rewşa nivîsê tîpên girdek/hûrdek an jî ji hişyariya naveroka ya şandiyê wek serbixwe wê were hevbeş kirin
scopes: |-
@@ -70,6 +70,18 @@ ku:
with_dns_records: Hewl tê dayîn ku tomarên DNSê yên li qada jê re hatine dayîn were çareserkirin û encamên wê jî were astengkirin
featured_tag:
name: 'Belkî tu yekê bi kar bînî çi van:'
+ filters:
+ action: Hilbijêre ku dema şandiyek bi parzûnê re lihevhatî be bila kîjan çalakî were pêkanîn
+ actions:
+ hide: Naveroka parzûnkirî bi tevahî veşêre, mîna ku ew tune be tevbigere
+ warn: Naveroka parzûnkirî li pişt hişyariyek ku sernavê parzûnê qal dike veşêre
+ form_admin_settings:
+ backups_retention_period: Arşîvên bikarhênerên çêkirî ji bo rojên diyarkirî tomar bike.
+ bootstrap_timeline_accounts: Ev ajimêr wê di pêşnîyarên şopandina bikarhênerên nû de werin derzîkirin.
+ closed_registrations_message: Dema ku tomarkirin girtî bin têne xuyakirin
+ content_cache_retention_period: Şandiyên ji rajekarên din wê piştî çend rojên diyarkirî dema ku li ser nirxek erênî were danîn werin jêbirin. Dibe ku ev bê veger be.
+ custom_css: Tu dikarî awayên kesane li ser guhertoya malperê ya Mastodon bicîh bikî.
+ media_cache_retention_period: Pelên medyayê yên daxistî wê piştî çend rojên diyarkirî dema ku li ser nirxek erênî were danîn werin jêbirin, û li gorî daxwazê ji nû ve werin daxistin.
form_challenge:
current_password: Tu dikevî qadeke ewledar
imports:
@@ -82,6 +94,7 @@ ku:
ip: Têkeve navnîşana IPv4 an jî IPv6'yek. Tu dikarî bi hevoksazî ya CIDR re hemî valahîyan asteng bikî. Hay ji xwe hebe ku xwe derve nehêle!
severities:
no_access: Gihîştina hemî çavkaniyan asteng bike
+ sign_up_block: Tomarkirinên nû wê ne pêkan bin
sign_up_requires_approval: Tomarkirinên nû de pejirandina te pêwîste
severity: Daxwazên ku ji vê IPyê tên dê çi bibe hilbijêre
rule:
@@ -93,6 +106,16 @@ ku:
name: Tîpan, mînak ji bo ku bêhtir paknivîs bibe, tenê rewşa tîpên girdek/hûrdek dikarî biguherînî
user:
chosen_languages: Dema were nîşankirin, tenê parvekirinên bi zimanên hilbijartî dê di rêzikên giştî de werin nîşandan
+ role: Rola kîjan mafdayînên bikarhêner heye kontrol dike
+ user_role:
+ color: Renga ku were bikaranîn ji bo rola li seranserê navrûya bikarhêneriyê, wekî RGB di forma hex
+ highlighted: Ev rola xwe ji raya giştî re xuya dike
+ name: Navê giştî yê rolê, ku rol wekî nîşanekê were nîşankirin
+ permissions_as_keys: Bikarhênerên bi vê rolê wê bigihîjin...
+ position: Rola bilind di hinek rewşan de biryara çareserkirina nakokiyan dide. Hinej çalakî tenê dikarin li ser rolên bi pêşanînek kêmtir bêne kirin
+ webhook:
+ events: Bûyeran hilbijêre bo şandinê
+ url: Cihê ku bûyer wê werin şandin
labels:
account:
fields:
@@ -180,6 +203,7 @@ ku:
setting_use_pending_items: Awayê hêdî
severity: Asta girîngiyê
sign_in_token_attempt: Koda ewlehiyê
+ title: Sernav
type: Cureya têxistinê
username: Navê bikarhêneriyê
username_or_email: Navê bikarhêner an jî e-name
@@ -188,6 +212,22 @@ ku:
with_dns_records: Tomarên MX û IP yên hundirê navper lê zêde bike
featured_tag:
name: Hashtag
+ filters:
+ actions:
+ hide: Bi tevahî veşêre
+ warn: Bi hişyariyekê veşêre
+ form_admin_settings:
+ backups_retention_period: Serdema tomarkirina arşîva bikarhêner
+ content_cache_retention_period: Serdema tomarkirina bîrdanka naverokê
+ custom_css: CSS a kesanekirî
+ mascot: Mascot a kesanekirî (legacy)
+ media_cache_retention_period: Serdema tomarkirina bîrdanka medyayê
+ profile_directory: Rêgeha profilê çalak bike
+ registrations_mode: Kî dikare tomar bibe
+ require_invite_text: Ji bo tevlêbûnê sedemek pêdivî ye
+ show_domain_blocks: Astengkirinên navperê nîşan bide
+ site_terms: Politîka taybetiyê
+ trendable_by_default: Mafê bide rojevê bêyî ku were nirxandin
interactions:
must_be_follower: Danezanên ji kesên ku ne şopînerên min tên asteng bike
must_be_following: Agahdariyan asteng bike ji kesên ku tu wan naşopînî
@@ -201,6 +241,7 @@ ku:
ip: IP
severities:
no_access: Gihîştinê asteng bike
+ sign_up_block: Tomarkirinan asteng bike
sign_up_requires_approval: Tomaran sînordar bike
severity: Rêbaz
notification_emails:
@@ -221,7 +262,19 @@ ku:
name: Hashtag
trendable: Bihêle ku ev hashtag werê xuyakirin di bin rojevê de
usable: Bihêle ku şandî ev hashtag bi kar bînin
+ user:
+ role: Rol
+ user_role:
+ color: Rengê nîşanê
+ highlighted: Li ser profîlên bikarhêner rola wekî nîşan bide nîşankirin
+ name: Nav
+ permissions_as_keys: Maf
+ position: Pêşikî
+ webhook:
+ events: Bûyerên çalakkirî
+ url: Girêdana xala dawîbûnê
'no': Na
+ not_recommended: Nayê pêşniyarkirin
recommended: Pêşniyarkirî
required:
mark: "*"
diff --git a/config/locales/simple_form.lv.yml b/config/locales/simple_form.lv.yml
index e512551ba9..4529d2c5da 100644
--- a/config/locales/simple_form.lv.yml
+++ b/config/locales/simple_form.lv.yml
@@ -68,6 +68,32 @@ lv:
with_dns_records: Tiks mēģināts atrisināt dotā domēna DNS ierakstus, un rezultāti arī tiks bloķēti
featured_tag:
name: 'Iespējams, vēlēsies izmantot kādu no šīm:'
+ filters:
+ action: Izvēlies, kuru darbību veikt, ja ziņa atbilst filtram
+ actions:
+ hide: Paslēp filtrēto saturu pilnībā, izturoties tā, it kā tas neeksistētu
+ warn: Paslēp filtrēto saturu aiz brīdinājuma, kurā minēts filtra nosaukums
+ form_admin_settings:
+ backups_retention_period: Saglabā ģenerētos lietotāju arhīvus norādīto dienu skaitā.
+ bootstrap_timeline_accounts: Šie konti tiks piesprausti jauno lietotāju ieteikumu augšdaļā.
+ closed_registrations_message: Tiek rādīts, kad reģistrēšanās ir slēgta
+ content_cache_retention_period: Ziņas no citiem serveriem tiks dzēstas pēc norādītā dienu skaita, ja ir iestatīta pozitīva vērtība. Tas var būt neatgriezeniski.
+ custom_css: Vari lietot pielāgotus stilus Mastodon tīmekļa versijā.
+ mascot: Ignorē ilustrāciju uzlabotajā tīmekļa saskarnē.
+ media_cache_retention_period: Lejupielādētie multivides faili tiks dzēsti pēc norādītā dienu skaita, kad tie būs iestatīti uz pozitīvu vērtību, un pēc pieprasījuma tiks lejupielādēti atkārtoti.
+ profile_directory: Profilu direktorijā ir uzskaitīti visi lietotāji, kuri ir izvēlējušies būt atklājami.
+ require_invite_text: 'Ja pierakstīšanai nepieciešama manuāla apstiprināšana, izdari tā, lai teksta: “Kāpēc vēlaties pievienoties?” ievade ir obligāta, nevis opcionāla'
+ site_contact_email: Kā cilvēki var sazināties ar tevi par juridiskiem vai atbalsta jautājumiem.
+ site_contact_username: Tagad cilvēki var tevi sasniegt Mastodon.
+ site_extended_description: Jebkura papildu informācija, kas var būt noderīga apmeklētājiem un lietotājiem. Var strukturēt ar Markdown sintaksi.
+ site_short_description: Īss apraksts, kas palīdzēs unikāli identificēt tavu serveri. Kurš to darbina, kam tas paredzēts?
+ site_terms: Izmanto pats savu konfidencialitātes politiku vai atstāj tukšu, lai izmantotu noklusējuma iestatījumu. Var strukturēt ar Markdown sintaksi.
+ site_title: Kā cilvēki var atsaukties uz tavu serveri, izņemot tā domēna nosaukumu.
+ theme: Tēma, kuru redz apmeklētāji, kuri ir atteikušies, un jaunie lietotāji.
+ thumbnail: Aptuveni 2:1 attēls, kas tiek parādīts kopā ar tava servera informāciju.
+ timeline_preview: Atteikušies apmeklētāji varēs pārlūkot jaunākās serverī pieejamās publiskās ziņas.
+ trendable_by_default: Izlaist aktuālā satura manuālu pārskatīšanu. Atsevišķas preces joprojām var noņemt no tendencēm pēc fakta.
+ trends: Tendences parāda, kuras ziņas, atsauces un ziņu stāsti gūst panākumus tavā serverī.
form_challenge:
current_password: Tu ieej drošā zonā
imports:
@@ -80,6 +106,7 @@ lv:
ip: Ievadi IPv4 vai IPv6 adresi. Izmantojot CIDR sintaksi, tu vari bloķēt visus diapazonus. Esi piesardzīgs un neizslēdz pats sevi!
severities:
no_access: Bloķēt piekļuvi visiem resursiem
+ sign_up_block: Jaunas pieteikšanās nebūs iespējamas
sign_up_requires_approval: Jaunām reģistrācijām būs nepieciešams tavs apstiprinājums
severity: Izvēlies, kas notiks ar pieprasījumiem no šīs IP adreses
rule:
@@ -91,6 +118,16 @@ lv:
name: Tu vari mainīt tikai burtu lielumu, piemēram, lai tie būtu vieglāk lasāmi
user:
chosen_languages: Ja ieķeksēts, publiskos laika grafikos tiks parādītas tikai ziņas noteiktajās valodās
+ role: Loma kontrolē, kādas atļaujas ir lietotājam
+ user_role:
+ color: Krāsa, kas jāizmanto lomai visā lietotāja interfeisā, kā RGB hex formātā
+ highlighted: Tas padara lomu publiski redzamu
+ name: Lomas publiskais nosaukums, ja loma ir iestatīta rādīšanai kā emblēma
+ permissions_as_keys: Lietotājiem ar šo lomu būs piekļuve...
+ position: What is "alower"?
+ webhook:
+ events: Atlasi nosūtāmos notikums
+ url: Kur notikumi tiks nosūtīti
labels:
account:
fields:
@@ -178,6 +215,7 @@ lv:
setting_use_pending_items: Lēnais režīms
severity: Smagums
sign_in_token_attempt: Drošības kods
+ title: Virsraksts
type: Importa veids
username: Lietotājvārds
username_or_email: Lietotājvārds vai e-pasts
@@ -186,6 +224,34 @@ lv:
with_dns_records: Ietvert domēna MX ierakstus un IP adreses
featured_tag:
name: Tēmturis
+ filters:
+ actions:
+ hide: Paslēpt pilnībā
+ warn: Paslēpt ar brīdinājumu
+ form_admin_settings:
+ backups_retention_period: Lietotāja arhīva glabāšanas periods
+ bootstrap_timeline_accounts: Vienmēr iesaki šos kontus jaunajiem lietotājiem
+ closed_registrations_message: Pielāgots ziņojums, ja reģistrēšanās nav pieejama
+ content_cache_retention_period: Satura arhīva glabāšanas periods
+ custom_css: Pielāgots CSS
+ mascot: Pielāgots talismans (mantots)
+ media_cache_retention_period: Multivides kešatmiņas saglabāšanas periods
+ profile_directory: Iespējot profila direktoriju
+ registrations_mode: Kurš drīkst pieteikties
+ require_invite_text: Pieprasīt pievienošanās iemeslu
+ show_domain_blocks: Rādīt domēnu bloķēšanas
+ show_domain_blocks_rationale: Rādīt, kāpēc domēni tika bloķēti
+ site_contact_email: E-pasts saziņai
+ site_contact_username: Lietotājvārds saziņai
+ site_extended_description: Paplašināts apraksts
+ site_short_description: Servera apraksts
+ site_terms: Privātuma Politika
+ site_title: Servera nosaukums
+ theme: Noklusētā tēma
+ thumbnail: Servera sīkbilde
+ timeline_preview: Atļaut neautentificētu piekļuvi publiskajām ziņu lentām
+ trendable_by_default: Atļaut tendences bez iepriekšējas pārskatīšanas
+ trends: Iespējot tendences
interactions:
must_be_follower: Bloķēt paziņojumus no ne-sekotājiem
must_be_following: Bloķēt paziņojumus no cilvēkiem, kuriem tu neseko
@@ -199,6 +265,7 @@ lv:
ip: IP
severities:
no_access: Bloķēt piekļuvi
+ sign_up_block: Bloķēt pieteikšanās
sign_up_requires_approval: Ierobežot reģistrēšanos
severity: Noteikumi
notification_emails:
@@ -219,7 +286,19 @@ lv:
name: Tēmturis
trendable: Atļaut šim tēmturim parādīties zem tendencēm
usable: Atļaut lietot ziņās šo tēmturi
+ user:
+ role: Loma
+ user_role:
+ color: Emblēmas krāsa
+ highlighted: Atainot lomu kā emblēmu lietotāju profilos
+ name: Nosaukums
+ permissions_as_keys: Atļaujas
+ position: Prioritāte
+ webhook:
+ events: Iespējotie notikumi
+ url: Galapunkta URL
'no': Nē
+ not_recommended: Nav ieteicams
recommended: Ieteicams
required:
mark: "*"
diff --git a/config/locales/simple_form.nl.yml b/config/locales/simple_form.nl.yml
index 33968b5085..33dd889c4e 100644
--- a/config/locales/simple_form.nl.yml
+++ b/config/locales/simple_form.nl.yml
@@ -27,6 +27,8 @@ nl:
scheduled_at: Laat leeg om de mededeling meteen te publiceren
starts_at: Optioneel. In het geval dat jouw mededeling aan een bepaald tijdvak is gebonden
text: Je kunt specifieke tekst voor berichten gebruiken. Let op de ruimte die de mededeling op het scherm van de gebruiker inneemt
+ appeal:
+ text: Je kunt maar eenmalig bezwaar indienen tegen een vastgestelde overtreding
defaults:
autofollow: Mensen die zich via de uitnodiging hebben geregistreerd, volgen jou automatisch
avatar: PNG, GIF of JPG. Maximaal %{size}. Wordt teruggeschaald naar %{dimensions}px
@@ -35,8 +37,9 @@ nl:
current_password: Voer voor veiligheidsredenen het wachtwoord van je huidige account in
current_username: Voer ter bevestiging de gebruikersnaam van je huidige account in
digest: Wordt alleen na een lange periode van inactiviteit verzonden en alleen wanneer je tijdens jouw afwezigheid persoonlijke berichten hebt ontvangen
+ discoverable: Toestaan dat jouw account vindbaar is voor onbekenden, via aanbevelingen, trends en op andere manieren
email: Je krijgt een bevestigingsmail
- fields: Je kan maximaal 4 items als een tabel op je profiel weergeven
+ fields: Je kunt maximaal 4 items als een tabel op je profiel weergeven
header: PNG, GIF of JPG. Maximaal %{size}. Wordt teruggeschaald naar %{dimensions}px
inbox_url: Kopieer de URL van de voorpagina van de relayserver die je wil gebruiken
irreversible: Gefilterde berichten verdwijnen onomkeerbaar, zelfs als de filter later wordt verwijderd
@@ -46,6 +49,7 @@ nl:
phrase: Komt overeen ongeacht hoofd-/kleine letters of een inhoudswaarschuwing
scopes: Tot welke API's heeft de toepassing toegang. Wanneer je een toestemming van het bovenste niveau kiest, hoef je geen individuele toestemmingen meer te kiezen.
setting_aggregate_reblogs: Geen nieuwe boosts tonen voor berichten die recentelijk nog zijn geboost (heeft alleen effect op nieuw ontvangen boosts)
+ setting_always_send_emails: Normaliter worden er geen e-mailmeldingen verstuurd wanneer je actief Mastodon gebruikt
setting_default_sensitive: Gevoelige media wordt standaard verborgen en kan met één klik worden getoond
setting_display_media_default: Als gevoelig gemarkeerde media verbergen
setting_display_media_hide_all: Media altijd verbergen
@@ -63,6 +67,22 @@ nl:
with_dns_records: Er wordt een poging gewaagd om de desbetreffende DNS-records op te zoeken, waarna de resultaten ook worden geblokkeerd
featured_tag:
name: 'Je wilt misschien een van deze gebruiken:'
+ filters:
+ action: Kies welke acties uitgevoerd moeten wanneer een bericht overeenkomt met het filter
+ actions:
+ hide: Verberg de gefilterde inhoud volledig, alsof het niet bestaat
+ warn: Verberg de gefilterde inhoud achter een waarschuwing, met de titel van het filter als waarschuwingstekst
+ form_admin_settings:
+ backups_retention_period: De aangemaakte gebruikersarchieven voor het opgegeven aantal dagen behouden.
+ bootstrap_timeline_accounts: Deze accounts worden bovenaan de aanbevelingen aan nieuwe gebruikers getoond. Meerdere gebruikersnamen met komma's scheiden.
+ closed_registrations_message: Weergegeven wanneer registratie van nieuwe accounts is uitgeschakeld
+ content_cache_retention_period: 'Berichten van andere servers worden na het opgegeven aantal dagen verwijderd. Let op: Dit is onomkeerbaar.'
+ media_cache_retention_period: Mediabestanden die van andere servers zijn gedownload worden na het opgegeven aantal dagen verwijderd en worden op verzoek opnieuw gedownload.
+ require_invite_text: Maak het invullen van "Waarom wil je je hier registreren?" verplicht in plaats van optioneel, wanneer registraties handmatig moeten worden goedgekeurd
+ theme: Thema die (niet ingelogde) bezoekers en nieuwe gebruikers zien.
+ timeline_preview: Bezoekers (die niet zijn ingelogd) kunnen de meest recente, op de server aanwezige openbare berichten bekijken.
+ trendable_by_default: Handmatige beoordeling van trends overslaan. Individuele items kunnen later alsnog worden afgekeurd.
+ trends: Trends laten zien welke berichten, hashtags en nieuwsberichten op jouw server aan populariteit winnen.
form_challenge:
current_password: Je betreedt een veilige omgeving
imports:
@@ -75,6 +95,7 @@ nl:
ip: Voer een IPv4- of IPv6-adres in. Je kunt hele reeksen blokkeren met de CIDR-methode. Pas op dat je jezelf niet buitensluit!
severities:
no_access: Toegang tot de hele server blokkeren
+ sign_up_block: Nieuwe registraties zijn niet mogelijk
sign_up_requires_approval: Nieuwe registraties vereisen jouw goedkeuring
severity: Kies wat er moet gebeuren met aanvragen van dit IP-adres
rule:
@@ -86,6 +107,14 @@ nl:
name: Je kunt elk woord met een hoofdletter beginnen, om zo bijvoorbeeld de tekst leesbaarder te maken
user:
chosen_languages: Alleen berichten in de aangevinkte talen worden op de openbare tijdlijnen getoond
+ role: De rol bepaalt welke rechten een gebruiker heeft
+ user_role:
+ highlighted: Dit maakt de rol openbaar zichtbaar
+ name: Openbare naam van de rol, wanneer de rol als badge op profielpagina's wordt getoond
+ permissions_as_keys: Gebruikers met deze rol hebben toegang tot...
+ webhook:
+ events: Selecteer de te verzenden gebeurtenissen
+ url: Waar gebeurtenissen naartoe worden verzonden
labels:
account:
fields:
@@ -116,6 +145,8 @@ nl:
scheduled_at: Mededeling inplannen
starts_at: Begint
text: Mededeling
+ appeal:
+ text: Leg uit waarom deze beslissing volgens jou teruggedraaid moet worden
defaults:
autofollow: Uitnodigen om jouw account te volgen
avatar: Avatar
@@ -145,6 +176,7 @@ nl:
phrase: Trefwoord of zinsdeel
setting_advanced_layout: Geavanceerde webomgeving inschakelen
setting_aggregate_reblogs: Boosts in tijdlijnen groeperen
+ setting_always_send_emails: Altijd e-mailmeldingen verzenden
setting_auto_play_gif: Speel geanimeerde GIF's automatisch af
setting_boost_modal: Vraag voor het boosten van een bericht een bevestiging
setting_crop_images: Afbeeldingen bijsnijden tot 16x9 in berichten op tijdlijnen
@@ -170,6 +202,7 @@ nl:
setting_use_pending_items: Langzame modus
severity: Zwaarte
sign_in_token_attempt: Beveiligingscode
+ title: Titel
type: Importtype
username: Gebruikersnaam
username_or_email: Gebruikersnaam of e-mailadres
@@ -178,6 +211,34 @@ nl:
with_dns_records: MX-records en IP-adressen van het domein toevoegen
featured_tag:
name: Hashtag
+ filters:
+ actions:
+ hide: Volledig verbergen
+ warn: Met een waarschuwing verbergen
+ form_admin_settings:
+ backups_retention_period: Bewaartermijn gebruikersarchief
+ bootstrap_timeline_accounts: Accounts die altijd aan nieuwe gebruikers worden aanbevolen
+ closed_registrations_message: Aangepast bericht wanneer registratie is uitgeschakeld
+ content_cache_retention_period: Bewaartermijn berichtencache
+ custom_css: Aangepaste CSS
+ mascot: Aangepaste mascotte (legacy)
+ media_cache_retention_period: Bewaartermijn mediacache
+ profile_directory: Gebruikersgids inschakelen
+ registrations_mode: Wie kan zich registreren
+ require_invite_text: Goedkeuring vereist om te kunnen registreren
+ show_domain_blocks: Domeinblokkades tonen
+ show_domain_blocks_rationale: Redenen voor domeinblokkades tonen
+ site_contact_email: E-mailadres contactpersoon
+ site_contact_username: Gebruikersnaam contactpersoon
+ site_extended_description: Uitgebreide omschrijving
+ site_short_description: Serveromschrijving
+ site_terms: Privacybeleid
+ site_title: Servernaam
+ theme: Standaardthema
+ thumbnail: Serverthumbnail
+ timeline_preview: Toegang tot de openbare tijdlijnen zonder in te loggen toestaan
+ trendable_by_default: Trends goedkeuren zonder voorafgaande beoordeling
+ trends: Trends inschakelen
interactions:
must_be_follower: Meldingen van mensen die jou niet volgen blokkeren
must_be_following: Meldingen van mensen die jij niet volgt blokkeren
@@ -191,24 +252,40 @@ nl:
ip: IP
severities:
no_access: Toegang blokkeren
+ sign_up_block: Registraties blokkeren
sign_up_requires_approval: Registraties beperken
severity: Regel
notification_emails:
+ appeal: Iemand heeft bezwaar ingediend tegen een beslissing van een moderator
digest: Periodiek e-mails met een samenvatting versturen
- favourite: Wanneer iemand jouw bericht aan diens favorieten heeft toegevoegd
+ favourite: Wanneer iemand jouw bericht als favoriet markeert
follow: Wanneer iemand jou is gaan volgen
follow_request: Wanneer iemand jou wil volgen
mention: Wanneer iemand jou heeft vermeld
pending_account: Wanneer een nieuw account moet worden beoordeeld
reblog: Wanneer iemand jouw bericht heeft geboost
+ report: Nieuwe rapportage is ingediend
+ trending_tag: Nieuwe trend vereist beoordeling
rule:
text: Regel
tag:
listable: Toestaan dat deze hashtag in zoekopdrachten en aanbevelingen te zien valt
name: Hashtag
- trendable: Toestaan dat deze hashtag onder trends te zien valt
+ trendable: Goedkeuren dat deze hashtag onder trends te zien valt
usable: Toestaan dat deze hashtag in berichten gebruikt mag worden
+ user:
+ role: Rol
+ user_role:
+ color: Kleur van badge
+ highlighted: Rol als badge op profielpagina's tonen
+ name: Naam
+ permissions_as_keys: Rechten
+ position: Prioriteit
+ webhook:
+ events: Ingeschakelde gebeurtenissen
+ url: Eindpunt URL
'no': Nee
+ not_recommended: Niet aanbevolen
recommended: Aanbevolen
required:
mark: "*"
diff --git a/config/locales/simple_form.nn.yml b/config/locales/simple_form.nn.yml
index 0e99886543..71734509bc 100644
--- a/config/locales/simple_form.nn.yml
+++ b/config/locales/simple_form.nn.yml
@@ -85,6 +85,10 @@ nn:
name: Du kan berre endra bruken av store/små bokstavar, t. d. for å gjera det meir leseleg
user:
chosen_languages: Når merka vil berre tuta på dei valde språka synast på offentlege tidsliner
+ role: Rolla kontrollerer kva tilgangar brukaren har
+ user_role:
+ highlighted: Dette gjer rolla synleg offentleg
+ permissions_as_keys: Brukarar med denne rolla vil ha tilgang til...
labels:
account:
fields:
@@ -144,6 +148,7 @@ nn:
phrase: Nykelord eller frase
setting_advanced_layout: Skruv på det avanserte nettgrensesnittet
setting_aggregate_reblogs: Gruppeframhevingar på tidsliner
+ setting_always_send_emails: Alltid send epostvarsel
setting_auto_play_gif: Spel av animerte GIF-ar automatisk
setting_boost_modal: Vis stadfesting før framheving
setting_crop_images: Skjer bilete i ikkje-utvida tut til 16x9
@@ -169,6 +174,7 @@ nn:
setting_use_pending_items: Saktemodus
severity: Alvorsgrad
sign_in_token_attempt: Trygdenykel
+ title: Tittel
type: Importtype
username: Brukarnamn
username_or_email: Brukarnamn eller E-post
@@ -177,6 +183,10 @@ nn:
with_dns_records: Ha med MX-recordar og IP-ar til domenet
featured_tag:
name: Emneknagg
+ filters:
+ actions:
+ hide: Gøym totalt
+ warn: Gøym med ei advarsel
interactions:
must_be_follower: Gøym varslingar frå folk som ikkje fylgjer deg
must_be_following: Gøym varslingar frå folk du ikkje fylgjer
@@ -200,6 +210,7 @@ nn:
mention: Send e-post når nokon nemner deg
pending_account: Send e-post når ein ny konto treng gjennomgang
reblog: Send e-post når nokon framhevar statusen din
+ report: Ny rapport er sendt
rule:
text: Regler
tag:
@@ -207,6 +218,13 @@ nn:
name: Emneknagg
trendable: Tillat denne emneknaggen til å synast under trendar
usable: Gje tut lov til å nytta denne emneknaggen
+ user:
+ role: Rolle
+ user_role:
+ name: Namn
+ position: Prioritet
+ webhook:
+ url: Endepunkts-URL
'no': Nei
recommended: Tilrådt
required:
diff --git a/config/locales/simple_form.pl.yml b/config/locales/simple_form.pl.yml
index 0793f55bcd..4d44bbe640 100644
--- a/config/locales/simple_form.pl.yml
+++ b/config/locales/simple_form.pl.yml
@@ -68,6 +68,32 @@ pl:
with_dns_records: Zostanie wykonana próba rozwiązania rekordów DNS podanej domeny, a wyniki również zostaną dodane na czarną listę
featured_tag:
name: 'Sugerujemy użycie jednego z następujących:'
+ filters:
+ action: Wybierz akcję do wykonania, gdy post pasuje do filtra
+ actions:
+ hide: Całkowicie ukryj przefiltrowaną zawartość, jakby nie istniała
+ warn: Ukryj filtrowaną zawartość za ostrzeżeniem wskazującym tytuł filtra
+ form_admin_settings:
+ backups_retention_period: Zachowaj wygenerowane archiwa użytkownika przez określoną liczbę dni.
+ bootstrap_timeline_accounts: Te konta zostaną przypięte na górze rekomendacji śledzenia nowych użytkowników.
+ closed_registrations_message: Wyświetlane po zamknięciu rejestracji
+ content_cache_retention_period: Posty z innych serwerów zostaną usunięte po określonej liczbie dni, kiedy liczba jest ustawiona na wartość dodatnią. Może to być nieodwracalne.
+ custom_css: Możesz zastosować niestandardowe style w internetowej wersji Mastodon.
+ mascot: Nadpisuje ilustrację w zaawansowanym interfejsie internetowym.
+ media_cache_retention_period: Pobrane pliki multimedialne zostaną usunięte po określonej liczbie dni po ustawieniu na wartość dodatnią i ponownie pobrane na żądanie.
+ profile_directory: Katalog profili zawiera listę wszystkich użytkowników, którzy zgodzili się na bycie znalezionymi.
+ require_invite_text: Kiedy rejestracje wymagają ręcznego zatwierdzenia, ustaw pole "Dlaczego chcesz dołączyć?" jako obowiązkowe, a nie opcjonalne
+ site_contact_email: Jak ludzie mogą się z Tobą skontaktować w celu uzyskania odpowiedzi na zapytania prawne lub wsparcie.
+ site_contact_username: Jak ludzie mogą do Ciebie dotrzeć na Mastodon.
+ site_extended_description: Wszelkie dodatkowe informacje, które mogą być przydatne dla odwiedzających i użytkowników. Można je formatować używając składni Markdown.
+ site_short_description: Krótki opis, który pomoże w unikalnym zidentyfikowaniu Twojego serwera. Kto go obsługuje, do kogo jest skierowany?
+ site_terms: Użyj własnej polityki prywatności lub zostaw puste, aby użyć domyślnej. Może być sformatowana za pomocą składni Markdown.
+ site_title: Jak ludzie mogą odwoływać się do Twojego serwera inaczej niże przez nazwę jego domeny.
+ theme: Motyw, który widzą wylogowani i nowi użytkownicy.
+ thumbnail: Obraz o proporcjach mniej więcej 2:1 wyświetlany obok informacji o serwerze.
+ timeline_preview: Wylogowani użytkownicy będą mogli przeglądać najnowsze publiczne wpisy dostępne na serwerze.
+ trendable_by_default: Pomiń ręczny przegląd treści trendów. Pojedyncze elementy nadal mogą być usuwane z trendów po fakcie.
+ trends: Tendencje pokazują, które posty, hasztagi i newsy zyskują popularność na Twoim serwerze.
form_challenge:
current_password: Wchodzisz w strefę bezpieczną
imports:
@@ -80,6 +106,7 @@ pl:
ip: Wprowadź adres IPv4 lub IPv6. Możesz zablokować całe zakresy za pomocą składni CIDR. Uważaj, aby się nie zablokować!
severities:
no_access: Zablokuj dostęp do wszystkich zasobów
+ sign_up_block: Nowe rejestracje nie będą możliwe
sign_up_requires_approval: Nowe rejestracje będą wymagać twojej zgody
severity: Wybierz co ma się stać z żadaniami z tego adresu IP
rule:
@@ -91,6 +118,16 @@ pl:
name: Możesz zmieniać tylko wielkość liter, np. aby były bardziej widoczne
user:
chosen_languages: Jeżeli zaznaczone, tylko wpisy w wybranych językach będą wyświetlane na publicznych osiach czasu
+ role: Rola kontroluje uprawnienia użytkownika
+ user_role:
+ color: Kolor używany dla roli w całym interfejsie użytkownika, wyrażony jako RGB w formacie szesnastkowym
+ highlighted: To sprawia, że rola jest widoczna publicznie
+ name: Publiczna nazwa roli, jeśli włączone jest wyświetlanie odznaki
+ permissions_as_keys: Użytkownicy z tą rolą będą mieli dostęp do...
+ position: Wyższa rola decyduje o rozwiązywaniu konfliktów w pewnych sytuacjach. Niektóre działania mogą być wykonywane tylko na rolach z niższym priorytetem
+ webhook:
+ events: Wybierz zdarzenia do wysłania
+ url: Dokąd będą wysłane zdarzenia
labels:
account:
fields:
@@ -178,6 +215,7 @@ pl:
setting_use_pending_items: Tryb spowolniony
severity: Priorytet
sign_in_token_attempt: Kod zabezpieczający
+ title: Tytuł
type: Importowane dane
username: Nazwa użytkownika
username_or_email: Nazwa użytkownika lub adres e-mail
@@ -186,6 +224,34 @@ pl:
with_dns_records: Uwzględnij rekordy MX i adresy IP domeny
featured_tag:
name: Hasztag
+ filters:
+ actions:
+ hide: Ukryj całkowicie
+ warn: Ukryj z ostrzeżeniem
+ form_admin_settings:
+ backups_retention_period: Okres przechowywania archiwum użytkownika
+ bootstrap_timeline_accounts: Zawsze rekomenduj te konta nowym użytkownikom
+ closed_registrations_message: Niestandardowa wiadomość, gdy rejestracje nie są dostępne
+ content_cache_retention_period: Okres przechowywania pamięci podręcznej
+ custom_css: Niestandardowy CSS
+ mascot: Własna ikona
+ media_cache_retention_period: Okres przechowywania pamięci podręcznej
+ profile_directory: Włącz katalog profilów
+ registrations_mode: Kto może się zarejestrować
+ require_invite_text: Wymagaj powodu, aby dołączyć
+ show_domain_blocks: Pokazuj zablokowane domeny
+ show_domain_blocks_rationale: Pokaż dlaczego domeny zostały zablokowane
+ site_contact_email: E-mail kontaktowy
+ site_contact_username: Nazwa użytkownika do kontaktu
+ site_extended_description: Rozszerzony opis
+ site_short_description: Opis serwera
+ site_terms: Polityka prywatności
+ site_title: Nazwa serwera
+ theme: Domyślny motyw
+ thumbnail: Miniaturka serwera
+ timeline_preview: Zezwalaj na nieuwierzytelniony dostęp do publicznych osi czasu
+ trendable_by_default: Zezwalaj na trendy bez wcześniejszego przeglądu
+ trends: Włącz trendy
interactions:
must_be_follower: Nie wyświetlaj powiadomień od osób, które Cię nie śledzą
must_be_following: Nie wyświetlaj powiadomień od osób, których nie śledzisz
@@ -199,6 +265,7 @@ pl:
ip: Adres IP
severities:
no_access: Zablokuj dostęp
+ sign_up_block: Zablokuj nowe rejestracje
sign_up_requires_approval: Ogranicz rejestracje
severity: Reguła
notification_emails:
@@ -219,7 +286,19 @@ pl:
name: Hashtag
trendable: Pozwól na wyświetlanie tego hashtagu w „Na czasie”
usable: Pozwól na umieszczanie tego hashtagu we wpisach
+ user:
+ role: Rola
+ user_role:
+ color: Kolor odznaki
+ highlighted: Wyświetl rolę jako odznakę na profilach użytkowników
+ name: Nazwa
+ permissions_as_keys: Uprawnienia
+ position: Priorytet
+ webhook:
+ events: Włączone zdarzenia
+ url: Endpoint URL
'no': Nie
+ not_recommended: Niezalecane
recommended: Polecane
required:
mark: "*"
diff --git a/config/locales/simple_form.pt-BR.yml b/config/locales/simple_form.pt-BR.yml
index b96952e965..9bbc6b4d75 100644
--- a/config/locales/simple_form.pt-BR.yml
+++ b/config/locales/simple_form.pt-BR.yml
@@ -27,6 +27,8 @@ pt-BR:
scheduled_at: Deixe em branco para publicar o comunicado agora
starts_at: Opcional. Caso o comunicado esteja vinculado a um período específico
text: Você pode usar a sintaxe do toot. Considere o espaço que o comunicado ocupará na tela do usuário
+ appeal:
+ text: Você só pode recorrer uma vez
defaults:
autofollow: Pessoas que criarem conta através de seu convite te seguirão automaticamente
avatar: PNG, GIF or JPG. Arquivos de até %{size}. Serão redimensionados para %{dimensions}px
@@ -35,6 +37,7 @@ pt-BR:
current_password: Para fins de segurança, por favor, digite a senha da conta atual
current_username: Para confirmar, por favor, digite o nome de usuário da conta atual
digest: Enviado apenas após um longo período de inatividade com um resumo das menções recebidas durante ausência
+ discoverable: Permita que a sua conta seja descoberta por estranhos através de recomendações, tendências e outros recursos
email: Você receberá um e-mail de confirmação
fields: Você pode ter até 4 itens mostrados em forma de tabela no seu perfil
header: PNG, GIF or JPG. Arquivos de até %{size}. Serão redimensionados para %{dimensions}px
@@ -46,6 +49,7 @@ pt-BR:
phrase: Corresponderá independente de maiúsculas ou minúsculas, no texto ou no Aviso de Conteúdo de um toot
scopes: Quais APIs o aplicativo vai ter permissão de acessar. Se você selecionar uma autorização de alto nível, você não precisa selecionar individualmente os outros.
setting_aggregate_reblogs: Não mostra novos boosts para toots que receberam boost recentemente (afeta somente os boosts mais recentes)
+ setting_always_send_emails: Normalmente, as notificações por e-mail não serão enviadas enquanto você estiver usando ativamente o Mastodon
setting_default_sensitive: Mídia sensível está oculta por padrão e pode ser revelada com um clique
setting_display_media_default: Sempre ocultar mídia sensível
setting_display_media_hide_all: Sempre ocultar todas as mídias
@@ -64,6 +68,11 @@ pt-BR:
with_dns_records: Será feita uma tentativa de resolver os registros DNS do domínio em questão e os resultados também serão colocados na lista negra
featured_tag:
name: 'Você pode querer usar um destes:'
+ filters:
+ action: Escolher qual ação executar quando um post corresponder ao filtro
+ actions:
+ hide: Esconder completamente o conteúdo filtrado, comportando-se como se ele não existisse
+ warn: Ocultar o conteúdo filtrado por trás de um aviso mencionando o título do filtro
form_challenge:
current_password: Você está entrando em uma área segura
imports:
@@ -87,6 +96,9 @@ pt-BR:
name: Você pode mudar a capitalização das letras, por exemplo, para torná-la mais legível
user:
chosen_languages: Apenas toots dos idiomas selecionados serão mostrados nas linhas públicas
+ webhook:
+ events: Selecione eventos para enviar
+ url: Aonde os eventos serão enviados
labels:
account:
fields:
@@ -148,6 +160,7 @@ pt-BR:
phrase: Palavra-chave ou frase
setting_advanced_layout: Ativar interface web avançada
setting_aggregate_reblogs: Agrupar boosts nas linhas
+ setting_always_send_emails: Sempre enviar notificações por e-mail
setting_auto_play_gif: Reproduzir GIFs automaticamente
setting_boost_modal: Solicitar confirmação antes de dar boost
setting_crop_images: Cortar imagens no formato 16x9 em toots não expandidos
@@ -173,6 +186,7 @@ pt-BR:
setting_use_pending_items: Modo lento
severity: Gravidade
sign_in_token_attempt: Código de segurança
+ title: Título
type: Tipo de importação
username: Nome de usuário
username_or_email: Nome de usuário ou e-mail
@@ -181,6 +195,10 @@ pt-BR:
with_dns_records: Incluir registros MX e IPs do domínio
featured_tag:
name: Hashtag
+ filters:
+ actions:
+ hide: Ocultar completamente
+ warn: Ocultar com um aviso
interactions:
must_be_follower: Bloquear notificações de não-seguidores
must_be_following: Bloquear notificações de não-seguidos
@@ -197,6 +215,7 @@ pt-BR:
sign_up_requires_approval: Limitar novas contas
severity: Regra
notification_emails:
+ appeal: Alguém recorre de uma decisão moderadora
digest: Enviar e-mails de resumo
favourite: Enviar e-mail quando alguém favoritar teus toots
follow: Enviar e-mail quando alguém te seguir
@@ -213,6 +232,9 @@ pt-BR:
name: Hashtag
trendable: Permitir que esta hashtag fique em alta
usable: Permitir que toots usem esta hashtag
+ webhook:
+ events: Eventos habilitados
+ url: URL do Endpoint
'no': Não
recommended: Recomendado
required:
diff --git a/config/locales/simple_form.pt-PT.yml b/config/locales/simple_form.pt-PT.yml
index 42116174f3..4fa667dddb 100644
--- a/config/locales/simple_form.pt-PT.yml
+++ b/config/locales/simple_form.pt-PT.yml
@@ -68,6 +68,32 @@ pt-PT:
with_dns_records: Será feita uma tentativa de resolver os registos DNS do domínio em questão e os resultados também serão colocados na lista negra
featured_tag:
name: 'Poderás querer usar um destes:'
+ filters:
+ action: Escolha qual a ação a executar quando uma publicação corresponde ao filtro
+ actions:
+ hide: Ocultar completamente o conteúdo filtrado, comportando-se como se não existisse
+ warn: Ocultar o conteúdo filtrado por trás de um aviso mencionando o título do filtro
+ form_admin_settings:
+ backups_retention_period: Manter os arquivos gerados pelos utilizadores por um número específico de dias.
+ bootstrap_timeline_accounts: Estas contas serão destacadas no topo das recomendações aos novos utilizadores.
+ closed_registrations_message: Exibido quando as inscrições estão encerradas
+ content_cache_retention_period: Publicações de outros servidores serão excluídos após o número de dias especificado, quando definido com um valor positivo. Isso pode ser irreversível.
+ custom_css: Pode aplicar estilos personalizados na versão web do Mastodon.
+ mascot: Sobrepõe-se à ilustração na interface web avançada.
+ media_cache_retention_period: Os ficheiros de media descarregados serão excluídos após o número de dias especificado, quando definido com um valor positivo, e descarregados novamente quando solicitados.
+ profile_directory: O diretório de perfis lista todos os utilizadores que optaram por a sua conta ser sugerida a outros.
+ require_invite_text: Quando as incrições exigirem aprovação manual, faça o texto "Porque se quer juntar a nós?" da solicitação de convite, obrigatório ao invés de opcional
+ site_contact_email: Como as pessoas podem entrar em contacto consigo para obter informações legais ou de suporte.
+ site_contact_username: Como as pessoas conseguem chegar até si no Mastodon.
+ site_extended_description: Qualquer informação adicional que possa ser útil para os visitantes e os seus utilizadores. Pode ser estruturada com a sintaxe Markdown.
+ site_short_description: Uma breve descrição para ajudar a identificar de forma única o seu servidor. Quem o está a gerir, para quem é?
+ site_terms: Use a sua própria política de privacidade ou deixe em branco para usar a política padrão. Pode ser estruturada com a sintaxe Markdown.
+ site_title: Como as pessoas podem referir-se ao seu servidor para além do seu nome de domínio.
+ theme: Tema que os visitantes e os novos utilizadores visualizam.
+ thumbnail: Uma imagem de aproximadamente 2:1, exibida ao lado da informação do seu servidor.
+ timeline_preview: Os visitantes sem sessão iniciada poderão consultar as publicações públicas mais recentes disponíveis no servidor.
+ trendable_by_default: Ignorar a revisão manual do conteúdo das tendências. Itens individuais ainda poderão ser removidos das tendências após a sua exibição.
+ trends: As tendências mostram quais as publicações, hashtags e notícias estão a ganhar destaque no seu servidor.
form_challenge:
current_password: Está a entrar numa área restrita
imports:
@@ -80,6 +106,7 @@ pt-PT:
ip: Introduza um endereço IPv4 ou IPv6. Pode bloquear intervalos inteiros usando a sintaxe CIDR. Tenha cuidado para não se bloquear a sí mesmo!
severities:
no_access: Bloquear o acesso a todos os recursos
+ sign_up_block: Não serão possíveis novas inscrições
sign_up_requires_approval: Novas inscrições requererão a sua aprovação
severity: Escolha o que acontecerá com as solicitações deste IP
rule:
@@ -91,6 +118,16 @@ pt-PT:
name: Só pode alterar a capitalização das letras, por exemplo, para torná-las mais legíveis
user:
chosen_languages: Quando seleccionado, só publicações nas línguas escolhidas serão mostradas nas cronologias públicas
+ role: A função controla que permissões o utilizador tem
+ user_role:
+ color: Cor a ser utilizada para a função em toda a interface de utilizador, como RGB no formato hexadecimal
+ highlighted: Isto torna a função visível publicamente
+ name: Nome público da função, se a função for definida para ser exibida como um distintivo
+ permissions_as_keys: Utilizadores com esta função terão acesso a...
+ position: Função mais alta decidem a resolução de conflitos em certas situações. Certas ações só podem ser executadas em funções com uma menor prioridade
+ webhook:
+ events: Selecione os eventos a enviar
+ url: Para onde os eventos serão enviados
labels:
account:
fields:
@@ -178,6 +215,7 @@ pt-PT:
setting_use_pending_items: Modo lento
severity: Gravidade
sign_in_token_attempt: Código de segurança
+ title: Título
type: Tipo de importação
username: Nome de utilizador
username_or_email: Nome de utilizador ou e-mail
@@ -186,6 +224,34 @@ pt-PT:
with_dns_records: Incluir registos MX e IPs do domínio
featured_tag:
name: Hashtag
+ filters:
+ actions:
+ hide: Ocultar por completo
+ warn: Ocultar com um aviso
+ form_admin_settings:
+ backups_retention_period: Período de retenção de arquivos de utilizador
+ bootstrap_timeline_accounts: Sempre recomendar essas contas para novos utilizadores
+ closed_registrations_message: Mensagem personalizada quando as inscrições não estão disponíveis
+ content_cache_retention_period: Período de retenção de conteúdo em cache
+ custom_css: CSS Personalizado
+ mascot: Mascote personalizada (legado)
+ media_cache_retention_period: Período de retenção de ficheiros de media em cache
+ profile_directory: Habilitar diretório de perfis
+ registrations_mode: Quem pode inscrever-se
+ require_invite_text: Requerer uma razão para entrar
+ show_domain_blocks: Mostrar domínios bloqueados
+ show_domain_blocks_rationale: Mostrar porque os domínios foram bloqueados
+ site_contact_email: E-mail de contacto
+ site_contact_username: Nome de utilizador do contacto
+ site_extended_description: Descrição estendida
+ site_short_description: Descrição do servidor
+ site_terms: Política de Privacidade
+ site_title: Nome do servidor
+ theme: Tema predefinido
+ thumbnail: Miniatura do servidor
+ timeline_preview: Permitir acesso não autenticado às cronologias públicas
+ trendable_by_default: Permitir tendências sem revisão prévia
+ trends: Habilitar tendências
interactions:
must_be_follower: Bloquear notificações de não-seguidores
must_be_following: Bloquear notificações de pessoas que não segues
@@ -199,6 +265,7 @@ pt-PT:
ip: IP
severities:
no_access: Bloquear acesso
+ sign_up_block: Bloquear inscrições
sign_up_requires_approval: Limitar inscrições
severity: Regra
notification_emails:
@@ -219,7 +286,19 @@ pt-PT:
name: Hashtag
trendable: Permitir que esta hashtag apareça em destaque
usable: Permitir que toots utilizem esta hashtag
+ user:
+ role: Função
+ user_role:
+ color: Cor do distintivo
+ highlighted: Exibir a função como distintivo nos perfis de utilizador
+ name: Nome
+ permissions_as_keys: Permissões
+ position: Prioridade
+ webhook:
+ events: Eventos ativados
+ url: URL do Endpoint
'no': Não
+ not_recommended: Não recomendado
recommended: Recomendado
required:
mark: "*"
diff --git a/config/locales/simple_form.ru.yml b/config/locales/simple_form.ru.yml
index 839be0a69e..bb304a9e46 100644
--- a/config/locales/simple_form.ru.yml
+++ b/config/locales/simple_form.ru.yml
@@ -3,7 +3,7 @@ ru:
simple_form:
hints:
account_alias:
- acct: Укажите имя_пользователя@домен учётной записи, с которой вы собираетесь мигрировать
+ acct: Укажите ник@домен учётной записи, с которой вы собираетесь мигрировать
account_migration:
acct: Укажите имя_пользователя@домен учётной записи, на которую вы собираетесь мигрировать
account_warning_preset:
@@ -44,7 +44,7 @@ ru:
inbox_url: Копировать URL с главной страницы ретранслятора, который вы хотите использовать
irreversible: Отфильтрованные посты будут утеряны навсегда, даже если в будущем фильтр будет убран
locale: Язык интерфейса, e-mail писем и push-уведомлений
- locked: Подписчиков нужно будет подтверждать вручную.
+ locked: Вручную контролируйте, кто может подписываться на вас, утверждая запросы на подписку
password: Укажите не менее 8 символов.
phrase: Будет сопоставлено независимо от присутствия в тексте или предупреждения о содержании поста
scopes: Какие API приложению будет позволено использовать. Если вы выберете самый верхний, нижестоящие будут выбраны автоматически.
@@ -68,6 +68,15 @@ ru:
with_dns_records: Будет сделана попытка разрешить DNS-записи данного домена и результаты также будут внесены в чёрный список
featured_tag:
name: 'Возможно, вы захотите добавить что-то из этого:'
+ filters:
+ action: Выберите действие, которое нужно выполнить, когда сообщение соответствует фильтру
+ actions:
+ hide: Полностью скрыть отфильтрованный контент так, как будто его не существует
+ warn: Скрыть отфильтрованный контент за предупреждением с указанием названия фильтра
+ form_admin_settings:
+ backups_retention_period: Сохранять сгенерированные пользовательские архивы для указанного количества дней.
+ content_cache_retention_period: Записи с других серверов будут удалены после указанного количества дней, когда установлено положительное значение. Это может быть необратимо.
+ media_cache_retention_period: Скачанные медиа-файлы будут удалены после указанного количества дней, когда установлено положительное значение и повторно загружены по требованию.
form_challenge:
current_password: Вы переходите к настройкам безопасности
imports:
@@ -80,6 +89,7 @@ ru:
ip: Введите IPv4 или IPv6 адрес. Вы можете блокировать целые диапазоны, используя синтаксис CIDR. Будьте осторожны, не заблокируйте самого себя!
severities:
no_access: Заблокировать доступ ко всем ресурсам
+ sign_up_block: Новые регистрации будут невозможны
sign_up_requires_approval: Новые регистрации потребуют вашего одобрения
severity: Выберите, что будет происходить с запросами с этого IP
rule:
@@ -91,6 +101,16 @@ ru:
name: Вы можете изменить только регистр букв чтобы, например, сделать тег более читаемым
user:
chosen_languages: Если выбрано, то в публичных лентах будут показаны только посты на выбранных языках.
+ role: Роль определяет, какие разрешения есть у пользователя
+ user_role:
+ color: Цвет, который будет использоваться для роли в интерфейсе (UI), как RGB в формате HEX
+ highlighted: Это действие сделает роль публичной
+ name: Публичное имя роли, если роль настроена на отображение в виде значка
+ permissions_as_keys: Пользователи с этой ролью будут иметь доступ...
+ position: Повышение роли разрешают конфликты интересов в некоторых ситуациях. Некоторые действия могут выполняться только на ролях с более низким приоритетом
+ webhook:
+ events: Выберите события для отправки
+ url: Куда события будут отправляться
labels:
account:
fields:
@@ -178,6 +198,7 @@ ru:
setting_use_pending_items: Медленный режим
severity: Накладываемые ограничения
sign_in_token_attempt: Код безопасности
+ title: Название
type: Тип импорта
username: Имя пользователя
username_or_email: Имя пользователя или e-mail
@@ -186,6 +207,10 @@ ru:
with_dns_records: Включить MX-записи и IP-адреса домена
featured_tag:
name: Добавить хэштег
+ filters:
+ actions:
+ hide: Скрыть полностью
+ warn: Скрыть с предупреждением
interactions:
must_be_follower: Присылать уведомления только от подписчиков
must_be_following: Присылать уведомления только от людей на которых вы подписаны
@@ -199,6 +224,7 @@ ru:
ip: IP
severities:
no_access: Блокировать доступ
+ sign_up_block: Заблокировать регистрацию
sign_up_requires_approval: Ограничить регистрации
severity: Правило
notification_emails:
@@ -219,7 +245,19 @@ ru:
name: Хэштег
trendable: Разрешить показ хэштега в трендах
usable: Разрешить использовать этот хэштег в постах
+ user:
+ role: Роль
+ user_role:
+ color: Цвет значка
+ highlighted: Отображать роль в качестве значка в профилях пользователей
+ name: Название
+ permissions_as_keys: Разрешения
+ position: Приоритет
+ webhook:
+ events: Включенные события
+ url: Endpoint URL
'no': Нет
+ not_recommended: Не рекомендуется
recommended: Рекомендуем
required:
mark: "*"
diff --git a/config/locales/simple_form.si.yml b/config/locales/simple_form.si.yml
index 9f2e0ee312..e2ada04aa7 100644
--- a/config/locales/simple_form.si.yml
+++ b/config/locales/simple_form.si.yml
@@ -1,38 +1,246 @@
---
si:
simple_form:
+ hints:
+ account_alias:
+ acct: ඔබට ගෙන යාමට අවශ්ය ගිණුමේ username@domain සඳහන් කරන්න
+ account_migration:
+ acct: ඔබට යාමට අවශ්ය ගිණුමේ username@domain සඳහන් කරන්න
+ account_warning_preset:
+ text: ඔබට URL, හෑෂ් ටැග් සහ සඳහන් කිරීම් වැනි පෝස්ට් සින්ටැක්ස් භාවිතා කළ හැක
+ title: විකල්ප. ලබන්නාට නොපෙනේ
+ admin_account_action:
+ include_statuses: මධ්යස්ථ ක්රියාව හෝ අනතුරු ඇඟවීමට හේතු වී ඇත්තේ කුමන පළ කිරීම්දැයි පරිශීලකයා දකිනු ඇත
+ send_email_notification: පරිශීලකයාට ඔවුන්ගේ ගිණුම සමඟ සිදු වූ දේ පිළිබඳ පැහැදිලි කිරීමක් ලැබෙනු ඇත
+ text_html: විකල්ප. ඔබට post syntax භාවිතා කළ හැක. කාලය ඉතිරි කර ගැනීම සඳහා ඔබට අනතුරු ඇඟවීමේ කළ හැක
+ type_html: "%{acct} සමඟ කළ යුතු දේ තෝරන්න"
+ types:
+ disable: පරිශීලකයාගේ ගිණුම භාවිතා කිරීමෙන් වළක්වන්න, නමුත් ඔවුන්ගේ අන්තර්ගතය මකා දැමීම හෝ සඟවන්න එපා.
+ none: වෙනත් ක්රියාවක් අවුලුවාලීමකින් තොරව, පරිශීලකයාට අනතුරු ඇඟවීමක් යැවීමට මෙය භාවිතා කරන්න.
+ sensitive: මෙම පරිශීලකයාගේ සියලුම මාධ්ය ඇමුණුම් සංවේදී ලෙස සලකුණු කිරීමට බල කරන්න.
+ silence: පරිශීලකයාට පොදු දෘශ්යතාව සමඟ පළ කිරීමට හැකි වීම වළක්වන්න, ඔවුන් අනුගමනය නොකරන පුද්ගලයින්ගෙන් ඔවුන්ගේ පළ කිරීම් සහ දැනුම්දීම් සඟවන්න.
+ suspend: මෙම ගිණුමෙන් හෝ මෙම ගිණුමට යම් අන්තර්ක්රියා වළක්වා එහි අන්තර්ගතය මකා දමන්න. දින 30 ක් ඇතුළත ආපසු හැරවිය හැකිය.
+ warning_preset_id: විකල්ප. ඔබට තවමත් පෙරසිටුවීමේ අවසානයට අභිරුචි පෙළ එක් කළ හැක
+ announcement:
+ all_day: පරීක්ෂා කළ විට, කාල පරාසයේ දින පමණක් දර්ශනය වනු ඇත
+ ends_at: විකල්ප. මෙම අවස්ථාවේදී නිවේදනය ස්වයංක්රීයව ප්රකාශනය කිරීමෙන් ඉවත් වනු ඇත
+ scheduled_at: නිවේදනය වහාම ප්රකාශයට පත් කිරීමට හිස්ව තබන්න
+ starts_at: විකල්ප. ඔබගේ නිවේදනය නිශ්චිත කාල පරාසයකට බැඳී ඇත්නම්
+ text: ඔබට post syntax භාවිතා කළ හැක. කරුණාකර පරිශීලකයාගේ තිරය මත නිවේදනය ලබා ගන්නා ඉඩ ගැන සැලකිලිමත් වන්න
+ appeal:
+ text: ඔබට වර්ජනයකට අභියාචනා කළ හැක්කේ එක් වරක් පමණි
+ defaults:
+ autofollow: ආරාධනාව හරහා ලියාපදිංචි වන පුද්ගලයින් ස්වයංක්රීයව ඔබව අනුගමනය කරනු ඇත
+ avatar: PNG, GIF හෝ JPG. වැඩිම %{size}. %{dimensions}px දක්වා අඩු කරනු ඇත
+ bot: ගිණුම ප්රධාන වශයෙන් ස්වයංක්රීය ක්රියා සිදු කරන බවත් නිරීක්ෂණය නොකළ හැකි බවත් අන් අයට සංඥා කරන්න
+ context: පෙරහන යෙදිය යුතු සන්දර්භ එකක් හෝ කිහිපයක්
+ current_password: ආරක්ෂක අරමුණු සඳහා කරුණාකර ජංගම ගිණුමේ මුරපදය ඇතුළත් කරන්න
+ current_username: තහවුරු කිරීමට, කරුණාකර වත්මන් ගිණුමේ පරිශීලක නාමය ඇතුළත් කරන්න
+ digest: දිගු කාලයක් අක්රියව සිටීමෙන් පසුව පමණක් යවන ලද අතර ඔබ නොමැති විට ඔබට කිසියම් පුද්ගලික පණිවිඩයක් ලැබී ඇත්නම් පමණි
+ discoverable: නිර්දේශ, ප්රවණතා සහ වෙනත් විශේෂාංග හරහා ඔබේ ගිණුම ආගන්තුකයන්ට සොයා ගැනීමට ඉඩ දෙන්න
+ email: ඔබට තහවුරු කිරීමේ විද්යුත් තැපෑලක් එවනු ලැබේ
+ fields: ඔබට ඔබගේ පැතිකඩෙහි වගුවක් ලෙස අයිතම 4ක් දක්වා පෙන්විය හැක
+ header: PNG, GIF හෝ JPG. වැඩිම %{size}. %{dimensions}px දක්වා අඩු කරනු ඇත
+ inbox_url: ඔබට භාවිතා කිරීමට අවශ්ය රිලේ හි මුල් පිටුවෙන් URL එක පිටපත් කරන්න
+ irreversible: පෙරහන පසුව ඉවත් කළද, පෙරූ පළ කිරීම් ආපසු හැරවිය නොහැකි ලෙස අතුරුදහන් වනු ඇත
+ locale: පරිශීලක අතුරුමුහුණතේ භාෂාව, ඊමේල් සහ තල්ලු දැනුම්දීම්
+ locked: අනුගමන ඉල්ලීම් අනුමත කිරීමෙන් ඔබව අනුගමනය කළ හැක්කේ කාටදැයි හස්තීයව පාලනය කරන්න
+ password: අවම වශයෙන් අක්ෂර 8 ක් භාවිතා කරන්න
+ phrase: පළ කිරීමක පෙළ හෝ අන්තර්ගත අනතුරු ඇඟවීම නොසලකා ගැලපේ
+ scopes: යෙදුමට ප්රවේශ වීමට ඉඩ දෙන්නේ කුමන API වලටද. ඔබ ඉහළ මට්ටමේ විෂය පථයක් තෝරා ගන්නේ නම්, ඔබට තනි ඒවා තෝරා ගැනීමට අවශ්ය නොවේ.
+ setting_aggregate_reblogs: මෑතකදී බූස්ට් කරන ලද පළ කිරීම් සඳහා නව බූස්ට් පෙන්වන්න එපා (අලුතින් ලැබුණු බූස්ට් වලට පමණක් බලපායි)
+ setting_always_send_emails: සාමාන්යයෙන් ඔබ Mastodon සක්රියව භාවිතා කරන විට විද්යුත් තැපැල් දැනුම්දීම් නොයවනු ඇත
+ setting_default_sensitive: සංවේදී මාධ්ය පෙරනිමියෙන් සඟවා ඇති අතර ක්ලික් කිරීමකින් හෙළිදරව් කළ හැක
+ setting_display_media_default: සංවේදී ලෙස සලකුණු කළ මාධ්ය සඟවන්න
+ setting_display_media_hide_all: සෑම විටම මාධ්ය සඟවන්න
+ setting_display_media_show_all: සෑම විටම මාධ්ය පෙන්වන්න
+ setting_hide_network: ඔබ අනුගමනය කරන්නේ කවුරුන්ද සහ ඔබව අනුගමනය කරන්නේ කවුරුන්ද යන්න ඔබගේ පැතිකඩෙහි සඟවනු ඇත
+ setting_noindex: ඔබගේ පොදු පැතිකඩ සහ පළ කිරීම් පිටු වලට බලපායි
+ setting_show_application: ඔබ පළ කිරීමට භාවිතා කරන යෙදුම ඔබගේ පළ කිරීම් වල සවිස්තරාත්මක දර්ශනයේ පෙන්වනු ඇත
+ setting_use_blurhash: අනුක්රමණ සැඟවුණු දෘශ්යවල වර්ණ මත පදනම් වන නමුත් ඕනෑම විස්තරයක් අපැහැදිලි කරයි
+ setting_use_pending_items: සංග්රහය ස්වයංක්රීයව අනුචලනය කරනවා වෙනුවට ක්ලික් කිරීමක් පිටුපස කාලරේඛා යාවත්කාලීන සඟවන්න
+ username: ඔබගේ පරිශීලක නාමය %{domain}හි අද්විතීය වනු ඇත
+ whole_word: මූල පදය හෝ වාක්ය ඛණ්ඩය අක්ෂරාංක පමණක් වන විට, එය යෙදෙන්නේ එය සම්පූර්ණ වචනයට ගැලපේ නම් පමණි
+ domain_allow:
+ domain: මෙම වසමට මෙම සේවාදායකයෙන් දත්ත ලබා ගැනීමට හැකි වන අතර එයින් ලැබෙන දත්ත සකස් කර ගබඩා කරනු ලැබේ
+ email_domain_block:
+ domain: මෙය විද්යුත් තැපැල් ලිපිනයේ හෝ එය භාවිතා කරන MX වාර්තාවේ පෙන්වන ඩොමේන් නාමය විය හැක. ලියාපදිංචි වූ පසු ඒවා පරීක්ෂා කරනු ලැබේ.
+ with_dns_records: ලබා දී ඇති වසමේ DNS වාර්තා විසඳීමට උත්සාහ කරන අතර ප්රතිඵල ද අවහිර කරනු ලැබේ
+ featured_tag:
+ name: 'ඔබට මේවායින් එකක් භාවිතා කිරීමට අවශ්ය විය හැකිය:'
+ filters:
+ action: පළ කිරීමක් පෙරහනට ගැළපෙන විට සිදු කළ යුතු ක්රියාව තෝරන්න
+ actions:
+ hide: පෙරහන් කළ අන්තර්ගතය සම්පූර්ණයෙන්ම සඟවන්න, එය නොපවතින ලෙස හැසිරෙන්න
+ warn: පෙරහන මාතෘකාව සඳහන් කරන අනතුරු ඇඟවීමක් පිටුපස පෙරූ අන්තර්ගතය සඟවන්න
+ form_challenge:
+ current_password: ඔබ ආරක්ෂිත ප්රදේශයකට ඇතුල් වේ
+ imports:
+ data: CSV ගොනුව වෙනත් Mastodon සේවාදායකයකින් අපනයනය කරන ලදී
+ invite_request:
+ text: මෙය ඔබගේ අයදුම්පත සමාලෝචනය කිරීමට අපට උපකාරී වනු ඇත
+ ip_block:
+ comment: විකල්ප. ඔබ මෙම රීතිය එක් කළේ මන්දැයි මතක තබා ගන්න.
+ expires_in: IP ලිපින යනු සීමිත සම්පතකි, ඒවා සමහර විට බෙදාගෙන ඇති අතර බොහෝ විට අත් වෙනස් වේ. මෙම හේතුව නිසා අවිනිශ්චිත IP වාරණ නිර්දේශ නොකරයි.
+ ip: IPv4 හෝ IPv6 ලිපිනයක් ඇතුළත් කරන්න. ඔබට CIDR සින්ටැක්ස් භාවිතයෙන් සම්පූර්ණ පරාසයන් අවහිර කළ හැක. ඔබව අගුලු නොදැමීමට ප්රවේශම් වන්න!
+ severities:
+ no_access: සියලු සම්පත් වෙත ප්රවේශය අවහිර කරන්න
+ sign_up_requires_approval: නව ලියාපදිංචි කිරීම් සඳහා ඔබේ අනුමැතිය අවශ්ය වනු ඇත
+ severity: මෙම IP වෙතින් ඉල්ලීම් සමඟ කුමක් සිදුවේද යන්න තෝරන්න
+ rule:
+ text: මෙම සේවාදායකයේ භාවිතා කරන්නන් සඳහා රීතියක් හෝ අවශ්යතාවයක් විස්තර කරන්න. එය කෙටි හා සරල කිරීමට උත්සාහ කරන්න
+ sessions:
+ otp: 'ඔබගේ දුරකථන යෙදුම මගින් උත්පාදනය කරන ලද ද්වි-සාධක කේතය ඇතුළු කරන්න හෝ ඔබගේ ප්රතිසාධන කේත වලින් එකක් භාවිතා කරන්න:'
+ webauthn: එය USB යතුරක් නම්, එය ඇතුළු කිරීමට වග බලා ගන්න, අවශ්ය නම්, එය තට්ටු කරන්න.
+ tag:
+ name: ඔබට අකුරු වල ආවරණය පමණක් වෙනස් කළ හැකිය, උදාහරණයක් ලෙස, එය වඩාත් කියවිය හැකි කිරීමට
+ user:
+ chosen_languages: පරීක්ෂා කළ විට, තෝරාගත් භාෂාවලින් පළ කිරීම් පමණක් පොදු කාලරේඛා තුළ සංදර්ශන කෙරේ
+ webhook:
+ events: යැවීමට සිදුවීම් තෝරන්න
+ url: සිදුවීම් යවනු ලබන ස්ථානය
labels:
+ account:
+ fields:
+ name: නම්පත
+ value: අන්තර්ගතය
+ account_alias:
+ acct: පැරණි ගිණුමේ හැසිරවීම
+ account_migration:
+ acct: නව ගිණුමේ හැසිරවීම
+ account_warning_preset:
+ text: පෙර සැකසූ පෙළ
+ title: ශීර්ෂය
admin_account_action:
+ include_statuses: විද්යුත් තැපෑලෙහි වාර්තා කරන ලද පළ කිරීම් ඇතුළත් කරන්න
+ send_email_notification: විද්යුත් තැපෑලෙන් පරිශීලකයාට දැනුම් දෙන්න
+ text: අභිරුචි අනතුරු ඇඟවීම
type: ක්රියාමාර්ගය
types:
- sensitive: සංවේදීතාව
+ disable: කැටි කරන්න
+ none: අනතුරු ඇඟවීමක් යවන්න
+ sensitive: පවතී
+ silence: සීමාව
suspend: අත්හිටුවන්න
+ warning_preset_id: අනතුරු ඇඟවීමේ පෙරසිටුවක් භාවිතා කරන්න
+ announcement:
+ all_day: දවස පුරා සිදුවීම
+ ends_at: සිදුවීමේ අවසානය
+ scheduled_at: උපලේඛන ප්රකාශනය
+ starts_at: සිදුවීමේ ආරම්භය
+ text: නිවේදනය
+ appeal:
+ text: මෙම තීරණය ආපසු හැරවිය යුත්තේ මන්දැයි පැහැදිලි කරන්න
defaults:
+ autofollow: ඔබගේ ගිණුම අනුගමනය කිරීමට ආරාධනා කරන්න
+ avatar: අවතාරය
bot: මෙය ස්වයං ක්රමලේඛගත ගිණුමකි
+ chosen_languages: භාෂා පෙරහන් කරන්න
confirm_new_password: නව මුර පදය තහවුරු කරන්න
- confirm_password: මුරපදය තහවුරු කරන්න
+ confirm_password: මුරපදය තහවුරු කර ඇත
+ context: සන්දර්භ පෙරහන් කරන්න
+ current_password: වත්මන් මුර පදය
data: දත්ත
+ discoverable: අන් අයට ගිණුමක් යෝජනා කරන්න
+ display_name: ප්රදර්ශන නාමය
email: වි-තැපැල් ලිපිනය
+ expires_in: පසු කල් ඉකුත් වේ
+ fields: පැතිකඩ පාරදත්ත
+ header: ශීර්ෂකය
+ honeypot: "%{label} (පුරවන්න එපා)"
+ inbox_url: රිලේ එන ලිපි URL
+ irreversible: සැඟවීම වෙනුවට අතහරින්න
+ locale: අතුරු මුහුණත භාෂාව
+ locked: ඉල්ලීම් අනුගමනය කිරීම අවශ්ය වේ
+ max_uses: උපරිම භාවිත ගණන
new_password: නව මුරපදය
- password: මුර පදය
+ note: ජෛව
+ otp_attempt: ද්වි සාධක කේතය
+ password: මුරපදය
+ phrase: මූල පදය හෝ වාක්ය ඛණ්ඩය
+ setting_advanced_layout: උසස් වෙබ් අතුරු මුහුණත සබල කරන්න
+ setting_aggregate_reblogs: කණ්ඩායම් කාලරේඛාව වැඩි කරයි
+ setting_always_send_emails: සෑම විටම විද්යුත් තැපැල් දැනුම්දීම් යවන්න
+ setting_auto_play_gif: සජීවිකරණ GIF ස්වයංක්රීයව ධාවනය කරන්න
+ setting_boost_modal: වැඩි කිරීමට පෙර තහවුරු කිරීමේ සංවාදය පෙන්වන්න
+ setting_crop_images: ප්රසාරණය නොකළ පළ කිරීම් වල පින්තූර 16x9 දක්වා කප්පාදු කරන්න
+ setting_default_language: පළ කිරීමේ භාෂාව
+ setting_default_privacy: පුද්ගලිකත්වය පළ කිරීම
+ setting_default_sensitive: සෑම විටම මාධ්ය සංවේදී ලෙස සලකුණු කරන්න
+ setting_delete_modal: පළ කිරීමක් මැකීමට පෙර තහවුරු කිරීමේ සංවාදය පෙන්වන්න
+ setting_disable_swiping: ස්වයිප් චලන අක්රීය කරන්න
+ setting_display_media: මාධ්ය සංදර්ශකය
+ setting_display_media_default: පෙරනිමිය
setting_display_media_hide_all: සියල්ල සඟවන්න
setting_display_media_show_all: සියල්ල පෙන්වන්න
+ setting_expand_spoilers: අන්තර්ගත අනතුරු ඇඟවීම් සමඟ සලකුණු කර ඇති පළ කිරීම් සැමවිටම පුළුල් කරන්න
setting_hide_network: ඔබගේ ජාලය සඟවන්න
+ setting_noindex: සෙවුම් යන්ත්ර සුචිගත කිරීමෙන් ඉවත් වීම
+ setting_reduce_motion: සජීවිකරණවල චලනය අඩු කරන්න
+ setting_show_application: පළ කිරීම් යැවීමට භාවිතා කරන යෙදුම හෙළි කරන්න
+ setting_system_font_ui: පද්ධතියේ පෙරනිමි අකුරු භාවිතා කරන්න
setting_theme: අඩවියේ තේමාව
+ setting_trends: අද ප්රවණතා පෙන්වන්න
+ setting_unfollow_modal: යමෙකු අනුගමනය නොකිරීමට පෙර තහවුරු කිරීමේ සංවාදය පෙන්වන්න
+ setting_use_blurhash: සැඟවුණු මාධ්ය සඳහා වර්ණවත් අනුක්රමික පෙන්වන්න
+ setting_use_pending_items: මන්දගාමී මාදිලිය
+ severity: බරපතලකම
sign_in_token_attempt: ආරක්ෂණ කේතය
+ title: ශීර්ෂය
+ type: ආයාත වර්ගය
username: පරිශීලක නාමය
- username_or_email: පරිශීලක නාමය හෝ වි-තැපෑල
+ username_or_email: පරි. නාමය හෝ වි-තැපෑල
whole_word: සමස්ත වචනය
+ email_domain_block:
+ with_dns_records: වසමෙහි MX වාර්තා සහ IP ඇතුළත් කරන්න
+ featured_tag:
+ name: හෑෂ් ටැගය
+ filters:
+ actions:
+ hide: සම්පූර්ණයෙන්ම සඟවන්න
+ warn: අනතුරු ඇඟවීමක් සමඟ සඟවන්න
+ interactions:
+ must_be_follower: අනුගාමිකයින් නොවන අයගේ දැනුම්දීම් අවහිර කරන්න
+ must_be_following: ඔබ අනුගමනය නොකරන පුද්ගලයින්ගේ දැනුම්දීම් අවහිර කරන්න
+ must_be_following_dm: ඔබ අනුගමනය නොකරන පුද්ගලයින්ගෙන් සෘජු පණිවිඩ අවහිර කරන්න
invite:
comment: අදහස
+ invite_request:
+ text: ඔබට එක් වීමට අවශ්ය ඇයි?
ip_block:
comment: අදහස
ip: අ.ජා. කෙ. (IP)
severities:
- no_access: ප්රවේශය අවහිර කරන්න
+ no_access: ප්රවේශය අවහිර කරන්න
+ sign_up_requires_approval: ලියාපදිංචි වීම සීමා කරන්න
severity: නීතිය
+ notification_emails:
+ appeal: යමෙක් උපපරිපාලක තීරණයකට අභියාචනා කරයි
+ digest: digest ඊමේල් යවන්න
+ favourite: කවුරුහරි ඔබේ පළ කිරීම ප්රිය කළා
+ follow: කවුරුහරි ඔබව අනුගමනය කළා
+ follow_request: කවුරුහරි ඔබව අනුගමනය කරන ලෙස ඉල්ලා සිටියේය
+ mention: කවුරුහරි ඔබව සඳහන් කළා
+ pending_account: නව ගිණුම සමාලෝචනය අවශ්යයි
+ reblog: කවුරුහරි ඔබේ පළ කිරීම වැඩි කළා
+ report: නව වාර්තාවක් ඉදිරිපත් කෙරේ
+ trending_tag: නව ප්රවණතාවයට සමාලෝචනයක් අවශ්ය වේ
+ rule:
+ text: නීතිය
+ tag:
+ listable: මෙම හැෂ් ටැගය සෙවීම් සහ යෝජනා වල දිස් වීමට ඉඩ දෙන්න
+ name: හෑෂ් ටැගය
+ trendable: මෙම හැෂ් ටැගය ප්රවණතා යටතේ දිස් වීමට ඉඩ දෙන්න
+ usable: මෙම හැෂ් ටැගය භාවිතා කිරීමට පළ කිරීම් වලට ඉඩ දෙන්න
+ webhook:
+ events: සබල කළ සිදුවීම්
+ url: අන්ත ලක්ෂ්ය URL
+ 'no': නැත
recommended: නිර්දේශිත
required:
mark: "*"
text: අවශ්යයි
+ title:
+ sessions:
+ webauthn: පුරනය වීමට ඔබගේ ආරක්ෂක යතුරු වලින් එකක් භාවිතා කරන්න
'yes': ඔව්
diff --git a/config/locales/simple_form.sk.yml b/config/locales/simple_form.sk.yml
index 5ae4b2e047..bd482f7786 100644
--- a/config/locales/simple_form.sk.yml
+++ b/config/locales/simple_form.sk.yml
@@ -111,7 +111,7 @@ sk:
max_uses: Najviac možno použiť
new_password: Nové heslo
note: O tebe
- otp_attempt: Dvoj-faktorový overovací (2FA) kód
+ otp_attempt: Dvoj-faktorový overovací kód
password: Heslo
phrase: Kľúčové slovo, alebo fráza
setting_advanced_layout: Zapni pokročilé užívateľské rozhranie
@@ -139,6 +139,7 @@ sk:
setting_use_blurhash: Ukáž farebné prechody pre skryté médiá
setting_use_pending_items: Pomalý režim
severity: Závažnosť
+ sign_in_token_attempt: Bezpečnostný kód
type: Typ importu
username: Prezývka
username_or_email: Prezývka, alebo email
diff --git a/config/locales/simple_form.sl.yml b/config/locales/simple_form.sl.yml
index f1870ab9ae..51a21ff06c 100644
--- a/config/locales/simple_form.sl.yml
+++ b/config/locales/simple_form.sl.yml
@@ -68,6 +68,32 @@ sl:
with_dns_records: Poskus razrešitve zapisov DNS danih domen bo izveden in rezultati bodo prav tako blokirani
featured_tag:
name: 'Morda boste želeli uporabiti eno od teh:'
+ filters:
+ action: Izberite, kako naj se program vede, ko se objava sklada s filtrom
+ actions:
+ hide: Povsem skrij filtrirano vsebino, kot da ne bi obstajala
+ warn: Skrij filtrirano vsebino za opozorilom, ki pomenja naslov filtra
+ form_admin_settings:
+ backups_retention_period: Hani tvorjene arhive uporabnikov navedeno število dni.
+ bootstrap_timeline_accounts: Ti računi bodo pripeti na vrh priporočenih sledenj za nove uporabnike.
+ closed_registrations_message: Prikazano, ko so registracije zaprte
+ content_cache_retention_period: Objave z drugih strežnikov bodo izbrisane po navedenem številu dni, če je vrednost pozitivna. Ta dejanja lahko nepovratna.
+ custom_css: Spletni različici Mastodona lahko uveljavite sloge po meri.
+ mascot: Preglasi ilustracijo v naprednem spletnem vmesniku.
+ media_cache_retention_period: Prenesene predstavnostne datoteke bodo izbrisane po navedenem številu dni, če je vrednost pozitivna, in ponovno prenesene na zahtevo.
+ profile_directory: Imenik profilov izpiše vse uporabnike, ki so dovolili, da so v njem navedeni.
+ require_invite_text: Če registracije zahtevajo ročno potrditev, nastavite vnos besedila pod »Zakaj se želite pridružiti?« za obveznega.
+ site_contact_email: Kako vas lahko uporabniki dosežejo glede pravnih ali podpornih vprašanj.
+ site_contact_username: Kako vas lahko kontaktirajo na Mastodonu.
+ site_extended_description: Dodajte podatke, ki so lahko uporabni za obiskovalce in uporabnike. Vsebino lahko oblikujete s skladnjo Markdown.
+ site_short_description: Kratek opis v pomoč za identifikacijo vašega strežnika. Kdo ga vzdržuje, komu je namenjen?
+ site_terms: Uporabite svoj lasten pravilnik o zasebnosti ali pustite prazno za privzetega. Lahko ga strukturirate s skladnjo Markdown.
+ site_title: Kako naj imenujejo vaš strežnik poleg njegovega domenskega imena.
+ theme: Tema, ki jo vidijo odjavljeni obiskovalci in novi uporabniki.
+ thumbnail: Slika v razmerju stranic približno 2:1, prikazana vzdolž podatkov o vašem strežniku.
+ timeline_preview: Odjavljeni obiskovalci bodo lahko brskali po najnovejših javnih objavah, ki so na voljo na strežniku.
+ trendable_by_default: Preskočite ročni pregled vsebine v trendu. Posamezne elemente še vedno lahko odstranite iz trenda post festum.
+ trends: Trendi prikažejo, katere objave, ključniki in novice privlačijo zanimanje na vašem strežniku.
form_challenge:
current_password: Vstopate v varovano območje
imports:
@@ -80,6 +106,7 @@ sl:
ip: Vnesite naslov IPv4 oz. IPv6. S skladnjo CIDR lahko blokirate celotne obsege. Pazite, da se ne zaklenete ven!
severities:
no_access: Blokiraj dostop do vseh virov
+ sign_up_block: Nove registracije ne bodo možne
sign_up_requires_approval: Za nove registracije bo potrebna vaša odobritev
severity: Izberite, kaj se bo zgodilo z zahtevami iz tega IP-naslova
rule:
@@ -91,6 +118,16 @@ sl:
name: Spremenite lahko le npr. velikost črk (velike/male), da je bolj berljivo
user:
chosen_languages: Ko je označeno, bodo v javnih časovnicah prikazane samo objave v izbranih jezikih
+ role: Vloga nadzira, katere pravice ima uporabnik
+ user_role:
+ color: Barva, uporabljena za vlogo po celem up. vmesniku, podana v šestnajstiškem zapisu RGB
+ highlighted: S tem je vloga javno vidna
+ name: Javno ime vloge, če naj bo vloga prikazana kot priponka
+ permissions_as_keys: Uporabniki s to vlogo bodo imeli dostop do ...
+ position: Višja vloga se odloča o razrešitvi sporov v določenih situacijah. Določena dejanja lahko izvede le na vlogah z nižjo prioriteto
+ webhook:
+ events: Izberite dogodke za pošiljanje
+ url: Kam bodo poslani dogodki
labels:
account:
fields:
@@ -178,6 +215,7 @@ sl:
setting_use_pending_items: Počasen način
severity: Strogost
sign_in_token_attempt: Varnostna koda
+ title: Naslov
type: Vrsta uvoza
username: Uporabniško ime
username_or_email: Uporabniško ime ali E-pošta
@@ -186,6 +224,34 @@ sl:
with_dns_records: Vključi zapise MX in IP-številke domene
featured_tag:
name: Ključnik
+ filters:
+ actions:
+ hide: Povsem skrij
+ warn: Skrij z opozorilom
+ form_admin_settings:
+ backups_retention_period: Obdobje hrambe arhivov uporabnikov
+ bootstrap_timeline_accounts: Vedno priporočaj te račune novim uporabnikom
+ closed_registrations_message: Sporočilo po meri, ko registracije niso na voljo
+ content_cache_retention_period: Obdobje hrambe predpomnilnika vsebine
+ custom_css: CSS po meri
+ mascot: Maskota po meri (opuščeno)
+ media_cache_retention_period: Obdobje hrambe predpomnilnika predstavnosti
+ profile_directory: Omogoči imenik profilov
+ registrations_mode: Kdo se lahko registrira
+ require_invite_text: Zahtevaj razlog za pridružitev
+ show_domain_blocks: Pokaži blokade domen
+ show_domain_blocks_rationale: Pokaži, zakaj so bile domene blokirane
+ site_contact_email: E-naslov za stik
+ site_contact_username: Uporabniško ime stika
+ site_extended_description: Razširjeni opis
+ site_short_description: Opis strežnika
+ site_terms: Pravilnik o zasebnosti
+ site_title: Ime strežnika
+ theme: Privzeta tema
+ thumbnail: Sličica strežnika
+ timeline_preview: Omogoči neoverjen dostop do javnih časovnic
+ trendable_by_default: Dovoli trende brez predhodnega pregleda
+ trends: Omogoči trende
interactions:
must_be_follower: Blokiraj obvestila nesledilcev
must_be_following: Blokiraj obvestila oseb, ki jim ne sledite
@@ -199,6 +265,7 @@ sl:
ip: IP
severities:
no_access: Blokiraj dostop
+ sign_up_block: Blokiraj registracije
sign_up_requires_approval: Omeji število prijav
severity: Pravilo
notification_emails:
@@ -219,7 +286,19 @@ sl:
name: Ključnik
trendable: Dovoli, da se ta ključnik pojavi med trendi
usable: Dovoli, da objave uporabljajo ta ključnik
+ user:
+ role: Vloga
+ user_role:
+ color: Barva značke
+ highlighted: Prikaži vlogo kot značko na uporabniškem profilu
+ name: Ime
+ permissions_as_keys: Pravice
+ position: Prioriteta
+ webhook:
+ events: Omogočeni dogodki
+ url: URL končne točke
'no': Ne
+ not_recommended: Ni priporočeno
recommended: Priporočeno
required:
mark: "*"
diff --git a/config/locales/simple_form.sq.yml b/config/locales/simple_form.sq.yml
index 1136169b7f..bc0890e0d6 100644
--- a/config/locales/simple_form.sq.yml
+++ b/config/locales/simple_form.sq.yml
@@ -68,6 +68,15 @@ sq:
with_dns_records: Do të bëhet një përpjekje për ftillimin e zërave DNS të përkatësisë së dhënë dhe do të futen në listë bllokimesh edhe përfundimet
featured_tag:
name: 'Mund të doni të përdorni një nga këto:'
+ filters:
+ action: Zgjidhni cili veprim të kryhet, kur një postim ka përputhje me një filtër
+ actions:
+ hide: Fshihe plotësisht lëndën e filtruar, duke u sjellë sikur të mos ekzistonte
+ warn: Fshihe lëndën e filtruar pas një sinjalizimi që përmend titullin e filtrit
+ form_admin_settings:
+ backups_retention_period: Mbaji arkivat e prodhuara të përdoruesve për aq ditë sa numri i dhënë.
+ content_cache_retention_period: Postimet prej shërbyesve të tjerë do të fshihen pas numrit të dhënë të ditëve, kur këtij i jepet një vlerë pozitive. Kjo mund të jetë e pakthyeshme.
+ media_cache_retention_period: Kartelat media të shkarkuara do të fshihen pas numrit të dhënë të ditëve, kur këtij i jepet një vlerë pozitive dhe rishkarkohen po u kërkua.
form_challenge:
current_password: Po hyni në një zonë të sigurt
imports:
@@ -80,6 +89,7 @@ sq:
ip: Jepni një adresë IPv4 ose IPv6. Duke përdorur sintaksën CIDR, mund të bllokoni intervale të tëra. Hapni sytë mos lini veten jashtë!
severities:
no_access: Blloko hyrje në krejt burimet
+ sign_up_block: S’do të jenë të mundur regjistrime të reja
sign_up_requires_approval: Regjistrime të reja do të duan miratimin tuaj
severity: Zgjidhni ç’do të ndodhë me kërkesa nga kjo IP
rule:
@@ -91,6 +101,16 @@ sq:
name: Mund të ndryshoni shkronjat vetëm nga të mëdha në të vogla ose anasjelltas, për shembull, për t’i bërë më të lexueshme
user:
chosen_languages: Në iu vëntë shenjë, te rrjedha kohore publike do të shfaqen vetëm mesazhe në gjuhët e përzgjedhura
+ role: Roli kontrollon cilat leje ka përdoruesi
+ user_role:
+ color: Ngjyrë për t’u përdorur për rolin nëpër UI, si RGB në format gjashtëmbëdhjetësh
+ highlighted: Kjo e bën rolin të dukshëm publikisht
+ name: Emër publik për rolin, nëse roli është ujdisur të shfaqet si një stemë
+ permissions_as_keys: Përdoruest me këtë rol do të mund të…
+ position: Role më të lartë vendosin zgjidhje përplasje në disa raste. Disa veprime mund të kryhen vetëm mbi role të një shkalle më të ulët
+ webhook:
+ events: Përzgjidhni akte për dërgim
+ url: Ku do të dërgohen aktet
labels:
account:
fields:
@@ -178,6 +198,7 @@ sq:
setting_use_pending_items: Mënyra ngadalë
severity: Rëndësi
sign_in_token_attempt: Kod sigurie
+ title: Titull
type: Lloj importimi
username: Emër përdoruesi
username_or_email: Emër përdoruesi ose Email
@@ -186,6 +207,14 @@ sq:
with_dns_records: Përfshi zëra MX dhe IP-ra të përkatësisë
featured_tag:
name: Hashtag
+ filters:
+ actions:
+ hide: Fshihe plotësisht
+ warn: Fshihe me një sinjalizim
+ form_admin_settings:
+ backups_retention_period: Periudhë mbajtjeje arkivash përdoruesish
+ content_cache_retention_period: Periudhë mbajtjeje lënde fshehtine
+ media_cache_retention_period: Periudhë mbajtjeje lënde media
interactions:
must_be_follower: Blloko njoftime nga jo-ndjekës
must_be_following: Blloko njoftime nga persona që s’i ndiqni
@@ -199,6 +228,7 @@ sq:
ip: IP
severities:
no_access: Bllokoji hyrjen
+ sign_up_block: Blloko regjistrime
sign_up_requires_approval: Kufizo regjistrime
severity: Rregull
notification_emails:
@@ -219,7 +249,19 @@ sq:
name: Hashtag
trendable: Lejoje këtë hashtag të shfaqet në prirje
usable: Lejoji mesazhet të përdorin këtë hashtag
+ user:
+ role: Rol
+ user_role:
+ color: Ngjyrë steme
+ highlighted: Shfaqe rolin si një stemë në profile përdoruesish
+ name: Emër
+ permissions_as_keys: Leje
+ position: Përparësi
+ webhook:
+ events: Akte të aktivizuar
+ url: URL pikëmbarimi
'no': Jo
+ not_recommended: Jo e këshilluar
recommended: E rekomanduar
required:
mark: "*"
diff --git a/config/locales/simple_form.sv.yml b/config/locales/simple_form.sv.yml
index c311eb1893..282c0ce700 100644
--- a/config/locales/simple_form.sv.yml
+++ b/config/locales/simple_form.sv.yml
@@ -60,6 +60,7 @@ sv:
ip: Ange en IPv4 eller IPv6-adress. Du kan blockera hela intervall med hjälp av CIDR-syntax. Var försiktig så att du inte låser ut dig själv!
severities:
no_access: Blockera åtkomst till alla resurser
+ sign_up_block: Nya registreringar inte möjligt
sign_up_requires_approval: Nya registreringar kräver ditt godkännande
severity: Välj vad som ska hända med förfrågningar från denna IP
rule:
@@ -163,6 +164,8 @@ sv:
with_dns_records: Inkludera MX-poster och IP-adresser för domänen
featured_tag:
name: Hashtag
+ form_admin_settings:
+ site_terms: Integritetspolicy
interactions:
must_be_follower: Blockera aviseringar från icke-följare
must_be_following: Blockera aviseringar från personer du inte följer
@@ -176,6 +179,7 @@ sv:
ip: IP
severities:
no_access: Blockera åtkomst
+ sign_up_block: Blockera registreringar
sign_up_requires_approval: Begränsa registreringar
severity: Regel
notification_emails:
diff --git a/config/locales/simple_form.th.yml b/config/locales/simple_form.th.yml
index 8df50ab3a1..1d5c810cdf 100644
--- a/config/locales/simple_form.th.yml
+++ b/config/locales/simple_form.th.yml
@@ -64,9 +64,15 @@ th:
domain_allow:
domain: โดเมนนี้จะสามารถดึงข้อมูลจากเซิร์ฟเวอร์นี้และจะประมวลผลและจัดเก็บข้อมูลขาเข้าจากโดเมน
email_domain_block:
+ domain: สิ่งนี้สามารถเป็นชื่อโดเมนที่ปรากฏในที่อยู่อีเมลหรือระเบียน MX ที่โดเมนใช้ จะตรวจสอบโดเมนเมื่อลงทะเบียน
with_dns_records: จะทำการพยายามแปลงที่อยู่ระเบียน DNS ของโดเมนที่กำหนดและจะปิดกั้นผลลัพธ์เช่นกัน
featured_tag:
name: 'คุณอาจต้องการใช้หนึ่งในนี้:'
+ filters:
+ action: เลือกว่าการกระทำใดที่จะทำเมื่อโพสต์ตรงกับตัวกรอง
+ actions:
+ hide: ซ่อนเนื้อหาที่กรองอยู่อย่างสมบูรณ์ ทำเสมือนว่าไม่มีเนื้อหาอยู่
+ warn: ซ่อนเนื้อหาที่กรองอยู่หลังคำเตือนที่กล่าวถึงชื่อเรื่องของตัวกรอง
form_challenge:
current_password: คุณกำลังเข้าสู่พื้นที่ปลอดภัย
imports:
@@ -75,19 +81,32 @@ th:
text: นี่จะช่วยให้เราตรวจทานใบสมัครของคุณ
ip_block:
comment: ไม่จำเป็น จดจำเหตุผลที่คุณเพิ่มกฎนี้
+ expires_in: ที่อยู่ IP เป็นทรัพยากรที่มีจำกัด บางครั้งที่อยู่ใช้ร่วมกันและมักเปลี่ยนมือ ด้วยเหตุผลนี้ การปิดกั้น IP แบบไม่มีกำหนดจึงไม่แนะนำ
ip: ป้อนที่อยู่ IPv4 หรือ IPv6 คุณสามารถปิดกั้นทั้งช่วงได้โดยใช้ไวยากรณ์ CIDR ระวังอย่าล็อคตัวคุณเองออก!
severities:
no_access: ปิดกั้นการเข้าถึงทรัพยากรทั้งหมด
+ sign_up_block: จะไม่สามารถทำการลงทะเบียนใหม่
sign_up_requires_approval: การลงทะเบียนใหม่จะต้องมีการอนุมัติของคุณ
severity: เลือกสิ่งที่จะเกิดขึ้นกับคำขอจาก IP นี้
rule:
text: อธิบายกฎหรือข้อกำหนดสำหรับผู้ใช้ในเซิร์ฟเวอร์นี้ พยายามทำให้กฎหรือข้อกำหนดสั้นและเรียบง่าย
sessions:
otp: 'ป้อนรหัสสองปัจจัยที่สร้างโดยแอปในโทรศัพท์ของคุณหรือใช้หนึ่งในรหัสกู้คืนของคุณ:'
+ webauthn: หากกุญแจความปลอดภัยเป็นกุญแจ USB ตรวจสอบให้แน่ใจว่าได้เสียบกุญแจ และหากจำเป็น ให้แตะกุญแจ
tag:
name: คุณสามารถเปลี่ยนได้เฉพาะตัวพิมพ์ใหญ่เล็กของตัวอักษรเท่านั้น ตัวอย่างเช่น เพื่อทำให้ตัวอักษรอ่านได้ง่ายขึ้น
user:
chosen_languages: เมื่อกาเครื่องหมาย จะแสดงเฉพาะโพสต์ในภาษาที่เลือกในเส้นเวลาสาธารณะเท่านั้น
+ role: บทบาทควบคุมว่าสิทธิอนุญาตใดที่ผู้ใช้มี
+ user_role:
+ color: สีที่ใช้สำหรับบทบาททั่วทั้ง UI เป็น RGB ในรูปแบบฐานสิบหก
+ highlighted: สิ่งนี้ทำให้บทบาทปรากฏเป็นสาธารณะ
+ name: ชื่อสาธารณะของบทบาท หากมีการตั้งบทบาทให้แสดงเป็นป้าย
+ permissions_as_keys: ผู้ใช้ที่มีบทบาทนี้จะสามารถเข้าถึง...
+ position: บทบาทที่สูงขึ้นตัดสินใจการแก้ปัญหาข้อขัดแย้งในบางสถานการณ์ การกระทำบางอย่างสามารถทำได้เฉพาะกับบทบาทที่มีระดับความสำคัญต่ำกว่าเท่านั้น
+ webhook:
+ events: เลือกเหตุการณ์ที่จะส่ง
+ url: ที่ซึ่งจะส่งเหตุการณ์ไปยัง
labels:
account:
fields:
@@ -118,6 +137,8 @@ th:
scheduled_at: จัดกำหนดการเผยแพร่
starts_at: การเริ่มต้นเหตุการณ์
text: ประกาศ
+ appeal:
+ text: อธิบายเหตุผลที่ควรกลับการตัดสินใจนี้
defaults:
autofollow: เชิญให้ติดตามบัญชีของคุณ
avatar: ภาพประจำตัว
@@ -132,7 +153,7 @@ th:
display_name: ชื่อที่แสดง
email: ที่อยู่อีเมล
expires_in: หมดอายุหลังจาก
- fields: ข้อมูลเมตาโปรไฟล์
+ fields: ข้อมูลอภิพันธุ์โปรไฟล์
header: ส่วนหัว
honeypot: "%{label} (ไม่ต้องกรอก)"
inbox_url: URL กล่องขาเข้าแบบรีเลย์
@@ -173,6 +194,7 @@ th:
setting_use_pending_items: โหมดช้า
severity: ความรุนแรง
sign_in_token_attempt: รหัสความปลอดภัย
+ title: ชื่อเรื่อง
type: ชนิดการนำเข้า
username: ชื่อผู้ใช้
username_or_email: ชื่อผู้ใช้หรืออีเมล
@@ -181,6 +203,30 @@ th:
with_dns_records: รวมระเบียน MX และ IP ของโดเมน
featured_tag:
name: แฮชแท็ก
+ filters:
+ actions:
+ hide: ซ่อนอย่างสมบูรณ์
+ warn: ซ่อนด้วยคำเตือน
+ form_admin_settings:
+ backups_retention_period: ระยะเวลาการเก็บรักษาการเก็บถาวรผู้ใช้
+ content_cache_retention_period: ระยะเวลาการเก็บรักษาแคชเนื้อหา
+ custom_css: CSS ที่กำหนดเอง
+ mascot: มาสคอตที่กำหนดเอง (ดั้งเดิม)
+ media_cache_retention_period: ระยะเวลาการเก็บรักษาแคชสื่อ
+ profile_directory: เปิดใช้งานไดเรกทอรีโปรไฟล์
+ registrations_mode: ผู้ที่สามารถลงทะเบียน
+ require_invite_text: ต้องมีเหตุผลที่จะเข้าร่วม
+ show_domain_blocks: แสดงการปิดกั้นโดเมน
+ site_contact_email: อีเมลสำหรับติดต่อ
+ site_contact_username: ชื่อผู้ใช้สำหรับติดต่อ
+ site_extended_description: คำอธิบายแบบขยาย
+ site_short_description: คำอธิบายเซิร์ฟเวอร์
+ site_terms: นโยบายความเป็นส่วนตัว
+ site_title: ชื่อเซิร์ฟเวอร์
+ theme: ชุดรูปแบบเริ่มต้น
+ thumbnail: ภาพขนาดย่อเซิร์ฟเวอร์
+ trendable_by_default: อนุญาตแนวโน้มโดยไม่มีการตรวจทานล่วงหน้า
+ trends: เปิดใช้งานแนวโน้ม
interactions:
must_be_follower: ปิดกั้นการแจ้งเตือนจากผู้ที่ไม่ใช่ผู้ติดตาม
must_be_following: ปิดกั้นการแจ้งเตือนจากผู้คนที่คุณไม่ได้ติดตาม
@@ -194,6 +240,7 @@ th:
ip: IP
severities:
no_access: ปิดกั้นการเข้าถึง
+ sign_up_block: ปิดกั้นการลงทะเบียน
sign_up_requires_approval: จำกัดการลงทะเบียน
severity: กฎ
notification_emails:
@@ -214,7 +261,19 @@ th:
name: แฮชแท็ก
trendable: อนุญาตให้แฮชแท็กนี้ปรากฏภายใต้แนวโน้ม
usable: อนุญาตให้โพสต์ใช้แฮชแท็กนี้
+ user:
+ role: บทบาท
+ user_role:
+ color: สีป้าย
+ highlighted: แสดงบทบาทเป็นป้ายในโปรไฟล์ผู้ใช้
+ name: ชื่อ
+ permissions_as_keys: สิทธิอนุญาต
+ position: ระดับความสำคัญ
+ webhook:
+ events: เหตุการณ์ที่เปิดใช้งาน
+ url: URL ปลายทาง
'no': ไม่
+ not_recommended: ไม่แนะนำ
recommended: แนะนำ
required:
mark: "*"
diff --git a/config/locales/simple_form.tr.yml b/config/locales/simple_form.tr.yml
index 21e3aab784..fa9620476a 100644
--- a/config/locales/simple_form.tr.yml
+++ b/config/locales/simple_form.tr.yml
@@ -7,12 +7,12 @@ tr:
account_migration:
acct: Yeni hesabınızı kullanıcıadı@alanadını şeklinde belirtin
account_warning_preset:
- text: URL'ler, etiketler ve bahsedenler gibi toot sözdizimini kullanabilirsiniz
+ text: URL'ler, etiketler ve bahsedenler gibi gönderi sözdizimini kullanabilirsiniz
title: İsteğe bağlı. Alıcıya görünmez
admin_account_action:
- include_statuses: Kullanıcı hangi tootların denetleme eylemi ya da uyarısına neden olduğunu görecektir
+ include_statuses: Kullanıcı hangi gönderilerin denetleme eylemi veya uyarısına neden olduğunu görecektir
send_email_notification: Kullanıcı, hesabına ne olduğuna dair bir açıklama alacak
- text_html: İsteğe bağlı. Toot sözdizimleri kullanabilirsiniz. Zamandan kazanmak için uyarı ön-ayarları ekleyebilirsiniz
+ text_html: İsteğe bağlı. Gönderi sözdizimini kullanabilirsiniz. Zamandan kazanmak için uyarı ön-ayarları ekleyebilirsiniz
type_html: "%{acct} ile ne yapılacağını seçin"
types:
disable: Kullanıcının hesabını kullanmasını engelle ama içeriklerini silme veya gizleme.
@@ -26,7 +26,7 @@ tr:
ends_at: İsteğe bağlı. Duyuru, bu tarihte otomatik olarak yayından kaldırılacak
scheduled_at: Duyuruyu hemen yayınlamak için boş bırakın
starts_at: İsteğe bağlı. Duyurunuzun belirli bir zaman aralığına bağlı olması durumunda
- text: Toot söz dizimini kullanabilirsiniz. Lütfen duyurunun kullanıcının ekranında yer alacağı alanı göz önünde bulundurun
+ text: Gönderi sözdizimini kullanabilirsiniz. Lütfen duyurunun kullanıcının ekranında yer alacağı alanı göz önünde bulundurun
appeal:
text: Bir eyleme yalnızca bir kere itiraz edebilirsiniz
defaults:
@@ -42,13 +42,13 @@ tr:
fields: Profilinizde tablo olarak görüntülenen en fazla 4 ögeye sahip olabilirsiniz
header: PNG, GIF ya da JPG. En fazla %{size}. %{dimensions}px boyutuna küçültülecek
inbox_url: Kullanmak istediğiniz aktarıcının ön sayfasından URL'yi kopyalayın
- irreversible: Filtre uygulanmış tootlar, filtre daha sonra çıkartılsa bile geri dönüşümsüz biçimde kaybolur
+ irreversible: Filtrelenmiş gönderiler, filtre daha sonra kaldırılsa bile, geri dönüşümsüz biçimde kaybolur
locale: Kullanıcı arayüzünün dili, e-postalar ve push bildirimleri
locked: Takipçilerinizi manuel olarak kabul etmenizi ve gönderilerinizi varsayılan olarak sadece takipçilerinizin göreceği şekilde paylaşmanızı sağlar.
password: En az 8 karakter kullanın
- phrase: Metnin büyük/küçük harf durumundan veya tootun içerik uyarısından bağımsız olarak eşleştirilecek
+ phrase: Metnin büyük/küçük harf durumundan veya gönderinin içerik uyarısından bağımsız olarak eşleştirilecek
scopes: Uygulamanın erişmesine izin verilen API'ler. Üst seviye bir kapsam seçtiyseniz, bireysel kapsam seçmenize gerek yoktur.
- setting_aggregate_reblogs: Yakın zamanda boostlanmış tootlar için yeni boostları göstermeyin (yalnızca yeni alınan boostları etkiler)
+ setting_aggregate_reblogs: Yakın zamanda teşvik edilmiş gönderiler için yeni teşvikleri göstermeyin (yalnızca yeni alınan teşvikleri etkiler)
setting_always_send_emails: Normalde, Mastodon'u aktif olarak kullanırken e-posta bildirimleri gönderilmeyecektir
setting_default_sensitive: Hassas medya varsayılan olarak gizlidir ve bir tıklama ile gösterilebilir
setting_display_media_default: Hassas olarak işaretlenmiş medyayı gizle
@@ -56,7 +56,7 @@ tr:
setting_display_media_show_all: Medyayı her zaman göster
setting_hide_network: Takip ettiğiniz ve sizi takip eden kişiler profilinizde gösterilmeyecek
setting_noindex: Herkese açık profilinizi ve durum sayfalarınızı etkiler
- setting_show_application: Tootlamak için kullandığınız uygulama, tootlarınızın detaylı görünümünde gösterilecektir
+ setting_show_application: Gönderi gönderimi için kullandığınız uygulama, gönderilerinizin ayrıntılı görünümünde gösterilecektir
setting_use_blurhash: Gradyenler gizli görsellerin renklerine dayanır, ancak detayları gizler
setting_use_pending_items: Akışı otomatik olarak kaydırmak yerine, zaman çizelgesi güncellemelerini tek bir tıklamayla gizleyin
username: Kullanıcı adınız %{domain} alanında benzersiz olacak
@@ -68,6 +68,32 @@ tr:
with_dns_records: Belirli bir alanın DNS kayıtlarını çözmeyi deneyecek ve sonuçlar kara listeye eklenecek
featured_tag:
name: 'Bunlardan birini kullanmak isteyebilirsiniz:'
+ filters:
+ action: Bir gönderi filtreyle eşleştiğinde hangi eylemin yapılacağını seçin
+ actions:
+ hide: Filtrelenmiş içeriği tamamen gizle, sanki varolmamış gibi
+ warn: Filtrelenmiş içeriği, filtrenin başlığından söz eden bir uyarının arkasında gizle
+ form_admin_settings:
+ backups_retention_period: Üretilen kullanıcı arşivlerini belirli gün sayısı kadar sakla.
+ bootstrap_timeline_accounts: Bu hesaplar, yeni kullanıcıların takip önerilerinin tepesinde sabitlenecektir.
+ closed_registrations_message: Kayıt olma kapalıyken görüntülenir
+ content_cache_retention_period: Pozitif bir sayı girildiğinde, diğer sunuculardan gelen gönderiler belirli bir gün sonra silinecektir. Silme geri alınamayabilir.
+ custom_css: Mastodon'un web sürümüne özel biçimler uygulayabilirsiniz.
+ mascot: Gelişmiş web arayüzündeki illüstrasyonu geçersiz kılar.
+ media_cache_retention_period: Pozitif bir sayı girildiğinde, diğer sunuculardan indirilen medya dosyaları belirli bir gün sonra silinecektir, isteğe bağlı olarak tekrar indirilebilir.
+ profile_directory: Profil dizini keşfedilebilir olmayı kabul eden tüm kullanıcıları listeler.
+ require_invite_text: Kayıt olmak elle doğrulama gerektiriyorsa, "Neden katılmak istiyorsunuz?" metin girdisini isteğe bağlı yerine zorunlu yapın
+ site_contact_email: İnsanlar yasal konular veya destek hakkında bilgi edinmek için size nasıl ulaşabilir.
+ site_contact_username: İnsanlar size Mastodon'da nasıl ulaşabilir.
+ site_extended_description: Ziyaretçileriniz ve kullanıcılarınıza yardımı dokunabilecek herhangi bir ek bilgi. Markdown sözdizimiyle biçimlendirilebilir.
+ site_short_description: Sunucunuzu tekil olarak tanımlamaya yardımcı olacak kısa tanım. Kim işletiyor, kimin için?
+ site_terms: Kendi gizlilik politikanızı kullanın veya varsayılanı kullanmak için boş bırakın. Markdown sözdizimiyle biçimlendirilebilir.
+ site_title: İnsanlar sunucunuzu alan adı dışında nasıl isimlendirmeli.
+ theme: Giriş yapmamış ziyaretçilerin ve yeni kullanıcıların gördüğü tema.
+ thumbnail: Sunucu bilginizin yanında gösterilen yaklaşık 2:1'lik görüntü.
+ timeline_preview: Giriş yapmamış ziyaretçiler, sunucuda mevcut olan en son genel gönderileri tarayabilecekler.
+ trendable_by_default: Öne çıkan içeriğin elle incelenmesini atla. Tekil öğeler sonrada öne çıkanlardan kaldırılabilir.
+ trends: Öne çıkanlar, sunucunuzda ilgi toplayan gönderileri, etiketleri ve haber yazılarını gösterir.
form_challenge:
current_password: Güvenli bir bölgeye giriyorsunuz
imports:
@@ -80,6 +106,7 @@ tr:
ip: Bir IPv4 veya IPv6 adresi girin. CIDR sözdizimini kullanarak tüm aralıkları engelleyebilirsiniz. Kendinizi dışarıda bırakmamaya dikkat edin!
severities:
no_access: Tüm kaynaklara erişimi engelle
+ sign_up_block: Yeni kayıtlar mümkün olmayacaktır
sign_up_requires_approval: Yeni kayıt onayınızı gerektirir
severity: Bu IP'den gelen isteklere ne olacağını seçin
rule:
@@ -90,7 +117,17 @@ tr:
tag:
name: Harflerin, örneğin daha okunabilir yapmak için, sadece büyük/küçük harf durumlarını değiştirebilirsiniz
user:
- chosen_languages: İşaretlendiğinde, yalnızca seçilen dillerdeki tootlar genel zaman çizelgelerinde görüntülenir
+ chosen_languages: İşaretlendiğinde, yalnızca seçilen dillerdeki gönderiler genel zaman çizelgelerinde görüntülenir
+ role: Rol, kullanıcıların sahip olduğu izinleri denetler
+ user_role:
+ color: Arayüz boyunca rol için kullanılacak olan renk, hex biçiminde RGB
+ highlighted: Bu rolü herkese açık hale getirir
+ name: Rolün, eğer rozet olarak görüntülenmesi ayarlandıysa kullanılacak herkese açık ismi
+ permissions_as_keys: Bu role sahip kullanıcıların şunlara erişimi var...
+ position: Belirli durumlarda çatışmayı çözmek için daha yüksek rol belirleyicidir. Bazı eylemler ancak daha düşük öncelikteki rollere uygulanabilir
+ webhook:
+ events: Gönderilecek etkinlikleri seçin
+ url: Olayların gönderileceği yer
labels:
account:
fields:
@@ -104,7 +141,7 @@ tr:
text: Ön ayarlı metin
title: Başlık
admin_account_action:
- include_statuses: Bildirilen tootları e-postaya dahil et
+ include_statuses: Bildirilen gönderileri e-postaya dahil et
send_email_notification: Kullanıcıyı e-posta ile bilgilendir
text: Özel uyarı
type: Eylem
@@ -155,21 +192,21 @@ tr:
setting_always_send_emails: Her zaman e-posta bildirimleri gönder
setting_auto_play_gif: Hareketli GIF'leri otomatik oynat
setting_boost_modal: Boostlamadan önce onay iletişim kutusu göster
- setting_crop_images: Genişletilmemiş tootlardaki resimleri 16x9 olarak kırp
+ setting_crop_images: Genişletilmemiş gönderilerdeki resimleri 16x9 olarak kırp
setting_default_language: Gönderi dili
setting_default_privacy: Gönderi gizliliği
setting_default_sensitive: Medyayı her zaman hassas olarak işaretle
- setting_delete_modal: Bir tootu silmeden önce onay iletişim kutusu göster
+ setting_delete_modal: Bir gönderiyi silmeden önce onay iletişim kutusu göster
setting_disable_swiping: Kaydırma hareketlerini devre dışı bırak
setting_display_media: Medya görüntüleme
setting_display_media_default: Varsayılan
setting_display_media_hide_all: Tümünü gizle
setting_display_media_show_all: Tümünü göster
- setting_expand_spoilers: İçerik uyarılarıyla işaretli tootları her zaman genişlet
+ setting_expand_spoilers: İçerik uyarılarıyla işaretli gönderileri her zaman genişlet
setting_hide_network: Sosyal grafiğini gizle
setting_noindex: Arama motoru dizinine eklemeyi iptal et
setting_reduce_motion: Animasyonlarda hareketi azalt
- setting_show_application: Tootları göndermek için kullanılan uygulamayı belirt
+ setting_show_application: Gönderileri göndermek için kullanılan uygulamayı belirt
setting_system_font_ui: Sistemin varsayılan yazı tipini kullan
setting_theme: Site teması
setting_trends: Bugünün gündemini göster
@@ -178,6 +215,7 @@ tr:
setting_use_pending_items: Yavaş mod
severity: Önem derecesi
sign_in_token_attempt: Güvenlik kodu
+ title: Başlık
type: İçeri aktarma türü
username: Kullanıcı adı
username_or_email: Kullanıcı adı ya da e-posta
@@ -186,6 +224,34 @@ tr:
with_dns_records: Alan adının MX kayıtlarını ve IP'lerini ekleyin
featured_tag:
name: Etiket
+ filters:
+ actions:
+ hide: Tamamen gizle
+ warn: Uyarıyla gizle
+ form_admin_settings:
+ backups_retention_period: Kullanıcı arşivi saklama süresi
+ bootstrap_timeline_accounts: Bu hesapları yeni kullanıcılara her zaman öner
+ closed_registrations_message: Kayıt olma mevcut değilken gösterilen özel ileti
+ content_cache_retention_period: İçerik önbelleği saklama süresi
+ custom_css: Özel CSS
+ mascot: Özel maskot (eski)
+ media_cache_retention_period: Medya önbelleği saklama süresi
+ profile_directory: Profil dizinini etkinleştir
+ registrations_mode: Kim kaydolabilir
+ require_invite_text: Katılmak için bir gerekçe iste
+ show_domain_blocks: Engellenen alan adlarını göster
+ show_domain_blocks_rationale: Alan adlarının neden engellendiğini göster
+ site_contact_email: İletişim e-postası
+ site_contact_username: İletişim kullanıcı adı
+ site_extended_description: Geniş açıklama
+ site_short_description: Sunucu açıklaması
+ site_terms: Gizlilik Politikası
+ site_title: Sunucu adı
+ theme: Öntanımlı tema
+ thumbnail: Sunucu küçük resmi
+ timeline_preview: Genel zaman çizelgelerine yetkisiz erişime izin ver
+ trendable_by_default: Ön incelemesiz öne çıkanlara izin ver
+ trends: Öne çıkanları etkinleştir
interactions:
must_be_follower: Takipçim olmayan kişilerden gelen bildirimleri engelle
must_be_following: Takip etmediğim kişilerden gelen bildirimleri engelle
@@ -199,6 +265,7 @@ tr:
ip: IP
severities:
no_access: Erişimi engelle
+ sign_up_block: Kayıt olmayı engelle
sign_up_requires_approval: Kayıtları sınırla
severity: Kural
notification_emails:
@@ -218,8 +285,20 @@ tr:
listable: Bu etiketin aramalarda ve profil dizininde görünmesine izin ver
name: Etiket
trendable: Bu etiketin gündem altında görünmesine izin ver
- usable: Tootların bu etiketi kullanmasına izin ver
+ usable: Gönderilerin bu etiketi kullanmasına izin ver
+ user:
+ role: Rol
+ user_role:
+ color: Rozet rengi
+ highlighted: Rolü kullanıcıların profilinde rozet olarak görüntüle
+ name: Ad
+ permissions_as_keys: İzinler
+ position: Öncelik
+ webhook:
+ events: Etkin olaylar
+ url: Uç nokta URL’si
'no': Hayır
+ not_recommended: Önerilmez
recommended: Önerilen
required:
mark: "*"
diff --git a/config/locales/simple_form.uk.yml b/config/locales/simple_form.uk.yml
index 4d023b77d3..c401a821d4 100644
--- a/config/locales/simple_form.uk.yml
+++ b/config/locales/simple_form.uk.yml
@@ -68,6 +68,32 @@ uk:
with_dns_records: Спроба визначення DNS-записів заданого домену буде здійснена, а результати також будуть занесені до чорного списку
featured_tag:
name: 'Можливо, ви захочете використовувати один з цих:'
+ filters:
+ action: Виберіть дію для виконання коли допис збігається з фільтром
+ actions:
+ hide: Повністю сховати фільтрований вміст, ніби його не існує
+ warn: Сховати відфільтрований вміст за попередженням, у якому вказано заголовок фільтра
+ form_admin_settings:
+ backups_retention_period: Зберігати створені архіви користувача вказану кількість днів.
+ bootstrap_timeline_accounts: Ці облікові записи будуть закріплені в топі пропозицій для нових користувачів.
+ closed_registrations_message: Показується, коли реєстрація закрита
+ content_cache_retention_period: Матеріали з інших серверів будуть видалені після вказаної кількості днів, коли встановлено позитивне значення. Ця дія може бути незворотна.
+ custom_css: Ви можете застосувати користувацькі стилі у вебверсії Mastodon.
+ mascot: Змінює ілюстрацію в розширеному вебінтерфейсі.
+ media_cache_retention_period: Завантажені медіафайли будуть видалені після вказаної кількості днів після встановлення додатного значення та повторного завантаження за запитом.
+ profile_directory: У каталозі профілів перераховані всі користувачі, які погодились бути видимими.
+ require_invite_text: Якщо реєстрація вимагає власноручного затвердження, зробіть текстове поле «Чому ви хочете приєднатися?» обов'язковим, а не додатковим
+ site_contact_email: Як люди можуть зв'язатися з вами для отримання правової допомоги або підтримки.
+ site_contact_username: Як люди можуть зв'язатися з вами у Mastodon.
+ site_extended_description: Будь-яка додаткова інформація, яка може бути корисною для відвідувачів і ваших користувачів. Може бути структурована за допомогою синтаксису Markdown.
+ site_short_description: Короткий опис, щоб допомогти однозначно ідентифікувати ваш сервер. Хто ним керує, для кого він потрібен?
+ site_terms: Використовуйте власну політику приватності або залиште поле порожнім, щоб використовувати усталене значення. Може бути структуровано за допомогою синтаксису Markdown.
+ site_title: Як люди можуть посилатися на ваш сервер, окрім його доменного імені.
+ theme: Тема, яку бачать відвідувачі, що вийшли з системи, та нові користувачі.
+ thumbnail: Зображення приблизно 2:1, що показується поряд з відомостями про ваш сервер.
+ timeline_preview: Зареєстровані відвідувачі зможуть переглядати останні публічні дописи, доступні на сервері.
+ trendable_by_default: Пропустити ручний огляд популярних матеріалів. Індивідуальні елементи все ще можна вилучити з популярних постфактум.
+ trends: Популярні показують, які дописи, хештеґи та новини набувають популярності на вашому сервері.
form_challenge:
current_password: Ви входите до безпечної зони
imports:
@@ -80,6 +106,7 @@ uk:
ip: Введіть адресу IPv4 або IPv6. Ви можете блокувати цілі діапазони, використовуючи синтаксис CIDR. Будьте обережні, щоб не заблокувати себе!
severities:
no_access: Заблокувати доступ до всіх ресурсів
+ sign_up_block: Нові реєстрації будуть неможливі
sign_up_requires_approval: Нові реєстрації потребуватимуть затвердження вами
severity: Виберіть, що буде відбуватися з запитами з цієї IP
rule:
@@ -91,6 +118,16 @@ uk:
name: Тут ви можете лише змінювати регістр літер, щоб підвищити читабельність
user:
chosen_languages: У глобальних стрічках будуть відображатися дмухи тільки обраними мовами
+ role: Роль визначає права користувача
+ user_role:
+ color: Колір, який буде використовуватися для ролі у всьому інтерфейсі, як RGB у форматі hex
+ highlighted: Це робить роль видимою всім
+ name: Загальнодоступна назва ролі, якщо роль налаштована бути показаною у вигляді відзнаки
+ permissions_as_keys: Користувачі з цією роллю матимуть доступ до...
+ position: Вища роль розв'язує конфлікти у певних ситуаціях. Певні дії можуть бути виконані лише щодо ролей з нижчим пріоритетом
+ webhook:
+ events: Оберіть події для надсилання
+ url: Куди надсилатимуться події
labels:
account:
fields:
@@ -178,6 +215,7 @@ uk:
setting_use_pending_items: Повільний режим
severity: Серйозність
sign_in_token_attempt: Код безпеки
+ title: Заголовок
type: Тип імпорту
username: Ім'я користувача
username_or_email: Ім'я користувача або електронна пошта
@@ -186,6 +224,34 @@ uk:
with_dns_records: Включити MX записи та IP-адреси домену
featured_tag:
name: Хештеґ
+ filters:
+ actions:
+ hide: Сховати повністю
+ warn: Сховати за попередженням
+ form_admin_settings:
+ backups_retention_period: Період утримання архіву користувача
+ bootstrap_timeline_accounts: Завжди рекомендувати новим користувачам ці облікові записи
+ closed_registrations_message: Показуване повідомлення, якщо реєстрація недоступна
+ content_cache_retention_period: Час зберігання кешу контенту
+ custom_css: Користувацький CSS
+ mascot: Користувацький символ (застарілий)
+ media_cache_retention_period: Період збереження кешу медіа
+ profile_directory: Увімкнути каталог профілів
+ registrations_mode: Хто може зареєструватися
+ require_invite_text: Для того, щоб приєднатися потрібна причина
+ show_domain_blocks: Показати заблоковані домени
+ show_domain_blocks_rationale: Показати чому домени були заблоковані
+ site_contact_email: Контактна адреса електронної пошти
+ site_contact_username: Ім'я контакта
+ site_extended_description: Розширений опис
+ site_short_description: Опис сервера
+ site_terms: Політика приватності
+ site_title: Назва сервера
+ theme: Стандартна тема
+ thumbnail: Мініатюра сервера
+ timeline_preview: Дозволити неавтентифікований доступ до публічних стрічок
+ trendable_by_default: Дозволити популярне без попереднього огляду
+ trends: Увімкнути популярні
interactions:
must_be_follower: Блокувати сповіщення від непідписаних людей
must_be_following: Блокувати сповіщення від людей, на яких ви не підписані
@@ -199,6 +265,7 @@ uk:
ip: IP
severities:
no_access: Заборонити доступ
+ sign_up_block: Блокувати реєстрацію
sign_up_requires_approval: Обмеження реєстрації
severity: Правило
notification_emails:
@@ -219,7 +286,19 @@ uk:
name: Хештеґ
trendable: Дозволити появу цього хештеґа у списку популярних хештеґів
usable: Дозволити дмухам використовувати цей хештеґ
+ user:
+ role: Роль
+ user_role:
+ color: Колір відзнаки
+ highlighted: Показувати роль у вигляді відзнаки у профілях користувачів
+ name: Назва
+ permissions_as_keys: Дозволи
+ position: Пріоритет
+ webhook:
+ events: Увімкнені події
+ url: URL кінцевої точки
'no': Ні
+ not_recommended: Не рекомендовано
recommended: Рекомендовано
required:
mark: "*"
diff --git a/config/locales/simple_form.vi.yml b/config/locales/simple_form.vi.yml
index 59c7a634bf..e7f83892d9 100644
--- a/config/locales/simple_form.vi.yml
+++ b/config/locales/simple_form.vi.yml
@@ -20,7 +20,7 @@ vi:
sensitive: Mọi tập tin của tài khoản này tải lên đều sẽ bị gắn nhãn nhạy cảm.
silence: Cấm tài khoản này đăng tút công khai, ẩn tút của họ hiện ra với những người chưa theo dõi họ.
suspend: Vô hiệu hóa và xóa sạch dữ liệu của tài khoản này. Có thể khôi phục trước 30 ngày.
- warning_preset_id: Tùy chọn. Bạn vẫn có thể thêm ghi chú riêng
+ warning_preset_id: Tùy chọn. Bạn vẫn có thể thêm chú thích riêng
announcement:
all_day: Chỉ có khoảng thời gian được đánh dấu mới hiển thị
ends_at: Tùy chọn. Thông báo sẽ tự động hủy vào lúc này
@@ -68,6 +68,32 @@ vi:
with_dns_records: Nếu DNS có vấn đề, nó sẽ bị đưa vào danh sách cấm
featured_tag:
name: 'Những hashtag gợi ý cho bạn:'
+ filters:
+ action: Chọn hành động sẽ thực hiện khi một tút khớp với bộ lọc
+ actions:
+ hide: Ẩn hoàn toàn nội dung đã lọc, hoạt động như thể nó không tồn tại
+ warn: Ẩn nội dung đã lọc đằng sau một cảnh báo đề cập đến tiêu đề của bộ lọc
+ form_admin_settings:
+ backups_retention_period: Lưu trữ dữ liệu người dùng đã tạo trong số ngày được chỉ định.
+ bootstrap_timeline_accounts: Các tài khoản này sẽ được ghim vào đầu các gợi ý theo dõi của người dùng mới.
+ closed_registrations_message: Được hiển thị khi đóng đăng ký
+ content_cache_retention_period: Tút từ các máy chủ khác sẽ bị xóa sau số ngày được chỉ định. Sau đó có thể không thể phục hồi được.
+ custom_css: Bạn có thể tùy chỉnh phong cách trên bản web của Mastodon.
+ mascot: Ghi đè hình minh họa trong giao diện web nâng cao.
+ media_cache_retention_period: Media đã tải xuống sẽ bị xóa sau số ngày được chỉ định và sẽ tải xuống lại theo yêu cầu.
+ profile_directory: Liệt kê tất cả người dùng đã chọn tham gia để có thể khám phá.
+ require_invite_text: Khi đăng ký yêu cầu phê duyệt thủ công, hãy đặt câu hỏi "Tại sao bạn muốn tham gia?" nhập văn bản bắt buộc thay vì tùy chọn
+ site_contact_email: Cách mọi người có thể liên hệ với bạn khi có thắc mắc về pháp lý hoặc hỗ trợ.
+ site_contact_username: Cách mọi người có thể liên hệ với bạn trên Mastodon.
+ site_extended_description: Bất kỳ thông tin bổ sung nào cũng có thể hữu ích cho khách truy cập và người dùng của bạn. Có thể được soạn bằng cú pháp Markdown.
+ site_short_description: Mô tả ngắn gọn để giúp nhận định máy chủ của bạn. Ai đang điều hành nó, nó là cho ai?
+ site_terms: Sử dụng chính sách bảo mật của riêng bạn hoặc để trống để sử dụng mặc định. Có thể soạn bằng cú pháp Markdown.
+ site_title: Cách mọi người có thể tham chiếu đến máy chủ của bạn ngoài tên miền của nó.
+ theme: Chủ đề mà khách truy cập đăng xuất và người dùng mới nhìn thấy.
+ thumbnail: 'Một hình ảnh tỉ lệ 2: 1 được hiển thị cùng với thông tin máy chủ của bạn.'
+ timeline_preview: Khách truy cập đã đăng xuất sẽ có thể xem các tút công khai gần đây nhất trên máy chủ.
+ trendable_by_default: Bỏ qua việc duyệt thủ công nội dung thịnh hành. Các mục riêng lẻ vẫn có thể bị xóa khỏi xu hướng sau này.
+ trends: Xu hướng hiển thị tút, hashtag và tin tức nào đang thu hút thảo luận trên máy chủ của bạn.
form_challenge:
current_password: Biểu mẫu này an toàn
imports:
@@ -80,6 +106,7 @@ vi:
ip: Nhập một địa chỉ IPv4 hoặc IPv6. Bạn cũng có thể chặn toàn bộ dãy IP bằng cú pháp CIDR. Hãy cẩn thận đừng chặn nhầm toàn bộ!
severities:
no_access: Chặn truy cập từ tất cả IP này
+ sign_up_block: Không chấp nhận đăng ký mới
sign_up_requires_approval: Bạn sẽ phê duyệt những đăng ký mới từ IP này
severity: Chọn hành động nếu nhận được yêu cầu từ IP này
rule:
@@ -91,6 +118,16 @@ vi:
name: Bạn có thể thay đổi cách viết hoa các chữ cái để giúp nó dễ đọc hơn
user:
chosen_languages: Chỉ hiển thị những tút viết bằng các ngôn ngữ được chọn sau
+ role: Vai trò kiểm soát những quyền mà người dùng có
+ user_role:
+ color: Màu được sử dụng cho vai trò trong toàn bộ giao diện người dùng, dưới dạng RGB ở định dạng hex
+ highlighted: Vai trò sẽ hiển thị công khai
+ name: Tên công khai của vai trò, nếu vai trò được đặt để hiển thị dưới dạng huy hiệu
+ permissions_as_keys: Người dùng có vai trò này sẽ có quyền truy cập vào...
+ position: Vai trò cao hơn sẽ có quyền quyết định xung đột trong các tình huống. Các vai trò có mức độ ưu tiên thấp hơn chỉ có thể thực hiện một số hành động nhất định
+ webhook:
+ events: Chọn sự kiện để gửi
+ url: Nơi những sự kiện được gửi đến
labels:
account:
fields:
@@ -106,11 +143,11 @@ vi:
admin_account_action:
include_statuses: Đính kèm những tút bị báo cáo trong e-mail
send_email_notification: Thông báo cho người này qua email
- text: Ghi chú riêng
+ text: Chú thích riêng
type: Hành động
types:
disable: Khóa
- none: Nhắc nhở
+ none: Cảnh cáo
sensitive: Nhạy cảm
silence: Hạn chế
suspend: Vô hiệu hóa
@@ -143,7 +180,7 @@ vi:
inbox_url: Hộp thư relay
irreversible: Xóa bỏ vĩnh viễn
locale: Ngôn ngữ
- locked: Đây là tài khoản riêng tư
+ locked: Yêu cầu theo dõi
max_uses: Số lần dùng tối đa
new_password: Mật khẩu mới
note: Tiểu sử
@@ -178,6 +215,7 @@ vi:
setting_use_pending_items: Không tự động cập nhật bảng tin
severity: Mức độ nghiêm trọng
sign_in_token_attempt: Mã an toàn
+ title: Tựa đề
type: Kiểu nhập
username: Tên người dùng
username_or_email: Tên người dùng hoặc email
@@ -186,6 +224,34 @@ vi:
with_dns_records: Bao gồm bản ghi MX và địa chỉ IP của máy chủ
featured_tag:
name: Hashtag
+ filters:
+ actions:
+ hide: Ẩn toàn bộ
+ warn: Ẩn kèm theo cảnh báo
+ form_admin_settings:
+ backups_retention_period: Thời hạn lưu trữ nội dung người dùng sao lưu
+ bootstrap_timeline_accounts: Luôn đề xuất những tài khoản này đến người dùng mới
+ closed_registrations_message: Thông báo tùy chỉnh khi tắt đăng ký
+ content_cache_retention_period: Thời hạn lưu trữ cache nội dung
+ custom_css: Tùy chỉnh CSS
+ mascot: Tùy chỉnh linh vật (kế thừa)
+ media_cache_retention_period: Thời hạn lưu trữ cache media
+ profile_directory: Cho phép hiện danh sách thành viên
+ registrations_mode: Ai có thể đăng ký
+ require_invite_text: Yêu cầu lí do đăng ký
+ show_domain_blocks: Xem máy chủ chặn
+ show_domain_blocks_rationale: Hiện lý do máy chủ bị chặn
+ site_contact_email: Email liên lạc
+ site_contact_username: Tên người dùng liên lạc
+ site_extended_description: Mô tả mở rộng
+ site_short_description: Mô tả máy chủ
+ site_terms: Chính sách bảo mật
+ site_title: Tên máy chủ
+ theme: Chủ đề mặc định
+ thumbnail: Hình thu nhỏ của máy chủ
+ timeline_preview: Cho phép truy cập vào dòng thời gian công khai
+ trendable_by_default: Cho phép xu hướng mà không cần xem xét trước
+ trends: Bật xu hướng
interactions:
must_be_follower: Chặn thông báo từ những người không theo dõi bạn
must_be_following: Chặn thông báo từ những người bạn không theo dõi
@@ -199,6 +265,7 @@ vi:
ip: IP
severities:
no_access: Chặn truy cập
+ sign_up_block: Chặn đăng ký
sign_up_requires_approval: Giới hạn đăng ký
severity: Mức độ
notification_emails:
@@ -219,7 +286,19 @@ vi:
name: Hashtag
trendable: Cho phép xuất hiện trong xu hướng
usable: Cho phép dùng trong tút
+ user:
+ role: Vai trò
+ user_role:
+ color: Màu huy hiệu
+ highlighted: Hiển thị huy hiệu vai trò trên hồ sơ người dùng
+ name: Tên
+ permissions_as_keys: Quyền
+ position: Mức độ ưu tiên
+ webhook:
+ events: Những sự kiện đã bật
+ url: URL endpoint
'no': Tắt
+ not_recommended: Không đề xuất
recommended: Đề xuất
required:
mark: "*"
diff --git a/config/locales/simple_form.zh-CN.yml b/config/locales/simple_form.zh-CN.yml
index 33602885c7..ad36ddf6e1 100644
--- a/config/locales/simple_form.zh-CN.yml
+++ b/config/locales/simple_form.zh-CN.yml
@@ -33,7 +33,7 @@ zh-CN:
autofollow: 通过邀请链接注册的用户将会自动关注你
avatar: 文件大小限制 %{size},只支持 PNG、GIF 或 JPG 格式。图片分辨率将会压缩至 %{dimensions}px
bot: 来自这个帐户的绝大多数操作都是自动进行的,并且可能无人监控
- context: 过滤器的应用场景
+ context: 过滤器的应用环境
current_password: 为了安全起见,请输入当前账号的密码
current_username: 请输入当前账号的用户名以确认
digest: 仅在你长时间未登录,且收到了私信时发送
@@ -68,6 +68,32 @@ zh-CN:
with_dns_records: Mastodon 会尝试解析所给域名的 DNS 记录,然后把解析结果一并封禁
featured_tag:
name: 你可能想要使用以下之一:
+ filters:
+ action: 选择在帖子匹配过滤器时要执行的操作
+ actions:
+ hide: 彻底屏蔽过滤内容,犹如它不曾存在过一般
+ warn: 在警告中提及过滤器标题后,隐藏过滤内容
+ form_admin_settings:
+ backups_retention_period: 将在指定天数内保留生成的用户存档。
+ bootstrap_timeline_accounts: 这些账号将在新用户关注推荐中置顶。
+ closed_registrations_message: 在关闭注册时显示
+ content_cache_retention_period: 设为正数值时,来自其他服务器的嘟文将在指定天数后被删除。删除有可能会是不可逆的。
+ custom_css: 你可以为网页版 Mastodon 应用自定义样式。
+ mascot: 覆盖高级网页界面中的绘图形象。
+ media_cache_retention_period: 设为正数值时,来自其他服务器的媒体文件将在指定天数后被删除,并在需要时再次下载。
+ profile_directory: 个人资料目录会列出所有选择可被发现的用户。
+ require_invite_text: 当注册需要手动批准时,将“你为什么想要加入?”设为必填项
+ site_contact_email: 他人需要询恰法务或支持信息时的联络方式
+ site_contact_username: 他人在 Mastodon 上联系你的方式
+ site_extended_description: 任何可能对访客和用户有用的额外信息。可以使用 Markdown 语法。
+ site_short_description: 有助于区分你的服务器独特性的简短描述。谁在管理?供谁使用?
+ site_terms: 使用你自己的隐私政策或留空以使用默认版。可以使用 Markdown 语法。
+ site_title: 除了域名,人们还可以如何指代你的服务器。
+ theme: 给未登录访客和新用户使用的主题。
+ thumbnail: 与服务器信息一并展示的约 2:1 比例的图像。
+ timeline_preview: 未登录访客将能够浏览服务器上最新的公共嘟文。
+ trendable_by_default: 跳过对热门内容的手工审核。个别项目仍可在之后从趋势中删除。
+ trends: 趋势中会显示正在你服务器上受到关注的嘟文、标签和新闻故事。
form_challenge:
current_password: 你正在进入安全区域
imports:
@@ -80,6 +106,7 @@ zh-CN:
ip: 输入 IPv4 或 IPv6 地址。你可以使用 CIDR 语法屏蔽 IP 段。小心不要屏蔽自己!
severities:
no_access: 阻止访问所有资源
+ sign_up_block: 无法进行新的账号注册
sign_up_requires_approval: 新注册需要你的批准
severity: 选择如何处理来自此 IP 的请求。
rule:
@@ -91,6 +118,16 @@ zh-CN:
name: 你只能改变字母的大小写,让它更易读
user:
chosen_languages: 仅选中语言的嘟文会出现在公共时间轴上(全不选则显示所有语言的嘟文)
+ role: 角色决定该用户拥有的权限
+ user_role:
+ color: 整个用户界面中,该角色使用的颜色,以RGB 十六进制格式
+ highlighted: 这使角色公开可见
+ name: 角色的公开名称,如果角色设置为展示的徽章
+ permissions_as_keys: 具有此角色的用户将有权访问...
+ position: 较高的角色决定在某些情况下解决冲突。某些行动只能对优先级较低的角色执行
+ webhook:
+ events: 选择要发送的事件
+ url: 事件将发送到哪个地点
labels:
account:
fields:
@@ -130,7 +167,7 @@ zh-CN:
chosen_languages: 语言过滤
confirm_new_password: 确认新密码
confirm_password: 确认密码
- context: 过滤器场景
+ context: 过滤器环境
current_password: 当前密码
data: 数据文件
discoverable: 在本站用户目录中收录此账号
@@ -178,6 +215,7 @@ zh-CN:
setting_use_pending_items: 慢速模式
severity: 级别
sign_in_token_attempt: 安全码
+ title: 标题
type: 导入数据类型
username: 用户名
username_or_email: 用户名或电子邮件地址
@@ -186,6 +224,34 @@ zh-CN:
with_dns_records: 包括该域名的 MX 记录和 IP 地址
featured_tag:
name: 话题标签
+ filters:
+ actions:
+ hide: 完全隐藏
+ warn: 隐藏时显示警告信息
+ form_admin_settings:
+ backups_retention_period: 用户存档保留期
+ bootstrap_timeline_accounts: 推荐新用户关注以下账号
+ closed_registrations_message: 在关闭注册时显示的自定义消息
+ content_cache_retention_period: 内容缓存保留期
+ custom_css: 自定义 CSS
+ mascot: 自定义吉祥物(旧)
+ media_cache_retention_period: 媒体缓存保留期
+ profile_directory: 启用用户目录
+ registrations_mode: 谁可以注册
+ require_invite_text: 注册前需要提供理由
+ show_domain_blocks: 显示域名屏蔽列表
+ show_domain_blocks_rationale: 显示域名屏蔽原因
+ site_contact_email: 联系邮箱
+ site_contact_username: 用于联系的公开用户名
+ site_extended_description: 完整说明
+ site_short_description: 本站简介
+ site_terms: 隐私政策
+ site_title: 本站名称
+ theme: 默认主题
+ thumbnail: 本站缩略图
+ timeline_preview: 时间轴预览
+ trendable_by_default: 允许在未审核的情况下将话题置为热门
+ trends: 启用趋势
interactions:
must_be_follower: 屏蔽来自未关注我的用户的通知
must_be_following: 屏蔽来自我未关注的用户的通知
@@ -199,6 +265,7 @@ zh-CN:
ip: IP 地址
severities:
no_access: 阻止访问
+ sign_up_block: 阻止账号注册
sign_up_requires_approval: 限制注册
severity: 规则
notification_emails:
@@ -219,7 +286,19 @@ zh-CN:
name: 话题标签
trendable: 允许在热门下显示此话题
usable: 允许嘟文使用此话题标签
+ user:
+ role: 角色
+ user_role:
+ color: 徽章颜色
+ highlighted: 用户配置中以徽章显示角色
+ name: 名称
+ permissions_as_keys: 权限设置
+ position: 优先权
+ webhook:
+ events: 已启用事件
+ url: 端点网址
'no': 否
+ not_recommended: 不推荐
recommended: 推荐
required:
mark: "*"
diff --git a/config/locales/simple_form.zh-TW.yml b/config/locales/simple_form.zh-TW.yml
index 86103ec96a..004e5dfdef 100644
--- a/config/locales/simple_form.zh-TW.yml
+++ b/config/locales/simple_form.zh-TW.yml
@@ -68,6 +68,32 @@ zh-TW:
with_dns_records: Mastodon 會嘗試解析所給域名的 DNS 記錄,解析結果一致者將一併封鎖
featured_tag:
name: 您可能想使用其中一個:
+ filters:
+ action: 請選擇當嘟文符合該過濾器時將被執行之動作
+ actions:
+ hide: 完全隱藏過濾內容,當作它似乎不曾存在過
+ warn: 隱藏過濾內容於過濾器標題之警告後
+ form_admin_settings:
+ backups_retention_period: 將已產生的使用者封存資料保存特定天數。
+ bootstrap_timeline_accounts: 這些帳號將被釘選於新帳號跟隨推薦之上。
+ closed_registrations_message: 於註冊關閉時顯示
+ content_cache_retention_period: 當設定成正值時,從其他伺服器而來的嘟文會於指定天數後被刪除。這項操作可能是不可逆的。
+ custom_css: 您於 Mastodon 網頁版本中能套用客製化風格。
+ mascot: 覆寫進階網頁介面中的圖例。
+ media_cache_retention_period: 當設定成正值時,已下載的多媒體檔案會於指定天數後被刪除,並且視需要重新下載。
+ profile_directory: 個人資料目錄將會列出那些有選擇被發現的使用者。
+ require_invite_text: 如果已設定為手動審核註冊,請將「加入原因」設定為必填項目。
+ site_contact_email: 其他人如何聯繫您關於法律或支援之諮詢。
+ site_contact_username: 其他人如何於 Mastodon 上聯繫您。
+ site_extended_description: 任何其他可能對訪客或使用者有用的額外資訊。可由 Markdown 語法撰寫。
+ site_short_description: 一段有助於辨別您伺服器的簡短說明。例如:誰運行該伺服器、該伺服器是提供給哪些人群?
+ site_terms: 使用您自己的隱私權政策,或者保留空白以使用預設值。可由 Markdown 語法撰寫。
+ site_title: 除了網域外,其他人該如何指稱您的伺服器。
+ theme: 未登入之訪客或新使用者所見之佈景主題。
+ thumbnail: 大約 2:1 圖片會顯示於您伺服器資訊之旁。
+ timeline_preview: 未登入之訪客能夠瀏覽此伺服器上最新的公開嘟文。
+ trendable_by_default: 跳過手動審核熱門內容。仍能在登上熱門趨勢後移除個別內容。
+ trends: 熱門趨勢將顯示於您伺服器上正在吸引大量注意力的嘟文、主題標籤、或者新聞。
form_challenge:
current_password: 您正要進入安全區域
imports:
@@ -80,6 +106,7 @@ zh-TW:
ip: 請輸入 IPv4 或 IPv6 位址,亦可以用 CIDR 語法以封鎖整個 IP 區段。小心不要把自己給一併封鎖掉囉!
severities:
no_access: 封鎖對所有資源存取
+ sign_up_block: 無法註冊新帳號
sign_up_requires_approval: 新註冊申請需要先經過您的審核
severity: 請選擇將如何處理來自這個 IP 位址的請求
rule:
@@ -91,6 +118,16 @@ zh-TW:
name: 您只能變更大小寫,例如,以使其更易讀。
user:
chosen_languages: 當核取時,只有選取語言的嘟文會在公開時間軸中顯示
+ role: 角色控制使用者有哪些權限
+ user_role:
+ color: 在整個使用者介面中用於角色的顏色,十六進位格式的 RGB
+ highlighted: 這會讓角色公開可見
+ name: 角色的公開名稱,如果角色設定為顯示為徽章
+ permissions_as_keys: 有此角色的使用者將有權存取……
+ position: 在某些情況下,衝突的解決方式由更高階的角色決定。某些動作只能由優先程度較低的角色執行
+ webhook:
+ events: 請選擇要傳送的事件
+ url: 事件會被傳送至何處
labels:
account:
fields:
@@ -178,6 +215,7 @@ zh-TW:
setting_use_pending_items: 限速模式
severity: 優先級
sign_in_token_attempt: 安全代碼
+ title: 標題
type: 匯入類型
username: 使用者名稱
username_or_email: 使用者名稱或電子信箱地址
@@ -186,6 +224,34 @@ zh-TW:
with_dns_records: 包括網域的 MX 記錄和 IP 位址
featured_tag:
name: "「#」標籤"
+ filters:
+ actions:
+ hide: 完全隱藏
+ warn: 隱藏於警告之後
+ form_admin_settings:
+ backups_retention_period: 使用者封存資料保留期間
+ bootstrap_timeline_accounts: 永遠推薦這些帳號給新使用者
+ closed_registrations_message: 當註冊關閉時的客製化訊息
+ content_cache_retention_period: 內容快取資料保留期間
+ custom_css: 自訂 CSS
+ mascot: 自訂吉祥物 (legacy)
+ media_cache_retention_period: 多媒體快取資料保留期間
+ profile_directory: 啟用個人資料目錄
+ registrations_mode: 誰能註冊
+ require_invite_text: 要求「加入原因」
+ show_domain_blocks: 顯示封鎖的網域
+ show_domain_blocks_rationale: 顯示網域被封鎖之原因
+ site_contact_email: 聯絡 e-mail
+ site_contact_username: 聯絡人帳號
+ site_extended_description: 進階描述
+ site_short_description: 伺服器描述
+ site_terms: 隱私權政策
+ site_title: 伺服器名稱
+ theme: 預設佈景主題
+ thumbnail: 伺服器縮圖
+ timeline_preview: 允許未登入使用者瀏覽公開時間軸
+ trendable_by_default: 允許熱門趨勢直接顯示,不需經過審核
+ trends: 啟用熱門趨勢
interactions:
must_be_follower: 封鎖非跟隨者的通知
must_be_following: 封鎖您未跟隨之使用者的通知
@@ -199,6 +265,7 @@ zh-TW:
ip: IP 位址
severities:
no_access: 封鎖
+ sign_up_block: 禁止註冊新帳號
sign_up_requires_approval: 限制註冊
severity: 規則
notification_emails:
@@ -219,7 +286,19 @@ zh-TW:
name: 主題標籤
trendable: 允許此主題標籤在趨勢下顯示
usable: 允許嘟文使用此主題標籤
+ user:
+ role: 角色
+ user_role:
+ color: 識別顏色
+ highlighted: 在使用者個人資料上將角色顯示為徽章
+ name: 名稱
+ permissions_as_keys: 權限
+ position: 優先權
+ webhook:
+ events: 已啟用的事件
+ url: 端點 URL
'no': 否
+ not_recommended: 不建議
recommended: 建議
required:
mark: "*"
diff --git a/config/locales/sk.yml b/config/locales/sk.yml
index d59e81cc8a..e1b2ae99a6 100644
--- a/config/locales/sk.yml
+++ b/config/locales/sk.yml
@@ -1,66 +1,11 @@
---
sk:
about:
- about_hashtag_html: Toto sú verejné príspevky, otagované pod #%{hashtag} . Ak máš účet hocikde v rámci fediversa, môžeš s nimi narábať.
about_mastodon_html: Mastodon je sociálna sieť založená na otvorených webových protokoloch a na slobodnom softvéri. Je decentralizovaná, podobne ako email.
- about_this: O tomto serveri
- active_count_after: aktívni
- active_footnote: Mesačne aktívnych užívateľov (MAU)
- administered_by: 'Správcom je:'
- apps: Aplikácie
- apps_platforms: Užívaj Mastodon z iOSu, Androidu, a iných platforiem
- browse_directory: Prehľadávaj databázu profilov, a filtruj podľa záujmov
- browse_local_posts: Prebádaj naživo prúd verejných príspevkov z tohto servera
- browse_public_posts: Sleduj naživo prúd verejných príspevkov na Mastodone
- contact: Kontakt
contact_missing: Nezadaný
contact_unavailable: Neuvedený/á
- continue_to_web: Pokračovať na webovú aplikáciu
- discover_users: Objavuj užívateľov
- documentation: Dokumentácia
- federation_hint_html: S účtom na %{instance} budeš môcť následovať ľúdí na hociakom Mastodon serveri, ale aj na iných serveroch.
- get_apps: Vyskúšaj aplikácie
hosted_on: Mastodon hostovaný na %{domain}
- instance_actor_flash: |
- Tento účet je virtuálnym aktérom, ktorý predstavuje samotný server a nie žiadného jedného užívateľa.
- Je využívaný pre potreby federovania a nemal by byť blokovaný, pokiaľ nechceš zablokovať celý server, čo ide lepšie dosiahnúť cez blokovanie domény.
- learn_more: Zisti viac
- logged_in_as_html: Práve si prihlásený/á ako %{username}.
- logout_before_registering: Už si prihlásený/á.
- privacy_policy: Zásady súkromia
- rules: Serverové pravidlá
- see_whats_happening: Pozoruj, čo sa deje
- server_stats: 'Serverové štatistiky:'
- source_code: Zdrojový kód
- status_count_after:
- few: príspevkov
- many: príspevkov
- one: príspevok
- other: príspevky
- status_count_before: Ktorí napísali
- tagline: Nasleduj kamarátov, a objavuj nových
- terms: Podmienky užitia
- unavailable_content: Nedostupný obsah
- unavailable_content_description:
- reason: 'Dôvod:'
- rejecting_media: 'Mediálne súbory z týchto serverov nebudú spracované, alebo ukladané, a nebudú z nich zobrazované žiadne náhľady, vyžadujúc ručné prekliknutie priamo až k pôvodnému súboru:'
- rejecting_media_title: Triedené médiá
- silenced: 'Príspevky z týchto serverov budú skryté z verejných osí a z konverzácií, a nebudú vytvorené žiadné oboznámena ohľadom aktivity ich užívateľov, pokiaľ ich nenásleduješ:'
- silenced_title: Utíšené servery
- suspended: 'Z týchto serverov nebudú spracovávané, ukladané, alebo vymieňané žiadne dáta, čo urobí nemožnou akúkoľvek interakciu, alebo komunikáciu s užívateľmi z týchto serverov:'
- suspended_title: Vylúčené servery
- unavailable_content_html: Vo všeobecnosti, Mastodon ti dovoľuje vidieť obsah, a komunikovať s užívateľmi akéhokoľvek iného serveru v rámci fediversa. Toto sú výnimky, ktoré boli vytvorené na tomto konkrétnom serveri.
- user_count_after:
- few: užívateľov
- many: užívatelia
- one: užívateľ
- other: užívateľov
- user_count_before: Domov pre
- what_is_mastodon: Čo je Mastodon?
accounts:
- choices_html: "%{name}vé voľby:"
- endorsements_hint: Môžeš ukázať sledovaných užívateľov, s ktorými si spriaznený/á cez webové rozhranie, a tí tu budú zobrazení.
- featured_tags_hint: Môžeš zvýrazniť určité haštagy, ktoré tu budú zobrazené.
follow: Následuj
followers:
few: Sledovateľov
@@ -68,15 +13,9 @@ sk:
one: Sledujúci
other: Sledovatelia
following: Následujem
- joined: Pridal/a sa v %{date}
last_active: naposledy aktívny
link_verified_on: Vlastníctvo tohto odkazu bolo skontrolované %{date}
- media: Médiá
- moved_html: "%{name} účet bol presunutý na %{new_profile_link}:"
- network_hidden: Táto informácia nieje k dispozícii
nothing_here: Nič tu nie je!
- people_followed_by: Ľudia, ktorých %{name} sleduje
- people_who_follow: Ľudia sledujúci %{name}
pin_errors:
following: Musíš už následovať toho človeka, ktorého si praješ zviditeľniť
posts:
@@ -85,13 +24,6 @@ sk:
one: Príspevok
other: Príspevkov
posts_tab_heading: Príspevky
- posts_with_replies: Príspevky s odpoveďami
- roles:
- admin: Správca
- group: Skupina
- moderator: Moderátor
- unavailable: Profil nieje dostupný
- unfollow: Prestaň sledovať
admin:
account_actions:
action: Vykonaj
@@ -107,12 +39,16 @@ sk:
avatar: Maskot
by_domain: Doména
change_email:
- changed_msg: Email pre tento účet bol úspešne zmenený!
current_email: Súčasný email
label: Zmeň email
new_email: Nový email
submit: Zmeň email
title: Zmeň email pre %{username}
+ change_role:
+ changed_msg: Postavenie úspešne zmenené!
+ label: Zmeň pozíciu
+ no_role: Žiadna pozícia
+ title: Zmeň pozíciu pre %{username}
confirm: Potvrď
confirmed: Potvrdený
confirming: Potvrdzujúci
@@ -149,6 +85,7 @@ sk:
active: Aktívny/a
all: Všetko
pending: Čakajúci
+ silenced: Obmedzený
suspended: Vylúčený/á
title: Moderácia
moderation_notes: Moderátorské poznámky
@@ -156,6 +93,7 @@ sk:
most_recent_ip: Posledná IP adresa
no_account_selected: Nedošlo k žiadnému pozmeneniu účtov, keďže žiadne neboli vybrané
no_limits_imposed: Nie sú stanovené žiadné obmedzenia
+ no_role_assigned: Žiadne postavenie nepriradené
not_subscribed: Neodoberá
pending: Vyžaduje posúdenie
perform_full_suspension: Vylúč
@@ -174,12 +112,7 @@ sk:
reset: Resetuj
reset_password: Obnov heslo
resubscribe: Znovu odoberaj
- role: Oprávnenia
- roles:
- admin: Správca
- moderator: Moderátor
- staff: Člen
- user: Užívateľ
+ role: Postavenie
search: Hľadaj
search_same_email_domain: Iní užívatelia s tou istou emailovou doménou
search_same_ip: Ostatní užívatelia s rovnakou IP adresou
@@ -256,7 +189,6 @@ sk:
change_email_user_html: "%{name} zmenil/a emailovú adresu užívateľa %{target}"
confirm_user_html: "%{name} potvrdil/a emailovú adresu používateľa %{target}"
create_account_warning_html: "%{name} poslal/a upozornenie užívateľovi %{target}"
- deleted_status: "(zmazaný príspevok)"
filter_by_action: Filtruj podľa úkonu
filter_by_user: Trieď podľa užívateľa
title: Kontrólny záznam
@@ -356,7 +288,9 @@ sk:
domain: Doména
new:
create: Pridaj doménu
+ resolve: Preveď doménu
title: Nový email na zablokovanie
+ resolved_through_html: Prevedená cez %{domain}
title: Blokované emailové adresy
follow_recommendations:
description_html: "Odporúčania na sledovanie pomáhaju novým užívateľom rýchlo nájsť zaujímavý obsah . Ak užívateľ zatiaľ nedostatočne interagoval s ostatnými aby si vyformoval personalizované odporúčania na sledovanie, tak mu budú odporúčané tieto účty. Sú prepočítavané na dennej báze z mixu účtov s nedávnym najvyšším záujmom a najvyšším počtom lokálnych sledujúcich pre daný jazyk."
@@ -374,8 +308,15 @@ sk:
back_to_warning: Upozornenie
by_domain: Doména
content_policies:
+ comment: Interná poznámka
policies:
+ reject_media: Zamietni médiá
suspend: Vylúč
+ policy: Zásady
+ reason: Verejné odôvodnenie
+ title: Zásady o obsahu
+ dashboard:
+ instance_accounts_dimension: Najsledovanejšie účty
delivery:
all: Všetko
unavailable: Nedostupné
@@ -473,92 +414,36 @@ sk:
unassign: Odober
unresolved: Nevyriešené
updated_at: Aktualizované
+ view_profile: Zobraz profil
+ roles:
+ add_new: Pridaj postavenie
+ assigned_users:
+ few: "%{count} užívateľov"
+ many: "%{count} užívateľov"
+ one: "%{count} užívateľ"
+ other: "%{count} užívatelia"
+ categories:
+ administration: Spravovanie
+ invites: Pozvánky
+ edit: Uprav postavenie %{name}
+ privileges:
+ administrator: Správca
+ invite_users: Pozvi užívateľov
+ manage_roles: Spravuj postavenia
+ title: Postavenia
+ rules:
+ empty: Žiadne pravidlá servera ešte neboli určené.
+ title: Serverové pravidlá
settings:
- activity_api_enabled:
- desc_html: Sčítanie miestne uverejnených príspevkov, aktívnych užívateľov, a nových registrácii, v týždenných intervaloch
- title: Vydať hromadné štatistiky o užívateľskej aktivite
- bootstrap_timeline_accounts:
- desc_html: Ak je prezývok viacero, každú oddeľ čiarkou. Tieto účty budú zobrazené v odporúčaniach na sledovanie
- title: Štandardní následovníci nových užívateľov
- contact_information:
- email: Pracovný email
- username: Kontaktné užívateľské meno
- custom_css:
- desc_html: Uprav vzhľad pomocou CSS, ktoré je načítané na každej stránke
- title: Vlastné CSS
- default_noindex:
- desc_html: Ovplyvňuje všetkých užívateľov, ktorí si toto nasavenie nezmenili sami
- title: Vyraď užívateľov z indexovania vyhľadávačmi, ako východzie nastavenie
domain_blocks:
all: Všetkým
disabled: Nikomu
- title: Ukáž blokované domény
users: Prihláseným, miestnym užívateľom
- domain_blocks_rationale:
- title: Ukáž zdôvodnenie
- hero:
- desc_html: Zobrazuje sa na hlavnej stránke. Doporučené je rozlišenie aspoň 600x100px. Pokiaľ nič nieje dodané, bude nastavený základný orázok serveru.
- title: Obrázok hrdinu
- mascot:
- desc_html: Zobrazované na viacerých stránkach. Odporúčaná veľkosť aspoň 293×205px. Pokiaľ nieje nahraté, bude zobrazený základný maskot.
- title: Obrázok maskota
- peers_api_enabled:
- desc_html: Domény, na ktoré tento server už v rámci fediversa natrafil
- title: Zverejni zoznam objavených serverov
- preview_sensitive_media:
- desc_html: Náhľad odkazov z iných serverov, bude zobrazený aj vtedy, keď sú médiá označené ako chúlostivé
- title: Ukazuj aj chúlostivé médiá v náhľadoch OpenGraph
- profile_directory:
- desc_html: Povoľ užívateľom, aby mohli byť nájdení
- title: Zapni profilový katalóg
- registrations:
- closed_message:
- desc_html: Toto sa zobrazí na hlavnej stránke v prípade, že sú registrácie uzavreté. Možno tu použiť aj HTML kód
- title: Správa o uzavretých registráciách
- deletion:
- desc_html: Dovoľ každému, aby si mohli vymazať svok účet
- title: Sprístupni možnosť vymazať si účet
- min_invite_role:
- disabled: Nikto
- title: Povoľ pozvánky od
registrations_mode:
modes:
approved: Pre registráciu je nutné povolenie
none: Nikto sa nemôže registrovať
open: Ktokoľvek sa môže zaregistrovať
- title: Režím registrácií
- show_known_fediverse_at_about_page:
- desc_html: Ak je zapnuté, bude v ukážke osi možné nahliadnúť príspevky z celého známeho fediversa. Inak budú ukázané iba príspevky z miestnej osi.
- title: Ukáž celé známe fediverse na náhľade osi
- show_staff_badge:
- desc_html: Ukáž moderátorsky odznak na užívateľovom profile
- title: Ukáž značku moderátora
- site_description:
- desc_html: Oboznamujúci paragraf na hlavnej stránke a pri meta tagoch. Opíš, čo robí tento Mastodon server špecifickým, a ďalej hocičo iné, čo považuješ za dôležité. Môžeš použiť HTML kód, hlavne <a>
a <em>
.
- title: Popis servera
- site_description_extended:
- desc_html: Toto je vhodné miesto pre tvoje pravidlá o prevádzke, pokyny, podmienky a iné veci, ktorými je tvoj server špecifický. Je možné tu používať HTML tagy
- title: Vlastné doplňujúce informácie
- site_short_description:
- desc_html: Zobrazené na bočnom paneli a pri meta tagoch. Popíš čo je Mastodon, a čo robí tento server iným, v jednom paragrafe. Pokiaľ toto necháš prázdne, bude tu zobrazený základný popis servera.
- title: Krátky popis serveru
- site_terms:
- desc_html: Môžeš si napísať svoje vlastné pravidla o súkromí, prevádzke, alebo aj iné legality. Môžeš tu používať HTML kód
- title: Vlastné pravidlá prevádzky
- site_title: Názov servera
- thumbnail:
- desc_html: Používané pre náhľady cez OpenGraph a API. Doporučuje sa rozlišenie 1200x630px
- title: Miniatúra servera
- timeline_preview:
- desc_html: Zobraziť verejnú nástenku na hlavnej stránke
- title: Náhľad nástenky
- title: Nastavenia stránky
- trendable_by_default:
- desc_html: Ovplyvňuje haštagy ktoré predtým neboli zakázané
- title: Dovoľ haštagom zobrazovať sa ako populárne, bez predchodzieho posudzovania
- trends:
- desc_html: Verejne zobraz už schválené haštagy, ktoré práve trendujú
- title: Populárne haštagy
site_uploads:
delete: Vymaž nahratý súbor
destroyed_msg: Nahratie bolo zo stránky úspešne vymazané!
@@ -634,16 +519,12 @@ sk:
applications:
created: Aplikácia bola vytvorená úspešne
destroyed: Aplikáciu sa podarilo odstrániť
- invalid_url: Zadaná URL adresa je nesprávna
regenerate_token: Znovu vygeneruj prístupový token
token_regenerated: Prístupový token bol úspešne vygenerovaný znova
warning: Na tieto údaje dávaj ohromný pozor. Nikdy ich s nikým nezďieľaj!
your_token: Tvoj prístupový token
auth:
- apply_for_account: Vyžiadaj si pozvánku
change_password: Heslo
- checkbox_agreement_html: Súhlasím s pravidlami servera , aj s prevoznými podmienkami
- checkbox_agreement_without_rules_html: Súhlasím s podmienkami užívania
delete_account: Vymaž účet
delete_account_html: Pokiaľ chceš svoj účet odtiaľto vymazať, môžeš tak urobiť tu . Budeš požiadaný/á o potvrdenie tohto kroku.
description:
@@ -673,7 +554,6 @@ sk:
confirming: Čaká sa na dokončenie potvrdenia emailom.
pending: Tvoja žiadosť čaká na schvílenie od nášho týmu. Môže to chviľu potrvať. Ak bude tvoja žiadosť schválená, dostaneš o tom email.
redirecting_to: Tvoj účet je neaktívny, lebo v súčasnosti presmerováva na %{acct}.
- trouble_logging_in: Problém s prihlásením?
use_security_key: Použi bezpečnostný kľúč
authorize_follow:
already_following: Tento účet už následuješ
@@ -722,10 +602,6 @@ sk:
more_details_html: Pre viac podrobností, pozri zásady súkromia .
username_available: Tvoje užívateľské meno bude znova dostupné
username_unavailable: Tvoja prezývka ostane neprístupná
- directories:
- directory: Katalóg profilov
- explanation: Pátraj po užívateľoch podľa ich záujmov
- explore_mastodon: Prebádaj %{title}
domain_validator:
invalid_domain: nieje správny tvar domény
errors:
@@ -775,7 +651,6 @@ sk:
title: Uprav triedenie
errors:
invalid_context: Nebola poskytnutá žiadna, alebo ide o neplatnú súvislosť
- invalid_irreversible: Nezvratné filtrovanie funguje iba so súvislostiami domovskej osi a oboznámení
index:
delete: Vymaž
empty: Nemáš žiadné filtrovanie.
@@ -783,9 +658,6 @@ sk:
new:
title: Pridaj nové triedenie
footer:
- developers: Vývojári
- more: Viac…
- resources: Podklady
trending_now: Teraz populárne
generic:
all: Všetko
@@ -818,7 +690,6 @@ sk:
following: Zoznam sledovaných
muting: Zoznam ignorovaných
upload: Nahraj
- in_memoriam_html: V pamäti.
invites:
delete: Deaktivuj
expired: Neplatné
@@ -893,16 +764,6 @@ sk:
carry_blocks_over_text: Tento užívateľ sa presunul z účtu %{acct}, ktorý si mal/a zablokovaný.
carry_mutes_over_text: Tento užívateľ sa presunul z účtu %{acct}, ktorý si mal/a stíšený.
notification_mailer:
- digest:
- action: Zobraziť všetky notifikácie
- body: Tu nájdete krátky súhrn správ ktoré ste zmeškali od svojej poslednj návštevi od %{since}
- mention: "%{name} ťa spomenul/a v:"
- new_followers_summary:
- few: A ešte, kým si bol/a preč, si získal/a %{count} nových následovateľov! Hurá!
- many: A ešte, kým si bol/a preč, si získal/a %{count} nových následovateľov! Hurá!
- one: A ešte, kým si bol/a preč, si získal/a jedného nového následovateľa! Hurá!
- other: A ešte, kým si bol/a preč, si získal/a %{count} nových následovateľov! Hurá!
- title: Zatiaľ čo si bol/a preč…
favourite:
body: 'Tvoj príspevok bol uložený medzi obľúbené užívateľa %{name}:'
subject: "%{name} si obľúbil/a tvoj príspevok"
@@ -975,22 +836,7 @@ sk:
remove_selected_follows: Prestaň sledovať vybraných užívateľov
status: Stav účtu
remote_follow:
- acct: Napíš svoju prezývku@doménu z ktorej chceš následovať
missing_resource: Nemožno nájsť potrebnú presmerovaciu adresu k tvojmu účtu
- no_account_html: Nemáš účet? Môžeš sa zaregistrovať tu
- proceed: Začni následovať
- prompt: 'Budeš sledovať:'
- reason_html: "Načo je tento krok potrebný? %{instance}
nemusí byť práve tým serverom na ktorom si zaregistrovaný/á, takže je ťa najprv potrebné presmerovať na tvoj domáci server."
- remote_interaction:
- favourite:
- proceed: Pokračuj k obľúbeniu
- prompt: 'Chceš si obľúbiť tento príspevok:'
- reblog:
- proceed: Pokračuj k vyzdvihnutiu
- prompt: 'Chceš vyzdvihnúť tento príspevok:'
- reply:
- proceed: Pokračuj odpovedaním
- prompt: 'Chceš odpovedať na tento príspevok:'
scheduled_statuses:
over_daily_limit: Prekročil/a si denný limit %{limit} predplánovaných príspevkov
over_total_limit: Prekročil/a si limit %{limit} predplánovaných príspevkov
@@ -1098,8 +944,6 @@ sk:
sensitive_content: Senzitívny obsah
tags:
does_not_match_previous_name: nezhoduje sa s predošlým názvom
- terms:
- title: Podmienky užívania, a pravidlá súkromia pre %{instance}
themes:
contrast: Mastodon (vysoký kontrast)
default: Mastodon (tmavý)
@@ -1134,20 +978,11 @@ sk:
suspend: Tvoj účet bol vylúčený
welcome:
edit_profile_action: Nastav profil
- edit_profile_step: Profil si môžeš prispôsobiť nahratím portrétu a záhlavia, môžeš upraviť svoje meno a viac. Pokiaľ chceš preverovať nových následovateľov predtým než ťa budú môcť sledovať, môžeš uzamknúť svoj účet.
explanation: Tu nájdeš nejaké tipy do začiatku
final_action: Začni prispievať
- final_step: 'Začni písať! Aj bez následovateľov budú tvoje verejné príspevky videné ostatnými, napríklad na miestnej osi a pod haštagmi. Ak chceš, môžeš sa ostatným predstaviť pod haštagom #introductions.'
full_handle: Adresa tvojho profilu v celom formáte
full_handle_hint: Toto je čo musíš dať vedieť svojím priateľom aby ti mohli posielať správy, alebo ťa následovať z iného serveru.
- review_preferences_action: Zmeniť nastavenia
- review_preferences_step: Daj si záležať na svojích nastaveniach, napríklad že aké emailové notifikácie chceš dostávať, alebo pod aký level súkromia sa tvoje príspevky majú sami automaticky zaradiť. Pokiaľ nemáš malátnosť z pohybu, môžeš si zvoliť aj automatické spúšťanie GIF animácií.
subject: Vitaj na Mastodone
- tip_federated_timeline: Federovaná os zobrazuje sieť Mastodonu až po jej hranice. Ale zahŕňa iba ľúdí ktorých ostatní okolo teba sledujú, takže predsa nieje úplne celistvá.
- tip_following: Správcu servera následuješ automaticky. Môžeš ale nájsť mnoho iných zaujímavých ľudí ak prezrieš tak lokálnu, ako aj globálne federovanú os.
- tip_local_timeline: Miestna časová os je celkový pohľad na aktivitu užívateľov %{instance}. Toto sú tvoji najbližší susedia!
- tip_mobile_webapp: Pokiaľ ti prehliadač ponúkne možnosť pridať Mastodon na tvoju obrazovku, môžeš potom dostávať notifikácie skoro ako z natívnej aplikácie!
- tips: Tipy
title: Vitaj na palube, %{name}!
users:
follow_limit_reached: Nemôžeš následovať viac ako %{limit} ľudí
diff --git a/config/locales/sl.yml b/config/locales/sl.yml
index 8f54e9f74f..d009a7dda9 100644
--- a/config/locales/sl.yml
+++ b/config/locales/sl.yml
@@ -1,69 +1,12 @@
---
sl:
about:
- about_hashtag_html: To so javne objave, označene z #%{hashtag} . Z njimi se lahko povežete, če imate račun kjerkoli v fediverzumu.
about_mastodon_html: Mastodon je socialno omrežje, ki temelji na odprtih spletnih protokolih in prosti ter odprtokodni programski opremi. Je decentraliziran, kot e-pošta.
- about_this: O Mastodonu
- active_count_after: dejavnih
- active_footnote: Aktivni mesečni uporabniki (AMU)
- administered_by: 'Upravlja:'
- api: API (programerski vmesnik aplikacije)
- apps: Mobilne aplikacije
- apps_platforms: Uporabljajte Mastodon iz iOS, Android ali iz drugih platform
- browse_directory: Brskajte po imeniku profilov in jih filtrirajte po interesih
- browse_local_posts: Prebrskaj živi tok javnih objav s tega strežnika
- browse_public_posts: Brskajte javnih objav v živo na Mastodonu
- contact: Kontakt
contact_missing: Ni nastavljeno
contact_unavailable: Ni na voljo
- continue_to_web: Nadaljuj v spletno aplikacijo
- discover_users: Odkrijte uporabnike
- documentation: Dokumentacija
- federation_hint_html: Z računom na %{instance} boste lahko spremljali osebe na poljubnem strežniku Mastodon.
- get_apps: Poskusite mobilno aplikacijo
hosted_on: Mastodon gostuje na %{domain}
- instance_actor_flash: |
- Ta račun je navidezni igralec, ki predstavlja strežnik in ne posameznega uporabnika.
- Uporablja se za namene federacije in se ne blokira, če ne želite blokirati celotne instance. V tem primeru blokirajte domeno.
- learn_more: Nauči se več
- logged_in_as_html: Trenutno ste prijavljeni kot %{username}.
- logout_before_registering: Ste že prijavljeni.
- privacy_policy: Pravilnik o zasebnosti
- rules: Pravila strežnika
- rules_html: 'Spodaj je povzetek pravil, ki jim morate slediti, če želite imeti račun na tem strežniku Mastodon:'
- see_whats_happening: Poglejte, kaj se dogaja
- server_stats: 'Statistika strežnika:'
- source_code: Izvorna koda
- status_count_after:
- few: stanja
- one: stanje
- other: objav
- two: stanja
- status_count_before: Ki so avtorji
- tagline: Sledite prijateljem in odkrijte nove
- terms: Pogoji storitve
- unavailable_content: Moderirani strežniki
- unavailable_content_description:
- domain: Strežnik
- reason: Razlog
- rejecting_media: 'Medijske datoteke s teh strežnikov ne bodo obdelane ali shranjene, nobene ogledne sličice ne bodo prikazane, kar bo zahtevalo ročno klikanje po izvorni datoteki:'
- rejecting_media_title: Filtrirane datoteke
- silenced: 'Objave s teh strežnikov bodo skrite v javnih časovnicah ter pogovorih in nobena obvestila ne bodo izdelana iz interakcij njihovih uporabnikov, razen če jim sledite:'
- silenced_title: Omejeni strežniki
- suspended: 'Nobeni podatki s teh strežnikov ne bodo obdelani, shranjeni ali izmenjani, zaradi česar je nemogoča kakršna koli interakcija ali komunikacija z uporabniki s teh strežnikov:'
- suspended_title: Suspendirani strežniki
- unavailable_content_html: Mastodon vam splošno omogoča ogled vsebin in interakcijo z uporabniki iz vseh drugih strežnikov v fediverzumu. To so izjeme, opravljene na tem strežniku.
- user_count_after:
- few: uporabniki
- one: uporabnik
- other: uporabnikov
- two: uporabnika
- user_count_before: Dom za
- what_is_mastodon: Kaj je Mastodon?
+ title: O programu
accounts:
- choices_html: "%{name} izbire:"
- endorsements_hint: Osebe, ki jim sledite, lahko podprete prek spletnega vmesnika in prikazane bodo tukaj.
- featured_tags_hint: Izpostavite lahko določene ključnike, ki bodo prikazani na tem mestu.
follow: Sledi
followers:
few: Sledilci
@@ -72,15 +15,9 @@ sl:
two: Sledilca
following: Sledim
instance_actor_flash: Ta račun je navidezni akter, ki se uporablja za predstavljanje strežnika samega in ne posameznega uporabnika. Uporablja se za namene federacije in se ne sme začasno ustaviti.
- joined: Se je pridružil na %{date}
last_active: zadnja dejavnost
link_verified_on: Lastništvo te povezave je bilo preverjeno na %{date}
- media: Mediji
- moved_html: "%{name} se je prestavil na %{new_profile_link}:"
- network_hidden: Ta informacija ni na voljo
nothing_here: Tukaj ni ničesar!
- people_followed_by: Ljudje, ki jim sledi %{name}
- people_who_follow: Ljudje, ki sledijo %{name}
pin_errors:
following: Verjetno že sledite osebi, ki jo želite potrditi
posts:
@@ -89,14 +26,6 @@ sl:
other: Objav
two: Tuta
posts_tab_heading: Objave
- posts_with_replies: Objave in odgovori
- roles:
- admin: Skrbnik
- bot: Robot
- group: Skupina
- moderator: Mod
- unavailable: Profil ni na voljo
- unfollow: Prenehaj slediti
admin:
account_actions:
action: Izvedi dejanje
@@ -113,12 +42,17 @@ sl:
avatar: Podoba
by_domain: Domena
change_email:
- changed_msg: E-pošta računa je uspešno spremenjena!
+ changed_msg: E-pošni naslov uspešno spremenjen!
current_email: Trenutna e-pošta
label: Spremeni e-pošto
new_email: Nova e-pošta
submit: Spremeni e-pošto
title: Spremeni e-pošto za %{username}
+ change_role:
+ changed_msg: Vloga uspešno spremenjena!
+ label: Spremeni vlogo
+ no_role: Ni vloge
+ title: Spremeni vlogo za %{username}
confirm: Potrdi
confirmed: Potrjeno
confirming: Potrjujem
@@ -162,6 +96,7 @@ sl:
active: Dejaven
all: Vse
pending: Na čakanju
+ silenced: Omejeno
suspended: Suspendiran
title: Moderiranje
moderation_notes: Opombe moderiranja
@@ -169,6 +104,7 @@ sl:
most_recent_ip: Zadnji IP
no_account_selected: Noben račun ni bil spremenjen, ker ni bil izbran noben
no_limits_imposed: Brez omejitev
+ no_role_assigned: Dodeljena ni nobena vloga
not_subscribed: Ni naročen
pending: Čakanje na pregled
perform_full_suspension: Suspendiraj
@@ -197,12 +133,7 @@ sl:
reset: Ponastavi
reset_password: Ponastavi geslo
resubscribe: Ponovno se naroči
- role: Dovoljenja
- roles:
- admin: Skrbnik
- moderator: Moderator
- staff: Osebje
- user: Uporabnik
+ role: Vloga
search: Iskanje
search_same_email_domain: Drugi uporabniki z isto domeno e-pošte
search_same_ip: Drugi uporabniki z istim IP
@@ -245,18 +176,22 @@ sl:
approve_user: Odobri uporabnika
assigned_to_self_report: Dodeli prijavo
change_email_user: Spremeni e-poštni naslov uporabnika
+ change_role_user: Spremeni vlogo uporabnika
confirm_user: Potrdi uporabnika
create_account_warning: Ustvari opozorilo
create_announcement: Ustvari obvestilo
- create_custom_emoji: Ustvari emodži po meri
+ create_canonical_email_block: Ustvari blokado e-pošte
+ create_custom_emoji: Ustvari emotikon po meri
create_domain_allow: Ustvari odobritev domene
create_domain_block: Ustvari blokado domene
create_email_domain_block: Ustvari blokado domene e-pošte
create_ip_block: Ustvari pravilo IP
create_unavailable_domain: Ustvari domeno, ki ni na voljo
+ create_user_role: Ustvari vlogo
demote_user: Ponižaj uporabnika
destroy_announcement: Izbriši obvestilo
- destroy_custom_emoji: Izbriši emodži po meri
+ destroy_canonical_email_block: Izbriši blokado e-pošte
+ destroy_custom_emoji: Izbriši emotikon po meri
destroy_domain_allow: Izbriši odobritev domene
destroy_domain_block: Izbriši blokado domene
destroy_email_domain_block: Izbriši blokado domene e-pošte
@@ -264,11 +199,12 @@ sl:
destroy_ip_block: Izbriši pravilo IP
destroy_status: Izbriši objavo
destroy_unavailable_domain: Izbriši domeno, ki ni na voljo
+ destroy_user_role: Uniči vlogo
disable_2fa_user: Onemogoči
- disable_custom_emoji: Onemogoči emodži po meri
+ disable_custom_emoji: Onemogoči emotikon po meri
disable_sign_in_token_auth_user: Onemogoči overjanje z žetonom po e-pošti za uporabnika
disable_user: Onemogoči uporabnika
- enable_custom_emoji: Omogoči emodži po meri
+ enable_custom_emoji: Omogoči emotikon po meri
enable_sign_in_token_auth_user: Omogoči overjanje z žetonom po e-pošti za uporabnika
enable_user: Omogoči uporabnika
memorialize_account: Spomenificiraj račun
@@ -288,26 +224,32 @@ sl:
unsilence_account: Razveljavi omejitev računa
unsuspend_account: Prekliči začasno prekinitev računa
update_announcement: Posodobi objavo
- update_custom_emoji: Posodobi emodži po meri
+ update_custom_emoji: Posodobi emotikon po meri
update_domain_block: Posodobi blokado domene
+ update_ip_block: Posodobi pravilo IP
update_status: Posodobi objavo
+ update_user_role: Posodobi vlogo
actions:
approve_appeal_html: "%{name} je ugodil pritožbi uporabnika %{target} na moderatorsko odločitev"
approve_user_html: "%{name} je odobril/a registracijo iz %{target}"
assigned_to_self_report_html: "%{name} je dodelil/a prijavo %{target} sebi"
change_email_user_html: "%{name} je spremenil/a naslov e-pošte uporabnika %{target}"
+ change_role_user_html: "%{name} je spremenil/a vlogo %{target}"
confirm_user_html: "%{name} je potrdil/a naslov e-pošte uporabnika %{target}"
create_account_warning_html: "%{name} je poslal/a opozorilo %{target}"
create_announcement_html: "%{name} je ustvarila/a novo obvestilo %{target}"
+ create_canonical_email_block_html: "%{name} je dal/a na črni seznam e-pošto s ključnikom %{target}"
create_custom_emoji_html: "%{name} je posodobil/a emotikone %{target}"
create_domain_allow_html: "%{name} je dovolil/a federacijo z domeno %{target}"
create_domain_block_html: "%{name} je blokiral/a domeno %{target}"
create_email_domain_block_html: "%{name} je dal/a na črni seznam e-pošto domene %{target}"
create_ip_block_html: "%{name} je ustvaril/a pravilo za IP %{target}"
create_unavailable_domain_html: "%{name} je prekinil/a dostavo v domeno %{target}"
+ create_user_role_html: "%{name} je ustvaril/a vlogo %{target}"
demote_user_html: "%{name} je ponižal/a uporabnika %{target}"
destroy_announcement_html: "%{name} je izbrisal/a obvestilo %{target}"
- destroy_custom_emoji_html: "%{name} je uničil/a emotikone %{target}"
+ destroy_canonical_email_block_html: "%{name} je odstranil/a s črnega seznama e-pošto s ključnikom %{target}"
+ destroy_custom_emoji_html: "%{name} je izbrisal/a emotikon %{target}"
destroy_domain_allow_html: "%{name} ni dovolil/a federacije z domeno %{target}"
destroy_domain_block_html: "%{name} je odblokiral/a domeno %{target}"
destroy_email_domain_block_html: "%{name} je odblokiral/a e-pošto domene %{target}"
@@ -315,6 +257,7 @@ sl:
destroy_ip_block_html: "%{name} je izbrisal/a pravilo za IP %{target}"
destroy_status_html: "%{name} je odstranil/a objavo uporabnika %{target}"
destroy_unavailable_domain_html: "%{name} je nadaljeval/a dostav v domeno %{target}"
+ destroy_user_role_html: "%{name} je izbrisal/a vlogo %{target}"
disable_2fa_user_html: "%{name} je onemogočil/a dvofaktorsko zahtevo za uporabnika %{target}"
disable_custom_emoji_html: "%{name} je onemogočil/a emotikone %{target}"
disable_sign_in_token_auth_user_html: "%{name} je onemogočil/a overjanje z žetonom po e-pošti za uporabnika %{target}"
@@ -341,8 +284,9 @@ sl:
update_announcement_html: "%{name} je posodobil/a objavo %{target}"
update_custom_emoji_html: "%{name} je posodobil/a emotikone %{target}"
update_domain_block_html: "%{name} je posodobil/a domenski blok za %{target}"
+ update_ip_block_html: "%{name} je spremenil/a pravilo za IP %{target}"
update_status_html: "%{name} je posodobil/a objavo uporabnika %{target}"
- deleted_status: "(izbrisana objava)"
+ update_user_role_html: "%{name} je spremenil/a vlogo %{target}"
empty: Ni najdenih zapisnikov.
filter_by_action: Filtriraj po dejanjih
filter_by_user: Filtriraj po uporabnikih
@@ -386,6 +330,7 @@ sl:
listed: Navedeno
new:
title: Dodaj nove emotikone
+ no_emoji_selected: Noben emotikon ni bil spremenjen, ker noben ni bil izbran
not_permitted: Nimate pravic za izvedbo tega dejanja.
overwrite: Prepiši
shortcode: Kratka koda
@@ -677,6 +622,71 @@ sl:
unresolved: Nerešeni
updated_at: Posodobljeni
view_profile: Pokaži profil
+ roles:
+ add_new: Dodaj vlogo
+ assigned_users:
+ few: "%{count} uporabniki"
+ one: "%{count} uporabnik"
+ other: "%{count} uporabnikov"
+ two: "%{count} uporabnika"
+ categories:
+ administration: Upravljanje
+ devops: Razvojniki
+ invites: Povabila
+ moderation: Moderiranje
+ special: Posebno
+ delete: Izbriši
+ description_html: Z uporabniškimi vlogami lahko prilagodite, do katerih funkcij in področij Mastodona lahko dostopajo vaši uporabniki.
+ edit: Uredi vlogo %{name}
+ everyone: Privzete pravice
+ everyone_full_description_html: To je osnovna vloga , ki vpliva na vse uporabnike , celo na tiste brez dodeljene vloge. Vse druge vloge dedujejo njene pravice.
+ permissions_count:
+ few: "%{count} pravice"
+ one: "%{count} pravica"
+ other: "%{count} pravic"
+ two: "%{count} pravici"
+ privileges:
+ administrator: Skrbnik
+ administrator_description: Uporabniki s temi pravicami bodo zaobšli vse pravice
+ delete_user_data: Izbriši uporabniške podatke
+ delete_user_data_description: Omogoča uporabnikom, da izbrišejo podatke drugih uporabnikov brez časvnega zamika
+ invite_users: Povabi uporabnike
+ invite_users_description: Omogoča uporabnikom, da povabi nove osebe na strežnik
+ manage_announcements: Upravljaj obvestila
+ manage_announcements_description: Omogoča uporabnikom, da upravljajo obvestila na strežniku
+ manage_appeals: Upravljaj pritožbe
+ manage_appeals_description: Omogoča uporabnikom, da pregledajo pritožbe glede dejanj moderiranja
+ manage_blocks: Upravljaj blokirano
+ manage_blocks_description: Omogoča uporabnikom, da blokirajo ponudnike e-pošte in naslove IP
+ manage_custom_emojis: Upravljaj emotikone po meri
+ manage_custom_emojis_description: Omogoča uporabnikom, da upravljajo emotikone po meri na strežniku
+ manage_federation: Upravljaj beli seznam
+ manage_federation_description: Omogoča uporabnikom blokirati ali dovoljevati vstop na beli seznam z druimi domenami ter nadzirati dostavljivost
+ manage_invites: Upravljaj vabila
+ manage_invites_description: Omogoča uporabnikom, da brskajo in deaktivirajo povezave povabil
+ manage_reports: Upravljaj poročila
+ manage_reports_description: Omogoča uporabnikom, da pregledajo poročila in glede le-teh opravijo dejanja moderiranja
+ manage_roles: Upravljaj vloge
+ manage_roles_description: Omogoča uporabnikom upravljati in dodeljevati vloge pod svojo
+ manage_rules: Upravljaj pravila
+ manage_rules_description: Omogoča uporabnikom, da spremenijo pravila strežnika
+ manage_settings: Upravljaj nastavitve
+ manage_settings_description: Omogoča uporabnikom, da spremenijo nastavitve spletišča
+ manage_taxonomies: Upravljaj taksonomije
+ manage_taxonomies_description: Omogoča uporabnikom, da preverijo vsebino v trendu in posodobijo nastavitve ključnikov
+ manage_user_access: Upravljaj dostop uporabnikov
+ manage_user_access_description: Omogoča uporabnikom, da onemogočijo drugim uporabnikom dvofazno overjanje, spremenijo njihov e-naslov ter ponastavijo njihovo geslo
+ manage_users: Upravljaj uporabnike
+ manage_users_description: Omogoča uporabnikom, da vidijo podrobnosti drugih uporabnikov in nad njimi izvedejo dejanja moderiranja
+ manage_webhooks: Upravljaj spletne zanke
+ manage_webhooks_description: Omogoča uporabnikom, da vzpostavijo nove spletne zanke za skrbniške dogodke
+ view_audit_log: Pokaži revizijski zapisnik
+ view_audit_log_description: Omogoča, da uporabnik vidi zgodovino skrbniških opravil na strežniku
+ view_dashboard: Pokaži nadzorno ploščo
+ view_dashboard_description: Omogoča uporabnikom, da dostopajo do nadzorne plošče in različnih meritev
+ view_devops: Razvojniki
+ view_devops_description: Omogoča uporabnikom, da dostopajo do nadzornih plošč Sidekiq in phHero
+ title: Vloge
rules:
add_new: Dodaj pravilo
delete: Izbriši
@@ -685,108 +695,66 @@ sl:
empty: Zaenkrat še ni opredeljenih pravil.
title: Pravila strežnika
settings:
- activity_api_enabled:
- desc_html: Številke lokalno objavljenih objav, aktivnih uporabnikov in novih registracij na tedenskih seznamih
- title: Objavi združeno statistiko o dejavnosti uporabnikov
- bootstrap_timeline_accounts:
- desc_html: Več uporabniških imen ločite z vejico. Deluje samo na lokalnih in odklenjenih računih. Privzeto, ko je prazno, je pri vseh lokalnih skrbnikih.
- title: Privzeta sledenja za nove uporabnike
- contact_information:
- email: Poslovna e-pošta
- username: Uporabniško ime stika
- custom_css:
- desc_html: Spremeni videz z naloženim CSS na vsaki strani
- title: CSS po meri
- default_noindex:
- desc_html: Vpliva na vse uporabnike, ki niso sami spremenili te nastavitve
- title: Privzeto izvzemi uporabnike iz indeksiranja iskalnika
+ about:
+ manage_rules: Upravljaj pravila strežnika
+ preamble: Podrobneje opišite, kako upravljate, moderirate in financirate strežnik.
+ rules_hint: Na voljo je poseben prostor za pravila, ki jih naj spoštujejo vaši uporabniki.
+ title: O programu
+ appearance:
+ preamble: Prilagodite spletni vmesnik Mastodona.
+ title: Videz
+ branding:
+ preamble: Blagovna znamka vašega strežnika ga loči od drugih strežnikov v omrežju. Podatki se lahko prikžejo prek številnih okolij, kot so spletni vmesnik Mastodona, domorodni programi, predogledi povezav na drugih spletiščih, aplikacije za sporočanje itn. Zatorej je najbolje, da te podatke ohranite jasne, kratke in pomenljive.
+ title: Blagovne znamke
+ content_retention:
+ preamble: Nazdor nad hrambo vsebine uporabnikov v Mastodonu.
+ title: Hramba vsebin
+ discovery:
+ follow_recommendations: Sledi priporočilom
+ preamble: Izpostavljanje zanimivih vsebin je ključno za pridobivanje novih uporabnikov, ki morda ne poznajo nikogar na Mastodonu. Nadzirajte, kako različne funkcionalnosti razkritja delujejo na vašem strežniku.
+ profile_directory: Imenik profilov
+ public_timelines: Javne časovnice
+ title: Razkrivanje
+ trends: Trendi
domain_blocks:
all: Vsem
disabled: Nikomur
- title: Domenske bloke pokaži
users: Prijavljenim krajevnim uporabnikom
- domain_blocks_rationale:
- title: Pokaži razlago
- hero:
- desc_html: Prikazano na sprednji strani. Priporoča se vsaj 600x100px. Ko ni nastavljen, se vrne na sličico strežnika
- title: Slika junaka
- mascot:
- desc_html: Prikazano na več straneh. Priporočena je najmanj 293 × 205 px. Ko ni nastavljen, se vrne na privzeto maskoto
- title: Slika maskote
- peers_api_enabled:
- desc_html: Domene, na katere je ta strežnik naletel na fediverse-u
- title: Objavi seznam odkritih strežnikov
- preview_sensitive_media:
- desc_html: Predogledi povezav na drugih spletiščih bodo prikazali sličico, tudi če je medij označen kot občutljiv
- title: Prikaži občutljive medije v predogledih OpenGraph
- profile_directory:
- desc_html: Dovoli uporabnikom, da jih lahko odkrijejo
- title: Omogoči imenik profilov
registrations:
- closed_message:
- desc_html: Prikazano na prvi strani, ko so registracije zaprte. Lahko uporabite oznake HTML
- title: Sporočilo o zaprti registraciji
- deletion:
- desc_html: Dovoli vsakomur, da izbriše svoj račun
- title: Odpri brisanje računa
- min_invite_role:
- disabled: Nihče
- title: Dovoli vabila od
- require_invite_text:
- desc_html: Če registracije zahtevajo ročno potrditev, nastavite vnos besedila pod »Zakaj se želite pridružiti?« za obveznega
- title: Zahteva, da novi uprorabniki navedejo razlog, zakaj se želijo registrirati
+ preamble: Nadzirajte, kdo lahko ustvari račun na vašem strežniku.
+ title: Registracije
registrations_mode:
modes:
approved: Potrebna je odobritev za prijavo
none: Nihče se ne more prijaviti
open: Vsakdo se lahko prijavi
- title: Način registracije
- show_known_fediverse_at_about_page:
- desc_html: Ko preklopite, bo prikazal objave vseh znanih fediverzumov v predogledu. V nasprotnem primeru bodo prikazane samo krajevne objave.
- title: Pokaži znane fediverse-e v predogledu časovnice
- show_staff_badge:
- desc_html: Prikaži značko osebja na uporabniški strani
- title: Prikaži značko osebja
- site_description:
- desc_html: Uvodni odstavek na API-ju. Opišite, zakaj je ta Mastodon strežnik poseben in karkoli pomembnega. Lahko uporabite HTML oznake, zlasti <a>
in <em>
.
- title: Opis strežnika
- site_description_extended:
- desc_html: Dober kraj za vaš kodeks ravnanja, pravila, smernice in druge stvari, ki ločujejo vaš strežnik. Lahko uporabite oznake HTML
- title: Razširjene informacije po meri
- site_short_description:
- desc_html: Prikazano v stranski vrstici in metaoznakah. V enem odstavku opišite, kaj je Mastodon in kaj naredi ta strežnik poseben.
- title: Kratek opis strežnika
- site_terms:
- desc_html: Lahko napišete svojo pravilnik o zasebnosti, pogoje storitve ali druge pravne dokumente. Lahko uporabite oznake HTML
- title: Pogoji storitve po meri
- site_title: Ime strežnika
- thumbnail:
- desc_html: Uporablja se za predogled prek OpenGrapha in API-ja. Priporočamo 1200x630px
- title: Sličica strežnika
- timeline_preview:
- desc_html: Prikaži javno časovnico na ciljni strani
- title: Predogled časovnice
- title: Nastavitve strani
- trendable_by_default:
- desc_html: Velja za ključnike, ki niso bili poprej onemogočeni
- title: Dovoli, da so ključniki v trendu brez predhodnega pregleda
- trends:
- desc_html: Javno prikaži poprej pregledano vsebino, ki je trenutno v trendu
- title: Trendi
+ title: Nastavitve strežnika
site_uploads:
delete: Izbriši naloženo datoteko
destroyed_msg: Prenos na strežnik uspešno izbrisan!
statuses:
+ account: Avtor
+ application: Program
back_to_account: Nazaj na stran računa
back_to_report: Nazaj na stran prijave
batch:
remove_from_report: Odstrani iz prijave
report: Poročaj
deleted: Izbrisano
+ favourites: Priljubljeni
+ history: Zgodovina različic
+ in_reply_to: Odgovarja
+ language: Jezik
media:
title: Mediji
+ metadata: Metapodatki
no_status_selected: Nobena objava ni bila spremenjena, ker ni bila nobena izbrana
+ open: Odpri objavo
+ original_status: Izvorna objava
+ status_changed: Objava spremenjena
title: Objave računa
+ trending: V trendu
+ visibility: Vidnost
with_media: Z mediji
strikes:
actions:
@@ -826,6 +794,9 @@ sl:
description_html: To so povezave, ki jih trenutno veliko delijo računi, iz katerih vaš strežnik vidi objave. Vašim uporabnikom lahko pomaga izvedeti, kaj se dogaja po svetu. Nobene povezave niso javno prikazane, dokler ne odobrite izdajatelja. Posamezne povezave lahko tudi dovolite ali zavrnete.
disallow: Ne dovoli povezave
disallow_provider: Ne dovoli izdajatelja
+ no_link_selected: Nobena povezava ni bila spremenjena, ker nobena ni bila izbrana
+ publishers:
+ no_publisher_selected: Noben izdajatelj ni bil spremenjen, ker noben ni bila izbran
shared_by_over_week:
few: Delile %{count} osebe v zadnjem tednu
one: Delila %{count} oseba v zadnjem tednu
@@ -847,6 +818,7 @@ sl:
description_html: To so objave, za katere vaš strežnik ve, da so trenutno v skupni rabi in med priljubljenimi. Vašim novim uporabnikom in uporabnikom, ki se vračajo, lahko pomaga najti več oseb, ki jim bodo sledili. Nobena objava ni javno prikazana, dokler avtorja ne odobrite in avtor ne dovoli, da se njegov račun predlaga drugim. Posamezne objave lahko tudi dovolite ali zavrnete.
disallow: Ne dovoli objave
disallow_account: Ne dovoli avtorja
+ no_status_selected: Nobena trendna objava ni bila spremenjena, ker ni bila nobena izbrana
not_discoverable: Avtor ni dovolil, da bi ga bilo moč odkriti
shared_by:
few: Deljeno ali priljubljeno %{friendly_count}-krat
@@ -864,6 +836,7 @@ sl:
tag_uses_measure: uporab skupaj
description_html: To so ključniki, ki se trenutno pojavljajo v številnih objavah, ki jih vidi vaš strežnik. Uporabnikom lahko pomaga ugotoviti, o čem ljudje trenutno največ govorijo. Noben ključnik ni javno prikazan, dokler ga ne odobrite.
listable: Je moč predlagati
+ no_tag_selected: Nobena značka ni bila spremenjena, ker nobena ni bila izbrana
not_listable: Ne bo predlagano
not_trendable: Se ne bo pojavilo med trendi
not_usable: Ni mogoče uporabiti
@@ -886,6 +859,28 @@ sl:
edit_preset: Uredi prednastavitev opozoril
empty: Zaenkrat še niste določili nobenih opozorilnih prednastavitev.
title: Upravljaj prednastavitev opozoril
+ webhooks:
+ add_new: Dodaj končno točko
+ delete: Izbriši
+ description_html: "Spletna zanka omogoča, da Mastodon potiska obvestila v resničnem času o izbranih dogodkih vašemu programu, tako da ta lahko samodejno proži odzive ."
+ disable: Onemogoči
+ disabled: Onemogočeno
+ edit: Uredi končno točko
+ empty: Zaenkrat še nimate prilagojenih končnih točk spletnih zank.
+ enable: Omogoči
+ enabled: Dejaven
+ enabled_events:
+ few: "%{count} omogočeni dogodki"
+ one: "%{count} omogočen dogodek"
+ other: "%{count} omogočenih dogodkov"
+ two: "%{count} omogočena dogodka"
+ events: Dogodki
+ new: Nova spletna zanka
+ rotate_secret: Zasukaj skrivnost
+ secret: Skrivnost podpisovanja
+ status: Stanje
+ title: Spletne zanke
+ webhook: Spletna zanka
admin_mailer:
new_appeal:
actions:
@@ -909,12 +904,8 @@ sl:
new_trends:
body: 'Naslednji elementi potrebujejo pregled, preden jih je možno javno prikazati:'
new_trending_links:
- no_approved_links: Trenutno ni odobrenih povezav v trendu.
- requirements: Vsak od teh kandidatov bi lahko presegel odobreno povezavo v trendu št. %{rank}, ki je trenutno %{lowest_link_title} z rezultatom %{lowest_link_score}.
title: Povezave v trendu
new_trending_statuses:
- no_approved_statuses: Trenutno ni odobrenih objav v trendu.
- requirements: Vsak od teh kandidatov bi lahko presegel odobreno trendno objavo št. %{rank}, ki je trenutno %{lowest_status_url} z rezultatom %{lowest_status_score}.
title: Trendne objave
new_trending_tags:
no_approved_tags: Trenutno ni odobrenih ključnikov v trendu.
@@ -950,16 +941,13 @@ sl:
applications:
created: Aplikacija je bila uspešno ustvarjena
destroyed: Aplikacija je bila uspešno izbrisana
- invalid_url: Navedeni URL je neveljaven
regenerate_token: Obnovite dostopni žeton
token_regenerated: Dostopni žeton je bil uspešno regeneriran
warning: Bodite zelo previdni s temi podatki. Nikoli jih ne delite z nikomer!
your_token: Vaš dostopni žeton
auth:
- apply_for_account: Zahtevajte povabilo
+ apply_for_account: Vpišite se na čakalni seznam
change_password: Geslo
- checkbox_agreement_html: Strinjam se s pravili strežnika in pogoji storitve
- checkbox_agreement_without_rules_html: Strinjam se s pogoji storitve
delete_account: Izbriši račun
delete_account_html: Če želite izbrisati svoj račun, lahko nadaljujete tukaj . Prosili vas bomo za potrditev.
description:
@@ -978,6 +966,7 @@ sl:
migrate_account: Premakni se na drug račun
migrate_account_html: Če želite ta račun preusmeriti na drugega, ga lahko nastavite tukaj .
or_log_in_with: Ali se prijavite z
+ privacy_policy_agreement_html: Prebral_a sem in se strinjam s pravilnikom o zasebnosti .
providers:
cas: CAS
saml: SAML
@@ -985,12 +974,18 @@ sl:
registration_closed: "%{instance} ne sprejema novih članov"
resend_confirmation: Ponovno pošlji navodila za potrditev
reset_password: Ponastavi geslo
+ rules:
+ preamble: Slednje določajo in njihovo spoštovanje zagotavljajo moderatorji %{domain}.
+ title: Nekaj osnovnih pravil.
security: Varnost
set_new_password: Nastavi novo geslo
setup:
email_below_hint_html: Če spodnji e-poštni naslov ni pravilen, ga lahko spremenite tukaj in prejmete novo potrditveno e-pošto.
email_settings_hint_html: Potrditvena e-pošta je bila poslana na %{email}. Če ta e-poštni naslov ni pravilen, ga lahko spremenite v nastavitvah računa.
title: Nastavitev
+ sign_up:
+ preamble: Z računom na strežniku Mastodon boste lahko sledili vsem drugim v tem omrežju, ne glede na to, kje gostuje njihov račun.
+ title: Naj vas namestimo na %{domain}.
status:
account_status: Stanje računa
confirming: Čakanje na potrditev e-pošte.
@@ -999,7 +994,6 @@ sl:
redirecting_to: Vaš račun ni dejaven, ker trenutno preusmerja na račun %{acct}.
view_strikes: Pokaži pretekle ukrepe proti mojemu računu
too_fast: Obrazec oddan prehitro, poskusite znova.
- trouble_logging_in: Težave pri prijavi?
use_security_key: Uporabi varnostni ključ
authorize_follow:
already_following: Temu računu že sledite
@@ -1057,10 +1051,6 @@ sl:
more_details_html: Za podrobnosti glejte politiko zasebnosti .
username_available: Vaše uporabniško ime bo znova na voljo
username_unavailable: Vaše uporabniško ime še vedno ne bo na voljo
- directories:
- directory: Imenik profilov
- explanation: Odkrijte uporabnike glede na njihove interese
- explore_mastodon: Razišči %{title}
disputes:
strikes:
action_taken: Izvedeno dejanje
@@ -1139,29 +1129,72 @@ sl:
public: Javne časovnice
thread: Pogovori
edit:
+ add_keyword: Dodaj ključno besedo
+ keywords: Ključne besede
+ statuses: Posamezne objave
+ statuses_hint_html: Ta filter velja za izbrane posamezne objave, ne glede na to, ali se ujemajo s spodnjimi ključnimi besedami. Preglejte ali odstarnite objave iz filtra .
title: Uredite filter
errors:
+ deprecated_api_multiple_keywords: Teh parametrov ni mogoče spremeniti iz tega programa, ker veljajo za več kot eno ključno besedo filtra. Uporabite novejšo izdaj programa ali spletni vmesnik.
invalid_context: Ne vsebuje nobenega ali vsebuje neveljaven kontekst
- invalid_irreversible: Nepovratno filtriranje deluje le v kontekstu doma ali obvestil
index:
+ contexts: Filtri v %{contexts}
delete: Izbriši
empty: Nimate filtrov.
+ expires_in: Poteče čez %{distance}
+ expires_on: Poteče %{date}
+ keywords:
+ few: "%{count} ključne besede"
+ one: "%{count} ključna beseda"
+ other: "%{count} ključnih besed"
+ two: "%{count} ključni besedi"
+ statuses:
+ few: "%{count} objave"
+ one: "%{count} objava"
+ other: "%{count} objav"
+ two: "%{count} objavi"
+ statuses_long:
+ few: "%{count} posamezne objave skrite"
+ one: "%{count} posamezna objava skrita"
+ other: "%{count} posameznih objav skritih"
+ two: "%{count} posamezni objavi skriti"
title: Filtri
new:
+ save: Shrani nov filter
title: Dodaj nov filter
+ statuses:
+ back_to_filter: Nazaj na filter
+ batch:
+ remove: Odstrani iz filtra
+ index:
+ hint: Ta filter se nanaša na posamezne objave ne glede na druge pogoje. Filtru lahko dodate več objav prek spletnega vmesnika.
+ title: Filtrirane objave
footer:
- developers: Razvijalci
- more: Več…
- resources: Viri
trending_now: Zdaj v trendu
generic:
all: Vse
+ all_items_on_page_selected_html:
+ few: Na tej strani so izbrani %{count} elementi.
+ one: Na tej strani je izbran %{count} element.
+ other: Na tej strani je izbranih %{count} elementov.
+ two: Na tej strani sta izbrana %{count} elementa.
+ all_matching_items_selected_html:
+ few: Izbrani so %{count} elementi, ki ustrezajo vašemu iskanju.
+ one: Izbran je %{count} element, ki ustreza vašemu iskanju.
+ other: Izbranih je %{count} elementov, ki ustrezajo vašemu iskanju.
+ two: Izbrana sta %{count} elementa, ki ustrezata vašemu iskanju.
changes_saved_msg: Spremembe so uspešno shranjene!
copy: Kopiraj
delete: Izbriši
+ deselect: Prekliči ves izbor
none: Brez
order_by: Razvrsti po
save_changes: Shrani spremembe
+ select_all_matching_items:
+ few: Izberite %{count} elemente, ki ustrezajo vašemu iskanju.
+ one: Izberite %{count} element, ki ustreza vašemu iskanju.
+ other: Izberite %{count} elementov, ki ustrezajo vašemu iskanju.
+ two: Izberite %{count} elementa, ki ustrezata vašemu iskanju.
today: danes
validation_errors:
few: Nekaj še ni čisto v redu! Spodaj si oglejte %{count} napake
@@ -1187,7 +1220,6 @@ sl:
following: Seznam uporabnikov, katerim sledite
muting: Seznam utišanih
upload: Pošlji
- in_memoriam_html: V spomin.
invites:
delete: Onemogoči
expired: Poteklo
@@ -1270,23 +1302,10 @@ sl:
copy_account_note_text: 'Ta uporabnik se je preselil iz %{acct}, tukaj so vaše poprejšnje opombe o njem:'
notification_mailer:
admin:
+ report:
+ subject: "%{name} je oddal/a prijavo"
sign_up:
subject: "%{name} se je vpisal/a"
- digest:
- action: Prikaži vsa obvestila
- body: Tukaj je kratek povzetek sporočil, ki ste jih zamudili od vašega zadnjega obiska v %{since}
- mention: "%{name} vas je omenil/a v:"
- new_followers_summary:
- few: Prav tako ste pridobili %{count} nove sledilce, ko ste bili odsotni! Juhu!
- one: Prav tako ste pridobili enega novega sledilca, ko ste bili odsotni! Juhu!
- other: Prav tako ste pridobili %{count} novih sledilcev, ko ste bili odsotni! Juhu!
- two: Prav tako ste pridobili %{count} nova sledilca, ko ste bili odsotni! Juhu!
- subject:
- few: "%{count} nova obvestila od vašega zadnjega obiska 🐘"
- one: "%{count} novo obvestilo od vašega zadnjega obiska 🐘"
- other: "%{count} novih obvestil od vašega zadnjega obiska 🐘"
- two: "%{count} novi obvestili od vašega zadnjega obiska 🐘"
- title: V vaši odsotnosti...
favourite:
body: "%{name} je vzljubil/a vašo objavo:"
subject: "%{name} je vzljubil/a vašo objavo"
@@ -1358,6 +1377,8 @@ sl:
other: Ostalo
posting_defaults: Privzete nastavitev objavljanja
public_timelines: Javne časovnice
+ privacy_policy:
+ title: Pravilnik o zasebnosti
reactions:
errors:
limit_reached: Dosežena omejitev različnih reakcij/odzivov
@@ -1380,22 +1401,7 @@ sl:
remove_selected_follows: Prenehaj slediti izbranim uporabnikom
status: Stanje računa
remote_follow:
- acct: Vnesite uporabniško_ime@domena, iz katerega želite delovati
missing_resource: Za vaš račun ni bilo mogoče najti zahtevanega URL-ja za preusmeritev
- no_account_html: Še nimate računa? Tukaj se lahko prijavite
- proceed: Nadaljujte
- prompt: 'Sledili boste:'
- reason_html: "Zakaj je ta korak potreben? %{instance}
morda ni strežnik, kjer ste registrirani, zato vas moramo najprej preusmeriti na domači strežnik."
- remote_interaction:
- favourite:
- proceed: Nadaljuj s priljubljenim
- prompt: 'Želite vzljubiti to objavo:'
- reblog:
- proceed: Nadaljuj s izpostavljanjem
- prompt: 'Želite izpostaviti to objavo:'
- reply:
- proceed: Nadaljuj z odgovorom
- prompt: 'Želite odgovoriti na to objavo:'
reports:
errors:
invalid_rules: se ne sklicuje na veljavna pravila
@@ -1579,89 +1585,6 @@ sl:
too_late: Prepozno je, da bi se pritožili na ta ukrep
tags:
does_not_match_previous_name: se ne ujema s prejšnjim imenom
- terms:
- body_html: |
- Politika zasebnosti
- Katere vrste podatkov zbiramo?
-
-
- Osnovni podatki o računu : Če se registrirate na tem strežniku, boste morda morali vnesti uporabniško ime, e-poštni naslov in geslo. Vnesete lahko tudi dodatne informacije o profilu, npr. pojavno ime in biografijo, ter naložite sliko profila in sliko glave. Uporabniško ime, pojavno ime, biografija, slika profila in slika glave so vedno javno dostopni.
- Objave, sledenja in druge javne informacije : Seznam oseb, ki jim sledite, je javno dostopen, enako velja za vaše sledilce. Ko pošljete sporočilo, sta datum in čas shranjena, kot tudi aplikacija, iz katere ste poslali sporočilo. Sporočila lahko vsebujejo medijske priloge, kot so slike in videoposnetki. Javne in neprikazane objave so javno dostopne. Ko v profilu vključite objavo, je to tudi javno dostopna informacija. Vaše objave, ki so dostavljene vašim sledilcem, so včasih dostavljeni na različne strežnike, kjer se kopije objav tudi shranijo. Ko izbrišete objave, se to prav tako dostavi vašim sledilcem. Spodbujanje in vzljubitev drugih objav sta vedno javni.
- Neposredne objave in objave samo za sledilce : Vse objave so shranjene in obdelane na strežniku. Objave samo za sledilce se dostavijo vašim sledilcem in uporabnikom, ki so v njih omenjeni. Neposredne objave se posredujejo samo uporabnikom, ki so v njih omenjeni. V nekaterih primerih so dostavljeni na različne strežnike, kopije pa se shranijo tam. V dobri veri si prizadevamo omejiti dostop do teh objav samo pooblaščenim osebam, vendar drugi strežniki to morda ne bodo storili. Zato je pomembno, da pregledate strežnike, na katerih so sledilci. V nastavitvah lahko preklapljate med možnostmi za odobritev in zavrnitev novih sledilcev. Ne pozabite, da lahko operaterji strežnika in poljubni prejemni strežnik takšna sporočila pregledajo in da jih lahko prejemniki poslikajo, kopirajo ali drugače ponovno delijo. Ne pošiljajte občutljivih informacij skozi Mastodon.
- IP-ji in drugi metapodatki : Ko se prijavite, zabeležimo naslov IP, s katerega se prijavljate, in ime aplikacije brskalnika. V nastavitvah so za pregled in preklic na voljo vse prijavljene seje. Zadnji uporabljeni IP naslov je shranjen največ 12 mesecev. Prav tako lahko obdržimo dnevnike strežnikov, ki vsebujejo IP-naslov vsake zahteve na naš strežnik.
-
-
-
-
- Za kaj uporabljamo vaše podatke?
-
- Vse informacije, ki jih zbiramo od vas, so lahko uporabljene na naslednje načine:
-
-
- Za zagotavljanje osrednje funkcionalnosti Mastodona. Komunicirate lahko z vsebino drugih oseb in objavljate lastno vsebino, ko ste prijavljeni. Primer: spremljate lahko druge osebe in si ogledate njihove kombinirane objave v svoji prilagojeni domači časovnici.
- Za pomoč pri moderiranju skupnosti, npr. primerjavo vašega naslova IP z drugimi znanimi za ugotavljanje izmikanja prepovedim ali drugih kršitev.
- E-poštni naslov, ki ga navedete, se lahko uporabi za pošiljanje informacij, obvestil o drugih osebah, ki komunicirajo z vašo vsebino ali vam pošiljajo sporočila, ter za odzivanje na poizvedbe in/ali druge zahteve ali vprašanja.
-
-
-
-
- Kako zaščitimo vaše podatke?
-
- Za ohranitev varnosti vaših osebnih podatkov izvajamo različne varnostne ukrepe, ko vnašate, pošiljate ali dostopate do vaših osebnih podatkov. Med drugim je seja brskalnika, pa tudi promet med vašimi aplikacijami in API-jem zaščitena s SSL-jem, geslo pa je zgoščeno z uporabo močnega enosmernega algoritma. Če želite omogočiti varen dostop do računa, lahko omogočite dvofaktorsko preverjanje pristnosti.
-
-
-
- Kakšna je naša politika hrambe podatkov?
-
- Prizadevali si bomo za:
-
-
- Shranjevanje dnevnikov strežnikov, ki vsebujejo naslov IP vseh zahtev za ta strežnik, če so hranjeni, največ 90 dni.
- Obdržiitev naslovov IP, povezanih z registriranimi uporabniki, ne več kot 12 mesecev.
-
-
- Lahko zahtevate in prenesete arhiv vaše vsebine, vključno z objavami, predstavnostnimi prilogami, sliko profila in sliko glave.
-
- Račun lahko kadar koli nepovratno izbrišete.
-
-
-
- Ali uporabljamo piškotke?
-
- Da. Piškotki so majhne datoteke, ki jih spletno mesto ali njegov ponudnik storitev prenese na trdi disk vašega računalnika prek spletnega brskalnika (če dovolite). Ti piškotki omogočajo, da spletno mesto prepozna vaš brskalnik in ga, če imate registriran račun, povežete z vašim registriranim računom.
-
- Piškotke uporabljamo za razumevanje in shranjevanje vaših nastavitev za prihodnje obiske.
-
-
-
- Ali razkrivamo informacije zunanjim strankam?
-
- Vaših osebnih podatkov ne prodajamo, preprodajamo ali kako drugače posredujemo tretjim osebam. To ne vključuje zaupanja vrednih tretjih oseb, ki nam pomagajo pri upravljanju naše spletne strani, vodenju našega poslovanja ali storitev, če se te strani strinjajo, da bodo te informacije zaupne. Vaše podatke lahko tudi objavimo, če menimo, da je objava ustrezna in v skladu z zakonom, uveljavlja pravilnike o spletnih mestih ali ščiti naše ali druge pravice, lastnino ali varnost.
-
- Vaše javne vsebine lahko prenesejo drugi strežniki v omrežju. Vaše objave in objave samo za sledilce so dostavljene na strežnike, na katerih prebivajo vaši sledilci, in neposredna sporočila so dostavljena na strežnike prejemnikov, če so ti sledilci ali prejemniki na drugem strežniku.
-
- Ko odobrite aplikacijo za uporabo vašega računa, lahko glede na obseg dovoljenj, ki jih odobravate, dostopa do vaših javnih podatkov o profilu, seznama osebam, ki jim sledite, vaših sledilcev, seznamov, vseh vaših objav in priljubljenih. Aplikacije ne morejo nikoli dostopati do vašega e-poštnega naslova ali gesla.
-
-
-
- Uporaba spletišča s strani otrok
-
- Če je ta strežnik v EU ali EEA: Naše spletno mesto, izdelki in storitve so namenjeni ljudem, ki so stari vsaj 16 let. Če ste mlajši od 16 let, po zahtevah GDPR (General Data Protection Regulation ) ne uporabljajte tega spletnega mesta. (General Data Protection Regulation ).
-
- Če je ta strežnik v ZDA: Naše spletno mesto, izdelki in storitve so namenjeni ljudem, ki so stari vsaj 13 let. Če ste mlajši od 13 let, po zahtevah COPPA (Children's Online Privacy Protection Act ), ne uporabljajte tega spletnega mesta.
-
- Če je ta strežnik v drugi jurisdikciji, so lahko zakonske zahteve drugačne.
-
-
-
- Spremembe naše politike zasebnosti
-
- Če se odločimo za spremembo našega pravilnika o zasebnosti, bomo te spremembe objavili na tej strani.
-
- Ta dokument je CC-BY-SA. Zadnja posodobitev je bila 7. marca 2018.
-
- Prvotno je bila prilagojena v skladu s politiko zasebnost Discourse .
- title: "%{instance} Pogoji storitve in pravilnik o zasebnosti"
themes:
contrast: Mastodon (Visok kontrast)
default: Mastodon (Temna)
@@ -1740,20 +1663,13 @@ sl:
suspend: Račun je suspendiran
welcome:
edit_profile_action: Nastavitve profila
- edit_profile_step: Profil lahko prilagodite tako, da naložite podobo, glavo, spremenite prikazno ime in drugo. Če želite pregledati nove sledilce, preden jim dovolite sledenje, lahko zaklenete svoj račun.
+ edit_profile_step: Profil lahko prilagodite tako, da naložite sliko profila, spremenite pojavno ime in drugo. Lahko izberete, da želite pregledati nove sledilce, preden jim dovolite sledenje.
explanation: Tu je nekaj nasvetov za začetek
final_action: Začnite objavljati
- final_step: 'Začnite objavljati! Tudi brez sledilcev bodo vaša javna sporočila videli drugi, na primer na lokalni časovnici in v ključnikih. Morda se želite predstaviti s ključnikom #introductions.'
+ final_step: 'Začnite objavljati! Tudi brez sledilcev bodo vaše javne objave videli drugi, npr. na krajevni časovnici ali v ključnikih. Morda se želite predstaviti s ključnikom #introductions.'
full_handle: Vaša polna ročica
full_handle_hint: To bi povedali svojim prijateljem, da vam lahko pošljejo sporočila ali vam sledijo iz drugega strežnika.
- review_preferences_action: Spremenite nastavitve
- review_preferences_step: Poskrbite, da določite svoje nastavitve, na primer, katera e-poštna sporočila želite prejemati ali katere privzete ravni zasebnosti bodo imele vaše objave. Če nimate potovalne slabosti, lahko omogočite samodejno predvajanje GIF-ov.
subject: Dobrodošli na Mastodon
- tip_federated_timeline: Združena časovnica je pogled na mrežo Mastodona. Vključuje pa samo ljudi, na katere so naročeni vaši sosedje, zato ni popolna.
- tip_following: Privzeto sledite skrbnikom strežnika. Če želite najti več zanimivih ljudi, preverite lokalne in združene časovnice.
- tip_local_timeline: Lokalna časovnica je strežniški pogled ljudi na %{instance}. To so vaši neposredni sosedje!
- tip_mobile_webapp: Če vam mobilni brskalnik ponuja, da dodate Mastodon na domači zaslon, lahko prejmete potisna obvestila. Deluje kot lastna aplikacija na več načinov!
- tips: Nasveti
title: Dobrodošli, %{name}!
users:
follow_limit_reached: Ne morete spremljati več kot %{limit} ljudi
diff --git a/config/locales/sq.yml b/config/locales/sq.yml
index 8974b9c841..8010f49303 100644
--- a/config/locales/sq.yml
+++ b/config/locales/sq.yml
@@ -1,94 +1,27 @@
---
sq:
about:
- about_hashtag_html: Këto janë mesazhe publike të etiketuara me #%{hashtag} . Mundeni të ndërveproni me ta, nëse keni një llogari kudo qoftë në fedivers.
about_mastodon_html: 'Rrjeti shoqëror i së ardhmes: Pa reklama, pa survejim nga korporata, konceptim etik dhe decentralizim! Jini zot i të dhënave tuaja, me Mastodon-in!'
- about_this: Mbi
- active_count_after: aktive
- active_footnote: Përdorues Aktivë Mujorë (PAM)
- administered_by: 'Administruar nga:'
- api: API
- apps: Aplikacione për celular
- apps_platforms: Përdoreni Mastodon-in prej iOS-i, Android-i dhe platformash të tjera
- browse_directory: Shfletoni një drejtori profilesh dhe filtrojeni sipas interesash
- browse_local_posts: Shfletoni një rrjedhë të drejtpërdrejtë postimesh publike nga ky shërbyes
- browse_public_posts: Shfletoni një rrjedhë të drejtpërdrejtë postimesh publike në Mastodon
- contact: Kontakt
contact_missing: I parregulluar
contact_unavailable: N/A
- continue_to_web: Vazhdoni te aplikacioni web
- discover_users: Zbuloni përdorues
- documentation: Dokumentim
- federation_hint_html: Me një llogari në %{instance}, do të jeni në gjendje të ndiqni persona në çfarëdo shërbyesi Mastodon dhe më tej.
- get_apps: Provoni një aplikacion për celular
hosted_on: Mastodon i strehuar në %{domain}
- instance_actor_flash: |
- Kjo llogari është një aktor virtual i përdorur për të përfaqësuar vetë shërbyesin dhe jo ndonjë përdorues individual.
- Përdoret për qëllime federimi dhe s’duhet bllokuar, veç në daçi të bllokoni krejt instancën, me ç’rast do të duhej të përdornit bllokim përkatësie.
- learn_more: Mësoni më tepër
- logged_in_as_html: Aktualisht jeni i futur si %{username}.
- logout_before_registering: Jeni i futur tashmë.
- privacy_policy: Rregulla privatësie
- rules: Rregulla shërbyesi
- rules_html: 'Më poshtë keni një përmbledhje të rregullave që duhet të ndiqni, nëse doni të keni një llogari në këtë shërbyes Mastodon:'
- see_whats_happening: Shihni ç'ndodh
- server_stats: 'Statistika shërbyesi:'
- source_code: Kod burim
- status_count_after:
- one: mesazh
- other: mesazhe
- status_count_before: Që kanë krijuar
- tagline: Ndiqni shokë dhe zbuloni të rinj
- terms: Kushte shërbimi
- unavailable_content: Shërbyes të moderuar
- unavailable_content_description:
- domain: Shërbyes
- reason: Arsye
- rejecting_media: 'Kartelat media prej këtyre shërbyesve s’do të përpunohen apo depozitohen, dhe s’do të shfaqet ndonjë miniaturë, duke kërkuar kështu doemos klikim dorazi te kartela origjinale:'
- rejecting_media_title: Media e filtruar
- silenced: 'Postimet prej këtyre shërbyesve do të jenë të fshehura në rrjedha kohore dhe biseda publike, dhe prej ndërveprimeve të përdoruesve të tyre s’do të prodhohen njoftime, veç në i ndjekshi:'
- silenced_title: Shërbyes të heshtuar
- suspended: 'Prej këtyre shërbyesve s’do të përpunohen, depozitohen apo shkëmbehen të dhëna, duke e bërë të pamundur çfarëdo ndërveprimi apo komunikimi me përdorues prej këtyre shërbyesve:'
- suspended_title: Shërbyes të pezulluar
- unavailable_content_html: Mastodon-i përgjithësisht ju lejon të shihni lëndë nga përdorues dhe të ndërveproni me të tillë prej cilitdo shërbyes në fedivers. Këto janë përjashtimet që janë bërë në këtë shërbyes.
- user_count_after:
- one: përdorues
- other: përdorues
- user_count_before: Shtëpi e
- what_is_mastodon: Ç’është Mastodon-i?
+ title: Mbi
accounts:
- choices_html: 'Zgjedhje të %{name}:'
- endorsements_hint: Mund t’i mbështesni personat që nga ndërfaqja web, dhe do të shfaqen këtu.
- featured_tags_hint: Mund të zgjidhni hashtag-ë të veçantë që do të shfaqen këtu.
follow: Ndiqeni
followers:
one: Ndjekës
other: Ndjekës
following: Ndjekje
instance_actor_flash: Kjo llogari është një aktor virtual, i përdorur për të përfaqësuar vetë shërbyesin dhe jo ndonjë përdorues individual. Përdoret për qëllime federimi dhe s’duhet pezulluar.
- joined: U bë pjesë më %{date}
last_active: aktiv së fundi
link_verified_on: Pronësia e kësaj lidhjeje qe kontrolluar më %{date}
- media: Media
- moved_html: "%{name} ka kaluar te %{new_profile_link}:"
- network_hidden: Këto të dhëna s’janë të passhme
nothing_here: S’ka gjë këtu!
- people_followed_by: Persona të ndjekur nga %{name}
- people_who_follow: Persona që ndjekin %{name}
pin_errors:
following: Personin që doni të pasqyroni, duhet ta keni ndjekur tashmë
posts:
one: Mesazh
other: Mesazhe
posts_tab_heading: Mesazhe
- posts_with_replies: Mesazhe dhe përgjigje
- roles:
- admin: Përgjegjës
- bot: Robot
- group: Grup
- moderator: Moderator
- unavailable: Profil jashtë funksionimi
- unfollow: Resht së ndjekuri
admin:
account_actions:
action: Kryeje veprimin
@@ -105,12 +38,17 @@ sq:
avatar: Avatar
by_domain: Përkatësi
change_email:
- changed_msg: Email-i i llogarisë u ndryshua me sukses!
+ changed_msg: Email-i u ndryshua me sukses!
current_email: Email-i i tanishëm
label: Ndrysho email-in
new_email: Email i ri
submit: Ndrysho email-in
title: Ndrysho email-in për %{username}
+ change_role:
+ changed_msg: Roli u ndryshua me sukses!
+ label: Ndryshoni rol
+ no_role: Pa rol
+ title: Ndryshoni rolin për %{username}
confirm: Ripohojeni
confirmed: U ripohua
confirming: Po ripohohet
@@ -154,6 +92,7 @@ sq:
active: Aktiv
all: Krejt
pending: Pezull
+ silenced: I kufizuar
suspended: Të pezulluara
title: Moderim
moderation_notes: Shënime moderimesh
@@ -161,6 +100,7 @@ sq:
most_recent_ip: IP-ja më e freskët
no_account_selected: S’u ndryshua ndonjë llogari, ngaqë s’u përzgjodh ndonjë
no_limits_imposed: Pa imponim kufijsh
+ no_role_assigned: Pa rol të caktuar
not_subscribed: Jo i pajtuar
pending: Në pritje të shqyrtimit
perform_full_suspension: Pezulloje
@@ -187,12 +127,7 @@ sq:
reset: Riktheje te parazgjedhjet
reset_password: Ricaktoni fjalëkalimin
resubscribe: Ripajtohuni
- role: Leje
- roles:
- admin: Përgjegjës
- moderator: Moderator
- staff: Staf
- user: Përdorues
+ role: Rol
search: Kërkoni
search_same_email_domain: Të tjerë përdorues me të njëjtën përkatësi email-i
search_same_ip: Të tjerë përdorues me të njëjtën IP
@@ -200,7 +135,7 @@ sq:
only_password: Vetëm fjalëkalim
password_and_2fa: Fjalëkalim dhe 2FA
sensitive: Rezervat
- sensitized: iu vu shenjë si rezervat
+ sensitized: Iu vu shenjë si rezervat
shared_inbox_url: URL kutie të përbashkët mesazhesh
show:
created_reports: Ka bërë raportime
@@ -235,17 +170,21 @@ sq:
approve_user: Miratoje Përdoruesin
assigned_to_self_report: Caktoji Raportim
change_email_user: Ndrysho Email për Përdoruesin
+ change_role_user: Ndryshoni Rol Përdoruesi
confirm_user: Ripohoje Përdoruesin
create_account_warning: Krijo Sinjalizim
create_announcement: Krijoni Lajmërim
+ create_canonical_email_block: Krijoni Bllokim Email-esh
create_custom_emoji: Krijo Emotikon Vetjak
create_domain_allow: Krijo Lejim Përkatësie
create_domain_block: Krijo Bllokim Përkatësie
create_email_domain_block: Krijo Bllokim Përkatësie Email-esh
create_ip_block: Krijoni Rregull IP
create_unavailable_domain: Krijo Përkatësi të Papërdorshme
+ create_user_role: Krijoni Rol
demote_user: Zhgradoje Përdoruesin
destroy_announcement: Fshije Lajmërimin
+ destroy_canonical_email_block: Fshi Bllokim El-esh
destroy_custom_emoji: Fshi Emotikon Vetjak
destroy_domain_allow: Fshi Lejim Përkatësie
destroy_domain_block: Fshi Bllokim Përkatësie
@@ -254,6 +193,7 @@ sq:
destroy_ip_block: Fshini Rregull IP
destroy_status: Fshi Gjendje
destroy_unavailable_domain: Fshi Përkatësi të Papërdorshme
+ destroy_user_role: Asgjësoje Rolin
disable_2fa_user: Çaktivizo 2FA-në
disable_custom_emoji: Çaktivizo Emotikon Vetjak
disable_sign_in_token_auth_user: Çaktivizo Mirëfilltësim me Token Email-i për Përdoruesin
@@ -280,24 +220,30 @@ sq:
update_announcement: Përditëso Lajmërimin
update_custom_emoji: Përditëso Emoxhi Vetjake
update_domain_block: Përditëso Bllok Përkatësish
+ update_ip_block: Përditësoni rregull IP
update_status: Përditëso Gjendjen
+ update_user_role: Përditësoni Rol
actions:
approve_appeal_html: "%{name} miratoi apelim vendimi moderimi nga %{target}"
approve_user_html: "%{name} miratoi regjistrim nga %{target}"
assigned_to_self_report_html: "%{name} ia kaloi raportimin %{target} në ngarkim vetvetes"
change_email_user_html: "%{name} ndryshoi adresën email të përdoruesit %{target}"
+ change_role_user_html: "%{name} ndryshoi rolin e %{target}"
confirm_user_html: "%{name} ripohoi adresën email të përdoruesit %{target}"
create_account_warning_html: "%{name} dërgoi një sinjalizim për %{target}"
create_announcement_html: "%{name} krijoi lajmërim të ri për %{target}"
+ create_canonical_email_block_html: "%{name} bllokoi email-in me hashin %{target}"
create_custom_emoji_html: "%{name} ngarkoi emoxhi të ri %{target}"
create_domain_allow_html: "%{name} lejoi federim me përkatësinë %{target}"
create_domain_block_html: "%{name} bllokoi përkatësinë %{target}"
create_email_domain_block_html: "%{name} bllokoi përkatësinë email %{target}"
create_ip_block_html: "%{name} krijoi rregull për IP-në %{target}"
create_unavailable_domain_html: "%{name} ndali dërgimin drejt përkatësisë %{target}"
+ create_user_role_html: "%{name} krijoi rolin %{target}"
demote_user_html: "%{name} zhgradoi përdoruesin %{target}"
destroy_announcement_html: "%{name} fshiu lajmërimin për %{target}"
- destroy_custom_emoji_html: "%{name} asgjësoi emoxhin %{target}"
+ destroy_canonical_email_block_html: "%{name} zhbllokoi email-n me hashin %{target}"
+ destroy_custom_emoji_html: "%{name} fshiu emoji-n %{target}"
destroy_domain_allow_html: "%{name} hoqi lejimin për federim me %{target}"
destroy_domain_block_html: "%{name} zhbllokoi përkatësinë %{target}"
destroy_email_domain_block_html: "%{name} hoqi bllokimin për përkatësinë email %{target}"
@@ -305,6 +251,7 @@ sq:
destroy_ip_block_html: "%{name} fshiu rregull për IP-në %{target}"
destroy_status_html: "%{name} hoqi gjendje nga %{target}"
destroy_unavailable_domain_html: "%{name} rinisi dërgimin drejt përkatësisë %{target}"
+ destroy_user_role_html: "%{name} fshiu rolin %{target}"
disable_2fa_user_html: "%{name} çaktivizoi domosdoshmërinë për dyfaktorësh për përdoruesin %{target}"
disable_custom_emoji_html: "%{name} çaktivizoi emoxhin %{target}"
disable_sign_in_token_auth_user_html: "%{name} çaktivizo mirëfilltësim me token email-i për %{target}"
@@ -331,8 +278,9 @@ sq:
update_announcement_html: "%{name} përditësoi lajmërimin %{target}"
update_custom_emoji_html: "%{name} përditësoi emoxhin %{target}"
update_domain_block_html: "%{name} përditësoi bllokimin e përkatësish për %{target}"
+ update_ip_block_html: "%{name} ndryshoi rregull për IP-në %{target}"
update_status_html: "%{name} përditësoi gjendjen me %{target}"
- deleted_status: "(fshiu gjendjen)"
+ update_user_role_html: "%{name} ndryshoi rolin për %{target}"
empty: S’u gjetën regjistra.
filter_by_action: Filtroji sipas veprimit
filter_by_user: Filtroji sipas përdoruesit
@@ -376,6 +324,7 @@ sq:
listed: Në listë
new:
title: Shtoni emoxhi të ri vetjak
+ no_emoji_selected: S’u ndryshuan emoxhi, ngaqë s’qe përzgjedhur i tillë
not_permitted: S’keni leje të kryeni këtë veprim
overwrite: Mbishkruaje
shortcode: Kod i shkurtër
@@ -428,6 +377,7 @@ sq:
destroyed_msg: Bllokimi i përkatësisë u hoq
domain: Përkatësi
edit: Përpunoni bllokim përkatësie
+ existing_domain_block: Keni vendosur tashmë kufizime më të rrepta mbi %{name}.
existing_domain_block_html: Keni vendosur tashmë kufizime më të rrepta mbi %{name}, lypset ta zhbllokoni së pari.
new:
create: Krijoni bllokim
@@ -516,6 +466,7 @@ sq:
delivery:
all: Krejt
clear: Spastro gabime dërgimi
+ failing: Dështim
restart: Rinis dërgimin
stop: Ndale dërgimin
unavailable: Jo i passhëm
@@ -646,6 +597,65 @@ sq:
unresolved: Të pazgjidhur
updated_at: U përditësua më
view_profile: Shihni profilin
+ roles:
+ add_new: Shtoni rol
+ assigned_users:
+ one: "%{count} përdorues"
+ other: "%{count} përdorues"
+ categories:
+ administration: Administrim
+ invites: Ftesa
+ moderation: Moderim
+ special: Special
+ delete: Fshije
+ description_html: Me role përdoruesi , mund të përshtatni cilat funksione dhe fusha të Mastodon-it mund të përdorin përdoruesit tuaj.
+ edit: Përpunoni rolin e '%{name}'
+ everyone: Leje parazgjedhje
+ everyone_full_description_html: Ky është roli bazë që prek krejt përdoruesit , madje edhe ata pa një rol të caktuar. Krejt rolet e tjerë trashëgojnë lejet prej tij.
+ permissions_count:
+ one: "%{count} leje"
+ other: "%{count} leje"
+ privileges:
+ administrator: Përgjegjës
+ administrator_description: Përdoruesit me këtë leje do të anashkalojnë çdo leje
+ delete_user_data: Të Fshijë të Dhëna Përdoruesi
+ delete_user_data_description: U lejon përdoruesve të fshijnë pa humbur kohë të dhëna përdoruesish të tjerë
+ invite_users: Të Ftojë Përdorues
+ invite_users_description: U lejon përdruesve të ftojë te shërbyesi persona të rinj
+ manage_announcements: Të Administrojë Njoftime
+ manage_announcements_description: U lejon përdoruesve të administrojë njoftime te shërbyesi
+ manage_appeals: Të Administrojë Apelime
+ manage_appeals_description: U lejon përdoruesve të shqyrtojnë apelime kundër veprimesh moderimi
+ manage_blocks: Të Administrojë Bllokim
+ manage_blocks_description: U lejon përdoruesve të bllokojnë shërbime email dhe adresa IP
+ manage_custom_emojis: Të Administrojë Emoxhi Vetjake
+ manage_custom_emojis_description: U lejon përdoruesve të administrojnë te shërbyesi emoxhi vetjake
+ manage_federation: Të Administrjë Federim
+ manage_federation_description: U lejon përdoruesve të bllokojnë ose lejojnë federim me përkatësi të tjera dhe të kontrollojnë shpërndarjen
+ manage_invites: Të Administrojë Ftesa
+ manage_invites_description: U lejon përdoruesve të shfletojnë dhe çaktivizojnë lidhje ftesash
+ manage_reports: Të Administrojë Raportime
+ manage_reports_description: U lejon përdruesve të shqyrtojnë raportime dhe kryejnë veprime moderimi ndaj tyre
+ manage_roles: Të Administrojë Role
+ manage_roles_description: U lejon përdoruesve të administrojnë dhe caktojnë role nën të tyret
+ manage_rules: Të Administrojë Rregulla
+ manage_rules_description: U lejon përdoruesve të ndryshojnë rregulla shërbyesi
+ manage_settings: Të Administrojë Rregullime
+ manage_settings_description: U lejon përdoruesve të ndryshojnë rregullime sajti
+ manage_taxonomies: Të Administrojë Klasifikime
+ manage_taxonomies_description: U lejon përdoruesve të shqyrtojnë lëndë në modë dhe të përditësojnë rregullime hashtag-ësh
+ manage_user_access: Të Administrojë Hyrje Përdoruesi
+ manage_user_access_description: U lejon përdoruesve të çaktivizojnë mirëfilltësim dyfaktorësh për përdorues të tjerë, të ndryshojnë adresa të tyret email dhe të ricaktojnë fjalëkalimet e tyre
+ manage_users: Të Administrojë Përdorues
+ manage_users_description: U lejon përdoruesve të shohin hollësi përdoruesish të tjerë dhe të kryejnë veprime moderimi mbi ta
+ manage_webhooks: Të Administrojë Webhook-e
+ manage_webhooks_description: U lejon përdoruesve të ujdisin webhook-e për veprime administrative
+ view_audit_log: Shihni Regjistër Auditimesh
+ view_audit_log_description: U lejon përdoruesve të shohin një historik veprimesh administrative te shërbyesi
+ view_dashboard: Shihni Pultin
+ view_dashboard_description: U lejon përdoruesve të hyjnë te pulti dhe shohin shifra të ndryshme matjesh
+ view_devops_description: U lejon përdoruesve të hyjnë në pultet Sidekiq dhe pgHero
+ title: Role
rules:
add_new: Shtoni rregull
delete: Fshije
@@ -654,94 +664,15 @@ sq:
empty: S’janë përcaktuar ende rregulla shërbyesi.
title: Rregulla shërbyesi
settings:
- activity_api_enabled:
- desc_html: Numër postimesh të postuara lokalisht, përdorues aktivë, dhe regjistrime të reja në kosha javorë
- title: Botoni statistika përmbledhëse mbi veprimtarinë e përdoruesve te API
- bootstrap_timeline_accounts:
- desc_html: Emrat e përdoruesve ndajini prej njëri-tjetrit me presje. Për këto llogari do të garantohet shfaqja te rekomandime ndjekjeje
- title: Rekomandoji këto llogari për përdorues të rinj
- contact_information:
- email: Email biznesi
- username: Emër përdoruesi kontakti
- custom_css:
- desc_html: Ndryshojeni pamjen me CSS të ngarkuar në çdo faqe
- title: CSS Vetjake
- default_noindex:
- desc_html: Prek krejt përdoruesi që s’e kanë ndryshuar vetë këtë rregullim
- title: Lejo, si parazgjedhje, lënien e përdoruesve jashtë indeksimi nga motorë kërkimesh
domain_blocks:
all: Për këdo
disabled: Për askënd
- title: Shfaq bllokime përkatësish
users: Për përdorues vendorë që kanë bërë hyrjen
- domain_blocks_rationale:
- title: Shfaq arsye
- hero:
- desc_html: E shfaqur në faqen ballore. Këshillohet të paktën 600x100px. Kur nuk caktohet gjë, përdoret miniaturë e shërbyesit
- title: Figurë heroi
- mascot:
- desc_html: E shfaqur në faqe të shumta. Këshillohet të paktën 293x205. Kur nuk caktohet gjë, përdoret simboli parazgjedhje
- title: Figurë simboli
- peers_api_enabled:
- desc_html: Emra përkatësish që ka hasur në fedivers ky shërbyes
- title: Boto listë shërbyesish të gjetur
- preview_sensitive_media:
- desc_html: Në sajte të tjera, paraparjet e lidhjeve do të shfaqin një miniaturë, edhe pse medias i është vënë shenjë si rezervat
- title: Shfaq në paraparje OpenGraph media me shenjën rezervat
- profile_directory:
- desc_html: Lejoju përdoruesve të jenë të zbulueshëm
- title: Aktivizo drejtori profilesh
- registrations:
- closed_message:
- desc_html: E shfaqur në faqen ballore, kur regjistrimet janë të mbyllura. Mund të përdorni etiketa HTML
- title: Mesazh mbylljeje regjistrimesh
- deletion:
- desc_html: Lejo këdo të fshijë llogarinë e vet
- title: Hapni fshirje llogarie
- min_invite_role:
- disabled: Asnjë
- title: Lejo ftesa nga
- require_invite_text:
- desc_html: Kur regjistrimet lypin miratim dorazi, tekstin e kërkesës për ftesë “Pse doni të merrni pjesë?” bëje të detyrueshëm, në vend se opsional
- title: Kërkoju përdoruesve të rinj të plotësojnë doemos një tekst kërkese për ftesë
registrations_mode:
modes:
approved: Për regjistrim, lypset miratimi
none: S’mund të regjistrohet ndokush
open: Mund të regjistrohet gjithkush
- title: Mënyrë regjistrimi
- show_known_fediverse_at_about_page:
- desc_html: Kur përdoret, do të shfaqë mesazhe prej krejt fediversit të njohur, si paraparje. Përndryshe do të shfaqë vetëm mesazhe vendore
- title: Përfshi lëndë të federuar në faqe rrjedhe publike kohore të pamirëfilltësuar
- show_staff_badge:
- desc_html: Shfaq një stemë stafi në faqen e një përdoruesi
- title: Shfaq stemë stafi
- site_description:
- desc_html: Paragraf hyrës te faqja ballore. Përshkruani ç’e bën special këtë shërbyes Mastodon dhe çfarëdo gjëje tjetër të rëndësishme. Mund të përdorni etiketa HTML, veçanërisht <a>
dhe <em>
.
- title: Përshkrim shërbyesi
- site_description_extended:
- desc_html: Një vend i mirë për kodin e sjelljes në shërbyesin tuaj, rregulla, udhëzime dhe gjëra të tjera që e bëjnë të veçantë këtë shërbyes. Mund të përdorni etiketa HTML
- title: Informacion i zgjeruar vetjak
- site_short_description:
- desc_html: E shfaqur në anështyllë dhe etiketa meta. Përshkruani në një paragraf të vetëm ç’është Mastodon-i dhe ç’e bën special këtë shërbyes. Në u lëntë i zbrazët, për shërbyesin do të përdoret përshkrimi parazgjedhje.
- title: Përshkrim i shkurtër shërbyesi
- site_terms:
- desc_html: Mund të shkruani rregullat tuaja të privatësisë, kushtet e shërbimit ose gjëra të tjera ligjore. Mund të përdorni etiketa HTML
- title: Kushte vetjake shërbimi
- site_title: Emër shërbyesi
- thumbnail:
- desc_html: I përdorur për paraparje përmes OpenGraph-it dhe API-t. Këshillohet 1200x630px
- title: Miniaturë shërbyesi
- timeline_preview:
- desc_html: Shfaqni lidhje te rrjedhë kohore publike në faqen hyrëse dhe lejoni te rrjedhë kohore publike hyrje API pa mirëfilltësim
- title: Lejo në rrjedhë kohore publike hyrje pa mirëfilltësim
- title: Rregullime sajti
- trendable_by_default:
- desc_html: Prek hashtag-ë që nuk kanë qenë të palejuar më parë
- title: Lejo hashtag-ë në prirje pa paraparje paraprake
- trends:
- desc_html: Shfaqni publikisht hashtag-ë të shqyrtuar më parë që janë popullorë tani
- title: Hashtag-ë popullorë tani
site_uploads:
delete: Fshi kartelën e ngarkuar
destroyed_msg: Ngarkimi në sajt u fshi me sukses!
@@ -795,11 +726,15 @@ sq:
description_html: Këto janë lidhje që ndahen aktualisht shumë me llogari prej të cilave shërbyesi juaj sheh postime. Mund të ndihmojë përdoruesit tuaj të gjejnë se ç’po ndodh në botë. S’shfaqen lidhje publikisht, deri sa të miratoni botuesin. Mundeni edhe të lejoni ose hidhni poshtë lidhje individuale.
disallow: Hiq lejimin e lidhjes
disallow_provider: Mos e lejo botuesin
+ no_link_selected: S’u ndryshuan lidhje, ngaqë s’qe përzgjedhur e tillë
+ publishers:
+ no_publisher_selected: S’u ndryshuan botues, ngaqë s’qe përzgjedhur i tillë
shared_by_over_week:
one: Ndarë me të tjerë nga një person gjatë javës së kaluar
other: Ndarë me të tjerë nga %{count} vetë gjatë javës së kaluar
title: Lidhje në modë
usage_comparison: Ndarë %{today} herë sot, kundrejt %{yesterday} dje
+ only_allowed: Lejuar vetëm
pending_review: Në pritje të shqyrtimit
preview_card_providers:
allowed: Lidhje prej këtij botuesi mund të përdoren
@@ -813,12 +748,14 @@ sq:
description_html: Këto janë postime të cilat shërbyesi juaj di se po ndahen shumë dhe po zgjidhen si të parapëlqyera për çastin. Mund të ndihmojnë përdoruesit tuaj të rinj dhe të riardhur të gjejnë më tepër vetë për të ndjekur. S’shfaqen postime publikisht, pa miratuar ju autorin dhe autori lejon që llogaria e tij t’u sugjerohet të tjerëve. Mundeni edhe të lejoni, ose hidhni, poshtë postime individuale.
disallow: Mos lejo postim
disallow_account: Mos lejo autor
+ no_status_selected: S’u ndryshuan postime në modë, ngaqë s’qe përzgjedhur i tillë
not_discoverable: Autori s’ka zgjedhur të jetë i zbulueshëm
shared_by:
one: Ndarë me të tjerë, ose shënuar si e parapëlqyer një herë
other: Ndarë me të tjerë, ose shënuar si e parapëlqyer %{friendly_count} herë
title: Postime në modë
tags:
+ current_score: Vlera aktuale %{score}
dashboard:
tag_accounts_measure: përdorime unike
tag_languages_dimension: Gjuhë kryesuese
@@ -827,6 +764,7 @@ sq:
tag_uses_measure: përdorime gjithsej
description_html: Këta hashtag-ë aktualisht po shfaqen në një numër të madh postimesh që sheh shërbyesi juaj. Kjo mund të ndihmojë përdoruesit tuaj të gjejnë se për çfarë po flasin më shumë njerëzit aktualisht. Pa i miratuar ju, nuk shfaqen publikisht hashtag-ë.
listable: Mund të sugjerohet
+ no_tag_selected: S’u ndryshuan etiketa, ngaqë s’qe përzgjedhur e tillë
not_listable: S’do të sugjerohet
not_trendable: S’do të shfaqet nën të modës
not_usable: S’mund të përdoret
@@ -839,12 +777,33 @@ sq:
one: Përdorur nga një person gjatë javës së kaluar
other: Përdorur nga %{count} vetë gjatë javës së kaluar
title: Në modë
+ trending: Në modë
warning_presets:
add_new: Shtoni të ri
delete: Fshije
edit_preset: Përpunoni sinjalizim të paracaktuar
empty: S’keni përcaktuar ende sinjalizime të gatshme.
title: Administroni sinjalizime të paracaktuara
+ webhooks:
+ add_new: Shtoni pikëmbarim
+ delete: Fshije
+ description_html: Një webhook i bën të mundur Mastodon-it t’i dërgojë aplikacioni tuaj njoftime aty për aty rreth aktesh që keni zgjedhur, që kështu aplikacioni juaj të mund të prodhojë automatikisht reagime .
+ disable: Çaktivizoje
+ disabled: Të çaktivizuar
+ edit: Përpunoni pikëmbarim
+ empty: S’keni ende ndonjë pikëmbarim webhook të formësuar.
+ enable: Aktivizoje
+ enabled: Aktiv
+ enabled_events:
+ one: 1 akt i aktivizuar
+ other: "%{count}s akte të aktivizuar"
+ events: Akte
+ new: "Webhook i ri"
+ rotate_secret: Ciklo të fshehtën
+ secret: E fshehtë nënshkrimesh
+ status: Gjendje
+ title: Webhook-ë
+ webhook: Webhook
admin_mailer:
new_appeal:
actions:
@@ -868,10 +827,8 @@ sq:
new_trends:
body: 'Gjërat vijuese lypin një shqyrtim, përpara se të mund të shfaqen publikisht:'
new_trending_links:
- no_approved_links: Aktualisht s’ka lidhje në modë të miratuara.
title: Lidhje në modë
new_trending_statuses:
- no_approved_statuses: Aktualisht s’ka postime në modë të miratuar.
title: Postime në modë
new_trending_tags:
no_approved_tags: Aktualisht s’ka hashtag-ë në modë të miratuar.
@@ -906,16 +863,13 @@ sq:
applications:
created: Aplikimi u krijua me sukses
destroyed: Aplikimi u fshi me sukses
- invalid_url: URL-ja e dhënë është e pavlefshme
regenerate_token: Riprodho token hyrjesh
token_regenerated: Token-i i hyrjeve u riprodhua me sukses
warning: Bëni shumë kujdes me ato të dhëna. Mos ia jepni kurrë njeriu!
your_token: Token-i juaj për hyrje
auth:
- apply_for_account: Kërko ftesë
+ apply_for_account: Bëhuni pjesë e radhës
change_password: Fjalëkalim
- checkbox_agreement_html: Pajtohem me rregullat e shërbyesit dhe kushtet e shërbimit
- checkbox_agreement_without_rules_html: Pajtohem me kushtet e shërbimit
delete_account: Fshije llogarinë
delete_account_html: Nëse dëshironi të fshihni llogarinë tuaj, mund ta bëni që këtu . Do t’ju kërkohet ta ripohoni.
description:
@@ -934,6 +888,7 @@ sq:
migrate_account: Kaloni në një tjetër llogari
migrate_account_html: Nëse doni ta ridrejtoni këtë llogari te një tjetër, këtë mund ta formësoni këtu .
or_log_in_with: Ose bëni hyrjen me
+ privacy_policy_agreement_html: I kam lexuar dhe pajtohem me rregullat e privatësisë
providers:
cas: CAS
saml: SAML
@@ -941,12 +896,18 @@ sq:
registration_closed: "%{instance} s’pranon anëtarë të rinj"
resend_confirmation: Ridërgo udhëzime ripohimi
reset_password: Ricaktoni fjalëkalimin
+ rules:
+ preamble: Këto vendosen dhe zbatimi i tyre është nën kujdesin e moderatorëve të %{domain}.
+ title: Disa rregulla bazë.
security: Siguri
set_new_password: Caktoni fjalëkalim të ri
setup:
email_below_hint_html: Nëse adresa email më poshtë s’është e saktë, mund ta ndryshoni këtu dhe të merrni një email të ri ripohimi.
email_settings_hint_html: Email-i i ripohimit u dërgua te %{email}. Nëse ajo adresë email s’është e saktë, mund ta ndryshoni që nga rregullimet e llogarisë.
title: Ujdisje
+ sign_up:
+ preamble: Me një llogari në këtë shërbyes Mastodon, do të jeni në gjendje të ndiqni cilindo person tjetër në rrjet, pavarësisht se ku strehohet llogaria e tyre.
+ title: Le të ujdisim llogarinë tuaj në %{domain}.
status:
account_status: Gjendje llogarie
confirming: Po pritet që të plotësohet ripohimi i email-it.
@@ -955,7 +916,6 @@ sq:
redirecting_to: Llogaria juaj është joaktive, ngaqë aktualisht ridrejton te %{acct}.
view_strikes: Shihni paralajmërime të dikurshme kundër llogarisë tuaj
too_fast: Formulari u parashtrua shumë shpejt, riprovoni.
- trouble_logging_in: Probleme me hyrjen?
use_security_key: Përdor kyç sigurie
authorize_follow:
already_following: E ndiqni tashmë këtë llogari
@@ -1013,10 +973,6 @@ sq:
more_details_html: Për më tepër hollësi, shihni rregulla privatësie .
username_available: Emri juaj i përdoruesit do të jetë sërish i passhëm
username_unavailable: Emri juaj i përdoruesit do të mbetet i papërdorshëm
- directories:
- directory: Drejtori profilesh
- explanation: Zbuloni përdorues bazuar në interesat e tyre
- explore_mastodon: Eksploroni %{title}
disputes:
strikes:
action_taken: Vendim i marrë
@@ -1095,29 +1051,60 @@ sq:
public: Rrjedha kohore publike
thread: Biseda
edit:
+ add_keyword: Shtoni fjalëkyç
+ keywords: Fjalëkyçe
+ statuses: Postime individuale
+ statuses_hint_html: Ky filtër aplikohet për të përzgjedhur postime individuale, pavarësish se kanë apo jo përkim me fjalëkyçat më poshtë. Shqyrtoni, ose hiqni postime prej filtrit .
title: Përpunoni filtër
errors:
+ deprecated_api_multiple_keywords: Këta parametra s’mund të ndryshohen nga ky aplikacion, ngaqë aplikohen mbi më shumë se një fjalëkyç filtri. Përdorni një aplikacion më të ri, ose ndërfaqen web.
invalid_context: Ose s’u dha fare, ose u dha kontekst i pavlefshëm
- invalid_irreversible: Filtrim i pakthyeshëm funksionon vetëm me kontekste home ose njoftimesh
index:
+ contexts: Filtra në %{contexts}
delete: Fshije
empty: S’keni filtra.
+ expires_in: Skadon për %{distance}
+ expires_on: Skadon më %{date}
+ keywords:
+ one: "%{count} fjalëkyç"
+ other: "%{count} fjalëkyçe"
+ statuses:
+ one: "%{count} postim"
+ other: "%{count} postime"
+ statuses_long:
+ one: "%{count} postim individual i fshehur"
+ other: "%{count} postime individuale të fshehur"
title: Filtra
new:
+ save: Ruani filtër të ri
title: Shtoni filtër të ri
+ statuses:
+ back_to_filter: Mbrapsht te filtri
+ batch:
+ remove: Hiqe prej filtri
+ index:
+ hint: Ky filtër aplikohet për të përzgjedhur postime individuale, pavarësisht kriteresh të tjera. Që nga ndërfaqja web mund të shtoni më tepër postime te ky filtër.
+ title: Postime të filtruar
footer:
- developers: Zhvillues
- more: Më tepër…
- resources: Burime
trending_now: Prirjet e tashme
generic:
all: Krejt
+ all_items_on_page_selected_html:
+ one: Në këtë faqe është i përzgjedhur %{count} objekt.
+ other: Në këtë faqe janë përzgjedhur krejt %{count} objektet.
+ all_matching_items_selected_html:
+ one: Është përzgjedhur %{count} objekt me përkim me kërkimin tuaj.
+ other: Janë përzgjedhur krejt %{count} objektet me përkim me kërkimin tuaj.
changes_saved_msg: Ndryshimet u ruajtën me sukses!
copy: Kopjoje
delete: Fshije
+ deselect: Shpërzgjidhi krejt
none: Asnjë
order_by: Renditi sipas
save_changes: Ruaji ndryshimet
+ select_all_matching_items:
+ one: Përzgjidhni %{count} objekt me përkim me kërkimin tuaj.
+ other: Përzgjidhni krejt %{count} objektet me përkim me kërkimin tuaj.
today: sot
validation_errors:
one: Diçka s’është ende si duhet! Ju lutemi, shqyrtoni gabimin më poshtë
@@ -1141,7 +1128,6 @@ sq:
following: Listë ndjekjesh
muting: Listë heshtimesh
upload: Ngarkoje
- in_memoriam_html: In Memoriam.
invites:
delete: Çaktivizoje
expired: Ka skaduar
@@ -1222,19 +1208,10 @@ sq:
copy_account_note_text: 'Ky përdorues ka ikur prej %{acct}, ja ku janë shënimet tuaja të mëparshme mbi të:'
notification_mailer:
admin:
+ report:
+ subject: "%{name} parashtroi një raportim"
sign_up:
subject: "%{name} u regjistrua"
- digest:
- action: Shihini krejt njoftimet
- body: Ja një përmbledhje e shkurtër e mesazheve që keni humbur që nga vizita juaj e fundit më %{since}
- mention: "%{name} ju ka përmendur te:"
- new_followers_summary:
- one: Veç kësaj, u bëtë me një ndjekës të ri, teksa s’ishit këtu! Ëhë!
- other: Veç kësaj, u bëtë me %{count} ndjekës të rinj, teksa s’ishit këtu! Shkëlqyeshëm!
- subject:
- one: "1 njoftim i ri që nga vizita juaj e fundit 🐘"
- other: "%{count} njoftime të reja që nga vizita juaj e fundit 🐘"
- title: Gjatë mungesës tuaj…
favourite:
body: 'Gjendja juaj u parapëlqye nga %{name}:'
subject: "%{name} parapëlqeu gjendjen tuaj"
@@ -1306,6 +1283,8 @@ sq:
other: Tjetër
posting_defaults: Parazgjedhje postimesh
public_timelines: Rrjedha kohore publike
+ privacy_policy:
+ title: Rregulla Privatësie
reactions:
errors:
limit_reached: U mbërrit në kufirin e reagimeve të ndryshme
@@ -1328,22 +1307,7 @@ sq:
remove_selected_follows: Hiqe ndjekjen e përdoruesve të përzgjedhur
status: Gjendje llogarie
remote_follow:
- acct: Jepni çiftin tuaj emërpërdoruesi@përkatësi prej të cilit doni që të veprohet
missing_resource: S’u gjet dot URL-ja e domosdoshme e ridrejtimit për llogarinë tuaj
- no_account_html: S’keni llogari? Mund të regjistroheni këtu
- proceed: Ripohoni ndjekjen
- prompt: 'Do të ndiqni:'
- reason_html: "Pse është i domosdoshëm ky hap? %{instance}
mund të mos jetë shërbyesi ku jeni regjistruar, ndaj na duhet t’ju ridrejtojmë së pari te shërbyesi juaj Home."
- remote_interaction:
- favourite:
- proceed: Ripohoni parapëlqimin
- prompt: 'Doni të parapëlqeni këtë mesazh:'
- reblog:
- proceed: Ripohoni përforcimin
- prompt: 'Doni të përforconi këtë mesazh:'
- reply:
- proceed: Ripohoni përgjigjen
- prompt: 'Doni t’i përgjigjeni këtij mesazhi:'
reports:
errors:
invalid_rules: s’i referohet ndonjë rregulli të vlefshëm
@@ -1510,10 +1474,11 @@ sq:
pinned: Mesazh i fiksuar
reblogged: të përforcuara
sensitive_content: Lëndë rezervat
+ strikes:
+ errors:
+ too_late: Është shumë vonë për apelim të këtij paralajmërimi
tags:
does_not_match_previous_name: s’përputhet me emrin e mëparshëm
- terms:
- title: Kushte Shërbimi dhe Rregulla Privatësie te %{instance}
themes:
contrast: Mastodon (Me shumë kontrast)
default: Mastodon (I errët)
@@ -1592,20 +1557,13 @@ sq:
suspend: Llogari e pezulluar
welcome:
edit_profile_action: Ujdisje profili
- edit_profile_step: Profilin mund ta personalizoni duke ngarkuar një avatar, figurë kryesh, duke ndryshuar emrin tuaj në ekran, etj. Nëse dëshironi të shqyrtoni ndjekës të rinj, përpara se të jenë lejuar t’ju ndjekin, mund të kyçni llogarinë tuaj.
+ edit_profile_step: Profilin tuaj mund ta përshtatni duke ngarkuar një figurë, duke ndryshuar emrin tuaj në ekran, etj. Mund të zgjidhni të shqyrtoni ndjekës të rinj, para se të jenë lejuar t’ju ndjekin.
explanation: Ja disa ndihmëza, sa për t’ia filluar
final_action: Filloni të postoni
- final_step: 'Filloni të postoni! Edhe pse pa ndjekës, mesazhet tuaj publike mund të shihen nga të tjerët, për shembull te rrjedha kohore vendore dhe në hashtag-ë. Mund të donit të prezantoni veten nën hashtagun #introductions.'
+ final_step: 'Filloni të postoni! Edhe pa ndjekës, postimet tuaja publike mund të shihen nga të tjerët, për shembull, në rrjedhën kohore vendore, ose në hashtag-ë. Mund të doni të prezantoni veten përmes hashtag-ut #introductions.'
full_handle: Identifikuesi juaj i plotë
full_handle_hint: Kjo është ajo çka do të duhej t’u tregonit shokëve tuaj, që të mund t’ju dërgojnë mesazhe ose t’ju ndjekin nga një shërbyes tjetër.
- review_preferences_action: Ndryshoni parapëlqime
- review_preferences_step: Mos harroni të caktoni parapëlqimet tuaja, fjala vjen, ç’email-e dëshironi të merrni, ose çfarë shkalle privatësie do të donit të kishin, si parazgjedhje, postimet tuaja. Nëse nuk ju merren mendtë nga rrotullimi, mund të zgjidhni të aktivizoni vetëluajtje GIF-esh.
subject: Mirë se vini te Mastodon-i
- tip_federated_timeline: Rrjedha kohore e të federuarve është një pamje e fluksit të rrjetit Mastodon. Por përfshin vetëm persona te të cilët janë pajtuar fqinjët tuaj, pra s’është e plotë.
- tip_following: Përgjegjësin e shërbyesit tuaj e ndiqni, si parazgjedhje. Për të gjetur më shumë persona interesantë, shihni te rrjedha kohore vendore dhe ajo e të federuarve.
- tip_local_timeline: Rrjedha kohore vendore është një pamje e fluksit të njerëzve në %{instance}. Këta janë fqinjët tuaj më të afërt!
- tip_mobile_webapp: Nëse shfletuesi juaj celular ju ofron të shtohet Mastodon-i te skena juaj e kreut, mund të merrni njoftime push . Nga shumë pikëpamje vepron si një aplikacion i brendshëm i platformës së celularit!
- tips: Ndihmëza
title: Mirë se vini, %{name}!
users:
follow_limit_reached: S’mund të ndiqni më tepër se %{limit} persona
diff --git a/config/locales/sr-Latn.yml b/config/locales/sr-Latn.yml
index 321fc6398b..0d4b6581df 100644
--- a/config/locales/sr-Latn.yml
+++ b/config/locales/sr-Latn.yml
@@ -1,28 +1,11 @@
---
sr-Latn:
about:
- about_hashtag_html: Ovo su javni statusi tagovani sa #%{hashtag} . Možete odgovarati na njih ako imate nalog bilo gde u fediversu.
about_mastodon_html: Mastodont je društvena mreža bazirana na otvorenim protokolima i slobodnom softveru otvorenog koda. Decentralizovana je kao što je decentralizovana e-pošta.
- about_this: O instanci
- contact: Kontakt
contact_missing: Nije postavljeno
hosted_on: Mastodont hostovan na %{domain}
- learn_more: Saznajte više
- source_code: Izvorni kod
- status_count_before: Koji su napisali
- user_count_before: Dom za
- what_is_mastodon: Šta je Mastodont?
accounts:
- media: Multimedija
- moved_html: "%{name} je pomeren na %{new_profile_link}:"
nothing_here: Ovde nema ništa!
- people_followed_by: Ljudi koje %{name} prati
- people_who_follow: Ljudi koji prate %{name}
- posts_with_replies: Tutovi i odgovori
- roles:
- admin: Administrator
- moderator: Moderator
- unfollow: Otprati
admin:
account_moderation_notes:
create: Napravi
@@ -76,10 +59,6 @@ sr-Latn:
reset: Resetuj
reset_password: Resetuj lozinku
resubscribe: Ponovo se pretplati
- role: Ovlašćenja
- roles:
- staff: Osoblje
- user: Korisnik
search: Pretraga
shared_inbox_url: Adresa deljenog sandučeta
show:
@@ -166,43 +145,6 @@ sr-Latn:
resolved: Rešeni
title: Prijave
unresolved: Nerešeni
- settings:
- bootstrap_timeline_accounts:
- desc_html: Odvojite više korisničkih imena zarezom. Radi samo za lokalne i otključane naloge. Ako je prazno, onda se odnosi na sve lokalne administratore.
- title: Nalozi za automatsko zapraćivanje za nove korisnike
- contact_information:
- email: Poslovna e-pošta
- username: Kontakt korisničko ime
- registrations:
- closed_message:
- desc_html: Prikazuje se na glavnoj strani kada je instanca zatvorena za registracije. Možete koristiti HTML tagove
- title: Poruka o zatvorenoj registraciji
- deletion:
- desc_html: Dozvoli svima da mogu da obrišu svoj nalog
- title: Otvori brisanje naloga
- min_invite_role:
- disabled: Niko
- title: Samo preko pozivnice
- show_staff_badge:
- desc_html: Prikaži bedž osoblja na korisničkoj strani
- title: Prikaži bedž osoblja
- site_description:
- desc_html: Uvodni pasus na naslovnoj strani i u meta HTML tagovima. Možete koristiti HTML tagove, konkretno <a>
i <em>
.
- title: Opis instance
- site_description_extended:
- desc_html: Dobro mesto za vaš kod ponašanja, pravila, smernice i druge stvari po kojima se Vaša instanca razlikuje. Možete koristiti HTML tagove
- title: Proizvoljne dodatne informacije
- site_terms:
- desc_html: Možete pisati Vašu politiku privatnosti, uslove korišćenja i ostale legalne stvari. Možete koristiti HTML tagove
- title: Proizvoljni uslovi korišćenja
- site_title: Ime instance
- thumbnail:
- desc_html: Koristi se za preglede kroz OpenGraph i API. Preporučuje se 1200x630px
- title: Sličica instance
- timeline_preview:
- desc_html: Prikaži javnu lajnu na početnoj strani
- title: Pregled lajne
- title: Postavke sajta
statuses:
back_to_account: Nazad na stranu naloga
media:
@@ -220,7 +162,6 @@ sr-Latn:
applications:
created: Aplikacija uspešno napravljena
destroyed: Aplikacija uspešno obrisana
- invalid_url: Data adresa nije ispravna
regenerate_token: Rekreiraj pristupni token
token_regenerated: Pristupni token uspešno rekreiran
warning: Oprezno sa ovim podacima. Nikad je ne delite ni sa kim!
@@ -329,13 +270,6 @@ sr-Latn:
moderation:
title: Moderacija
notification_mailer:
- digest:
- body: Evo kratak pregled šta ste propustili od poslednje posete od %{since}
- mention: "%{name} Vas je pomenuo u:"
- new_followers_summary:
- few: Dobili ste %{count} nova pratioca! Sjajno!
- one: Dobili ste jednog novog pratioca! Jeee!
- other: Dobili ste %{count} novih pratioca! Sjajno!
favourite:
body: "%{name} je postavio kao omiljen Vaš status:"
subject: "%{name} je postavio kao omiljen Vaš status"
@@ -357,10 +291,7 @@ sr-Latn:
preferences:
other: Ostali
remote_follow:
- acct: Unesite Vaš korisnik@domen sa koga želite da pratite
missing_resource: Ne mogu da nađem zahtevanu adresu preusmeravanja za Vaš nalog
- proceed: Nastavite da zapratite
- prompt: 'Zapratite će:'
sessions:
activity: Poslednja aktivnost
browser: Veb čitač
@@ -417,8 +348,6 @@ sr-Latn:
pinned: Prikačeni tut
reblogged: podržano
sensitive_content: Osetljiv sadržaj
- terms:
- title: Uslovi korišćenja i politika privatnosti instance %{instance}
themes:
default: Mastodont
two_factor_authentication:
diff --git a/config/locales/sr.yml b/config/locales/sr.yml
index 94d8c43cf2..36bd3ebf47 100644
--- a/config/locales/sr.yml
+++ b/config/locales/sr.yml
@@ -1,48 +1,19 @@
---
sr:
about:
- about_hashtag_html: Ово су јавни статуси таговани са #%{hashtag} . Можете одговарати на њих ако имате налог било где у федиверсу.
about_mastodon_html: Мастодон је друштвена мрежа базирана на отвореним протоколима и слободном софтверу отвореног кода. Децентрализована је као што је децентрализована е-пошта.
- about_this: О инстанци
- administered_by: 'Администрирано од стране:'
- apps: Мобилне апликације
- browse_directory: Прегледајте директоријум налога и филтрирајте према интересовањима
- contact: Контакт
contact_missing: Није постављено
- documentation: Документација
hosted_on: Мастодонт хостован на %{domain}
- learn_more: Сазнајте више
- privacy_policy: Полиса приватности
- source_code: Изворни код
- status_count_after:
- few: статуси
- one: статус
- other: статуса
- status_count_before: Који су написали
- terms: Услови коришћења
- user_count_after:
- few: корисници
- one: корисник
- other: корисника
- user_count_before: Дом за
- what_is_mastodon: Шта је Мастодон?
accounts:
- choices_html: "%{name}'s избори:"
follow: Запрати
followers:
few: Пратиоци
one: Пратиоц
other: Пратиоци
following: Пратим
- joined: Придружио/ла се %{date}
last_active: последњи пут активни
link_verified_on: Власништво над овом везом је проверено %{date}
- media: Медији
- moved_html: "%{name} је прешао на %{new_profile_link}:"
- network_hidden: Ова информација није доступна
nothing_here: Овде нема ништа!
- people_followed_by: Људи које %{name} прати
- people_who_follow: Људи који прате %{name}
pin_errors:
following: Морате пратити ову особу ако хоћете да потврдите
posts:
@@ -50,13 +21,6 @@ sr:
one: Труба
other: Трубе
posts_tab_heading: Трубе
- posts_with_replies: Трубе и одговори
- roles:
- admin: Администратор
- bot: Бот
- moderator: Модератор
- unavailable: Налог је недоступан
- unfollow: Отпрати
admin:
account_actions:
action: Извршите радњу
@@ -70,7 +34,6 @@ sr:
avatar: Аватар
by_domain: Домен
change_email:
- changed_msg: Е-пошта налога успешно промењена!
current_email: Тренутна е-пошта
label: Промените е-пошту
new_email: Нова e-пошта
@@ -130,12 +93,6 @@ sr:
reset: Ресетуј
reset_password: Ресетуј лозинку
resubscribe: Поново се претплати
- role: Овлашћења
- roles:
- admin: Администратор
- moderator: Модератор
- staff: Особље
- user: Корисник
search: Претрага
shared_inbox_url: Адреса дељеног сандучета
show:
@@ -155,7 +112,6 @@ sr:
warn: Упозори
web: Веб
action_logs:
- deleted_status: "(обрисан статус)"
title: Записник
custom_emojis:
by_domain: Домен
@@ -277,70 +233,6 @@ sr:
unassign: Уклони доделу
unresolved: Нерешене
updated_at: Ажурирана
- settings:
- activity_api_enabled:
- desc_html: Бројеви локално објављених статуса, активних корисника и нових регистрација по недељама
- title: Објављуј агрегиране статистике о корисничким активностима
- bootstrap_timeline_accounts:
- desc_html: Одвојите више корисничких имена зарезом. Ради само за локалне и откључане налоге. Ако је празно, онда се односи на све локалне администраторе.
- title: Налози за аутоматско запраћивање за нове кориснике
- contact_information:
- email: Пословна е-пошта
- username: Контакт корисничко име
- custom_css:
- desc_html: Промени изглед на свакој страни када се CSS учита
- title: Произвољни CSS
- hero:
- desc_html: Приказано на почетној страни. Препоручено је бар 600х100рх. Када се не одреди, враћа се на иконицу инстанце
- title: Лого слика
- mascot:
- desc_html: Приказано на више страна. Препоручено је бар 293×205px. Када није постављена, користи се подразумевана маскота
- title: Слика маскоте
- peers_api_enabled:
- desc_html: Имена домена које је ова инстанца срела у федиверсу
- title: Објављуј списак откривених инстанци
- preview_sensitive_media:
- desc_html: Преглед веза на другим веб страницама ће приказати иконицу чак и ако је медиј означен као осетљиво
- title: Покажи осетљив медиј у ОпенГраф прегледу
- profile_directory:
- desc_html: Дозволи корисницима да буду откривени
- title: Омогући директоријум налога
- registrations:
- closed_message:
- desc_html: Приказује се на главној страни када је инстанца затворена за регистрације. Можете користити HTML тагове
- title: Порука о затвореној регистрацији
- deletion:
- desc_html: Дозволи свима да могу да обришу свој налог
- title: Отвори брисање налога
- min_invite_role:
- disabled: Нико
- title: Само преко позивнице
- show_known_fediverse_at_about_page:
- desc_html: Када се упали, показаће трубе из свих знаних федиверса на преглед. У супротном ће само показати локалне трубе.
- title: Покажи познате здружене инстанце у прегледнику временске линије
- show_staff_badge:
- desc_html: Прикажи беџ особља на корисничкој страни
- title: Прикажи беџ особља
- site_description:
- desc_html: Уводни пасус на насловној страни и у meta HTML таговима. Можете користити HTML тагове, конкретно <a>
и <em>
.
- title: Опис инстанце
- site_description_extended:
- desc_html: Добро место за ваш код понашања, правила, смернице и друге ствари по којима се Ваша инстанца разликује. Можете користити HTML тагове
- title: Произвољне додатне информације
- site_short_description:
- desc_html: Приказано у изборнику са стране и у мета ознакама. Опиши шта је Мастодон и шта чини овај сервер посебним у једном пасусу. Ако остане празно, вратиће се првобитни опис инстанце.
- title: Кратак опис инстанце
- site_terms:
- desc_html: Можете писати Вашу политику приватности, услове коришћења и остале легалне ствари. Можете користити HTML тагове
- title: Произвољни услови коришћења
- site_title: Име инстанце
- thumbnail:
- desc_html: Користи се за прегледе кроз OpenGraph и API. Препоручује се 1200x630px
- title: Сличица инстанце
- timeline_preview:
- desc_html: Прикажи јавну лајну на почетној страни
- title: Преглед лајне
- title: Поставке сајта
statuses:
back_to_account: Назад на страну налога
media:
@@ -368,7 +260,6 @@ sr:
applications:
created: Апликација успешно направљена
destroyed: Апликација успешно обрисана
- invalid_url: Дата адреса није исправна
regenerate_token: Рекреирај приступни токен
token_regenerated: Приступни токен успешно рекреиран
warning: Опрезно са овим подацима. Никад је не делите ни са ким!
@@ -418,10 +309,6 @@ sr:
confirm_password: Унесите тренутну лозинку да бисмо проверили Ваш идентитет
proceed: Обриши налог
success_msg: Ваш налог је успешно обрисан
- directories:
- directory: Директоријум налога
- explanation: Откријте кориснике на основу њихових интереса
- explore_mastodon: Истражи %{title}
errors:
'400': The request you submitted was invalid or malformed.
'403': Немате дозвола да видите ову страну.
@@ -460,16 +347,11 @@ sr:
title: Измени филтер
errors:
invalid_context: Ниједан или неважећи контекст испоручен
- invalid_irreversible: Неповратно филтрирање функционише само са почетном или контекстом обавештења
index:
delete: Избриши
title: Филтери
new:
title: Додај нови филтер
- footer:
- developers: Програмери
- more: Више…
- resources: Ресурси
generic:
changes_saved_msg: Измене успешно сачуване!
copy: Копирај
@@ -521,15 +403,6 @@ sr:
moderation:
title: Модерација
notification_mailer:
- digest:
- action: Погледајте сва обавештења
- body: Ево кратак преглед порука које сте пропустили од последње посете од %{since}
- mention: "%{name} Вас је поменуо у:"
- new_followers_summary:
- few: Добили сте %{count} нова пратиоца! Сјајно!
- one: Добили сте једног новог пратиоца! Јеее!
- other: Добили сте %{count} нових пратиоца! Сјајно!
- title: Док нисте били ту...
favourite:
body: "%{name} је поставио као омиљен Ваш статус:"
subject: "%{name} је поставио као омиљен Ваш статус"
@@ -562,19 +435,7 @@ sr:
preferences:
other: Остало
remote_follow:
- acct: Унесите Ваш корисник@домен са кога желите да пратите
missing_resource: Не могу да нађем захтевану адресу преусмеравања за Ваш налог
- no_account_html: Немате налог? Можете се пријавити овде
- proceed: Наставите да би сте запратили
- prompt: 'Запратићете:'
- reason_html: "Зашто је овај корак неопходан? %{instance}
можда није сервер на којем сте регистровани, тако да прво морамо да вас преусмеримо на ваш сервер."
- remote_interaction:
- reblog:
- proceed: Наставите да бисте поделили
- prompt: 'Желите да делите ову трубу:'
- reply:
- proceed: Наставите да бисте одговорили
- prompt: 'Желите да одговорите на ову трубу:'
scheduled_statuses:
over_daily_limit: Прекорачили сте границу од %{limit} планираних труба за тај дан
over_total_limit: Прекорачили сте границу од %{limit} планираних труба
@@ -669,8 +530,6 @@ sr:
pinned: Прикачена труба
reblogged: подржано
sensitive_content: Осетљив садржај
- terms:
- title: Услови коришћења и политика приватности инстанце %{instance}
themes:
contrast: Велики контраст
default: Мастодон
@@ -702,20 +561,11 @@ sr:
suspend: Налог суспендован
welcome:
edit_profile_action: Подеси налог
- edit_profile_step: Налог можете прилагодити постављањем аватара, заглавља, променом имена и још много тога. Ако желите да прегледате нове пратиоце пре него што буду дозвољени да вас прате, можете закључати свој налог.
explanation: Ево неколико савета за почетак
final_action: Почните објављивати
- final_step: 'Почните објављивати! Чак и без пратиоца ваше јавне поруке ће бити виђене од стране других, нпр. на локалној јавног линији и у тараба за означавање. Можда бисте желели да се представите у #увод тараби за означавање.'
full_handle: Ваш пун надимак
full_handle_hint: Ово бисте рекли својим пријатељима како би вам они послали поруку, или запратили са друге инстанце.
- review_preferences_action: Промените подешавања
- review_preferences_step: Обавезно поставите своја подешавања, као што су какву Е-пошту желите да примите или на који ниво приватности желите да ваше поруке буду постављене. Ако немате морску болест или епилепсију, можете изабрати аутоматско покретање ГИФ-а.
subject: Добродошли на Мастодон
- tip_federated_timeline: Здружена временска линија пружа комплетан увид у Мастодонову мрежу. Али она само укључује људе на које су ваше комшије претплаћене, тако да није комплетна.
- tip_following: Аутоматски пратите админа/не вашег сервера. Да пронађете занимљиве људе, проверите локалне и здружене временске линије.
- tip_local_timeline: Локална временска линија је комплетан увид људи у %{instance}. Ово су вам прве комшије!
- tip_mobile_webapp: Ако вам мобилни претраживач предложи да додате Мастодон на Ваш почетни екран, добијаћете мобилна обавештења. Делује као изворна апликација на много начина!
- tips: Савети
title: Добродошли, %{name}!
users:
follow_limit_reached: Не можете пратити више од %{limit} људи
diff --git a/config/locales/sv.yml b/config/locales/sv.yml
index 715358d5ea..df7d27efdc 100644
--- a/config/locales/sv.yml
+++ b/config/locales/sv.yml
@@ -1,92 +1,27 @@
---
sv:
about:
- about_hashtag_html: Dessa är offentliga toots märkta med #%{hashtag} . Du kan interagera med dem om du har ett konto någonstans i federationen.
about_mastodon_html: Mastodon är ett socialt nätverk baserat på öppna webbprotokoll och gratis, öppen källkodsprogramvara. Det är decentraliserat som e-post.
- about_this: Om
- active_count_after: aktiv
- active_footnote: Månatligen Aktiva användare (MAU)
- administered_by: 'Administreras av:'
- api: API
- apps: Mobilappar
- apps_platforms: Använd Mastodon från iOS, Android och andra plattformar
- browse_directory: Titta på en profilkatalog och filtrera enligt intressen
- browse_local_posts: Titta på strömmande publika inlägg från denna server
- browse_public_posts: Titta på strömmande publika inlägg på Mastodon
- contact: Kontakt
contact_missing: Inte inställd
contact_unavailable: Ej tillämplig
- continue_to_web: Fortsätt till webbtjänst
- discover_users: Upptäck användare
- documentation: Dokumentation
- federation_hint_html: Med ett konto på %{instance} kommer du att kunna följa personer på alla Mastodon-servers och mer än så.
- get_apps: Prova en mobilapp
hosted_on: Mastodon-värd på %{domain}
- instance_actor_flash: "Detta konto är en virtuell agent som används för att representera servern själv och inte någon individuell användare. Det används av sammanslutningsskäl och ska inte blockeras såvitt du inte vill blockera hela instansen, och för detta fall ska domänblockering användas. \n"
- learn_more: Lär dig mer
- logged_in_as_html: Inloggad som %{username}.
- logout_before_registering: Du är redan inloggad.
- privacy_policy: Integritetspolicy
- rules: Serverns regler
- rules_html: 'Nedan en sammanfattning av kontoreglerna för denna Mastodonserver:'
- see_whats_happening: Se vad som händer
- server_stats: 'Serverstatistik:'
- source_code: Källkod
- status_count_after:
- one: status
- other: statusar
- status_count_before: Som skapat
- tagline: Följ vänner och upptäck nya
- terms: Användarvillkor
- unavailable_content: Otillgängligt innehåll
- unavailable_content_description:
- domain: Server
- reason: Anledning
- rejecting_media: 'Mediafiler från dessa servers kommer inte hanteras eller lagras, och inga miniatyrer kammer att visas, utan manuell klickning erfordras på originalfilen:'
- rejecting_media_title: Filtrerade media
- silenced: 'Poster från dessa servers kommer att döljas i publika tidslinjer och konversationer, och meddelanden kommer inte att genereras från deras användares handlingar, förutom om du följer dem:'
- silenced_title: Ljuddämpade värddatorer
- suspended: 'Ingen data från dessa serverdatorer kommer bearbetas, lagras eller bytas ut vilket omöjliggör kommunikation med användare från dessa serverdatorer:'
- suspended_title: Avstängda värddatorer
- unavailable_content_html: Mastodon låter dig se material från, och interagera med, andra användare i servernätverket. Det är undantag som gjorts på denna serverdator.
- user_count_after:
- one: användare
- other: användare
- user_count_before: Hem till
- what_is_mastodon: Vad är Mastodon?
+ title: Om
accounts:
- choices_html: "%{name}s val:"
- endorsements_hint: Från webbgränssnittet kan du rekommendera följare, som sedan visas här.
- featured_tags_hint: Du kan använda fyrkanter som visas här.
follow: Följa
followers:
one: Följare
other: Följare
following: Följer
instance_actor_flash: Detta konto är en virtuell aktör som används för att representera servern själv och inte någon enskild användare. Den används för federationsändamål och bör inte upphävas.
- joined: Gick med %{date}
last_active: senast aktiv
link_verified_on: Ägarskap för denna länk kontrollerades den %{date}
- media: Media
- moved_html: "%{name} har flyttat till %{new_profile_link}:"
- network_hidden: Denna information är inte tillgänglig
nothing_here: Det finns inget här!
- people_followed_by: Personer som %{name} följer
- people_who_follow: Personer som följer %{name}
pin_errors:
following: Du måste vara följare av den person du vill godkänna
posts:
one: Tuta
other: Tutor
posts_tab_heading: Tutor
- posts_with_replies: Toots med svar
- roles:
- admin: Administratör
- bot: Robot
- group: Grupp
- moderator: Moderator
- unavailable: Profilen är inte tillgänglig
- unfollow: Sluta följa
admin:
account_actions:
action: Utför åtgärd
@@ -102,7 +37,6 @@ sv:
avatar: Profilbild
by_domain: Domän
change_email:
- changed_msg: E-postadressen har ändrats!
current_email: Nuvarande E-postadress
label: Byt E-postadress
new_email: Ny E-postadress
@@ -178,12 +112,6 @@ sv:
reset: Återställ
reset_password: Återställ lösenord
resubscribe: Starta en ny prenumeration
- role: Behörigheter
- roles:
- admin: Administratör
- moderator: Moderator
- staff: Personal
- user: Användare
search: Sök
search_same_email_domain: Andra användare med samma e-postdomän
search_same_ip: Annan användare med samma IP-adress
@@ -268,7 +196,6 @@ sv:
create_domain_block_html: "%{name} blockerade domänen %{target}"
create_email_domain_block_html: "%{name} svartlistade e-postdomän %{target}"
create_ip_block_html: "%{name} skapade regel för IP %{target}"
- destroy_custom_emoji_html: "%{name} förstörde emoji %{target}"
destroy_domain_block_html: "%{name} avblockerade domänen %{target}"
destroy_email_domain_block_html: "%{name} avblockerade e-postdomän %{target}"
destroy_ip_block_html: "%{name} tog bort regel för IP %{target}"
@@ -292,7 +219,6 @@ sv:
update_custom_emoji_html: "%{name} uppdaterade emoji %{target}"
update_domain_block_html: "%{name} uppdaterade domän-block för %{target}"
update_status_html: "%{name} uppdaterade inlägget av %{target}"
- deleted_status: "(raderad status)"
empty: Inga loggar hittades.
filter_by_action: Filtrera efter åtgärd
filter_by_user: Filtrera efter användare
@@ -524,87 +450,17 @@ sv:
edit: Ändra regel
title: Serverns regler
settings:
- activity_api_enabled:
- desc_html: Räkning av lokalt postade statusar, aktiva användare och nyregistreringar per vecka
- title: Publicera uppsamlad statistik om användaraktivitet
- bootstrap_timeline_accounts:
- desc_html: Separera flera användarnamn med kommatecken. Endast lokala och olåsta konton kommer att fungera. Standard när det är tomt och alla är lokala administratörer.
- title: Standard att följa för nya användare
- contact_information:
- email: Företag E-post
- username: Användarnamn för kontakt
- custom_css:
- desc_html: Ändra utseendet genom CSS laddat på varje sida
- title: Anpassad CSS
- default_noindex:
- desc_html: Påverkar alla användare som inte har ändrat denna inställning själva
- title: Undantag användare från sökmotorindexering som standard
+ about:
+ title: Om
domain_blocks:
all: Till alla
disabled: För ingen
- title: Visa domän-blockeringar
users: För inloggade lokala användare
- domain_blocks_rationale:
- title: Visa motiv
- hero:
- desc_html: Visas på framsidan. Minst 600x100px rekommenderas. Om inte angiven faller den tillbaka på instansens miniatyrbild
- title: Hjältebild
- mascot:
- title: Maskot bild
- peers_api_enabled:
- desc_html: Domännamn denna instans har påträffat i fediverse
- title: Publicera lista över upptäckta instanser
- preview_sensitive_media:
- title: Visa känsligt media i OpenGraph-förhandsvisningar
- profile_directory:
- desc_html: Tillåt användare att upptäckas
- title: Aktivera profil-mapp
- registrations:
- closed_message:
- desc_html: Visas på framsidan när registreringen är stängd. Du kan använda HTML-taggar
- title: Stängt registreringsmeddelande
- deletion:
- desc_html: Tillåt vem som helst att radera sitt konto
- title: Öppen kontoradering
- min_invite_role:
- disabled: Ingen
- title: Tillåt inbjudningar av
- require_invite_text:
- desc_html: När nyregistrering kräver manuellt godkännande, gör det obligatoriskt att fylla i text i fältet "Varför vill du gå med?"
- title: Kräv att nya användare fyller i en inbjudningsförfrågan
registrations_mode:
modes:
approved: Godkännande krävs för registrering
none: Ingen kan registrera
open: Alla kan registrera
- title: Registreringsläge
- show_known_fediverse_at_about_page:
- desc_html: När den växlas, kommer toots från hela fediverse visas på förhandsvisning. Annars visas bara lokala toots.
- title: Visa det kända fediverse på tidslinjens förhandsgranskning
- show_staff_badge:
- desc_html: Visa en personalbricka på en användarsida
- title: Visa personalbricka
- site_description:
- desc_html: Inledande stycke på framsidan och i metataggar. Du kan använda HTML-taggar, i synnerhet <a>
och <em>
.
- title: Instansbeskrivning
- site_description_extended:
- desc_html: Ett bra ställe för din uppförandekod, regler, riktlinjer och andra saker som stämmer med din instans. Du kan använda HTML-taggar
- title: Egentillverkad utökad information
- site_short_description:
- title: Kort beskrivning av servern
- site_terms:
- desc_html: Du kan skriva din egen integritetspolicy, användarvillkor eller andra regler. Du kan använda HTML-taggar
- title: Egentillverkad villkor för tjänster
- site_title: Namn på instans
- thumbnail:
- desc_html: Används för förhandsgranskningar via OpenGraph och API. 1200x630px rekommenderas
- title: Instans tumnagelbild
- timeline_preview:
- desc_html: Visa offentlig tidslinje på landingsidan
- title: Förhandsgranska tidslinje
- title: Sidans inställningar
- trends:
- title: Trendande hashtaggar
site_uploads:
delete: Radera uppladdad fil
statuses:
@@ -668,15 +524,12 @@ sv:
applications:
created: Ansökan är framgångsrikt skapad
destroyed: Ansökan är framgångsrikt borttagen
- invalid_url: Den angivna webbadressen är ogiltig
regenerate_token: Regenerera access token
token_regenerated: Access token lyckades regenereras
warning: Var mycket försiktig med denna data. Dela aldrig den med någon!
your_token: Din access token
auth:
- apply_for_account: Be om en inbjudan
change_password: Lösenord
- checkbox_agreement_html: Jag accepterar serverreglerna och villkoren för användning
delete_account: Radera konto
delete_account_html: Om du vill radera ditt konto kan du fortsätta här . Du kommer att bli ombedd att bekräfta.
description:
@@ -710,7 +563,6 @@ sv:
confirming: Väntar på att e-postbekräftelsen ska slutföras.
redirecting_to: Ditt konto är inaktivt eftersom det för närvarande dirigeras om till %{acct}.
too_fast: Formuläret har skickats för snabbt, försök igen.
- trouble_logging_in: Har du problem med att logga in?
use_security_key: Använd säkerhetsnyckel
authorize_follow:
already_following: Du följer redan detta konto
@@ -762,10 +614,6 @@ sv:
irreversible: Du kan inte återställa eller återaktivera ditt konto
username_available: Ditt användarnamn kommer att bli tillgängligt igen
username_unavailable: Ditt användarnamn kommer att fortsätta vara otillgängligt
- directories:
- directory: Profil-mapp
- explanation: Upptäck användare baserat på deras intressen
- explore_mastodon: Utforska %{title}
disputes:
strikes:
approve_appeal: Godkänn förfrågan
@@ -826,9 +674,6 @@ sv:
new:
title: Lägg till nytt filter
footer:
- developers: Utvecklare
- more: Mer…
- resources: Resurser
trending_now: Trendar nu
generic:
all: Alla
@@ -857,7 +702,6 @@ sv:
following: Lista av följare
muting: Lista av nertystade
upload: Ladda upp
- in_memoriam_html: Till minne av.
invites:
delete: Avaktivera
expired: Utgånget
@@ -929,14 +773,6 @@ sv:
admin:
sign_up:
subject: "%{name} registrerade sig"
- digest:
- action: Visa alla aviseringar
- body: Här är en kort sammanfattning av de meddelanden du missade sedan ditt senaste besök på %{since}
- mention: "%{name} nämnde dig i:"
- new_followers_summary:
- one: Du har också förvärvat en ny följare! Jippie!
- other: Du har också fått %{count} nya följare medans du var iväg! Otroligt!
- title: I din frånvaro...
favourite:
body: 'Din status favoriserades av %{name}:'
subject: "%{name} favoriserade din status"
@@ -1003,6 +839,8 @@ sv:
preferences:
other: Annat
public_timelines: Publika tidslinjer
+ privacy_policy:
+ title: Integritetspolicy
reactions:
errors:
unrecognized_emoji: är inte en igenkänd emoji
@@ -1024,19 +862,7 @@ sv:
remove_selected_follows: Sluta följ valda användare
status: Kontostatus
remote_follow:
- acct: Ange ditt användarnamn@domän du vill följa från
missing_resource: Det gick inte att hitta den begärda omdirigeringsadressen för ditt konto
- no_account_html: Har du inget konto? Du kan registrera dig här
- proceed: Fortsätt för att följa
- prompt: 'Du kommer att följa:'
- reason_html: "Varför är det här steget nödvändigt? %{instance}
är kanske inte den server du är registrerad vid, så vi behöver dirigera dig till din hemserver först."
- remote_interaction:
- favourite:
- proceed: Fortsätt till favorit
- prompt: 'Du vill favorit-markera det här inlägget:'
- reply:
- proceed: Fortsätt till svar
- prompt: 'Du vill svara på det här inlägget:'
sessions:
activity: Senaste aktivitet
browser: Webbläsare
@@ -1182,8 +1008,6 @@ sv:
too_late: Det är för sent att överklaga denna strejk
tags:
does_not_match_previous_name: matchar inte det föregående namnet
- terms:
- title: "%{instance} Användarvillkor och Sekretesspolicy"
themes:
contrast: Hög kontrast
default: Mastodon
@@ -1233,20 +1057,11 @@ sv:
suspend: Kontot avstängt
welcome:
edit_profile_action: Profilinställning
- edit_profile_step: Du kan anpassa din profil genom att ladda upp en avatar, bakgrundsbild, ändra ditt visningsnamn och mer. Om du vill granska nya följare innan de får följa dig kan du låsa ditt konto.
explanation: Här är några tips för att komma igång
final_action: Börja posta
- final_step: 'Börja posta! Även utan anhängare kan dina offentliga meddelanden ses av andra, till exempel på den lokala tidslinjen och i hashtags. Du får gärna presentera dig via hashtaggen #introductions.'
full_handle: Ditt fullständiga användarnamn/mastodonadress
full_handle_hint: Det här är vad du skulle berätta för dina vänner så att de kan meddela eller följa dig från en annan instans.
- review_preferences_action: Ändra inställningar
- review_preferences_step: Se till att du ställer in dina inställningar, t.ex. vilka e-postmeddelanden du vill ta emot eller vilken integritetsnivå du vill att dina inlägg ska vara. Om du inte har åksjuka, kan du välja att aktivera automatisk uppspelning av GIF-bilder.
subject: Välkommen till Mastodon
- tip_federated_timeline: Den förenade tidslinjen är en störtflodsvy av Mastodon-nätverket. Men det inkluderar bara människor som dina grannar följer, så det är inte komplett.
- tip_following: Du följer din servers administratör(er) som standard. För att hitta fler intressanta personer, kolla de lokala och förenade tidslinjerna.
- tip_local_timeline: Den lokala tidslinjen är en störtflodsvy av personer på %{instance}. Det här är dina närmaste grannar!
- tip_mobile_webapp: Om din mobila webbläsare erbjuder dig att lägga till Mastodon på din hemskärm kan du få push-aviseringar. Det fungerar som en inbyggd app på många sätt!
- tips: Tips
title: Välkommen ombord, %{name}!
users:
follow_limit_reached: Du kan inte följa fler än %{limit} personer
diff --git a/config/locales/ta.yml b/config/locales/ta.yml
index e3b61a487b..d691c0ec81 100644
--- a/config/locales/ta.yml
+++ b/config/locales/ta.yml
@@ -2,73 +2,20 @@
ta:
about:
about_mastodon_html: 'எதிர்காலத்தின் சமூகப் பிணையம்: விளம்பரம் இல்லை, பொதுநிறுவனக் கண்காணிப்பு இல்லை, நெறிக்குட்பட்ட வரைவுத்திட்டம், மற்றும் பகிர்ந்தாளுதல்! மஸ்டோடோனுடன் உங்கள் தரவுகள் உங்களுக்கே சொந்தம்!'
- about_this: தகவல்
- active_count_after: செயலில்
- active_footnote: செயலிலுள்ள மாதாந்திர பயனர்கள் (செமாப)
- administered_by: 'நிர்வாகம்:'
- api: செயலிக்கான மென்பொருள் இடைமுகம் API
- apps: கைப்பேசி செயலிகள்
- apps_platforms: மஸ்டோடோனை ஐஓஎஸ், ஆன்டிராய்டு, மற்றும் பிற இயங்குதளங்களில் பயன்படுத்துக
- browse_directory: தன்விவரக் கோப்புகளைப் பார்த்து உங்கள் விருப்பங்களுக்கேற்பத் தேர்வு செய்க
- browse_local_posts: நேரலையில் பொதுப் பதிவுகளை இந்த வழங்கியிலிருந்து காண்க
- browse_public_posts: நேரலையில் பொதுப் பதிவுகளை மஸ்டோடோனிலிருந்து காண்க
- contact: தொடர்புக்கு
contact_missing: நிறுவப்படவில்லை
contact_unavailable: பொ/இ
- discover_users: பயனர்களை அறிக
- documentation: ஆவணச்சான்று
- get_apps: கைப்பேசி செயலியை முயற்சி செய்யவும்
hosted_on: மாஸ்டோடாண் %{domain} இனையத்தில் இயங்குகிறது
- learn_more: மேலும் அறிய
- privacy_policy: தனியுரிமை கொள்கை
- see_whats_happening: என்ன நடக்கிறது என்று பார்க்க
- server_stats: 'வழங்கியின் புள்ளிவிவரங்கள்:'
- source_code: நிரல் மூலம்
- status_count_after:
- one: பதிவு
- other: பதிவுகள்
- status_count_before: எழுதிய
- tagline: நண்பர்களைப் பின்தொடரவும் மற்றும் புதியவர்களைக் கண்டுபிடிக்கவும்
- terms: சேவை விதிமுறைகள்
- unavailable_content: விசயங்கள் இல்லை
- unavailable_content_description:
- domain: வழங்கி
- reason: காரணம்
- rejecting_media_title: வடிகட்டப்பட்ட மீடியா
- silenced_title: அணைக்கபட்ட சர்வர்கள்
- suspended_title: இடைநீக்கப்பட்ட சர்வர்கள்
- user_count_after:
- one: பயனர்
- other: பயனர்கள்
- user_count_before: இணைந்திருக்கும்
- what_is_mastodon: மச்டொடன் என்றால் என்ன?
accounts:
- choices_html: "%{name}-இன் தேர்வுகள்:"
- featured_tags_hint: குறிப்பிட்ட சிட்டைகளை இங்கு நீங்கள் காட்சிப்படுத்தலாம்.
follow: பின்தொடர்
followers:
one: பின்தொடர்பவர்
other: பின்தொடர்பவர்கள்
following: பின்தொடரும்
- joined: "%{date} அன்று இனைந்தார்"
last_active: கடைசியாக பார்த்தது
- media: படங்கள்
- moved_html: "%{name} %{new_profile_link}க்கு மாறியுள்ளது:"
- network_hidden: இத்தகவல் கிடைக்கவில்லை
nothing_here: இங்கு எதுவும் இல்லை!
- people_followed_by: "%{name} பின்தொடரும் நபர்கள்"
- people_who_follow: "%{name}ஐ பின்தொடரும் நபர்கள்"
pin_errors:
following: தாங்கள் அங்கீகரிக்க விரும்பும் நபரை தாங்கள் ஏற்கனவே பின்தொடரந்து கொண்டு இருக்க வேண்டும்
posts_tab_heading: பிளிறல்கள்
- posts_with_replies: பிளிறல்கள் மற்றும் மறுமொழிகள்
- roles:
- admin: நிர்வாகி
- bot: பொறி
- group: குழு
- moderator: மட்டுறுத்துநர்
- unavailable: சுயவிவரம் கிடைக்கவில்லை
- unfollow: பின்தொடராதே
admin:
account_actions:
action: நடவடிக்கை எடு
@@ -84,7 +31,6 @@ ta:
avatar: அவதாரம்
by_domain: தளம்
change_email:
- changed_msg: உறிமை மின் அஞ்சல் வெற்றிகரமாக மாற்ற்ப்பட்டது!
current_email: தற்கால மின் அஞ்சல்
label: மின் அஞ்சலை மற்றுக
new_email: புதிய மின் அஞ்சல்
@@ -140,12 +86,6 @@ ta:
already_confirmed: இப்பயனர் ஏற்கனவே உறுதி படுத்திவிட்டார்
reset: மீட்டமைக்கவும்
reset_password: கடவுச்சொல்லை மீளமைத்திடுக
- role: அனுமதி
- roles:
- admin: நிர்வாகி
- moderator: நடுவர்
- staff: பணியாளர்
- user: பயனர்
search: தேடு
search_same_email_domain: இம்மின்னஞ்சல் களத்தில் உள்ள மற்ற பயனர்கள்
shared_inbox_url: குழு மின்னஞ்சல் முகவரி
diff --git a/config/locales/tai.yml b/config/locales/tai.yml
index f7451a9069..3b22e9999b 100644
--- a/config/locales/tai.yml
+++ b/config/locales/tai.yml
@@ -1,10 +1,5 @@
---
tai:
- about:
- see_whats_happening: Khòaⁿ hoat-seng siáⁿ-mih tāi-chì
- unavailable_content_description:
- reason: Lí-iû
- what_is_mastodon: Siáⁿ-mih sī Mastodon?
errors:
'400': The request you submitted was invalid or malformed.
'403': You don't have permission to view this page.
diff --git a/config/locales/te.yml b/config/locales/te.yml
index 7f6aa0f091..d325d0fba0 100644
--- a/config/locales/te.yml
+++ b/config/locales/te.yml
@@ -1,57 +1,25 @@
---
te:
about:
- about_hashtag_html: ఇవి #%{hashtag} తో ట్గాగ్ చేయబడిన పబ్లిక్ టూట్లు. ఫెడివర్స్ లో ఎక్కడ ఖాతావున్నా వీటిలో పాల్గొనవచ్చు.
about_mastodon_html: మాస్టొడాన్ అనేది ఒక సామాజిక మాధ్యమం. ఇది పూర్తిగా ఉచితం మరియు స్వేచ్ఛా సాఫ్టువేరు. ఈమెయిల్ లాగానే ఇది వికేంద్రీకరించబడినది.
- about_this: గురించి
- administered_by: 'నిర్వహణలో:'
- apps: మొబైల్ యాప్స్
- contact: సంప్రదించండి
contact_missing: ఇంకా సెట్ చేయలేదు
contact_unavailable: వర్తించదు
- documentation: పత్రీకరణ
hosted_on: మాస్టొడాన్ %{domain} లో హోస్టు చేయబడింది
- learn_more: మరింత తెలుసుకోండి
- privacy_policy: గోప్యత విధానము
- source_code: సోర్సు కోడ్
- status_count_after:
- one: స్థితి
- other: స్థితులు
- status_count_before: ఎవరు రాశారు
- terms: సేవా నిబంధనలు
- user_count_after:
- one: వినియోగదారు
- other: వినియోగదారులు
- user_count_before: హోం కు
- what_is_mastodon: మాస్టొడాన్ అంటే ఏమిటి?
accounts:
- choices_html: "%{name}'s ఎంపికలు:"
follow: అనుసరించు
followers:
one: అనుచరి
other: అనుచరులు
following: అనుసరిస్తున్నారు
- joined: "%{date}న చేరారు"
last_active: చివరిగా క్రియాశీలకంగా వుంది
link_verified_on: ఈ లంకె యొక్క యాజమాన్యాన్ని చివరిగా పరిశీలించింది %{date}న
- media: మీడియా
- moved_html: "%{name} ఈ %{new_profile_link}కు మారారు:"
- network_hidden: ఈ సమాచారం అందుబాటులో లేదు
nothing_here: ఇక్కడ ఏమీ లేదు!
- people_followed_by: "%{name} అనుసరించే వ్యక్తులు"
- people_who_follow: "%{name}ను అనుసరించే వ్యక్తులు"
pin_errors:
following: మీరు ధృవీకరించాలనుకుంటున్న వ్యక్తిని మీరిప్పటికే అనుసరిస్తూ వుండాలి
posts:
one: టూటు
other: టూట్లు
posts_tab_heading: టూట్లు
- posts_with_replies: టూట్లు మరియు ప్రత్యుత్తరాలు
- roles:
- admin: నిర్వాహకులు
- bot: బోట్
- moderator: నియంత్రికుడు
- unfollow: అనుసరించవద్దు
admin:
account_actions:
action: చర్య తీసుకో
@@ -65,7 +33,6 @@ te:
avatar: అవతారం
by_domain: డొమైను
change_email:
- changed_msg: ఖాతా యొక్క ఈమెయిల్ విజయవంతంగా మార్చబడింది!
current_email: ప్రస్తుత ఈమెయిల్
label: ఈమెయిల్ ను మార్చు
new_email: కొత్త ఈమెయిల్
diff --git a/config/locales/th.yml b/config/locales/th.yml
index 9fd23f5b35..f809ba73f4 100644
--- a/config/locales/th.yml
+++ b/config/locales/th.yml
@@ -1,85 +1,25 @@
---
th:
about:
- about_hashtag_html: นี่คือโพสต์สาธารณะที่ได้รับการแท็กด้วย #%{hashtag} คุณสามารถโต้ตอบกับโพสต์ได้หากคุณมีบัญชีที่ใดก็ตามในจักรวาลสหพันธ์
about_mastodon_html: 'เครือข่ายสังคมแห่งอนาคต: ไม่มีโฆษณา ไม่มีการสอดแนมโดยองค์กร การออกแบบตามหลักจริยธรรม และการกระจายศูนย์! เป็นเจ้าของข้อมูลของคุณด้วย Mastodon!'
- about_this: เกี่ยวกับ
- active_count_after: ใช้งานอยู่
- active_footnote: ผู้ใช้ที่ใช้งานอยู่รายเดือน (MAU)
- administered_by: 'ดูแลโดย:'
- api: API
- apps: แอปมือถือ
- apps_platforms: ใช้ Mastodon จาก iOS, Android และแพลตฟอร์มอื่น ๆ
- browse_directory: เรียกดูไดเรกทอรีโปรไฟล์และกรองตามความสนใจ
- browse_local_posts: เรียกดูสตรีมสดของโพสต์สาธารณะจากเซิร์ฟเวอร์นี้
- browse_public_posts: เรียกดูสตรีมสดของโพสต์สาธารณะใน Mastodon
- contact: ติดต่อ
contact_missing: ไม่ได้ตั้ง
contact_unavailable: ไม่มี
- continue_to_web: ดำเนินการต่อไปยังแอปเว็บ
- discover_users: ค้นพบผู้ใช้
- documentation: เอกสารประกอบ
- federation_hint_html: ด้วยบัญชีที่ %{instance} คุณจะสามารถติดตามผู้คนในเซิร์ฟเวอร์ Mastodon และอื่น ๆ
- get_apps: ลองแอปมือถือ
hosted_on: Mastodon ที่โฮสต์ที่ %{domain}
- learn_more: เรียนรู้เพิ่มเติม
- logged_in_as_html: คุณกำลังเข้าสู่ระบบเป็น %{username} ในปัจจุบัน
- logout_before_registering: คุณได้เข้าสู่ระบบอยู่แล้ว
- privacy_policy: นโยบายความเป็นส่วนตัว
- rules: กฎของเซิร์ฟเวอร์
- rules_html: 'ด้านล่างคือข้อมูลสรุปของกฎที่คุณจำเป็นต้องปฏิบัติตามหากคุณต้องการมีบัญชีในเซิร์ฟเวอร์ Mastodon นี้:'
- see_whats_happening: ดูสิ่งที่กำลังเกิดขึ้น
- server_stats: 'สถิติเซิร์ฟเวอร์:'
- source_code: โค้ดต้นฉบับ
- status_count_after:
- other: โพสต์
- status_count_before: ผู้เผยแพร่
- tagline: ติดตามเพื่อน ๆ และค้นพบเพื่อนใหม่ ๆ
- terms: เงื่อนไขการให้บริการ
- unavailable_content: เซิร์ฟเวอร์ที่มีการควบคุม
- unavailable_content_description:
- domain: เซิร์ฟเวอร์
- reason: เหตุผล
- rejecting_media: 'จะไม่ประมวลผลหรือจัดเก็บไฟล์สื่อจากเซิร์ฟเวอร์เหล่านี้ และจะไม่แสดงภาพขนาดย่อ ต้องมีการคลิกไปยังไฟล์ต้นฉบับด้วยตนเอง:'
- rejecting_media_title: สื่อที่กรองอยู่
- silenced: 'จะซ่อนโพสต์จากเซิร์ฟเวอร์เหล่านี้ในเส้นเวลาสาธารณะและการสนทนา และจะไม่สร้างการแจ้งเตือนจากการโต้ตอบของผู้ใช้ เว้นแต่คุณกำลังติดตามผู้ใช้:'
- silenced_title: เซิร์ฟเวอร์ที่จำกัดอยู่
- suspended: 'จะไม่ประมวลผล จัดเก็บ หรือแลกเปลี่ยนข้อมูลจากเซิร์ฟเวอร์เหล่านี้ ทำให้การโต้ตอบหรือการสื่อสารใด ๆ กับผู้ใช้จากเซิร์ฟเวอร์เหล่านี้เป็นไปไม่ได้:'
- suspended_title: เซิร์ฟเวอร์ที่ระงับอยู่
- user_count_after:
- other: ผู้ใช้
- user_count_before: บ้านของ
- what_is_mastodon: Mastodon คืออะไร?
+ title: เกี่ยวกับ
accounts:
- choices_html: 'ตัวเลือกของ %{name}:'
- endorsements_hint: คุณสามารถแนะนำผู้คนที่คุณติดตามจากส่วนติดต่อเว็บ และเขาจะปรากฏที่นี่
- featured_tags_hint: คุณสามารถแนะนำแฮชแท็กที่เฉพาะเจาะจงที่จะแสดงที่นี่
follow: ติดตาม
followers:
other: ผู้ติดตาม
following: กำลังติดตาม
- joined: เข้าร่วมเมื่อ %{date}
+ instance_actor_flash: บัญชีนี้เป็นตัวดำเนินการเสมือนที่ใช้เพื่อเป็นตัวแทนของเซิร์ฟเวอร์เองและไม่ใช่ผู้ใช้รายบุคคลใด ๆ บัญชีใช้สำหรับวัตถุประสงค์ในการติดต่อกับภายนอกและไม่ควรได้รับการระงับ
last_active: ใช้งานล่าสุด
link_verified_on: ตรวจสอบความเป็นเจ้าของของลิงก์นี้เมื่อ %{date}
- media: สื่อ
- moved_html: "%{name} ได้ย้ายไปยัง %{new_profile_link}:"
- network_hidden: ไม่มีข้อมูลนี้
nothing_here: ไม่มีสิ่งใดที่นี่!
- people_followed_by: ผู้คนที่ %{name} ติดตาม
- people_who_follow: ผู้คนที่ติดตาม %{name}
pin_errors:
following: คุณต้องกำลังติดตามบุคคลที่คุณต้องการแนะนำอยู่แล้ว
posts:
other: โพสต์
posts_tab_heading: โพสต์
- posts_with_replies: โพสต์และการตอบกลับ
- roles:
- admin: ผู้ดูแล
- bot: บอต
- group: กลุ่ม
- moderator: ผู้ควบคุม
- unavailable: โปรไฟล์ไม่พร้อมใช้งาน
- unfollow: เลิกติดตาม
admin:
account_actions:
action: ทำการกระทำ
@@ -96,12 +36,17 @@ th:
avatar: ภาพประจำตัว
by_domain: โดเมน
change_email:
- changed_msg: เปลี่ยนอีเมลบัญชีสำเร็จ!
+ changed_msg: เปลี่ยนอีเมลสำเร็จ!
current_email: อีเมลปัจจุบัน
label: เปลี่ยนอีเมล
new_email: อีเมลใหม่
submit: เปลี่ยนอีเมล
title: เปลี่ยนอีเมลสำหรับ %{username}
+ change_role:
+ changed_msg: เปลี่ยนบทบาทสำเร็จ!
+ label: เปลี่ยนบทบาท
+ no_role: ไม่มีบทบาท
+ title: เปลี่ยนบทบาทสำหรับ %{username}
confirm: ยืนยัน
confirmed: ยืนยันแล้ว
confirming: กำลังยืนยัน
@@ -145,6 +90,7 @@ th:
active: ใช้งานอยู่
all: ทั้งหมด
pending: รอดำเนินการ
+ silenced: จำกัดอยู่
suspended: ระงับอยู่
title: การควบคุม
moderation_notes: หมายเหตุการควบคุม
@@ -152,6 +98,7 @@ th:
most_recent_ip: IP ล่าสุด
no_account_selected: ไม่มีการเปลี่ยนแปลงบัญชีเนื่องจากไม่มีการเลือก
no_limits_imposed: ไม่มีการกำหนดขีดจำกัด
+ no_role_assigned: ไม่มีการกำหนดบทบาท
not_subscribed: ไม่ได้บอกรับ
pending: การตรวจทานที่รอดำเนินการ
perform_full_suspension: ระงับ
@@ -177,12 +124,7 @@ th:
reset: รีเซ็ต
reset_password: ตั้งรหัสผ่านใหม่
resubscribe: บอกรับใหม่
- role: สิทธิอนุญาต
- roles:
- admin: ผู้ดูแล
- moderator: ผู้ควบคุม
- staff: พนักงาน
- user: ผู้ใช้
+ role: บทบาท
search: ค้นหา
search_same_email_domain: ผู้ใช้อื่น ๆ ที่มีโดเมนอีเมลเดียวกัน
search_same_ip: ผู้ใช้อื่น ๆ ที่มี IP เดียวกัน
@@ -202,6 +144,8 @@ th:
subscribe: บอกรับ
suspend: ระงับ
suspended: ระงับอยู่
+ suspension_irreversible: ลบข้อมูลของบัญชีนี้อย่างถาวรแล้ว คุณสามารถเลิกระงับบัญชีเพื่อทำให้บัญชีใช้งานได้แต่จะไม่กู้คืนข้อมูลใด ๆ ที่บัญชีมีก่อนหน้านี้
+ suspension_reversible_hint_html: ระงับบัญชีแล้ว และจะเอาข้อมูลออกอย่างสมบูรณ์ใน %{date} จนกว่าจะถึงตอนนั้น สามารถกู้คืนบัญชีได้โดยไม่มีผลร้ายใด ๆ หากคุณต้องการเอาข้อมูลของบัญชีทั้งหมดออกในทันที คุณสามารถทำได้ด้านล่าง
title: บัญชี
unblock_email: เลิกปิดกั้นที่อยู่อีเมล
unblocked_email_msg: เลิกปิดกั้นที่อยู่อีเมลของ %{username} สำเร็จ
@@ -223,17 +167,21 @@ th:
approve_user: อนุมัติผู้ใช้
assigned_to_self_report: มอบหมายรายงาน
change_email_user: เปลี่ยนอีเมลสำหรับผู้ใช้
+ change_role_user: เปลี่ยนบทบาทของผู้ใช้
confirm_user: ยืนยันผู้ใช้
create_account_warning: สร้างคำเตือน
create_announcement: สร้างประกาศ
+ create_canonical_email_block: สร้างการปิดกั้นอีเมล
create_custom_emoji: สร้างอีโมจิที่กำหนดเอง
create_domain_allow: สร้างการอนุญาตโดเมน
create_domain_block: สร้างการปิดกั้นโดเมน
create_email_domain_block: สร้างการปิดกั้นโดเมนอีเมล
create_ip_block: สร้างกฎ IP
create_unavailable_domain: สร้างโดเมนที่ไม่พร้อมใช้งาน
+ create_user_role: สร้างบทบาท
demote_user: ลดขั้นผู้ใช้
destroy_announcement: ลบประกาศ
+ destroy_canonical_email_block: ลบการปิดกั้นอีเมล
destroy_custom_emoji: ลบอีโมจิที่กำหนดเอง
destroy_domain_allow: ลบการอนุญาตโดเมน
destroy_domain_block: ลบการปิดกั้นโดเมน
@@ -242,6 +190,7 @@ th:
destroy_ip_block: ลบกฎ IP
destroy_status: ลบโพสต์
destroy_unavailable_domain: ลบโดเมนที่ไม่พร้อมใช้งาน
+ destroy_user_role: ทำลายบทบาท
disable_2fa_user: ปิดใช้งาน 2FA
disable_custom_emoji: ปิดใช้งานอีโมจิที่กำหนดเอง
disable_sign_in_token_auth_user: ปิดใช้งานการรับรองความถูกต้องด้วยโทเคนอีเมลสำหรับผู้ใช้
@@ -268,30 +217,38 @@ th:
update_announcement: อัปเดตประกาศ
update_custom_emoji: อัปเดตอีโมจิที่กำหนดเอง
update_domain_block: อัปเดตการปิดกั้นโดเมน
+ update_ip_block: อัปเดตกฎ IP
update_status: อัปเดตโพสต์
+ update_user_role: อัปเดตบทบาท
actions:
approve_appeal_html: "%{name} ได้อนุมัติการอุทธรณ์การตัดสินใจในการควบคุมจาก %{target}"
approve_user_html: "%{name} ได้อนุมัติการลงทะเบียนจาก %{target}"
assigned_to_self_report_html: "%{name} ได้มอบหมายรายงาน %{target} ให้กับตนเอง"
change_email_user_html: "%{name} ได้เปลี่ยนที่อยู่อีเมลของผู้ใช้ %{target}"
+ change_role_user_html: "%{name} ได้เปลี่ยนบทบาทของ %{target}"
confirm_user_html: "%{name} ได้ยืนยันที่อยู่อีเมลของผู้ใช้ %{target}"
create_account_warning_html: "%{name} ได้ส่งคำเตือนไปยัง %{target}"
create_announcement_html: "%{name} ได้สร้างประกาศใหม่ %{target}"
+ create_canonical_email_block_html: "%{name} ได้ปิดกั้นอีเมลที่มีแฮช %{target}"
create_custom_emoji_html: "%{name} ได้อัปโหลดอีโมจิใหม่ %{target}"
create_domain_allow_html: "%{name} ได้อนุญาตการติดต่อกับภายนอกกับโดเมน %{target}"
create_domain_block_html: "%{name} ได้ปิดกั้นโดเมน %{target}"
create_email_domain_block_html: "%{name} ได้ปิดกั้นโดเมนอีเมล %{target}"
create_ip_block_html: "%{name} ได้สร้างกฎสำหรับ IP %{target}"
create_unavailable_domain_html: "%{name} ได้หยุดการจัดส่งไปยังโดเมน %{target}"
+ create_user_role_html: "%{name} ได้สร้างบทบาท %{target}"
demote_user_html: "%{name} ได้ลดขั้นผู้ใช้ %{target}"
destroy_announcement_html: "%{name} ได้ลบประกาศ %{target}"
- destroy_custom_emoji_html: "%{name} ได้ทำลายอีโมจิ %{target}"
+ destroy_canonical_email_block_html: "%{name} ได้เลิกปิดกั้นอีเมลที่มีแฮช %{target}"
+ destroy_custom_emoji_html: "%{name} ได้ลบอีโมจิ %{target}"
destroy_domain_allow_html: "%{name} ได้ไม่อนุญาตการติดต่อกับภายนอกกับโดเมน %{target}"
destroy_domain_block_html: "%{name} ได้เลิกปิดกั้นโดเมน %{target}"
destroy_email_domain_block_html: "%{name} ได้เลิกปิดกั้นโดเมนอีเมล %{target}"
destroy_instance_html: "%{name} ได้ล้างข้อมูลโดเมน %{target}"
destroy_ip_block_html: "%{name} ได้ลบกฎสำหรับ IP %{target}"
destroy_status_html: "%{name} ได้เอาโพสต์โดย %{target} ออก"
+ destroy_unavailable_domain_html: "%{name} ได้ทำการจัดส่งไปยังโดเมน %{target} ต่อ"
+ destroy_user_role_html: "%{name} ได้ลบบทบาท %{target}"
disable_2fa_user_html: "%{name} ได้ปิดใช้งานความต้องการสองปัจจัยสำหรับผู้ใช้ %{target}"
disable_custom_emoji_html: "%{name} ได้ปิดใช้งานอีโมจิ %{target}"
disable_sign_in_token_auth_user_html: "%{name} ได้ปิดใช้งานการรับรองความถูกต้องด้วยโทเคนอีเมลสำหรับ %{target}"
@@ -318,8 +275,9 @@ th:
update_announcement_html: "%{name} ได้อัปเดตประกาศ %{target}"
update_custom_emoji_html: "%{name} ได้อัปเดตอีโมจิ %{target}"
update_domain_block_html: "%{name} ได้อัปเดตการปิดกั้นโดเมนสำหรับ %{target}"
+ update_ip_block_html: "%{name} ได้เปลี่ยนกฎสำหรับ IP %{target}"
update_status_html: "%{name} ได้อัปเดตโพสต์โดย %{target}"
- deleted_status: "(โพสต์ที่ลบแล้ว)"
+ update_user_role_html: "%{name} ได้เปลี่ยนบทบาท %{target}"
empty: ไม่พบรายการบันทึก
filter_by_action: กรองตามการกระทำ
filter_by_user: กรองตามผู้ใช้
@@ -411,6 +369,8 @@ th:
destroyed_msg: เลิกทำการปิดกั้นโดเมนแล้ว
domain: โดเมน
edit: แก้ไขการปิดกั้นโดเมน
+ existing_domain_block: คุณได้กำหนดขีดจำกัดที่เข้มงวดกว่าใน %{name} ไปแล้ว
+ existing_domain_block_html: คุณได้กำหนดขีดจำกัดที่เข้มงวดกว่าใน %{name} ไปแล้ว คุณจำเป็นต้อง เลิกปิดกั้น ก่อน
new:
create: สร้างการปิดกั้น
hint: การปิดกั้นโดเมนจะไม่ป้องกันการสร้างรายการบัญชีในฐานข้อมูล แต่จะใช้วิธีการควบคุมที่เฉพาะเจาะจงกับบัญชีเหล่านั้นย้อนหลังและโดยอัตโนมัติ
@@ -421,8 +381,11 @@ th:
suspend: ระงับ
title: การปิดกั้นโดเมนใหม่
obfuscate: ทำให้ชื่อโดเมนคลุมเครือ
+ obfuscate_hint: ปิดบังชื่อโดเมนบางส่วนในรายการหากมีการเปิดใช้งานการประกาศรายการการจำกัดโดเมน
private_comment: ความคิดเห็นส่วนตัว
+ private_comment_hint: ความคิดเห็นเกี่ยวกับการจำกัดโดเมนนี้สำหรับการใช้งานภายในโดยผู้ควบคุม
public_comment: ความคิดเห็นสาธารณะ
+ public_comment_hint: ความคิดเห็นเกี่ยวกับการจำกัดโดเมนนี้สำหรับสาธารณชนทั่วไป หากมีการเปิดใช้งานการประกาศรายการการจำกัดโดเมน
reject_media: ปฏิเสธไฟล์สื่อ
reject_media_hint: เอาไฟล์สื่อที่จัดเก็บไว้ในเซิร์ฟเวอร์ออกและปฏิเสธที่จะดาวน์โหลดไฟล์ใด ๆ ในอนาคต ไม่เกี่ยวข้องกับการระงับ
reject_reports: ปฏิเสธรายงาน
@@ -431,6 +394,8 @@ th:
view: ดูการปิดกั้นโดเมน
email_domain_blocks:
add_new: เพิ่มใหม่
+ attempts_over_week:
+ other: "%{count} ความพยายามในการลงทะเบียนในช่วงสัปดาห์ที่ผ่านมา"
created_msg: ปิดกั้นโดเมนอีเมลสำเร็จ
delete: ลบ
dns:
@@ -442,9 +407,11 @@ th:
resolve: แปลงที่อยู่โดเมน
title: ปิดกั้นโดเมนอีเมลใหม่
no_email_domain_block_selected: ไม่มีการเปลี่ยนแปลงการปิดกั้นโดเมนอีเมลเนื่องจากไม่มีการเลือก
+ resolved_dns_records_hint_html: ชื่อโดเมนแปลงที่อยู่เป็นโดเมน MX ดังต่อไปนี้ ซึ่งท้ายที่สุดแล้วจะรับผิดชอบสำหรับการยอมรับอีเมล การปิดกั้นโดเมน MX จะปิดกั้นการลงทะเบียนจากที่อยู่อีเมลใด ๆ ซึ่งใช้โดเมน MX เดียวกัน แม้ว่าชื่อโดเมนที่ปรากฏจะแตกต่างกัน ระวังอย่าปิดกั้นผู้ให้บริการอีเมลรายใหญ่
resolved_through_html: แปลงที่อยู่ผ่าน %{domain}
title: โดเมนอีเมลที่ปิดกั้นอยู่
follow_recommendations:
+ description_html: "คำแนะนำการติดตามช่วยให้ผู้ใช้ใหม่ค้นหาเนื้อหาที่น่าสนใจได้อย่างรวดเร็ว เมื่อผู้ใช้ไม่ได้โต้ตอบกับผู้อื่นมากพอที่จะสร้างคำแนะนำการติดตามส่วนบุคคล จะแนะนำบัญชีเหล่านี้แทน จะคำนวณคำแนะนำใหม่เป็นประจำทุกวันจากบัญชีต่าง ๆ ที่มีการมีส่วนร่วมล่าสุดสูงสุดและจำนวนผู้ติดตามในเซิร์ฟเวอร์สูงสุดสำหรับภาษาที่กำหนด"
language: สำหรับภาษา
status: สถานะ
suppress: ระงับคำแนะนำการติดตาม
@@ -453,7 +420,14 @@ th:
unsuppress: คืนค่าคำแนะนำการติดตาม
instances:
availability:
+ description_html:
+ other: หากการจัดส่งไปยังโดเมนล้มเหลวเป็นเวลา %{count} วันที่แตกต่างกัน โดยไม่สำเร็จ จะไม่ทำการพยายามจัดส่งเพิ่มเติมเว้นแต่จะได้รับการจัดส่ง จาก โดเมน
+ failure_threshold_reached: ถึงค่าเกณฑ์ความล้มเหลวเมื่อ %{date}
+ failures_recorded:
+ other: ความพยายามที่ล้มเหลวเป็นเวลา %{count} วันที่แตกต่างกัน
+ no_failures_recorded: ไม่มีความล้มเหลวในระเบียน
title: ความพร้อมใช้งาน
+ warning: ความพยายามล่าสุดในการเชื่อมต่อกับเซิร์ฟเวอร์นี้ไม่สำเร็จ
back_to_all: ทั้งหมด
back_to_limited: จำกัดอยู่
back_to_warning: คำเตือน
@@ -488,6 +462,8 @@ th:
unavailable: ไม่พร้อมใช้งาน
delivery_available: มีการจัดส่ง
delivery_error_days: วันที่มีข้อผิดพลาดการจัดส่ง
+ delivery_error_hint: หากไม่สามารถทำการจัดส่งได้เป็นเวลา %{count} วัน จะทำเครื่องหมายโดเมนว่าจัดส่งไม่ได้โดยอัตโนมัติ
+ destroyed_msg: ตอนนี้จัดคิวข้อมูลจาก %{domain} สำหรับการลบในเร็ว ๆ นี้แล้ว
empty: ไม่พบโดเมน
known_accounts:
other: "%{count} บัญชีที่รู้จัก"
@@ -498,12 +474,14 @@ th:
private_comment: ความคิดเห็นส่วนตัว
public_comment: ความคิดเห็นสาธารณะ
purge: ล้างข้อมูล
+ purge_description_html: หากคุณเชื่อว่าโดเมนนี้ออฟไลน์อย่างถาวร คุณสามารถลบระเบียนบัญชีและข้อมูลที่เกี่ยวข้องทั้งหมดจากโดเมนนี้จากที่เก็บข้อมูลของคุณ นี่อาจใช้เวลาสักครู่
title: การติดต่อกับภายนอก
total_blocked_by_us: ปิดกั้นโดยเรา
total_followed_by_them: ติดตามโดยเขา
total_followed_by_us: ติดตามโดยเรา
total_reported: รายงานเกี่ยวกับเขา
total_storage: ไฟล์แนบสื่อ
+ totals_time_period_hint_html: ยอดรวมที่แสดงด้านล่างรวมข้อมูลสำหรับเวลาทั้งหมด
invites:
deactivate_all: ปิดใช้งานทั้งหมด
filter:
@@ -532,6 +510,7 @@ th:
relays:
add_new: เพิ่มรีเลย์ใหม่
delete: ลบ
+ description_html: "รีเลย์การติดต่อกับภายนอก เป็นเซิร์ฟเวอร์ตัวกลางที่แลกเปลี่ยนโพสต์สาธารณะจำนวนมากระหว่างเซิร์ฟเวอร์ที่บอกรับและเผยแพร่ไปยังรีเลย์ รีเลย์สามารถช่วยให้เซิร์ฟเวอร์ขนาดเล็กและขนาดกลางค้นพบเนื้อหาจากจักรวาลสหพันธ์ ซึ่งมิฉะนั้นจะต้องให้ผู้ใช้ในเซิร์ฟเวอร์ติดตามผู้คนอื่น ๆ ในเซิร์ฟเวอร์ระยะไกลด้วยตนเอง"
disable: ปิดใช้งาน
disabled: ปิดใช้งานอยู่
enable: เปิดใช้งาน
@@ -541,6 +520,7 @@ th:
pending: กำลังรอการอนุมัติของรีเลย์
save_and_enable: บันทึกแล้วเปิดใช้งาน
setup: ตั้งค่าการเชื่อมต่อแบบรีเลย์
+ signatures_not_enabled: รีเลย์จะทำงานไม่ถูกต้องขณะที่มีการเปิดใช้งานโหมดปลอดภัยหรือโหมดการติดต่อกับภายนอกแบบจำกัด
status: สถานะ
title: รีเลย์
report_notes:
@@ -554,9 +534,12 @@ th:
action_log: รายการบันทึกการตรวจสอบ
action_taken_by: ใช้การกระทำโดย
actions:
+ delete_description_html: จะลบโพสต์ที่รายงานและจะบันทึกการดำเนินการเพื่อช่วยให้คุณเลื่อนระดับการละเมิดในอนาคตโดยบัญชีเดียวกัน
+ mark_as_sensitive_description_html: จะทำเครื่องหมายสื่อในโพสต์ที่รายงานว่าละเอียดอ่อนและจะบันทึกการดำเนินการเพื่อช่วยให้คุณเลื่อนระดับการละเมิดในอนาคตโดยบัญชีเดียวกัน
other_description_html: ดูตัวเลือกเพิ่มเติมสำหรับการควบคุมพฤติกรรมของบัญชีและปรับแต่งการสื่อสารไปยังบัญชีที่รายงาน
resolve_description_html: จะไม่ใช้การกระทำกับบัญชีที่รายงาน ไม่มีการบันทึกการดำเนินการ และจะปิดรายงาน
actions_description_html: ตัดสินใจว่าการกระทำใดที่จะใช้เพื่อแก้ปัญหารายงานนี้ หากคุณใช้การกระทำที่เป็นการลงโทษกับบัญชีที่รายงาน จะส่งการแจ้งเตือนอีเมลถึงเขา ยกเว้นเมื่อมีการเลือกหมวดหมู่ สแปม
+ add_to_report: เพิ่มข้อมูลเพิ่มเติมไปยังรายงาน
are_you_sure: คุณแน่ใจหรือไม่?
assign_to_self: มอบหมายให้ฉัน
assigned: ผู้ควบคุมที่ได้รับมอบหมาย
@@ -579,6 +562,7 @@ th:
create_and_unresolve: เปิดใหม่โดยมีหมายเหตุ
delete: ลบ
title: หมายเหตุ
+ notes_description_html: ดูและฝากหมายเหตุถึงผู้ควบคุมอื่น ๆ และตัวคุณเองในอนาคต
quick_actions_description_html: 'ดำเนินการอย่างรวดเร็วหรือเลื่อนลงเพื่อดูเนื้อหาที่รายงาน:'
remote_user_placeholder: ผู้ใช้ระยะไกลจาก %{instance}
reopen: เปิดรายงานใหม่
@@ -596,6 +580,60 @@ th:
unresolved: ยังไม่ได้แก้ปัญหา
updated_at: อัปเดตเมื่อ
view_profile: ดูโปรไฟล์
+ roles:
+ add_new: เพิ่มบทบาท
+ assigned_users:
+ other: "%{count} ผู้ใช้"
+ categories:
+ administration: การดูแล
+ invites: คำเชิญ
+ moderation: การควบคุม
+ special: พิเศษ
+ delete: ลบ
+ description_html: ด้วย บทบาทผู้ใช้ คุณสามารถปรับแต่งว่าฟังก์ชันและพื้นที่ใดของ Mastodon ที่ผู้ใช้ของคุณสามารถเข้าถึง
+ edit: แก้ไขบทบาท '%{name}'
+ everyone: สิทธิอนุญาตเริ่มต้น
+ permissions_count:
+ other: "%{count} สิทธิอนุญาต"
+ privileges:
+ administrator: ผู้ดูแล
+ administrator_description: ผู้ใช้ที่มีสิทธิอนุญาตนี้จะข้ามทุกสิทธิอนุญาต
+ delete_user_data: ลบข้อมูลผู้ใช้
+ delete_user_data_description: อนุญาตให้ผู้ใช้ลบข้อมูลของผู้ใช้อื่น ๆ โดยทันที
+ invite_users: เชิญผู้ใช้
+ invite_users_description: อนุญาตให้ผู้ใช้เชิญผู้คนใหม่ไปยังเซิร์ฟเวอร์
+ manage_announcements: จัดการประกาศ
+ manage_announcements_description: อนุญาตให้ผู้ใช้จัดการประกาศในเซิร์ฟเวอร์
+ manage_appeals: จัดการการอุทธรณ์
+ manage_appeals_description: อนุญาตให้ผู้ใช้ตรวจทานการอุทธรณ์ต่อการกระทำการควบคุม
+ manage_blocks: จัดการการปิดกั้น
+ manage_blocks_description: อนุญาตให้ผู้ใช้ปิดกั้นผู้ให้บริการอีเมลและที่อยู่ IP
+ manage_custom_emojis: จัดการอีโมจิที่กำหนดเอง
+ manage_custom_emojis_description: อนุญาตให้ผู้ใช้จัดการอีโมจิที่กำหนดเองในเซิร์ฟเวอร์
+ manage_federation: จัดการการติดต่อกับภายนอก
+ manage_federation_description: อนุญาตให้ผู้ใช้ปิดกั้นหรืออนุญาตการติดต่อกับภายนอกกับโดเมนอื่น ๆ และควบคุมความสามารถในการจัดส่ง
+ manage_invites: จัดการคำเชิญ
+ manage_invites_description: อนุญาตให้ผู้ใช้เรียกดูและปิดใช้งานลิงก์เชิญ
+ manage_reports: จัดการรายงาน
+ manage_reports_description: อนุญาตให้ผู้ใช้ตรวจทานรายงานและทำการกระทำการควบคุมกับรายงาน
+ manage_roles: จัดการบทบาท
+ manage_rules: จัดการกฎ
+ manage_rules_description: อนุญาตให้ผู้ใช้เปลี่ยนกฎของเซิร์ฟเวอร์
+ manage_settings: จัดการการตั้งค่า
+ manage_settings_description: อนุญาตให้ผู้ใช้เปลี่ยนการตั้งค่าไซต์
+ manage_taxonomies: จัดการอนุกรมวิธาน
+ manage_taxonomies_description: อนุญาตให้ผู้ใช้ตรวจทานเนื้อหาที่กำลังนิยมและอัปเดตการตั้งค่าแฮชแท็ก
+ manage_user_access: จัดการการเข้าถึงของผู้ใช้
+ manage_users: จัดการผู้ใช้
+ manage_users_description: อนุญาตให้ผู้ใช้ดูรายละเอียดของผู้ใช้อื่น ๆ และทำการกระทำการควบคุมกับผู้ใช้
+ manage_webhooks: จัดการเว็บฮุค
+ manage_webhooks_description: อนุญาตให้ผู้ใช้ตั้งค่าเว็บฮุคสำหรับเหตุการณ์การดูแล
+ view_audit_log: ดูรายการบันทึกการตรวจสอบ
+ view_audit_log_description: อนุญาตให้ผู้ใช้ดูประวัติการกระทำการดูแลในเซิร์ฟเวอร์
+ view_dashboard: ดูแดชบอร์ด
+ view_dashboard_description: อนุญาตให้ผู้ใช้เข้าถึงแดชบอร์ดและเมตริกต่าง ๆ
+ view_devops_description: อนุญาตให้ผู้ใช้เข้าถึงแดชบอร์ด Sidekiq และ pgHero
+ title: บทบาท
rules:
add_new: เพิ่มกฎ
delete: ลบ
@@ -603,107 +641,60 @@ th:
empty: ยังไม่ได้กำหนดกฎของเซิร์ฟเวอร์
title: กฎของเซิร์ฟเวอร์
settings:
- activity_api_enabled:
- desc_html: จำนวนโพสต์ที่เผยแพร่ในเซิร์ฟเวอร์, ผู้ใช้ที่ใช้งานอยู่ และการลงทะเบียนใหม่ในบักเก็ตรายสัปดาห์
- title: เผยแพร่สถิติรวมเกี่ยวกับกิจกรรมผู้ใช้ใน API
- bootstrap_timeline_accounts:
- desc_html: แยกหลายชื่อผู้ใช้ด้วยจุลภาค จะรับประกันว่าจะแสดงบัญชีเหล่านี้ในคำแนะนำการติดตาม
- title: แนะนำบัญชีเหล่านี้ให้กับผู้ใช้ใหม่
- contact_information:
- email: อีเมลธุรกิจ
- username: ชื่อผู้ใช้ในการติดต่อ
- custom_css:
- desc_html: ปรับเปลี่ยนรูปลักษณ์ด้วย CSS ที่โหลดในทุกหน้า
- title: CSS ที่กำหนดเอง
- default_noindex:
- desc_html: มีผลต่อผู้ใช้ทั้งหมดที่ไม่ได้เปลี่ยนการตั้งค่านี้ด้วยตนเอง
- title: เลือกให้ผู้ใช้ไม่รับการทำดัชนีโดยเครื่องมือค้นหาเป็นค่าเริ่มต้น
+ about:
+ manage_rules: จัดการกฎของเซิร์ฟเวอร์
+ title: เกี่ยวกับ
+ appearance:
+ preamble: ปรับแต่งส่วนติดต่อเว็บของ Mastodon
+ title: ลักษณะที่ปรากฏ
+ branding:
+ title: ตราสินค้า
+ content_retention:
+ title: การเก็บรักษาเนื้อหา
+ discovery:
+ follow_recommendations: คำแนะนำการติดตาม
+ profile_directory: ไดเรกทอรีโปรไฟล์
+ public_timelines: เส้นเวลาสาธารณะ
+ title: การค้นพบ
+ trends: แนวโน้ม
domain_blocks:
all: ให้กับทุกคน
disabled: ให้กับไม่มีใคร
- title: แสดงการปิดกั้นโดเมน
users: ให้กับผู้ใช้ในเซิร์ฟเวอร์ที่เข้าสู่ระบบ
- domain_blocks_rationale:
- title: แสดงคำชี้แจงเหตุผล
- hero:
- desc_html: แสดงในหน้าแรก อย่างน้อย 600x100px ที่แนะนำ เมื่อไม่ได้ตั้ง กลับไปใช้ภาพขนาดย่อเซิร์ฟเวอร์
- title: ภาพแบนเนอร์หลัก
- mascot:
- desc_html: แสดงในหลายหน้า อย่างน้อย 293×205px ที่แนะนำ เมื่อไม่ได้ตั้ง กลับไปใช้มาสคอตเริ่มต้น
- title: ภาพมาสคอต
- peers_api_enabled:
- desc_html: ชื่อโดเมนที่เซิร์ฟเวอร์นี้ได้พบในจักรวาลสหพันธ์
- title: เผยแพร่รายการเซิร์ฟเวอร์ที่ค้นพบใน API
- preview_sensitive_media:
- desc_html: การแสดงตัวอย่างลิงก์ในเว็บไซต์อื่น ๆ จะแสดงภาพขนาดย่อแม้ว่าจะมีการทำเครื่องหมายสื่อว่าละเอียดอ่อน
- title: แสดงสื่อที่ละเอียดอ่อนในการแสดงตัวอย่าง OpenGraph
- profile_directory:
- desc_html: อนุญาตให้ผู้ใช้สามารถค้นพบได้
- title: เปิดใช้งานไดเรกทอรีโปรไฟล์
registrations:
- closed_message:
- desc_html: แสดงในหน้าแรกเมื่อปิดการลงทะเบียน คุณสามารถใช้แท็ก HTML
- title: ข้อความการปิดการลงทะเบียน
- deletion:
- desc_html: อนุญาตให้ใครก็ตามลบบัญชีของเขา
- title: เปิดการลบบัญชี
- min_invite_role:
- disabled: ไม่มีใคร
- title: อนุญาตคำเชิญโดย
- require_invite_text:
- title: ต้องให้ผู้ใช้ใหม่ป้อนเหตุผลที่จะเข้าร่วม
+ title: การลงทะเบียน
registrations_mode:
modes:
approved: ต้องการการอนุมัติสำหรับการลงทะเบียน
none: ไม่มีใครสามารถลงทะเบียน
open: ใครก็ตามสามารถลงทะเบียน
- title: โหมดการลงทะเบียน
- show_known_fediverse_at_about_page:
- desc_html: เมื่อปิดใช้งาน จำกัดเส้นเวลาสาธารณะที่เชื่อมโยงจากหน้าเริ่มต้นให้แสดงเฉพาะเนื้อหาในเซิร์ฟเวอร์เท่านั้น
- title: รวมเนื้อหาที่ติดต่อกับภายนอกไว้ในหน้าเส้นเวลาสาธารณะที่ไม่ได้รับรองความถูกต้อง
- show_staff_badge:
- desc_html: แสดงป้ายพนักงานในหน้าผู้ใช้
- title: แสดงป้ายพนักงาน
- site_description:
- desc_html: ย่อหน้าเกริ่นนำใน API อธิบายถึงสิ่งที่ทำให้เซิร์ฟเวอร์ Mastodon นี้พิเศษและสิ่งอื่นใดที่สำคัญ คุณสามารถใช้แท็ก HTML โดยเฉพาะอย่างยิ่ง <a>
และ <em>
- title: คำอธิบายเซิร์ฟเวอร์
- site_description_extended:
- desc_html: สถานที่ที่ดีสำหรับแนวทางปฏิบัติ, กฎ, หลักเกณฑ์ และสิ่งอื่น ๆ ของคุณที่ทำให้เซิร์ฟเวอร์ของคุณแตกต่าง คุณสามารถใช้แท็ก HTML
- title: ข้อมูลแบบขยายที่กำหนดเอง
- site_short_description:
- desc_html: แสดงในแถบข้างและแท็กเมตา อธิบายว่า Mastodon คืออะไรและสิ่งที่ทำให้เซิร์ฟเวอร์นี้พิเศษในย่อหน้าเดียว
- title: คำอธิบายเซิร์ฟเวอร์แบบสั้น
- site_terms:
- desc_html: คุณสามารถเขียนนโยบายความเป็นส่วนตัว, เงื่อนไขการให้บริการ หรือภาษากฎหมายอื่น ๆ ของคุณเอง คุณสามารถใช้แท็ก HTML
- title: เงื่อนไขการให้บริการที่กำหนดเอง
- site_title: ชื่อเซิร์ฟเวอร์
- thumbnail:
- desc_html: ใช้สำหรับการแสดงตัวอย่างผ่าน OpenGraph และ API 1200x630px ที่แนะนำ
- title: ภาพขนาดย่อเซิร์ฟเวอร์
- timeline_preview:
- desc_html: แสดงลิงก์ไปยังเส้นเวลาสาธารณะในหน้าเริ่มต้นและอนุญาตการเข้าถึง API ไปยังเส้นเวลาสาธารณะโดยไม่มีการรับรองความถูกต้อง
- title: อนุญาตการเข้าถึงเส้นเวลาสาธารณะที่ไม่ได้รับรองความถูกต้อง
- title: การตั้งค่าไซต์
- trendable_by_default:
- desc_html: มีผลต่อแฮชแท็กที่ไม่ได้ไม่อนุญาตก่อนหน้านี้
- title: อนุญาตให้แฮชแท็กขึ้นแนวโน้มโดยไม่มีการตรวจทานล่วงหน้า
- trends:
- desc_html: แสดงเนื้อหาที่ตรวจทานแล้วก่อนหน้านี้ที่กำลังนิยมในปัจจุบันเป็นสาธารณะ
- title: แนวโน้ม
+ title: การตั้งค่าเซิร์ฟเวอร์
site_uploads:
delete: ลบไฟล์ที่อัปโหลด
destroyed_msg: ลบการอัปโหลดไซต์สำเร็จ!
statuses:
+ account: ผู้สร้าง
+ application: แอปพลิเคชัน
back_to_account: กลับไปที่หน้าบัญชี
back_to_report: กลับไปที่หน้ารายงาน
batch:
remove_from_report: เอาออกจากรายงาน
report: รายงาน
deleted: ลบแล้ว
+ favourites: รายการโปรด
+ history: ประวัติรุ่น
+ in_reply_to: กำลังตอบกลับ
+ language: ภาษา
media:
title: สื่อ
+ metadata: ข้อมูลอภิพันธุ์
no_status_selected: ไม่มีการเปลี่ยนแปลงโพสต์เนื่องจากไม่มีการเลือก
+ open: เปิดโพสต์
+ original_status: โพสต์ดั้งเดิม
+ reblogs: การดัน
title: โพสต์ของบัญชี
+ trending: กำลังนิยม
+ visibility: การมองเห็น
with_media: มีสื่อ
strikes:
actions:
@@ -716,8 +707,11 @@ th:
suspend: "%{name} ได้ระงับบัญชีของ %{target}"
appeal_approved: อุทธรณ์แล้ว
system_checks:
+ elasticsearch_running_check:
+ message_html: ไม่สามารถเชื่อมต่อกับ Elasticsearch โปรดตรวจสอบว่าซอฟต์แวร์กำลังทำงาน หรือปิดใช้งานการค้นหาข้อความแบบเต็ม
elasticsearch_version_check:
message_html: 'รุ่น Elasticsearch ที่เข้ากันไม่ได้: %{value}'
+ version_comparison: Elasticsearch %{running_version} กำลังทำงานขณะที่ต้องการ %{required_version}
rules_check:
action: จัดการกฎของเซิร์ฟเวอร์
message_html: คุณไม่ได้กำหนดกฎของเซิร์ฟเวอร์ใด ๆ
@@ -752,6 +746,7 @@ th:
allow_account: อนุญาตผู้สร้าง
disallow: ไม่อนุญาตโพสต์
disallow_account: ไม่อนุญาตผู้สร้าง
+ not_discoverable: ผู้สร้างไม่ได้เลือกรับให้สามารถค้นพบได้
shared_by:
other: แบ่งปันและชื่นชอบ %{friendly_count} ครั้ง
title: โพสต์ที่กำลังนิยม
@@ -783,6 +778,21 @@ th:
edit_preset: แก้ไขคำเตือนที่ตั้งไว้ล่วงหน้า
empty: คุณยังไม่ได้กำหนดคำเตือนที่ตั้งไว้ล่วงหน้าใด ๆ
title: จัดการคำเตือนที่ตั้งไว้ล่วงหน้า
+ webhooks:
+ add_new: เพิ่มปลายทาง
+ delete: ลบ
+ disable: ปิดใช้งาน
+ disabled: ปิดใช้งานอยู่
+ edit: แก้ไขปลายทาง
+ enable: เปิดใช้งาน
+ enabled: ใช้งานอยู่
+ enabled_events:
+ other: "%{count} เหตุการณ์ที่เปิดใช้งาน"
+ events: เหตุการณ์
+ new: เว็บฮุคใหม่
+ status: สถานะ
+ title: เว็บฮุค
+ webhook: เว็บฮุค
admin_mailer:
new_appeal:
actions:
@@ -806,10 +816,8 @@ th:
new_trends:
body: 'รายการดังต่อไปนี้จำเป็นต้องมีการตรวจทานก่อนที่จะสามารถแสดงรายการเป็นสาธารณะ:'
new_trending_links:
- no_approved_links: ไม่มีลิงก์ที่กำลังนิยมที่ได้รับอนุมัติในปัจจุบัน
title: ลิงก์ที่กำลังนิยม
new_trending_statuses:
- no_approved_statuses: ไม่มีโพสต์ที่กำลังนิยมที่ได้รับอนุมัติในปัจจุบัน
title: โพสต์ที่กำลังนิยม
new_trending_tags:
no_approved_tags: ไม่มีแฮชแท็กที่กำลังนิยมที่ได้รับอนุมัติในปัจจุบัน
@@ -825,7 +833,7 @@ th:
advanced_web_interface: ส่วนติดต่อเว็บขั้นสูง
animations_and_accessibility: ภาพเคลื่อนไหวและการช่วยการเข้าถึง
confirmation_dialogs: กล่องโต้ตอบการยืนยัน
- discovery: ค้นพบ
+ discovery: การค้นพบ
localization:
body: Mastodon ได้รับการแปลโดยอาสาสมัคร
guide_link: https://crowdin.com/project/mastodon/th
@@ -842,16 +850,13 @@ th:
applications:
created: สร้างแอปพลิเคชันสำเร็จ
destroyed: ลบแอปพลิเคชันสำเร็จ
- invalid_url: URL ที่ระบุไม่ถูกต้อง
regenerate_token: สร้างโทเคนการเข้าถึงใหม่
token_regenerated: สร้างโทเคนการเข้าถึงใหม่สำเร็จ
warning: ระวังเป็นอย่างสูงกับข้อมูลนี้ อย่าแบ่งปันข้อมูลกับใครก็ตาม!
your_token: โทเคนการเข้าถึงของคุณ
auth:
- apply_for_account: ขอคำเชิญ
+ apply_for_account: เข้ารายชื่อผู้รอ
change_password: รหัสผ่าน
- checkbox_agreement_html: ฉันเห็นด้วยกับ กฎของเซิร์ฟเวอร์ และ เงื่อนไขการให้บริการ
- checkbox_agreement_without_rules_html: ฉันเห็นด้วยกับ เงื่อนไขการให้บริการ
delete_account: ลบบัญชี
delete_account_html: หากคุณต้องการลบบัญชีของคุณ คุณสามารถ ดำเนินการต่อที่นี่ คุณจะได้รับการถามเพื่อการยืนยัน
description:
@@ -870,6 +875,7 @@ th:
migrate_account: ย้ายไปยังบัญชีอื่น
migrate_account_html: หากคุณต้องการเปลี่ยนเส้นทางบัญชีนี้ไปยังบัญชีอื่น คุณสามารถ กำหนดค่าบัญชีที่นี่
or_log_in_with: หรือเข้าสู่ระบบด้วย
+ privacy_policy_agreement_html: ฉันได้อ่านและเห็นด้วยกับ นโยบายความเป็นส่วนตัว
providers:
cas: CAS
saml: SAML
@@ -877,19 +883,24 @@ th:
registration_closed: "%{instance} ไม่ได้กำลังเปิดรับสมาชิกใหม่"
resend_confirmation: ส่งคำแนะนำการยืนยันใหม่
reset_password: ตั้งรหัสผ่านใหม่
+ rules:
+ title: กฎพื้นฐานบางประการ
security: ความปลอดภัย
set_new_password: ตั้งรหัสผ่านใหม่
setup:
email_below_hint_html: หากที่อยู่อีเมลด้านล่างไม่ถูกต้อง คุณสามารถเปลี่ยนที่อยู่อีเมลที่นี่และรับอีเมลยืนยันใหม่
email_settings_hint_html: ส่งอีเมลยืนยันไปยัง %{email} แล้ว หากที่อยู่อีเมลนั้นไม่ถูกต้อง คุณสามารถเปลี่ยนที่อยู่อีเมลได้ในการตั้งค่าบัญชี
+ title: การตั้งค่า
+ sign_up:
+ title: มาตั้งค่าของคุณใน %{domain} กันเลย
status:
account_status: สถานะบัญชี
confirming: กำลังรอการยืนยันอีเมลให้เสร็จสมบูรณ์
functional: บัญชีของคุณทำงานได้อย่างเต็มที่
pending: ใบสมัครของคุณกำลังรอดำเนินการตรวจทานโดยพนักงานของเรา นี่อาจใช้เวลาสักครู่ คุณจะได้รับอีเมลหากใบสมัครของคุณได้รับการอนุมัติ
+ redirecting_to: บัญชีของคุณไม่ได้ใช้งานเนื่องจากบัญชีกำลังเปลี่ยนเส้นทางไปยัง %{acct} ในปัจจุบัน
view_strikes: ดูการดำเนินการที่ผ่านมากับบัญชีของคุณ
too_fast: ส่งแบบฟอร์มเร็วเกินไป ลองอีกครั้ง
- trouble_logging_in: มีปัญหาในการเข้าสู่ระบบ?
use_security_key: ใช้กุญแจความปลอดภัย
authorize_follow:
already_following: คุณกำลังติดตามบัญชีนี้อยู่แล้ว
@@ -905,6 +916,7 @@ th:
title: ติดตาม %{acct}
challenge:
confirm: ดำเนินการต่อ
+ hint_html: "เคล็ดลับ: เราจะไม่ถามรหัสผ่านของคุณกับคุณสำหรับชั่วโมงถัดไป"
invalid_password: รหัสผ่านไม่ถูกต้อง
prompt: ยืนยันรหัสผ่านเพื่อดำเนินการต่อ
crypto:
@@ -946,14 +958,11 @@ th:
more_details_html: สำหรับรายละเอียดเพิ่มเติม ดู นโยบายความเป็นส่วนตัว
username_available: ชื่อผู้ใช้ของคุณจะพร้อมใช้งานอีกครั้ง
username_unavailable: ชื่อผู้ใช้ของคุณจะยังคงไม่พร้อมใช้งาน
- directories:
- directory: ไดเรกทอรีโปรไฟล์
- explanation: ค้นพบผู้ใช้ตามความสนใจของเขา
- explore_mastodon: สำรวจ %{title}
disputes:
strikes:
action_taken: การกระทำที่ใช้
appeal: อุทธรณ์
+ appeal_approved: อุทธรณ์การดำเนินการนี้สำเร็จและไม่มีผลบังคับอีกต่อไป
appeal_rejected: ปฏิเสธการอุทธรณ์แล้ว
appeal_submitted_at: ส่งการอุทธรณ์แล้ว
appeals:
@@ -1023,26 +1032,46 @@ th:
public: เส้นเวลาสาธารณะ
thread: การสนทนา
edit:
+ add_keyword: เพิ่มคำสำคัญ
+ keywords: คำสำคัญ
title: แก้ไขตัวกรอง
index:
+ contexts: กรองใน %{contexts}
delete: ลบ
empty: คุณไม่มีตัวกรอง
+ expires_in: หมดอายุใน %{distance}
+ expires_on: หมดอายุเมื่อ %{date}
+ keywords:
+ other: "%{count} คำสำคัญ"
+ statuses:
+ other: "%{count} โพสต์"
title: ตัวกรอง
new:
+ save: บันทึกตัวกรองใหม่
title: เพิ่มตัวกรองใหม่
+ statuses:
+ back_to_filter: กลับไปที่ตัวกรอง
+ batch:
+ remove: เอาออกจากตัวกรอง
+ index:
+ title: โพสต์ที่กรองอยู่
footer:
- developers: นักพัฒนา
- more: เพิ่มเติม…
- resources: ทรัพยากร
trending_now: กำลังนิยม
generic:
all: ทั้งหมด
+ all_items_on_page_selected_html:
+ other: เลือกอยู่ทั้งหมด %{count} รายการในหน้านี้
+ all_matching_items_selected_html:
+ other: เลือกอยู่ทั้งหมด %{count} รายการที่ตรงกับการค้นหาของคุณ
changes_saved_msg: บันทึกการเปลี่ยนแปลงสำเร็จ!
copy: คัดลอก
delete: ลบ
+ deselect: ไม่เลือกทั้งหมด
none: ไม่มี
order_by: เรียงลำดับตาม
save_changes: บันทึกการเปลี่ยนแปลง
+ select_all_matching_items:
+ other: เลือกทั้งหมด %{count} รายการที่ตรงกับการค้นหาของคุณ
today: วันนี้
validation_errors:
other: ยังมีบางอย่างไม่ถูกต้อง! โปรดตรวจทาน %{count} ข้อผิดพลาดด้านล่าง
@@ -1057,6 +1086,7 @@ th:
overwrite: เขียนทับ
overwrite_long: แทนที่ระเบียนปัจจุบันด้วยระเบียนใหม่
preface: คุณสามารถนำเข้าข้อมูลที่คุณได้ส่งออกจากเซิร์ฟเวอร์อื่น เช่น รายการผู้คนที่คุณกำลังติดตามหรือกำลังปิดกั้น
+ success: อัปโหลดข้อมูลของคุณสำเร็จและจะได้รับการประมวลผลในเวลาที่ครบกำหนด
types:
blocking: รายการปิดกั้น
bookmarks: ที่คั่นหน้า
@@ -1064,7 +1094,6 @@ th:
following: รายการติดตาม
muting: รายการซ่อน
upload: อัปโหลด
- in_memoriam_html: เพื่อระลึกถึง
invites:
delete: ปิดใช้งาน
expired: หมดอายุแล้ว
@@ -1108,6 +1137,7 @@ th:
cancel_explanation: การยกเลิกการเปลี่ยนเส้นทางจะเปิดใช้งานบัญชีปัจจุบันของคุณใหม่ แต่จะไม่นำผู้ติดตามที่ได้รับการย้ายไปยังบัญชีนั้นกลับมา
cancelled_msg: ยกเลิกการเปลี่ยนเส้นทางสำเร็จ
errors:
+ already_moved: เป็นบัญชีเดียวกันกับที่คุณได้ย้ายไปแล้ว
missing_also_known_as: ไม่ใช่นามแฝงของบัญชีนี้
move_to_self: ไม่สามารถเป็นบัญชีปัจจุบัน
not_found: ไม่พบ
@@ -1115,6 +1145,8 @@ th:
followers_count: ผู้ติดตาม ณ เวลาที่ย้าย
incoming_migrations: การย้ายจากบัญชีอื่น
incoming_migrations_html: เพื่อย้ายจากบัญชีอื่นไปยังบัญชีนี้ ก่อนอื่นคุณจำเป็นต้อง สร้างนามแฝงบัญชี
+ moved_msg: ตอนนี้กำลังเปลี่ยนเส้นทางบัญชีของคุณไปยัง %{acct} และกำลังย้ายผู้ติดตามของคุณไป
+ not_redirecting: บัญชีของคุณไม่ได้กำลังเปลี่ยนเส้นทางไปยังบัญชีอื่นใดในปัจจุบัน
on_cooldown: คุณเพิ่งโยกย้ายบัญชีของคุณ ฟังก์ชันนี้จะพร้อมใช้งานอีกครั้งในอีก %{count} วัน
past_migrations: การโยกย้ายที่ผ่านมา
proceed_with_move: ย้ายผู้ติดตาม
@@ -1133,16 +1165,10 @@ th:
copy_account_note_text: 'ผู้ใช้นี้ได้ย้ายจาก %{acct} นี่คือหมายเหตุก่อนหน้านี้ของคุณเกี่ยวกับผู้ใช้:'
notification_mailer:
admin:
+ report:
+ subject: "%{name} ได้ส่งรายงาน"
sign_up:
subject: "%{name} ได้ลงทะเบียน"
- digest:
- action: ดูการแจ้งเตือนทั้งหมด
- mention: "%{name} ได้กล่าวถึงคุณใน:"
- new_followers_summary:
- other: นอกจากนี้คุณยังได้รับ %{count} ผู้ติดตามใหม่ขณะที่ไม่อยู่! มหัศจรรย์!
- subject:
- other: "%{count} การแจ้งเตือนใหม่นับตั้งแต่การเยี่ยมชมล่าสุดของคุณ 🐘"
- title: เมื่อคุณไม่อยู่...
favourite:
body: 'โพสต์ของคุณได้รับการชื่นชอบโดย %{name}:'
subject: "%{name} ได้ชื่นชอบโพสต์ของคุณ"
@@ -1212,6 +1238,8 @@ th:
other: อื่น ๆ
posting_defaults: ค่าเริ่มต้นการโพสต์
public_timelines: เส้นเวลาสาธารณะ
+ privacy_policy:
+ title: นโยบายความเป็นส่วนตัว
reactions:
errors:
unrecognized_emoji: ไม่ใช่อีโมจิที่รู้จัก
@@ -1233,23 +1261,15 @@ th:
remove_selected_follows: เลิกติดตามผู้ใช้ที่เลือก
status: สถานะบัญชี
remote_follow:
- acct: ป้อน username@domain ของคุณที่คุณต้องการกระทำจาก
- no_account_html: ไม่มีบัญชี? คุณสามารถ ลงทะเบียนที่นี่
- proceed: ดำเนินการต่อเพื่อติดตาม
- prompt: 'คุณกำลังจะติดตาม:'
- remote_interaction:
- favourite:
- proceed: ดำเนินการต่อเพื่อชื่นชอบ
- prompt: 'คุณต้องการชื่นชอบโพสต์นี้:'
- reblog:
- proceed: ดำเนินการต่อเพื่อดัน
- prompt: 'คุณต้องการดันโพสต์นี้:'
- reply:
- proceed: ดำเนินการต่อเพื่อตอบกลับ
- prompt: 'คุณต้องการตอบกลับโพสต์นี้:'
+ missing_resource: ไม่พบ URL การเปลี่ยนเส้นทางที่จำเป็นสำหรับบัญชีของคุณ
reports:
errors:
invalid_rules: ไม่ได้อ้างอิงกฎที่ถูกต้อง
+ rss:
+ content_warning: 'คำเตือนเนื้อหา:'
+ descriptions:
+ account: โพสต์สาธารณะจาก @%{acct}
+ tag: 'โพสต์สาธารณะที่ได้รับการแท็ก #%{hashtag}'
scheduled_statuses:
too_soon: วันที่ตามกำหนดการต้องอยู่ในอนาคต
sessions:
@@ -1395,8 +1415,6 @@ th:
sensitive_content: เนื้อหาที่ละเอียดอ่อน
tags:
does_not_match_previous_name: ไม่ตรงกับชื่อก่อนหน้านี้
- terms:
- title: เงื่อนไขการให้บริการและนโยบายความเป็นส่วนตัวของ %{instance}
themes:
contrast: Mastodon (ความคมชัดสูง)
default: Mastodon (มืด)
@@ -1473,20 +1491,11 @@ th:
suspend: ระงับบัญชีอยู่
welcome:
edit_profile_action: ตั้งค่าโปรไฟล์
- edit_profile_step: คุณสามารถปรับแต่งโปรไฟล์ของคุณได้โดยอัปโหลดภาพประจำตัว, ส่วนหัว เปลี่ยนชื่อที่แสดงของคุณ และอื่น ๆ หากคุณต้องการตรวจทานผู้ติดตามใหม่ก่อนที่จะอนุญาตให้เขาติดตามคุณ คุณสามารถล็อคบัญชีของคุณ
explanation: นี่คือเคล็ดลับบางส่วนที่จะช่วยให้คุณเริ่มต้นใช้งาน
final_action: เริ่มโพสต์
- final_step: 'เริ่มโพสต์! แม้ว่าไม่มีผู้ติดตาม โพสต์สาธารณะของคุณอาจเห็นโดยผู้อื่น ตัวอย่างเช่น ในเส้นเวลาในเซิร์ฟเวอร์และในแฮชแท็ก คุณอาจต้องการแนะนำตัวเองในแฮชแท็ก #introductions'
full_handle: นามเต็มของคุณ
full_handle_hint: นี่คือสิ่งที่คุณจะบอกเพื่อน ๆ ของคุณ เพื่อให้เขาสามารถส่งข้อความหรือติดตามคุณจากเซิร์ฟเวอร์อื่น
- review_preferences_action: เปลี่ยนการกำหนดลักษณะ
- review_preferences_step: ตรวจสอบให้แน่ใจว่าได้ตั้งการกำหนดลักษณะของคุณ เช่น อีเมลใดที่คุณต้องการรับ หรือระดับความเป็นส่วนตัวใดที่คุณต้องการให้โพสต์ของคุณเป็นค่าเริ่มต้น หากคุณไม่มีภาวะป่วยจากการเคลื่อนไหว คุณสามารถเลือกเปิดใช้งานการเล่น GIF อัตโนมัติ
subject: ยินดีต้อนรับสู่ Mastodon
- tip_federated_timeline: เส้นเวลาที่ติดต่อกับภายนอกคือมุมมองสายน้ำของเครือข่าย Mastodon แต่เส้นเวลารวมเฉพาะผู้คนที่เพื่อนบ้านของคุณบอกรับเท่านั้น ดังนั้นเส้นเวลาจึงไม่ครบถ้วน
- tip_following: คุณติดตามผู้ดูแลเซิร์ฟเวอร์ของคุณเป็นค่าเริ่มต้น เพื่อค้นหาผู้คนที่น่าสนใจเพิ่มเติม ตรวจสอบเส้นเวลาในเซิร์ฟเวอร์และที่ติดต่อกับภายนอก
- tip_local_timeline: เส้นเวลาในเซิร์ฟเวอร์คือมุมมองสายน้ำของผู้คนใน %{instance} นี่คือเพื่อนบ้านใกล้เคียงของคุณ!
- tip_mobile_webapp: หากเบราว์เซอร์มือถือของคุณเสนอให้คุณเพิ่ม Mastodon ไปยังหน้าจอหลักของคุณ คุณจะสามารถรับการแจ้งเตือนแบบผลัก แอปเว็บทำหน้าที่เหมือนแอปเนทีฟในหลาย ๆ ด้าน!
- tips: เคล็ดลับ
title: ยินดีต้อนรับ %{name}!
users:
follow_limit_reached: คุณไม่สามารถติดตามมากกว่า %{limit} คน
diff --git a/config/locales/tr.yml b/config/locales/tr.yml
index 23fe6508b9..73e07694c9 100644
--- a/config/locales/tr.yml
+++ b/config/locales/tr.yml
@@ -1,94 +1,27 @@
---
tr:
about:
- about_hashtag_html: Bunlar #%{hashtag} ile etiketlenen genel tootlar. Fediverse içinde herhangi bir yerde bir hesabınız varsa, onlarla etkileşime geçebilirsiniz.
about_mastodon_html: Mastodon ücretsiz ve açık kaynaklı bir sosyal ağdır. Merkezileştirilmemiş yapısı sayesinde diğer ticari sosyal platformların aksine iletişimininizin tek bir firmada tutulmasının/yönetilmesinin önüne geçer. Güvendiğiniz bir sunucuyu seçerek oradaki kişilerle etkileşimde bulunabilirsiniz. Herkes kendi Mastodon sunucusunu kurabilir ve sorunsuz bir şekilde Mastodon sosyal ağına dahil edebilir.
- about_this: Hakkında
- active_count_after: etkin
- active_footnote: Aylık Aktif Kullanıcılar (AAK)
- administered_by: 'Yönetici:'
- api: API
- apps: Mobil uygulamalar
- apps_platforms: İos, Android ve diğer platformlardaki Mastodon'u kullanın
- browse_directory: Bir profil dizinine göz atın ve ilgi alanlarına göre filtreleyin
- browse_local_posts: Bu sunucudaki herkese açık yayınlara göz atın
- browse_public_posts: Mastodon'daki herkese açık yayınlara göz atın
- contact: İletişim
contact_missing: Ayarlanmadı
contact_unavailable: Yok
- continue_to_web: Web uygulamasına git
- discover_users: Kullanıcıları keşfet
- documentation: Belgeler
- federation_hint_html: "%{instance} hesabınızla, herhangi bir Mastodon sunucusundaki ve haricindeki kişileri takip edebilirsiniz."
- get_apps: Bir mobil uygulamayı deneyin
hosted_on: Mastodon %{domain} üzerinde barındırılıyor
- instance_actor_flash: |
- Bu hesap, herhangi bir kullanıcıyı değil sunucunun kendisini temsil etmek için kullanılan sanal bir aktördür.
- Federasyon amaçlı kullanılır ve tüm yansıyı engellemek istemediğiniz sürece engellenmemelidir; bu durumda bir etki alanı bloğu kullanmanız gerekir.
- learn_more: Daha fazla bilgi edinin
- logged_in_as_html: Şu an %{username} olarak oturum açmışsınız.
- logout_before_registering: Zaten oturumunuz açık.
- privacy_policy: Gizlilik politikası
- rules: Sunucu kuralları
- rules_html: 'Aşağıda, bu Mastodon sunucusu üzerinde bir hesap açmak istiyorsanız uymanız gereken kuralların bir özeti var:'
- see_whats_happening: Neler olduğunu görün
- server_stats: 'Sunucu istatistikleri:'
- source_code: Kaynak kodu
- status_count_after:
- one: durum yazıldı
- other: durum yazıldı
- status_count_before: Şu ana kadar
- tagline: Arkadaşlarını takip et ve yenilerini keşfet
- terms: Kullanım şartları
- unavailable_content: Denetlenen sunucular
- unavailable_content_description:
- domain: Sunucu
- reason: Sebep
- rejecting_media: 'Bu sunuculardaki medya dosyaları işlenmeyecek ya da saklanmayacak, ve hiçbir küçük resim gösterilmeyecektir, dolayısıyla orjinal dosyaya manuel tıklama gerekecektir:'
- rejecting_media_title: Filtrelenmiş medya
- silenced: 'Bu sunuculardan gelen gönderiler genel zaman çizelgelerinde ve konuşmalarda gizlenecek ve siz onları takip etmediğiniz sürece, kullanıcıların etkileşimlerinden hiçbir bildirim alınmayacaktır:'
- silenced_title: Susturulmuş sunucular
- suspended: 'Bu sunuculardaki hiçbir veri işlenmeyecek, saklanmayacak veya değiş tokuş edilmeyecektir, dolayısıyla bu sunuculardaki kullanıcılarla herhangi bir etkileşim ya da iletişim imkansız olacaktır:'
- suspended_title: Askıya alınan sunucular
- unavailable_content_html: Mastodon, genel olarak fediverse'teki herhangi bir sunucudan içerik görüntülemenize ve kullanıcılarıyla etkileşim kurmanıza izin verir. Bunlar, bu sunucuda yapılmış olan istisnalardır.
- user_count_after:
- one: kullanıcı
- other: kullanıcı
- user_count_before: Kayıtlı
- what_is_mastodon: Mastodon nedir?
+ title: Hakkında
accounts:
- choices_html: "%{name} kişisinin seçimleri:"
- endorsements_hint: Takip ettiğiniz kişileri web arayüzünden onaylayabilirsiniz, burada görünecekler.
- featured_tags_hint: Burada görüntülenecek belirli etiketlere sahip olabilirsiniz.
follow: Takip et
followers:
one: Takipçi
other: Takipçi
following: Takip edilenler
instance_actor_flash: Bu hesap, herhangi bir bireysel kullanıcı değil, sunucunun kendisini temsil etmek için kullanılan sanal bir aktördür. Birleştirme amacıyla kullanılmaktadır ve askıya alınmamalıdır.
- joined: "%{date} tarihinde katıldı"
last_active: son etkinlik
link_verified_on: Bu bağlantının mülkiyeti %{date} tarihinde kontrol edildi
- media: Medya
- moved_html: "%{name}, %{new_profile_link} adresine taşındı:"
- network_hidden: Bu bilgi mevcut değil
nothing_here: Burada henüz hiçbir gönderi yok!
- people_followed_by: Kullanıcı %{name}'in takip ettikleri
- people_who_follow: Kullanıcı %{name}'i takip edenler
pin_errors:
following: Onaylamak istediğiniz kişiyi zaten takip ediyor olmalısınız
posts:
one: Gönderi
- other: Toot
- posts_tab_heading: Tootlar
- posts_with_replies: Tootlar ve yanıtlar
- roles:
- admin: Yönetici
- bot: Bot
- group: Grup
- moderator: Denetleyici
- unavailable: Profil kullanılamıyor
- unfollow: Takibi bırak
+ other: Gönderiler
+ posts_tab_heading: Gönderiler
admin:
account_actions:
action: Eylemi gerçekleştir
@@ -105,12 +38,17 @@ tr:
avatar: Profil resmi
by_domain: Alan adı
change_email:
- changed_msg: Hesap e-postası başarıyla değiştirildi!
+ changed_msg: E-posta başarıyla değiştirildi!
current_email: Mevcut e-posta
label: E-postayı değiştir
new_email: Yeni e-posta
submit: E-postayı değiştir
title: "%{username} için e-postayı değiştir"
+ change_role:
+ changed_msg: Rol başarıyla değiştirildi!
+ label: Rolü değiştir
+ no_role: Rol yok
+ title: "%{username} için rolü değiştir"
confirm: Onayla
confirmed: Onaylandı
confirming: Onaylanıyor
@@ -154,6 +92,7 @@ tr:
active: Etkin
all: Hepsi
pending: Bekliyor
+ silenced: Sınırlı
suspended: Uzaklaştırılanlar
title: Denetim
moderation_notes: Denetleme notları
@@ -161,6 +100,7 @@ tr:
most_recent_ip: Son IP
no_account_selected: Hiçbiri seçilmediğinden hiçbir hesap değiştirilmedi
no_limits_imposed: Sınır koymaz
+ no_role_assigned: Rol atanmamış
not_subscribed: Abone edilmedi
pending: Bekleyen yorum
perform_full_suspension: Askıya al
@@ -187,12 +127,7 @@ tr:
reset: Sıfırla
reset_password: Parolayı sıfırla
resubscribe: Yeniden abone ol
- role: İzinler
- roles:
- admin: Yönetici
- moderator: Denetleyici
- staff: Personel
- user: Kullanıcı
+ role: Rol
search: Ara
search_same_email_domain: Aynı e-posta alan adına sahip diğer kullanıcılar
search_same_ip: Aynı IP adresine sahip diğer kullanıcılar
@@ -235,17 +170,21 @@ tr:
approve_user: Kullanıcıyı Onayla
assigned_to_self_report: Raporu Ata
change_email_user: Kullanıcı E-postasını Değiştir
+ change_role_user: Kullanıcının Rolünü Değiştir
confirm_user: Kullanıcıyı Onayla
create_account_warning: Uyarı Oluştur
create_announcement: Duyuru Oluştur
+ create_canonical_email_block: E-posta Engeli Oluştur
create_custom_emoji: Özel İfade Oluştur
create_domain_allow: İzin Verilen Alan Adı Oluştur
create_domain_block: Engellenen Alan Adı Oluştur
create_email_domain_block: E-Posta Alan Adı Engeli Oluştur
create_ip_block: IP kuralı oluştur
create_unavailable_domain: Mevcut Olmayan Alan Adı Oluştur
+ create_user_role: Rol Oluştur
demote_user: Kullanıcıyı Düşür
destroy_announcement: Duyuru Sil
+ destroy_canonical_email_block: E-Posta Engelini Sil
destroy_custom_emoji: Özel İfadeyi Sil
destroy_domain_allow: İzin Verilen Alan Adını Sil
destroy_domain_block: Engellenen Alan Adını Sil
@@ -254,6 +193,7 @@ tr:
destroy_ip_block: IP kuralını sil
destroy_status: Durumu Sil
destroy_unavailable_domain: Mevcut Olmayan Alan Adı Sil
+ destroy_user_role: Rolü Kaldır
disable_2fa_user: 2AD Kapat
disable_custom_emoji: Özel İfadeyi Devre Dışı Bırak
disable_sign_in_token_auth_user: Kullanıcı için E-posta Token Doğrulamayı devre dışı bırak
@@ -280,24 +220,30 @@ tr:
update_announcement: Duyuruyu Güncelle
update_custom_emoji: Özel İfadeyi Güncelle
update_domain_block: Engellenen Alan Adını Güncelle
+ update_ip_block: IP kuralını güncelle
update_status: Durumu Güncelle
+ update_user_role: Rolü Güncelle
actions:
approve_appeal_html: "%{name}, %{target} kullanıcısının yönetim kararına itirazını kabul etti"
approve_user_html: "%{name}, %{target} konumundan kaydı onayladı"
assigned_to_self_report_html: "%{name} kendilerine %{target} adlı raporu verdi"
change_email_user_html: "%{name}, %{target} kullanıcısının e-posta adresini değiştirdi"
+ change_role_user_html: "%{name}, %{target} kişisinin rolünü değiştirdi"
confirm_user_html: "%{name} %{target} kullanıcısının e-posta adresini onayladı"
create_account_warning_html: "%{name} %{target} 'a bir uyarı gönderdi"
create_announcement_html: "%{name}, yeni %{target} duyurusunu oluşturdu"
+ create_canonical_email_block_html: "%{name}, %{target} karmasıyla e-posta engelledi"
create_custom_emoji_html: "%{name} yeni %{target} ifadesini yükledi"
create_domain_allow_html: "%{name}, %{target} alan adıyla birliğe izin verdi"
create_domain_block_html: "%{name}, %{target} alan adını engelledi"
create_email_domain_block_html: "%{name}, %{target} e-posta alan adını engelledi"
create_ip_block_html: "%{name}, %{target} IP adresi için kural oluşturdu"
create_unavailable_domain_html: "%{name}, %{target} alan adına teslimatı durdurdu"
+ create_user_role_html: "%{name}, %{target} rolünü oluşturdu"
demote_user_html: "%{name}, %{target} kullanıcısını düşürdü"
destroy_announcement_html: "%{name}, %{target} duyurusunu sildi"
- destroy_custom_emoji_html: "%{name}, %{target} emojisini yok etti"
+ destroy_canonical_email_block_html: "%{name}, %{target} karmasıyla e-posta engelini kaldırdı"
+ destroy_custom_emoji_html: "%{name}, %{target} ifadesini sildi"
destroy_domain_allow_html: "%{name}, %{target} alan adıyla birlik iznini kaldırdı"
destroy_domain_block_html: "%{name}, %{target} alan adı engelini kaldırdı"
destroy_email_domain_block_html: "%{name}, %{target} e-posta alan adı engelini kaldırdı"
@@ -305,6 +251,7 @@ tr:
destroy_ip_block_html: "%{name}, %{target} IP adresi kuralını sildi"
destroy_status_html: "%{name}, %{target} kullanıcısının gönderisini kaldırdı"
destroy_unavailable_domain_html: "%{name}, %{target} alan adına teslimatı sürdürdü"
+ destroy_user_role_html: "%{name}, %{target} rolünü sildi"
disable_2fa_user_html: "%{name}, %{target} kullanıcısının iki aşamalı doğrulama gereksinimini kapattı"
disable_custom_emoji_html: "%{name}, %{target} emojisini devre dışı bıraktı"
disable_sign_in_token_auth_user_html: "%{name}, %{target} için e-posta token doğrulamayı devre dışı bıraktı"
@@ -331,8 +278,9 @@ tr:
update_announcement_html: "%{name}, %{target} duyurusunu güncelledi"
update_custom_emoji_html: "%{name}, %{target} emojisini güncelledi"
update_domain_block_html: "%{name}, %{target} alan adının engelini güncelledi"
+ update_ip_block_html: "%{name}, %{target} IP adresi için kuralı güncelledi"
update_status_html: "%{name}, %{target} kullanıcısının gönderisini güncelledi"
- deleted_status: "(silinmiş durum)"
+ update_user_role_html: "%{name}, %{target} rolünü değiştirdi"
empty: Kayıt bulunamadı.
filter_by_action: Eyleme göre filtre
filter_by_user: Kullanıcıya göre filtre
@@ -376,6 +324,7 @@ tr:
listed: Listelenen
new:
title: Yeni özel emoji ekle
+ no_emoji_selected: Hiçbiri seçilmediğinden hiçbir emoji değiştirilmedi
not_permitted: Bu işlemi gerçekleştirme izniniz yok
overwrite: Üzerine yaz
shortcode: Kısa kod
@@ -428,6 +377,7 @@ tr:
destroyed_msg: Domain bloğu silindi
domain: Alan adı
edit: Etki alanı bloğunu düzenle
+ existing_domain_block: Zaten %{name} için daha katı sınırlamalar dayatmıştınız.
existing_domain_block_html: '%{name}''e zaten daha katı sınırlar uyguladınız, önce engellemesini kaldırmanız gerekiyor.'
new:
create: Yeni blok oluştur
@@ -572,11 +522,11 @@ tr:
relays:
add_new: Yeni aktarıcı ekle
delete: Sil
- description_html: "Federasyon aktarıcısı , kendisine abone olan ve yayın yapan sunucular arasında büyük miktarlarda herkese açık tootların değiş tokuşunu yapan aracı bir sunucudur. Küçük ve orta boyutlu sunucuların fediverse'ten içerik keşfetmesine yardımcı olurlar , aksi takdirde yerel kullanıcıların uzak sunuculardaki diğer kişileri manuel olarak takip etmeleri gerekecektir."
+ description_html: "Federasyon aktarıcısı , kendisine abone olan ve yayın yapan sunucular arasında büyük miktarlarda herkese açık gönderilerin değiş tokuşunu yapan aracı bir sunucudur. Küçük ve orta boyutlu sunucuların fediverse'ten içerik keşfetmesine yardımcı olurlar , aksi takdirde yerel kullanıcıların uzak sunuculardaki diğer kişileri manuel olarak takip etmeleri gerekecektir."
disable: Devre dışı
disabled: Devre dışı
enable: Etkin
- enable_hint: Etkinleştirildiğinde, sunucunuz bu aktarıcıdan gelecek tüm herkese açık tootlara abone olacak, ve kendisinin herkese açık tootlarını bu aktarıcıya göndermeye başlayacaktır.
+ enable_hint: Etkinleştirildiğinde, sunucunuz bu aktarıcıdan gelecek tüm herkese açık gönderilere abone olacak, ve kendisinin herkese açık gönderilerini bu aktarıcıya göndermeye başlayacaktır.
enabled: Etkin
inbox_url: Aktarıcı URL'si
pending: Aktarıcının onaylaması için bekleniyor
@@ -648,6 +598,67 @@ tr:
unresolved: Giderilmedi
updated_at: Güncellendi
view_profile: Profili görüntüle
+ roles:
+ add_new: Rol ekle
+ assigned_users:
+ one: "%{count} kullanıcı"
+ other: "%{count} kullanıcı"
+ categories:
+ administration: Yönetim
+ devops: Devops
+ invites: Davetler
+ moderation: Denetim
+ special: Özel
+ delete: Sil
+ description_html: "Kullanıcı rolleri ile, kullanıcılarınızın Mastodon'un hangi işlevlerine ve alanlarına erişebileceğini düzenleyebilirsiniz."
+ edit: "'%{name}' rolünü düzenle"
+ everyone: Varsayılan izinler
+ everyone_full_description_html: Bu, herhangi bir rol atanmamış olanlar da olmak üzere tüm kullanıcıları etkileyen temel rol dür. Diğer tüm roller izinleri bu rolden alıyorlar.
+ permissions_count:
+ one: "%{count} izin"
+ other: "%{count} izin"
+ privileges:
+ administrator: Yönetici
+ administrator_description: Bu izne sahip kullanıcılar tüm diğer izinleri atlıyorlar
+ delete_user_data: Kullanıcı Verilerini Silme
+ delete_user_data_description: Kullanıcıların, diğer kullanıcıların verisini gecikme olmaksızın silmesine izin verir
+ invite_users: Kullanıcıları Davet Etme
+ invite_users_description: Kullanıcıların yeni kişileri sunucuya davet etmesine izin verir
+ manage_announcements: Duyuruları Yönetme
+ manage_announcements_description: Kullanıcıların sunucudaki duyuruları yönetmesine izin verir
+ manage_appeals: İtirazları Yönetme
+ manage_appeals_description: Kullanıcıların denetleme eylemlerine itirazları gözden geçirmesine izin verir
+ manage_blocks: Engelleri Yönetme
+ manage_blocks_description: Kullanıcıların e-posta sağlayıcıları ve IP adreslerini engellemesine izin verir
+ manage_custom_emojis: Özel İfadeleri Yönetme
+ manage_custom_emojis_description: Kullanıcıların sunucudaki özel ifadeleri yönetmesine izin verir
+ manage_federation: Birleştirme Yönetme
+ manage_federation_description: Kullanıcıların diğer alan adlarıyla birleştirmeye izin vermesi veya engellemesine ve teslim edilebilirliği denetlemesine izin verir
+ manage_invites: Davetleri Yönetme
+ manage_invites_description: Kullanıcıların davet bağlantılarını görüntüleme ve etkisizleştirmesine izin verir
+ manage_reports: Raporları Yönetme
+ manage_reports_description: Kullanıcıların bildirimleri incelemesine ve onlara yönelik denetim eylemleri gerçekleştirmesine izin verir
+ manage_roles: Rolleri Yönetme
+ manage_roles_description: Kullanıcıların kendi rollerinden düşük rolleri atamasına izin verir
+ manage_rules: Kuralları Yönetme
+ manage_rules_description: Kullanıcıların sunucu kurallarını değiştirmesine izin ver
+ manage_settings: Ayarları Yönetme
+ manage_settings_description: Kullanıcıların site ayarlarını değiştirmesine izin verir
+ manage_taxonomies: Kategorileri Yönetme
+ manage_taxonomies_description: Kullanıcıların öne çıkan içeriği incelemesine ve etiket ayarlarını güncellemesine izin verir
+ manage_user_access: Kullanıcı Erişimini Yönetme
+ manage_user_access_description: Kullanıcıların, diğer kullanıcıların işi aşamalı yetkilendirme, e-posta adreslerini değiştirme ve parolalarını sıfırlama eylemlerini etkisizleştirmesine izin verir
+ manage_users: Kullanıcıları Yönetme
+ manage_users_description: Kullanıcıların, diğer kullanıcıların ayrıntılarını görüntülemesine ve onlara karşı denetim eylemleri gerçekleştirmesine izin verir
+ manage_webhooks: Webhookları Yönetme
+ manage_webhooks_description: Kullanıcıların yönetsel olaylar için webhook kurmasına izin verir
+ view_audit_log: Denetim Kaydını Görüntüleme
+ view_audit_log_description: Kullanıcıların sunucudaki yönetsel eylemlerin bir tarihçesini görüntülemesine izin verir
+ view_dashboard: Ana Paneli Görüntüleme
+ view_dashboard_description: Kullanıcıların ana panele ve çeşitli ölçütlere erişmesine izin verir
+ view_devops: Devops
+ view_devops_description: Kullanıcıların Sidekiq ve pgHero panellerine erişmesine izin verir
+ title: Roller
rules:
add_new: Kural ekle
delete: Sil
@@ -656,108 +667,67 @@ tr:
empty: Henüz bir sunucu kuralı tanımlanmadı.
title: Sunucu kuralları
settings:
- activity_api_enabled:
- desc_html: Yerel olarak yayınlanan durumların, aktif kullanıcıların, ve haftalık kovalardaki yeni kayıtların sayısı
- title: Kullanıcı etkinliği hakkında toplu istatistikler yayınlayın
- bootstrap_timeline_accounts:
- desc_html: Birden fazla kullanıcı adını virgülle ayırın. Yalnızca yerel ve kilitlenmemiş hesaplar geçerlidir. Boş olduğunda varsayılan tüm yerel yöneticilerdir.
- title: Yeni kullanıcılar için varsayılan takipler
- contact_information:
- email: Herkese açık e-posta adresiniz
- username: Bir kullanıcı adı giriniz
- custom_css:
- desc_html: Görünümü her sayfada yüklenecek CSS ile değiştirin
- title: Özel CSS
- default_noindex:
- desc_html: Bu ayarı kendileri değiştirmeyen tüm kullanıcıları etkiler
- title: Varsayılan olarak kullanıcıları arama motoru indekslemesinin dışında tut
+ about:
+ manage_rules: Sunucu kurallarını yönet
+ preamble: Sunucunun nasıl işletildiği, yönetildiği ve fonlandığı hakkında ayrıntılı bilgi verin.
+ rules_hint: Kullanıcılarınızın uyması beklenen kurallar için özel bir alan var.
+ title: Hakkında
+ appearance:
+ preamble: Mastodon'un web arayüzünü düzenleyin.
+ title: Görünüm
+ branding:
+ preamble: Sunucunuzun markalaşması ağdaki diğer sunuculardan farklıdır. Bu bilgiler Mastodon'un web arayüzü, doğal uygulamalar, diğer sitelerdeki ve ileti uygulamalarındaki bağlantı önizlemeleri, vb. gibi çeşitli ortamlarda görüntülenebilir. Bu nedenle bu bilgiyi açık, kısa ve özlü tutmak en iyisidir.
+ title: Marka
+ content_retention:
+ preamble: Kullanıcıların ürettiği içeriğin Mastodon'da nasıl saklanacağını denetleyin.
+ title: İçerik saklama
+ discovery:
+ follow_recommendations: Takip önerileri
+ preamble: İlginç içeriği gezinmek, Mastodon'da kimseyi tanımayan yeni kullanıcıları alıştırmak için oldukça etkilidir. Sunucunuzdaki çeşitli keşif özelliklerinin nasıl çalıştığını denetleyin.
+ profile_directory: Profil dizini
+ public_timelines: Genel zaman çizelgeleri
+ title: Keşfet
+ trends: Öne çıkanlar
domain_blocks:
all: Herkes için
disabled: Hiç kimseye
- title: Engellenen alan adlarını göster
users: Oturum açan yerel kullanıcılara
- domain_blocks_rationale:
- title: Gerekçeyi göster
- hero:
- desc_html: Önsayfada görüntülenir. En az 600x100px önerilir. Ayarlanmadığında, sunucu küçük resmi kullanılır
- title: Kahraman görseli
- mascot:
- desc_html: Birden fazla sayfada görüntülenir. En az 293x205px önerilir. Ayarlanmadığında, varsayılan maskot kullanılır
- title: Maskot görseli
- peers_api_enabled:
- desc_html: Bu sunucunun fediverse'te karşılaştığı alan adları
- title: Keşfedilen sunucuların listesini yayınla
- preview_sensitive_media:
- desc_html: Medya duyarlı olarak işaretlenmiş olsa bile, diğer web sitelerindeki bağlantı ön izlemeleri küçük resim gösterecektir
- title: OpenGraph ön izlemelerinde hassas medyayı göster
- profile_directory:
- desc_html: Kullanıcıların keşfedilebilir olmasına izin ver
- title: Profil dizinini etkinleştir
registrations:
- closed_message:
- desc_html: Kayıt alımları kapatıldığında ana sayfada görüntülenecek mesajdır. HTML etiketleri kullanabilirsiniz
- title: Kayıt alımları kapatılma mesajı
- deletion:
- desc_html: Herkese hesabını silme izni ver
- title: Hesap silmeyi aç
- min_invite_role:
- disabled: Hiç kimse
- title: tarafından yapılan davetlere izin ver
- require_invite_text:
- desc_html: Kayıtlar elle doğrulama gerektiriyorsa, "Neden katılmak istiyorsunuz?" metin girdisini isteğe bağlı yerine zorunlu yapın
- title: Yeni kullanıcıların katılmak için bir gerekçe sunmasını gerektir
+ preamble: Sunucunuzda kimin hesap oluşturabileceğini denetleyin.
+ title: Kayıtlar
registrations_mode:
modes:
approved: Kayıt için onay gerekli
none: Hiç kimse kayıt olamaz
open: Herkes kaydolabilir
- title: Kayıt modu
- show_known_fediverse_at_about_page:
- desc_html: Değiştirildiğinde, bilinen bütün fediverse'lerden gönderileri ön izlemede gösterir. Diğer türlü sadece yerel gönderileri gösterecektir.
- title: Zaman çizelgesi ön izlemesinde bilinen fediverse'i göster
- show_staff_badge:
- desc_html: Kullanıcının sayfasında bir personel rozeti göster
- title: Personel rozeti göster
- site_description:
- desc_html: Ana sayfada paragraf olarak görüntülenecek bilgidir. Özellikle <a>
ve <em>
olmak suretiyle HTML etiketlerini kullanabilirsiniz.
- title: Site açıklaması
- site_description_extended:
- desc_html: Harici bilgi sayfasında gösterilir. HTML etiketleri girebilirsiniz
- title: Sunucu hakkında detaylı bilgi
- site_short_description:
- desc_html: Kenar çubuğunda ve meta etiketlerinde görüntülenir. Mastodon'un ne olduğunu ve bu sunucuyu özel kılan şeyleri tek bir paragrafta açıklayın.
- title: Kısa sunucu açıklaması
- site_terms:
- desc_html: Kendi gizlilik politikanızı, hizmet şartlarınızı ya da diğer hukuki metinlerinizi yazabilirsiniz. HTML etiketleri kullanabilirsiniz
- title: Özel hizmet şartları
- site_title: Site başlığı
- thumbnail:
- desc_html: OpenGraph ve API ile ön izlemeler için kullanılır. 1200x630px tavsiye edilir
- title: Sunucu küçük resmi
- timeline_preview:
- desc_html: Açılış sayfasında genel zaman çizelgesini görüntüle
- title: Zaman çizelgesi önizlemesi
- title: Site Ayarları
- trendable_by_default:
- desc_html: Daha önce izin verilmeyen etiketleri etkiler
- title: Ön inceleme yapmadan etiketlerin trend olmasına izin ver
- trends:
- desc_html: Şu anda trend olan ve daha önce incelenen etiketleri herkese açık olarak göster
- title: Gündem etiketleri
+ title: Sunucu Ayarları
site_uploads:
delete: Yüklenen dosyayı sil
destroyed_msg: Site yüklemesi başarıyla silindi!
statuses:
+ account: Yazar
+ application: Uygulama
back_to_account: Hesap sayfasına geri dön
back_to_report: Bildirim sayfasına geri dön
batch:
remove_from_report: Bildirimden kaldır
report: Bildirim
deleted: Silindi
+ favourites: Favoriler
+ history: Sürüm geçmişi
+ in_reply_to: Yanıtlanan
+ language: Dil
media:
title: Medya
+ metadata: Üstveri
no_status_selected: Hiçbiri seçilmediğinden hiçbir durum değiştirilmedi
+ open: Gönderiyi aç
+ original_status: Özgün gönderi
+ reblogs: Yeniden Paylaşımlar
+ status_changed: Gönderi değişti
title: Hesap durumları
+ trending: Öne çıkanlar
+ visibility: Görünürlük
with_media: Medya ile
strikes:
actions:
@@ -797,6 +767,9 @@ tr:
description_html: Bu bağlantılar şu anda sunucunuzun gönderilerini gördüğü hesaplarca bolca paylaşılıyor. Kullanıcılarınızın dünyada neler olduğunu görmesine yardımcı olabilir. Yayıncıyı onaylamadığınız sürece hiçbir bağlantı herkese açık yayınlanmaz. Tekil bağlantıları onaylayabilir veya reddedebilirsiniz.
disallow: Bağlantıya izin verme
disallow_provider: Yayıncıya izin verme
+ no_link_selected: Hiçbiri seçilmediğinden hiçbir bağlantı değiştirilmedi
+ publishers:
+ no_publisher_selected: Hiçbiri seçilmediğinden hiçbir yayıncı değiştirilmedi
shared_by_over_week:
one: Geçen hafta bir kişi paylaştı
other: Geçen hafta %{count} kişi paylaştı
@@ -816,6 +789,7 @@ tr:
description_html: Bunlar, sunucunuzca bilinen, şu an sıklıkla paylaşılan ve beğenilen gönderilerdir. Yeni ve geri dönen kullanıcılarınızın takip etmesi için daha fazla kullanıcı bulmasına yararlar. Siz yazarı onaylamadığınız ve yazar hesabının başkalarına önerilmesine izin vermediği sürece gönderileri herkese açık olarak gösterilmez. Tekil gönderileri de onaylayabilir veya reddedebilirsiniz.
disallow: Gönderi iznini kaldır
disallow_account: Yazar iznini kaldır
+ no_status_selected: Hiçbiri seçilmediğinden hiçbir öne çıkan gönderi değiştirilmedi
not_discoverable: Yazar keşfedilebilir olmamayı seçiyor
shared_by:
one: Bir defa paylaşıldı veya favorilendi
@@ -831,6 +805,7 @@ tr:
tag_uses_measure: toplam kullanım
description_html: Bunlar sunucunuzun gördüğü gönderilerde sıklıkla gözüken etiketlerdir. Kullanıcılarınızın, şu an en çok ne hakkında konuşulduğunu görmesine yardımcı olurlar. Onaylamadığınız sürece etiketler herkese açık görünmez.
listable: Önerilebilir
+ no_tag_selected: Hiçbiri seçilmediğinden hiçbir etiket değiştirilmedi
not_listable: Önerilmeyecek
not_trendable: Öne çıkanlar altında görünmeyecek
not_usable: Kullanılamaz
@@ -851,6 +826,26 @@ tr:
edit_preset: Uyarı ön-ayarını düzenle
empty: Henüz önceden ayarlanmış bir uyarı tanımlanmadı.
title: Uyarı ön-ayarlarını yönet
+ webhooks:
+ add_new: Uç nokta ekle
+ delete: Sil
+ description_html: Bir web kancası Mastodon'un, uygulamanızda seçili olaylar hakkında gerçek zamanlı bildirimler göndermesini sağlar, böylece uygulamanız otomatik olarak tepkileri tetikleyebilir .
+ disable: Devre dışı bırak
+ disabled: Devre dışı
+ edit: Uç nokta düzenle
+ empty: Henüz yapılandırılmış bir web kancanız yok.
+ enable: Etkinleştir
+ enabled: Etkin
+ enabled_events:
+ one: 1 aktif etkinlik
+ other: "%{count} aktif etkinlik"
+ events: Olaylar
+ new: Yeni web kancası
+ rotate_secret: Gizi döndür
+ secret: Gizi imzalama
+ status: Durum
+ title: Web kancaları
+ webhook: Web kancası
admin_mailer:
new_appeal:
actions:
@@ -874,12 +869,8 @@ tr:
new_trends:
body: 'Aşağıdaki öğeler herkese açık olarak gösterilmeden önce gözden geçirilmelidir:'
new_trending_links:
- no_approved_links: Şu anda onaylanmış öne çıkan bağlantı yok.
- requirements: 'Aşağıdaki adaylardan herhangi biri, şu anda %{lowest_link_score} skoruna sahip "%{lowest_link_title}" olan #%{rank} onaylanmış öne çıkan bağlantıyı geçebilir.'
title: Öne çıkan bağlantılar
new_trending_statuses:
- no_approved_statuses: Şu anda onaylanmış öne çıkan gönderi yok.
- requirements: 'Aşağıdaki adaylardan herhangi biri, şu anda %{lowest_status_score} skoruna sahip "%{lowest_status_url}" olan #%{rank} onaylanmış öne çıkan gönderiyi geçebilir.'
title: Öne çıkan gönderiler
new_trending_tags:
no_approved_tags: Şu anda onaylanmış öne çıkan etiket yok.
@@ -904,7 +895,7 @@ tr:
guide_link: https://crowdin.com/project/mastodon
guide_link_text: Herkes katkıda bulunabilir.
sensitive_content: Hassas içerik
- toot_layout: Toot yerleşimi
+ toot_layout: Gönderi düzeni
application_mailer:
notification_preferences: E-posta tercihlerini değiştir
salutation: "%{name},"
@@ -915,16 +906,13 @@ tr:
applications:
created: Uygulama başarıyla oluşturuldu
destroyed: Uygulama başarıyla silindi
- invalid_url: Verilen URL geçerli değil
regenerate_token: Erişim belirtecini yeniden oluştur
token_regenerated: Erişim belirteci başarıyla oluşturuldu
warning: Bu verilere çok dikkat edin. Asla kimseyle paylaşmayın!
your_token: Erişim belirteciniz
auth:
- apply_for_account: Davet et
+ apply_for_account: Bekleme listesine gir
change_password: Parola
- checkbox_agreement_html: Sunucu kurallarını ve hizmet şartlarını kabul ediyorum
- checkbox_agreement_without_rules_html: Hizmet şartlarını kabul ediyorum
delete_account: Hesabı sil
delete_account_html: Hesabını silmek istersen, buradan devam edebilirsin . Onay istenir.
description:
@@ -943,6 +931,7 @@ tr:
migrate_account: Farklı bir hesaba taşıyın
migrate_account_html: Bu hesabı başka bir hesaba yönlendirmek istiyorsan, buradan yapılandırabilirsin .
or_log_in_with: 'Veya şununla oturum açın:'
+ privacy_policy_agreement_html: Gizlilik politikasını okudum ve kabul ettim
providers:
cas: CAS
saml: SAML
@@ -950,12 +939,18 @@ tr:
registration_closed: "%{instance} yeni üyeler kabul etmemektedir"
resend_confirmation: Onaylama talimatlarını tekrar gönder
reset_password: Parolayı sıfırla
+ rules:
+ preamble: Bunlar, %{domain} moderatörleri tarafından ayarlanmış ve uygulanmıştır.
+ title: Bazı temel kurallar.
security: Güvenlik
set_new_password: Yeni parola belirle
setup:
email_below_hint_html: Eğer aşağıdaki e-posta adresi yanlışsa, onu burada değiştirebilir ve yeni bir doğrulama e-postası alabilirsiniz.
email_settings_hint_html: Onaylama e-postası %{email} adresine gönderildi. Eğer bu e-posta adresi doğru değilse, hesap ayarlarından değiştirebilirsiniz.
title: Kurulum
+ sign_up:
+ preamble: Bu Mastodon sunucusu üzerinden bir hesap ile ağdaki herhangi bir kişiyi, hesabı hangi sunucuda saklanırsa saklansın, takip edebilirsiniz.
+ title: "%{domain} için kurulumunuzu yapalım."
status:
account_status: Hesap durumu
confirming: E-posta doğrulamasının tamamlanması bekleniyor.
@@ -964,7 +959,6 @@ tr:
redirecting_to: Hesabınız aktif değil çünkü şu anda %{acct} adresine yönlendirilmektedir.
view_strikes: Hesabınıza yönelik eski eylemleri görüntüleyin
too_fast: Form çok hızlı gönderildi, tekrar deneyin.
- trouble_logging_in: Oturum açarken sorun mu yaşıyorsunuz?
use_security_key: Güvenlik anahtarını kullan
authorize_follow:
already_following: Bu hesabı zaten takip ediyorsunuz
@@ -1022,10 +1016,6 @@ tr:
more_details_html: Daha fazla ayrıntı için, gizlilik politikası na göz atın.
username_available: Kullanıcı adınız tekrar kullanılabilir olacaktır
username_unavailable: Kullanıcı adınız kullanılamaz kalacaktır
- directories:
- directory: Profil Dizini
- explanation: Kullanıcıları ilgi alanlarına göre keşfedin
- explore_mastodon: "%{title} sunucusunu keşfet"
disputes:
strikes:
action_taken: Yapılan işlem
@@ -1104,29 +1094,60 @@ tr:
public: Genel zaman çizelgesi
thread: Sohbetler
edit:
+ add_keyword: Anahtar sözcük ekle
+ keywords: Anahtar Sözcükler
+ statuses: Tekil gönderiler
+ statuses_hint_html: Bu filtre, aşağıdaki anahtar kelimelerle eşleşip eşleşmediklerinden bağımsız olarak tekil gönderileri seçmek için uygulanıyor. Filtredeki gönderileri inceleyin veya kaldırın .
title: Filtreyi düzenle
errors:
+ deprecated_api_multiple_keywords: Bu parametreler, birden fazla filtre anahtar sözcüğü için geçerli olduğundan dolayı bu uygulama içerisinden değiştirilemezler. Daha yeni bir uygulama veya web arayüzünü kullanın.
invalid_context: Sıfır ya da geçersiz içerik sağlandı
- invalid_irreversible: Geri dönüşümsüz filtreleme sadece anasayfa ya da bildirim bağlamında çalışır
index:
+ contexts: "%{contexts} içindeki filtreler"
delete: Sil
empty: Hiç filtreniz yok.
+ expires_in: "%{distance} sürede sona eriyor"
+ expires_on: "%{date} tarihinde sona eriyor"
+ keywords:
+ one: "%{count} anahtar sözcük"
+ other: "%{count} anahtar sözcük"
+ statuses:
+ one: "%{count} gönderi"
+ other: "%{count} gönderi"
+ statuses_long:
+ one: "%{count} tekil gönderi gizli"
+ other: "%{count} tekil gönderi gizli"
title: Filtreler
new:
+ save: Yeni filtre kaydet
title: Yeni filtre ekle
+ statuses:
+ back_to_filter: Filtreye dön
+ batch:
+ remove: Filtreden kaldır
+ index:
+ hint: Bu filtre diğer ölçütlerden bağımsız olarak tekil gönderileri seçmek için uygulanıyor. Web arayüzünü kullanarak bu filtreye daha fazla gönderi ekleyebilirsiniz.
+ title: Filtrelenmiş gönderiler
footer:
- developers: Geliştiriciler
- more: Daha Fazla…
- resources: Kaynaklar
trending_now: Şu an gündemde
generic:
all: Tümü
+ all_items_on_page_selected_html:
+ one: Bu sayfadaki %{count} öğe seçilmiş.
+ other: Bu sayfadaki tüm %{count} öğe seçilmiş.
+ all_matching_items_selected_html:
+ one: Aramanızla eşleşen %{count} öğe seçilmiş.
+ other: Aramanızla eşleşen tüm %{count} öğe seçilmiş.
changes_saved_msg: Değişiklikler başarıyla kaydedildi!
copy: Kopyala
delete: Sil
+ deselect: Hiçbirini seçme
none: Hiçbiri
order_by: Sıralama ölçütü
save_changes: Değişiklikleri kaydet
+ select_all_matching_items:
+ one: Aramanızla eşleşen %{count} öğeyi seç.
+ other: Aramanızla eşleşen tüm %{count} öğeyi seç.
today: bugün
validation_errors:
one: Bir şeyler ters gitti! Lütfen aşağıdaki hatayı gözden geçiriniz
@@ -1150,7 +1171,6 @@ tr:
following: Takip edilenler listesi
muting: Susturulanlar listesi
upload: Yükle
- in_memoriam_html: Hatırada.
invites:
delete: Devre dışı bırak
expired: Süresi dolmuş
@@ -1231,23 +1251,14 @@ tr:
copy_account_note_text: 'Bu kullanıcı %{acct} adresinden taşındı, işte onlarla ilgili önceki notlarınız:'
notification_mailer:
admin:
+ report:
+ subject: "%{name} bir bildirim gönderdi"
sign_up:
subject: "%{name} kaydoldu"
- digest:
- action: Tüm bildirimleri görüntüle
- body: Son ziyaretiniz olan %{since}'den beri'da kaçırdığınız şeylerin özeti
- mention: "%{name} senden bahsetti:"
- new_followers_summary:
- one: Ayrıca, uzaktayken yeni bir takipçi kazandınız! Yaşasın!
- other: Ayrıca, uzaktayken %{count} yeni takipçi kazandınız! İnanılmaz!
- subject:
- one: "Son ziyaretinizden bu yana 1 yeni bildirim 🐘"
- other: "Son ziyaretinizden bu yana %{count} yeni bildirim 🐘"
- title: Senin yokluğunda...
favourite:
body: "%{name} durumunu beğendi:"
subject: "%{name} durumunu beğendi"
- title: Yeni beğeni
+ title: Yeni Favori
follow:
body: "%{name} artık seni takip ediyor!"
subject: "%{name} artık seni takip ediyor"
@@ -1315,6 +1326,8 @@ tr:
other: Diğer
posting_defaults: Gönderi varsayılanları
public_timelines: Genel zaman çizelgeleri
+ privacy_policy:
+ title: Gizlilik Politikası
reactions:
errors:
limit_reached: Farklı reaksiyonların sınırına ulaşıldı
@@ -1337,22 +1350,7 @@ tr:
remove_selected_follows: Seçili kullanıcıları takip etmeyi bırak
status: Hesap durumu
remote_follow:
- acct: İşlem yapmak istediğiniz kullaniciadi@alanadini girin
missing_resource: Hesabınız için gerekli yönlendirme URL'si bulunamadı
- no_account_html: Hesabınız yok mu? Buradan kaydolabilirsiniz
- proceed: Takip etmek için devam edin
- prompt: Bu kullanıcıyı takip etmek istediğinize emin misiniz?
- reason_html: "Bu adım neden gerekli? %{instance}
kayıtlı olduğunuz sunucu olmayabilir, bu yüzden önce sizi kendi sunucunuza yönlendirmemiz gerekmektedir."
- remote_interaction:
- favourite:
- proceed: Beğenmek için devam edin
- prompt: 'Bu tootu beğenmek istiyorsunuz:'
- reblog:
- proceed: Boostlamak için devam edin
- prompt: 'Bu tootu boostlamak istiyorsunuz:'
- reply:
- proceed: Yanıtlamak için devam edin
- prompt: 'Bu tootu yanıtlamak istiyorsunuz:'
reports:
errors:
invalid_rules: geçerli kurallara işaret etmez
@@ -1362,8 +1360,8 @@ tr:
account: "@%{acct} hesabından herkese açık gönderiler"
tag: "#%{hashtag} etiketli herkese açık gönderiler"
scheduled_statuses:
- over_daily_limit: O gün için %{limit} zamanlanmış toot sınırını aştınız
- over_total_limit: "%{limit} zamanlanmış toot sınırını aştınız"
+ over_daily_limit: Bugün için %{limit} zamanlanmış gönderi sınırını aştınız
+ over_total_limit: "%{limit} zamanlanmış gönderi sınırını aştınız"
too_soon: Programlanan tarih bugünden ileri bir tarihte olmalıdır
sessions:
activity: Son etkinlik
@@ -1455,8 +1453,8 @@ tr:
over_character_limit: "%{max} karakter limiti aşıldı"
pin_errors:
direct: Sadece değinilen kullanıcıların görebileceği gönderiler üstte tutulamaz
- limit: Hali hazırda maksimum sayıda tootu sabitlediniz
- ownership: Başkasının tootu sabitlenemez
+ limit: Halihazırda maksimum sayıda gönderi sabitlediniz
+ ownership: Başkasının gönderisi sabitlenemez
reblog: Bir boost sabitlenemez
poll:
total_people:
@@ -1485,7 +1483,7 @@ tr:
enabled_hint: Belirli bir zaman eşiğine ulaşan eski gönderilerinizi, aşağıdaki istisnalara uymadıkları sürece otomatik olarak siler
exceptions: İstisnalar
explanation: Gönderi silme maliyetli bir iş olduğu için, sunucu çok yoğun olmadığında yavaş yavaş yapılmaktadır. Bu nedenle, gönderilerinizin zaman eşiği geldiğinde silinmesi belirli bir süre alabilir.
- ignore_favs: Beğenileri yoksay
+ ignore_favs: Favorileri yoksay
ignore_reblogs: Teşvikleri yoksay
interaction_exceptions: Etkileşimlere dayalı istisnalar
interaction_exceptions_explanation: Bir kere değerlendirmeye alındıktan sonra, belirtilen beğeni veya teşvik eşiğinin altında düşünce gönderilerin silinmesinin bir güvencesi yok.
@@ -1516,7 +1514,7 @@ tr:
min_reblogs: Şundan daha fazla teşvik edilen gönderileri sakla
min_reblogs_hint: Bu belirtilenden daha fazla teşvik edilen gönderilerinizin herhangi birini silmez. Teşvik sayısından bağımsız olarak gönderilerin silinmesi için burayı boş bırakın
stream_entries:
- pinned: Sabitlenmiş toot
+ pinned: Sabitlenmiş gönderi
reblogged: boostladı
sensitive_content: Hassas içerik
strikes:
@@ -1524,88 +1522,6 @@ tr:
too_late: Bu eyleme itiraz etmek için çok geç
tags:
does_not_match_previous_name: önceki adla eşleşmiyor
- terms:
- body_html: |
- Gizlilik Politikası
- Hangi bilgileri topluyoruz?
-
-
- Temel hesap bilgileri : Bu sunucuya kaydolursanız, bir kullanıcı adı, bir e-posta adresi ve bir parola girmeniz istenebilir. Ayrıca, ekran adı ve biyografi gibi ek profil bilgileri girebilir ve bir profil fotoğrafı ve başlık resmi yükleyebilirsiniz. Kullanıcı adı, ekran ad, biyografi, profil fotoğrafı ve başlık resmi her zaman herkese açık olarak listelenir.
- Gönderiler, takip etmeler ve diğer herkese açık bilgiler : Takip ettiğiniz kişilerin listesi herkese açık olarak listelenir, sizi takip edenler için de aynısı geçerlidir. Bir mesaj gönderdiğinizde, mesajı gönderdiğiniz uygulamanın yanı sıra tarih ve saati de saklanır. Mesajlar, resim ve video gibi medya ekleri içerebilir. Herkese açık ve listelenmemiş gönderiler halka açıktır. Profilinizde bir gönderiyi yayınladığınızda, bu da herkese açık olarak mevcut bir bilgidir. Gönderileriniz takipçilerinize iletilir, bazı durumlarda farklı sunuculara gönderilir ve kopyalar orada saklanır. Gönderilerinizi sildiğinizde, bu da takipçilerinize iletilir. Başka bir gönderiyi yeniden bloglama veya favorileme eylemi her zaman halka açıktır.
- Doğrudan ve takipçilere özel gönderiler : Tüm gönderiler sunucuda saklanır ve işlenir. Takipçilere özel gönderiler, takipçilerinize ve içinde bahsedilen kullanıcılara, doğrudan gönderiler ise yalnızca içinde bahsedilen kullanıcılara iletilir. Bu, bazı durumlarda farklı sunuculara iletildiği ve kopyaların orada saklandığı anlamına gelir. Bu gönderilere erişimi yalnızca yetkili kişilerle sınırlamak için iyi niyetle çalışıyoruz, ancak diğer sunucular bunu yapamayabilir. Bu nedenle, takipçilerinizin ait olduğu sunucuları incelemek önemlidir. Ayarlarda yeni izleyicileri manuel olarak onaylama ve reddetme seçeneğini değiştirebilirsiniz. Sunucuyu ve alıcı sunucuyu işleten kişilerin bu mesajları görüntüleyebileceğini unutmayın , ve alıcılar ekran görüntüsü alabilir, kopyalayabilir veya başka bir şekilde yeniden paylaşabilir. Mastodon üzerinden herhangi bir hassas bilgi paylaşmayın.
- IP'ler ve diğer meta veriler : Oturum açarken, giriş yaptığınız IP adresini ve tarayıcı uygulamanızın adını kaydederiz. Giriş yapılan tüm oturumlar, incelemek ve iptal etmek için ayarlarda mevcuttur. En son kullanılan IP adresi 12 aya kadar saklanır. Sunucumuza gelen her isteğin IP adresini içeren sunucu loglarını da saklayabiliriz.
-
-
-
-
- Bilgilerinizi ne için kullanıyoruz?
-
- Sizden topladığımız bilgilerin herhangi bir kısmı aşağıdaki şekillerde kullanılabilir:
-
-
- Mastodon'un ana işlevselliğini sağlamak için. Yalnızca oturum açtığınızda diğer kişilerin içeriğiyle etkileşime girebilir ve kendi içeriğinizi gönderebilirsiniz. Örneğin, başkalarının kombine gönderilerini kendi kişiselleştirilmiş ana sayfanızdaki zaman çizelgenizde görüntülemek için onları takip edebilirsiniz.
- Topluluğun denetlenmesine yardımcı olmak için, örneğin, yasaktan kaçınma veya diğer ihlalleri belirlemek için IP adresinizin diğer bilinen adreslerle karşılaştırılması.
- Verdiğiniz e-posta adresi, size bilgi, içeriğinizle etkileşimde bulunan diğer kişilerle ilgili bildirimler veya mesaj göndermek, sorgulara ve/veya diğer istek ve sorulara cevap vermek için kullanılabilir.
-
-
-
-
- Bilgilerinizi nasıl koruyoruz?
-
- Kişisel bilgilerinizi girerken, gönderirken veya onlara erişirken kişisel bilgilerinizin güvenliğini sağlamak için çeşitli güvenlik önlemleri uyguluyoruz. Diğer şeylerin yanı sıra, tarayıcı oturumunuz ve uygulamalarınız ile API arasındaki trafik SSL ile güvence altına alınır ve şifreniz sağlam bir tek yönlü bir algoritma kullanılarak şifrelenir. Hesabınıza daha güvenli bir şekilde erişebilmek için iki adımlı kimlik doğrulamasını etkinleştirebilirsiniz.
-
-
-
- Veri saklama politikamız nedir?
-
- Şunları yapmak için iyi niyetli bir şekilde çalışacağız:
-
-
- Bu sunucuya yapılan tüm isteklerin IP adresini içeren sunucu loglarını, bu tür logların şimdiye kadar saklandığı gibi, 90 günden fazla saklamayacağız.
- Kayıtlı kullanıcılarla ilişkili IP adreslerini en fazla 12 ay boyunca saklayacağız.
-
- Gönderileriniz, medya ekleriniz, profil fotoğrafınız ve başlık resminiz dahil, içeriğimizin arşivini talep edebilir ve indirebilirsiniz.
-
- Hesabınızı istediğiniz zaman geri alınamaz şekilde silebilirsiniz.
-
-
-
- Çerez kullanıyor muyuz?
-
- Evet. Çerezler, bir sitenin veya servis sağlayıcısının Web tarayıcınız üzerinden bilgisayarınızın sabit diskine aktardığı küçük dosyalardır (eğer izin verirseniz). Bu çerezler sitenin tarayıcınızı tanımasını ve kayıtlı bir hesabınız varsa, kayıtlı hesabınızla ilişkilendirmesini sağlar.
-
- Sonraki ziyaretlerde tercihlerinizi anlamak ve kaydetmek için çerezleri kullanıyoruz.
-
-
-
- Herhangi bir bilgiyi dış taraflara açıklıyor muyuz?
-
- Kişisel olarak tanımlanabilir bilgilerinizi dış taraflara satmıyor, takas etmiyor veya devretmiyoruz. Bu, taraflarımız bu bilgileri gizli tutmayı kabul ettiği sürece sitemizi işletmemize, işimizi yürütmemize veya size hizmet etmemize yardımcı olan güvenilir üçüncü tarafları içermemektedir. Ayrıca, yayınlanmanın yasalara uymayı, site politikalarımızı yürürlüğe koymayı ya da kendimizin ya da diğerlerinin haklarını, mülklerini ya da güvenliğini korumamızı sağladığına inandığımızda bilgilerinizi açıklayabiliriz.
-
- Herkese açık içeriğiniz ağdaki diğer sunucular tarafından indirilebilir. Bu takipçiler veya alıcılar bundan farklı bir sunucuda bulundukları sürece, herkese açık ve takipçilere özel gönderileriniz, takipçilerinizin bulunduğu sunuculara, ve doğrudan mesajlar, alıcıların sunucularına iletilir.
-
- Hesabınızı kullanması için bir uygulamayı yetkilendirdiğinizde, onayladığınız izinlerin kapsamına bağlı olarak, herkese açık profil bilgilerinize, takip ettiklerinizin listesine, takipçilerinize, listelerinize, tüm gönderilerinize ve favorilerinize erişebilir. Uygulamalar e-posta adresinize veya parolanıza asla erişemez.
-
-
-
- Sitenin çocuklar tarafından kullanımı
-
- Bu sunucu AB’de veya AEA’da ise: Site, ürün ve hizmetlerimizin tamamı en az 16 yaşında olan kişilere yöneliktir. Eğer 16 yaşın altındaysanız, GDPR yükümlülükleri gereği (General Data Protection Regulation ) bu siteyi kullanmayın.
-
- Bu sunucu ABD’de ise: Site, ürün ve hizmetlerimizin tamamı en az 13 yaşında olan kişilere yöneliktir. Eğer 13 yaşın altındaysanız, COPPA yükümlülükleri gereği (Children's Online Privacy Protection Act ) bu siteyi kullanmayın.
-
- Bu sunucu başka bir ülkede ise yasal gereklilikler farklı olabilir.
-
-
-
- Gizlilik Politikamızdaki Değişiklikler
-
- Gizlilik politikamızı değiştirmeye karar verirsek, bu değişiklikleri bu sayfada yayınlayacağız.
-
- Bu belge CC-BY-SA altında lisanslanmıştır. En son 26 Mayıs 2022 tarihinde güncellenmiştir.
-
- Discourse gizlilik politikasından uyarlanmıştır .
- title: "%{instance} Hizmet Şartları ve Gizlilik Politikası"
themes:
contrast: Mastodon (Yüksek karşıtlık)
default: Mastodon (Karanlık)
@@ -1684,20 +1600,13 @@ tr:
suspend: Hesap askıya alındı
welcome:
edit_profile_action: Profil kurulumu
- edit_profile_step: Bir avatar veya başlık yükleyerek, ekran adınızı değiştirerek ve daha fazlasını yaparak profilinizi kişiselleştirebilirsiniz. Yeni takipçileri sizi takip etmelerine izin verilmeden önce incelemek isterseniz, hesabınızı kilitleyebilirsiniz.
+ edit_profile_step: Bir profil resmi yükleyerek, ekran adınızı değiştirerek ve daha fazlasını yaparak profilinizi kişiselleştirebilirsiniz. Sizi takip etmelerine izin verilmeden önce yeni takipçileri incelemeyi tercih edebilirsiniz.
explanation: İşte sana başlangıç için birkaç ipucu
final_action: Gönderi yazmaya başlayın
- final_step: 'Gönderi yazmaya başlayın! Takipçiler olmadan bile, herkese açık mesajlarınız başkaları tarafından görülebilir, örneğin yerel zaman çizelgesinde ve etiketlerde. Kendinizi #introductions etiketinde tanıtmak isteyebilirsiniz.'
+ final_step: 'Gönderi yazmaya başlayın! Takipçiler olmadan bile, herkese açık gönderileriniz başkaları tarafından görülebilir, örneğin yerel zaman tünelinde veya etiketlerde. Kendinizi #introductions etiketinde tanıtmak isteyebilirsiniz.'
full_handle: Tanıtıcınız
full_handle_hint: Arkadaşlarınıza, size başka bir sunucudan mesaj atabilmeleri veya sizi takip edebilmeleri için söyleyeceğiniz şey budur.
- review_preferences_action: Tercihleri değiştirin
- review_preferences_step: Hangi e-postaları almak veya gönderilerinizin varsayılan olarak hangi gizlilik seviyesinde olmasını istediğiniz gibi tercihlerinizi ayarladığınızdan emin olun. Hareket hastalığınız yoksa, GIF otomatik oynatmayı etkinleştirmeyi seçebilirsiniz.
subject: Mastodon'a hoş geldiniz
- tip_federated_timeline: Federe zaman tüneli, Mastodon ağının genel bir görüntüsüdür. Ancak yalnızca komşularınızın abone olduğu kişileri içerir, bu yüzden tamamı değildir.
- tip_following: Sunucu yönetici(ler)ini varsayılan olarak takip edersiniz. Daha ilginç insanlar bulmak için yerel ve federe zaman çizelgelerini kontrol edin.
- tip_local_timeline: Yerel zaman çizelgesi, %{instance} üzerindeki kişilerin genel bir görüntüsüdür. Bunlar senin en yakın komşularındır!
- tip_mobile_webapp: Mobil tarayıcınız size ana ekranınıza Mastodon eklemenizi önerirse, push bildirimleri alabilirsiniz. Birçok yönden yerli bir uygulama gibi davranır!
- tips: İpuçları
title: Gemiye hoşgeldin, %{name}!
users:
follow_limit_reached: "%{limit} kişiden daha fazlasını takip edemezsiniz"
diff --git a/config/locales/tt.yml b/config/locales/tt.yml
index e23533828f..40a0207e5b 100644
--- a/config/locales/tt.yml
+++ b/config/locales/tt.yml
@@ -1,23 +1,10 @@
---
tt:
about:
- about_this: Хакында
- api: API
contact_unavailable: Юк
- privacy_policy: Хосусыйлык сәясәте
- unavailable_content_description:
- domain: Сервер
- user_count_after:
- other: кулланучы
accounts:
follow: Языл
following: Язылгансыз
- media: Медиа
- roles:
- admin: Админ
- bot: Бот
- group: Törkem
- unfollow: Язылынмау
admin:
accounts:
avatar: Аватар
@@ -41,10 +28,6 @@ tt:
all: Бөтенесе
perform_full_suspension: Искә алмау
reset: Ташлату
- role: Рөхсәтләр
- roles:
- moderator: Модератор
- user: Кулланучы
search: Эзләү
sensitive: Sizmäle
username: Кулланучы исеме
@@ -169,8 +152,6 @@ tt:
index:
delete: Бетерү
title: Сөзгечләр
- footer:
- more: Тагы…
generic:
all: Бөтенесе
copy: Күчереп алу
diff --git a/config/locales/uk.yml b/config/locales/uk.yml
index aa210c980e..5c695507d2 100644
--- a/config/locales/uk.yml
+++ b/config/locales/uk.yml
@@ -1,67 +1,12 @@
---
uk:
about:
- about_hashtag_html: Це публічні дописи, позначені символом #%{hashtag} . Ви можете взаємодіяти з ними, якщо маєте обліковий запис будь-де у федесвіті.
about_mastodon_html: 'Соціальна мережа майбутнього: жодної реклами, жодного корпоративного нагляду, етичний дизайн та децентралізація! З Mastodon ваші дані під вашим контролем!'
- about_this: Про цей сервер
- active_count_after: активних
- active_footnote: Щомісячно активні користувачі (MAU)
- administered_by: 'Адміністратор:'
- api: API
- apps: Мобільні застосунки
- apps_platforms: Користуйтесь Mastodon на iOS, Android та інших платформах
- browse_directory: Переглядайте каталог профілів та фільтруйте за інтересами
- browse_local_posts: Переглядайте потік публічних постів з цього сервера
- browse_public_posts: Переглядайте потік публічних постів на Mastodon
- contact: Зв'язатися
contact_missing: Не зазначено
contact_unavailable: Недоступно
- continue_to_web: Перейти до вебзастосунку
- discover_users: Знайдіть цікавих користувачів
- documentation: Документація
- federation_hint_html: З обліковим записом на %{instance} ви зможете слідкувати за людьми на будь-якому сервері Mastodon та поза ним.
- get_apps: Спробуйте мобільний додаток
hosted_on: Mastodon розміщено на %{domain}
- instance_actor_flash: "Цей обліковий запис є віртуальною особою, яка використовується для представлення самого сервера, а не певного користувача. Він використовується для потреб федерації і не повинен бути заблокований, якщо тільки ви не хочете заблокувати весь сервер, у цьому випадку ви повинні скористатися блокуванням домену. \n"
- learn_more: Дізнатися більше
- logged_in_as_html: Зараз ви увійшли як %{username}.
- logout_before_registering: Ви вже увійшли.
- privacy_policy: Політика приватності
- rules: Правила сервера
- rules_html: 'Внизу наведено підсумок правил, яких ви повинні дотримуватися, якщо хочете мати обліковий запис на цьому сервері Mastodon:'
- see_whats_happening: Погляньте, що відбувається
- server_stats: 'Статистика серверу:'
- source_code: Вихідний код
- status_count_after:
- few: статуса
- many: статусів
- one: статус
- other: статуси
- status_count_before: Опубліковано
- tagline: Слідкуйте за друзями та знаходьте нових
- terms: Правила використання
- unavailable_content: Недоступний вміст
- unavailable_content_description:
- domain: Сервер
- reason: Причина
- rejecting_media: 'Медіа файли з цих серверів не будуть оброблятися або зберігатись, а мініатюри відображатись. Щоб побачити оригінальний файл, треба буде натиснути на посилання:'
- rejecting_media_title: Відфільтровані медіа
- silenced: 'Повідомлення з цих серверів будуть приховані в публічних стрічках та розмовах, також ви не отримуватимете сповіщень щодо взаємодій з їх користувачами, якщо ви їх не відстежуєте:'
- silenced_title: Заглушені сервери
- suspended: 'Жодна інформація з цих серверів не буде оброблена, збережена чи передана, що робить спілкування з користувачами цих серверів неможливим:'
- suspended_title: Призупинені сервери
- unavailable_content_html: Mastodon зазвичай дозволяє вам взаємодіяти з користувачами будь-яких серверів в Федіверсі та переглядати їх контент. Ось винятки, які було зроблено на цьому конкретному сервері.
- user_count_after:
- few: користувача
- many: користувачів
- one: користувач
- other: користувачі
- user_count_before: Тут живе
- what_is_mastodon: Що таке Mastodon?
+ title: Про програму
accounts:
- choices_html: 'Вподобання %{name}:'
- endorsements_hint: У веб-інтерфейсі ви можете рекомендувати людей, на яких підписані, і вони з'являться тут.
- featured_tags_hint: Ви можете вказати хештеги, які будуть відображатись тут.
follow: Підписатися
followers:
few: Підписника
@@ -70,15 +15,9 @@ uk:
other: Підписників
following: Підписаний(-а)
instance_actor_flash: Цей обліковий запис є віртуальним персонажем, який використовується для показу самого сервера, а не будь-якого окремого користувача. Він використовується з метою федералізації і не повинен бути зупинений.
- joined: Приєднався %{date}
last_active: остання активність
link_verified_on: Права власності на це посилання були перевірені %{date}
- media: Медіа
- moved_html: "%{name} переїхав до %{new_profile_link}:"
- network_hidden: Ця інформація недоступна
nothing_here: Тут нічого немає!
- people_followed_by: Люди, на яких підписаний(-а) %{name}
- people_who_follow: Підписники %{name}
pin_errors:
following: Ви повинні бути підписаним на людину, яку бажаєте схвалити
posts:
@@ -87,14 +26,6 @@ uk:
one: Дмух
other: Дмухів
posts_tab_heading: Дмухи
- posts_with_replies: Дмухи та відповіді
- roles:
- admin: Адміністратор
- bot: Бот
- group: Група
- moderator: Мод
- unavailable: Профіль недоступний
- unfollow: Відписатися
admin:
account_actions:
action: Виконати дію
@@ -111,12 +42,17 @@ uk:
avatar: Аватар
by_domain: Домен
change_email:
- changed_msg: Адресу електронної пошти облікового запису успішно змінено!
+ changed_msg: Адресу електронної пошти успішно змінено!
current_email: Поточна адреса електронної пошти
label: Змінити адресу електронної пошти
new_email: Нова адреса електронної пошти
submit: Змінити адресу електронної пошти
title: Змінити адресу електронної пошти для %{username}
+ change_role:
+ changed_msg: Роль успішно змінено!
+ label: Змінити роль
+ no_role: Немає ролі
+ title: Змінити роль для %{username}
confirm: Зберегти
confirmed: Збережено
confirming: Зберігається
@@ -160,6 +96,7 @@ uk:
active: Активний
all: Усі
pending: Очікують
+ silenced: Обмежені
suspended: Призупинені
title: Модерація
moderation_notes: Нотатки модераторів
@@ -167,6 +104,7 @@ uk:
most_recent_ip: Останній IP
no_account_selected: Жоден обліковий запис не було змінено, оскільки жоден не було вибрано
no_limits_imposed: Жодних обмежень не накладено
+ no_role_assigned: Роль не призначено
not_subscribed: Не підписані
pending: Відгук в очікуванні
perform_full_suspension: Призупинити
@@ -195,12 +133,7 @@ uk:
reset: Скинути
reset_password: Скинути пароль
resubscribe: Перепідписатися
- role: Дозволи
- roles:
- admin: Адміністратор
- moderator: Модератор
- staff: Персонал
- user: Користувач
+ role: Роль
search: Пошук
search_same_email_domain: Інші користувачі з тим самим поштовим доменом
search_same_ip: Інші користувачі з тим самим IP
@@ -243,17 +176,21 @@ uk:
approve_user: Затвердити користувачів
assigned_to_self_report: Призначити звіт
change_email_user: Змінити електронну пошту для користувача
+ change_role_user: Змінити роль користувача
confirm_user: Підтвердити користувача
create_account_warning: Створити попередження
create_announcement: Створити оголошення
+ create_canonical_email_block: Створити блок електронної пошти
create_custom_emoji: Створити користувацьке емодзі
create_domain_allow: Створити дозвіл на домен
create_domain_block: Створити блокування домену
create_email_domain_block: Створити блокування поштового домену
create_ip_block: Створити правило IP
create_unavailable_domain: Створити недоступний домен
+ create_user_role: Створити роль
demote_user: Понизити користувача
destroy_announcement: Видалити оголошення
+ destroy_canonical_email_block: Видалити блок електронної пошти
destroy_custom_emoji: Видалити користувацьке емодзі
destroy_domain_allow: Видалити дозвіл на домен
destroy_domain_block: Видалити блокування домену
@@ -262,6 +199,7 @@ uk:
destroy_ip_block: Видалити правило IP
destroy_status: Видалити пост
destroy_unavailable_domain: Видалити недоступний домен
+ destroy_user_role: Знищити роль
disable_2fa_user: Вимкнути 2FA
disable_custom_emoji: Вимкнути користувацькі емодзі
disable_sign_in_token_auth_user: Вимкнути автентифікацію за допомогою е-пошти для користувача
@@ -288,24 +226,30 @@ uk:
update_announcement: Оновити оголошення
update_custom_emoji: Оновити користувацькі емодзі
update_domain_block: Оновити блокування домену
+ update_ip_block: Оновити правило IP
update_status: Оновити статус
+ update_user_role: Оновити роль
actions:
approve_appeal_html: "%{name} затвердили звернення на оскарження рішення від %{target}"
approve_user_html: "%{name} схвалює реєстрацію від %{target}"
assigned_to_self_report_html: "%{name} створює скаргу %{target} на себе"
change_email_user_html: "%{name} змінює поштову адресу користувача %{target}"
+ change_role_user_html: "%{name} змінює роль %{target}"
confirm_user_html: "%{name} підтверджує стан поштової адреси користувача %{target}"
create_account_warning_html: "%{name} надсилає попередження до %{target}"
create_announcement_html: "%{name} створює нове оголошення %{target}"
+ create_canonical_email_block_html: "%{name} блокує електронну пошту з хешем %{target}"
create_custom_emoji_html: "%{name} завантажує нові емодзі %{target}"
create_domain_allow_html: "%{name} дозволяє федерацію з доменом %{target}"
create_domain_block_html: "%{name} блокує домен %{target}"
create_email_domain_block_html: "%{name} блокує домен електронної пошти %{target}"
create_ip_block_html: "%{name} створює правило для IP %{target}"
create_unavailable_domain_html: "%{name} зупиняє доставляння на домен %{target}"
+ create_user_role_html: "%{name} створює роль %{target}"
demote_user_html: "%{name} понижує користувача %{target}"
destroy_announcement_html: "%{name} видаляє оголошення %{target}"
- destroy_custom_emoji_html: "%{name} знищує емодзі %{target}"
+ destroy_canonical_email_block_html: "%{name} розблоковує електронну пошту з хешем %{target}"
+ destroy_custom_emoji_html: "%{name} видаляє емоджі %{target}"
destroy_domain_allow_html: "%{name} скасовує федерацію з доменом %{target}"
destroy_domain_block_html: "%{name} розблокує домен %{target}"
destroy_email_domain_block_html: "%{name} розблоковує домен електронної пошти %{target}"
@@ -313,6 +257,7 @@ uk:
destroy_ip_block_html: "%{name} видаляє правило для IP %{target}"
destroy_status_html: "%{name} видаляє статус %{target}"
destroy_unavailable_domain_html: "%{name} відновлює доставляння на домен %{target}"
+ destroy_user_role_html: "%{name} видаляє роль %{target}"
disable_2fa_user_html: "%{name} вимикає двоетапну перевірку для користувача %{target}"
disable_custom_emoji_html: "%{name} вимикає емодзі %{target}"
disable_sign_in_token_auth_user_html: "%{name} вимикає автентифікацію через е-пошту для %{target}"
@@ -339,8 +284,9 @@ uk:
update_announcement_html: "%{name} оновлює оголошення %{target}"
update_custom_emoji_html: "%{name} оновлює емодзі %{target}"
update_domain_block_html: "%{name} оновлює блокування домену для %{target}"
+ update_ip_block_html: "%{name} змінює правило для IP %{target}"
update_status_html: "%{name} змінює статус користувача %{target}"
- deleted_status: "(видалений статус)"
+ update_user_role_html: "%{name} змінює роль %{target}"
empty: Не знайдено жодного журналу.
filter_by_action: Фільтрувати за дією
filter_by_user: Фільтрувати за користувачем
@@ -384,6 +330,7 @@ uk:
listed: У списку
new:
title: Додати новий емодзі
+ no_emoji_selected: Жоден емоджі не було змінено, оскільки жоден не було вибрано
not_permitted: Вам не дозволено виконувати цю дію
overwrite: Переписати
shortcode: Шорткод
@@ -485,6 +432,7 @@ uk:
resolve: Розв'язати домен
title: Нове блокування поштового домену
no_email_domain_block_selected: Жодні налаштування блокування доменів електронної пошти не було змінено, оскільки жоден з них не було обрано
+ resolved_dns_records_hint_html: Ім'я домену резолвиться в наступні домени MX, які в кінцевому рахунку відповідають за прийняття електронної пошти. Блокування домену MX заблокує реєстрацію з будь-якої e-mail адреси, яка використовує однаковий домен MX, навіть якщо доменне ім'я буде інакше. Будьте обережні, щоб не блокувати великих поштових провайдерів.
resolved_through_html: Розв'язано через %{domain}
title: Чорний список поштових доменів
follow_recommendations:
@@ -497,6 +445,11 @@ uk:
unsuppress: Відновити поради щодо підписок
instances:
availability:
+ description_html:
+ few: Якщо доставлення до домену не вдалася за %{count} інших дні , жодних спроб доставлення не здійснюється, доки доставлення від домену не отримуватиметься.
+ many: Якщо доставлення до домену не вдалася за %{count} інших днів , жодних спроб доставлення не здійснюється, доки доставлення від домену не отримуватиметься.
+ one: Якщо доставлення до домену не вдалася %{count} день , жодних спроб доставлення не здійснюється, доки доставлення від домену не отримуватиметься.
+ other: Якщо доставлення до домену не вдалася за %{count} інших днів , жодних спроб доставлення не здійснюється, доки доставлення від домену не отримуватиметься.
failure_threshold_reached: Досягнуто поріг допустимих помилок станом на %{date}.
failures_recorded:
few: Невдалих спроб за %{count} різні дні.
@@ -513,6 +466,7 @@ uk:
confirm_purge: Ви впевнені, що хочете видалити ці дані з цього домену?
content_policies:
comment: Внутрішня примітка
+ description_html: Ви можете визначити правила вмісту що буде застосовано до всіх облікових записів із цього домену та будь-якого з його піддоменів.
policies:
reject_media: Відхилити медіа
reject_reports: Відхилити скарги
@@ -617,9 +571,13 @@ uk:
action_log: Журнал подій
action_taken_by: Дія виконана
actions:
+ delete_description_html: Дописи, на які скаржилися будуть видалені, а попередження буде записано, щоб допомогти вам підвищити рівень майбутніх порушень того самого облікового запису.
+ mark_as_sensitive_description_html: Медіа у дописах, на які скаржилися будуть позначені делікатними, а попередження буде записано, щоб допомогти вам підвищити рівень майбутніх порушень того самого облікового запису.
other_description_html: Більше опцій керування поведінкою облікового запису і налаштування комунікації з обліковим записом, на який поскаржилися.
+ resolve_description_html: Не буде застосовано жодних дій проти облікового запису, на який скаржилися, не буде записано попередження, а скаргу буде закрито.
silence_description_html: Профіль буде видимий лише тим, хто вже стежить за ним або знайде його самостійно, сильно обмежуючи його знаходження. Можна потім скасувати.
suspend_description_html: Профіль і весь його вміст буде недоступним, поки його не буде видалено. Взаємодія з обліковим записом буде неможливою.
+ actions_description_html: Визначте, які дії слід вжити для розв'язання цієї скарги. Якщо ви оберете каральні дії проти зареєстрованого облікового запису, про них буде надіслано сповіщення електронним листом, крім випадків, коли вибрано категорію Спам .
add_to_report: Додати ще подробиць до скарги
are_you_sure: Ви впевнені?
assign_to_self: Призначити мені
@@ -646,6 +604,7 @@ uk:
placeholder: Опишіть, які дії були виконані, або інші зміни, що стосуються справи...
title: Примітки
notes_description_html: Переглядайте та залишайте примітки для інших модераторів та для себе на майбутнє
+ quick_actions_description_html: 'Виберіть швидку дію або гортайте вниз, щоб побачити матеріал, на який надійшла скарга:'
remote_user_placeholder: віддалений користувач із %{instance}
reopen: Перевідкрити скаргу
report: 'Скарга #%{id}'
@@ -663,6 +622,71 @@ uk:
unresolved: Невирішені
updated_at: Оновлені
view_profile: Переглянути профіль
+ roles:
+ add_new: Додати роль
+ assigned_users:
+ few: "%{count} користувачі"
+ many: "%{count} користувачів"
+ one: "%{count} користувач"
+ other: "%{count} користувача"
+ categories:
+ administration: Адміністрування
+ devops: DevOps
+ invites: Запрошення
+ moderation: Модерація
+ special: Спеціальні
+ delete: Видалити
+ description_html: За допомогою ролі користувача , ви можете налаштувати, до яких функцій і місць можуть доступатися ваші користувачі Mastodon.
+ edit: Змінити роль «%{name}»
+ everyone: Типові дозволи
+ everyone_full_description_html: Це базова роль , яка впливає на всіх користувачів , навіть ті, яким не призначені ролі. Усі інші ролі успадковують її дозволи.
+ permissions_count:
+ few: "%{count} дозволи"
+ many: "%{count} дозволів"
+ one: "%{count} дозвіл"
+ other: "%{count} дозволи"
+ privileges:
+ administrator: Адміністратор
+ administrator_description: Користувачі з цим дозволом обходять усі дозволи
+ delete_user_data: Видаляти дані користувача
+ delete_user_data_description: Дозволяє користувачам видаляти дані інших користувачів без затримок
+ invite_users: Запрошувати користувачів
+ invite_users_description: Дозволяє користувачам запрошувати нових людей на сервер
+ manage_announcements: Керувати оголошеннями
+ manage_announcements_description: Дозволяє користувачам керувати оголошеннями на сервері
+ manage_appeals: Керувати оскарженнями
+ manage_appeals_description: Дозволяє користувачам розглядати оскарження дій модерації
+ manage_blocks: Керувати блокуваннями
+ manage_blocks_description: Дозволяє користувачам блокувати постачальників е-пошти та IP-адреси
+ manage_custom_emojis: Керувати користувацькими емоджі
+ manage_custom_emojis_description: Дозволяє користувачам керувати користувацькими емоджі на сервері
+ manage_federation: Керувати федерацією
+ manage_federation_description: Дозволяє користувачам блокувати або дозволяти федерацію з іншими доменами й керувати можливостями доставлення
+ manage_invites: Керувати запрошеннями
+ manage_invites_description: Дозволяє користувачам переглядати й деактивувати запрошувальні посилання
+ manage_reports: Керувати скаргами
+ manage_reports_description: Дозволяє користувачам переглядати скарги та виконувати відповідні дії модерації
+ manage_roles: Керувати ролями
+ manage_roles_description: Дозволяє користувачам керувати та призначати ролі, нижчі за свій рівень
+ manage_rules: Керувати правилами
+ manage_rules_description: Дозволяє користувачам змінювати правила сервера
+ manage_settings: Керування налаштуваннями
+ manage_settings_description: Дозволяє користувачам змінювати налаштування сайту
+ manage_taxonomies: Керувати таксономіями
+ manage_taxonomies_description: Дозволяє користувачам переглядати актуальні налаштування вмісту й оновити хештеґ
+ manage_user_access: Керувати доступом користувачів
+ manage_user_access_description: Дозволяє користувачам вимкнути двоетапну перевірку інших користувачів, змінити їхню адресу електронної пошти та відновити пароль
+ manage_users: Керувати користувачами
+ manage_users_description: Дозволяє користувачам переглядати подробиці інших користувачів і виконувати їхню модерацію
+ manage_webhooks: Керувати Webhooks
+ manage_webhooks_description: Дозволяє користувачам налаштовувати вебхуки для адміністративних подій
+ view_audit_log: Переглядати журнал перевірки
+ view_audit_log_description: Дозволяє користувачам бачити історію адміністративних дій на сервері
+ view_dashboard: Переглядати панель керування
+ view_dashboard_description: Дозволяє користувачам доступ до панелі керування та різних метрик
+ view_devops: DevOps
+ view_devops_description: Дозволяє користувачам доступ до Sidekiq і панелі pgHero
+ title: Ролі
rules:
add_new: Додати правило
delete: Видалити
@@ -671,110 +695,67 @@ uk:
empty: Жодних правил сервера ще не визначено.
title: Правила сервера
settings:
- activity_api_enabled:
- desc_html: Кількість локальних постів, активних та нових користувачів у тижневих розрізах
- title: Публікація агрегованої статистики про активність користувачів
- bootstrap_timeline_accounts:
- desc_html: Розділяйте імена користувачів комами. Працюватимуть тільки локальні і розблоковані облікові записи. Якщо порожньо, то типово це всі локальні адміністратори.
- title: Типові підписки для нових користувачів
- contact_information:
- email: Введіть публічний email
- username: Введіть ім'я користувача
- custom_css:
- desc_html: Відобразити вигляд, коли CSS завантажено для кожної сторінки
- title: Користувацький CSS
- default_noindex:
- desc_html: Впливає на усіх користувачів, які не змінили це настроювання самостійно
- title: Виключити користувачів з індексації пошуковими системами за замовчуванням
+ about:
+ manage_rules: Керувати правилами сервера
+ preamble: Надати детальну інформацію про те, як працює сервер, модерується та фінансується.
+ rules_hint: Виділена ділянка для правил, яких повинні дотримуватись ваші користувачі.
+ title: Про застосунок
+ appearance:
+ preamble: Налаштування вебінтерфейсу Mastodon.
+ title: Вигляд
+ branding:
+ preamble: Брендинг вашого сервера відрізняє його від інших серверів в мережі. Ця інформація може показуватися в різних середовищах, таких як вебінтерфейс Mastodon, застосунки, у попередньому перегляді посилань на інші вебсайти та в застосунках обміну повідомленнями. Тому краще, щоб ця інформація була чіткою, короткою та лаконічною.
+ title: Брендинг
+ content_retention:
+ preamble: Контролюйте, як зберігаються користувацькі матеріали в Mastodon.
+ title: Зберігання вмісту
+ discovery:
+ follow_recommendations: Поради щодо підписок
+ preamble: Показ цікавих матеріалів відіграє важливу роль у залученні нових користувачів, які, можливо, не знають нікого з Mastodon. Контролюйте роботу різних функцій виявлення на вашому сервері.
+ profile_directory: Каталог профілів
+ public_timelines: Публічна стрічка
+ title: Виявлення
+ trends: Популярні
domain_blocks:
all: Всi
disabled: Нікого
- title: Показати, які домени заблоковані
users: Для авторизованих локальних користувачів
- domain_blocks_rationale:
- title: Обґрунтування
- hero:
- desc_html: Зображується на головній сторінці. Рекомендовано як мінімум 600x100 пікселів. Якщо не встановлено, буде використана мініатюра сервера
- title: Банер серверу
- mascot:
- desc_html: Зображується на декількох сторінках. Щонайменше 293×205 пікселів рекомендовано. Якщо не вказано, буде використано персонаж за замовчуванням
- title: Талісман
- peers_api_enabled:
- desc_html: Доменні ім'я, які сервер знайшов у федесвіті
- title: Опублікувати список знайдених серверів в API
- preview_sensitive_media:
- desc_html: Передпоказ посилання на інших сайтах буде відображати мініатюру навіть якщо медіа відмічене як дражливе
- title: Показувати дражливе медіа у передпоказах OpenGraph
- profile_directory:
- desc_html: Дозволити користувачам бути видимими
- title: Увімкнути каталог профілів
registrations:
- closed_message:
- desc_html: Відображається на титульній сторінці, коли реєстрація закрита Можна використовувати HTML-теги
- title: Повідомлення про закриту реєстрацію
- deletion:
- desc_html: Дозволити будь-кому видаляти свій обліковий запис
- title: Видалення відкритого облікового запису
- min_invite_role:
- disabled: Ніхто
- title: Дозволити запрошення від
- require_invite_text:
- desc_html: Якщо реєстрація вимагає власноручного затвердження, зробіть текстове поле «Чому ви хочете приєднатися?» обов'язковим, а не додатковим
- title: Вимагати повідомлення причини приєднання від нових користувачів
+ preamble: Контролюйте, хто може створити обліковий запис на вашому сервері.
+ title: Реєстрації
registrations_mode:
modes:
approved: Для входу потрібне схвалення
none: Ніхто не може увійти
open: Будь-хто може увійти
- title: Режим реєстрації
- show_known_fediverse_at_about_page:
- desc_html: Коли увімкнено, будуть показані пости з усього відомого федисвіту у передпоказі. Інакше будуть показані лише локальні дмухи.
- title: Показувати доступний федисвіт у передпоказі стрічки
- show_staff_badge:
- desc_html: Відмічати персонал на сторінці користувачів
- title: Показувати персонал
- site_description:
- desc_html: Відображається у якості параграфа на титульній сторінці та використовується у якості мета-тега. Можна використовувати HTML-теги, особливо <a>
і <em>
.
- title: Опис сервера
- site_description_extended:
- desc_html: Відображається на сторінці додаткової информації Можна використовувати HTML-теги
- title: Розширений опис сайту
- site_short_description:
- desc_html: Відображається в бічній панелі та мета-тегах. Опишіть, що таке Mastodon і що робить цей сервер особливим, в одному абзаці.
- title: Короткий опис сервера
- site_terms:
- desc_html: |-
- Ви можене написати власну політику приватності, умови використанні та інші законні штуки
- Можете використовувати HTML теги
- title: Особливі умови використання
- site_title: Назва сайту
- thumbnail:
- desc_html: Використовується для передпоказів через OpenGraph та API. Бажано розміром 1200х640 пікселів
- title: Мініатюра сервера
- timeline_preview:
- desc_html: Показувати публічну стрічку на головній сторінці
- title: Передпоказ фіду
- title: Налаштування сайту
- trendable_by_default:
- desc_html: Впливає на хештеги, які не були заборонені раніше
- title: Дозволити хештегам потрапляти в тренди без попереднього перегляду
- trends:
- desc_html: Відображати розглянуті хештеґи, які популярні зараз
- title: Популярні хештеги
+ title: Налаштування сервера
site_uploads:
delete: Видалити завантажений файл
destroyed_msg: Завантаження сайту успішно видалено!
statuses:
+ account: Автор
+ application: Застосунок
back_to_account: Назад до сторінки облікового запису
back_to_report: Повернутися до сторінки скарги
batch:
remove_from_report: Вилучити зі скарги
report: Скарга
deleted: Видалено
+ favourites: Вподобане
+ history: Історія версій
+ in_reply_to: У відповідь
+ language: Мова
media:
title: Медіа
+ metadata: Метадані
no_status_selected: Жодного статуса не було змінено, оскільки жодного не було вибрано
+ open: Відкрити допис
+ original_status: Оригінальний допис
+ reblogs: Репост
+ status_changed: Допис змінено
title: Статуси облікових записів
+ trending: Популярне
+ visibility: Видимість
with_media: З медіа
strikes:
actions:
@@ -811,8 +792,12 @@ uk:
links:
allow: Дозволити посилання
allow_provider: Дозволити публікатора
+ description_html: Це посилання, з яких наразі багаторазово поширюються записи, з яких Ваш сервер бачить пости. Це може допомогти вашим користувачам дізнатися, що відбувається в світі. Посилання не відображається публічно, поки ви не затверджуєте його публікацію. Ви також можете дозволити або відхилити окремі посилання.
disallow: Заборонити посилання
disallow_provider: Заборонити публікатора
+ no_link_selected: Жодне посилання не було змінено, оскільки жодне не було вибрано
+ publishers:
+ no_publisher_selected: Жодного видавця не було змінено, оскільки жодного не було вибрано
shared_by_over_week:
few: Поширили %{count} людини за останній тиждень
many: Поширили %{count} людей за останній тиждень
@@ -824,14 +809,23 @@ uk:
pending_review: Очікує перевірки
preview_card_providers:
allowed: Посилання цього публікатора можуть бути популярними
+ description_html: Це домени, з яких часто передаються посилання на вашому сервері. Посилання не будуть публічно приходити, якщо домен посилання не буде затверджено. Ваше затвердження (або відхилення) поширюється на піддомени.
rejected: Посилання цього публікатора можуть не будуть популярними
title: Публікатори
rejected: Відхилено
statuses:
allow: Дозволити оприлюднення
allow_account: Дозволити автора
+ description_html: Це дописи, про які ваш сервер знає як такі, що в даний час є спільні і навіть ті, які зараз є дуже популярними. Це може допомогти вашим новим та старим користувачам, щоб знайти більше людей для слідування. Жоден запис не відображається публічно, поки ви не затверджуєте автора, і автор дозволяє іншим користувачам підписатися на це. Ви також можете дозволити або відхилити окремі повідомлення.
disallow: Заборонити допис
disallow_account: Заборонити автора
+ no_status_selected: Жодного популярного допису не було змінено, оскільки жодного не було вибрано
+ not_discoverable: Автор не вирішив бути видимим
+ shared_by:
+ few: Поділитись або додати в улюблені %{friendly_count} рази
+ many: Поділитись або додати в улюблені %{friendly_count} разів
+ one: Поділитись або додати в улюблені один раз
+ other: Поділитись або додати в улюблені %{friendly_count} рази
title: Популярні дописи
tags:
current_score: Поточний результат %{score}
@@ -841,7 +835,9 @@ uk:
tag_servers_dimension: Найуживаніші сервери
tag_servers_measure: різні сервери
tag_uses_measure: всього використань
+ description_html: Ці хештеґи, які бачить ваш сервер, в цей час з’являються у багатьох дописах. Це може допомогти вашим користувачам дізнатися про що люди наразі найбільше говорять. Жодні хештеґи публічно не показуються, доки ви їх не затвердите.
listable: Може бути запропоновано
+ no_tag_selected: Жоден теґ не було змінено, оскільки жоден не було вибрано
not_listable: Не буде запропоновано
not_trendable: Не показуватиметься серед популярних
not_usable: Неможливо використати
@@ -863,7 +859,29 @@ uk:
delete: Видалити
edit_preset: Редагувати шаблон попередження
empty: Ви ще не визначили жодних попереджень.
- title: Управління шаблонами попереджень
+ title: Керування шаблонами попереджень
+ webhooks:
+ add_new: Додати кінцеву точку
+ delete: Видалити
+ description_html: "Вебхук дає змогу Mastodon надсилати повідомлення про обрані події до вашого застосунку в реальному часі , щоб застосунок міг автоматично реагувати на реакції ."
+ disable: Вимкнути
+ disabled: Вимкнено
+ edit: Редагувати кінцеву точку
+ empty: Ще не налаштовано жодних кінцевих точок вебхука.
+ enable: Увімкнути
+ enabled: Активні
+ enabled_events:
+ few: "%{count} увімкнені події"
+ many: "%{count} увімкнених подій"
+ one: 1 увімкнена подія
+ other: "%{count} увімкнені події"
+ events: Події
+ new: Новий вебхук
+ rotate_secret: Обернути секрет
+ secret: Секрет підписування
+ status: Стан
+ title: Вебхуки
+ webhook: Вебхук
admin_mailer:
new_appeal:
actions:
@@ -874,6 +892,7 @@ uk:
sensitive: щоб позначати їхній обліковий запис делікатним
silence: щоб обмежити їхній обліковий запис
suspend: щоб призупинити їхній обліковий запис
+ body: "%{target} оскаржує модерацію %{action_taken_by} від %{date}, яка була %{type}. Вони написали:"
next_steps: Ви можете схвалити апеляцію, щоб скасувати рішення про модерацію або проігнорувати її.
subject: "%{username} апелює до рішення про модерацію на %{instance}"
new_pending_account:
@@ -884,14 +903,14 @@ uk:
body_remote: Хтось з домену %{domain} поскаржився(-лася) на %{target}
subject: Нова скарга до %{instance} (#%{id})
new_trends:
+ body: 'Ці елементи потребують розгляду перед оприлюдненням:'
new_trending_links:
- no_approved_links: На цей час немає схвалених популярних посилань.
title: Популярні посилання
new_trending_statuses:
- no_approved_statuses: На цей час немає схвалених популярних дописів.
title: Популярні дописи
new_trending_tags:
no_approved_tags: На цей час немає схвалених популярних хештегів.
+ requirements: 'Кожен з цих кандидатів може перевершити #%{rank} затвердженого популярного хештеґу, який зараз на #%{lowest_tag_name} з рейтингом %{lowest_tag_score}.'
title: Популярні хештеги
subject: Нове популярне до розгляду на %{instance}
aliases:
@@ -923,16 +942,13 @@ uk:
applications:
created: Застосунок успішно створений
destroyed: Застосунок успішно видалений
- invalid_url: Введена URL неправильна
regenerate_token: Перегенерувати токен доступу
token_regenerated: Токен доступу успішне перегенеровано
warning: Будьте дуже обережні з цими даними. Ніколи не діліться ними ні з ким!
your_token: Ваш токен доступу
auth:
- apply_for_account: Запитати запрошення
+ apply_for_account: Отримати у списку очікування
change_password: Пароль
- checkbox_agreement_html: Я погоджуюсь з правилами сервера та умовами використання
- checkbox_agreement_without_rules_html: Я погоджуюся з умовами використання
delete_account: Видалити обліковий запис
delete_account_html: Якщо ви хочете видалити свій обліковий запис, ви можете перейти сюди . Вас попросять підтвердити дію.
description:
@@ -951,6 +967,7 @@ uk:
migrate_account: Переїхати на інший обліковий запис
migrate_account_html: Якщо ви бажаєте перенаправити цей обліковий запис на інший, ви можете налаштувати це тут .
or_log_in_with: Або увійдіть з
+ privacy_policy_agreement_html: Мною прочитано і я погоджуюся з політикою приватності
providers:
cas: CAS
saml: SAML
@@ -958,20 +975,26 @@ uk:
registration_closed: "%{instance} не приймає нових членів"
resend_confirmation: Повторно відправити інструкції з підтвердження
reset_password: Скинути пароль
+ rules:
+ preamble: Вони налаштовані та закріплені модераторами %{domain}.
+ title: Деякі основні правила.
security: Зміна паролю
set_new_password: Встановити новий пароль
setup:
email_below_hint_html: Якщо ця електронна адреса не є вірною, ви можете змінити її тут та отримати новий лист для підтвердження.
email_settings_hint_html: Електронний лист-підтвердження було вислано до %{email}. Якщо ця адреса електронної пошти не є вірною, ви можете змінити її в налаштуваннях облікового запису.
title: Налаштування
+ sign_up:
+ preamble: За допомогою облікового запису на цьому сервері Mastodon, ви зможете слідкувати за будь-якою іншою людиною в мережі, не зважаючи на те, де розміщений обліковий запис.
+ title: Налаштуймо вас на %{domain}.
status:
account_status: Статус облікового запису
confirming: Очікуємо на завершення підтвердження за допомогою електронної пошти.
functional: Ваш обліковий запис повністю робочий.
pending: Ваша заява очікує на розгляд нашим персоналом. Це може зайняти деякий час. Ви отримаєте електронний лист, якщо ваша заява буде схвалена.
redirecting_to: Ваш обліковий запис наразі неактивний, тому що він перенаправлений до %{acct}.
+ view_strikes: Переглянути попередні попередження вашому обліковому запису
too_fast: Форму подано занадто швидко, спробуйте ще раз.
- trouble_logging_in: Проблема під час входу?
use_security_key: Використовувати ключ безпеки
authorize_follow:
already_following: Ви вже слідкуєте за цим обліковим записом
@@ -1029,14 +1052,11 @@ uk:
more_details_html: Подробиці за посиланням політика конфіденційності .
username_available: Ваше ім'я користувача стане доступним для використання
username_unavailable: Ваше ім'я користувача залишиться недоступним для використання
- directories:
- directory: Каталог профілів
- explanation: Шукайте користувачів за їх інтересами
- explore_mastodon: Досліджуйте %{title}
disputes:
strikes:
action_taken: Дію виконано
appeal: Апеляція
+ appeal_approved: Це попередження було успішно оскаржене і більше не дійсне
appeal_rejected: Апеляцію було відхилено
appeal_submitted_at: Апеляцію надіслано
appealed_msg: Вашу апеляцію було надіслано. Якщо її погодять, вам буде повідомлено про це.
@@ -1045,6 +1065,7 @@ uk:
approve_appeal: Схвалити апеляцію
associated_report: Пов'язана скарга
created_at: Застарілі
+ description_html: Це дії, виконані проти вашого облікового запису та попереджень, які були відправлені вам персоналом %{instance}.
recipient: Адресант
reject_appeal: Відхилити апеляцію
status: 'Допис #%{id}'
@@ -1109,29 +1130,72 @@ uk:
public: Глобальні стрічки
thread: Повідомлення
edit:
+ add_keyword: Додати ключове слово
+ keywords: Ключові слова
+ statuses: Окремі дописи
+ statuses_hint_html: Цей фільтр застосовується для вибору окремих дописів, незалежно від того, чи збігаються вони з ключовими словами нижче. Перегляд чи вилучення дописів з фільтра .
title: Редагувати фільтр
errors:
+ deprecated_api_multiple_keywords: Ці параметри не можна змінити з цього застосунку, тому що вони застосовуються до більш ніж одного ключового слова. Використовуйте новішу версію застосунку або вебінтерфейс.
invalid_context: Контекст неправильний або не був наданий
- invalid_irreversible: Незворотне фільтрування працює тільки в контексті свого фіду або сповіщень
index:
+ contexts: Фільтри в %{contexts}
delete: Видалити
empty: У вас немає фільтрів.
+ expires_in: Закінчується %{distance}
+ expires_on: Закінчується %{date}
+ keywords:
+ few: "%{count} ключові слова"
+ many: "%{count} ключових слів"
+ one: "%{count} ключове слово"
+ other: "%{count} ключових слів"
+ statuses:
+ few: "%{count} дописи"
+ many: "%{count} дописів"
+ one: "%{count} допис"
+ other: "%{count} дописа"
+ statuses_long:
+ few: Сховано %{count} окремі дописи
+ many: Сховано %{count} окремих дописів
+ one: Сховано %{count} окремий допис
+ other: Сховано %{count} окремі дописи
title: Фільтри
new:
+ save: Зберегти новий фільтр
title: Додати фільтр
+ statuses:
+ back_to_filter: Назад до фільтру
+ batch:
+ remove: Вилучити з фільтра
+ index:
+ hint: Цей фільтр застосовується для вибору окремих дописів, незалежно від інших критеріїв. Ви можете додавати більше дописів до цього фільтра з вебінтерфейсу.
+ title: Відфільтровані дописи
footer:
- developers: Розробникам
- more: Більше…
- resources: Ресурси
trending_now: Актуальні
generic:
all: Усі
+ all_items_on_page_selected_html:
+ few: Усі %{count} елементи на цій сторінці вибрано.
+ many: Усі %{count} елементів на цій сторінці вибрано.
+ one: "%{count} елемент на цій сторінці вибрано."
+ other: "%{count} елементи на цій сторінці вибрано."
+ all_matching_items_selected_html:
+ few: Усі %{count} елементи, що збігаються з вашим пошуком вибрано.
+ many: Усі %{count} елементів, що збігаються з вашим пошуком вибрано.
+ one: "%{count} елемент, що збігається з вашим пошуком вибрано."
+ other: Усі %{count} елементи, що збігаються з вашим пошуком вибрано.
changes_saved_msg: Зміни успішно збережені!
copy: Копіювати
delete: Видалити
+ deselect: Скасувати вибір
none: Немає
order_by: Сортувати за
save_changes: Зберегти зміни
+ select_all_matching_items:
+ few: Вибрати всі %{count} елементи, що збігаються з вашим пошуком.
+ many: Вибрати всі %{count} елементів, що збігаються з вашим пошуком.
+ one: Вибрати %{count} елемент, що збігається з вашим пошуком.
+ other: Вибрати всі %{count} елементи, що збігаються з вашим пошуком.
today: сьогодні
validation_errors:
few: Щось досі не гаразд! Перегляньте %{count} повідомлень про помилки
@@ -1157,7 +1221,6 @@ uk:
following: Підписки
muting: Список глушення
upload: Завантажити
- in_memoriam_html: Пам'ятник.
invites:
delete: Деактивувати
expired: Вийшов
@@ -1240,26 +1303,13 @@ uk:
copy_account_note_text: 'Цей користувач був переміщений з %{acct}, ось ваші попередні нотатки:'
notification_mailer:
admin:
+ report:
+ subject: "%{name} подає скаргу"
sign_up:
subject: "%{name} приєднується"
- digest:
- action: Показати усі сповіщення
- body: Коротко про пропущене вами з Вашого останнього входу %{since}
- mention: "%{name} згадав(-ла) Вас в:"
- new_followers_summary:
- few: У Вас з'явилось %{count} нових підписники! Чудово!
- many: У Вас з'явилось %{count} нових підписників! Чудово!
- one: Також, у Вас з'явився новий підписник, коли ви були відсутні! Ура!
- other: Також, у Вас з'явилось %{count} нових підписників, поки ви були відсутні! Чудово!
- subject:
- few: "%{count} нові сповіщення з вашого останнього відвідування 🐘"
- many: "%{count} нових сповіщень з вашого останнього відвідування 🐘"
- one: "1 нове сповіщення з вашого останнього відвідування 🐘"
- other: "%{count} нових сповіщень з вашого останнього відвідування 🐘"
- title: Поки ви були відсутні...
favourite:
body: 'Ваш статус подобається %{name}:'
- subject: Користувачу %{name} сподобався ваш статус
+ subject: Ваш статус сподобався %{name}
title: Нове вподобання
follow:
body: "%{name} тепер підписаний(-а) на вас!"
@@ -1328,6 +1378,8 @@ uk:
other: Інше
posting_defaults: Промовчання для постів
public_timelines: Глобальні стрічки
+ privacy_policy:
+ title: Політика конфіденційності
reactions:
errors:
limit_reached: Досягнуто обмеження різних реакцій
@@ -1350,27 +1402,15 @@ uk:
remove_selected_follows: Не стежити за обраними користувачами
status: Статус облікового запису
remote_follow:
- acct: Введіть username@domain, яким ви хочете підписатися
missing_resource: Не вдалося знайти необхідний URL переадресації для вашого облікового запису
- no_account_html: Не маєте облікового запису? Ви можете зареєструватися тут
- proceed: Перейти до підписки
- prompt: 'Ви хочете підписатися на:'
- reason_html: "Чому це необхідно? %{instance}
можливо, не є сервером, на якому ви зареєстровані, тому ми маємо спрямувати вас до вашого домашнього сервера."
- remote_interaction:
- favourite:
- proceed: Перейти до додавання в улюблені
- prompt: 'Ви хочете зробити улюбленим цей дмух:'
- reblog:
- proceed: Перейти до передмухування
- prompt: 'Ви хочете передмухнути цей дмух:'
- reply:
- proceed: Перейти до відповіді
- prompt: 'Ви хочете відповісти на цей дмух:'
reports:
errors:
invalid_rules: не посилається на чинні правила
rss:
content_warning: 'Попередження про матеріали:'
+ descriptions:
+ account: Загальнодоступні дописи від @%{acct}
+ tag: 'Загальнодоступні дописи позначені #%{hashtag}'
scheduled_statuses:
over_daily_limit: Ви перевищили ліміт в %{limit} запланованих дмухів на сьогодні
over_total_limit: Ви перевищили ліміт в %{limit} запланованих дмухів
@@ -1541,10 +1581,11 @@ uk:
pinned: Закріплений пост
reblogged: передмухнув(-ла)
sensitive_content: Дражливий зміст
+ strikes:
+ errors:
+ too_late: Запізно оскаржувати це попередження
tags:
does_not_match_previous_name: не збігається з попереднім ім'ям
- terms:
- title: Умови використання та Політика приватності %{instance}
themes:
contrast: Висока контрасність
default: Mastodon
@@ -1572,9 +1613,11 @@ uk:
user_mailer:
appeal_approved:
action: Перейти у ваш обліковий запис
+ explanation: Оскарження попередження вашому обліковому запису %{strike_date}, яке ви надіслали %{appeal_date} було схвалено. Ваш обліковий запис знову вважається добропорядним.
subject: Вашу апеляцію від %{date} було схвалено
title: Апеляцію схвалено
appeal_rejected:
+ explanation: Оскарження попередження вашому обліковому запису %{strike_date}, яке ви надіслали %{appeal_date} було відхилено.
subject: Вашу апеляцію від %{date} було відхилено
title: Апеляцію відхилено
backup_ready:
@@ -1590,12 +1633,14 @@ uk:
title: Новий вхід
warning:
appeal: Подати апеляцію
+ appeal_description: Якщо ви вважаєте, що це помилка, ви можете надіслати оскаржити дії персоналу %{instance}.
categories:
spam: Спам
violation: Вміст порушує такі правила спільноти
explanation:
delete_statuses: Деякі з ваших дописів порушили одне або кілька правил спільноти, і модератори %{instance} видалили їх.
disable: Ви можете більше не використовувати свій обліковий запис, але ваш профіль та інші дані залишаються недоторканими. Ви можете надіслати запит на створення резервної копії ваших даних, змінити налаштування облікового запису або видалити свій обліковий запис.
+ mark_statuses_as_sensitive: Деякі з ваших дописів модератори %{instance} позначили делікатними. Це означає, що людям потрібно буде торкнутися медіа у дописах перед тим, як буде показано попередній перегляд. Ви можете самостійно позначити медіа делікатним, коли розміщуватимете його в майбутньому.
sensitive: Відтепер усі ваші завантажені медіафайли будуть позначені делікатними й приховані за попередженням.
silence: Ви й надалі можете користуватися своїм обліковим записом, але ваші дописи на цьому сервері бачитимуть лише ті люди, які вже стежать за вами, а вас може бути виключено з різних можливостей виявлення. Проте, інші можуть почати стежити за вами вручну.
suspend: Ви більше не можете користуватися своїм обліковим записом, а ваші інші дані більше недоступні. Ви досі можете увійти, щоб надіслати запит на отримання резервної копії своїх даних до повного видалення впродовж приблизно 30 днів, але ми збережемо деякі основні дані, щоб унеможливити ухилення вами від призупинення.
@@ -1604,7 +1649,9 @@ uk:
subject:
delete_statuses: Ваші дописи на %{acct} були вилучені
disable: Ваш обліковий запис %{acct} було заморожено
+ mark_statuses_as_sensitive: Ваші дописи на %{acct} позначені делікатними
none: Попередження для %{acct}
+ sensitive: Ваші дописи на %{acct} відтепер будуть позначені делікатними
silence: Ваш обліковий запис %{acct} було обмежено
suspend: Ваш обліковий запис %{acct} було призупинено
title:
@@ -1617,20 +1664,13 @@ uk:
suspend: Обліковий запис призупинено
welcome:
edit_profile_action: Налаштувати профіль
- edit_profile_step: Ви можете налаштувати ваш профіль, завантаживши аватар, шпалери, змінивши відображуване ім'я тощо. Якщо ви захочете переглядати нових підписників до того, як вони зможуть підписатися на вас, ви можете заблокувати свій обліковий запис.
+ edit_profile_step: Ви можете налаштувати свій профіль, завантаживши зображення профілю, змінивши відображуване ім'я та інше. Ви можете включити для перегляду нових підписників до того, як вони матимуть змогу підписатися на вас.
explanation: Ось декілька порад для початку
final_action: Почати постити
- final_step: 'Почність постити! Навіть не підписавшись на вас, інші зможуть побачити ваші пости, наприклад, у локальній стрічці та у хештеґах. Якщо ви хочете представитися, можете скористатися хештеґом #introductions.'
+ final_step: 'Почніть дописувати! Навіть не підписавшись на вас, інші зможуть побачити ваші пости, наприклад, у локальній стрічці та у хештеґах. Якщо ви хочете представитися, можете скористатися хештеґом #introductions.'
full_handle: Ваше звернення
full_handle_hint: Те, що ви хочете сказати друзям, щоб вони могли написати вам або підписатися з інших сайтів.
- review_preferences_action: Змінити налаштування
- review_preferences_step: Переконайтеся у тому, що ви налаштували все необхідне, як от які e-mail повідомлення ви хочете отримувати, або який рівень приватності ви хочете встановити вашим постам за замовчуванням. Якщо хочете, ви можете увімкнути автоматичне програвання GIF анімацій.
subject: Ласкаво просимо до Mastodon
- tip_federated_timeline: Федерований фід є широким поглядом на мережу Mastodon. Але він включає лише людей, на яких підписані ваші сусіди по сайту, тому він не є повним.
- tip_following: Ви автоматично підписані на адміністратора(-ів) сервера. Для того, щоб знайти ще цікавих людей, дослідіть локальну та глобальну стрічки.
- tip_local_timeline: Локальний фід - це погляд згори на людей на %{instance}. Це ваші прямі сусіди!
- tip_mobile_webapp: Якщо ваш мобільний браузер пропонує вам додати Mastodon на робочий стіл, ви можете отримувати push-сповіщення. Все може виглядати як нативний застосунок у багатьох речах.
- tips: Поради
title: Ласкаво просимо, %{name}!
users:
follow_limit_reached: Не можна слідкувати більш ніж за %{limit} людей
diff --git a/config/locales/vi.yml b/config/locales/vi.yml
index 7f0022191d..73228159df 100644
--- a/config/locales/vi.yml
+++ b/config/locales/vi.yml
@@ -1,96 +1,33 @@
---
vi:
about:
- about_hashtag_html: Đây là các tút #%{hashtag} trên mạng liên hợp. Bạn có thể tương tác với chúng sau khi đăng nhập.
about_mastodon_html: 'Mạng xã hội của tương lai: Không quảng cáo, không bán thông tin người dùng và phi tập trung! Làm chủ dữ liệu của bạn với Mastodon!'
- about_this: Giới thiệu
- active_count_after: hoạt động
- active_footnote: Người dùng hoạt động hàng tháng (MAU)
- administered_by: 'Quản trị viên:'
- api: API
- apps: Apps
- apps_platforms: Lướt Mastodon trên iOS, Android và các nền tảng khác
- browse_directory: Bạn bè từ khắp mọi nơi trên thế giới
- browse_local_posts: Xem những gì đang xảy ra
- browse_public_posts: Đọc thử những tút công khai trên Mastodon
- contact: Liên lạc
contact_missing: Chưa thiết lập
contact_unavailable: N/A
- continue_to_web: Xem trong web
- discover_users: Thành viên
- documentation: Tài liệu
- federation_hint_html: Đăng ký tài khoản %{instance} là bạn có thể giao tiếp với bất cứ ai trên bất kỳ máy chủ Mastodon nào và còn hơn thế nữa.
- get_apps: Ứng dụng di động
hosted_on: "%{domain} vận hành nhờ Mastodon"
- instance_actor_flash: "Đây là một tài khoản ảo được sử dụng để đại diện cho máy chủ chứ không phải bất kỳ người dùng cá nhân nào. Nó được sử dụng cho mục đích liên kết và không nên chặn trừ khi bạn muốn chặn toàn bộ máy chủ. \n"
- learn_more: Tìm hiểu
- logged_in_as_html: Bạn đã đăng nhập %{username}.
- logout_before_registering: Bạn đã đăng nhập.
- privacy_policy: Chính sách bảo mật
- rules: Quy tắc máy chủ
- rules_html: 'Bên dưới là những quy tắc của máy chủ Mastodon này, bạn phải đọc kỹ trước khi đăng ký:'
- see_whats_happening: Dòng thời gian
- server_stats: 'Thống kê:'
- source_code: Mã nguồn
- status_count_after:
- other: tút
- status_count_before: Nơi lưu giữ
- tagline: Theo dõi bạn bè và khám phá thế giới
- terms: Điều khoản dịch vụ
- unavailable_content: Giới hạn chung
- unavailable_content_description:
- domain: Máy chủ
- reason: Lý do
- rejecting_media: 'Ảnh và video từ những máy chủ sau sẽ không được xử lý, lưu trữ và hiển thị hình thu nhỏ. Bắt buộc nhấp thủ công vào tệp gốc để xem:'
- rejecting_media_title: Ảnh và video
- silenced: 'Tút từ những máy chủ sau sẽ bị ẩn trên bảng tin, trong tin nhắn và không có thông báo nào được tạo từ các tương tác của người dùng của họ, trừ khi bạn có theo dõi người dùng của họ:'
- silenced_title: Những máy chủ bị hạn chế
- suspended: 'Những máy chủ sau sẽ không được xử lý, lưu trữ hoặc trao đổi nội dung. Mọi tương tác hoặc giao tiếp với người dùng từ các máy chủ này đều bị cấm:'
- suspended_title: Những máy chủ bị vô hiệu hóa
- unavailable_content_html: Mastodon cho phép bạn tương tác nội dung và giao tiếp với người dùng từ bất kỳ máy chủ nào khác trong mạng liên hợp. Còn máy chủ này có những ngoại lệ riêng.
- user_count_after:
- other: người dùng
- user_count_before: Nhà của
- what_is_mastodon: Mastodon là gì?
+ title: Giới thiệu
accounts:
- choices_html: "%{name} tôn vinh:"
- endorsements_hint: Bạn có thể tôn vinh những người bạn theo dõi và họ sẽ hiển thị ở giao diện web.
- featured_tags_hint: Bạn có thể cho biết những hashtag thường dùng ở đây.
follow: Theo dõi
followers:
other: Người theo dõi
following: Theo dõi
instance_actor_flash: Tài khoản này được dùng để đại diện cho máy chủ và không phải là người thật. Đừng bao giờ vô hiệu hóa tài khoản này.
- joined: Đã tham gia %{date}
last_active: online
link_verified_on: Liên kết này đã được xác minh quyền sở hữu vào %{date}
- media: Media
- moved_html: "%{name} đã chuyển sang %{new_profile_link}:"
- network_hidden: Dữ liệu đã bị ẩn
nothing_here: Trống trơn!
- people_followed_by: Những người %{name} theo dõi
- people_who_follow: Những người theo dõi %{name}
pin_errors:
following: Để tôn vinh người nào đó, bạn phải theo dõi họ trước
posts:
other: Tút
posts_tab_heading: Tút
- posts_with_replies: Trả lời
- roles:
- admin: Quản trị viên
- bot: Tài khoản Bot
- group: Nhóm
- moderator: Kiểm duyệt viên
- unavailable: Tài khoản bị đình chỉ
- unfollow: Ngưng theo dõi
admin:
account_actions:
action: Thực hiện hành động
title: Áp đặt kiểm duyệt với %{acct}
account_moderation_notes:
- create: Thêm ghi chú
- created_msg: Thêm ghi chú kiểm duyệt thành công!
- destroyed_msg: Đã xóa ghi chú kiểm duyệt!
+ create: Thêm lưu ý
+ created_msg: Thêm lưu ý kiểm duyệt thành công!
+ destroyed_msg: Đã xóa lưu ý kiểm duyệt!
accounts:
add_email_domain_block: Chặn tên miền email
approve: Phê duyệt
@@ -99,12 +36,17 @@ vi:
avatar: Ảnh đại diện
by_domain: Máy chủ
change_email:
- changed_msg: Email tài khoản đã thay đổi thành công!
+ changed_msg: Email đã thay đổi thành công!
current_email: Email hiện tại
label: Thay đổi email
new_email: Email mới
submit: Thay đổi email
title: Thay đổi email cho %{username}
+ change_role:
+ changed_msg: Vai trò đã thay đổi thành công!
+ label: Đổi vai trò
+ no_role: Chưa có vai trò
+ title: Thay đổi vai trò %{username}
confirm: Phê duyệt
confirmed: Đã xác minh
confirming: Chờ xác nhận
@@ -116,7 +58,7 @@ vi:
disable: Khóa
disable_sign_in_token_auth: Vô hiệu hóa xác minh bằng email
disable_two_factor_authentication: Vô hiệu hóa xác minh 2 bước
- disabled: Đã vô hiệu hóa
+ disabled: Tạm khóa
display_name: Tên hiển thị
domain: Máy chủ
edit: Chỉnh sửa
@@ -135,8 +77,8 @@ vi:
ip: IP
joined: Đã tham gia
location:
- all: Toàn bộ
- local: Máy chủ của bạn
+ all: Tất cả
+ local: Máy chủ này
remote: Máy chủ khác
title: Vị trí
login_status: Trạng thái tài khoản
@@ -146,8 +88,9 @@ vi:
memorialized_msg: Đã chuyển %{username} thành tài khoản tưởng nhớ
moderation:
active: Hoạt động
- all: Toàn bộ
- pending: Chờ xử lý
+ all: Tất cả
+ pending: Chờ
+ silenced: Hạn chế
suspended: Vô hiệu hóa
title: Trạng thái
moderation_notes: Nhật ký kiểm duyệt
@@ -155,6 +98,7 @@ vi:
most_recent_ip: IP gần nhất
no_account_selected: Không có tài khoản nào thay đổi vì không có tài khoản nào được chọn
no_limits_imposed: Bình thường
+ no_role_assigned: Chưa có vai trò
not_subscribed: Chưa đăng ký
pending: Chờ duyệt
perform_full_suspension: Vô hiệu hóa
@@ -181,11 +125,6 @@ vi:
reset_password: Đặt lại mật khẩu
resubscribe: Đăng ký lại
role: Vai trò
- roles:
- admin: Quản trị viên
- moderator: Kiểm duyệt viên
- staff: Đội ngũ
- user: Người dùng
search: Tìm kiếm
search_same_email_domain: Tra cứu email
search_same_ip: Tra cứu IP
@@ -198,7 +137,7 @@ vi:
show:
created_reports: Gửi báo cáo
targeted_reports: Bị báo cáo
- silence: Ẩn
+ silence: Hạn chế
silenced: Hạn chế
statuses: Tút
strikes: Lịch sử kiểm duyệt
@@ -228,17 +167,21 @@ vi:
approve_user: Chấp nhận người dùng
assigned_to_self_report: Tự xử lý báo cáo
change_email_user: Đổi email người dùng
+ change_role_user: Thay đổi vai trò
confirm_user: Xác minh người dùng
- create_account_warning: Nhắc nhở người dùng
+ create_account_warning: Cảnh cáo người dùng
create_announcement: Tạo thông báo mới
+ create_canonical_email_block: Tạo chặn tên miền email mới
create_custom_emoji: Tạo emoji
create_domain_allow: Cho phép máy chủ
create_domain_block: Chặn máy chủ
create_email_domain_block: Chặn tên miền email
create_ip_block: Tạo chặn IP mới
create_unavailable_domain: Máy chủ không khả dụng
+ create_user_role: Tạo vai trò
demote_user: Xóa vai trò
destroy_announcement: Xóa thông báo
+ destroy_canonical_email_block: Bỏ chặn tên miền email
destroy_custom_emoji: Xóa emoji
destroy_domain_allow: Bỏ cho phép máy chủ
destroy_domain_block: Bỏ chặn máy chủ
@@ -247,6 +190,7 @@ vi:
destroy_ip_block: Xóa IP đã chặn
destroy_status: Xóa tút
destroy_unavailable_domain: Xóa máy chủ không khả dụng
+ destroy_user_role: Xóa vai trò
disable_2fa_user: Vô hiệu hóa 2FA
disable_custom_emoji: Vô hiệu hóa emoji
disable_sign_in_token_auth_user: Vô hiệu hóa xác minh bằng email cho người dùng
@@ -273,23 +217,29 @@ vi:
update_announcement: Cập nhật thông báo
update_custom_emoji: Cập nhật emoji
update_domain_block: Cập nhật máy chủ chặn
+ update_ip_block: Cập nhật chặn IP
update_status: Cập nhật tút
+ update_user_role: Cập nhật vai trò
actions:
approve_appeal_html: "%{name} đã chấp nhận kháng cáo của %{target}"
approve_user_html: "%{name} đã chấp nhận đăng ký từ %{target}"
assigned_to_self_report_html: "%{name} tự xử lý báo cáo %{target}"
change_email_user_html: "%{name} đã thay đổi địa chỉ email của %{target}"
+ change_role_user_html: "%{name} đã thay đổi vai trò %{target}"
confirm_user_html: "%{name} đã xác minh địa chỉ email của %{target}"
- create_account_warning_html: "%{name} đã nhắc nhở %{target}"
+ create_account_warning_html: "%{name} đã cảnh cáo %{target}"
create_announcement_html: "%{name} tạo thông báo mới %{target}"
+ create_canonical_email_block_html: "%{name} chặn email với hàm băm %{target}"
create_custom_emoji_html: "%{name} đã tải lên biểu tượng cảm xúc mới %{target}"
create_domain_allow_html: "%{name} kích hoạt liên hợp với %{target}"
create_domain_block_html: "%{name} chặn máy chủ %{target}"
create_email_domain_block_html: "%{name} chặn tên miền email %{target}"
create_ip_block_html: "%{name} đã chặn IP %{target}"
create_unavailable_domain_html: "%{name} ngưng phân phối với máy chủ %{target}"
+ create_user_role_html: "%{name} đã tạo vai trò %{target}"
demote_user_html: "%{name} đã xóa vai trò của %{target}"
destroy_announcement_html: "%{name} xóa thông báo %{target}"
+ destroy_canonical_email_block_html: "%{name} bỏ chặn email với hàm băm %{target}"
destroy_custom_emoji_html: "%{name} đã xóa emoji %{target}"
destroy_domain_allow_html: "%{name} đã ngừng liên hợp với %{target}"
destroy_domain_block_html: "%{name} bỏ chặn máy chủ %{target}"
@@ -298,6 +248,7 @@ vi:
destroy_ip_block_html: "%{name} bỏ chặn IP %{target}"
destroy_status_html: "%{name} đã xóa tút của %{target}"
destroy_unavailable_domain_html: "%{name} tiếp tục phân phối với máy chủ %{target}"
+ destroy_user_role_html: "%{name} đã xóa vai trò %{target}"
disable_2fa_user_html: "%{name} đã vô hiệu hóa xác minh hai bước của %{target}"
disable_custom_emoji_html: "%{name} đã ẩn emoji %{target}"
disable_sign_in_token_auth_user_html: "%{name} vô hiệu hóa xác minh email của %{target}"
@@ -324,8 +275,9 @@ vi:
update_announcement_html: "%{name} cập nhật thông báo %{target}"
update_custom_emoji_html: "%{name} đã cập nhật emoji %{target}"
update_domain_block_html: "%{name} cập nhật chặn máy chủ %{target}"
+ update_ip_block_html: "%{name} cập nhật chặn IP %{target}"
update_status_html: "%{name} cập nhật tút của %{target}"
- deleted_status: "(tút đã xóa)"
+ update_user_role_html: "%{name} đã thay đổi vai trò %{target}"
empty: Không tìm thấy bản ghi.
filter_by_action: Theo hành động
filter_by_user: Theo người
@@ -369,6 +321,7 @@ vi:
listed: Liệt kê
new:
title: Thêm Emoji mới
+ no_emoji_selected: Không có emoji nào thay đổi vì không có emoji nào được chọn
not_permitted: Bạn không có quyền thực hiện việc này
overwrite: Ghi đè
shortcode: Viết tắt
@@ -417,6 +370,7 @@ vi:
destroyed_msg: Đã thôi chặn máy chủ
domain: Máy chủ
edit: Chỉnh sửa máy chủ bị chặn
+ existing_domain_block: Bạn đã hạn chế %{name} trước đó.
existing_domain_block_html: Bạn đã áp đặt các giới hạn chặt chẽ hơn cho %{name}, trước tiên bạn cần bỏ chặn nó .
new:
create: Tạo chặn
@@ -571,8 +525,8 @@ vi:
status: Trạng thái
title: Mạng liên hợp
report_notes:
- created_msg: Đã thêm ghi chú kiểm duyệt!
- destroyed_msg: Đã xóa ghi chú kiểm duyệt!
+ created_msg: Đã thêm lưu ý kiểm duyệt!
+ destroyed_msg: Đã xóa lưu ý kiểm duyệt!
today_at: Hôm nay lúc %{time}
reports:
account:
@@ -581,13 +535,13 @@ vi:
action_log: Nhật ký kiểm duyệt
action_taken_by: Quyết định bởi
actions:
- delete_description_html: Những tút bị báo cáo sẽ được xóa và 1 lần cảnh cáo sẽ được ghi lại để giúp bạn lưu ý về tài khoản này trong tương lai.
- mark_as_sensitive_description_html: Media trong các tút bị báo cáo sẽ được đánh dấu là nhạy cảm và 1 lần cảnh cáo sẽ được ghi lại để giúp bạn nắm bắt nhanh những vi phạm của cùng một tài khoản.
- other_description_html: Những tùy chọn để kiểm soát tài khoản và giao tiếp với tài khoản bị báo cáo.
- resolve_description_html: Không có hành động nào áp dụng đối với tài khoản bị báo cáo, không có cảnh cáo, và báo cáo sẽ được đóng.
- silence_description_html: Trang hồ sơ sẽ chỉ hiển thị với những người đã theo dõi hoặc tìm kiếm thủ công, hạn chế tối đa tầm ảnh hưởng của nó. Có thể đổi lại bình thường sau.
- suspend_description_html: Trang hồ sơ và tất cả các nội dung sẽ không thể truy cập cho đến khi nó bị xóa hoàn toàn. Không thể tương tác với tài khoản. Đảo ngược trong vòng 30 ngày.
- actions_description_html: Hướng xử lý báo cáo này. Nếu áp đặt trừng phạt, một email thông báo sẽ được gửi cho họ, ngoại trừ Spam .
+ delete_description_html: Xóa các tút và ghi lại 1 lần cảnh cáo.
+ mark_as_sensitive_description_html: Đánh dấu nhạy cảm media trong các tút và ghi lại 1 lần cảnh cáo.
+ other_description_html: Tùy chọn cách kiểm soát và giao tiếp với tài khoản bị báo cáo.
+ resolve_description_html: Không áp dụng trừng phạt nào và đóng báo cáo.
+ silence_description_html: Chỉ hiển thị trang với những người đã theo dõi hoặc tìm kiếm thủ công.
+ suspend_description_html: Đóng băng hồ sơ và chặn truy cập tất cả các nội dung cho đến khi chúng bị xóa hoàn toàn. Đảo ngược trong vòng 30 ngày.
+ actions_description_html: Nếu áp đặt trừng phạt, một email thông báo sẽ được gửi cho người này, ngoại trừ Spam .
add_to_report: Bổ sung báo cáo
are_you_sure: Bạn có chắc không?
assign_to_self: Giao cho tôi
@@ -597,32 +551,32 @@ vi:
category_description_html: Lý do tài khoản hoặc nội dung này bị báo cáo sẽ được trích dẫn khi giao tiếp với họ
comment:
none: Không có mô tả
- comment_description_html: 'Để cung cấp thêm thông tin, %{name} cho biết:'
+ comment_description_html: "%{name} cho biết thêm:"
created_at: Báo cáo lúc
delete_and_resolve: Xóa tút
forwarded: Chuyển tiếp
forwarded_to: Chuyển tiếp tới %{domain}
- mark_as_resolved: Đã xử lý xong!
- mark_as_sensitive: Đánh dấu là nhạy cảm
+ mark_as_resolved: Xử lý xong
+ mark_as_sensitive: Đánh dấu nhạy cảm
mark_as_unresolved: Mở lại
no_one_assigned: Chưa có
notes:
- create: Ghi chú
+ create: Lưu ý
create_and_resolve: Xử lý
- create_and_unresolve: Mở lại kèm ghi chú mới
+ create_and_unresolve: Mở lại kèm lưu ý mới
delete: Xóa bỏ
- placeholder: Mô tả vi phạm của người này, mức độ xử lý và những cập nhật liên quan khác...
- title: Ghi chú
- notes_description_html: Xem và để lại ghi chú cho các kiểm duyệt viên khác
+ placeholder: Mô tả vi phạm của người này, hướng xử lý và những cập nhật liên quan khác...
+ title: Lưu ý
+ notes_description_html: Xem và để lại lưu ý cho các kiểm duyệt viên khác
quick_actions_description_html: 'Kiểm duyệt nhanh hoặc kéo xuống để xem nội dung bị báo cáo:'
remote_user_placeholder: người dùng ở %{instance}
reopen: Mở lại báo cáo
report: 'Báo cáo #%{id}'
reported_account: Tài khoản bị báo cáo
reported_by: Báo cáo bởi
- resolved: Đã xử lý xong
+ resolved: Đã xong
resolved_msg: Đã xử lý báo cáo xong!
- skip_to_actions: Kiểm duyệt ngay
+ skip_to_actions: Kiểm duyệt
status: Trạng thái
statuses: Nội dung bị báo cáo
statuses_description_html: Lý do tài khoản hoặc nội dung này bị báo cáo sẽ được trích dẫn khi giao tiếp với họ
@@ -631,7 +585,66 @@ vi:
unassign: Bỏ qua
unresolved: Chờ xử lý
updated_at: Cập nhật lúc
- view_profile: Xem trang hồ sơ
+ view_profile: Xem trang
+ roles:
+ add_new: Thêm vai trò
+ assigned_users:
+ other: "%{count} người"
+ categories:
+ administration: Quản trị viên
+ devops: Nhà phát triển
+ invites: Lời mời
+ moderation: Kiểm duyệt
+ special: Đặc biệt
+ delete: Xóa
+ description_html: Thông qua vai trò người dùng , bạn có thể tùy chỉnh những tính năng và vị trí của Mastodon mà người dùng có thể truy cập.
+ edit: Sửa vai trò '%{name}'
+ everyone: Quyền hạn mặc định
+ everyone_full_description_html: Đây vai trò cơ bản ảnh hưởng tới mọi người dùng khác , kể cả những người không có vai trò được chỉ định. Tất cả các vai trò khác đều kế thừa quyền từ vai trò đó.
+ permissions_count:
+ other: "%{count} quyền hạn"
+ privileges:
+ administrator: Quản trị viên
+ administrator_description: Người dùng này có thể truy cập mọi quyền hạn
+ delete_user_data: Xóa dữ liệu người dùng
+ delete_user_data_description: Cho phép xóa dữ liệu của người dùng khác lập tức
+ invite_users: Mời người dùng
+ invite_users_description: Cho phép mời những người mới vào máy chủ
+ manage_announcements: Quản lý thông báo
+ manage_announcements_description: Cho phép quản lý thông báo trên máy chủ
+ manage_appeals: Quản lý kháng cáo
+ manage_appeals_description: Cho phép xem xét kháng cáo đối với các hành động kiểm duyệt
+ manage_blocks: Quản lý chặn
+ manage_blocks_description: Cho phép chặn các nhà cung cấp e-mail và địa chỉ IP
+ manage_custom_emojis: Quản lý emoji
+ manage_custom_emojis_description: Cho phép quản lý các emoji tùy chỉnh trên máy chủ
+ manage_federation: Quản lý liên hợp
+ manage_federation_description: Cho phép chặn hoặc liên hợp với các máy chủ khác và kiểm soát khả năng phân phối
+ manage_invites: Quản lý lời mời
+ manage_invites_description: Cho phép mở và đóng các lời mời đăng ký
+ manage_reports: Quản lý báo cáo
+ manage_reports_description: Cho phép xem xét các báo cáo và thực hiện hành động kiểm duyệt đối với chúng
+ manage_roles: Quản lý vai trò
+ manage_roles_description: Cho phép quản lý và chỉ định các vai trò nhỏ hơn họ
+ manage_rules: Quản lý quy tắc máy chủ
+ manage_rules_description: Cho phép thay đổi quy tắc máy chủ
+ manage_settings: Quản lý thiết lập
+ manage_settings_description: Cho phép thay đổi thiết lập máy chủ
+ manage_taxonomies: Quản lý phân loại
+ manage_taxonomies_description: Cho phép đánh giá nội dung xu hướng và cập nhật cài đặt hashtag
+ manage_user_access: Quản lý người dùng truy cập
+ manage_user_access_description: Cho phép vô hiệu hóa xác thực hai bước của người dùng khác, thay đổi địa chỉ email và đặt lại mật khẩu của họ
+ manage_users: Quản lý người dùng
+ manage_users_description: Cho phép xem thông tin chi tiết của người dùng khác và thực hiện các hành động kiểm duyệt đối với họ
+ manage_webhooks: Quản lý Webhook
+ manage_webhooks_description: Cho phép thiết lập webhook cho các sự kiện quản trị
+ view_audit_log: Xem nhật ký
+ view_audit_log_description: Cho phép xem lịch sử của các hành động quản trị trên máy chủ
+ view_dashboard: Xem quản trị
+ view_dashboard_description: Cho phép truy cập trang tổng quan và các chỉ số khác
+ view_devops: Nhà phát triển
+ view_devops_description: Cho phép truy cập trang tổng quan Sidekiq và pgHero
+ title: Danh sách vai trò
rules:
add_new: Thêm quy tắc
delete: Xóa bỏ
@@ -640,108 +653,67 @@ vi:
empty: Chưa có quy tắc máy chủ.
title: Quy tắc máy chủ
settings:
- activity_api_enabled:
- desc_html: Thu thập số lượng tút được đăng, người dùng hoạt động và người dùng đăng ký mới hàng tuần
- title: Công khai số liệu thống kê về hoạt động người dùng trong API
- bootstrap_timeline_accounts:
- desc_html: Tách tên người dùng bằng dấu phẩy. Những người dùng này sẽ xuất hiện trong mục gợi ý theo dõi
- title: Gợi ý theo dõi cho người dùng mới
- contact_information:
- email: Email liên hệ
- username: Tên tài khoản liên hệ
- custom_css:
- desc_html: Sửa đổi giao diện với CSS trên mỗi trang
- title: Tùy chỉnh CSS
- default_noindex:
- desc_html: Ảnh hưởng đến tất cả người dùng không tự thay đổi cài đặt này
- title: Mặc định người dùng không xuất hiện trong công cụ tìm kiếm
+ about:
+ manage_rules: Sửa quy tắc máy chủ
+ preamble: Cung cấp thông tin chuyên sâu về cách máy chủ được vận hành, kiểm duyệt, tài trợ.
+ rules_hint: Có một khu vực dành riêng cho các quy tắc mà người dùng của bạn phải tuân thủ.
+ title: Giới thiệu
+ appearance:
+ preamble: Tùy chỉnh giao diện web của Mastodon.
+ title: Giao diện
+ branding:
+ preamble: Thương hiệu máy chủ của bạn phân biệt nó với các máy chủ khác trong mạng. Thông tin này có thể được hiển thị trên nhiều môi trường khác nhau, chẳng hạn như giao diện web của Mastodon, các ứng dụng gốc, trong bản xem trước liên kết trên các trang web khác và trong các ứng dụng nhắn tin, v.v. Vì lý do này, cách tốt nhất là giữ cho thông tin này rõ ràng, ngắn gọn và súc tích.
+ title: Thương hiệu
+ content_retention:
+ preamble: Kiểm soát cách lưu trữ nội dung do người dùng tạo trong Mastodon.
+ title: Lưu giữ nội dung
+ discovery:
+ follow_recommendations: Gợi ý theo dõi
+ preamble: Hiển thị nội dung thú vị là công cụ để thu hút người dùng mới, những người có thể không quen bất kỳ ai trong Mastodon. Kiểm soát cách các tính năng khám phá hoạt động trên máy chủ của bạn.
+ profile_directory: Cộng đồng
+ public_timelines: Bảng tin
+ title: Khám phá
+ trends: Xu hướng
domain_blocks:
all: Tới mọi người
disabled: Không ai
- title: Hiển thị khối miền
users: Để đăng nhập người dùng cục bộ
- domain_blocks_rationale:
- title: Hiển thị lý do
- hero:
- desc_html: Hiển thị trên trang chủ. Kích cỡ tối thiểu 600x100px. Mặc định dùng hình thu nhỏ của máy chủ
- title: Hình ảnh giới thiệu
- mascot:
- desc_html: Hiển thị trên nhiều trang. Kích cỡ tối thiểu 293 × 205px. Mặc định dùng linh vật Mastodon
- title: Logo máy chủ
- peers_api_enabled:
- desc_html: Tên miền mà máy chủ này đã kết giao trong mạng liên hợp
- title: Công khai danh sách những máy chủ đã khám phá trong API
- preview_sensitive_media:
- desc_html: Liên kết xem trước trên các trang web khác sẽ hiển thị hình thu nhỏ ngay cả khi phương tiện được đánh dấu là nhạy cảm
- title: Hiển thị phương tiện nhạy cảm trong bản xem trước OpenGraph
- profile_directory:
- desc_html: Cho phép tìm kiếm người dùng
- title: Cho phép hiện danh sách thành viên
registrations:
- closed_message:
- desc_html: Hiển thị trên trang chủ khi đăng ký được đóng lại. Bạn có thể viết bằng thẻ HTML
- title: Thông điệp báo máy chủ đã ngừng đăng ký
- deletion:
- desc_html: Cho phép mọi người xóa tài khoản của họ
- title: Xóa tài khoản
- min_invite_role:
- disabled: Không một ai
- title: Cho phép lời mời bằng cách
- require_invite_text:
- desc_html: Khi chọn phê duyệt người dùng thủ công, hiện “Tại sao bạn muốn đăng ký?” thay cho tùy chọn nhập
- title: Người đăng ký mới phải nhập mã mời tham gia
+ preamble: Kiểm soát những ai có thể tạo tài khoản trên máy chủ của bạn.
+ title: Đăng ký
registrations_mode:
modes:
approved: Yêu cầu phê duyệt để đăng ký
none: Không ai có thể đăng ký
open: Bất cứ ai cũng có thể đăng ký
- title: Chế độ đăng ký
- show_known_fediverse_at_about_page:
- desc_html: Nếu tắt, bảng tin sẽ chỉ hiển thị nội dung do người dùng của máy chủ này tạo ra
- title: Bao gồm nội dung từ mạng liên hợp trên bảng tin không được cho phép
- show_staff_badge:
- desc_html: Hiện huy hiệu đội ngũ trên trang người dùng
- title: Hiện huy hiệu đội ngũ
- site_description:
- desc_html: Nội dung giới thiệu về máy chủ. Mô tả những gì làm cho máy chủ Mastodon này đặc biệt và bất cứ điều gì quan trọng khác. Bạn có thể dùng các thẻ HTML, đặc biệt là <a>
và <em>
.
- title: Mô tả máy chủ
- site_description_extended:
- desc_html: Bạn có thể tạo thêm các mục như quy định chung, hướng dẫn và những thứ khác liên quan tới máy chủ của bạn. Dùng thẻ HTML
- title: Thông tin bổ sung
- site_short_description:
- desc_html: Hiển thị trong thanh bên và thẻ meta. Mô tả Mastodon là gì và điều gì làm cho máy chủ này trở nên đặc biệt trong một đoạn văn duy nhất.
- title: Mô tả máy chủ ngắn
- site_terms:
- desc_html: Bạn có thể viết điều khoản dịch vụ, quyền riêng tư hoặc các vấn đề pháp lý khác. Dùng thẻ HTML
- title: Điều khoản dịch vụ tùy chỉnh
- site_title: Tên máy chủ
- thumbnail:
- desc_html: Bản xem trước thông qua OpenGraph và API. Khuyến nghị 1200x630px
- title: Hình thu nhỏ của máy chủ
- timeline_preview:
- desc_html: Hiển thị dòng thời gian công khai trên trang đích và cho phép API truy cập vào dòng thời gian công khai mà không cần cho phép
- title: Cho phép truy cập vào dòng thời gian công cộng không cần cho phép
- title: Cài đặt trang web
- trendable_by_default:
- desc_html: Ảnh hưởng đến các hashtag chưa được cho phép trước đây
- title: Cho phép hashtags theo xu hướng mà không cần xem xét trước
- trends:
- desc_html: Hiển thị công khai các hashtag được xem xét trước đây hiện đang là xu hướng
- title: Hashtag xu hướng
+ title: Cài đặt máy chủ
site_uploads:
delete: Xóa tập tin đã tải lên
destroyed_msg: Đã xóa tập tin tải lên thành công!
statuses:
+ account: Tác giả
+ application: Ứng dụng
back_to_account: Quay lại trang tài khoản
back_to_report: Quay lại trang báo cáo
batch:
remove_from_report: Xóa khỏi báo cáo
report: Báo cáo
deleted: Đã xóa
+ favourites: Lượt thích
+ history: Lịch sử phiên bản
+ in_reply_to: Trả lời đến
+ language: Ngôn ngữ
media:
title: Media
+ metadata: Metadata
no_status_selected: Bạn chưa chọn bất kỳ tút nào
+ open: Mở tút
+ original_status: Tút gốc
+ reblogs: Lượt đăng lại
+ status_changed: Tút đã thay đổi
title: Toàn bộ tút
+ trending: Xu hướng
+ visibility: Hiển thị
with_media: Có media
strikes:
actions:
@@ -781,6 +753,9 @@ vi:
description_html: Đây là những liên kết được chia sẻ nhiều trên máy chủ của bạn. Nó có thể giúp người dùng tìm hiểu những gì đang xảy ra trên thế giới. Không có liên kết nào được hiển thị công khai cho đến khi bạn duyệt nguồn đăng. Bạn cũng có thể cho phép hoặc từ chối từng liên kết riêng.
disallow: Cấm liên kết
disallow_provider: Cấm nguồn đăng
+ no_link_selected: Không có liên kết nào thay đổi vì không có liên kết nào được chọn
+ publishers:
+ no_publisher_selected: Không có nguồn đăng nào thay đổi vì không có nguồn đăng nào được chọn
shared_by_over_week:
other: "%{count} người chia sẻ tuần rồi"
title: Liên kết xu hướng
@@ -799,6 +774,7 @@ vi:
description_html: Đây là những tút đang được đăng lại và yêu thích rất nhiều trên máy chủ của bạn. Nó có thể giúp người dùng mới và người dùng cũ tìm thấy nhiều người hơn để theo dõi. Không có tút nào được hiển thị công khai cho đến khi bạn cho phép người đăng và người cho phép đề xuất tài khoản của họ cho người khác. Bạn cũng có thể cho phép hoặc từ chối từng tút riêng.
disallow: Cấm tút
disallow_account: Cấm người đăng
+ no_status_selected: Không có tút thịnh hành nào thay đổi vì không có tút nào được chọn
not_discoverable: Tác giả đã chọn không tham gia mục khám phá
shared_by:
other: Được thích và đăng lại %{friendly_count} lần
@@ -813,6 +789,7 @@ vi:
tag_uses_measure: tổng người dùng
description_html: Đây là những hashtag đang xuất hiện trong rất nhiều tút trên máy chủ của bạn. Nó có thể giúp người dùng của bạn tìm ra những gì mọi người đang quan tâm nhiều nhất vào lúc này. Không có hashtag nào được hiển thị công khai cho đến khi bạn cho phép chúng.
listable: Có thể đề xuất
+ no_tag_selected: Không có hashtag thịnh hành nào thay đổi vì không có hashtag nào được chọn
not_listable: Không thể đề xuất
not_trendable: Không xuất hiện xu hướng
not_usable: Không được phép dùng
@@ -830,8 +807,27 @@ vi:
add_new: Thêm mới
delete: Xóa bỏ
edit_preset: Sửa mẫu có sẵn
- empty: Bạn chưa thêm mẫu nhắc nhở nào cả.
- title: Quản lý mẫu nhắc nhở
+ empty: Bạn chưa thêm mẫu cảnh cáo nào cả.
+ title: Quản lý mẫu cảnh cáo
+ webhooks:
+ add_new: Thêm endpoint
+ delete: Xóa bỏ
+ description_html: "Webhook cho phép Mastodon gửi nhận thông báo đẩy thời gian thật về những sự kiện cho ứng dụng thứ ba của bạn, cho ứng dụng của bạn có thể tự động kích hoạt reaction ."
+ disable: Tắt
+ disabled: Đã tắt
+ edit: Sửa endpoint
+ empty: Bạn chưa thiết lập webhook endpoint nào.
+ enable: Bật
+ enabled: Hoạt động
+ enabled_events:
+ other: "%{count} sự kiện đã bật"
+ events: Sự kiện
+ new: Webhook mới
+ rotate_secret: Xoay bí mật
+ secret: Token đăng nhập
+ status: Trạng thái
+ title: Webhook
+ webhook: Webhook
admin_mailer:
new_appeal:
actions:
@@ -842,7 +838,7 @@ vi:
sensitive: đánh dấu tài khoản của họ là nhạy cảm
silence: hạn chế tài khoản của họ
suspend: vô hiệu hóa tài khoản của họ
- body: "%{target} đã khiếu nại quyết định kiểm duyệt từ %{action_taken_by} vào %{date}, vì %{type}. Họ cho biết:"
+ body: "%{target} đã khiếu nại quyết định kiểm duyệt bởi %{action_taken_by} vào %{date}, vì %{type}. Họ cho biết:"
next_steps: Bạn có thể chấp nhận kháng cáo để hủy bỏ kiểm duyệt, hoặc bỏ qua.
subject: "%{username} đang khiếu nại quyết định kiểm duyệt trên %{instance}"
new_pending_account:
@@ -855,12 +851,8 @@ vi:
new_trends:
body: 'Các mục sau đây cần được xem xét trước khi chúng hiển thị công khai:'
new_trending_links:
- no_approved_links: Hiện tại không có liên kết xu hướng nào được duyệt.
- requirements: 'Bất kỳ ứng cử viên nào vượt qua #%{rank} duyệt liên kết xu hướng, với hiện tại là "%{lowest_link_title}" với điểm số %{lowest_link_score}.'
title: Liên kết xu hướng
new_trending_statuses:
- no_approved_statuses: Hiện tại không có tút xu hướng nào được duyệt.
- requirements: 'Bất kỳ ứng cử viên nào vượt qua #%{rank} duyệt tút xu hướng, với hiện tại là "%{lowest_status_url}" với điểm số %{lowest_status_score}.'
title: Tút xu hướng
new_trending_tags:
no_approved_tags: Hiện tại không có hashtag xu hướng nào được duyệt.
@@ -896,16 +888,13 @@ vi:
applications:
created: Đơn đăng ký được tạo thành công
destroyed: Đã xóa đơn đăng ký
- invalid_url: Cung cấp URL không hợp lệ
regenerate_token: Tạo lại mã truy cập
token_regenerated: Mã truy cập được tạo lại thành công
warning: Hãy rất cẩn thận với dữ liệu này. Không bao giờ chia sẻ nó với bất cứ ai!
your_token: Mã truy cập của bạn
auth:
- apply_for_account: Đăng ký
+ apply_for_account: Nhận thông báo khi mở
change_password: Mật khẩu
- checkbox_agreement_html: Tôi đồng ý quy tắc và chính sách bảo mật
- checkbox_agreement_without_rules_html: Tôi đồng ý chính sách bảo mật
delete_account: Xóa tài khoản
delete_account_html: Nếu bạn muốn xóa tài khoản của mình, hãy yêu cầu tại đây . Bạn sẽ được yêu cầu xác nhận.
description:
@@ -924,6 +913,7 @@ vi:
migrate_account: Chuyển sang tài khoản khác
migrate_account_html: Nếu bạn muốn bỏ tài khoản này để dùng một tài khoản khác, bạn có thể thiết lập tại đây .
or_log_in_with: Hoặc đăng nhập bằng
+ privacy_policy_agreement_html: Tôi đã đọc và đồng ý chính sách bảo mật
providers:
cas: CAS
saml: SAML
@@ -931,12 +921,18 @@ vi:
registration_closed: "%{instance} tạm ngưng đăng ký mới"
resend_confirmation: Gửi lại email xác minh
reset_password: Đặt lại mật khẩu
+ rules:
+ preamble: Được ban hành và áp dụng bởi quản trị máy chủ %{domain}.
+ title: Quy tắc máy chủ.
security: Bảo mật
set_new_password: Đặt mật khẩu mới
setup:
email_below_hint_html: Nếu địa chỉ email dưới đây không chính xác, bạn có thể thay đổi địa chỉ tại đây và nhận email xác nhận mới.
email_settings_hint_html: Email xác minh đã được gửi tới %{email}. Nếu địa chỉ email đó không chính xác, bạn có thể thay đổi nó trong cài đặt tài khoản.
title: Thiết lập
+ sign_up:
+ preamble: Với tài khoản trên máy chủ Mastodon này, bạn sẽ có thể theo dõi bất kỳ người nào trên các máy chủ khác, bất kể tài khoản của họ ở đâu.
+ title: Cho phép bạn đăng ký trên %{domain}.
status:
account_status: Trạng thái tài khoản
confirming: Đang chờ xác minh email.
@@ -945,7 +941,6 @@ vi:
redirecting_to: Tài khoản của bạn không hoạt động vì hiện đang chuyển hướng đến %{acct}.
view_strikes: Xem những lần cảnh cáo cũ
too_fast: Nghi vấn đăng ký spam, xin thử lại.
- trouble_logging_in: Quên mật khẩu?
use_security_key: Dùng khóa bảo mật
authorize_follow:
already_following: Bạn đang theo dõi người này
@@ -1003,10 +998,6 @@ vi:
more_details_html: Đọc chính sách bảo mật để biết thêm chi tiết.
username_available: Tên người dùng của bạn sẽ có thể đăng ký lại
username_unavailable: Tên người dùng của bạn sẽ không thể đăng ký mới
- directories:
- directory: Khám phá
- explanation: Tìm những người chung sở thích
- explore_mastodon: Thành viên %{title}
disputes:
strikes:
action_taken: Hành động áp dụng
@@ -1030,7 +1021,7 @@ vi:
delete_statuses: Xóa tút
disable: Đóng băng tài khoản
mark_statuses_as_sensitive: Đánh dấu tút là nhạy cảm
- none: Nhắc nhở
+ none: Cảnh cáo
sensitive: Đánh dấu tài khoản là nhạy cảm
silence: Hạn chế tài khoản
suspend: Vô hiệu hóa tài khoản
@@ -1085,29 +1076,54 @@ vi:
public: Tin công khai
thread: Thảo luận
edit:
+ add_keyword: Thêm từ khoá
+ keywords: Từ khóa
+ statuses: Những tút riêng lẻ
+ statuses_hint_html: Bộ lọc này áp dụng cho các tút riêng lẻ được chọn bất kể chúng có khớp với các từ khóa bên dưới hay không. Xem lại hoặc xóa các tút từ bộ lọc .
title: Chỉnh sửa bộ lọc
errors:
+ deprecated_api_multiple_keywords: Không thể thay đổi các tham số này từ ứng dụng này vì chúng áp dụng cho nhiều hơn một từ khóa bộ lọc. Sử dụng ứng dụng mới hơn hoặc giao diện web.
invalid_context: Bối cảnh không hợp lệ hoặc không có
- invalid_irreversible: Bộ lọc chỉ hoạt động với bảng tin hoặc nội dung thông báo
index:
+ contexts: Bộ lọc %{contexts}
delete: Xóa bỏ
empty: Chưa có bộ lọc nào.
+ expires_in: Hết hạn trong %{distance}
+ expires_on: Hết hạn vào %{date}
+ keywords:
+ other: "%{count} từ khóa"
+ statuses:
+ other: "%{count} tút"
+ statuses_long:
+ other: "%{count} tút riêng lẻ đã ẩn"
title: Bộ lọc
new:
+ save: Lưu thành bộ lọc mới
title: Thêm bộ lọc mới
+ statuses:
+ back_to_filter: Quay về bộ lọc
+ batch:
+ remove: Xóa khỏi bộ lọc
+ index:
+ hint: Bộ lọc này áp dụng để chọn các tút riêng lẻ bất kể các tiêu chí khác. Bạn có thể thêm các tút khác vào bộ lọc này từ giao diện web.
+ title: Những tút đã lọc
footer:
- developers: Phát triển
- more: Nhiều hơn
- resources: Quy tắc
trending_now: Xu hướng
generic:
all: Tất cả
+ all_items_on_page_selected_html:
+ other: Toàn bộ %{count} mục trong trang này đã được chọn.
+ all_matching_items_selected_html:
+ other: Toàn bộ %{count} mục trùng khớp với tìm kiếm đã được chọn.
changes_saved_msg: Đã lưu thay đổi!
copy: Sao chép
delete: Xóa
+ deselect: Bỏ chọn tất cả
none: Trống
order_by: Sắp xếp
save_changes: Lưu thay đổi
+ select_all_matching_items:
+ other: Chọn tất cả%{count} mục trùng hợp với tìm kiếm của bạn.
today: hôm nay
validation_errors:
other: Đã có %{count} lỗi xảy ra! Xem chi tiết bên dưới
@@ -1130,7 +1146,6 @@ vi:
following: Danh sách người theo dõi
muting: Danh sách người đã ẩn
upload: Tải lên
- in_memoriam_html: Tưởng Niệm
invites:
delete: Vô hiệu hóa
expired: Hết hạn
@@ -1210,17 +1225,10 @@ vi:
copy_account_note_text: 'Tài khoản này chuyển từ %{acct}, đây là lịch sử kiểm duyệt của họ:'
notification_mailer:
admin:
+ report:
+ subject: "%{name} đã gửi báo cáo"
sign_up:
subject: "%{name} đã được đăng ký"
- digest:
- action: Xem toàn bộ thông báo
- body: Dưới đây là những tin nhắn bạn đã bỏ lỡ kể từ lần truy cập trước vào %{since}
- mention: "%{name} nhắc đến bạn trong:"
- new_followers_summary:
- other: Ngoài ra, bạn đã có %{count} người theo dõi mới trong khi đi chơi! Ngạc nhiên chưa!
- subject:
- other: "%{count} thông báo mới kể từ lần đăng nhập cuối 🐘"
- title: Khi bạn offline...
favourite:
body: Tút của bạn vừa được thích bởi %{name}
subject: "%{name} vừa thích tút của bạn"
@@ -1292,6 +1300,8 @@ vi:
other: Khác
posting_defaults: Mặc định cho tút
public_timelines: Bảng tin
+ privacy_policy:
+ title: Chính sách bảo mật
reactions:
errors:
limit_reached: Bạn không nên thao tác liên tục
@@ -1307,29 +1317,14 @@ vi:
most_recent: Mới nhất
moved: Đã xóa
mutual: Đồng thời
- primary: Bình thường
+ primary: Hoạt động
relationship: Quan hệ
remove_selected_domains: Xóa hết người theo dõi từ các máy chủ đã chọn
remove_selected_followers: Xóa những người theo dõi đã chọn
remove_selected_follows: Ngưng theo dõi những người đã chọn
- status: Trạng thái tài khoản
+ status: Trạng thái của họ
remote_follow:
- acct: Nhập địa chỉ Mastodon của bạn (tên@máy chủ)
missing_resource: Không tìm thấy URL chuyển hướng cho tài khoản của bạn
- no_account_html: Nếu chưa có tài khoản, hãy đăng ký
- proceed: Theo dõi
- prompt: 'Bạn vừa yêu cầu theo dõi:'
- reason_html: "Tại sao bước này là cần thiết? %{instance}
có thể không phải là máy chủ nơi bạn đã đăng ký, vì vậy chúng tôi cần chuyển hướng bạn đến máy chủ của bạn trước."
- remote_interaction:
- favourite:
- proceed: Thích tút
- prompt: 'Bạn muốn thích tút này:'
- reblog:
- proceed: Tiếp tục đăng lại
- prompt: Bạn có muốn đăng lại tút này?
- reply:
- proceed: Tiếp tục trả lời
- prompt: Bạn có muốn trả lời tút này?
reports:
errors:
invalid_rules: không đúng với quy tắc
@@ -1440,7 +1435,7 @@ vi:
show_more: Đọc thêm
show_newer: Mới hơn
show_older: Cũ hơn
- show_thread: Xem chuỗi tút này
+ show_thread: Trích nguyên văn
sign_in_to_participate: Đăng nhập để trả lời tút này
title: '%{name}: "%{quote}"'
visibilities:
@@ -1495,55 +1490,6 @@ vi:
too_late: Đã quá trễ để kháng cáo
tags:
does_not_match_previous_name: không khớp với tên trước
- terms:
- body_html: |
- Chính sách bảo mật
- Chúng tôi thu thập những thông tin gì?
-
- Thông tin tài khoản cơ bản : Nếu bạn đăng ký trên máy chủ này, bạn phải cung cấp tên người dùng, địa chỉ email và mật khẩu. Bạn cũng có thể tùy chọn bổ sung tên hiển thị, tiểu sử, ảnh đại diện, ảnh bìa. Tên người dùng, tên hiển thị, tiểu sử, ảnh hồ sơ và ảnh bìa luôn được hiển thị công khai.
- Tút, lượt theo dõi và nội dung công khai khác : Danh sách những người bạn theo dõi được liệt kê công khai, cũng tương tự như danh sách những người theo dõi bạn. Khi bạn đăng tút, ngày giờ và ứng dụng sử dụng được lưu trữ. Tút có thể chứa tệp đính kèm hình ảnh và video. Tút công khai và tút mở sẽ hiển thị công khai. Khi bạn đăng một tút trên trang hồ sơ của bạn, đó là nội dung công khai. Tút của bạn sẽ gửi đến những người theo dõi của bạn, đồng nghĩa với việc sẽ có các bản sao được lưu trữ ở máy chủ của họ. Khi bạn xóa bài viết, bản sao từ những người theo dõi của bạn cũng bị xóa theo. Hành động chia sẻ hoặc thích một tút luôn luôn là công khai.
- Tin nhắn và tút dành cho người theo dõi : Toàn bộ tút được lưu trữ và xử lý trên máy chủ. Các tút dành cho người theo dõi được gửi đến những người theo dõi và những người được gắn thẻ trong tút. Còn các tin nhắn chỉ được gửi đến cho người nhận. Điều đó có nghĩa là chúng được gửi đến các máy chủ khác nhau và có các bản sao được lưu trữ ở đó. Chúng tôi đề nghị chỉ cho những người được ủy quyền truy cập vào đó, nhưng không phải máy chủ nào cũng làm như vậy. Do đó, điều quan trọng là phải xem xét kỹ máy chủ của người theo dõi của bạn. Bạn có thể thiết lập tự mình phê duyệt và từ chối người theo dõi mới trong cài đặt. Xin lưu ý rằng quản trị viên máy chủ của bạn và bất kỳ máy chủ của người nhận nào cũng có thể xem các tin nhắn . Người nhận tin nhắn có thể chụp màn hình, sao chép hoặc chia sẻ lại chúng. Không nên chia sẻ bất kỳ thông tin rủi ro nào trên Mastodon.
- Địa chỉ IP và siêu dữ liệu khác : Khi bạn đăng nhập, chúng tôi ghi nhớ địa chỉ IP đăng nhập cũng như tên trình duyệt của bạn. Tất cả các phiên đăng nhập sẽ để bạn xem xét và hủy bỏ trong phần cài đặt. Địa chỉ IP sử dụng được lưu trữ tối đa 12 tháng. Chúng tôi cũng có thể giữ lại nhật ký máy chủ bao gồm địa chỉ IP của những lượt đăng ký tài khoản trên máy chủ của chúng tôi.
-
- Chúng tôi sử dụng thông tin của bạn để làm gì?
- Bất kỳ thông tin nào chúng tôi thu thập từ bạn là:
-
- Để cung cấp các chức năng cốt lõi của Mastodon. Sau khi đăng nhập, bạn mới có thể tương tác với nội dung của người khác và đăng nội dung của riêng bạn. Ví dụ: bạn có thể theo dõi người khác để xem các tút của họ trong bảng tin của bạn.
- Để hỗ trợ kiểm duyệt. Ví dụ so sánh địa chỉ IP của bạn với các địa chỉ đã biết khác để xác định hacker hoặc spammer.
- Địa chỉ email bạn cung cấp chỉ được sử dụng để gửi các thông báo quan trọng, trả lời các câu hỏi cũng như yêu cầu khác từ chính bạn.
-
-
- Chúng tôi bảo vệ thông tin của bạn như thế nào?
- Chúng tôi thực hiện nhiều biện pháp để duy trì sự an toàn khi bạn nhập, gửi hoặc truy cập thông tin cá nhân của bạn. Một vài trong số đó như là kiểm soát phiên đăng nhập của bạn, lưu lượng giữa các ứng dụng và API, bảo mật bằng SSL và băm nhỏ mật khẩu nhờ thuật toán một chiều mạnh mẽ. Bạn có thể kích hoạt xác thực hai yếu tố để tiếp tục truy cập an toàn vào tài khoản của mình.
-
- Chúng tôi lưu trữ dữ liệu như thế nào?
- Chúng tôi tiến hành:
-
- Giữ lại nhật ký máy chủ chứa địa chỉ IP của tất cả các yêu cầu đến máy chủ này, cho đến khi các nhật ký đó bị xóa đi trong vòng 90 ngày.
- Giữ lại các địa chỉ IP được liên kết với người dùng đã đăng ký trong vòng 12 tháng.
-
- Bạn có thể tải xuống một bản sao lưu trữ nội dung của bạn, bao gồm các tút, tập tin đính kèm, ảnh đại diện và ảnh bìa.
- Bạn có thể xóa tài khoản của mình bất cứ lúc nào.
-
- Chúng tôi có sử dụng cookie không?
- Có. Cookie là các tệp nhỏ mà một trang web hoặc nhà cung cấp dịch vụ internet chuyển vào ổ cứng máy tính của bạn thông qua trình duyệt Web (nếu bạn cho phép). Những cookie này cho phép trang web nhận ra trình duyệt của bạn và nếu bạn có tài khoản đã đăng ký, nó sẽ liên kết với tài khoản đã đăng ký của bạn.
- Chúng tôi sử dụng cookie để hiểu và lưu các tùy chọn của bạn cho các lần truy cập trong tiếp theo.
-
- Chúng tôi có tiết lộ bất cứ thông tin nào ra ngoài không?
- Chúng tôi không bán, trao đổi hoặc chuyển nhượng thông tin nhận dạng cá nhân của bạn cho bên thứ ba. Trừ khi bên thứ ba đó đang hỗ trợ chúng tôi điều hành Mastodon, tiến hành kinh doanh hoặc phục vụ bạn, miễn là các bên đó đồng ý giữ bí mật thông tin này. Chúng tôi cũng có thể tiết lộ thông tin của bạn nếu việc công bố là để tuân thủ luật pháp, thực thi quy tắc máy chủ của chúng tôi hoặc bảo vệ quyền, tài sản hợp pháp hoặc sự an toàn của chúng tôi hoặc bất kỳ ai.
- Nội dung công khai của bạn có thể được tải xuống bởi các máy chủ khác trong mạng liên hợp. Các tút công khai hay dành cho người theo dõi được gửi đến các máy chủ nơi người theo dõi của bạn là thành viên và tin nhắn được gửi đến máy chủ của người nhận, cho đến khi những người theo dõi hoặc người nhận đó chuyển sang một máy chủ khác.
- Nếu bạn cho phép một ứng dụng sử dụng tài khoản của mình, tùy thuộc vào phạm vi quyền bạn phê duyệt, ứng dụng có thể truy cập thông tin trang hồ sơ, danh sách người theo dõi, danh sách của bạn, tất cả tút và lượt thích của bạn. Các ứng dụng không bao giờ có thể truy cập địa chỉ e-mail hoặc mật khẩu của bạn.
-
- Cấm trẻ em sử dụng
- Nếu máy chủ này ở EU hoặc EEA: Trang web của chúng tôi, các sản phẩm và dịch vụ đều dành cho những người trên 16 tuổi. Nếu bạn dưới 16 tuổi, xét theo Quy định bảo vệ dữ liệu chung (GDPR ) thì không được sử dụng trang web này.
- Nếu máy chủ này ở Hoa Kỳ: Trang web của chúng tôi, các sản phẩm và dịch vụ đều dành cho những người trên 13 tuổi. Nếu bạn dưới 13 tuổi, xét theo Đạo luật bảo vệ quyền riêng tư trực tuyến của trẻ em (COPPA ) thì không được sử dụng trang web này.
- Quy định pháp luật có thể khác nếu máy chủ này ở khu vực địa lý khác.
-
- Cập nhật thay đổi
- Nếu có thay đổi chính sách bảo mật, chúng tôi sẽ đăng những thay đổi đó ở mục này.
- Tài liệu này phát hành dưới giấy phép CC-BY-SA và được cập nhật lần cuối vào ngày 26 tháng 5 năm 2022.
- Chỉnh sửa và hoàn thiện từ Discourse .
- title: Quy tắc của %{instance}
themes:
contrast: Mastodon (Độ tương phản cao)
default: Mastodon (Tối)
@@ -1608,7 +1554,7 @@ vi:
delete_statuses: Những tút %{acct} của bạn đã bị xóa bỏ
disable: Tài khoản %{acct} của bạn đã bị vô hiệu hóa
mark_statuses_as_sensitive: Tút của bạn trên %{acct} bị đánh dấu nhạy cảm
- none: Nhắc nhở tới %{acct}
+ none: Cảnh cáo %{acct}
sensitive: Tút của bạn trên %{acct} sẽ bị đánh dấu nhạy cảm kể từ bây giờ
silence: Tài khoản %{acct} của bạn đã bị hạn chế
suspend: Tài khoản %{acct} của bạn đã bị vô hiệu hóa
@@ -1616,26 +1562,19 @@ vi:
delete_statuses: Xóa tút
disable: Tài khoản bị đóng băng
mark_statuses_as_sensitive: Tút đã bị đánh dấu nhạy cảm
- none: Nhắc nhở
+ none: Cảnh cáo
sensitive: Tài khoản đã bị đánh dấu nhạy cảm
silence: Tài khoản bị hạn chế
suspend: Tài khoản bị vô hiệu hóa
welcome:
edit_profile_action: Cài đặt trang hồ sơ
- edit_profile_step: Bạn có thể chỉnh sửa trang hồ sơ của mình bằng cách tải lên ảnh đại diện, ảnh bìa, thay đổi tên hiển thị và hơn thế nữa. Nếu bạn muốn tự phê duyệt những người theo dõi mới, hãy chuyển tài khoản sang trạng thái khóa.
+ edit_profile_step: Bạn có thể chỉnh sửa trang hồ sơ của mình bằng cách tải lên ảnh đại diện, ảnh bìa, thay đổi tên hiển thị và hơn thế nữa. Bạn cũng có thể tự phê duyệt những người theo dõi mới.
explanation: Dưới đây là một số mẹo để giúp bạn bắt đầu
final_action: Viết tút mới
- final_step: 'Viết tút mới! Ngay cả khi chưa có người theo dõi, người khác vẫn có thể xem tút công khai của bạn trên bảng tin máy chủ và trong hashtag. Hãy giới thiệu bản thân với hashtag #introduction.'
+ final_step: 'Viết tút mới! Ngay cả khi chưa có người theo dõi, người khác vẫn có thể xem tút công khai của bạn trên bảng tin máy chủ và qua hashtag. Hãy giới thiệu bản thân với hashtag #introductions.'
full_handle: Tên đầy đủ của bạn
full_handle_hint: Đây cũng là địa chỉ được dùng để giao tiếp với tất cả mọi người.
- review_preferences_action: Tùy chỉnh giao diện
- review_preferences_step: Tùy chỉnh mọi thứ! Chẳng hạn như chọn loại email nào bạn muốn nhận hoặc trạng thái đăng tút mặc định mà bạn muốn dùng. Hãy tắt tự động phát GIF nếu bạn dễ bị chóng mặt.
subject: Chào mừng đến với Mastodon
- tip_federated_timeline: Mạng liên hợp là một dạng "liên hợp quốc" của Mastodon. Hiểu một cách đơn giản, nó là những người bạn đã theo dõi từ các máy chủ khác.
- tip_following: Theo mặc định, bạn sẽ theo dõi (các) quản trị viên máy chủ của bạn. Để tìm những người thú vị hơn, hãy xem qua cộng đồng và thế giới.
- tip_local_timeline: Bảng tin là nơi hiện lên những tút công khai của thành viên %{instance}. Họ là những người hàng xóm trực tiếp của bạn!
- tip_mobile_webapp: Nếu trình duyệt trên điện thoại di động của bạn thêm Mastodon vào màn hình chính, bạn có thể nhận được thông báo đẩy. Nó hoạt động gần giống như một app điện thoại!
- tips: Mẹo
title: Xin chào %{name}!
users:
follow_limit_reached: Bạn chỉ có thể theo dõi tối đa %{limit} người
diff --git a/config/locales/zgh.yml b/config/locales/zgh.yml
index 83b5866dfe..d29daf18c4 100644
--- a/config/locales/zgh.yml
+++ b/config/locales/zgh.yml
@@ -1,25 +1,10 @@
---
zgh:
- about:
- about_this: ⵖⴼ
- contact: ⴰⵎⵢⴰⵡⴰⴹ
- learn_more: ⵙⵙⵏ ⵓⴳⴳⴰⵔ
- status_count_after:
- one: ⴰⴷⴷⴰⴷ
- other: ⴰⴷⴷⴰⴷⵏ
- unavailable_content_description:
- domain: ⴰⵎⴰⴽⴽⴰⵢ
- what_is_mastodon: ⵎⴰ'ⵢⴷ ⵉⴳⴰⵏ ⵎⴰⵙⵜⵔⴷⵓⵎ?
accounts:
follow: ⴹⴼⵕ
followers:
one: ⴰⵎⴹⴼⴰⵕ
other: ⵉⵎⴹⴼⴰⵕⵏ
- media: ⵉⵙⵏⵖⵎⵉⵙⵏ
- roles:
- bot: ⴰⴱⵓⵜ
- group: ⵜⴰⵔⴰⴱⴱⵓⵜ
- unfollow: ⴽⴽⵙ ⴰⴹⴼⴼⵓⵕ
admin:
accounts:
change_email:
@@ -40,8 +25,6 @@ zgh:
all: ⵎⴰⵕⵕⴰ
public: ⴰⴳⴷⵓⴷⴰⵏ
reject: ⴰⴳⵢ
- roles:
- user: ⵓⵏⵙⵙⵓⵎⵔⵙ
title: ⵉⵎⵉⴹⴰⵏⵏ
web: ⵡⵉⴱ
action_logs:
@@ -78,9 +61,6 @@ zgh:
notes:
delete: ⴽⴽⵙ
status: ⴰⴷⴷⴰⴷ
- settings:
- site_title: ⵉⵙⵎ ⵏ ⵓⵎⴰⴽⴽⴰⵢ
- title: ⵜⵉⵙⵖⴰⵍ ⵏ ⵡⴰⵙⵉⵜ
statuses:
media:
title: ⵉⵙⵏⵖⵎⵉⵙⵏ
@@ -119,8 +99,6 @@ zgh:
filters:
index:
delete: ⴽⴽⵙ
- footer:
- more: ⵓⴳⴳⴰⵔ…
generic:
all: ⵎⴰⵕⵕⴰ
copy: ⵙⵏⵖⵍ
diff --git a/config/locales/zh-CN.yml b/config/locales/zh-CN.yml
index 783733a0a6..92ae4cbe74 100644
--- a/config/locales/zh-CN.yml
+++ b/config/locales/zh-CN.yml
@@ -1,90 +1,25 @@
---
zh-CN:
about:
- about_hashtag_html: 这里展示的是带有话题标签 #%{hashtag} 的公开嘟文。如果你想与他们互动,你需要在任意一个 Mastodon 站点或与其兼容的网站上拥有一个帐户。
about_mastodon_html: Mastodon 是一个建立在开放式网络协议和自由、开源软件之上的社交网络,有着类似于电子邮件的分布式设计。
- about_this: 关于本站
- active_count_after: 活跃用户
- active_footnote: 每月活跃用户(MAU)
- administered_by: 本站管理员:
- api: API
- apps: 移动应用
- apps_platforms: 在 iOS、Android 和其他平台上使用 Mastodon
- browse_directory: 浏览用户目录并按兴趣筛选
- browse_local_posts: 浏览此服务器上实时公开嘟文
- browse_public_posts: 浏览 Mastodon 上公共嘟文的实时信息流
- contact: 联系方式
contact_missing: 未设定
contact_unavailable: 未公开
- continue_to_web: 继续前往网页应用
- discover_users: 发现用户
- documentation: 文档
- federation_hint_html: 在 %{instance} 上拥有账号后,你可以关注任何兼容Mastodon的服务器上的人。
- get_apps: 尝试移动应用
hosted_on: 运行在 %{domain} 上的 Mastodon 站点
- instance_actor_flash: '这个账号是个虚拟账号,不代表任何用户,只用来代表服务器本身。它用于和其它服务器互通,所以不应该被封禁,除非你想封禁整个实例。但是想封禁整个实例的时候,你应该用域名封禁。
-
- '
- learn_more: 了解详情
- logged_in_as_html: 您当前以 %{username} 登录。
- logout_before_registering: 您已登录。
- privacy_policy: 隐私政策
- rules: 服务器规则
- rules_html: 如果你想要在此Mastodon服务器上拥有一个账户,你必须遵守相应的规则,摘要如下:
- see_whats_happening: 看看有什么新鲜事
- server_stats: 服务器统计数据:
- source_code: 源码
- status_count_after:
- other: 条嘟文
- status_count_before: 他们共嘟出了
- tagline: 关注并发现新朋友
- terms: 使用条款
- unavailable_content: 被限制的服务器
- unavailable_content_description:
- domain: 服务器
- reason: 原因
- rejecting_media: 来自这些服务器的媒体文件将不会被处理或存储,缩略图也不会显示,需要手动点击打开原始文件。
- rejecting_media_title: 被过滤的媒体文件
- silenced: 来自这些服务器上的帖子将不会出现在公共时间轴和会话中,通知功能也不会提醒这些用户的动态;只有你关注了这些用户,才会收到用户互动的通知消息。
- silenced_title: 已限制的服务器
- suspended: 这些服务器的数据将不会被处理、存储或者交换,本站也将无法和来自这些服务器的用户互动或者交流。
- suspended_title: 已被封禁的服务器
- unavailable_content_html: 通常来说,在 Mastodon 上,你可以浏览联邦宇宙中任何一台服务器上的内容,并且和上面的用户互动。但是某些站点上不排除会有例外。
- user_count_after:
- other: 位用户
- user_count_before: 这里共注册有
- what_is_mastodon: Mastodon 是什么?
+ title: 关于本站
accounts:
- choices_html: "%{name} 的推荐:"
- endorsements_hint: 你可以在 web 界面上推荐你关注的人,他们会显示在这里。
- featured_tags_hint: 你可以精选一些话题标签展示在这里。
follow: 关注
followers:
other: 关注者
following: 正在关注
- instance_actor_flash: 这个账户是一个虚拟账户,用来代表服务器自身,不代表任何实际用户。它用于互通功能,不应该被封禁。
- joined: 加入于 %{date}
+ instance_actor_flash: 该账号用来代表虚拟角色,并不代表个人用户,仅代表服务器本身。该账号用于达成互联之目的,不应该被停用。
last_active: 最近活动
link_verified_on: 此链接的所有权已在 %{date} 检查
- media: 媒体
- moved_html: "%{name} 已经迁移到 %{new_profile_link}:"
- network_hidden: 此信息不可用
nothing_here: 这里什么都没有!
- people_followed_by: "%{name} 关注的人"
- people_who_follow: 关注 %{name} 的人
pin_errors:
following: 你必须关注你要推荐的人
posts:
other: 嘟文
posts_tab_heading: 嘟文
- posts_with_replies: 嘟文和回复
- roles:
- admin: 管理员
- bot: 机器人
- group: 群组
- moderator: 监察员
- unavailable: 个人资料不可用
- unfollow: 取消关注
admin:
account_actions:
action: 执行操作
@@ -101,12 +36,17 @@ zh-CN:
avatar: 头像
by_domain: 域名
change_email:
- changed_msg: 已成功更改账号的电子邮箱!
+ changed_msg: 已成功更改电子邮件地址!
current_email: 当前的电子邮箱
label: 更改电子邮箱
new_email: 新的电子邮箱
submit: 更改电子邮件地址
title: 为 %{username} 更改电子邮箱
+ change_role:
+ changed_msg: 已成功更改角色!
+ label: 更改角色
+ no_role: 未设置角色
+ title: 为 %{username} 更改角色
confirm: 确认
confirmed: 已确认
confirming: 等待确认
@@ -150,6 +90,7 @@ zh-CN:
active: 活跃
all: 全部
pending: 待审核
+ silenced: 受限
suspended: 已封禁
title: 管理
moderation_notes: 管理员备注
@@ -157,6 +98,7 @@ zh-CN:
most_recent_ip: 最后一次活跃的 IP 地址
no_account_selected: 因为没有选中任何账号,所以没有更改
no_limits_imposed: 无限制
+ no_role_assigned: 未定角色
not_subscribed: 未订阅
pending: 待审核
perform_full_suspension: 封禁
@@ -182,12 +124,7 @@ zh-CN:
reset: 重置
reset_password: 重置密码
resubscribe: 重新订阅
- role: 用户组
- roles:
- admin: 管理员
- moderator: 监察员
- staff: 站务人员
- user: 普通用户
+ role: 角色
search: 搜索
search_same_email_domain: 其他具有相同电子邮箱域名的用户
search_same_ip: 具有相同IP的其他用户
@@ -230,17 +167,21 @@ zh-CN:
approve_user: 批准用户
assigned_to_self_report: 指派举报
change_email_user: 为用户修改邮箱地址
+ change_role_user: 更改用户角色
confirm_user: 确认用户
create_account_warning: 创建警告
create_announcement: 创建公告
+ create_canonical_email_block: 新增 E-mail 屏蔽
create_custom_emoji: 创建自定义表情符号
create_domain_allow: 允许新域名
create_domain_block: 封禁新域名
create_email_domain_block: 封禁电子邮箱域名
create_ip_block: 新建 IP 规则
create_unavailable_domain: 创建不可用域名
+ create_user_role: 创建角色
demote_user: 给用户降职
destroy_announcement: 删除公告
+ destroy_canonical_email_block: 删除 E-mail 封禁
destroy_custom_emoji: 删除自定义表情符号
destroy_domain_allow: 解除域名允许
destroy_domain_block: 解除域名封禁
@@ -249,6 +190,7 @@ zh-CN:
destroy_ip_block: 删除 IP 规则
destroy_status: 删除嘟文
destroy_unavailable_domain: 删除不可用域名
+ destroy_user_role: 销毁角色
disable_2fa_user: 停用双重认证
disable_custom_emoji: 禁用自定义表情符号
disable_sign_in_token_auth_user: 为用户禁用电子邮件令牌认证
@@ -275,24 +217,30 @@ zh-CN:
update_announcement: 更新公告
update_custom_emoji: 更新自定义表情符号
update_domain_block: 更新域名屏蔽
+ update_ip_block: 编辑 IP 封禁规则
update_status: 更新嘟文
+ update_user_role: 更新角色
actions:
approve_appeal_html: "%{name} 批准了 %{target} 对审核结果的申诉"
approve_user_html: "%{name} 批准了用户 %{target} 的注册"
assigned_to_self_report_html: "%{name} 接管了举报 %{target}"
change_email_user_html: "%{name} 更改了用户 %{target} 的电子邮件地址"
+ change_role_user_html: "%{name} 更改了 %{target} 的角色"
confirm_user_html: "%{name} 确认了用户 %{target} 的电子邮件地址"
create_account_warning_html: "%{name} 向 %{target} 发送了警告"
create_announcement_html: "%{name} 创建了新公告 %{target}"
+ create_canonical_email_block_html: "%{name} 屏蔽了 hash 为 %{target} 的电子邮箱"
create_custom_emoji_html: "%{name} 添加了新的自定义表情 %{target}"
create_domain_allow_html: "%{name} 允许了和域名 %{target} 的跨站交互"
create_domain_block_html: "%{name} 屏蔽了域名 %{target}"
create_email_domain_block_html: "%{name} 屏蔽了电子邮件域名 %{target}"
create_ip_block_html: "%{name} 为 IP %{target} 创建了规则"
create_unavailable_domain_html: "%{name} 停止了向域名 %{target} 的投递"
+ create_user_role_html: "%{name} 创建了 %{target} 角色"
demote_user_html: "%{name} 对用户 %{target} 进行了降任操作"
destroy_announcement_html: "%{name} 删除了公告 %{target}"
- destroy_custom_emoji_html: "%{name} 销毁了自定义表情 %{target}"
+ destroy_canonical_email_block_html: "%{name} 解除屏蔽了 hash 为 %{target} 的电子邮箱"
+ destroy_custom_emoji_html: "%{name} 删除了自定义表情 %{target}"
destroy_domain_allow_html: "%{name} 拒绝了和 %{target} 跨站交互"
destroy_domain_block_html: "%{name} 解除了对域名 %{target} 的屏蔽"
destroy_email_domain_block_html: "%{name} 解除了对电子邮件域名 %{target} 的屏蔽"
@@ -300,6 +248,7 @@ zh-CN:
destroy_ip_block_html: "%{name} 删除了 IP %{target} 的规则"
destroy_status_html: "%{name} 删除了 %{target} 的嘟文"
destroy_unavailable_domain_html: "%{name} 恢复了向域名 %{target} 的投递"
+ destroy_user_role_html: "%{name} 删除了 %{target} 角色"
disable_2fa_user_html: "%{name} 停用了用户 %{target} 的双重认证"
disable_custom_emoji_html: "%{name} 停用了自定义表情 %{target}"
disable_sign_in_token_auth_user_html: "%{name} 已为 %{target} 禁用电子邮件令牌认证"
@@ -326,8 +275,9 @@ zh-CN:
update_announcement_html: "%{name} 更新了公告 %{target}"
update_custom_emoji_html: "%{name} 更新了自定义表情 %{target}"
update_domain_block_html: "%{name} 更新了对 %{target} 的域名屏蔽"
+ update_ip_block_html: "%{name} 修改了对 IP %{target} 的规则"
update_status_html: "%{name} 刷新了 %{target} 的嘟文"
- deleted_status: "(嘟文已删除)"
+ update_user_role_html: "%{name} 更改了 %{target} 角色"
empty: 没有找到日志
filter_by_action: 根据行为过滤
filter_by_user: 根据用户过滤
@@ -371,6 +321,7 @@ zh-CN:
listed: 已显示
new:
title: 添加新的自定义表情
+ no_emoji_selected: 因为没有选中任何表情,所以没有更改
not_permitted: 你没有权限进行此操作
overwrite: 覆盖
shortcode: 短代码
@@ -419,6 +370,7 @@ zh-CN:
destroyed_msg: 域名屏蔽已撤销
domain: 域名
edit: 编辑域名屏蔽
+ existing_domain_block: 您已经对 %{name} 设置了更严格的限制。
existing_domain_block_html: 你已经对 %{name} 施加了更严格的限制,你需要先 解封 。
new:
create: 添加屏蔽
@@ -434,7 +386,7 @@ zh-CN:
private_comment: 私密评论
private_comment_hint: 给这一域名限制添加备注,供监察员内部使用
public_comment: 公开评论
- public_comment_hint: 给这一域名限制添加公开的评论,如果你推广你的域名限制列表的话,这些评论就会显示出来。
+ public_comment_hint: 给这一域名限制添加公开的评论,在公告域名限制列表开启时这些评论将会公开可见。
reject_media: 拒绝接收媒体文件
reject_media_hint: 删除本站已缓存的媒体文件,并且不再接收来自该域名的任何媒体文件。此选项不影响封禁
reject_reports: 拒绝接收举报
@@ -634,6 +586,65 @@ zh-CN:
unresolved: 未处理
updated_at: 更新时间
view_profile: 查看资料
+ roles:
+ add_new: 添加角色
+ assigned_users:
+ other: "%{count} 用户"
+ categories:
+ administration: 管理
+ devops: 开发运维
+ invites: 邀请
+ moderation: 监察
+ special: 特殊
+ delete: 刪除
+ description_html: 使用 用户角色 ,您可以自定义您的用户可以访问的功能和区域。
+ edit: 编辑 '%{name}' 角色
+ everyone: 默认权限
+ everyone_full_description_html: 这是影响到 所有用户 的基础角色 ,包括未指定角色的用户。 其他所有的角色都继承着它的权限。
+ permissions_count:
+ other: "%{count} 权限"
+ privileges:
+ administrator: 管理员
+ administrator_description: 拥有此权限的用户将绕过每个权限
+ delete_user_data: 删除用户数据
+ delete_user_data_description: 允许用户立即删除其他用户的数据
+ invite_users: 邀请用户
+ invite_users_description: 允许用户邀请新人加入服务器
+ manage_announcements: 管理公告
+ manage_announcements_description: 允许用户管理服务器上的通知
+ manage_appeals: 管理申诉
+ manage_appeals_description: 允许用户审查对适度动作的上诉
+ manage_blocks: 管理版块
+ manage_blocks_description: 允许用户屏蔽电子邮件提供商和IP地址
+ manage_custom_emojis: 管理自定义表情
+ manage_custom_emojis_description: 允许用户管理服务器上的自定义表情
+ manage_federation: 管理联邦
+ manage_federation_description: 允许用户阻止或允许使用其他域切换并控制可交付性
+ manage_invites: 管理邀请
+ manage_invites_description: 允许用户浏览和停用邀请链接
+ manage_reports: 管理报告
+ manage_reports_description: 允许用户查看报告并对其执行审核操作
+ manage_roles: 管理角色
+ manage_roles_description: 允许用户管理和分配比他们权限低的角色
+ manage_rules: 管理规则
+ manage_rules_description: 允许用户更改服务器规则
+ manage_settings: 管理设置
+ manage_settings_description: 允许用户更改站点设置
+ manage_taxonomies: 管理分类法
+ manage_taxonomies_description: 允许用户查看热门内容并更新标签设置
+ manage_user_access: 管理访问
+ manage_user_access_description: 允许用户禁用其他用户的双重身份验证, 更改他们的电子邮件地址, 并重置他们的密码
+ manage_users: 管理用户
+ manage_users_description: 允许用户查看其他用户信息并对他们执行审核操作
+ manage_webhooks: 管理网钩
+ manage_webhooks_description: 允许用户为管理事件设置网钩
+ view_audit_log: 查看审核日志
+ view_audit_log_description: 允许用户在服务器上查看管理操作历史
+ view_dashboard: 查看仪表板
+ view_dashboard_description: 允许用户访问仪表盘和各种指标
+ view_devops: 开发运维
+ view_devops_description: 允许用户访问 Sidekiq 和 pgHero 仪表板
+ title: 角色
rules:
add_new: 添加规则
delete: 删除
@@ -642,108 +653,67 @@ zh-CN:
empty: 尚未定义服务器规则。
title: 实例规则
settings:
- activity_api_enabled:
- desc_html: 本站一周内的嘟文数、活跃用户数以及新用户数
- title: 公开用户活跃度的统计数据
- bootstrap_timeline_accounts:
- desc_html: 用半角逗号分隔多个用户名。这些账户一定会在推荐关注中展示。
- title: 新用户推荐关注
- contact_information:
- email: 用于联系的公开电子邮件地址
- username: 用于联系的公开用户名
- custom_css:
- desc_html: 通过 CSS 代码调整所有页面的显示效果
- title: 自定义 CSS
- default_noindex:
- desc_html: 影响所有尚未更改此设置的用户
- title: 默认不让用户被搜索引擎索引
+ about:
+ manage_rules: 管理服务器规则
+ preamble: 提供此服务器如何运营、资金状况等的深入信息。
+ rules_hint: 有一个专门区域用于显示用户需要遵守的规则。
+ title: 关于本站
+ appearance:
+ preamble: 自定义 Mastodon 的网页界面。
+ title: 外观
+ branding:
+ preamble: 你的服务器与网络中其他服务器的招牌区别。此信息将可能在多种环境下显示,包括 Mastodon 网页界面、原生应用和其他网站的链接预览等。因此应尽量简明扼要。
+ title: 招牌
+ content_retention:
+ preamble: 控制用户生成的内容在 Mastodon 中如何存储。
+ title: 内容保留
+ discovery:
+ follow_recommendations: 关注推荐
+ preamble: 露出有趣的内容有助于新加入 Mastodon 的用户融入。可在这里控制多种发现功能如何在你的服务器上工作。
+ profile_directory: 个人资料目录
+ public_timelines: 公共时间轴
+ title: 发现
+ trends: 流行趋势
domain_blocks:
all: 对所有人
disabled: 不对任何人
- title: 查看域名屏蔽
users: 对本地已登录用户
- domain_blocks_rationale:
- title: 显示理由
- hero:
- desc_html: 将用于在首页展示。推荐使用分辨率 600×100px 以上的图片。如未设置,将默认使用本站缩略图。
- title: 主题图片
- mascot:
- desc_html: 用于在首页展示。推荐分辨率 293×205px 以上。未指定的情况下将使用默认吉祥物。
- title: 吉祥物图像
- peers_api_enabled:
- desc_html: 截至目前本服务器在联邦宇宙中已发现的域名
- title: 公开已知实例的列表
- preview_sensitive_media:
- desc_html: 无论媒体文件是否标记为敏感内容,站外链接预览始终呈现为缩略图。
- title: 在 OpenGraph 预览中显示敏感媒体内容
- profile_directory:
- desc_html: 允许用户被发现
- title: 启用用户目录
registrations:
- closed_message:
- desc_html: 本站关闭注册期间的提示信息。可以使用 HTML 标签
- title: 关闭注册时的提示信息
- deletion:
- desc_html: 允许所有人删除自己的帐户
- title: 开放删除帐户权限
- min_invite_role:
- disabled: 没有人
- title: 允许发送邀请的用户组
- require_invite_text:
- desc_html: 当注册需要手动批准时,将“你为什么想要加入?”设为必填项
- title: 要求新用户填写申请注册的原因
+ preamble: 控制谁可以在你的服务器上创建账号。
+ title: 注册
registrations_mode:
modes:
approved: 注册时需要批准
none: 关闭注册
open: 开放注册
- title: 注册模式
- show_known_fediverse_at_about_page:
- desc_html: 如果开启,就会在时间轴预览显示其他站点嘟文,否则就只会只显示本站嘟文。
- title: 在时间轴预览中显示其他站点嘟文
- show_staff_badge:
- desc_html: 在个人资料页上显示管理人员标志
- title: 显示管理人员标志
- site_description:
- desc_html: 首页上的介绍文字。 描述一下本 Mastodon 实例的特殊之处以及其他重要信息。可以使用 HTML 标签,包括 <a>
和 <em>
。
- title: 本站简介
- site_description_extended:
- desc_html: 可以填写行为守则、规定、指南或其他本站特有的内容。可以使用 HTML 标签
- title: 本站详细介绍
- site_short_description:
- desc_html: 会在在侧栏和元数据标签中显示。可以用一小段话描述 Mastodon 是什么,以及本服务器的特点。
- title: 服务器一句话介绍
- site_terms:
- desc_html: 可以填写自己的隐私权政策、使用条款或其他法律文本。可以使用 HTML 标签
- title: 自定义使用条款
- site_title: 本站名称
- thumbnail:
- desc_html: 用于在 OpenGraph 和 API 中显示预览图。推荐分辨率 1200×630px
- title: 本站缩略图
- timeline_preview:
- desc_html: 在主页显示公共时间轴
- title: 时间轴预览
- title: 网站设置
- trendable_by_default:
- desc_html: 影响以前未禁止的话题标签
- title: 允许在未审查的情况下将话题置为热门
- trends:
- desc_html: 公开显示先前已通过审核的当前热门话题
- title: 热门标签
+ title: 服务器设置
site_uploads:
delete: 删除已上传的文件
destroyed_msg: 站点上传的文件已经成功删除!
statuses:
+ account: 作者
+ application: 应用
back_to_account: 返回帐户信息页
back_to_report: 返回举报页
batch:
remove_from_report: 从报告中移除
report: 举报
deleted: 已删除
+ favourites: 收藏
+ history: 版本历史记录
+ in_reply_to: 回复给
+ language: 语言
media:
title: 媒体文件
+ metadata: 元数据
no_status_selected: 因为没有嘟文被选中,所以没有更改
+ open: 展开嘟文
+ original_status: 原始嘟文
+ reblogs: 转发
+ status_changed: 嘟文已编辑
title: 帐户嘟文
+ trending: 当前热门
+ visibility: 可见性
with_media: 含有媒体文件
strikes:
actions:
@@ -780,9 +750,12 @@ zh-CN:
links:
allow: 允许链接
allow_provider: 允许发布者
- description_html: 这些是当前此服务器可见账号的嘟文中被大量分享的链接。它可以帮助用户了解正在发生的事情。发布者获得批准前不会公开显示任何链接。你也可以批准或拒绝单个链接。
+ description_html: 这些是当前此服务器可见账号的嘟文中被大量分享的链接。它可以帮助用户了解正在发生的事情。发布者获得批准前不会公开显示任何链接。你也可以批准或拒绝个别链接。
disallow: 不允许链接
disallow_provider: 不允许发布者
+ no_link_selected: 因为没有选中任何链接,所以没有更改
+ publishers:
+ no_publisher_selected: 因为没有选中任何发布者,所以没有更改
shared_by_over_week:
other: 过去一周内被 %{count} 个人分享过
title: 热门链接
@@ -798,9 +771,10 @@ zh-CN:
statuses:
allow: 允许嘟文
allow_account: 允许发布者
- description_html: 这些是当前此服务器可见的被大量分享和喜欢的嘟文。这些嘟文可以帮助新老用户找到更多可关注的账号。批准发布者且发布者允许将其账号推荐给其他用户前,不会公开显示任何嘟文。你也可以批准或拒绝单条嘟文。
+ description_html: 这些是当前此服务器可见的被大量分享和喜欢的嘟文。这些嘟文可以帮助新老用户找到更多可关注的账号。批准发布者且发布者允许将其账号推荐给其他用户前,不会公开显示任何嘟文。你也可以批准或拒绝个别嘟文。
disallow: 禁止嘟文
disallow_account: 禁止发布者
+ no_status_selected: 因为没有选中任何热门嘟文,所以没有更改
not_discoverable: 发布者选择不被发现
shared_by:
other: 被分享和喜欢%{friendly_count}次
@@ -815,6 +789,7 @@ zh-CN:
tag_uses_measure: 总使用
description_html: 这些是当前此服务器可见嘟文中大量出现的标签。它可以帮助用户发现其他人正关注的话题。在获得批准前不会公开显示任何标签。
listable: 可被推荐
+ no_tag_selected: 因为没有选中任何标签,所以没有更改
not_listable: 不会被推荐
not_trendable: 不会出现在热门列表中
not_usable: 不可使用
@@ -834,6 +809,25 @@ zh-CN:
edit_preset: 编辑预置警告
empty: 你尚未定义任何警告预设。
title: 管理预设警告
+ webhooks:
+ add_new: 端点
+ delete: 删除
+ description_html: "webhook 使Mastodon能够推送 关于所选事件的实时通知 到您自己的应用程序。 所以您的应用程序可以自动触发反应 。"
+ disable: 禁用
+ disabled: 已禁用
+ edit: 编辑端点
+ empty: 您尚未配置任何Web 钩子端点。
+ enable: 启用
+ enabled: 活跃
+ enabled_events:
+ other: "%{count} 启用的事件"
+ events: 事件
+ new: 新建网钩
+ rotate_secret: 旋转密钥
+ secret: 签名密钥
+ status: 状态
+ title: 网钩
+ webhook: 网钩
admin_mailer:
new_appeal:
actions:
@@ -857,12 +851,8 @@ zh-CN:
new_trends:
body: 以下项目需要审核才能公开显示:
new_trending_links:
- no_approved_links: 当前没有经过批准的热门链接。
- requirements: '以下候选均可超过 #%{rank} 已批准热门链接,当前为 "%{lowest_link_title}",分数为 %{lowest_link_score}。'
title: 热门链接
new_trending_statuses:
- no_approved_statuses: 当前没有经过批准的热门链接。
- requirements: '以下候选均可超过 #%{rank} 已批准热门嘟文,当前为 %{lowest_status_url} 分数为 %{lowest_status_score}。'
title: 热门嘟文
new_trending_tags:
no_approved_tags: 目前没有经批准的热门标签。
@@ -898,16 +888,13 @@ zh-CN:
applications:
created: 应用创建成功
destroyed: 应用删除成功
- invalid_url: URL 无效
regenerate_token: 重置访问令牌
token_regenerated: 访问令牌重置成功
warning: 一定小心,千万不要把它分享给任何人!
your_token: 你的访问令牌
auth:
- apply_for_account: 请求邀请
+ apply_for_account: 前往申请
change_password: 密码
- checkbox_agreement_html: 我同意 实例规则 和 服务条款
- checkbox_agreement_without_rules_html: 我同意 服务条款
delete_account: 删除帐户
delete_account_html: 如果你想删除你的帐户,请点击这里继续 。你需要确认你的操作。
description:
@@ -926,6 +913,7 @@ zh-CN:
migrate_account: 迁移到另一个帐户
migrate_account_html: 如果你希望引导他人关注另一个账号,请点击这里进行设置 。
or_log_in_with: 或通过外部服务登录
+ privacy_policy_agreement_html: 我已阅读并同意 隐私政策
providers:
cas: CAS
saml: SAML
@@ -933,12 +921,18 @@ zh-CN:
registration_closed: "%{instance} 目前不接收新成员"
resend_confirmation: 重新发送确认邮件
reset_password: 重置密码
+ rules:
+ preamble: 这些由 %{domain} 监察员设置和执行。
+ title: 一些基本规则。
security: 账户安全
set_new_password: 设置新密码
setup:
email_below_hint_html: 如果下面的电子邮箱地址是错误的,你可以在这里修改并重新发送新的确认邮件。
email_settings_hint_html: 确认邮件已经发送到%{email}。如果该邮箱地址不对,你可以在账号设置里面修改。
title: 初始设置
+ sign_up:
+ preamble: 使用此 Mastodon 服务器上的帐号,您将能够关注网络上的任何其他人,无论他们的帐号托管在哪里的主机。
+ title: 让我们在 %{domain} 上开始。
status:
account_status: 帐户状态
confirming: 等待电子邮件确认完成。
@@ -947,7 +941,6 @@ zh-CN:
redirecting_to: 你的帐户无效,因为它已被设置为跳转到 %{acct}
view_strikes: 查看针对你账号的记录
too_fast: 表单提交过快,请重试。
- trouble_logging_in: 登录有问题?
use_security_key: 使用安全密钥
authorize_follow:
already_following: 你已经在关注此用户了
@@ -1005,10 +998,6 @@ zh-CN:
more_details_html: 更多细节,请查看 隐私政策 。
username_available: 你的用户名现在又可以使用了
username_unavailable: 你的用户名仍将无法使用
- directories:
- directory: 用户目录
- explanation: 根据兴趣发现用户
- explore_mastodon: 探索 %{title}
disputes:
strikes:
action_taken: 采取的措施
@@ -1087,29 +1076,54 @@ zh-CN:
public: 公共时间轴
thread: 对话
edit:
+ add_keyword: 添加关键词
+ keywords: 关键词
+ statuses: 个别嘟文
+ statuses_hint_html: 无论是否匹配下列关键词,此过滤器适用于选用个别嘟文。从过滤器中审核嘟文或移除嘟文 。
title: 编辑过滤器
errors:
+ deprecated_api_multiple_keywords: 这些参数不能从此应用程序更改,因为它们应用于一个以上的过滤关键字。 使用较新的应用程序或网页界面。
invalid_context: 过滤器场景没有或无效
- invalid_irreversible: 此功能只适用于主页时间轴或通知
index:
+ contexts: 在 %{contexts} 中的过滤器
delete: 删除
empty: 你没有过滤器。
+ expires_in: 在 %{distance} 后过期
+ expires_on: "%{date} 后到期"
+ keywords:
+ other: "%{count} 关键词"
+ statuses:
+ other: "%{count} 条嘟文"
+ statuses_long:
+ other: "%{count} 条个别嘟文已隐藏"
title: 过滤器
new:
+ save: 保存新过滤器
title: 添加新的过滤器
+ statuses:
+ back_to_filter: 返回至过滤器
+ batch:
+ remove: 从过滤器中移除
+ index:
+ hint: 无论其他条件如何,此过滤器适用于选用个别嘟文。你可以从网页界面中向此过滤器加入更多嘟文。
+ title: 过滤的嘟文
footer:
- developers: 开发者
- more: 更多…
- resources: 资源
trending_now: 现在流行
generic:
all: 全部
+ all_items_on_page_selected_html:
+ other: 此页面上的所有 %{count} 项目已被选中。
+ all_matching_items_selected_html:
+ other: 所有 %{count} 匹配您搜索的项目都已被选中。
changes_saved_msg: 更改保存成功!
copy: 复制
delete: 删除
+ deselect: 取消全选
none: 无
order_by: 排序方式
save_changes: 保存更改
+ select_all_matching_items:
+ other: 选择匹配您搜索的所有 %{count} 个项目。
today: 今天
validation_errors:
other: 出错啦!检查一下下面 %{count} 处出错的地方吧
@@ -1132,7 +1146,6 @@ zh-CN:
following: 关注列表
muting: 隐藏列表
upload: 上传
- in_memoriam_html: 谨此悼念。
invites:
delete: 停用
expired: 已失效
@@ -1212,17 +1225,10 @@ zh-CN:
copy_account_note_text: 这个用户迁移自 %{acct},你曾为其添加备注:
notification_mailer:
admin:
+ report:
+ subject: "%{name} 提交了报告"
sign_up:
subject: "%{name} 注册了"
- digest:
- action: 查看所有通知
- body: 以下是自%{since}你最后一次登录以来错过的消息的摘要
- mention: "%{name} 在嘟文中提到了你:"
- new_followers_summary:
- other: 而且,你不在的时候,有 %{count} 个人关注了你!好棒!
- subject:
- other: "自上次访问以来,收到 %{count} 条新通知 🐘"
- title: 在你不在的这段时间……
favourite:
body: 你的嘟文被 %{name} 喜欢了:
subject: "%{name} 喜欢了你的嘟文"
@@ -1294,6 +1300,8 @@ zh-CN:
other: 其他
posting_defaults: 发布默认值
public_timelines: 公共时间轴
+ privacy_policy:
+ title: 隐私政策
reactions:
errors:
limit_reached: 互动种类的限制
@@ -1316,22 +1324,7 @@ zh-CN:
remove_selected_follows: 取消关注所选用户
status: 帐户状态
remote_follow:
- acct: 请输入你的“用户名@实例域名”
missing_resource: 无法确定你的帐户的跳转 URL
- no_account_html: 还没有账号?你可以注册一个
- proceed: 确认关注
- prompt: 你正准备关注:
- reason_html: "为什么需要这个步骤? %{instance}
可能不是你所注册的服务器,所以我们需要先跳转到你所在的服务器。"
- remote_interaction:
- favourite:
- proceed: 确认标记为喜欢
- prompt: 你想要标记此嘟文为喜欢:
- reblog:
- proceed: 确认转嘟
- prompt: 你想要转嘟此条:
- reply:
- proceed: 确认回复
- prompt: 你想要回复此嘟文:
reports:
errors:
invalid_rules: 没有引用有效的规则
@@ -1497,89 +1490,6 @@ zh-CN:
too_late: 已来不及对此次处罚提出申诉
tags:
does_not_match_previous_name: 和之前的名称不匹配
- terms:
- body_html: |
- 隐私政策
- 我们收集什么信息?
-
-
- 基本账号信息 :要注册到此服务器,你可能被要求输入用户名、邮箱地址、以及一组密码。你也可输入其他个人资料信息如昵称和自我描述,上传个人资料图片和顶部图像。账号、昵称、自我描述、个人资料图片和顶部图像始终公开显示。
- 嘟文、正在关注以及其他公开信息 :你的正在关注列表和粉丝列表均为公开显示。当您发送私信时、时间戳和发送来源应用程序将会被储存。私信中可能包含媒体附件,如图片和视频。公开和未公开嘟文可被公开存取。当你在个人资料页面展示特色嘟文时,其也将公开可用。你的嘟文將被投送至你的粉丝——某些情況下这意味着它们将被投送至其他不同的服务器,并于该处存储。当你删除嘟文时,删除信息也将被发送至你的粉丝。将其他嘟文转嘟或加入最爱动作为公开信息。
- 私信以及仅限粉丝的嘟文 :所有的嘟文都存储和处理于服务器上。仅限粉丝的嘟文将被发送至您的粉丝以及被提及的帐号,私信嘟文将仅被发送至被提及的帐号。某些情况下这代表它们将被投送至其他不同的服务器,并于该处存储。 我们致力于限制这些嘟文仅能被获得授权的使用者存取,但在其他某些服务器可能无法生效。因此,请检查您粉丝所在的服务器。您可以于设置中切换手动允许或拒绝粉丝的开关。请注意,服务器的运营者以及任何接收嘟文的服务器都有可能查看信息 ,此外,接收方也可能截图、复制嘟文、或以其他方式再次分享。请不要于 Mastodon 分享任何敏感信息。
- IP 地址以及其他描述资料 :当您登录时,我们会记录您登录来源的 IP 地址,以及用以登录的应用程序。所有已登录的会话都可以在设置中查看和撤销。最近的 IP 地址将被保存至多 12 个月。我们也可能保留服务器记录档,其中包含对我们服务器的所有请求的来源 IP 地址。
-
-
-
-
- 我们将您的信息用于什么?
-
- 我们从您那里收集的信息均可能用于以下用途:
-
-
- 提供 Mastodon 核心功能。您仅能于登录时与其他人的内容互动和发送自己的嘟文。譬如,您可以通过关注其他人来查看您自己个人的首页时间轴上他们的嘟文。
- 协助管理社群,例如将您的 IP 地址与其他已知地址进行比较,以决定是否违反服务器规则。
- 您提供的 邮箱 地址将用于向您发送信息、关于其他人与您内容互动或私信的通知、回复询问,且/或其他请求和问题。
-
-
-
-
- 我们如何保护您的信息?
-
- 当您输入、提交或访问您的个人信息时,我们会实施各种安全措施来维护您个人信息的安全。除此之外,您的浏览器会话与您应用程序及 API 间的流量都以 SSL 保护,您的密码也使用了一种强力的单向算法来散列(哈希化)。您可以启用两步验证来进一步提高您帐号的安全程度。
-
-
-
- 我们的数据保留政策如何?
-
- 我们将致力于:
-
-
- 保留包含所有对此服务器请求的 IP 位置的服务器记录档,只要此类记录档不保留超过 90 天。
- 保留与注册使用者相关的 IP 位置不超过 12 个月。
-
-
- 您可以请求并下载您内容的存档,包含了您的嘟文、媒体附件、个人资料图片和顶部图像。
-
- 您随时都能永久不可逆地删除您的帐号。
-
-
-
- 我们是否使用 cookies ?
-
- 是的。Cookies 是网站或其服务提供商通过您的网络浏览器(若您允许)传送到您电脑硬盘的小型文件。这些 cookies 让网站可以识别您的浏览器,且如果您有注册帐号,其将会关联到您已注册的帐号。
-
- 我们使用 cookies 来了解并存储您的偏好设置以供未来访问。
-
-
-
- 我们会向外界泄露任何信息吗?
-
- 我们不会出售、交易或是以其他方式向外界传输您的个人身份信息。这不包含协助我们营运网站、开展业务或是服务您的可信任的第三方,只要这些第三方同意对这些信息保密。当我们认为发布您的信息是为了遵守法律、执行我们网站的政策、或是保护我们或其他人的权利、财产或安全时,我们也可能会发布您的信息。
-
- 您的公开内容可能被网络中其他服务器下载。您的公开与仅粉丝嘟文将会投送到您的粉丝所在的服务器,直接私信则会投送到接收者所在的服务器,前提是这些粉丝或接收者在不同的服务器上。
-
- 当您授权应用程序使用您的帐号时,根据您所批准的授权范围,其可能会访问您的公开个人档案信息、您的关注列表、您的粉丝、您的列表、您所有的嘟文以及您的收藏。应用程序永远无法访问您的电子邮件地址或密码。
-
-
-
- 儿童使用网站
-
- 如果服务器位于欧盟或欧洲经济区中:我们的网站、产品与服务均供至少 16 岁的人使用。如果您小于 16 岁,根据 GDPR (一般资料保护规范 ) 的要求,请勿使用此网站。
-
- 若此服务器位于美国:我们的网站、产品与服务均供至少 13 岁的人使用。如果您小于 13 岁,根据 COPPA (儿童网络隐私保护法 ) 的要求,请勿使用此网站。
-
- 如果此服务器位于其他司法管辖区,则法律要求可能会有所不同。
-
-
-
- 隐私权政策变更
-
- 若我们决定变更我们的隐私权政策,我们将会在当前页面贴出那些变更。
-
- 此文件以 CC-BY-SA 授权。最后更新时间为 2022 年 5 月 26 日。
-
- 最初改编自 Discourse 隐私政策 .
- title: "%{instance} 使用条款和隐私权政策"
themes:
contrast: Mastodon(高对比度)
default: Mastodon(暗色主题)
@@ -1658,20 +1568,13 @@ zh-CN:
suspend: 账号被封禁
welcome:
edit_profile_action: 设置个人资料
- edit_profile_step: 你可以自定义你的个人资料,包括上传头像、横幅图片、更改昵称等等。如果你想在新的关注者关注你之前对他们进行审核,你也可以选择为你的帐户开启保护。
+ edit_profile_step: 您可以通过上传个人资料图片、更改您的昵称等来自定义您的个人资料。 您可以选择在新关注者关注您之前对其进行审核。
explanation: 下面是几个小贴士,希望它们能帮到你
final_action: 开始嘟嘟
- final_step: '开始嘟嘟吧!即便你现在没有关注者,其他人仍然能在本站时间轴或者话题标签等地方看到你的公开嘟文。试着用 #自我介绍 这个话题标签介绍一下自己吧。'
+ final_step: '开始发嘟! 即使没有关注者,您的公开嘟文也可能会被其他人看到,例如在本地时间轴或话题标签中。 您可能想在 #introductions 话题标签上介绍自己。'
full_handle: 你的完整用户地址
full_handle_hint: 你需要把这个告诉你的朋友们,这样他们就能从另一台服务器向你发送信息或者关注你。
- review_preferences_action: 更改首选项
- review_preferences_step: 记得调整你的偏好设置,比如你想接收什么类型的邮件,或者你想把你的嘟文可见范围默认设置为什么级别。如果你没有晕动病的话,考虑一下启用“自动播放 GIF 动画”这个选项吧。
subject: 欢迎来到 Mastodon
- tip_federated_timeline: 跨站公共时间轴可以让你一窥更广阔的 Mastodon 网络。不过,由于它只显示你的邻居们所订阅的内容,所以并不是全部。
- tip_following: 默认情况下,你会自动关注你所在服务器的管理员。想结交更多有趣的人的话,记得多逛逛本站时间轴和跨站公共时间轴哦。
- tip_local_timeline: 本站时间轴可以让你一窥 %{instance} 上的用户。他们就是离你最近的邻居!
- tip_mobile_webapp: 如果你的移动设备浏览器允许你将 Mastodon 添加到主屏幕,你就能够接收推送消息。它就像本地应用一样好使!
- tips: 小贴士
title: "%{name},欢迎你的加入!"
users:
follow_limit_reached: 你不能关注超过 %{limit} 个人
diff --git a/config/locales/zh-HK.yml b/config/locales/zh-HK.yml
index bbf5b4dad1..acc6de3ade 100644
--- a/config/locales/zh-HK.yml
+++ b/config/locales/zh-HK.yml
@@ -1,87 +1,24 @@
---
zh-HK:
about:
- about_hashtag_html: 這些是包含「#%{hashtag} 」標籤的公開文章。只要你是任何聯盟網站的用戶,便可以與他們互動。
about_mastodon_html: Mastodon(萬象)是屬於未來的社交網路︰無廣告煩擾、無企業監控、設計講道義、分散無大台!立即重奪個人資料的控制權,使用 Mastodon 吧!
- about_this: 關於本伺服器
- active_count_after: 活躍
- active_footnote: 每月活躍使用者 (MAU)
- administered_by: 管理者:
- api: API
- apps: 手機 App
- apps_platforms: 在 iOS、Android 和其他平台使用 Mastodon
- browse_directory: 依興趣瀏覽個人資料目錄和過濾器
- browse_local_posts: 瀏覽這個伺服器的公開文章即時串流
- browse_public_posts: 在 Mastodon 瀏覽公開文章的即時串流
- contact: 聯絡
contact_missing: 未設定
contact_unavailable: 不適用
- discover_users: 探索使用者
- documentation: 說明文件
- federation_hint_html: 你只需要擁有 %{instance} 的帳戶,就可以追蹤任何 Mastodon 服務站上的人!
- get_apps: 嘗試使用手機 App
hosted_on: 在 %{domain} 運作的 Mastodon 伺服器
- instance_actor_flash: |
- 這個帳戶是代表伺服器,而非代表任何個人用戶的虛擬帳號。
- 此帳戶是為聯盟協定而設。除非你想封鎖整個伺服器的話,否則請不要封鎖這個帳戶。如果你想封鎖伺服器,請使用網域封鎖以達到相同效果。
- learn_more: 了解更多
- privacy_policy: 隱私權政策
- rules: 系統規則
- rules_html: 如果你想要在本站開一個新帳戶,以下是你需要遵守的規則:
- see_whats_happening: 看看發生什麼事
- server_stats: 伺服器統計:
- source_code: 源代碼
- status_count_after:
- other: 篇文章
- status_count_before: 共發佈了
- tagline: 關注朋友並探索新朋友
- terms: 使用條款
- unavailable_content: 受限制的伺服器
- unavailable_content_description:
- domain: 伺服器
- reason: 原因
- rejecting_media: 這些伺服器的媒體檔案將不會被處理或儲存,我們亦不會展示其縮圖。請手動點擊以觀看原始檔:
- rejecting_media_title: 被篩選的媒體檔案
- silenced: 除非你已經關注個別使用者,否則來自這些伺服器的文章和通知將會被隱藏。
- silenced_title: 已靜音的伺服器
- suspended: 來自這些伺服器的所有數據將不會被處理。你將不可能聯絡來自這些伺服器的使用者。
- suspended_title: 已停權的伺服器
- unavailable_content_html: Mastodon 通常讓你瀏覽其他社交聯盟網站的所有內容,但是對於這個特定網站,有這些特別的例外規則。
- user_count_after:
- other: 位使用者
- user_count_before: 本站共有
- what_is_mastodon: Mastodon (萬象)是甚麼?
accounts:
- choices_html: "%{name} 的選擇:"
- endorsements_hint: 你可以推薦正在關注的人,他們會被顯示在你的個人頁面。
- featured_tags_hint: 你可以推薦不同標籤,它們也會在此處出現。
follow: 關注
followers:
other: 關注者
following: 正在關注
instance_actor_flash: 這個帳戶是結盟用的本伺服器的虛擬象徵,並不代表任何個別用戶。請不要把帳號停權。
- joined: 於 %{date} 加入
last_active: 上次活躍時間
link_verified_on: 此連結的所有權已在 %{date} 檢查過
- media: 媒體
- moved_html: "%{name} 已經轉移到 %{new_profile_link}:"
- network_hidden: 此信息不可用
nothing_here: 暫時未有內容可以顯示!
- people_followed_by: "%{name} 關注的人"
- people_who_follow: 關注 %{name} 的人
pin_errors:
following: 你只能推薦你正在關注的使用者。
posts:
other: 文章
posts_tab_heading: 文章
- posts_with_replies: 包含回覆的文章
- roles:
- admin: 管理員
- bot: 機械人
- group: 群組
- moderator: 板主
- unavailable: 無法取得個人檔案
- unfollow: 取消關注
admin:
account_actions:
action: 執行動作
@@ -98,7 +35,6 @@ zh-HK:
avatar: 頭像
by_domain: 域名
change_email:
- changed_msg: 帳號電郵更新成功!
current_email: 現時電郵
label: 更改電郵
new_email: 新的電郵
@@ -175,12 +111,6 @@ zh-HK:
reset: 重設
reset_password: 重設密碼
resubscribe: 重新訂閱
- role: 權限
- roles:
- admin: 管理員
- moderator: 管理員
- staff: 工作人員
- user: 普通使用者
search: 搜尋
search_same_email_domain: 其他有相同電郵網域的使用者
search_same_ip: 其他有相同 IP 位址的使用者
@@ -273,7 +203,6 @@ zh-HK:
create_unavailable_domain_html: "%{name} 停止了對網域 %{target} 的更新通知"
demote_user_html: "%{name} 降權了 %{target}"
destroy_announcement_html: "%{name} 刪除了公告 %{target}"
- destroy_custom_emoji_html: "%{name} 刪除了 Emoji %{target}"
destroy_domain_allow_html: "%{name} 禁止網域 %{target} 加入聯邦宇宙"
destroy_domain_block_html: "%{name} 封鎖了網域 %{target}"
destroy_email_domain_block_html: "%{name} 解除封鎖 e-mail 網域 %{target}"
@@ -304,7 +233,6 @@ zh-HK:
update_custom_emoji_html: "%{name} 更新了 Emoji 表情符號 %{target}"
update_domain_block_html: "%{name} 更新了對 %{target} 的網域封鎖"
update_status_html: "%{name} 更新了 %{target} 的嘟文"
- deleted_status: "(已刪除文章)"
empty: 找不到任何日誌。
filter_by_action: 按動作篩選
filter_by_user: 按帳號篩選
@@ -525,94 +453,15 @@ zh-HK:
empty: 尚未定義伺服器規則
title: 伺服器守則
settings:
- activity_api_enabled:
- desc_html: 本站的文章數量、活躍使用者數量、及每週新註冊使用者數量
- title: 公佈使用者活躍度的統計數據
- bootstrap_timeline_accounts:
- desc_html: 以半形逗號分隔多個使用者名稱。只能加入來自本站且未開啟保護的帳號。如果留空,則默認關注本站所有管理員。
- title: 新使用者預設關注的對像
- contact_information:
- email: 輸入一個公開的電郵地址
- username: 輸入使用者名稱
- custom_css:
- desc_html: 透過 CSS 自訂每一頁的外觀
- title: 自訂 CSS
- default_noindex:
- desc_html: 影響所有未自行設定的帳號
- title: 預設帳號不在搜尋引擎索引之內
domain_blocks:
all: 給任何人
disabled: 給沒有人
- title: 顯示封鎖的網域
users: 所有已登入的帳號
- domain_blocks_rationale:
- title: 顯示原因予
- hero:
- desc_html: 在首頁顯示。推薦最小 600x100px。如果留空,就會默認為服務站縮圖
- title: 主題圖片
- mascot:
- desc_html: 在不同頁面顯示。推薦最小 293×205px。如果留空,就會默認為伺服器縮圖。
- title: 縮圖
- peers_api_enabled:
- desc_html: 現時本服務站在網絡中已發現的域名
- title: 公開已知服務站的列表
- preview_sensitive_media:
- desc_html: 在其他頁面預覽的連結將會在敏感媒體的情況下顯示縮圖
- title: 在 OpenGraph 預覽中顯示敏感媒體
- profile_directory:
- desc_html: 允許使用者被搜尋
- title: 啟用個人資料目錄
- registrations:
- closed_message:
- desc_html: 當本站暫停接受註冊時,會顯示這個訊息。 可使用 HTML
- title: 暫停註冊訊息
- deletion:
- desc_html: 允許所有人刪除自己的帳號
- title: 容許刪除帳號
- min_invite_role:
- disabled: 沒有人
- title: 允許發送邀請的身份
- require_invite_text:
- desc_html: 如果已設定為手動審核注冊,請把「加入的原因」設定為必填項目。
- title: 要求新用戶填寫注冊申請
registrations_mode:
modes:
approved: 註冊需要核准
none: 沒有人可註冊
open: 任何人皆能註冊
- title: 註冊模式
- show_known_fediverse_at_about_page:
- desc_html: 如果停用,將會只在本站的歡迎頁顯示本站的文章。
- title: 在訪客預覽本站的時間軸上,顯示跨站文章
- show_staff_badge:
- desc_html: 在個人資料頁上顯示工作人員標誌
- title: 顯示工作人員標誌
- site_description:
- desc_html: 在首頁顯示,及在 meta 標籤使用作網站介紹。 你可以在此使用 <a>
和 <em>
等 HTML 標籤。
- title: 本站介紹
- site_description_extended:
- desc_html: 本站詳細資訊頁的內文 你可以在此使用 HTML
- title: 本站詳細資訊
- site_short_description:
- desc_html: "顯示在側邊欄和網頁標籤(meta tags)。以一句話描述Mastodon是甚麼,有甚麼令這個伺服器脫𩓙而出。"
- title: 伺服器短描述
- site_terms:
- desc_html: 可以填寫自己的隱私權政策、使用條款或其他法律文本。可以使用 HTML 標籤
- title: 自訂使用條款
- site_title: 本站名稱
- thumbnail:
- desc_html: 用於在 OpenGraph 和 API 中顯示預覽圖。推薦大小 1200×630px
- title: 本站縮圖
- timeline_preview:
- desc_html: 在主頁顯示本站時間軸
- title: 時間軸預覽
- title: 網站設定
- trendable_by_default:
- desc_html: 影響之前並未禁止的標籤
- title: 容許標籤不需要審核來成為今期流行
- trends:
- desc_html: 公開地顯示已審核的標籤為今期流行
- title: 趨勢主題標籤
site_uploads:
delete: 刪除上傳的檔案
destroyed_msg: 成功刪除站台的上傳項目!
@@ -679,16 +528,12 @@ zh-HK:
applications:
created: 已建立應用程式
destroyed: 已刪除應用程式
- invalid_url: 所提供的網址不正確
regenerate_token: 重設 token
token_regenerated: 已重設 token
warning: 警告,不要把它分享給任何人!
your_token: token
auth:
- apply_for_account: 請求邀請
change_password: 密碼
- checkbox_agreement_html: 我同意 的伺服器規則 和服務條款
- checkbox_agreement_without_rules_html: 我同意 服務條款
delete_account: 刪除帳號
delete_account_html: 如果你想刪除你的帳號,請點擊這裡繼續 。你需要確認你的操作。
description:
@@ -725,7 +570,6 @@ zh-HK:
pending: 管理員正在處理你的申請。可能會需要一點時間處理。我們將會在申請被批準的時候馬上寄電郵給你。
redirecting_to: 你的帳戶因為正在重新定向到 %{acct},所以暫時被停用。
too_fast: 你太快遞交了,請再試一次。
- trouble_logging_in: 不能登入?
use_security_key: 使用安全密鑰裝置
authorize_follow:
already_following: 你已經關注了這個帳號
@@ -783,10 +627,6 @@ zh-HK:
more_details_html: 請參見隱私政策 以瀏覽細節。
username_available: 你的登入名稱將可被其他人使用
username_unavailable: 你的登入名稱將不能讓其他人使用
- directories:
- directory: 個人資料目錄
- explanation: 根據興趣認識新朋友
- explore_mastodon: 探索%{title}
domain_validator:
invalid_domain: 不是一個可用域名
errors:
@@ -838,7 +678,6 @@ zh-HK:
title: 編輯篩選器
errors:
invalid_context: 沒有提供內文或內文無效
- invalid_irreversible: 不可逆的篩選器只適用放主頁或通知頁面
index:
delete: 刪除
empty: 你沒有過濾器。
@@ -846,9 +685,6 @@ zh-HK:
new:
title: 新增篩選器
footer:
- developers: 開發者
- more: 更多......
- resources: 項目
trending_now: 今期流行
generic:
all: 全部
@@ -878,7 +714,6 @@ zh-HK:
following: 你所關注的用戶名單
muting: 靜音名單
upload: 上載
- in_memoriam_html: 謹此悼念。
invites:
delete: 停用
expired: 已失效
@@ -957,13 +792,6 @@ zh-HK:
carry_mutes_over_text: 此用戶從%{acct} 轉移,該帳號已被你靜音。
copy_account_note_text: 此用戶從%{acct} 轉移,這是你之前在該帳號留下的備注:
notification_mailer:
- digest:
- action: 查看所有通知
- body: 這是自從你在%{since}使用以後,你錯失了的訊息︰
- mention: "%{name} 在此提及了你︰"
- new_followers_summary:
- other: 你新獲得了 %{count} 位關注者了!好厲害!
- title: 在你不在的這段時間……
favourite:
body: 你的文章被 %{name} 喜愛:
subject: "%{name} 喜歡你的文章"
@@ -1055,22 +883,7 @@ zh-HK:
remove_selected_follows: 取消關注所選用戶
status: 帳戶帖文
remote_follow:
- acct: 請輸入你想使用的「使用者名稱@域名」身份
missing_resource: 無法找到你用戶的轉接網址
- no_account_html: 沒有帳號?你可以在這裏註冊
- proceed: 下一步
- prompt: 你希望關注︰
- reason_html: "為甚麼有必要做這個步驟? 因為%{instance}
未必是你註冊的伺服器,所以我們首先需要將你帶回你的伺服器。"
- remote_interaction:
- favourite:
- proceed: 下一步
- prompt: 你要求把這篇文章加入最愛:
- reblog:
- proceed: 繼續轉嘟
- prompt: 你想轉推:
- reply:
- proceed: 下一步
- prompt: 你想回覆:
scheduled_statuses:
over_daily_limit: 你已經超越了當天排定發文的限額 (%{limit})
over_total_limit: 你已經超越了排定發文的限額 (%{limit})
@@ -1221,8 +1034,6 @@ zh-HK:
sensitive_content: 敏感內容
tags:
does_not_match_previous_name: 和舊有名稱並不符合
- terms:
- title: "%{instance} 使用條款和隱私權政策"
themes:
contrast: 高對比
default: 萬象
@@ -1264,20 +1075,11 @@ zh-HK:
suspend: 帳號已停用
welcome:
edit_profile_action: 設定個人資料
- edit_profile_step: 你可以設定你的個人資料,包括上傳頭像、橫幅圖片、更改顯示名稱等等。如果你想在新的關注者關注你之前對他們進行審核,你也可以選擇為你的帳戶設為「私人」。
explanation: 下面是幾個小貼士,希望它們能幫到你
final_action: 開始發文
- final_step: '開始發文吧!即使你現在沒有關注者,其他人仍然能在本站時間軸或者話題標籤等地方看到你的公開文章。試著用 #introductions 這個話題標籤介紹一下自己吧。'
full_handle: 你的完整 Mastodon 地址
full_handle_hint: 這訊息將顯示給你朋友們,讓他們能從另一個服務站發信息給你,或者關注你的。
- review_preferences_action: 更改偏好設定
- review_preferences_step: 記得調整你的偏好設定,比如你想接收什麼類型的郵件,或者你想把你的文章可見範圍默認設定為什麼級別。如果你沒有暈車的話,考慮一下啟用「自動播放 GIF 動畫」這個選項吧。
subject: 歡迎來到 Mastodon (萬象)
- tip_federated_timeline: 跨站時間軸可以讓你一窺更廣闊的 Mastodon 網絡。不過,由於它只顯示你的鄰居們所訂閱的內容,所以並不是全部。
- tip_following: 你會預設關注你服務站的管理員。想結交更多有趣的人的話,記得多逛逛本站時間軸和跨站時間軸哦。
- tip_local_timeline: 本站時間軸可以讓你一窺 %{instance} 本站上的用戶。他們就是離你最近的鄰居!
- tip_mobile_webapp: 如果你的移動設備瀏覽器支援,你可以將 Mastodon 加到裝置的主畫面,讓你可以選擇接收推送通知,就像本機的 App 一樣方便!
- tips: 小貼士
title: 歡迎 %{name} 加入!
users:
follow_limit_reached: 你不能關注多於%{limit} 人
diff --git a/config/locales/zh-TW.yml b/config/locales/zh-TW.yml
index 032a5c9517..7ce2f777c6 100644
--- a/config/locales/zh-TW.yml
+++ b/config/locales/zh-TW.yml
@@ -1,88 +1,25 @@
---
zh-TW:
about:
- about_hashtag_html: 這些是包含「#%{hashtag} 」標籤的公開文章。只要您有任何 Mastodon 站點、或者其他站點的使用者,便可以與他們互動。
about_mastodon_html: Mastodon (長毛象)是一個自由、開放原始碼 的社群網站。它是一個分散式的服務,避免您的通訊被單一商業機構壟斷操控。請您選擇一家您信任的 Mastodon 站點,在上面建立帳號,然後您就可以和任一 Mastodon 站點上的使用者互通,享受無縫的社群網路 交流。
- about_this: 關於本站
- active_count_after: 活躍
- active_footnote: 每月活躍使用者 (MAU)
- administered_by: 管理者:
- api: API
- apps: 行動應用程式
- apps_platforms: 在 iOS、Android 和其他平台使用 Mastodon
- browse_directory: 依興趣瀏覽個人資料目錄和過濾器
- browse_local_posts: 瀏覽這台伺服器中公開嘟文的直播串流
- browse_public_posts: 在 Mastodon 瀏覽公開嘟文的即時串流
- contact: 聯絡我們
contact_missing: 未設定
contact_unavailable: 未公開
- continue_to_web: 於網頁程式中繼續
- discover_users: 探索使用者
- documentation: 文件
- federation_hint_html: 您只需要擁有 %{instance} 的帳號,就可以追蹤任何一台 Mastodon 伺服器上的人等等。
- get_apps: 嘗試行動應用程式
hosted_on: 在 %{domain} 運作的 Mastodon 站點
- instance_actor_flash: "這個帳戶是個用來代表伺服器自已的虛擬角色,而不是實際的使用者。它是用來聯盟用的,除非您想要封鎖整個站台,不然不該封鎖它。但要封鎖整個站台,您可以使用網域封鎖功能。 \n"
- learn_more: 了解詳細
- logged_in_as_html: 您目前登入使用的帳號是 %{username}
- logout_before_registering: 您已經登入了!
- privacy_policy: 隱私權政策
- rules: 伺服器規則
- rules_html: 以下是您若想在此 Mastodon 伺服器建立帳號必須遵守的規則總結:
- see_whats_happening: 看看發生什麼事
- server_stats: 伺服器統計:
- source_code: 原始碼
- status_count_after:
- other: 條嘟文
- status_count_before: 他們共嘟出了
- tagline: 關注朋友並探索新朋友
- terms: 使用條款
- unavailable_content: 無法取得的內容
- unavailable_content_description:
- domain: 伺服器
- reason: 原因
- rejecting_media: 不會處理或儲存這些伺服器的媒體檔案,也不會顯示縮圖,需要手動點選原始檔:
- rejecting_media_title: 過濾的媒體
- silenced: 這些伺服器的嘟文會被從公開時間軸與對話中隱藏,而且與它們的使用者互動並不會產生任何通知,除非您追蹤他們:
- silenced_title: 靜音的伺服器
- suspended: 來自這些伺服器的資料都不會被處理、儲存或交換,也無法和這些伺服器上的使用者互動與溝通:
- suspended_title: 暫停的伺服器
- unavailable_content_html: Mastodon 一般來說允許您閱讀並和任何聯盟伺服器上的使用者互動。這些伺服器是這個站台設下的例外。
- user_count_after:
- other: 位使用者
- user_count_before: 註冊使用者數
- what_is_mastodon: 什麼是 Mastodon?
+ title: 關於本站
accounts:
- choices_html: "%{name} 的選擇:"
- endorsements_hint: 推薦您已經跟隨的人,將他們釘選在您的個人頁面。
- featured_tags_hint: 您可以推薦不同主題標籤,它們也會在此處出現。
follow: 跟隨
followers:
other: 跟隨者
following: 正在跟隨
- instance_actor_flash: 這個帳號是一個用來代表此伺服器的虛擬執行者,而非真實使用者。它用途為站點聯盟且不應被停權。
- joined: 加入於 %{date}
+ instance_actor_flash: 這個帳號是一個用來代表此伺服器的虛擬執行者,而非真實使用者。它用途為聯邦宇宙且不應被停權。
last_active: 上次活躍時間
link_verified_on: 此連結的所有權已在 %{date} 檢查過
- media: 媒體
- moved_html: "%{name} 已經搬遷到 %{new_profile_link}:"
- network_hidden: 此訊息不可用
nothing_here: 暫時沒有內容可供顯示!
- people_followed_by: "%{name} 跟隨的人"
- people_who_follow: 跟隨 %{name} 的人
pin_errors:
following: 您只能推薦您正在跟隨的使用者。
posts:
other: 嘟文
posts_tab_heading: 嘟文
- posts_with_replies: 嘟文與回覆
- roles:
- admin: 管理員
- bot: 機器人
- group: 群組
- moderator: 版主
- unavailable: 無法取得個人檔案
- unfollow: 取消跟隨
admin:
account_actions:
action: 執行動作
@@ -99,12 +36,17 @@ zh-TW:
avatar: 頭像
by_domain: 站點
change_email:
- changed_msg: 已成功變更帳號電子信箱地址!
+ changed_msg: 電子郵件已成功變更!
current_email: 目前的電子信箱地址
label: 變更電子信箱地址
new_email: 新的電子信箱地址
submit: 變更電子信箱地址
title: 為 %{username} 變更電子信箱地址
+ change_role:
+ changed_msg: 成功修改角色!
+ label: 變更角色
+ no_role: 沒有角色
+ title: 為 %{username} 變更角色
confirm: 確定
confirmed: 已確定
confirming: 確定
@@ -148,13 +90,15 @@ zh-TW:
active: 活躍
all: 全部
pending: 等待中
+ silenced: 受限的
suspended: 已停權
- title: 版務
+ title: 站務
moderation_notes: 管理備忘
most_recent_activity: 最近活動
most_recent_ip: 最近 IP 位址
no_account_selected: 未選取任何帳號,因此未變更
no_limits_imposed: 未受限制
+ no_role_assigned: 未指派角色
not_subscribed: 未訂閱
pending: 等待審核中
perform_full_suspension: 停權
@@ -180,12 +124,7 @@ zh-TW:
reset: 重設
reset_password: 重設密碼
resubscribe: 重新訂閱
- role: 身份
- roles:
- admin: 管理員
- moderator: 版主
- staff: 管理人員
- user: 普通使用者
+ role: 角色
search: 搜尋
search_same_email_domain: 其他有同個電子郵件網域的使用者
search_same_ip: 其他有同個 IP 的使用者
@@ -228,17 +167,21 @@ zh-TW:
approve_user: 批准使用者
assigned_to_self_report: 指派回報
change_email_user: 變更使用者的電子信箱地址
+ change_role_user: 變更使用者角色
confirm_user: 確認使用者
create_account_warning: 建立警告
create_announcement: 建立公告
+ create_canonical_email_block: 新增 E-mail 封鎖
create_custom_emoji: 建立自訂顏文字
create_domain_allow: 建立允許網域
create_domain_block: 建立阻擋網域
create_email_domain_block: 封鎖電子郵件站台
create_ip_block: 新增IP規則
create_unavailable_domain: 新增無法存取的網域
+ create_user_role: 建立角色
demote_user: 把用戶降級
destroy_announcement: 刪除公告
+ destroy_canonical_email_block: 刪除 E-mail 封鎖
destroy_custom_emoji: 刪除自訂顏文字
destroy_domain_allow: 刪除允許網域
destroy_domain_block: 刪除阻擋網域
@@ -247,6 +190,7 @@ zh-TW:
destroy_ip_block: 刪除 IP 規則
destroy_status: 刪除狀態
destroy_unavailable_domain: 刪除無法存取的網域
+ destroy_user_role: 移除角色
disable_2fa_user: 停用兩階段認證
disable_custom_emoji: 停用自訂顏文字
disable_sign_in_token_auth_user: 停用使用者電子信箱 token 驗證
@@ -273,31 +217,38 @@ zh-TW:
update_announcement: 更新公告
update_custom_emoji: 更新自訂顏文字
update_domain_block: 更新封鎖網域
+ update_ip_block: 更新 IP 規則
update_status: 更新狀態
+ update_user_role: 更新角色
actions:
approve_appeal_html: "%{name} 批准了來自 %{target} 的審核決定申訴"
approve_user_html: "%{name} 批准了從 %{target} 而來的註冊"
assigned_to_self_report_html: "%{name} 將報告 %{target} 指派給自己"
change_email_user_html: "%{name} 變更了使用者 %{target} 的電子信箱地址"
+ change_role_user_html: "%{name} 變更了 %{target} 的角色"
confirm_user_html: "%{name} 確認了使用者 %{target} 的電子信箱位址"
create_account_warning_html: "%{name} 已對 %{target} 送出警告"
create_announcement_html: "%{name} 新增了公告 %{target}"
+ create_canonical_email_block_html: "%{name} 已封鎖了 hash 為 %{target} 之 e-mail"
create_custom_emoji_html: "%{name} 上傳了新自訂表情符號 %{target}"
- create_domain_allow_html: "%{name} 允許 %{target} 網域加入站點聯盟"
+ create_domain_allow_html: "%{name} 允許 %{target} 網域加入聯邦宇宙"
create_domain_block_html: "%{name} 封鎖了網域 %{target}"
create_email_domain_block_html: "%{name} 封鎖了電子信箱網域 %{target}"
create_ip_block_html: "%{name} 已經設定了IP %{target} 的規則"
create_unavailable_domain_html: "%{name} 停止發送至網域 %{target}"
+ create_user_role_html: "%{name} 建立了 %{target} 角色"
demote_user_html: "%{name} 將使用者 %{target} 降級"
destroy_announcement_html: "%{name} 刪除了公告 %{target}"
- destroy_custom_emoji_html: "%{name} 停用了自訂表情符號 %{target}"
- destroy_domain_allow_html: "%{name} 不允許與網域 %{target} 加入站點聯盟"
+ destroy_canonical_email_block_html: "%{name} 取消了 hash 為 %{target} 之 e-mail 的封鎖"
+ destroy_custom_emoji_html: "%{name} 刪除了表情符號 %{target}"
+ destroy_domain_allow_html: "%{name} 不允許與網域 %{target} 加入聯邦宇宙"
destroy_domain_block_html: "%{name} 取消了對網域 %{target} 的封鎖"
destroy_email_domain_block_html: "%{name} 取消了對電子信箱網域 %{target} 的封鎖"
destroy_instance_html: "%{name} 清除了網域 %{target}"
destroy_ip_block_html: "%{name} 刪除了 IP %{target} 的規則"
destroy_status_html: "%{name} 刪除了 %{target} 的嘟文"
destroy_unavailable_domain_html: "%{name} 恢復了對網域 %{target} 的發送"
+ destroy_user_role_html: "%{name} 刪除了 %{target} 角色"
disable_2fa_user_html: "%{name} 停用了使用者 %{target} 的兩階段認證"
disable_custom_emoji_html: "%{name} 停用了自訂表情符號 %{target}"
disable_sign_in_token_auth_user_html: "%{name} 停用了 %{target} 之使用者電子信箱 token 驗證"
@@ -324,8 +275,9 @@ zh-TW:
update_announcement_html: "%{name} 更新了公告 %{target}"
update_custom_emoji_html: "%{name} 更新了自訂表情符號 %{target}"
update_domain_block_html: "%{name} 更新了 %{target} 之網域封鎖"
+ update_ip_block_html: "%{name} 已經更新了 IP %{target} 之規則"
update_status_html: "%{name} 更新了 %{target} 的嘟文"
- deleted_status: "(已刪除嘟文)"
+ update_user_role_html: "%{name} 變更了 %{target} 角色"
empty: 找不到 log
filter_by_action: 按動作篩選
filter_by_user: 按使用者篩選
@@ -369,6 +321,7 @@ zh-TW:
listed: 已顯示
new:
title: 加入新的自訂表情符號
+ no_emoji_selected: 未選取任何 emoji,因此未變更
not_permitted: 您無權執行此操作
overwrite: 覆蓋
shortcode: 短代碼
@@ -407,10 +360,10 @@ zh-TW:
empty: 找不到申訴。
title: 申訴
domain_allows:
- add_new: 將網域加入白名單
- created_msg: 網域已成功加入白名單
- destroyed_msg: 網域已成功從白名單移除
- undo: 從白名單移除
+ add_new: 將網域加入聯邦宇宙白名單
+ created_msg: 網域已成功加入聯邦宇宙白名單
+ destroyed_msg: 網域已成功從聯邦宇宙白名單移除
+ undo: 從聯邦宇宙白名單移除
domain_blocks:
add_new: 新增欲封鎖域名
created_msg: 正在進行站點封鎖
@@ -520,12 +473,12 @@ zh-TW:
moderation:
all: 全部
limited: 限制
- title: 版主
+ title: 管管
private_comment: 私人留言
public_comment: 公開留言
purge: 清除
purge_description_html: 若您相信此網域將永久離線,您可以自儲存空間中刪除該網域所有帳號紀錄及相關資料。這可能花費一些時間。
- title: 聯邦
+ title: 聯邦宇宙
total_blocked_by_us: 被我們封鎖
total_followed_by_them: 被他們跟隨
total_followed_by_us: 被我們跟隨
@@ -570,7 +523,7 @@ zh-TW:
pending: 等待中繼站審核
save_and_enable: 儲存並啟用
setup: 設定中繼連結
- signatures_not_enabled: 若啟用安全模式或受限的站點聯盟模式,中繼將不會正常運作
+ signatures_not_enabled: 若啟用安全模式或受限的聯邦宇宙模式,中繼將不會正常運作
status: 狀態
title: 中繼
report_notes:
@@ -635,6 +588,65 @@ zh-TW:
unresolved: 未解決
updated_at: 更新
view_profile: 檢視個人資料頁
+ roles:
+ add_new: 新增角色
+ assigned_users:
+ other: "%{count} 個使用者"
+ categories:
+ administration: 管理員
+ devops: Devops
+ invites: 邀請
+ moderation: 站務
+ special: 特殊
+ delete: 刪除
+ description_html: 透過使用者角色 ,您可以自訂您的使用者可以存取 Mastodon 的哪些功能與區域。
+ edit: 編輯「%{name}」角色
+ everyone: 預設權限
+ everyone_full_description_html: 這是會影響所有使用者 的基本角色 ,即使是那些沒有被分配角色的使用者也一樣。其他所有的角色都從它繼承權限。
+ permissions_count:
+ other: "%{count} 個權限"
+ privileges:
+ administrator: 管理員
+ administrator_description: 擁有此權限的使用者將會略過所有權限
+ delete_user_data: 刪除使用者資料
+ delete_user_data_description: 允許使用者立刻刪除其他使用者的資料
+ invite_users: 邀請使用者
+ invite_users_description: 允許使用者邀請新人加入伺服器
+ manage_announcements: 管理公告
+ manage_announcements_description: 允許使用者管理伺服器上的公告
+ manage_appeals: 管理解封申訴系統
+ manage_appeals_description: 允許使用者審閱針對站務動作的申訴
+ manage_blocks: 管理封鎖
+ manage_blocks_description: 允許使用者封鎖電子郵件提供者與 IP 位置
+ manage_custom_emojis: 管理自訂表情符號
+ manage_custom_emojis_description: 允許使用者管理伺服器上的自訂表情符號
+ manage_federation: 管理聯邦宇宙
+ manage_federation_description: 允許使用者封鎖或允許與其他網域的聯邦宇宙,並控制傳遞能力
+ manage_invites: 管理邀請
+ manage_invites_description: 允許使用者瀏覽與停用邀請連結
+ manage_reports: 管理回報
+ manage_reports_description: 允許使用者審閱回報並對回報執行站務動作
+ manage_roles: 管理角色
+ manage_roles_description: 允許使用者管理並指派低於他們的使用者
+ manage_rules: 管理規則
+ manage_rules_description: 允許使用者變更伺服器規則
+ manage_settings: 管理設定
+ manage_settings_description: 允許使用者變更站點設定
+ manage_taxonomies: 管理分類方式
+ manage_taxonomies_description: 允許使用者審閱熱門內容與更新主題標籤設定
+ manage_user_access: 管理使用者存取權
+ manage_user_access_description: 允許使用者停用其他人的兩步驟驗證、變更他們的電子郵件地址以及重設他們的密碼
+ manage_users: 管理使用者
+ manage_users_description: 允許使用者檢視其他使用者的詳細資訊並對回報執行站務動作
+ manage_webhooks: 管理 Webhooks
+ manage_webhooks_description: 允許使用者為管理事件設定 webhooks
+ view_audit_log: 檢視審核日誌
+ view_audit_log_description: 允許使用者檢視伺服器上的管理動作歷史
+ view_dashboard: 檢視儀表板
+ view_dashboard_description: 允許使用者存取儀表板與各種指標
+ view_devops: Devops
+ view_devops_description: 允許使用者存取 Sidekiq 與 pgHero 儀表板
+ title: 角色
rules:
add_new: 新增規則
delete: 刪除
@@ -643,108 +655,67 @@ zh-TW:
empty: 未曾定義任何伺服器規則
title: 伺服器規則
settings:
- activity_api_enabled:
- desc_html: 本站使用者發佈的嘟文數量,以及本站的活躍使用者與一週內新使用者數量
- title: 公開使用者活躍度的統計數據
- bootstrap_timeline_accounts:
- desc_html: 以半形逗號分隔多個使用者名稱。只能加入來自本站且未開啟保護的帳號。如果留空,則預設跟隨本站所有管理員。
- title: 新使用者預設跟隨
- contact_information:
- email: 用於聯絡的公開電子信箱地址
- username: 請輸入使用者名稱
- custom_css:
- desc_html: 透過於每個頁面都載入的 CSS 調整外觀
- title: 自訂 CSS
- default_noindex:
- desc_html: 影響所有沒有變更此設定的使用者
- title: 預設將使用者退出搜尋引擎索引
+ about:
+ manage_rules: 管理伺服器規則
+ preamble: 提供關於此伺服器如何運作、管理、及金援之供詳細資訊。
+ rules_hint: 這是關於您的使用者應遵循規則之專有區域。
+ title: 關於
+ appearance:
+ preamble: 客製化 Mastodon 網頁介面。
+ title: 外觀設定
+ branding:
+ preamble: 您的伺服器品牌使之從聯邦宇宙網路中其他伺服器間凸顯自己。此資訊可能於各種不同的環境中顯示,例如 Mastodon 網頁介面、原生應用程式、其他網頁上的連結預覽或是其他通訊應用程式等等。因此,請盡可能保持此資訊簡潔明朗。
+ title: 品牌化
+ content_retention:
+ preamble: 控制使用者產生內容如何儲存於 Mastodon 上。
+ title: 內容保留期間
+ discovery:
+ follow_recommendations: 跟隨建議
+ preamble: 呈現有趣的內容有助於 Mastodon 上一人不識的新手上路。控制各種不同的分類在您伺服器上如何被探索到。
+ profile_directory: 個人檔案目錄
+ public_timelines: 公開時間軸
+ title: 探索
+ trends: 熱門趨勢
domain_blocks:
all: 給任何人
disabled: 給沒有人
- title: 顯示封鎖的網域
users: 套用至所有登入的本機使用者
- domain_blocks_rationale:
- title: 顯示解釋原因
- hero:
- desc_html: 在首頁顯示。推薦最小 600x100px。如果留空,就會重設回伺服器預覽圖
- title: 主題圖片
- mascot:
- desc_html: 在許多頁面都會顯示。推薦最小 293x205px。如果留空,將採用預設的吉祥物
- title: 吉祥物圖片
- peers_api_enabled:
- desc_html: 本伺服器在聯邦中發現的站點
- title: 發布已知伺服器的列表
- preview_sensitive_media:
- desc_html: 連結來自其他網站的預覽將顯示於縮圖,即使這些媒體被標記為敏感
- title: 在 OpenGraph 預覽中顯示敏感媒體
- profile_directory:
- desc_html: 允許能探索使用者
- title: 啟用個人資料目錄
registrations:
- closed_message:
- desc_html: 關閉註冊時顯示在首頁的內容,可使用 HTML 標籤
- title: 關閉註冊訊息
- deletion:
- desc_html: 允許所有人刪除自己的帳號
- title: 開放刪除帳號的權限
- min_invite_role:
- disabled: 沒有人
- title: 允許發送邀請的身份
- require_invite_text:
- desc_html: 如果已設定為手動審核註冊,請將「加入原因」設定為必填項目。
- title: 要求新使用者填申請書以索取邀請
+ preamble: 控制誰能於您伺服器上建立帳號。
+ title: 註冊
registrations_mode:
modes:
approved: 註冊需要核准
none: 沒有人可註冊
open: 任何人皆能註冊
- title: 註冊模式
- show_known_fediverse_at_about_page:
- desc_html: 如果開啟,就會在時間軸預覽顯示其他站點嘟文,否則就只會顯示本站點嘟文。
- title: 在時間軸預覽顯示其他站點嘟文
- show_staff_badge:
- desc_html: 在個人資料頁面上顯示管理人員標誌
- title: 顯示管理人員標誌
- site_description:
- desc_html: 首頁上的介紹文字,描述此 Mastodon 伺服器的特別之處和其他重要資訊。可使用 HTML 標籤,包括 <a>
和 <em>
。
- title: 伺服器描述
- site_description_extended:
- desc_html: 可放置行為準則、規定以及其他此伺服器特有的內容。可使用 HTML 標籤
- title: 本站詳細資訊
- site_short_description:
- desc_html: 顯示在側邊欄和網頁標籤 (meta tags)。以一段話描述 Mastodon 是甚麼,以及這個伺服器的特色。
- title: 伺服器短描述
- site_terms:
- desc_html: 可以填寫自己的隱私權政策、使用條款或其他法律文本。可以使用 HTML 標籤
- title: 自訂使用條款
- site_title: 伺服器名稱
- thumbnail:
- desc_html: 用於在 OpenGraph 和 API 中顯示預覽圖。推薦大小 1200×630px
- title: 伺服器縮圖
- timeline_preview:
- desc_html: 在主頁顯示本站時間軸
- title: 時間軸預覽
- title: 網站設定
- trendable_by_default:
- desc_html: 影響此前並未被禁用的標籤
- title: 允許熱門的主題標籤直接顯示於趨勢區,不需經過審核
- trends:
- desc_html: 公開目前炎上的已審核標籤
- title: 趨勢主題標籤
+ title: 伺服器設定
site_uploads:
delete: 刪除上傳的檔案
destroyed_msg: 成功刪除站台的上傳項目!
statuses:
+ account: 作者
+ application: 應用程式
back_to_account: 返回帳號訊息頁
back_to_report: 回到檢舉報告頁面
batch:
remove_from_report: 從檢舉報告中移除
report: 檢舉報告
deleted: 已刪除
+ favourites: 最愛
+ history: 版本紀錄
+ in_reply_to: 正在回覆
+ language: 語言
media:
title: 媒體檔案
+ metadata: 詮釋資料
no_status_selected: 因未選擇嘟文而未變更。
+ open: 公開嘟文
+ original_status: 原始嘟文
+ reblogs: 轉嘟
+ status_changed: 嘟文已編輯
title: 帳號嘟文
+ trending: 熱門
+ visibility: 可見性
with_media: 含有媒體檔案
strikes:
actions:
@@ -781,9 +752,12 @@ zh-TW:
links:
allow: 允許連結
allow_provider: 允許發行者
- description_html: 這些連結是正在被您伺服器上看到該嘟文之帳號大量分享。這些連結可以幫助您的使用者探索現在世界上正在發生的事情。除非您核准該發佈者,連結將不被公開展示。您也可以核准或駁回個別連結。
+ description_html: 這些連結是正在被您伺服器上看到該嘟文之帳號大量分享。這些連結可以幫助您的使用者探索現在世界上正在發生的事情。除非您核准該發行者,連結將不被公開展示。您也可以核准或駁回個別連結。
disallow: 不允許連結
disallow_provider: 不允許發行者
+ no_link_selected: 未選取任何鏈結,因此未變更
+ publishers:
+ no_publisher_selected: 未選取任何發行者,因此未變更
shared_by_over_week:
other: 上週被 %{count} 名使用者分享
title: 熱門連結
@@ -802,6 +776,7 @@ zh-TW:
description_html: 這些是您伺服器上已知被正在大量分享及加入最愛之嘟文。這些嘟文能幫助您伺服器上舊雨新知發現更多帳號來跟隨。除非您核准該作者且作者允許他們的帳號被推薦至其他人,嘟文將不被公開展示。您可以核准或駁回個別嘟文。
disallow: 不允許嘟文
disallow_account: 不允許作者
+ no_status_selected: 未選取任何熱門嘟文,因此未變更
not_discoverable: 嘟文作者選擇不被發現
shared_by:
other: 分享過或/及收藏過 %{friendly_count} 次
@@ -816,6 +791,7 @@ zh-TW:
tag_uses_measure: 總使用次數
description_html: 這些主題標籤正在您的伺服器上大量嘟文中出現。這些主題標籤能幫助您的使用者發現人們正集中討論的內容。除非您核准,主題標籤將不被公開展示。
listable: 能被建議
+ no_tag_selected: 未選取任何主題標籤,因此未變更
not_listable: 不能被建議
not_trendable: 不會登上熱門
not_usable: 不可被使用
@@ -835,6 +811,25 @@ zh-TW:
edit_preset: 編輯預設警告
empty: 您未曾定義任何預設警告
title: 管理預設警告
+ webhooks:
+ add_new: 新增端點
+ delete: 刪除
+ description_html: "Webhook 讓 Mastodon 可以將關於選定的事件的即時通知 推送到您自己的應用程式,如此您的應用程式就可以自動觸發反應 。"
+ disable: 停用
+ disabled: 已停用
+ edit: 編輯端點
+ empty: 您沒有任何設定好的 webhook 端點。
+ enable: 啟用
+ enabled: 生效
+ enabled_events:
+ other: "%{count} 個已啟用的端點"
+ events: 事件
+ new: 新增 Webhook
+ rotate_secret: 更換密鑰
+ secret: 簽署密鑰
+ status: 狀態
+ title: Webhooks
+ webhook: Webhook
admin_mailer:
new_appeal:
actions:
@@ -858,12 +853,8 @@ zh-TW:
new_trends:
body: 以下項目需要經過審核才能公開顯示:
new_trending_links:
- no_approved_links: 這些是目前仍未被審核之熱門連結。
- requirements: '這些候選中的任何一個都可能超過 #%{rank} 已批准的熱門連結,該連結目前是「%{lowest_link_title}」,得分為 %{lowest_link_score}。'
title: 熱門連結
new_trending_statuses:
- no_approved_statuses: 這些是目前仍未被審核之熱門嘟文。
- requirements: '這些候選中的任何一個都可能超過 #%{rank} 已批准的熱門嘟文,該嘟文目前是 %{lowest_status_url},得分為 %{lowest_status_score}。'
title: 熱門嘟文
new_trending_tags:
no_approved_tags: 這些是目前仍未被審核之熱門主題標籤。
@@ -899,16 +890,13 @@ zh-TW:
applications:
created: 已建立應用
destroyed: 已刪除應用
- invalid_url: 網址不正確
regenerate_token: 重設 token
token_regenerated: 已重設 token
warning: 警告,不要把它分享給任何人!
your_token: 您的 access token
auth:
- apply_for_account: 索取註冊邀請
+ apply_for_account: 登記排隊名單
change_password: 密碼
- checkbox_agreement_html: 我同意 之伺服器規則 以及 服務條款
- checkbox_agreement_without_rules_html: 我同意 服務條款
delete_account: 刪除帳號
delete_account_html: 如果您欲刪除您的帳號,請點擊這裡繼續 。您需要確認您的操作。
description:
@@ -927,6 +915,7 @@ zh-TW:
migrate_account: 轉移到另一個帳號
migrate_account_html: 如果您希望引導他人關注另一個帳號,請 到這裡設定 。
or_log_in_with: 或透過其他方式登入
+ privacy_policy_agreement_html: 我已閱讀且同意 隱私權政策
providers:
cas: CAS
saml: SAML
@@ -934,12 +923,18 @@ zh-TW:
registration_closed: "%{instance} 現在不開放新成員"
resend_confirmation: 重新寄送確認指引
reset_password: 重設密碼
+ rules:
+ preamble: 這些被 %{domain} 的管管們制定以及實施。
+ title: 一些基本守則。
security: 登入資訊
set_new_password: 設定新密碼
setup:
email_below_hint_html: 如果此電子郵件地址不正確,您可於此修改並接收郵件進行認證。
email_settings_hint_html: 請確認 e-mail 是否傳送到 %{email} 。如果不對的話,可以從帳號設定修改。
title: 設定
+ sign_up:
+ preamble: 於此 Mastodon 伺服器擁有帳號的話,您將能跟隨聯邦宇宙網路中任何一份子,無論他們的帳號託管於何處。
+ title: 讓我們一起設定 %{domain} 吧!
status:
account_status: 帳號狀態
confirming: 等待電子郵件確認完成。
@@ -948,7 +943,6 @@ zh-TW:
redirecting_to: 您的帳戶因目前重新導向至 %{acct} 而被停用。
view_strikes: 檢視針對您帳號過去的警示
too_fast: 送出表單的速度太快跟不上,請稍後再試。
- trouble_logging_in: 登錄時遇到困難?
use_security_key: 使用安全金鑰
authorize_follow:
already_following: 您已經跟隨了這個使用者
@@ -1006,10 +1000,6 @@ zh-TW:
more_details_html: 更多詳細資訊,請參閲隱私政策 。
username_available: 您的使用者名稱將會釋出供他人使用
username_unavailable: 您的使用者名稱將會保留並不予他人使用
- directories:
- directory: 個人資料目錄
- explanation: 根據興趣去發現新朋友
- explore_mastodon: 探索%{title}
disputes:
strikes:
action_taken: 採取的行動
@@ -1088,29 +1078,54 @@ zh-TW:
public: 公開時間軸
thread: 會話
edit:
+ add_keyword: 新增關鍵字
+ keywords: 關鍵字
+ statuses: 各別嘟文
+ statuses_hint_html: 此過濾器會套用至所選之各別嘟文,無論其是否符合下列關鍵字。審閱或從過濾條件移除貼文 。
title: 編輯篩選條件
errors:
+ deprecated_api_multiple_keywords: 這些參數無法從此應用程式中更改,因為它們適用於一或多個過濾器關鍵字。請使用較新的應用程式或是網頁介面。
invalid_context: 沒有提供內文或內文無效
- invalid_irreversible: 此功能僅適用於首頁或通知頁面
index:
+ contexts: "%{contexts} 中的過濾器"
delete: 刪除
empty: 您沒有過濾器。
+ expires_in: 於 %{distance} 過期
+ expires_on: 於 %{date} 過期
+ keywords:
+ other: "%{count} 個關鍵字"
+ statuses:
+ other: "%{count} 則嘟文"
+ statuses_long:
+ other: "%{count} 則各別嘟文被隱藏"
title: 過濾器
new:
+ save: 儲存新過濾器
title: 新增篩選器
+ statuses:
+ back_to_filter: 回到過濾器
+ batch:
+ remove: 從過濾器中移除
+ index:
+ hint: 此過濾器會套用至所選之各別嘟文,不管它們有無符合其他條件。您可以從網頁介面中將更多嘟文加入至此過濾器。
+ title: 已過濾之嘟文
footer:
- developers: 開發者
- more: 更多......
- resources: 資源
trending_now: 現正熱門
generic:
all: 全部
+ all_items_on_page_selected_html:
+ other: 已選取此頁面上 %{count} 個項目。
+ all_matching_items_selected_html:
+ other: 已選取符合您搜尋的 %{count} 個項目。
changes_saved_msg: 已成功儲存修改!
copy: 複製
delete: 刪除
+ deselect: 取消選擇全部
none: 無
order_by: 排序
save_changes: 儲存修改
+ select_all_matching_items:
+ other: 選取 %{count} 個符合您搜尋的項目。
today: 今天
validation_errors:
other: 唔…這是什麼鳥?請檢查以下 %{count} 項錯誤
@@ -1133,7 +1148,6 @@ zh-TW:
following: 您關注的使用者名單
muting: 您靜音的使用者名單
upload: 上傳
- in_memoriam_html: 謹此悼念。
invites:
delete: 停用
expired: 已失效
@@ -1206,24 +1220,17 @@ zh-TW:
other_data: 其他資料並不會自動轉移
redirect: 您目前的帳號將會在個人資料頁面新增重新導向公告,並會被排除在搜尋結果之外
moderation:
- title: 營運
+ title: 站務
move_handler:
carry_blocks_over_text: 此使用者轉移自被您封鎖的 %{acct}。
carry_mutes_over_text: 此使用者轉移自被您靜音的 %{acct}。
copy_account_note_text: 此使用者轉移自 %{acct},以下是您之前關於他們的備註:
notification_mailer:
admin:
+ report:
+ subject: "%{name} 送出了一則檢舉報告"
sign_up:
subject: "%{name} 已進行註冊"
- digest:
- action: 閱覽所有通知
- body: 以下是自 %{since} 您最後一次登入以來錯過的訊息摘要
- mention: "%{name} 在此提及了您:"
- new_followers_summary:
- other: 此外,您在離開時獲得了 %{count} 位新的追蹤者!超棒的!
- subject:
- other: "從您上次造訪以來有 %{count} 個新通知 🐘"
- title: 您不在的時候...
favourite:
body: 您的嘟文被 %{name} 加入了最愛:
subject: "%{name} 將您的嘟文加入了最愛"
@@ -1295,6 +1302,8 @@ zh-TW:
other: 其他
posting_defaults: 嘟文預設值
public_timelines: 公開時間軸
+ privacy_policy:
+ title: 隱私權政策
reactions:
errors:
limit_reached: 達到可回應之上限
@@ -1317,22 +1326,7 @@ zh-TW:
remove_selected_follows: 取消跟隨所選使用者
status: 帳號狀態
remote_follow:
- acct: 請輸入您的使用者名稱@站點網域
missing_resource: 無法找到資源
- no_account_html: 還沒有帳號?您可以於這裡註冊
- proceed: 下一步
- prompt: 您希望跟隨:
- reason_html: "為什麼要經過這個步驟? 因為%{instance}
未必是您註冊的伺服器,我們需要先將您帶回您駐在的伺服器。"
- remote_interaction:
- favourite:
- proceed: 加入到最愛
- prompt: 您欲將此嘟文加入最愛
- reblog:
- proceed: 確認轉嘟
- prompt: 您想轉嘟此嘟文:
- reply:
- proceed: 確認回覆
- prompt: 您想回覆此嘟文
reports:
errors:
invalid_rules: 未引用有效規則
@@ -1498,92 +1492,6 @@ zh-TW:
too_late: 您太晚申訴這個警示了
tags:
does_not_match_previous_name: 與先前的名稱不吻合
- terms:
- body_html: |
- 隱私權政策
- 我們蒐集什麼資訊?
-
-
- 基本帳號資訊 :若您於此伺服器註冊,您可能被要求輸入使用者帳號、e-mail 地址、以及一組密碼。您也可能輸入額外個人資料資訊例如顯示名稱及自我描述,並且上傳大頭貼照片和橫幅圖片。使用者帳號、顯示名稱、自我描述、大頭貼照片和橫幅圖片將永遠為公開顯示。
- 嘟文、跟隨中以及其他公開資訊 :您跟隨中的使用者列表以及跟隨您的使用者列表是公開的。當您發送一則訊息,資料、時間戳、以及您用以發送訊息的應用程式將會被儲存。訊息中可能夾帶多媒體附件,例如圖片或影音。公開和非公共時間軸顯示之嘟文將可被公開存取。當您於個人資料頁面展示特色嘟文時,其將也成為公開可取得之資訊。您的嘟文將被發送至您的跟隨者、某些情況下這代表它們將被撒送至其他不同的伺服器,並儲存於該處。當您刪除嘟文時,刪除訊息也將被發送至您的跟隨者。將其他嘟文轉嘟或加入最愛之動作為公開資訊。
- 私訊以及僅限跟隨者之嘟文 :所有的嘟文儲存及處理於伺服器上。僅限跟隨者之嘟文將被發送至您的跟隨者以及被提及之帳號,私訊嘟文將僅被發送至被提及之帳號。某些情況下這代表它們將被撒送至其他不同的伺服器,並儲存於該處。 我們致力於限制這些嘟文僅被獲得授權之使用者存取,然而其他某些伺服器可能無法做到。因此,檢查您跟隨者所在之伺服器。您可以於設定中切換手動核准或拒絕跟隨者的開關。請注意,伺服器之營運者以及任何接收嘟文之伺服器皆有可能檢視訊息 ,此外,接收方也可能截圖、複製嘟文、或以其他方式重新分享。請不要於 Mastodon 分享任何敏感資訊。
- IP 地址以及其他描述資料 :當您登入時,我們紀錄您登入來源之 IP 地址,以及您所用以登入之應用程式名稱。所有以登入之工作階段皆可供您於設定中檢視及撤銷。最近的 IP 地址將被保存至多 12 個月。我們也可能保留伺服器紀錄檔,其中包含對於我們伺服器之所有請求的來源 IP 地址。
-
-
-
-
- 我們將您的資訊用以何種目的?
-
- 我們從您那裡蒐集而來的資訊都可能作為以下用途:
-
-
- 提供 Mastodon 核心功能。您僅能於登入時與其他人的內容互動及發送自己的嘟文。舉例來說,您可以透過跟隨其他人以檢視您自己個人化的首頁時間軸上他們的嘟文。
- 協助管理社群,例如將您之 IP 地址與其他已知地址進行比較用以決定是否違反伺服器規則。
- 您提供之 email 地址將用以寄送您資訊、其他人與您內容互動相關之通知、或您自己的訊息,並且回覆詢問,且/或其他請求或問題。
-
-
-
-
- 我們如何保護您的資訊?
-
- 當您輸入、遞交或存取您的個人資訊時,我們會實施各種安全措施來維護您個人資訊的安全。除此之外,您的瀏覽器工作階段與您應用程式及 API 間的流量都以 SSL 進行保護,您的密碼也使用了相當強的單向演算法來雜湊。您可以啟用兩步驟驗證來進一步強化您帳號的安全程度。
-
-
-
- 我們的資料保留政策是什麼?
-
- 我們將致力於:
-
-
- 保留包含所有對此伺服器請求的 IP 位置的伺服器紀錄檔,只要此類紀錄檔不保留超過 90 天。
- 保留與註冊使用者相關的 IP 位置不超過 12 個月。
-
-
- 您可以請求並下載您內容的封存檔案,包含了您的貼文、多媒體附件、大頭貼與封面圖片。
-
- 您隨時都能不可逆地刪除您的帳號。
-
-
-
- 我們會使用 cookies 嗎?
-
- 是的。Cookies 是網站或其服務提供者透過您的網路瀏覽器(若您允許)傳送到您電腦硬碟的小檔案。這些 cookies 讓網站可以識別您的瀏覽器,以及如果您有註冊帳號的話,同時關聯到您已註冊的帳號。
-
- 我們使用 cookies 來了解並儲存您的偏好設定以供未來存取。
-
-
-
- 我們會向外界揭露任何資訊嗎?
-
- 我們不會出售、交易或是以其他方式向外界傳輸您的個人身份資料。這不包含協助我們營運網站、開展業務或是服務您的可信第三方,只要這些第三方同意對這些資訊保密。當我們認為發佈您的資訊是為了遵守法律、執行我們網站的政策、或是保護我們或其他人的權利、財產或安全時,我們也可能會發佈您的資訊。
-
- 您的公開內容可能會網路中其他伺服器下載。您的公開與僅追蹤者貼文將會遞送到您的追蹤者所在的伺服器,直接訊息則會遞送到接收者所在的伺服器,前提是這些追蹤者或接收者在不同的伺服器上。
-
- 當您授權應用程式使用您的帳號時,根據您所批准的授權範圍,其可能會存取您的公開個人檔案資訊、您的追蹤清單、您的追蹤者、您的清單、您所有的貼文以及您的收藏。應用程式永遠無法存取您的電子郵件地址或密碼。
-
-
-
-
- 兒童使用網站
-
- 如果伺服器位於歐盟或歐洲經濟區中:我們的網站、產品與服務均供至少 16 歲的人使用。如果您小於 16 歲,根據 GDPR(一般資料保護規範 )的要求,請勿使用此網站。
-
- 若此伺服器位於美國:我們的網站、產品與服務均供至少 13 歲的人使用。如果您小於 13 歲,根據 COPPA(兒童線上隱私保護法 )的要求,請勿使用此忘站。
-
-
- 如果此伺服器位於其他司法管轄區,則法律要求可能會有所不同。
-
-
-
-
- 我們隱私權政策的變更
-
- 若我們決定變更我們的隱私權政策,我們將會在此頁面張貼那些變更。
-
- 此文件以 CC-BY-SA 授權。最後更新時間為 2022 年 5 月 26 日。
-
- 最初改編自 Discourse 隱私權政策 .
- title: "%{instance} 使用條款和隱私權政策"
themes:
contrast: Mastodon(高對比)
default: Mastodon(深色)
@@ -1662,20 +1570,13 @@ zh-TW:
suspend: 帳號己被停用
welcome:
edit_profile_action: 設定個人資料
- edit_profile_step: 您可以設定您的個人資料,包括上傳頭像、橫幅圖片、變更顯示名稱等等。如果想在新的跟隨者跟隨您之前對他們進行審核,您也可以選擇為您的帳號設為「私人」。
+ edit_profile_step: 您可以設定您的個人資料,包括上傳大頭貼、變更顯示名稱等等。您也可以選擇在新的跟隨者跟隨前,先對他們進行審核。
explanation: 下面是幾個小幫助,希望它們能幫到您
final_action: 開始嘟嘟
- final_step: '開始嘟嘟吧!即使您現在沒有跟隨者,其他人仍然能在本站時間軸或著話題標籤等地方看到您的公開嘟文。試著用 #introductions 這個話題標籤介紹一下自己吧。'
+ final_step: '開始嘟嘟吧!即使您現在沒有跟隨者,其他人仍然能在本站時間軸、主題標籤等地方,看到您的公開嘟文。試著用 #introductions 這個主題標籤介紹一下自己吧。'
full_handle: 您的完整帳號名稱
full_handle_hint: 您需要把這告訴你的朋友們,這樣他們就能從另一個伺服器向您發送訊息或著跟隨您。
- review_preferences_action: 變更偏好設定
- review_preferences_step: 記得調整您的偏好設定,比如想接收什麼類型的電子郵件,或著想把您的嘟文可見範圍預設設定什麼級別。如果您沒有暈車的話,考慮一下啟用「自動播放 GIF 動畫」這個選項吧。
subject: 歡迎來到 Mastodon
- tip_federated_timeline: 跨站公共時間軸可以讓您一窺更廣闊的 Mastodon 網路。不過,由於它們只顯示您的鄰居們所訂閱的內容,所以並不是全部。
- tip_following: 預設情況下,您會自動跟隨您所在站點的管管。想結交更多有趣的人的話,請記得多逛逛本站時間軸與跨站公共時間軸哦。
- tip_local_timeline: 本站時間軸可以讓您一窺 %{instance} 上的使用者。他們就是離您最近的鄰居!
- tip_mobile_webapp: 如果您的行動裝置瀏覽器允許將 Mastodon 新增到主螢幕,您就能夠接收推播通知。它就像手機 APP 一樣好用!
- tips: 小幫手
title: "%{name} 誠摯歡迎您的加入!"
users:
follow_limit_reached: 您無法追蹤多於 %{limit} 個人
diff --git a/config/navigation.rb b/config/navigation.rb
index 2a4bf2d39d..4d2da7aa47 100644
--- a/config/navigation.rb
+++ b/config/navigation.rb
@@ -2,72 +2,73 @@
SimpleNavigation::Configuration.run do |navigation|
navigation.items do |n|
- n.item :web, safe_join([fa_icon('chevron-left fw'), t('settings.back')]), root_url
+ n.item :web, safe_join([fa_icon('chevron-left fw'), t('settings.back')]), root_path
- n.item :profile, safe_join([fa_icon('user fw'), t('settings.profile')]), settings_profile_url, if: -> { current_user.functional? } do |s|
- s.item :profile, safe_join([fa_icon('pencil fw'), t('settings.appearance')]), settings_profile_url
- s.item :featured_tags, safe_join([fa_icon('hashtag fw'), t('settings.featured_tags')]), settings_featured_tags_url
+ n.item :profile, safe_join([fa_icon('user fw'), t('settings.profile')]), settings_profile_path, if: -> { current_user.functional? } do |s|
+ s.item :profile, safe_join([fa_icon('pencil fw'), t('settings.appearance')]), settings_profile_path
+ s.item :featured_tags, safe_join([fa_icon('hashtag fw'), t('settings.featured_tags')]), settings_featured_tags_path
end
- n.item :preferences, safe_join([fa_icon('cog fw'), t('settings.preferences')]), settings_preferences_url, if: -> { current_user.functional? } do |s|
- s.item :appearance, safe_join([fa_icon('desktop fw'), t('settings.appearance')]), settings_preferences_appearance_url
- s.item :notifications, safe_join([fa_icon('bell fw'), t('settings.notifications')]), settings_preferences_notifications_url
- s.item :other, safe_join([fa_icon('cog fw'), t('preferences.other')]), settings_preferences_other_url
+ n.item :preferences, safe_join([fa_icon('cog fw'), t('settings.preferences')]), settings_preferences_path, if: -> { current_user.functional? } do |s|
+ s.item :appearance, safe_join([fa_icon('desktop fw'), t('settings.appearance')]), settings_preferences_appearance_path
+ s.item :notifications, safe_join([fa_icon('bell fw'), t('settings.notifications')]), settings_preferences_notifications_path
+ s.item :other, safe_join([fa_icon('cog fw'), t('preferences.other')]), settings_preferences_other_path
end
- n.item :flavours, safe_join([fa_icon('paint-brush fw'), t('settings.flavours')]), settings_flavours_url do |flavours|
+ n.item :flavours, safe_join([fa_icon('paint-brush fw'), t('settings.flavours')]), settings_flavours_path do |flavours|
Themes.instance.flavours.each do |flavour|
- flavours.item flavour.to_sym, safe_join([fa_icon('star fw'), t("flavours.#{flavour}.name", default: flavour)]), settings_flavour_url(flavour)
+ flavours.item flavour.to_sym, safe_join([fa_icon('star fw'), t("flavours.#{flavour}.name", default: flavour)]), settings_flavour_path(flavour)
end
end
- n.item :relationships, safe_join([fa_icon('users fw'), t('settings.relationships')]), relationships_url, if: -> { current_user.functional? }
+ n.item :relationships, safe_join([fa_icon('users fw'), t('settings.relationships')]), relationships_path, if: -> { current_user.functional? }
n.item :filters, safe_join([fa_icon('filter fw'), t('filters.index.title')]), filters_path, highlights_on: %r{/filters}, if: -> { current_user.functional? }
- n.item :statuses_cleanup, safe_join([fa_icon('history fw'), t('settings.statuses_cleanup')]), statuses_cleanup_url, if: -> { current_user.functional? }
+ n.item :statuses_cleanup, safe_join([fa_icon('history fw'), t('settings.statuses_cleanup')]), statuses_cleanup_path, if: -> { current_user.functional? }
- n.item :security, safe_join([fa_icon('lock fw'), t('settings.account')]), edit_user_registration_url do |s|
- s.item :password, safe_join([fa_icon('lock fw'), t('settings.account_settings')]), edit_user_registration_url, highlights_on: %r{/auth/edit|/settings/delete|/settings/migration|/settings/aliases|/settings/login_activities|^/disputes}
- s.item :two_factor_authentication, safe_join([fa_icon('mobile fw'), t('settings.two_factor_authentication')]), settings_two_factor_authentication_methods_url, highlights_on: %r{/settings/two_factor_authentication|/settings/otp_authentication|/settings/security_keys}
- s.item :authorized_apps, safe_join([fa_icon('list fw'), t('settings.authorized_apps')]), oauth_authorized_applications_url
+ n.item :security, safe_join([fa_icon('lock fw'), t('settings.account')]), edit_user_registration_path do |s|
+ s.item :password, safe_join([fa_icon('lock fw'), t('settings.account_settings')]), edit_user_registration_path, highlights_on: %r{/auth/edit|/settings/delete|/settings/migration|/settings/aliases|/settings/login_activities|^/disputes}
+ s.item :two_factor_authentication, safe_join([fa_icon('mobile fw'), t('settings.two_factor_authentication')]), settings_two_factor_authentication_methods_path, highlights_on: %r{/settings/two_factor_authentication|/settings/otp_authentication|/settings/security_keys}
+ s.item :authorized_apps, safe_join([fa_icon('list fw'), t('settings.authorized_apps')]), oauth_authorized_applications_path
end
- n.item :data, safe_join([fa_icon('cloud-download fw'), t('settings.import_and_export')]), settings_export_url do |s|
- s.item :import, safe_join([fa_icon('cloud-upload fw'), t('settings.import')]), settings_import_url, if: -> { current_user.functional? }
- s.item :export, safe_join([fa_icon('cloud-download fw'), t('settings.export')]), settings_export_url
+ n.item :data, safe_join([fa_icon('cloud-download fw'), t('settings.import_and_export')]), settings_export_path do |s|
+ s.item :import, safe_join([fa_icon('cloud-upload fw'), t('settings.import')]), settings_import_path, if: -> { current_user.functional? }
+ s.item :export, safe_join([fa_icon('cloud-download fw'), t('settings.export')]), settings_export_path
end
- n.item :invites, safe_join([fa_icon('user-plus fw'), t('invites.title')]), invites_path, if: proc { Setting.min_invite_role == 'user' && current_user.functional? }
- n.item :development, safe_join([fa_icon('code fw'), t('settings.development')]), settings_applications_url, if: -> { current_user.functional? }
+ n.item :invites, safe_join([fa_icon('user-plus fw'), t('invites.title')]), invites_path, if: -> { current_user.can?(:invite_users) && current_user.functional? }
+ n.item :development, safe_join([fa_icon('code fw'), t('settings.development')]), settings_applications_path, if: -> { current_user.functional? }
- n.item :trends, safe_join([fa_icon('fire fw'), t('admin.trends.title')]), admin_trends_tags_path, if: proc { current_user.staff? } do |s|
+ n.item :trends, safe_join([fa_icon('fire fw'), t('admin.trends.title')]), admin_trends_statuses_path, if: -> { current_user.can?(:manage_taxonomies) } do |s|
s.item :statuses, safe_join([fa_icon('comments-o fw'), t('admin.trends.statuses.title')]), admin_trends_statuses_path, highlights_on: %r{/admin/trends/statuses}
s.item :tags, safe_join([fa_icon('hashtag fw'), t('admin.trends.tags.title')]), admin_trends_tags_path, highlights_on: %r{/admin/tags|/admin/trends/tags}
s.item :links, safe_join([fa_icon('newspaper-o fw'), t('admin.trends.links.title')]), admin_trends_links_path, highlights_on: %r{/admin/trends/links}
end
- n.item :moderation, safe_join([fa_icon('gavel fw'), t('moderation.title')]), admin_reports_url, if: proc { current_user.staff? } do |s|
- s.item :action_logs, safe_join([fa_icon('bars fw'), t('admin.action_logs.title')]), admin_action_logs_url
- s.item :reports, safe_join([fa_icon('flag fw'), t('admin.reports.title')]), admin_reports_url, highlights_on: %r{/admin/reports}
- s.item :accounts, safe_join([fa_icon('users fw'), t('admin.accounts.title')]), admin_accounts_url(origin: 'local'), highlights_on: %r{/admin/accounts|/admin/pending_accounts|/admin/disputes}
- s.item :invites, safe_join([fa_icon('user-plus fw'), t('admin.invites.title')]), admin_invites_path
- s.item :follow_recommendations, safe_join([fa_icon('user-plus fw'), t('admin.follow_recommendations.title')]), admin_follow_recommendations_path, highlights_on: %r{/admin/follow_recommendations}
- s.item :instances, safe_join([fa_icon('cloud fw'), t('admin.instances.title')]), admin_instances_url(limited: whitelist_mode? ? nil : '1'), highlights_on: %r{/admin/instances|/admin/domain_blocks|/admin/domain_allows}, if: -> { current_user.admin? }
- s.item :email_domain_blocks, safe_join([fa_icon('envelope fw'), t('admin.email_domain_blocks.title')]), admin_email_domain_blocks_url, highlights_on: %r{/admin/email_domain_blocks}, if: -> { current_user.admin? }
- s.item :ip_blocks, safe_join([fa_icon('ban fw'), t('admin.ip_blocks.title')]), admin_ip_blocks_url, highlights_on: %r{/admin/ip_blocks}, if: -> { current_user.admin? }
+ n.item :moderation, safe_join([fa_icon('gavel fw'), t('moderation.title')]), nil, if: -> { current_user.can?(:manage_reports, :view_audit_log, :manage_users, :manage_invites, :manage_taxonomies, :manage_federation, :manage_blocks) } do |s|
+ s.item :reports, safe_join([fa_icon('flag fw'), t('admin.reports.title')]), admin_reports_path, highlights_on: %r{/admin/reports}, if: -> { current_user.can?(:manage_reports) }
+ s.item :accounts, safe_join([fa_icon('users fw'), t('admin.accounts.title')]), admin_accounts_path(origin: 'local'), highlights_on: %r{/admin/accounts|/admin/pending_accounts|/admin/disputes|/admin/users}, if: -> { current_user.can?(:manage_users) }
+ s.item :invites, safe_join([fa_icon('user-plus fw'), t('admin.invites.title')]), admin_invites_path, if: -> { current_user.can?(:manage_invites) }
+ s.item :follow_recommendations, safe_join([fa_icon('user-plus fw'), t('admin.follow_recommendations.title')]), admin_follow_recommendations_path, highlights_on: %r{/admin/follow_recommendations}, if: -> { current_user.can?(:manage_taxonomies) }
+ s.item :instances, safe_join([fa_icon('cloud fw'), t('admin.instances.title')]), admin_instances_path(limited: whitelist_mode? ? nil : '1'), highlights_on: %r{/admin/instances|/admin/domain_blocks|/admin/domain_allows}, if: -> { current_user.can?(:manage_federation) }
+ s.item :email_domain_blocks, safe_join([fa_icon('envelope fw'), t('admin.email_domain_blocks.title')]), admin_email_domain_blocks_path, highlights_on: %r{/admin/email_domain_blocks}, if: -> { current_user.can?(:manage_blocks) }
+ s.item :ip_blocks, safe_join([fa_icon('ban fw'), t('admin.ip_blocks.title')]), admin_ip_blocks_path, highlights_on: %r{/admin/ip_blocks}, if: -> { current_user.can?(:manage_blocks) }
+ s.item :action_logs, safe_join([fa_icon('bars fw'), t('admin.action_logs.title')]), admin_action_logs_path, if: -> { current_user.can?(:view_audit_log) }
end
- n.item :admin, safe_join([fa_icon('cogs fw'), t('admin.title')]), admin_dashboard_url, if: proc { current_user.staff? } do |s|
- s.item :dashboard, safe_join([fa_icon('tachometer fw'), t('admin.dashboard.title')]), admin_dashboard_url
- s.item :settings, safe_join([fa_icon('cogs fw'), t('admin.settings.title')]), edit_admin_settings_url, if: -> { current_user.admin? }, highlights_on: %r{/admin/settings}
- s.item :rules, safe_join([fa_icon('gavel fw'), t('admin.rules.title')]), admin_rules_path, highlights_on: %r{/admin/rules}
- s.item :announcements, safe_join([fa_icon('bullhorn fw'), t('admin.announcements.title')]), admin_announcements_path, highlights_on: %r{/admin/announcements}
- s.item :custom_emojis, safe_join([fa_icon('smile-o fw'), t('admin.custom_emojis.title')]), admin_custom_emojis_url, highlights_on: %r{/admin/custom_emojis}
- s.item :webhooks, safe_join([fa_icon('inbox fw'), t('admin.webhooks.title')]), admin_webhooks_path, highlights_on: %r{/admin/webhooks}
- s.item :relays, safe_join([fa_icon('exchange fw'), t('admin.relays.title')]), admin_relays_url, if: -> { current_user.admin? && !whitelist_mode? }, highlights_on: %r{/admin/relays}
- s.item :sidekiq, safe_join([fa_icon('diamond fw'), 'Sidekiq']), sidekiq_url, link_html: { target: 'sidekiq' }, if: -> { current_user.admin? }
- s.item :pghero, safe_join([fa_icon('database fw'), 'PgHero']), pghero_url, link_html: { target: 'pghero' }, if: -> { current_user.admin? }
+ n.item :admin, safe_join([fa_icon('cogs fw'), t('admin.title')]), nil, if: -> { current_user.can?(:view_dashboard, :manage_settings, :manage_rules, :manage_announcements, :manage_custom_emojis, :manage_webhooks, :manage_federation) } do |s|
+ s.item :dashboard, safe_join([fa_icon('tachometer fw'), t('admin.dashboard.title')]), admin_dashboard_path, if: -> { current_user.can?(:view_dashboard) }
+ s.item :settings, safe_join([fa_icon('cogs fw'), t('admin.settings.title')]), admin_settings_path, if: -> { current_user.can?(:manage_settings) }, highlights_on: %r{/admin/settings}
+ s.item :rules, safe_join([fa_icon('gavel fw'), t('admin.rules.title')]), admin_rules_path, highlights_on: %r{/admin/rules}, if: -> { current_user.can?(:manage_rules) }
+ s.item :roles, safe_join([fa_icon('vcard fw'), t('admin.roles.title')]), admin_roles_path, highlights_on: %r{/admin/roles}, if: -> { current_user.can?(:manage_roles) }
+ s.item :announcements, safe_join([fa_icon('bullhorn fw'), t('admin.announcements.title')]), admin_announcements_path, highlights_on: %r{/admin/announcements}, if: -> { current_user.can?(:manage_announcements) }
+ s.item :custom_emojis, safe_join([fa_icon('smile-o fw'), t('admin.custom_emojis.title')]), admin_custom_emojis_path, highlights_on: %r{/admin/custom_emojis}, if: -> { current_user.can?(:manage_custom_emojis) }
+ s.item :webhooks, safe_join([fa_icon('inbox fw'), t('admin.webhooks.title')]), admin_webhooks_path, highlights_on: %r{/admin/webhooks}, if: -> { current_user.can?(:manage_webhooks) }
+ s.item :relays, safe_join([fa_icon('exchange fw'), t('admin.relays.title')]), admin_relays_path, highlights_on: %r{/admin/relays}, if: -> { !whitelist_mode? && current_user.can?(:manage_federation) }
end
- n.item :logout, safe_join([fa_icon('sign-out fw'), t('auth.logout')]), destroy_user_session_url, link_html: { 'data-method' => 'delete' }
+ n.item :sidekiq, safe_join([fa_icon('diamond fw'), 'Sidekiq']), sidekiq_path, link_html: { target: 'sidekiq' }, if: -> { current_user.can?(:view_devops) }
+ n.item :pghero, safe_join([fa_icon('database fw'), 'PgHero']), pghero_path, link_html: { target: 'pghero' }, if: -> { current_user.can?(:view_devops) }
+ n.item :logout, safe_join([fa_icon('sign-out fw'), t('auth.logout')]), destroy_user_session_path, link_html: { 'data-method' => 'delete' }
end
end
diff --git a/config/roles.yml b/config/roles.yml
new file mode 100644
index 0000000000..f443250d17
--- /dev/null
+++ b/config/roles.yml
@@ -0,0 +1,35 @@
+moderator:
+ name: Moderator
+ position: 10
+ permissions:
+ - view_dashboard
+ - view_audit_log
+ - manage_users
+ - manage_reports
+ - manage_taxonomies
+admin:
+ name: Admin
+ position: 100
+ permissions:
+ - view_dashboard
+ - view_audit_log
+ - manage_users
+ - manage_user_access
+ - delete_user_data
+ - manage_reports
+ - manage_taxonomies
+ - manage_federation
+ - manage_settings
+ - manage_blocks
+ - manage_appeals
+ - manage_rules
+ - manage_invites
+ - manage_announcements
+ - manage_custom_emojis
+ - manage_webhooks
+ - manage_roles
+owner:
+ name: Owner
+ position: 1000
+ permissions:
+ - administrator
diff --git a/config/routes.rb b/config/routes.rb
index b8f908ffc7..3c4c1015db 100644
--- a/config/routes.rb
+++ b/config/routes.rb
@@ -4,13 +4,38 @@ require 'sidekiq_unique_jobs/web'
require 'sidekiq-scheduler/web'
Rails.application.routes.draw do
+ # Paths of routes on the web app that to not require to be indexed or
+ # have alternative format representations requiring separate controllers
+ web_app_paths = %w(
+ /getting-started
+ /keyboard-shortcuts
+ /home
+ /public
+ /public/local
+ /conversations
+ /lists/(*any)
+ /notifications
+ /favourites
+ /bookmarks
+ /pinned
+ /start
+ /directory
+ /explore/(*any)
+ /search
+ /publish
+ /follow_requests
+ /blocks
+ /domain_blocks
+ /mutes
+ ).freeze
+
root 'home#index'
mount LetterOpenerWeb::Engine, at: 'letter_opener' if Rails.env.development?
get 'health', to: 'health#show'
- authenticate :user, lambda { |u| u.admin? } do
+ authenticate :user, lambda { |u| u.role&.can?(:view_devops) } do
mount Sidekiq::Web, at: 'sidekiq', as: :sidekiq
mount PgHero::Engine, at: 'pghero', as: :pghero
end
@@ -60,9 +85,6 @@ Rails.application.routes.draw do
get '/authorize_follow', to: redirect { |_, request| "/authorize_interaction?#{request.params.to_query}" }
resources :accounts, path: 'users', only: [:show], param: :username do
- get :remote_follow, to: 'remote_follow#new'
- post :remote_follow, to: 'remote_follow#create'
-
resources :statuses, only: [:show] do
member do
get :activity
@@ -86,17 +108,21 @@ Rails.application.routes.draw do
resource :inbox, only: [:create], module: :activitypub
- get '/@:username', to: 'accounts#show', as: :short_account
- get '/@:username/with_replies', to: 'accounts#show', as: :short_account_with_replies
- get '/@:username/media', to: 'accounts#show', as: :short_account_media
- get '/@:username/tagged/:tag', to: 'accounts#show', as: :short_account_tag
- get '/@:account_username/:id', to: 'statuses#show', as: :short_account_status
- get '/@:account_username/:id/embed', to: 'statuses#embed', as: :embed_short_account_status
+ constraints(username: /[^@\/.]+/) do
+ get '/@:username', to: 'accounts#show', as: :short_account
+ get '/@:username/with_replies', to: 'accounts#show', as: :short_account_with_replies
+ get '/@:username/media', to: 'accounts#show', as: :short_account_media
+ get '/@:username/tagged/:tag', to: 'accounts#show', as: :short_account_tag
+ end
- get '/interact/:id', to: 'remote_interaction#new', as: :remote_interaction
- post '/interact/:id', to: 'remote_interaction#create'
+ constraints(account_username: /[^@\/.]+/) do
+ get '/@:account_username/following', to: 'following_accounts#index'
+ get '/@:account_username/followers', to: 'follower_accounts#index'
+ get '/@:account_username/:id', to: 'statuses#show', as: :short_account_status
+ get '/@:account_username/:id/embed', to: 'statuses#embed', as: :embed_short_account_status
+ end
- get '/explore', to: 'directories#index', as: :explore
+ get '/@:username_with_domain/(*any)', to: 'home#index', constraints: { username_with_domain: /([^\/])+?/ }, format: false
get '/settings', to: redirect('/settings/profile')
namespace :settings do
@@ -180,11 +206,17 @@ Rails.application.routes.draw do
resources :tags, only: [:show]
resources :emojis, only: [:show]
resources :invites, only: [:index, :create, :destroy]
- resources :filters, except: [:show]
+ resources :filters, except: [:show] do
+ resources :statuses, only: [:index], controller: 'filters/statuses' do
+ collection do
+ post :batch
+ end
+ end
+ end
+
resource :relationships, only: [:show, :update]
resource :statuses_cleanup, controller: :statuses_cleanup, only: [:show, :update]
- get '/public', to: 'public_timelines#show', as: :public_timeline
get '/media_proxy/:id/(*any)', to: 'media_proxy#show', as: :media_proxy
resource :authorize_interaction, only: [:show, :create]
@@ -230,7 +262,18 @@ Rails.application.routes.draw do
end
end
- resource :settings, only: [:edit, :update]
+ get '/settings', to: redirect('/admin/settings/branding')
+ get '/settings/edit', to: redirect('/admin/settings/branding')
+
+ namespace :settings do
+ resource :branding, only: [:show, :update], controller: 'branding'
+ resource :registrations, only: [:show, :update], controller: 'registrations'
+ resource :content_retention, only: [:show, :update], controller: 'content_retention'
+ resource :about, only: [:show, :update], controller: 'about'
+ resource :appearance, only: [:show, :update], controller: 'appearance'
+ resource :discovery, only: [:show, :update], controller: 'discovery'
+ end
+
resources :site_uploads, only: [:destroy]
resources :invites, only: [:index, :create, :destroy] do
@@ -303,7 +346,7 @@ Rails.application.routes.draw do
resource :reset, only: [:create]
resource :action, only: [:new, :create], controller: 'account_actions'
- resources :statuses, only: [:index] do
+ resources :statuses, only: [:index, :show] do
collection do
post :batch
end
@@ -316,17 +359,11 @@ Rails.application.routes.draw do
post :resend
end
end
-
- resource :role, only: [] do
- member do
- post :promote
- post :demote
- end
- end
end
resources :users, only: [] do
- resource :two_factor_authentication, only: [:destroy]
+ resource :two_factor_authentication, only: [:destroy], controller: 'users/two_factor_authentications'
+ resource :role, only: [:show, :update], controller: 'users/roles'
end
resources :custom_emojis, only: [:index, :new, :create] do
@@ -341,6 +378,7 @@ Rails.application.routes.draw do
end
end
+ resources :roles, except: [:show]
resources :account_moderation_notes, only: [:create, :destroy]
resource :follow_recommendations, only: [:show, :update]
resources :tags, only: [:show, :update]
@@ -412,6 +450,8 @@ Rails.application.routes.draw do
resource :history, only: :show
resource :source, only: :show
+
+ post :translate, to: 'translations#create'
end
member do
@@ -473,10 +513,18 @@ Rails.application.routes.draw do
resources :bookmarks, only: [:index]
resources :reports, only: [:create]
resources :trends, only: [:index], controller: 'trends/tags'
- resources :filters, only: [:index, :create, :show, :update, :destroy]
+ resources :filters, only: [:index, :create, :show, :update, :destroy] do
+ resources :keywords, only: [:index, :create], controller: 'filters/keywords'
+ resources :statuses, only: [:index, :create], controller: 'filters/statuses'
+ end
resources :endorsements, only: [:index]
resources :markers, only: [:index, :create]
+ namespace :filters do
+ resources :keywords, only: [:show, :update, :destroy]
+ resources :statuses, only: [:show, :destroy]
+ end
+
namespace :apps do
get :verify_credentials, to: 'credentials#show'
end
@@ -495,8 +543,11 @@ Rails.application.routes.draw do
resource :instance, only: [:show] do
resources :peers, only: [:index], controller: 'instances/peers'
- resource :activity, only: [:show], controller: 'instances/activity'
resources :rules, only: [:index], controller: 'instances/rules'
+ resources :domain_blocks, only: [:index], controller: 'instances/domain_blocks'
+ resource :privacy_policy, only: [:show], controller: 'instances/privacy_policies'
+ resource :extended_description, only: [:show], controller: 'instances/extended_descriptions'
+ resource :activity, only: [:show], controller: 'instances/activity'
end
resource :domain_blocks, only: [:show, :create, :destroy]
@@ -553,6 +604,15 @@ Rails.application.routes.draw do
resource :note, only: :create, controller: 'accounts/notes'
end
+ resources :tags, only: [:show] do
+ member do
+ post :follow
+ post :unfollow
+ end
+ end
+
+ resources :followed_tags, only: [:index]
+
resources :lists, only: [:index, :create, :show, :update, :destroy] do
resource :accounts, only: [:show, :create, :destroy], controller: 'lists/accounts'
end
@@ -594,7 +654,10 @@ Rails.application.routes.draw do
end
end
+ resources :domain_allows, only: [:index, :show, :create, :destroy]
resources :domain_blocks, only: [:index, :show, :update, :create, :destroy]
+ resources :email_domain_blocks, only: [:index, :show, :create, :destroy]
+ resources :ip_blocks, only: [:index, :show, :update, :create, :destroy]
namespace :trends do
resources :tags, only: [:index]
@@ -605,13 +668,22 @@ Rails.application.routes.draw do
post :measures, to: 'measures#create'
post :dimensions, to: 'dimensions#create'
post :retention, to: 'retention#create'
+
+ resources :canonical_email_blocks, only: [:index, :create, :show, :destroy] do
+ collection do
+ post :test
+ end
+ end
end
end
namespace :v2 do
- resources :media, only: [:create]
get '/search', to: 'search#index', as: :search
+
+ resources :media, only: [:create]
resources :suggestions, only: [:index]
+ resources :filters, only: [:index, :create, :show, :update, :destroy]
+ resource :instance, only: [:show]
namespace :admin do
resources :accounts, only: [:index]
@@ -629,11 +701,16 @@ Rails.application.routes.draw do
end
end
- get '/web/(*any)', to: 'home#index', as: :web
+ web_app_paths.each do |path|
+ get path, to: 'home#index'
+ end
+
+ get '/web/(*any)', to: redirect('/%{any}', status: 302), as: :web, defaults: { any: '' }
+ get '/about', to: 'about#show'
+ get '/about/more', to: redirect('/about')
- get '/about', to: 'about#show'
- get '/about/more', to: 'about#more'
- get '/terms', to: 'about#terms'
+ get '/privacy-policy', to: 'privacy#show', as: :privacy_policy
+ get '/terms', to: redirect('/privacy-policy')
match '/', via: [:post, :put, :patch, :delete], to: 'application#raise_not_found', format: false
match '*unmatched_route', via: :all, to: 'application#raise_not_found', format: false
diff --git a/config/settings.yml b/config/settings.yml
index bb2720ec24..1f44fd308d 100644
--- a/config/settings.yml
+++ b/config/settings.yml
@@ -73,7 +73,6 @@ defaults: &defaults
bootstrap_timeline_accounts: ''
activity_api_enabled: true
peers_api_enabled: true
- show_known_fediverse_at_about_page: true
show_reblogs_in_public_timelines: false
show_replies_in_public_timelines: false
default_content_type: 'text/plain'
@@ -82,6 +81,7 @@ defaults: &defaults
outgoing_spoilers: ''
require_invite_text: false
captcha_enabled: false
+ backups_retention_period: 7
development:
<<: *defaults
diff --git a/config/sidekiq.yml b/config/sidekiq.yml
index 2a38714684..e3156aa346 100644
--- a/config/sidekiq.yml
+++ b/config/sidekiq.yml
@@ -25,22 +25,14 @@
every: '5m'
class: Scheduler::IndexingScheduler
queue: scheduler
- media_cleanup_scheduler:
+ vacuum_scheduler:
cron: '<%= Random.rand(0..59) %> <%= Random.rand(3..5) %> * * *'
- class: Scheduler::MediaCleanupScheduler
- queue: scheduler
- feed_cleanup_scheduler:
- cron: '<%= Random.rand(0..59) %> <%= Random.rand(0..2) %> * * *'
- class: Scheduler::FeedCleanupScheduler
+ class: Scheduler::VacuumScheduler
queue: scheduler
follow_recommendations_scheduler:
cron: '<%= Random.rand(0..59) %> <%= Random.rand(6..9) %> * * *'
class: Scheduler::FollowRecommendationsScheduler
queue: scheduler
- doorkeeper_cleanup_scheduler:
- cron: '<%= Random.rand(0..59) %> <%= Random.rand(0..2) %> * * 0'
- class: Scheduler::DoorkeeperCleanupScheduler
- queue: scheduler
user_cleanup_scheduler:
cron: '<%= Random.rand(0..59) %> <%= Random.rand(4..6) %> * * *'
class: Scheduler::UserCleanupScheduler
@@ -49,14 +41,6 @@
cron: '<%= Random.rand(0..59) %> <%= Random.rand(3..5) %> * * *'
class: Scheduler::IpCleanupScheduler
queue: scheduler
- email_scheduler:
- cron: '0 10 * * 2'
- class: Scheduler::EmailScheduler
- queue: scheduler
- backup_cleanup_scheduler:
- cron: '<%= Random.rand(0..59) %> <%= Random.rand(3..5) %> * * *'
- class: Scheduler::BackupCleanupScheduler
- queue: scheduler
pghero_scheduler:
cron: '0 0 * * *'
class: Scheduler::PgheroScheduler
diff --git a/config/webpack/production.js b/config/webpack/production.js
index cd3d01035c..79dcebc7c4 100644
--- a/config/webpack/production.js
+++ b/config/webpack/production.js
@@ -1,29 +1,16 @@
// Note: You must restart bin/webpack-dev-server for changes to take effect
-const path = require('path');
-const { URL } = require('url');
+const { createHash } = require('crypto');
+const { readFileSync } = require('fs');
+const { resolve } = require('path');
const { merge } = require('webpack-merge');
const { BundleAnalyzerPlugin } = require('webpack-bundle-analyzer');
-const OfflinePlugin = require('offline-plugin');
const TerserPlugin = require('terser-webpack-plugin');
const CompressionPlugin = require('compression-webpack-plugin');
-const { output } = require('./configuration');
+const { InjectManifest } = require('workbox-webpack-plugin');
const sharedConfig = require('./shared');
-let attachmentHost;
-
-if (process.env.S3_ENABLED === 'true') {
- if (process.env.S3_ALIAS_HOST || process.env.S3_CLOUDFRONT_HOST) {
- attachmentHost = process.env.S3_ALIAS_HOST || process.env.S3_CLOUDFRONT_HOST;
- } else {
- attachmentHost = process.env.S3_HOSTNAME || `s3-${process.env.S3_REGION || 'us-east-1'}.amazonaws.com`;
- }
-} else if (process.env.SWIFT_ENABLED === 'true') {
- const { host } = new URL(process.env.SWIFT_OBJECT_URL);
- attachmentHost = host;
-} else {
- attachmentHost = null;
-}
+const root = resolve(__dirname, '..', '..');
module.exports = merge(sharedConfig, {
mode: 'production',
@@ -52,47 +39,28 @@ module.exports = merge(sharedConfig, {
openAnalyzer: false,
logLevel: 'silent', // do not bother Webpacker, who runs with --json and parses stdout
}),
- new OfflinePlugin({
- publicPath: output.publicPath, // sw.js must be served from the root to avoid scope issues
- safeToUseOptionalCaches: true,
- caches: {
- main: [':rest:'],
- additional: [':externals:'],
- optional: [
- '**/locale_*.js', // don't fetch every locale; the user only needs one
- '**/*_polyfills-*.js', // the user may not need polyfills
- '**/*.woff2', // the user may have system-fonts enabled
- // images/audio can be cached on-demand
- '**/*.png',
- '**/*.jpg',
- '**/*.jpeg',
- '**/*.svg',
- '**/*.mp3',
- '**/*.ogg',
- ],
- },
- externals: [
- '/emoji/1f602.svg', // used for emoji picker dropdown
- '/emoji/sheet_10.png', // used in emoji-mart
- ],
- excludes: [
- '**/*.gz',
- '**/*.map',
- 'stats.json',
- 'report.html',
- // any browser that supports ServiceWorker will support woff2
- '**/*.eot',
- '**/*.ttf',
- '**/*-webfont-*.svg',
- '**/*.woff',
+ new InjectManifest({
+ additionalManifestEntries: ['1f602.svg', 'sheet_13.png'].map((filename) => {
+ const path = resolve(root, 'public', 'emoji', filename);
+ const body = readFileSync(path);
+ const md5 = createHash('md5');
+
+ md5.update(body);
+
+ return {
+ revision: md5.digest('hex'),
+ url: `/emoji/${filename}`,
+ };
+ }),
+ exclude: [
+ /(?:base|extra)_polyfills-.*\.js$/,
+ /locale_.*\.js$/,
+ /mailer-.*\.(?:css|js)$/,
],
- ServiceWorker: {
- entry: `imports-loader?additionalCode=${encodeURIComponent(`var ATTACHMENT_HOST=${JSON.stringify(attachmentHost)};`)}!${encodeURI(path.join(__dirname, '../../app/javascript/mastodon/service_worker/entry.js'))}`,
- cacheName: 'mastodon',
- output: '../assets/sw.js',
- publicPath: '/sw.js',
- minify: true,
- },
+ include: [/\.js$/, /\.css$/],
+ maximumFileSizeToCacheInBytes: 2 * 1_024 * 1_024, // 2 MiB
+ swDest: resolve(root, 'public', 'packs', 'sw.js'),
+ swSrc: resolve(root, 'app', 'javascript', 'mastodon', 'service_worker', 'entry.js'),
}),
],
});
diff --git a/db/migrate/20170918125918_ids_to_bigints.rb b/db/migrate/20170918125918_ids_to_bigints.rb
index bcb2e9eca5..bf875e4e59 100644
--- a/db/migrate/20170918125918_ids_to_bigints.rb
+++ b/db/migrate/20170918125918_ids_to_bigints.rb
@@ -80,7 +80,7 @@ class IdsToBigints < ActiveRecord::Migration[5.1]
say 'This migration has some sections that can be safely interrupted'
say 'and restarted later, and will tell you when those are occurring.'
say ''
- say 'For more information, see https://github.com/tootsuite/mastodon/pull/5088'
+ say 'For more information, see https://github.com/mastodon/mastodon/pull/5088'
10.downto(1) do |i|
say "Continuing in #{i} second#{i == 1 ? '' : 's'}...", true
diff --git a/db/migrate/20220611210335_create_user_roles.rb b/db/migrate/20220611210335_create_user_roles.rb
new file mode 100644
index 0000000000..6b7f2b6371
--- /dev/null
+++ b/db/migrate/20220611210335_create_user_roles.rb
@@ -0,0 +1,13 @@
+class CreateUserRoles < ActiveRecord::Migration[6.1]
+ def change
+ create_table :user_roles do |t|
+ t.string :name, null: false, default: ''
+ t.string :color, null: false, default: ''
+ t.integer :position, null: false, default: 0
+ t.bigint :permissions, null: false, default: 0
+ t.boolean :highlighted, null: false, default: false
+
+ t.timestamps
+ end
+ end
+end
diff --git a/db/migrate/20220611212541_add_role_id_to_users.rb b/db/migrate/20220611212541_add_role_id_to_users.rb
new file mode 100644
index 0000000000..2fda647d4c
--- /dev/null
+++ b/db/migrate/20220611212541_add_role_id_to_users.rb
@@ -0,0 +1,8 @@
+class AddRoleIdToUsers < ActiveRecord::Migration[6.1]
+ disable_ddl_transaction!
+
+ def change
+ safety_assured { add_reference :users, :role, foreign_key: { to_table: 'user_roles', on_delete: :nullify }, index: false }
+ add_index :users, :role_id, algorithm: :concurrently, where: 'role_id IS NOT NULL'
+ end
+end
diff --git a/db/migrate/20220613110628_create_custom_filter_keywords.rb b/db/migrate/20220613110628_create_custom_filter_keywords.rb
new file mode 100644
index 0000000000..353fc334f0
--- /dev/null
+++ b/db/migrate/20220613110628_create_custom_filter_keywords.rb
@@ -0,0 +1,13 @@
+# frozen_string_literal: true
+
+class CreateCustomFilterKeywords < ActiveRecord::Migration[6.1]
+ def change
+ create_table :custom_filter_keywords do |t|
+ t.belongs_to :custom_filter, foreign_key: { on_delete: :cascade }, null: false
+ t.text :keyword, null: false, default: ''
+ t.boolean :whole_word, null: false, default: true
+
+ t.timestamps
+ end
+ end
+end
diff --git a/db/migrate/20220613110711_migrate_custom_filters.rb b/db/migrate/20220613110711_migrate_custom_filters.rb
new file mode 100644
index 0000000000..ea6a9b8c6d
--- /dev/null
+++ b/db/migrate/20220613110711_migrate_custom_filters.rb
@@ -0,0 +1,34 @@
+# frozen_string_literal: true
+
+class MigrateCustomFilters < ActiveRecord::Migration[6.1]
+ def up
+ # Preserve IDs as much as possible to not confuse existing clients.
+ # As long as this migration is irreversible, we do not have to deal with conflicts.
+ safety_assured do
+ execute <<-SQL.squish
+ INSERT INTO custom_filter_keywords (id, custom_filter_id, keyword, whole_word, created_at, updated_at)
+ SELECT id, id, phrase, whole_word, created_at, updated_at
+ FROM custom_filters
+ SQL
+ end
+ end
+
+ def down
+ # Copy back changes from custom filters guaranteed to be from the old API
+ safety_assured do
+ execute <<-SQL.squish
+ UPDATE custom_filters
+ SET phrase = custom_filter_keywords.keyword, whole_word = custom_filter_keywords.whole_word
+ FROM custom_filter_keywords
+ WHERE custom_filters.id = custom_filter_keywords.id AND custom_filters.id = custom_filter_keywords.custom_filter_id
+ SQL
+ end
+
+ # Drop every keyword as we can't safely provide a 1:1 mapping
+ safety_assured do
+ execute <<-SQL.squish
+ TRUNCATE custom_filter_keywords RESTART IDENTITY
+ SQL
+ end
+ end
+end
diff --git a/db/migrate/20220613110834_add_action_to_custom_filters.rb b/db/migrate/20220613110834_add_action_to_custom_filters.rb
new file mode 100644
index 0000000000..9427a66fc4
--- /dev/null
+++ b/db/migrate/20220613110834_add_action_to_custom_filters.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+require Rails.root.join('lib', 'mastodon', 'migration_helpers')
+
+class AddActionToCustomFilters < ActiveRecord::Migration[6.1]
+ include Mastodon::MigrationHelpers
+
+ disable_ddl_transaction!
+
+ def up
+ safety_assured do
+ add_column_with_default :custom_filters, :action, :integer, allow_null: false, default: 0
+ execute 'UPDATE custom_filters SET action = 1 WHERE irreversible IS TRUE'
+ end
+ end
+
+ def down
+ execute 'UPDATE custom_filters SET irreversible = (action = 1)'
+ remove_column :custom_filters, :action
+ end
+end
diff --git a/db/migrate/20220710102457_add_display_name_to_tags.rb b/db/migrate/20220710102457_add_display_name_to_tags.rb
new file mode 100644
index 0000000000..aa78676459
--- /dev/null
+++ b/db/migrate/20220710102457_add_display_name_to_tags.rb
@@ -0,0 +1,5 @@
+class AddDisplayNameToTags < ActiveRecord::Migration[6.1]
+ def change
+ add_column :tags, :display_name, :string
+ end
+end
diff --git a/db/migrate/20220714171049_create_tag_follows.rb b/db/migrate/20220714171049_create_tag_follows.rb
new file mode 100644
index 0000000000..a393e90f50
--- /dev/null
+++ b/db/migrate/20220714171049_create_tag_follows.rb
@@ -0,0 +1,12 @@
+class CreateTagFollows < ActiveRecord::Migration[6.1]
+ def change
+ create_table :tag_follows do |t|
+ t.belongs_to :tag, null: false, foreign_key: { on_delete: :cascade }
+ t.belongs_to :account, null: false, foreign_key: { on_delete: :cascade }, index: false
+
+ t.timestamps
+ end
+
+ add_index :tag_follows, [:account_id, :tag_id], unique: true
+ end
+end
diff --git a/db/migrate/20220808101323_create_custom_filter_statuses.rb b/db/migrate/20220808101323_create_custom_filter_statuses.rb
new file mode 100644
index 0000000000..52f7037491
--- /dev/null
+++ b/db/migrate/20220808101323_create_custom_filter_statuses.rb
@@ -0,0 +1,12 @@
+# frozen_string_literal: true
+
+class CreateCustomFilterStatuses < ActiveRecord::Migration[6.1]
+ def change
+ create_table :custom_filter_statuses do |t|
+ t.belongs_to :custom_filter, foreign_key: { on_delete: :cascade }, null: false
+ t.belongs_to :status, foreign_key: { on_delete: :cascade }, null: false
+
+ t.timestamps
+ end
+ end
+end
diff --git a/db/migrate/20220824164433_add_human_identifier_to_admin_action_logs.rb b/db/migrate/20220824164433_add_human_identifier_to_admin_action_logs.rb
new file mode 100644
index 0000000000..2cb8cddf19
--- /dev/null
+++ b/db/migrate/20220824164433_add_human_identifier_to_admin_action_logs.rb
@@ -0,0 +1,7 @@
+class AddHumanIdentifierToAdminActionLogs < ActiveRecord::Migration[6.1]
+ def change
+ add_column :admin_action_logs, :human_identifier, :string
+ add_column :admin_action_logs, :route_param, :string
+ add_column :admin_action_logs, :permalink, :string
+ end
+end
diff --git a/db/migrate/20220824233535_create_status_trends.rb b/db/migrate/20220824233535_create_status_trends.rb
new file mode 100644
index 0000000000..cea0abf355
--- /dev/null
+++ b/db/migrate/20220824233535_create_status_trends.rb
@@ -0,0 +1,12 @@
+class CreateStatusTrends < ActiveRecord::Migration[6.1]
+ def change
+ create_table :status_trends do |t|
+ t.references :status, null: false, foreign_key: { on_delete: :cascade }, index: { unique: true }
+ t.references :account, null: false, foreign_key: { on_delete: :cascade }
+ t.float :score, null: false, default: 0
+ t.integer :rank, null: false, default: 0
+ t.boolean :allowed, null: false, default: false
+ t.string :language
+ end
+ end
+end
diff --git a/db/migrate/20220827195229_change_canonical_email_blocks_nullable.rb b/db/migrate/20220827195229_change_canonical_email_blocks_nullable.rb
new file mode 100644
index 0000000000..5b3ec47275
--- /dev/null
+++ b/db/migrate/20220827195229_change_canonical_email_blocks_nullable.rb
@@ -0,0 +1,5 @@
+class ChangeCanonicalEmailBlocksNullable < ActiveRecord::Migration[6.1]
+ def change
+ safety_assured { change_column :canonical_email_blocks, :reference_account_id, :bigint, null: true, default: nil }
+ end
+end
diff --git a/db/migrate/20220829192633_add_languages_to_follows.rb b/db/migrate/20220829192633_add_languages_to_follows.rb
new file mode 100644
index 0000000000..f6cf48880a
--- /dev/null
+++ b/db/migrate/20220829192633_add_languages_to_follows.rb
@@ -0,0 +1,5 @@
+class AddLanguagesToFollows < ActiveRecord::Migration[6.1]
+ def change
+ add_column :follows, :languages, :string, array: true
+ end
+end
diff --git a/db/migrate/20220829192658_add_languages_to_follow_requests.rb b/db/migrate/20220829192658_add_languages_to_follow_requests.rb
new file mode 100644
index 0000000000..f98fabb220
--- /dev/null
+++ b/db/migrate/20220829192658_add_languages_to_follow_requests.rb
@@ -0,0 +1,5 @@
+class AddLanguagesToFollowRequests < ActiveRecord::Migration[6.1]
+ def change
+ add_column :follow_requests, :languages, :string, array: true
+ end
+end
diff --git a/db/migrate/20221006061337_create_preview_card_trends.rb b/db/migrate/20221006061337_create_preview_card_trends.rb
new file mode 100644
index 0000000000..baad9c31c3
--- /dev/null
+++ b/db/migrate/20221006061337_create_preview_card_trends.rb
@@ -0,0 +1,11 @@
+class CreatePreviewCardTrends < ActiveRecord::Migration[6.1]
+ def change
+ create_table :preview_card_trends do |t|
+ t.references :preview_card, null: false, foreign_key: { on_delete: :cascade }, index: { unique: true }
+ t.float :score, null: false, default: 0
+ t.integer :rank, null: false, default: 0
+ t.boolean :allowed, null: false, default: false
+ t.string :language
+ end
+ end
+end
diff --git a/db/migrate/20221012181003_add_blurhash_to_site_uploads.rb b/db/migrate/20221012181003_add_blurhash_to_site_uploads.rb
new file mode 100644
index 0000000000..e1c87712b1
--- /dev/null
+++ b/db/migrate/20221012181003_add_blurhash_to_site_uploads.rb
@@ -0,0 +1,5 @@
+class AddBlurhashToSiteUploads < ActiveRecord::Migration[6.1]
+ def change
+ add_column :site_uploads, :blurhash, :string
+ end
+end
diff --git a/db/migrate/20221021055441_add_index_featured_tags_on_account_id_and_tag_id.rb b/db/migrate/20221021055441_add_index_featured_tags_on_account_id_and_tag_id.rb
new file mode 100644
index 0000000000..74d7673f7d
--- /dev/null
+++ b/db/migrate/20221021055441_add_index_featured_tags_on_account_id_and_tag_id.rb
@@ -0,0 +1,19 @@
+class AddIndexFeaturedTagsOnAccountIdAndTagId < ActiveRecord::Migration[6.1]
+ disable_ddl_transaction!
+
+ def up
+ duplicates = FeaturedTag.connection.select_all('SELECT string_agg(id::text, \',\') AS ids FROM featured_tags GROUP BY account_id, tag_id HAVING count(*) > 1').to_ary
+
+ duplicates.each do |row|
+ FeaturedTag.where(id: row['ids'].split(',')[0...-1]).destroy_all
+ end
+
+ add_index :featured_tags, [:account_id, :tag_id], unique: true, algorithm: :concurrently
+ remove_index :featured_tags, [:account_id], algorithm: :concurrently
+ end
+
+ def down
+ add_index :featured_tags, [:account_id], algorithm: :concurrently
+ remove_index :featured_tags, [:account_id, :tag_id], unique: true, algorithm: :concurrently
+ end
+end
diff --git a/db/migrate/20221025171544_add_index_ip_blocks_on_ip.rb b/db/migrate/20221025171544_add_index_ip_blocks_on_ip.rb
new file mode 100644
index 0000000000..0221369b7e
--- /dev/null
+++ b/db/migrate/20221025171544_add_index_ip_blocks_on_ip.rb
@@ -0,0 +1,17 @@
+class AddIndexIpBlocksOnIp < ActiveRecord::Migration[6.1]
+ disable_ddl_transaction!
+
+ def up
+ duplicates = IpBlock.connection.select_all('SELECT string_agg(id::text, \',\') AS ids FROM ip_blocks GROUP BY ip HAVING count(*) > 1').to_ary
+
+ duplicates.each do |row|
+ IpBlock.where(id: row['ids'].split(',')[0...-1]).destroy_all
+ end
+
+ add_index :ip_blocks, :ip, unique: true, algorithm: :concurrently
+ end
+
+ def down
+ remove_index :ip_blocks, :ip, unique: true
+ end
+end
diff --git a/db/post_migrate/20220613110802_remove_whole_word_from_custom_filters.rb b/db/post_migrate/20220613110802_remove_whole_word_from_custom_filters.rb
new file mode 100644
index 0000000000..7ef0749e54
--- /dev/null
+++ b/db/post_migrate/20220613110802_remove_whole_word_from_custom_filters.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+require Rails.root.join('lib', 'mastodon', 'migration_helpers')
+
+class RemoveWholeWordFromCustomFilters < ActiveRecord::Migration[6.1]
+ include Mastodon::MigrationHelpers
+
+ disable_ddl_transaction!
+
+ def up
+ safety_assured do
+ remove_column :custom_filters, :whole_word
+ end
+ end
+
+ def down
+ safety_assured do
+ add_column_with_default :custom_filters, :whole_word, :boolean, default: true, allow_null: false
+ end
+ end
+end
diff --git a/db/post_migrate/20220613110903_remove_irreversible_from_custom_filters.rb b/db/post_migrate/20220613110903_remove_irreversible_from_custom_filters.rb
new file mode 100644
index 0000000000..6ed8bcfeee
--- /dev/null
+++ b/db/post_migrate/20220613110903_remove_irreversible_from_custom_filters.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+require Rails.root.join('lib', 'mastodon', 'migration_helpers')
+
+class RemoveIrreversibleFromCustomFilters < ActiveRecord::Migration[6.1]
+ include Mastodon::MigrationHelpers
+
+ disable_ddl_transaction!
+
+ def up
+ safety_assured do
+ remove_column :custom_filters, :irreversible
+ end
+ end
+
+ def down
+ safety_assured do
+ add_column_with_default :custom_filters, :irreversible, :boolean, allow_null: false, default: false
+ end
+ end
+end
diff --git a/db/post_migrate/20220617202502_migrate_roles.rb b/db/post_migrate/20220617202502_migrate_roles.rb
new file mode 100644
index 0000000000..b7a7b22012
--- /dev/null
+++ b/db/post_migrate/20220617202502_migrate_roles.rb
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+class MigrateRoles < ActiveRecord::Migration[5.2]
+ disable_ddl_transaction!
+
+ class UserRole < ApplicationRecord; end
+ class User < ApplicationRecord; end
+
+ def up
+ load Rails.root.join('db', 'seeds', '03_roles.rb')
+
+ admin_role = UserRole.find_by(name: 'Admin')
+ moderator_role = UserRole.find_by(name: 'Moderator')
+
+ User.where(admin: true).in_batches.update_all(role_id: admin_role.id)
+ User.where(moderator: true).in_batches.update_all(role_id: moderator_role.id)
+ end
+
+ def down
+ admin_role = UserRole.find_by(name: 'Admin')
+ moderator_role = UserRole.find_by(name: 'Moderator')
+
+ User.where(role_id: admin_role.id).in_batches.update_all(admin: true) if admin_role
+ User.where(role_id: moderator_role.id).in_batches.update_all(moderator: true) if moderator_role
+ end
+end
diff --git a/db/post_migrate/20220704024901_migrate_settings_to_user_roles.rb b/db/post_migrate/20220704024901_migrate_settings_to_user_roles.rb
new file mode 100644
index 0000000000..254690cc3a
--- /dev/null
+++ b/db/post_migrate/20220704024901_migrate_settings_to_user_roles.rb
@@ -0,0 +1,41 @@
+# frozen_string_literal: true
+
+class MigrateSettingsToUserRoles < ActiveRecord::Migration[6.1]
+ disable_ddl_transaction!
+
+ class UserRole < ApplicationRecord; end
+
+ def up
+ owner_role = UserRole.find_by(name: 'Owner')
+ admin_role = UserRole.find_by(name: 'Admin')
+ moderator_role = UserRole.find_by(name: 'Moderator')
+ everyone_role = UserRole.find_by(id: -99)
+
+ min_invite_role = Setting.min_invite_role
+ show_staff_badge = Setting.show_staff_badge
+
+ if everyone_role
+ everyone_role.permissions &= ~::UserRole::FLAGS[:invite_users] unless min_invite_role == 'user'
+ everyone_role.save
+ end
+
+ if owner_role
+ owner_role.highlighted = show_staff_badge
+ owner_role.save
+ end
+
+ if admin_role
+ admin_role.permissions |= ::UserRole::FLAGS[:invite_users] if %w(admin moderator).include?(min_invite_role)
+ admin_role.highlighted = show_staff_badge
+ admin_role.save
+ end
+
+ if moderator_role
+ moderator_role.permissions |= ::UserRole::FLAGS[:invite_users] if %w(moderator).include?(min_invite_role)
+ moderator_role.highlighted = show_staff_badge
+ moderator_role.save
+ end
+ end
+
+ def down; end
+end
diff --git a/db/post_migrate/20220729171123_fix_custom_filter_keywords_id_seq.rb b/db/post_migrate/20220729171123_fix_custom_filter_keywords_id_seq.rb
new file mode 100644
index 0000000000..7ed34a3efc
--- /dev/null
+++ b/db/post_migrate/20220729171123_fix_custom_filter_keywords_id_seq.rb
@@ -0,0 +1,20 @@
+# frozen_string_literal: true
+
+class FixCustomFilterKeywordsIdSeq < ActiveRecord::Migration[6.1]
+ disable_ddl_transaction!
+
+ def up
+ # 20220613110711 manually inserts items with set `id` in the database, but
+ # we also need to bump the sequence number, otherwise
+ safety_assured do
+ execute <<-SQL.squish
+ BEGIN;
+ LOCK TABLE custom_filter_keywords IN EXCLUSIVE MODE;
+ SELECT setval('custom_filter_keywords_id_seq'::regclass, id) FROM custom_filter_keywords ORDER BY id DESC LIMIT 1;
+ COMMIT;
+ SQL
+ end
+ end
+
+ def down; end
+end
diff --git a/db/post_migrate/20220824164532_remove_recorded_changes_from_admin_action_logs.rb b/db/post_migrate/20220824164532_remove_recorded_changes_from_admin_action_logs.rb
new file mode 100644
index 0000000000..c42d5df8fb
--- /dev/null
+++ b/db/post_migrate/20220824164532_remove_recorded_changes_from_admin_action_logs.rb
@@ -0,0 +1,9 @@
+# frozen_string_literal: true
+
+class RemoveRecordedChangesFromAdminActionLogs < ActiveRecord::Migration[5.2]
+ disable_ddl_transaction!
+
+ def change
+ safety_assured { remove_column :admin_action_logs, :recorded_changes, :text }
+ end
+end
diff --git a/db/schema.rb b/db/schema.rb
index 526480df4d..a155a1b6aa 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -10,7 +10,7 @@
#
# It's strongly recommended that you check this file into your version control system.
-ActiveRecord::Schema.define(version: 2022_06_06_044941) do
+ActiveRecord::Schema.define(version: 2022_10_25_171544) do
# These are extensions that must be enabled in order to support this database
enable_extension "plpgsql"
@@ -205,9 +205,11 @@ ActiveRecord::Schema.define(version: 2022_06_06_044941) do
t.string "action", default: "", null: false
t.string "target_type"
t.bigint "target_id"
- t.text "recorded_changes", default: "", null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
+ t.string "human_identifier"
+ t.string "route_param"
+ t.string "permalink"
t.index ["account_id"], name: "index_admin_action_logs_on_account_id"
t.index ["target_type", "target_id"], name: "index_admin_action_logs_on_target_type_and_target_id"
end
@@ -294,7 +296,7 @@ ActiveRecord::Schema.define(version: 2022_06_06_044941) do
create_table "canonical_email_blocks", force: :cascade do |t|
t.string "canonical_email_hash", default: "", null: false
- t.bigint "reference_account_id", null: false
+ t.bigint "reference_account_id"
t.datetime "created_at", precision: 6, null: false
t.datetime "updated_at", precision: 6, null: false
t.index ["canonical_email_hash"], name: "index_canonical_email_blocks_on_canonical_email_hash", unique: true
@@ -339,15 +341,32 @@ ActiveRecord::Schema.define(version: 2022_06_06_044941) do
t.index ["shortcode", "domain"], name: "index_custom_emojis_on_shortcode_and_domain", unique: true
end
+ create_table "custom_filter_keywords", force: :cascade do |t|
+ t.bigint "custom_filter_id", null: false
+ t.text "keyword", default: "", null: false
+ t.boolean "whole_word", default: true, null: false
+ t.datetime "created_at", precision: 6, null: false
+ t.datetime "updated_at", precision: 6, null: false
+ t.index ["custom_filter_id"], name: "index_custom_filter_keywords_on_custom_filter_id"
+ end
+
+ create_table "custom_filter_statuses", force: :cascade do |t|
+ t.bigint "custom_filter_id", null: false
+ t.bigint "status_id", null: false
+ t.datetime "created_at", precision: 6, null: false
+ t.datetime "updated_at", precision: 6, null: false
+ t.index ["custom_filter_id"], name: "index_custom_filter_statuses_on_custom_filter_id"
+ t.index ["status_id"], name: "index_custom_filter_statuses_on_status_id"
+ end
+
create_table "custom_filters", force: :cascade do |t|
t.bigint "account_id"
t.datetime "expires_at"
t.text "phrase", default: "", null: false
t.string "context", default: [], null: false, array: true
- t.boolean "irreversible", default: false, null: false
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
- t.boolean "whole_word", default: true, null: false
+ t.integer "action", default: 0, null: false
t.index ["account_id"], name: "index_custom_filters_on_account_id"
end
@@ -423,7 +442,7 @@ ActiveRecord::Schema.define(version: 2022_06_06_044941) do
t.datetime "last_status_at"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
- t.index ["account_id"], name: "index_featured_tags_on_account_id"
+ t.index ["account_id", "tag_id"], name: "index_featured_tags_on_account_id_and_tag_id", unique: true
t.index ["tag_id"], name: "index_featured_tags_on_tag_id"
end
@@ -442,6 +461,7 @@ ActiveRecord::Schema.define(version: 2022_06_06_044941) do
t.boolean "show_reblogs", default: true, null: false
t.string "uri"
t.boolean "notify", default: false, null: false
+ t.string "languages", array: true
t.index ["account_id", "target_account_id"], name: "index_follow_requests_on_account_id_and_target_account_id", unique: true
end
@@ -453,6 +473,7 @@ ActiveRecord::Schema.define(version: 2022_06_06_044941) do
t.boolean "show_reblogs", default: true, null: false
t.string "uri"
t.boolean "notify", default: false, null: false
+ t.string "languages", array: true
t.index ["account_id", "target_account_id"], name: "index_follows_on_account_id_and_target_account_id", unique: true
t.index ["target_account_id"], name: "index_follows_on_target_account_id"
end
@@ -500,6 +521,7 @@ ActiveRecord::Schema.define(version: 2022_06_06_044941) do
t.inet "ip", default: "0.0.0.0", null: false
t.integer "severity", default: 0, null: false
t.text "comment", default: "", null: false
+ t.index ["ip"], name: "index_ip_blocks_on_ip", unique: true
end
create_table "list_accounts", force: :cascade do |t|
@@ -714,6 +736,15 @@ ActiveRecord::Schema.define(version: 2022_06_06_044941) do
t.index ["domain"], name: "index_preview_card_providers_on_domain", unique: true
end
+ create_table "preview_card_trends", force: :cascade do |t|
+ t.bigint "preview_card_id", null: false
+ t.float "score", default: 0.0, null: false
+ t.integer "rank", default: 0, null: false
+ t.boolean "allowed", default: false, null: false
+ t.string "language"
+ t.index ["preview_card_id"], name: "index_preview_card_trends_on_preview_card_id", unique: true
+ end
+
create_table "preview_cards", force: :cascade do |t|
t.string "url", default: "", null: false
t.string "title", default: "", null: false
@@ -836,6 +867,7 @@ ActiveRecord::Schema.define(version: 2022_06_06_044941) do
t.json "meta"
t.datetime "created_at", null: false
t.datetime "updated_at", null: false
+ t.string "blurhash"
t.index ["var"], name: "index_site_uploads_on_var", unique: true
end
@@ -874,6 +906,17 @@ ActiveRecord::Schema.define(version: 2022_06_06_044941) do
t.index ["status_id"], name: "index_status_stats_on_status_id", unique: true
end
+ create_table "status_trends", force: :cascade do |t|
+ t.bigint "status_id", null: false
+ t.bigint "account_id", null: false
+ t.float "score", default: 0.0, null: false
+ t.integer "rank", default: 0, null: false
+ t.boolean "allowed", default: false, null: false
+ t.string "language"
+ t.index ["account_id"], name: "index_status_trends_on_account_id"
+ t.index ["status_id"], name: "index_status_trends_on_status_id", unique: true
+ end
+
create_table "statuses", id: :bigint, default: -> { "timestamp_id('statuses'::text)" }, force: :cascade do |t|
t.string "uri"
t.text "text", default: "", null: false
@@ -923,6 +966,15 @@ ActiveRecord::Schema.define(version: 2022_06_06_044941) do
t.datetime "updated_at", null: false
end
+ create_table "tag_follows", force: :cascade do |t|
+ t.bigint "tag_id", null: false
+ t.bigint "account_id", null: false
+ t.datetime "created_at", precision: 6, null: false
+ t.datetime "updated_at", precision: 6, null: false
+ t.index ["account_id", "tag_id"], name: "index_tag_follows_on_account_id_and_tag_id", unique: true
+ t.index ["tag_id"], name: "index_tag_follows_on_tag_id"
+ end
+
create_table "tags", force: :cascade do |t|
t.string "name", default: "", null: false
t.datetime "created_at", null: false
@@ -935,6 +987,7 @@ ActiveRecord::Schema.define(version: 2022_06_06_044941) do
t.datetime "last_status_at"
t.float "max_score"
t.datetime "max_score_at"
+ t.string "display_name"
t.index "lower((name)::text) text_pattern_ops", name: "index_tags_on_name_lower_btree", unique: true
end
@@ -963,6 +1016,16 @@ ActiveRecord::Schema.define(version: 2022_06_06_044941) do
t.index ["user_id"], name: "index_user_invite_requests_on_user_id"
end
+ create_table "user_roles", force: :cascade do |t|
+ t.string "name", default: "", null: false
+ t.string "color", default: "", null: false
+ t.integer "position", default: 0, null: false
+ t.bigint "permissions", default: 0, null: false
+ t.boolean "highlighted", default: false, null: false
+ t.datetime "created_at", precision: 6, null: false
+ t.datetime "updated_at", precision: 6, null: false
+ end
+
create_table "users", force: :cascade do |t|
t.string "email", default: "", null: false
t.datetime "created_at", null: false
@@ -998,11 +1061,13 @@ ActiveRecord::Schema.define(version: 2022_06_06_044941) do
t.string "webauthn_id"
t.inet "sign_up_ip"
t.boolean "skip_sign_in_token"
+ t.bigint "role_id"
t.index ["account_id"], name: "index_users_on_account_id"
t.index ["confirmation_token"], name: "index_users_on_confirmation_token", unique: true
t.index ["created_by_application_id"], name: "index_users_on_created_by_application_id", where: "(created_by_application_id IS NOT NULL)"
t.index ["email"], name: "index_users_on_email", unique: true
t.index ["reset_password_token"], name: "index_users_on_reset_password_token", unique: true, opclass: :text_pattern_ops, where: "(reset_password_token IS NOT NULL)"
+ t.index ["role_id"], name: "index_users_on_role_id", where: "(role_id IS NOT NULL)"
end
create_table "web_push_subscriptions", force: :cascade do |t|
@@ -1085,6 +1150,9 @@ ActiveRecord::Schema.define(version: 2022_06_06_044941) do
add_foreign_key "canonical_email_blocks", "accounts", column: "reference_account_id", on_delete: :cascade
add_foreign_key "conversation_mutes", "accounts", name: "fk_225b4212bb", on_delete: :cascade
add_foreign_key "conversation_mutes", "conversations", on_delete: :cascade
+ add_foreign_key "custom_filter_keywords", "custom_filters", on_delete: :cascade
+ add_foreign_key "custom_filter_statuses", "custom_filters", on_delete: :cascade
+ add_foreign_key "custom_filter_statuses", "statuses", on_delete: :cascade
add_foreign_key "custom_filters", "accounts", on_delete: :cascade
add_foreign_key "devices", "accounts", on_delete: :cascade
add_foreign_key "devices", "oauth_access_tokens", column: "access_token_id", on_delete: :cascade
@@ -1128,6 +1196,7 @@ ActiveRecord::Schema.define(version: 2022_06_06_044941) do
add_foreign_key "poll_votes", "polls", on_delete: :cascade
add_foreign_key "polls", "accounts", on_delete: :cascade
add_foreign_key "polls", "statuses", on_delete: :cascade
+ add_foreign_key "preview_card_trends", "preview_cards", on_delete: :cascade
add_foreign_key "report_notes", "accounts", on_delete: :cascade
add_foreign_key "report_notes", "reports", on_delete: :cascade
add_foreign_key "reports", "accounts", column: "action_taken_by_account_id", name: "fk_bca45b75fd", on_delete: :nullify
@@ -1142,17 +1211,22 @@ ActiveRecord::Schema.define(version: 2022_06_06_044941) do
add_foreign_key "status_pins", "accounts", name: "fk_d4cb435b62", on_delete: :cascade
add_foreign_key "status_pins", "statuses", on_delete: :cascade
add_foreign_key "status_stats", "statuses", on_delete: :cascade
+ add_foreign_key "status_trends", "accounts", on_delete: :cascade
+ add_foreign_key "status_trends", "statuses", on_delete: :cascade
add_foreign_key "statuses", "accounts", column: "in_reply_to_account_id", name: "fk_c7fa917661", on_delete: :nullify
add_foreign_key "statuses", "accounts", name: "fk_9bda1543f7", on_delete: :cascade
add_foreign_key "statuses", "statuses", column: "in_reply_to_id", on_delete: :nullify
add_foreign_key "statuses", "statuses", column: "reblog_of_id", on_delete: :cascade
add_foreign_key "statuses_tags", "statuses", on_delete: :cascade
add_foreign_key "statuses_tags", "tags", name: "fk_3081861e21", on_delete: :cascade
+ add_foreign_key "tag_follows", "accounts", on_delete: :cascade
+ add_foreign_key "tag_follows", "tags", on_delete: :cascade
add_foreign_key "tombstones", "accounts", on_delete: :cascade
add_foreign_key "user_invite_requests", "users", on_delete: :cascade
add_foreign_key "users", "accounts", name: "fk_50500f500d", on_delete: :cascade
add_foreign_key "users", "invites", on_delete: :nullify
add_foreign_key "users", "oauth_applications", column: "created_by_application_id", on_delete: :nullify
+ add_foreign_key "users", "user_roles", column: "role_id", on_delete: :nullify
add_foreign_key "web_push_subscriptions", "oauth_access_tokens", column: "access_token_id", on_delete: :cascade
add_foreign_key "web_push_subscriptions", "users", on_delete: :cascade
add_foreign_key "web_settings", "users", name: "fk_11910667b2", on_delete: :cascade
diff --git a/db/seeds.rb b/db/seeds.rb
index 0bfb5d0db5..1ca300de73 100644
--- a/db/seeds.rb
+++ b/db/seeds.rb
@@ -1,11 +1,5 @@
-Doorkeeper::Application.create!(name: 'Web', superapp: true, redirect_uri: Doorkeeper.configuration.native_redirect_uri, scopes: 'read write follow push')
+# frozen_string_literal: true
-domain = ENV['LOCAL_DOMAIN'] || Rails.configuration.x.local_domain
-account = Account.find_or_initialize_by(id: -99, actor_type: 'Application', locked: true, username: domain)
-account.save!
-
-if Rails.env.development?
- admin = Account.where(username: 'admin').first_or_initialize(username: 'admin')
- admin.save(validate: false)
- User.where(email: "admin@#{domain}").first_or_initialize(email: "admin@#{domain}", password: 'mastodonadmin', password_confirmation: 'mastodonadmin', confirmed_at: Time.now.utc, admin: true, account: admin, agreement: true, approved: true).save!
+Dir[Rails.root.join('db', 'seeds', '*.rb')].sort.each do |seed|
+ load seed
end
diff --git a/db/seeds/01_web_app.rb b/db/seeds/01_web_app.rb
new file mode 100644
index 0000000000..a457a883b3
--- /dev/null
+++ b/db/seeds/01_web_app.rb
@@ -0,0 +1 @@
+Doorkeeper::Application.create_with(name: 'Web', redirect_uri: Doorkeeper.configuration.native_redirect_uri, scopes: 'read write follow push').find_or_create_by(superapp: true)
diff --git a/db/seeds/02_instance_actor.rb b/db/seeds/02_instance_actor.rb
new file mode 100644
index 0000000000..39186b2734
--- /dev/null
+++ b/db/seeds/02_instance_actor.rb
@@ -0,0 +1 @@
+Account.create_with(actor_type: 'Application', locked: true, username: ENV['LOCAL_DOMAIN'] || Rails.configuration.x.local_domain).find_or_create_by(id: -99)
diff --git a/db/seeds/03_roles.rb b/db/seeds/03_roles.rb
new file mode 100644
index 0000000000..7fedf0f711
--- /dev/null
+++ b/db/seeds/03_roles.rb
@@ -0,0 +1,9 @@
+# Pre-create base role
+UserRole.everyone
+
+# Create default roles defined in config file
+default_roles = YAML.load_file(Rails.root.join('config', 'roles.yml'))
+
+default_roles.each do |_, config|
+ UserRole.create_with(position: config['position'], permissions_as_keys: config['permissions'], highlighted: true).find_or_create_by(name: config['name'])
+end
diff --git a/db/seeds/04_admin.rb b/db/seeds/04_admin.rb
new file mode 100644
index 0000000000..a67040e4ec
--- /dev/null
+++ b/db/seeds/04_admin.rb
@@ -0,0 +1,8 @@
+if Rails.env.development?
+ domain = ENV['LOCAL_DOMAIN'] || Rails.configuration.x.local_domain
+
+ admin = Account.where(username: 'admin').first_or_initialize(username: 'admin')
+ admin.save(validate: false)
+
+ User.where(email: "admin@#{domain}").first_or_initialize(email: "admin@#{domain}", password: 'mastodonadmin', password_confirmation: 'mastodonadmin', confirmed_at: Time.now.utc, role: UserRole.find_by(name: 'Owner'), account: admin, agreement: true, approved: true).save!
+end
diff --git a/dist/nginx.conf b/dist/nginx.conf
index 7e03343680..716c277dd0 100644
--- a/dist/nginx.conf
+++ b/dist/nginx.conf
@@ -52,65 +52,108 @@ server {
gzip_http_version 1.1;
gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript image/svg+xml image/x-icon;
- add_header Strict-Transport-Security "max-age=31536000" always;
-
location / {
try_files $uri @proxy;
}
- location ~ ^/(emoji|packs|system/accounts/avatars|system/media_attachments/files) {
- add_header Cache-Control "public, max-age=31536000, immutable";
- add_header Strict-Transport-Security "max-age=31536000" always;
- try_files $uri @proxy;
+ # If Docker is used for deployment and Rails serves static files,
+ # then needed must replace line `try_files $uri =404;` with `try_files $uri @proxy;`.
+ location = sw.js {
+ add_header Cache-Control "public, max-age=604800, must-revalidate";
+ add_header Strict-Transport-Security "max-age=63072000; includeSubDomains";
+ try_files $uri =404;
}
- location /sw.js {
- add_header Cache-Control "public, max-age=0";
- add_header Strict-Transport-Security "max-age=31536000" always;
- try_files $uri @proxy;
+ location ~ ^/assets/ {
+ add_header Cache-Control "public, max-age=2419200, must-revalidate";
+ add_header Strict-Transport-Security "max-age=63072000; includeSubDomains";
+ try_files $uri =404;
}
- location @proxy {
+ location ~ ^/avatars/ {
+ add_header Cache-Control "public, max-age=2419200, must-revalidate";
+ add_header Strict-Transport-Security "max-age=63072000; includeSubDomains";
+ try_files $uri =404;
+ }
+
+ location ~ ^/emoji/ {
+ add_header Cache-Control "public, max-age=2419200, must-revalidate";
+ add_header Strict-Transport-Security "max-age=63072000; includeSubDomains";
+ try_files $uri =404;
+ }
+
+ location ~ ^/headers/ {
+ add_header Cache-Control "public, max-age=2419200, must-revalidate";
+ add_header Strict-Transport-Security "max-age=63072000; includeSubDomains";
+ try_files $uri =404;
+ }
+
+ location ~ ^/packs/ {
+ add_header Cache-Control "public, max-age=2419200, must-revalidate";
+ add_header Strict-Transport-Security "max-age=63072000; includeSubDomains";
+ try_files $uri =404;
+ }
+
+ location ~ ^/shortcuts/ {
+ add_header Cache-Control "public, max-age=2419200, must-revalidate";
+ add_header Strict-Transport-Security "max-age=63072000; includeSubDomains";
+ try_files $uri =404;
+ }
+
+ location ~ ^/sounds/ {
+ add_header Cache-Control "public, max-age=2419200, must-revalidate";
+ add_header Strict-Transport-Security "max-age=63072000; includeSubDomains";
+ try_files $uri =404;
+ }
+
+ location ~ ^/system/ {
+ add_header Cache-Control "public, max-age=2419200, immutable";
+ add_header Strict-Transport-Security "max-age=63072000; includeSubDomains";
+ try_files $uri =404;
+ }
+
+ location ^~ /api/v1/streaming/ {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Proxy "";
- proxy_pass_header Server;
- proxy_pass http://backend;
- proxy_buffering on;
+ proxy_pass http://streaming;
+ proxy_buffering off;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
- proxy_cache CACHE;
- proxy_cache_valid 200 7d;
- proxy_cache_valid 410 24h;
- proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
- add_header X-Cached $upstream_cache_status;
- add_header Strict-Transport-Security "max-age=31536000" always;
+ add_header Strict-Transport-Security "max-age=63072000; includeSubDomains";
tcp_nodelay on;
}
- location /api/v1/streaming {
+ location @proxy {
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_set_header Proxy "";
+ proxy_pass_header Server;
- proxy_pass http://streaming;
- proxy_buffering off;
+ proxy_pass http://backend;
+ proxy_buffering on;
proxy_redirect off;
proxy_http_version 1.1;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection $connection_upgrade;
+ proxy_cache CACHE;
+ proxy_cache_valid 200 7d;
+ proxy_cache_valid 410 24h;
+ proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
+ add_header X-Cached $upstream_cache_status;
+
tcp_nodelay on;
}
- error_page 500 501 502 503 504 /500.html;
+ error_page 404 500 501 502 503 504 /500.html;
}
diff --git a/docker-compose.yml b/docker-compose.yml
index 5c2c0c5dfe..c534286c76 100644
--- a/docker-compose.yml
+++ b/docker-compose.yml
@@ -15,7 +15,7 @@ services:
redis:
restart: always
- image: redis:6-alpine
+ image: redis:7-alpine
networks:
- internal_network
healthcheck:
@@ -25,13 +25,20 @@ services:
# es:
# restart: always
- # image: docker.elastic.co/elasticsearch/elasticsearch-oss:7.10.2
+ # image: docker.elastic.co/elasticsearch/elasticsearch:7.17.4
# environment:
- # - "ES_JAVA_OPTS=-Xms512m -Xmx512m"
+ # - "ES_JAVA_OPTS=-Xms512m -Xmx512m -Des.enforce.bootstrap.checks=true"
+ # - "xpack.license.self_generated.type=basic"
+ # - "xpack.security.enabled=false"
+ # - "xpack.watcher.enabled=false"
+ # - "xpack.graph.enabled=false"
+ # - "xpack.ml.enabled=false"
+ # - "bootstrap.memory_lock=true"
# - "cluster.name=es-mastodon"
# - "discovery.type=single-node"
- # - "bootstrap.memory_lock=true"
+ # - "thread_pool.write.queue_size=1000"
# networks:
+ # - external_network
# - internal_network
# healthcheck:
# test: ["CMD-SHELL", "curl --silent --fail localhost:9200/_cluster/health || exit 1"]
@@ -41,6 +48,11 @@ services:
# memlock:
# soft: -1
# hard: -1
+ # nofile:
+ # soft: 65536
+ # hard: 65536
+ # ports:
+ # - '127.0.0.1:9200:9200'
web:
build: .
diff --git a/jsconfig.json b/jsconfig.json
new file mode 100644
index 0000000000..7471fb9db9
--- /dev/null
+++ b/jsconfig.json
@@ -0,0 +1,22 @@
+{
+ "compilerOptions": {
+ "allowJs": true,
+ "baseUrl": "./app/javascript",
+ "checkJs": false,
+ "experimentalDecorators": true,
+ "jsx": "react",
+ "lib": ["DOM", "DOM.Iterable", "ES2022"],
+ "module": "ES2022",
+ "moduleResolution": "node",
+ "noEmit": true,
+ "resolveJsonModule": true,
+ "strict": false,
+ "target": "ES2022"
+ },
+ "exclude": [
+ "**/build/*",
+ "**/node_modules/*",
+ "**/public/*",
+ "**/vendor/*"
+ ]
+}
diff --git a/lib/assets/wordmark.dark.css b/lib/assets/wordmark.dark.css
new file mode 100644
index 0000000000..d870691788
--- /dev/null
+++ b/lib/assets/wordmark.dark.css
@@ -0,0 +1 @@
+// Not needed
diff --git a/lib/assets/wordmark.dark.png b/lib/assets/wordmark.dark.png
new file mode 100644
index 0000000000..defe501781
Binary files /dev/null and b/lib/assets/wordmark.dark.png differ
diff --git a/lib/assets/wordmark.light.css b/lib/assets/wordmark.light.css
new file mode 100644
index 0000000000..9a601f9725
--- /dev/null
+++ b/lib/assets/wordmark.light.css
@@ -0,0 +1 @@
+use { color: #000 !important; }
diff --git a/lib/assets/wordmark.light.png b/lib/assets/wordmark.light.png
new file mode 100644
index 0000000000..d4485c0fb2
Binary files /dev/null and b/lib/assets/wordmark.light.png differ
diff --git a/lib/exceptions.rb b/lib/exceptions.rb
index 0c677b6605..3c5ba226b1 100644
--- a/lib/exceptions.rb
+++ b/lib/exceptions.rb
@@ -25,4 +25,13 @@ module Mastodon
end
end
end
+
+ class PrivateNetworkAddressError < HostValidationError
+ attr_reader :host
+
+ def initialize(host)
+ @host = host
+ super()
+ end
+ end
end
diff --git a/lib/mastodon/accounts_cli.rb b/lib/mastodon/accounts_cli.rb
index 7256d1da98..c8a8448edc 100644
--- a/lib/mastodon/accounts_cli.rb
+++ b/lib/mastodon/accounts_cli.rb
@@ -54,10 +54,10 @@ module Mastodon
option :email, required: true
option :confirmed, type: :boolean
- option :role, default: 'user', enum: %w(user moderator admin)
+ option :role
option :reattach, type: :boolean
option :force, type: :boolean
- desc 'create USERNAME', 'Create a new user'
+ desc 'create USERNAME', 'Create a new user account'
long_desc <<-LONG_DESC
Create a new user account with a given USERNAME and an
e-mail address provided with --email.
@@ -65,8 +65,7 @@ module Mastodon
With the --confirmed option, the confirmation e-mail will
be skipped and the account will be active straight away.
- With the --role option one of "user", "admin" or "moderator"
- can be supplied. Defaults to "user"
+ With the --role option, the role can be supplied.
With the --reattach option, the new user will be reattached
to a given existing username of an old account. If the old
@@ -75,9 +74,22 @@ module Mastodon
username to the new account anyway.
LONG_DESC
def create(username)
+ role_id = nil
+
+ if options[:role]
+ role = UserRole.find_by(name: options[:role])
+
+ if role.nil?
+ say('Cannot find user role with that name', :red)
+ exit(1)
+ end
+
+ role_id = role.id
+ end
+
account = Account.new(username: username)
password = SecureRandom.hex
- user = User.new(email: options[:email], password: password, agreement: true, approved: true, admin: options[:role] == 'admin', moderator: options[:role] == 'moderator', confirmed_at: options[:confirmed] ? Time.now.utc : nil, bypass_invite_request_check: true)
+ user = User.new(email: options[:email], password: password, agreement: true, approved: true, role_id: role_id, confirmed_at: options[:confirmed] ? Time.now.utc : nil, bypass_invite_request_check: true)
if options[:reattach]
account = Account.find_local(username) || Account.new(username: username)
@@ -106,14 +118,15 @@ module Mastodon
user.errors.to_h.each do |key, error|
say('Failure/Error: ', :red)
say(key)
- say(' ' + error, :red)
+ say(" #{error}", :red)
end
exit(1)
end
end
- option :role, enum: %w(user moderator admin)
+ option :role
+ option :remove_role, type: :boolean
option :email
option :confirm, type: :boolean
option :enable, type: :boolean
@@ -121,12 +134,12 @@ module Mastodon
option :disable_2fa, type: :boolean
option :approve, type: :boolean
option :reset_password, type: :boolean
- desc 'modify USERNAME', 'Modify a user'
+ desc 'modify USERNAME', 'Modify a user account'
long_desc <<-LONG_DESC
Modify a user account.
- With the --role option, update the user's role to one of "user",
- "moderator" or "admin".
+ With the --role option, update the user's role. To remove the user's
+ role, i.e. demote to normal user, use --remove-role.
With the --email option, update the user's e-mail address. With
the --confirm option, mark the user's e-mail as confirmed.
@@ -152,8 +165,16 @@ module Mastodon
end
if options[:role]
- user.admin = options[:role] == 'admin'
- user.moderator = options[:role] == 'moderator'
+ role = UserRole.find_by(name: options[:role])
+
+ if role.nil?
+ say('Cannot find user role with that name', :red)
+ exit(1)
+ end
+
+ user.role_id = role.id
+ elsif options[:remove_role]
+ user.role_id = nil
end
password = SecureRandom.hex if options[:reset_password]
@@ -172,7 +193,7 @@ module Mastodon
user.errors.to_h.each do |key, error|
say('Failure/Error: ', :red)
say(key)
- say(' ' + error, :red)
+ say(" #{error}", :red)
end
exit(1)
@@ -319,7 +340,7 @@ module Mastodon
unless skip_domains.empty?
say('The following domains were not available during the check:', :yellow)
- skip_domains.each { |domain| say(' ' + domain) }
+ skip_domains.each { |domain| say(" #{domain}") }
end
end
diff --git a/lib/mastodon/canonical_email_blocks_cli.rb b/lib/mastodon/canonical_email_blocks_cli.rb
index 64b72e6031..ec228d466a 100644
--- a/lib/mastodon/canonical_email_blocks_cli.rb
+++ b/lib/mastodon/canonical_email_blocks_cli.rb
@@ -18,17 +18,15 @@ module Mastodon
When suspending a local user, a hash of a "canonical" version of their e-mail
address is stored to prevent them from signing up again.
- This command can be used to find whether a known email address is blocked,
- and if so, which account it was attached to.
+ This command can be used to find whether a known email address is blocked.
LONG_DESC
def find(email)
- accts = CanonicalEmailBlock.find_blocks(email).map(&:reference_account).map(&:acct).to_a
+ accts = CanonicalEmailBlock.matching_email(email)
+
if accts.empty?
- say("#{email} is not blocked", :yellow)
+ say("#{email} is not blocked", :green)
else
- accts.each do |acct|
- say(acct, :white)
- end
+ say("#{email} is blocked", :red)
end
end
@@ -40,24 +38,13 @@ module Mastodon
This command allows removing a canonical email block.
LONG_DESC
def remove(email)
- blocks = CanonicalEmailBlock.find_blocks(email)
+ blocks = CanonicalEmailBlock.matching_email(email)
+
if blocks.empty?
- say("#{email} is not blocked", :yellow)
+ say("#{email} is not blocked", :green)
else
blocks.destroy_all
- say("Removed canonical email block for #{email}", :green)
- end
- end
-
- private
-
- def color(processed, failed)
- if !processed.zero? && failed.zero?
- :green
- elsif failed.zero?
- :yellow
- else
- :red
+ say("Unblocked #{email}", :green)
end
end
end
diff --git a/lib/mastodon/media_cli.rb b/lib/mastodon/media_cli.rb
index 36ca71844f..bba4a1bd72 100644
--- a/lib/mastodon/media_cli.rb
+++ b/lib/mastodon/media_cli.rb
@@ -187,6 +187,7 @@ module Mastodon
option :account, type: :string
option :domain, type: :string
option :status, type: :numeric
+ option :days, type: :numeric
option :concurrency, type: :numeric, default: 5, aliases: [:c]
option :verbose, type: :boolean, default: false, aliases: [:v]
option :dry_run, type: :boolean, default: false
@@ -204,6 +205,8 @@ module Mastodon
Use the --domain option to download attachments from a specific domain.
+ Use the --days option to limit attachments created within days.
+
By default, attachments that are believed to be already downloaded will
not be re-downloaded. To force re-download of every URL, use --force.
DESC
@@ -224,10 +227,16 @@ module Mastodon
scope = MediaAttachment.where(account_id: account.id)
elsif options[:domain]
scope = MediaAttachment.joins(:account).merge(Account.by_domain_and_subdomains(options[:domain]))
+ elsif options[:days].present?
+ scope = MediaAttachment.remote
else
exit(1)
end
+ if options[:days].present?
+ scope = scope.where('media_attachments.id > ?', Mastodon::Snowflake.id_at(options[:days].days.ago, with_random: false))
+ end
+
processed, aggregate = parallelize_with_progress(scope) do |media_attachment|
next if media_attachment.remote_url.blank? || (!options[:force] && media_attachment.file_file_name.present?)
next if DomainBlock.reject_media?(media_attachment.account.domain)
diff --git a/lib/mastodon/search_cli.rb b/lib/mastodon/search_cli.rb
index b579ebc143..b206854ab3 100644
--- a/lib/mastodon/search_cli.rb
+++ b/lib/mastodon/search_cli.rb
@@ -30,7 +30,7 @@ module Mastodon
changed since the last run. Index upgrades erase index data.
Even if creating or upgrading indices is not necessary, data from the
- database will be imported into the indices, unless overriden with --no-import.
+ database will be imported into the indices, unless overridden with --no-import.
LONG_DESC
def deploy
if options[:concurrency] < 1
diff --git a/lib/mastodon/version.rb b/lib/mastodon/version.rb
index 2d0b283230..b854b7c312 100644
--- a/lib/mastodon/version.rb
+++ b/lib/mastodon/version.rb
@@ -5,19 +5,19 @@ module Mastodon
module_function
def major
- 3
+ 4
end
def minor
- 5
+ 0
end
def patch
- 3
+ 0
end
def flags
- ''
+ 'rc1'
end
def suffix
diff --git a/lib/paperclip/transcoder.rb b/lib/paperclip/transcoder.rb
index afd9f58ff6..b3b55f82fb 100644
--- a/lib/paperclip/transcoder.rb
+++ b/lib/paperclip/transcoder.rb
@@ -40,8 +40,10 @@ module Paperclip
@output_options['f'] = 'image2'
@output_options['vframes'] = 1
when 'mp4'
- @output_options['acodec'] = 'aac'
- @output_options['strict'] = 'experimental'
+ unless eligible_to_passthrough?(metadata)
+ @output_options['acodec'] = 'aac'
+ @output_options['strict'] = 'experimental'
+ end
if high_vfr?(metadata) && !eligible_to_passthrough?(metadata)
@output_options['vsync'] = 'vfr'
diff --git a/lib/simple_navigation/item_extensions.rb b/lib/simple_navigation/item_extensions.rb
new file mode 100644
index 0000000000..28af37a188
--- /dev/null
+++ b/lib/simple_navigation/item_extensions.rb
@@ -0,0 +1,15 @@
+# frozen_string_literal: true
+
+module SimpleNavigation
+ module ItemExtensions
+ def url
+ if @url.nil? && @sub_navigation
+ @sub_navigation.items.first.url
+ else
+ @url
+ end
+ end
+ end
+end
+
+SimpleNavigation::Item.prepend(SimpleNavigation::ItemExtensions)
diff --git a/lib/tasks/branding.rake b/lib/tasks/branding.rake
new file mode 100644
index 0000000000..2eec7c9e14
--- /dev/null
+++ b/lib/tasks/branding.rake
@@ -0,0 +1,77 @@
+namespace :branding do
+ desc 'Generate necessary graphic assets for branding from source SVG files'
+ task generate: :environment do
+ Rake::Task['branding:generate_app_icons'].invoke
+ Rake::Task['branding:generate_app_badge'].invoke
+ Rake::Task['branding:generate_github_assets'].invoke
+ Rake::Task['branding:generate_mailer_assets'].invoke
+ end
+
+ desc 'Generate PNG icons and logos for e-mail templates'
+ task generate_mailer_assets: :environment do
+ rsvg_convert = Terrapin::CommandLine.new('rsvg-convert', '-h :size --keep-aspect-ratio :input -o :output')
+ output_dest = Rails.root.join('app', 'javascript', 'images', 'mailer')
+
+ # Displayed size is 64px, at 3x it's 192px
+ Dir[Rails.root.join('app', 'javascript', 'images', 'icons', '*.svg')].each do |path|
+ rsvg_convert.run(input: path, size: 192, output: output_dest.join("#{File.basename(path, '.svg')}.png"))
+ end
+
+ # Displayed size is 34px, at 3x it's 102px
+ rsvg_convert.run(input: Rails.root.join('app', 'javascript', 'images', 'logo-symbol-wordmark.svg'), size: 102, output: output_dest.join('wordmark.png'))
+
+ # Displayed size is 24px, at 3x it's 72px
+ rsvg_convert.run(input: Rails.root.join('app', 'javascript', 'images', 'logo-symbol-icon.svg'), size: 72, output: output_dest.join('logo.png'))
+ end
+
+ desc 'Generate light/dark logotypes for GitHub'
+ task generate_github_assets: :environment do
+ rsvg_convert = Terrapin::CommandLine.new('rsvg-convert', '--stylesheet :stylesheet -h :size --keep-aspect-ratio :input -o :output')
+ output_dest = Rails.root.join('lib', 'assets')
+
+ rsvg_convert.run(stylesheet: Rails.root.join('lib', 'assets', 'wordmark.dark.css'), input: Rails.root.join('app', 'javascript', 'images', 'logo-symbol-wordmark.svg'), size: 102, output: output_dest.join('wordmark.dark.png'))
+ rsvg_convert.run(stylesheet: Rails.root.join('lib', 'assets', 'wordmark.light.css'), input: Rails.root.join('app', 'javascript', 'images', 'logo-symbol-wordmark.svg'), size: 102, output: output_dest.join('wordmark.light.png'))
+ end
+
+ desc 'Generate favicons and app icons from SVG source files'
+ task generate_app_icons: :environment do
+ favicon_source = Rails.root.join('app', 'javascript', 'images', 'logo.svg')
+ app_icon_source = Rails.root.join('app', 'javascript', 'images', 'app-icon.svg')
+ output_dest = Rails.root.join('app', 'javascript', 'icons')
+
+ rsvg_convert = Terrapin::CommandLine.new('rsvg-convert', '-w :size -h :size --keep-aspect-ratio :input -o :output')
+ convert = Terrapin::CommandLine.new('convert', ':input :output')
+
+ favicon_sizes = [16, 32, 48]
+ apple_icon_sizes = [57, 60, 72, 76, 114, 120, 144, 152, 167, 180, 1024]
+ android_icon_sizes = [36, 48, 72, 96, 144, 192, 256, 384, 512]
+
+ favicons = []
+
+ favicon_sizes.each do |size|
+ output_path = output_dest.join("favicon-#{size}x#{size}.png")
+ favicons << output_path
+ rsvg_convert.run(size: size, input: favicon_source, output: output_path)
+ end
+
+ convert.run(input: favicons, output: Rails.root.join('public', 'favicon.ico'))
+
+ apple_icon_sizes.each do |size|
+ rsvg_convert.run(size: size, input: app_icon_source, output: output_dest.join("apple-touch-icon-#{size}x#{size}.png"))
+ end
+
+ android_icon_sizes.each do |size|
+ rsvg_convert.run(size: size, input: app_icon_source, output: output_dest.join("android-chrome-#{size}x#{size}.png"))
+ end
+ end
+
+ desc 'Generate badge icon from SVG source files'
+ task generate_app_badge: :environment do
+ rsvg_convert = Terrapin::CommandLine.new('rsvg-convert', '--stylesheet :stylesheet -w :size -h :size --keep-aspect-ratio :input -o :output')
+ badge_source = Rails.root.join('app', 'javascript', 'images', 'logo-symbol-icon.svg')
+ output_dest = Rails.root.join('public')
+ stylesheet = Rails.root.join('lib', 'assets', 'wordmark.light.css')
+
+ rsvg_convert.run(stylesheet: stylesheet, input: badge_source, size: 192, output: output_dest.join('badge.png'))
+ end
+end
diff --git a/lib/tasks/mastodon.rake b/lib/tasks/mastodon.rake
index d652468b37..0ccfc9f29f 100644
--- a/lib/tasks/mastodon.rake
+++ b/lib/tasks/mastodon.rake
@@ -11,7 +11,7 @@ namespace :mastodon do
# When the application code gets loaded, it runs `lib/mastodon/redis_configuration.rb`.
# This happens before application environment configuration and sets REDIS_URL etc.
# These variables are then used even when REDIS_HOST etc. are changed, so clear them
- # out so they don't interfer with our new configuration.
+ # out so they don't interfere with our new configuration.
ENV.delete('REDIS_URL')
ENV.delete('CACHE_REDIS_URL')
ENV.delete('SIDEKIQ_REDIS_URL')
diff --git a/lib/tasks/tests.rake b/lib/tasks/tests.rake
index 0f3b44a744..65bff6a8e8 100644
--- a/lib/tasks/tests.rake
+++ b/lib/tasks/tests.rake
@@ -38,10 +38,26 @@ namespace :tests do
puts 'Instance actor does not have a private key'
exit(1)
end
+
+ unless Account.find_by(username: 'user', domain: nil).custom_filters.map { |filter| filter.keywords.pluck(:keyword) } == [['test'], ['take']]
+ puts 'CustomFilterKeyword records not created as expected'
+ exit(1)
+ end
+ end
+
+ desc 'Populate the database with test data for 2.4.3'
+ task populate_v2_4_3: :environment do # rubocop:disable Naming/VariableNumber
+ ActiveRecord::Base.connection.execute(<<~SQL)
+ INSERT INTO "custom_filters"
+ (id, account_id, phrase, context, whole_word, irreversible, created_at, updated_at)
+ VALUES
+ (1, 2, 'test', '{ "home", "public" }', true, true, now(), now()),
+ (2, 2, 'take', '{ "home" }', false, false, now(), now());
+ SQL
end
desc 'Populate the database with test data for 2.4.0'
- task populate_v2_4: :environment do
+ task populate_v2_4: :environment do # rubocop:disable Naming/VariableNumber
ActiveRecord::Base.connection.execute(<<~SQL)
INSERT INTO "settings"
(id, thing_type, thing_id, var, value, created_at, updated_at)
diff --git a/nanobox/nginx-local.conf b/nanobox/nginx-local.conf
deleted file mode 100644
index 37c8a451a3..0000000000
--- a/nanobox/nginx-local.conf
+++ /dev/null
@@ -1,92 +0,0 @@
-worker_processes 1;
-daemon off;
-
-events {
- worker_connections 1024;
-}
-
-http {
- include /data/etc/nginx/mime.types;
- sendfile on;
-
- gzip on;
- gzip_disable "MSIE [1-6]\.";
- gzip_vary on;
- gzip_proxied any;
- gzip_comp_level 6;
- gzip_buffers 16 8k;
- gzip_min_length 500;
- gzip_http_version 1.1;
- gzip_types text/plain text/xml text/javascript text/css text/comma-separated-values application/xml+rss application/xml application/x-javascript application/json application/javascript application/atom+xml;
-
- # Proxy upstream to the puma process
- upstream rails {
- server 127.0.0.1:3000;
- }
-
- # Proxy upstream to the node process
- upstream node {
- server 127.0.0.1:4000;
- }
-
- map $http_upgrade $connection_upgrade {
- default upgrade;
- '' close;
- }
-
- # Configuration for Nginx
- server {
- # Listen on port 8080
- listen 8080;
-
- keepalive_timeout 70;
- client_max_body_size 80M;
-
- root /app/public;
-
- add_header Strict-Transport-Security "max-age=31536000";
-
- location / {
- try_files $uri @rails;
- }
-
- # Proxy connections to rails
- location @rails {
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header X-Forwarded-Proto https;
- proxy_set_header Proxy "";
- proxy_pass_header Server;
-
- proxy_pass http://rails;
- proxy_buffering off;
- proxy_redirect off;
- proxy_http_version 1.1;
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection $connection_upgrade;
-
- tcp_nodelay on;
- }
-
- # Proxy connections to node
- location /api/v1/streaming {
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header X-Forwarded-Proto https;
- proxy_set_header Proxy "";
-
- proxy_pass http://node;
- proxy_buffering off;
- proxy_redirect off;
- proxy_http_version 1.1;
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection $connection_upgrade;
-
- tcp_nodelay on;
- }
- }
-
- error_page 500 501 502 503 504 /500.html;
-}
diff --git a/nanobox/nginx-stream.conf.erb b/nanobox/nginx-stream.conf.erb
deleted file mode 100644
index 4ea6e30fc9..0000000000
--- a/nanobox/nginx-stream.conf.erb
+++ /dev/null
@@ -1,66 +0,0 @@
-worker_processes 1;
-daemon off;
-
-events {
- worker_connections 1024;
-}
-
-http {
- include /data/etc/nginx/mime.types;
- sendfile on;
-
- gzip on;
- gzip_disable "MSIE [1-6]\.";
- gzip_vary on;
- gzip_proxied any;
- gzip_comp_level 6;
- gzip_buffers 16 8k;
- gzip_min_length 500;
- gzip_http_version 1.1;
- gzip_types text/plain text/xml text/javascript text/css text/comma-separated-values application/xml+rss application/xml application/x-javascript application/json application/javascript application/atom+xml;
-
- # Proxy upstream to the node process
- upstream node {
- server 127.0.0.1:4000;
- }
-
- map $http_upgrade $connection_upgrade {
- default upgrade;
- '' close;
- }
-
- # Configuration for Nginx
- server {
- # Listen on port 8080
- listen 8080;
-
- keepalive_timeout 70;
- client_max_body_size 80M;
-
- root /app/public;
-
- add_header Strict-Transport-Security "max-age=31536000";
-
- location / {
- try_files $uri @node;
- }
-
- # Proxy connections to node
- location @node {
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header X-Forwarded-Proto https;
- proxy_set_header Proxy "";
-
- proxy_pass http://node;
- proxy_buffering off;
- proxy_redirect off;
- proxy_http_version 1.1;
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection $connection_upgrade;
-
- tcp_nodelay on;
- }
- }
-}
diff --git a/nanobox/nginx-web.conf.erb b/nanobox/nginx-web.conf.erb
deleted file mode 100644
index 182d992099..0000000000
--- a/nanobox/nginx-web.conf.erb
+++ /dev/null
@@ -1,90 +0,0 @@
-worker_processes 1;
-daemon off;
-
-events {
- worker_connections 1024;
-}
-
-http {
- include /data/etc/nginx/mime.types;
- sendfile on;
-
- gzip on;
- gzip_disable "MSIE [1-6]\.";
- gzip_vary on;
- gzip_proxied any;
- gzip_comp_level 6;
- gzip_buffers 16 8k;
- gzip_min_length 500;
- gzip_http_version 1.1;
- gzip_types text/plain text/xml text/javascript text/css text/comma-separated-values application/xml+rss application/xml application/x-javascript application/json application/javascript application/atom+xml;
-
- # Proxy upstream to the puma process
- upstream rails {
- server 127.0.0.1:3000;
- }
-
- map $http_upgrade $connection_upgrade {
- default upgrade;
- '' close;
- }
-
- # Configuration for Nginx
- server {
- # Listen on port 8080
- listen 8080;
-
- keepalive_timeout 70;
- client_max_body_size 80M;
-
- root /app/public;
-
- add_header Strict-Transport-Security "max-age=31536000";
-
- location / {
- try_files $uri @rails;
- }
-
- location /sw.js {
- add_header Cache-Control "public, max-age=0";
- add_header Strict-Transport-Security "max-age=31536000";
- try_files $uri @rails;
- }
-
- location ~ ^/(emoji|packs|system/media_attachments/files|system/accounts/avatars) {
- add_header Cache-Control "public, max-age=31536000, immutable";
- add_header Strict-Transport-Security "max-age=31536000";
- try_files $uri @rails;
- }
-
- # Proxy connections to rails
- location @rails {
- proxy_set_header Host $host;
- proxy_set_header X-Real-IP $remote_addr;
- proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
- proxy_set_header X-Forwarded-Proto https;
- proxy_set_header Proxy "";
- proxy_pass_header Server;
-
- proxy_pass http://rails;
- proxy_buffering on;
- proxy_redirect off;
- proxy_http_version 1.1;
- proxy_set_header Upgrade $http_upgrade;
- proxy_set_header Connection $connection_upgrade;
-
- proxy_cache CACHE;
- proxy_cache_valid 200 7d;
- proxy_cache_valid 410 24h;
- proxy_cache_use_stale error timeout updating http_500 http_502 http_503 http_504;
- add_header Strict-Transport-Security "max-age=31536000";
- add_header X-Cached $upstream_cache_status;
-
- tcp_nodelay on;
- }
- }
-
- proxy_cache_path /data/var/cache/nginx levels=1:2 keys_zone=CACHE:10m inactive=7d max_size=1g;
-
- error_page 500 501 502 503 504 /500.html;
-}
diff --git a/package.json b/package.json
index 458c3ef6c8..1466f1ac61 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
"name": "@mastodon/mastodon",
"license": "AGPL-3.0-or-later",
"engines": {
- "node": ">=12"
+ "node": ">=14"
},
"scripts": {
"postversion": "git push --tags",
@@ -24,68 +24,70 @@
},
"private": true,
"dependencies": {
- "@babel/core": "^7.18.2",
- "@babel/plugin-proposal-decorators": "^7.18.2",
- "@babel/plugin-transform-react-inline-elements": "^7.16.7",
- "@babel/plugin-transform-runtime": "^7.18.2",
- "@babel/preset-env": "^7.18.2",
- "@babel/preset-react": "^7.17.12",
- "@babel/runtime": "^7.18.3",
+ "@babel/core": "^7.19.6",
+ "@babel/plugin-proposal-decorators": "^7.19.6",
+ "@babel/plugin-transform-react-inline-elements": "^7.18.6",
+ "@babel/plugin-transform-runtime": "^7.19.6",
+ "@babel/preset-env": "^7.19.4",
+ "@babel/preset-react": "^7.18.6",
+ "@babel/runtime": "^7.19.4",
"@gamestdio/websocket": "^0.3.2",
"@github/webauthn-json": "^0.5.7",
- "@rails/ujs": "^6.1.6",
+ "@rails/ujs": "^6.1.7",
+ "abortcontroller-polyfill": "^1.7.5",
"array-includes": "^3.1.5",
"atrament": "0.2.4",
"arrow-key-navigation": "^1.2.0",
"autoprefixer": "^9.8.8",
- "axios": "^0.27.2",
+ "axios": "^1.1.3",
"babel-loader": "^8.2.5",
"babel-plugin-lodash": "^3.3.4",
"babel-plugin-preval": "^5.1.0",
"babel-plugin-react-intl": "^6.2.0",
"babel-plugin-transform-react-remove-prop-types": "^0.4.24",
- "blurhash": "^1.1.5",
- "classnames": "^2.3.1",
+ "blurhash": "^2.0.3",
+ "classnames": "^2.3.2",
+ "cocoon-js-vanilla": "^1.3.0",
"color-blend": "^3.0.1",
"compression-webpack-plugin": "^6.1.1",
"cross-env": "^7.0.3",
"css-loader": "^5.2.7",
"cssnano": "^4.1.11",
"detect-passive-events": "^2.0.3",
- "dotenv": "^16.0.1",
+ "dotenv": "^16.0.3",
"emoji-mart": "npm:emoji-mart-lazyload",
"es6-symbol": "^3.1.3",
"escape-html": "^1.0.3",
"exif-js": "^2.3.0",
- "express": "^4.18.1",
+ "express": "^4.18.2",
"favico.js": "^0.3.10",
"file-loader": "^6.2.0",
"font-awesome": "^4.7.0",
"fuzzysort": "^1.9.0",
"glob": "^8.0.3",
"history": "^4.10.1",
- "http-link-header": "^1.0.4",
+ "http-link-header": "^1.0.5",
"immutable": "^4.1.0",
"imports-loader": "^1.2.0",
- "intersection-observer": "^0.12.0",
+ "intersection-observer": "^0.12.2",
"intl": "^1.2.5",
"intl-messageformat": "^2.2.0",
"intl-relativeformat": "^6.4.3",
"is-nan": "^1.3.2",
"js-yaml": "^4.1.0",
+ "jsdom": "^20.0.1",
"lodash": "^4.17.21",
"mark-loader": "^0.1.6",
- "marky": "^1.2.4",
+ "marky": "^1.2.5",
"mini-css-extract-plugin": "^1.6.2",
"mkdirp": "^1.0.4",
- "npmlog": "^6.0.2",
+ "npmlog": "^7.0.1",
"object-assign": "^4.1.1",
"object-fit-images": "^3.2.3",
"object.values": "^1.1.5",
- "offline-plugin": "^5.0.7",
"path-complete-extname": "^1.0.0",
"pg": "^8.5.0",
- "postcss": "^8.4.14",
+ "postcss": "^8.4.18",
"postcss-loader": "^3.0.0",
"postcss-object-fit-images": "^1.1.2",
"promise.prototype.finally": "^3.1.3",
@@ -93,33 +95,32 @@
"punycode": "^2.1.0",
"react": "^16.14.0",
"react-dom": "^16.14.0",
+ "react-helmet": "^6.1.0",
"react-hotkeys": "^1.1.4",
"react-immutable-proptypes": "^2.2.0",
"react-immutable-pure-component": "^2.2.2",
"react-intl": "^2.9.0",
- "react-masonry-infinite": "^1.2.2",
"react-motion": "^0.5.2",
"react-notification": "^6.8.5",
"react-overlays": "^0.9.3",
- "react-redux": "^7.2.8",
- "react-redux-loading-bar": "^4.0.8",
+ "react-redux": "^7.2.9",
+ "react-redux-loading-bar": "^5.0.4",
"react-router-dom": "^4.1.1",
"react-router-scroll-4": "^1.0.0-beta.1",
- "react-select": "^5.3.2",
+ "react-select": "^5.5.4",
"react-sparklines": "^1.7.0",
"react-swipeable-views": "^0.14.0",
"react-textarea-autosize": "^8.3.4",
- "react-toggle": "^4.1.2",
+ "react-toggle": "^4.1.3",
"redis": "^4.0.6 <4.1.0",
"redux": "^4.2.0",
"redux-immutable": "^4.0.0",
"redux-thunk": "^2.4.1",
- "regenerator-runtime": "^0.13.9",
- "rellax": "^1.12.1",
+ "regenerator-runtime": "^0.13.10",
"requestidlecallback": "^0.3.0",
- "reselect": "^4.1.5",
+ "reselect": "^4.1.6",
"rimraf": "^3.0.2",
- "sass": "^1.52.1",
+ "sass": "^1.55.0",
"sass-loader": "^10.2.0",
"stacktrace-js": "^2.0.2",
"stringz": "^2.1.0",
@@ -132,39 +133,45 @@
"uuid": "^8.3.1",
"webpack": "^4.46.0",
"webpack-assets-manifest": "^4.0.6",
- "webpack-bundle-analyzer": "^4.5.0",
+ "webpack-bundle-analyzer": "^4.6.1",
"webpack-cli": "^3.3.12",
"webpack-merge": "^5.8.0",
- "wicg-inert": "^3.1.1",
- "ws": "^8.7.0"
+ "wicg-inert": "^3.1.2",
+ "workbox-expiration": "^6.5.4",
+ "workbox-precaching": "^6.5.4",
+ "workbox-routing": "^6.5.4",
+ "workbox-strategies": "^6.5.4",
+ "workbox-webpack-plugin": "^6.5.4",
+ "workbox-window": "^6.5.4",
+ "ws": "^8.10.0"
},
"devDependencies": {
- "@babel/eslint-parser": "^7.18.2",
- "@testing-library/jest-dom": "^5.16.4",
+ "@babel/eslint-parser": "^7.19.1",
+ "@testing-library/jest-dom": "^5.16.5",
"@testing-library/react": "^12.1.5",
- "babel-jest": "^28.1.0",
+ "babel-jest": "^29.2.1",
"eslint": "^7.32.0",
"eslint-plugin-import": "~2.26.0",
- "eslint-plugin-jsx-a11y": "~6.5.1",
- "eslint-plugin-promise": "~6.0.0",
- "eslint-plugin-react": "~7.30.0",
- "jest": "^28.1.0",
- "jest-environment-jsdom": "^28.1.0",
- "postcss-scss": "^4.0.4",
- "prettier": "^2.6.2",
+ "eslint-plugin-jsx-a11y": "~6.6.1",
+ "eslint-plugin-promise": "~6.1.1",
+ "eslint-plugin-react": "~7.31.10",
+ "jest": "^29.2.2",
+ "jest-environment-jsdom": "^29.2.1",
+ "postcss-scss": "^4.0.5",
+ "prettier": "^2.7.1",
"raf": "^3.4.1",
"react-intl-translations-manager": "^5.0.3",
"react-test-renderer": "^16.14.0",
- "stylelint": "^14.8.5",
- "stylelint-config-standard-scss": "^4.0.0",
+ "stylelint": "^14.14.0",
+ "stylelint-config-standard-scss": "^5.0.0",
"webpack-dev-server": "^3.11.3",
- "yargs": "^17.5.1"
+ "yargs": "^17.6.0"
},
"resolutions": {
"kind-of": "^6.0.3"
},
"optionalDependencies": {
- "bufferutil": "^4.0.6",
- "utf-8-validate": "^5.0.9"
+ "bufferutil": "^4.0.7",
+ "utf-8-validate": "^5.0.10"
}
}
diff --git a/public/android-chrome-192x192.png b/public/android-chrome-192x192.png
deleted file mode 100644
index 7a99a19641..0000000000
Binary files a/public/android-chrome-192x192.png and /dev/null differ
diff --git a/public/apple-touch-icon.png b/public/apple-touch-icon.png
deleted file mode 100644
index b12aa55a3a..0000000000
Binary files a/public/apple-touch-icon.png and /dev/null differ
diff --git a/public/badge.png b/public/badge.png
index c3e99ddd43..bd618c7290 100644
Binary files a/public/badge.png and b/public/badge.png differ
diff --git a/public/browserconfig.xml b/public/browserconfig.xml
deleted file mode 100644
index 7fdab5058e..0000000000
--- a/public/browserconfig.xml
+++ /dev/null
@@ -1,9 +0,0 @@
-
-
-
-
-
- #282c37
-
-
-
diff --git a/public/favicon-dev.ico b/public/favicon-dev.ico
deleted file mode 100644
index 3836044068..0000000000
Binary files a/public/favicon-dev.ico and /dev/null differ
diff --git a/public/favicon.ico b/public/favicon.ico
index 79000c9cc4..b09a98bb9b 100644
Binary files a/public/favicon.ico and b/public/favicon.ico differ
diff --git a/public/mask-icon.svg b/public/mask-icon.svg
deleted file mode 100644
index f91ff5067b..0000000000
--- a/public/mask-icon.svg
+++ /dev/null
@@ -1 +0,0 @@
-
diff --git a/public/mstile-150x150.png b/public/mstile-150x150.png
deleted file mode 100644
index a4994062de..0000000000
Binary files a/public/mstile-150x150.png and /dev/null differ
diff --git a/public/shortcuts/direct.png b/public/shortcuts/direct.png
deleted file mode 100644
index e8772c00e6..0000000000
Binary files a/public/shortcuts/direct.png and /dev/null differ
diff --git a/public/shortcuts/new-status.png b/public/shortcuts/new-status.png
deleted file mode 100644
index b7095f3c45..0000000000
Binary files a/public/shortcuts/new-status.png and /dev/null differ
diff --git a/public/shortcuts/notifications.png b/public/shortcuts/notifications.png
deleted file mode 100644
index 6b9d45718c..0000000000
Binary files a/public/shortcuts/notifications.png and /dev/null differ
diff --git a/public/shortcuts/profile.png b/public/shortcuts/profile.png
deleted file mode 100644
index 0b3bf517dd..0000000000
Binary files a/public/shortcuts/profile.png and /dev/null differ
diff --git a/public/sw.js b/public/sw.js
index 1471a9e640..debb9af9dc 120000
--- a/public/sw.js
+++ b/public/sw.js
@@ -1 +1 @@
-assets/sw.js
\ No newline at end of file
+packs/sw.js
\ No newline at end of file
diff --git a/public/sw.js.map b/public/sw.js.map
new file mode 120000
index 0000000000..0734c81993
--- /dev/null
+++ b/public/sw.js.map
@@ -0,0 +1 @@
+packs/sw.js.map
\ No newline at end of file
diff --git a/spec/controllers/about_controller_spec.rb b/spec/controllers/about_controller_spec.rb
index 03dddd8c13..97143ec437 100644
--- a/spec/controllers/about_controller_spec.rb
+++ b/spec/controllers/about_controller_spec.rb
@@ -8,44 +8,8 @@ RSpec.describe AboutController, type: :controller do
get :show
end
- it 'assigns @instance_presenter' do
- expect(assigns(:instance_presenter)).to be_kind_of InstancePresenter
- end
-
- it 'returns http success' do
- expect(response).to have_http_status(200)
- end
- end
-
- describe 'GET #more' do
- before do
- get :more
- end
-
- it 'assigns @instance_presenter' do
- expect(assigns(:instance_presenter)).to be_kind_of InstancePresenter
- end
-
it 'returns http success' do
expect(response).to have_http_status(200)
end
end
-
- describe 'GET #terms' do
- before do
- get :terms
- end
-
- it 'returns http success' do
- expect(response).to have_http_status(200)
- end
- end
-
- describe 'helper_method :new_user' do
- it 'returns a new User' do
- user = @controller.view_context.new_user
- expect(user).to be_kind_of User
- expect(user.account).to be_kind_of Account
- end
- end
end
diff --git a/spec/controllers/account_follow_controller_spec.rb b/spec/controllers/account_follow_controller_spec.rb
deleted file mode 100644
index d33cd0499e..0000000000
--- a/spec/controllers/account_follow_controller_spec.rb
+++ /dev/null
@@ -1,64 +0,0 @@
-require 'rails_helper'
-
-describe AccountFollowController do
- render_views
-
- let(:user) { Fabricate(:user) }
- let(:alice) { Fabricate(:account, username: 'alice') }
-
- describe 'POST #create' do
- let(:service) { double }
-
- subject { post :create, params: { account_username: alice.username } }
-
- before do
- allow(FollowService).to receive(:new).and_return(service)
- allow(service).to receive(:call)
- end
-
- context 'when account is permanently suspended' do
- before do
- alice.suspend!
- alice.deletion_request.destroy
- subject
- end
-
- it 'returns http gone' do
- expect(response).to have_http_status(410)
- end
- end
-
- context 'when account is temporarily suspended' do
- before do
- alice.suspend!
- subject
- end
-
- it 'returns http forbidden' do
- expect(response).to have_http_status(403)
- end
- end
-
- context 'when signed out' do
- before do
- subject
- end
-
- it 'does not follow' do
- expect(FollowService).not_to receive(:new)
- end
- end
-
- context 'when signed in' do
- before do
- sign_in(user)
- subject
- end
-
- it 'redirects to account path' do
- expect(service).to have_received(:call).with(user.account, alice, with_rate_limit: true)
- expect(response).to redirect_to(account_path(alice))
- end
- end
- end
-end
diff --git a/spec/controllers/account_unfollow_controller_spec.rb b/spec/controllers/account_unfollow_controller_spec.rb
deleted file mode 100644
index a11f7aa684..0000000000
--- a/spec/controllers/account_unfollow_controller_spec.rb
+++ /dev/null
@@ -1,64 +0,0 @@
-require 'rails_helper'
-
-describe AccountUnfollowController do
- render_views
-
- let(:user) { Fabricate(:user) }
- let(:alice) { Fabricate(:account, username: 'alice') }
-
- describe 'POST #create' do
- let(:service) { double }
-
- subject { post :create, params: { account_username: alice.username } }
-
- before do
- allow(UnfollowService).to receive(:new).and_return(service)
- allow(service).to receive(:call)
- end
-
- context 'when account is permanently suspended' do
- before do
- alice.suspend!
- alice.deletion_request.destroy
- subject
- end
-
- it 'returns http gone' do
- expect(response).to have_http_status(410)
- end
- end
-
- context 'when account is temporarily suspended' do
- before do
- alice.suspend!
- subject
- end
-
- it 'returns http forbidden' do
- expect(response).to have_http_status(403)
- end
- end
-
- context 'when signed out' do
- before do
- subject
- end
-
- it 'does not unfollow' do
- expect(UnfollowService).not_to receive(:new)
- end
- end
-
- context 'when signed in' do
- before do
- sign_in(user)
- subject
- end
-
- it 'redirects to account path' do
- expect(service).to have_received(:call).with(user.account, alice)
- expect(response).to redirect_to(account_path(alice))
- end
- end
- end
-end
diff --git a/spec/controllers/accounts_controller_spec.rb b/spec/controllers/accounts_controller_spec.rb
index 662a89927d..defa8b2d38 100644
--- a/spec/controllers/accounts_controller_spec.rb
+++ b/spec/controllers/accounts_controller_spec.rb
@@ -99,100 +99,6 @@ RSpec.describe AccountsController, type: :controller do
end
it_behaves_like 'common response characteristics'
-
- it 'renders public status' do
- expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status))
- end
-
- it 'renders self-reply' do
- expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_self_reply))
- end
-
- it 'renders status with media' do
- expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_media))
- end
-
- it 'renders reblog' do
- expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog))
- end
-
- it 'renders pinned status' do
- expect(response.body).to include(I18n.t('stream_entries.pinned'))
- end
-
- it 'does not render private status' do
- expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private))
- end
-
- it 'does not render direct status' do
- expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct))
- end
-
- it 'does not render reply to someone else' do
- expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reply))
- end
- end
-
- context 'when signed-in' do
- let(:user) { Fabricate(:user) }
-
- before do
- sign_in(user)
- end
-
- context 'when user follows account' do
- before do
- user.account.follow!(account)
- get :show, params: { username: account.username, format: format }
- end
-
- it 'does not render private status' do
- expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private))
- end
- end
-
- context 'when user is blocked' do
- before do
- account.block!(user.account)
- get :show, params: { username: account.username, format: format }
- end
-
- it 'renders unavailable message' do
- expect(response.body).to include(I18n.t('accounts.unavailable'))
- end
-
- it 'does not render public status' do
- expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status))
- end
-
- it 'does not render self-reply' do
- expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_self_reply))
- end
-
- it 'does not render status with media' do
- expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_media))
- end
-
- it 'does not render reblog' do
- expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog))
- end
-
- it 'does not render pinned status' do
- expect(response.body).to_not include(I18n.t('stream_entries.pinned'))
- end
-
- it 'does not render private status' do
- expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private))
- end
-
- it 'does not render direct status' do
- expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct))
- end
-
- it 'does not render reply to someone else' do
- expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reply))
- end
- end
end
context 'with replies' do
@@ -202,38 +108,6 @@ RSpec.describe AccountsController, type: :controller do
end
it_behaves_like 'common response characteristics'
-
- it 'renders public status' do
- expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status))
- end
-
- it 'renders self-reply' do
- expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_self_reply))
- end
-
- it 'renders status with media' do
- expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_media))
- end
-
- it 'renders reblog' do
- expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog))
- end
-
- it 'does not render pinned status' do
- expect(response.body).to_not include(I18n.t('stream_entries.pinned'))
- end
-
- it 'does not render private status' do
- expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private))
- end
-
- it 'does not render direct status' do
- expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct))
- end
-
- it 'renders reply to someone else' do
- expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_reply))
- end
end
context 'with media' do
@@ -243,38 +117,6 @@ RSpec.describe AccountsController, type: :controller do
end
it_behaves_like 'common response characteristics'
-
- it 'does not render public status' do
- expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status))
- end
-
- it 'does not render self-reply' do
- expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_self_reply))
- end
-
- it 'renders status with media' do
- expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_media))
- end
-
- it 'does not render reblog' do
- expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog))
- end
-
- it 'does not render pinned status' do
- expect(response.body).to_not include(I18n.t('stream_entries.pinned'))
- end
-
- it 'does not render private status' do
- expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private))
- end
-
- it 'does not render direct status' do
- expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct))
- end
-
- it 'does not render reply to someone else' do
- expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reply))
- end
end
context 'with tag' do
@@ -289,42 +131,6 @@ RSpec.describe AccountsController, type: :controller do
end
it_behaves_like 'common response characteristics'
-
- it 'does not render public status' do
- expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status))
- end
-
- it 'does not render self-reply' do
- expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_self_reply))
- end
-
- it 'does not render status with media' do
- expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_media))
- end
-
- it 'does not render reblog' do
- expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reblog.reblog))
- end
-
- it 'does not render pinned status' do
- expect(response.body).to_not include(I18n.t('stream_entries.pinned'))
- end
-
- it 'does not render private status' do
- expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_private))
- end
-
- it 'does not render direct status' do
- expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_direct))
- end
-
- it 'does not render reply to someone else' do
- expect(response.body).to_not include(ActivityPub::TagManager.instance.url_for(status_reply))
- end
-
- it 'renders status with tag' do
- expect(response.body).to include(ActivityPub::TagManager.instance.url_for(status_tag))
- end
end
end
@@ -420,7 +226,7 @@ RSpec.describe AccountsController, type: :controller do
let(:remote_account) { Fabricate(:account, domain: 'example.com') }
before do
- allow(controller).to receive(:signed_request_account).and_return(remote_account)
+ allow(controller).to receive(:signed_request_actor).and_return(remote_account)
get :show, params: { username: account.username, format: format }
end
diff --git a/spec/controllers/activitypub/collections_controller_spec.rb b/spec/controllers/activitypub/collections_controller_spec.rb
index 4d87f80ced..f78d9abbf0 100644
--- a/spec/controllers/activitypub/collections_controller_spec.rb
+++ b/spec/controllers/activitypub/collections_controller_spec.rb
@@ -24,7 +24,7 @@ RSpec.describe ActivityPub::CollectionsController, type: :controller do
end
before do
- allow(controller).to receive(:signed_request_account).and_return(remote_account)
+ allow(controller).to receive(:signed_request_actor).and_return(remote_account)
Fabricate(:status_pin, account: account)
Fabricate(:status_pin, account: account)
diff --git a/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb b/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb
index e233bd5605..c19bb8cae7 100644
--- a/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb
+++ b/spec/controllers/activitypub/followers_synchronizations_controller_spec.rb
@@ -15,7 +15,7 @@ RSpec.describe ActivityPub::FollowersSynchronizationsController, type: :controll
end
before do
- allow(controller).to receive(:signed_request_account).and_return(remote_account)
+ allow(controller).to receive(:signed_request_actor).and_return(remote_account)
end
describe 'GET #show' do
diff --git a/spec/controllers/activitypub/inboxes_controller_spec.rb b/spec/controllers/activitypub/inboxes_controller_spec.rb
index 973ad83bb3..2f023197be 100644
--- a/spec/controllers/activitypub/inboxes_controller_spec.rb
+++ b/spec/controllers/activitypub/inboxes_controller_spec.rb
@@ -6,7 +6,7 @@ RSpec.describe ActivityPub::InboxesController, type: :controller do
let(:remote_account) { nil }
before do
- allow(controller).to receive(:signed_request_account).and_return(remote_account)
+ allow(controller).to receive(:signed_request_actor).and_return(remote_account)
end
describe 'POST #create' do
diff --git a/spec/controllers/activitypub/outboxes_controller_spec.rb b/spec/controllers/activitypub/outboxes_controller_spec.rb
index 04f0364472..74bf46a5eb 100644
--- a/spec/controllers/activitypub/outboxes_controller_spec.rb
+++ b/spec/controllers/activitypub/outboxes_controller_spec.rb
@@ -28,7 +28,7 @@ RSpec.describe ActivityPub::OutboxesController, type: :controller do
end
before do
- allow(controller).to receive(:signed_request_account).and_return(remote_account)
+ allow(controller).to receive(:signed_request_actor).and_return(remote_account)
end
describe 'GET #show' do
diff --git a/spec/controllers/activitypub/replies_controller_spec.rb b/spec/controllers/activitypub/replies_controller_spec.rb
index a35957f24c..aee1a8b1ad 100644
--- a/spec/controllers/activitypub/replies_controller_spec.rb
+++ b/spec/controllers/activitypub/replies_controller_spec.rb
@@ -168,7 +168,7 @@ RSpec.describe ActivityPub::RepliesController, type: :controller do
before do
stub_const 'ActivityPub::RepliesController::DESCENDANTS_LIMIT', 5
- allow(controller).to receive(:signed_request_account).and_return(remote_querier)
+ allow(controller).to receive(:signed_request_actor).and_return(remote_querier)
Fabricate(:status, thread: status, visibility: :public)
Fabricate(:status, thread: status, visibility: :public)
diff --git a/spec/controllers/admin/account_moderation_notes_controller_spec.rb b/spec/controllers/admin/account_moderation_notes_controller_spec.rb
index 410ce6543d..d3f3263f88 100644
--- a/spec/controllers/admin/account_moderation_notes_controller_spec.rb
+++ b/spec/controllers/admin/account_moderation_notes_controller_spec.rb
@@ -3,7 +3,7 @@ require 'rails_helper'
RSpec.describe Admin::AccountModerationNotesController, type: :controller do
render_views
- let(:user) { Fabricate(:user, admin: true) }
+ let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:target_account) { Fabricate(:account) }
before do
diff --git a/spec/controllers/admin/accounts_controller_spec.rb b/spec/controllers/admin/accounts_controller_spec.rb
index 1779fb7c0b..1bd51a0c82 100644
--- a/spec/controllers/admin/accounts_controller_spec.rb
+++ b/spec/controllers/admin/accounts_controller_spec.rb
@@ -6,7 +6,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
before { sign_in current_user, scope: :user }
describe 'GET #index' do
- let(:current_user) { Fabricate(:user, admin: true) }
+ let(:current_user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
around do |example|
default_per_page = Account.default_per_page
@@ -60,7 +60,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
end
describe 'GET #show' do
- let(:current_user) { Fabricate(:user, admin: true) }
+ let(:current_user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:account) { Fabricate(:account) }
it 'returns http success' do
@@ -72,15 +72,15 @@ RSpec.describe Admin::AccountsController, type: :controller do
describe 'POST #memorialize' do
subject { post :memorialize, params: { id: account.id } }
- let(:current_user) { Fabricate(:user, admin: current_user_admin) }
+ let(:current_user) { Fabricate(:user, role: current_role) }
let(:account) { user.account }
- let(:user) { Fabricate(:user, admin: target_user_admin) }
+ let(:user) { Fabricate(:user, role: target_role) }
context 'when user is admin' do
- let(:current_user_admin) { true }
+ let(:current_role) { UserRole.find_by(name: 'Admin') }
context 'when target user is admin' do
- let(:target_user_admin) { true }
+ let(:target_role) { UserRole.find_by(name: 'Admin') }
it 'fails to memorialize account' do
is_expected.to have_http_status :forbidden
@@ -89,7 +89,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
end
context 'when target user is not admin' do
- let(:target_user_admin) { false }
+ let(:target_role) { UserRole.find_by(name: 'Moderator') }
it 'succeeds in memorializing account' do
is_expected.to redirect_to admin_account_path(account.id)
@@ -99,10 +99,10 @@ RSpec.describe Admin::AccountsController, type: :controller do
end
context 'when user is not admin' do
- let(:current_user_admin) { false }
+ let(:current_role) { UserRole.find_by(name: 'Moderator') }
context 'when target user is admin' do
- let(:target_user_admin) { true }
+ let(:target_role) { UserRole.find_by(name: 'Admin') }
it 'fails to memorialize account' do
is_expected.to have_http_status :forbidden
@@ -111,7 +111,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
end
context 'when target user is not admin' do
- let(:target_user_admin) { false }
+ let(:target_role) { UserRole.find_by(name: 'Moderator') }
it 'fails to memorialize account' do
is_expected.to have_http_status :forbidden
@@ -124,12 +124,12 @@ RSpec.describe Admin::AccountsController, type: :controller do
describe 'POST #enable' do
subject { post :enable, params: { id: account.id } }
- let(:current_user) { Fabricate(:user, admin: admin) }
+ let(:current_user) { Fabricate(:user, role: role) }
let(:account) { user.account }
let(:user) { Fabricate(:user, disabled: true) }
context 'when user is admin' do
- let(:admin) { true }
+ let(:role) { UserRole.find_by(name: 'Admin') }
it 'succeeds in enabling account' do
is_expected.to redirect_to admin_account_path(account.id)
@@ -138,7 +138,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
end
context 'when user is not admin' do
- let(:admin) { false }
+ let(:role) { UserRole.everyone }
it 'fails to enable account' do
is_expected.to have_http_status :forbidden
@@ -150,19 +150,23 @@ RSpec.describe Admin::AccountsController, type: :controller do
describe 'POST #redownload' do
subject { post :redownload, params: { id: account.id } }
- let(:current_user) { Fabricate(:user, admin: admin) }
- let(:account) { Fabricate(:account) }
+ let(:current_user) { Fabricate(:user, role: role) }
+ let(:account) { Fabricate(:account, domain: 'example.com') }
+
+ before do
+ allow_any_instance_of(ResolveAccountService).to receive(:call)
+ end
context 'when user is admin' do
- let(:admin) { true }
+ let(:role) { UserRole.find_by(name: 'Admin') }
- it 'succeeds in redownloadin' do
+ it 'succeeds in redownloading' do
is_expected.to redirect_to admin_account_path(account.id)
end
end
context 'when user is not admin' do
- let(:admin) { false }
+ let(:role) { UserRole.everyone }
it 'fails to redownload' do
is_expected.to have_http_status :forbidden
@@ -173,11 +177,11 @@ RSpec.describe Admin::AccountsController, type: :controller do
describe 'POST #remove_avatar' do
subject { post :remove_avatar, params: { id: account.id } }
- let(:current_user) { Fabricate(:user, admin: admin) }
+ let(:current_user) { Fabricate(:user, role: role) }
let(:account) { Fabricate(:account) }
context 'when user is admin' do
- let(:admin) { true }
+ let(:role) { UserRole.find_by(name: 'Admin') }
it 'succeeds in removing avatar' do
is_expected.to redirect_to admin_account_path(account.id)
@@ -185,7 +189,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
end
context 'when user is not admin' do
- let(:admin) { false }
+ let(:role) { UserRole.everyone }
it 'fails to remove avatar' do
is_expected.to have_http_status :forbidden
@@ -196,12 +200,12 @@ RSpec.describe Admin::AccountsController, type: :controller do
describe 'POST #unblock_email' do
subject { post :unblock_email, params: { id: account.id } }
- let(:current_user) { Fabricate(:user, admin: admin) }
+ let(:current_user) { Fabricate(:user, role: role) }
let(:account) { Fabricate(:account, suspended: true) }
let!(:email_block) { Fabricate(:canonical_email_block, reference_account: account) }
context 'when user is admin' do
- let(:admin) { true }
+ let(:role) { UserRole.find_by(name: 'Admin') }
it 'succeeds in removing email blocks' do
expect { subject }.to change { CanonicalEmailBlock.where(reference_account: account).count }.from(1).to(0)
@@ -214,7 +218,7 @@ RSpec.describe Admin::AccountsController, type: :controller do
end
context 'when user is not admin' do
- let(:admin) { false }
+ let(:role) { UserRole.everyone }
it 'fails to remove avatar' do
subject
diff --git a/spec/controllers/admin/action_logs_controller_spec.rb b/spec/controllers/admin/action_logs_controller_spec.rb
index 4720ed2e2b..c1957258fa 100644
--- a/spec/controllers/admin/action_logs_controller_spec.rb
+++ b/spec/controllers/admin/action_logs_controller_spec.rb
@@ -5,7 +5,7 @@ require 'rails_helper'
describe Admin::ActionLogsController, type: :controller do
describe 'GET #index' do
it 'returns 200' do
- sign_in Fabricate(:user, admin: true)
+ sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin'))
get :index, params: { page: 1 }
expect(response).to have_http_status(200)
diff --git a/spec/controllers/admin/base_controller_spec.rb b/spec/controllers/admin/base_controller_spec.rb
index 9ac833623f..44be91951b 100644
--- a/spec/controllers/admin/base_controller_spec.rb
+++ b/spec/controllers/admin/base_controller_spec.rb
@@ -5,13 +5,14 @@ require 'rails_helper'
describe Admin::BaseController, type: :controller do
controller do
def success
+ authorize :dashboard, :index?
render 'admin/reports/show'
end
end
it 'requires administrator or moderator' do
routes.draw { get 'success' => 'admin/base#success' }
- sign_in(Fabricate(:user, admin: false, moderator: false))
+ sign_in(Fabricate(:user))
get :success
expect(response).to have_http_status(:forbidden)
@@ -19,14 +20,14 @@ describe Admin::BaseController, type: :controller do
it 'renders admin layout as a moderator' do
routes.draw { get 'success' => 'admin/base#success' }
- sign_in(Fabricate(:user, moderator: true))
+ sign_in(Fabricate(:user, role: UserRole.find_by(name: 'Moderator')))
get :success
expect(response).to render_template layout: 'admin'
end
it 'renders admin layout as an admin' do
routes.draw { get 'success' => 'admin/base#success' }
- sign_in(Fabricate(:user, admin: true))
+ sign_in(Fabricate(:user, role: UserRole.find_by(name: 'Admin')))
get :success
expect(response).to render_template layout: 'admin'
end
diff --git a/spec/controllers/admin/change_email_controller_spec.rb b/spec/controllers/admin/change_email_controller_spec.rb
index e7f3f7c97d..cf8a27d394 100644
--- a/spec/controllers/admin/change_email_controller_spec.rb
+++ b/spec/controllers/admin/change_email_controller_spec.rb
@@ -3,7 +3,7 @@ require 'rails_helper'
RSpec.describe Admin::ChangeEmailsController, type: :controller do
render_views
- let(:admin) { Fabricate(:user, admin: true) }
+ let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
before do
sign_in admin
diff --git a/spec/controllers/admin/confirmations_controller_spec.rb b/spec/controllers/admin/confirmations_controller_spec.rb
index 5b4f7e925c..6268903c4e 100644
--- a/spec/controllers/admin/confirmations_controller_spec.rb
+++ b/spec/controllers/admin/confirmations_controller_spec.rb
@@ -4,7 +4,7 @@ RSpec.describe Admin::ConfirmationsController, type: :controller do
render_views
before do
- sign_in Fabricate(:user, admin: true), scope: :user
+ sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')), scope: :user
end
describe 'POST #create' do
diff --git a/spec/controllers/admin/custom_emojis_controller_spec.rb b/spec/controllers/admin/custom_emojis_controller_spec.rb
index a8d96948ca..06cd0c22df 100644
--- a/spec/controllers/admin/custom_emojis_controller_spec.rb
+++ b/spec/controllers/admin/custom_emojis_controller_spec.rb
@@ -3,7 +3,7 @@ require 'rails_helper'
describe Admin::CustomEmojisController do
render_views
- let(:user) { Fabricate(:user, admin: true) }
+ let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
before do
sign_in user, scope: :user
diff --git a/spec/controllers/admin/dashboard_controller_spec.rb b/spec/controllers/admin/dashboard_controller_spec.rb
index 7824854f9c..6231a09a24 100644
--- a/spec/controllers/admin/dashboard_controller_spec.rb
+++ b/spec/controllers/admin/dashboard_controller_spec.rb
@@ -12,7 +12,7 @@ describe Admin::DashboardController, type: :controller do
Admin::SystemCheck::Message.new(:rules_check, nil, admin_rules_path),
Admin::SystemCheck::Message.new(:sidekiq_process_check, 'foo, bar'),
])
- sign_in Fabricate(:user, admin: true)
+ sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin'))
end
it 'returns 200' do
diff --git a/spec/controllers/admin/disputes/appeals_controller_spec.rb b/spec/controllers/admin/disputes/appeals_controller_spec.rb
index 6a06f94069..7126577915 100644
--- a/spec/controllers/admin/disputes/appeals_controller_spec.rb
+++ b/spec/controllers/admin/disputes/appeals_controller_spec.rb
@@ -14,7 +14,7 @@ RSpec.describe Admin::Disputes::AppealsController, type: :controller do
end
describe 'POST #approve' do
- let(:current_user) { Fabricate(:user, admin: true) }
+ let(:current_user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
before do
allow(UserMailer).to receive(:appeal_approved).and_return(double('email', deliver_later: nil))
@@ -35,7 +35,7 @@ RSpec.describe Admin::Disputes::AppealsController, type: :controller do
end
describe 'POST #reject' do
- let(:current_user) { Fabricate(:user, admin: true) }
+ let(:current_user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
before do
allow(UserMailer).to receive(:appeal_rejected).and_return(double('email', deliver_later: nil))
diff --git a/spec/controllers/admin/domain_allows_controller_spec.rb b/spec/controllers/admin/domain_allows_controller_spec.rb
index 8bacdd3e40..6c4e677876 100644
--- a/spec/controllers/admin/domain_allows_controller_spec.rb
+++ b/spec/controllers/admin/domain_allows_controller_spec.rb
@@ -4,7 +4,7 @@ RSpec.describe Admin::DomainAllowsController, type: :controller do
render_views
before do
- sign_in Fabricate(:user, admin: true), scope: :user
+ sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')), scope: :user
end
describe 'GET #new' do
diff --git a/spec/controllers/admin/domain_blocks_controller_spec.rb b/spec/controllers/admin/domain_blocks_controller_spec.rb
index a35b2fb3b9..98cda50047 100644
--- a/spec/controllers/admin/domain_blocks_controller_spec.rb
+++ b/spec/controllers/admin/domain_blocks_controller_spec.rb
@@ -4,7 +4,7 @@ RSpec.describe Admin::DomainBlocksController, type: :controller do
render_views
before do
- sign_in Fabricate(:user, admin: true), scope: :user
+ sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')), scope: :user
end
describe 'GET #new' do
diff --git a/spec/controllers/admin/email_domain_blocks_controller_spec.rb b/spec/controllers/admin/email_domain_blocks_controller_spec.rb
index cf194579da..e9cef4a94c 100644
--- a/spec/controllers/admin/email_domain_blocks_controller_spec.rb
+++ b/spec/controllers/admin/email_domain_blocks_controller_spec.rb
@@ -6,7 +6,7 @@ RSpec.describe Admin::EmailDomainBlocksController, type: :controller do
render_views
before do
- sign_in Fabricate(:user, admin: true), scope: :user
+ sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')), scope: :user
end
describe 'GET #index' do
diff --git a/spec/controllers/admin/export_domain_allows_controller_spec.rb b/spec/controllers/admin/export_domain_allows_controller_spec.rb
index f6275c2d65..1e1a5ae7d4 100644
--- a/spec/controllers/admin/export_domain_allows_controller_spec.rb
+++ b/spec/controllers/admin/export_domain_allows_controller_spec.rb
@@ -4,7 +4,7 @@ RSpec.describe Admin::ExportDomainAllowsController, type: :controller do
render_views
before do
- sign_in Fabricate(:user, admin: true), scope: :user
+ sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')), scope: :user
end
describe 'GET #export' do
diff --git a/spec/controllers/admin/export_domain_blocks_controller_spec.rb b/spec/controllers/admin/export_domain_blocks_controller_spec.rb
index 0493df8591..8697e0c215 100644
--- a/spec/controllers/admin/export_domain_blocks_controller_spec.rb
+++ b/spec/controllers/admin/export_domain_blocks_controller_spec.rb
@@ -4,7 +4,7 @@ RSpec.describe Admin::ExportDomainBlocksController, type: :controller do
render_views
before do
- sign_in Fabricate(:user, admin: true), scope: :user
+ sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')), scope: :user
end
describe 'GET #export' do
diff --git a/spec/controllers/admin/instances_controller_spec.rb b/spec/controllers/admin/instances_controller_spec.rb
index 53427b8748..337f7a80c7 100644
--- a/spec/controllers/admin/instances_controller_spec.rb
+++ b/spec/controllers/admin/instances_controller_spec.rb
@@ -3,7 +3,7 @@ require 'rails_helper'
RSpec.describe Admin::InstancesController, type: :controller do
render_views
- let(:current_user) { Fabricate(:user, admin: true) }
+ let(:current_user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let!(:account) { Fabricate(:account, domain: 'popular') }
let!(:account2) { Fabricate(:account, domain: 'popular') }
@@ -35,11 +35,11 @@ RSpec.describe Admin::InstancesController, type: :controller do
describe 'DELETE #destroy' do
subject { delete :destroy, params: { id: Instance.first.id } }
- let(:current_user) { Fabricate(:user, admin: admin) }
+ let(:current_user) { Fabricate(:user, role: role) }
let(:account) { Fabricate(:account) }
context 'when user is admin' do
- let(:admin) { true }
+ let(:role) { UserRole.find_by(name: 'Admin') }
it 'succeeds in purging instance' do
is_expected.to redirect_to admin_instances_path
@@ -47,7 +47,7 @@ RSpec.describe Admin::InstancesController, type: :controller do
end
context 'when user is not admin' do
- let(:admin) { false }
+ let(:role) { nil }
it 'fails to purge instance' do
is_expected.to have_http_status :forbidden
diff --git a/spec/controllers/admin/invites_controller_spec.rb b/spec/controllers/admin/invites_controller_spec.rb
index 449a699e40..1fb4887423 100644
--- a/spec/controllers/admin/invites_controller_spec.rb
+++ b/spec/controllers/admin/invites_controller_spec.rb
@@ -5,7 +5,7 @@ require 'rails_helper'
describe Admin::InvitesController do
render_views
- let(:user) { Fabricate(:user, admin: true) }
+ let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
before do
sign_in user, scope: :user
diff --git a/spec/controllers/admin/report_notes_controller_spec.rb b/spec/controllers/admin/report_notes_controller_spec.rb
index c0013f41ae..fa7572d186 100644
--- a/spec/controllers/admin/report_notes_controller_spec.rb
+++ b/spec/controllers/admin/report_notes_controller_spec.rb
@@ -3,7 +3,7 @@ require 'rails_helper'
describe Admin::ReportNotesController do
render_views
- let(:user) { Fabricate(:user, admin: true) }
+ let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
before do
sign_in user, scope: :user
diff --git a/spec/controllers/admin/reports_controller_spec.rb b/spec/controllers/admin/reports_controller_spec.rb
index d421f0739c..4cd1524bf7 100644
--- a/spec/controllers/admin/reports_controller_spec.rb
+++ b/spec/controllers/admin/reports_controller_spec.rb
@@ -3,7 +3,7 @@ require 'rails_helper'
describe Admin::ReportsController do
render_views
- let(:user) { Fabricate(:user, admin: true) }
+ let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
before do
sign_in user, scope: :user
end
diff --git a/spec/controllers/admin/resets_controller_spec.rb b/spec/controllers/admin/resets_controller_spec.rb
index 28510b5afb..aeb172318b 100644
--- a/spec/controllers/admin/resets_controller_spec.rb
+++ b/spec/controllers/admin/resets_controller_spec.rb
@@ -5,7 +5,7 @@ describe Admin::ResetsController do
let(:account) { Fabricate(:account) }
before do
- sign_in Fabricate(:user, admin: true), scope: :user
+ sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')), scope: :user
end
describe 'POST #create' do
diff --git a/spec/controllers/admin/roles_controller_spec.rb b/spec/controllers/admin/roles_controller_spec.rb
index 8e0de73cbd..8ff8912054 100644
--- a/spec/controllers/admin/roles_controller_spec.rb
+++ b/spec/controllers/admin/roles_controller_spec.rb
@@ -3,31 +3,247 @@ require 'rails_helper'
describe Admin::RolesController do
render_views
- let(:admin) { Fabricate(:user, admin: true) }
+ let(:permissions) { UserRole::Flags::NONE }
+ let(:current_role) { UserRole.create(name: 'Foo', permissions: permissions, position: 10) }
+ let(:current_user) { Fabricate(:user, role: current_role) }
before do
- sign_in admin, scope: :user
+ sign_in current_user, scope: :user
end
- describe 'POST #promote' do
- subject { post :promote, params: { account_id: user.account_id } }
+ describe 'GET #index' do
+ before do
+ get :index
+ end
+
+ context 'when user does not have permission to manage roles' do
+ it 'returns http forbidden' do
+ expect(response).to have_http_status(:forbidden)
+ end
+ end
- let(:user) { Fabricate(:user, moderator: false, admin: false) }
+ context 'when user has permission to manage roles' do
+ let(:permissions) { UserRole::FLAGS[:manage_roles] }
- it 'promotes user' do
- expect(subject).to redirect_to admin_account_path(user.account_id)
- expect(user.reload).to be_moderator
+ it 'returns http success' do
+ expect(response).to have_http_status(:success)
+ end
end
end
- describe 'POST #demote' do
- subject { post :demote, params: { account_id: user.account_id } }
+ describe 'GET #new' do
+ before do
+ get :new
+ end
+
+ context 'when user does not have permission to manage roles' do
+ it 'returns http forbidden' do
+ expect(response).to have_http_status(:forbidden)
+ end
+ end
+
+ context 'when user has permission to manage roles' do
+ let(:permissions) { UserRole::FLAGS[:manage_roles] }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(:success)
+ end
+ end
+ end
+
+ describe 'POST #create' do
+ let(:selected_position) { 1 }
+ let(:selected_permissions_as_keys) { %w(manage_roles) }
+
+ before do
+ post :create, params: { user_role: { name: 'Bar', position: selected_position, permissions_as_keys: selected_permissions_as_keys } }
+ end
+
+ context 'when user has permission to manage roles' do
+ let(:permissions) { UserRole::FLAGS[:manage_roles] }
+
+ context 'when new role\'s does not elevate above the user\'s role' do
+ let(:selected_position) { 1 }
+ let(:selected_permissions_as_keys) { %w(manage_roles) }
+
+ it 'redirects to roles page' do
+ expect(response).to redirect_to(admin_roles_path)
+ end
+
+ it 'creates new role' do
+ expect(UserRole.find_by(name: 'Bar')).to_not be_nil
+ end
+ end
+
+ context 'when new role\'s position is higher than user\'s role' do
+ let(:selected_position) { 100 }
+ let(:selected_permissions_as_keys) { %w(manage_roles) }
+
+ it 'renders new template' do
+ expect(response).to render_template(:new)
+ end
+
+ it 'does not create new role' do
+ expect(UserRole.find_by(name: 'Bar')).to be_nil
+ end
+ end
+
+ context 'when new role has permissions the user does not have' do
+ let(:selected_position) { 1 }
+ let(:selected_permissions_as_keys) { %w(manage_roles manage_users manage_reports) }
+
+ it 'renders new template' do
+ expect(response).to render_template(:new)
+ end
+
+ it 'does not create new role' do
+ expect(UserRole.find_by(name: 'Bar')).to be_nil
+ end
+ end
+
+ context 'when user has administrator permission' do
+ let(:permissions) { UserRole::FLAGS[:administrator] }
+
+ let(:selected_position) { 1 }
+ let(:selected_permissions_as_keys) { %w(manage_roles manage_users manage_reports) }
+
+ it 'redirects to roles page' do
+ expect(response).to redirect_to(admin_roles_path)
+ end
+
+ it 'creates new role' do
+ expect(UserRole.find_by(name: 'Bar')).to_not be_nil
+ end
+ end
+ end
+ end
+
+ describe 'GET #edit' do
+ let(:role_position) { 8 }
+ let(:role) { UserRole.create(name: 'Bar', permissions: UserRole::FLAGS[:manage_users], position: role_position) }
+
+ before do
+ get :edit, params: { id: role.id }
+ end
+
+ context 'when user does not have permission to manage roles' do
+ it 'returns http forbidden' do
+ expect(response).to have_http_status(:forbidden)
+ end
+ end
+
+ context 'when user has permission to manage roles' do
+ let(:permissions) { UserRole::FLAGS[:manage_roles] }
+
+ context 'when user outranks the role' do
+ it 'returns http success' do
+ expect(response).to have_http_status(:success)
+ end
+ end
+
+ context 'when role outranks user' do
+ let(:role_position) { current_role.position + 1 }
+
+ it 'returns http forbidden' do
+ expect(response).to have_http_status(:forbidden)
+ end
+ end
+ end
+ end
+
+ describe 'PUT #update' do
+ let(:role_position) { 8 }
+ let(:role_permissions) { UserRole::FLAGS[:manage_users] }
+ let(:role) { UserRole.create(name: 'Bar', permissions: role_permissions, position: role_position) }
+
+ let(:selected_position) { 8 }
+ let(:selected_permissions_as_keys) { %w(manage_users) }
+
+ before do
+ put :update, params: { id: role.id, user_role: { name: 'Baz', position: selected_position, permissions_as_keys: selected_permissions_as_keys } }
+ end
+
+ context 'when user does not have permission to manage roles' do
+ it 'returns http forbidden' do
+ expect(response).to have_http_status(:forbidden)
+ end
+
+ it 'does not update the role' do
+ expect(role.reload.name).to eq 'Bar'
+ end
+ end
+
+ context 'when user has permission to manage roles' do
+ let(:permissions) { UserRole::FLAGS[:manage_roles] }
+
+ context 'when role has permissions the user doesn\'t' do
+ it 'renders edit template' do
+ expect(response).to render_template(:edit)
+ end
+
+ it 'does not update the role' do
+ expect(role.reload.name).to eq 'Bar'
+ end
+ end
+
+ context 'when user has all permissions of the role' do
+ let(:permissions) { UserRole::FLAGS[:manage_roles] | UserRole::FLAGS[:manage_users] }
+
+ context 'when user outranks the role' do
+ it 'redirects to roles page' do
+ expect(response).to redirect_to(admin_roles_path)
+ end
+
+ it 'updates the role' do
+ expect(role.reload.name).to eq 'Baz'
+ end
+ end
+
+ context 'when role outranks user' do
+ let(:role_position) { current_role.position + 1 }
+
+ it 'returns http forbidden' do
+ expect(response).to have_http_status(:forbidden)
+ end
+
+ it 'does not update the role' do
+ expect(role.reload.name).to eq 'Bar'
+ end
+ end
+ end
+ end
+ end
+
+ describe 'DELETE #destroy' do
+ let(:role_position) { 8 }
+ let(:role) { UserRole.create(name: 'Bar', permissions: UserRole::FLAGS[:manage_users], position: role_position) }
+
+ before do
+ delete :destroy, params: { id: role.id }
+ end
+
+ context 'when user does not have permission to manage roles' do
+ it 'returns http forbidden' do
+ expect(response).to have_http_status(:forbidden)
+ end
+ end
+
+ context 'when user has permission to manage roles' do
+ let(:permissions) { UserRole::FLAGS[:manage_roles] }
+
+ context 'when user outranks the role' do
+ it 'redirects to roles page' do
+ expect(response).to redirect_to(admin_roles_path)
+ end
+ end
- let(:user) { Fabricate(:user, moderator: true, admin: false) }
+ context 'when role outranks user' do
+ let(:role_position) { current_role.position + 1 }
- it 'demotes user' do
- expect(subject).to redirect_to admin_account_path(user.account_id)
- expect(user.reload).not_to be_moderator
+ it 'returns http forbidden' do
+ expect(response).to have_http_status(:forbidden)
+ end
+ end
end
end
end
diff --git a/spec/controllers/admin/settings/branding_controller_spec.rb b/spec/controllers/admin/settings/branding_controller_spec.rb
new file mode 100644
index 0000000000..ee1c441bc5
--- /dev/null
+++ b/spec/controllers/admin/settings/branding_controller_spec.rb
@@ -0,0 +1,53 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+RSpec.describe Admin::Settings::BrandingController, type: :controller do
+ render_views
+
+ describe 'When signed in as an admin' do
+ before do
+ sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')), scope: :user
+ end
+
+ describe 'GET #show' do
+ it 'returns http success' do
+ get :show
+
+ expect(response).to have_http_status(200)
+ end
+ end
+
+ describe 'PUT #update' do
+ before do
+ allow_any_instance_of(Form::AdminSettings).to receive(:valid?).and_return(true)
+ end
+
+ around do |example|
+ before = Setting.site_short_description
+ Setting.site_short_description = nil
+ example.run
+ Setting.site_short_description = before
+ Setting.new_setting_key = nil
+ end
+
+ it 'cannot create a setting value for a non-admin key' do
+ expect(Setting.new_setting_key).to be_blank
+
+ patch :update, params: { form_admin_settings: { new_setting_key: 'New key value' } }
+
+ expect(response).to redirect_to(admin_settings_branding_path)
+ expect(Setting.new_setting_key).to be_nil
+ end
+
+ it 'creates a settings value that didnt exist before for eligible key' do
+ expect(Setting.site_short_description).to be_blank
+
+ patch :update, params: { form_admin_settings: { site_short_description: 'New key value' } }
+
+ expect(response).to redirect_to(admin_settings_branding_path)
+ expect(Setting.site_short_description).to eq 'New key value'
+ end
+ end
+ end
+end
diff --git a/spec/controllers/admin/settings_controller_spec.rb b/spec/controllers/admin/settings_controller_spec.rb
deleted file mode 100644
index 6cf0ee20a6..0000000000
--- a/spec/controllers/admin/settings_controller_spec.rb
+++ /dev/null
@@ -1,71 +0,0 @@
-# frozen_string_literal: true
-
-require 'rails_helper'
-
-RSpec.describe Admin::SettingsController, type: :controller do
- render_views
-
- describe 'When signed in as an admin' do
- before do
- sign_in Fabricate(:user, admin: true), scope: :user
- end
-
- describe 'GET #edit' do
- it 'returns http success' do
- get :edit
-
- expect(response).to have_http_status(200)
- end
- end
-
- describe 'PUT #update' do
- before do
- allow_any_instance_of(Form::AdminSettings).to receive(:valid?).and_return(true)
- end
-
- describe 'for a record that doesnt exist' do
- around do |example|
- before = Setting.site_extended_description
- Setting.site_extended_description = nil
- example.run
- Setting.site_extended_description = before
- Setting.new_setting_key = nil
- end
-
- it 'cannot create a setting value for a non-admin key' do
- expect(Setting.new_setting_key).to be_blank
-
- patch :update, params: { form_admin_settings: { new_setting_key: 'New key value' } }
-
- expect(response).to redirect_to(edit_admin_settings_path)
- expect(Setting.new_setting_key).to be_nil
- end
-
- it 'creates a settings value that didnt exist before for eligible key' do
- expect(Setting.site_extended_description).to be_blank
-
- patch :update, params: { form_admin_settings: { site_extended_description: 'New key value' } }
-
- expect(response).to redirect_to(edit_admin_settings_path)
- expect(Setting.site_extended_description).to eq 'New key value'
- end
- end
-
- context do
- around do |example|
- site_title = Setting.site_title
- example.run
- Setting.site_title = site_title
- end
-
- it 'updates a settings value' do
- Setting.site_title = 'Original'
- patch :update, params: { form_admin_settings: { site_title: 'New title' } }
-
- expect(response).to redirect_to(edit_admin_settings_path)
- expect(Setting.site_title).to eq 'New title'
- end
- end
- end
- end
-end
diff --git a/spec/controllers/admin/statuses_controller_spec.rb b/spec/controllers/admin/statuses_controller_spec.rb
index de32fd18e1..227688e236 100644
--- a/spec/controllers/admin/statuses_controller_spec.rb
+++ b/spec/controllers/admin/statuses_controller_spec.rb
@@ -3,7 +3,7 @@ require 'rails_helper'
describe Admin::StatusesController do
render_views
- let(:user) { Fabricate(:user, admin: true) }
+ let(:user) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:account) { Fabricate(:account) }
let!(:status) { Fabricate(:status, account: account) }
let(:media_attached_status) { Fabricate(:status, account: account, sensitive: !sensitive) }
diff --git a/spec/controllers/admin/tags_controller_spec.rb b/spec/controllers/admin/tags_controller_spec.rb
index 85c801a9c7..52fd09eb10 100644
--- a/spec/controllers/admin/tags_controller_spec.rb
+++ b/spec/controllers/admin/tags_controller_spec.rb
@@ -6,7 +6,7 @@ RSpec.describe Admin::TagsController, type: :controller do
render_views
before do
- sign_in Fabricate(:user, admin: true)
+ sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin'))
end
describe 'GET #show' do
diff --git a/spec/controllers/admin/users/roles_controller.rb b/spec/controllers/admin/users/roles_controller.rb
new file mode 100644
index 0000000000..bd6a3fa673
--- /dev/null
+++ b/spec/controllers/admin/users/roles_controller.rb
@@ -0,0 +1,81 @@
+require 'rails_helper'
+
+describe Admin::Users::RolesController do
+ render_views
+
+ let(:current_role) { UserRole.create(name: 'Foo', permissions: UserRole::FLAGS[:manage_roles], position: 10) }
+ let(:current_user) { Fabricate(:user, role: current_role) }
+
+ let(:previous_role) { nil }
+ let(:user) { Fabricate(:user, role: previous_role) }
+
+ before do
+ sign_in current_user, scope: :user
+ end
+
+ describe 'GET #show' do
+ before do
+ get :show, params: { user_id: user.id }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(:success)
+ end
+
+ context 'when target user is higher ranked than current user' do
+ let(:previous_role) { UserRole.create(name: 'Baz', permissions: UserRole::FLAGS[:administrator], position: 100) }
+
+ it 'returns http forbidden' do
+ expect(response).to have_http_status(:forbidden)
+ end
+ end
+ end
+
+ describe 'PUT #update' do
+ let(:selected_role) { UserRole.create(name: 'Bar', permissions: permissions, position: position) }
+
+ before do
+ put :update, params: { user_id: user.id, user: { role_id: selected_role.id } }
+ end
+
+ context do
+ let(:permissions) { UserRole::FLAGS[:manage_roles] }
+ let(:position) { 1 }
+
+ it 'updates user role' do
+ expect(user.reload.role_id).to eq selected_role&.id
+ end
+
+ it 'redirects back to account page' do
+ expect(response).to redirect_to(admin_account_path(user.account_id))
+ end
+ end
+
+ context 'when selected role has higher position than current user\'s role' do
+ let(:permissions) { UserRole::FLAGS[:administrator] }
+ let(:position) { 100 }
+
+ it 'does not update user role' do
+ expect(user.reload.role_id).to eq previous_role&.id
+ end
+
+ it 'renders edit form' do
+ expect(response).to render_template(:show)
+ end
+ end
+
+ context 'when target user is higher ranked than current user' do
+ let(:previous_role) { UserRole.create(name: 'Baz', permissions: UserRole::FLAGS[:administrator], position: 100) }
+ let(:permissions) { UserRole::FLAGS[:manage_roles] }
+ let(:position) { 1 }
+
+ it 'does not update user role' do
+ expect(user.reload.role_id).to eq previous_role&.id
+ end
+
+ it 'returns http forbidden' do
+ expect(response).to have_http_status(:forbidden)
+ end
+ end
+ end
+end
diff --git a/spec/controllers/admin/two_factor_authentications_controller_spec.rb b/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb
similarity index 90%
rename from spec/controllers/admin/two_factor_authentications_controller_spec.rb
rename to spec/controllers/admin/users/two_factor_authentications_controller_spec.rb
index c650957290..e56264ef62 100644
--- a/spec/controllers/admin/two_factor_authentications_controller_spec.rb
+++ b/spec/controllers/admin/users/two_factor_authentications_controller_spec.rb
@@ -1,12 +1,13 @@
require 'rails_helper'
require 'webauthn/fake_client'
-describe Admin::TwoFactorAuthenticationsController do
+describe Admin::Users::TwoFactorAuthenticationsController do
render_views
let(:user) { Fabricate(:user) }
+
before do
- sign_in Fabricate(:user, admin: true), scope: :user
+ sign_in Fabricate(:user, role: UserRole.find_by(name: 'Admin')), scope: :user
end
describe 'DELETE #destroy' do
diff --git a/spec/controllers/api/v1/accounts_controller_spec.rb b/spec/controllers/api/v1/accounts_controller_spec.rb
index 5d5c245c50..d6bbcefd77 100644
--- a/spec/controllers/api/v1/accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/accounts_controller_spec.rb
@@ -145,6 +145,17 @@ RSpec.describe Api::V1::AccountsController, type: :controller do
expect(json[:showing_reblogs]).to be false
expect(json[:notifying]).to be true
end
+
+ it 'changes languages option' do
+ post :follow, params: { id: other_account.id, languages: %w(en es) }
+
+ json = body_as_json
+
+ expect(json[:following]).to be true
+ expect(json[:showing_reblogs]).to be false
+ expect(json[:notifying]).to be false
+ expect(json[:languages]).to match_array %w(en es)
+ end
end
end
diff --git a/spec/controllers/api/v1/admin/account_actions_controller_spec.rb b/spec/controllers/api/v1/admin/account_actions_controller_spec.rb
index 601290b824..462c2cfa99 100644
--- a/spec/controllers/api/v1/admin/account_actions_controller_spec.rb
+++ b/spec/controllers/api/v1/admin/account_actions_controller_spec.rb
@@ -3,7 +3,7 @@ require 'rails_helper'
RSpec.describe Api::V1::Admin::AccountActionsController, type: :controller do
render_views
- let(:role) { 'moderator' }
+ let(:role) { UserRole.find_by(name: 'Moderator') }
let(:user) { Fabricate(:user, role: role) }
let(:scopes) { 'admin:read admin:write' }
let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
@@ -22,7 +22,7 @@ RSpec.describe Api::V1::Admin::AccountActionsController, type: :controller do
end
shared_examples 'forbidden for wrong role' do |wrong_role|
- let(:role) { wrong_role }
+ let(:role) { UserRole.find_by(name: wrong_role) }
it 'returns http forbidden' do
expect(response).to have_http_status(403)
@@ -30,28 +30,40 @@ RSpec.describe Api::V1::Admin::AccountActionsController, type: :controller do
end
describe 'POST #create' do
- before do
- post :create, params: { account_id: account.id, type: 'disable' }
- end
+ context do
+ before do
+ post :create, params: { account_id: account.id, type: 'disable' }
+ end
- it_behaves_like 'forbidden for wrong scope', 'write:statuses'
- it_behaves_like 'forbidden for wrong role', 'user'
+ it_behaves_like 'forbidden for wrong scope', 'write:statuses'
+ it_behaves_like 'forbidden for wrong role', ''
- it 'returns http success' do
- expect(response).to have_http_status(200)
- end
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'performs action against account' do
+ expect(account.reload.user_disabled?).to be true
+ end
+
+ it 'logs action' do
+ log_item = Admin::ActionLog.last
- it 'performs action against account' do
- expect(account.reload.user_disabled?).to be true
+ expect(log_item).to_not be_nil
+ expect(log_item.action).to eq :disable
+ expect(log_item.account_id).to eq user.account_id
+ expect(log_item.target_id).to eq account.user.id
+ end
end
- it 'logs action' do
- log_item = Admin::ActionLog.last
+ context 'with no type' do
+ before do
+ post :create, params: { account_id: account.id }
+ end
- expect(log_item).to_not be_nil
- expect(log_item.action).to eq :disable
- expect(log_item.account_id).to eq user.account_id
- expect(log_item.target_id).to eq account.user.id
+ it 'returns http unprocessable entity' do
+ expect(response).to have_http_status(422)
+ end
end
end
end
diff --git a/spec/controllers/api/v1/admin/accounts_controller_spec.rb b/spec/controllers/api/v1/admin/accounts_controller_spec.rb
index b69595f7e4..cd38030e0c 100644
--- a/spec/controllers/api/v1/admin/accounts_controller_spec.rb
+++ b/spec/controllers/api/v1/admin/accounts_controller_spec.rb
@@ -3,7 +3,7 @@ require 'rails_helper'
RSpec.describe Api::V1::Admin::AccountsController, type: :controller do
render_views
- let(:role) { 'moderator' }
+ let(:role) { UserRole.find_by(name: 'Moderator') }
let(:user) { Fabricate(:user, role: role) }
let(:scopes) { 'admin:read admin:write' }
let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
@@ -22,7 +22,7 @@ RSpec.describe Api::V1::Admin::AccountsController, type: :controller do
end
shared_examples 'forbidden for wrong role' do |wrong_role|
- let(:role) { wrong_role }
+ let(:role) { UserRole.find_by(name: wrong_role) }
it 'returns http forbidden' do
expect(response).to have_http_status(403)
@@ -46,7 +46,7 @@ RSpec.describe Api::V1::Admin::AccountsController, type: :controller do
end
it_behaves_like 'forbidden for wrong scope', 'write:statuses'
- it_behaves_like 'forbidden for wrong role', 'user'
+ it_behaves_like 'forbidden for wrong role', ''
[
[{ active: 'true', local: 'true', staff: 'true' }, [:admin_account]],
@@ -77,7 +77,7 @@ RSpec.describe Api::V1::Admin::AccountsController, type: :controller do
end
it_behaves_like 'forbidden for wrong scope', 'write:statuses'
- it_behaves_like 'forbidden for wrong role', 'user'
+ it_behaves_like 'forbidden for wrong role', ''
it 'returns http success' do
expect(response).to have_http_status(200)
@@ -91,7 +91,7 @@ RSpec.describe Api::V1::Admin::AccountsController, type: :controller do
end
it_behaves_like 'forbidden for wrong scope', 'write:statuses'
- it_behaves_like 'forbidden for wrong role', 'user'
+ it_behaves_like 'forbidden for wrong role', ''
it 'returns http success' do
expect(response).to have_http_status(200)
@@ -109,7 +109,7 @@ RSpec.describe Api::V1::Admin::AccountsController, type: :controller do
end
it_behaves_like 'forbidden for wrong scope', 'write:statuses'
- it_behaves_like 'forbidden for wrong role', 'user'
+ it_behaves_like 'forbidden for wrong role', ''
it 'returns http success' do
expect(response).to have_http_status(200)
@@ -127,7 +127,7 @@ RSpec.describe Api::V1::Admin::AccountsController, type: :controller do
end
it_behaves_like 'forbidden for wrong scope', 'write:statuses'
- it_behaves_like 'forbidden for wrong role', 'user'
+ it_behaves_like 'forbidden for wrong role', ''
it 'returns http success' do
expect(response).to have_http_status(200)
@@ -145,7 +145,7 @@ RSpec.describe Api::V1::Admin::AccountsController, type: :controller do
end
it_behaves_like 'forbidden for wrong scope', 'write:statuses'
- it_behaves_like 'forbidden for wrong role', 'user'
+ it_behaves_like 'forbidden for wrong role', ''
it 'returns http success' do
expect(response).to have_http_status(200)
@@ -163,7 +163,7 @@ RSpec.describe Api::V1::Admin::AccountsController, type: :controller do
end
it_behaves_like 'forbidden for wrong scope', 'write:statuses'
- it_behaves_like 'forbidden for wrong role', 'user'
+ it_behaves_like 'forbidden for wrong role', ''
it 'returns http success' do
expect(response).to have_http_status(200)
@@ -181,7 +181,7 @@ RSpec.describe Api::V1::Admin::AccountsController, type: :controller do
end
it_behaves_like 'forbidden for wrong scope', 'write:statuses'
- it_behaves_like 'forbidden for wrong role', 'user'
+ it_behaves_like 'forbidden for wrong role', ''
it 'returns http success' do
expect(response).to have_http_status(200)
diff --git a/spec/controllers/api/v1/admin/domain_allows_controller_spec.rb b/spec/controllers/api/v1/admin/domain_allows_controller_spec.rb
new file mode 100644
index 0000000000..26a391a60c
--- /dev/null
+++ b/spec/controllers/api/v1/admin/domain_allows_controller_spec.rb
@@ -0,0 +1,118 @@
+require 'rails_helper'
+
+RSpec.describe Api::V1::Admin::DomainAllowsController, type: :controller do
+ render_views
+
+ let(:role) { UserRole.find_by(name: 'Admin') }
+ let(:user) { Fabricate(:user, role: role) }
+ let(:scopes) { 'admin:read admin:write' }
+ let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
+
+ before do
+ allow(controller).to receive(:doorkeeper_token) { token }
+ end
+
+ shared_examples 'forbidden for wrong scope' do |wrong_scope|
+ let(:scopes) { wrong_scope }
+
+ it 'returns http forbidden' do
+ expect(response).to have_http_status(403)
+ end
+ end
+
+ shared_examples 'forbidden for wrong role' do |wrong_role|
+ let(:role) { UserRole.find_by(name: wrong_role) }
+
+ it 'returns http forbidden' do
+ expect(response).to have_http_status(403)
+ end
+ end
+
+ describe 'GET #index' do
+ let!(:domain_allow) { Fabricate(:domain_allow) }
+
+ before do
+ get :index
+ end
+
+ it_behaves_like 'forbidden for wrong scope', 'write:statuses'
+ it_behaves_like 'forbidden for wrong role', ''
+ it_behaves_like 'forbidden for wrong role', 'Moderator'
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns the expected domain allows' do
+ json = body_as_json
+ expect(json.length).to eq 1
+ expect(json[0][:id].to_i).to eq domain_allow.id
+ end
+ end
+
+ describe 'GET #show' do
+ let!(:domain_allow) { Fabricate(:domain_allow) }
+
+ before do
+ get :show, params: { id: domain_allow.id }
+ end
+
+ it_behaves_like 'forbidden for wrong scope', 'write:statuses'
+ it_behaves_like 'forbidden for wrong role', ''
+ it_behaves_like 'forbidden for wrong role', 'Moderator'
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns expected domain name' do
+ json = body_as_json
+ expect(json[:domain]).to eq domain_allow.domain
+ end
+ end
+
+ describe 'DELETE #destroy' do
+ let!(:domain_allow) { Fabricate(:domain_allow) }
+
+ before do
+ delete :destroy, params: { id: domain_allow.id }
+ end
+
+ it_behaves_like 'forbidden for wrong scope', 'write:statuses'
+ it_behaves_like 'forbidden for wrong role', ''
+ it_behaves_like 'forbidden for wrong role', 'Moderator'
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'deletes the block' do
+ expect(DomainAllow.find_by(id: domain_allow.id)).to be_nil
+ end
+ end
+
+ describe 'POST #create' do
+ let!(:domain_allow) { Fabricate(:domain_allow, domain: 'example.com') }
+
+ before do
+ post :create, params: { domain: 'foo.bar.com' }
+ end
+
+ it_behaves_like 'forbidden for wrong scope', 'write:statuses'
+ it_behaves_like 'forbidden for wrong role', ''
+ it_behaves_like 'forbidden for wrong role', 'Moderator'
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns expected domain name' do
+ json = body_as_json
+ expect(json[:domain]).to eq 'foo.bar.com'
+ end
+
+ it 'creates a domain block' do
+ expect(DomainAllow.find_by(domain: 'foo.bar.com')).to_not be_nil
+ end
+ end
+end
diff --git a/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb b/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb
index 196f6dc28e..f12285b2a6 100644
--- a/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb
+++ b/spec/controllers/api/v1/admin/domain_blocks_controller_spec.rb
@@ -3,7 +3,7 @@ require 'rails_helper'
RSpec.describe Api::V1::Admin::DomainBlocksController, type: :controller do
render_views
- let(:role) { 'admin' }
+ let(:role) { UserRole.find_by(name: 'Admin') }
let(:user) { Fabricate(:user, role: role) }
let(:scopes) { 'admin:read admin:write' }
let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
@@ -21,7 +21,7 @@ RSpec.describe Api::V1::Admin::DomainBlocksController, type: :controller do
end
shared_examples 'forbidden for wrong role' do |wrong_role|
- let(:role) { wrong_role }
+ let(:role) { UserRole.find_by(name: wrong_role) }
it 'returns http forbidden' do
expect(response).to have_http_status(403)
@@ -36,8 +36,8 @@ RSpec.describe Api::V1::Admin::DomainBlocksController, type: :controller do
end
it_behaves_like 'forbidden for wrong scope', 'write:statuses'
- it_behaves_like 'forbidden for wrong role', 'user'
- it_behaves_like 'forbidden for wrong role', 'moderator'
+ it_behaves_like 'forbidden for wrong role', ''
+ it_behaves_like 'forbidden for wrong role', 'Moderator'
it 'returns http success' do
expect(response).to have_http_status(200)
@@ -58,8 +58,8 @@ RSpec.describe Api::V1::Admin::DomainBlocksController, type: :controller do
end
it_behaves_like 'forbidden for wrong scope', 'write:statuses'
- it_behaves_like 'forbidden for wrong role', 'user'
- it_behaves_like 'forbidden for wrong role', 'moderator'
+ it_behaves_like 'forbidden for wrong role', ''
+ it_behaves_like 'forbidden for wrong role', 'Moderator'
it 'returns http success' do
expect(response).to have_http_status(200)
@@ -79,8 +79,8 @@ RSpec.describe Api::V1::Admin::DomainBlocksController, type: :controller do
end
it_behaves_like 'forbidden for wrong scope', 'write:statuses'
- it_behaves_like 'forbidden for wrong role', 'user'
- it_behaves_like 'forbidden for wrong role', 'moderator'
+ it_behaves_like 'forbidden for wrong role', ''
+ it_behaves_like 'forbidden for wrong role', 'Moderator'
it 'returns http success' do
expect(response).to have_http_status(200)
@@ -100,8 +100,8 @@ RSpec.describe Api::V1::Admin::DomainBlocksController, type: :controller do
end
it_behaves_like 'forbidden for wrong scope', 'write:statuses'
- it_behaves_like 'forbidden for wrong role', 'user'
- it_behaves_like 'forbidden for wrong role', 'moderator'
+ it_behaves_like 'forbidden for wrong role', ''
+ it_behaves_like 'forbidden for wrong role', 'Moderator'
it 'returns http success' do
expect(response).to have_http_status(200)
diff --git a/spec/controllers/api/v1/admin/reports_controller_spec.rb b/spec/controllers/api/v1/admin/reports_controller_spec.rb
index b6df53048a..880e72030a 100644
--- a/spec/controllers/api/v1/admin/reports_controller_spec.rb
+++ b/spec/controllers/api/v1/admin/reports_controller_spec.rb
@@ -3,7 +3,7 @@ require 'rails_helper'
RSpec.describe Api::V1::Admin::ReportsController, type: :controller do
render_views
- let(:role) { 'moderator' }
+ let(:role) { UserRole.find_by(name: 'Moderator') }
let(:user) { Fabricate(:user, role: role) }
let(:scopes) { 'admin:read admin:write' }
let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
@@ -22,7 +22,7 @@ RSpec.describe Api::V1::Admin::ReportsController, type: :controller do
end
shared_examples 'forbidden for wrong role' do |wrong_role|
- let(:role) { wrong_role }
+ let(:role) { UserRole.find_by(name: wrong_role) }
it 'returns http forbidden' do
expect(response).to have_http_status(403)
@@ -35,7 +35,7 @@ RSpec.describe Api::V1::Admin::ReportsController, type: :controller do
end
it_behaves_like 'forbidden for wrong scope', 'write:statuses'
- it_behaves_like 'forbidden for wrong role', 'user'
+ it_behaves_like 'forbidden for wrong role', ''
it 'returns http success' do
expect(response).to have_http_status(200)
@@ -48,7 +48,7 @@ RSpec.describe Api::V1::Admin::ReportsController, type: :controller do
end
it_behaves_like 'forbidden for wrong scope', 'write:statuses'
- it_behaves_like 'forbidden for wrong role', 'user'
+ it_behaves_like 'forbidden for wrong role', ''
it 'returns http success' do
expect(response).to have_http_status(200)
@@ -61,7 +61,7 @@ RSpec.describe Api::V1::Admin::ReportsController, type: :controller do
end
it_behaves_like 'forbidden for wrong scope', 'write:statuses'
- it_behaves_like 'forbidden for wrong role', 'user'
+ it_behaves_like 'forbidden for wrong role', ''
it 'returns http success' do
expect(response).to have_http_status(200)
@@ -74,7 +74,7 @@ RSpec.describe Api::V1::Admin::ReportsController, type: :controller do
end
it_behaves_like 'forbidden for wrong scope', 'write:statuses'
- it_behaves_like 'forbidden for wrong role', 'user'
+ it_behaves_like 'forbidden for wrong role', ''
it 'returns http success' do
expect(response).to have_http_status(200)
@@ -87,7 +87,7 @@ RSpec.describe Api::V1::Admin::ReportsController, type: :controller do
end
it_behaves_like 'forbidden for wrong scope', 'write:statuses'
- it_behaves_like 'forbidden for wrong role', 'user'
+ it_behaves_like 'forbidden for wrong role', ''
it 'returns http success' do
expect(response).to have_http_status(200)
@@ -100,7 +100,7 @@ RSpec.describe Api::V1::Admin::ReportsController, type: :controller do
end
it_behaves_like 'forbidden for wrong scope', 'write:statuses'
- it_behaves_like 'forbidden for wrong role', 'user'
+ it_behaves_like 'forbidden for wrong role', ''
it 'returns http success' do
expect(response).to have_http_status(200)
diff --git a/spec/controllers/api/v1/filters/keywords_controller_spec.rb b/spec/controllers/api/v1/filters/keywords_controller_spec.rb
new file mode 100644
index 0000000000..aecb4e41c9
--- /dev/null
+++ b/spec/controllers/api/v1/filters/keywords_controller_spec.rb
@@ -0,0 +1,142 @@
+require 'rails_helper'
+
+RSpec.describe Api::V1::Filters::KeywordsController, type: :controller do
+ render_views
+
+ let(:user) { Fabricate(:user) }
+ let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
+ let(:filter) { Fabricate(:custom_filter, account: user.account) }
+ let(:other_user) { Fabricate(:user) }
+ let(:other_filter) { Fabricate(:custom_filter, account: other_user.account) }
+
+ before do
+ allow(controller).to receive(:doorkeeper_token) { token }
+ end
+
+ describe 'GET #index' do
+ let(:scopes) { 'read:filters' }
+ let!(:keyword) { Fabricate(:custom_filter_keyword, custom_filter: filter) }
+
+ it 'returns http success' do
+ get :index, params: { filter_id: filter.id }
+ expect(response).to have_http_status(200)
+ end
+
+ context "when trying to access another's user filters" do
+ it 'returns http not found' do
+ get :index, params: { filter_id: other_filter.id }
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+
+ describe 'POST #create' do
+ let(:scopes) { 'write:filters' }
+ let(:filter_id) { filter.id }
+
+ before do
+ post :create, params: { filter_id: filter_id, keyword: 'magic', whole_word: false }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns a keyword' do
+ json = body_as_json
+ expect(json[:keyword]).to eq 'magic'
+ expect(json[:whole_word]).to eq false
+ end
+
+ it 'creates a keyword' do
+ filter = user.account.custom_filters.first
+ expect(filter).to_not be_nil
+ expect(filter.keywords.pluck(:keyword)).to eq ['magic']
+ end
+
+ context "when trying to add to another another's user filters" do
+ let(:filter_id) { other_filter.id }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+
+ describe 'GET #show' do
+ let(:scopes) { 'read:filters' }
+ let(:keyword) { Fabricate(:custom_filter_keyword, keyword: 'foo', whole_word: false, custom_filter: filter) }
+
+ before do
+ get :show, params: { id: keyword.id }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns expected data' do
+ json = body_as_json
+ expect(json[:keyword]).to eq 'foo'
+ expect(json[:whole_word]).to eq false
+ end
+
+ context "when trying to access another user's filter keyword" do
+ let(:keyword) { Fabricate(:custom_filter_keyword, custom_filter: other_filter) }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+
+ describe 'PUT #update' do
+ let(:scopes) { 'write:filters' }
+ let(:keyword) { Fabricate(:custom_filter_keyword, custom_filter: filter) }
+
+ before do
+ get :update, params: { id: keyword.id, keyword: 'updated' }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'updates the keyword' do
+ expect(keyword.reload.keyword).to eq 'updated'
+ end
+
+ context "when trying to update another user's filter keyword" do
+ let(:keyword) { Fabricate(:custom_filter_keyword, custom_filter: other_filter) }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+
+ describe 'DELETE #destroy' do
+ let(:scopes) { 'write:filters' }
+ let(:keyword) { Fabricate(:custom_filter_keyword, custom_filter: filter) }
+
+ before do
+ delete :destroy, params: { id: keyword.id }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'removes the filter' do
+ expect { keyword.reload }.to raise_error ActiveRecord::RecordNotFound
+ end
+
+ context "when trying to update another user's filter keyword" do
+ let(:keyword) { Fabricate(:custom_filter_keyword, custom_filter: other_filter) }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+end
diff --git a/spec/controllers/api/v1/filters/statuses_controller_spec.rb b/spec/controllers/api/v1/filters/statuses_controller_spec.rb
new file mode 100644
index 0000000000..3b2399dd89
--- /dev/null
+++ b/spec/controllers/api/v1/filters/statuses_controller_spec.rb
@@ -0,0 +1,116 @@
+require 'rails_helper'
+
+RSpec.describe Api::V1::Filters::StatusesController, type: :controller do
+ render_views
+
+ let(:user) { Fabricate(:user) }
+ let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
+ let(:filter) { Fabricate(:custom_filter, account: user.account) }
+ let(:other_user) { Fabricate(:user) }
+ let(:other_filter) { Fabricate(:custom_filter, account: other_user.account) }
+
+ before do
+ allow(controller).to receive(:doorkeeper_token) { token }
+ end
+
+ describe 'GET #index' do
+ let(:scopes) { 'read:filters' }
+ let!(:status_filter) { Fabricate(:custom_filter_status, custom_filter: filter) }
+
+ it 'returns http success' do
+ get :index, params: { filter_id: filter.id }
+ expect(response).to have_http_status(200)
+ end
+
+ context "when trying to access another's user filters" do
+ it 'returns http not found' do
+ get :index, params: { filter_id: other_filter.id }
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+
+ describe 'POST #create' do
+ let(:scopes) { 'write:filters' }
+ let(:filter_id) { filter.id }
+ let!(:status) { Fabricate(:status) }
+
+ before do
+ post :create, params: { filter_id: filter_id, status_id: status.id }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns a status filter' do
+ json = body_as_json
+ expect(json[:status_id]).to eq status.id.to_s
+ end
+
+ it 'creates a status filter' do
+ filter = user.account.custom_filters.first
+ expect(filter).to_not be_nil
+ expect(filter.statuses.pluck(:status_id)).to eq [status.id]
+ end
+
+ context "when trying to add to another another's user filters" do
+ let(:filter_id) { other_filter.id }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+
+ describe 'GET #show' do
+ let(:scopes) { 'read:filters' }
+ let!(:status_filter) { Fabricate(:custom_filter_status, custom_filter: filter) }
+
+ before do
+ get :show, params: { id: status_filter.id }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns expected data' do
+ json = body_as_json
+ expect(json[:status_id]).to eq status_filter.status_id.to_s
+ end
+
+ context "when trying to access another user's filter keyword" do
+ let(:status_filter) { Fabricate(:custom_filter_status, custom_filter: other_filter) }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+
+ describe 'DELETE #destroy' do
+ let(:scopes) { 'write:filters' }
+ let(:status_filter) { Fabricate(:custom_filter_status, custom_filter: filter) }
+
+ before do
+ delete :destroy, params: { id: status_filter.id }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'removes the filter' do
+ expect { status_filter.reload }.to raise_error ActiveRecord::RecordNotFound
+ end
+
+ context "when trying to update another user's filter keyword" do
+ let(:status_filter) { Fabricate(:custom_filter_status, custom_filter: other_filter) }
+
+ it 'returns http not found' do
+ expect(response).to have_http_status(404)
+ end
+ end
+ end
+end
diff --git a/spec/controllers/api/v1/filters_controller_spec.rb b/spec/controllers/api/v1/filters_controller_spec.rb
index 5948809e3f..af1951f0ba 100644
--- a/spec/controllers/api/v1/filters_controller_spec.rb
+++ b/spec/controllers/api/v1/filters_controller_spec.rb
@@ -34,7 +34,7 @@ RSpec.describe Api::V1::FiltersController, type: :controller do
it 'creates a filter' do
filter = user.account.custom_filters.first
expect(filter).to_not be_nil
- expect(filter.phrase).to eq 'magic'
+ expect(filter.keywords.pluck(:keyword)).to eq ['magic']
expect(filter.context).to eq %w(home)
expect(filter.irreversible?).to be true
expect(filter.expires_at).to be_nil
@@ -42,21 +42,23 @@ RSpec.describe Api::V1::FiltersController, type: :controller do
end
describe 'GET #show' do
- let(:scopes) { 'read:filters' }
- let(:filter) { Fabricate(:custom_filter, account: user.account) }
+ let(:scopes) { 'read:filters' }
+ let(:filter) { Fabricate(:custom_filter, account: user.account) }
+ let(:keyword) { Fabricate(:custom_filter_keyword, custom_filter: filter) }
it 'returns http success' do
- get :show, params: { id: filter.id }
+ get :show, params: { id: keyword.id }
expect(response).to have_http_status(200)
end
end
describe 'PUT #update' do
- let(:scopes) { 'write:filters' }
- let(:filter) { Fabricate(:custom_filter, account: user.account) }
+ let(:scopes) { 'write:filters' }
+ let(:filter) { Fabricate(:custom_filter, account: user.account) }
+ let(:keyword) { Fabricate(:custom_filter_keyword, custom_filter: filter) }
before do
- put :update, params: { id: filter.id, phrase: 'updated' }
+ put :update, params: { id: keyword.id, phrase: 'updated' }
end
it 'returns http success' do
@@ -64,16 +66,17 @@ RSpec.describe Api::V1::FiltersController, type: :controller do
end
it 'updates the filter' do
- expect(filter.reload.phrase).to eq 'updated'
+ expect(keyword.reload.phrase).to eq 'updated'
end
end
describe 'DELETE #destroy' do
- let(:scopes) { 'write:filters' }
- let(:filter) { Fabricate(:custom_filter, account: user.account) }
+ let(:scopes) { 'write:filters' }
+ let(:filter) { Fabricate(:custom_filter, account: user.account) }
+ let(:keyword) { Fabricate(:custom_filter_keyword, custom_filter: filter) }
before do
- delete :destroy, params: { id: filter.id }
+ delete :destroy, params: { id: keyword.id }
end
it 'returns http success' do
@@ -81,7 +84,7 @@ RSpec.describe Api::V1::FiltersController, type: :controller do
end
it 'removes the filter' do
- expect { filter.reload }.to raise_error ActiveRecord::RecordNotFound
+ expect { keyword.reload }.to raise_error ActiveRecord::RecordNotFound
end
end
end
diff --git a/spec/controllers/api/v1/followed_tags_controller_spec.rb b/spec/controllers/api/v1/followed_tags_controller_spec.rb
new file mode 100644
index 0000000000..2191350ef6
--- /dev/null
+++ b/spec/controllers/api/v1/followed_tags_controller_spec.rb
@@ -0,0 +1,23 @@
+require 'rails_helper'
+
+RSpec.describe Api::V1::FollowedTagsController, type: :controller do
+ render_views
+
+ let(:user) { Fabricate(:user) }
+ let(:scopes) { 'read:follows' }
+ let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
+
+ before { allow(controller).to receive(:doorkeeper_token) { token } }
+
+ describe 'GET #index' do
+ let!(:tag_follows) { Fabricate.times(5, :tag_follow, account: user.account) }
+
+ before do
+ get :index, params: { limit: 1 }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(:success)
+ end
+ end
+end
diff --git a/spec/controllers/api/v1/reports_controller_spec.rb b/spec/controllers/api/v1/reports_controller_spec.rb
index b5baf60e11..dbc64e7047 100644
--- a/spec/controllers/api/v1/reports_controller_spec.rb
+++ b/spec/controllers/api/v1/reports_controller_spec.rb
@@ -13,7 +13,7 @@ RSpec.describe Api::V1::ReportsController, type: :controller do
end
describe 'POST #create' do
- let!(:admin) { Fabricate(:user, admin: true) }
+ let!(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:scopes) { 'write:reports' }
let(:status) { Fabricate(:status) }
diff --git a/spec/controllers/api/v1/statuses_controller_spec.rb b/spec/controllers/api/v1/statuses_controller_spec.rb
index 2eb30af74b..24810a5d27 100644
--- a/spec/controllers/api/v1/statuses_controller_spec.rb
+++ b/spec/controllers/api/v1/statuses_controller_spec.rb
@@ -20,6 +20,85 @@ RSpec.describe Api::V1::StatusesController, type: :controller do
get :show, params: { id: status.id }
expect(response).to have_http_status(200)
end
+
+ context 'when post includes filtered terms' do
+ let(:status) { Fabricate(:status, text: 'this toot is about that banned word') }
+
+ before do
+ user.account.custom_filters.create!(phrase: 'filter1', context: %w(home), action: :hide, keywords_attributes: [{ keyword: 'banned' }, { keyword: 'irrelevant' }])
+ end
+
+ it 'returns http success' do
+ get :show, params: { id: status.id }
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns filter information' do
+ get :show, params: { id: status.id }
+ json = body_as_json
+ expect(json[:filtered][0]).to include({
+ filter: a_hash_including({
+ id: user.account.custom_filters.first.id.to_s,
+ title: 'filter1',
+ filter_action: 'hide',
+ }),
+ keyword_matches: ['banned'],
+ })
+ end
+ end
+
+ context 'when post is explicitly filtered' do
+ let(:status) { Fabricate(:status, text: 'hello world') }
+
+ before do
+ filter = user.account.custom_filters.create!(phrase: 'filter1', context: %w(home), action: :hide)
+ filter.statuses.create!(status_id: status.id)
+ end
+
+ it 'returns http success' do
+ get :show, params: { id: status.id }
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns filter information' do
+ get :show, params: { id: status.id }
+ json = body_as_json
+ expect(json[:filtered][0]).to include({
+ filter: a_hash_including({
+ id: user.account.custom_filters.first.id.to_s,
+ title: 'filter1',
+ filter_action: 'hide',
+ }),
+ status_matches: [status.id.to_s],
+ })
+ end
+ end
+
+ context 'when reblog includes filtered terms' do
+ let(:status) { Fabricate(:status, reblog: Fabricate(:status, text: 'this toot is about that banned word')) }
+
+ before do
+ user.account.custom_filters.create!(phrase: 'filter1', context: %w(home), action: :hide, keywords_attributes: [{ keyword: 'banned' }, { keyword: 'irrelevant' }])
+ end
+
+ it 'returns http success' do
+ get :show, params: { id: status.id }
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns filter information' do
+ get :show, params: { id: status.id }
+ json = body_as_json
+ expect(json[:reblog][:filtered][0]).to include({
+ filter: a_hash_including({
+ id: user.account.custom_filters.first.id.to_s,
+ title: 'filter1',
+ filter_action: 'hide',
+ }),
+ keyword_matches: ['banned'],
+ })
+ end
+ end
end
describe 'GET #context' do
diff --git a/spec/controllers/api/v1/tags_controller_spec.rb b/spec/controllers/api/v1/tags_controller_spec.rb
new file mode 100644
index 0000000000..ac42660dfa
--- /dev/null
+++ b/spec/controllers/api/v1/tags_controller_spec.rb
@@ -0,0 +1,82 @@
+require 'rails_helper'
+
+RSpec.describe Api::V1::TagsController, type: :controller do
+ render_views
+
+ let(:user) { Fabricate(:user) }
+ let(:scopes) { 'write:follows' }
+ let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
+
+ before { allow(controller).to receive(:doorkeeper_token) { token } }
+
+ describe 'GET #show' do
+ before do
+ get :show, params: { id: name }
+ end
+
+ context 'with existing tag' do
+ let!(:tag) { Fabricate(:tag) }
+ let(:name) { tag.name }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(:success)
+ end
+ end
+
+ context 'with non-existing tag' do
+ let(:name) { 'hoge' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(:success)
+ end
+ end
+ end
+
+ describe 'POST #follow' do
+ before do
+ post :follow, params: { id: name }
+ end
+
+ context 'with existing tag' do
+ let!(:tag) { Fabricate(:tag) }
+ let(:name) { tag.name }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(:success)
+ end
+
+ it 'creates follow' do
+ expect(TagFollow.where(tag: tag, account: user.account).exists?).to be true
+ end
+ end
+
+ context 'with non-existing tag' do
+ let(:name) { 'hoge' }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(:success)
+ end
+
+ it 'creates follow' do
+ expect(TagFollow.where(tag: Tag.find_by!(name: name), account: user.account).exists?).to be true
+ end
+ end
+ end
+
+ describe 'POST #unfollow' do
+ let!(:tag) { Fabricate(:tag, name: 'foo') }
+ let!(:tag_follow) { Fabricate(:tag_follow, account: user.account, tag: tag) }
+
+ before do
+ post :unfollow, params: { id: tag.name }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(:success)
+ end
+
+ it 'removes the follow' do
+ expect(TagFollow.where(tag: tag, account: user.account).exists?).to be false
+ end
+ end
+end
diff --git a/spec/controllers/api/v2/admin/accounts_controller_spec.rb b/spec/controllers/api/v2/admin/accounts_controller_spec.rb
index 3212ddb844..2508a9e055 100644
--- a/spec/controllers/api/v2/admin/accounts_controller_spec.rb
+++ b/spec/controllers/api/v2/admin/accounts_controller_spec.rb
@@ -3,7 +3,7 @@ require 'rails_helper'
RSpec.describe Api::V2::Admin::AccountsController, type: :controller do
render_views
- let(:role) { 'moderator' }
+ let(:role) { UserRole.find_by(name: 'Moderator') }
let(:user) { Fabricate(:user, role: role) }
let(:scopes) { 'admin:read admin:write' }
let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
@@ -22,7 +22,7 @@ RSpec.describe Api::V2::Admin::AccountsController, type: :controller do
end
shared_examples 'forbidden for wrong role' do |wrong_role|
- let(:role) { wrong_role }
+ let(:role) { UserRole.find_by(name: wrong_role) }
it 'returns http forbidden' do
expect(response).to have_http_status(403)
@@ -46,7 +46,7 @@ RSpec.describe Api::V2::Admin::AccountsController, type: :controller do
end
it_behaves_like 'forbidden for wrong scope', 'write:statuses'
- it_behaves_like 'forbidden for wrong role', 'user'
+ it_behaves_like 'forbidden for wrong role', ''
[
[{ status: 'active', origin: 'local', permissions: 'staff' }, [:admin_account]],
diff --git a/spec/controllers/api/v2/filters_controller_spec.rb b/spec/controllers/api/v2/filters_controller_spec.rb
new file mode 100644
index 0000000000..cc0070d577
--- /dev/null
+++ b/spec/controllers/api/v2/filters_controller_spec.rb
@@ -0,0 +1,121 @@
+require 'rails_helper'
+
+RSpec.describe Api::V2::FiltersController, type: :controller do
+ render_views
+
+ let(:user) { Fabricate(:user) }
+ let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: scopes) }
+
+ before do
+ allow(controller).to receive(:doorkeeper_token) { token }
+ end
+
+ describe 'GET #index' do
+ let(:scopes) { 'read:filters' }
+ let!(:filter) { Fabricate(:custom_filter, account: user.account) }
+
+ it 'returns http success' do
+ get :index
+ expect(response).to have_http_status(200)
+ end
+ end
+
+ describe 'POST #create' do
+ let(:scopes) { 'write:filters' }
+
+ before do
+ post :create, params: { title: 'magic', context: %w(home), filter_action: 'hide', keywords_attributes: [keyword: 'magic'] }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'returns a filter with keywords' do
+ json = body_as_json
+ expect(json[:title]).to eq 'magic'
+ expect(json[:filter_action]).to eq 'hide'
+ expect(json[:context]).to eq ['home']
+ expect(json[:keywords].map { |keyword| keyword.slice(:keyword, :whole_word) }).to eq [{ keyword: 'magic', whole_word: true }]
+ end
+
+ it 'creates a filter' do
+ filter = user.account.custom_filters.first
+ expect(filter).to_not be_nil
+ expect(filter.keywords.pluck(:keyword)).to eq ['magic']
+ expect(filter.context).to eq %w(home)
+ expect(filter.irreversible?).to be true
+ expect(filter.expires_at).to be_nil
+ end
+ end
+
+ describe 'GET #show' do
+ let(:scopes) { 'read:filters' }
+ let(:filter) { Fabricate(:custom_filter, account: user.account) }
+
+ it 'returns http success' do
+ get :show, params: { id: filter.id }
+ expect(response).to have_http_status(200)
+ end
+ end
+
+ describe 'PUT #update' do
+ let(:scopes) { 'write:filters' }
+ let!(:filter) { Fabricate(:custom_filter, account: user.account) }
+ let!(:keyword) { Fabricate(:custom_filter_keyword, custom_filter: filter) }
+
+ context 'updating filter parameters' do
+ before do
+ put :update, params: { id: filter.id, title: 'updated', context: %w(home public) }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'updates the filter title' do
+ expect(filter.reload.title).to eq 'updated'
+ end
+
+ it 'updates the filter context' do
+ expect(filter.reload.context).to eq %w(home public)
+ end
+ end
+
+ context 'updating keywords in bulk' do
+ before do
+ allow(redis).to receive_messages(publish: nil)
+ put :update, params: { id: filter.id, keywords_attributes: [{ id: keyword.id, keyword: 'updated' }] }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'updates the keyword' do
+ expect(keyword.reload.keyword).to eq 'updated'
+ end
+
+ it 'sends exactly one filters_changed event' do
+ expect(redis).to have_received(:publish).with("timeline:#{user.account.id}", Oj.dump(event: :filters_changed)).once
+ end
+ end
+ end
+
+ describe 'DELETE #destroy' do
+ let(:scopes) { 'write:filters' }
+ let(:filter) { Fabricate(:custom_filter, account: user.account) }
+
+ before do
+ delete :destroy, params: { id: filter.id }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ it 'removes the filter' do
+ expect { filter.reload }.to raise_error ActiveRecord::RecordNotFound
+ end
+ end
+end
diff --git a/spec/controllers/api/v2/search_controller_spec.rb b/spec/controllers/api/v2/search_controller_spec.rb
index fa20e1e51f..d417ea58ca 100644
--- a/spec/controllers/api/v2/search_controller_spec.rb
+++ b/spec/controllers/api/v2/search_controller_spec.rb
@@ -5,18 +5,64 @@ require 'rails_helper'
RSpec.describe Api::V2::SearchController, type: :controller do
render_views
- let(:user) { Fabricate(:user) }
- let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read:search') }
+ context 'with token' do
+ let(:user) { Fabricate(:user) }
+ let(:token) { Fabricate(:accessible_access_token, resource_owner_id: user.id, scopes: 'read:search') }
- before do
- allow(controller).to receive(:doorkeeper_token) { token }
+ before do
+ allow(controller).to receive(:doorkeeper_token) { token }
+ end
+
+ describe 'GET #index' do
+ before do
+ get :index, params: { q: 'test' }
+ end
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+ end
end
- describe 'GET #index' do
- it 'returns http success' do
- get :index, params: { q: 'test' }
+ context 'without token' do
+ describe 'GET #index' do
+ let(:search_params) {}
+
+ before do
+ get :index, params: search_params
+ end
+
+ context 'with a `q` shorter than 5 characters' do
+ let(:search_params) { { q: 'test' } }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+ end
+
+ context 'with a `q` equal to or longer than 5 characters' do
+ let(:search_params) { { q: 'test1' } }
+
+ it 'returns http success' do
+ expect(response).to have_http_status(200)
+ end
+
+ context 'with truthy `resolve`' do
+ let(:search_params) { { q: 'test1', resolve: '1' } }
+
+ it 'returns http unauthorized' do
+ expect(response).to have_http_status(401)
+ end
+ end
+
+ context 'with `offset`' do
+ let(:search_params) { { q: 'test1', offset: 1 } }
- expect(response).to have_http_status(200)
+ it 'returns http unauthorized' do
+ expect(response).to have_http_status(401)
+ end
+ end
+ end
end
end
end
diff --git a/spec/controllers/application_controller_spec.rb b/spec/controllers/application_controller_spec.rb
index 851e58d60c..2af12376dc 100644
--- a/spec/controllers/application_controller_spec.rb
+++ b/spec/controllers/application_controller_spec.rb
@@ -187,70 +187,6 @@ describe ApplicationController, type: :controller do
end
end
- describe 'require_admin!' do
- controller do
- before_action :require_admin!
-
- def success
- head 200
- end
- end
-
- before do
- routes.draw { get 'success' => 'anonymous#success' }
- end
-
- it 'returns a 403 if current user is not admin' do
- sign_in(Fabricate(:user, admin: false))
- get 'success'
- expect(response).to have_http_status(403)
- end
-
- it 'returns a 403 if current user is only a moderator' do
- sign_in(Fabricate(:user, moderator: true))
- get 'success'
- expect(response).to have_http_status(403)
- end
-
- it 'does nothing if current user is admin' do
- sign_in(Fabricate(:user, admin: true))
- get 'success'
- expect(response).to have_http_status(200)
- end
- end
-
- describe 'require_staff!' do
- controller do
- before_action :require_staff!
-
- def success
- head 200
- end
- end
-
- before do
- routes.draw { get 'success' => 'anonymous#success' }
- end
-
- it 'returns a 403 if current user is not admin or moderator' do
- sign_in(Fabricate(:user, admin: false, moderator: false))
- get 'success'
- expect(response).to have_http_status(403)
- end
-
- it 'does nothing if current user is moderator' do
- sign_in(Fabricate(:user, moderator: true))
- get 'success'
- expect(response).to have_http_status(200)
- end
-
- it 'does nothing if current user is admin' do
- sign_in(Fabricate(:user, admin: true))
- get 'success'
- expect(response).to have_http_status(200)
- end
- end
-
describe 'forbidden' do
controller do
def route_forbidden
diff --git a/spec/controllers/auth/sessions_controller_spec.rb b/spec/controllers/auth/sessions_controller_spec.rb
index 1b8fd0b7b0..d3db7aa1ab 100644
--- a/spec/controllers/auth/sessions_controller_spec.rb
+++ b/spec/controllers/auth/sessions_controller_spec.rb
@@ -119,6 +119,32 @@ RSpec.describe Auth::SessionsController, type: :controller do
end
end
+ context 'using a valid password on a previously-used account with a new IP address' do
+ let(:previous_ip) { '1.2.3.4' }
+ let(:current_ip) { '4.3.2.1' }
+
+ let!(:previous_login) { Fabricate(:login_activity, user: user, ip: previous_ip) }
+
+ before do
+ allow_any_instance_of(ActionDispatch::Request).to receive(:remote_ip).and_return(current_ip)
+ allow(UserMailer).to receive(:suspicious_sign_in).and_return(double('email', 'deliver_later!': nil))
+ user.update(current_sign_in_at: 1.month.ago)
+ post :create, params: { user: { email: user.email, password: user.password } }
+ end
+
+ it 'redirects to home' do
+ expect(response).to redirect_to(root_path)
+ end
+
+ it 'logs the user in' do
+ expect(controller.current_user).to eq user
+ end
+
+ it 'sends a suspicious sign-in mail' do
+ expect(UserMailer).to have_received(:suspicious_sign_in).with(user, current_ip, anything, anything)
+ end
+ end
+
context 'using email with uppercase letters' do
before do
post :create, params: { user: { email: user.email.upcase, password: user.password } }
diff --git a/spec/controllers/authorize_interactions_controller_spec.rb b/spec/controllers/authorize_interactions_controller_spec.rb
index 99f3f6ffc6..44f52df69f 100644
--- a/spec/controllers/authorize_interactions_controller_spec.rb
+++ b/spec/controllers/authorize_interactions_controller_spec.rb
@@ -39,7 +39,7 @@ describe AuthorizeInteractionsController do
end
it 'sets resource from url' do
- account = Account.new
+ account = Fabricate(:account)
service = double
allow(ResolveURLService).to receive(:new).and_return(service)
allow(service).to receive(:call).with('http://example.com').and_return(account)
@@ -51,7 +51,7 @@ describe AuthorizeInteractionsController do
end
it 'sets resource from acct uri' do
- account = Account.new
+ account = Fabricate(:account)
service = double
allow(ResolveAccountService).to receive(:new).and_return(service)
allow(service).to receive(:call).with('found@hostname').and_return(account)
diff --git a/spec/controllers/concerns/signature_verification_spec.rb b/spec/controllers/concerns/signature_verification_spec.rb
index 05fb1445b1..6e73643b4d 100644
--- a/spec/controllers/concerns/signature_verification_spec.rb
+++ b/spec/controllers/concerns/signature_verification_spec.rb
@@ -3,6 +3,16 @@
require 'rails_helper'
describe ApplicationController, type: :controller do
+ class WrappedActor
+ attr_reader :wrapped_account
+
+ def initialize(wrapped_account)
+ @wrapped_account = wrapped_account
+ end
+
+ delegate :uri, :keypair, to: :wrapped_account
+ end
+
controller do
include SignatureVerification
@@ -73,6 +83,41 @@ describe ApplicationController, type: :controller do
end
end
+ context 'with a valid actor that is not an Account' do
+ let(:actor) { WrappedActor.new(author) }
+
+ before do
+ get :success
+
+ fake_request = Request.new(:get, request.url)
+ fake_request.on_behalf_of(author)
+
+ request.headers.merge!(fake_request.headers)
+
+ allow(ActivityPub::TagManager.instance).to receive(:uri_to_actor).with(anything) do
+ actor
+ end
+ end
+
+ describe '#signed_request?' do
+ it 'returns true' do
+ expect(controller.signed_request?).to be true
+ end
+ end
+
+ describe '#signed_request_account' do
+ it 'returns nil' do
+ expect(controller.signed_request_account).to be_nil
+ end
+ end
+
+ describe '#signed_request_actor' do
+ it 'returns the expected actor' do
+ expect(controller.signed_request_actor).to eq actor
+ end
+ end
+ end
+
context 'with request older than a day' do
before do
get :success
diff --git a/spec/controllers/disputes/appeals_controller_spec.rb b/spec/controllers/disputes/appeals_controller_spec.rb
index faa571fc9e..90f222f494 100644
--- a/spec/controllers/disputes/appeals_controller_spec.rb
+++ b/spec/controllers/disputes/appeals_controller_spec.rb
@@ -5,7 +5,7 @@ RSpec.describe Disputes::AppealsController, type: :controller do
before { sign_in current_user, scope: :user }
- let!(:admin) { Fabricate(:user, admin: true) }
+ let!(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
describe '#create' do
let(:current_user) { Fabricate(:user) }
diff --git a/spec/controllers/follower_accounts_controller_spec.rb b/spec/controllers/follower_accounts_controller_spec.rb
index 4d2a6e01a9..ab2e82e850 100644
--- a/spec/controllers/follower_accounts_controller_spec.rb
+++ b/spec/controllers/follower_accounts_controller_spec.rb
@@ -34,27 +34,6 @@ describe FollowerAccountsController do
expect(response).to have_http_status(403)
end
end
-
- it 'assigns follows' do
- expect(response).to have_http_status(200)
-
- assigned = assigns(:follows).to_a
- expect(assigned.size).to eq 2
- expect(assigned[0]).to eq follow1
- expect(assigned[1]).to eq follow0
- end
-
- it 'does not assign blocked users' do
- user = Fabricate(:user)
- user.account.block!(follower0)
- sign_in(user)
-
- expect(response).to have_http_status(200)
-
- assigned = assigns(:follows).to_a
- expect(assigned.size).to eq 1
- expect(assigned[0]).to eq follow1
- end
end
context 'when format is json' do
diff --git a/spec/controllers/following_accounts_controller_spec.rb b/spec/controllers/following_accounts_controller_spec.rb
index bb6d221cac..e43dbf882b 100644
--- a/spec/controllers/following_accounts_controller_spec.rb
+++ b/spec/controllers/following_accounts_controller_spec.rb
@@ -34,27 +34,6 @@ describe FollowingAccountsController do
expect(response).to have_http_status(403)
end
end
-
- it 'assigns follows' do
- expect(response).to have_http_status(200)
-
- assigned = assigns(:follows).to_a
- expect(assigned.size).to eq 2
- expect(assigned[0]).to eq follow1
- expect(assigned[1]).to eq follow0
- end
-
- it 'does not assign blocked users' do
- user = Fabricate(:user)
- user.account.block!(followee0)
- sign_in(user)
-
- expect(response).to have_http_status(200)
-
- assigned = assigns(:follows).to_a
- expect(assigned.size).to eq 1
- expect(assigned[0]).to eq follow1
- end
end
context 'when format is json' do
diff --git a/spec/controllers/home_controller_spec.rb b/spec/controllers/home_controller_spec.rb
index 70c5c42c5c..d845ae01d7 100644
--- a/spec/controllers/home_controller_spec.rb
+++ b/spec/controllers/home_controller_spec.rb
@@ -7,27 +7,21 @@ RSpec.describe HomeController, type: :controller do
subject { get :index }
context 'when not signed in' do
- context 'when requested path is tag timeline' do
- it 'redirects to the tag\'s permalink' do
- @request.path = '/web/timelines/tag/name'
- is_expected.to redirect_to '/tags/name'
- end
- end
-
- it 'redirects to about page' do
+ it 'returns http success' do
@request.path = '/'
- is_expected.to redirect_to(about_path)
+ is_expected.to have_http_status(:success)
end
end
context 'when signed in' do
let(:user) { Fabricate(:user) }
- before { sign_in(user) }
+ before do
+ sign_in(user)
+ end
- it 'assigns @body_classes' do
- subject
- expect(assigns(:body_classes)).to eq 'app-body'
+ it 'returns http success' do
+ is_expected.to have_http_status(:success)
end
end
end
diff --git a/spec/controllers/invites_controller_spec.rb b/spec/controllers/invites_controller_spec.rb
index 76e617e6b6..23b98fb129 100644
--- a/spec/controllers/invites_controller_spec.rb
+++ b/spec/controllers/invites_controller_spec.rb
@@ -7,30 +7,30 @@ describe InvitesController do
sign_in user
end
- around do |example|
- min_invite_role = Setting.min_invite_role
- example.run
- Setting.min_invite_role = min_invite_role
- end
-
describe 'GET #index' do
subject { get :index }
- let(:user) { Fabricate(:user, moderator: false, admin: false) }
+ let(:user) { Fabricate(:user) }
let!(:invite) { Fabricate(:invite, user: user) }
- context 'when user is a staff' do
+ context 'when everyone can invite' do
+ before do
+ UserRole.everyone.update(permissions: UserRole.everyone.permissions | UserRole::FLAGS[:invite_users])
+ end
+
it 'renders index page' do
- Setting.min_invite_role = 'user'
expect(subject).to render_template :index
expect(assigns(:invites)).to include invite
expect(assigns(:invites).count).to eq 1
end
end
- context 'when user is not a staff' do
+ context 'when not everyone can invite' do
+ before do
+ UserRole.everyone.update(permissions: UserRole.everyone.permissions & ~UserRole::FLAGS[:invite_users])
+ end
+
it 'returns 403' do
- Setting.min_invite_role = 'modelator'
expect(subject).to have_http_status 403
end
end
@@ -39,8 +39,12 @@ describe InvitesController do
describe 'POST #create' do
subject { post :create, params: { invite: { max_uses: '10', expires_in: 1800 } } }
- context 'when user is an admin' do
- let(:user) { Fabricate(:user, moderator: false, admin: true) }
+ context 'when everyone can invite' do
+ let(:user) { Fabricate(:user) }
+
+ before do
+ UserRole.everyone.update(permissions: UserRole.everyone.permissions | UserRole::FLAGS[:invite_users])
+ end
it 'succeeds to create a invite' do
expect { subject }.to change { Invite.count }.by(1)
@@ -49,8 +53,12 @@ describe InvitesController do
end
end
- context 'when user is not an admin' do
- let(:user) { Fabricate(:user, moderator: true, admin: false) }
+ context 'when not everyone can invite' do
+ let(:user) { Fabricate(:user) }
+
+ before do
+ UserRole.everyone.update(permissions: UserRole.everyone.permissions & ~UserRole::FLAGS[:invite_users])
+ end
it 'returns 403' do
expect(subject).to have_http_status 403
@@ -61,8 +69,8 @@ describe InvitesController do
describe 'DELETE #create' do
subject { delete :destroy, params: { id: invite.id } }
+ let(:user) { Fabricate(:user) }
let!(:invite) { Fabricate(:invite, user: user, expires_at: nil) }
- let(:user) { Fabricate(:user, moderator: false, admin: true) }
it 'expires invite' do
expect(subject).to redirect_to invites_path
diff --git a/spec/controllers/remote_follow_controller_spec.rb b/spec/controllers/remote_follow_controller_spec.rb
deleted file mode 100644
index 01d43f48c2..0000000000
--- a/spec/controllers/remote_follow_controller_spec.rb
+++ /dev/null
@@ -1,135 +0,0 @@
-# frozen_string_literal: true
-
-require 'rails_helper'
-
-describe RemoteFollowController do
- render_views
-
- describe '#new' do
- it 'returns success when session is empty' do
- account = Fabricate(:account)
- get :new, params: { account_username: account.to_param }
-
- expect(response).to have_http_status(200)
- expect(response).to render_template(:new)
- expect(assigns(:remote_follow).acct).to be_nil
- end
-
- it 'populates the remote follow with session data when session exists' do
- session[:remote_follow] = 'user@example.com'
- account = Fabricate(:account)
- get :new, params: { account_username: account.to_param }
-
- expect(response).to have_http_status(200)
- expect(response).to render_template(:new)
- expect(assigns(:remote_follow).acct).to eq 'user@example.com'
- end
- end
-
- describe '#create' do
- before do
- @account = Fabricate(:account, username: 'test_user')
- end
-
- context 'with a valid acct' do
- context 'when webfinger values are wrong' do
- it 'renders new when redirect url is nil' do
- resource_with_nil_link = double(link: nil)
- allow_any_instance_of(WebfingerHelper).to receive(:webfinger!).with('acct:user@example.com').and_return(resource_with_nil_link)
- post :create, params: { account_username: @account.to_param, remote_follow: { acct: 'user@example.com' } }
-
- expect(response).to render_template(:new)
- expect(response.body).to include(I18n.t('remote_follow.missing_resource'))
- end
-
- it 'renders new when template is nil' do
- resource_with_link = double(link: nil)
- allow_any_instance_of(WebfingerHelper).to receive(:webfinger!).with('acct:user@example.com').and_return(resource_with_link)
- post :create, params: { account_username: @account.to_param, remote_follow: { acct: 'user@example.com' } }
-
- expect(response).to render_template(:new)
- expect(response.body).to include(I18n.t('remote_follow.missing_resource'))
- end
- end
-
- context 'when webfinger values are good' do
- before do
- resource_with_link = double(link: 'http://example.com/follow_me?acct={uri}')
- allow_any_instance_of(WebfingerHelper).to receive(:webfinger!).with('acct:user@example.com').and_return(resource_with_link)
- post :create, params: { account_username: @account.to_param, remote_follow: { acct: 'user@example.com' } }
- end
-
- it 'saves the session' do
- expect(session[:remote_follow]).to eq 'user@example.com'
- end
-
- it 'redirects to the remote location' do
- expect(response).to redirect_to("http://example.com/follow_me?acct=https%3A%2F%2F#{Rails.configuration.x.local_domain}%2Fusers%2Ftest_user")
- end
- end
- end
-
- context 'with an invalid acct' do
- it 'renders new when acct is missing' do
- post :create, params: { account_username: @account.to_param, remote_follow: { acct: '' } }
-
- expect(response).to render_template(:new)
- end
-
- it 'renders new with error when webfinger fails' do
- allow_any_instance_of(WebfingerHelper).to receive(:webfinger!).with('acct:user@example.com').and_raise(Webfinger::Error)
- post :create, params: { account_username: @account.to_param, remote_follow: { acct: 'user@example.com' } }
-
- expect(response).to render_template(:new)
- expect(response.body).to include(I18n.t('remote_follow.missing_resource'))
- end
-
- it 'renders new when occur HTTP::ConnectionError' do
- allow_any_instance_of(WebfingerHelper).to receive(:webfinger!).with('acct:user@unknown').and_raise(HTTP::ConnectionError)
- post :create, params: { account_username: @account.to_param, remote_follow: { acct: 'user@unknown' } }
-
- expect(response).to render_template(:new)
- expect(response.body).to include(I18n.t('remote_follow.missing_resource'))
- end
- end
- end
-
- context 'with a permanently suspended account' do
- before do
- @account = Fabricate(:account)
- @account.suspend!
- @account.deletion_request.destroy
- end
-
- it 'returns http gone on GET to #new' do
- get :new, params: { account_username: @account.to_param }
-
- expect(response).to have_http_status(410)
- end
-
- it 'returns http gone on POST to #create' do
- post :create, params: { account_username: @account.to_param }
-
- expect(response).to have_http_status(410)
- end
- end
-
- context 'with a temporarily suspended account' do
- before do
- @account = Fabricate(:account)
- @account.suspend!
- end
-
- it 'returns http forbidden on GET to #new' do
- get :new, params: { account_username: @account.to_param }
-
- expect(response).to have_http_status(403)
- end
-
- it 'returns http forbidden on POST to #create' do
- post :create, params: { account_username: @account.to_param }
-
- expect(response).to have_http_status(403)
- end
- end
-end
diff --git a/spec/controllers/remote_interaction_controller_spec.rb b/spec/controllers/remote_interaction_controller_spec.rb
deleted file mode 100644
index bb0074b114..0000000000
--- a/spec/controllers/remote_interaction_controller_spec.rb
+++ /dev/null
@@ -1,39 +0,0 @@
-# frozen_string_literal: true
-
-require 'rails_helper'
-
-describe RemoteInteractionController, type: :controller do
- render_views
-
- let(:status) { Fabricate(:status) }
-
- describe 'GET #new' do
- it 'returns 200' do
- get :new, params: { id: status.id }
- expect(response).to have_http_status(200)
- end
- end
-
- describe 'POST #create' do
- context '@remote_follow is valid' do
- it 'returns 302' do
- allow_any_instance_of(RemoteFollow).to receive(:valid?) { true }
- allow_any_instance_of(RemoteFollow).to receive(:addressable_template) do
- Addressable::Template.new('https://hoge.com')
- end
-
- post :create, params: { id: status.id, remote_follow: { acct: '@hoge' } }
- expect(response).to have_http_status(302)
- end
- end
-
- context '@remote_follow is invalid' do
- it 'returns 200' do
- allow_any_instance_of(RemoteFollow).to receive(:valid?) { false }
- post :create, params: { id: status.id, remote_follow: { acct: '@hoge' } }
-
- expect(response).to have_http_status(200)
- end
- end
- end
-end
diff --git a/spec/controllers/settings/deletes_controller_spec.rb b/spec/controllers/settings/deletes_controller_spec.rb
index cd36ecc35e..a94dc042a5 100644
--- a/spec/controllers/settings/deletes_controller_spec.rb
+++ b/spec/controllers/settings/deletes_controller_spec.rb
@@ -81,20 +81,6 @@ describe Settings::DeletesController do
expect(response).to redirect_to settings_delete_path
end
end
-
- context 'when account deletions are disabled' do
- around do |example|
- open_deletion = Setting.open_deletion
- example.run
- Setting.open_deletion = open_deletion
- end
-
- it 'redirects' do
- Setting.open_deletion = false
- delete :destroy
- expect(response).to redirect_to root_path
- end
- end
end
context 'when not signed in' do
diff --git a/spec/controllers/settings/exports/following_accounts_controller_spec.rb b/spec/controllers/settings/exports/following_accounts_controller_spec.rb
index 78858e7725..bfe0105556 100644
--- a/spec/controllers/settings/exports/following_accounts_controller_spec.rb
+++ b/spec/controllers/settings/exports/following_accounts_controller_spec.rb
@@ -11,7 +11,7 @@ describe Settings::Exports::FollowingAccountsController do
sign_in user, scope: :user
get :index, format: :csv
- expect(response.body).to eq "Account address,Show boosts\nusername@domain,true\n"
+ expect(response.body).to eq "Account address,Show boosts,Notify on new posts,Languages\nusername@domain,true,false,\n"
end
end
end
diff --git a/spec/controllers/statuses_controller_spec.rb b/spec/controllers/statuses_controller_spec.rb
index 05fae67fab..6ed5d4bbb6 100644
--- a/spec/controllers/statuses_controller_spec.rb
+++ b/spec/controllers/statuses_controller_spec.rb
@@ -426,7 +426,7 @@ describe StatusesController do
let(:remote_account) { Fabricate(:account, domain: 'example.com') }
before do
- allow(controller).to receive(:signed_request_account).and_return(remote_account)
+ allow(controller).to receive(:signed_request_actor).and_return(remote_account)
end
context 'when account blocks account' do
diff --git a/spec/controllers/tags_controller_spec.rb b/spec/controllers/tags_controller_spec.rb
index 69def90cf7..547bcfb395 100644
--- a/spec/controllers/tags_controller_spec.rb
+++ b/spec/controllers/tags_controller_spec.rb
@@ -14,17 +14,11 @@ RSpec.describe TagsController, type: :controller do
get :show, params: { id: 'test', max_id: late.id }
expect(response).to have_http_status(200)
end
-
- it 'renders application layout' do
- get :show, params: { id: 'test', max_id: late.id }
- expect(response).to render_template layout: 'public'
- end
end
context 'when tag does not exist' do
- it 'returns http missing for non-existent tag' do
+ it 'returns http not found' do
get :show, params: { id: 'none' }
-
expect(response).to have_http_status(404)
end
end
diff --git a/spec/fabricators/access_grant_fabricator.rb b/spec/fabricators/access_grant_fabricator.rb
new file mode 100644
index 0000000000..ae1945f2bb
--- /dev/null
+++ b/spec/fabricators/access_grant_fabricator.rb
@@ -0,0 +1,6 @@
+Fabricator :access_grant, from: 'Doorkeeper::AccessGrant' do
+ application
+ resource_owner_id { Fabricate(:user).id }
+ expires_in 3_600
+ redirect_uri { Doorkeeper.configuration.native_redirect_uri }
+end
diff --git a/spec/fabricators/account_fabricator.rb b/spec/fabricators/account_fabricator.rb
index f1cce281ca..205706532e 100644
--- a/spec/fabricators/account_fabricator.rb
+++ b/spec/fabricators/account_fabricator.rb
@@ -11,4 +11,5 @@ Fabricator(:account) do
suspended_at { |attrs| attrs[:suspended] ? Time.now.utc : nil }
silenced_at { |attrs| attrs[:silenced] ? Time.now.utc : nil }
user { |attrs| attrs[:domain].nil? ? Fabricate.build(:user, account: nil) : nil }
+ discoverable true
end
diff --git a/spec/fabricators/custom_filter_keyword_fabricator.rb b/spec/fabricators/custom_filter_keyword_fabricator.rb
new file mode 100644
index 0000000000..0f101dcd1a
--- /dev/null
+++ b/spec/fabricators/custom_filter_keyword_fabricator.rb
@@ -0,0 +1,4 @@
+Fabricator(:custom_filter_keyword) do
+ custom_filter
+ keyword 'discourse'
+end
diff --git a/spec/fabricators/custom_filter_status_fabricator.rb b/spec/fabricators/custom_filter_status_fabricator.rb
new file mode 100644
index 0000000000..d082b81c5e
--- /dev/null
+++ b/spec/fabricators/custom_filter_status_fabricator.rb
@@ -0,0 +1,4 @@
+Fabricator(:custom_filter_status) do
+ custom_filter
+ status
+end
diff --git a/spec/fabricators/login_activity_fabricator.rb b/spec/fabricators/login_activity_fabricator.rb
index 931d3082cc..686fd6483d 100644
--- a/spec/fabricators/login_activity_fabricator.rb
+++ b/spec/fabricators/login_activity_fabricator.rb
@@ -1,8 +1,8 @@
Fabricator(:login_activity) do
user
- strategy 'password'
- success true
- failure_reason nil
- ip { Faker::Internet.ip_v4_address }
- user_agent { Faker::Internet.user_agent }
+ authentication_method 'password'
+ success true
+ failure_reason nil
+ ip { Faker::Internet.ip_v4_address }
+ user_agent { Faker::Internet.user_agent }
end
diff --git a/spec/fabricators/preview_card_fabricator.rb b/spec/fabricators/preview_card_fabricator.rb
index f119c117d9..99b5edc435 100644
--- a/spec/fabricators/preview_card_fabricator.rb
+++ b/spec/fabricators/preview_card_fabricator.rb
@@ -3,4 +3,5 @@ Fabricator(:preview_card) do
title { Faker::Lorem.sentence }
description { Faker::Lorem.paragraph }
type 'link'
+ image { attachment_fixture('attachment.jpg') }
end
diff --git a/spec/fabricators/tag_follow_fabricator.rb b/spec/fabricators/tag_follow_fabricator.rb
new file mode 100644
index 0000000000..a2cccb07a8
--- /dev/null
+++ b/spec/fabricators/tag_follow_fabricator.rb
@@ -0,0 +1,4 @@
+Fabricator(:tag_follow) do
+ tag
+ account
+end
diff --git a/spec/fabricators/user_role_fabricator.rb b/spec/fabricators/user_role_fabricator.rb
new file mode 100644
index 0000000000..28f76c8c47
--- /dev/null
+++ b/spec/fabricators/user_role_fabricator.rb
@@ -0,0 +1,5 @@
+Fabricator(:user_role) do
+ name "MyString"
+ color "MyString"
+ permissions ""
+end
\ No newline at end of file
diff --git a/spec/fabricators/webauthn_credential_fabricator.rb b/spec/fabricators/webauthn_credential_fabricator.rb
index 496a7a7351..ba59ce9677 100644
--- a/spec/fabricators/webauthn_credential_fabricator.rb
+++ b/spec/fabricators/webauthn_credential_fabricator.rb
@@ -1,7 +1,7 @@
Fabricator(:webauthn_credential) do
user_id { Fabricate(:user).id }
external_id { Base64.urlsafe_encode64(SecureRandom.random_bytes(16)) }
- public_key { OpenSSL::PKey::EC.new("prime256v1").generate_key.public_key }
+ public_key { OpenSSL::PKey::EC.generate('prime256v1').public_key }
nickname 'USB key'
sign_count 0
end
diff --git a/spec/features/profile_spec.rb b/spec/features/profile_spec.rb
index b6de3e9d15..ec4f9a53fe 100644
--- a/spec/features/profile_spec.rb
+++ b/spec/features/profile_spec.rb
@@ -18,36 +18,16 @@ feature 'Profile' do
visit account_path('alice')
is_expected.to have_title("alice (@alice@#{local_domain})")
-
- within('.public-account-header h1') do
- is_expected.to have_content("alice @alice@#{local_domain}")
- end
-
- bio_elem = first('.public-account-bio')
- expect(bio_elem).to have_content(alice_bio)
- # The bio has hashtags made clickable
- expect(bio_elem).to have_link('cryptology')
- expect(bio_elem).to have_link('science')
- # Nicknames are make clickable
- expect(bio_elem).to have_link('@alice')
- expect(bio_elem).to have_link('@bob')
- # Nicknames not on server are not clickable
- expect(bio_elem).not_to have_link('@pepe')
end
scenario 'I can change my account' do
visit settings_profile_path
+
fill_in 'Display name', with: 'Bob'
fill_in 'Bio', with: 'Bob is silent'
- first('.btn[type=submit]').click
- is_expected.to have_content 'Changes successfully saved!'
- # View my own public profile and see the changes
- click_link "Bob @bob@#{local_domain}"
+ first('button[type=submit]').click
- within('.public-account-header h1') do
- is_expected.to have_content("Bob @bob@#{local_domain}")
- end
- expect(first('.public-account-bio')).to have_content('Bob is silent')
+ is_expected.to have_content 'Changes successfully saved!'
end
end
diff --git a/spec/helpers/admin/action_log_helper_spec.rb b/spec/helpers/admin/action_log_helper_spec.rb
index 60f5ecdcca..9d7ed4ab76 100644
--- a/spec/helpers/admin/action_log_helper_spec.rb
+++ b/spec/helpers/admin/action_log_helper_spec.rb
@@ -3,32 +3,4 @@
require 'rails_helper'
RSpec.describe Admin::ActionLogsHelper, type: :helper do
- klass = Class.new do
- include ActionView::Helpers
- include Admin::ActionLogsHelper
- end
-
- let(:hoge) { klass.new }
-
- describe '#log_target' do
- after do
- hoge.log_target(log)
- end
-
- context 'log.target' do
- let(:log) { double(target: true) }
-
- it 'calls linkable_log_target' do
- expect(hoge).to receive(:linkable_log_target).with(log.target)
- end
- end
-
- context '!log.target' do
- let(:log) { double(target: false, target_type: :type, recorded_changes: :change) }
-
- it 'calls log_target_from_history' do
- expect(hoge).to receive(:log_target_from_history).with(log.target_type, log.recorded_changes)
- end
- end
- end
end
diff --git a/spec/helpers/application_helper_spec.rb b/spec/helpers/application_helper_spec.rb
index b9d38d8c68..20ee32aa0f 100644
--- a/spec/helpers/application_helper_spec.rb
+++ b/spec/helpers/application_helper_spec.rb
@@ -59,13 +59,6 @@ describe ApplicationHelper do
end
end
- describe 'favicon_path' do
- it 'returns /favicon.ico on production environment' do
- expect(Rails.env).to receive(:production?).and_return(true)
- expect(helper.favicon_path).to eq '/favicon.ico'
- end
- end
-
describe 'open_registrations?' do
it 'returns true when open for registrations' do
without_partial_double_verification do
diff --git a/spec/lib/activitypub/activity/announce_spec.rb b/spec/lib/activitypub/activity/announce_spec.rb
index 41806b2582..e9cd6c68c1 100644
--- a/spec/lib/activitypub/activity/announce_spec.rb
+++ b/spec/lib/activitypub/activity/announce_spec.rb
@@ -115,7 +115,7 @@ RSpec.describe ActivityPub::Activity::Announce do
let(:object_json) { 'https://example.com/actor/hello-world' }
- subject { described_class.new(json, sender, relayed_through_account: relay_account) }
+ subject { described_class.new(json, sender, relayed_through_actor: relay_account) }
before do
stub_request(:get, 'https://example.com/actor/hello-world').to_return(body: Oj.dump(unknown_object_json))
diff --git a/spec/lib/activitypub/activity/flag_spec.rb b/spec/lib/activitypub/activity/flag_spec.rb
index ec7359f2fe..2f2d138767 100644
--- a/spec/lib/activitypub/activity/flag_spec.rb
+++ b/spec/lib/activitypub/activity/flag_spec.rb
@@ -1,7 +1,7 @@
require 'rails_helper'
RSpec.describe ActivityPub::Activity::Flag do
- let(:sender) { Fabricate(:account, domain: 'example.com', uri: 'http://example.com/account') }
+ let(:sender) { Fabricate(:account, username: 'example.com', domain: 'example.com', uri: 'http://example.com/actor') }
let(:flagged) { Fabricate(:account) }
let(:status) { Fabricate(:status, account: flagged, uri: 'foobar') }
let(:flag_id) { nil }
@@ -23,16 +23,88 @@ RSpec.describe ActivityPub::Activity::Flag do
describe '#perform' do
subject { described_class.new(json, sender) }
- before do
- subject.perform
+ context 'when the reported status is public' do
+ before do
+ subject.perform
+ end
+
+ it 'creates a report' do
+ report = Report.find_by(account: sender, target_account: flagged)
+
+ expect(report).to_not be_nil
+ expect(report.comment).to eq 'Boo!!'
+ expect(report.status_ids).to eq [status.id]
+ end
end
- it 'creates a report' do
- report = Report.find_by(account: sender, target_account: flagged)
+ context 'when the reported status is private and should not be visible to the remote server' do
+ let(:status) { Fabricate(:status, account: flagged, uri: 'foobar', visibility: :private) }
- expect(report).to_not be_nil
- expect(report.comment).to eq 'Boo!!'
- expect(report.status_ids).to eq [status.id]
+ before do
+ subject.perform
+ end
+
+ it 'creates a report with no attached status' do
+ report = Report.find_by(account: sender, target_account: flagged)
+
+ expect(report).to_not be_nil
+ expect(report.comment).to eq 'Boo!!'
+ expect(report.status_ids).to eq []
+ end
+ end
+
+ context 'when the reported status is private and the author has a follower on the remote instance' do
+ let(:status) { Fabricate(:status, account: flagged, uri: 'foobar', visibility: :private) }
+ let(:follower) { Fabricate(:account, domain: 'example.com', uri: 'http://example.com/users/account') }
+
+ before do
+ follower.follow!(flagged)
+ subject.perform
+ end
+
+ it 'creates a report with the attached status' do
+ report = Report.find_by(account: sender, target_account: flagged)
+
+ expect(report).to_not be_nil
+ expect(report.comment).to eq 'Boo!!'
+ expect(report.status_ids).to eq [status.id]
+ end
+ end
+
+ context 'when the reported status is private and the author mentions someone else on the remote instance' do
+ let(:status) { Fabricate(:status, account: flagged, uri: 'foobar', visibility: :private) }
+ let(:mentioned) { Fabricate(:account, domain: 'example.com', uri: 'http://example.com/users/account') }
+
+ before do
+ status.mentions.create(account: mentioned)
+ subject.perform
+ end
+
+ it 'creates a report with the attached status' do
+ report = Report.find_by(account: sender, target_account: flagged)
+
+ expect(report).to_not be_nil
+ expect(report.comment).to eq 'Boo!!'
+ expect(report.status_ids).to eq [status.id]
+ end
+ end
+
+ context 'when the reported status is private and the author mentions someone else on the local instance' do
+ let(:status) { Fabricate(:status, account: flagged, uri: 'foobar', visibility: :private) }
+ let(:mentioned) { Fabricate(:account) }
+
+ before do
+ status.mentions.create(account: mentioned)
+ subject.perform
+ end
+
+ it 'creates a report with no attached status' do
+ report = Report.find_by(account: sender, target_account: flagged)
+
+ expect(report).to_not be_nil
+ expect(report.comment).to eq 'Boo!!'
+ expect(report.status_ids).to eq []
+ end
end
end
diff --git a/spec/lib/activitypub/dereferencer_spec.rb b/spec/lib/activitypub/dereferencer_spec.rb
index ce30513d76..e50b497c7e 100644
--- a/spec/lib/activitypub/dereferencer_spec.rb
+++ b/spec/lib/activitypub/dereferencer_spec.rb
@@ -4,10 +4,10 @@ RSpec.describe ActivityPub::Dereferencer do
describe '#object' do
let(:object) { { '@context': 'https://www.w3.org/ns/activitystreams', id: 'https://example.com/foo', type: 'Note', content: 'Hoge' } }
let(:permitted_origin) { 'https://example.com' }
- let(:signature_account) { nil }
+ let(:signature_actor) { nil }
let(:uri) { nil }
- subject { described_class.new(uri, permitted_origin: permitted_origin, signature_account: signature_account).object }
+ subject { described_class.new(uri, permitted_origin: permitted_origin, signature_actor: signature_actor).object }
before do
stub_request(:get, 'https://example.com/foo').to_return(body: Oj.dump(object), headers: { 'Content-Type' => 'application/activity+json' })
@@ -21,7 +21,7 @@ RSpec.describe ActivityPub::Dereferencer do
end
context 'with signature account' do
- let(:signature_account) { Fabricate(:account) }
+ let(:signature_actor) { Fabricate(:account) }
it 'makes signed request' do
subject
@@ -52,7 +52,7 @@ RSpec.describe ActivityPub::Dereferencer do
end
context 'with signature account' do
- let(:signature_account) { Fabricate(:account) }
+ let(:signature_actor) { Fabricate(:account) }
it 'makes signed request' do
subject
diff --git a/spec/lib/activitypub/linked_data_signature_spec.rb b/spec/lib/activitypub/linked_data_signature_spec.rb
index 2222c46fb5..d55a7c7fa8 100644
--- a/spec/lib/activitypub/linked_data_signature_spec.rb
+++ b/spec/lib/activitypub/linked_data_signature_spec.rb
@@ -20,7 +20,7 @@ RSpec.describe ActivityPub::LinkedDataSignature do
stub_jsonld_contexts!
end
- describe '#verify_account!' do
+ describe '#verify_actor!' do
context 'when signature matches' do
let(:raw_signature) do
{
@@ -32,7 +32,7 @@ RSpec.describe ActivityPub::LinkedDataSignature do
let(:signature) { raw_signature.merge('type' => 'RsaSignature2017', 'signatureValue' => sign(sender, raw_signature, raw_json)) }
it 'returns creator' do
- expect(subject.verify_account!).to eq sender
+ expect(subject.verify_actor!).to eq sender
end
end
@@ -40,7 +40,7 @@ RSpec.describe ActivityPub::LinkedDataSignature do
let(:signature) { nil }
it 'returns nil' do
- expect(subject.verify_account!).to be_nil
+ expect(subject.verify_actor!).to be_nil
end
end
@@ -55,7 +55,7 @@ RSpec.describe ActivityPub::LinkedDataSignature do
let(:signature) { raw_signature.merge('type' => 'RsaSignature2017', 'signatureValue' => 's69F3mfddd99dGjmvjdjjs81e12jn121Gkm1') }
it 'returns nil' do
- expect(subject.verify_account!).to be_nil
+ expect(subject.verify_actor!).to be_nil
end
end
end
@@ -73,14 +73,14 @@ RSpec.describe ActivityPub::LinkedDataSignature do
end
it 'can be verified again' do
- expect(described_class.new(subject).verify_account!).to eq sender
+ expect(described_class.new(subject).verify_actor!).to eq sender
end
end
- def sign(from_account, options, document)
+ def sign(from_actor, options, document)
options_hash = Digest::SHA256.hexdigest(canonicalize(options.merge('@context' => ActivityPub::LinkedDataSignature::CONTEXT)))
document_hash = Digest::SHA256.hexdigest(canonicalize(document))
to_be_verified = options_hash + document_hash
- Base64.strict_encode64(from_account.keypair.sign(OpenSSL::Digest.new('SHA256'), to_be_verified))
+ Base64.strict_encode64(from_actor.keypair.sign(OpenSSL::Digest.new('SHA256'), to_be_verified))
end
end
diff --git a/spec/lib/feed_manager_spec.rb b/spec/lib/feed_manager_spec.rb
index 1b04916a17..2b11ddf70c 100644
--- a/spec/lib/feed_manager_spec.rb
+++ b/spec/lib/feed_manager_spec.rb
@@ -135,36 +135,16 @@ RSpec.describe FeedManager do
expect(FeedManager.instance.filter?(:home, reblog, alice)).to be true
end
- context 'for irreversibly muted phrases' do
- it 'considers word boundaries when matching' do
- alice.custom_filters.create!(phrase: 'bob', context: %w(home), irreversible: true)
- alice.follow!(jeff)
- status = Fabricate(:status, text: 'bobcats', account: jeff)
- expect(FeedManager.instance.filter?(:home, status, alice)).to be_falsy
- end
-
- it 'returns true if phrase is contained' do
- alice.custom_filters.create!(phrase: 'farts', context: %w(home public), irreversible: true)
- alice.custom_filters.create!(phrase: 'pop tarts', context: %w(home), irreversible: true)
- alice.follow!(jeff)
- status = Fabricate(:status, text: 'i sure like POP TARts', account: jeff)
- expect(FeedManager.instance.filter?(:home, status, alice)).to be true
- end
-
- it 'matches substrings if whole_word is false' do
- alice.custom_filters.create!(phrase: 'take', context: %w(home), whole_word: false, irreversible: true)
- alice.follow!(jeff)
- status = Fabricate(:status, text: 'shiitake', account: jeff)
- expect(FeedManager.instance.filter?(:home, status, alice)).to be true
- end
+ it 'returns true for German post when follow is set to English only' do
+ alice.follow!(bob, languages: %w(en))
+ status = Fabricate(:status, text: 'Hallo Welt', account: bob, language: 'de')
+ expect(FeedManager.instance.filter?(:home, status, alice)).to be true
+ end
- it 'returns true if phrase is contained in a poll option' do
- alice.custom_filters.create!(phrase: 'farts', context: %w(home public), irreversible: true)
- alice.custom_filters.create!(phrase: 'pop tarts', context: %w(home), irreversible: true)
- alice.follow!(jeff)
- status = Fabricate(:status, text: 'what do you prefer', poll: Fabricate(:poll, options: %w(farts POP TARts)), account: jeff)
- expect(FeedManager.instance.filter?(:home, status, alice)).to be true
- end
+ it 'returns false for German post when follow is set to German' do
+ alice.follow!(bob, languages: %w(de))
+ status = Fabricate(:status, text: 'Hallo Welt', account: bob, language: 'de')
+ expect(FeedManager.instance.filter?(:home, status, alice)).to be false
end
end
diff --git a/spec/lib/hashtag_normalizer_spec.rb b/spec/lib/hashtag_normalizer_spec.rb
new file mode 100644
index 0000000000..fbb9f37c07
--- /dev/null
+++ b/spec/lib/hashtag_normalizer_spec.rb
@@ -0,0 +1,29 @@
+# frozen_string_literal: true
+
+require 'rails_helper'
+
+describe HashtagNormalizer do
+ subject { described_class.new }
+
+ describe '#normalize' do
+ it 'converts full-width Latin characters into basic Latin characters' do
+ expect(subject.normalize('Synthwave')).to eq 'synthwave'
+ end
+
+ it 'converts half-width Katakana into Kana characters' do
+ expect(subject.normalize('シーサイドライナー')).to eq 'シーサイドライナー'
+ end
+
+ it 'converts modified Latin characters into basic Latin characters' do
+ expect(subject.normalize('BLÅHAJ')).to eq 'blahaj'
+ end
+
+ it 'strips out invalid characters' do
+ expect(subject.normalize('#foo')).to eq 'foo'
+ end
+
+ it 'keeps valid characters' do
+ expect(subject.normalize('a·b')).to eq 'a·b'
+ end
+ end
+end
diff --git a/spec/lib/permalink_redirector_spec.rb b/spec/lib/permalink_redirector_spec.rb
index b916b33b22..a009136561 100644
--- a/spec/lib/permalink_redirector_spec.rb
+++ b/spec/lib/permalink_redirector_spec.rb
@@ -3,40 +3,31 @@
require 'rails_helper'
describe PermalinkRedirector do
+ let(:remote_account) { Fabricate(:account, username: 'alice', domain: 'example.com', url: 'https://example.com/@alice', id: 2) }
+
describe '#redirect_url' do
before do
- account = Fabricate(:account, username: 'alice', id: 1)
- Fabricate(:status, account: account, id: 123)
+ Fabricate(:status, account: remote_account, id: 123, url: 'https://example.com/status-123')
end
it 'returns path for legacy account links' do
- redirector = described_class.new('web/accounts/1')
- expect(redirector.redirect_path).to eq 'https://cb6e6126.ngrok.io/@alice'
+ redirector = described_class.new('accounts/2')
+ expect(redirector.redirect_path).to eq 'https://example.com/@alice'
end
it 'returns path for legacy status links' do
- redirector = described_class.new('web/statuses/123')
- expect(redirector.redirect_path).to eq 'https://cb6e6126.ngrok.io/@alice/123'
- end
-
- it 'returns path for legacy tag links' do
- redirector = described_class.new('web/timelines/tag/hoge')
- expect(redirector.redirect_path).to eq '/tags/hoge'
+ redirector = described_class.new('statuses/123')
+ expect(redirector.redirect_path).to eq 'https://example.com/status-123'
end
it 'returns path for pretty account links' do
- redirector = described_class.new('web/@alice')
- expect(redirector.redirect_path).to eq 'https://cb6e6126.ngrok.io/@alice'
+ redirector = described_class.new('@alice@example.com')
+ expect(redirector.redirect_path).to eq 'https://example.com/@alice'
end
it 'returns path for pretty status links' do
- redirector = described_class.new('web/@alice/123')
- expect(redirector.redirect_path).to eq 'https://cb6e6126.ngrok.io/@alice/123'
- end
-
- it 'returns path for pretty tag links' do
- redirector = described_class.new('web/tags/hoge')
- expect(redirector.redirect_path).to eq '/tags/hoge'
+ redirector = described_class.new('@alice/123')
+ expect(redirector.redirect_path).to eq 'https://example.com/status-123'
end
end
end
diff --git a/spec/lib/request_spec.rb b/spec/lib/request_spec.rb
index 2d300f18d6..5eccf32014 100644
--- a/spec/lib/request_spec.rb
+++ b/spec/lib/request_spec.rb
@@ -63,7 +63,7 @@ describe Request do
expect(a_request(:get, 'http://example.com').with(headers: subject.headers)).to have_been_made
end
- it 'closes underlaying connection' do
+ it 'closes underlying connection' do
expect_any_instance_of(HTTP::Client).to receive(:close)
expect { |block| subject.perform &block }.to yield_control
end
diff --git a/spec/lib/vacuum/access_tokens_vacuum_spec.rb b/spec/lib/vacuum/access_tokens_vacuum_spec.rb
new file mode 100644
index 0000000000..0244c34492
--- /dev/null
+++ b/spec/lib/vacuum/access_tokens_vacuum_spec.rb
@@ -0,0 +1,33 @@
+require 'rails_helper'
+
+RSpec.describe Vacuum::AccessTokensVacuum do
+ subject { described_class.new }
+
+ describe '#perform' do
+ let!(:revoked_access_token) { Fabricate(:access_token, revoked_at: 1.minute.ago) }
+ let!(:active_access_token) { Fabricate(:access_token) }
+
+ let!(:revoked_access_grant) { Fabricate(:access_grant, revoked_at: 1.minute.ago) }
+ let!(:active_access_grant) { Fabricate(:access_grant) }
+
+ before do
+ subject.perform
+ end
+
+ it 'deletes revoked access tokens' do
+ expect { revoked_access_token.reload }.to raise_error ActiveRecord::RecordNotFound
+ end
+
+ it 'deletes revoked access grants' do
+ expect { revoked_access_grant.reload }.to raise_error ActiveRecord::RecordNotFound
+ end
+
+ it 'does not delete active access tokens' do
+ expect { active_access_token.reload }.to_not raise_error
+ end
+
+ it 'does not delete active access grants' do
+ expect { active_access_grant.reload }.to_not raise_error
+ end
+ end
+end
diff --git a/spec/lib/vacuum/backups_vacuum_spec.rb b/spec/lib/vacuum/backups_vacuum_spec.rb
new file mode 100644
index 0000000000..4e2de083f8
--- /dev/null
+++ b/spec/lib/vacuum/backups_vacuum_spec.rb
@@ -0,0 +1,24 @@
+require 'rails_helper'
+
+RSpec.describe Vacuum::BackupsVacuum do
+ let(:retention_period) { 7.days }
+
+ subject { described_class.new(retention_period) }
+
+ describe '#perform' do
+ let!(:expired_backup) { Fabricate(:backup, created_at: (retention_period + 1.day).ago) }
+ let!(:current_backup) { Fabricate(:backup) }
+
+ before do
+ subject.perform
+ end
+
+ it 'deletes backups past the retention period' do
+ expect { expired_backup.reload }.to raise_error ActiveRecord::RecordNotFound
+ end
+
+ it 'does not delete backups within the retention period' do
+ expect { current_backup.reload }.to_not raise_error
+ end
+ end
+end
diff --git a/spec/lib/vacuum/feeds_vacuum_spec.rb b/spec/lib/vacuum/feeds_vacuum_spec.rb
new file mode 100644
index 0000000000..0aec26740f
--- /dev/null
+++ b/spec/lib/vacuum/feeds_vacuum_spec.rb
@@ -0,0 +1,30 @@
+require 'rails_helper'
+
+RSpec.describe Vacuum::FeedsVacuum do
+ subject { described_class.new }
+
+ describe '#perform' do
+ let!(:active_user) { Fabricate(:user, current_sign_in_at: 2.days.ago) }
+ let!(:inactive_user) { Fabricate(:user, current_sign_in_at: 22.days.ago) }
+
+ before do
+ redis.zadd(feed_key_for(inactive_user), 1, 1)
+ redis.zadd(feed_key_for(active_user), 1, 1)
+ redis.zadd(feed_key_for(inactive_user, 'reblogs'), 2, 2)
+ redis.sadd(feed_key_for(inactive_user, 'reblogs:2'), 3)
+
+ subject.perform
+ end
+
+ it 'clears feeds of inactive users and lists' do
+ expect(redis.zcard(feed_key_for(inactive_user))).to eq 0
+ expect(redis.zcard(feed_key_for(active_user))).to eq 1
+ expect(redis.exists?(feed_key_for(inactive_user, 'reblogs'))).to be false
+ expect(redis.exists?(feed_key_for(inactive_user, 'reblogs:2'))).to be false
+ end
+ end
+
+ def feed_key_for(user, subtype = nil)
+ FeedManager.instance.key(:home, user.account_id, subtype)
+ end
+end
diff --git a/spec/lib/vacuum/media_attachments_vacuum_spec.rb b/spec/lib/vacuum/media_attachments_vacuum_spec.rb
new file mode 100644
index 0000000000..be8458d9bf
--- /dev/null
+++ b/spec/lib/vacuum/media_attachments_vacuum_spec.rb
@@ -0,0 +1,47 @@
+require 'rails_helper'
+
+RSpec.describe Vacuum::MediaAttachmentsVacuum do
+ let(:retention_period) { 7.days }
+
+ subject { described_class.new(retention_period) }
+
+ let(:remote_status) { Fabricate(:status, account: Fabricate(:account, domain: 'example.com')) }
+ let(:local_status) { Fabricate(:status) }
+
+ describe '#perform' do
+ let!(:old_remote_media) { Fabricate(:media_attachment, remote_url: 'https://example.com/foo.png', status: remote_status, created_at: (retention_period + 1.day).ago, updated_at: (retention_period + 1.day).ago) }
+ let!(:old_local_media) { Fabricate(:media_attachment, status: local_status, created_at: (retention_period + 1.day).ago, updated_at: (retention_period + 1.day).ago) }
+ let!(:new_remote_media) { Fabricate(:media_attachment, remote_url: 'https://example.com/foo.png', status: remote_status) }
+ let!(:new_local_media) { Fabricate(:media_attachment, status: local_status) }
+ let!(:old_unattached_media) { Fabricate(:media_attachment, account_id: nil, created_at: 10.days.ago) }
+ let!(:new_unattached_media) { Fabricate(:media_attachment, account_id: nil, created_at: 1.hour.ago) }
+
+ before do
+ subject.perform
+ end
+
+ it 'deletes cache of remote media attachments past the retention period' do
+ expect(old_remote_media.reload.file).to be_blank
+ end
+
+ it 'does not touch local media attachments past the retention period' do
+ expect(old_local_media.reload.file).to_not be_blank
+ end
+
+ it 'does not delete cache of remote media attachments within the retention period' do
+ expect(new_remote_media.reload.file).to_not be_blank
+ end
+
+ it 'does not touch local media attachments within the retention period' do
+ expect(new_local_media.reload.file).to_not be_blank
+ end
+
+ it 'deletes unattached media attachments past TTL' do
+ expect { old_unattached_media.reload }.to raise_error(ActiveRecord::RecordNotFound)
+ end
+
+ it 'does not delete unattached media attachments within TTL' do
+ expect(new_unattached_media.reload).to be_persisted
+ end
+ end
+end
diff --git a/spec/lib/vacuum/preview_cards_vacuum_spec.rb b/spec/lib/vacuum/preview_cards_vacuum_spec.rb
new file mode 100644
index 0000000000..275f9ba92f
--- /dev/null
+++ b/spec/lib/vacuum/preview_cards_vacuum_spec.rb
@@ -0,0 +1,32 @@
+require 'rails_helper'
+
+RSpec.describe Vacuum::PreviewCardsVacuum do
+ let(:retention_period) { 7.days }
+
+ subject { described_class.new(retention_period) }
+
+ describe '#perform' do
+ let!(:orphaned_preview_card) { Fabricate(:preview_card, created_at: 2.days.ago) }
+ let!(:old_preview_card) { Fabricate(:preview_card, updated_at: (retention_period + 1.day).ago) }
+ let!(:new_preview_card) { Fabricate(:preview_card) }
+
+ before do
+ old_preview_card.statuses << Fabricate(:status)
+ new_preview_card.statuses << Fabricate(:status)
+
+ subject.perform
+ end
+
+ it 'deletes cache of preview cards last updated before the retention period' do
+ expect(old_preview_card.reload.image).to be_blank
+ end
+
+ it 'does not delete cache of preview cards last updated within the retention period' do
+ expect(new_preview_card.reload.image).to_not be_blank
+ end
+
+ it 'does not delete attached preview cards' do
+ expect(new_preview_card.reload).to be_persisted
+ end
+ end
+end
diff --git a/spec/lib/vacuum/statuses_vacuum_spec.rb b/spec/lib/vacuum/statuses_vacuum_spec.rb
new file mode 100644
index 0000000000..83f3c5c9f1
--- /dev/null
+++ b/spec/lib/vacuum/statuses_vacuum_spec.rb
@@ -0,0 +1,36 @@
+require 'rails_helper'
+
+RSpec.describe Vacuum::StatusesVacuum do
+ let(:retention_period) { 7.days }
+
+ let(:remote_account) { Fabricate(:account, domain: 'example.com') }
+
+ subject { described_class.new(retention_period) }
+
+ describe '#perform' do
+ let!(:remote_status_old) { Fabricate(:status, account: remote_account, created_at: (retention_period + 2.days).ago) }
+ let!(:remote_status_recent) { Fabricate(:status, account: remote_account, created_at: (retention_period - 2.days).ago) }
+ let!(:local_status_old) { Fabricate(:status, created_at: (retention_period + 2.days).ago) }
+ let!(:local_status_recent) { Fabricate(:status, created_at: (retention_period - 2.days).ago) }
+
+ before do
+ subject.perform
+ end
+
+ it 'deletes remote statuses past the retention period' do
+ expect { remote_status_old.reload }.to raise_error ActiveRecord::RecordNotFound
+ end
+
+ it 'does not delete local statuses past the retention period' do
+ expect { local_status_old.reload }.to_not raise_error
+ end
+
+ it 'does not delete remote statuses within the retention period' do
+ expect { remote_status_recent.reload }.to_not raise_error
+ end
+
+ it 'does not delete local statuses within the retention period' do
+ expect { local_status_recent.reload }.to_not raise_error
+ end
+ end
+end
diff --git a/spec/lib/vacuum/system_keys_vacuum_spec.rb b/spec/lib/vacuum/system_keys_vacuum_spec.rb
new file mode 100644
index 0000000000..565892f025
--- /dev/null
+++ b/spec/lib/vacuum/system_keys_vacuum_spec.rb
@@ -0,0 +1,22 @@
+require 'rails_helper'
+
+RSpec.describe Vacuum::SystemKeysVacuum do
+ subject { described_class.new }
+
+ describe '#perform' do
+ let!(:expired_system_key) { Fabricate(:system_key, created_at: (SystemKey::ROTATION_PERIOD * 4).ago) }
+ let!(:current_system_key) { Fabricate(:system_key) }
+
+ before do
+ subject.perform
+ end
+
+ it 'deletes the expired key' do
+ expect { expired_system_key.reload }.to raise_error ActiveRecord::RecordNotFound
+ end
+
+ it 'does not delete the current key' do
+ expect { current_system_key.reload }.to_not raise_error
+ end
+ end
+end
diff --git a/spec/mailers/notification_mailer_spec.rb b/spec/mailers/notification_mailer_spec.rb
index 2ca4e26fa8..29bdc349b8 100644
--- a/spec/mailers/notification_mailer_spec.rb
+++ b/spec/mailers/notification_mailer_spec.rb
@@ -101,35 +101,4 @@ RSpec.describe NotificationMailer, type: :mailer do
expect(mail.body.encoded).to match("bob has requested to follow you")
end
end
-
- describe 'digest' do
- before do
- mention = Fabricate(:mention, account: receiver.account, status: foreign_status)
- Fabricate(:notification, account: receiver.account, activity: mention)
- sender.follow!(receiver.account)
- end
-
- context do
- let!(:mail) { NotificationMailer.digest(receiver.account, since: 5.days.ago) }
-
- include_examples 'localized subject', 'notification_mailer.digest.subject', count: 1, name: 'bob'
-
- it 'renders the headers' do
- expect(mail.subject).to match('notification since your last')
- expect(mail.to).to eq([receiver.email])
- end
-
- it 'renders the body' do
- expect(mail.body.encoded).to match('brief summary')
- expect(mail.body.encoded).to include 'The body of the foreign status'
- expect(mail.body.encoded).to include sender.username
- end
- end
-
- it 'includes activities since the receiver last signed in' do
- receiver.update!(last_emailed_at: nil, current_sign_in_at: '2000-03-01T00:00:00Z')
- mail = NotificationMailer.digest(receiver.account)
- expect(mail.body.encoded).to include 'Mar 01, 2000, 00:00'
- end
- end
end
diff --git a/spec/mailers/previews/admin_mailer_preview.rb b/spec/mailers/previews/admin_mailer_preview.rb
index 01436ba7a0..0ec9e9882c 100644
--- a/spec/mailers/previews/admin_mailer_preview.rb
+++ b/spec/mailers/previews/admin_mailer_preview.rb
@@ -8,7 +8,7 @@ class AdminMailerPreview < ActionMailer::Preview
# Preview this email at http://localhost:3000/rails/mailers/admin_mailer/new_trends
def new_trends
- AdminMailer.new_trends(Account.first, PreviewCard.limit(3), Tag.limit(3), Status.where(reblog_of_id: nil).limit(3))
+ AdminMailer.new_trends(Account.first, PreviewCard.joins(:trend).limit(3), Tag.limit(3), Status.joins(:trend).where(reblog_of_id: nil).limit(3))
end
# Preview this email at http://localhost:3000/rails/mailers/admin_mailer/new_appeal
diff --git a/spec/models/account_spec.rb b/spec/models/account_spec.rb
index dc0ca3da37..467d41836a 100644
--- a/spec/models/account_spec.rb
+++ b/spec/models/account_spec.rb
@@ -445,7 +445,7 @@ RSpec.describe Account, type: :model do
it 'accepts arbitrary limits' do
2.times.each { Fabricate(:account, display_name: "Display Name") }
- results = Account.search_for("display", 1)
+ results = Account.search_for("display", limit: 1)
expect(results.size).to eq 1
end
@@ -473,7 +473,7 @@ RSpec.describe Account, type: :model do
)
account.follow!(match)
- results = Account.advanced_search_for('A?l\i:c e', account, 10, true)
+ results = Account.advanced_search_for('A?l\i:c e', account, limit: 10, following: true)
expect(results).to eq [match]
end
@@ -485,7 +485,7 @@ RSpec.describe Account, type: :model do
domain: 'example.com'
)
- results = Account.advanced_search_for('A?l\i:c e', account, 10, true)
+ results = Account.advanced_search_for('A?l\i:c e', account, limit: 10, following: true)
expect(results).to eq []
end
@@ -498,7 +498,7 @@ RSpec.describe Account, type: :model do
suspended: true
)
- results = Account.advanced_search_for('username', account, 10, true)
+ results = Account.advanced_search_for('username', account, limit: 10, following: true)
expect(results).to eq []
end
@@ -511,7 +511,7 @@ RSpec.describe Account, type: :model do
match.user.update(approved: false)
- results = Account.advanced_search_for('username', account, 10, true)
+ results = Account.advanced_search_for('username', account, limit: 10, following: true)
expect(results).to eq []
end
@@ -524,7 +524,7 @@ RSpec.describe Account, type: :model do
match.user.update(confirmed_at: nil)
- results = Account.advanced_search_for('username', account, 10, true)
+ results = Account.advanced_search_for('username', account, limit: 10, following: true)
expect(results).to eq []
end
end
@@ -588,7 +588,7 @@ RSpec.describe Account, type: :model do
it 'accepts arbitrary limits' do
2.times { Fabricate(:account, display_name: "Display Name") }
- results = Account.advanced_search_for("display", account, 1)
+ results = Account.advanced_search_for("display", account, limit: 1)
expect(results.size).to eq 1
end
diff --git a/spec/models/admin/account_action_spec.rb b/spec/models/admin/account_action_spec.rb
index 809c7fc46d..b6a052b769 100644
--- a/spec/models/admin/account_action_spec.rb
+++ b/spec/models/admin/account_action_spec.rb
@@ -5,7 +5,7 @@ RSpec.describe Admin::AccountAction, type: :model do
describe '#save!' do
subject { account_action.save! }
- let(:account) { Fabricate(:user, admin: true).account }
+ let(:account) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:target_account) { Fabricate(:account) }
let(:type) { 'disable' }
diff --git a/spec/models/concerns/account_interactions_spec.rb b/spec/models/concerns/account_interactions_spec.rb
index 656dd66ccf..b5aecf6be7 100644
--- a/spec/models/concerns/account_interactions_spec.rb
+++ b/spec/models/concerns/account_interactions_spec.rb
@@ -14,14 +14,14 @@ describe AccountInteractions do
context 'account with Follow' do
it 'returns { target_account_id => { reblogs: true } }' do
Fabricate(:follow, account: account, target_account: target_account)
- is_expected.to eq(target_account_id => { reblogs: true, notify: false })
+ is_expected.to eq(target_account_id => { reblogs: true, notify: false, languages: nil })
end
end
context 'account with Follow but with reblogs disabled' do
it 'returns { target_account_id => { reblogs: false } }' do
Fabricate(:follow, account: account, target_account: target_account, show_reblogs: false)
- is_expected.to eq(target_account_id => { reblogs: false, notify: false })
+ is_expected.to eq(target_account_id => { reblogs: false, notify: false, languages: nil })
end
end
@@ -647,7 +647,7 @@ describe AccountInteractions do
end
it 'does mute notifications' do
- expect(me.muting_notifications?(you)).to be true
+ expect(me.muting_notifications?(you)).to be true
end
end
end
diff --git a/spec/models/custom_filter_keyword_spec.rb b/spec/models/custom_filter_keyword_spec.rb
new file mode 100644
index 0000000000..e15b9dad50
--- /dev/null
+++ b/spec/models/custom_filter_keyword_spec.rb
@@ -0,0 +1,4 @@
+require 'rails_helper'
+
+RSpec.describe CustomFilterKeyword, type: :model do
+end
diff --git a/spec/models/email_domain_block_spec.rb b/spec/models/email_domain_block_spec.rb
index 567a32c328..e23116888c 100644
--- a/spec/models/email_domain_block_spec.rb
+++ b/spec/models/email_domain_block_spec.rb
@@ -12,16 +12,29 @@ RSpec.describe EmailDomainBlock, type: :model do
let(:input) { nil }
context 'given an e-mail address' do
- let(:input) { 'nyarn@example.com' }
+ let(:input) { "foo@#{domain}" }
- it 'returns true if the domain is blocked' do
- Fabricate(:email_domain_block, domain: 'example.com')
- expect(EmailDomainBlock.block?(input)).to be true
+ context do
+ let(:domain) { 'example.com' }
+
+ it 'returns true if the domain is blocked' do
+ Fabricate(:email_domain_block, domain: 'example.com')
+ expect(EmailDomainBlock.block?(input)).to be true
+ end
+
+ it 'returns false if the domain is not blocked' do
+ Fabricate(:email_domain_block, domain: 'other-example.com')
+ expect(EmailDomainBlock.block?(input)).to be false
+ end
end
- it 'returns false if the domain is not blocked' do
- Fabricate(:email_domain_block, domain: 'other-example.com')
- expect(EmailDomainBlock.block?(input)).to be false
+ context do
+ let(:domain) { 'mail.example.com' }
+
+ it 'returns true if it is a subdomain of a blocked domain' do
+ Fabricate(:email_domain_block, domain: 'example.com')
+ expect(described_class.block?(input)).to be true
+ end
end
end
diff --git a/spec/models/export_spec.rb b/spec/models/export_spec.rb
index 4e6b824bbe..135d7a36ba 100644
--- a/spec/models/export_spec.rb
+++ b/spec/models/export_spec.rb
@@ -35,8 +35,8 @@ describe Export do
results = export.strip.split("\n")
expect(results.size).to eq 3
- expect(results.first).to eq 'Account address,Show boosts'
- expect(results.second).to eq 'one@local.host,true'
+ expect(results.first).to eq 'Account address,Show boosts,Notify on new posts,Languages'
+ expect(results.second).to eq 'one@local.host,true,false,'
end
end
diff --git a/spec/models/follow_request_spec.rb b/spec/models/follow_request_spec.rb
index b0e854f09a..c456c285fa 100644
--- a/spec/models/follow_request_spec.rb
+++ b/spec/models/follow_request_spec.rb
@@ -7,7 +7,7 @@ RSpec.describe FollowRequest, type: :model do
let(:target_account) { Fabricate(:account) }
it 'calls Account#follow!, MergeWorker.perform_async, and #destroy!' do
- expect(account).to receive(:follow!).with(target_account, reblogs: true, notify: false, uri: follow_request.uri, bypass_limit: true)
+ expect(account).to receive(:follow!).with(target_account, reblogs: true, notify: false, uri: follow_request.uri, languages: nil, bypass_limit: true)
expect(MergeWorker).to receive(:perform_async).with(target_account.id, account.id)
expect(follow_request).to receive(:destroy!)
follow_request.authorize!
diff --git a/spec/models/preview_card_trend_spec.rb b/spec/models/preview_card_trend_spec.rb
new file mode 100644
index 0000000000..c7ab6ed146
--- /dev/null
+++ b/spec/models/preview_card_trend_spec.rb
@@ -0,0 +1,4 @@
+require 'rails_helper'
+
+RSpec.describe PreviewCardTrend, type: :model do
+end
diff --git a/spec/models/status_spec.rb b/spec/models/status_spec.rb
index d3b23726dd..e0a7aba7ed 100644
--- a/spec/models/status_spec.rb
+++ b/spec/models/status_spec.rb
@@ -288,22 +288,6 @@ RSpec.describe Status, type: :model do
end
end
- describe '.in_chosen_languages' do
- context 'for accounts with language filters' do
- let(:user) { Fabricate(:user, chosen_languages: ['en']) }
-
- it 'does not include statuses in not in chosen languages' do
- status = Fabricate(:status, language: 'de')
- expect(Status.in_chosen_languages(user.account)).not_to include status
- end
-
- it 'includes status with unknown language' do
- status = Fabricate(:status, language: nil)
- expect(Status.in_chosen_languages(user.account)).to include status
- end
- end
- end
-
describe '.as_direct_timeline' do
let(:account) { Fabricate(:account) }
let(:followed) { Fabricate(:account) }
diff --git a/spec/models/status_trend_spec.rb b/spec/models/status_trend_spec.rb
new file mode 100644
index 0000000000..6b82204a60
--- /dev/null
+++ b/spec/models/status_trend_spec.rb
@@ -0,0 +1,4 @@
+require 'rails_helper'
+
+RSpec.describe StatusTrend, type: :model do
+end
diff --git a/spec/models/tag_follow_spec.rb b/spec/models/tag_follow_spec.rb
new file mode 100644
index 0000000000..50c04d2e46
--- /dev/null
+++ b/spec/models/tag_follow_spec.rb
@@ -0,0 +1,4 @@
+require 'rails_helper'
+
+RSpec.describe TagFollow, type: :model do
+end
diff --git a/spec/models/tag_spec.rb b/spec/models/tag_spec.rb
index 3949dbce54..b16f99a799 100644
--- a/spec/models/tag_spec.rb
+++ b/spec/models/tag_spec.rb
@@ -91,7 +91,7 @@ RSpec.describe Tag, type: :model do
upcase_string = 'abcABCabcABCやゆよ'
downcase_string = 'abcabcabcabcやゆよ';
- tag = Fabricate(:tag, name: downcase_string)
+ tag = Fabricate(:tag, name: HashtagNormalizer.new.normalize(downcase_string))
expect(Tag.find_normalized(upcase_string)).to eq tag
end
end
@@ -101,12 +101,12 @@ RSpec.describe Tag, type: :model do
upcase_string = 'abcABCabcABCやゆよ'
downcase_string = 'abcabcabcabcやゆよ';
- tag = Fabricate(:tag, name: downcase_string)
+ tag = Fabricate(:tag, name: HashtagNormalizer.new.normalize(downcase_string))
expect(Tag.matches_name(upcase_string)).to eq [tag]
end
it 'uses the LIKE operator' do
- expect(Tag.matches_name('100%abc').to_sql).to eq %q[SELECT "tags".* FROM "tags" WHERE LOWER("tags"."name") LIKE LOWER('100\\%abc%')]
+ expect(Tag.matches_name('100%abc').to_sql).to eq %q[SELECT "tags".* FROM "tags" WHERE LOWER("tags"."name") LIKE LOWER('100abc%')]
end
end
@@ -115,7 +115,7 @@ RSpec.describe Tag, type: :model do
upcase_string = 'abcABCabcABCやゆよ'
downcase_string = 'abcabcabcabcやゆよ';
- tag = Fabricate(:tag, name: downcase_string)
+ tag = Fabricate(:tag, name: HashtagNormalizer.new.normalize(downcase_string))
expect(Tag.matching_name(upcase_string)).to eq [tag]
end
end
diff --git a/spec/models/trends/statuses_spec.rb b/spec/models/trends/statuses_spec.rb
index 9cc67acbe1..5f338a65e8 100644
--- a/spec/models/trends/statuses_spec.rb
+++ b/spec/models/trends/statuses_spec.rb
@@ -9,8 +9,8 @@ RSpec.describe Trends::Statuses do
let!(:query) { subject.query }
let!(:today) { at_time }
- let!(:status1) { Fabricate(:status, text: 'Foo', trendable: true, created_at: today) }
- let!(:status2) { Fabricate(:status, text: 'Bar', trendable: true, created_at: today) }
+ let!(:status1) { Fabricate(:status, text: 'Foo', language: 'en', trendable: true, created_at: today) }
+ let!(:status2) { Fabricate(:status, text: 'Bar', language: 'en', trendable: true, created_at: today) }
before do
15.times { reblog(status1, today) }
@@ -69,9 +69,9 @@ RSpec.describe Trends::Statuses do
let!(:today) { at_time }
let!(:yesterday) { today - 1.day }
- let!(:status1) { Fabricate(:status, text: 'Foo', trendable: true, created_at: yesterday) }
- let!(:status2) { Fabricate(:status, text: 'Bar', trendable: true, created_at: today) }
- let!(:status3) { Fabricate(:status, text: 'Baz', trendable: true, created_at: today) }
+ let!(:status1) { Fabricate(:status, text: 'Foo', language: 'en', trendable: true, created_at: yesterday) }
+ let!(:status2) { Fabricate(:status, text: 'Bar', language: 'en', trendable: true, created_at: today) }
+ let!(:status3) { Fabricate(:status, text: 'Baz', language: 'en', trendable: true, created_at: today) }
before do
13.times { reblog(status1, today) }
@@ -95,10 +95,10 @@ RSpec.describe Trends::Statuses do
it 'decays scores' do
subject.refresh(today)
- original_score = subject.score(status2.id)
+ original_score = status2.trend.score
expect(original_score).to be_a Float
subject.refresh(today + subject.options[:score_halflife])
- decayed_score = subject.score(status2.id)
+ decayed_score = status2.trend.reload.score
expect(decayed_score).to be <= original_score / 2
end
end
diff --git a/spec/models/user_role_spec.rb b/spec/models/user_role_spec.rb
new file mode 100644
index 0000000000..28019593e5
--- /dev/null
+++ b/spec/models/user_role_spec.rb
@@ -0,0 +1,189 @@
+require 'rails_helper'
+
+RSpec.describe UserRole, type: :model do
+ subject { described_class.create(name: 'Foo', position: 1) }
+
+ describe '#can?' do
+ context 'with a single flag' do
+ it 'returns true if any of them are present' do
+ subject.permissions = UserRole::FLAGS[:manage_reports]
+ expect(subject.can?(:manage_reports)).to be true
+ end
+
+ it 'returns false if it is not set' do
+ expect(subject.can?(:manage_reports)).to be false
+ end
+ end
+
+ context 'with multiple flags' do
+ it 'returns true if any of them are present' do
+ subject.permissions = UserRole::FLAGS[:manage_users]
+ expect(subject.can?(:manage_reports, :manage_users)).to be true
+ end
+
+ it 'returns false if none of them are present' do
+ expect(subject.can?(:manage_reports, :manage_users)).to be false
+ end
+ end
+
+ context 'with an unknown flag' do
+ it 'raises an error' do
+ expect { subject.can?(:foo) }.to raise_error ArgumentError
+ end
+ end
+ end
+
+ describe '#overrides?' do
+ it 'returns true if other role has lower position' do
+ expect(subject.overrides?(described_class.new(position: subject.position - 1))).to be true
+ end
+
+ it 'returns true if other role is nil' do
+ expect(subject.overrides?(nil)).to be true
+ end
+
+ it 'returns false if other role has higher position' do
+ expect(subject.overrides?(described_class.new(position: subject.position + 1))).to be false
+ end
+ end
+
+ describe '#permissions_as_keys' do
+ before do
+ subject.permissions = UserRole::FLAGS[:invite_users] | UserRole::FLAGS[:view_dashboard] | UserRole::FLAGS[:manage_reports]
+ end
+
+ it 'returns an array' do
+ expect(subject.permissions_as_keys).to match_array %w(invite_users view_dashboard manage_reports)
+ end
+ end
+
+ describe '#permissions_as_keys=' do
+ let(:input) { }
+
+ before do
+ subject.permissions_as_keys = input
+ end
+
+ context 'with a single value' do
+ let(:input) { %w(manage_users) }
+
+ it 'sets permission flags' do
+ expect(subject.permissions).to eq UserRole::FLAGS[:manage_users]
+ end
+ end
+
+ context 'with multiple values' do
+ let(:input) { %w(manage_users manage_reports) }
+
+ it 'sets permission flags' do
+ expect(subject.permissions).to eq UserRole::FLAGS[:manage_users] | UserRole::FLAGS[:manage_reports]
+ end
+ end
+
+ context 'with an unknown value' do
+ let(:input) { %w(foo) }
+
+ it 'does not set permission flags' do
+ expect(subject.permissions).to eq UserRole::Flags::NONE
+ end
+ end
+ end
+
+ describe '#computed_permissions' do
+ context 'when the role is nobody' do
+ let(:subject) { described_class.nobody }
+
+ it 'returns none' do
+ expect(subject.computed_permissions).to eq UserRole::Flags::NONE
+ end
+ end
+
+ context 'when the role is everyone' do
+ let(:subject) { described_class.everyone }
+
+ it 'returns permissions' do
+ expect(subject.computed_permissions).to eq subject.permissions
+ end
+ end
+
+ context 'when role has the administrator flag' do
+ before do
+ subject.permissions = UserRole::FLAGS[:administrator]
+ end
+
+ it 'returns all permissions' do
+ expect(subject.computed_permissions).to eq UserRole::Flags::ALL
+ end
+ end
+
+ context do
+ it 'returns permissions combined with the everyone role' do
+ expect(subject.computed_permissions).to eq described_class.everyone.permissions
+ end
+ end
+ end
+
+ describe '.everyone' do
+ subject { described_class.everyone }
+
+ it 'returns a role' do
+ expect(subject).to be_kind_of(described_class)
+ end
+
+ it 'is identified as the everyone role' do
+ expect(subject.everyone?).to be true
+ end
+
+ it 'has default permissions' do
+ expect(subject.permissions).to eq UserRole::FLAGS[:invite_users]
+ end
+
+ it 'has negative position' do
+ expect(subject.position).to eq -1
+ end
+ end
+
+ describe '.nobody' do
+ subject { described_class.nobody }
+
+ it 'returns a role' do
+ expect(subject).to be_kind_of(described_class)
+ end
+
+ it 'is identified as the nobody role' do
+ expect(subject.nobody?).to be true
+ end
+
+ it 'has no permissions' do
+ expect(subject.permissions).to eq UserRole::Flags::NONE
+ end
+
+ it 'has negative position' do
+ expect(subject.position).to eq -1
+ end
+ end
+
+ describe '#everyone?' do
+ it 'returns true when id is -99' do
+ subject.id = -99
+ expect(subject.everyone?).to be true
+ end
+
+ it 'returns false when id is not -99' do
+ subject.id = 123
+ expect(subject.everyone?).to be false
+ end
+ end
+
+ describe '#nobody?' do
+ it 'returns true when id is nil' do
+ subject.id = nil
+ expect(subject.nobody?).to be true
+ end
+
+ it 'returns false when id is not nil' do
+ subject.id = 123
+ expect(subject.nobody?).to be false
+ end
+ end
+end
diff --git a/spec/models/user_spec.rb b/spec/models/user_spec.rb
index 1645ab59e0..a7da31e606 100644
--- a/spec/models/user_spec.rb
+++ b/spec/models/user_spec.rb
@@ -56,14 +56,6 @@ RSpec.describe User, type: :model do
end
end
- describe 'admins' do
- it 'returns an array of users who are admin' do
- user_1 = Fabricate(:user, admin: false)
- user_2 = Fabricate(:user, admin: true)
- expect(User.admins).to match_array([user_2])
- end
- end
-
describe 'confirmed' do
it 'returns an array of users who are confirmed' do
user_1 = Fabricate(:user, confirmed_at: nil)
@@ -289,49 +281,6 @@ RSpec.describe User, type: :model do
end
end
- describe '#role' do
- it 'returns admin for admin' do
- user = User.new(admin: true)
- expect(user.role).to eq 'admin'
- end
-
- it 'returns moderator for moderator' do
- user = User.new(moderator: true)
- expect(user.role).to eq 'moderator'
- end
-
- it 'returns user otherwise' do
- user = User.new
- expect(user.role).to eq 'user'
- end
- end
-
- describe '#role?' do
- it 'returns false when invalid role requested' do
- user = User.new(admin: true)
- expect(user.role?('disabled')).to be false
- end
-
- it 'returns true when exact role match' do
- user = User.new
- mod = User.new(moderator: true)
- admin = User.new(admin: true)
-
- expect(user.role?('user')).to be true
- expect(mod.role?('moderator')).to be true
- expect(admin.role?('admin')).to be true
- end
-
- it 'returns true when role higher than needed' do
- mod = User.new(moderator: true)
- admin = User.new(admin: true)
-
- expect(mod.role?('user')).to be true
- expect(admin.role?('user')).to be true
- expect(admin.role?('moderator')).to be true
- end
- end
-
describe '#disable!' do
subject(:user) { Fabricate(:user, disabled: false, current_sign_in_at: current_sign_in_at, last_sign_in_at: nil) }
let(:current_sign_in_at) { Time.zone.now }
@@ -420,110 +369,6 @@ RSpec.describe User, type: :model do
end
end
- describe '#promote!' do
- subject(:user) { Fabricate(:user, admin: is_admin, moderator: is_moderator) }
-
- before do
- user.promote!
- end
-
- context 'when user is an admin' do
- let(:is_admin) { true }
-
- context 'when user is a moderator' do
- let(:is_moderator) { true }
-
- it 'changes moderator filed false' do
- expect(user).to be_admin
- expect(user).not_to be_moderator
- end
- end
-
- context 'when user is not a moderator' do
- let(:is_moderator) { false }
-
- it 'does not change status' do
- expect(user).to be_admin
- expect(user).not_to be_moderator
- end
- end
- end
-
- context 'when user is not admin' do
- let(:is_admin) { false }
-
- context 'when user is a moderator' do
- let(:is_moderator) { true }
-
- it 'changes user into an admin' do
- expect(user).to be_admin
- expect(user).not_to be_moderator
- end
- end
-
- context 'when user is not a moderator' do
- let(:is_moderator) { false }
-
- it 'changes user into a moderator' do
- expect(user).not_to be_admin
- expect(user).to be_moderator
- end
- end
- end
- end
-
- describe '#demote!' do
- subject(:user) { Fabricate(:user, admin: admin, moderator: moderator) }
-
- before do
- user.demote!
- end
-
- context 'when user is an admin' do
- let(:admin) { true }
-
- context 'when user is a moderator' do
- let(:moderator) { true }
-
- it 'changes user into a moderator' do
- expect(user).not_to be_admin
- expect(user).to be_moderator
- end
- end
-
- context 'when user is not a moderator' do
- let(:moderator) { false }
-
- it 'changes user into a moderator' do
- expect(user).not_to be_admin
- expect(user).to be_moderator
- end
- end
- end
-
- context 'when user is not an admin' do
- let(:admin) { false }
-
- context 'when user is a moderator' do
- let(:moderator) { true }
-
- it 'changes user into a plain user' do
- expect(user).not_to be_admin
- expect(user).not_to be_moderator
- end
- end
-
- context 'when user is not a moderator' do
- let(:moderator) { false }
-
- it 'does not change any fields' do
- expect(user).not_to be_admin
- expect(user).not_to be_moderator
- end
- end
- end
- end
-
describe '#active_for_authentication?' do
subject { user.active_for_authentication? }
let(:user) { Fabricate(:user, disabled: disabled, confirmed_at: confirmed_at) }
@@ -560,4 +405,8 @@ RSpec.describe User, type: :model do
end
end
end
+
+ describe '.those_who_can' do
+ pending
+ end
end
diff --git a/spec/policies/account_moderation_note_policy_spec.rb b/spec/policies/account_moderation_note_policy_spec.rb
index 39ec2008ae..8467473465 100644
--- a/spec/policies/account_moderation_note_policy_spec.rb
+++ b/spec/policies/account_moderation_note_policy_spec.rb
@@ -5,7 +5,7 @@ require 'pundit/rspec'
RSpec.describe AccountModerationNotePolicy do
let(:subject) { described_class }
- let(:admin) { Fabricate(:user, admin: true).account }
+ let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:john) { Fabricate(:account) }
permissions :create? do
@@ -31,7 +31,7 @@ RSpec.describe AccountModerationNotePolicy do
context 'admin' do
it 'grants to destroy' do
- expect(subject).to permit(admin, AccountModerationNotePolicy)
+ expect(subject).to permit(admin, account_moderation_note)
end
end
diff --git a/spec/policies/account_policy_spec.rb b/spec/policies/account_policy_spec.rb
index b55eb65a79..0f23fd97e2 100644
--- a/spec/policies/account_policy_spec.rb
+++ b/spec/policies/account_policy_spec.rb
@@ -5,7 +5,7 @@ require 'pundit/rspec'
RSpec.describe AccountPolicy do
let(:subject) { described_class }
- let(:admin) { Fabricate(:user, admin: true).account }
+ let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:john) { Fabricate(:account) }
let(:alice) { Fabricate(:account) }
@@ -55,7 +55,7 @@ RSpec.describe AccountPolicy do
end
end
- permissions :redownload?, :subscribe?, :unsubscribe? do
+ permissions :redownload? do
context 'admin' do
it 'permits' do
expect(subject).to permit(admin)
@@ -70,7 +70,7 @@ RSpec.describe AccountPolicy do
end
permissions :suspend?, :silence? do
- let(:staff) { Fabricate(:user, admin: true).account }
+ let(:staff) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
context 'staff' do
context 'record is staff' do
@@ -94,7 +94,7 @@ RSpec.describe AccountPolicy do
end
permissions :memorialize? do
- let(:other_admin) { Fabricate(:user, admin: true).account }
+ let(:other_admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
context 'admin' do
context 'record is admin' do
diff --git a/spec/policies/custom_emoji_policy_spec.rb b/spec/policies/custom_emoji_policy_spec.rb
index e4f1af3c1b..6a6ef6694d 100644
--- a/spec/policies/custom_emoji_policy_spec.rb
+++ b/spec/policies/custom_emoji_policy_spec.rb
@@ -5,7 +5,7 @@ require 'pundit/rspec'
RSpec.describe CustomEmojiPolicy do
let(:subject) { described_class }
- let(:admin) { Fabricate(:user, admin: true).account }
+ let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:john) { Fabricate(:account) }
permissions :index?, :enable?, :disable? do
diff --git a/spec/policies/domain_block_policy_spec.rb b/spec/policies/domain_block_policy_spec.rb
index b24ed9e3a3..01b97e823a 100644
--- a/spec/policies/domain_block_policy_spec.rb
+++ b/spec/policies/domain_block_policy_spec.rb
@@ -5,7 +5,7 @@ require 'pundit/rspec'
RSpec.describe DomainBlockPolicy do
let(:subject) { described_class }
- let(:admin) { Fabricate(:user, admin: true).account }
+ let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:john) { Fabricate(:account) }
permissions :index?, :show?, :create?, :destroy? do
diff --git a/spec/policies/email_domain_block_policy_spec.rb b/spec/policies/email_domain_block_policy_spec.rb
index 1ff55af8e6..913075c3d2 100644
--- a/spec/policies/email_domain_block_policy_spec.rb
+++ b/spec/policies/email_domain_block_policy_spec.rb
@@ -5,7 +5,7 @@ require 'pundit/rspec'
RSpec.describe EmailDomainBlockPolicy do
let(:subject) { described_class }
- let(:admin) { Fabricate(:user, admin: true).account }
+ let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:john) { Fabricate(:account) }
permissions :index?, :create?, :destroy? do
diff --git a/spec/policies/instance_policy_spec.rb b/spec/policies/instance_policy_spec.rb
index 71ef1fe507..f6f51af068 100644
--- a/spec/policies/instance_policy_spec.rb
+++ b/spec/policies/instance_policy_spec.rb
@@ -5,7 +5,7 @@ require 'pundit/rspec'
RSpec.describe InstancePolicy do
let(:subject) { described_class }
- let(:admin) { Fabricate(:user, admin: true).account }
+ let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:john) { Fabricate(:account) }
permissions :index?, :show?, :destroy? do
diff --git a/spec/policies/invite_policy_spec.rb b/spec/policies/invite_policy_spec.rb
index 1221378047..01660322f1 100644
--- a/spec/policies/invite_policy_spec.rb
+++ b/spec/policies/invite_policy_spec.rb
@@ -5,8 +5,8 @@ require 'pundit/rspec'
RSpec.describe InvitePolicy do
let(:subject) { described_class }
- let(:admin) { Fabricate(:user, admin: true).account }
- let(:john) { Fabricate(:account) }
+ let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
+ let(:john) { Fabricate(:user).account }
permissions :index? do
context 'staff?' do
@@ -17,16 +17,22 @@ RSpec.describe InvitePolicy do
end
permissions :create? do
- context 'min_required_role?' do
+ context 'has privilege' do
+ before do
+ UserRole.everyone.update(permissions: UserRole::FLAGS[:invite_users])
+ end
+
it 'permits' do
- allow_any_instance_of(described_class).to receive(:min_required_role?) { true }
expect(subject).to permit(john, Invite)
end
end
- context 'not min_required_role?' do
+ context 'does not have privilege' do
+ before do
+ UserRole.everyone.update(permissions: UserRole::Flags::NONE)
+ end
+
it 'denies' do
- allow_any_instance_of(described_class).to receive(:min_required_role?) { false }
expect(subject).to_not permit(john, Invite)
end
end
@@ -54,39 +60,15 @@ RSpec.describe InvitePolicy do
end
context 'not owner?' do
- context 'Setting.min_invite_role == "admin"' do
- before do
- Setting.min_invite_role = 'admin'
- end
-
- context 'admin?' do
- it 'permits' do
- expect(subject).to permit(admin, Fabricate(:invite))
- end
- end
-
- context 'not admin?' do
- it 'denies' do
- expect(subject).to_not permit(john, Fabricate(:invite))
- end
+ context 'admin?' do
+ it 'permits' do
+ expect(subject).to permit(admin, Fabricate(:invite))
end
end
- context 'Setting.min_invite_role != "admin"' do
- before do
- Setting.min_invite_role = 'else'
- end
-
- context 'staff?' do
- it 'permits' do
- expect(subject).to permit(admin, Fabricate(:invite))
- end
- end
-
- context 'not staff?' do
- it 'denies' do
- expect(subject).to_not permit(john, Fabricate(:invite))
- end
+ context 'not admin?' do
+ it 'denies' do
+ expect(subject).to_not permit(john, Fabricate(:invite))
end
end
end
diff --git a/spec/policies/relay_policy_spec.rb b/spec/policies/relay_policy_spec.rb
index 139d945dc8..2c50ba1e9f 100644
--- a/spec/policies/relay_policy_spec.rb
+++ b/spec/policies/relay_policy_spec.rb
@@ -5,7 +5,7 @@ require 'pundit/rspec'
RSpec.describe RelayPolicy do
let(:subject) { described_class }
- let(:admin) { Fabricate(:user, admin: true).account }
+ let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:john) { Fabricate(:account) }
permissions :update? do
diff --git a/spec/policies/report_note_policy_spec.rb b/spec/policies/report_note_policy_spec.rb
index c34f99b712..99f5ffb8e3 100644
--- a/spec/policies/report_note_policy_spec.rb
+++ b/spec/policies/report_note_policy_spec.rb
@@ -5,7 +5,7 @@ require 'pundit/rspec'
RSpec.describe ReportNotePolicy do
let(:subject) { described_class }
- let(:admin) { Fabricate(:user, admin: true).account }
+ let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:john) { Fabricate(:account) }
permissions :create? do
@@ -25,7 +25,8 @@ RSpec.describe ReportNotePolicy do
permissions :destroy? do
context 'admin?' do
it 'permit' do
- expect(subject).to permit(admin, ReportNote)
+ report_note = Fabricate(:report_note, account: john)
+ expect(subject).to permit(admin, report_note)
end
end
diff --git a/spec/policies/report_policy_spec.rb b/spec/policies/report_policy_spec.rb
index 84c366d7f3..8b005d8ddd 100644
--- a/spec/policies/report_policy_spec.rb
+++ b/spec/policies/report_policy_spec.rb
@@ -5,7 +5,7 @@ require 'pundit/rspec'
RSpec.describe ReportPolicy do
let(:subject) { described_class }
- let(:admin) { Fabricate(:user, admin: true).account }
+ let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:john) { Fabricate(:account) }
permissions :update?, :index?, :show? do
diff --git a/spec/policies/settings_policy_spec.rb b/spec/policies/settings_policy_spec.rb
index 3fa183c509..e16ee51a48 100644
--- a/spec/policies/settings_policy_spec.rb
+++ b/spec/policies/settings_policy_spec.rb
@@ -5,7 +5,7 @@ require 'pundit/rspec'
RSpec.describe SettingsPolicy do
let(:subject) { described_class }
- let(:admin) { Fabricate(:user, admin: true).account }
+ let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:john) { Fabricate(:account) }
permissions :update?, :show? do
diff --git a/spec/policies/status_policy_spec.rb b/spec/policies/status_policy_spec.rb
index 865c693aa8..2afcfe96e0 100644
--- a/spec/policies/status_policy_spec.rb
+++ b/spec/policies/status_policy_spec.rb
@@ -6,7 +6,7 @@ require 'pundit/rspec'
RSpec.describe StatusPolicy, type: :model do
subject { described_class }
- let(:admin) { Fabricate(:user, admin: true) }
+ let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')) }
let(:alice) { Fabricate(:account, username: 'alice') }
let(:bob) { Fabricate(:account, username: 'bob') }
let(:status) { Fabricate(:status, account: alice) }
@@ -108,10 +108,6 @@ RSpec.describe StatusPolicy, type: :model do
expect(subject).to permit(status.account, status)
end
- it 'grants access when account is admin' do
- expect(subject).to permit(admin.account, status)
- end
-
it 'denies access when account is not deleter' do
expect(subject).to_not permit(bob, status)
end
@@ -137,27 +133,9 @@ RSpec.describe StatusPolicy, type: :model do
end
end
- permissions :index? do
- it 'grants access if staff' do
- expect(subject).to permit(admin.account)
- end
-
- it 'denies access unless staff' do
- expect(subject).to_not permit(alice)
- end
- end
-
permissions :update? do
- it 'grants access if staff' do
- expect(subject).to permit(admin.account, status)
- end
-
it 'grants access if owner' do
expect(subject).to permit(status.account, status)
end
-
- it 'denies access unless staff' do
- expect(subject).to_not permit(bob, status)
- end
end
end
diff --git a/spec/policies/tag_policy_spec.rb b/spec/policies/tag_policy_spec.rb
index 256e6786a3..9be7140fc2 100644
--- a/spec/policies/tag_policy_spec.rb
+++ b/spec/policies/tag_policy_spec.rb
@@ -5,7 +5,7 @@ require 'pundit/rspec'
RSpec.describe TagPolicy do
let(:subject) { described_class }
- let(:admin) { Fabricate(:user, admin: true).account }
+ let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:john) { Fabricate(:account) }
permissions :index?, :show?, :update? do
diff --git a/spec/policies/user_policy_spec.rb b/spec/policies/user_policy_spec.rb
index 731c041d11..ff0916674e 100644
--- a/spec/policies/user_policy_spec.rb
+++ b/spec/policies/user_policy_spec.rb
@@ -5,7 +5,7 @@ require 'pundit/rspec'
RSpec.describe UserPolicy do
let(:subject) { described_class }
- let(:admin) { Fabricate(:user, admin: true).account }
+ let(:admin) { Fabricate(:user, role: UserRole.find_by(name: 'Admin')).account }
let(:john) { Fabricate(:account) }
permissions :reset_password?, :change_email? do
@@ -111,57 +111,4 @@ RSpec.describe UserPolicy do
end
end
end
-
- permissions :promote? do
- context 'admin?' do
- context 'promotable?' do
- it 'permits' do
- expect(subject).to permit(admin, john.user)
- end
- end
-
- context '!promotable?' do
- it 'denies' do
- expect(subject).to_not permit(admin, admin.user)
- end
- end
- end
-
- context '!admin?' do
- it 'denies' do
- expect(subject).to_not permit(john, User)
- end
- end
- end
-
- permissions :demote? do
- context 'admin?' do
- context '!record.admin?' do
- context 'demoteable?' do
- it 'permits' do
- john.user.update(moderator: true)
- expect(subject).to permit(admin, john.user)
- end
- end
-
- context '!demoteable?' do
- it 'denies' do
- expect(subject).to_not permit(admin, john.user)
- end
- end
- end
-
- context 'record.admin?' do
- it 'denies' do
- expect(subject).to_not permit(admin, admin.user)
- end
- end
- end
-
- context '!admin?' do
- it 'denies' do
- expect(subject).to_not permit(john, User)
- end
- end
- end
end
diff --git a/spec/presenters/instance_presenter_spec.rb b/spec/presenters/instance_presenter_spec.rb
index 81d8d0e980..f4c415d2f1 100644
--- a/spec/presenters/instance_presenter_spec.rb
+++ b/spec/presenters/instance_presenter_spec.rb
@@ -3,21 +3,20 @@ require 'rails_helper'
describe InstancePresenter do
let(:instance_presenter) { InstancePresenter.new }
- context do
+ describe '#description' do
around do |example|
- site_description = Setting.site_description
+ site_description = Setting.site_short_description
example.run
- Setting.site_description = site_description
+ Setting.site_short_description = site_description
end
it "delegates site_description to Setting" do
- Setting.site_description = "Site desc"
-
- expect(instance_presenter.site_description).to eq "Site desc"
+ Setting.site_short_description = "Site desc"
+ expect(instance_presenter.description).to eq "Site desc"
end
end
- context do
+ describe '#extended_description' do
around do |example|
site_extended_description = Setting.site_extended_description
example.run
@@ -26,12 +25,11 @@ describe InstancePresenter do
it "delegates site_extended_description to Setting" do
Setting.site_extended_description = "Extended desc"
-
- expect(instance_presenter.site_extended_description).to eq "Extended desc"
+ expect(instance_presenter.extended_description).to eq "Extended desc"
end
end
- context do
+ describe '#email' do
around do |example|
site_contact_email = Setting.site_contact_email
example.run
@@ -40,12 +38,11 @@ describe InstancePresenter do
it "delegates contact_email to Setting" do
Setting.site_contact_email = "admin@example.com"
-
- expect(instance_presenter.site_contact_email).to eq "admin@example.com"
+ expect(instance_presenter.contact.email).to eq "admin@example.com"
end
end
- describe "contact_account" do
+ describe '#account' do
around do |example|
site_contact_username = Setting.site_contact_username
example.run
@@ -55,12 +52,11 @@ describe InstancePresenter do
it "returns the account for the site contact username" do
Setting.site_contact_username = "aaa"
account = Fabricate(:account, username: "aaa")
-
- expect(instance_presenter.contact_account).to eq(account)
+ expect(instance_presenter.contact.account).to eq(account)
end
end
- describe "user_count" do
+ describe '#user_count' do
it "returns the number of site users" do
Rails.cache.write 'user_count', 123
@@ -68,7 +64,7 @@ describe InstancePresenter do
end
end
- describe "status_count" do
+ describe '#status_count' do
it "returns the number of local statuses" do
Rails.cache.write 'local_status_count', 234
@@ -76,7 +72,7 @@ describe InstancePresenter do
end
end
- describe "domain_count" do
+ describe '#domain_count' do
it "returns the number of known domains" do
Rails.cache.write 'distinct_domain_count', 345
@@ -84,9 +80,9 @@ describe InstancePresenter do
end
end
- describe '#version_number' do
- it 'returns Mastodon::Version' do
- expect(instance_presenter.version_number).to be(Mastodon::Version)
+ describe '#version' do
+ it 'returns string' do
+ expect(instance_presenter.version).to be_a String
end
end
@@ -103,13 +99,6 @@ describe InstancePresenter do
end
end
- describe '#hero' do
- it 'returns SiteUpload' do
- hero = Fabricate(:site_upload, var: 'hero')
- expect(instance_presenter.hero).to eq(hero)
- end
- end
-
describe '#mascot' do
it 'returns SiteUpload' do
mascot = Fabricate(:site_upload, var: 'mascot')
diff --git a/spec/presenters/status_relationships_presenter_spec.rb b/spec/presenters/status_relationships_presenter_spec.rb
index 03296bd179..eaab922fd9 100644
--- a/spec/presenters/status_relationships_presenter_spec.rb
+++ b/spec/presenters/status_relationships_presenter_spec.rb
@@ -5,7 +5,7 @@ require 'rails_helper'
RSpec.describe StatusRelationshipsPresenter do
describe '.initialize' do
before do
- allow(Status).to receive(:reblogs_map).with(status_ids, current_account_id).and_return(default_map)
+ allow(Status).to receive(:reblogs_map).with(match_array(status_ids), current_account_id).and_return(default_map)
allow(Status).to receive(:favourites_map).with(status_ids, current_account_id).and_return(default_map)
allow(Status).to receive(:bookmarks_map).with(status_ids, current_account_id).and_return(default_map)
allow(Status).to receive(:mutes_map).with(anything, current_account_id).and_return(default_map)
@@ -15,7 +15,7 @@ RSpec.describe StatusRelationshipsPresenter do
let(:presenter) { StatusRelationshipsPresenter.new(statuses, current_account_id, **options) }
let(:current_account_id) { Fabricate(:account).id }
let(:statuses) { [Fabricate(:status)] }
- let(:status_ids) { statuses.map(&:id) }
+ let(:status_ids) { statuses.map(&:id) + statuses.map(&:reblog_of_id).compact }
let(:default_map) { { 1 => true } }
context 'options are not set' do
@@ -69,5 +69,57 @@ RSpec.describe StatusRelationshipsPresenter do
expect(presenter.pins_map).to eq default_map.merge(options[:pins_map])
end
end
+
+ context 'when post includes filtered terms' do
+ let(:statuses) { [Fabricate(:status, text: 'this toot is about that banned word'), Fabricate(:status, reblog: Fabricate(:status, text: 'this toot is about an irrelevant word'))] }
+ let(:options) { {} }
+
+ before do
+ Account.find(current_account_id).custom_filters.create!(phrase: 'filter1', context: %w(home), action: :hide, keywords_attributes: [{ keyword: 'banned' }, { keyword: 'irrelevant' }])
+ end
+
+ it 'sets @filters_map to filter top-level status' do
+ matched_filters = presenter.filters_map[statuses[0].id]
+ expect(matched_filters.size).to eq 1
+
+ expect(matched_filters[0].filter.title).to eq 'filter1'
+ expect(matched_filters[0].keyword_matches).to eq ['banned']
+ end
+
+ it 'sets @filters_map to filter reblogged status' do
+ matched_filters = presenter.filters_map[statuses[1].reblog_of_id]
+ expect(matched_filters.size).to eq 1
+
+ expect(matched_filters[0].filter.title).to eq 'filter1'
+ expect(matched_filters[0].keyword_matches).to eq ['irrelevant']
+ end
+ end
+
+ context 'when post includes filtered individual statuses' do
+ let(:statuses) { [Fabricate(:status, text: 'hello world'), Fabricate(:status, reblog: Fabricate(:status, text: 'this toot is about an irrelevant word'))] }
+ let(:options) { {} }
+
+ before do
+ filter = Account.find(current_account_id).custom_filters.create!(phrase: 'filter1', context: %w(home), action: :hide)
+ filter.statuses.create!(status_id: statuses[0].id)
+ filter.statuses.create!(status_id: statuses[1].reblog_of_id)
+ end
+
+ it 'sets @filters_map to filter top-level status' do
+ matched_filters = presenter.filters_map[statuses[0].id]
+ expect(matched_filters.size).to eq 1
+
+ expect(matched_filters[0].filter.title).to eq 'filter1'
+ expect(matched_filters[0].status_matches).to eq [statuses[0].id]
+ end
+
+ it 'sets @filters_map to filter reblogged status' do
+ matched_filters = presenter.filters_map[statuses[1].reblog_of_id]
+ expect(matched_filters.size).to eq 1
+
+ expect(matched_filters[0].filter.title).to eq 'filter1'
+ expect(matched_filters[0].status_matches).to eq [statuses[1].reblog_of_id]
+ end
+ end
end
end
diff --git a/spec/requests/account_show_page_spec.rb b/spec/requests/account_show_page_spec.rb
index 4e51cf7efc..e84c46c47f 100644
--- a/spec/requests/account_show_page_spec.rb
+++ b/spec/requests/account_show_page_spec.rb
@@ -3,17 +3,6 @@
require 'rails_helper'
describe 'The account show page' do
- it 'Has an h-feed with correct number of h-entry objects in it' do
- alice = Fabricate(:account, username: 'alice', display_name: 'Alice')
- _status = Fabricate(:status, account: alice, text: 'Hello World')
- _status2 = Fabricate(:status, account: alice, text: 'Hello World Again')
- _status3 = Fabricate(:status, account: alice, text: 'Are You Still There World?')
-
- get '/@alice'
-
- expect(h_feed_entries.size).to eq(3)
- end
-
it 'has valid opengraph tags' do
alice = Fabricate(:account, username: 'alice', display_name: 'Alice')
_status = Fabricate(:status, account: alice, text: 'Hello World')
@@ -33,8 +22,4 @@ describe 'The account show page' do
def head_section
Nokogiri::Slop(response.body).html.head
end
-
- def h_feed_entries
- Nokogiri::HTML(response.body).search('.h-feed .h-entry')
- end
end
diff --git a/spec/requests/localization_spec.rb b/spec/requests/localization_spec.rb
index 175f02ae99..0bc2786ac4 100644
--- a/spec/requests/localization_spec.rb
+++ b/spec/requests/localization_spec.rb
@@ -10,30 +10,30 @@ describe 'Localization' do
it 'uses a specific region when provided' do
headers = { 'Accept-Language' => 'zh-HK' }
- get "/about", headers: headers
+ get "/auth/sign_in", headers: headers
expect(response.body).to include(
- I18n.t('about.tagline', locale: 'zh-HK')
+ I18n.t('auth.login', locale: 'zh-HK')
)
end
it 'falls back to a locale when region missing' do
headers = { 'Accept-Language' => 'es-FAKE' }
- get "/about", headers: headers
+ get "/auth/sign_in", headers: headers
expect(response.body).to include(
- I18n.t('about.tagline', locale: 'es')
+ I18n.t('auth.login', locale: 'es')
)
end
it 'falls back to english when locale is missing' do
headers = { 'Accept-Language' => '12-FAKE' }
- get "/about", headers: headers
+ get "/auth/sign_in", headers: headers
expect(response.body).to include(
- I18n.t('about.tagline', locale: 'en')
+ I18n.t('auth.login', locale: 'en')
)
end
end
diff --git a/spec/routing/accounts_routing_spec.rb b/spec/routing/accounts_routing_spec.rb
index d04cb27f04..3f0e9b3e95 100644
--- a/spec/routing/accounts_routing_spec.rb
+++ b/spec/routing/accounts_routing_spec.rb
@@ -1,31 +1,83 @@
require 'rails_helper'
describe 'Routes under accounts/' do
- describe 'the route for accounts who are followers of an account' do
- it 'routes to the followers action with the right username' do
- expect(get('/users/name/followers')).
- to route_to('follower_accounts#index', account_username: 'name')
+ context 'with local username' do
+ let(:username) { 'alice' }
+
+ it 'routes /@:username' do
+ expect(get("/@#{username}")).to route_to('accounts#show', username: username)
end
- end
- describe 'the route for accounts who are followed by an account' do
- it 'routes to the following action with the right username' do
- expect(get('/users/name/following')).
- to route_to('following_accounts#index', account_username: 'name')
+ it 'routes /@:username.json' do
+ expect(get("/@#{username}.json")).to route_to('accounts#show', username: username, format: 'json')
+ end
+
+ it 'routes /@:username.rss' do
+ expect(get("/@#{username}.rss")).to route_to('accounts#show', username: username, format: 'rss')
+ end
+
+ it 'routes /@:username/:id' do
+ expect(get("/@#{username}/123")).to route_to('statuses#show', account_username: username, id: '123')
+ end
+
+ it 'routes /@:username/:id/embed' do
+ expect(get("/@#{username}/123/embed")).to route_to('statuses#embed', account_username: username, id: '123')
+ end
+
+ it 'routes /@:username/following' do
+ expect(get("/@#{username}/following")).to route_to('following_accounts#index', account_username: username)
+ end
+
+ it 'routes /@:username/followers' do
+ expect(get("/@#{username}/followers")).to route_to('follower_accounts#index', account_username: username)
+ end
+
+ it 'routes /@:username/with_replies' do
+ expect(get("/@#{username}/with_replies")).to route_to('accounts#show', username: username)
+ end
+
+ it 'routes /@:username/media' do
+ expect(get("/@#{username}/media")).to route_to('accounts#show', username: username)
end
- end
- describe 'the route for following an account' do
- it 'routes to the follow create action with the right username' do
- expect(post('/users/name/follow')).
- to route_to('account_follow#create', account_username: 'name')
+ it 'routes /@:username/tagged/:tag' do
+ expect(get("/@#{username}/tagged/foo")).to route_to('accounts#show', username: username, tag: 'foo')
end
end
- describe 'the route for unfollowing an account' do
- it 'routes to the unfollow create action with the right username' do
- expect(post('/users/name/unfollow')).
- to route_to('account_unfollow#create', account_username: 'name')
+ context 'with remote username' do
+ let(:username) { 'alice@example.com' }
+
+ it 'routes /@:username' do
+ expect(get("/@#{username}")).to route_to('home#index', username_with_domain: username)
+ end
+
+ it 'routes /@:username/:id' do
+ expect(get("/@#{username}/123")).to route_to('home#index', username_with_domain: username, any: '123')
+ end
+
+ it 'routes /@:username/:id/embed' do
+ expect(get("/@#{username}/123/embed")).to route_to('home#index', username_with_domain: username, any: '123/embed')
+ end
+
+ it 'routes /@:username/following' do
+ expect(get("/@#{username}/following")).to route_to('home#index', username_with_domain: username, any: 'following')
+ end
+
+ it 'routes /@:username/followers' do
+ expect(get("/@#{username}/followers")).to route_to('home#index', username_with_domain: username, any: 'followers')
+ end
+
+ it 'routes /@:username/with_replies' do
+ expect(get("/@#{username}/with_replies")).to route_to('home#index', username_with_domain: username, any: 'with_replies')
+ end
+
+ it 'routes /@:username/media' do
+ expect(get("/@#{username}/media")).to route_to('home#index', username_with_domain: username, any: 'media')
+ end
+
+ it 'routes /@:username/tagged/:tag' do
+ expect(get("/@#{username}/tagged/foo")).to route_to('home#index', username_with_domain: username, any: 'tagged/foo')
end
end
end
diff --git a/spec/services/activitypub/fetch_featured_collection_service_spec.rb b/spec/services/activitypub/fetch_featured_collection_service_spec.rb
index f552b9dc07..e6336dc1b1 100644
--- a/spec/services/activitypub/fetch_featured_collection_service_spec.rb
+++ b/spec/services/activitypub/fetch_featured_collection_service_spec.rb
@@ -65,7 +65,7 @@ RSpec.describe ActivityPub::FetchFeaturedCollectionService, type: :service do
stub_request(:get, 'https://example.com/account/pinned/3').to_return(status: 404)
stub_request(:get, 'https://example.com/account/pinned/4').to_return(status: 200, body: Oj.dump(status_json_4))
- subject.call(actor)
+ subject.call(actor, note: true, hashtag: false)
end
it 'sets expected posts as pinned posts' do
diff --git a/spec/services/activitypub/fetch_remote_account_service_spec.rb b/spec/services/activitypub/fetch_remote_account_service_spec.rb
index aa13f0a9b7..ec6f1f41d8 100644
--- a/spec/services/activitypub/fetch_remote_account_service_spec.rb
+++ b/spec/services/activitypub/fetch_remote_account_service_spec.rb
@@ -119,6 +119,58 @@ RSpec.describe ActivityPub::FetchRemoteAccountService, type: :service do
include_examples 'sets profile data'
end
+ context 'when WebFinger returns a different URI' do
+ let!(:webfinger) { { subject: 'acct:alice@example.com', links: [{ rel: 'self', href: 'https://example.com/bob' }] } }
+
+ before do
+ stub_request(:get, 'https://example.com/alice').to_return(body: Oj.dump(actor))
+ stub_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:alice@example.com').to_return(body: Oj.dump(webfinger), headers: { 'Content-Type': 'application/jrd+json' })
+ end
+
+ it 'fetches resource' do
+ account
+ expect(a_request(:get, 'https://example.com/alice')).to have_been_made.once
+ end
+
+ it 'looks up webfinger' do
+ account
+ expect(a_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:alice@example.com')).to have_been_made.once
+ end
+
+ it 'does not create account' do
+ expect(account).to be_nil
+ end
+ end
+
+ context 'when WebFinger returns a different URI after a redirection' do
+ let!(:webfinger) { { subject: 'acct:alice@iscool.af', links: [{ rel: 'self', href: 'https://example.com/bob' }] } }
+
+ before do
+ stub_request(:get, 'https://example.com/alice').to_return(body: Oj.dump(actor))
+ stub_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:alice@example.com').to_return(body: Oj.dump(webfinger), headers: { 'Content-Type': 'application/jrd+json' })
+ stub_request(:get, 'https://iscool.af/.well-known/webfinger?resource=acct:alice@iscool.af').to_return(body: Oj.dump(webfinger), headers: { 'Content-Type': 'application/jrd+json' })
+ end
+
+ it 'fetches resource' do
+ account
+ expect(a_request(:get, 'https://example.com/alice')).to have_been_made.once
+ end
+
+ it 'looks up webfinger' do
+ account
+ expect(a_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:alice@example.com')).to have_been_made.once
+ end
+
+ it 'looks up "redirected" webfinger' do
+ account
+ expect(a_request(:get, 'https://iscool.af/.well-known/webfinger?resource=acct:alice@iscool.af')).to have_been_made.once
+ end
+
+ it 'does not create account' do
+ expect(account).to be_nil
+ end
+ end
+
context 'with wrong id' do
it 'does not create account' do
expect(subject.call('https://fake.address/@foo', prefetched_body: Oj.dump(actor))).to be_nil
diff --git a/spec/services/activitypub/fetch_remote_actor_service_spec.rb b/spec/services/activitypub/fetch_remote_actor_service_spec.rb
new file mode 100644
index 0000000000..20117c66d0
--- /dev/null
+++ b/spec/services/activitypub/fetch_remote_actor_service_spec.rb
@@ -0,0 +1,180 @@
+require 'rails_helper'
+
+RSpec.describe ActivityPub::FetchRemoteActorService, type: :service do
+ subject { ActivityPub::FetchRemoteActorService.new }
+
+ let!(:actor) do
+ {
+ '@context': 'https://www.w3.org/ns/activitystreams',
+ id: 'https://example.com/alice',
+ type: 'Person',
+ preferredUsername: 'alice',
+ name: 'Alice',
+ summary: 'Foo bar',
+ inbox: 'http://example.com/alice/inbox',
+ }
+ end
+
+ describe '#call' do
+ let(:account) { subject.call('https://example.com/alice', id: true) }
+
+ shared_examples 'sets profile data' do
+ it 'returns an account' do
+ expect(account).to be_an Account
+ end
+
+ it 'sets display name' do
+ expect(account.display_name).to eq 'Alice'
+ end
+
+ it 'sets note' do
+ expect(account.note).to eq 'Foo bar'
+ end
+
+ it 'sets URL' do
+ expect(account.url).to eq 'https://example.com/alice'
+ end
+ end
+
+ context 'when the account does not have a inbox' do
+ let!(:webfinger) { { subject: 'acct:alice@example.com', links: [{ rel: 'self', href: 'https://example.com/alice' }] } }
+
+ before do
+ actor[:inbox] = nil
+
+ stub_request(:get, 'https://example.com/alice').to_return(body: Oj.dump(actor))
+ stub_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:alice@example.com').to_return(body: Oj.dump(webfinger), headers: { 'Content-Type': 'application/jrd+json' })
+ end
+
+ it 'fetches resource' do
+ account
+ expect(a_request(:get, 'https://example.com/alice')).to have_been_made.once
+ end
+
+ it 'looks up webfinger' do
+ account
+ expect(a_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:alice@example.com')).to have_been_made.once
+ end
+
+ it 'returns nil' do
+ expect(account).to be_nil
+ end
+ end
+
+ context 'when URI and WebFinger share the same host' do
+ let!(:webfinger) { { subject: 'acct:alice@example.com', links: [{ rel: 'self', href: 'https://example.com/alice' }] } }
+
+ before do
+ stub_request(:get, 'https://example.com/alice').to_return(body: Oj.dump(actor))
+ stub_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:alice@example.com').to_return(body: Oj.dump(webfinger), headers: { 'Content-Type': 'application/jrd+json' })
+ end
+
+ it 'fetches resource' do
+ account
+ expect(a_request(:get, 'https://example.com/alice')).to have_been_made.once
+ end
+
+ it 'looks up webfinger' do
+ account
+ expect(a_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:alice@example.com')).to have_been_made.once
+ end
+
+ it 'sets username and domain from webfinger' do
+ expect(account.username).to eq 'alice'
+ expect(account.domain).to eq 'example.com'
+ end
+
+ include_examples 'sets profile data'
+ end
+
+ context 'when WebFinger presents different domain than URI' do
+ let!(:webfinger) { { subject: 'acct:alice@iscool.af', links: [{ rel: 'self', href: 'https://example.com/alice' }] } }
+
+ before do
+ stub_request(:get, 'https://example.com/alice').to_return(body: Oj.dump(actor))
+ stub_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:alice@example.com').to_return(body: Oj.dump(webfinger), headers: { 'Content-Type': 'application/jrd+json' })
+ stub_request(:get, 'https://iscool.af/.well-known/webfinger?resource=acct:alice@iscool.af').to_return(body: Oj.dump(webfinger), headers: { 'Content-Type': 'application/jrd+json' })
+ end
+
+ it 'fetches resource' do
+ account
+ expect(a_request(:get, 'https://example.com/alice')).to have_been_made.once
+ end
+
+ it 'looks up webfinger' do
+ account
+ expect(a_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:alice@example.com')).to have_been_made.once
+ end
+
+ it 'looks up "redirected" webfinger' do
+ account
+ expect(a_request(:get, 'https://iscool.af/.well-known/webfinger?resource=acct:alice@iscool.af')).to have_been_made.once
+ end
+
+ it 'sets username and domain from final webfinger' do
+ expect(account.username).to eq 'alice'
+ expect(account.domain).to eq 'iscool.af'
+ end
+
+ include_examples 'sets profile data'
+ end
+
+ context 'when WebFinger returns a different URI' do
+ let!(:webfinger) { { subject: 'acct:alice@example.com', links: [{ rel: 'self', href: 'https://example.com/bob' }] } }
+
+ before do
+ stub_request(:get, 'https://example.com/alice').to_return(body: Oj.dump(actor))
+ stub_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:alice@example.com').to_return(body: Oj.dump(webfinger), headers: { 'Content-Type': 'application/jrd+json' })
+ end
+
+ it 'fetches resource' do
+ account
+ expect(a_request(:get, 'https://example.com/alice')).to have_been_made.once
+ end
+
+ it 'looks up webfinger' do
+ account
+ expect(a_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:alice@example.com')).to have_been_made.once
+ end
+
+ it 'does not create account' do
+ expect(account).to be_nil
+ end
+ end
+
+ context 'when WebFinger returns a different URI after a redirection' do
+ let!(:webfinger) { { subject: 'acct:alice@iscool.af', links: [{ rel: 'self', href: 'https://example.com/bob' }] } }
+
+ before do
+ stub_request(:get, 'https://example.com/alice').to_return(body: Oj.dump(actor))
+ stub_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:alice@example.com').to_return(body: Oj.dump(webfinger), headers: { 'Content-Type': 'application/jrd+json' })
+ stub_request(:get, 'https://iscool.af/.well-known/webfinger?resource=acct:alice@iscool.af').to_return(body: Oj.dump(webfinger), headers: { 'Content-Type': 'application/jrd+json' })
+ end
+
+ it 'fetches resource' do
+ account
+ expect(a_request(:get, 'https://example.com/alice')).to have_been_made.once
+ end
+
+ it 'looks up webfinger' do
+ account
+ expect(a_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:alice@example.com')).to have_been_made.once
+ end
+
+ it 'looks up "redirected" webfinger' do
+ account
+ expect(a_request(:get, 'https://iscool.af/.well-known/webfinger?resource=acct:alice@iscool.af')).to have_been_made.once
+ end
+
+ it 'does not create account' do
+ expect(account).to be_nil
+ end
+ end
+
+ context 'with wrong id' do
+ it 'does not create account' do
+ expect(subject.call('https://fake.address/@foo', prefetched_body: Oj.dump(actor))).to be_nil
+ end
+ end
+ end
+end
diff --git a/spec/services/activitypub/fetch_remote_key_service_spec.rb b/spec/services/activitypub/fetch_remote_key_service_spec.rb
new file mode 100644
index 0000000000..3186c4270d
--- /dev/null
+++ b/spec/services/activitypub/fetch_remote_key_service_spec.rb
@@ -0,0 +1,83 @@
+require 'rails_helper'
+
+RSpec.describe ActivityPub::FetchRemoteKeyService, type: :service do
+ subject { ActivityPub::FetchRemoteKeyService.new }
+
+ let(:webfinger) { { subject: 'acct:alice@example.com', links: [{ rel: 'self', href: 'https://example.com/alice' }] } }
+
+ let(:public_key_pem) do
+ "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAu3L4vnpNLzVH31MeWI39\n4F0wKeJFsLDAsNXGeOu0QF2x+h1zLWZw/agqD2R3JPU9/kaDJGPIV2Sn5zLyUA9S\n6swCCMOtn7BBR9g9sucgXJmUFB0tACH2QSgHywMAybGfmSb3LsEMNKsGJ9VsvYoh\n8lDET6X4Pyw+ZJU0/OLo/41q9w+OrGtlsTm/PuPIeXnxa6BLqnDaxC+4IcjG/FiP\nahNCTINl/1F/TgSSDZ4Taf4U9XFEIFw8wmgploELozzIzKq+t8nhQYkgAkt64euW\npva3qL5KD1mTIZQEP+LZvh3s2WHrLi3fhbdRuwQ2c0KkJA2oSTFPDpqqbPGZ3Qvu\nHQIDAQAB\n-----END PUBLIC KEY-----\n"
+ end
+
+ let(:public_key_id) { 'https://example.com/alice#main-key' }
+
+ let(:key_json) do
+ {
+ id: public_key_id,
+ owner: 'https://example.com/alice',
+ publicKeyPem: public_key_pem,
+ }
+ end
+
+ let(:actor_public_key) { key_json }
+
+ let(:actor) do
+ {
+ '@context': [
+ 'https://www.w3.org/ns/activitystreams',
+ 'https://w3id.org/security/v1',
+ ],
+ id: 'https://example.com/alice',
+ type: 'Person',
+ preferredUsername: 'alice',
+ name: 'Alice',
+ summary: 'Foo bar',
+ inbox: 'http://example.com/alice/inbox',
+ publicKey: actor_public_key,
+ }
+ end
+
+ before do
+ stub_request(:get, 'https://example.com/alice').to_return(body: Oj.dump(actor))
+ stub_request(:get, 'https://example.com/.well-known/webfinger?resource=acct:alice@example.com').to_return(body: Oj.dump(webfinger), headers: { 'Content-Type': 'application/jrd+json' })
+ end
+
+ describe '#call' do
+ let(:account) { subject.call(public_key_id, id: false) }
+
+ context 'when the key is a sub-object from the actor' do
+ before do
+ stub_request(:get, public_key_id).to_return(body: Oj.dump(actor))
+ end
+
+ it 'returns the expected account' do
+ expect(account.uri).to eq 'https://example.com/alice'
+ end
+ end
+
+ context 'when the key is a separate document' do
+ let(:public_key_id) { 'https://example.com/alice-public-key.json' }
+
+ before do
+ stub_request(:get, public_key_id).to_return(body: Oj.dump(key_json.merge({ '@context': ['https://www.w3.org/ns/activitystreams', 'https://w3id.org/security/v1'] })))
+ end
+
+ it 'returns the expected account' do
+ expect(account.uri).to eq 'https://example.com/alice'
+ end
+ end
+
+ context 'when the key and owner do not match' do
+ let(:public_key_id) { 'https://example.com/fake-public-key.json' }
+ let(:actor_public_key) { 'https://example.com/alice-public-key.json' }
+
+ before do
+ stub_request(:get, public_key_id).to_return(body: Oj.dump(key_json.merge({ '@context': ['https://www.w3.org/ns/activitystreams', 'https://w3id.org/security/v1'] })))
+ end
+
+ it 'returns the nil' do
+ expect(account).to be_nil
+ end
+ end
+ end
+end
diff --git a/spec/services/activitypub/process_collection_service_spec.rb b/spec/services/activitypub/process_collection_service_spec.rb
index 3eccaab5bb..093a188a21 100644
--- a/spec/services/activitypub/process_collection_service_spec.rb
+++ b/spec/services/activitypub/process_collection_service_spec.rb
@@ -68,7 +68,7 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do
let(:forwarder) { Fabricate(:account, domain: 'example.com', uri: 'http://example.com/other_account') }
it 'does not process payload if no signature exists' do
- expect_any_instance_of(ActivityPub::LinkedDataSignature).to receive(:verify_account!).and_return(nil)
+ expect_any_instance_of(ActivityPub::LinkedDataSignature).to receive(:verify_actor!).and_return(nil)
expect(ActivityPub::Activity).not_to receive(:factory)
subject.call(json, forwarder)
@@ -77,7 +77,7 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do
it 'processes payload with actor if valid signature exists' do
payload['signature'] = { 'type' => 'RsaSignature2017' }
- expect_any_instance_of(ActivityPub::LinkedDataSignature).to receive(:verify_account!).and_return(actor)
+ expect_any_instance_of(ActivityPub::LinkedDataSignature).to receive(:verify_actor!).and_return(actor)
expect(ActivityPub::Activity).to receive(:factory).with(instance_of(Hash), actor, instance_of(Hash))
subject.call(json, forwarder)
@@ -86,7 +86,7 @@ RSpec.describe ActivityPub::ProcessCollectionService, type: :service do
it 'does not process payload if invalid signature exists' do
payload['signature'] = { 'type' => 'RsaSignature2017' }
- expect_any_instance_of(ActivityPub::LinkedDataSignature).to receive(:verify_account!).and_return(nil)
+ expect_any_instance_of(ActivityPub::LinkedDataSignature).to receive(:verify_actor!).and_return(nil)
expect(ActivityPub::Activity).not_to receive(:factory)
subject.call(json, forwarder)
diff --git a/spec/services/app_sign_up_service_spec.rb b/spec/services/app_sign_up_service_spec.rb
index e0c83b7041..8ec4d4a7a6 100644
--- a/spec/services/app_sign_up_service_spec.rb
+++ b/spec/services/app_sign_up_service_spec.rb
@@ -11,7 +11,7 @@ RSpec.describe AppSignUpService, type: :service do
it 'returns nil when registrations are closed' do
tmp = Setting.registrations_mode
Setting.registrations_mode = 'none'
- expect(subject.call(app, remote_ip, good_params)).to be_nil
+ expect { subject.call(app, remote_ip, good_params) }.to raise_error Mastodon::NotPermittedError
Setting.registrations_mode = tmp
end
diff --git a/spec/services/fetch_resource_service_spec.rb b/spec/services/fetch_resource_service_spec.rb
index ded05ffbc7..c0c96ab69c 100644
--- a/spec/services/fetch_resource_service_spec.rb
+++ b/spec/services/fetch_resource_service_spec.rb
@@ -66,7 +66,7 @@ RSpec.describe FetchResourceService, type: :service do
it 'signs request' do
subject
- expect(a_request(:get, url).with(headers: { 'Signature' => /keyId="#{Regexp.escape(ActivityPub::TagManager.instance.uri_for(Account.representative) + '#main-key')}"/ })).to have_been_made
+ expect(a_request(:get, url).with(headers: { 'Signature' => /keyId="#{Regexp.escape(ActivityPub::TagManager.instance.key_uri_for(Account.representative))}"/ })).to have_been_made
end
context 'when content type is application/atom+xml' do
diff --git a/spec/services/follow_service_spec.rb b/spec/services/follow_service_spec.rb
index 02bc87c58d..88346ec54a 100644
--- a/spec/services/follow_service_spec.rb
+++ b/spec/services/follow_service_spec.rb
@@ -121,6 +121,19 @@ RSpec.describe FollowService, type: :service do
expect(sender.muting_reblogs?(bob)).to be false
end
end
+
+ describe 'already followed account, changing languages' do
+ let(:bob) { Fabricate(:account, username: 'bob') }
+
+ before do
+ sender.follow!(bob)
+ subject.call(sender, bob, languages: %w(en es))
+ end
+
+ it 'changes languages' do
+ expect(Follow.find_by(account: sender, target_account: bob)&.languages).to match_array %w(en es)
+ end
+ end
end
context 'remote ActivityPub account' do
diff --git a/spec/services/report_service_spec.rb b/spec/services/report_service_spec.rb
index 7e6a113e02..02bc42ac17 100644
--- a/spec/services/report_service_spec.rb
+++ b/spec/services/report_service_spec.rb
@@ -28,6 +28,62 @@ RSpec.describe ReportService, type: :service do
end
end
+ context 'when the reported status is a DM' do
+ let(:target_account) { Fabricate(:account) }
+ let(:status) { Fabricate(:status, account: target_account, visibility: :direct) }
+
+ subject do
+ -> { described_class.new.call(source_account, target_account, status_ids: [status.id]) }
+ end
+
+ context 'when it is addressed to the reporter' do
+ before do
+ status.mentions.create(account: source_account)
+ end
+
+ it 'creates a report' do
+ expect { subject.call }.to change { target_account.targeted_reports.count }.from(0).to(1)
+ end
+
+ it 'attaches the DM to the report' do
+ subject.call
+ expect(target_account.targeted_reports.pluck(:status_ids)).to eq [[status.id]]
+ end
+ end
+
+ context 'when it is not addressed to the reporter' do
+ it 'errors out' do
+ expect { subject.call }.to raise_error(ActiveRecord::RecordNotFound)
+ end
+ end
+
+ context 'when the reporter is remote' do
+ let(:source_account) { Fabricate(:account, domain: 'example.com', uri: 'https://example.com/users/1') }
+
+ context 'when it is addressed to the reporter' do
+ before do
+ status.mentions.create(account: source_account)
+ end
+
+ it 'creates a report' do
+ expect { subject.call }.to change { target_account.targeted_reports.count }.from(0).to(1)
+ end
+
+ it 'attaches the DM to the report' do
+ subject.call
+ expect(target_account.targeted_reports.pluck(:status_ids)).to eq [[status.id]]
+ end
+ end
+
+ context 'when it is not addressed to the reporter' do
+ it 'does not add the DM to the report' do
+ subject.call
+ expect(target_account.targeted_reports.pluck(:status_ids)).to eq [[]]
+ end
+ end
+ end
+ end
+
context 'when other reports already exist for the same target' do
let!(:target_account) { Fabricate(:account) }
let!(:other_report) { Fabricate(:report, target_account: target_account) }
@@ -42,7 +98,7 @@ RSpec.describe ReportService, type: :service do
end
it 'does not send an e-mail' do
- is_expected.to_not change(ActionMailer::Base.deliveries, :count).from(0)
+ expect { subject.call }.to_not change(ActionMailer::Base.deliveries, :count).from(0)
end
end
end
diff --git a/spec/services/resolve_account_service_spec.rb b/spec/services/resolve_account_service_spec.rb
index 8c302e1d86..654606beab 100644
--- a/spec/services/resolve_account_service_spec.rb
+++ b/spec/services/resolve_account_service_spec.rb
@@ -137,8 +137,8 @@ RSpec.describe ResolveAccountService, type: :service do
stub_request(:get, 'https://evil.example.com/.well-known/webfinger?resource=acct:foo@evil.example.com').to_return(body: Oj.dump(webfinger2), headers: { 'Content-Type': 'application/jrd+json' })
end
- it 'returns new remote account' do
- expect { subject.call('Foo@redirected.example.com') }.to raise_error Webfinger::RedirectError
+ it 'does not return a new remote account' do
+ expect(subject.call('Foo@redirected.example.com')).to be_nil
end
end
diff --git a/spec/views/about/show.html.haml_spec.rb b/spec/views/about/show.html.haml_spec.rb
deleted file mode 100644
index 140f3fd41c..0000000000
--- a/spec/views/about/show.html.haml_spec.rb
+++ /dev/null
@@ -1,46 +0,0 @@
-# frozen_string_literal: true
-
-require 'rails_helper'
-
-describe 'about/show.html.haml', without_verify_partial_doubles: true do
- let(:commit_hash) { '8925731c9869f55780644304e4420a1998e52607' }
-
- before do
- allow(view).to receive(:site_hostname).and_return('example.com')
- allow(view).to receive(:site_title).and_return('example site')
- allow(view).to receive(:new_user).and_return(User.new)
- allow(view).to receive(:use_seamless_external_login?).and_return(false)
- allow(view).to receive(:current_account).and_return(nil)
- end
-
- it 'has valid open graph tags' do
- instance_presenter = double(
- :instance_presenter,
- site_title: 'something',
- site_short_description: 'something',
- site_description: 'something',
- version_number: '1.0',
- source_url: 'https://github.com/mastodon/mastodon',
- open_registrations: false,
- thumbnail: nil,
- hero: nil,
- mascot: nil,
- user_count: 420,
- status_count: 69,
- active_user_count: 420,
- commit_hash: commit_hash,
- contact_account: nil,
- sample_accounts: []
- )
-
- assign(:instance_presenter, instance_presenter)
- render
-
- header_tags = view.content_for(:header_tags)
-
- expect(header_tags).to match(%r{ })
- expect(header_tags).to match(%r{ })
- expect(header_tags).to match(%r{ })
- expect(header_tags).to match(%r{ })
- end
-end
diff --git a/spec/views/statuses/show.html.haml_spec.rb b/spec/views/statuses/show.html.haml_spec.rb
index 879a26959e..eeea2f6985 100644
--- a/spec/views/statuses/show.html.haml_spec.rb
+++ b/spec/views/statuses/show.html.haml_spec.rb
@@ -12,57 +12,10 @@ describe 'statuses/show.html.haml', without_verify_partial_doubles: true do
allow(view).to receive(:local_time)
allow(view).to receive(:local_time_ago)
allow(view).to receive(:current_account).and_return(nil)
+ allow(view).to receive(:single_user_mode?).and_return(false)
assign(:instance_presenter, InstancePresenter.new)
end
- it 'has valid author h-card and basic data for a detailed_status' do
- alice = Fabricate(:account, username: 'alice', display_name: 'Alice')
- bob = Fabricate(:account, username: 'bob', display_name: 'Bob')
- status = Fabricate(:status, account: alice, text: 'Hello World')
- media = Fabricate(:media_attachment, account: alice, status: status, type: :video)
- reply = Fabricate(:status, account: bob, thread: status, text: 'Hello Alice')
-
- assign(:status, status)
- assign(:account, alice)
- assign(:descendant_threads, [])
-
- render
-
- mf2 = Microformats.parse(rendered)
-
- expect(mf2.entry.url.to_s).not_to be_empty
- expect(mf2.entry.author.name.to_s).to eq alice.display_name
- expect(mf2.entry.author.url.to_s).not_to be_empty
- end
-
- it 'has valid h-cites for p-in-reply-to and p-comment' do
- alice = Fabricate(:account, username: 'alice', display_name: 'Alice')
- bob = Fabricate(:account, username: 'bob', display_name: 'Bob')
- carl = Fabricate(:account, username: 'carl', display_name: 'Carl')
- status = Fabricate(:status, account: alice, text: 'Hello World')
- media = Fabricate(:media_attachment, account: alice, status: status, type: :video)
- reply = Fabricate(:status, account: bob, thread: status, text: 'Hello Alice')
- comment = Fabricate(:status, account: carl, thread: reply, text: 'Hello Bob')
-
- assign(:status, reply)
- assign(:account, alice)
- assign(:ancestors, reply.ancestors(1, bob))
- assign(:descendant_threads, [{ statuses: reply.descendants(1) }])
-
- render
-
- mf2 = Microformats.parse(rendered)
-
- expect(mf2.entry.url.to_s).not_to be_empty
- expect(mf2.entry.comment.url.to_s).not_to be_empty
- expect(mf2.entry.comment.author.name.to_s).to eq carl.display_name
- expect(mf2.entry.comment.author.url.to_s).not_to be_empty
-
- expect(mf2.entry.in_reply_to.url.to_s).not_to be_empty
- expect(mf2.entry.in_reply_to.author.name.to_s).to eq alice.display_name
- expect(mf2.entry.in_reply_to.author.url.to_s).not_to be_empty
- end
-
it 'has valid opengraph tags' do
alice = Fabricate(:account, username: 'alice', display_name: 'Alice')
status = Fabricate(:status, account: alice, text: 'Hello World')
diff --git a/spec/workers/digest_mailer_worker_spec.rb b/spec/workers/digest_mailer_worker_spec.rb
deleted file mode 100644
index db3b1390d5..0000000000
--- a/spec/workers/digest_mailer_worker_spec.rb
+++ /dev/null
@@ -1,36 +0,0 @@
-# frozen_string_literal: true
-
-require 'rails_helper'
-
-describe DigestMailerWorker do
- describe 'perform' do
- let(:user) { Fabricate(:user, last_emailed_at: 3.days.ago) }
-
- context 'for a user who receives digests' do
- it 'sends the email' do
- service = double(deliver_now!: nil)
- allow(NotificationMailer).to receive(:digest).and_return(service)
- update_user_digest_setting(true)
- described_class.perform_async(user.id)
-
- expect(NotificationMailer).to have_received(:digest)
- expect(user.reload.last_emailed_at).to be_within(1).of(Time.now.utc)
- end
- end
-
- context 'for a user who does not receive digests' do
- it 'does not send the email' do
- allow(NotificationMailer).to receive(:digest)
- update_user_digest_setting(false)
- described_class.perform_async(user.id)
-
- expect(NotificationMailer).not_to have_received(:digest)
- expect(user.last_emailed_at).to be_within(1).of(3.days.ago)
- end
- end
-
- def update_user_digest_setting(value)
- user.settings['notification_emails'] = user.settings['notification_emails'].merge('digest' => value)
- end
- end
-end
diff --git a/spec/workers/refollow_worker_spec.rb b/spec/workers/refollow_worker_spec.rb
index df6731b640..d9c2293b62 100644
--- a/spec/workers/refollow_worker_spec.rb
+++ b/spec/workers/refollow_worker_spec.rb
@@ -23,8 +23,8 @@ describe RefollowWorker do
result = subject.perform(account.id)
expect(result).to be_nil
- expect(service).to have_received(:call).with(alice, account, reblogs: true, notify: false, bypass_limit: true)
- expect(service).to have_received(:call).with(bob, account, reblogs: false, notify: false, bypass_limit: true)
+ expect(service).to have_received(:call).with(alice, account, reblogs: true, notify: false, languages: nil, bypass_limit: true)
+ expect(service).to have_received(:call).with(bob, account, reblogs: false, notify: false, languages: nil, bypass_limit: true)
end
end
end
diff --git a/spec/workers/scheduler/feed_cleanup_scheduler_spec.rb b/spec/workers/scheduler/feed_cleanup_scheduler_spec.rb
deleted file mode 100644
index 82d7945946..0000000000
--- a/spec/workers/scheduler/feed_cleanup_scheduler_spec.rb
+++ /dev/null
@@ -1,26 +0,0 @@
-require 'rails_helper'
-
-describe Scheduler::FeedCleanupScheduler do
- subject { described_class.new }
-
- let!(:active_user) { Fabricate(:user, current_sign_in_at: 2.days.ago) }
- let!(:inactive_user) { Fabricate(:user, current_sign_in_at: 22.days.ago) }
-
- it 'clears feeds of inactives' do
- redis.zadd(feed_key_for(inactive_user), 1, 1)
- redis.zadd(feed_key_for(active_user), 1, 1)
- redis.zadd(feed_key_for(inactive_user, 'reblogs'), 2, 2)
- redis.sadd(feed_key_for(inactive_user, 'reblogs:2'), 3)
-
- subject.perform
-
- expect(redis.zcard(feed_key_for(inactive_user))).to eq 0
- expect(redis.zcard(feed_key_for(active_user))).to eq 1
- expect(redis.exists?(feed_key_for(inactive_user, 'reblogs'))).to be false
- expect(redis.exists?(feed_key_for(inactive_user, 'reblogs:2'))).to be false
- end
-
- def feed_key_for(user, subtype = nil)
- FeedManager.instance.key(:home, user.account_id, subtype)
- end
-end
diff --git a/spec/workers/scheduler/media_cleanup_scheduler_spec.rb b/spec/workers/scheduler/media_cleanup_scheduler_spec.rb
deleted file mode 100644
index 8a0da67e1b..0000000000
--- a/spec/workers/scheduler/media_cleanup_scheduler_spec.rb
+++ /dev/null
@@ -1,15 +0,0 @@
-require 'rails_helper'
-
-describe Scheduler::MediaCleanupScheduler do
- subject { described_class.new }
-
- let!(:old_media) { Fabricate(:media_attachment, account_id: nil, created_at: 10.days.ago) }
- let!(:new_media) { Fabricate(:media_attachment, account_id: nil, created_at: 1.hour.ago) }
-
- it 'removes old media records' do
- subject.perform
-
- expect { old_media.reload }.to raise_error(ActiveRecord::RecordNotFound)
- expect(new_media.reload).to be_persisted
- end
-end
diff --git a/streaming/index.js b/streaming/index.js
index e68f85c17e..ff7d48250b 100644
--- a/streaming/index.js
+++ b/streaming/index.js
@@ -12,6 +12,7 @@ const url = require('url');
const uuid = require('uuid');
const fs = require('fs');
const WebSocket = require('ws');
+const { JSDOM } = require('jsdom');
const env = process.env.NODE_ENV || 'development';
const alwaysRequireAuth = process.env.LIMITED_FEDERATION_MODE === 'true' || process.env.WHITELIST_MODE === 'true' || process.env.AUTHORIZED_FETCH === 'true';
@@ -504,6 +505,9 @@ const startWorker = async (workerId) => {
if (event === 'kill') {
log.verbose(req.requestId, `Closing connection for ${req.accountId} due to expired access token`);
eventHandlers.onKill();
+ } else if (event === 'filters_changed') {
+ log.verbose(req.requestId, `Invalidating filters cache for ${req.accountId}`);
+ req.cachedFilters = null;
}
};
};
@@ -513,7 +517,8 @@ const startWorker = async (workerId) => {
* @param {any} res
*/
const subscribeHttpToSystemChannel = (req, res) => {
- const systemChannelId = `timeline:access_token:${req.accessTokenId}`;
+ const accessTokenChannelId = `timeline:access_token:${req.accessTokenId}`;
+ const systemChannelId = `timeline:system:${req.accountId}`;
const listener = createSystemMessageListener(req, {
@@ -524,9 +529,11 @@ const startWorker = async (workerId) => {
});
res.on('close', () => {
+ unsubscribe(`${redisPrefix}${accessTokenChannelId}`, listener);
unsubscribe(`${redisPrefix}${systemChannelId}`, listener);
});
+ subscribe(`${redisPrefix}${accessTokenChannelId}`, listener);
subscribe(`${redisPrefix}${systemChannelId}`, listener);
};
@@ -682,17 +689,84 @@ const startWorker = async (workerId) => {
queries.push(client.query('SELECT 1 FROM account_domain_blocks WHERE account_id = $1 AND domain = $2', [req.accountId, accountDomain]));
}
+ if (!unpackedPayload.filter_results && !req.cachedFilters) {
+ queries.push(client.query('SELECT filter.id AS id, filter.phrase AS title, filter.context AS context, filter.expires_at AS expires_at, filter.action AS filter_action, keyword.keyword AS keyword, keyword.whole_word AS whole_word FROM custom_filter_keywords keyword JOIN custom_filters filter ON keyword.custom_filter_id = filter.id WHERE filter.account_id = $1 AND filter.expires_at IS NULL OR filter.expires_at > NOW()', [req.accountId]));
+ }
+
Promise.all(queries).then(values => {
done();
- if (values[0].rows.length > 0 || (values.length > 1 && values[1].rows.length > 0)) {
+ if (values[0].rows.length > 0 || (accountDomain && values[1].rows.length > 0)) {
return;
}
+ if (!unpackedPayload.filter_results && !req.cachedFilters) {
+ const filterRows = values[accountDomain ? 2 : 1].rows;
+
+ req.cachedFilters = filterRows.reduce((cache, row) => {
+ if (cache[row.id]) {
+ cache[row.id].keywords.push([row.keyword, row.whole_word]);
+ } else {
+ cache[row.id] = {
+ keywords: [[row.keyword, row.whole_word]],
+ expires_at: row.expires_at,
+ repr: {
+ id: row.id,
+ title: row.title,
+ context: row.context,
+ expires_at: row.expires_at,
+ filter_action: row.filter_action,
+ },
+ };
+ }
+
+ return cache;
+ }, {});
+
+ Object.keys(req.cachedFilters).forEach((key) => {
+ req.cachedFilters[key].regexp = new RegExp(req.cachedFilters[key].keywords.map(([keyword, whole_word]) => {
+ let expr = keyword.replace(/[.*+?^${}()|[\]\\]/g, '\\$&');;
+
+ if (whole_word) {
+ if (/^[\w]/.test(expr)) {
+ expr = `\\b${expr}`;
+ }
+
+ if (/[\w]$/.test(expr)) {
+ expr = `${expr}\\b`;
+ }
+ }
+
+ return expr;
+ }).join('|'), 'i');
+ });
+ }
+
+ // Check filters
+ if (req.cachedFilters && !unpackedPayload.filter_results) {
+ const status = unpackedPayload;
+ const searchContent = ([status.spoiler_text || '', status.content].concat((status.poll && status.poll.options) ? status.poll.options.map(option => option.title) : [])).concat(status.media_attachments.map(att => att.description)).join('\n\n').replace(/ /g, '\n').replace(/<\/p>/g, '\n\n');
+ const searchIndex = JSDOM.fragment(searchContent).textContent;
+
+ const now = new Date();
+ payload.filter_results = [];
+ Object.values(req.cachedFilters).forEach((cachedFilter) => {
+ if ((cachedFilter.expires_at === null || cachedFilter.expires_at > now)) {
+ const keyword_matches = searchIndex.match(cachedFilter.regexp);
+ if (keyword_matches) {
+ payload.filter_results.push({
+ filter: cachedFilter.repr,
+ keyword_matches,
+ });
+ }
+ }
+ });
+ }
+
transmit();
}).catch(err => {
- done();
log.error(err);
+ done();
});
});
};
@@ -826,6 +900,34 @@ const startWorker = async (workerId) => {
return arr;
};
+ /**
+ * See app/lib/ascii_folder.rb for the canon definitions
+ * of these constants
+ */
+ const NON_ASCII_CHARS = 'ÀÁÂÃÄÅàáâãäåĀāĂ㥹ÇçĆćĈĉĊċČčÐðĎďĐđÈÉÊËèéêëĒēĔĕĖėĘęĚěĜĝĞğĠġĢģĤĥĦħÌÍÎÏìíîïĨĩĪīĬĭĮįİıĴĵĶķĸĹĺĻļĽľĿŀŁłÑñŃńŅņŇňʼnŊŋÒÓÔÕÖØòóôõöøŌōŎŏŐőŔŕŖŗŘřŚśŜŝŞşŠšſŢţŤťŦŧÙÚÛÜùúûüŨũŪūŬŭŮůŰűŲųŴŵÝýÿŶŷŸŹźŻżŽž';
+ const EQUIVALENT_ASCII_CHARS = 'AAAAAAaaaaaaAaAaAaCcCcCcCcCcDdDdDdEEEEeeeeEeEeEeEeEeGgGgGgGgHhHhIIIIiiiiIiIiIiIiIiJjKkkLlLlLlLlLlNnNnNnNnnNnOOOOOOooooooOoOoOoRrRrRrSsSsSsSssTtTtTtUUUUuuuuUuUuUuUuUuUuWwYyyYyYZzZzZz';
+
+ /**
+ * @param {string} str
+ * @return {string}
+ */
+ const foldToASCII = str => {
+ const regex = new RegExp(NON_ASCII_CHARS.split('').join('|'), 'g');
+
+ return str.replace(regex, match => {
+ const index = NON_ASCII_CHARS.indexOf(match);
+ return EQUIVALENT_ASCII_CHARS[index];
+ });
+ };
+
+ /**
+ * @param {string} str
+ * @return {string}
+ */
+ const normalizeHashtag = str => {
+ return foldToASCII(str.normalize('NFKC').toLowerCase()).replace(/[^\p{L}\p{N}_\u00b7\u200c]/gu, '');
+ };
+
/**
* @param {any} req
* @param {string} name
@@ -916,7 +1018,7 @@ const startWorker = async (workerId) => {
reject('No tag for stream provided');
} else {
resolve({
- channelIds: [`timeline:hashtag:${params.tag.toLowerCase()}`],
+ channelIds: [`timeline:hashtag:${normalizeHashtag(params.tag)}`],
options: { needsFiltering: true, allowLocalOnly: true },
});
}
@@ -927,7 +1029,7 @@ const startWorker = async (workerId) => {
reject('No tag for stream provided');
} else {
resolve({
- channelIds: [`timeline:hashtag:${params.tag.toLowerCase()}:local`],
+ channelIds: [`timeline:hashtag:${normalizeHashtag(params.tag)}:local`],
options: { needsFiltering: true, allowLocalOnly: true },
});
}
@@ -1031,7 +1133,8 @@ const startWorker = async (workerId) => {
* @param {WebSocketSession} session
*/
const subscribeWebsocketToSystemChannel = ({ socket, request, subscriptions }) => {
- const systemChannelId = `timeline:access_token:${request.accessTokenId}`;
+ const accessTokenChannelId = `timeline:access_token:${request.accessTokenId}`;
+ const systemChannelId = `timeline:system:${request.accountId}`;
const listener = createSystemMessageListener(request, {
@@ -1041,8 +1144,15 @@ const startWorker = async (workerId) => {
});
+ subscribe(`${redisPrefix}${accessTokenChannelId}`, listener);
subscribe(`${redisPrefix}${systemChannelId}`, listener);
+ subscriptions[accessTokenChannelId] = {
+ listener,
+ stopHeartbeat: () => {
+ },
+ };
+
subscriptions[systemChannelId] = {
listener,
stopHeartbeat: () => {
diff --git a/yarn.lock b/yarn.lock
index 05922b4825..e023ee6c9a 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2,6 +2,11 @@
# yarn lockfile v1
+"@adobe/css-tools@^4.0.1":
+ version "4.0.1"
+ resolved "https://registry.yarnpkg.com/@adobe/css-tools/-/css-tools-4.0.1.tgz#b38b444ad3aa5fedbb15f2f746dcd934226a12dd"
+ integrity sha512-+u76oB43nOHrF4DDWRLWDCtci7f3QJoEBigemIdIeTi1ODqjx6Tad9NCVnPRwewWlKkVab5PlK8DCtPTyX7S8g==
+
"@ampproject/remapping@^2.1.0":
version "2.1.2"
resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.1.2.tgz#4edca94973ded9630d20101cd8559cedb8d8bd34"
@@ -9,6 +14,15 @@
dependencies:
"@jridgewell/trace-mapping" "^0.3.0"
+"@apideck/better-ajv-errors@^0.3.1":
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/@apideck/better-ajv-errors/-/better-ajv-errors-0.3.3.tgz#ab0b1e981e1749bf59736cf7ebe25cfc9f949c15"
+ integrity sha512-9o+HO2MbJhJHjDYZaDxJmSDckvDpiuItEsrIShV0DXeCshXWRHhqYyU/PKHMkuClOmFnZhRd6wzv4vpDu/dRKg==
+ dependencies:
+ json-schema "^0.4.0"
+ jsonpointer "^5.0.0"
+ leven "^3.1.0"
+
"@babel/code-frame@7.12.11":
version "7.12.11"
resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.12.11.tgz#f4ad435aa263db935b8f10f2c552d23fb716a63f"
@@ -16,318 +30,331 @@
dependencies:
"@babel/highlight" "^7.10.4"
-"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.16.7.tgz#44416b6bd7624b998f5b1af5d470856c40138789"
- integrity sha512-iAXqUn8IIeBTNd72xsFlgaXHkMBMt6y4HJp1tIaK465CWLT/fG1aqB7ykr95gHHmlBdGbFeWWfyB4NJJ0nmeIg==
+"@babel/code-frame@^7.0.0", "@babel/code-frame@^7.10.4", "@babel/code-frame@^7.12.13", "@babel/code-frame@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.18.6.tgz#3b25d38c89600baa2dcc219edfa88a74eb2c427a"
+ integrity sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==
dependencies:
- "@babel/highlight" "^7.16.7"
+ "@babel/highlight" "^7.18.6"
-"@babel/compat-data@^7.13.11", "@babel/compat-data@^7.17.10":
- version "7.17.10"
- resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.17.10.tgz#711dc726a492dfc8be8220028b1b92482362baab"
- integrity sha512-GZt/TCsG70Ms19gfZO1tM4CVnXsPgEPBCpJu+Qz3L0LUDsY5nZqFZglIoPC1kIYOtNBZlrnFT+klg12vFGZXrw==
+"@babel/compat-data@^7.17.7", "@babel/compat-data@^7.19.3", "@babel/compat-data@^7.19.4":
+ version "7.19.4"
+ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.19.4.tgz#95c86de137bf0317f3a570e1b6e996b427299747"
+ integrity sha512-CHIGpJcUQ5lU9KrPHTjBMhVwQG6CQjxfg36fGXl3qk/Gik1WwWachaXFuo0uCWJT/mStOKtcbFJCaVLihC1CMw==
-"@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.18.2", "@babel/core@^7.7.2":
- version "7.18.2"
- resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.18.2.tgz#87b2fcd7cce9becaa7f5acebdc4f09f3dd19d876"
- integrity sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==
+"@babel/core@^7.11.1", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.19.6", "@babel/core@^7.7.2":
+ version "7.19.6"
+ resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.19.6.tgz#7122ae4f5c5a37c0946c066149abd8e75f81540f"
+ integrity sha512-D2Ue4KHpc6Ys2+AxpIx1BZ8+UegLLLE2p3KJEuJRKmokHOtl49jQ5ny1773KsGLZs8MQvBidAF6yWUJxRqtKtg==
dependencies:
"@ampproject/remapping" "^2.1.0"
- "@babel/code-frame" "^7.16.7"
- "@babel/generator" "^7.18.2"
- "@babel/helper-compilation-targets" "^7.18.2"
- "@babel/helper-module-transforms" "^7.18.0"
- "@babel/helpers" "^7.18.2"
- "@babel/parser" "^7.18.0"
- "@babel/template" "^7.16.7"
- "@babel/traverse" "^7.18.2"
- "@babel/types" "^7.18.2"
+ "@babel/code-frame" "^7.18.6"
+ "@babel/generator" "^7.19.6"
+ "@babel/helper-compilation-targets" "^7.19.3"
+ "@babel/helper-module-transforms" "^7.19.6"
+ "@babel/helpers" "^7.19.4"
+ "@babel/parser" "^7.19.6"
+ "@babel/template" "^7.18.10"
+ "@babel/traverse" "^7.19.6"
+ "@babel/types" "^7.19.4"
convert-source-map "^1.7.0"
debug "^4.1.0"
gensync "^1.0.0-beta.2"
json5 "^2.2.1"
semver "^6.3.0"
-"@babel/eslint-parser@^7.18.2":
- version "7.18.2"
- resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.18.2.tgz#e14dee36c010edfb0153cf900c2b0815e82e3245"
- integrity sha512-oFQYkE8SuH14+uR51JVAmdqwKYXGRjEXx7s+WiagVjqQ+HPE+nnwyF2qlVG8evUsUHmPcA+6YXMEDbIhEyQc5A==
+"@babel/eslint-parser@^7.19.1":
+ version "7.19.1"
+ resolved "https://registry.yarnpkg.com/@babel/eslint-parser/-/eslint-parser-7.19.1.tgz#4f68f6b0825489e00a24b41b6a1ae35414ecd2f4"
+ integrity sha512-AqNf2QWt1rtu2/1rLswy6CDP7H9Oh3mMhk177Y67Rg8d7RD9WfOLLv8CGn6tisFvS2htm86yIe1yLF6I1UDaGQ==
dependencies:
- eslint-scope "^5.1.1"
+ "@nicolo-ribaudo/eslint-scope-5-internals" "5.1.1-v1"
eslint-visitor-keys "^2.1.0"
semver "^6.3.0"
-"@babel/generator@^7.18.2", "@babel/generator@^7.7.2":
- version "7.18.2"
- resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.18.2.tgz#33873d6f89b21efe2da63fe554460f3df1c5880d"
- integrity sha512-W1lG5vUwFvfMd8HVXqdfbuG7RuaSrTCCD8cl8fP8wOivdbtbIg2Db3IWUcgvfxKbbn6ZBGYRW/Zk1MIwK49mgw==
+"@babel/generator@^7.19.6", "@babel/generator@^7.7.2":
+ version "7.19.6"
+ resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.19.6.tgz#9e481a3fe9ca6261c972645ae3904ec0f9b34a1d"
+ integrity sha512-oHGRUQeoX1QrKeJIKVe0hwjGqNnVYsM5Nep5zo0uE0m42sLH+Fsd2pStJ5sRM1bNyTUUoz0pe2lTeMJrb/taTA==
dependencies:
- "@babel/types" "^7.18.2"
- "@jridgewell/gen-mapping" "^0.3.0"
+ "@babel/types" "^7.19.4"
+ "@jridgewell/gen-mapping" "^0.3.2"
jsesc "^2.5.1"
-"@babel/helper-annotate-as-pure@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz#bb2339a7534a9c128e3102024c60760a3a7f3862"
- integrity sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==
+"@babel/helper-annotate-as-pure@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz#eaa49f6f80d5a33f9a5dd2276e6d6e451be0a6bb"
+ integrity sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==
dependencies:
- "@babel/types" "^7.16.7"
+ "@babel/types" "^7.18.6"
-"@babel/helper-builder-binary-assignment-operator-visitor@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.16.7.tgz#38d138561ea207f0f69eb1626a418e4f7e6a580b"
- integrity sha512-C6FdbRaxYjwVu/geKW4ZeQ0Q31AftgRcdSnZ5/jsH6BzCJbtvXvhpfkbkThYSuutZA7nCXpPR6AD9zd1dprMkA==
+"@babel/helper-builder-binary-assignment-operator-visitor@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.6.tgz#f14d640ed1ee9246fb33b8255f08353acfe70e6a"
+ integrity sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw==
dependencies:
- "@babel/helper-explode-assignable-expression" "^7.16.7"
- "@babel/types" "^7.16.7"
+ "@babel/helper-explode-assignable-expression" "^7.18.6"
+ "@babel/types" "^7.18.6"
-"@babel/helper-builder-react-jsx@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.16.7.tgz#6f9da7cea0fde8420e0938d490837feb5bde8dda"
- integrity sha512-XKorXOl2868Un8/XK2o4GLlXr8Q08KthWI5W3qyCkh6tCGf5Ncg3HR4oN2UO+sqPoAlcMgz9elFW/FZvAHYotA==
+"@babel/helper-builder-react-jsx@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-builder-react-jsx/-/helper-builder-react-jsx-7.18.6.tgz#b3a302c0eb4949e5356b400cb752a91e93bf9b79"
+ integrity sha512-2ndBVP5f9zwHWQeBr5EgqTAvFhPDViMW969bbJzRhKUUylnC39CdFZdVmqk+UtkxIpwm/efPgm3SzXUSlJnjAw==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.16.7"
- "@babel/types" "^7.16.7"
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/types" "^7.18.6"
-"@babel/helper-compilation-targets@^7.13.0", "@babel/helper-compilation-targets@^7.16.7", "@babel/helper-compilation-targets@^7.17.10", "@babel/helper-compilation-targets@^7.18.2":
- version "7.18.2"
- resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.2.tgz#67a85a10cbd5fc7f1457fec2e7f45441dc6c754b"
- integrity sha512-s1jnPotJS9uQnzFtiZVBUxe67CuBa679oWFHpxYYnTpRL/1ffhyX44R9uYiXoa/pLXcY9H2moJta0iaanlk/rQ==
+"@babel/helper-compilation-targets@^7.17.7", "@babel/helper-compilation-targets@^7.18.9", "@babel/helper-compilation-targets@^7.19.0", "@babel/helper-compilation-targets@^7.19.3":
+ version "7.19.3"
+ resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.19.3.tgz#a10a04588125675d7c7ae299af86fa1b2ee038ca"
+ integrity sha512-65ESqLGyGmLvgR0mst5AdW1FkNlj9rQsCKduzEoEPhBCDFGXvz2jW6bXFG6i0/MrV2s7hhXjjb2yAzcPuQlLwg==
dependencies:
- "@babel/compat-data" "^7.17.10"
- "@babel/helper-validator-option" "^7.16.7"
- browserslist "^4.20.2"
+ "@babel/compat-data" "^7.19.3"
+ "@babel/helper-validator-option" "^7.18.6"
+ browserslist "^4.21.3"
semver "^6.3.0"
-"@babel/helper-create-class-features-plugin@^7.17.12", "@babel/helper-create-class-features-plugin@^7.18.0":
- version "7.18.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.0.tgz#fac430912606331cb075ea8d82f9a4c145a4da19"
- integrity sha512-Kh8zTGR9de3J63e5nS0rQUdRs/kbtwoeQQ0sriS0lItjC96u8XXZN6lKpuyWd2coKSU13py/y+LTmThLuVX0Pg==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.16.7"
- "@babel/helper-environment-visitor" "^7.16.7"
- "@babel/helper-function-name" "^7.17.9"
- "@babel/helper-member-expression-to-functions" "^7.17.7"
- "@babel/helper-optimise-call-expression" "^7.16.7"
- "@babel/helper-replace-supers" "^7.16.7"
- "@babel/helper-split-export-declaration" "^7.16.7"
-
-"@babel/helper-create-regexp-features-plugin@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.16.7.tgz#0cb82b9bac358eb73bfbd73985a776bfa6b14d48"
- integrity sha512-fk5A6ymfp+O5+p2yCkXAu5Kyj6v0xh0RBeNcAkYUMDvvAAoxvSKXn+Jb37t/yWFiQVDFK1ELpUTD8/aLhCPu+g==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.16.7"
- regexpu-core "^4.7.1"
-
-"@babel/helper-create-regexp-features-plugin@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.17.12.tgz#bb37ca467f9694bbe55b884ae7a5cc1e0084e4fd"
- integrity sha512-b2aZrV4zvutr9AIa6/gA3wsZKRwTKYoDxYiFKcESS3Ug2GTXzwBEvMuuFLhCQpEnRXs1zng4ISAXSUxxKBIcxw==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.16.7"
- regexpu-core "^5.0.1"
-
-"@babel/helper-define-polyfill-provider@^0.3.0":
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.0.tgz#c5b10cf4b324ff840140bb07e05b8564af2ae971"
- integrity sha512-7hfT8lUljl/tM3h+izTX/pO3W3frz2ok6Pk+gzys8iJqDfZrZy2pXjRTZAvG2YmfHun1X4q8/UZRLatMfqc5Tg==
- dependencies:
- "@babel/helper-compilation-targets" "^7.13.0"
- "@babel/helper-module-imports" "^7.12.13"
- "@babel/helper-plugin-utils" "^7.13.0"
- "@babel/traverse" "^7.13.0"
- debug "^4.1.1"
- lodash.debounce "^4.0.8"
- resolve "^1.14.2"
- semver "^6.1.2"
-
-"@babel/helper-define-polyfill-provider@^0.3.1":
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz#52411b445bdb2e676869e5a74960d2d3826d2665"
- integrity sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==
- dependencies:
- "@babel/helper-compilation-targets" "^7.13.0"
- "@babel/helper-module-imports" "^7.12.13"
- "@babel/helper-plugin-utils" "^7.13.0"
- "@babel/traverse" "^7.13.0"
+"@babel/helper-create-class-features-plugin@^7.18.6", "@babel/helper-create-class-features-plugin@^7.19.0":
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.19.0.tgz#bfd6904620df4e46470bae4850d66be1054c404b"
+ integrity sha512-NRz8DwF4jT3UfrmUoZjd0Uph9HQnP30t7Ash+weACcyNkiYTywpIjDBgReJMKgr+n86sn2nPVVmJ28Dm053Kqw==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-function-name" "^7.19.0"
+ "@babel/helper-member-expression-to-functions" "^7.18.9"
+ "@babel/helper-optimise-call-expression" "^7.18.6"
+ "@babel/helper-replace-supers" "^7.18.9"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+
+"@babel/helper-create-regexp-features-plugin@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz#3e35f4e04acbbf25f1b3534a657610a000543d3c"
+ integrity sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ regexpu-core "^5.1.0"
+
+"@babel/helper-create-regexp-features-plugin@^7.19.0":
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.19.0.tgz#7976aca61c0984202baca73d84e2337a5424a41b"
+ integrity sha512-htnV+mHX32DF81amCDrwIDr8nrp1PTm+3wfBN9/v8QJOLEioOCOG7qNyq0nHeFiWbT3Eb7gsPwEmV64UCQ1jzw==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ regexpu-core "^5.1.0"
+
+"@babel/helper-define-polyfill-provider@^0.3.3":
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.3.tgz#8612e55be5d51f0cd1f36b4a5a83924e89884b7a"
+ integrity sha512-z5aQKU4IzbqCC1XH0nAqfsFLMVSo22SBKUc0BxGrLkolTdPTructy0ToNnlO2zA4j9Q/7pjMZf0DSY+DSTYzww==
+ dependencies:
+ "@babel/helper-compilation-targets" "^7.17.7"
+ "@babel/helper-plugin-utils" "^7.16.7"
debug "^4.1.1"
lodash.debounce "^4.0.8"
resolve "^1.14.2"
semver "^6.1.2"
-"@babel/helper-environment-visitor@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.16.7.tgz#ff484094a839bde9d89cd63cba017d7aae80ecd7"
- integrity sha512-SLLb0AAn6PkUeAfKJCCOl9e1R53pQlGAfc4y4XuMRZfqeMYLE0dM1LMhqbGAlGQY0lfw5/ohoYWAe9V1yibRag==
- dependencies:
- "@babel/types" "^7.16.7"
-
-"@babel/helper-environment-visitor@^7.18.2":
- version "7.18.2"
- resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.2.tgz#8a6d2dedb53f6bf248e31b4baf38739ee4a637bd"
- integrity sha512-14GQKWkX9oJzPiQQ7/J36FTXcD4kSp8egKjO9nINlSKiHITRA9q/R74qu8S9xlc/b/yjsJItQUeeh3xnGN0voQ==
-
-"@babel/helper-explode-assignable-expression@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.16.7.tgz#12a6d8522fdd834f194e868af6354e8650242b7a"
- integrity sha512-KyUenhWMC8VrxzkGP0Jizjo4/Zx+1nNZhgocs+gLzyZyB8SHidhoq9KK/8Ato4anhwsivfkBLftky7gvzbZMtQ==
- dependencies:
- "@babel/types" "^7.16.7"
-
-"@babel/helper-function-name@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.16.7.tgz#f1ec51551fb1c8956bc8dd95f38523b6cf375f8f"
- integrity sha512-QfDfEnIUyyBSR3HtrtGECuZ6DAyCkYFp7GHl75vFtTnn6pjKeK0T1DB5lLkFvBea8MdaiUABx3osbgLyInoejA==
- dependencies:
- "@babel/helper-get-function-arity" "^7.16.7"
- "@babel/template" "^7.16.7"
- "@babel/types" "^7.16.7"
-
-"@babel/helper-function-name@^7.17.9":
- version "7.17.9"
- resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.17.9.tgz#136fcd54bc1da82fcb47565cf16fd8e444b1ff12"
- integrity sha512-7cRisGlVtiVqZ0MW0/yFB4atgpGLWEHUVYnb448hZK4x+vih0YO5UoS11XIYtZYqHd0dIPMdUSv8q5K4LdMnIg==
- dependencies:
- "@babel/template" "^7.16.7"
- "@babel/types" "^7.17.0"
-
-"@babel/helper-get-function-arity@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-get-function-arity/-/helper-get-function-arity-7.16.7.tgz#ea08ac753117a669f1508ba06ebcc49156387419"
- integrity sha512-flc+RLSOBXzNzVhcLu6ujeHUrD6tANAOU5ojrRx/as+tbzf8+stUCj7+IfRRoAbEZqj/ahXEMsjhOhgeZsrnTw==
- dependencies:
- "@babel/types" "^7.16.7"
-
-"@babel/helper-hoist-variables@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.16.7.tgz#86bcb19a77a509c7b77d0e22323ef588fa58c246"
- integrity sha512-m04d/0Op34H5v7pbZw6pSKP7weA6lsMvfiIAMeIvkY/R4xQtBSMFEigu9QTZ2qB/9l22vsxtM8a+Q8CzD255fg==
- dependencies:
- "@babel/types" "^7.16.7"
-
-"@babel/helper-member-expression-to-functions@^7.17.7":
- version "7.17.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.17.7.tgz#a34013b57d8542a8c4ff8ba3f747c02452a4d8c4"
- integrity sha512-thxXgnQ8qQ11W2wVUObIqDL4p148VMxkt5T/qpN5k2fboRyzFGFmKsTGViquyM5QHKUy48OZoca8kw4ajaDPyw==
- dependencies:
- "@babel/types" "^7.17.0"
-
-"@babel/helper-module-imports@^7.0.0-beta.49", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.16.7.tgz#25612a8091a999704461c8a222d0efec5d091437"
- integrity sha512-LVtS6TqjJHFc+nYeITRo6VLXve70xmq7wPhWTqDJusJEgGmkAACWwMiTNrvfoQo6hEhFwAIixNkvB0jPXDL8Wg==
- dependencies:
- "@babel/types" "^7.16.7"
-
-"@babel/helper-module-transforms@^7.18.0":
- version "7.18.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.18.0.tgz#baf05dec7a5875fb9235bd34ca18bad4e21221cd"
- integrity sha512-kclUYSUBIjlvnzN2++K9f2qzYKFgjmnmjwL4zlmU5f8ZtzgWe8s0rUPSTGy2HmK4P8T52MQsS+HTQAgZd3dMEA==
- dependencies:
- "@babel/helper-environment-visitor" "^7.16.7"
- "@babel/helper-module-imports" "^7.16.7"
- "@babel/helper-simple-access" "^7.17.7"
- "@babel/helper-split-export-declaration" "^7.16.7"
- "@babel/helper-validator-identifier" "^7.16.7"
- "@babel/template" "^7.16.7"
- "@babel/traverse" "^7.18.0"
- "@babel/types" "^7.18.0"
-
-"@babel/helper-optimise-call-expression@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.16.7.tgz#a34e3560605abbd31a18546bd2aad3e6d9a174f2"
- integrity sha512-EtgBhg7rd/JcnpZFXpBy0ze1YRfdm7BnBX4uKMBd3ixa3RGAE002JZB66FJyNH7g0F38U05pXmA5P8cBh7z+1w==
- dependencies:
- "@babel/types" "^7.16.7"
-
-"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.13.0", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.17.12", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.17.12.tgz#86c2347da5acbf5583ba0a10aed4c9bf9da9cf96"
- integrity sha512-JDkf04mqtN3y4iAbO1hv9U2ARpPyPL1zqyWs/2WG1pgSq9llHFjStX5jdxb84himgJm+8Ng+x0oiWF/nw/XQKA==
-
-"@babel/helper-remap-async-to-generator@^7.16.8":
- version "7.16.8"
- resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.16.8.tgz#29ffaade68a367e2ed09c90901986918d25e57e3"
- integrity sha512-fm0gH7Flb8H51LqJHy3HJ3wnE1+qtYR2A99K06ahwrawLdOFsCEWjZOrYricXJHoPSudNKxrMBUPEIPxiIIvBw==
+"@babel/helper-environment-visitor@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz#b7eee2b5b9d70602e59d1a6cad7dd24de7ca6cd7"
+ integrity sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==
+
+"@babel/helper-environment-visitor@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.9.tgz#0c0cee9b35d2ca190478756865bb3528422f51be"
+ integrity sha512-3r/aACDJ3fhQ/EVgFy0hpj8oHyHpQc+LPtJoY9SzTThAsStm4Ptegq92vqKoE3vD706ZVFWITnMnxucw+S9Ipg==
+
+"@babel/helper-explode-assignable-expression@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz#41f8228ef0a6f1a036b8dfdfec7ce94f9a6bc096"
+ integrity sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-function-name@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz#8334fecb0afba66e6d87a7e8c6bb7fed79926b83"
+ integrity sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==
+ dependencies:
+ "@babel/template" "^7.18.6"
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-function-name@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.18.9.tgz#940e6084a55dee867d33b4e487da2676365e86b0"
+ integrity sha512-fJgWlZt7nxGksJS9a0XdSaI4XvpExnNIgRP+rVefWh5U7BL8pPuir6SJUmFKRfjWQ51OtWSzwOxhaH/EBWWc0A==
+ dependencies:
+ "@babel/template" "^7.18.6"
+ "@babel/types" "^7.18.9"
+
+"@babel/helper-function-name@^7.19.0":
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-function-name/-/helper-function-name-7.19.0.tgz#941574ed5390682e872e52d3f38ce9d1bef4648c"
+ integrity sha512-WAwHBINyrpqywkUH0nTnNgI5ina5TFn85HKS0pbPDfxFfhyR/aNQEn4hGi1P1JyT//I0t4OgXUlofzWILRvS5w==
+ dependencies:
+ "@babel/template" "^7.18.10"
+ "@babel/types" "^7.19.0"
+
+"@babel/helper-hoist-variables@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz#d4d2c8fb4baeaa5c68b99cc8245c56554f926678"
+ integrity sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-member-expression-to-functions@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.9.tgz#1531661e8375af843ad37ac692c132841e2fd815"
+ integrity sha512-RxifAh2ZoVU67PyKIO4AMi1wTenGfMR/O/ae0CCRqwgBAt5v7xjdtRw7UoSbsreKrQn5t7r89eruK/9JjYHuDg==
+ dependencies:
+ "@babel/types" "^7.18.9"
+
+"@babel/helper-module-imports@^7.0.0-beta.49", "@babel/helper-module-imports@^7.10.4", "@babel/helper-module-imports@^7.12.13", "@babel/helper-module-imports@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz#1e3ebdbbd08aad1437b428c50204db13c5a3ca6e"
+ integrity sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-module-transforms@^7.18.6", "@babel/helper-module-transforms@^7.19.0", "@babel/helper-module-transforms@^7.19.6":
+ version "7.19.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.19.6.tgz#6c52cc3ac63b70952d33ee987cbee1c9368b533f"
+ integrity sha512-fCmcfQo/KYr/VXXDIyd3CBGZ6AFhPFy1TfSEJ+PilGVlQT6jcbqtHAM4C1EciRqMza7/TpOUZliuSH+U6HAhJw==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-module-imports" "^7.18.6"
+ "@babel/helper-simple-access" "^7.19.4"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+ "@babel/helper-validator-identifier" "^7.19.1"
+ "@babel/template" "^7.18.10"
+ "@babel/traverse" "^7.19.6"
+ "@babel/types" "^7.19.4"
+
+"@babel/helper-optimise-call-expression@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz#9369aa943ee7da47edab2cb4e838acf09d290ffe"
+ integrity sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.10.4", "@babel/helper-plugin-utils@^7.12.13", "@babel/helper-plugin-utils@^7.14.5", "@babel/helper-plugin-utils@^7.16.7", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.18.9", "@babel/helper-plugin-utils@^7.19.0", "@babel/helper-plugin-utils@^7.8.0", "@babel/helper-plugin-utils@^7.8.3":
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.19.0.tgz#4796bb14961521f0f8715990bee2fb6e51ce21bf"
+ integrity sha512-40Ryx7I8mT+0gaNxm8JGTZFUITNqdLAgdg0hXzeVZxVD6nFsdhQvip6v8dqkRHzsz1VFpFAaOCHNn0vKBL7Czw==
+
+"@babel/helper-remap-async-to-generator@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.6.tgz#fa1f81acd19daee9d73de297c0308783cd3cfc23"
+ integrity sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-environment-visitor" "^7.18.6"
+ "@babel/helper-wrap-function" "^7.18.6"
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-remap-async-to-generator@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.9.tgz#997458a0e3357080e54e1d79ec347f8a8cd28519"
+ integrity sha512-dI7q50YKd8BAv3VEfgg7PS7yD3Rtbi2J1XMXaalXO0W0164hYLnh8zpjRS0mte9MfVp/tltvr/cfdXPvJr1opA==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-wrap-function" "^7.18.9"
+ "@babel/types" "^7.18.9"
+
+"@babel/helper-replace-supers@^7.18.6", "@babel/helper-replace-supers@^7.18.9", "@babel/helper-replace-supers@^7.19.1":
+ version "7.19.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.19.1.tgz#e1592a9b4b368aa6bdb8784a711e0bcbf0612b78"
+ integrity sha512-T7ahH7wV0Hfs46SFh5Jz3s0B6+o8g3c+7TMxu7xKfmHikg7EAZ3I2Qk9LFhjxXq8sL7UkP5JflezNwoZa8WvWw==
+ dependencies:
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-member-expression-to-functions" "^7.18.9"
+ "@babel/helper-optimise-call-expression" "^7.18.6"
+ "@babel/traverse" "^7.19.1"
+ "@babel/types" "^7.19.0"
+
+"@babel/helper-simple-access@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz#d6d8f51f4ac2978068df934b569f08f29788c7ea"
+ integrity sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-simple-access@^7.19.4":
+ version "7.19.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.19.4.tgz#be553f4951ac6352df2567f7daa19a0ee15668e7"
+ integrity sha512-f9Xq6WqBFqaDfbCzn2w85hwklswz5qsKlh7f08w4Y9yhJHpnNC0QemtSkK5YyOY8kPGvyiwdzZksGUhnGdaUIg==
+ dependencies:
+ "@babel/types" "^7.19.4"
+
+"@babel/helper-skip-transparent-expression-wrappers@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.9.tgz#778d87b3a758d90b471e7b9918f34a9a02eb5818"
+ integrity sha512-imytd2gHi3cJPsybLRbmFrF7u5BIEuI2cNheyKi3/iOBC63kNn3q8Crn2xVuESli0aM4KYsyEqKyS7lFL8YVtw==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.16.7"
- "@babel/helper-wrap-function" "^7.16.8"
- "@babel/types" "^7.16.8"
-
-"@babel/helper-replace-supers@^7.16.7", "@babel/helper-replace-supers@^7.18.2":
- version "7.18.2"
- resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.18.2.tgz#41fdfcc9abaf900e18ba6e5931816d9062a7b2e0"
- integrity sha512-XzAIyxx+vFnrOxiQrToSUOzUOn0e1J2Li40ntddek1Y69AXUTXoDJ40/D5RdjFu7s7qHiaeoTiempZcbuVXh2Q==
- dependencies:
- "@babel/helper-environment-visitor" "^7.18.2"
- "@babel/helper-member-expression-to-functions" "^7.17.7"
- "@babel/helper-optimise-call-expression" "^7.16.7"
- "@babel/traverse" "^7.18.2"
- "@babel/types" "^7.18.2"
-
-"@babel/helper-simple-access@^7.17.7":
- version "7.17.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.17.7.tgz#aaa473de92b7987c6dfa7ce9a7d9674724823367"
- integrity sha512-txyMCGroZ96i+Pxr3Je3lzEJjqwaRC9buMUgtomcrLe5Nd0+fk1h0LLA+ixUF5OW7AhHuQ7Es1WcQJZmZsz2XA==
- dependencies:
- "@babel/types" "^7.17.0"
-
-"@babel/helper-simple-access@^7.18.2":
- version "7.18.2"
- resolved "https://registry.yarnpkg.com/@babel/helper-simple-access/-/helper-simple-access-7.18.2.tgz#4dc473c2169ac3a1c9f4a51cfcd091d1c36fcff9"
- integrity sha512-7LIrjYzndorDY88MycupkpQLKS1AFfsVRm2k/9PtKScSy5tZq0McZTj+DiMRynboZfIqOKvo03pmhTaUgiD6fQ==
- dependencies:
- "@babel/types" "^7.18.2"
-
-"@babel/helper-skip-transparent-expression-wrappers@^7.16.0":
- version "7.16.0"
- resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.16.0.tgz#0ee3388070147c3ae051e487eca3ebb0e2e8bb09"
- integrity sha512-+il1gTy0oHwUsBQZyJvukbB4vPMdcYBrFHa0Uc4AizLxbq6BOYC51Rv4tWocX9BLBDLZ4kc6qUFpQ6HRgL+3zw==
- dependencies:
- "@babel/types" "^7.16.0"
-
-"@babel/helper-split-export-declaration@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.16.7.tgz#0b648c0c42da9d3920d85ad585f2778620b8726b"
- integrity sha512-xbWoy/PFoxSWazIToT9Sif+jJTlrMcndIsaOKvTA6u7QEo7ilkRZpjew18/W3c7nm8fXdUDXh02VXTbZ0pGDNw==
- dependencies:
- "@babel/types" "^7.16.7"
+ "@babel/types" "^7.18.9"
+
+"@babel/helper-split-export-declaration@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz#7367949bc75b20c6d5a5d4a97bba2824ae8ef075"
+ integrity sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==
+ dependencies:
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-string-parser@^7.19.4":
+ version "7.19.4"
+ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.19.4.tgz#38d3acb654b4701a9b77fb0615a96f775c3a9e63"
+ integrity sha512-nHtDoQcuqFmwYNYPz3Rah5ph2p8PFeFCsZk9A/48dPc/rGocJ5J3hAAZ7pb76VWX3fZKu+uEr/FhH5jLx7umrw==
"@babel/helper-validator-identifier@^7.12.11":
version "7.12.11"
resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz#c9a1f021917dcb5ccf0d4e453e399022981fc9ed"
integrity sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==
-"@babel/helper-validator-identifier@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.16.7.tgz#e8c602438c4a8195751243da9031d1607d247cad"
- integrity sha512-hsEnFemeiW4D08A5gUAZxLBTXpZ39P+a+DGDsHw1yxqyQ/jzFEnxf5uTEGp+3bzAbNOxU1paTgYS4ECU/IgfDw==
-
-"@babel/helper-validator-option@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.16.7.tgz#b203ce62ce5fe153899b617c08957de860de4d23"
- integrity sha512-TRtenOuRUVo9oIQGPC5G9DgK4743cdxvtOw0weQNpZXaS16SCBi5MNjZF8vba3ETURjZpTbVn7Vvcf2eAwFozQ==
-
-"@babel/helper-wrap-function@^7.16.8":
- version "7.16.8"
- resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.16.8.tgz#58afda087c4cd235de92f7ceedebca2c41274200"
- integrity sha512-8RpyRVIAW1RcDDGTA+GpPAwV22wXCfKOoM9bet6TLkGIFTkRQSkH1nMQ5Yet4MpoXe1ZwHPVtNasc2w0uZMqnw==
- dependencies:
- "@babel/helper-function-name" "^7.16.7"
- "@babel/template" "^7.16.7"
- "@babel/traverse" "^7.16.8"
- "@babel/types" "^7.16.8"
-
-"@babel/helpers@^7.18.2":
- version "7.18.2"
- resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.18.2.tgz#970d74f0deadc3f5a938bfa250738eb4ac889384"
- integrity sha512-j+d+u5xT5utcQSzrh9p+PaJX94h++KN+ng9b9WEJq7pkUPAd61FGqhjuUEdfknb3E/uDBb7ruwEeKkIxNJPIrg==
- dependencies:
- "@babel/template" "^7.16.7"
- "@babel/traverse" "^7.18.2"
- "@babel/types" "^7.18.2"
+"@babel/helper-validator-identifier@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz#9c97e30d31b2b8c72a1d08984f2ca9b574d7a076"
+ integrity sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==
+
+"@babel/helper-validator-identifier@^7.19.1":
+ version "7.19.1"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.19.1.tgz#7eea834cf32901ffdc1a7ee555e2f9c27e249ca2"
+ integrity sha512-awrNfaMtnHUr653GgGEs++LlAvW6w+DcPrOliSMXWCKo597CwL5Acf/wWdNkf/tfEQE3mjkeD1YOVZOUV/od1w==
+
+"@babel/helper-validator-option@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz#bf0d2b5a509b1f336099e4ff36e1a63aa5db4db8"
+ integrity sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==
+
+"@babel/helper-wrap-function@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.6.tgz#ec44ea4ad9d8988b90c3e465ba2382f4de81a073"
+ integrity sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw==
+ dependencies:
+ "@babel/helper-function-name" "^7.18.6"
+ "@babel/template" "^7.18.6"
+ "@babel/traverse" "^7.18.6"
+ "@babel/types" "^7.18.6"
+
+"@babel/helper-wrap-function@^7.18.9":
+ version "7.18.10"
+ resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.18.10.tgz#a7fcd3ab9b1be4c9b52cf7d7fdc1e88c2ce93396"
+ integrity sha512-95NLBP59VWdfK2lyLKe6eTMq9xg+yWKzxzxbJ1wcYNi1Auz200+83fMDADjRxBvc2QQor5zja2yTQzXGhk2GtQ==
+ dependencies:
+ "@babel/helper-function-name" "^7.18.9"
+ "@babel/template" "^7.18.10"
+ "@babel/traverse" "^7.18.10"
+ "@babel/types" "^7.18.10"
+
+"@babel/helpers@^7.19.4":
+ version "7.19.4"
+ resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.19.4.tgz#42154945f87b8148df7203a25c31ba9a73be46c5"
+ integrity sha512-G+z3aOx2nfDHwX/kyVii5fJq+bgscg89/dJNWpYeKeBv3v9xX8EIabmx1k6u9LS04H7nROFVRVK+e3k0VHp+sw==
+ dependencies:
+ "@babel/template" "^7.18.10"
+ "@babel/traverse" "^7.19.4"
+ "@babel/types" "^7.19.4"
"@babel/highlight@^7.10.4":
version "7.12.13"
@@ -338,175 +365,175 @@
chalk "^2.0.0"
js-tokens "^4.0.0"
-"@babel/highlight@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.16.7.tgz#81a01d7d675046f0d96f82450d9d9578bdfd6b0b"
- integrity sha512-aKpPMfLvGO3Q97V0qhw/V2SWNWlwfJknuwAunU7wZLSfrM4xTBvg7E5opUVi1kJTBKihE38CPg4nBiqX83PWYw==
+"@babel/highlight@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.18.6.tgz#81158601e93e2563795adcbfbdf5d64be3f2ecdf"
+ integrity sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==
dependencies:
- "@babel/helper-validator-identifier" "^7.16.7"
+ "@babel/helper-validator-identifier" "^7.18.6"
chalk "^2.0.0"
js-tokens "^4.0.0"
-"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.16.7", "@babel/parser@^7.18.0":
- version "7.18.0"
- resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.18.0.tgz#10a8d4e656bc01128d299a787aa006ce1a91e112"
- integrity sha512-AqDccGC+m5O/iUStSJy3DGRIUFu7WbY/CppZYwrEUB4N0tZlnI8CSTsgL7v5fHVFmUbRv2sd+yy27o8Ydt4MGg==
+"@babel/parser@^7.1.0", "@babel/parser@^7.14.7", "@babel/parser@^7.18.10", "@babel/parser@^7.19.6":
+ version "7.19.6"
+ resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.19.6.tgz#b923430cb94f58a7eae8facbffa9efd19130e7f8"
+ integrity sha512-h1IUp81s2JYJ3mRkdxJgs4UvmSsRvDrx5ICSJbPvtWYv5i1nTBGcBpnog+89rAFMwvvru6E5NUHdBe01UeSzYA==
-"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.17.12.tgz#1dca338caaefca368639c9ffb095afbd4d420b1e"
- integrity sha512-xCJQXl4EeQ3J9C4yOmpTrtVGmzpm2iSzyxbkZHw7UCnZBftHpF/hpII80uWVyVrc40ytIClHjgWGTG1g/yB+aw==
+"@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz#da5b8f9a580acdfbe53494dba45ea389fb09a4d2"
+ integrity sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.17.12.tgz#0d498ec8f0374b1e2eb54b9cb2c4c78714c77753"
- integrity sha512-/vt0hpIw0x4b6BLKUkwlvEoiGZYYLNZ96CzyHYPbtG2jZGz6LBe7/V+drYrc/d+ovrF9NBi0pmtvmNb/FsWtRQ==
+"@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.9.tgz#a11af19aa373d68d561f08e0a57242350ed0ec50"
+ integrity sha512-AHrP9jadvH7qlOj6PINbgSuphjQUAK7AOT7DPjBo9EHoLhQTnnK5u45e1Hd4DbSQEO9nqPWtQ89r+XEOWFScKg==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0"
- "@babel/plugin-proposal-optional-chaining" "^7.17.12"
+ "@babel/helper-plugin-utils" "^7.18.9"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9"
+ "@babel/plugin-proposal-optional-chaining" "^7.18.9"
-"@babel/plugin-proposal-async-generator-functions@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.17.12.tgz#094a417e31ce7e692d84bab06c8e2a607cbeef03"
- integrity sha512-RWVvqD1ooLKP6IqWTA5GyFVX2isGEgC5iFxKzfYOIy/QEFdxYyCybBDtIGjipHpb9bDWHzcqGqFakf+mVmBTdQ==
+"@babel/plugin-proposal-async-generator-functions@^7.19.1":
+ version "7.19.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.19.1.tgz#34f6f5174b688529342288cd264f80c9ea9fb4a7"
+ integrity sha512-0yu8vNATgLy4ivqMNBIwb1HebCelqN7YX8SL3FDXORv/RqT0zEEWUCH4GH44JsSrvCu6GqnAdR5EBFAPeNBB4Q==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/helper-remap-async-to-generator" "^7.16.8"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-plugin-utils" "^7.19.0"
+ "@babel/helper-remap-async-to-generator" "^7.18.9"
"@babel/plugin-syntax-async-generators" "^7.8.4"
-"@babel/plugin-proposal-class-properties@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.17.12.tgz#84f65c0cc247d46f40a6da99aadd6438315d80a4"
- integrity sha512-U0mI9q8pW5Q9EaTHFPwSVusPMV/DV9Mm8p7csqROFLtIE9rBF5piLqyrBGigftALrBcsBGu4m38JneAe7ZDLXw==
+"@babel/plugin-proposal-class-properties@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz#b110f59741895f7ec21a6fff696ec46265c446a3"
+ integrity sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.17.12"
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-create-class-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-proposal-class-static-block@^7.18.0":
- version "7.18.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.0.tgz#7d02253156e3c3793bdb9f2faac3a1c05f0ba710"
- integrity sha512-t+8LsRMMDE74c6sV7KShIw13sqbqd58tlqNrsWoWBTIMw7SVQ0cZ905wLNS/FBCy/3PyooRHLFFlfrUNyyz5lA==
+"@babel/plugin-proposal-class-static-block@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz#8aa81d403ab72d3962fc06c26e222dacfc9b9020"
+ integrity sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.18.0"
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-create-class-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-class-static-block" "^7.14.5"
-"@babel/plugin-proposal-decorators@^7.18.2":
- version "7.18.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.18.2.tgz#dbe4086d2d42db489399783c3aa9272e9700afd4"
- integrity sha512-kbDISufFOxeczi0v4NQP3p5kIeW6izn/6klfWBrIIdGZZe4UpHR+QU03FAoWjGGd9SUXAwbw2pup1kaL4OQsJQ==
+"@babel/plugin-proposal-decorators@^7.19.6":
+ version "7.19.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-decorators/-/plugin-proposal-decorators-7.19.6.tgz#0f1af5c21957e9a438cc1d08d2a6a6858af127b7"
+ integrity sha512-PKWforYpkVkogpOW0RaPuh7eQ7AoFgBJP+d87tQCRY2LVbvyGtfRM7RtrhCBsNgZb+2EY28SeWB6p2xe1Z5oAw==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.18.0"
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/helper-replace-supers" "^7.18.2"
- "@babel/helper-split-export-declaration" "^7.16.7"
- "@babel/plugin-syntax-decorators" "^7.17.12"
- charcodes "^0.2.0"
+ "@babel/helper-create-class-features-plugin" "^7.19.0"
+ "@babel/helper-plugin-utils" "^7.19.0"
+ "@babel/helper-replace-supers" "^7.19.1"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+ "@babel/plugin-syntax-decorators" "^7.19.0"
-"@babel/plugin-proposal-dynamic-import@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.16.7.tgz#c19c897eaa46b27634a00fee9fb7d829158704b2"
- integrity sha512-I8SW9Ho3/8DRSdmDdH3gORdyUuYnk1m4cMxUAdu5oy4n3OfN8flDEH+d60iG7dUfi0KkYwSvoalHzzdRzpWHTg==
+"@babel/plugin-proposal-dynamic-import@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz#72bcf8d408799f547d759298c3c27c7e7faa4d94"
+ integrity sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
-"@babel/plugin-proposal-export-namespace-from@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.17.12.tgz#b22864ccd662db9606edb2287ea5fd1709f05378"
- integrity sha512-j7Ye5EWdwoXOpRmo5QmRyHPsDIe6+u70ZYZrd7uz+ebPYFKfRcLcNu3Ro0vOlJ5zuv8rU7xa+GttNiRzX56snQ==
+"@babel/plugin-proposal-export-namespace-from@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.9.tgz#5f7313ab348cdb19d590145f9247540e94761203"
+ integrity sha512-k1NtHyOMvlDDFeb9G5PhUXuGj8m/wiwojgQVEhJ/fsVsMCpLyOP4h0uGEjYJKrRI+EVPlb5Jk+Gt9P97lOGwtA==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-plugin-utils" "^7.18.9"
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
-"@babel/plugin-proposal-json-strings@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.17.12.tgz#f4642951792437233216d8c1af370bb0fbff4664"
- integrity sha512-rKJ+rKBoXwLnIn7n6o6fulViHMrOThz99ybH+hKHcOZbnN14VuMnH9fo2eHE69C8pO4uX1Q7t2HYYIDmv8VYkg==
+"@babel/plugin-proposal-json-strings@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz#7e8788c1811c393aff762817e7dbf1ebd0c05f0b"
+ integrity sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-json-strings" "^7.8.3"
-"@babel/plugin-proposal-logical-assignment-operators@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.17.12.tgz#c64a1bcb2b0a6d0ed2ff674fd120f90ee4b88a23"
- integrity sha512-EqFo2s1Z5yy+JeJu7SFfbIUtToJTVlC61/C7WLKDntSw4Sz6JNAIfL7zQ74VvirxpjB5kz/kIx0gCcb+5OEo2Q==
+"@babel/plugin-proposal-logical-assignment-operators@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.9.tgz#8148cbb350483bf6220af06fa6db3690e14b2e23"
+ integrity sha512-128YbMpjCrP35IOExw2Fq+x55LMP42DzhOhX2aNNIdI9avSWl2PI0yuBWarr3RYpZBSPtabfadkH2yeRiMD61Q==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-plugin-utils" "^7.18.9"
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
-"@babel/plugin-proposal-nullish-coalescing-operator@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.17.12.tgz#1e93079bbc2cbc756f6db6a1925157c4a92b94be"
- integrity sha512-ws/g3FSGVzv+VH86+QvgtuJL/kR67xaEIF2x0iPqdDfYW6ra6JF3lKVBkWynRLcNtIC1oCTfDRVxmm2mKzy+ag==
+"@babel/plugin-proposal-nullish-coalescing-operator@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz#fdd940a99a740e577d6c753ab6fbb43fdb9467e1"
+ integrity sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
-"@babel/plugin-proposal-numeric-separator@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.16.7.tgz#d6b69f4af63fb38b6ca2558442a7fb191236eba9"
- integrity sha512-vQgPMknOIgiuVqbokToyXbkY/OmmjAzr/0lhSIbG/KmnzXPGwW/AdhdKpi+O4X/VkWiWjnkKOBiqJrTaC98VKw==
+"@babel/plugin-proposal-numeric-separator@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz#899b14fbafe87f053d2c5ff05b36029c62e13c75"
+ integrity sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-numeric-separator" "^7.10.4"
-"@babel/plugin-proposal-object-rest-spread@^7.18.0":
- version "7.18.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.0.tgz#79f2390c892ba2a68ec112eb0d895cfbd11155e8"
- integrity sha512-nbTv371eTrFabDfHLElkn9oyf9VG+VKK6WMzhY2o4eHKaG19BToD9947zzGMO6I/Irstx9d8CwX6njPNIAR/yw==
+"@babel/plugin-proposal-object-rest-spread@^7.19.4":
+ version "7.19.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.19.4.tgz#a8fc86e8180ff57290c91a75d83fe658189b642d"
+ integrity sha512-wHmj6LDxVDnL+3WhXteUBaoM1aVILZODAUjg11kHqG4cOlfgMQGxw6aCgvrXrmaJR3Bn14oZhImyCPZzRpC93Q==
dependencies:
- "@babel/compat-data" "^7.17.10"
- "@babel/helper-compilation-targets" "^7.17.10"
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/compat-data" "^7.19.4"
+ "@babel/helper-compilation-targets" "^7.19.3"
+ "@babel/helper-plugin-utils" "^7.19.0"
"@babel/plugin-syntax-object-rest-spread" "^7.8.3"
- "@babel/plugin-transform-parameters" "^7.17.12"
+ "@babel/plugin-transform-parameters" "^7.18.8"
-"@babel/plugin-proposal-optional-catch-binding@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.16.7.tgz#c623a430674ffc4ab732fd0a0ae7722b67cb74cf"
- integrity sha512-eMOH/L4OvWSZAE1VkHbr1vckLG1WUcHGJSLqqQwl2GaUqG6QjddvrOaTUMNYiv77H5IKPMZ9U9P7EaHwvAShfA==
+"@babel/plugin-proposal-optional-catch-binding@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz#f9400d0e6a3ea93ba9ef70b09e72dd6da638a2cb"
+ integrity sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-optional-catch-binding" "^7.8.3"
-"@babel/plugin-proposal-optional-chaining@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.17.12.tgz#f96949e9bacace3a9066323a5cf90cfb9de67174"
- integrity sha512-7wigcOs/Z4YWlK7xxjkvaIw84vGhDv/P1dFGQap0nHkc8gFKY/r+hXc8Qzf5k1gY7CvGIcHqAnOagVKJJ1wVOQ==
+"@babel/plugin-proposal-optional-chaining@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.9.tgz#e8e8fe0723f2563960e4bf5e9690933691915993"
+ integrity sha512-v5nwt4IqBXihxGsW2QmCWMDS3B3bzGIk/EQVZz2ei7f3NJl8NzAJVvUmpDW5q1CRNY+Beb/k58UAH1Km1N411w==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0"
+ "@babel/helper-plugin-utils" "^7.18.9"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9"
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
-"@babel/plugin-proposal-private-methods@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.17.12.tgz#c2ca3a80beb7539289938da005ad525a038a819c"
- integrity sha512-SllXoxo19HmxhDWm3luPz+cPhtoTSKLJE9PXshsfrOzBqs60QP0r8OaJItrPhAj0d7mZMnNF0Y1UUggCDgMz1A==
+"@babel/plugin-proposal-private-methods@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz#5209de7d213457548a98436fa2882f52f4be6bea"
+ integrity sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==
dependencies:
- "@babel/helper-create-class-features-plugin" "^7.17.12"
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-create-class-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-proposal-private-property-in-object@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.17.12.tgz#b02efb7f106d544667d91ae97405a9fd8c93952d"
- integrity sha512-/6BtVi57CJfrtDNKfK5b66ydK2J5pXUKBKSPD2G1whamMuEnZWgoOIfO8Vf9F/DoD4izBLD/Au4NMQfruzzykg==
+"@babel/plugin-proposal-private-property-in-object@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz#a64137b232f0aca3733a67eb1a144c192389c503"
+ integrity sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.16.7"
- "@babel/helper-create-class-features-plugin" "^7.17.12"
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-create-class-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-private-property-in-object" "^7.14.5"
-"@babel/plugin-proposal-unicode-property-regex@^7.17.12", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.17.12.tgz#3dbd7a67bd7f94c8238b394da112d86aaf32ad4d"
- integrity sha512-Wb9qLjXf3ZazqXA7IvI7ozqRIXIGPtSo+L5coFmEkhTQK18ao4UDDD0zdTGAarmbLj2urpRwrc6893cu5Bfh0A==
+"@babel/plugin-proposal-unicode-property-regex@^7.18.6", "@babel/plugin-proposal-unicode-property-regex@^7.4.4":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz#af613d2cd5e643643b65cded64207b15c85cb78e"
+ integrity sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==
dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.17.12"
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-create-regexp-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-async-generators@^7.8.4":
version "7.8.4"
@@ -536,12 +563,12 @@
dependencies:
"@babel/helper-plugin-utils" "^7.14.5"
-"@babel/plugin-syntax-decorators@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.17.12.tgz#02e8f678602f0af8222235271efea945cfdb018a"
- integrity sha512-D1Hz0qtGTza8K2xGyEdVNCYLdVHukAcbQr4K3/s6r/esadyEriZovpJimQOpu8ju4/jV8dW/1xdaE0UpDroidw==
+"@babel/plugin-syntax-decorators@^7.19.0":
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-decorators/-/plugin-syntax-decorators-7.19.0.tgz#5f13d1d8fce96951bea01a10424463c9a5b3a599"
+ integrity sha512-xaBZUEDntt4faL1yN8oIFlhfXeQAWJW7CLKYsHTUqriCUbj8xOra8bfxxKGi/UwExPFBuPdH4XfHc9rGQhrVkQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-plugin-utils" "^7.19.0"
"@babel/plugin-syntax-dynamic-import@^7.8.3":
version "7.8.3"
@@ -557,12 +584,12 @@
dependencies:
"@babel/helper-plugin-utils" "^7.8.3"
-"@babel/plugin-syntax-import-assertions@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.17.12.tgz#58096a92b11b2e4e54b24c6a0cc0e5e607abcedd"
- integrity sha512-n/loy2zkq9ZEM8tEOwON9wTQSTNDTDEz6NujPtJGLU7qObzT1N4c4YZZf8E6ATB2AjNQg/Ib2AIpO03EZaCehw==
+"@babel/plugin-syntax-import-assertions@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.18.6.tgz#cd6190500a4fa2fe31990a963ffab4b63e4505e4"
+ integrity sha512-/DU3RXad9+bZwrgWJQKbr39gYbJpLJHezqEzRzi/BHRlJ9zsQb4CK2CA/5apllXNomwA1qHwzvHl+AdEmC5krQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-import-meta@^7.8.3":
version "7.10.4"
@@ -585,12 +612,12 @@
dependencies:
"@babel/helper-plugin-utils" "^7.16.7"
-"@babel/plugin-syntax-jsx@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.17.12.tgz#834035b45061983a491f60096f61a2e7c5674a47"
- integrity sha512-spyY3E3AURfxh/RHtjx5j6hs8am5NbUBGfcZ2vB3uShSpZdQyXSf5rR5Mk76vbtlAZOelyVQ71Fg0x9SG4fsog==
+"@babel/plugin-syntax-jsx@^7.18.6", "@babel/plugin-syntax-jsx@^7.7.2":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-jsx/-/plugin-syntax-jsx-7.18.6.tgz#a8feef63b010150abd97f1649ec296e849943ca0"
+ integrity sha512-6mmljtAedFGTWu2p/8WIORGwy+61PLgOMPOdazc7YoJ9ZCWUyFy3A6CpPkRKLKD1ToAesxX8KGEViAiLo9N+7Q==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-plugin-utils" "^7.18.6"
"@babel/plugin-syntax-logical-assignment-operators@^7.10.4", "@babel/plugin-syntax-logical-assignment-operators@^7.8.3":
version "7.10.4"
@@ -655,343 +682,344 @@
dependencies:
"@babel/helper-plugin-utils" "^7.14.5"
-"@babel/plugin-transform-arrow-functions@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.17.12.tgz#dddd783b473b1b1537ef46423e3944ff24898c45"
- integrity sha512-PHln3CNi/49V+mza4xMwrg+WGYevSF1oaiXaC2EQfdp4HWlSjRsrDXWJiQBKpP7749u6vQ9mcry2uuFOv5CXvA==
- dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
-
-"@babel/plugin-transform-async-to-generator@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.17.12.tgz#dbe5511e6b01eee1496c944e35cdfe3f58050832"
- integrity sha512-J8dbrWIOO3orDzir57NRsjg4uxucvhby0L/KZuGsWDj0g7twWK3g7JhJhOrXtuXiw8MeiSdJ3E0OW9H8LYEzLQ==
- dependencies:
- "@babel/helper-module-imports" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/helper-remap-async-to-generator" "^7.16.8"
-
-"@babel/plugin-transform-block-scoped-functions@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.16.7.tgz#4d0d57d9632ef6062cdf354bb717102ee042a620"
- integrity sha512-JUuzlzmF40Z9cXyytcbZEZKckgrQzChbQJw/5PuEHYeqzCsvebDx0K0jWnIIVcmmDOAVctCgnYs0pMcrYj2zJg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
-
-"@babel/plugin-transform-block-scoping@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.17.12.tgz#68fc3c4b3bb7dfd809d97b7ed19a584052a2725c"
- integrity sha512-jw8XW/B1i7Lqwqj2CbrViPcZijSxfguBWZP2aN59NHgxUyO/OcO1mfdCxH13QhN5LbWhPkX+f+brKGhZTiqtZQ==
- dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
-
-"@babel/plugin-transform-classes@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.17.12.tgz#da889e89a4d38375eeb24985218edeab93af4f29"
- integrity sha512-cvO7lc7pZat6BsvH6l/EGaI8zpl8paICaoGk+7x7guvtfak/TbIf66nYmJOH13EuG0H+Xx3M+9LQDtSvZFKXKw==
- dependencies:
- "@babel/helper-annotate-as-pure" "^7.16.7"
- "@babel/helper-environment-visitor" "^7.16.7"
- "@babel/helper-function-name" "^7.17.9"
- "@babel/helper-optimise-call-expression" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/helper-replace-supers" "^7.16.7"
- "@babel/helper-split-export-declaration" "^7.16.7"
+"@babel/plugin-transform-arrow-functions@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz#19063fcf8771ec7b31d742339dac62433d0611fe"
+ integrity sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-async-to-generator@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.18.6.tgz#ccda3d1ab9d5ced5265fdb13f1882d5476c71615"
+ integrity sha512-ARE5wZLKnTgPW7/1ftQmSi1CmkqqHo2DNmtztFhvgtOWSDfq0Cq9/9L+KnZNYSNrydBekhW3rwShduf59RoXag==
+ dependencies:
+ "@babel/helper-module-imports" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-remap-async-to-generator" "^7.18.6"
+
+"@babel/plugin-transform-block-scoped-functions@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz#9187bf4ba302635b9d70d986ad70f038726216a8"
+ integrity sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-block-scoping@^7.19.4":
+ version "7.19.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.19.4.tgz#315d70f68ce64426db379a3d830e7ac30be02e9b"
+ integrity sha512-934S2VLLlt2hRJwPf4MczaOr4hYF0z+VKPwqTNxyKX7NthTiPfhuKFWQZHXRM0vh/wo/VyXB3s4bZUNA08l+tQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.19.0"
+
+"@babel/plugin-transform-classes@^7.19.0":
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.19.0.tgz#0e61ec257fba409c41372175e7c1e606dc79bb20"
+ integrity sha512-YfeEE9kCjqTS9IitkgfJuxjcEtLUHMqa8yUJ6zdz8vR7hKuo6mOy2C05P0F1tdMmDCeuyidKnlrw/iTppHcr2A==
+ dependencies:
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-compilation-targets" "^7.19.0"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-function-name" "^7.19.0"
+ "@babel/helper-optimise-call-expression" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.19.0"
+ "@babel/helper-replace-supers" "^7.18.9"
+ "@babel/helper-split-export-declaration" "^7.18.6"
globals "^11.1.0"
-"@babel/plugin-transform-computed-properties@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.17.12.tgz#bca616a83679698f3258e892ed422546e531387f"
- integrity sha512-a7XINeplB5cQUWMg1E/GI1tFz3LfK021IjV1rj1ypE+R7jHm+pIHmHl25VNkZxtx9uuYp7ThGk8fur1HHG7PgQ==
+"@babel/plugin-transform-computed-properties@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.9.tgz#2357a8224d402dad623caf6259b611e56aec746e"
+ integrity sha512-+i0ZU1bCDymKakLxn5srGHrsAPRELC2WIbzwjLhHW9SIE1cPYkLCL0NlnXMZaM1vhfgA2+M7hySk42VBvrkBRw==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-plugin-utils" "^7.18.9"
-"@babel/plugin-transform-destructuring@^7.18.0":
- version "7.18.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.0.tgz#dc4f92587e291b4daa78aa20cc2d7a63aa11e858"
- integrity sha512-Mo69klS79z6KEfrLg/1WkmVnB8javh75HX4pi2btjvlIoasuxilEyjtsQW6XPrubNd7AQy0MMaNIaQE4e7+PQw==
+"@babel/plugin-transform-destructuring@^7.19.4":
+ version "7.19.4"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.19.4.tgz#46890722687b9b89e1369ad0bd8dc6c5a3b4319d"
+ integrity sha512-t0j0Hgidqf0aM86dF8U+vXYReUgJnlv4bZLsyoPnwZNrGY+7/38o8YjaELrvHeVfTZao15kjR0PVv0nju2iduA==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-plugin-utils" "^7.19.0"
-"@babel/plugin-transform-dotall-regex@^7.16.7", "@babel/plugin-transform-dotall-regex@^7.4.4":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.16.7.tgz#6b2d67686fab15fb6a7fd4bd895d5982cfc81241"
- integrity sha512-Lyttaao2SjZF6Pf4vk1dVKv8YypMpomAbygW+mU5cYP3S5cWTfCJjG8xV6CFdzGFlfWK81IjL9viiTvpb6G7gQ==
+"@babel/plugin-transform-dotall-regex@^7.18.6", "@babel/plugin-transform-dotall-regex@^7.4.4":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz#b286b3e7aae6c7b861e45bed0a2fafd6b1a4fef8"
+ integrity sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==
dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-create-regexp-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-duplicate-keys@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.17.12.tgz#a09aa709a3310013f8e48e0e23bc7ace0f21477c"
- integrity sha512-EA5eYFUG6xeerdabina/xIoB95jJ17mAkR8ivx6ZSu9frKShBjpOGZPn511MTDTkiCO+zXnzNczvUM69YSf3Zw==
+"@babel/plugin-transform-duplicate-keys@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.9.tgz#687f15ee3cdad6d85191eb2a372c4528eaa0ae0e"
+ integrity sha512-d2bmXCtZXYc59/0SanQKbiWINadaJXqtvIQIzd4+hNwkWBgyCd5F/2t1kXoUdvPMrxzPvhK6EMQRROxsue+mfw==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-plugin-utils" "^7.18.9"
-"@babel/plugin-transform-exponentiation-operator@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.16.7.tgz#efa9862ef97e9e9e5f653f6ddc7b665e8536fe9b"
- integrity sha512-8UYLSlyLgRixQvlYH3J2ekXFHDFLQutdy7FfFAMm3CPZ6q9wHCwnUyiXpQCe3gVVnQlHc5nsuiEVziteRNTXEA==
+"@babel/plugin-transform-exponentiation-operator@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz#421c705f4521888c65e91fdd1af951bfefd4dacd"
+ integrity sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==
dependencies:
- "@babel/helper-builder-binary-assignment-operator-visitor" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-builder-binary-assignment-operator-visitor" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-for-of@^7.18.1":
- version "7.18.1"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.1.tgz#ed14b657e162b72afbbb2b4cdad277bf2bb32036"
- integrity sha512-+TTB5XwvJ5hZbO8xvl2H4XaMDOAK57zF4miuC9qQJgysPNEAZZ9Z69rdF5LJkozGdZrjBIUAIyKUWRMmebI7vg==
+"@babel/plugin-transform-for-of@^7.18.8":
+ version "7.18.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz#6ef8a50b244eb6a0bdbad0c7c61877e4e30097c1"
+ integrity sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-function-name@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.16.7.tgz#5ab34375c64d61d083d7d2f05c38d90b97ec65cf"
- integrity sha512-SU/C68YVwTRxqWj5kgsbKINakGag0KTgq9f2iZEXdStoAbOzLHEBRYzImmA6yFo8YZhJVflvXmIHUO7GWHmxxA==
+"@babel/plugin-transform-function-name@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.9.tgz#cc354f8234e62968946c61a46d6365440fc764e0"
+ integrity sha512-WvIBoRPaJQ5yVHzcnJFor7oS5Ls0PYixlTYE63lCj2RtdQEl15M68FXQlxnG6wdraJIXRdR7KI+hQ7q/9QjrCQ==
dependencies:
- "@babel/helper-compilation-targets" "^7.16.7"
- "@babel/helper-function-name" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-compilation-targets" "^7.18.9"
+ "@babel/helper-function-name" "^7.18.9"
+ "@babel/helper-plugin-utils" "^7.18.9"
-"@babel/plugin-transform-literals@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.17.12.tgz#97131fbc6bbb261487105b4b3edbf9ebf9c830ae"
- integrity sha512-8iRkvaTjJciWycPIZ9k9duu663FT7VrBdNqNgxnVXEFwOIp55JWcZd23VBRySYbnS3PwQ3rGiabJBBBGj5APmQ==
+"@babel/plugin-transform-literals@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.9.tgz#72796fdbef80e56fba3c6a699d54f0de557444bc"
+ integrity sha512-IFQDSRoTPnrAIrI5zoZv73IFeZu2dhu6irxQjY9rNjTT53VmKg9fenjvoiOWOkJ6mm4jKVPtdMzBY98Fp4Z4cg==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-plugin-utils" "^7.18.9"
-"@babel/plugin-transform-member-expression-literals@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.16.7.tgz#6e5dcf906ef8a098e630149d14c867dd28f92384"
- integrity sha512-mBruRMbktKQwbxaJof32LT9KLy2f3gH+27a5XSuXo6h7R3vqltl0PgZ80C8ZMKw98Bf8bqt6BEVi3svOh2PzMw==
+"@babel/plugin-transform-member-expression-literals@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz#ac9fdc1a118620ac49b7e7a5d2dc177a1bfee88e"
+ integrity sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-modules-amd@^7.18.0":
- version "7.18.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.0.tgz#7ef1002e67e36da3155edc8bf1ac9398064c02ed"
- integrity sha512-h8FjOlYmdZwl7Xm2Ug4iX2j7Qy63NANI+NQVWQzv6r25fqgg7k2dZl03p95kvqNclglHs4FZ+isv4p1uXMA+QA==
+"@babel/plugin-transform-modules-amd@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz#8c91f8c5115d2202f277549848874027d7172d21"
+ integrity sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==
dependencies:
- "@babel/helper-module-transforms" "^7.18.0"
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-module-transforms" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
babel-plugin-dynamic-import-node "^2.3.3"
-"@babel/plugin-transform-modules-commonjs@^7.18.2":
- version "7.18.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.2.tgz#1aa8efa2e2a6e818b6a7f2235fceaf09bdb31e9e"
- integrity sha512-f5A865gFPAJAEE0K7F/+nm5CmAE3y8AWlMBG9unu5j9+tk50UQVK0QS8RNxSp7MJf0wh97uYyLWt3Zvu71zyOQ==
+"@babel/plugin-transform-modules-commonjs@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz#afd243afba166cca69892e24a8fd8c9f2ca87883"
+ integrity sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==
dependencies:
- "@babel/helper-module-transforms" "^7.18.0"
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/helper-simple-access" "^7.18.2"
+ "@babel/helper-module-transforms" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-simple-access" "^7.18.6"
babel-plugin-dynamic-import-node "^2.3.3"
-"@babel/plugin-transform-modules-systemjs@^7.18.0":
- version "7.18.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.0.tgz#50ecdb43de97c8483824402f7125edb94cddb09a"
- integrity sha512-vwKpxdHnlM5tIrRt/eA0bzfbi7gUBLN08vLu38np1nZevlPySRe6yvuATJB5F/WPJ+ur4OXwpVYq9+BsxqAQuQ==
+"@babel/plugin-transform-modules-systemjs@^7.19.0":
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.19.0.tgz#5f20b471284430f02d9c5059d9b9a16d4b085a1f"
+ integrity sha512-x9aiR0WXAWmOWsqcsnrzGR+ieaTMVyGyffPVA7F8cXAGt/UxefYv6uSHZLkAFChN5M5Iy1+wjE+xJuPt22H39A==
dependencies:
- "@babel/helper-hoist-variables" "^7.16.7"
- "@babel/helper-module-transforms" "^7.18.0"
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/helper-validator-identifier" "^7.16.7"
+ "@babel/helper-hoist-variables" "^7.18.6"
+ "@babel/helper-module-transforms" "^7.19.0"
+ "@babel/helper-plugin-utils" "^7.19.0"
+ "@babel/helper-validator-identifier" "^7.18.6"
babel-plugin-dynamic-import-node "^2.3.3"
-"@babel/plugin-transform-modules-umd@^7.18.0":
- version "7.18.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.0.tgz#56aac64a2c2a1922341129a4597d1fd5c3ff020f"
- integrity sha512-d/zZ8I3BWli1tmROLxXLc9A6YXvGK8egMxHp+E/rRwMh1Kip0AP77VwZae3snEJ33iiWwvNv2+UIIhfalqhzZA==
+"@babel/plugin-transform-modules-umd@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz#81d3832d6034b75b54e62821ba58f28ed0aab4b9"
+ integrity sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==
dependencies:
- "@babel/helper-module-transforms" "^7.18.0"
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-module-transforms" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-named-capturing-groups-regex@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.17.12.tgz#9c4a5a5966e0434d515f2675c227fd8cc8606931"
- integrity sha512-vWoWFM5CKaTeHrdUJ/3SIOTRV+MBVGybOC9mhJkaprGNt5demMymDW24yC74avb915/mIRe3TgNb/d8idvnCRA==
+"@babel/plugin-transform-named-capturing-groups-regex@^7.19.1":
+ version "7.19.1"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.19.1.tgz#ec7455bab6cd8fb05c525a94876f435a48128888"
+ integrity sha512-oWk9l9WItWBQYS4FgXD4Uyy5kq898lvkXpXQxoJEY1RnvPk4R/Dvu2ebXU9q8lP+rlMwUQTFf2Ok6d78ODa0kw==
dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.17.12"
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-create-regexp-features-plugin" "^7.19.0"
+ "@babel/helper-plugin-utils" "^7.19.0"
-"@babel/plugin-transform-new-target@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.17.12.tgz#10842cd605a620944e81ea6060e9e65c265742e3"
- integrity sha512-CaOtzk2fDYisbjAD4Sd1MTKGVIpRtx9bWLyj24Y/k6p4s4gQ3CqDGJauFJxt8M/LEx003d0i3klVqnN73qvK3w==
+"@babel/plugin-transform-new-target@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz#d128f376ae200477f37c4ddfcc722a8a1b3246a8"
+ integrity sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-object-super@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.16.7.tgz#ac359cf8d32cf4354d27a46867999490b6c32a94"
- integrity sha512-14J1feiQVWaGvRxj2WjyMuXS2jsBkgB3MdSN5HuC2G5nRspa5RK9COcs82Pwy5BuGcjb+fYaUj94mYcOj7rCvw==
+"@babel/plugin-transform-object-super@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz#fb3c6ccdd15939b6ff7939944b51971ddc35912c"
+ integrity sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
- "@babel/helper-replace-supers" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-replace-supers" "^7.18.6"
-"@babel/plugin-transform-parameters@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.17.12.tgz#eb467cd9586ff5ff115a9880d6fdbd4a846b7766"
- integrity sha512-6qW4rWo1cyCdq1FkYri7AHpauchbGLXpdwnYsfxFb+KtddHENfsY5JZb35xUwkK5opOLcJ3BNd2l7PhRYGlwIA==
+"@babel/plugin-transform-parameters@^7.18.8":
+ version "7.18.8"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz#ee9f1a0ce6d78af58d0956a9378ea3427cccb48a"
+ integrity sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-property-literals@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.16.7.tgz#2dadac85155436f22c696c4827730e0fe1057a55"
- integrity sha512-z4FGr9NMGdoIl1RqavCqGG+ZuYjfZ/hkCIeuH6Do7tXmSm0ls11nYVSJqFEUOSJbDab5wC6lRE/w6YjVcr6Hqw==
+"@babel/plugin-transform-property-literals@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz#e22498903a483448e94e032e9bbb9c5ccbfc93a3"
+ integrity sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-react-display-name@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.16.7.tgz#7b6d40d232f4c0f550ea348593db3b21e2404340"
- integrity sha512-qgIg8BcZgd0G/Cz916D5+9kqX0c7nPZyXaP8R2tLNN5tkyIZdG5fEwBrxwplzSnjC1jvQmyMNVwUCZPcbGY7Pg==
+"@babel/plugin-transform-react-display-name@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-display-name/-/plugin-transform-react-display-name-7.18.6.tgz#8b1125f919ef36ebdfff061d664e266c666b9415"
+ integrity sha512-TV4sQ+T013n61uMoygyMRm+xf04Bd5oqFpv2jAEQwSZ8NwQA7zeRPg1LMVg2PWi3zWBz+CLKD+v5bcpZ/BS0aA==
dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-react-inline-elements@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-inline-elements/-/plugin-transform-react-inline-elements-7.16.7.tgz#87d470ae5fc8ad5c803494070f7dc513846c03fe"
- integrity sha512-jFGuZSebHob02zhrXsJhnI8xcemiDfdlJa1KR2LUfVj/4y9G2iwbJNGVsiH8mW6HEQVh5XwzWWbo/YoroDlQRg==
+"@babel/plugin-transform-react-inline-elements@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-inline-elements/-/plugin-transform-react-inline-elements-7.18.6.tgz#d0676948eb5a11d547de6add7e8a2c522ec708f5"
+ integrity sha512-uo3yD1EXhDxmk1Y/CeFDdHS5t22IOUBooLPFOrrjfpYmDM9Vg61xbIaWeWkbYQ7Aq0zMf30/FfKoQgFwyqw6Bg==
dependencies:
- "@babel/helper-builder-react-jsx" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-builder-react-jsx" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-react-jsx-development@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.16.7.tgz#43a00724a3ed2557ed3f276a01a929e6686ac7b8"
- integrity sha512-RMvQWvpla+xy6MlBpPlrKZCMRs2AGiHOGHY3xRwl0pEeim348dDyxeH4xBsMPbIMhujeq7ihE702eM2Ew0Wo+A==
+"@babel/plugin-transform-react-jsx-development@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx-development/-/plugin-transform-react-jsx-development-7.18.6.tgz#dbe5c972811e49c7405b630e4d0d2e1380c0ddc5"
+ integrity sha512-SA6HEjwYFKF7WDjWcMcMGUimmw/nhNRDWxr+KaLSCrkD/LMDBvWRmHAYgE1HDeF8KUuI8OAu+RT6EOtKxSW2qA==
dependencies:
- "@babel/plugin-transform-react-jsx" "^7.16.7"
+ "@babel/plugin-transform-react-jsx" "^7.18.6"
-"@babel/plugin-transform-react-jsx@^7.16.7", "@babel/plugin-transform-react-jsx@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.17.12.tgz#2aa20022709cd6a3f40b45d60603d5f269586dba"
- integrity sha512-Lcaw8bxd1DKht3thfD4A12dqo1X16he1Lm8rIv8sTwjAYNInRS1qHa9aJoqvzpscItXvftKDCfaEQzwoVyXpEQ==
+"@babel/plugin-transform-react-jsx@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-jsx/-/plugin-transform-react-jsx-7.18.6.tgz#2721e96d31df96e3b7ad48ff446995d26bc028ff"
+ integrity sha512-Mz7xMPxoy9kPS/JScj6fJs03TZ/fZ1dJPlMjRAgTaxaS0fUBk8FV/A2rRgfPsVCZqALNwMexD+0Uaf5zlcKPpw==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.16.7"
- "@babel/helper-module-imports" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/plugin-syntax-jsx" "^7.17.12"
- "@babel/types" "^7.17.12"
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-module-imports" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/plugin-syntax-jsx" "^7.18.6"
+ "@babel/types" "^7.18.6"
-"@babel/plugin-transform-react-pure-annotations@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.16.7.tgz#232bfd2f12eb551d6d7d01d13fe3f86b45eb9c67"
- integrity sha512-hs71ToC97k3QWxswh2ElzMFABXHvGiJ01IB1TbYQDGeWRKWz/MPUTh5jGExdHvosYKpnJW5Pm3S4+TA3FyX+GA==
+"@babel/plugin-transform-react-pure-annotations@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-react-pure-annotations/-/plugin-transform-react-pure-annotations-7.18.6.tgz#561af267f19f3e5d59291f9950fd7b9663d0d844"
+ integrity sha512-I8VfEPg9r2TRDdvnHgPepTKvuRomzA8+u+nhY7qSI1fR2hRNebasZEETLyM5mAUr0Ku56OkXJ0I7NHJnO6cJiQ==
dependencies:
- "@babel/helper-annotate-as-pure" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
+ "@babel/helper-annotate-as-pure" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-regenerator@^7.18.0":
- version "7.18.0"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.0.tgz#44274d655eb3f1af3f3a574ba819d3f48caf99d5"
- integrity sha512-C8YdRw9uzx25HSIzwA7EM7YP0FhCe5wNvJbZzjVNHHPGVcDJ3Aie+qGYYdS1oVQgn+B3eAIJbWFLrJ4Jipv7nw==
+"@babel/plugin-transform-regenerator@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz#585c66cb84d4b4bf72519a34cfce761b8676ca73"
+ integrity sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-plugin-utils" "^7.18.6"
regenerator-transform "^0.15.0"
-"@babel/plugin-transform-reserved-words@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.17.12.tgz#7dbd349f3cdffba751e817cf40ca1386732f652f"
- integrity sha512-1KYqwbJV3Co03NIi14uEHW8P50Md6KqFgt0FfpHdK6oyAHQVTosgPuPSiWud1HX0oYJ1hGRRlk0fP87jFpqXZA==
+"@babel/plugin-transform-reserved-words@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz#b1abd8ebf8edaa5f7fe6bbb8d2133d23b6a6f76a"
+ integrity sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
+ "@babel/helper-plugin-utils" "^7.18.6"
-"@babel/plugin-transform-runtime@^7.18.2":
- version "7.18.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.18.2.tgz#04637de1e45ae8847ff14b9beead09c33d34374d"
- integrity sha512-mr1ufuRMfS52ttq+1G1PD8OJNqgcTFjq3hwn8SZ5n1x1pBhi0E36rYMdTK0TsKtApJ4lDEdfXJwtGobQMHSMPg==
+"@babel/plugin-transform-runtime@^7.19.6":
+ version "7.19.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.19.6.tgz#9d2a9dbf4e12644d6f46e5e75bfbf02b5d6e9194"
+ integrity sha512-PRH37lz4JU156lYFW1p8OxE5i7d6Sl/zV58ooyr+q1J1lnQPyg5tIiXlIwNVhJaY4W3TmOtdc8jqdXQcB1v5Yw==
dependencies:
- "@babel/helper-module-imports" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.17.12"
- babel-plugin-polyfill-corejs2 "^0.3.0"
- babel-plugin-polyfill-corejs3 "^0.5.0"
- babel-plugin-polyfill-regenerator "^0.3.0"
+ "@babel/helper-module-imports" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.19.0"
+ babel-plugin-polyfill-corejs2 "^0.3.3"
+ babel-plugin-polyfill-corejs3 "^0.6.0"
+ babel-plugin-polyfill-regenerator "^0.4.1"
semver "^6.3.0"
-"@babel/plugin-transform-shorthand-properties@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.16.7.tgz#e8549ae4afcf8382f711794c0c7b6b934c5fbd2a"
- integrity sha512-hah2+FEnoRoATdIb05IOXf+4GzXYTq75TVhIn1PewihbpyrNWUt2JbudKQOETWw6QpLe+AIUpJ5MVLYTQbeeUg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
-
-"@babel/plugin-transform-spread@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.17.12.tgz#c112cad3064299f03ea32afed1d659223935d1f5"
- integrity sha512-9pgmuQAtFi3lpNUstvG9nGfk9DkrdmWNp9KeKPFmuZCpEnxRzYlS8JgwPjYj+1AWDOSvoGN0H30p1cBOmT/Svg==
- dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/helper-skip-transparent-expression-wrappers" "^7.16.0"
-
-"@babel/plugin-transform-sticky-regex@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.16.7.tgz#c84741d4f4a38072b9a1e2e3fd56d359552e8660"
- integrity sha512-NJa0Bd/87QV5NZZzTuZG5BPJjLYadeSZ9fO6oOUoL4iQx+9EEuw/eEM92SrsT19Yc2jgB1u1hsjqDtH02c3Drw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
-
-"@babel/plugin-transform-template-literals@^7.18.2":
- version "7.18.2"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.2.tgz#31ed6915721864847c48b656281d0098ea1add28"
- integrity sha512-/cmuBVw9sZBGZVOMkpAEaVLwm4JmK2GZ1dFKOGGpMzEHWFmyZZ59lUU0PdRr8YNYeQdNzTDwuxP2X2gzydTc9g==
- dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
-
-"@babel/plugin-transform-typeof-symbol@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.17.12.tgz#0f12f57ac35e98b35b4ed34829948d42bd0e6889"
- integrity sha512-Q8y+Jp7ZdtSPXCThB6zjQ74N3lj0f6TDh1Hnf5B+sYlzQ8i5Pjp8gW0My79iekSpT4WnI06blqP6DT0OmaXXmw==
- dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
-
-"@babel/plugin-transform-unicode-escapes@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.16.7.tgz#da8717de7b3287a2c6d659750c964f302b31ece3"
- integrity sha512-TAV5IGahIz3yZ9/Hfv35TV2xEm+kaBDaZQCn2S/hG9/CZ0DktxJv9eKfPc7yYCvOYR4JGx1h8C+jcSOvgaaI/Q==
- dependencies:
- "@babel/helper-plugin-utils" "^7.16.7"
-
-"@babel/plugin-transform-unicode-regex@^7.16.7":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.16.7.tgz#0f7aa4a501198976e25e82702574c34cfebe9ef2"
- integrity sha512-oC5tYYKw56HO75KZVLQ+R/Nl3Hro9kf8iG0hXoaHP7tjAyCpvqBiSNe6vGrZni1Z6MggmUOC6A7VP7AVmw225Q==
- dependencies:
- "@babel/helper-create-regexp-features-plugin" "^7.16.7"
- "@babel/helper-plugin-utils" "^7.16.7"
-
-"@babel/preset-env@^7.18.2":
- version "7.18.2"
- resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.18.2.tgz#f47d3000a098617926e674c945d95a28cb90977a"
- integrity sha512-PfpdxotV6afmXMU47S08F9ZKIm2bJIQ0YbAAtDfIENX7G1NUAXigLREh69CWDjtgUy7dYn7bsMzkgdtAlmS68Q==
- dependencies:
- "@babel/compat-data" "^7.17.10"
- "@babel/helper-compilation-targets" "^7.18.2"
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/helper-validator-option" "^7.16.7"
- "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.17.12"
- "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.17.12"
- "@babel/plugin-proposal-async-generator-functions" "^7.17.12"
- "@babel/plugin-proposal-class-properties" "^7.17.12"
- "@babel/plugin-proposal-class-static-block" "^7.18.0"
- "@babel/plugin-proposal-dynamic-import" "^7.16.7"
- "@babel/plugin-proposal-export-namespace-from" "^7.17.12"
- "@babel/plugin-proposal-json-strings" "^7.17.12"
- "@babel/plugin-proposal-logical-assignment-operators" "^7.17.12"
- "@babel/plugin-proposal-nullish-coalescing-operator" "^7.17.12"
- "@babel/plugin-proposal-numeric-separator" "^7.16.7"
- "@babel/plugin-proposal-object-rest-spread" "^7.18.0"
- "@babel/plugin-proposal-optional-catch-binding" "^7.16.7"
- "@babel/plugin-proposal-optional-chaining" "^7.17.12"
- "@babel/plugin-proposal-private-methods" "^7.17.12"
- "@babel/plugin-proposal-private-property-in-object" "^7.17.12"
- "@babel/plugin-proposal-unicode-property-regex" "^7.17.12"
+"@babel/plugin-transform-shorthand-properties@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz#6d6df7983d67b195289be24909e3f12a8f664dc9"
+ integrity sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-spread@^7.19.0":
+ version "7.19.0"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.19.0.tgz#dd60b4620c2fec806d60cfaae364ec2188d593b6"
+ integrity sha512-RsuMk7j6n+r752EtzyScnWkQyuJdli6LdO5Klv8Yx0OfPVTcQkIUfS8clx5e9yHXzlnhOZF3CbQ8C2uP5j074w==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.19.0"
+ "@babel/helper-skip-transparent-expression-wrappers" "^7.18.9"
+
+"@babel/plugin-transform-sticky-regex@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz#c6706eb2b1524028e317720339583ad0f444adcc"
+ integrity sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/plugin-transform-template-literals@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.9.tgz#04ec6f10acdaa81846689d63fae117dd9c243a5e"
+ integrity sha512-S8cOWfT82gTezpYOiVaGHrCbhlHgKhQt8XH5ES46P2XWmX92yisoZywf5km75wv5sYcXDUCLMmMxOLCtthDgMA==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+
+"@babel/plugin-transform-typeof-symbol@^7.18.9":
+ version "7.18.9"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.9.tgz#c8cea68263e45addcd6afc9091429f80925762c0"
+ integrity sha512-SRfwTtF11G2aemAZWivL7PD+C9z52v9EvMqH9BuYbabyPuKUvSWks3oCg6041pT925L4zVFqaVBeECwsmlguEw==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+
+"@babel/plugin-transform-unicode-escapes@^7.18.10":
+ version "7.18.10"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.10.tgz#1ecfb0eda83d09bbcb77c09970c2dd55832aa246"
+ integrity sha512-kKAdAI+YzPgGY/ftStBFXTI1LZFju38rYThnfMykS+IXy8BVx+res7s2fxf1l8I35DV2T97ezo6+SGrXz6B3iQ==
+ dependencies:
+ "@babel/helper-plugin-utils" "^7.18.9"
+
+"@babel/plugin-transform-unicode-regex@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz#194317225d8c201bbae103364ffe9e2cea36cdca"
+ integrity sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==
+ dependencies:
+ "@babel/helper-create-regexp-features-plugin" "^7.18.6"
+ "@babel/helper-plugin-utils" "^7.18.6"
+
+"@babel/preset-env@^7.11.0", "@babel/preset-env@^7.19.4":
+ version "7.19.4"
+ resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.19.4.tgz#4c91ce2e1f994f717efb4237891c3ad2d808c94b"
+ integrity sha512-5QVOTXUdqTCjQuh2GGtdd7YEhoRXBMVGROAtsBeLGIbIz3obCBIfRMT1I3ZKkMgNzwkyCkftDXSSkHxnfVf4qg==
+ dependencies:
+ "@babel/compat-data" "^7.19.4"
+ "@babel/helper-compilation-targets" "^7.19.3"
+ "@babel/helper-plugin-utils" "^7.19.0"
+ "@babel/helper-validator-option" "^7.18.6"
+ "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.18.6"
+ "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.18.9"
+ "@babel/plugin-proposal-async-generator-functions" "^7.19.1"
+ "@babel/plugin-proposal-class-properties" "^7.18.6"
+ "@babel/plugin-proposal-class-static-block" "^7.18.6"
+ "@babel/plugin-proposal-dynamic-import" "^7.18.6"
+ "@babel/plugin-proposal-export-namespace-from" "^7.18.9"
+ "@babel/plugin-proposal-json-strings" "^7.18.6"
+ "@babel/plugin-proposal-logical-assignment-operators" "^7.18.9"
+ "@babel/plugin-proposal-nullish-coalescing-operator" "^7.18.6"
+ "@babel/plugin-proposal-numeric-separator" "^7.18.6"
+ "@babel/plugin-proposal-object-rest-spread" "^7.19.4"
+ "@babel/plugin-proposal-optional-catch-binding" "^7.18.6"
+ "@babel/plugin-proposal-optional-chaining" "^7.18.9"
+ "@babel/plugin-proposal-private-methods" "^7.18.6"
+ "@babel/plugin-proposal-private-property-in-object" "^7.18.6"
+ "@babel/plugin-proposal-unicode-property-regex" "^7.18.6"
"@babel/plugin-syntax-async-generators" "^7.8.4"
"@babel/plugin-syntax-class-properties" "^7.12.13"
"@babel/plugin-syntax-class-static-block" "^7.14.5"
"@babel/plugin-syntax-dynamic-import" "^7.8.3"
"@babel/plugin-syntax-export-namespace-from" "^7.8.3"
- "@babel/plugin-syntax-import-assertions" "^7.17.12"
+ "@babel/plugin-syntax-import-assertions" "^7.18.6"
"@babel/plugin-syntax-json-strings" "^7.8.3"
"@babel/plugin-syntax-logical-assignment-operators" "^7.10.4"
"@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3"
@@ -1001,44 +1029,44 @@
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
"@babel/plugin-syntax-private-property-in-object" "^7.14.5"
"@babel/plugin-syntax-top-level-await" "^7.14.5"
- "@babel/plugin-transform-arrow-functions" "^7.17.12"
- "@babel/plugin-transform-async-to-generator" "^7.17.12"
- "@babel/plugin-transform-block-scoped-functions" "^7.16.7"
- "@babel/plugin-transform-block-scoping" "^7.17.12"
- "@babel/plugin-transform-classes" "^7.17.12"
- "@babel/plugin-transform-computed-properties" "^7.17.12"
- "@babel/plugin-transform-destructuring" "^7.18.0"
- "@babel/plugin-transform-dotall-regex" "^7.16.7"
- "@babel/plugin-transform-duplicate-keys" "^7.17.12"
- "@babel/plugin-transform-exponentiation-operator" "^7.16.7"
- "@babel/plugin-transform-for-of" "^7.18.1"
- "@babel/plugin-transform-function-name" "^7.16.7"
- "@babel/plugin-transform-literals" "^7.17.12"
- "@babel/plugin-transform-member-expression-literals" "^7.16.7"
- "@babel/plugin-transform-modules-amd" "^7.18.0"
- "@babel/plugin-transform-modules-commonjs" "^7.18.2"
- "@babel/plugin-transform-modules-systemjs" "^7.18.0"
- "@babel/plugin-transform-modules-umd" "^7.18.0"
- "@babel/plugin-transform-named-capturing-groups-regex" "^7.17.12"
- "@babel/plugin-transform-new-target" "^7.17.12"
- "@babel/plugin-transform-object-super" "^7.16.7"
- "@babel/plugin-transform-parameters" "^7.17.12"
- "@babel/plugin-transform-property-literals" "^7.16.7"
- "@babel/plugin-transform-regenerator" "^7.18.0"
- "@babel/plugin-transform-reserved-words" "^7.17.12"
- "@babel/plugin-transform-shorthand-properties" "^7.16.7"
- "@babel/plugin-transform-spread" "^7.17.12"
- "@babel/plugin-transform-sticky-regex" "^7.16.7"
- "@babel/plugin-transform-template-literals" "^7.18.2"
- "@babel/plugin-transform-typeof-symbol" "^7.17.12"
- "@babel/plugin-transform-unicode-escapes" "^7.16.7"
- "@babel/plugin-transform-unicode-regex" "^7.16.7"
+ "@babel/plugin-transform-arrow-functions" "^7.18.6"
+ "@babel/plugin-transform-async-to-generator" "^7.18.6"
+ "@babel/plugin-transform-block-scoped-functions" "^7.18.6"
+ "@babel/plugin-transform-block-scoping" "^7.19.4"
+ "@babel/plugin-transform-classes" "^7.19.0"
+ "@babel/plugin-transform-computed-properties" "^7.18.9"
+ "@babel/plugin-transform-destructuring" "^7.19.4"
+ "@babel/plugin-transform-dotall-regex" "^7.18.6"
+ "@babel/plugin-transform-duplicate-keys" "^7.18.9"
+ "@babel/plugin-transform-exponentiation-operator" "^7.18.6"
+ "@babel/plugin-transform-for-of" "^7.18.8"
+ "@babel/plugin-transform-function-name" "^7.18.9"
+ "@babel/plugin-transform-literals" "^7.18.9"
+ "@babel/plugin-transform-member-expression-literals" "^7.18.6"
+ "@babel/plugin-transform-modules-amd" "^7.18.6"
+ "@babel/plugin-transform-modules-commonjs" "^7.18.6"
+ "@babel/plugin-transform-modules-systemjs" "^7.19.0"
+ "@babel/plugin-transform-modules-umd" "^7.18.6"
+ "@babel/plugin-transform-named-capturing-groups-regex" "^7.19.1"
+ "@babel/plugin-transform-new-target" "^7.18.6"
+ "@babel/plugin-transform-object-super" "^7.18.6"
+ "@babel/plugin-transform-parameters" "^7.18.8"
+ "@babel/plugin-transform-property-literals" "^7.18.6"
+ "@babel/plugin-transform-regenerator" "^7.18.6"
+ "@babel/plugin-transform-reserved-words" "^7.18.6"
+ "@babel/plugin-transform-shorthand-properties" "^7.18.6"
+ "@babel/plugin-transform-spread" "^7.19.0"
+ "@babel/plugin-transform-sticky-regex" "^7.18.6"
+ "@babel/plugin-transform-template-literals" "^7.18.9"
+ "@babel/plugin-transform-typeof-symbol" "^7.18.9"
+ "@babel/plugin-transform-unicode-escapes" "^7.18.10"
+ "@babel/plugin-transform-unicode-regex" "^7.18.6"
"@babel/preset-modules" "^0.1.5"
- "@babel/types" "^7.18.2"
- babel-plugin-polyfill-corejs2 "^0.3.0"
- babel-plugin-polyfill-corejs3 "^0.5.0"
- babel-plugin-polyfill-regenerator "^0.3.0"
- core-js-compat "^3.22.1"
+ "@babel/types" "^7.19.4"
+ babel-plugin-polyfill-corejs2 "^0.3.3"
+ babel-plugin-polyfill-corejs3 "^0.6.0"
+ babel-plugin-polyfill-regenerator "^0.4.1"
+ core-js-compat "^3.25.1"
semver "^6.3.0"
"@babel/preset-modules@^0.1.5":
@@ -1052,17 +1080,17 @@
"@babel/types" "^7.4.4"
esutils "^2.0.2"
-"@babel/preset-react@^7.17.12":
- version "7.17.12"
- resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.17.12.tgz#62adbd2d1870c0de3893095757ed5b00b492ab3d"
- integrity sha512-h5U+rwreXtZaRBEQhW1hOJLMq8XNJBQ/9oymXiCXTuT/0uOwpbT0gUt+sXeOqoXBgNuUKI7TaObVwoEyWkpFgA==
+"@babel/preset-react@^7.18.6":
+ version "7.18.6"
+ resolved "https://registry.yarnpkg.com/@babel/preset-react/-/preset-react-7.18.6.tgz#979f76d6277048dc19094c217b507f3ad517dd2d"
+ integrity sha512-zXr6atUmyYdiWRVLOZahakYmOBHtWc2WGCkP8PYTgZi0iJXDY2CN180TdrIW4OGOAdLc7TifzDIvtx6izaRIzg==
dependencies:
- "@babel/helper-plugin-utils" "^7.17.12"
- "@babel/helper-validator-option" "^7.16.7"
- "@babel/plugin-transform-react-display-name" "^7.16.7"
- "@babel/plugin-transform-react-jsx" "^7.17.12"
- "@babel/plugin-transform-react-jsx-development" "^7.16.7"
- "@babel/plugin-transform-react-pure-annotations" "^7.16.7"
+ "@babel/helper-plugin-utils" "^7.18.6"
+ "@babel/helper-validator-option" "^7.18.6"
+ "@babel/plugin-transform-react-display-name" "^7.18.6"
+ "@babel/plugin-transform-react-jsx" "^7.18.6"
+ "@babel/plugin-transform-react-jsx-development" "^7.18.6"
+ "@babel/plugin-transform-react-pure-annotations" "^7.18.6"
"@babel/runtime-corejs3@^7.10.2":
version "7.10.3"
@@ -1079,44 +1107,45 @@
dependencies:
regenerator-runtime "^0.12.0"
-"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.15.4", "@babel/runtime@^7.16.3", "@babel/runtime@^7.18.3", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
- version "7.18.3"
- resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.18.3.tgz#c7b654b57f6f63cf7f8b418ac9ca04408c4579f4"
- integrity sha512-38Y8f7YUhce/K7RMwTp7m0uCumpv9hZkitCbBClqQIow1qSbCvGkcegKOXpEWCQLfWmevgRiWokZ1GkpfhbZug==
+"@babel/runtime@^7.0.0", "@babel/runtime@^7.1.2", "@babel/runtime@^7.10.2", "@babel/runtime@^7.11.2", "@babel/runtime@^7.12.0", "@babel/runtime@^7.12.5", "@babel/runtime@^7.13.10", "@babel/runtime@^7.15.4", "@babel/runtime@^7.18.9", "@babel/runtime@^7.19.4", "@babel/runtime@^7.2.0", "@babel/runtime@^7.3.1", "@babel/runtime@^7.5.5", "@babel/runtime@^7.6.3", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4", "@babel/runtime@^7.9.2":
+ version "7.19.4"
+ resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.19.4.tgz#a42f814502ee467d55b38dd1c256f53a7b885c78"
+ integrity sha512-EXpLCrk55f+cYqmHsSR+yD/0gAIMxxA9QK9lnQWzhMCvt+YmoBN7Zx94s++Kv0+unHk39vxNO8t+CMA2WSS3wA==
dependencies:
regenerator-runtime "^0.13.4"
-"@babel/template@^7.16.7", "@babel/template@^7.3.3":
- version "7.16.7"
- resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.16.7.tgz#8d126c8701fde4d66b264b3eba3d96f07666d155"
- integrity sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==
- dependencies:
- "@babel/code-frame" "^7.16.7"
- "@babel/parser" "^7.16.7"
- "@babel/types" "^7.16.7"
-
-"@babel/traverse@^7.13.0", "@babel/traverse@^7.16.8", "@babel/traverse@^7.18.0", "@babel/traverse@^7.18.2", "@babel/traverse@^7.7.2":
- version "7.18.2"
- resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.18.2.tgz#b77a52604b5cc836a9e1e08dca01cba67a12d2e8"
- integrity sha512-9eNwoeovJ6KH9zcCNnENY7DMFwTU9JdGCFtqNLfUAqtUHRCOsTOqWoffosP8vKmNYeSBUv3yVJXjfd8ucwOjUA==
- dependencies:
- "@babel/code-frame" "^7.16.7"
- "@babel/generator" "^7.18.2"
- "@babel/helper-environment-visitor" "^7.18.2"
- "@babel/helper-function-name" "^7.17.9"
- "@babel/helper-hoist-variables" "^7.16.7"
- "@babel/helper-split-export-declaration" "^7.16.7"
- "@babel/parser" "^7.18.0"
- "@babel/types" "^7.18.2"
+"@babel/template@^7.18.10", "@babel/template@^7.18.6", "@babel/template@^7.3.3":
+ version "7.18.10"
+ resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.18.10.tgz#6f9134835970d1dbf0835c0d100c9f38de0c5e71"
+ integrity sha512-TI+rCtooWHr3QJ27kJxfjutghu44DLnasDMwpDqCXVTal9RLp3RSYNh4NdBrRP2cQAoG9A8juOQl6P6oZG4JxA==
+ dependencies:
+ "@babel/code-frame" "^7.18.6"
+ "@babel/parser" "^7.18.10"
+ "@babel/types" "^7.18.10"
+
+"@babel/traverse@^7.18.10", "@babel/traverse@^7.18.6", "@babel/traverse@^7.19.1", "@babel/traverse@^7.19.4", "@babel/traverse@^7.19.6", "@babel/traverse@^7.7.2":
+ version "7.19.6"
+ resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.19.6.tgz#7b4c865611df6d99cb131eec2e8ac71656a490dc"
+ integrity sha512-6l5HrUCzFM04mfbG09AagtYyR2P0B71B1wN7PfSPiksDPz2k5H9CBC1tcZpz2M8OxbKTPccByoOJ22rUKbpmQQ==
+ dependencies:
+ "@babel/code-frame" "^7.18.6"
+ "@babel/generator" "^7.19.6"
+ "@babel/helper-environment-visitor" "^7.18.9"
+ "@babel/helper-function-name" "^7.19.0"
+ "@babel/helper-hoist-variables" "^7.18.6"
+ "@babel/helper-split-export-declaration" "^7.18.6"
+ "@babel/parser" "^7.19.6"
+ "@babel/types" "^7.19.4"
debug "^4.1.0"
globals "^11.1.0"
-"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.16.0", "@babel/types@^7.16.7", "@babel/types@^7.16.8", "@babel/types@^7.17.0", "@babel/types@^7.17.12", "@babel/types@^7.18.0", "@babel/types@^7.18.2", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4":
- version "7.18.2"
- resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.18.2.tgz#191abfed79ebe6f4242f643a9a5cbaa36b10b091"
- integrity sha512-0On6B8A4/+mFUto5WERt3EEuG1NznDirvwca1O8UwXQHVY8g3R7OzYgxXdOfMwLO08UrpUD/2+3Bclyq+/C94Q==
+"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.49", "@babel/types@^7.18.10", "@babel/types@^7.18.6", "@babel/types@^7.18.9", "@babel/types@^7.19.0", "@babel/types@^7.19.4", "@babel/types@^7.3.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4":
+ version "7.19.4"
+ resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.19.4.tgz#0dd5c91c573a202d600490a35b33246fed8a41c7"
+ integrity sha512-M5LK7nAeS6+9j7hAq+b3fQs+pNfUtTGq+yFFfHnauFA8zQtLRfmuipmsKDKKLuyG+wC8ABW43A153YNawNTEtw==
dependencies:
- "@babel/helper-validator-identifier" "^7.16.7"
+ "@babel/helper-string-parser" "^7.19.4"
+ "@babel/helper-validator-identifier" "^7.19.1"
to-fast-properties "^2.0.0"
"@bcoe/v8-coverage@^0.2.3":
@@ -1124,6 +1153,11 @@
resolved "https://registry.yarnpkg.com/@bcoe/v8-coverage/-/v8-coverage-0.2.3.tgz#75a2e8b51cb758a7553d6804a5932d7aace75c39"
integrity sha512-0hYQ8SB4Db5zvZB4axdMHGwEaQjkZzFjQiN9LVYvIFB2nSUHW9tYpxWriPrWDASIxiaXax83REcLxuSdnGPZtw==
+"@csstools/selector-specificity@^2.0.2":
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz#1bfafe4b7ed0f3e4105837e056e0a89b108ebe36"
+ integrity sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==
+
"@emotion/babel-plugin@^11.7.1":
version "11.9.2"
resolved "https://registry.yarnpkg.com/@emotion/babel-plugin/-/babel-plugin-11.9.2.tgz#723b6d394c89fb2ef782229d92ba95a740576e95"
@@ -1227,6 +1261,18 @@
minimatch "^3.0.4"
strip-json-comments "^3.1.1"
+"@floating-ui/core@^1.0.1":
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/@floating-ui/core/-/core-1.0.1.tgz#00e64d74e911602c8533957af0cce5af6b2e93c8"
+ integrity sha512-bO37brCPfteXQfFY0DyNDGB3+IMe4j150KFQcgJ5aBP295p9nBGeHEs/p0czrRbtlHq4Px/yoPXO/+dOCcF4uA==
+
+"@floating-ui/dom@^1.0.1":
+ version "1.0.2"
+ resolved "https://registry.yarnpkg.com/@floating-ui/dom/-/dom-1.0.2.tgz#c5184c52c6f50abd11052d71204f4be2d9245237"
+ integrity sha512-5X9WSvZ8/fjy3gDu8yx9HAA4KG1lazUN2P4/VnaXLxTO9Dz53HI1oYoh1OlhqFNlHgGDiwFX5WhFCc2ljbW3yA==
+ dependencies:
+ "@floating-ui/core" "^1.0.1"
+
"@formatjs/intl-unified-numberformat@^3.3.3":
version "3.3.6"
resolved "https://registry.yarnpkg.com/@formatjs/intl-unified-numberformat/-/intl-unified-numberformat-3.3.6.tgz#ab69818f7568894023cb31fdb5b5c7eed62c6537"
@@ -1279,110 +1325,132 @@
resolved "https://registry.yarnpkg.com/@istanbuljs/schema/-/schema-0.1.2.tgz#26520bf09abe4a5644cd5414e37125a8954241dd"
integrity sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==
-"@jest/console@^28.1.0":
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/@jest/console/-/console-28.1.0.tgz#db78222c3d3b0c1db82f1b9de51094c2aaff2176"
- integrity sha512-tscn3dlJFGay47kb4qVruQg/XWlmvU0xp3EJOjzzY+sBaI+YgwKcvAmTcyYU7xEiLLIY5HCdWRooAL8dqkFlDA==
+"@jest/console@^29.2.1":
+ version "29.2.1"
+ resolved "https://registry.yarnpkg.com/@jest/console/-/console-29.2.1.tgz#5f2c62dcdd5ce66e94b6d6729e021758bceea090"
+ integrity sha512-MF8Adcw+WPLZGBiNxn76DOuczG3BhODTcMlDCA4+cFi41OkaY/lyI0XUUhi73F88Y+7IHoGmD80pN5CtxQUdSw==
dependencies:
- "@jest/types" "^28.1.0"
+ "@jest/types" "^29.2.1"
"@types/node" "*"
chalk "^4.0.0"
- jest-message-util "^28.1.0"
- jest-util "^28.1.0"
+ jest-message-util "^29.2.1"
+ jest-util "^29.2.1"
slash "^3.0.0"
-"@jest/core@^28.1.0":
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/@jest/core/-/core-28.1.0.tgz#784a1e6ce5358b46fcbdcfbbd93b1b713ed4ea80"
- integrity sha512-/2PTt0ywhjZ4NwNO4bUqD9IVJfmFVhVKGlhvSpmEfUCuxYf/3NHcKmRFI+I71lYzbTT3wMuYpETDCTHo81gC/g==
+"@jest/core@^29.2.2":
+ version "29.2.2"
+ resolved "https://registry.yarnpkg.com/@jest/core/-/core-29.2.2.tgz#207aa8973d9de8769f9518732bc5f781efc3ffa7"
+ integrity sha512-susVl8o2KYLcZhhkvSB+b7xX575CX3TmSvxfeDjpRko7KmT89rHkXj6XkDkNpSeFMBzIENw5qIchO9HC9Sem+A==
dependencies:
- "@jest/console" "^28.1.0"
- "@jest/reporters" "^28.1.0"
- "@jest/test-result" "^28.1.0"
- "@jest/transform" "^28.1.0"
- "@jest/types" "^28.1.0"
+ "@jest/console" "^29.2.1"
+ "@jest/reporters" "^29.2.2"
+ "@jest/test-result" "^29.2.1"
+ "@jest/transform" "^29.2.2"
+ "@jest/types" "^29.2.1"
"@types/node" "*"
ansi-escapes "^4.2.1"
chalk "^4.0.0"
ci-info "^3.2.0"
exit "^0.1.2"
graceful-fs "^4.2.9"
- jest-changed-files "^28.0.2"
- jest-config "^28.1.0"
- jest-haste-map "^28.1.0"
- jest-message-util "^28.1.0"
- jest-regex-util "^28.0.2"
- jest-resolve "^28.1.0"
- jest-resolve-dependencies "^28.1.0"
- jest-runner "^28.1.0"
- jest-runtime "^28.1.0"
- jest-snapshot "^28.1.0"
- jest-util "^28.1.0"
- jest-validate "^28.1.0"
- jest-watcher "^28.1.0"
+ jest-changed-files "^29.2.0"
+ jest-config "^29.2.2"
+ jest-haste-map "^29.2.1"
+ jest-message-util "^29.2.1"
+ jest-regex-util "^29.2.0"
+ jest-resolve "^29.2.2"
+ jest-resolve-dependencies "^29.2.2"
+ jest-runner "^29.2.2"
+ jest-runtime "^29.2.2"
+ jest-snapshot "^29.2.2"
+ jest-util "^29.2.1"
+ jest-validate "^29.2.2"
+ jest-watcher "^29.2.2"
micromatch "^4.0.4"
- pretty-format "^28.1.0"
- rimraf "^3.0.0"
+ pretty-format "^29.2.1"
slash "^3.0.0"
strip-ansi "^6.0.0"
-"@jest/environment@^28.1.0":
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-28.1.0.tgz#dedf7d59ec341b9292fcf459fd0ed819eb2e228a"
- integrity sha512-S44WGSxkRngzHslhV6RoAExekfF7Qhwa6R5+IYFa81mpcj0YgdBnRSmvHe3SNwOt64yXaE5GG8Y2xM28ii5ssA==
+"@jest/environment@^29.2.1":
+ version "29.2.1"
+ resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.2.1.tgz#acb1994fbd5ad02819a1a34a923c531e6923b665"
+ integrity sha512-EutqA7T/X6zFjw6mAWRHND+ZkTPklmIEWCNbmwX6uCmOrFrWaLbDZjA+gePHJx6fFMMRvNfjXcvzXEtz54KPlg==
dependencies:
- "@jest/fake-timers" "^28.1.0"
- "@jest/types" "^28.1.0"
+ "@jest/fake-timers" "^29.2.1"
+ "@jest/types" "^29.2.1"
"@types/node" "*"
- jest-mock "^28.1.0"
+ jest-mock "^29.2.1"
-"@jest/expect-utils@^28.1.0":
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-28.1.0.tgz#a5cde811195515a9809b96748ae8bcc331a3538a"
- integrity sha512-5BrG48dpC0sB80wpeIX5FU6kolDJI4K0n5BM9a5V38MGx0pyRvUBSS0u2aNTdDzmOrCjhOg8pGs6a20ivYkdmw==
+"@jest/environment@^29.2.2":
+ version "29.2.2"
+ resolved "https://registry.yarnpkg.com/@jest/environment/-/environment-29.2.2.tgz#481e729048d42e87d04842c38aa4d09c507f53b0"
+ integrity sha512-OWn+Vhu0I1yxuGBJEFFekMYc8aGBGrY4rt47SOh/IFaI+D7ZHCk7pKRiSoZ2/Ml7b0Ony3ydmEHRx/tEOC7H1A==
dependencies:
- jest-get-type "^28.0.2"
+ "@jest/fake-timers" "^29.2.2"
+ "@jest/types" "^29.2.1"
+ "@types/node" "*"
+ jest-mock "^29.2.2"
-"@jest/expect@^28.1.0":
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-28.1.0.tgz#2e5a31db692597070932366a1602b5157f0f217c"
- integrity sha512-be9ETznPLaHOmeJqzYNIXv1ADEzENuQonIoobzThOYPuK/6GhrWNIJDVTgBLCrz3Am73PyEU2urQClZp0hLTtA==
+"@jest/expect-utils@^29.2.2":
+ version "29.2.2"
+ resolved "https://registry.yarnpkg.com/@jest/expect-utils/-/expect-utils-29.2.2.tgz#460a5b5a3caf84d4feb2668677393dd66ff98665"
+ integrity sha512-vwnVmrVhTmGgQzyvcpze08br91OL61t9O0lJMDyb6Y/D8EKQ9V7rGUb/p7PDt0GPzK0zFYqXWFo4EO2legXmkg==
dependencies:
- expect "^28.1.0"
- jest-snapshot "^28.1.0"
+ jest-get-type "^29.2.0"
-"@jest/fake-timers@^28.1.0":
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-28.1.0.tgz#ea77878aabd5c5d50e1fc53e76d3226101e33064"
- integrity sha512-Xqsf/6VLeAAq78+GNPzI7FZQRf5cCHj1qgQxCjws9n8rKw8r1UYoeaALwBvyuzOkpU3c1I6emeMySPa96rxtIg==
+"@jest/expect@^29.2.2":
+ version "29.2.2"
+ resolved "https://registry.yarnpkg.com/@jest/expect/-/expect-29.2.2.tgz#81edbd33afbde7795ca07ff6b4753d15205032e4"
+ integrity sha512-zwblIZnrIVt8z/SiEeJ7Q9wKKuB+/GS4yZe9zw7gMqfGf4C5hBLGrVyxu1SzDbVSqyMSlprKl3WL1r80cBNkgg==
dependencies:
- "@jest/types" "^28.1.0"
- "@sinonjs/fake-timers" "^9.1.1"
+ expect "^29.2.2"
+ jest-snapshot "^29.2.2"
+
+"@jest/fake-timers@^29.2.1":
+ version "29.2.1"
+ resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.2.1.tgz#786d60e8cb60ca70c9f913cb49fcc77610c072bb"
+ integrity sha512-KWil+8fef7Uj/P/PTZlPKk1Pw117wAmr71VWFV8ZDtRtkwmTG8oY4IRf0Ss44J2y5CYRy8d/zLOhxyoGRENjvA==
+ dependencies:
+ "@jest/types" "^29.2.1"
+ "@sinonjs/fake-timers" "^9.1.2"
+ "@types/node" "*"
+ jest-message-util "^29.2.1"
+ jest-mock "^29.2.1"
+ jest-util "^29.2.1"
+
+"@jest/fake-timers@^29.2.2":
+ version "29.2.2"
+ resolved "https://registry.yarnpkg.com/@jest/fake-timers/-/fake-timers-29.2.2.tgz#d8332e6e3cfa99cde4bc87d04a17d6b699deb340"
+ integrity sha512-nqaW3y2aSyZDl7zQ7t1XogsxeavNpH6kkdq+EpXncIDvAkjvFD7hmhcIs1nWloengEWUoWqkqSA6MSbf9w6DgA==
+ dependencies:
+ "@jest/types" "^29.2.1"
+ "@sinonjs/fake-timers" "^9.1.2"
"@types/node" "*"
- jest-message-util "^28.1.0"
- jest-mock "^28.1.0"
- jest-util "^28.1.0"
+ jest-message-util "^29.2.1"
+ jest-mock "^29.2.2"
+ jest-util "^29.2.1"
-"@jest/globals@^28.1.0":
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-28.1.0.tgz#a4427d2eb11763002ff58e24de56b84ba79eb793"
- integrity sha512-3m7sTg52OTQR6dPhsEQSxAvU+LOBbMivZBwOvKEZ+Rb+GyxVnXi9HKgOTYkx/S99T8yvh17U4tNNJPIEQmtwYw==
+"@jest/globals@^29.2.2":
+ version "29.2.2"
+ resolved "https://registry.yarnpkg.com/@jest/globals/-/globals-29.2.2.tgz#205ff1e795aa774301c2c0ba0be182558471b845"
+ integrity sha512-/nt+5YMh65kYcfBhj38B3Hm0Trk4IsuMXNDGKE/swp36yydBWfz3OXkLqkSvoAtPW8IJMSJDFCbTM2oj5SNprw==
dependencies:
- "@jest/environment" "^28.1.0"
- "@jest/expect" "^28.1.0"
- "@jest/types" "^28.1.0"
+ "@jest/environment" "^29.2.2"
+ "@jest/expect" "^29.2.2"
+ "@jest/types" "^29.2.1"
+ jest-mock "^29.2.2"
-"@jest/reporters@^28.1.0":
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-28.1.0.tgz#5183a28b9b593b6000fa9b89b031c7216b58a9a0"
- integrity sha512-qxbFfqap/5QlSpIizH9c/bFCDKsQlM4uAKSOvZrP+nIdrjqre3FmKzpTtYyhsaVcOSNK7TTt2kjm+4BJIjysFA==
+"@jest/reporters@^29.2.2":
+ version "29.2.2"
+ resolved "https://registry.yarnpkg.com/@jest/reporters/-/reporters-29.2.2.tgz#69b395f79c3a97ce969ce05ccf1a482e5d6de290"
+ integrity sha512-AzjL2rl2zJC0njIzcooBvjA4sJjvdoq98sDuuNs4aNugtLPSQ+91nysGKRF0uY1to5k0MdGMdOBggUsPqvBcpA==
dependencies:
"@bcoe/v8-coverage" "^0.2.3"
- "@jest/console" "^28.1.0"
- "@jest/test-result" "^28.1.0"
- "@jest/transform" "^28.1.0"
- "@jest/types" "^28.1.0"
- "@jridgewell/trace-mapping" "^0.3.7"
+ "@jest/console" "^29.2.1"
+ "@jest/test-result" "^29.2.1"
+ "@jest/transform" "^29.2.2"
+ "@jest/types" "^29.2.1"
+ "@jridgewell/trace-mapping" "^0.3.15"
"@types/node" "*"
chalk "^4.0.0"
collect-v8-coverage "^1.0.0"
@@ -1394,66 +1462,87 @@
istanbul-lib-report "^3.0.0"
istanbul-lib-source-maps "^4.0.0"
istanbul-reports "^3.1.3"
- jest-util "^28.1.0"
- jest-worker "^28.1.0"
+ jest-message-util "^29.2.1"
+ jest-util "^29.2.1"
+ jest-worker "^29.2.1"
slash "^3.0.0"
string-length "^4.0.1"
strip-ansi "^6.0.0"
- terminal-link "^2.0.0"
- v8-to-istanbul "^9.0.0"
+ v8-to-istanbul "^9.0.1"
-"@jest/schemas@^28.0.2":
- version "28.0.2"
- resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-28.0.2.tgz#08c30df6a8d07eafea0aef9fb222c5e26d72e613"
- integrity sha512-YVDJZjd4izeTDkij00vHHAymNXQ6WWsdChFRK86qck6Jpr3DCL5W3Is3vslviRlP+bLuMYRLbdp98amMvqudhA==
+"@jest/schemas@^29.0.0":
+ version "29.0.0"
+ resolved "https://registry.yarnpkg.com/@jest/schemas/-/schemas-29.0.0.tgz#5f47f5994dd4ef067fb7b4188ceac45f77fe952a"
+ integrity sha512-3Ab5HgYIIAnS0HjqJHQYZS+zXc4tUmTmBH3z83ajI6afXp8X3ZtdLX+nXx+I7LNkJD7uN9LAVhgnjDgZa2z0kA==
dependencies:
- "@sinclair/typebox" "^0.23.3"
+ "@sinclair/typebox" "^0.24.1"
-"@jest/source-map@^28.0.2":
- version "28.0.2"
- resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-28.0.2.tgz#914546f4410b67b1d42c262a1da7e0406b52dc90"
- integrity sha512-Y9dxC8ZpN3kImkk0LkK5XCEneYMAXlZ8m5bflmSL5vrwyeUpJfentacCUg6fOb8NOpOO7hz2+l37MV77T6BFPw==
+"@jest/source-map@^29.2.0":
+ version "29.2.0"
+ resolved "https://registry.yarnpkg.com/@jest/source-map/-/source-map-29.2.0.tgz#ab3420c46d42508dcc3dc1c6deee0b613c235744"
+ integrity sha512-1NX9/7zzI0nqa6+kgpSdKPK+WU1p+SJk3TloWZf5MzPbxri9UEeXX5bWZAPCzbQcyuAzubcdUHA7hcNznmRqWQ==
dependencies:
- "@jridgewell/trace-mapping" "^0.3.7"
+ "@jridgewell/trace-mapping" "^0.3.15"
callsites "^3.0.0"
graceful-fs "^4.2.9"
-"@jest/test-result@^28.1.0":
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-28.1.0.tgz#fd149dee123510dd2fcadbbf5f0020f98ad7f12c"
- integrity sha512-sBBFIyoPzrZho3N+80P35A5oAkSKlGfsEFfXFWuPGBsW40UAjCkGakZhn4UQK4iQlW2vgCDMRDOob9FGKV8YoQ==
+"@jest/test-result@^29.2.1":
+ version "29.2.1"
+ resolved "https://registry.yarnpkg.com/@jest/test-result/-/test-result-29.2.1.tgz#f42dbf7b9ae465d0a93eee6131473b8bb3bd2edb"
+ integrity sha512-lS4+H+VkhbX6z64tZP7PAUwPqhwj3kbuEHcaLuaBuB+riyaX7oa1txe0tXgrFj5hRWvZKvqO7LZDlNWeJ7VTPA==
dependencies:
- "@jest/console" "^28.1.0"
- "@jest/types" "^28.1.0"
+ "@jest/console" "^29.2.1"
+ "@jest/types" "^29.2.1"
"@types/istanbul-lib-coverage" "^2.0.0"
collect-v8-coverage "^1.0.0"
-"@jest/test-sequencer@^28.1.0":
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-28.1.0.tgz#ce7294bbe986415b9a30e218c7e705e6ebf2cdf2"
- integrity sha512-tZCEiVWlWNTs/2iK9yi6o3AlMfbbYgV4uuZInSVdzZ7ftpHZhCMuhvk2HLYhCZzLgPFQ9MnM1YaxMnh3TILFiQ==
+"@jest/test-sequencer@^29.2.2":
+ version "29.2.2"
+ resolved "https://registry.yarnpkg.com/@jest/test-sequencer/-/test-sequencer-29.2.2.tgz#4ac7487b237e517a1f55e7866fb5553f6e0168b9"
+ integrity sha512-Cuc1znc1pl4v9REgmmLf0jBd3Y65UXJpioGYtMr/JNpQEIGEzkmHhy6W6DLbSsXeUA13TDzymPv0ZGZ9jH3eIw==
dependencies:
- "@jest/test-result" "^28.1.0"
+ "@jest/test-result" "^29.2.1"
graceful-fs "^4.2.9"
- jest-haste-map "^28.1.0"
+ jest-haste-map "^29.2.1"
slash "^3.0.0"
-"@jest/transform@^28.1.0":
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-28.1.0.tgz#224a3c9ba4cc98e2ff996c0a89a2d59db15c74ce"
- integrity sha512-omy2xe5WxlAfqmsTjTPxw+iXRTRnf+NtX0ToG+4S0tABeb4KsKmPUHq5UBuwunHg3tJRwgEQhEp0M/8oiatLEA==
+"@jest/transform@^29.2.1":
+ version "29.2.1"
+ resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.1.tgz#f3d8154edd19cdbcaf1d6646bd8f4ff7812318a2"
+ integrity sha512-xup+iEuaIRSQabQaeqxaQyN0vg1Dctrp9oTObQsNf3sZEowTIa5cANYuoyi8Tqhg4GCqEVLTf18KW7ii0UeFVA==
dependencies:
"@babel/core" "^7.11.6"
- "@jest/types" "^28.1.0"
- "@jridgewell/trace-mapping" "^0.3.7"
+ "@jest/types" "^29.2.1"
+ "@jridgewell/trace-mapping" "^0.3.15"
babel-plugin-istanbul "^6.1.1"
chalk "^4.0.0"
convert-source-map "^1.4.0"
- fast-json-stable-stringify "^2.0.0"
+ fast-json-stable-stringify "^2.1.0"
+ graceful-fs "^4.2.9"
+ jest-haste-map "^29.2.1"
+ jest-regex-util "^29.2.0"
+ jest-util "^29.2.1"
+ micromatch "^4.0.4"
+ pirates "^4.0.4"
+ slash "^3.0.0"
+ write-file-atomic "^4.0.1"
+
+"@jest/transform@^29.2.2":
+ version "29.2.2"
+ resolved "https://registry.yarnpkg.com/@jest/transform/-/transform-29.2.2.tgz#dfc03fc092b31ffea0c55917728e75bfcf8b5de6"
+ integrity sha512-aPe6rrletyuEIt2axxgdtxljmzH8O/nrov4byy6pDw9S8inIrTV+2PnjyP/oFHMSynzGxJ2s6OHowBNMXp/Jzg==
+ dependencies:
+ "@babel/core" "^7.11.6"
+ "@jest/types" "^29.2.1"
+ "@jridgewell/trace-mapping" "^0.3.15"
+ babel-plugin-istanbul "^6.1.1"
+ chalk "^4.0.0"
+ convert-source-map "^1.4.0"
+ fast-json-stable-stringify "^2.1.0"
graceful-fs "^4.2.9"
- jest-haste-map "^28.1.0"
- jest-regex-util "^28.0.2"
- jest-util "^28.1.0"
+ jest-haste-map "^29.2.1"
+ jest-regex-util "^29.2.0"
+ jest-util "^29.2.1"
micromatch "^4.0.4"
pirates "^4.0.4"
slash "^3.0.0"
@@ -1480,24 +1569,24 @@
"@types/yargs" "^16.0.0"
chalk "^4.0.0"
-"@jest/types@^28.1.0":
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/@jest/types/-/types-28.1.0.tgz#508327a89976cbf9bd3e1cc74641a29fd7dfd519"
- integrity sha512-xmEggMPr317MIOjjDoZ4ejCSr9Lpbt/u34+dvc99t7DS8YirW5rwZEhzKPC2BMUFkUhI48qs6qLUSGw5FuL0GA==
+"@jest/types@^29.2.1":
+ version "29.2.1"
+ resolved "https://registry.yarnpkg.com/@jest/types/-/types-29.2.1.tgz#ec9c683094d4eb754e41e2119d8bdaef01cf6da0"
+ integrity sha512-O/QNDQODLnINEPAI0cl9U6zUIDXEWXt6IC1o2N2QENuos7hlGUIthlKyV4p6ki3TvXFX071blj8HUhgLGquPjw==
dependencies:
- "@jest/schemas" "^28.0.2"
+ "@jest/schemas" "^29.0.0"
"@types/istanbul-lib-coverage" "^2.0.0"
"@types/istanbul-reports" "^3.0.0"
"@types/node" "*"
"@types/yargs" "^17.0.8"
chalk "^4.0.0"
-"@jridgewell/gen-mapping@^0.3.0":
- version "0.3.1"
- resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.1.tgz#cf92a983c83466b8c0ce9124fadeaf09f7c66ea9"
- integrity sha512-GcHwniMlA2z+WFPWuY8lp3fsza0I8xPFMWL5+n8LYyP6PSvPrXf4+n8stDHZY2DM0zy9sVkRDy1jDI4XGzYVqg==
+"@jridgewell/gen-mapping@^0.3.2":
+ version "0.3.2"
+ resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz#c1aedc61e853f2bb9f5dfe6d4442d3b565b253b9"
+ integrity sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==
dependencies:
- "@jridgewell/set-array" "^1.0.0"
+ "@jridgewell/set-array" "^1.0.1"
"@jridgewell/sourcemap-codec" "^1.4.10"
"@jridgewell/trace-mapping" "^0.3.9"
@@ -1506,10 +1595,10 @@
resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.0.4.tgz#b876e3feefb9c8d3aa84014da28b5e52a0640d72"
integrity sha512-cz8HFjOFfUBtvN+NXYSFMHYRdxZMaEl0XypVrhzxBgadKIXhIkRd8aMeHhmF56Sl7SuS8OnUpQ73/k9LE4VnLg==
-"@jridgewell/set-array@^1.0.0":
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.0.tgz#1179863356ac8fbea64a5a4bcde93a4871012c01"
- integrity sha512-SfJxIxNVYLTsKwzB3MoOQ1yxf4w/E6MdkvTgrgAt1bfxjSrLUoHMKrDOykwN14q65waezZIdqDneUIPh4/sKxg==
+"@jridgewell/set-array@^1.0.1":
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.1.2.tgz#7c6cf998d6d20b914c0a55a91ae928ff25965e72"
+ integrity sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==
"@jridgewell/sourcemap-codec@^1.4.10":
version "1.4.10"
@@ -1524,10 +1613,18 @@
"@jridgewell/resolve-uri" "^3.0.3"
"@jridgewell/sourcemap-codec" "^1.4.10"
-"@jridgewell/trace-mapping@^0.3.7":
- version "0.3.9"
- resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz#6534fd5933a53ba7cbf3a17615e273a0d1273ff9"
- integrity sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==
+"@jridgewell/trace-mapping@^0.3.12":
+ version "0.3.14"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz#b231a081d8f66796e475ad588a1ef473112701ed"
+ integrity sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==
+ dependencies:
+ "@jridgewell/resolve-uri" "^3.0.3"
+ "@jridgewell/sourcemap-codec" "^1.4.10"
+
+"@jridgewell/trace-mapping@^0.3.15":
+ version "0.3.15"
+ resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.15.tgz#aba35c48a38d3fd84b37e66c9c0423f9744f9774"
+ integrity sha512-oWZNOULl+UbhsgB51uuZzglikfIKSUBO/M9W2OfEjn7cmqoAiCgmv9lyACTUacZwBz0ITnJ2NqjU8Tx0DHL88g==
dependencies:
"@jridgewell/resolve-uri" "^3.0.3"
"@jridgewell/sourcemap-codec" "^1.4.10"
@@ -1540,6 +1637,13 @@
"@jridgewell/resolve-uri" "^3.0.3"
"@jridgewell/sourcemap-codec" "^1.4.10"
+"@nicolo-ribaudo/eslint-scope-5-internals@5.1.1-v1":
+ version "5.1.1-v1"
+ resolved "https://registry.yarnpkg.com/@nicolo-ribaudo/eslint-scope-5-internals/-/eslint-scope-5-internals-5.1.1-v1.tgz#dbf733a965ca47b1973177dc0bb6c889edcfb129"
+ integrity sha512-54/JRvkLIzzDWshCWfuhadfrfZVPiElY8Fcgmg1HroEly/EDSszzhBAsarCux+D/kOslTRquNzuyGSmUSTTHGg==
+ dependencies:
+ eslint-scope "5.1.1"
+
"@node-redis/bloom@1.0.1":
version "1.0.1"
resolved "https://registry.yarnpkg.com/@node-redis/bloom/-/bloom-1.0.1.tgz#144474a0b7dc4a4b91badea2cfa9538ce0a1854e"
@@ -1608,15 +1712,52 @@
resolved "https://registry.yarnpkg.com/@polka/url/-/url-1.0.0-next.11.tgz#aeb16f50649a91af79dbe36574b66d0f9e4d9f71"
integrity sha512-3NsZsJIA/22P3QUyrEDNA2D133H4j224twJrdipXN38dpnIOzAbUDtOwkcJ5pXmn75w7LSQDjA4tO9dm1XlqlA==
-"@rails/ujs@^6.1.6":
- version "6.1.6"
- resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.1.6.tgz#de486ae0a663e1bed637a012cbb2739bfcfa2031"
- integrity sha512-2M4zlthYmOC6X/tcPcFd//sIL26a7JbCpGNl8uIrQf+pR1Z47uhYt9cOwVqJTJZPurdy2k+YY3Pn64pqruAPEA==
+"@rails/ujs@^6.1.7":
+ version "6.1.7"
+ resolved "https://registry.yarnpkg.com/@rails/ujs/-/ujs-6.1.7.tgz#b09dc5b2105dd267e8374c47e4490240451dc7f6"
+ integrity sha512-0e7WQ4LE/+LEfW2zfAw9ppsB6A8RmxbdAUPAF++UT80epY+7emuQDkKXmaK0a9lp6An50RvzezI0cIQjp1A58w==
+
+"@rollup/plugin-babel@^5.2.0":
+ version "5.3.1"
+ resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-5.3.1.tgz#04bc0608f4aa4b2e4b1aebf284344d0f68fda283"
+ integrity sha512-WFfdLWU/xVWKeRQnKmIAQULUI7Il0gZnBIH/ZFO069wYIfPu+8zrfp/KMW0atmELoRDq8FbiP3VCss9MhCut7Q==
+ dependencies:
+ "@babel/helper-module-imports" "^7.10.4"
+ "@rollup/pluginutils" "^3.1.0"
+
+"@rollup/plugin-node-resolve@^11.2.1":
+ version "11.2.1"
+ resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-11.2.1.tgz#82aa59397a29cd4e13248b106e6a4a1880362a60"
+ integrity sha512-yc2n43jcqVyGE2sqV5/YCmocy9ArjVAP/BeXyTtADTBBX6V0e5UMqwO8CdQ0kzjb6zu5P1qMzsScCMRvE9OlVg==
+ dependencies:
+ "@rollup/pluginutils" "^3.1.0"
+ "@types/resolve" "1.17.1"
+ builtin-modules "^3.1.0"
+ deepmerge "^4.2.2"
+ is-module "^1.0.0"
+ resolve "^1.19.0"
+
+"@rollup/plugin-replace@^2.4.1":
+ version "2.4.2"
+ resolved "https://registry.yarnpkg.com/@rollup/plugin-replace/-/plugin-replace-2.4.2.tgz#a2d539314fbc77c244858faa523012825068510a"
+ integrity sha512-IGcu+cydlUMZ5En85jxHH4qj2hta/11BHq95iHEyb2sbgiN0eCdzvUcHw5gt9pBL5lTi4JDYJ1acCoMGpTvEZg==
+ dependencies:
+ "@rollup/pluginutils" "^3.1.0"
+ magic-string "^0.25.7"
+
+"@rollup/pluginutils@^3.1.0":
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-3.1.0.tgz#706b4524ee6dc8b103b3c995533e5ad680c02b9b"
+ integrity sha512-GksZ6pr6TpIjHm8h9lSQ8pi8BE9VeubNT0OMJ3B5uZJ8pz73NPiqOtCog/x2/QzM1ENChPKxMDhiQuRHsqc+lg==
+ dependencies:
+ "@types/estree" "0.0.39"
+ estree-walker "^1.0.1"
+ picomatch "^2.2.2"
-"@sinclair/typebox@^0.23.3":
- version "0.23.5"
- resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.23.5.tgz#93f7b9f4e3285a7a9ade7557d9a8d36809cbc47d"
- integrity sha512-AFBVi/iT4g20DHoujvMH1aEDn8fGJh4xsRGCP6d8RpLPMqsNPvW01Jcn0QysXTsg++/xj25NmJsGyH9xug/wKg==
+"@sinclair/typebox@^0.24.1":
+ version "0.24.20"
+ resolved "https://registry.yarnpkg.com/@sinclair/typebox/-/typebox-0.24.20.tgz#11a657875de6008622d53f56e063a6347c51a6dd"
+ integrity sha512-kVaO5aEFZb33nPMTZBxiPEkY+slxiPtqC7QX8f9B3eGOMBvEfuMfxp9DSTTCsRJPumPKjrge4yagyssO4q6qzQ==
"@sinonjs/commons@^1.7.0":
version "1.8.1"
@@ -1625,13 +1766,23 @@
dependencies:
type-detect "4.0.8"
-"@sinonjs/fake-timers@^9.1.1":
+"@sinonjs/fake-timers@^9.1.2":
version "9.1.2"
resolved "https://registry.yarnpkg.com/@sinonjs/fake-timers/-/fake-timers-9.1.2.tgz#4eaab737fab77332ab132d396a3c0d364bd0ea8c"
integrity sha512-BPS4ynJW/o92PUR4wgriz2Ud5gpST5vz6GQfMixEDK0Z8ZCUv2M7SkBLykH56T++Xs+8ln9zTGbOvNGIe02/jw==
dependencies:
"@sinonjs/commons" "^1.7.0"
+"@surma/rollup-plugin-off-main-thread@^2.2.3":
+ version "2.2.3"
+ resolved "https://registry.yarnpkg.com/@surma/rollup-plugin-off-main-thread/-/rollup-plugin-off-main-thread-2.2.3.tgz#ee34985952ca21558ab0d952f00298ad2190c053"
+ integrity sha512-lR8q/9W7hZpMWweNiAKU7NQerBnzQQLvi8qnTDU/fxItPhtZVMbPV3lbCwjhIlNBe9Bbr5V+KHshvWmVSG9cxQ==
+ dependencies:
+ ejs "^3.1.6"
+ json5 "^2.2.0"
+ magic-string "^0.25.0"
+ string.prototype.matchall "^4.0.6"
+
"@testing-library/dom@^8.0.0":
version "8.1.0"
resolved "https://registry.yarnpkg.com/@testing-library/dom/-/dom-8.1.0.tgz#f8358b1883844ea569ba76b7e94582168df5370d"
@@ -1646,16 +1797,16 @@
lz-string "^1.4.4"
pretty-format "^27.0.2"
-"@testing-library/jest-dom@^5.16.4":
- version "5.16.4"
- resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.16.4.tgz#938302d7b8b483963a3ae821f1c0808f872245cd"
- integrity sha512-Gy+IoFutbMQcky0k+bqqumXZ1cTGswLsFqmNLzNdSKkU9KGV2u9oXhukCbbJ9/LRPKiqwxEE8VpV/+YZlfkPUA==
+"@testing-library/jest-dom@^5.16.5":
+ version "5.16.5"
+ resolved "https://registry.yarnpkg.com/@testing-library/jest-dom/-/jest-dom-5.16.5.tgz#3912846af19a29b2dbf32a6ae9c31ef52580074e"
+ integrity sha512-N5ixQ2qKpi5OLYfwQmUb/5mSV9LneAcaUfp32pn4yCnpb8r/Yz0pXFPck21dIicKmi+ta5WRAknkZCfA8refMA==
dependencies:
+ "@adobe/css-tools" "^4.0.1"
"@babel/runtime" "^7.9.2"
"@types/testing-library__jest-dom" "^5.9.1"
aria-query "^5.0.0"
chalk "^3.0.0"
- css "^3.0.0"
css.escape "^1.5.1"
dom-accessibility-api "^0.5.6"
lodash "^4.17.15"
@@ -1718,6 +1869,11 @@
resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
integrity sha512-rr+OQyAjxze7GgWrSaJwydHStIhHq2lvY3BOC2Mj7KnzI7XK0Uw1TOOdI9lDoajEbSWLiYgoo4f1R51erQfhPQ==
+"@types/estree@0.0.39":
+ version "0.0.39"
+ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-0.0.39.tgz#e177e699ee1b8c22d23174caaa7422644389509f"
+ integrity sha512-EYNwp3bU+98cpU4lAWYYL7Zz+2gryWH1qbdDTidVd6hkiR6weksdbMadyXKXNPEkQFhXM+hVO9ZygomHXp+AIw==
+
"@types/events@*":
version "3.0.0"
resolved "https://registry.yarnpkg.com/@types/events/-/events-3.0.0.tgz#2862f3f58a9a7f7c3e78d79f130dd4d71c25c2a7"
@@ -1782,14 +1938,14 @@
jest-diff "^25.2.1"
pretty-format "^25.2.1"
-"@types/jsdom@^16.2.4":
- version "16.2.14"
- resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-16.2.14.tgz#26fe9da6a8870715b154bb84cd3b2e53433d8720"
- integrity sha512-6BAy1xXEmMuHeAJ4Fv4yXKwBDTGTOseExKE3OaHiNycdHdZw59KfYzrt0DkDluvwmik1HRt6QS7bImxUmpSy+w==
+"@types/jsdom@^20.0.0":
+ version "20.0.0"
+ resolved "https://registry.yarnpkg.com/@types/jsdom/-/jsdom-20.0.0.tgz#4414fb629465167f8b7b3804b9e067bdd99f1791"
+ integrity sha512-YfAchFs0yM1QPDrLm2VHe+WHGtqms3NXnXAMolrgrVP6fgBHHXy1ozAbo/dFtPNtZC/m66bPiCTWYmqp1F14gA==
dependencies:
"@types/node" "*"
- "@types/parse5" "*"
"@types/tough-cookie" "*"
+ parse5 "^7.0.0"
"@types/json-schema@^7.0.5", "@types/json-schema@^7.0.6":
version "7.0.6"
@@ -1826,11 +1982,6 @@
resolved "https://registry.yarnpkg.com/@types/parse-json/-/parse-json-4.0.0.tgz#2f8bb441434d163b35fb8ffdccd7138927ffb8c0"
integrity sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==
-"@types/parse5@*":
- version "6.0.3"
- resolved "https://registry.yarnpkg.com/@types/parse5/-/parse5-6.0.3.tgz#705bb349e789efa06f43f128cef51240753424cb"
- integrity sha512-SuT16Q1K51EAVPz1K29DJ/sXjhSQ0zjvsypYJ6tlwVsRV9jwW5Adq2ch8Dq8kDBCkYnELS7N7VNCSB5nC56t/g==
-
"@types/prettier@^2.1.5":
version "2.2.3"
resolved "https://registry.yarnpkg.com/@types/prettier/-/prettier-2.2.3.tgz#ef65165aea2924c9359205bf748865b8881753c0"
@@ -1888,6 +2039,13 @@
"@types/scheduler" "*"
csstype "^3.0.2"
+"@types/resolve@1.17.1":
+ version "1.17.1"
+ resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.17.1.tgz#3afd6ad8967c77e4376c598a82ddd58f46ec45d6"
+ integrity sha512-yy7HuzQhj0dhGpD8RLXSZWEkLsV9ibvxvi6EiJ3bkqLAO1RGo0WbkWQiwpRlSFymTJRz0d3k5LM3kkx8ArDbLw==
+ dependencies:
+ "@types/node" "*"
+
"@types/scheduler@*":
version "0.16.1"
resolved "https://registry.yarnpkg.com/@types/scheduler/-/scheduler-0.16.1.tgz#18845205e86ff0038517aab7a18a62a6b9f71275"
@@ -1915,6 +2073,11 @@
resolved "https://registry.yarnpkg.com/@types/tough-cookie/-/tough-cookie-4.0.2.tgz#6286b4c7228d58ab7866d19716f3696e03a09397"
integrity sha512-Q5vtl1W5ue16D+nIaW8JWebSSraJVlK+EthKn7e7UcD4KWsaSJ8BqGPXNaPghgtcn/fhvrN17Tv8ksUsQpiplw==
+"@types/trusted-types@^2.0.2":
+ version "2.0.2"
+ resolved "https://registry.yarnpkg.com/@types/trusted-types/-/trusted-types-2.0.2.tgz#fc25ad9943bcac11cceb8168db4f275e0e72e756"
+ integrity sha512-F5DIZ36YVLE+PN+Zwws4kJogq47hNgX3Nx6WyDJ3kcplxyke3XIzB8uK5n/Lpm1HBsbGzd6nmGehL8cPekP+Tg==
+
"@types/yargs-parser@*":
version "15.0.0"
resolved "https://registry.yarnpkg.com/@types/yargs-parser/-/yargs-parser-15.0.0.tgz#cb3f9f741869e20cce330ffbeb9271590483882d"
@@ -2096,11 +2259,23 @@
resolved "https://registry.yarnpkg.com/@xtuc/long/-/long-4.2.2.tgz#d291c6a4e97989b5c61d9acf396ae4fe133a718d"
integrity sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==
-abab@^2.0.5, abab@^2.0.6:
+abab@^2.0.6:
version "2.0.6"
resolved "https://registry.yarnpkg.com/abab/-/abab-2.0.6.tgz#41b80f2c871d19686216b82309231cfd3cb3d291"
integrity sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==
+abort-controller@^3.0.0:
+ version "3.0.0"
+ resolved "https://registry.yarnpkg.com/abort-controller/-/abort-controller-3.0.0.tgz#eaf54d53b62bae4138e809ca225c8439a6efb392"
+ integrity sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==
+ dependencies:
+ event-target-shim "^5.0.0"
+
+abortcontroller-polyfill@^1.7.5:
+ version "1.7.5"
+ resolved "https://registry.yarnpkg.com/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.5.tgz#6738495f4e901fbb57b6c0611d0c75f76c485bed"
+ integrity sha512-JMJ5soJWP18htbbxJjG7bG6yuI6pRhgJ0scHHTfkUjf6wjP912xZWvM+A4sJK3gqd9E8fcPbDnOefbA9Th/FIQ==
+
accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8:
version "1.3.8"
resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.8.tgz#0bf0be125b67014adcb0b0921e62db7bffe16b2e"
@@ -2109,48 +2284,43 @@ accepts@~1.3.4, accepts@~1.3.5, accepts@~1.3.8:
mime-types "~2.1.34"
negotiator "0.6.3"
-acorn-globals@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-6.0.0.tgz#46cdd39f0f8ff08a876619b55f5ac8a6dc770b45"
- integrity sha512-ZQl7LOWaF5ePqqcX4hLuv/bLXYQNfNWw2c0/yX/TsPRKamzHcTGQnlCjHT3TsmkOUVEPS3crCxiPfdzE/Trlhg==
+acorn-globals@^7.0.0:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/acorn-globals/-/acorn-globals-7.0.1.tgz#0dbf05c44fa7c94332914c02066d5beff62c40c3"
+ integrity sha512-umOSDSDrfHbTNPuNpC2NSnnA3LUrqpevPb4T9jRx4MagXNS0rs+gwiTcAvqCRmsD6utzsrzNt+ebm00SNWiC3Q==
dependencies:
- acorn "^7.1.1"
- acorn-walk "^7.1.1"
+ acorn "^8.1.0"
+ acorn-walk "^8.0.2"
acorn-jsx@^5.3.1:
version "5.3.1"
resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.1.tgz#fc8661e11b7ac1539c47dbfea2e72b3af34d267b"
integrity sha512-K0Ptm/47OKfQRpNQ2J/oIN/3QYiK6FwW+eJbILhsdxh2WTLdl+30o8aGdTbm5JbffpFFAg/g+zi1E+jvJha5ng==
-acorn-walk@^7.1.1:
- version "7.2.0"
- resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-7.2.0.tgz#0de889a601203909b0fbe07b8938dc21d2e967bc"
- integrity sha512-OPdCF6GsMIP+Az+aWfAAOEt2/+iVDKE7oy6lJ098aoe59oAmK76qV6Gw60SbZ8jHuG2wH058GF4pLFbYamYrVA==
-
acorn-walk@^8.0.0:
version "8.0.0"
resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.0.0.tgz#56ae4c0f434a45fff4a125e7ea95fa9c98f67a16"
integrity sha512-oZRad/3SMOI/pxbbmqyurIx7jHw1wZDcR9G44L8pUVFEomX/0dH89SrM1KaDXuv1NpzAXz6Op/Xu/Qd5XXzdEA==
+acorn-walk@^8.0.2:
+ version "8.2.0"
+ resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1"
+ integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==
+
acorn@^6.4.1:
version "6.4.1"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.1.tgz#531e58ba3f51b9dacb9a6646ca4debf5b14ca474"
integrity sha512-ZVA9k326Nwrj3Cj9jlh3wGFutC2ZornPNARZwsNYqQYgN0EsV2d53w5RN/co65Ohn4sUAUtb1rSUAOD6XN9idA==
-acorn@^7.1.1, acorn@^7.4.0:
+acorn@^7.4.0:
version "7.4.1"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-7.4.1.tgz#feaed255973d2e77555b83dbc08851a6c63520fa"
integrity sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==
-acorn@^8.0.4:
- version "8.3.0"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.3.0.tgz#1193f9b96c4e8232f00b11a9edff81b2c8b98b88"
- integrity sha512-tqPKHZ5CaBJw0Xmy0ZZvLs1qTV+BNFSyvn77ASXkpBNfIRk8ev26fKrD9iLGwGA9zedPao52GSHzq8lyZG0NUw==
-
-acorn@^8.5.0:
- version "8.7.1"
- resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30"
- integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==
+acorn@^8.0.4, acorn@^8.1.0, acorn@^8.5.0, acorn@^8.8.0:
+ version "8.8.0"
+ resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.0.tgz#88c0187620435c7f6015803f5539dae05a9dbea8"
+ integrity sha512-QOxyigPVrpZ2GXT+PFyZTl6TtOFc5egxHIP9IlQ+RbupQuX4RkT/Bee4/kQuC02Xkzg84JcT7oLYtDIQxp+v7w==
agent-base@6:
version "6.0.2"
@@ -2197,6 +2367,16 @@ ajv@^8.0.1:
require-from-string "^2.0.2"
uri-js "^4.2.2"
+ajv@^8.6.0:
+ version "8.11.0"
+ resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.11.0.tgz#977e91dd96ca669f54a11e23e378e33b884a565f"
+ integrity sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==
+ dependencies:
+ fast-deep-equal "^3.1.1"
+ json-schema-traverse "^1.0.0"
+ require-from-string "^2.0.2"
+ uri-js "^4.2.2"
+
alphanum-sort@^1.0.0:
version "1.0.2"
resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3"
@@ -2295,13 +2475,13 @@ aproba@^1.1.1:
resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a"
integrity sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==
-are-we-there-yet@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz#ba20bd6b553e31d62fc8c31bd23d22b95734390d"
- integrity sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==
+are-we-there-yet@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-4.0.0.tgz#3ff397dc14f08b52dd8b2a64d3cee154ab8760d2"
+ integrity sha512-nSXlV+u3vtVjRgihdTzbfWYzxPWGo424zPgQbHD0ZqIla3jqYAewDcvee0Ua2hjS5IfTAmjGlx1Jf0PKwjZDEw==
dependencies:
delegates "^1.0.0"
- readable-stream "^3.6.0"
+ readable-stream "^4.1.0"
argparse@^1.0.7:
version "1.0.10"
@@ -2353,7 +2533,7 @@ array-flatten@^2.1.0:
resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099"
integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==
-array-includes@^3.1.3, array-includes@^3.1.4, array-includes@^3.1.5:
+array-includes@^3.1.4, array-includes@^3.1.5:
version "3.1.5"
resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.5.tgz#2c320010db8d31031fd2a5f6b3bbd4b1aad31bdb"
integrity sha512-iSDYZMMyTPkiFasVqfuAQnWAYcvO/SeBSCGKePoEthjp4LEMTe4uLc7b025o4jAZpHhihh8xPo99TNWUWWkGDQ==
@@ -2465,11 +2645,21 @@ async@^2.6.2:
dependencies:
lodash "^4.17.14"
+async@^3.2.3:
+ version "3.2.3"
+ resolved "https://registry.yarnpkg.com/async/-/async-3.2.3.tgz#ac53dafd3f4720ee9e8a160628f18ea91df196c9"
+ integrity sha512-spZRyzKL5l5BZQrr/6m/SqFdBN0q3OCI0f9rjfBzCMBIP4p75P620rR3gTmaksNOhmzgdxcaxdNfMy6anrbM0g==
+
asynckit@^0.4.0:
version "0.4.0"
resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79"
integrity sha1-x57Zf380y48robyXkLzDZkdLS3k=
+at-least-node@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2"
+ integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==
+
atob@^2.1.2:
version "2.1.2"
resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9"
@@ -2493,33 +2683,47 @@ autoprefixer@^9.8.8:
postcss "^7.0.32"
postcss-value-parser "^4.1.0"
-axe-core@^4.3.5:
- version "4.3.5"
- resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.3.5.tgz#78d6911ba317a8262bfee292aeafcc1e04b49cc5"
- integrity sha512-WKTW1+xAzhMS5dJsxWkliixlO/PqC4VhmO9T4juNYcaTg9jzWiJsou6m5pxWYGfigWbwzJWeFY6z47a+4neRXA==
+axe-core@^4.4.3:
+ version "4.4.3"
+ resolved "https://registry.yarnpkg.com/axe-core/-/axe-core-4.4.3.tgz#11c74d23d5013c0fa5d183796729bc3482bd2f6f"
+ integrity sha512-32+ub6kkdhhWick/UjvEwRchgoetXqTK14INLqbGm5U2TzBkBNF3nQtLYm8ovxSkQWArjEQvftCKryjZaATu3w==
-axios@^0.27.2:
- version "0.27.2"
- resolved "https://registry.yarnpkg.com/axios/-/axios-0.27.2.tgz#207658cc8621606e586c85db4b41a750e756d972"
- integrity sha512-t+yRIyySRTp/wua5xEr+z1q60QmLq8ABsS5O9Me1AsE5dfKqgnCFzwiCZZ/cGNd1lq4/7akDWMxdhVlucjmnOQ==
+axios@^1.1.3:
+ version "1.1.3"
+ resolved "https://registry.yarnpkg.com/axios/-/axios-1.1.3.tgz#8274250dada2edf53814ed7db644b9c2866c1e35"
+ integrity sha512-00tXVRwKx/FZr/IDVFt4C+f9FYairX517WoGCL6dpOntqLkZofjhu43F/Xl44UOpqa+9sLFDrG/XAnFsUYgkDA==
dependencies:
- follow-redirects "^1.14.9"
+ follow-redirects "^1.15.0"
form-data "^4.0.0"
+ proxy-from-env "^1.1.0"
axobject-query@^2.2.0:
version "2.2.0"
resolved "https://registry.yarnpkg.com/axobject-query/-/axobject-query-2.2.0.tgz#943d47e10c0b704aa42275e20edf3722648989be"
integrity sha512-Td525n+iPOOyUQIeBfcASuG6uJsDOITl7Mds5gFyerkWiX7qhUTdYUBlSgNMyVqtSJqwpt1kXGLdUt6SykLMRA==
-babel-jest@^28.1.0:
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-28.1.0.tgz#95a67f8e2e7c0042e7b3ad3951b8af41a533b5ea"
- integrity sha512-zNKk0yhDZ6QUwfxh9k07GII6siNGMJWVUU49gmFj5gfdqDKLqa2RArXOF2CODp4Dr7dLxN2cvAV+667dGJ4b4w==
+babel-jest@^29.2.1:
+ version "29.2.1"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.1.tgz#213c47e28072de11bdb98c9d29b89f2ab99664f1"
+ integrity sha512-gQJwArok0mqoREiCYhXKWOgUhElJj9DpnssW6GL8dG7ARYqHEhrM9fmPHTjdqEGRVXZAd6+imo3/Vwa8TjLcsw==
+ dependencies:
+ "@jest/transform" "^29.2.1"
+ "@types/babel__core" "^7.1.14"
+ babel-plugin-istanbul "^6.1.1"
+ babel-preset-jest "^29.2.0"
+ chalk "^4.0.0"
+ graceful-fs "^4.2.9"
+ slash "^3.0.0"
+
+babel-jest@^29.2.2:
+ version "29.2.2"
+ resolved "https://registry.yarnpkg.com/babel-jest/-/babel-jest-29.2.2.tgz#2c15abd8c2081293c9c3f4f80a4ed1d51542fee5"
+ integrity sha512-kkq2QSDIuvpgfoac3WZ1OOcHsQQDU5xYk2Ql7tLdJ8BVAYbefEXal+NfS45Y5LVZA7cxC8KYcQMObpCt1J025w==
dependencies:
- "@jest/transform" "^28.1.0"
+ "@jest/transform" "^29.2.2"
"@types/babel__core" "^7.1.14"
babel-plugin-istanbul "^6.1.1"
- babel-preset-jest "^28.0.2"
+ babel-preset-jest "^29.2.0"
chalk "^4.0.0"
graceful-fs "^4.2.9"
slash "^3.0.0"
@@ -2552,10 +2756,10 @@ babel-plugin-istanbul@^6.1.1:
istanbul-lib-instrument "^5.0.4"
test-exclude "^6.0.0"
-babel-plugin-jest-hoist@^28.0.2:
- version "28.0.2"
- resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-28.0.2.tgz#9307d03a633be6fc4b1a6bc5c3a87e22bd01dd3b"
- integrity sha512-Kizhn/ZL+68ZQHxSnHyuvJv8IchXD62KQxV77TBDV/xoBFBOfgRAk97GNs6hXdTTCiVES9nB2I6+7MXXrk5llQ==
+babel-plugin-jest-hoist@^29.2.0:
+ version "29.2.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-29.2.0.tgz#23ee99c37390a98cfddf3ef4a78674180d823094"
+ integrity sha512-TnspP2WNiR3GLfCsUNHqeXw0RoQ2f9U5hQ5L3XFpwuO8htQmSrhh8qsB6vi5Yi8+kuynN1yjDjQsPfkebmB6ZA==
dependencies:
"@babel/template" "^7.3.3"
"@babel/types" "^7.3.3"
@@ -2591,29 +2795,29 @@ babel-plugin-macros@^3.0.1:
cosmiconfig "^7.0.0"
resolve "^1.19.0"
-babel-plugin-polyfill-corejs2@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.0.tgz#407082d0d355ba565af24126fb6cb8e9115251fd"
- integrity sha512-wMDoBJ6uG4u4PNFh72Ty6t3EgfA91puCuAwKIazbQlci+ENb/UU9A3xG5lutjUIiXCIn1CY5L15r9LimiJyrSA==
+babel-plugin-polyfill-corejs2@^0.3.3:
+ version "0.3.3"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.3.tgz#5d1bd3836d0a19e1b84bbf2d9640ccb6f951c122"
+ integrity sha512-8hOdmFYFSZhqg2C/JgLUQ+t52o5nirNwaWM2B9LWteozwIvM14VSwdsCAUET10qT+kmySAlseadmfeeSWFCy+Q==
dependencies:
- "@babel/compat-data" "^7.13.11"
- "@babel/helper-define-polyfill-provider" "^0.3.0"
+ "@babel/compat-data" "^7.17.7"
+ "@babel/helper-define-polyfill-provider" "^0.3.3"
semver "^6.1.1"
-babel-plugin-polyfill-corejs3@^0.5.0:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.1.tgz#d66183bf10976ea677f4149a7fcc4d8df43d4060"
- integrity sha512-TihqEe4sQcb/QcPJvxe94/9RZuLQuF1+To4WqQcRvc+3J3gLCPIPgDKzGLG6zmQLfH3nn25heRuDNkS2KR4I8A==
+babel-plugin-polyfill-corejs3@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a"
+ integrity sha512-+eHqR6OPcBhJOGgsIar7xoAB1GcSwVUA3XjAd7HJNzOXT4wv6/H7KIdA/Nc60cvUlDbKApmqNvD1B1bzOt4nyA==
dependencies:
- "@babel/helper-define-polyfill-provider" "^0.3.1"
- core-js-compat "^3.20.0"
+ "@babel/helper-define-polyfill-provider" "^0.3.3"
+ core-js-compat "^3.25.1"
-babel-plugin-polyfill-regenerator@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.0.tgz#9ebbcd7186e1a33e21c5e20cae4e7983949533be"
- integrity sha512-dhAPTDLGoMW5/84wkgwiLRwMnio2i1fUe53EuvtKMv0pn2p3S8OCoV1xAzfJPl0KOX7IB89s2ib85vbYiea3jg==
+babel-plugin-polyfill-regenerator@^0.4.1:
+ version "0.4.1"
+ resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747"
+ integrity sha512-NtQGmyQDXjQqQ+IzRkBVwEOz9lQ4zxAQZgoAYEtU9dJjnl1Oc98qnN7jcp+bE7O7aYzVpavXE3/VKXNzUbh7aw==
dependencies:
- "@babel/helper-define-polyfill-provider" "^0.3.0"
+ "@babel/helper-define-polyfill-provider" "^0.3.3"
babel-plugin-preval@^5.1.0:
version "5.1.0"
@@ -2661,12 +2865,12 @@ babel-preset-current-node-syntax@^1.0.0:
"@babel/plugin-syntax-optional-chaining" "^7.8.3"
"@babel/plugin-syntax-top-level-await" "^7.8.3"
-babel-preset-jest@^28.0.2:
- version "28.0.2"
- resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-28.0.2.tgz#d8210fe4e46c1017e9fa13d7794b166e93aa9f89"
- integrity sha512-sYzXIdgIXXroJTFeB3S6sNDWtlJ2dllCdTEsnZ65ACrMojj3hVNFRmnJ1HZtomGi+Be7aqpY/HJ92fr8OhKVkQ==
+babel-preset-jest@^29.2.0:
+ version "29.2.0"
+ resolved "https://registry.yarnpkg.com/babel-preset-jest/-/babel-preset-jest-29.2.0.tgz#3048bea3a1af222e3505e4a767a974c95a7620dc"
+ integrity sha512-z9JmMJppMxNv8N7fNRHvhMg9cvIkMxQBXgFkane3yKVEvEOP+kB50lk8DFRvF9PGqbyXxlmebKWhuDORO8RgdA==
dependencies:
- babel-plugin-jest-hoist "^28.0.2"
+ babel-plugin-jest-hoist "^29.2.0"
babel-preset-current-node-syntax "^1.0.0"
balanced-match@^1.0.0:
@@ -2684,6 +2888,11 @@ base64-js@^1.0.2:
resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.3.1.tgz#58ece8cb75dd07e71ed08c736abc5fac4dbf8df1"
integrity sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g==
+base64-js@^1.3.1:
+ version "1.5.1"
+ resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a"
+ integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==
+
base@^0.11.1:
version "0.11.2"
resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f"
@@ -2702,11 +2911,6 @@ batch@0.6.1:
resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16"
integrity sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=
-big.js@^3.1.3:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e"
- integrity sha512-+hN/Zh2D08Mx65pZ/4g5bsmNiZUuChDiQfTUQ7qJr4/kuopCr88xZsAXv6mBoZEsUI4OuGHlX59qE94K2mMW8Q==
-
big.js@^5.2.2:
version "5.2.2"
resolved "https://registry.yarnpkg.com/big.js/-/big.js-5.2.2.tgz#65f0af382f578bcdc742bd9c281e9cb2d7768328"
@@ -2734,10 +2938,10 @@ bluebird@^3.5.5:
resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.7.2.tgz#9f229c15be272454ffa973ace0dbee79a1b0c36f"
integrity sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==
-blurhash@^1.1.5:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/blurhash/-/blurhash-1.1.5.tgz#3034104cd5dce5a3e5caa871ae2f0f1f2d0ab566"
- integrity sha512-a+LO3A2DfxTaTztsmkbLYmUzUeApi0LZuKalwbNmqAHR6HhJGMt1qSV/R3wc+w4DL28holjqO3Bg74aUGavGjg==
+blurhash@^2.0.3:
+ version "2.0.3"
+ resolved "https://registry.yarnpkg.com/blurhash/-/blurhash-2.0.3.tgz#5c1166bf5b65e09e337fe5b8c6b53e1218085b0b"
+ integrity sha512-nTnJTOheiaV3b189f7rH5AbbrnQB2r3CcOZBg47GUDaE9DrxyBPD2w0HYp4ME2UBlTP7LMIa6nMWqg/58oyIzA==
bmp-js@^0.1.0:
version "0.1.0"
@@ -2754,10 +2958,10 @@ bn.js@^5.1.1:
resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-5.1.3.tgz#beca005408f642ebebea80b042b4d18d2ac0ee6b"
integrity sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==
-body-parser@1.20.0:
- version "1.20.0"
- resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.0.tgz#3de69bd89011c11573d7bfee6a64f11b6bd27cc5"
- integrity sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==
+body-parser@1.20.1:
+ version "1.20.1"
+ resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.20.1.tgz#b1812a8912c195cd371a3ee5e66faa2338a5c668"
+ integrity sha512-jWi7abTbYwajOytWCQc37VulmWiRae5RyTpaCyDcS5/lMdtwSz5lOpDE67srw/HYe35f1z3fDQw+3txg7gNtWw==
dependencies:
bytes "3.1.2"
content-type "~1.0.4"
@@ -2767,7 +2971,7 @@ body-parser@1.20.0:
http-errors "2.0.0"
iconv-lite "0.4.24"
on-finished "2.4.1"
- qs "6.10.3"
+ qs "6.11.0"
raw-body "2.5.1"
type-is "~1.6.18"
unpipe "1.0.0"
@@ -2820,30 +3024,18 @@ braces@^2.3.1, braces@^2.3.2:
split-string "^3.0.2"
to-regex "^3.0.1"
-braces@^3.0.1, braces@^3.0.2, braces@~3.0.2:
+braces@^3.0.2, braces@~3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107"
integrity sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==
dependencies:
fill-range "^7.0.1"
-bricks.js@^1.7.0:
- version "1.8.0"
- resolved "https://registry.yarnpkg.com/bricks.js/-/bricks.js-1.8.0.tgz#8fdeb3c0226af251f4d5727a7df7f9ac0092b4b2"
- integrity sha1-j96zwCJq8lH01XJ6fff5rACStLI=
- dependencies:
- knot.js "^1.1.5"
-
brorand@^1.0.1, brorand@^1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f"
integrity sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=
-browser-process-hrtime@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/browser-process-hrtime/-/browser-process-hrtime-1.0.0.tgz#3c9b4b7d782c8121e56f10106d84c0d0ffc94626"
- integrity sha512-9o5UecI3GhkpM6DrXr69PblIuWxPKk9Y0jHBRhdocZ2y7YECBFCsHm79Pr3OyR2AvjhDkabFJaDJMYRazHgsow==
-
browserify-aes@^1.0.0, browserify-aes@^1.0.4:
version "1.2.0"
resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48"
@@ -2916,16 +3108,15 @@ browserslist@^4.0.0, browserslist@^4.12.0:
escalade "^3.1.1"
node-releases "^1.1.71"
-browserslist@^4.20.2, browserslist@^4.20.3:
- version "4.20.3"
- resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.20.3.tgz#eb7572f49ec430e054f56d52ff0ebe9be915f8bf"
- integrity sha512-NBhymBQl1zM0Y5dQT/O+xiLP9/rzOIQdKM/eMJBAq7yBgaB6krIYLGejrwVYnSHZdqjscB1SPuAjHwxjvN6Wdg==
+browserslist@^4.21.3, browserslist@^4.21.4:
+ version "4.21.4"
+ resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.21.4.tgz#e7496bbc67b9e39dd0f98565feccdcb0d4ff6987"
+ integrity sha512-CBHJJdDmgjl3daYjN5Cp5kbTf1mUhZoS+beLklHIvkOWscs83YAhLlF3Wsh/lciQYAcbBJgTOD44VtG31ZM4Hw==
dependencies:
- caniuse-lite "^1.0.30001332"
- electron-to-chromium "^1.4.118"
- escalade "^3.1.1"
- node-releases "^2.0.3"
- picocolors "^1.0.0"
+ caniuse-lite "^1.0.30001400"
+ electron-to-chromium "^1.4.251"
+ node-releases "^2.0.6"
+ update-browserslist-db "^1.0.9"
bser@2.1.1:
version "2.1.1"
@@ -2935,9 +3126,9 @@ bser@2.1.1:
node-int64 "^0.4.0"
buffer-from@^1.0.0:
- version "1.1.1"
- resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.1.tgz#32713bc028f75c02fdb710d7c7bcec1f2c6070ef"
- integrity sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==
+ version "1.1.2"
+ resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5"
+ integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ==
buffer-indexof@^1.0.0:
version "1.1.1"
@@ -2963,13 +3154,26 @@ buffer@^4.3.0:
ieee754 "^1.1.4"
isarray "^1.0.0"
-bufferutil@^4.0.6:
- version "4.0.6"
- resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.6.tgz#ebd6c67c7922a0e902f053e5d8be5ec850e48433"
- integrity sha512-jduaYOYtnio4aIAyc6UbvPCVcgq7nYpVnucyxr6eCYg/Woad9Hf/oxxBRDnGGjPfjUm6j5O/uBWhIu4iLebFaw==
+buffer@^6.0.3:
+ version "6.0.3"
+ resolved "https://registry.yarnpkg.com/buffer/-/buffer-6.0.3.tgz#2ace578459cc8fbe2a70aaa8f52ee63b6a74c6c6"
+ integrity sha512-FTiCpNxtwiZZHEZbcbTIcZjERVICn9yq/pDFkTl95/AxzD1naBctN7YO68riM/gLSDY7sdrMby8hofADYuuqOA==
+ dependencies:
+ base64-js "^1.3.1"
+ ieee754 "^1.2.1"
+
+bufferutil@^4.0.7:
+ version "4.0.7"
+ resolved "https://registry.yarnpkg.com/bufferutil/-/bufferutil-4.0.7.tgz#60c0d19ba2c992dd8273d3f73772ffc894c153ad"
+ integrity sha512-kukuqc39WOHtdxtw4UScxF/WVnMFVSQVKhtx3AjZJzhd0RGZZldcrfSEbVsWWe6KNH253574cq5F+wpv0G9pJw==
dependencies:
node-gyp-build "^4.3.0"
+builtin-modules@^3.1.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6"
+ integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw==
+
builtin-status-codes@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8"
@@ -3105,15 +3309,10 @@ caniuse-api@^3.0.0:
lodash.memoize "^4.1.2"
lodash.uniq "^4.5.0"
-caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001219:
- version "1.0.30001310"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001310.tgz#da02cd07432c9eece6992689d1b84ca18139eea8"
- integrity sha512-cb9xTV8k9HTIUA3GnPUJCk0meUnrHL5gy5QePfDjxHyNBcnzPzrHFv5GqfP7ue5b1ZyzZL0RJboD6hQlPXjhjg==
-
-caniuse-lite@^1.0.30001332:
- version "1.0.30001335"
- resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001335.tgz#899254a0b70579e5a957c32dced79f0727c61f2a"
- integrity sha512-ddP1Tgm7z2iIxu6QTtbZUv6HJxSaV/PZeSrWFZtbY4JZ69tOeNhBCl3HyRQgeNZKE5AOn1kpV7fhljigy0Ty3w==
+caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001109, caniuse-lite@^1.0.30001219, caniuse-lite@^1.0.30001400:
+ version "1.0.30001414"
+ resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001414.tgz"
+ integrity sha512-t55jfSaWjCdocnFdKQoO+d2ct9C59UZg4dY3OnUlSZ447r8pUtIKdp0hpAzrGFultmTC+Us+KpKi4GZl/LXlFg==
chalk@^1.1.3:
version "1.1.3"
@@ -3143,10 +3342,10 @@ chalk@^3.0.0:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
-chalk@^4.0, chalk@^4.0.0, chalk@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.0.tgz#4e14870a618d9e2edd97dd8345fd9d9dc315646a"
- integrity sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==
+chalk@^4.0, chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01"
+ integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==
dependencies:
ansi-styles "^4.1.0"
supports-color "^7.1.0"
@@ -3156,11 +3355,6 @@ char-regex@^1.0.2:
resolved "https://registry.yarnpkg.com/char-regex/-/char-regex-1.0.2.tgz#d744358226217f981ed58f479b1d6bcc29545dcf"
integrity sha512-kWWXztvZ5SBQV+eRgKFeh8q5sLuZY2+8WUIzlxWVTg+oGwY14qylx1KbKzHd8P6ZYkAg0xyIDU9JMHhyJMZ1jw==
-charcodes@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/charcodes/-/charcodes-0.2.0.tgz#5208d327e6cc05f99eb80ffc814707572d1f14e4"
- integrity sha512-Y4kiDb+AM4Ecy58YkuZrrSRJBDQdQ2L+NyS1vHHFtNtUjgutcZfx3yp1dAONI/oPaPmyGfCLx5CxL+zauIMyKQ==
-
"chokidar@>=3.0.0 <4.0.0", chokidar@^3.4.1:
version "3.5.1"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.1.tgz#ee9ce7bbebd2b79f49f304799d5468e31e14e68a"
@@ -3240,10 +3434,10 @@ class-utils@^0.3.5:
isobject "^3.0.0"
static-extend "^0.1.1"
-classnames@^2.2.5, classnames@^2.3.1:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.1.tgz#dfcfa3891e306ec1dad105d0e88f4417b8535e8e"
- integrity sha512-OlQdbZ7gLfGarSqxesMesDa5uz7KFbID8Kpq/SxIoNGDqY8lSYs0D+hhtBXhcdB3rcbXArFr7vlHheLk1voeNA==
+classnames@^2.2.5, classnames@^2.3.2:
+ version "2.3.2"
+ resolved "https://registry.yarnpkg.com/classnames/-/classnames-2.3.2.tgz#351d813bf0137fcc6a76a16b88208d2560a0d924"
+ integrity sha512-CSbhY4cFEJRe6/GQzIk5qXZ4Jeg5pcsP7b5peFSDpffpe1cqjASH/n9UTjBwOp6XpMSTwQ8Za2K5V02ueA7Tmw==
clean-stack@^2.0.0:
version "2.2.0"
@@ -3259,13 +3453,13 @@ cliui@^5.0.0:
strip-ansi "^5.2.0"
wrap-ansi "^5.1.0"
-cliui@^7.0.2:
- version "7.0.3"
- resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.3.tgz#ef180f26c8d9bff3927ee52428bfec2090427981"
- integrity sha512-Gj3QHTkVMPKqwP3f7B4KPkBZRMR9r4rfi5bXFpg1a+Svvj8l7q5CnkBkVQzfxT5DFSsGk2+PascOgL0JYkL2kw==
+cliui@^8.0.1:
+ version "8.0.1"
+ resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa"
+ integrity sha512-BSeNnyus75C4//NQ9gQt1/csTXyo/8Sb+afLAkzAptFuMsod9HFokGNudZpi/oQV73hnVK+sR+5PVRMd+Dr7YQ==
dependencies:
string-width "^4.2.0"
- strip-ansi "^6.0.0"
+ strip-ansi "^6.0.1"
wrap-ansi "^7.0.0"
clone-deep@^4.0.1:
@@ -3277,13 +3471,6 @@ clone-deep@^4.0.1:
kind-of "^6.0.2"
shallow-clone "^3.0.0"
-clone-regexp@^2.1.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/clone-regexp/-/clone-regexp-2.2.0.tgz#7d65e00885cd8796405c35a737e7a86b7429e36f"
- integrity sha512-beMpP7BOtTipFuW8hrJvREQ2DrRu3BE7by0ZpibtfBA+qfHYvMGTc2Yb1JMYPKg/JUw0CHYvpg796aNTSW9z7Q==
- dependencies:
- is-regexp "^2.0.0"
-
cluster-key-slot@1.1.0:
version "1.1.0"
resolved "https://registry.yarnpkg.com/cluster-key-slot/-/cluster-key-slot-1.1.0.tgz#30474b2a981fb12172695833052bc0d01336d10d"
@@ -3303,6 +3490,11 @@ coa@^2.0.2:
chalk "^2.4.1"
q "^1.1.2"
+cocoon-js-vanilla@^1.3.0:
+ version "1.3.0"
+ resolved "https://registry.yarnpkg.com/cocoon-js-vanilla/-/cocoon-js-vanilla-1.3.0.tgz#1e53663f5d314e5e9b315b63eaf8ae701df113c0"
+ integrity sha512-rMnbfW6oFhvELUg141vfqZKzsowfLJRxs5FksfmDr1ZBs6LTNVYE63NQyvgRqyYUOK54cKKbI+V83dQKeeRuPg==
+
collect-v8-coverage@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.1.tgz#cc2c8e94fc18bbdffe64d6534570c8a673b27f59"
@@ -3366,10 +3558,10 @@ color@^3.0.0:
color-convert "^1.9.1"
color-string "^1.5.2"
-colord@^2.9.2:
- version "2.9.2"
- resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.2.tgz#25e2bacbbaa65991422c07ea209e2089428effb1"
- integrity sha512-Uqbg+J445nc1TKn4FoDPS6ZZqAvEDnwrH42yo8B40JSOgSLxMZ/gt3h4nmCtPLQeXhjJJkqBx7SCY35WnIixaQ==
+colord@^2.9.3:
+ version "2.9.3"
+ resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43"
+ integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw==
colorette@^1.2.2:
version "1.2.2"
@@ -3393,6 +3585,11 @@ commander@^7.2.0:
resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7"
integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw==
+common-tags@^1.8.0:
+ version "1.8.2"
+ resolved "https://registry.yarnpkg.com/common-tags/-/common-tags-1.8.2.tgz#94ebb3c076d26032745fd54face7f688ef5ac9c6"
+ integrity sha512-gk/Z852D2Wtb//0I+kRFNKKE9dIIVirjoqPoA1wJU+XePVXZfGeBpk45+A1rKO4Q43prqWBNY/MiIeRLbPWUaA==
+
commondir@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b"
@@ -3515,13 +3712,12 @@ copy-descriptor@^0.1.0:
resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d"
integrity sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=
-core-js-compat@^3.20.0, core-js-compat@^3.22.1:
- version "3.22.4"
- resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.22.4.tgz#d700f451e50f1d7672dcad0ac85d910e6691e579"
- integrity sha512-dIWcsszDezkFZrfm1cnB4f/J85gyhiCpxbgBdohWCDtSVuAaChTSpPV7ldOQf/Xds2U5xCIJZOK82G4ZPAIswA==
+core-js-compat@^3.25.1:
+ version "3.25.2"
+ resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.25.2.tgz#7875573586809909c69e03ef310810c1969ee138"
+ integrity sha512-TxfyECD4smdn3/CjWxczVtJqVLEEC2up7/82t7vC0AzNogr+4nQ8vyF7abxAuTXWvjTClSbvGhU0RgqA4ToQaQ==
dependencies:
- browserslist "^4.20.3"
- semver "7.0.0"
+ browserslist "^4.21.4"
core-js-pure@^3.0.0:
version "3.6.5"
@@ -3645,6 +3841,11 @@ crypto-browserify@^3.11.0:
randombytes "^2.0.0"
randomfill "^1.0.3"
+crypto-random-string@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/crypto-random-string/-/crypto-random-string-2.0.0.tgz#ef2a7a966ec11083388369baa02ebead229b30d5"
+ integrity sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==
+
css-color-names@0.0.4, css-color-names@^0.0.4:
version "0.0.4"
resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0"
@@ -3678,10 +3879,10 @@ css-font-weight-keywords@^1.0.0:
resolved "https://registry.yarnpkg.com/css-font-weight-keywords/-/css-font-weight-keywords-1.0.0.tgz#9bc04671ac85bc724b574ef5d3ac96b0d604fd97"
integrity sha1-m8BGcayFvHJLV07106yWsNYE/Zc=
-css-functions-list@^3.0.1:
- version "3.0.1"
- resolved "https://registry.yarnpkg.com/css-functions-list/-/css-functions-list-3.0.1.tgz#1460df7fb584d1692c30b105151dbb988c8094f9"
- integrity sha512-PriDuifDt4u4rkDgnqRCLnjfMatufLmWNfQnGCq34xZwpY3oabwhB9SqRBmuvWUgndbemCFlKqg+nO7C2q0SBw==
+css-functions-list@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/css-functions-list/-/css-functions-list-3.1.0.tgz#cf5b09f835ad91a00e5959bcfc627cd498e1321b"
+ integrity sha512-/9lCvYZaUbBGvYUgYGFJ4dcYiyqdhSjG7IPVluoV8A1ILjkF7ilmhp1OGUz8n+nmBcu0RNrQAzgD8B6FJbrt2w==
css-global-keywords@^1.0.1:
version "1.0.1"
@@ -3757,15 +3958,6 @@ css.escape@^1.5.1:
resolved "https://registry.yarnpkg.com/css.escape/-/css.escape-1.5.1.tgz#42e27d4fa04ae32f931a4b4d4191fa9cddee97cb"
integrity sha1-QuJ9T6BK4y+TGktNQZH6nN3ul8s=
-css@^3.0.0:
- version "3.0.0"
- resolved "https://registry.yarnpkg.com/css/-/css-3.0.0.tgz#4447a4d58fdd03367c516ca9f64ae365cee4aa5d"
- integrity sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==
- dependencies:
- inherits "^2.0.4"
- source-map "^0.6.1"
- source-map-resolve "^0.6.0"
-
cssesc@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee"
@@ -3886,12 +4078,12 @@ d@1, d@^1.0.1:
es5-ext "^0.10.50"
type "^1.0.1"
-damerau-levenshtein@^1.0.7:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.7.tgz#64368003512a1a6992593741a09a9d31a836f55d"
- integrity sha512-VvdQIPGdWP0SqFXghj79Wf/5LArmreyMsGLa6FG6iC4t3j7j5s71TrwWmT/4akbDQIqjfACkLZmjXhA7g2oUZw==
+damerau-levenshtein@^1.0.8:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz#b43d286ccbd36bc5b2f7ed41caf2d0aba1f8a6e7"
+ integrity sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==
-data-urls@^3.0.1:
+data-urls@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/data-urls/-/data-urls-3.0.2.tgz#9cf24a477ae22bcef5cd5f6f0bfbc1d2d3be9143"
integrity sha512-Jy/tj3ldjZJo63sVAvg6LHt2mHvl4V6AgRAmNDtLdm7faqtsx+aJG42rsyCo9JCoRVKwPFzKlIPx3DIibwSIaQ==
@@ -3934,10 +4126,10 @@ decamelize@^1.1.0, decamelize@^1.2.0:
resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290"
integrity sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=
-decimal.js@^10.3.1:
- version "10.3.1"
- resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.3.1.tgz#d8c3a444a9c6774ba60ca6ad7261c3a94fd5e783"
- integrity sha512-V0pfhfr8suzyPGOx3nmq4aHqabehUZn6Ch9kyFpV79TGDTWFmHqUqXdabR7QHqxzrYolF4+tVmJhUG4OURg5dQ==
+decimal.js@^10.4.1:
+ version "10.4.1"
+ resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.1.tgz#be75eeac4a2281aace80c1a8753587c27ef053e7"
+ integrity sha512-F29o+vci4DodHYT9UrR5IEbfBw9pE5eSapIJdTqXK5+6hq+t8VRxwQyKlW2i+KDKFkkJQRvFyI/QXD83h8LyQw==
decode-uri-component@^0.2.0:
version "0.2.0"
@@ -3961,11 +4153,6 @@ deep-equal@^1.0.1:
object-keys "^1.1.1"
regexp.prototype.flags "^1.2.0"
-deep-extend@^0.5.1:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.5.1.tgz#b894a9dd90d3023fbf1c55a394fb858eb2066f1f"
- integrity sha512-N8vBdOa+DF7zkRrDCsaOXoCs/E2fJfx9B9MrKnnSiHNh4ws7eSys6YQE4KvT1cecKmOASYQBhbKjeuDD9lT81w==
-
deep-is@^0.1.3, deep-is@~0.1.3:
version "0.1.3"
resolved "https://registry.yarnpkg.com/deep-is/-/deep-is-0.1.3.tgz#b369d6fb5dbc13eecf524f91b070feedc357cf34"
@@ -4092,10 +4279,10 @@ diff-sequences@^25.2.6:
resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-25.2.6.tgz#5f467c00edd35352b7bca46d7927d60e687a76dd"
integrity sha512-Hq8o7+6GaZeoFjtpgvRBUknSXNeJiCx7V9Fr94ZMljNiCr9n9L8H8aJqgWOQiDDGdyn29fRNcDdRVJ5fdyihfg==
-diff-sequences@^28.0.2:
- version "28.0.2"
- resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-28.0.2.tgz#40f8d4ffa081acbd8902ba35c798458d0ff1af41"
- integrity sha512-YtEoNynLDFCRznv/XDalsKGSZDoj0U5kLnXvY0JSq3nBboRrZXjD81+eSiwi+nzcZDwedMmcowcxNwwgFW23mQ==
+diff-sequences@^29.2.0:
+ version "29.2.0"
+ resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.2.0.tgz#4c55b5b40706c7b5d2c5c75999a50c56d214e8f6"
+ integrity sha512-413SY5JpYeSBZxmenGEmCVQ8mCgtFJF0w9PROdaS6z987XC2Pd2GOKqOITLtMftmyFZqgtCOb/QA7/Z3ZXfzIw==
diffie-hellman@^5.0.0:
version "5.0.3"
@@ -4212,10 +4399,10 @@ dot-prop@^5.2.0:
dependencies:
is-obj "^2.0.0"
-dotenv@^16.0.1:
- version "16.0.1"
- resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.1.tgz#8f8f9d94876c35dac989876a5d3a82a267fdce1d"
- integrity sha512-1K6hR6wtk2FviQ4kEiSjFiH5rpzEVi8WW0x96aztHVMhEspNpc4DVOUTEHtEva5VThQ8IaBX1Pe4gSzpVVUsKQ==
+dotenv@^16.0.3:
+ version "16.0.3"
+ resolved "https://registry.yarnpkg.com/dotenv/-/dotenv-16.0.3.tgz#115aec42bac5053db3c456db30cc243a5a836a07"
+ integrity sha512-7GO6HghkA5fYG9TYnNxi14/7K9f5occMlp3zXAuSxn7CKCxt9xbNWG7yF8hTCSUchlfWSe3uLmlPfigevRItzQ==
duplexer@^0.1.2:
version "0.1.2"
@@ -4237,20 +4424,22 @@ ee-first@1.1.1:
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
integrity sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=
-ejs@^2.3.4:
- version "2.7.4"
- resolved "https://registry.yarnpkg.com/ejs/-/ejs-2.7.4.tgz#48661287573dcc53e366c7a1ae52c3a120eec9ba"
- integrity sha512-7vmuyh5+kuUyJKePhQfRQBhXV5Ce+RnaeeQArKu1EAMpL3WbgMt5WG6uQZpEVvYSSsxMXRKOewtDk9RaTKXRlA==
+ejs@^3.1.6:
+ version "3.1.8"
+ resolved "https://registry.yarnpkg.com/ejs/-/ejs-3.1.8.tgz#758d32910c78047585c7ef1f92f9ee041c1c190b"
+ integrity sha512-/sXZeMlhS0ArkfX2Aw780gJzXSMPnKjtspYZv+f3NiKLlubezAHDU5+9xz6gd3/NhG3txQCo6xlglmTS+oTGEQ==
+ dependencies:
+ jake "^10.8.5"
electron-to-chromium@^1.3.723:
version "1.3.736"
resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.736.tgz#f632d900a1f788dab22fec9c62ec5c9c8f0c4052"
integrity sha512-DY8dA7gR51MSo66DqitEQoUMQ0Z+A2DSXFi7tK304bdTVqczCAfUuyQw6Wdg8hIoo5zIxkU1L24RQtUce1Ioig==
-electron-to-chromium@^1.4.118:
- version "1.4.129"
- resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.129.tgz#c675793885721beefff99da50f57c6525c2cd238"
- integrity sha512-GgtN6bsDtHdtXJtlMYZWGB/uOyjZWjmRDumXTas7dGBaB9zUyCjzHet1DY2KhyHN8R0GLbzZWqm4efeddqqyRQ==
+electron-to-chromium@^1.4.251:
+ version "1.4.254"
+ resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.4.254.tgz#c6203583890abf88dfc0be046cd72d3b48f8beb6"
+ integrity sha512-Sh/7YsHqQYkA6ZHuHMy24e6TE4eX6KZVsZb9E/DvU1nQRIrH4BflO/4k+83tfdYvDl+MObvlqHPRICzEdC9c6Q==
elliptic@^6.5.3:
version "6.5.4"
@@ -4265,10 +4454,10 @@ elliptic@^6.5.3:
minimalistic-assert "^1.0.1"
minimalistic-crypto-utils "^1.0.1"
-emittery@^0.10.2:
- version "0.10.2"
- resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.10.2.tgz#902eec8aedb8c41938c46e9385e9db7e03182933"
- integrity sha512-aITqOwnLanpHLNXZJENbOgjUBeHocD+xsSJmNrjovKBW5HbSpW3d1pEls7GFQPUWXiwG9+0P4GtHfEqC/4M0Iw==
+emittery@^0.13.1:
+ version "0.13.1"
+ resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad"
+ integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ==
"emoji-mart@npm:emoji-mart-lazyload":
version "3.0.1-j"
@@ -4294,11 +4483,6 @@ emoji-regex@^9.2.2:
resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72"
integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg==
-emojis-list@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389"
- integrity sha1-TapNnbAPmBmIDHn6RXrlsJof04k=
-
emojis-list@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78"
@@ -4337,6 +4521,11 @@ entities@^2.0.0:
resolved "https://registry.yarnpkg.com/entities/-/entities-2.0.3.tgz#5c487e5742ab93c15abb5da22759b8590ec03b7f"
integrity sha512-MyoZ0jgnLvB2X3Lg5HqpFmn1kybDiIfEQmKzTb5apr51Rb+T3KdmMiqa70T+bhGnyv7bQ6WMj2QMHpGMmlrUYQ==
+entities@^4.4.0:
+ version "4.4.0"
+ resolved "https://registry.yarnpkg.com/entities/-/entities-4.4.0.tgz#97bdaba170339446495e653cfd2db78962900174"
+ integrity sha512-oYp7156SP8LkeGD0GF85ad1X9Ai79WtRsZ2gxJqtBuzH+98YUV6jkHEKlZkMbcrjJjIVJNIDP/3WL9wQkoPbWA==
+
errno@^0.1.3, errno@~0.1.7:
version "0.1.7"
resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618"
@@ -4530,33 +4719,34 @@ eslint-plugin-import@~2.26.0:
resolve "^1.22.0"
tsconfig-paths "^3.14.1"
-eslint-plugin-jsx-a11y@~6.5.1:
- version "6.5.1"
- resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.5.1.tgz#cdbf2df901040ca140b6ec14715c988889c2a6d8"
- integrity sha512-sVCFKX9fllURnXT2JwLN5Qgo24Ug5NF6dxhkmxsMEUZhXRcGg+X3e1JbJ84YePQKBl5E0ZjAH5Q4rkdcGY99+g==
+eslint-plugin-jsx-a11y@~6.6.1:
+ version "6.6.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.6.1.tgz#93736fc91b83fdc38cc8d115deedfc3091aef1ff"
+ integrity sha512-sXgFVNHiWffBq23uiS/JaP6eVR622DqwB4yTzKvGZGcPq6/yZ3WmOZfuBks/vHWo9GaFOqC2ZK4i6+C35knx7Q==
dependencies:
- "@babel/runtime" "^7.16.3"
+ "@babel/runtime" "^7.18.9"
aria-query "^4.2.2"
- array-includes "^3.1.4"
+ array-includes "^3.1.5"
ast-types-flow "^0.0.7"
- axe-core "^4.3.5"
+ axe-core "^4.4.3"
axobject-query "^2.2.0"
- damerau-levenshtein "^1.0.7"
+ damerau-levenshtein "^1.0.8"
emoji-regex "^9.2.2"
has "^1.0.3"
- jsx-ast-utils "^3.2.1"
+ jsx-ast-utils "^3.3.2"
language-tags "^1.0.5"
- minimatch "^3.0.4"
+ minimatch "^3.1.2"
+ semver "^6.3.0"
-eslint-plugin-promise@~6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.0.0.tgz#017652c07c9816413a41e11c30adc42c3d55ff18"
- integrity sha512-7GPezalm5Bfi/E22PnQxDWH2iW9GTvAlUNTztemeHb6c1BniSyoeTrM87JkC0wYdi6aQrZX9p2qEiAno8aTcbw==
+eslint-plugin-promise@~6.1.1:
+ version "6.1.1"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-promise/-/eslint-plugin-promise-6.1.1.tgz#269a3e2772f62875661220631bd4dafcb4083816"
+ integrity sha512-tjqWDwVZQo7UIPMeDReOpUgHCmCiH+ePnVT+5zVapL0uuHnegBUs2smM13CzOs2Xb5+MHMRFTs9v24yjba4Oig==
-eslint-plugin-react@~7.30.0:
- version "7.30.0"
- resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.30.0.tgz#8e7b1b2934b8426ac067a0febade1b13bd7064e3"
- integrity sha512-RgwH7hjW48BleKsYyHK5vUAvxtE9SMPDKmcPRQgtRCYaZA0XQPt5FSkrU3nhz5ifzMZcA8opwmRJ2cmOO8tr5A==
+eslint-plugin-react@~7.31.10:
+ version "7.31.10"
+ resolved "https://registry.yarnpkg.com/eslint-plugin-react/-/eslint-plugin-react-7.31.10.tgz#6782c2c7fe91c09e715d536067644bbb9491419a"
+ integrity sha512-e4N/nc6AAlg4UKW/mXeYWd3R++qUano5/o+t+wnWxIf+bLsOaH3a4q74kX3nDjYym3VBN4HyO9nEn1GcAqgQOA==
dependencies:
array-includes "^3.1.5"
array.prototype.flatmap "^1.3.0"
@@ -4573,6 +4763,14 @@ eslint-plugin-react@~7.30.0:
semver "^6.3.0"
string.prototype.matchall "^4.0.7"
+eslint-scope@5.1.1, eslint-scope@^5.1.1:
+ version "5.1.1"
+ resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
+ integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
+ dependencies:
+ esrecurse "^4.3.0"
+ estraverse "^4.1.1"
+
eslint-scope@^4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848"
@@ -4581,14 +4779,6 @@ eslint-scope@^4.0.3:
esrecurse "^4.1.0"
estraverse "^4.1.1"
-eslint-scope@^5.1.1:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-5.1.1.tgz#e786e59a66cb92b3f6c1fb0d508aab174848f48c"
- integrity sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==
- dependencies:
- esrecurse "^4.3.0"
- estraverse "^4.1.1"
-
eslint-utils@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-2.1.0.tgz#d2de5e03424e707dc10c74068ddedae708741b27"
@@ -4601,12 +4791,7 @@ eslint-visitor-keys@^1.1.0, eslint-visitor-keys@^1.3.0:
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e"
integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==
-eslint-visitor-keys@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.0.0.tgz#21fdc8fbcd9c795cc0321f0563702095751511a8"
- integrity sha512-QudtT6av5WXels9WjIM7qz1XD1cWGvX4gGXvp/zBn9nXG02D0utdU3Em2m/QjTnrsk6bBjmCygl3rmj118msQQ==
-
-eslint-visitor-keys@^2.1.0:
+eslint-visitor-keys@^2.0.0, eslint-visitor-keys@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303"
integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw==
@@ -4695,6 +4880,11 @@ estraverse@^5.1.0, estraverse@^5.2.0, estraverse@^5.3.0:
resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-5.3.0.tgz#2eea5290702f26ab8fe5370370ff86c965d21123"
integrity sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==
+estree-walker@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-1.0.1.tgz#31bc5d612c96b704106b477e6dd5d8aa138cb700"
+ integrity sha512-1fMXF3YP4pZZVozF8j/ZLfvnR8NSIljt56UhbZ5PeeDmmGHpgpdwQt7ITlGvYaQukCvuBRMLEiKiYC+oeIg4cg==
+
esutils@^2.0.2:
version "2.0.3"
resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64"
@@ -4705,6 +4895,11 @@ etag@~1.8.1:
resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887"
integrity sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=
+event-target-shim@^5.0.0:
+ version "5.0.1"
+ resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789"
+ integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==
+
eventemitter3@^4.0.0:
version "4.0.7"
resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f"
@@ -4715,6 +4910,11 @@ events@^3.0.0:
resolved "https://registry.yarnpkg.com/events/-/events-3.2.0.tgz#93b87c18f8efcd4202a461aec4dfc0556b639379"
integrity sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==
+events@^3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400"
+ integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==
+
eventsource@^1.0.7:
version "1.1.1"
resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-1.1.1.tgz#4544a35a57d7120fba4fa4c86cb4023b2c09df2f"
@@ -4758,13 +4958,6 @@ execa@^5.0.0:
signal-exit "^3.0.3"
strip-final-newline "^2.0.0"
-execall@^2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/execall/-/execall-2.0.0.tgz#16a06b5fe5099df7d00be5d9c06eecded1663b45"
- integrity sha512-0FU2hZ5Hh6iQnarpRtQurM/aAvp3RIbfvgLHrcqJYzhXyV2KFruhuChf9NC6waAhiUR7FFtlugkI4p7f2Fqlow==
- dependencies:
- clone-regexp "^2.1.0"
-
exif-js@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/exif-js/-/exif-js-2.3.0.tgz#9d10819bf571f873813e7640241255ab9ce1a814"
@@ -4795,25 +4988,25 @@ expand-tilde@^2.0.0, expand-tilde@^2.0.2:
dependencies:
homedir-polyfill "^1.0.1"
-expect@^28.1.0:
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/expect/-/expect-28.1.0.tgz#10e8da64c0850eb8c39a480199f14537f46e8360"
- integrity sha512-qFXKl8Pmxk8TBGfaFKRtcQjfXEnKAs+dmlxdwvukJZorwrAabT7M3h8oLOG01I2utEhkmUTi17CHaPBovZsKdw==
+expect@^29.2.2:
+ version "29.2.2"
+ resolved "https://registry.yarnpkg.com/expect/-/expect-29.2.2.tgz#ba2dd0d7e818727710324a6e7f13dd0e6d086106"
+ integrity sha512-hE09QerxZ5wXiOhqkXy5d2G9ar+EqOyifnCXCpMNu+vZ6DG9TJ6CO2c2kPDSLqERTTWrO7OZj8EkYHQqSd78Yw==
dependencies:
- "@jest/expect-utils" "^28.1.0"
- jest-get-type "^28.0.2"
- jest-matcher-utils "^28.1.0"
- jest-message-util "^28.1.0"
- jest-util "^28.1.0"
+ "@jest/expect-utils" "^29.2.2"
+ jest-get-type "^29.2.0"
+ jest-matcher-utils "^29.2.2"
+ jest-message-util "^29.2.1"
+ jest-util "^29.2.1"
-express@^4.17.1, express@^4.18.1:
- version "4.18.1"
- resolved "https://registry.yarnpkg.com/express/-/express-4.18.1.tgz#7797de8b9c72c857b9cd0e14a5eea80666267caf"
- integrity sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==
+express@^4.17.1, express@^4.18.2:
+ version "4.18.2"
+ resolved "https://registry.yarnpkg.com/express/-/express-4.18.2.tgz#3fabe08296e930c796c19e3c516979386ba9fd59"
+ integrity sha512-5/PsL6iGPdfQ/lKM1UuielYgv3BUoJfz1aUwU9vHZ+J7gyvwdQXFEBIEIaxeGf0GIcreATNyBExtalisDbuMqQ==
dependencies:
accepts "~1.3.8"
array-flatten "1.1.1"
- body-parser "1.20.0"
+ body-parser "1.20.1"
content-disposition "0.5.4"
content-type "~1.0.4"
cookie "0.5.0"
@@ -4832,7 +5025,7 @@ express@^4.17.1, express@^4.18.1:
parseurl "~1.3.3"
path-to-regexp "0.1.7"
proxy-addr "~2.0.7"
- qs "6.10.3"
+ qs "6.11.0"
range-parser "~1.2.1"
safe-buffer "5.2.1"
send "0.18.0"
@@ -4884,10 +5077,10 @@ fast-deep-equal@^3.1.1, fast-deep-equal@^3.1.3:
resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz#3a7d56b559d6cbc3eb512325244e619a65c6c525"
integrity sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==
-fast-glob@^3.2.11, fast-glob@^3.2.9:
- version "3.2.11"
- resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.11.tgz#a1172ad95ceb8a16e20caa5c5e56480e5129c1d9"
- integrity sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==
+fast-glob@^3.2.12, fast-glob@^3.2.9:
+ version "3.2.12"
+ resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.2.12.tgz#7f39ec99c2e6ab030337142da9e0c18f37afae80"
+ integrity sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==
dependencies:
"@nodelib/fs.stat" "^2.0.2"
"@nodelib/fs.walk" "^1.2.3"
@@ -4895,7 +5088,7 @@ fast-glob@^3.2.11, fast-glob@^3.2.9:
merge2 "^1.3.0"
micromatch "^4.0.4"
-fast-json-stable-stringify@^2.0.0:
+fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz#874bf69c6f404c2b5d99c481341399fd55892633"
integrity sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw==
@@ -4905,10 +5098,10 @@ fast-levenshtein@^2.0.6, fast-levenshtein@~2.0.6:
resolved "https://registry.yarnpkg.com/fast-levenshtein/-/fast-levenshtein-2.0.6.tgz#3d8a5c66883a16a30ca8643e851f19baa7797917"
integrity sha1-PYpcZog6FqMMqGQ+hR8Zuqd5eRc=
-fastest-levenshtein@^1.0.12:
- version "1.0.12"
- resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.12.tgz#9990f7d3a88cc5a9ffd1f1745745251700d497e2"
- integrity sha512-On2N+BpYJ15xIC974QNVuYGMOlEVt4s0EOI3wwMqOmK1fdDY+FN/zltPV8vosq4ad4c/gJ1KHScUn/6AWIgiow==
+fastest-levenshtein@^1.0.16:
+ version "1.0.16"
+ resolved "https://registry.yarnpkg.com/fastest-levenshtein/-/fastest-levenshtein-1.0.16.tgz#210e61b6ff181de91ea9b3d1b84fdedd47e034e5"
+ integrity sha512-eRnCtTTtGZFpQCwhJiUOuxPQWRXVKYDn0b2PeHfXL6/Zi53SLAzAHfVhVWK2AryC/WH05kGfxhFIPvTF0SXQzg==
fastq@^1.6.0:
version "1.13.0"
@@ -4966,6 +5159,13 @@ file-uri-to-path@1.0.0:
resolved "https://registry.yarnpkg.com/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz#553a7b8446ff6f684359c445f1e37a05dacc33dd"
integrity sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==
+filelist@^1.0.1:
+ version "1.0.4"
+ resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5"
+ integrity sha512-w1cEuf3S+DrLCQL7ET6kz+gmlJdbq9J7yXCSjK/OZCPA+qEN1WyF4ZAf0YYJa4/shHJra2t/d/r8SV4Ji+x+8Q==
+ dependencies:
+ minimatch "^5.0.1"
+
fill-range@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7"
@@ -5072,10 +5272,10 @@ flush-write-stream@^1.0.0:
inherits "^2.0.3"
readable-stream "^2.3.6"
-follow-redirects@^1.0.0, follow-redirects@^1.14.9:
- version "1.14.9"
- resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.14.9.tgz#dd4ea157de7bfaf9ea9b3fbd85aa16951f78d8d7"
- integrity sha512-MQDfihBQYMcyy5dhRDJUHcw7lb2Pv/TuE6xP1vyraLukNDHKbDxDNaOE3NbCAdKQApno+GPRyo1YAp89yCjK4w==
+follow-redirects@^1.0.0, follow-redirects@^1.15.0:
+ version "1.15.2"
+ resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.2.tgz#b460864144ba63f2681096f274c4e57026da2c13"
+ integrity sha512-VQLG33o04KaQ8uYi2tVNbdrWp1QWxNNea+nmIB4EVM28v0hmP17z7aG1+wAkNzVq4KeXTq3221ye5qTJP91JwA==
font-awesome@^4.7.0:
version "4.7.0"
@@ -5130,6 +5330,16 @@ fs-extra@^8.1.0:
jsonfile "^4.0.0"
universalify "^0.1.0"
+fs-extra@^9.0.1:
+ version "9.1.0"
+ resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-9.1.0.tgz#5954460c764a8da2094ba3554bf839e6b9a7c86d"
+ integrity sha512-hcg3ZmepS30/7BSFqRvoo3DOMQu7IjqxO5nCDt+zM9XWjb33Wg7ziNT+Qvqbuc3+gWpzO02JubVyk2G4Zvo1OQ==
+ dependencies:
+ at-least-node "^1.0.0"
+ graceful-fs "^4.2.0"
+ jsonfile "^6.0.1"
+ universalify "^2.0.0"
+
fs-minipass@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/fs-minipass/-/fs-minipass-2.1.0.tgz#7f5036fdbf12c63c169190cbe4199c852271f9fb"
@@ -5160,7 +5370,7 @@ fsevents@^1.2.7:
bindings "^1.5.0"
nan "^2.12.1"
-fsevents@^2.3.2, fsevents@~2.3.1:
+fsevents@^2.3.2, fsevents@~2.3.1, fsevents@~2.3.2:
version "2.3.2"
resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.2.tgz#8a526f78b8fdf4623b709e0b975c52c24c02fd1a"
integrity sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==
@@ -5195,10 +5405,10 @@ fuzzysort@^1.9.0:
resolved "https://registry.yarnpkg.com/fuzzysort/-/fuzzysort-1.9.0.tgz#d36d27949eae22340bb6f7ba30ea6751b92a181c"
integrity sha512-MOxCT0qLTwLqmEwc7UtU045RKef7mc8Qz8eR4r2bLNEq9dy/c3ZKMEFp6IEst69otkQdFZ4FfgH2dmZD+ddX1g==
-gauge@^4.0.3:
- version "4.0.4"
- resolved "https://registry.yarnpkg.com/gauge/-/gauge-4.0.4.tgz#52ff0652f2bbf607a989793d53b751bef2328dce"
- integrity sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==
+gauge@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/gauge/-/gauge-5.0.0.tgz#e270ca9d97dae84abf64e5277ef1ebddc7dd1e2f"
+ integrity sha512-0s5T5eciEG7Q3ugkxAkFtaDhrrhXsCRivA5y8C9WMHWuI8UlMOJg7+Iwf7Mccii+Dfs3H5jHepU0joPVyQU0Lw==
dependencies:
aproba "^1.0.3 || ^2.0.0"
color-support "^1.1.3"
@@ -5233,16 +5443,16 @@ get-intrinsic@^1.0.2, get-intrinsic@^1.1.0, get-intrinsic@^1.1.1:
has "^1.0.3"
has-symbols "^1.0.1"
+get-own-enumerable-property-symbols@^3.0.0:
+ version "3.0.2"
+ resolved "https://registry.yarnpkg.com/get-own-enumerable-property-symbols/-/get-own-enumerable-property-symbols-3.0.2.tgz#b5fde77f22cbe35f390b4e089922c50bce6ef664"
+ integrity sha512-I0UBV/XOz1XkIJHEUDMZAbzCThU/H8DxmSfmdGcKPnVhu2VfFqr34jr9777IyaTYvxjedWhqVIilEDsCdP5G6g==
+
get-package-type@^0.1.0:
version "0.1.0"
resolved "https://registry.yarnpkg.com/get-package-type/-/get-package-type-0.1.0.tgz#8de2d803cff44df3bc6c456e6668b36c3926e11a"
integrity sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==
-get-stdin@^8.0.0:
- version "8.0.0"
- resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-8.0.0.tgz#cbad6a73feb75f6eeb22ba9e01f89aa28aa97a53"
- integrity sha512-sY22aA6xchAzprjyqmSEQv4UbAAzRN0L2dQB0NlN5acTTK9Don6nhoc3eAbUnpZiCANAMfd/+40kVdKfFygohg==
-
get-stream@^4.0.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5"
@@ -5283,7 +5493,7 @@ glob-parent@^5.1.2, glob-parent@~5.1.0:
dependencies:
is-glob "^4.0.1"
-glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4:
+glob@^7.0.3, glob@^7.1.1, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6:
version "7.2.0"
resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.0.tgz#d15535af7732e02e948f4c41628bd910293f6023"
integrity sha512-lmLf6gtyrPq8tTjSmrO94wBeQbFR3HbLHbuyD69wuyQkImp2hWqMGB47OX65FBkPffO641IP9jWa1z4ivqG26Q==
@@ -5656,10 +5866,10 @@ http-errors@~1.6.2:
setprototypeof "1.1.0"
statuses ">= 1.4.0 < 2"
-http-link-header@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/http-link-header/-/http-link-header-1.0.4.tgz#f4efc76c6151ed0ba0d1a2d679798a18854a4a99"
- integrity sha512-Cnv3Q+FF+35avekdnH/ML8dls++tdnSgrvUIWw0YEszrWeLSuw5Iq1vyCVTb5v0rEUgFTy0x4shxXyrO0MDUzw==
+http-link-header@^1.0.5:
+ version "1.0.5"
+ resolved "https://registry.yarnpkg.com/http-link-header/-/http-link-header-1.0.5.tgz#8e6d9ed1d393e8d5e01aa5c48bd97aa38d7e261c"
+ integrity sha512-msKrMbv/xHzhdOD4sstbEr+NbGqpv8ZtZliiCeByGENJo1jK1GZ/81zHF9HpWtEH5ihovPpdqHXniwZapJCKEA==
"http-parser-js@>=0.4.0 <0.4.11":
version "0.4.10"
@@ -5704,7 +5914,7 @@ https-browserify@^1.0.0:
resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73"
integrity sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=
-https-proxy-agent@^5.0.0:
+https-proxy-agent@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz#c59ef224a04fe8b754f3db0063a25ea30d0005d6"
integrity sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==
@@ -5741,11 +5951,21 @@ idb-keyval@^3.2.0:
resolved "https://registry.yarnpkg.com/idb-keyval/-/idb-keyval-3.2.0.tgz#cbbf354deb5684b6cdc84376294fc05932845bd6"
integrity sha512-slx8Q6oywCCSfKgPgL0sEsXtPVnSbTLWpyiDcu6msHOyKOLari1TD1qocXVCft80umnkk3/Qqh3lwoFt8T/BPQ==
+idb@^7.0.1:
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/idb/-/idb-7.0.2.tgz#7a067e20dd16539938e456814b7d714ba8db3892"
+ integrity sha512-jjKrT1EnyZewQ/gCBb/eyiYrhGzws2FeY92Yx8qT9S9GeQAmo4JFVIiWRIfKW/6Ob9A+UDAOW9j9jn58fy2HIg==
+
ieee754@^1.1.4:
version "1.1.13"
resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.13.tgz#ec168558e95aa181fd87d37f55c32bbcb6708b84"
integrity sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg==
+ieee754@^1.2.1:
+ version "1.2.1"
+ resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.2.1.tgz#8eb7a10a63fff25d15a57b001586d177d1b0d352"
+ integrity sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==
+
iferr@^0.1.5:
version "0.1.5"
resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501"
@@ -5905,10 +6125,10 @@ interpret@^1.4.0:
resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.4.0.tgz#665ab8bc4da27a774a40584e812e3e0fa45b1a1e"
integrity sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==
-intersection-observer@^0.12.0:
- version "0.12.0"
- resolved "https://registry.yarnpkg.com/intersection-observer/-/intersection-observer-0.12.0.tgz#6c84628f67ce8698e5f9ccf857d97718745837aa"
- integrity sha512-2Vkz8z46Dv401zTWudDGwO7KiGHNDkMv417T5ItcNYfmvHR/1qCTVBO9vwH8zZmQ0WkA/1ARwpysR9bsnop4NQ==
+intersection-observer@^0.12.0, intersection-observer@^0.12.2:
+ version "0.12.2"
+ resolved "https://registry.yarnpkg.com/intersection-observer/-/intersection-observer-0.12.2.tgz#4a45349cc0cd91916682b1f44c28d7ec737dc375"
+ integrity sha512-7m1vEcPCxXYI8HqnL8CKI6siDyD+eIWSwgB3DZA+ZTogxk9I4CDnj4wilt9x/+/QbHI4YG5YZNmC6458/e9Ktg==
intl-format-cache@^2.0.5:
version "2.2.9"
@@ -6167,6 +6387,11 @@ is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1:
dependencies:
is-extglob "^2.1.1"
+is-module@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591"
+ integrity sha1-Mlj7afeMFNW4FdZkM2tM/7ZEFZE=
+
is-nan@^1.3.2:
version "1.3.2"
resolved "https://registry.yarnpkg.com/is-nan/-/is-nan-1.3.2.tgz#043a54adea31748b55b6cd4e09aadafa69bd9e1d"
@@ -6197,6 +6422,11 @@ is-number@^7.0.0:
resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b"
integrity sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==
+is-obj@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-1.0.1.tgz#3e4729ac1f5fde025cd7d83a896dab9f4f67db0f"
+ integrity sha1-PkcprB9f3gJc19g6iW2rn09n2w8=
+
is-obj@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/is-obj/-/is-obj-2.0.0.tgz#473fb05d973705e3fd9620545018ca8e22ef4982"
@@ -6258,10 +6488,10 @@ is-regex@^1.1.4:
call-bind "^1.0.2"
has-tostringtag "^1.0.0"
-is-regexp@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-2.1.0.tgz#cd734a56864e23b956bf4e7c66c396a4c0b22c2d"
- integrity sha512-OZ4IlER3zmRIoB9AqNhEggVxqIH4ofDns5nRrPS6yQxXE1TPCUpFznBfRQmQa8uC+pXqjMnukiJBxCisIxiLGA==
+is-regexp@^1.0.0:
+ version "1.0.0"
+ resolved "https://registry.yarnpkg.com/is-regexp/-/is-regexp-1.0.0.tgz#fd2d883545c46bac5a633e7b9a09e87fa2cb5069"
+ integrity sha1-/S2INUXEa6xaYz57mgnof6LLUGk=
is-resolvable@^1.0.0:
version "1.1.0"
@@ -6402,82 +6632,92 @@ istanbul-reports@^3.1.3:
html-escaper "^2.0.0"
istanbul-lib-report "^3.0.0"
-jest-changed-files@^28.0.2:
- version "28.0.2"
- resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-28.0.2.tgz#7d7810660a5bd043af9e9cfbe4d58adb05e91531"
- integrity sha512-QX9u+5I2s54ZnGoMEjiM2WeBvJR2J7w/8ZUmH2um/WLAuGAYFQcsVXY9+1YL6k0H/AGUdH8pXUAv6erDqEsvIA==
+jake@^10.8.5:
+ version "10.8.5"
+ resolved "https://registry.yarnpkg.com/jake/-/jake-10.8.5.tgz#f2183d2c59382cb274226034543b9c03b8164c46"
+ integrity sha512-sVpxYeuAhWt0OTWITwT98oyV0GsXyMlXCF+3L1SuafBVUIr/uILGRB+NqwkzhgXKvoJpDIpQvqkUALgdmQsQxw==
+ dependencies:
+ async "^3.2.3"
+ chalk "^4.0.2"
+ filelist "^1.0.1"
+ minimatch "^3.0.4"
+
+jest-changed-files@^29.2.0:
+ version "29.2.0"
+ resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.2.0.tgz#b6598daa9803ea6a4dce7968e20ab380ddbee289"
+ integrity sha512-qPVmLLyBmvF5HJrY7krDisx6Voi8DmlV3GZYX0aFNbaQsZeoz1hfxcCMbqDGuQCxU1dJy9eYc2xscE8QrCCYaA==
dependencies:
execa "^5.0.0"
- throat "^6.0.1"
+ p-limit "^3.1.0"
-jest-circus@^28.1.0:
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-28.1.0.tgz#e229f590911bd54d60efaf076f7acd9360296dae"
- integrity sha512-rNYfqfLC0L0zQKRKsg4n4J+W1A2fbyGH7Ss/kDIocp9KXD9iaL111glsLu7+Z7FHuZxwzInMDXq+N1ZIBkI/TQ==
+jest-circus@^29.2.2:
+ version "29.2.2"
+ resolved "https://registry.yarnpkg.com/jest-circus/-/jest-circus-29.2.2.tgz#1dc4d35fd49bf5e64d3cc505fb2db396237a6dfa"
+ integrity sha512-upSdWxx+Mh4DV7oueuZndJ1NVdgtTsqM4YgywHEx05UMH5nxxA2Qu9T9T9XVuR021XxqSoaKvSmmpAbjwwwxMw==
dependencies:
- "@jest/environment" "^28.1.0"
- "@jest/expect" "^28.1.0"
- "@jest/test-result" "^28.1.0"
- "@jest/types" "^28.1.0"
+ "@jest/environment" "^29.2.2"
+ "@jest/expect" "^29.2.2"
+ "@jest/test-result" "^29.2.1"
+ "@jest/types" "^29.2.1"
"@types/node" "*"
chalk "^4.0.0"
co "^4.6.0"
dedent "^0.7.0"
is-generator-fn "^2.0.0"
- jest-each "^28.1.0"
- jest-matcher-utils "^28.1.0"
- jest-message-util "^28.1.0"
- jest-runtime "^28.1.0"
- jest-snapshot "^28.1.0"
- jest-util "^28.1.0"
- pretty-format "^28.1.0"
+ jest-each "^29.2.1"
+ jest-matcher-utils "^29.2.2"
+ jest-message-util "^29.2.1"
+ jest-runtime "^29.2.2"
+ jest-snapshot "^29.2.2"
+ jest-util "^29.2.1"
+ p-limit "^3.1.0"
+ pretty-format "^29.2.1"
slash "^3.0.0"
stack-utils "^2.0.3"
- throat "^6.0.1"
-jest-cli@^28.1.0:
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-28.1.0.tgz#cd1d8adb9630102d5ba04a22895f63decdd7ac1f"
- integrity sha512-fDJRt6WPRriHrBsvvgb93OxgajHHsJbk4jZxiPqmZbMDRcHskfJBBfTyjFko0jjfprP544hOktdSi9HVgl4VUQ==
+jest-cli@^29.2.2:
+ version "29.2.2"
+ resolved "https://registry.yarnpkg.com/jest-cli/-/jest-cli-29.2.2.tgz#feaf0aa57d327e80d4f2f18d5f8cd2e77cac5371"
+ integrity sha512-R45ygnnb2CQOfd8rTPFR+/fls0d+1zXS6JPYTBBrnLPrhr58SSuPTiA5Tplv8/PXpz4zXR/AYNxmwIj6J6nrvg==
dependencies:
- "@jest/core" "^28.1.0"
- "@jest/test-result" "^28.1.0"
- "@jest/types" "^28.1.0"
+ "@jest/core" "^29.2.2"
+ "@jest/test-result" "^29.2.1"
+ "@jest/types" "^29.2.1"
chalk "^4.0.0"
exit "^0.1.2"
graceful-fs "^4.2.9"
import-local "^3.0.2"
- jest-config "^28.1.0"
- jest-util "^28.1.0"
- jest-validate "^28.1.0"
+ jest-config "^29.2.2"
+ jest-util "^29.2.1"
+ jest-validate "^29.2.2"
prompts "^2.0.1"
yargs "^17.3.1"
-jest-config@^28.1.0:
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-28.1.0.tgz#fca22ca0760e746fe1ce1f9406f6b307ab818501"
- integrity sha512-aOV80E9LeWrmflp7hfZNn/zGA4QKv/xsn2w8QCBP0t0+YqObuCWTSgNbHJ0j9YsTuCO08ZR/wsvlxqqHX20iUA==
+jest-config@^29.2.2:
+ version "29.2.2"
+ resolved "https://registry.yarnpkg.com/jest-config/-/jest-config-29.2.2.tgz#bf98623a46454d644630c1f0de8bba3f495c2d59"
+ integrity sha512-Q0JX54a5g1lP63keRfKR8EuC7n7wwny2HoTRDb8cx78IwQOiaYUVZAdjViY3WcTxpR02rPUpvNVmZ1fkIlZPcw==
dependencies:
"@babel/core" "^7.11.6"
- "@jest/test-sequencer" "^28.1.0"
- "@jest/types" "^28.1.0"
- babel-jest "^28.1.0"
+ "@jest/test-sequencer" "^29.2.2"
+ "@jest/types" "^29.2.1"
+ babel-jest "^29.2.2"
chalk "^4.0.0"
ci-info "^3.2.0"
deepmerge "^4.2.2"
glob "^7.1.3"
graceful-fs "^4.2.9"
- jest-circus "^28.1.0"
- jest-environment-node "^28.1.0"
- jest-get-type "^28.0.2"
- jest-regex-util "^28.0.2"
- jest-resolve "^28.1.0"
- jest-runner "^28.1.0"
- jest-util "^28.1.0"
- jest-validate "^28.1.0"
+ jest-circus "^29.2.2"
+ jest-environment-node "^29.2.2"
+ jest-get-type "^29.2.0"
+ jest-regex-util "^29.2.0"
+ jest-resolve "^29.2.2"
+ jest-runner "^29.2.2"
+ jest-util "^29.2.1"
+ jest-validate "^29.2.2"
micromatch "^4.0.4"
parse-json "^5.2.0"
- pretty-format "^28.1.0"
+ pretty-format "^29.2.1"
slash "^3.0.0"
strip-json-comments "^3.1.1"
@@ -6491,285 +6731,305 @@ jest-diff@^25.2.1:
jest-get-type "^25.2.6"
pretty-format "^25.5.0"
-jest-diff@^28.1.0:
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-28.1.0.tgz#77686fef899ec1873dbfbf9330e37dd429703269"
- integrity sha512-8eFd3U3OkIKRtlasXfiAQfbovgFgRDb0Ngcs2E+FMeBZ4rUezqIaGjuyggJBp+llosQXNEWofk/Sz4Hr5gMUhA==
+jest-diff@^29.2.1:
+ version "29.2.1"
+ resolved "https://registry.yarnpkg.com/jest-diff/-/jest-diff-29.2.1.tgz#027e42f5a18b693fb2e88f81b0ccab533c08faee"
+ integrity sha512-gfh/SMNlQmP3MOUgdzxPOd4XETDJifADpT937fN1iUGz+9DgOu2eUPHH25JDkLVcLwwqxv3GzVyK4VBUr9fjfA==
dependencies:
chalk "^4.0.0"
- diff-sequences "^28.0.2"
- jest-get-type "^28.0.2"
- pretty-format "^28.1.0"
+ diff-sequences "^29.2.0"
+ jest-get-type "^29.2.0"
+ pretty-format "^29.2.1"
-jest-docblock@^28.0.2:
- version "28.0.2"
- resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-28.0.2.tgz#3cab8abea53275c9d670cdca814fc89fba1298c2"
- integrity sha512-FH10WWw5NxLoeSdQlJwu+MTiv60aXV/t8KEwIRGEv74WARE1cXIqh1vGdy2CraHuWOOrnzTWj/azQKqW4fO7xg==
+jest-docblock@^29.2.0:
+ version "29.2.0"
+ resolved "https://registry.yarnpkg.com/jest-docblock/-/jest-docblock-29.2.0.tgz#307203e20b637d97cee04809efc1d43afc641e82"
+ integrity sha512-bkxUsxTgWQGbXV5IENmfiIuqZhJcyvF7tU4zJ/7ioTutdz4ToB5Yx6JOFBpgI+TphRY4lhOyCWGNH/QFQh5T6A==
dependencies:
detect-newline "^3.0.0"
-jest-each@^28.1.0:
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-28.1.0.tgz#54ae66d6a0a5b1913e9a87588d26c2687c39458b"
- integrity sha512-a/XX02xF5NTspceMpHujmOexvJ4GftpYXqr6HhhmKmExtMXsyIN/fvanQlt/BcgFoRKN4OCXxLQKth9/n6OPFg==
+jest-each@^29.2.1:
+ version "29.2.1"
+ resolved "https://registry.yarnpkg.com/jest-each/-/jest-each-29.2.1.tgz#6b0a88ee85c2ba27b571a6010c2e0c674f5c9b29"
+ integrity sha512-sGP86H/CpWHMyK3qGIGFCgP6mt+o5tu9qG4+tobl0LNdgny0aitLXs9/EBacLy3Bwqy+v4uXClqJgASJWcruYw==
dependencies:
- "@jest/types" "^28.1.0"
+ "@jest/types" "^29.2.1"
chalk "^4.0.0"
- jest-get-type "^28.0.2"
- jest-util "^28.1.0"
- pretty-format "^28.1.0"
-
-jest-environment-jsdom@^28.1.0:
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-28.1.0.tgz#1042cffd0343615c5fac2d2c8da20d1d43b73ef8"
- integrity sha512-8n6P4xiDjNVqTWv6W6vJPuQdLx+ZiA3dbYg7YJ+DPzR+9B61K6pMVJrSs2IxfGRG4J7pyAUA5shQ9G0KEun78w==
- dependencies:
- "@jest/environment" "^28.1.0"
- "@jest/fake-timers" "^28.1.0"
- "@jest/types" "^28.1.0"
- "@types/jsdom" "^16.2.4"
+ jest-get-type "^29.2.0"
+ jest-util "^29.2.1"
+ pretty-format "^29.2.1"
+
+jest-environment-jsdom@^29.2.1:
+ version "29.2.1"
+ resolved "https://registry.yarnpkg.com/jest-environment-jsdom/-/jest-environment-jsdom-29.2.1.tgz#5bfbbc52a74b333c7e69ff3a4f540af850a7a718"
+ integrity sha512-MipBdmrjgzEdQMkK7b7wBShOfv1VqO6FVwa9S43bZwKYLC4dlWnPiCgNpZX3ypNEpJO8EMpMhg4HrUkWUZXGiw==
+ dependencies:
+ "@jest/environment" "^29.2.1"
+ "@jest/fake-timers" "^29.2.1"
+ "@jest/types" "^29.2.1"
+ "@types/jsdom" "^20.0.0"
"@types/node" "*"
- jest-mock "^28.1.0"
- jest-util "^28.1.0"
- jsdom "^19.0.0"
-
-jest-environment-node@^28.1.0:
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-28.1.0.tgz#6ed2150aa31babba0c488c5b4f4d813a585c68e6"
- integrity sha512-gBLZNiyrPw9CSMlTXF1yJhaBgWDPVvH0Pq6bOEwGMXaYNzhzhw2kA/OijNF8egbCgDS0/veRv97249x2CX+udQ==
- dependencies:
- "@jest/environment" "^28.1.0"
- "@jest/fake-timers" "^28.1.0"
- "@jest/types" "^28.1.0"
+ jest-mock "^29.2.1"
+ jest-util "^29.2.1"
+ jsdom "^20.0.0"
+
+jest-environment-node@^29.2.2:
+ version "29.2.2"
+ resolved "https://registry.yarnpkg.com/jest-environment-node/-/jest-environment-node-29.2.2.tgz#a64b272773870c3a947cd338c25fd34938390bc2"
+ integrity sha512-B7qDxQjkIakQf+YyrqV5dICNs7tlCO55WJ4OMSXsqz1lpI/0PmeuXdx2F7eU8rnPbRkUR/fItSSUh0jvE2y/tw==
+ dependencies:
+ "@jest/environment" "^29.2.2"
+ "@jest/fake-timers" "^29.2.2"
+ "@jest/types" "^29.2.1"
"@types/node" "*"
- jest-mock "^28.1.0"
- jest-util "^28.1.0"
+ jest-mock "^29.2.2"
+ jest-util "^29.2.1"
jest-get-type@^25.2.6:
version "25.2.6"
resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-25.2.6.tgz#0b0a32fab8908b44d508be81681487dbabb8d877"
integrity sha512-DxjtyzOHjObRM+sM1knti6or+eOgcGU4xVSb2HNP1TqO4ahsT+rqZg+nyqHWJSvWgKC5cG3QjGFBqxLghiF/Ig==
-jest-get-type@^28.0.2:
- version "28.0.2"
- resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-28.0.2.tgz#34622e628e4fdcd793d46db8a242227901fcf203"
- integrity sha512-ioj2w9/DxSYHfOm5lJKCdcAmPJzQXmbM/Url3rhlghrPvT3tt+7a/+oXc9azkKmLvoiXjtV83bEWqi+vs5nlPA==
+jest-get-type@^29.2.0:
+ version "29.2.0"
+ resolved "https://registry.yarnpkg.com/jest-get-type/-/jest-get-type-29.2.0.tgz#726646f927ef61d583a3b3adb1ab13f3a5036408"
+ integrity sha512-uXNJlg8hKFEnDgFsrCjznB+sTxdkuqiCL6zMgA75qEbAJjJYTs9XPrvDctrEig2GDow22T/LvHgO57iJhXB/UA==
-jest-haste-map@^28.1.0:
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-28.1.0.tgz#6c1ee2daf1c20a3e03dbd8e5b35c4d73d2349cf0"
- integrity sha512-xyZ9sXV8PtKi6NCrJlmq53PyNVHzxmcfXNVvIRHpHmh1j/HChC4pwKgyjj7Z9us19JMw8PpQTJsFWOsIfT93Dw==
+jest-haste-map@^29.2.1:
+ version "29.2.1"
+ resolved "https://registry.yarnpkg.com/jest-haste-map/-/jest-haste-map-29.2.1.tgz#f803fec57f8075e6c55fb5cd551f99a72471c699"
+ integrity sha512-wF460rAFmYc6ARcCFNw4MbGYQjYkvjovb9GBT+W10Um8q5nHq98jD6fHZMDMO3tA56S8XnmNkM8GcA8diSZfnA==
dependencies:
- "@jest/types" "^28.1.0"
+ "@jest/types" "^29.2.1"
"@types/graceful-fs" "^4.1.3"
"@types/node" "*"
anymatch "^3.0.3"
fb-watchman "^2.0.0"
graceful-fs "^4.2.9"
- jest-regex-util "^28.0.2"
- jest-util "^28.1.0"
- jest-worker "^28.1.0"
+ jest-regex-util "^29.2.0"
+ jest-util "^29.2.1"
+ jest-worker "^29.2.1"
micromatch "^4.0.4"
- walker "^1.0.7"
+ walker "^1.0.8"
optionalDependencies:
fsevents "^2.3.2"
-jest-leak-detector@^28.1.0:
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-28.1.0.tgz#b65167776a8787443214d6f3f54935a4c73c8a45"
- integrity sha512-uIJDQbxwEL2AMMs2xjhZl2hw8s77c3wrPaQ9v6tXJLGaaQ+4QrNJH5vuw7hA7w/uGT/iJ42a83opAqxGHeyRIA==
+jest-leak-detector@^29.2.1:
+ version "29.2.1"
+ resolved "https://registry.yarnpkg.com/jest-leak-detector/-/jest-leak-detector-29.2.1.tgz#ec551686b7d512ec875616c2c3534298b1ffe2fc"
+ integrity sha512-1YvSqYoiurxKOJtySc+CGVmw/e1v4yNY27BjWTVzp0aTduQeA7pdieLiW05wTYG/twlKOp2xS/pWuikQEmklug==
dependencies:
- jest-get-type "^28.0.2"
- pretty-format "^28.1.0"
+ jest-get-type "^29.2.0"
+ pretty-format "^29.2.1"
-jest-matcher-utils@^28.1.0:
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-28.1.0.tgz#2ae398806668eeabd293c61712227cb94b250ccf"
- integrity sha512-onnax0n2uTLRQFKAjC7TuaxibrPSvZgKTcSCnNUz/tOjJ9UhxNm7ZmPpoQavmTDUjXvUQ8KesWk2/VdrxIFzTQ==
+jest-matcher-utils@^29.2.2:
+ version "29.2.2"
+ resolved "https://registry.yarnpkg.com/jest-matcher-utils/-/jest-matcher-utils-29.2.2.tgz#9202f8e8d3a54733266784ce7763e9a08688269c"
+ integrity sha512-4DkJ1sDPT+UX2MR7Y3od6KtvRi9Im1ZGLGgdLFLm4lPexbTaCgJW5NN3IOXlQHF7NSHY/VHhflQ+WoKtD/vyCw==
dependencies:
chalk "^4.0.0"
- jest-diff "^28.1.0"
- jest-get-type "^28.0.2"
- pretty-format "^28.1.0"
+ jest-diff "^29.2.1"
+ jest-get-type "^29.2.0"
+ pretty-format "^29.2.1"
-jest-message-util@^28.1.0:
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-28.1.0.tgz#7e8f0b9049e948e7b94c2a52731166774ba7d0af"
- integrity sha512-RpA8mpaJ/B2HphDMiDlrAZdDytkmwFqgjDZovM21F35lHGeUeCvYmm6W+sbQ0ydaLpg5bFAUuWG1cjqOl8vqrw==
+jest-message-util@^29.2.1:
+ version "29.2.1"
+ resolved "https://registry.yarnpkg.com/jest-message-util/-/jest-message-util-29.2.1.tgz#3a51357fbbe0cc34236f17a90d772746cf8d9193"
+ integrity sha512-Dx5nEjw9V8C1/Yj10S/8ivA8F439VS8vTq1L7hEgwHFn9ovSKNpYW/kwNh7UglaEgXO42XxzKJB+2x0nSglFVw==
dependencies:
"@babel/code-frame" "^7.12.13"
- "@jest/types" "^28.1.0"
+ "@jest/types" "^29.2.1"
"@types/stack-utils" "^2.0.0"
chalk "^4.0.0"
graceful-fs "^4.2.9"
micromatch "^4.0.4"
- pretty-format "^28.1.0"
+ pretty-format "^29.2.1"
slash "^3.0.0"
stack-utils "^2.0.3"
-jest-mock@^28.1.0:
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-28.1.0.tgz#ccc7cc12a9b330b3182db0c651edc90d163ff73e"
- integrity sha512-H7BrhggNn77WhdL7O1apG0Q/iwl0Bdd5E1ydhCJzL3oBLh/UYxAwR3EJLsBZ9XA3ZU4PA3UNw4tQjduBTCTmLw==
+jest-mock@^29.2.1:
+ version "29.2.1"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.2.1.tgz#a0d361cffcb28184fa9c5443adbf591fa5759775"
+ integrity sha512-NDphaY/GqyQpTfnTZiTqqpMaw4Z0I7XnB7yBgrT6IwYrLGxpOhrejYr4ANY4YvO2sEGdd8Tx/6D0+WLQy7/qDA==
+ dependencies:
+ "@jest/types" "^29.2.1"
+ "@types/node" "*"
+ jest-util "^29.2.1"
+
+jest-mock@^29.2.2:
+ version "29.2.2"
+ resolved "https://registry.yarnpkg.com/jest-mock/-/jest-mock-29.2.2.tgz#9045618b3f9d27074bbcf2d55bdca6a5e2e8bca7"
+ integrity sha512-1leySQxNAnivvbcx0sCB37itu8f4OX2S/+gxLAV4Z62shT4r4dTG9tACDywUAEZoLSr36aYUTsVp3WKwWt4PMQ==
dependencies:
- "@jest/types" "^28.1.0"
+ "@jest/types" "^29.2.1"
"@types/node" "*"
+ jest-util "^29.2.1"
jest-pnp-resolver@^1.2.2:
version "1.2.2"
resolved "https://registry.yarnpkg.com/jest-pnp-resolver/-/jest-pnp-resolver-1.2.2.tgz#b704ac0ae028a89108a4d040b3f919dfddc8e33c"
integrity sha512-olV41bKSMm8BdnuMsewT4jqlZ8+3TCARAXjZGT9jcoSnrfUnRCqnMoF9XEeoWjbzObpqF9dRhHQj0Xb9QdF6/w==
-jest-regex-util@^28.0.2:
- version "28.0.2"
- resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-28.0.2.tgz#afdc377a3b25fb6e80825adcf76c854e5bf47ead"
- integrity sha512-4s0IgyNIy0y9FK+cjoVYoxamT7Zeo7MhzqRGx7YDYmaQn1wucY9rotiGkBzzcMXTtjrCAP/f7f+E0F7+fxPNdw==
+jest-regex-util@^29.2.0:
+ version "29.2.0"
+ resolved "https://registry.yarnpkg.com/jest-regex-util/-/jest-regex-util-29.2.0.tgz#82ef3b587e8c303357728d0322d48bbfd2971f7b"
+ integrity sha512-6yXn0kg2JXzH30cr2NlThF+70iuO/3irbaB4mh5WyqNIvLLP+B6sFdluO1/1RJmslyh/f9osnefECflHvTbwVA==
-jest-resolve-dependencies@^28.1.0:
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-28.1.0.tgz#167becb8bee6e20b5ef4a3a728ec67aef6b0b79b"
- integrity sha512-Ue1VYoSZquPwEvng7Uefw8RmZR+me/1kr30H2jMINjGeHgeO/JgrR6wxj2ofkJ7KSAA11W3cOrhNCbj5Dqqd9g==
+jest-resolve-dependencies@^29.2.2:
+ version "29.2.2"
+ resolved "https://registry.yarnpkg.com/jest-resolve-dependencies/-/jest-resolve-dependencies-29.2.2.tgz#1f444766f37a25f1490b5137408b6ff746a05d64"
+ integrity sha512-wWOmgbkbIC2NmFsq8Lb+3EkHuW5oZfctffTGvwsA4JcJ1IRk8b2tg+hz44f0lngvRTeHvp3Kyix9ACgudHH9aQ==
dependencies:
- jest-regex-util "^28.0.2"
- jest-snapshot "^28.1.0"
+ jest-regex-util "^29.2.0"
+ jest-snapshot "^29.2.2"
-jest-resolve@^28.1.0:
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-28.1.0.tgz#b1f32748a6cee7d1779c7ef639c0a87078de3d35"
- integrity sha512-vvfN7+tPNnnhDvISuzD1P+CRVP8cK0FHXRwPAcdDaQv4zgvwvag2n55/h5VjYcM5UJG7L4TwE5tZlzcI0X2Lhw==
+jest-resolve@^29.2.2:
+ version "29.2.2"
+ resolved "https://registry.yarnpkg.com/jest-resolve/-/jest-resolve-29.2.2.tgz#ad6436053b0638b41e12bbddde2b66e1397b35b5"
+ integrity sha512-3gaLpiC3kr14rJR3w7vWh0CBX2QAhfpfiQTwrFPvVrcHe5VUBtIXaR004aWE/X9B2CFrITOQAp5gxLONGrk6GA==
dependencies:
chalk "^4.0.0"
graceful-fs "^4.2.9"
- jest-haste-map "^28.1.0"
+ jest-haste-map "^29.2.1"
jest-pnp-resolver "^1.2.2"
- jest-util "^28.1.0"
- jest-validate "^28.1.0"
+ jest-util "^29.2.1"
+ jest-validate "^29.2.2"
resolve "^1.20.0"
resolve.exports "^1.1.0"
slash "^3.0.0"
-jest-runner@^28.1.0:
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-28.1.0.tgz#aefe2a1e618a69baa0b24a50edc54fdd7e728eaa"
- integrity sha512-FBpmuh1HB2dsLklAlRdOxNTTHKFR6G1Qmd80pVDvwbZXTriqjWqjei5DKFC1UlM732KjYcE6yuCdiF0WUCOS2w==
+jest-runner@^29.2.2:
+ version "29.2.2"
+ resolved "https://registry.yarnpkg.com/jest-runner/-/jest-runner-29.2.2.tgz#6b5302ed15eba8bf05e6b14d40f1e8d469564da3"
+ integrity sha512-1CpUxXDrbsfy9Hr9/1zCUUhT813kGGK//58HeIw/t8fa/DmkecEwZSWlb1N/xDKXg3uCFHQp1GCvlSClfImMxg==
dependencies:
- "@jest/console" "^28.1.0"
- "@jest/environment" "^28.1.0"
- "@jest/test-result" "^28.1.0"
- "@jest/transform" "^28.1.0"
- "@jest/types" "^28.1.0"
+ "@jest/console" "^29.2.1"
+ "@jest/environment" "^29.2.2"
+ "@jest/test-result" "^29.2.1"
+ "@jest/transform" "^29.2.2"
+ "@jest/types" "^29.2.1"
"@types/node" "*"
chalk "^4.0.0"
- emittery "^0.10.2"
+ emittery "^0.13.1"
graceful-fs "^4.2.9"
- jest-docblock "^28.0.2"
- jest-environment-node "^28.1.0"
- jest-haste-map "^28.1.0"
- jest-leak-detector "^28.1.0"
- jest-message-util "^28.1.0"
- jest-resolve "^28.1.0"
- jest-runtime "^28.1.0"
- jest-util "^28.1.0"
- jest-watcher "^28.1.0"
- jest-worker "^28.1.0"
+ jest-docblock "^29.2.0"
+ jest-environment-node "^29.2.2"
+ jest-haste-map "^29.2.1"
+ jest-leak-detector "^29.2.1"
+ jest-message-util "^29.2.1"
+ jest-resolve "^29.2.2"
+ jest-runtime "^29.2.2"
+ jest-util "^29.2.1"
+ jest-watcher "^29.2.2"
+ jest-worker "^29.2.1"
+ p-limit "^3.1.0"
source-map-support "0.5.13"
- throat "^6.0.1"
-
-jest-runtime@^28.1.0:
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-28.1.0.tgz#4847dcb2a4eb4b0f9eaf41306897e51fb1665631"
- integrity sha512-wNYDiwhdH/TV3agaIyVF0lsJ33MhyujOe+lNTUiolqKt8pchy1Hq4+tDMGbtD5P/oNLA3zYrpx73T9dMTOCAcg==
- dependencies:
- "@jest/environment" "^28.1.0"
- "@jest/fake-timers" "^28.1.0"
- "@jest/globals" "^28.1.0"
- "@jest/source-map" "^28.0.2"
- "@jest/test-result" "^28.1.0"
- "@jest/transform" "^28.1.0"
- "@jest/types" "^28.1.0"
+
+jest-runtime@^29.2.2:
+ version "29.2.2"
+ resolved "https://registry.yarnpkg.com/jest-runtime/-/jest-runtime-29.2.2.tgz#4068ee82423769a481460efd21d45a8efaa5c179"
+ integrity sha512-TpR1V6zRdLynckKDIQaY41od4o0xWL+KOPUCZvJK2bu5P1UXhjobt5nJ2ICNeIxgyj9NGkO0aWgDqYPVhDNKjA==
+ dependencies:
+ "@jest/environment" "^29.2.2"
+ "@jest/fake-timers" "^29.2.2"
+ "@jest/globals" "^29.2.2"
+ "@jest/source-map" "^29.2.0"
+ "@jest/test-result" "^29.2.1"
+ "@jest/transform" "^29.2.2"
+ "@jest/types" "^29.2.1"
+ "@types/node" "*"
chalk "^4.0.0"
cjs-module-lexer "^1.0.0"
collect-v8-coverage "^1.0.0"
- execa "^5.0.0"
glob "^7.1.3"
graceful-fs "^4.2.9"
- jest-haste-map "^28.1.0"
- jest-message-util "^28.1.0"
- jest-mock "^28.1.0"
- jest-regex-util "^28.0.2"
- jest-resolve "^28.1.0"
- jest-snapshot "^28.1.0"
- jest-util "^28.1.0"
+ jest-haste-map "^29.2.1"
+ jest-message-util "^29.2.1"
+ jest-mock "^29.2.2"
+ jest-regex-util "^29.2.0"
+ jest-resolve "^29.2.2"
+ jest-snapshot "^29.2.2"
+ jest-util "^29.2.1"
slash "^3.0.0"
strip-bom "^4.0.0"
-jest-snapshot@^28.1.0:
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-28.1.0.tgz#4b74fa8816707dd10fe9d551c2c258e5a67b53b6"
- integrity sha512-ex49M2ZrZsUyQLpLGxQtDbahvgBjlLPgklkqGM0hq/F7W/f8DyqZxVHjdy19QKBm4O93eDp+H5S23EiTbbUmHw==
+jest-snapshot@^29.2.2:
+ version "29.2.2"
+ resolved "https://registry.yarnpkg.com/jest-snapshot/-/jest-snapshot-29.2.2.tgz#1016ce60297b77382386bad561107174604690c2"
+ integrity sha512-GfKJrpZ5SMqhli3NJ+mOspDqtZfJBryGA8RIBxF+G+WbDoC7HCqKaeAss4Z/Sab6bAW11ffasx8/vGsj83jyjA==
dependencies:
"@babel/core" "^7.11.6"
"@babel/generator" "^7.7.2"
+ "@babel/plugin-syntax-jsx" "^7.7.2"
"@babel/plugin-syntax-typescript" "^7.7.2"
"@babel/traverse" "^7.7.2"
"@babel/types" "^7.3.3"
- "@jest/expect-utils" "^28.1.0"
- "@jest/transform" "^28.1.0"
- "@jest/types" "^28.1.0"
+ "@jest/expect-utils" "^29.2.2"
+ "@jest/transform" "^29.2.2"
+ "@jest/types" "^29.2.1"
"@types/babel__traverse" "^7.0.6"
"@types/prettier" "^2.1.5"
babel-preset-current-node-syntax "^1.0.0"
chalk "^4.0.0"
- expect "^28.1.0"
+ expect "^29.2.2"
graceful-fs "^4.2.9"
- jest-diff "^28.1.0"
- jest-get-type "^28.0.2"
- jest-haste-map "^28.1.0"
- jest-matcher-utils "^28.1.0"
- jest-message-util "^28.1.0"
- jest-util "^28.1.0"
+ jest-diff "^29.2.1"
+ jest-get-type "^29.2.0"
+ jest-haste-map "^29.2.1"
+ jest-matcher-utils "^29.2.2"
+ jest-message-util "^29.2.1"
+ jest-util "^29.2.1"
natural-compare "^1.4.0"
- pretty-format "^28.1.0"
+ pretty-format "^29.2.1"
semver "^7.3.5"
-jest-util@^28.1.0:
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-28.1.0.tgz#d54eb83ad77e1dd441408738c5a5043642823be5"
- integrity sha512-qYdCKD77k4Hwkose2YBEqQk7PzUf/NSE+rutzceduFveQREeH6b+89Dc9+wjX9dAwHcgdx4yedGA3FQlU/qCTA==
+jest-util@^29.2.1:
+ version "29.2.1"
+ resolved "https://registry.yarnpkg.com/jest-util/-/jest-util-29.2.1.tgz#f26872ba0dc8cbefaba32c34f98935f6cf5fc747"
+ integrity sha512-P5VWDj25r7kj7kl4pN2rG/RN2c1TLfYYYZYULnS/35nFDjBai+hBeo3MDrYZS7p6IoY3YHZnt2vq4L6mKnLk0g==
dependencies:
- "@jest/types" "^28.1.0"
+ "@jest/types" "^29.2.1"
"@types/node" "*"
chalk "^4.0.0"
ci-info "^3.2.0"
graceful-fs "^4.2.9"
picomatch "^2.2.3"
-jest-validate@^28.1.0:
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-28.1.0.tgz#8a6821f48432aba9f830c26e28226ad77b9a0e18"
- integrity sha512-Lly7CJYih3vQBfjLeANGgBSBJ7pEa18cxpQfQEq2go2xyEzehnHfQTjoUia8xUv4x4J80XKFIDwJJThXtRFQXQ==
+jest-validate@^29.2.2:
+ version "29.2.2"
+ resolved "https://registry.yarnpkg.com/jest-validate/-/jest-validate-29.2.2.tgz#e43ce1931292dfc052562a11bc681af3805eadce"
+ integrity sha512-eJXATaKaSnOuxNfs8CLHgdABFgUrd0TtWS8QckiJ4L/QVDF4KVbZFBBOwCBZHOS0Rc5fOxqngXeGXE3nGQkpQA==
dependencies:
- "@jest/types" "^28.1.0"
+ "@jest/types" "^29.2.1"
camelcase "^6.2.0"
chalk "^4.0.0"
- jest-get-type "^28.0.2"
+ jest-get-type "^29.2.0"
leven "^3.1.0"
- pretty-format "^28.1.0"
+ pretty-format "^29.2.1"
-jest-watcher@^28.1.0:
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-28.1.0.tgz#aaa7b4164a4e77eeb5f7d7b25ede5e7b4e9c9aaf"
- integrity sha512-tNHMtfLE8Njcr2IRS+5rXYA4BhU90gAOwI9frTGOqd+jX0P/Au/JfRSNqsf5nUTcWdbVYuLxS1KjnzILSoR5hA==
+jest-watcher@^29.2.2:
+ version "29.2.2"
+ resolved "https://registry.yarnpkg.com/jest-watcher/-/jest-watcher-29.2.2.tgz#7093d4ea8177e0a0da87681a9e7b09a258b9daf7"
+ integrity sha512-j2otfqh7mOvMgN2WlJ0n7gIx9XCMWntheYGlBK7+5g3b1Su13/UAK7pdKGyd4kDlrLwtH2QPvRv5oNIxWvsJ1w==
dependencies:
- "@jest/test-result" "^28.1.0"
- "@jest/types" "^28.1.0"
+ "@jest/test-result" "^29.2.1"
+ "@jest/types" "^29.2.1"
"@types/node" "*"
ansi-escapes "^4.2.1"
chalk "^4.0.0"
- emittery "^0.10.2"
- jest-util "^28.1.0"
+ emittery "^0.13.1"
+ jest-util "^29.2.1"
string-length "^4.0.1"
+jest-worker@^26.2.1:
+ version "26.6.2"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed"
+ integrity sha512-KWYVV1c4i+jbMpaBC+U++4Va0cp8OisU185o73T1vo99hqi7w8tSJfUXYswwqqrjzwxa6KpRK54WhPvwf5w6PQ==
+ dependencies:
+ "@types/node" "*"
+ merge-stream "^2.0.0"
+ supports-color "^7.0.0"
+
jest-worker@^26.5.0:
version "26.5.0"
resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.5.0.tgz#87deee86dbbc5f98d9919e0dadf2c40e3152fa30"
@@ -6779,23 +7039,25 @@ jest-worker@^26.5.0:
merge-stream "^2.0.0"
supports-color "^7.0.0"
-jest-worker@^28.1.0:
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-28.1.0.tgz#ced54757a035e87591e1208253a6e3aac1a855e5"
- integrity sha512-ZHwM6mNwaWBR52Snff8ZvsCTqQsvhCxP/bT1I6T6DAnb6ygkshsyLQIMxFwHpYxht0HOoqt23JlC01viI7T03A==
+jest-worker@^29.2.1:
+ version "29.2.1"
+ resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-29.2.1.tgz#8ba68255438252e1674f990f0180c54dfa26a3b1"
+ integrity sha512-ROHTZ+oj7sBrgtv46zZ84uWky71AoYi0vEV9CdEtc1FQunsoAGe5HbQmW76nI5QWdvECVPrSi1MCVUmizSavMg==
dependencies:
"@types/node" "*"
+ jest-util "^29.2.1"
merge-stream "^2.0.0"
supports-color "^8.0.0"
-jest@^28.1.0:
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/jest/-/jest-28.1.0.tgz#f420e41c8f2395b9a30445a97189ebb57593d831"
- integrity sha512-TZR+tHxopPhzw3c3560IJXZWLNHgpcz1Zh0w5A65vynLGNcg/5pZ+VildAd7+XGOu6jd58XMY/HNn0IkZIXVXg==
+jest@^29.2.2:
+ version "29.2.2"
+ resolved "https://registry.yarnpkg.com/jest/-/jest-29.2.2.tgz#24da83cbbce514718acd698926b7679109630476"
+ integrity sha512-r+0zCN9kUqoON6IjDdjbrsWobXM/09Nd45kIPRD8kloaRh1z5ZCMdVsgLXGxmlL7UpAJsvCYOQNO+NjvG/gqiQ==
dependencies:
- "@jest/core" "^28.1.0"
+ "@jest/core" "^29.2.2"
+ "@jest/types" "^29.2.1"
import-local "^3.0.2"
- jest-cli "^28.1.0"
+ jest-cli "^29.2.2"
js-base64@^2.1.9:
version "2.6.4"
@@ -6822,37 +7084,36 @@ js-yaml@^4.1.0:
dependencies:
argparse "^2.0.1"
-jsdom@^19.0.0:
- version "19.0.0"
- resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-19.0.0.tgz#93e67c149fe26816d38a849ea30ac93677e16b6a"
- integrity sha512-RYAyjCbxy/vri/CfnjUWJQQtZ3LKlLnDqj+9XLNnJPgEGeirZs3hllKR20re8LUZ6o1b1X4Jat+Qd26zmP41+A==
+jsdom@^20.0.0, jsdom@^20.0.1:
+ version "20.0.1"
+ resolved "https://registry.yarnpkg.com/jsdom/-/jsdom-20.0.1.tgz#d95b4a3b6e1eec6520aa01d9d908eade8c6ba153"
+ integrity sha512-pksjj7Rqoa+wdpkKcLzQRHhJCEE42qQhl/xLMUKHgoSejaKOdaXEAnqs6uDNwMl/fciHTzKeR8Wm8cw7N+g98A==
dependencies:
- abab "^2.0.5"
- acorn "^8.5.0"
- acorn-globals "^6.0.0"
+ abab "^2.0.6"
+ acorn "^8.8.0"
+ acorn-globals "^7.0.0"
cssom "^0.5.0"
cssstyle "^2.3.0"
- data-urls "^3.0.1"
- decimal.js "^10.3.1"
+ data-urls "^3.0.2"
+ decimal.js "^10.4.1"
domexception "^4.0.0"
escodegen "^2.0.0"
form-data "^4.0.0"
html-encoding-sniffer "^3.0.0"
http-proxy-agent "^5.0.0"
- https-proxy-agent "^5.0.0"
+ https-proxy-agent "^5.0.1"
is-potential-custom-element-name "^1.0.1"
- nwsapi "^2.2.0"
- parse5 "6.0.1"
- saxes "^5.0.1"
+ nwsapi "^2.2.2"
+ parse5 "^7.1.1"
+ saxes "^6.0.0"
symbol-tree "^3.2.4"
- tough-cookie "^4.0.0"
- w3c-hr-time "^1.0.2"
+ tough-cookie "^4.1.2"
w3c-xmlserializer "^3.0.0"
webidl-conversions "^7.0.0"
whatwg-encoding "^2.0.0"
whatwg-mimetype "^3.0.0"
- whatwg-url "^10.0.0"
- ws "^8.2.3"
+ whatwg-url "^11.0.0"
+ ws "^8.9.0"
xml-name-validator "^4.0.0"
jsesc@^2.5.1:
@@ -6885,6 +7146,11 @@ json-schema-traverse@^1.0.0:
resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz#ae7bcb3656ab77a73ba5c49bf654f38e6b6860e2"
integrity sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==
+json-schema@^0.4.0:
+ version "0.4.0"
+ resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.4.0.tgz#f7de4cf6efab838ebaeb3236474cbba5a1930ab5"
+ integrity sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==
+
json-stable-stringify-without-jsonify@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651"
@@ -6902,11 +7168,6 @@ json3@^3.3.3:
resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.3.tgz#7fc10e375fc5ae42c4705a5cc0aa6f62be305b81"
integrity sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==
-json5@^0.5.0:
- version "0.5.1"
- resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821"
- integrity sha1-Hq3nrMASA0rYTiOWdn6tn6VJWCE=
-
json5@^1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/json5/-/json5-1.0.1.tgz#779fb0018604fa854eacbf6252180d83543e3dbe"
@@ -6914,7 +7175,7 @@ json5@^1.0.1:
dependencies:
minimist "^1.2.0"
-json5@^2.1.2, json5@^2.2.1:
+json5@^2.1.2, json5@^2.2.0, json5@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.1.tgz#655d50ed1e6f95ad1a3caababd2b0efda10b395c"
integrity sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==
@@ -6926,17 +7187,31 @@ jsonfile@^4.0.0:
optionalDependencies:
graceful-fs "^4.1.6"
+jsonfile@^6.0.1:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae"
+ integrity sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==
+ dependencies:
+ universalify "^2.0.0"
+ optionalDependencies:
+ graceful-fs "^4.1.6"
+
jsonify@~0.0.0:
version "0.0.0"
resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73"
integrity sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=
-"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.2.1:
- version "3.2.1"
- resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.2.1.tgz#720b97bfe7d901b927d87c3773637ae8ea48781b"
- integrity sha512-uP5vu8xfy2F9A6LGC22KO7e2/vGTS1MhP+18f++ZNlf0Ohaxbc9nIEwHAsejlJKyzfZzU5UIhe5ItYkitcZnZA==
+jsonpointer@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-5.0.0.tgz#f802669a524ec4805fa7389eadbc9921d5dc8072"
+ integrity sha512-PNYZIdMjVIvVgDSYKTT63Y+KZ6IZvGRNNWcxwD+GNnUz1MKPfv30J8ueCjdwcN0nDx2SlshgyB7Oy0epAzVRRg==
+
+"jsx-ast-utils@^2.4.1 || ^3.0.0", jsx-ast-utils@^3.3.2:
+ version "3.3.2"
+ resolved "https://registry.yarnpkg.com/jsx-ast-utils/-/jsx-ast-utils-3.3.2.tgz#afe5efe4332cd3515c065072bd4d6b0aa22152bd"
+ integrity sha512-4ZCADZHRkno244xlNnn4AOG6sRQ7iBZ5BbgZ4vW4y5IZw7cVUD1PPeblm1xx/nfmMxPdt/LHsXZW8z/j58+l9Q==
dependencies:
- array-includes "^3.1.3"
+ array-includes "^3.1.5"
object.assign "^4.1.2"
keycode@^2.1.7:
@@ -6964,11 +7239,6 @@ klona@^2.0.4:
resolved "https://registry.yarnpkg.com/klona/-/klona-2.0.4.tgz#7bb1e3affb0cb8624547ef7e8f6708ea2e39dfc0"
integrity sha512-ZRbnvdg/NxqzC7L9Uyqzf4psi1OM4Cuc+sJAkQPjO6XkQIJTNbfK2Rsmbw8fx1p2mkZdp2FZYo2+LwXYY/uwIA==
-knot.js@^1.1.5:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/knot.js/-/knot.js-1.1.5.tgz#28e72522f703f50fe98812fde224dd72728fef5d"
- integrity sha1-KOclIvcD9Q/piBL94iTdcnKP710=
-
known-css-properties@^0.25.0:
version "0.25.0"
resolved "https://registry.yarnpkg.com/known-css-properties/-/known-css-properties-0.25.0.tgz#6ebc4d4b412f602e5cfbeb4086bd544e34c0a776"
@@ -7017,16 +7287,6 @@ loader-runner@^2.4.0:
resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.4.0.tgz#ed47066bfe534d7e84c4c7b9998c2a75607d9357"
integrity sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==
-loader-utils@0.2.x:
- version "0.2.17"
- resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348"
- integrity sha1-+G5jdNQyBabmxg6RlvF8Apm/s0g=
- dependencies:
- big.js "^3.1.3"
- emojis-list "^2.0.0"
- json5 "^0.5.0"
- object-assign "^4.0.1"
-
loader-utils@^1.1.0, loader-utils@^1.2.3, loader-utils@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.4.0.tgz#c579b5e34cb34b1a74edc6c1fb36bfa371d5a613"
@@ -7075,11 +7335,6 @@ lockfile@^1.0:
dependencies:
signal-exit "^3.0.2"
-lodash.clonedeep@^4.5.0:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef"
- integrity sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=
-
lodash.debounce@^4.0.8:
version "4.0.8"
resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af"
@@ -7125,6 +7380,11 @@ lodash.merge@^4.6.2:
resolved "https://registry.yarnpkg.com/lodash.merge/-/lodash.merge-4.6.2.tgz#558aa53b43b661e1925a0afdfa36a9a1085fe57a"
integrity sha512-0KpjqXRVvrYyCsX1swR/XTK0va6VQkQM6MNo7PqW77ByjAhoARA8EfrP1N4+KlKj8YS0ZUCtRT/YUuhyYDujIQ==
+lodash.sortby@^4.7.0:
+ version "4.7.0"
+ resolved "https://registry.yarnpkg.com/lodash.sortby/-/lodash.sortby-4.7.0.tgz#edd14c824e2cc9c1e0b0a1b42bb5210516a42438"
+ integrity sha1-7dFMgk4sycHgsKG0K7UhBRakJDg=
+
lodash.truncate@^4.4.2:
version "4.4.2"
resolved "https://registry.yarnpkg.com/lodash.truncate/-/lodash.truncate-4.4.2.tgz#5a350da0b1113b837ecfffd5812cbe58d6eae193"
@@ -7171,6 +7431,13 @@ lz-string@^1.4.4:
resolved "https://registry.yarnpkg.com/lz-string/-/lz-string-1.4.4.tgz#c0d8eaf36059f705796e1e344811cf4c498d3a26"
integrity sha1-wNjq82BZ9wV5bh40SBHPTEmNOiY=
+magic-string@^0.25.0, magic-string@^0.25.7:
+ version "0.25.9"
+ resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.25.9.tgz#de7f9faf91ef8a1c91d02c2e5314c8277dbcdd1c"
+ integrity sha512-RmF0AsMzgt25qzqqLc1+MbHmhdx0ojF2Fvs4XnOqz2ZOBXzzkEwc/dJQZCYHAn7v1jbVOjAZfK8msRn4BxO4VQ==
+ dependencies:
+ sourcemap-codec "^1.4.8"
+
make-dir@^2.0.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-2.1.0.tgz#5f0310e18b8be898cc07009295a30ae41e91e6f5"
@@ -7186,12 +7453,12 @@ make-dir@^3.0.0, make-dir@^3.0.2, make-dir@^3.1.0:
dependencies:
semver "^6.0.0"
-makeerror@1.0.x:
- version "1.0.11"
- resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.11.tgz#e01a5c9109f2af79660e4e8b9587790184f5a96c"
- integrity sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=
+makeerror@1.0.12:
+ version "1.0.12"
+ resolved "https://registry.yarnpkg.com/makeerror/-/makeerror-1.0.12.tgz#3e5dd2079a82e812e983cc6610c4a2cb0eaa801a"
+ integrity sha512-JmqCvUhmt43madlpFzG4BQzG2Z3m6tvQDNKdClZnO3VbIudJYmxsT0FNJMeiB2+JTSlTQTSbU8QdesVmwJcmLg==
dependencies:
- tmpl "1.0.x"
+ tmpl "1.0.5"
map-cache@^0.2.2:
version "0.2.2"
@@ -7220,10 +7487,10 @@ mark-loader@^0.1.6:
resolved "https://registry.yarnpkg.com/mark-loader/-/mark-loader-0.1.6.tgz#0abb477dca7421d70e20128ff6489f5cae8676d5"
integrity sha1-CrtHfcp0IdcOIBKP9kifXK6GdtU=
-marky@^1.2.4:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/marky/-/marky-1.2.4.tgz#d02bb4c08be2366687c778ecd2a328971ce23d7f"
- integrity sha512-zd2/GiSn6U3/jeFVZ0J9CA1LzQ8RfIVvXkb/U0swFHF/zT+dVohTAWjmo2DcIuofmIIIROlwTbd+shSeXmxr0w==
+marky@^1.2.5:
+ version "1.2.5"
+ resolved "https://registry.yarnpkg.com/marky/-/marky-1.2.5.tgz#55796b688cbd72390d2d399eaaf1832c9413e3c0"
+ integrity sha512-q9JtQJKjpsVxCRVgQ+WapguSbKC3SQ5HEzFGPAJMStgh3QjCawp00UKv3MTTAArTmGmmPUvllHZoNbZ3gs0I+Q==
mathml-tag-names@^2.1.3:
version "2.1.3"
@@ -7254,10 +7521,10 @@ media-typer@0.3.0:
resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748"
integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=
-memoize-one@^5.0.0:
- version "5.1.1"
- resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-5.1.1.tgz#047b6e3199b508eaec03504de71229b8eb1d75c0"
- integrity sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA==
+memoize-one@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/memoize-one/-/memoize-one-6.0.0.tgz#b2591b871ed82948aee4727dc6abceeeac8c1045"
+ integrity sha512-rkpe71W0N0c0Xz6QD0eJETuWAJGnJ9afsl1srmwPrI+yBCkge5EycXXbYRyvL29zZVUWQCY7InPRCv3GDXuZNw==
memory-fs@^0.4.1:
version "0.4.1"
@@ -7332,15 +7599,7 @@ micromatch@^3.0.4, micromatch@^3.1.10, micromatch@^3.1.4:
snapdragon "^0.8.1"
to-regex "^3.0.2"
-micromatch@^4.0.4:
- version "4.0.4"
- resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.4.tgz#896d519dfe9db25fce94ceb7a500919bf881ebf9"
- integrity sha512-pRmzw/XUcwXGpD9aI9q/0XOwLNygjETJ8y0ao0wdqprrzDa4YnxLcz7fQRZr8voh8V10kGhABbNcHVk5wHgWwg==
- dependencies:
- braces "^3.0.1"
- picomatch "^2.2.3"
-
-micromatch@^4.0.5:
+micromatch@^4.0.4, micromatch@^4.0.5:
version "4.0.5"
resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6"
integrity sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==
@@ -7436,7 +7695,7 @@ minimalistic-crypto-utils@^1.0.1:
resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a"
integrity sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=
-minimatch@^3.0.3, minimatch@^3.0.4, minimatch@^3.1.2:
+minimatch@^3.0.4, minimatch@^3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.1.2.tgz#19cd194bfd3e428f049a70817c038d89ab4be35b"
integrity sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==
@@ -7586,11 +7845,6 @@ nan@^2.12.1:
resolved "https://registry.yarnpkg.com/nan/-/nan-2.14.1.tgz#d7be34dfa3105b91494c3147089315eff8874b01"
integrity sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==
-nanoid@^3.1.23:
- version "3.2.0"
- resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.2.0.tgz#62667522da6673971cca916a6d3eff3f415ff80c"
- integrity sha512-fmsZYa9lpn69Ad5eDn7FMcnnSR+8R34W9qJEijxYhTbfOWzr22n1QxCMzXLK+ODyW2973V3Fux959iQoUxzUIA==
-
nanoid@^3.3.4:
version "3.3.4"
resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.4.tgz#730b67e3cd09e2deacf03c027c81c9d9dbc5e8ab"
@@ -7694,10 +7948,10 @@ node-releases@^1.1.71:
resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-1.1.72.tgz#14802ab6b1039a79a0c7d662b610a5bbd76eacbe"
integrity sha512-LLUo+PpH3dU6XizX3iVoubUNheF/owjXCZZ5yACDxNnPtgFuludV1ZL3ayK1kVep42Rmm0+R9/Y60NQbZ2bifw==
-node-releases@^2.0.3:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.4.tgz#f38252370c43854dc48aa431c766c6c398f40476"
- integrity sha512-gbMzqQtTtDz/00jQzZ21PQzdI9PyLYqUSvD0p3naOhX4odFji0ZxYdnVwPTxmSwkmxhcFImpozceidSG+AgoPQ==
+node-releases@^2.0.6:
+ version "2.0.6"
+ resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.6.tgz#8a7088c63a55e493845683ebf3c828d8c51c5503"
+ integrity sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==
normalize-package-data@^2.5.0:
version "2.5.0"
@@ -7755,14 +8009,14 @@ npm-run-path@^4.0.1:
dependencies:
path-key "^3.0.0"
-npmlog@^6.0.2:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-6.0.2.tgz#c8166017a42f2dea92d6453168dd865186a70830"
- integrity sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==
+npmlog@^7.0.1:
+ version "7.0.1"
+ resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-7.0.1.tgz#7372151a01ccb095c47d8bf1d0771a4ff1f53ac8"
+ integrity sha512-uJ0YFk/mCQpLBt+bxN88AKd+gyqZvZDbtiNxk6Waqcj2aPRyfVx8ITawkyQynxUagInjdYT1+qj4NfA5KJJUxg==
dependencies:
- are-we-there-yet "^3.0.0"
+ are-we-there-yet "^4.0.0"
console-control-strings "^1.1.0"
- gauge "^4.0.3"
+ gauge "^5.0.0"
set-blocking "^2.0.0"
nth-check@^1.0.2:
@@ -7777,10 +8031,10 @@ num2fraction@^1.2.2:
resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede"
integrity sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=
-nwsapi@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7"
- integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ==
+nwsapi@^2.2.2:
+ version "2.2.2"
+ resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.2.tgz#e5418863e7905df67d51ec95938d67bf801f0bb0"
+ integrity sha512-90yv+6538zuvUMnN+zCr8LuV6bPFdq50304114vJYJ8RDyK8D5O9Phpbd6SZWgI7PwzmmfN1upeOJlvybDSgCw==
object-assign@^4.0.1, object-assign@^4.1.1:
version "4.1.1"
@@ -7906,17 +8160,6 @@ obuf@^1.0.0, obuf@^1.1.2:
resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e"
integrity sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==
-offline-plugin@^5.0.7:
- version "5.0.7"
- resolved "https://registry.yarnpkg.com/offline-plugin/-/offline-plugin-5.0.7.tgz#26936ad1a7699f4d67e0a095a258972a4ccf1788"
- integrity sha512-ArMFt4QFjK0wg8B5+R/6tt65u6Dk+Pkx4PAcW5O7mgIF3ywMepaQqFOQgfZD4ybanuGwuJihxUwMRgkzd+YGYw==
- dependencies:
- deep-extend "^0.5.1"
- ejs "^2.3.4"
- loader-utils "0.2.x"
- minimatch "^3.0.3"
- slash "^1.0.0"
-
on-finished@2.4.1:
version "2.4.1"
resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.4.1.tgz#58c8c44116e54845ad57f14ab10b03533184ac3f"
@@ -8022,6 +8265,13 @@ p-limit@^3.0.2:
dependencies:
p-try "^2.0.0"
+p-limit@^3.1.0:
+ version "3.1.0"
+ resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-3.1.0.tgz#e1daccbe78d0d1388ca18c64fea38e3e57e3706b"
+ integrity sha512-TYOanM3wGwNGsZN2cVTYPArw454xnXj5qmWF1bEoAc4+cU/ol7GVh7odevjp1FNHduHc3KZMcFduxU5Xc6uJRQ==
+ dependencies:
+ yocto-queue "^0.1.0"
+
p-locate@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43"
@@ -8157,10 +8407,12 @@ parse-passwd@^1.0.0:
resolved "https://registry.yarnpkg.com/parse-passwd/-/parse-passwd-1.0.0.tgz#6d5b934a456993b23d37f40a382d6f1666a8e5c6"
integrity sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=
-parse5@6.0.1:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b"
- integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==
+parse5@^7.0.0, parse5@^7.1.1:
+ version "7.1.1"
+ resolved "https://registry.yarnpkg.com/parse5/-/parse5-7.1.1.tgz#4649f940ccfb95d8754f37f73078ea20afe0c746"
+ integrity sha512-kwpuwzB+px5WUg9pyK0IcK/shltJN5/OVhQagxhCQNtT9Y9QRZqNY2e1cmbu/paRh5LMnz/oVTVLBpjFmMZhSg==
+ dependencies:
+ entities "^4.4.0"
parseurl@~1.3.2, parseurl@~1.3.3:
version "1.3.3"
@@ -8326,16 +8578,16 @@ picomatch@^2.0.4, picomatch@^2.2.1:
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.2.2.tgz#21f333e9b6b8eaff02468f5146ea406d345f4dad"
integrity sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==
+picomatch@^2.2.2, picomatch@^2.3.1:
+ version "2.3.1"
+ resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
+ integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
+
picomatch@^2.2.3:
version "2.3.0"
resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.0.tgz#f1f061de8f6a4bf022892e2d128234fb98302972"
integrity sha512-lY1Q/PiJGC2zOv/z391WOTD+Z02bCgsFfvxoXXf6h7kv9o+WmsmzYqrAwY63sNgOxE4xEdq0WyUnXfKeBrSvYw==
-picomatch@^2.3.1:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-2.3.1.tgz#3ba3833733646d9d3e4995946c1365a67fb07a42"
- integrity sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==
-
pify@^2.0.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c"
@@ -8689,10 +8941,10 @@ postcss-safe-parser@^6.0.0:
resolved "https://registry.yarnpkg.com/postcss-safe-parser/-/postcss-safe-parser-6.0.0.tgz#bb4c29894171a94bc5c996b9a30317ef402adaa1"
integrity sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==
-postcss-scss@^4.0.2, postcss-scss@^4.0.4:
- version "4.0.4"
- resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-4.0.4.tgz#aa8f60e19ee18259bc193db9e4b96edfce3f3b1f"
- integrity sha512-aBBbVyzA8b3hUL0MGrpydxxXKXFZc5Eqva0Q3V9qsBOLEMsjb6w49WfpsoWzpEgcqJGW4t7Rio8WXVU9Gd8vWg==
+postcss-scss@^4.0.2, postcss-scss@^4.0.5:
+ version "4.0.5"
+ resolved "https://registry.yarnpkg.com/postcss-scss/-/postcss-scss-4.0.5.tgz#8ee33c1dda8d9d4753b565ec79014803dc6edabf"
+ integrity sha512-F7xpB6TrXyqUh3GKdyB4Gkp3QL3DDW1+uI+gxx/oJnUt/qXI4trj5OGlp9rOKdoABGULuqtqeG+3HEVQk4DjmA==
postcss-selector-parser@^3.0.0:
version "3.1.2"
@@ -8703,7 +8955,7 @@ postcss-selector-parser@^3.0.0:
indexes-of "^1.0.1"
uniq "^1.0.1"
-postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.6:
+postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.2, postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.6:
version "6.0.10"
resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz#79b61e2c0d1bfc2602d549e11d0876256f8df88d"
integrity sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==
@@ -8711,25 +8963,6 @@ postcss-selector-parser@^6.0.10, postcss-selector-parser@^6.0.6:
cssesc "^3.0.0"
util-deprecate "^1.0.2"
-postcss-selector-parser@^6.0.2:
- version "6.0.2"
- resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.2.tgz#934cf799d016c83411859e09dcecade01286ec5c"
- integrity sha512-36P2QR59jDTOAiIkqEprfJDsoNrvwFei3eCqKd1Y0tUsBimsq39BLp7RD+JWny3WgB1zGhJX8XVePwm9k4wdBg==
- dependencies:
- cssesc "^3.0.0"
- indexes-of "^1.0.1"
- uniq "^1.0.1"
-
-postcss-selector-parser@^6.0.4:
- version "6.0.4"
- resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz#56075a1380a04604c38b063ea7767a129af5c2b3"
- integrity sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==
- dependencies:
- cssesc "^3.0.0"
- indexes-of "^1.0.1"
- uniq "^1.0.1"
- util-deprecate "^1.0.2"
-
postcss-svgo@^4.0.3:
version "4.0.3"
resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-4.0.3.tgz#343a2cdbac9505d416243d496f724f38894c941e"
@@ -8753,12 +8986,7 @@ postcss-value-parser@^3.0.0:
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz#9ff822547e2893213cf1c30efa51ac5fd1ba8281"
integrity sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==
-postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0:
- version "4.1.0"
- resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz#443f6a20ced6481a2bda4fa8532a6e55d789a2cb"
- integrity sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==
-
-postcss-value-parser@^4.2.0:
+postcss-value-parser@^4.0.2, postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0:
version "4.2.0"
resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514"
integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==
@@ -8782,19 +9010,10 @@ postcss@^7.0.0, postcss@^7.0.1, postcss@^7.0.27, postcss@^7.0.32:
source-map "^0.6.1"
supports-color "^6.1.0"
-postcss@^8.2.15:
- version "8.3.0"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.3.0.tgz#b1a713f6172ca427e3f05ef1303de8b65683325f"
- integrity sha512-+ogXpdAjWGa+fdYY5BQ96V/6tAo+TdSSIMP5huJBIygdWwKtVoB5JWZ7yUd4xZ8r+8Kvvx4nyg/PQ071H4UtcQ==
- dependencies:
- colorette "^1.2.2"
- nanoid "^3.1.23"
- source-map-js "^0.6.2"
-
-postcss@^8.4.14:
- version "8.4.14"
- resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.14.tgz#ee9274d5622b4858c1007a74d76e42e56fd21caf"
- integrity sha512-E398TUmfAYFPBSdzgeieK2Y1+1cpdxJx8yXbK/m57nRhKSmk1GB2tO4lbLBtlkfPQTDKfe4Xqv1ASWPpayPEig==
+postcss@^8.2.15, postcss@^8.4.17, postcss@^8.4.18:
+ version "8.4.18"
+ resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.18.tgz#6d50046ea7d3d66a85e0e782074e7203bc7fbca2"
+ integrity sha512-Wi8mWhncLJm11GATDaQKobXSNEYGUHeQLiQqDFG1qQ5UTDPTEvKw0Xt5NsTpktGTwLps3ByrWsBrG0rB8YQ9oA==
dependencies:
nanoid "^3.3.4"
picocolors "^1.0.0"
@@ -8832,10 +9051,15 @@ prelude-ls@~1.1.2:
resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.1.2.tgz#21932a549f5e52ffd9a827f570e04be62a97da54"
integrity sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=
-prettier@^2.6.2:
- version "2.6.2"
- resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.6.2.tgz#e26d71a18a74c3d0f0597f55f01fb6c06c206032"
- integrity sha512-PkUpF+qoXTqhOeWL9fu7As8LXsIUZ1WYaJiY/a7McAQzxjk82OF0tibkFXVCDImZtWxbvojFjerkiLb0/q8mew==
+prettier@^2.7.1:
+ version "2.7.1"
+ resolved "https://registry.yarnpkg.com/prettier/-/prettier-2.7.1.tgz#e235806850d057f97bb08368a4f7d899f7760c64"
+ integrity sha512-ujppO+MkdPqoVINuDFDRLClm7D78qbDt0/NR+wp5FqEZOoTNAjPHWj17QRhu7geIHJfcNhRk1XVQmF8Bp3ye+g==
+
+pretty-bytes@^5.3.0, pretty-bytes@^5.4.1:
+ version "5.6.0"
+ resolved "https://registry.yarnpkg.com/pretty-bytes/-/pretty-bytes-5.6.0.tgz#356256f643804773c82f64723fe78c92c62beaeb"
+ integrity sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==
pretty-format@^25.2.1, pretty-format@^25.5.0:
version "25.5.0"
@@ -8857,13 +9081,12 @@ pretty-format@^27.0.2:
ansi-styles "^5.0.0"
react-is "^17.0.1"
-pretty-format@^28.1.0:
- version "28.1.0"
- resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-28.1.0.tgz#8f5836c6a0dfdb834730577ec18029052191af55"
- integrity sha512-79Z4wWOYCdvQkEoEuSlBhHJqWeZ8D8YRPiPctJFCtvuaClGpiwiQYSCUOE6IEKUbbFukKOTFIUAXE8N4EQTo1Q==
+pretty-format@^29.2.1:
+ version "29.2.1"
+ resolved "https://registry.yarnpkg.com/pretty-format/-/pretty-format-29.2.1.tgz#86e7748fe8bbc96a6a4e04fa99172630907a9611"
+ integrity sha512-Y41Sa4aLCtKAXvwuIpTvcFBkyeYp2gdFWzXGA+ZNES3VwURIB165XO/z7CjETwzCCS53MjW/rLMyyqEnTtaOfA==
dependencies:
- "@jest/schemas" "^28.0.2"
- ansi-regex "^5.0.1"
+ "@jest/schemas" "^29.0.0"
ansi-styles "^5.0.0"
react-is "^18.0.0"
@@ -8929,6 +9152,11 @@ proxy-addr@~2.0.7:
forwarded "0.2.0"
ipaddr.js "1.9.1"
+proxy-from-env@^1.1.0:
+ version "1.1.0"
+ resolved "https://registry.yarnpkg.com/proxy-from-env/-/proxy-from-env-1.1.0.tgz#e102f16ca355424865755d2c9e8ea4f24d58c3e2"
+ integrity sha512-D+zkORCbA9f1tdWRK0RaCR3GPv50cMxcrz4X8k5LTSUD1Dkw47mKJEZQNunItRTkWwgtaUSo1RVFRIG9ZXiFYg==
+
prr@~1.0.1:
version "1.0.1"
resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476"
@@ -8996,10 +9224,10 @@ q@^1.1.2:
resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7"
integrity sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=
-qs@6.10.3:
- version "6.10.3"
- resolved "https://registry.yarnpkg.com/qs/-/qs-6.10.3.tgz#d6cde1b2ffca87b5aa57889816c5f81535e22e8e"
- integrity sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==
+qs@6.11.0:
+ version "6.11.0"
+ resolved "https://registry.yarnpkg.com/qs/-/qs-6.11.0.tgz#fd0d963446f7a65e1367e01abd85429453f0c37a"
+ integrity sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==
dependencies:
side-channel "^1.0.4"
@@ -9089,6 +9317,21 @@ react-event-listener@^0.6.0:
prop-types "^15.6.0"
warning "^4.0.1"
+react-fast-compare@^3.1.1:
+ version "3.2.0"
+ resolved "https://registry.yarnpkg.com/react-fast-compare/-/react-fast-compare-3.2.0.tgz#641a9da81b6a6320f270e89724fb45a0b39e43bb"
+ integrity sha512-rtGImPZ0YyLrscKI9xTpV8psd6I8VAtjKCzQDlzyDvqJA8XOW78TXYQwNRNd8g8JZnDu8q9Fu/1v4HPAVwVdHA==
+
+react-helmet@^6.1.0:
+ version "6.1.0"
+ resolved "https://registry.yarnpkg.com/react-helmet/-/react-helmet-6.1.0.tgz#a750d5165cb13cf213e44747502652e794468726"
+ integrity sha512-4uMzEY9nlDlgxr61NL3XbKRy1hEkXmKNXhjbAIOVw5vcFrsdYbH2FEwcNyWvWinl103nXgzYNlns9ca+8kFiWw==
+ dependencies:
+ object-assign "^4.1.1"
+ prop-types "^15.7.2"
+ react-fast-compare "^3.1.1"
+ react-side-effect "^2.1.0"
+
react-hotkeys@^1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/react-hotkeys/-/react-hotkeys-1.1.4.tgz#a0712aa2e0c03a759fd7885808598497a4dace72"
@@ -9112,13 +9355,6 @@ react-immutable-pure-component@^2.2.2:
resolved "https://registry.yarnpkg.com/react-immutable-pure-component/-/react-immutable-pure-component-2.2.2.tgz#3014d3e20cd5a7a4db73b81f1f1464f4d351684b"
integrity sha512-vkgoMJUDqHZfXXnjVlG3keCxSO/U6WeDQ5/Sl0GK2cH8TOxEzQ5jXqDXHEL/jqk6fsNxV05oH5kD7VNMUE2k+A==
-react-infinite-scroller@^1.0.12:
- version "1.2.4"
- resolved "https://registry.yarnpkg.com/react-infinite-scroller/-/react-infinite-scroller-1.2.4.tgz#f67eaec4940a4ce6417bebdd6e3433bfc38826e9"
- integrity sha512-/oOa0QhZjXPqaD6sictN2edFMsd3kkMiE19Vcz5JDgHpzEJVqYcmq+V3mkwO88087kvKGe1URNksHEOt839Ubw==
- dependencies:
- prop-types "^15.5.8"
-
react-intl-translations-manager@^5.0.3:
version "5.0.3"
resolved "https://registry.yarnpkg.com/react-intl-translations-manager/-/react-intl-translations-manager-5.0.3.tgz#aee010ecf35975673e033ca5d7d3f4147894324d"
@@ -9155,20 +9391,11 @@ react-is@^18.0.0:
resolved "https://registry.yarnpkg.com/react-is/-/react-is-18.1.0.tgz#61aaed3096d30eacf2a2127118b5b41387d32a67"
integrity sha512-Fl7FuabXsJnV5Q1qIOQwx/sagGF18kogb4gpfcG4gjLBWO0WDiiz1ko/ExayuxE7InyQkBLkxRFG5oxY6Uu3Kg==
-react-lifecycles-compat@^3.0.2, react-lifecycles-compat@^3.0.4:
+react-lifecycles-compat@^3.0.4:
version "3.0.4"
resolved "https://registry.yarnpkg.com/react-lifecycles-compat/-/react-lifecycles-compat-3.0.4.tgz#4f1a273afdfc8f3488a8c516bfda78f872352362"
integrity sha512-fBASbA6LnOU9dOU2eW7aQ8xmYBSXUIWr+UmF9b1efZBazGNO+rcXT/icdKnYm2pTwcRylVUYwW7H1PHfLekVzA==
-react-masonry-infinite@^1.2.2:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/react-masonry-infinite/-/react-masonry-infinite-1.2.2.tgz#20c1386f9ccdda9747527c8f42bc2c02dd2e7951"
- integrity sha1-IME4b5zN2pdHUnyPQrwsAt0ueVE=
- dependencies:
- bricks.js "^1.7.0"
- prop-types "^15.5.10"
- react-infinite-scroller "^1.0.12"
-
react-motion@^0.5.2:
version "0.5.2"
resolved "https://registry.yarnpkg.com/react-motion/-/react-motion-0.5.2.tgz#0dd3a69e411316567927917c6626551ba0607316"
@@ -9197,18 +9424,18 @@ react-overlays@^0.9.3:
react-transition-group "^2.2.1"
warning "^3.0.0"
-react-redux-loading-bar@^4.0.8:
- version "4.0.8"
- resolved "https://registry.yarnpkg.com/react-redux-loading-bar/-/react-redux-loading-bar-4.0.8.tgz#e84d59d1517b79f53b0f39c8ddb40682af648c1b"
- integrity sha512-BpR1tlYrYKFtGhxa7nAKc0dpcV33ZgXJ/jKNLpDDaxu2/cCxbkWQt9YlWT+VLw1x/7qyNYY4DH48bZdtmciSpg==
+react-redux-loading-bar@^5.0.4:
+ version "5.0.4"
+ resolved "https://registry.yarnpkg.com/react-redux-loading-bar/-/react-redux-loading-bar-5.0.4.tgz#06dffcc53a447828dec1a26903e6b22807dd4254"
+ integrity sha512-ttLFYETh9zfyxJdTa5a1+KTWquxX3UN7F/XYslNTeCE8cpnWNpBbUOg8TcaZmOoWEWjCe/i5sV/Mvvr0xsGBBw==
dependencies:
- prop-types "^15.6.2"
- react-lifecycles-compat "^3.0.2"
+ prop-types "^15.7.2"
+ react-lifecycles-compat "^3.0.4"
-react-redux@^7.2.8:
- version "7.2.8"
- resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.8.tgz#a894068315e65de5b1b68899f9c6ee0923dd28de"
- integrity sha512-6+uDjhs3PSIclqoCk0kd6iX74gzrGc3W5zcAjbrFgEdIjRSQObdIwfx80unTkVUYvbQ95Y8Av3OvFHq1w5EOUw==
+react-redux@^7.2.9:
+ version "7.2.9"
+ resolved "https://registry.yarnpkg.com/react-redux/-/react-redux-7.2.9.tgz#09488fbb9416a4efe3735b7235055442b042481d"
+ integrity sha512-Gx4L3uM182jEEayZfRbI/G11ZpYdNAnBs70lFVMNdHJI76XYtR+7m0MN+eAs7UHBPhWXcnFPaS+9owSCJQHNpQ==
dependencies:
"@babel/runtime" "^7.15.4"
"@types/react-redux" "^7.1.20"
@@ -9250,18 +9477,25 @@ react-router@^4.3.1:
prop-types "^15.6.1"
warning "^4.0.1"
-react-select@^5.3.2:
- version "5.3.2"
- resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.3.2.tgz#ecee0d5c59ed4acb7f567f7de3c75a488d93dacb"
- integrity sha512-W6Irh7U6Ha7p5uQQ2ZnemoCQ8mcfgOtHfw3wuMzG6FAu0P+CYicgofSLOq97BhjMx8jS+h+wwWdCBeVVZ9VqlQ==
+react-select@^5.5.4:
+ version "5.5.4"
+ resolved "https://registry.yarnpkg.com/react-select/-/react-select-5.5.4.tgz#da05b8b66d33f6fc1f92fdccd0fa50d7f4418554"
+ integrity sha512-lyr19joBUm/CNJgjZMBSnFvJ/MeHCmBYvQ050qYAP3EPa7Oenlnx9guhU+SW0goYgxLQyqwRvkFllQpFAp8tmQ==
dependencies:
"@babel/runtime" "^7.12.0"
"@emotion/cache" "^11.4.0"
"@emotion/react" "^11.8.1"
+ "@floating-ui/dom" "^1.0.1"
"@types/react-transition-group" "^4.4.0"
- memoize-one "^5.0.0"
+ memoize-one "^6.0.0"
prop-types "^15.6.0"
react-transition-group "^4.3.0"
+ use-isomorphic-layout-effect "^1.1.2"
+
+react-side-effect@^2.1.0:
+ version "2.1.2"
+ resolved "https://registry.yarnpkg.com/react-side-effect/-/react-side-effect-2.1.2.tgz#dc6345b9e8f9906dc2eeb68700b615e0b4fe752a"
+ integrity sha512-PVjOcvVOyIILrYoyGEpDN3vmYNLdy1CajSFNt4TDsVQC5KpTijDvWVoR+/7Rz2xT978D8/ZtFceXxzsPwZEDvw==
react-sparklines@^1.7.0:
version "1.7.0"
@@ -9320,10 +9554,10 @@ react-textarea-autosize@^8.3.4:
use-composed-ref "^1.3.0"
use-latest "^1.2.1"
-react-toggle@^4.1.2:
- version "4.1.2"
- resolved "https://registry.yarnpkg.com/react-toggle/-/react-toggle-4.1.2.tgz#b00500832f925ad524356d909821821ae39f6c52"
- integrity sha512-4Ohw31TuYQdhWfA6qlKafeXx3IOH7t4ZHhmRdwsm1fQREwOBGxJT+I22sgHqR/w8JRdk+AeMCJXPImEFSrNXow==
+react-toggle@^4.1.3:
+ version "4.1.3"
+ resolved "https://registry.yarnpkg.com/react-toggle/-/react-toggle-4.1.3.tgz#99193392cca8e495710860c49f55e74c4e6cf452"
+ integrity sha512-WoPrvbwfQSvoagbrDnXPrlsxwzuhQIrs+V0I162j/s+4XPgY/YDAUmHSeWiroznfI73wj+MBydvW95zX8ABbSg==
dependencies:
classnames "^2.2.5"
@@ -9397,6 +9631,16 @@ readable-stream@^3.0.0, readable-stream@^3.0.6, readable-stream@^3.6.0:
string_decoder "^1.1.1"
util-deprecate "^1.0.1"
+readable-stream@^4.1.0:
+ version "4.2.0"
+ resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-4.2.0.tgz#a7ef523d3b39e4962b0db1a1af22777b10eeca46"
+ integrity sha512-gJrBHsaI3lgBoGMW/jHZsQ/o/TIWiu5ENCJG1BB7fuCKzpFM8GaS2UoBVt9NO+oI+3FcrBNbUkl3ilDe09aY4A==
+ dependencies:
+ abort-controller "^3.0.0"
+ buffer "^6.0.3"
+ events "^3.3.0"
+ process "^0.11.10"
+
readdirp@^2.2.1:
version "2.2.1"
resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.2.1.tgz#0e87622a3325aa33e892285caf8b4e846529a525"
@@ -9469,18 +9713,6 @@ regenerate-unicode-properties@^10.0.1:
dependencies:
regenerate "^1.4.2"
-regenerate-unicode-properties@^8.2.0:
- version "8.2.0"
- resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz#e5de7111d655e7ba60c057dbe9ff37c87e65cdec"
- integrity sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==
- dependencies:
- regenerate "^1.4.0"
-
-regenerate@^1.4.0:
- version "1.4.1"
- resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.1.tgz#cad92ad8e6b591773485fbe05a485caf4f457e6f"
- integrity sha512-j2+C8+NtXQgEKWk49MMP5P/u2GhnahTtVkRIHr5R5lVRlbKvmQ+oS+A5aLKWp2ma5VkT8sh6v+v4hbH0YHR66A==
-
regenerate@^1.4.2:
version "1.4.2"
resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a"
@@ -9491,10 +9723,10 @@ regenerator-runtime@^0.12.0:
resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.12.1.tgz#fa1a71544764c036f8c49b13a08b2594c9f8a0de"
integrity sha512-odxIc1/vDlo4iZcfXqRYFj0vpXFNoGdKMAUieAlFYO6m/nl5e9KR/beGf41z4a1FI+aQgtjhuaSlDxQ0hmkrHg==
-regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4, regenerator-runtime@^0.13.9:
- version "0.13.9"
- resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz#8925742a98ffd90814988d7566ad30ca3b263b52"
- integrity sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==
+regenerator-runtime@^0.13.10, regenerator-runtime@^0.13.3, regenerator-runtime@^0.13.4:
+ version "0.13.10"
+ resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.13.10.tgz#ed07b19616bcbec5da6274ebc75ae95634bfc2ee"
+ integrity sha512-KepLsg4dU12hryUO7bp/axHAKvwGOCV0sGloQtpagJ12ai+ojVDqkeGSiRX1zlq+kjIMZ1t7gpze+26QqtdGqw==
regenerator-transform@^0.15.0:
version "0.15.0"
@@ -9533,22 +9765,10 @@ regexpp@^3.1.0:
resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.1.0.tgz#206d0ad0a5648cffbdb8ae46438f3dc51c9f78e2"
integrity sha512-ZOIzd8yVsQQA7j8GCSlPGXwg5PfmA1mrq0JP4nGhh54LaKN3xdai/vHUDu74pKwV8OxseMS65u2NImosQcSD0Q==
-regexpu-core@^4.7.1:
- version "4.7.1"
- resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-4.7.1.tgz#2dea5a9a07233298fbf0db91fa9abc4c6e0f8ad6"
- integrity sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==
- dependencies:
- regenerate "^1.4.0"
- regenerate-unicode-properties "^8.2.0"
- regjsgen "^0.5.1"
- regjsparser "^0.6.4"
- unicode-match-property-ecmascript "^1.0.4"
- unicode-match-property-value-ecmascript "^1.2.0"
-
-regexpu-core@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.0.1.tgz#c531122a7840de743dcf9c83e923b5560323ced3"
- integrity sha512-CriEZlrKK9VJw/xQGJpQM5rY88BtuL8DM+AEwvcThHilbxiTAy8vq4iJnd2tqq8wLmjbGZzP7ZcKFjbGkmEFrw==
+regexpu-core@^5.1.0:
+ version "5.1.0"
+ resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.1.0.tgz#2f8504c3fd0ebe11215783a41541e21c79942c6d"
+ integrity sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==
dependencies:
regenerate "^1.4.2"
regenerate-unicode-properties "^10.0.1"
@@ -9557,23 +9777,11 @@ regexpu-core@^5.0.1:
unicode-match-property-ecmascript "^2.0.0"
unicode-match-property-value-ecmascript "^2.0.0"
-regjsgen@^0.5.1:
- version "0.5.2"
- resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.5.2.tgz#92ff295fb1deecbf6ecdab2543d207e91aa33733"
- integrity sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==
-
regjsgen@^0.6.0:
version "0.6.0"
resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.6.0.tgz#83414c5354afd7d6627b16af5f10f41c4e71808d"
integrity sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==
-regjsparser@^0.6.4:
- version "0.6.4"
- resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.6.4.tgz#a769f8684308401a66e9b529d2436ff4d0666272"
- integrity sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==
- dependencies:
- jsesc "~0.5.0"
-
regjsparser@^0.8.2:
version "0.8.4"
resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.8.4.tgz#8a14285ffcc5de78c5b95d62bbf413b6bc132d5f"
@@ -9581,11 +9789,6 @@ regjsparser@^0.8.2:
dependencies:
jsesc "~0.5.0"
-rellax@^1.12.1:
- version "1.12.1"
- resolved "https://registry.yarnpkg.com/rellax/-/rellax-1.12.1.tgz#1b433ef7ac4aa3573449a33efab391c112f6b34d"
- integrity sha512-XBIi0CDpW5FLTujYjYBn1CIbK2CJL6TsAg/w409KghP2LucjjzBjsujXDAjyBLWgsfupfUcL5WzdnIPcGfK7XA==
-
remove-trailing-separator@^1.0.1:
version "1.1.0"
resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef"
@@ -9631,10 +9834,10 @@ requires-port@^1.0.0:
resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff"
integrity sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=
-reselect@^4.1.5:
- version "4.1.5"
- resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.5.tgz#852c361247198da6756d07d9296c2b51eddb79f6"
- integrity sha512-uVdlz8J7OO+ASpBYoz1Zypgx0KasCY20H+N8JD13oUMtPvSHQuscrHop4KbXrbsBcdB9Ds7lVK7eRkBIfO43vQ==
+reselect@^4.1.6:
+ version "4.1.6"
+ resolved "https://registry.yarnpkg.com/reselect/-/reselect-4.1.6.tgz#19ca2d3d0b35373a74dc1c98692cdaffb6602656"
+ integrity sha512-ZovIuXqto7elwnxyXbBtCPo9YFEr3uJqj2rRbcOOog1bmu2Ag85M4hixSwFWyaBMKXNgvPaJ9OSu9SkBPIeJHQ==
resolve-cwd@^2.0.0:
version "2.0.0"
@@ -9742,7 +9945,7 @@ rimraf@^2.5.4, rimraf@^2.6.3:
dependencies:
glob "^7.1.3"
-rimraf@^3.0.0, rimraf@^3.0.2:
+rimraf@^3.0.2:
version "3.0.2"
resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-3.0.2.tgz#f1a5402ba6220ad52cc1282bac1ae3aa49fd061a"
integrity sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==
@@ -9757,6 +9960,23 @@ ripemd160@^2.0.0, ripemd160@^2.0.1:
hash-base "^3.0.0"
inherits "^2.0.1"
+rollup-plugin-terser@^7.0.0:
+ version "7.0.2"
+ resolved "https://registry.yarnpkg.com/rollup-plugin-terser/-/rollup-plugin-terser-7.0.2.tgz#e8fbba4869981b2dc35ae7e8a502d5c6c04d324d"
+ integrity sha512-w3iIaU4OxcF52UUXiZNsNeuXIMDvFrr+ZXK6bFZ0Q60qyVfq4uLptoS4bbq3paG3x216eQllFZX7zt6TIImguQ==
+ dependencies:
+ "@babel/code-frame" "^7.10.4"
+ jest-worker "^26.2.1"
+ serialize-javascript "^4.0.0"
+ terser "^5.0.0"
+
+rollup@^2.43.1:
+ version "2.72.1"
+ resolved "https://registry.yarnpkg.com/rollup/-/rollup-2.72.1.tgz#861c94790537b10008f0ca0fbc60e631aabdd045"
+ integrity sha512-NTc5UGy/NWFGpSqF1lFY8z9Adri6uhyMLI6LvPAXdBKoPRFhIIiBUpt+Qg2awixqO3xvzSijjhnb4+QEZwJmxA==
+ optionalDependencies:
+ fsevents "~2.3.2"
+
run-parallel@^1.1.9:
version "1.2.0"
resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.2.0.tgz#66d1368da7bdf921eb9d95bd1a9229e7f21a43ee"
@@ -9804,10 +10024,10 @@ sass-loader@^10.2.0:
schema-utils "^3.0.0"
semver "^7.3.2"
-sass@^1.52.1:
- version "1.52.1"
- resolved "https://registry.yarnpkg.com/sass/-/sass-1.52.1.tgz#554693da808543031f9423911d62c60a1acf7889"
- integrity sha512-fSzYTbr7z8oQnVJ3Acp9hV80dM1fkMN7mSD/25mpcct9F7FPBMOI8krEYALgU1aZoqGhQNhTPsuSmxjnIvAm4Q==
+sass@^1.55.0:
+ version "1.55.0"
+ resolved "https://registry.yarnpkg.com/sass/-/sass-1.55.0.tgz#0c4d3c293cfe8f8a2e8d3b666e1cf1bff8065d1c"
+ integrity sha512-Pk+PMy7OGLs9WaxZGJMn7S96dvlyVBwwtToX895WmCpAOr5YiJYEUJfiJidMuKb613z2xNWcXCHEuOvjZbqC6A==
dependencies:
chokidar ">=3.0.0 <4.0.0"
immutable "^4.0.0"
@@ -9818,10 +10038,10 @@ sax@~1.2.4:
resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9"
integrity sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==
-saxes@^5.0.1:
- version "5.0.1"
- resolved "https://registry.yarnpkg.com/saxes/-/saxes-5.0.1.tgz#eebab953fa3b7608dbe94e5dadb15c888fa6696d"
- integrity sha512-5LBh1Tls8c9xgGjw3QrMwETmTMVk0oFgvrFSvWx62llR2hcEInrKNZ2GZCCuuy2lvWrdl5jhbpeqc5hRYKFOcw==
+saxes@^6.0.0:
+ version "6.0.0"
+ resolved "https://registry.yarnpkg.com/saxes/-/saxes-6.0.0.tgz#fe5b4a4768df4f14a201b1ba6a65c1f3d9988cc5"
+ integrity sha512-xAg7SOnEhrm5zI3puOOKyy1OMcMlIJZYNJY7xLBwSze0UjhPLnWfj2GF2EpT0jmzaJKIWKHLsaSSajf35bcYnA==
dependencies:
xmlchars "^2.2.0"
@@ -9885,24 +10105,12 @@ selfsigned@^1.10.8:
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
-semver@7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e"
- integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==
-
semver@^6.0.0, semver@^6.1.1, semver@^6.1.2, semver@^6.3.0:
version "6.3.0"
resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.0.tgz#ee0a64c8af5e8ceea67687b133761e1becbd1d3d"
integrity sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==
-semver@^7.2.1, semver@^7.3.2, semver@^7.3.5:
- version "7.3.5"
- resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.5.tgz#0b621c879348d8998e4b0e4be94b3f12e6018ef7"
- integrity sha512-PoeGJYh8HK4BTO/a9Tf6ZG3veo/A7ZVsYrSA6J8ny9nb3B1VrpkuN+z9OE5wfE5p6H4LchYZsegiQgbJD94ZFQ==
- dependencies:
- lru-cache "^6.0.0"
-
-semver@^7.3.4:
+semver@^7.2.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5:
version "7.3.7"
resolved "https://registry.yarnpkg.com/semver/-/semver-7.3.7.tgz#12c5b649afdbf9049707796e22a4028814ce523f"
integrity sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==
@@ -9933,6 +10141,13 @@ serialize-javascript@^2.1.2:
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-2.1.2.tgz#ecec53b0e0317bdc95ef76ab7074b7384785fa61"
integrity sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==
+serialize-javascript@^4.0.0:
+ version "4.0.0"
+ resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-4.0.0.tgz#b525e1238489a5ecfc42afacc3fe99e666f4b1aa"
+ integrity sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==
+ dependencies:
+ randombytes "^2.1.0"
+
serialize-javascript@^5.0.1:
version "5.0.1"
resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-5.0.1.tgz#7886ec848049a462467a97d3d918ebb2aaf934f4"
@@ -10077,11 +10292,6 @@ sisteransi@^1.0.4:
resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed"
integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg==
-slash@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55"
- integrity sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=
-
slash@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634"
@@ -10152,17 +10362,7 @@ source-list-map@^2.0.0:
resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.1.tgz#3993bd873bfc48479cca9ea3a547835c7c154b34"
integrity sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==
-"source-map-js@>=0.6.2 <2.0.0":
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.1.tgz#a1741c131e3c77d048252adfa24e23b908670caf"
- integrity sha512-4+TN2b3tqOCd/kaGRJ/sTYA0tR0mdXx26ipdolxcwtJVqEnqNYvlCAt1q3ypy4QMlYus+Zh34RNtYLoq2oQ4IA==
-
-source-map-js@^0.6.2:
- version "0.6.2"
- resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-0.6.2.tgz#0bb5de631b41cfbda6cfba8bd05a80efdfd2385e"
- integrity sha512-/3GptzWzu0+0MBQFrDKzw/DvvMTUORvgY6k6jd/VS6iCR4RDTKWH6v6WPwQoUO8667uQEf9Oe38DxAYWY5F/Ug==
-
-source-map-js@^1.0.2:
+"source-map-js@>=0.6.2 <2.0.0", source-map-js@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c"
integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==
@@ -10178,14 +10378,6 @@ source-map-resolve@^0.5.0:
source-map-url "^0.4.0"
urix "^0.1.0"
-source-map-resolve@^0.6.0:
- version "0.6.0"
- resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.6.0.tgz#3d9df87e236b53f16d01e58150fc7711138e5ed2"
- integrity sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==
- dependencies:
- atob "^2.1.2"
- decode-uri-component "^0.2.0"
-
source-map-support@0.5.13:
version "0.5.13"
resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932"
@@ -10194,10 +10386,10 @@ source-map-support@0.5.13:
buffer-from "^1.0.0"
source-map "^0.6.0"
-source-map-support@~0.5.12, source-map-support@~0.5.19:
- version "0.5.19"
- resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.19.tgz#a98b62f86dcaf4f67399648c085291ab9e8fed61"
- integrity sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==
+source-map-support@~0.5.12, source-map-support@~0.5.19, source-map-support@~0.5.20:
+ version "0.5.21"
+ resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f"
+ integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==
dependencies:
buffer-from "^1.0.0"
source-map "^0.6.0"
@@ -10222,11 +10414,23 @@ source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.1:
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263"
integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==
+source-map@^0.8.0-beta.0, source-map@~0.8.0-beta.0:
+ version "0.8.0-beta.0"
+ resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.8.0-beta.0.tgz#d4c1bb42c3f7ee925f005927ba10709e0d1d1f11"
+ integrity sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==
+ dependencies:
+ whatwg-url "^7.0.0"
+
source-map@~0.7.2:
version "0.7.3"
resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.3.tgz#5302f8169031735226544092e64981f751750383"
integrity sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==
+sourcemap-codec@^1.4.8:
+ version "1.4.8"
+ resolved "https://registry.yarnpkg.com/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz#ea804bd94857402e6992d05a38ef1ae35a9ab4c4"
+ integrity sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==
+
spdx-correct@^3.0.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.1.1.tgz#dece81ac9c1e6713e5f7d1b6f17d468fa53d89a9"
@@ -10276,11 +10480,6 @@ spdy@^4.0.2:
select-hose "^2.0.0"
spdy-transport "^3.0.0"
-specificity@^0.4.1:
- version "0.4.1"
- resolved "https://registry.yarnpkg.com/specificity/-/specificity-0.4.1.tgz#aab5e645012db08ba182e151165738d00887b019"
- integrity sha512-1klA3Gi5PD1Wv9Q0wUoOQN1IWAuPu0D1U03ThXTr0cJ20+/iq2tHSDnK7Kk/0LXJ1ztUB2/1Os0wKmfyNgUQfg==
-
split-string@^3.0.1, split-string@^3.0.2:
version "3.1.0"
resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2"
@@ -10431,7 +10630,7 @@ string-width@^3.0.0, string-width@^3.1.0:
is-fullwidth-code-point "^2.0.0"
strip-ansi "^5.1.0"
-string.prototype.matchall@^4.0.7:
+string.prototype.matchall@^4.0.6, string.prototype.matchall@^4.0.7:
version "4.0.7"
resolved "https://registry.yarnpkg.com/string.prototype.matchall/-/string.prototype.matchall-4.0.7.tgz#8e6ecb0d8a1fb1fda470d81acecb2dba057a481d"
integrity sha512-f48okCX7JiwVi1NXCVWcFnZgADDC/n2vePlQ/KUCNqCikLLilQvwjMO8+BHVKvgzH0JB0J9LEPgxOGT02RoETg==
@@ -10477,6 +10676,15 @@ string_decoder@~1.1.1:
dependencies:
safe-buffer "~5.1.0"
+stringify-object@^3.3.0:
+ version "3.3.0"
+ resolved "https://registry.yarnpkg.com/stringify-object/-/stringify-object-3.3.0.tgz#703065aefca19300d3ce88af4f5b3956d7556629"
+ integrity sha512-rHqiFh1elqCQ9WPLIC8I0Q/g/wj5J1eMkyoiD6eoQApWHP0FtlK7rqnhmabL5VUY9JQCcqwwvlOaSuutekgyrw==
+ dependencies:
+ get-own-enumerable-property-symbols "^3.0.0"
+ is-obj "^1.0.1"
+ is-regexp "^1.0.0"
+
stringz@^2.1.0:
version "2.1.0"
resolved "https://registry.yarnpkg.com/stringz/-/stringz-2.1.0.tgz#5896b4713eac31157556040fb90258fb02c1630c"
@@ -10498,14 +10706,7 @@ strip-ansi@^5.0.0, strip-ansi@^5.1.0, strip-ansi@^5.2.0:
dependencies:
ansi-regex "^4.1.0"
-strip-ansi@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.0.tgz#0b1571dd7669ccd4f3e06e14ef1eed26225ae532"
- integrity sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==
- dependencies:
- ansi-regex "^5.0.0"
-
-strip-ansi@^6.0.1:
+strip-ansi@^6.0.0, strip-ansi@^6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9"
integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==
@@ -10563,34 +10764,34 @@ stylehacks@^4.0.0:
postcss "^7.0.0"
postcss-selector-parser "^3.0.0"
-stylelint-config-recommended-scss@^6.0.0:
- version "6.0.0"
- resolved "https://registry.yarnpkg.com/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-6.0.0.tgz#02baeace2b7f30f80369b6ee2da77aae5a01bff6"
- integrity sha512-6QOe2/OzXV2AP5FE12A7+qtKdZik7Saf42SMMl84ksVBBPpTdrV+9HaCbPYiRMiwELY9hXCVdH4wlJ+YJb5eig==
+stylelint-config-recommended-scss@^7.0.0:
+ version "7.0.0"
+ resolved "https://registry.yarnpkg.com/stylelint-config-recommended-scss/-/stylelint-config-recommended-scss-7.0.0.tgz#db16b6ae6055e72e3398916c0f13d6eb685902a2"
+ integrity sha512-rGz1J4rMAyJkvoJW4hZasuQBB7y9KIrShb20l9DVEKKZSEi1HAy0vuNlR8HyCKy/jveb/BdaQFcoiYnmx4HoiA==
dependencies:
postcss-scss "^4.0.2"
- stylelint-config-recommended "^7.0.0"
+ stylelint-config-recommended "^8.0.0"
stylelint-scss "^4.0.0"
-stylelint-config-recommended@^7.0.0:
- version "7.0.0"
- resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-7.0.0.tgz#7497372ae83ab7a6fffc18d7d7b424c6480ae15e"
- integrity sha512-yGn84Bf/q41J4luis1AZ95gj0EQwRX8lWmGmBwkwBNSkpGSpl66XcPTulxGa/Z91aPoNGuIGBmFkcM1MejMo9Q==
+stylelint-config-recommended@^8.0.0:
+ version "8.0.0"
+ resolved "https://registry.yarnpkg.com/stylelint-config-recommended/-/stylelint-config-recommended-8.0.0.tgz#7736be9984246177f017c39ec7b1cd0f19ae9117"
+ integrity sha512-IK6dWvE000+xBv9jbnHOnBq01gt6HGVB2ZTsot+QsMpe82doDQ9hvplxfv4YnpEuUwVGGd9y6nbaAnhrjcxhZQ==
-stylelint-config-standard-scss@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/stylelint-config-standard-scss/-/stylelint-config-standard-scss-4.0.0.tgz#9c1dc99eea73394bf22ad15648a5b1d9b74ff649"
- integrity sha512-xizu8PTEyB6zYXBiVg6VtvUYn9m57x+6ZtaOdaxsfpbe5eagLPGNlbYnKfm/CfN69ArUpnwR6LjgsTHzlGbtXQ==
+stylelint-config-standard-scss@^5.0.0:
+ version "5.0.0"
+ resolved "https://registry.yarnpkg.com/stylelint-config-standard-scss/-/stylelint-config-standard-scss-5.0.0.tgz#afc5e43c73e7a15875b8f30f54204b01a2634743"
+ integrity sha512-zoXLibojHZYPFjtkc4STZtAJ2yGTq3Bb4MYO0oiyO6f/vNxDKRcSDZYoqN260Gv2eD5niQIr1/kr5SXlFj9kcQ==
dependencies:
- stylelint-config-recommended-scss "^6.0.0"
- stylelint-config-standard "^25.0.0"
+ stylelint-config-recommended-scss "^7.0.0"
+ stylelint-config-standard "^26.0.0"
-stylelint-config-standard@^25.0.0:
- version "25.0.0"
- resolved "https://registry.yarnpkg.com/stylelint-config-standard/-/stylelint-config-standard-25.0.0.tgz#2c916984e6655d40d6e8748b19baa8603b680bff"
- integrity sha512-21HnP3VSpaT1wFjFvv9VjvOGDtAviv47uTp3uFmzcN+3Lt+RYRv6oAplLaV51Kf792JSxJ6svCJh/G18E9VnCA==
+stylelint-config-standard@^26.0.0:
+ version "26.0.0"
+ resolved "https://registry.yarnpkg.com/stylelint-config-standard/-/stylelint-config-standard-26.0.0.tgz#4701b8d582d34120eec7d260ba779e4c2d953635"
+ integrity sha512-hUuB7LaaqM8abvkOO84wh5oYSkpXgTzHu2Zza6e7mY+aOmpNTjoFBRxSLlzY0uAOMWEFx0OMKzr+reG1BUtcqQ==
dependencies:
- stylelint-config-recommended "^7.0.0"
+ stylelint-config-recommended "^8.0.0"
stylelint-scss@^4.0.0:
version "4.2.0"
@@ -10603,21 +10804,20 @@ stylelint-scss@^4.0.0:
postcss-selector-parser "^6.0.6"
postcss-value-parser "^4.1.0"
-stylelint@^14.8.5:
- version "14.8.5"
- resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-14.8.5.tgz#0fcbf5b6821283b5a249dde36d70f1158da0a2a3"
- integrity sha512-e3t4H/hlWlspkcNUrkhf44RU3OpPTA7uBOoREGBzSwdEF+2g/+gbZq7WEpMP7BpopcSe/uLaTvDuL+URL7cdnQ==
+stylelint@^14.14.0:
+ version "14.14.0"
+ resolved "https://registry.yarnpkg.com/stylelint/-/stylelint-14.14.0.tgz#1acb52497c9a921f23f9c4014d4e0ee6eba768d0"
+ integrity sha512-yUI+4xXfPHVnueYddSQ/e1GuEA/2wVhWQbGj16AmWLtQJtn28lVxfS4b0CsWyVRPgd3Auzi0NXOthIEUhtQmmA==
dependencies:
+ "@csstools/selector-specificity" "^2.0.2"
balanced-match "^2.0.0"
- colord "^2.9.2"
+ colord "^2.9.3"
cosmiconfig "^7.0.1"
- css-functions-list "^3.0.1"
+ css-functions-list "^3.1.0"
debug "^4.3.4"
- execall "^2.0.0"
- fast-glob "^3.2.11"
- fastest-levenshtein "^1.0.12"
+ fast-glob "^3.2.12"
+ fastest-levenshtein "^1.0.16"
file-entry-cache "^6.0.1"
- get-stdin "^8.0.0"
global-modules "^2.0.0"
globby "^11.1.0"
globjoin "^0.1.4"
@@ -10632,22 +10832,21 @@ stylelint@^14.8.5:
micromatch "^4.0.5"
normalize-path "^3.0.0"
picocolors "^1.0.0"
- postcss "^8.4.14"
+ postcss "^8.4.17"
postcss-media-query-parser "^0.2.3"
postcss-resolve-nested-selector "^0.1.1"
postcss-safe-parser "^6.0.0"
postcss-selector-parser "^6.0.10"
postcss-value-parser "^4.2.0"
resolve-from "^5.0.0"
- specificity "^0.4.1"
string-width "^4.2.3"
strip-ansi "^6.0.1"
style-search "^0.1.0"
- supports-hyperlinks "^2.2.0"
+ supports-hyperlinks "^2.3.0"
svg-tags "^1.0.0"
table "^6.8.0"
v8-compile-cache "^2.3.0"
- write-file-atomic "^4.0.1"
+ write-file-atomic "^4.0.2"
stylis@4.0.13:
version "4.0.13"
@@ -10699,18 +10898,10 @@ supports-color@^8.0.0:
dependencies:
has-flag "^4.0.0"
-supports-hyperlinks@^2.0.0:
- version "2.1.0"
- resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.1.0.tgz#f663df252af5f37c5d49bbd7eeefa9e0b9e59e47"
- integrity sha512-zoE5/e+dnEijk6ASB6/qrK+oYdm2do1hjoLWrqUC/8WEIW1gbxFcKuBof7sW8ArN6e+AYvsE8HBGiVRWL/F5CA==
- dependencies:
- has-flag "^4.0.0"
- supports-color "^7.0.0"
-
-supports-hyperlinks@^2.2.0:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.2.0.tgz#4f77b42488765891774b70c79babd87f9bd594bb"
- integrity sha512-6sXEzV5+I5j8Bmq9/vUphGRM/RJNT9SCURJLjwfOg51heRtguGWDzcaBlgAzKhQa0EVNpPEKzQuBwZ8S8WaCeQ==
+supports-hyperlinks@^2.3.0:
+ version "2.3.0"
+ resolved "https://registry.yarnpkg.com/supports-hyperlinks/-/supports-hyperlinks-2.3.0.tgz#3943544347c1ff90b15effb03fc14ae45ec10624"
+ integrity sha512-RpsAZlpWcDwOPQA22aCH4J0t7L8JmAvsCxfOSEwm7cQs3LshN36QaTkwd70DnBOXDWGssw2eUoc8CaRWT0XunA==
dependencies:
has-flag "^4.0.0"
supports-color "^7.0.0"
@@ -10749,19 +10940,7 @@ symbol-tree@^3.2.4:
resolved "https://registry.yarnpkg.com/symbol-tree/-/symbol-tree-3.2.4.tgz#430637d248ba77e078883951fb9aa0eed7c63fa2"
integrity sha512-9QNk5KwDF+Bvz+PyObkmSYjI5ksVUYtjW7AU22r2NKcfLJcXp96hkDWU3+XndOsUb+AQ9QhfzfCT2O+CNWT5Tw==
-table@^6.0.9:
- version "6.7.1"
- resolved "https://registry.yarnpkg.com/table/-/table-6.7.1.tgz#ee05592b7143831a8c94f3cee6aae4c1ccef33e2"
- integrity sha512-ZGum47Yi6KOOFDE8m223td53ath2enHcYLgOCjGr5ngu8bdIARQk6mN/wRMv4yMRcHnCSnHbCEha4sobQx5yWg==
- dependencies:
- ajv "^8.0.1"
- lodash.clonedeep "^4.5.0"
- lodash.truncate "^4.4.2"
- slice-ansi "^4.0.0"
- string-width "^4.2.0"
- strip-ansi "^6.0.0"
-
-table@^6.8.0:
+table@^6.0.9, table@^6.8.0:
version "6.8.0"
resolved "https://registry.yarnpkg.com/table/-/table-6.8.0.tgz#87e28f14fa4321c3377ba286f07b79b281a3b3ca"
integrity sha512-s/fitrbVeEyHKFa7mFdkuQMWlH1Wgw/yEXMt5xACT4ZpzWFluehAxRtUUQKPuWhaLAWhFcVx6w3oC8VKaUfPGA==
@@ -10794,13 +10973,20 @@ tcomb@^2.5.0:
resolved "https://registry.yarnpkg.com/tcomb/-/tcomb-2.7.0.tgz#10d62958041669a5d53567b9a4ee8cde22b1c2b0"
integrity sha1-ENYpWAQWaaXVNWe5pO6M3iKxwrA=
-terminal-link@^2.0.0:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/terminal-link/-/terminal-link-2.1.1.tgz#14a64a27ab3c0df933ea546fba55f2d078edc994"
- integrity sha512-un0FmiRUQNr5PJqy9kP7c40F5BOfpGlYTrxonDChEZB7pzZxRNp/bt+ymiy9/npwXya9KH99nJ/GXFIiUkYGFQ==
+temp-dir@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/temp-dir/-/temp-dir-2.0.0.tgz#bde92b05bdfeb1516e804c9c00ad45177f31321e"
+ integrity sha512-aoBAniQmmwtcKp/7BzsH8Cxzv8OL736p7v1ihGb5e9DJ9kTwGWHrQrVB5+lfVDzfGrdRzXch+ig7LHaY1JTOrg==
+
+tempy@^0.6.0:
+ version "0.6.0"
+ resolved "https://registry.yarnpkg.com/tempy/-/tempy-0.6.0.tgz#65e2c35abc06f1124a97f387b08303442bde59f3"
+ integrity sha512-G13vtMYPT/J8A4X2SjdtBTphZlrp1gKv6hZiOjw14RCWg6GbHuQBGtjlx75xLbYV/wEc0D7G5K4rxKP/cXk8Bw==
dependencies:
- ansi-escapes "^4.2.1"
- supports-hyperlinks "^2.0.0"
+ is-stream "^2.0.0"
+ temp-dir "^2.0.0"
+ type-fest "^0.16.0"
+ unique-string "^2.0.0"
terser-webpack-plugin@^1.4.3:
version "1.4.3"
@@ -10833,14 +11019,24 @@ terser-webpack-plugin@^4.2.3:
webpack-sources "^1.4.3"
terser@^4.1.2:
- version "4.8.0"
- resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.0.tgz#63056343d7c70bb29f3af665865a46fe03a0df17"
- integrity sha512-EAPipTNeWsb/3wLPeup1tVPaXfIaU68xMnVdPafIL1TV05OhASArYyIfFvnvJCNrR2NIOvDVNNTFRa+Re2MWyw==
+ version "4.8.1"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-4.8.1.tgz#a00e5634562de2239fd404c649051bf6fc21144f"
+ integrity sha512-4GnLC0x667eJG0ewJTa6z/yXrbLGv80D9Ru6HIpCQmO+Q4PfEtBFi0ObSckqwL6VyQv/7ENJieXHo2ANmdQwgw==
dependencies:
commander "^2.20.0"
source-map "~0.6.1"
source-map-support "~0.5.12"
+terser@^5.0.0:
+ version "5.13.1"
+ resolved "https://registry.yarnpkg.com/terser/-/terser-5.13.1.tgz#66332cdc5a01b04a224c9fad449fc1a18eaa1799"
+ integrity sha512-hn4WKOfwnwbYfe48NgrQjqNOH9jzLqRcIfbYytOXCOv46LBfWr9bDS17MQqOi+BWGD0sJK3Sj5NC/gJjiojaoA==
+ dependencies:
+ acorn "^8.5.0"
+ commander "^2.20.0"
+ source-map "~0.8.0-beta.0"
+ source-map-support "~0.5.20"
+
terser@^5.3.4:
version "5.3.4"
resolved "https://registry.yarnpkg.com/terser/-/terser-5.3.4.tgz#e510e05f86e0bd87f01835c3238839193f77a60c"
@@ -10886,11 +11082,6 @@ text-table@^0.2.0:
resolved "https://registry.yarnpkg.com/text-table/-/text-table-0.2.0.tgz#7f5ee823ae805207c00af2df4a84ec3fcfa570b4"
integrity sha1-f17oI66AUgfACvLfSoTsP8+lcLQ=
-throat@^6.0.1:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/throat/-/throat-6.0.1.tgz#d514fedad95740c12c2d7fc70ea863eb51ade375"
- integrity sha512-8hmiGIJMDlwjg7dlJ4yKGLK8EsYqKgPWbG3b4wjJddKNwc7N7Dpn08Df4szr/sZdMVeOstrdYSsqzX6BYbcB+w==
-
throng@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/throng/-/throng-4.0.0.tgz#983c6ba1993b58eae859998aa687ffe88df84c17"
@@ -10938,7 +11129,7 @@ tiny-warning@^1.0.0:
resolved "https://registry.yarnpkg.com/tiny-warning/-/tiny-warning-1.0.3.tgz#94a30db453df4c643d0fd566060d60a875d84754"
integrity sha512-lBN9zLN/oAf68o3zNXYrdCt1kP8WsiGW8Oo2ka41b2IM5JL/S1CTyX1rW0mb/zSuJun0ZUrDxx4sqvYS2FWzPA==
-tmpl@1.0.x:
+tmpl@1.0.5:
version "1.0.5"
resolved "https://registry.yarnpkg.com/tmpl/-/tmpl-1.0.5.tgz#8683e0b902bb9c20c4f726e3c0b69f36518c07cc"
integrity sha512-3f0uOEAQwIqGuWW2MVzYg8fV/QNnc/IpuJNG837rLuczAaLVHslWHZQj4IGiEl5Hs3kkbhwL9Ab7Hrsmuj+Smw==
@@ -10995,14 +11186,22 @@ totalist@^1.0.0:
resolved "https://registry.yarnpkg.com/totalist/-/totalist-1.1.0.tgz#a4d65a3e546517701e3e5c37a47a70ac97fe56df"
integrity sha512-gduQwd1rOdDMGxFG1gEvhV88Oirdo2p+KjoYFU7k2g+i7n6AFFbDQ5kMPUsW0pNbfQsB/cwXvT1i4Bue0s9g5g==
-tough-cookie@^4.0.0:
- version "4.0.0"
- resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4"
- integrity sha512-tHdtEpQCMrc1YLrMaqXXcj6AxhYi/xgit6mZu1+EDWUn+qhUf8wMQoFIy9NXuq23zAwtcB0t/MjACGR18pcRbg==
+tough-cookie@^4.1.2:
+ version "4.1.2"
+ resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.1.2.tgz#e53e84b85f24e0b65dd526f46628db6c85f6b874"
+ integrity sha512-G9fqXWoYFZgTc2z8Q5zaHy/vJMjm+WV0AkAeHxVCQiEB1b+dGvWzFW6QV07cY5jQ5gRkeid2qIkzkxUnmoQZUQ==
dependencies:
psl "^1.1.33"
punycode "^2.1.1"
- universalify "^0.1.2"
+ universalify "^0.2.0"
+ url-parse "^1.5.3"
+
+tr46@^1.0.1:
+ version "1.0.1"
+ resolved "https://registry.yarnpkg.com/tr46/-/tr46-1.0.1.tgz#a8b13fd6bfd2489519674ccde55ba3693b706d09"
+ integrity sha1-qLE/1r/SSJUZZ0zN5VujaTtwbQk=
+ dependencies:
+ punycode "^2.1.0"
tr46@^3.0.0:
version "3.0.0"
@@ -11080,6 +11279,11 @@ type-fest@^0.11.0:
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.11.0.tgz#97abf0872310fed88a5c466b25681576145e33f1"
integrity sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==
+type-fest@^0.16.0:
+ version "0.16.0"
+ resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.16.0.tgz#3240b891a78b0deae910dbeb86553e552a148860"
+ integrity sha512-eaBzG6MxNzEn9kiwvtre90cXaNLkmadMWa1zQMs3XORCXNbsH/OewwbxC5ia9dCxIxnTAsSxXJaa/p5y8DlvJg==
+
type-fest@^0.18.0:
version "0.18.1"
resolved "https://registry.yarnpkg.com/type-fest/-/type-fest-0.18.1.tgz#db4bc151a4a2cf4eebf9add5db75508db6cc841f"
@@ -11133,24 +11337,11 @@ unbox-primitive@^1.0.2:
has-symbols "^1.0.3"
which-boxed-primitive "^1.0.2"
-unicode-canonical-property-names-ecmascript@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz#2619800c4c825800efdd8343af7dd9933cbe2818"
- integrity sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==
-
unicode-canonical-property-names-ecmascript@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz#301acdc525631670d39f6146e0e77ff6bbdebddc"
integrity sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==
-unicode-match-property-ecmascript@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz#8ed2a32569961bce9227d09cd3ffbb8fed5f020c"
- integrity sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==
- dependencies:
- unicode-canonical-property-names-ecmascript "^1.0.4"
- unicode-property-aliases-ecmascript "^1.0.4"
-
unicode-match-property-ecmascript@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3"
@@ -11159,21 +11350,11 @@ unicode-match-property-ecmascript@^2.0.0:
unicode-canonical-property-names-ecmascript "^2.0.0"
unicode-property-aliases-ecmascript "^2.0.0"
-unicode-match-property-value-ecmascript@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz#0d91f600eeeb3096aa962b1d6fc88876e64ea531"
- integrity sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==
-
unicode-match-property-value-ecmascript@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz#1a01aa57247c14c568b89775a54938788189a714"
integrity sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==
-unicode-property-aliases-ecmascript@^1.0.4:
- version "1.1.0"
- resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz#dd57a99f6207bedff4628abefb94c50db941c8f4"
- integrity sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==
-
unicode-property-aliases-ecmascript@^2.0.0:
version "2.0.0"
resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz#0a36cb9a585c4f6abd51ad1deddb285c165297c8"
@@ -11213,11 +11394,28 @@ unique-slug@^2.0.0:
dependencies:
imurmurhash "^0.1.4"
-universalify@^0.1.0, universalify@^0.1.2:
+unique-string@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/unique-string/-/unique-string-2.0.0.tgz#39c6451f81afb2749de2b233e3f7c5e8843bd89d"
+ integrity sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==
+ dependencies:
+ crypto-random-string "^2.0.0"
+
+universalify@^0.1.0:
version "0.1.2"
resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66"
integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==
+universalify@^0.2.0:
+ version "0.2.0"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0"
+ integrity sha512-CJ1QgKmNg3CwvAv/kOFmtnEN05f0D/cn9QntgNOQlQF9dgvVTHj3t+8JPdjqawCHk7V/KA+fbUqzZ9XWhcqPUg==
+
+universalify@^2.0.0:
+ version "2.0.0"
+ resolved "https://registry.yarnpkg.com/universalify/-/universalify-2.0.0.tgz#75a4984efedc4b08975c5aeb73f530d02df25717"
+ integrity sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==
+
unpipe@1.0.0, unpipe@~1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec"
@@ -11236,11 +11434,19 @@ unset-value@^1.0.0:
has-value "^0.3.1"
isobject "^3.0.0"
-upath@^1.1.1:
+upath@^1.1.1, upath@^1.2.0:
version "1.2.0"
resolved "https://registry.yarnpkg.com/upath/-/upath-1.2.0.tgz#8f66dbcd55a883acdae4408af8b035a5044c1894"
integrity sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==
+update-browserslist-db@^1.0.9:
+ version "1.0.9"
+ resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.0.9.tgz#2924d3927367a38d5c555413a7ce138fc95fcb18"
+ integrity sha512-/xsqn21EGVdXI3EXSum1Yckj3ZVZugqyOZQ/CxYPBD/R+ko9NSUScf8tFF4dOKY+2pvSSJA/S+5B8s4Zr4kyvg==
+ dependencies:
+ escalade "^3.1.1"
+ picocolors "^1.0.0"
+
uri-js@^4.2.2:
version "4.4.0"
resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-4.4.0.tgz#aa714261de793e8a82347a7bcc9ce74e86f28602"
@@ -11253,7 +11459,7 @@ urix@^0.1.0:
resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72"
integrity sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=
-url-parse@^1.4.3, url-parse@^1.4.7:
+url-parse@^1.4.3, url-parse@^1.4.7, url-parse@^1.5.3:
version "1.5.10"
resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.5.10.tgz#9d3c2f736c1d75dd3bd2be507dcc111f1e2ea9c1"
integrity sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==
@@ -11274,7 +11480,7 @@ use-composed-ref@^1.3.0:
resolved "https://registry.yarnpkg.com/use-composed-ref/-/use-composed-ref-1.3.0.tgz#3d8104db34b7b264030a9d916c5e94fbe280dbda"
integrity sha512-GLMG0Jc/jiKov/3Ulid1wbv3r54K9HlMW29IWcDFPEqFkSO2nS0MuefWgMJpeHQ9YJeXDL3ZUF+P3jdXlZX/cQ==
-use-isomorphic-layout-effect@^1.1.1:
+use-isomorphic-layout-effect@^1.1.1, use-isomorphic-layout-effect@^1.1.2:
version "1.1.2"
resolved "https://registry.yarnpkg.com/use-isomorphic-layout-effect/-/use-isomorphic-layout-effect-1.1.2.tgz#497cefb13d863d687b08477d9e5a164ad8c1a6fb"
integrity sha512-49L8yCO3iGT/ZF9QttjwLF/ZD9Iwto5LnH5LmEdk/6cFmXddqi2ulF0edxTwjj+7mqvpVVGQWvbXZdn32wRSHA==
@@ -11291,10 +11497,10 @@ use@^3.1.0:
resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f"
integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==
-utf-8-validate@^5.0.9:
- version "5.0.9"
- resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.9.tgz#ba16a822fbeedff1a58918f2a6a6b36387493ea3"
- integrity sha512-Yek7dAy0v3Kl0orwMlvi7TPtiCNrdfHNd7Gcc/pLq4BLXqfAmd0J7OWMizUQnTTJsyjKn02mU7anqwfmUP4J8Q==
+utf-8-validate@^5.0.10:
+ version "5.0.10"
+ resolved "https://registry.yarnpkg.com/utf-8-validate/-/utf-8-validate-5.0.10.tgz#d7d10ea39318171ca982718b6b96a8d2442571a2"
+ integrity sha512-Z6czzLq4u8fPOyx7TU6X3dvUZVvoJmxSQ+IcrlmagKhilxlhZgxPK6C5Jqbkw1IDUmFTM+cz9QDnnLTwDz/2gQ==
dependencies:
node-gyp-build "^4.3.0"
@@ -11342,22 +11548,17 @@ uuid@^8.3.1:
resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2"
integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==
-v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.1:
- version "2.2.0"
- resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132"
- integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q==
-
-v8-compile-cache@^2.3.0:
+v8-compile-cache@^2.0.3, v8-compile-cache@^2.1.1, v8-compile-cache@^2.3.0:
version "2.3.0"
resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.3.0.tgz#2de19618c66dc247dcfb6f99338035d8245a2cee"
integrity sha512-l8lCEmLcLYZh4nbunNZvQCJc5pv7+RCwa8q/LdUx8u7lsWvPDKmpodJAJNwkAhJC//dFY48KuIEmjtd4RViDrA==
-v8-to-istanbul@^9.0.0:
- version "9.0.0"
- resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.0.tgz#be0dae58719fc53cb97e5c7ac1d7e6d4f5b19511"
- integrity sha512-HcvgY/xaRm7isYmyx+lFKA4uQmfUbN0J4M0nNItvzTvH/iQ9kW5j/t4YSR+Ge323/lrgDAWJoF46tzGQHwBHFw==
+v8-to-istanbul@^9.0.1:
+ version "9.0.1"
+ resolved "https://registry.yarnpkg.com/v8-to-istanbul/-/v8-to-istanbul-9.0.1.tgz#b6f994b0b5d4ef255e17a0d17dc444a9f5132fa4"
+ integrity sha512-74Y4LqY74kLE6IFyIjPtkSTWzUZmj8tdHT9Ii/26dvQ6K9Dl2NbEfj0XgU2sHCtKgt5VupqhlO/5aWuqS+IY1w==
dependencies:
- "@jridgewell/trace-mapping" "^0.3.7"
+ "@jridgewell/trace-mapping" "^0.3.12"
"@types/istanbul-lib-coverage" "^2.0.1"
convert-source-map "^1.6.0"
@@ -11394,13 +11595,6 @@ vm-browserify@^1.0.1:
resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-1.1.2.tgz#78641c488b8e6ca91a75f511e7a3b32a86e5dda0"
integrity sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==
-w3c-hr-time@^1.0.2:
- version "1.0.2"
- resolved "https://registry.yarnpkg.com/w3c-hr-time/-/w3c-hr-time-1.0.2.tgz#0a89cdf5cc15822df9c360543676963e0cc308cd"
- integrity sha512-z8P5DvDNjKDoFIHK7q8r8lackT6l+jo/Ye3HOle7l9nICP9lf1Ci25fy9vHd0JOWewkIFzXIEig3TdKT7JQ5fQ==
- dependencies:
- browser-process-hrtime "^1.0.0"
-
w3c-xmlserializer@^3.0.0:
version "3.0.0"
resolved "https://registry.yarnpkg.com/w3c-xmlserializer/-/w3c-xmlserializer-3.0.0.tgz#06cdc3eefb7e4d0b20a560a5a3aeb0d2d9a65923"
@@ -11408,12 +11602,12 @@ w3c-xmlserializer@^3.0.0:
dependencies:
xml-name-validator "^4.0.0"
-walker@^1.0.7:
- version "1.0.7"
- resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.7.tgz#2f7f9b8fd10d677262b18a884e28d19618e028fb"
- integrity sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=
+walker@^1.0.8:
+ version "1.0.8"
+ resolved "https://registry.yarnpkg.com/walker/-/walker-1.0.8.tgz#bd498db477afe573dc04185f011d3ab8a8d7653f"
+ integrity sha512-ts/8E8l5b7kY0vlWLewOkDXMmPdLcVV4GmOQLyxuSswIJsweeFZtAsMF7k1Nszz+TYBQrlYRmzOnr398y1JemQ==
dependencies:
- makeerror "1.0.x"
+ makeerror "1.0.12"
warning@^3.0.0:
version "3.0.0"
@@ -11459,6 +11653,11 @@ webidl-conversions@^3.0.0:
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-3.0.1.tgz#24534275e2a7bc6be7bc86611cc16ae0a5654871"
integrity sha1-JFNCdeKnvGvnvIZhHMFq4KVlSHE=
+webidl-conversions@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-4.0.2.tgz#a855980b1f0b6b359ba1d5d9fb39ae941faa63ad"
+ integrity sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==
+
webidl-conversions@^7.0.0:
version "7.0.0"
resolved "https://registry.yarnpkg.com/webidl-conversions/-/webidl-conversions-7.0.0.tgz#256b4e1882be7debbf01d05f0aa2039778ea080a"
@@ -11479,10 +11678,10 @@ webpack-assets-manifest@^4.0.6:
tapable "^1.0"
webpack-sources "^1.0"
-webpack-bundle-analyzer@^4.5.0:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.5.0.tgz#1b0eea2947e73528754a6f9af3e91b2b6e0f79d5"
- integrity sha512-GUMZlM3SKwS8Z+CKeIFx7CVoHn3dXFcUAjT/dcZQQmfSZGvitPfMob2ipjai7ovFFqPvTqkEZ/leL4O0YOdAYQ==
+webpack-bundle-analyzer@^4.6.1:
+ version "4.6.1"
+ resolved "https://registry.yarnpkg.com/webpack-bundle-analyzer/-/webpack-bundle-analyzer-4.6.1.tgz#bee2ee05f4ba4ed430e4831a319126bb4ed9f5a6"
+ integrity sha512-oKz9Oz9j3rUciLNfpGFjOb49/jEpXNmWdVH8Ls//zNcnLlQdTGXQQMsBbb/gR7Zl8WNLxVCq+0Hqbx3zv6twBw==
dependencies:
acorn "^8.0.4"
acorn-walk "^8.0.0"
@@ -11649,14 +11848,6 @@ whatwg-mimetype@^3.0.0:
resolved "https://registry.yarnpkg.com/whatwg-mimetype/-/whatwg-mimetype-3.0.0.tgz#5fa1a7623867ff1af6ca3dc72ad6b8a4208beba7"
integrity sha512-nt+N2dzIutVRxARx1nghPKGv1xHikU7HKdfafKkLNLindmPU/ch3U31NOCGGA/dmPcmb1VlofO0vnKAcsm0o/Q==
-whatwg-url@^10.0.0:
- version "10.0.0"
- resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-10.0.0.tgz#37264f720b575b4a311bd4094ed8c760caaa05da"
- integrity sha512-CLxxCmdUby142H5FZzn4D8ikO1cmypvXVQktsgosNy4a4BHrDHeciBBGZhb0bNoR5/MltoCatso+vFjjGx8t0w==
- dependencies:
- tr46 "^3.0.0"
- webidl-conversions "^7.0.0"
-
whatwg-url@^11.0.0:
version "11.0.0"
resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-11.0.0.tgz#0a849eebb5faf2119b901bb76fd795c2848d4018"
@@ -11673,6 +11864,15 @@ whatwg-url@^5.0.0:
tr46 "~0.0.3"
webidl-conversions "^3.0.0"
+whatwg-url@^7.0.0:
+ version "7.1.0"
+ resolved "https://registry.yarnpkg.com/whatwg-url/-/whatwg-url-7.1.0.tgz#c2c492f1eca612988efd3d2266be1b9fc6170d06"
+ integrity sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==
+ dependencies:
+ lodash.sortby "^4.7.0"
+ tr46 "^1.0.1"
+ webidl-conversions "^4.0.2"
+
which-boxed-primitive@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/which-boxed-primitive/-/which-boxed-primitive-1.0.2.tgz#13757bc89b209b049fe5d86430e21cf40a89a8e6"
@@ -11703,10 +11903,10 @@ which@^2.0.1:
dependencies:
isexe "^2.0.0"
-wicg-inert@^3.1.1:
- version "3.1.1"
- resolved "https://registry.yarnpkg.com/wicg-inert/-/wicg-inert-3.1.1.tgz#b033fd4fbfb9e3fd709e5d84becbdf2e06e5c229"
- integrity sha512-PhBaNh8ur9Xm4Ggy4umelwNIP6pPP1bv3EaWaKqfb/QNme2rdLjm7wIInvV4WhxVHhzA4Spgw9qNSqWtB/ca2A==
+wicg-inert@^3.1.2:
+ version "3.1.2"
+ resolved "https://registry.yarnpkg.com/wicg-inert/-/wicg-inert-3.1.2.tgz#df10cf756b773a96fce107c3ddcd43be5d1e3944"
+ integrity sha512-Ba9tGNYxXwaqKEi9sJJvPMKuo063umUPsHN0JJsjrs2j8KDSzkWLMZGZ+MH1Jf1Fq4OWZ5HsESJID6nRza2ang==
wide-align@^1.1.5:
version "1.1.5"
@@ -11725,6 +11925,175 @@ word-wrap@^1.2.3, word-wrap@~1.2.3:
resolved "https://registry.yarnpkg.com/word-wrap/-/word-wrap-1.2.3.tgz#610636f6b1f703891bd34771ccb17fb93b47079c"
integrity sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==
+workbox-background-sync@6.5.4:
+ version "6.5.4"
+ resolved "https://registry.yarnpkg.com/workbox-background-sync/-/workbox-background-sync-6.5.4.tgz#3141afba3cc8aa2ae14c24d0f6811374ba8ff6a9"
+ integrity sha512-0r4INQZMyPky/lj4Ou98qxcThrETucOde+7mRGJl13MPJugQNKeZQOdIJe/1AchOP23cTqHcN/YVpD6r8E6I8g==
+ dependencies:
+ idb "^7.0.1"
+ workbox-core "6.5.4"
+
+workbox-broadcast-update@6.5.4:
+ version "6.5.4"
+ resolved "https://registry.yarnpkg.com/workbox-broadcast-update/-/workbox-broadcast-update-6.5.4.tgz#8441cff5417cd41f384ba7633ca960a7ffe40f66"
+ integrity sha512-I/lBERoH1u3zyBosnpPEtcAVe5lwykx9Yg1k6f8/BGEPGaMMgZrwVrqL1uA9QZ1NGGFoyE6t9i7lBjOlDhFEEw==
+ dependencies:
+ workbox-core "6.5.4"
+
+workbox-build@6.5.4:
+ version "6.5.4"
+ resolved "https://registry.yarnpkg.com/workbox-build/-/workbox-build-6.5.4.tgz#7d06d31eb28a878817e1c991c05c5b93409f0389"
+ integrity sha512-kgRevLXEYvUW9WS4XoziYqZ8Q9j/2ziJYEtTrjdz5/L/cTUa2XfyMP2i7c3p34lgqJ03+mTiz13SdFef2POwbA==
+ dependencies:
+ "@apideck/better-ajv-errors" "^0.3.1"
+ "@babel/core" "^7.11.1"
+ "@babel/preset-env" "^7.11.0"
+ "@babel/runtime" "^7.11.2"
+ "@rollup/plugin-babel" "^5.2.0"
+ "@rollup/plugin-node-resolve" "^11.2.1"
+ "@rollup/plugin-replace" "^2.4.1"
+ "@surma/rollup-plugin-off-main-thread" "^2.2.3"
+ ajv "^8.6.0"
+ common-tags "^1.8.0"
+ fast-json-stable-stringify "^2.1.0"
+ fs-extra "^9.0.1"
+ glob "^7.1.6"
+ lodash "^4.17.20"
+ pretty-bytes "^5.3.0"
+ rollup "^2.43.1"
+ rollup-plugin-terser "^7.0.0"
+ source-map "^0.8.0-beta.0"
+ stringify-object "^3.3.0"
+ strip-comments "^2.0.1"
+ tempy "^0.6.0"
+ upath "^1.2.0"
+ workbox-background-sync "6.5.4"
+ workbox-broadcast-update "6.5.4"
+ workbox-cacheable-response "6.5.4"
+ workbox-core "6.5.4"
+ workbox-expiration "6.5.4"
+ workbox-google-analytics "6.5.4"
+ workbox-navigation-preload "6.5.4"
+ workbox-precaching "6.5.4"
+ workbox-range-requests "6.5.4"
+ workbox-recipes "6.5.4"
+ workbox-routing "6.5.4"
+ workbox-strategies "6.5.4"
+ workbox-streams "6.5.4"
+ workbox-sw "6.5.4"
+ workbox-window "6.5.4"
+
+workbox-cacheable-response@6.5.4:
+ version "6.5.4"
+ resolved "https://registry.yarnpkg.com/workbox-cacheable-response/-/workbox-cacheable-response-6.5.4.tgz#a5c6ec0c6e2b6f037379198d4ef07d098f7cf137"
+ integrity sha512-DCR9uD0Fqj8oB2TSWQEm1hbFs/85hXXoayVwFKLVuIuxwJaihBsLsp4y7J9bvZbqtPJ1KlCkmYVGQKrBU4KAug==
+ dependencies:
+ workbox-core "6.5.4"
+
+workbox-core@6.5.4:
+ version "6.5.4"
+ resolved "https://registry.yarnpkg.com/workbox-core/-/workbox-core-6.5.4.tgz#df48bf44cd58bb1d1726c49b883fb1dffa24c9ba"
+ integrity sha512-OXYb+m9wZm8GrORlV2vBbE5EC1FKu71GGp0H4rjmxmF4/HLbMCoTFws87M3dFwgpmg0v00K++PImpNQ6J5NQ6Q==
+
+workbox-expiration@6.5.4, workbox-expiration@^6.5.4:
+ version "6.5.4"
+ resolved "https://registry.yarnpkg.com/workbox-expiration/-/workbox-expiration-6.5.4.tgz#501056f81e87e1d296c76570bb483ce5e29b4539"
+ integrity sha512-jUP5qPOpH1nXtjGGh1fRBa1wJL2QlIb5mGpct3NzepjGG2uFFBn4iiEBiI9GUmfAFR2ApuRhDydjcRmYXddiEQ==
+ dependencies:
+ idb "^7.0.1"
+ workbox-core "6.5.4"
+
+workbox-google-analytics@6.5.4:
+ version "6.5.4"
+ resolved "https://registry.yarnpkg.com/workbox-google-analytics/-/workbox-google-analytics-6.5.4.tgz#c74327f80dfa4c1954cbba93cd7ea640fe7ece7d"
+ integrity sha512-8AU1WuaXsD49249Wq0B2zn4a/vvFfHkpcFfqAFHNHwln3jK9QUYmzdkKXGIZl9wyKNP+RRX30vcgcyWMcZ9VAg==
+ dependencies:
+ workbox-background-sync "6.5.4"
+ workbox-core "6.5.4"
+ workbox-routing "6.5.4"
+ workbox-strategies "6.5.4"
+
+workbox-navigation-preload@6.5.4:
+ version "6.5.4"
+ resolved "https://registry.yarnpkg.com/workbox-navigation-preload/-/workbox-navigation-preload-6.5.4.tgz#ede56dd5f6fc9e860a7e45b2c1a8f87c1c793212"
+ integrity sha512-IIwf80eO3cr8h6XSQJF+Hxj26rg2RPFVUmJLUlM0+A2GzB4HFbQyKkrgD5y2d84g2IbJzP4B4j5dPBRzamHrng==
+ dependencies:
+ workbox-core "6.5.4"
+
+workbox-precaching@6.5.4, workbox-precaching@^6.5.4:
+ version "6.5.4"
+ resolved "https://registry.yarnpkg.com/workbox-precaching/-/workbox-precaching-6.5.4.tgz#740e3561df92c6726ab5f7471e6aac89582cab72"
+ integrity sha512-hSMezMsW6btKnxHB4bFy2Qfwey/8SYdGWvVIKFaUm8vJ4E53JAY+U2JwLTRD8wbLWoP6OVUdFlXsTdKu9yoLTg==
+ dependencies:
+ workbox-core "6.5.4"
+ workbox-routing "6.5.4"
+ workbox-strategies "6.5.4"
+
+workbox-range-requests@6.5.4:
+ version "6.5.4"
+ resolved "https://registry.yarnpkg.com/workbox-range-requests/-/workbox-range-requests-6.5.4.tgz#86b3d482e090433dab38d36ae031b2bb0bd74399"
+ integrity sha512-Je2qR1NXCFC8xVJ/Lux6saH6IrQGhMpDrPXWZWWS8n/RD+WZfKa6dSZwU+/QksfEadJEr/NfY+aP/CXFFK5JFg==
+ dependencies:
+ workbox-core "6.5.4"
+
+workbox-recipes@6.5.4:
+ version "6.5.4"
+ resolved "https://registry.yarnpkg.com/workbox-recipes/-/workbox-recipes-6.5.4.tgz#cca809ee63b98b158b2702dcfb741b5cc3e24acb"
+ integrity sha512-QZNO8Ez708NNwzLNEXTG4QYSKQ1ochzEtRLGaq+mr2PyoEIC1xFW7MrWxrONUxBFOByksds9Z4//lKAX8tHyUA==
+ dependencies:
+ workbox-cacheable-response "6.5.4"
+ workbox-core "6.5.4"
+ workbox-expiration "6.5.4"
+ workbox-precaching "6.5.4"
+ workbox-routing "6.5.4"
+ workbox-strategies "6.5.4"
+
+workbox-routing@6.5.4, workbox-routing@^6.5.4:
+ version "6.5.4"
+ resolved "https://registry.yarnpkg.com/workbox-routing/-/workbox-routing-6.5.4.tgz#6a7fbbd23f4ac801038d9a0298bc907ee26fe3da"
+ integrity sha512-apQswLsbrrOsBUWtr9Lf80F+P1sHnQdYodRo32SjiByYi36IDyL2r7BH1lJtFX8fwNHDa1QOVY74WKLLS6o5Pg==
+ dependencies:
+ workbox-core "6.5.4"
+
+workbox-strategies@6.5.4, workbox-strategies@^6.5.4:
+ version "6.5.4"
+ resolved "https://registry.yarnpkg.com/workbox-strategies/-/workbox-strategies-6.5.4.tgz#4edda035b3c010fc7f6152918370699334cd204d"
+ integrity sha512-DEtsxhx0LIYWkJBTQolRxG4EI0setTJkqR4m7r4YpBdxtWJH1Mbg01Cj8ZjNOO8etqfA3IZaOPHUxCs8cBsKLw==
+ dependencies:
+ workbox-core "6.5.4"
+
+workbox-streams@6.5.4:
+ version "6.5.4"
+ resolved "https://registry.yarnpkg.com/workbox-streams/-/workbox-streams-6.5.4.tgz#1cb3c168a6101df7b5269d0353c19e36668d7d69"
+ integrity sha512-FXKVh87d2RFXkliAIheBojBELIPnWbQdyDvsH3t74Cwhg0fDheL1T8BqSM86hZvC0ZESLsznSYWw+Va+KVbUzg==
+ dependencies:
+ workbox-core "6.5.4"
+ workbox-routing "6.5.4"
+
+workbox-sw@6.5.4:
+ version "6.5.4"
+ resolved "https://registry.yarnpkg.com/workbox-sw/-/workbox-sw-6.5.4.tgz#d93e9c67924dd153a61367a4656ff4d2ae2ed736"
+ integrity sha512-vo2RQo7DILVRoH5LjGqw3nphavEjK4Qk+FenXeUsknKn14eCNedHOXWbmnvP4ipKhlE35pvJ4yl4YYf6YsJArA==
+
+workbox-webpack-plugin@^6.5.4:
+ version "6.5.4"
+ resolved "https://registry.yarnpkg.com/workbox-webpack-plugin/-/workbox-webpack-plugin-6.5.4.tgz#baf2d3f4b8f435f3469887cf4fba2b7fac3d0fd7"
+ integrity sha512-LmWm/zoaahe0EGmMTrSLUi+BjyR3cdGEfU3fS6PN1zKFYbqAKuQ+Oy/27e4VSXsyIwAw8+QDfk1XHNGtZu9nQg==
+ dependencies:
+ fast-json-stable-stringify "^2.1.0"
+ pretty-bytes "^5.4.1"
+ upath "^1.2.0"
+ webpack-sources "^1.4.3"
+ workbox-build "6.5.4"
+
+workbox-window@6.5.4, workbox-window@^6.5.4:
+ version "6.5.4"
+ resolved "https://registry.yarnpkg.com/workbox-window/-/workbox-window-6.5.4.tgz#d991bc0a94dff3c2dbb6b84558cff155ca878e91"
+ integrity sha512-HnLZJDwYBE+hpG25AQBO8RUWBJRaCsI9ksQJEp3aCOFCaG5kqaToAYXFRAHxzRluM2cQbGzdQF5rjKPWPA1fug==
+ dependencies:
+ "@types/trusted-types" "^2.0.2"
+ workbox-core "6.5.4"
+
worker-farm@^1.7.0:
version "1.7.0"
resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.7.0.tgz#26a94c5391bbca926152002f69b84a4bf772e5a8"
@@ -11755,10 +12124,10 @@ wrappy@1:
resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f"
integrity sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=
-write-file-atomic@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.1.tgz#9faa33a964c1c85ff6f849b80b42a88c2c537c8f"
- integrity sha512-nSKUxgAbyioruk6hU87QzVbY279oYT6uiwgDoujth2ju4mJ+TZau7SQBhtbTmUyuNYTuXnSyRn66FV0+eCgcrQ==
+write-file-atomic@^4.0.1, write-file-atomic@^4.0.2:
+ version "4.0.2"
+ resolved "https://registry.yarnpkg.com/write-file-atomic/-/write-file-atomic-4.0.2.tgz#a9df01ae5b77858a027fd2e80768ee433555fcfd"
+ integrity sha512-7KxauUdBmSdWnmpaGFg+ppNjKF8uNLry8LyzjauQDOVONfFLNKrKvQOxZ/VuTIcS/gge/YNahf5RIIQWTSarlg==
dependencies:
imurmurhash "^0.1.4"
signal-exit "^3.0.7"
@@ -11775,10 +12144,10 @@ ws@^7.3.1:
resolved "https://registry.yarnpkg.com/ws/-/ws-7.4.6.tgz#5654ca8ecdeee47c33a9a4bf6d28e2be2980377c"
integrity sha512-YmhHDO4MzaDLB+M9ym/mDA5z0naX8j7SIlT8f8z+I0VtzsRbekxEutHSme7NPS2qE8StCYQNUnfWdXta/Yu85A==
-ws@^8.2.3, ws@^8.7.0:
- version "8.7.0"
- resolved "https://registry.yarnpkg.com/ws/-/ws-8.7.0.tgz#eaf9d874b433aa00c0e0d8752532444875db3957"
- integrity sha512-c2gsP0PRwcLFzUiA8Mkr37/MI7ilIlHQxaEAtd0uNMbVMoy8puJyafRlm0bV9MbGSabUPeLrRRaqIBcFcA2Pqg==
+ws@^8.10.0, ws@^8.9.0:
+ version "8.10.0"
+ resolved "https://registry.yarnpkg.com/ws/-/ws-8.10.0.tgz#00a28c09dfb76eae4eb45c3b565f771d6951aa51"
+ integrity sha512-+s49uSmZpvtAsd2h37vIPy1RBusaLawVe8of+GyEPsaJTCMpj/2v8NpeK1SHXjBlQ95lQTmQofOJnFiLoaN3yw==
xml-name-validator@^4.0.0:
version "4.0.0"
@@ -11854,12 +12223,12 @@ yargs@^13.3.2:
y18n "^4.0.0"
yargs-parser "^13.1.2"
-yargs@^17.3.1, yargs@^17.5.1:
- version "17.5.1"
- resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.5.1.tgz#e109900cab6fcb7fd44b1d8249166feb0b36e58e"
- integrity sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==
+yargs@^17.3.1, yargs@^17.6.0:
+ version "17.6.0"
+ resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.6.0.tgz#e134900fc1f218bc230192bdec06a0a5f973e46c"
+ integrity sha512-8H/wTDqlSwoSnScvV2N/JHfLWOKuh5MVla9hqLjK3nsfyy6Y4kDSYSvkU5YCUEPOSnRXfIyx3Sq+B/IWudTo4g==
dependencies:
- cliui "^7.0.2"
+ cliui "^8.0.1"
escalade "^3.1.1"
get-caller-file "^2.0.5"
require-directory "^2.1.1"
@@ -11867,6 +12236,11 @@ yargs@^17.3.1, yargs@^17.5.1:
y18n "^5.0.5"
yargs-parser "^21.0.0"
+yocto-queue@^0.1.0:
+ version "0.1.0"
+ resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-0.1.0.tgz#0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b"
+ integrity sha512-rVksvsnNCdJ/ohGc6xgPwyN8eheCxsiLM8mxuE/t/mOVqJewPuO1miLpTHQiRgTKCLexL4MeAFVagts7HmNZ2Q==
+
zlibjs@^0.3.1:
version "0.3.1"
resolved "https://registry.yarnpkg.com/zlibjs/-/zlibjs-0.3.1.tgz#50197edb28a1c42ca659cc8b4e6a9ddd6d444554"