Merge pull request #1547 from ClearlyClaire/glitch-soc/merge-upstream

Merge upstream changes
This commit is contained in:
Claire 2021-06-03 22:30:38 +02:00 committed by GitHub
commit db5baf3d1a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
504 changed files with 1572 additions and 571 deletions

View file

@ -1,4 +1,4 @@
name: Chack i18n name: Check i18n
on: on:
push: push:

View file

@ -3,6 +3,25 @@ Changelog
All notable changes to this project will be documented in this file. All notable changes to this project will be documented in this file.
## [3.4.1] - 2021-06-03
### Added
- Add new emoji assets from Twemoji 13.1.0 ([Gargron](https://github.com/tootsuite/mastodon/pull/16345))
### Fixed
- Fix some ActivityPub identifiers in server actor outbox ([ClearlyClaire](https://github.com/tootsuite/mastodon/pull/16343))
- Fix custom CSS path setting cookies and being uncacheable due to it ([tribela](https://github.com/tootsuite/mastodon/pull/16314))
- Fix unread notification count when polling in web UI ([ClearlyClaire](https://github.com/tootsuite/mastodon/pull/16272))
- Fix health check not being accessible through localhost ([ClearlyClaire](https://github.com/tootsuite/mastodon/pull/16270))
- Fix some redis locks auto-releasing too fast ([ClearlyClaire](https://github.com/tootsuite/mastodon/pull/16276), [ClearlyClaire](https://github.com/tootsuite/mastodon/pull/16291))
- Fix e-mail confirmations API not working correctly ([Gargron](https://github.com/tootsuite/mastodon/pull/16348))
- Fix migration script not being able to run if it fails midway ([ClearlyClaire](https://github.com/tootsuite/mastodon/pull/16312))
- Fix account deletion sometimes failing because of optimistic locks ([ClearlyClaire](https://github.com/tootsuite/mastodon/pull/16317))
- Fix deprecated slash as division in SASS files ([ClearlyClaire](https://github.com/tootsuite/mastodon/pull/16347))
- Fix `tootctl search deploy` compatibility error on Ruby 3 ([ClearlyClaire](https://github.com/tootsuite/mastodon/pull/16346))
- Fix mailer jobs for deleted notifications erroring out ([ClearlyClaire](https://github.com/tootsuite/mastodon/pull/16294))
## [3.4.0] - 2021-05-16 ## [3.4.0] - 2021-05-16
### Added ### Added

View file

@ -79,7 +79,7 @@ GEM
encryptor (~> 3.0.0) encryptor (~> 3.0.0)
awrence (1.1.1) awrence (1.1.1)
aws-eventstream (1.1.1) aws-eventstream (1.1.1)
aws-partitions (1.461.0) aws-partitions (1.465.0)
aws-sdk-core (3.114.0) aws-sdk-core (3.114.0)
aws-eventstream (~> 1, >= 1.0.2) aws-eventstream (~> 1, >= 1.0.2)
aws-partitions (~> 1, >= 1.239.0) aws-partitions (~> 1, >= 1.239.0)
@ -88,7 +88,7 @@ GEM
aws-sdk-kms (1.43.0) aws-sdk-kms (1.43.0)
aws-sdk-core (~> 3, >= 3.112.0) aws-sdk-core (~> 3, >= 3.112.0)
aws-sigv4 (~> 1.1) aws-sigv4 (~> 1.1)
aws-sdk-s3 (1.95.0) aws-sdk-s3 (1.95.1)
aws-sdk-core (~> 3, >= 3.112.0) aws-sdk-core (~> 3, >= 3.112.0)
aws-sdk-kms (~> 1) aws-sdk-kms (~> 1)
aws-sigv4 (~> 1.1) aws-sigv4 (~> 1.1)
@ -354,17 +354,22 @@ GEM
nokogiri (~> 1) nokogiri (~> 1)
rake rake
mini_mime (1.0.3) mini_mime (1.0.3)
mini_portile2 (2.5.1) mini_portile2 (2.5.2)
net-ftp (~> 0.1)
minitest (5.14.4) minitest (5.14.4)
msgpack (1.4.2) msgpack (1.4.2)
multi_json (1.15.0) multi_json (1.15.0)
multipart-post (2.1.1) multipart-post (2.1.1)
net-ftp (0.1.2)
net-protocol
time
net-ldap (0.17.0) net-ldap (0.17.0)
net-protocol (0.1.0)
net-scp (3.0.0) net-scp (3.0.0)
net-ssh (>= 2.6.5, < 7.0.0) net-ssh (>= 2.6.5, < 7.0.0)
net-ssh (6.1.0) net-ssh (6.1.0)
nio4r (2.5.7) nio4r (2.5.7)
nokogiri (1.11.5) nokogiri (1.11.6)
mini_portile2 (~> 2.5.0) mini_portile2 (~> 2.5.0)
racc (~> 1.4) racc (~> 1.4)
nokogumbo (2.0.4) nokogumbo (2.0.4)
@ -610,6 +615,7 @@ GEM
thwait (0.2.0) thwait (0.2.0)
e2mmap e2mmap
tilt (2.0.10) tilt (2.0.10)
time (0.1.0)
tpm-key_attestation (0.9.0) tpm-key_attestation (0.9.0)
bindata (~> 2.4) bindata (~> 2.4)
openssl-signature_algorithm (~> 0.4.0) openssl-signature_algorithm (~> 0.4.0)

View file

@ -29,7 +29,7 @@ class ActivityPub::OutboxesController < ActivityPub::BaseController
) )
else else
ActivityPub::CollectionPresenter.new( ActivityPub::CollectionPresenter.new(
id: account_outbox_url(@account), id: outbox_url,
type: :ordered, type: :ordered,
size: @account.statuses_count, size: @account.statuses_count,
first: outbox_url(page: true), first: outbox_url(page: true),
@ -47,11 +47,11 @@ class ActivityPub::OutboxesController < ActivityPub::BaseController
end end
def next_page def next_page
account_outbox_url(@account, page: true, max_id: @statuses.last.id) if @statuses.size == LIMIT outbox_url(page: true, max_id: @statuses.last.id) if @statuses.size == LIMIT
end end
def prev_page def prev_page
account_outbox_url(@account, page: true, min_id: @statuses.first.id) unless @statuses.empty? outbox_url(page: true, min_id: @statuses.first.id) unless @statuses.empty?
end end
def set_statuses def set_statuses

View file

@ -3,12 +3,11 @@
class Api::V1::Emails::ConfirmationsController < Api::BaseController class Api::V1::Emails::ConfirmationsController < Api::BaseController
before_action :doorkeeper_authorize! before_action :doorkeeper_authorize!
before_action :require_user_owned_by_application! before_action :require_user_owned_by_application!
before_action :require_user_not_confirmed!
def create def create
if !current_user.confirmed? && current_user.unconfirmed_email.present?
current_user.update!(email: params[:email]) if params.key?(:email) current_user.update!(email: params[:email]) if params.key?(:email)
current_user.resend_confirmation_instructions current_user.resend_confirmation_instructions
end
render_empty render_empty
end end
@ -18,4 +17,8 @@ class Api::V1::Emails::ConfirmationsController < Api::BaseController
def require_user_owned_by_application! def require_user_owned_by_application!
render json: { error: 'This method is only available to the application the user originally signed-up with' }, status: :forbidden unless current_user && current_user.created_by_application_id == doorkeeper_token.application_id render json: { error: 'This method is only available to the application the user originally signed-up with' }, status: :forbidden unless current_user && current_user.created_by_application_id == doorkeeper_token.application_id
end end
def require_user_not_confirmed!
render json: { error: 'This method is only available while the e-mail is awaiting confirmation' }, status: :forbidden if current_user.confirmed? || current_user.unconfirmed_email.blank?
end
end end

View file

@ -5,7 +5,7 @@ import { Map as ImmutableMap } from 'immutable';
import { useEmoji } from 'flavours/glitch/actions/emojis'; import { useEmoji } from 'flavours/glitch/actions/emojis';
import React from 'react'; import React from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { defineMessages, injectIntl } from 'react-intl'; import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import { EmojiPicker as EmojiPickerAsync } from 'flavours/glitch/util/async-components'; import { EmojiPicker as EmojiPickerAsync } from 'flavours/glitch/util/async-components';
import Overlay from 'react-overlays/lib/Overlay'; import Overlay from 'react-overlays/lib/Overlay';
import classNames from 'classnames'; import classNames from 'classnames';
@ -18,7 +18,6 @@ import { assetHost } from 'flavours/glitch/util/config';
const messages = defineMessages({ const messages = defineMessages({
emoji: { id: 'emoji_button.label', defaultMessage: 'Insert emoji' }, emoji: { id: 'emoji_button.label', defaultMessage: 'Insert emoji' },
emoji_search: { id: 'emoji_button.search', defaultMessage: 'Search...' }, emoji_search: { id: 'emoji_button.search', defaultMessage: 'Search...' },
emoji_not_found: { id: 'emoji_button.not_found', defaultMessage: 'No emojos!! (╯°□°)╯︵ ┻━┻' },
custom: { id: 'emoji_button.custom', defaultMessage: 'Custom' }, custom: { id: 'emoji_button.custom', defaultMessage: 'Custom' },
recent: { id: 'emoji_button.recent', defaultMessage: 'Frequently used' }, recent: { id: 'emoji_button.recent', defaultMessage: 'Frequently used' },
search_results: { id: 'emoji_button.search_results', defaultMessage: 'Search results' }, search_results: { id: 'emoji_button.search_results', defaultMessage: 'Search results' },
@ -108,9 +107,26 @@ const mapDispatchToProps = (dispatch, { onPickEmoji }) => ({
let EmojiPicker, Emoji; // load asynchronously let EmojiPicker, Emoji; // load asynchronously
const backgroundImageFn = () => `${assetHost}/emoji/sheet_10.png`;
const listenerOptions = supportsPassiveEvents ? { passive: true } : false; const listenerOptions = supportsPassiveEvents ? { passive: true } : false;
const backgroundImageFn = () => `${assetHost}/emoji/sheet_13.png`;
const notFoundFn = () => (
<div className='emoji-mart-no-results'>
<Emoji
emoji='sleuth_or_spy'
set='twitter'
size={32}
sheetSize={32}
backgroundImageFn={backgroundImageFn}
/>
<div className='emoji-mart-no-results-label'>
<FormattedMessage id='emoji_button.not_found' defaultMessage='No matching emojis found' />
</div>
</div>
);
class ModifierPickerMenu extends React.PureComponent { class ModifierPickerMenu extends React.PureComponent {
static propTypes = { static propTypes = {
@ -262,7 +278,6 @@ class EmojiPickerMenu extends React.PureComponent {
return { return {
search: intl.formatMessage(messages.emoji_search), search: intl.formatMessage(messages.emoji_search),
notfound: intl.formatMessage(messages.emoji_not_found),
categories: { categories: {
search: intl.formatMessage(messages.search_results), search: intl.formatMessage(messages.search_results),
recent: intl.formatMessage(messages.recent), recent: intl.formatMessage(messages.recent),
@ -343,7 +358,9 @@ class EmojiPickerMenu extends React.PureComponent {
recent={frequentlyUsedEmojis} recent={frequentlyUsedEmojis}
skin={skinTone} skin={skinTone}
showPreview={false} showPreview={false}
showSkinTones={false}
backgroundImageFn={backgroundImageFn} backgroundImageFn={backgroundImageFn}
notFound={notFoundFn}
autoFocus autoFocus
emojiTooltip emojiTooltip
native={useSystemEmojiFont} native={useSystemEmojiFont}

View file

@ -48,6 +48,8 @@
overflow: hidden; overflow: hidden;
transition: color .1s ease-out; transition: color .1s ease-out;
cursor: pointer; cursor: pointer;
background: transparent;
border: 0;
&:hover { &:hover {
color: darken($lighter-text-color, 4%); color: darken($lighter-text-color, 4%);
@ -106,11 +108,13 @@
padding: 10px; padding: 10px;
padding-right: 45px; padding-right: 45px;
background: $simple-background-color; background: $simple-background-color;
position: relative;
input { input {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
padding: 7px 9px; padding: 7px 9px;
padding-right: 25px;
font-family: inherit; font-family: inherit;
display: block; display: block;
width: 100%; width: 100%;
@ -131,6 +135,30 @@
} }
} }
.emoji-mart-search-icon {
position: absolute;
top: 18px;
right: 45px + 5px;
z-index: 2;
padding: 2px 5px 1px;
border: 0;
background: none;
transition: all 100ms linear;
transition-property: opacity;
pointer-events: auto;
opacity: 0.7;
&:disabled {
cursor: default;
pointer-events: none;
opacity: 0.3;
}
svg {
fill: $action-button-color;
}
}
.emoji-mart-category .emoji-mart-emoji { .emoji-mart-category .emoji-mart-emoji {
cursor: pointer; cursor: pointer;
@ -169,9 +197,36 @@
} }
} }
/* For screenreaders only, via https://stackoverflow.com/a/19758620 */
.emoji-mart-sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
}
.emoji-mart-category-list {
margin: 0;
padding: 0;
}
.emoji-mart-category-list li {
list-style: none;
margin: 0;
padding: 0;
display: inline-block;
}
.emoji-mart-emoji { .emoji-mart-emoji {
position: relative; position: relative;
display: inline-block; display: inline-block;
background: transparent;
border: 0;
padding: 0;
font-size: 0; font-size: 0;
span { span {
@ -182,19 +237,17 @@
.emoji-mart-no-results { .emoji-mart-no-results {
font-size: 14px; font-size: 14px;
text-align: center;
padding-top: 70px;
color: $light-text-color; color: $light-text-color;
text-align: center;
.emoji-mart-category-label { padding: 5px 6px;
display: none; padding-top: 70px;
}
.emoji-mart-no-results-label { .emoji-mart-no-results-label {
margin-top: .2em; margin-top: .2em;
} }
.emoji-mart-emoji:hover::before { .emoji-mart-emoji:hover::before {
cursor: default;
content: none; content: none;
} }
} }

View file

@ -1,3 +1,5 @@
@use "sass:math";
.hero-widget { .hero-widget {
margin-bottom: 10px; margin-bottom: 10px;
box-shadow: 0 0 15px rgba($base-shadow-color, 0.2); box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
@ -489,10 +491,10 @@ $fluid-breakpoint: $maximum-width + 20px;
} }
&__item { &__item {
width: (960px - 20px) / 3; width: math.div(960px - 20px, 3);
@media screen and (max-width: $fluid-breakpoint) { @media screen and (max-width: $fluid-breakpoint) {
width: (940px - 20px) / 3; width: math.div(940px - 20px, 3);
} }
@media screen and (max-width: 640px) { @media screen and (max-width: 640px) {

View file

@ -10,27 +10,35 @@ const { unicodeToUnifiedName } = require('./unicode_to_unified_name');
const emojiMap = require('./emoji_map.json'); const emojiMap = require('./emoji_map.json');
const { emojiIndex } = require('emoji-mart'); const { emojiIndex } = require('emoji-mart');
const { uncompress: emojiMartUncompress } = require('emoji-mart/dist/utils/data'); const { uncompress: emojiMartUncompress } = require('emoji-mart/dist/utils/data');
let data = require('emoji-mart/data/all.json'); let data = require('emoji-mart/data/all.json');
if(data.compressed) { if(data.compressed) {
data = emojiMartUncompress(data); data = emojiMartUncompress(data);
} }
const emojiMartData = data; const emojiMartData = data;
const excluded = ['®', '©', '™']; const excluded = ['®', '©', '™'];
const skins = ['🏻', '🏼', '🏽', '🏾', '🏿']; const skinTones = ['🏻', '🏼', '🏽', '🏾', '🏿'];
const shortcodeMap = {}; const shortcodeMap = {};
const shortCodesToEmojiData = {}; const shortCodesToEmojiData = {};
const emojisWithoutShortCodes = []; const emojisWithoutShortCodes = [];
Object.keys(emojiIndex.emojis).forEach(key => { Object.keys(emojiIndex.emojis).forEach(key => {
shortcodeMap[emojiIndex.emojis[key].native] = emojiIndex.emojis[key].id; let emoji = emojiIndex.emojis[key];
// Emojis with skin tone modifiers are stored like this
if (Object.prototype.hasOwnProperty.call(emoji, '1')) {
emoji = emoji['1'];
}
shortcodeMap[emoji.native] = emoji.id;
}); });
const stripModifiers = unicode => { const stripModifiers = unicode => {
skins.forEach(tone => { skinTones.forEach(tone => {
unicode = unicode.replace(tone, ''); unicode = unicode.replace(tone, '');
}); });
@ -65,13 +73,22 @@ Object.keys(emojiMap).forEach(key => {
if (!Array.isArray(shortCodesToEmojiData[shortcode])) { if (!Array.isArray(shortCodesToEmojiData[shortcode])) {
shortCodesToEmojiData[shortcode] = [[]]; shortCodesToEmojiData[shortcode] = [[]];
} }
shortCodesToEmojiData[shortcode][0].push(filenameData); shortCodesToEmojiData[shortcode][0].push(filenameData);
} }
}); });
Object.keys(emojiIndex.emojis).forEach(key => { Object.keys(emojiIndex.emojis).forEach(key => {
const { native } = emojiIndex.emojis[key]; let emoji = emojiIndex.emojis[key];
// Emojis with skin tone modifiers are stored like this
if (Object.prototype.hasOwnProperty.call(emoji, '1')) {
emoji = emoji['1'];
}
const { native } = emoji;
let { short_names, search, unified } = emojiMartData.emojis[key]; let { short_names, search, unified } = emojiMartData.emojis[key];
if (short_names[0] !== key) { if (short_names[0] !== key) {
throw new Error('The compresser expects the first short_code to be the ' + throw new Error('The compresser expects the first short_code to be the ' +
'key. It may need to be rewritten if the emoji change such that this ' + 'key. It may need to be rewritten if the emoji change such that this ' +
@ -81,11 +98,16 @@ Object.keys(emojiIndex.emojis).forEach(key => {
short_names = short_names.slice(1); // first short name can be inferred from the key short_names = short_names.slice(1); // first short name can be inferred from the key
const searchData = [native, short_names, search]; const searchData = [native, short_names, search];
if (unicodeToUnifiedName(native) !== unified) { if (unicodeToUnifiedName(native) !== unified) {
// unified name can't be derived from unicodeToUnifiedName // unified name can't be derived from unicodeToUnifiedName
searchData.push(unified); searchData.push(unified);
} }
if (!Array.isArray(shortCodesToEmojiData[key])) {
shortCodesToEmojiData[key] = [[]];
}
shortCodesToEmojiData[key].push(searchData); shortCodesToEmojiData[key].push(searchData);
}); });

File diff suppressed because one or more lines are too long

View file

@ -2,16 +2,20 @@ function padLeft(str, num) {
while (str.length < num) { while (str.length < num) {
str = '0' + str; str = '0' + str;
} }
return str; return str;
} }
exports.unicodeToUnifiedName = (str) => { exports.unicodeToUnifiedName = (str) => {
let output = ''; let output = '';
for (let i = 0; i < str.length; i += 2) { for (let i = 0; i < str.length; i += 2) {
if (i > 0) { if (i > 0) {
output += '-'; output += '-';
} }
output += padLeft(str.codePointAt(i).toString(16).toUpperCase(), 4); output += padLeft(str.codePointAt(i).toString(16).toUpperCase(), 4);
} }
return output; return output;
}; };

View file

@ -1,6 +1,6 @@
import React from 'react'; import React from 'react';
import PropTypes from 'prop-types'; import PropTypes from 'prop-types';
import { defineMessages, injectIntl } from 'react-intl'; import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
import { EmojiPicker as EmojiPickerAsync } from '../../ui/util/async-components'; import { EmojiPicker as EmojiPickerAsync } from '../../ui/util/async-components';
import Overlay from 'react-overlays/lib/Overlay'; import Overlay from 'react-overlays/lib/Overlay';
import classNames from 'classnames'; import classNames from 'classnames';
@ -12,7 +12,6 @@ import { assetHost } from 'mastodon/utils/config';
const messages = defineMessages({ const messages = defineMessages({
emoji: { id: 'emoji_button.label', defaultMessage: 'Insert emoji' }, emoji: { id: 'emoji_button.label', defaultMessage: 'Insert emoji' },
emoji_search: { id: 'emoji_button.search', defaultMessage: 'Search...' }, emoji_search: { id: 'emoji_button.search', defaultMessage: 'Search...' },
emoji_not_found: { id: 'emoji_button.not_found', defaultMessage: 'No emojos!! (╯°□°)╯︵ ┻━┻' },
custom: { id: 'emoji_button.custom', defaultMessage: 'Custom' }, custom: { id: 'emoji_button.custom', defaultMessage: 'Custom' },
recent: { id: 'emoji_button.recent', defaultMessage: 'Frequently used' }, recent: { id: 'emoji_button.recent', defaultMessage: 'Frequently used' },
search_results: { id: 'emoji_button.search_results', defaultMessage: 'Search results' }, search_results: { id: 'emoji_button.search_results', defaultMessage: 'Search results' },
@ -28,9 +27,26 @@ const messages = defineMessages({
let EmojiPicker, Emoji; // load asynchronously let EmojiPicker, Emoji; // load asynchronously
const backgroundImageFn = () => `${assetHost}/emoji/sheet_10.png`;
const listenerOptions = supportsPassiveEvents ? { passive: true } : false; const listenerOptions = supportsPassiveEvents ? { passive: true } : false;
const backgroundImageFn = () => `${assetHost}/emoji/sheet_13.png`;
const notFoundFn = () => (
<div className='emoji-mart-no-results'>
<Emoji
emoji='sleuth_or_spy'
set='twitter'
size={32}
sheetSize={32}
backgroundImageFn={backgroundImageFn}
/>
<div className='emoji-mart-no-results-label'>
<FormattedMessage id='emoji_button.not_found' defaultMessage='No matching emojis found' />
</div>
</div>
);
class ModifierPickerMenu extends React.PureComponent { class ModifierPickerMenu extends React.PureComponent {
static propTypes = { static propTypes = {
@ -182,7 +198,6 @@ class EmojiPickerMenu extends React.PureComponent {
return { return {
search: intl.formatMessage(messages.emoji_search), search: intl.formatMessage(messages.emoji_search),
notfound: intl.formatMessage(messages.emoji_not_found),
categories: { categories: {
search: intl.formatMessage(messages.search_results), search: intl.formatMessage(messages.search_results),
recent: intl.formatMessage(messages.recent), recent: intl.formatMessage(messages.recent),
@ -263,7 +278,9 @@ class EmojiPickerMenu extends React.PureComponent {
recent={frequentlyUsedEmojis} recent={frequentlyUsedEmojis}
skin={skinTone} skin={skinTone}
showPreview={false} showPreview={false}
showSkinTones={false}
backgroundImageFn={backgroundImageFn} backgroundImageFn={backgroundImageFn}
notFound={notFoundFn}
autoFocus autoFocus
emojiTooltip emojiTooltip
/> />

View file

@ -10,26 +10,35 @@ const { unicodeToUnifiedName } = require('./unicode_to_unified_name');
const emojiMap = require('./emoji_map.json'); const emojiMap = require('./emoji_map.json');
const { emojiIndex } = require('emoji-mart'); const { emojiIndex } = require('emoji-mart');
const { uncompress: emojiMartUncompress } = require('emoji-mart/dist/utils/data'); const { uncompress: emojiMartUncompress } = require('emoji-mart/dist/utils/data');
let data = require('emoji-mart/data/all.json'); let data = require('emoji-mart/data/all.json');
if(data.compressed) { if(data.compressed) {
data = emojiMartUncompress(data); data = emojiMartUncompress(data);
} }
const emojiMartData = data; const emojiMartData = data;
const excluded = ['®', '©', '™']; const excluded = ['®', '©', '™'];
const skins = ['🏻', '🏼', '🏽', '🏾', '🏿']; const skinTones = ['🏻', '🏼', '🏽', '🏾', '🏿'];
const shortcodeMap = {}; const shortcodeMap = {};
const shortCodesToEmojiData = {}; const shortCodesToEmojiData = {};
const emojisWithoutShortCodes = []; const emojisWithoutShortCodes = [];
Object.keys(emojiIndex.emojis).forEach(key => { Object.keys(emojiIndex.emojis).forEach(key => {
shortcodeMap[emojiIndex.emojis[key].native] = emojiIndex.emojis[key].id; let emoji = emojiIndex.emojis[key];
// Emojis with skin tone modifiers are stored like this
if (Object.prototype.hasOwnProperty.call(emoji, '1')) {
emoji = emoji['1'];
}
shortcodeMap[emoji.native] = emoji.id;
}); });
const stripModifiers = unicode => { const stripModifiers = unicode => {
skins.forEach(tone => { skinTones.forEach(tone => {
unicode = unicode.replace(tone, ''); unicode = unicode.replace(tone, '');
}); });
@ -64,13 +73,22 @@ Object.keys(emojiMap).forEach(key => {
if (!Array.isArray(shortCodesToEmojiData[shortcode])) { if (!Array.isArray(shortCodesToEmojiData[shortcode])) {
shortCodesToEmojiData[shortcode] = [[]]; shortCodesToEmojiData[shortcode] = [[]];
} }
shortCodesToEmojiData[shortcode][0].push(filenameData); shortCodesToEmojiData[shortcode][0].push(filenameData);
} }
}); });
Object.keys(emojiIndex.emojis).forEach(key => { Object.keys(emojiIndex.emojis).forEach(key => {
const { native } = emojiIndex.emojis[key]; let emoji = emojiIndex.emojis[key];
// Emojis with skin tone modifiers are stored like this
if (Object.prototype.hasOwnProperty.call(emoji, '1')) {
emoji = emoji['1'];
}
const { native } = emoji;
let { short_names, search, unified } = emojiMartData.emojis[key]; let { short_names, search, unified } = emojiMartData.emojis[key];
if (short_names[0] !== key) { if (short_names[0] !== key) {
throw new Error('The compresser expects the first short_code to be the ' + throw new Error('The compresser expects the first short_code to be the ' +
'key. It may need to be rewritten if the emoji change such that this ' + 'key. It may need to be rewritten if the emoji change such that this ' +
@ -80,11 +98,16 @@ Object.keys(emojiIndex.emojis).forEach(key => {
short_names = short_names.slice(1); // first short name can be inferred from the key short_names = short_names.slice(1); // first short name can be inferred from the key
const searchData = [native, short_names, search]; const searchData = [native, short_names, search];
if (unicodeToUnifiedName(native) !== unified) { if (unicodeToUnifiedName(native) !== unified) {
// unified name can't be derived from unicodeToUnifiedName // unified name can't be derived from unicodeToUnifiedName
searchData.push(unified); searchData.push(unified);
} }
if (!Array.isArray(shortCodesToEmojiData[key])) {
shortCodesToEmojiData[key] = [[]];
}
shortCodesToEmojiData[key].push(searchData); shortCodesToEmojiData[key].push(searchData);
}); });

File diff suppressed because one or more lines are too long

View file

@ -2,16 +2,20 @@ function padLeft(str, num) {
while (str.length < num) { while (str.length < num) {
str = '0' + str; str = '0' + str;
} }
return str; return str;
} }
exports.unicodeToUnifiedName = (str) => { exports.unicodeToUnifiedName = (str) => {
let output = ''; let output = '';
for (let i = 0; i < str.length; i += 2) { for (let i = 0; i < str.length; i += 2) {
if (i > 0) { if (i > 0) {
output += '-'; output += '-';
} }
output += padLeft(str.codePointAt(i).toString(16).toUpperCase(), 4); output += padLeft(str.codePointAt(i).toString(16).toUpperCase(), 4);
} }
return output; return output;
}; };

View file

@ -142,7 +142,7 @@
"emoji_button.food": "Food & Drink", "emoji_button.food": "Food & Drink",
"emoji_button.label": "Insert emoji", "emoji_button.label": "Insert emoji",
"emoji_button.nature": "Nature", "emoji_button.nature": "Nature",
"emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻", "emoji_button.not_found": "No matching emojis found",
"emoji_button.objects": "Objects", "emoji_button.objects": "Objects",
"emoji_button.people": "People", "emoji_button.people": "People",
"emoji_button.recent": "Frequently used", "emoji_button.recent": "Frequently used",

View file

@ -1074,10 +1074,6 @@
"defaultMessage": "Search...", "defaultMessage": "Search...",
"id": "emoji_button.search" "id": "emoji_button.search"
}, },
{
"defaultMessage": "No emojos!! (╯°□°)╯︵ ┻━┻",
"id": "emoji_button.not_found"
},
{ {
"defaultMessage": "Custom", "defaultMessage": "Custom",
"id": "emoji_button.custom" "id": "emoji_button.custom"
@ -1121,6 +1117,10 @@
{ {
"defaultMessage": "Flags", "defaultMessage": "Flags",
"id": "emoji_button.flags" "id": "emoji_button.flags"
},
{
"defaultMessage": "No matching emojis found",
"id": "emoji_button.not_found"
} }
], ],
"path": "app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.json" "path": "app/javascript/mastodon/features/compose/components/emoji_picker_dropdown.json"

View file

@ -146,7 +146,7 @@
"emoji_button.food": "Food & Drink", "emoji_button.food": "Food & Drink",
"emoji_button.label": "Insert emoji", "emoji_button.label": "Insert emoji",
"emoji_button.nature": "Nature", "emoji_button.nature": "Nature",
"emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻", "emoji_button.not_found": "No matching emojis found",
"emoji_button.objects": "Objects", "emoji_button.objects": "Objects",
"emoji_button.people": "People", "emoji_button.people": "People",
"emoji_button.recent": "Frequently used", "emoji_button.recent": "Frequently used",

View file

@ -142,7 +142,7 @@
"emoji_button.food": "Comida y bebida", "emoji_button.food": "Comida y bebida",
"emoji_button.label": "Insertar emoji", "emoji_button.label": "Insertar emoji",
"emoji_button.nature": "Naturaleza", "emoji_button.nature": "Naturaleza",
"emoji_button.not_found": "¡¡No emojos!! (╯°□°)╯︵ ┻━┻", "emoji_button.not_found": "No se encontraron emojis coincidentes",
"emoji_button.objects": "Objetos", "emoji_button.objects": "Objetos",
"emoji_button.people": "Gente", "emoji_button.people": "Gente",
"emoji_button.recent": "Usados frecuentemente", "emoji_button.recent": "Usados frecuentemente",

View file

@ -102,8 +102,8 @@
"compose_form.sensitive.hide": "{count, plural, one {Cuir comharra gu bheil am meadhan frionasach} two {Cuir comharra gu bheil na meadhanan frionasach} few {Cuir comharra gu bheil na meadhanan frionasach} other {Cuir comharra gu bheil na meadhanan frionasach}}", "compose_form.sensitive.hide": "{count, plural, one {Cuir comharra gu bheil am meadhan frionasach} two {Cuir comharra gu bheil na meadhanan frionasach} few {Cuir comharra gu bheil na meadhanan frionasach} other {Cuir comharra gu bheil na meadhanan frionasach}}",
"compose_form.sensitive.marked": "{count, plural, one {Tha comharra ris a mheadhan gu bheil e frionasach} two {Tha comharra ris na meadhanan gu bheil iad frionasach} few {Tha comharra ris na meadhanan gu bheil iad frionasach} other {Tha comharra ris na meadhanan gu bheil iad frionasach}}", "compose_form.sensitive.marked": "{count, plural, one {Tha comharra ris a mheadhan gu bheil e frionasach} two {Tha comharra ris na meadhanan gu bheil iad frionasach} few {Tha comharra ris na meadhanan gu bheil iad frionasach} other {Tha comharra ris na meadhanan gu bheil iad frionasach}}",
"compose_form.sensitive.unmarked": "{count, plural, one {Chan eil comharra ris a mheadhan gun robh e frionasach} two {Chan eil comharra ris na meadhanan gun robh iad frionasach} few {Chan eil comharra ris na meadhanan gun robh iad frionasach} other {Chan eil comharra ris na meadhanan gun robh iad frionasach}}", "compose_form.sensitive.unmarked": "{count, plural, one {Chan eil comharra ris a mheadhan gun robh e frionasach} two {Chan eil comharra ris na meadhanan gun robh iad frionasach} few {Chan eil comharra ris na meadhanan gun robh iad frionasach} other {Chan eil comharra ris na meadhanan gun robh iad frionasach}}",
"compose_form.spoiler.marked": "Tha an teacsa falaichte air cùlaibh rabhaidh", "compose_form.spoiler.marked": "Thoir air falbh an rabhadh susbainte",
"compose_form.spoiler.unmarked": "Chan eil an teacsa flaichte", "compose_form.spoiler.unmarked": "Cuir rabhadh susbainte ris",
"compose_form.spoiler_placeholder": "Sgrìobh an rabhadh agad an-seo", "compose_form.spoiler_placeholder": "Sgrìobh an rabhadh agad an-seo",
"confirmation_modal.cancel": "Sguir dheth", "confirmation_modal.cancel": "Sguir dheth",
"confirmations.block.block_and_report": "Bac ⁊ dèan gearan", "confirmations.block.block_and_report": "Bac ⁊ dèan gearan",
@ -142,7 +142,7 @@
"emoji_button.food": "Biadh ⁊ deoch", "emoji_button.food": "Biadh ⁊ deoch",
"emoji_button.label": "Cuir a-steach Emoji", "emoji_button.label": "Cuir a-steach Emoji",
"emoji_button.nature": "An nàdar", "emoji_button.nature": "An nàdar",
"emoji_button.not_found": "Chan eil Emoji gnàthaichte ann!! (╯°□°)╯︵ ┻━┻", "emoji_button.not_found": "Cha deach Emoji iomchaidh a lorg",
"emoji_button.objects": "Nithean", "emoji_button.objects": "Nithean",
"emoji_button.people": "Daoine", "emoji_button.people": "Daoine",
"emoji_button.recent": "Air a chleachdadh o chionn ghoirid", "emoji_button.recent": "Air a chleachdadh o chionn ghoirid",
@ -163,12 +163,12 @@
"empty_column.follow_recommendations": "Chan urrainn dhuinn dad a mholadh dhut. Cleachd gleus an luirg feuch an lorg thu daoine air a bheil thu eòlach no rùraich na tagaichean-hais a tha a treandadh.", "empty_column.follow_recommendations": "Chan urrainn dhuinn dad a mholadh dhut. Cleachd gleus an luirg feuch an lorg thu daoine air a bheil thu eòlach no rùraich na tagaichean-hais a tha a treandadh.",
"empty_column.follow_requests": "Chan eil iarrtas air leantainn agad fhathast. Nuair gheibh thu fear, nochdaidh e an-seo.", "empty_column.follow_requests": "Chan eil iarrtas air leantainn agad fhathast. Nuair gheibh thu fear, nochdaidh e an-seo.",
"empty_column.hashtag": "Chan eil dad san taga hais seo fhathast.", "empty_column.hashtag": "Chan eil dad san taga hais seo fhathast.",
"empty_column.home": "Tha an loidhne-ama dachaigh agad falamh! Tadhail air {public} no dèan lorg airson toiseach-tòiseachaidh a dhèanamh is tachairt ri càch.", "empty_column.home": "Tha an loidhne-ama dachaigh agad falamh! Lean air barrachd dhaoine gus a lìonadh. {suggestions}",
"empty_column.home.suggestions": "Faic moladh no dhà", "empty_column.home.suggestions": "Faic moladh no dhà",
"empty_column.list": "Chan eil dad air an liosta seo fhathast. Nuair a phostaicheas buill a tha air an liosta seo postaichean ùra, nochdaidh iad an-seo.", "empty_column.list": "Chan eil dad air an liosta seo fhathast. Nuair a phostaicheas buill a tha air an liosta seo postaichean ùra, nochdaidh iad an-seo.",
"empty_column.lists": "Chan eil liosta agad fhathast. Nuair chruthaicheas tu tè, nochdaidh i an-seo.", "empty_column.lists": "Chan eil liosta agad fhathast. Nuair chruthaicheas tu tè, nochdaidh i an-seo.",
"empty_column.mutes": "Cha do mhùch thu cleachdaiche sam bith fhathast.", "empty_column.mutes": "Cha do mhùch thu cleachdaiche sam bith fhathast.",
"empty_column.notifications": "Cha d fhuair thu brath sam bith fhathast. Dèan eadar-ghnìomh le càch airson tòiseachadh air còmhradh.", "empty_column.notifications": "Cha d fhuair thu brath sam bith fhathast. Nuair a ghabhas càch eadar-ghnìomh leat, chì thu an-seo e.",
"empty_column.public": "Chan eil dad an-seo! Sgrìobh rudeigin gu poblach no lean air càch o fhrithealaichean eile a làimh airson seo a lìonadh", "empty_column.public": "Chan eil dad an-seo! Sgrìobh rudeigin gu poblach no lean air càch o fhrithealaichean eile a làimh airson seo a lìonadh",
"error.unexpected_crash.explanation": "Air sàilleibh buga sa chòd againn no duilgheadas co-chòrdalachd leis a bhrabhsair, chan urrainn dhuinn an duilleag seo a shealltainn mar bu chòir.", "error.unexpected_crash.explanation": "Air sàilleibh buga sa chòd againn no duilgheadas co-chòrdalachd leis a bhrabhsair, chan urrainn dhuinn an duilleag seo a shealltainn mar bu chòir.",
"error.unexpected_crash.explanation_addons": "Cha b urrainn dhuinn an duilleag seo a shealltainn mar bu chòir. Tha sinn an dùil gu do dhadhbharaich tuilleadan a bhrabhsair no inneal eadar-theangachaidh fèin-obrachail a mhearachd.", "error.unexpected_crash.explanation_addons": "Cha b urrainn dhuinn an duilleag seo a shealltainn mar bu chòir. Tha sinn an dùil gu do dhadhbharaich tuilleadan a bhrabhsair no inneal eadar-theangachaidh fèin-obrachail a mhearachd.",
@ -208,40 +208,40 @@
"intervals.full.days": "{number, plural, one {# latha} two {# latha} few {# làithean} other {# latha}}", "intervals.full.days": "{number, plural, one {# latha} two {# latha} few {# làithean} other {# latha}}",
"intervals.full.hours": "{number, plural, one {# uair a thìde} two {# uair a thìde} few {# uairean a thìde} other {# uair a thìde}}", "intervals.full.hours": "{number, plural, one {# uair a thìde} two {# uair a thìde} few {# uairean a thìde} other {# uair a thìde}}",
"intervals.full.minutes": "{number, plural, one {# mhionaid} two {# mhionaid} few {# mionaidean} other {# mionaid}}", "intervals.full.minutes": "{number, plural, one {# mhionaid} two {# mhionaid} few {# mionaidean} other {# mionaid}}",
"keyboard_shortcuts.back": "a sheòladh air ais", "keyboard_shortcuts.back": "Seòl air ais",
"keyboard_shortcuts.blocked": "a dhfhosgladh liosta nan cleachdaichean bacte", "keyboard_shortcuts.blocked": "Fosgail liosta nan cleachdaichean bacte",
"keyboard_shortcuts.boost": "ga bhrosnachadh", "keyboard_shortcuts.boost": "Brosnaich post",
"keyboard_shortcuts.column": "a chur am fòcas air post air fear dhe na colbhan", "keyboard_shortcuts.column": "Cuir am fòcas air colbh",
"keyboard_shortcuts.compose": "a chur am fòcas air raon teacsa an sgrìobhaidh", "keyboard_shortcuts.compose": "Cuir am fòcas air raon teacsa an sgrìobhaidh",
"keyboard_shortcuts.description": "Tuairisgeul", "keyboard_shortcuts.description": "Tuairisgeul",
"keyboard_shortcuts.direct": "a dhfhosgladh colbh nan teachdaireachdan dìreach", "keyboard_shortcuts.direct": "Fosgail colbh nan teachdaireachdan dìreach",
"keyboard_shortcuts.down": "a ghluasad sìos air an liosta", "keyboard_shortcuts.down": "Gluais sìos air an liosta",
"keyboard_shortcuts.enter": "a dhfhosgladh a phuist", "keyboard_shortcuts.enter": "Fosgail post",
"keyboard_shortcuts.favourite": "ga chur ris na h-annsachdan", "keyboard_shortcuts.favourite": "Cuir post ris na h-annsachdan",
"keyboard_shortcuts.favourites": "a dhfhosgladh liosta nan annsachdan", "keyboard_shortcuts.favourites": "Fosgail liosta nan annsachdan",
"keyboard_shortcuts.federated": "a dhfhosgladh na loidhne-ama co-naisgte", "keyboard_shortcuts.federated": "Fosgail an loidhne-ama cho-naisgte",
"keyboard_shortcuts.heading": "Ath-ghoiridean a mheur-chlàir", "keyboard_shortcuts.heading": "Ath-ghoiridean a mheur-chlàir",
"keyboard_shortcuts.home": "a dhfhosgladh loidhne-ama na dachaigh", "keyboard_shortcuts.home": "Fosgail loidhne-ama na dachaigh",
"keyboard_shortcuts.hotkey": "Grad-iuchair", "keyboard_shortcuts.hotkey": "Grad-iuchair",
"keyboard_shortcuts.legend": "a shealltainn a chlàir-mhìneachaidh seo", "keyboard_shortcuts.legend": "Seall an clàr-mìneachaidh seo",
"keyboard_shortcuts.local": "a dhfhosgladh na loidhne-ama ionadail", "keyboard_shortcuts.local": "Fosgail an loidhne-ama ionadail",
"keyboard_shortcuts.mention": "a thoirt iomradh dhan ùghdar", "keyboard_shortcuts.mention": "Thoir iomradh dhan ùghdar",
"keyboard_shortcuts.muted": "a dhfhosgladh liosta nan cleachdaichean mùchte", "keyboard_shortcuts.muted": "Fosgail liosta nan cleachdaichean mùchte",
"keyboard_shortcuts.my_profile": "a dhfhosgladh na pròifil agad", "keyboard_shortcuts.my_profile": "Fosgail a phròifil agad",
"keyboard_shortcuts.notifications": "a dhfhosgladh colbh nam brathan", "keyboard_shortcuts.notifications": "Fosgail colbh nam brathan",
"keyboard_shortcuts.open_media": "a dhfhosgladh nam meadhanan", "keyboard_shortcuts.open_media": "Fosgail meadhan",
"keyboard_shortcuts.pinned": "a dhfhosgladh liosta na postaichean prìnichte", "keyboard_shortcuts.pinned": "Fosgail liosta nam postaichean prìnichte",
"keyboard_shortcuts.profile": "a dhfhosgladh pròifil an ùghdair", "keyboard_shortcuts.profile": "Fosgail pròifil an ùghdair",
"keyboard_shortcuts.reply": "a fhreagairt", "keyboard_shortcuts.reply": "Freagair do phost",
"keyboard_shortcuts.requests": "a dhfhosgladh liosta nan iarrtasan leantainn", "keyboard_shortcuts.requests": "Fosgail liosta nan iarrtasan leantainn",
"keyboard_shortcuts.search": "a chur am fòcas air a lorg", "keyboard_shortcuts.search": "Cuir am fòcas air a bhàr-luirg",
"keyboard_shortcuts.spoilers": "a shealltainn/fhalach raon an rabhaidh susbainte", "keyboard_shortcuts.spoilers": "Seall/Falaich raon an rabhaidh susbainte",
"keyboard_shortcuts.start": "a dhfhosgladh colbh “dèan toiseach-tòiseachaidh”", "keyboard_shortcuts.start": "Fosgail an colbh “dèan toiseach-tòiseachaidh”",
"keyboard_shortcuts.toggle_hidden": "a shealltainn/fhalach teacsa fo rabhadh susbainte", "keyboard_shortcuts.toggle_hidden": "Seall/Falaich an teacsa fo rabhadh susbainte",
"keyboard_shortcuts.toggle_sensitivity": "a shealltainn/fhalach meadhanan", "keyboard_shortcuts.toggle_sensitivity": "Seall/Falaich na meadhanan",
"keyboard_shortcuts.toot": "a thòiseachadh air post ùr", "keyboard_shortcuts.toot": "Tòisich air post ùr",
"keyboard_shortcuts.unfocus": "a thoirt am fòcas far raon teacsa an sgrìobhaidh/an luirg", "keyboard_shortcuts.unfocus": "Thoir am fòcas far raon teacsa an sgrìobhaidh/an luirg",
"keyboard_shortcuts.up": "a ghluasad suas air an liosta", "keyboard_shortcuts.up": "Gluais suas air an liosta",
"lightbox.close": "Dùin", "lightbox.close": "Dùin",
"lightbox.compress": "Co-theannaich bogsa sealladh an deilbh", "lightbox.compress": "Co-theannaich bogsa sealladh an deilbh",
"lightbox.expand": "Leudaich bogsa sealladh an deilbh", "lightbox.expand": "Leudaich bogsa sealladh an deilbh",
@ -262,7 +262,7 @@
"lists.subheading": "Na liostaichean agad", "lists.subheading": "Na liostaichean agad",
"load_pending": "{count, plural, one {# nì ùr} two {# nì ùr} few {# nithean ùra} other {# nì ùr}}", "load_pending": "{count, plural, one {# nì ùr} two {# nì ùr} few {# nithean ùra} other {# nì ùr}}",
"loading_indicator.label": "Ga luchdadh…", "loading_indicator.label": "Ga luchdadh…",
"media_gallery.toggle_visible": "Falaich {number, plural, 1 {an dealbh} one {na dealbhan} two {na dealbhan} few {na dealbhan} other {na dealbhan}}", "media_gallery.toggle_visible": "{number, plural, 1 {Falaich an dealbh} one {Falaich na dealbhan} two {Falaich na dealbhan} few {Falaich na dealbhan} other {Falaich na dealbhan}}",
"missing_indicator.label": "Cha deach càil a lorg", "missing_indicator.label": "Cha deach càil a lorg",
"missing_indicator.sublabel": "Cha deach an goireas a lorg", "missing_indicator.sublabel": "Cha deach an goireas a lorg",
"mute_modal.duration": "Faide", "mute_modal.duration": "Faide",

View file

@ -142,7 +142,7 @@
"emoji_button.food": "Food & Drink", "emoji_button.food": "Food & Drink",
"emoji_button.label": "Insertar emoji", "emoji_button.label": "Insertar emoji",
"emoji_button.nature": "Nature", "emoji_button.nature": "Nature",
"emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻", "emoji_button.not_found": "No matching emojis found",
"emoji_button.objects": "Objects", "emoji_button.objects": "Objects",
"emoji_button.people": "People", "emoji_button.people": "People",
"emoji_button.recent": "Frequently used", "emoji_button.recent": "Frequently used",

View file

@ -142,7 +142,7 @@
"emoji_button.food": "Food & Drink", "emoji_button.food": "Food & Drink",
"emoji_button.label": "Insert emoji", "emoji_button.label": "Insert emoji",
"emoji_button.nature": "Nature", "emoji_button.nature": "Nature",
"emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻", "emoji_button.not_found": "No matching emojis found",
"emoji_button.objects": "Objects", "emoji_button.objects": "Objects",
"emoji_button.people": "People", "emoji_button.people": "People",
"emoji_button.recent": "Frequently used", "emoji_button.recent": "Frequently used",

View file

@ -85,9 +85,9 @@
"community.column_settings.local_only": "로컬만", "community.column_settings.local_only": "로컬만",
"community.column_settings.media_only": "미디어만", "community.column_settings.media_only": "미디어만",
"community.column_settings.remote_only": "원격만", "community.column_settings.remote_only": "원격만",
"compose_form.direct_message_warning": "이 은 멘션 된 유저들에게만 보여집니다.", "compose_form.direct_message_warning": "이 게시물은 멘션 된 유저들에게만 보여집니다.",
"compose_form.direct_message_warning_learn_more": "더 알아보기", "compose_form.direct_message_warning_learn_more": "더 알아보기",
"compose_form.hashtag_warning": "이 툿은 어떤 해시태그로도 검색 되지 않습니다. 전체공개로 게시 된 툿만이 해시태그로 검색 될 수 있습니다.", "compose_form.hashtag_warning": "이 게시물은 어떤 해시태그로도 검색 되지 않습니다. 전체공개로 게시 된 게시물만이 해시태그로 검색 될 수 있습니다.",
"compose_form.lock_disclaimer": "이 계정은 {locked}로 설정 되어 있지 않습니다. 누구나 이 계정을 팔로우 할 수 있으며, 팔로워 공개의 포스팅을 볼 수 있습니다.", "compose_form.lock_disclaimer": "이 계정은 {locked}로 설정 되어 있지 않습니다. 누구나 이 계정을 팔로우 할 수 있으며, 팔로워 공개의 포스팅을 볼 수 있습니다.",
"compose_form.lock_disclaimer.lock": "비공개", "compose_form.lock_disclaimer.lock": "비공개",
"compose_form.placeholder": "지금 무엇을 하고 있나요?", "compose_form.placeholder": "지금 무엇을 하고 있나요?",

View file

@ -1,8 +1,8 @@
{ {
"account.account_note_header": "Note", "account.account_note_header": "Pastaba",
"account.add_or_remove_from_list": "Add or Remove from lists", "account.add_or_remove_from_list": "Add or Remove from lists",
"account.badges.bot": "Bot", "account.badges.bot": "Bot",
"account.badges.group": "Group", "account.badges.group": "Grupė",
"account.block": "Block @{name}", "account.block": "Block @{name}",
"account.block_domain": "Hide everything from {domain}", "account.block_domain": "Hide everything from {domain}",
"account.blocked": "Blocked", "account.blocked": "Blocked",
@ -14,7 +14,7 @@
"account.edit_profile": "Edit profile", "account.edit_profile": "Edit profile",
"account.enable_notifications": "Notify me when @{name} posts", "account.enable_notifications": "Notify me when @{name} posts",
"account.endorse": "Feature on profile", "account.endorse": "Feature on profile",
"account.follow": "Follow", "account.follow": "Sekti",
"account.followers": "Followers", "account.followers": "Followers",
"account.followers.empty": "No one follows this user yet.", "account.followers.empty": "No one follows this user yet.",
"account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}", "account.followers_counter": "{count, plural, one {{counter} Follower} other {{counter} Followers}}",
@ -31,8 +31,8 @@
"account.moved_to": "{name} has moved to:", "account.moved_to": "{name} has moved to:",
"account.mute": "Mute @{name}", "account.mute": "Mute @{name}",
"account.mute_notifications": "Mute notifications from @{name}", "account.mute_notifications": "Mute notifications from @{name}",
"account.muted": "Muted", "account.muted": "Užtildytas",
"account.never_active": "Never", "account.never_active": "Niekada",
"account.posts": "Toots", "account.posts": "Toots",
"account.posts_with_replies": "Toots and replies", "account.posts_with_replies": "Toots and replies",
"account.report": "Report @{name}", "account.report": "Report @{name}",
@ -43,20 +43,20 @@
"account.unblock": "Unblock @{name}", "account.unblock": "Unblock @{name}",
"account.unblock_domain": "Unhide {domain}", "account.unblock_domain": "Unhide {domain}",
"account.unendorse": "Don't feature on profile", "account.unendorse": "Don't feature on profile",
"account.unfollow": "Unfollow", "account.unfollow": "Nebesekti",
"account.unmute": "Unmute @{name}", "account.unmute": "Unmute @{name}",
"account.unmute_notifications": "Unmute notifications from @{name}", "account.unmute_notifications": "Unmute notifications from @{name}",
"account_note.placeholder": "Click to add a note", "account_note.placeholder": "Click to add a note",
"alert.rate_limited.message": "Please retry after {retry_time, time, medium}.", "alert.rate_limited.message": "Please retry after {retry_time, time, medium}.",
"alert.rate_limited.title": "Rate limited", "alert.rate_limited.title": "Rate limited",
"alert.unexpected.message": "An unexpected error occurred.", "alert.unexpected.message": "An unexpected error occurred.",
"alert.unexpected.title": "Oops!", "alert.unexpected.title": "Oi!",
"announcement.announcement": "Announcement", "announcement.announcement": "Announcement",
"autosuggest_hashtag.per_week": "{count} per week", "autosuggest_hashtag.per_week": "{count} per week",
"boost_modal.combo": "You can press {combo} to skip this next time", "boost_modal.combo": "You can press {combo} to skip this next time",
"bundle_column_error.body": "Something went wrong while loading this component.", "bundle_column_error.body": "Something went wrong while loading this component.",
"bundle_column_error.retry": "Try again", "bundle_column_error.retry": "Try again",
"bundle_column_error.title": "Network error", "bundle_column_error.title": "Tinklo klaida",
"bundle_modal_error.close": "Close", "bundle_modal_error.close": "Close",
"bundle_modal_error.message": "Something went wrong while loading this component.", "bundle_modal_error.message": "Something went wrong while loading this component.",
"bundle_modal_error.retry": "Try again", "bundle_modal_error.retry": "Try again",
@ -66,22 +66,22 @@
"column.direct": "Direct messages", "column.direct": "Direct messages",
"column.directory": "Browse profiles", "column.directory": "Browse profiles",
"column.domain_blocks": "Hidden domains", "column.domain_blocks": "Hidden domains",
"column.favourites": "Favourites", "column.favourites": "Mėgstamiausi",
"column.follow_requests": "Follow requests", "column.follow_requests": "Follow requests",
"column.home": "Home", "column.home": "Home",
"column.lists": "Lists", "column.lists": "Sąrašai",
"column.mutes": "Muted users", "column.mutes": "Užtildyti vartotojai",
"column.notifications": "Notifications", "column.notifications": "Notifications",
"column.pins": "Pinned toot", "column.pins": "Pinned toot",
"column.public": "Federated timeline", "column.public": "Federated timeline",
"column_back_button.label": "Back", "column_back_button.label": "Atgal",
"column_header.hide_settings": "Hide settings", "column_header.hide_settings": "Slėpti nustatymus",
"column_header.moveLeft_settings": "Move column to the left", "column_header.moveLeft_settings": "Move column to the left",
"column_header.moveRight_settings": "Move column to the right", "column_header.moveRight_settings": "Move column to the right",
"column_header.pin": "Pin", "column_header.pin": "Prisegti",
"column_header.show_settings": "Show settings", "column_header.show_settings": "Rodyti nustatymus",
"column_header.unpin": "Unpin", "column_header.unpin": "Atsegti",
"column_subheading.settings": "Settings", "column_subheading.settings": "Nustatymai",
"community.column_settings.local_only": "Local only", "community.column_settings.local_only": "Local only",
"community.column_settings.media_only": "Media only", "community.column_settings.media_only": "Media only",
"community.column_settings.remote_only": "Remote only", "community.column_settings.remote_only": "Remote only",
@ -142,7 +142,7 @@
"emoji_button.food": "Food & Drink", "emoji_button.food": "Food & Drink",
"emoji_button.label": "Insert emoji", "emoji_button.label": "Insert emoji",
"emoji_button.nature": "Nature", "emoji_button.nature": "Nature",
"emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻", "emoji_button.not_found": "No matching emojis found",
"emoji_button.objects": "Objects", "emoji_button.objects": "Objects",
"emoji_button.people": "People", "emoji_button.people": "People",
"emoji_button.recent": "Frequently used", "emoji_button.recent": "Frequently used",

View file

@ -142,7 +142,7 @@
"emoji_button.food": "Храна &amp; Пијалаци", "emoji_button.food": "Храна &amp; Пијалаци",
"emoji_button.label": "Insert emoji", "emoji_button.label": "Insert emoji",
"emoji_button.nature": "Природа", "emoji_button.nature": "Природа",
"emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻", "emoji_button.not_found": "No matching emojis found",
"emoji_button.objects": "Објекти", "emoji_button.objects": "Објекти",
"emoji_button.people": "Луѓе", "emoji_button.people": "Луѓе",
"emoji_button.recent": "Најчесто користени", "emoji_button.recent": "Најчесто користени",

View file

@ -22,7 +22,7 @@
"account.follows.empty": "ഈ ഉപയോക്താവ് ആരേയും ഇതുവരെ പിന്തുടരുന്നില്ല.", "account.follows.empty": "ഈ ഉപയോക്താവ് ആരേയും ഇതുവരെ പിന്തുടരുന്നില്ല.",
"account.follows_you": "നിങ്ങളെ പിന്തുടരുന്നു", "account.follows_you": "നിങ്ങളെ പിന്തുടരുന്നു",
"account.hide_reblogs": "@{name} ബൂസ്റ്റ് ചെയ്തവ മറയ്കുക", "account.hide_reblogs": "@{name} ബൂസ്റ്റ് ചെയ്തവ മറയ്കുക",
"account.joined": "Joined {date}", "account.joined": "{date} ൽ ചേർന്നു",
"account.last_status": "അവസാനം കണ്ടത്", "account.last_status": "അവസാനം കണ്ടത്",
"account.link_verified_on": "ഈ ലിങ്കിന്റെ ഉടമസ്തത {date} ഇൽ ഉറപ്പാക്കിയതാണ്", "account.link_verified_on": "ഈ ലിങ്കിന്റെ ഉടമസ്തത {date} ഇൽ ഉറപ്പാക്കിയതാണ്",
"account.locked_info": "ഈ അംഗത്വത്തിന്റെ സ്വകാര്യതാ നിലപാട് അനുസരിച്ച് പിന്തുടരുന്നവരെ തിരഞ്ഞെടുക്കാനുള്ള വിവേചനാധികാരം ഉടമസ്ഥനിൽ നിഷിപ്തമായിരിക്കുന്നു.", "account.locked_info": "ഈ അംഗത്വത്തിന്റെ സ്വകാര്യതാ നിലപാട് അനുസരിച്ച് പിന്തുടരുന്നവരെ തിരഞ്ഞെടുക്കാനുള്ള വിവേചനാധികാരം ഉടമസ്ഥനിൽ നിഷിപ്തമായിരിക്കുന്നു.",
@ -33,8 +33,8 @@
"account.mute_notifications": "@{name} യിൽ നിന്നുള്ള അറിയിപ്പുകൾ നിശബ്ദമാക്കുക", "account.mute_notifications": "@{name} യിൽ നിന്നുള്ള അറിയിപ്പുകൾ നിശബ്ദമാക്കുക",
"account.muted": "നിശ്ശബ്ദമാക്കിയിരിക്കുന്നു", "account.muted": "നിശ്ശബ്ദമാക്കിയിരിക്കുന്നു",
"account.never_active": "ഒരിക്കലും ഇല്ല", "account.never_active": "ഒരിക്കലും ഇല്ല",
"account.posts": "ടൂട്ടുകൾ", "account.posts": "പോസ്റ്റുകൾ",
"account.posts_with_replies": "ടൂട്ടുകളും മറുപടികളും", "account.posts_with_replies": "പോസ്റ്റുകളും മറുപടികളും",
"account.report": "റിപ്പോർട്ട് ചെയ്യുക @{name}", "account.report": "റിപ്പോർട്ട് ചെയ്യുക @{name}",
"account.requested": "അനുവാദത്തിനായി കാത്തിരിക്കുന്നു. പിന്തുടരാനുള്ള അപേക്ഷ റദ്ദാക്കുവാൻ ഞെക്കുക", "account.requested": "അനുവാദത്തിനായി കാത്തിരിക്കുന്നു. പിന്തുടരാനുള്ള അപേക്ഷ റദ്ദാക്കുവാൻ ഞെക്കുക",
"account.share": "@{name} ന്റെ പ്രൊഫൈൽ പങ്കിടുക", "account.share": "@{name} ന്റെ പ്രൊഫൈൽ പങ്കിടുക",
@ -75,7 +75,7 @@
"column.pins": "ഉറപ്പിച്ചു നിറുത്തിയിരിക്കുന്ന ടൂട്ടുകൾ", "column.pins": "ഉറപ്പിച്ചു നിറുത്തിയിരിക്കുന്ന ടൂട്ടുകൾ",
"column.public": "സംയുക്തമായ സമയരേഖ", "column.public": "സംയുക്തമായ സമയരേഖ",
"column_back_button.label": "പുറകിലേക്ക്", "column_back_button.label": "പുറകിലേക്ക്",
"column_header.hide_settings": "സജ്ജീകരണങ്ങള്‍ മറയ്ക്കുക", "column_header.hide_settings": "ക്രമീകരണങ്ങൾ മറയ്ക്കുക",
"column_header.moveLeft_settings": "എഴുത്തുപംക്തി ഇടത്തോട്ട് മാറ്റുക", "column_header.moveLeft_settings": "എഴുത്തുപംക്തി ഇടത്തോട്ട് മാറ്റുക",
"column_header.moveRight_settings": "എഴുത്തുപംക്തി വലത്തോട്ട് മാറ്റുക", "column_header.moveRight_settings": "എഴുത്തുപംക്തി വലത്തോട്ട് മാറ്റുക",
"column_header.pin": "ഉറപ്പിച്ചു നിറുത്തുക", "column_header.pin": "ഉറപ്പിച്ചു നിറുത്തുക",
@ -398,7 +398,7 @@
"status.mute": "@{name}-നെ നിശ്ശബ്ദമാക്കുക", "status.mute": "@{name}-നെ നിശ്ശബ്ദമാക്കുക",
"status.mute_conversation": "Mute conversation", "status.mute_conversation": "Mute conversation",
"status.open": "Expand this status", "status.open": "Expand this status",
"status.pin": "Pin on profile", "status.pin": "പ്രൊഫൈലിൽ പിൻ ചെയ്യൂ",
"status.pinned": "Pinned toot", "status.pinned": "Pinned toot",
"status.read_more": "കൂടുതൽ വായിക്കുക", "status.read_more": "കൂടുതൽ വായിക്കുക",
"status.reblog": "ബൂസ്റ്റ്", "status.reblog": "ബൂസ്റ്റ്",
@ -422,7 +422,7 @@
"status.unpin": "Unpin from profile", "status.unpin": "Unpin from profile",
"suggestions.dismiss": "നിർദ്ദേശം ഒഴിവാക്കൂ", "suggestions.dismiss": "നിർദ്ദേശം ഒഴിവാക്കൂ",
"suggestions.header": "നിങ്ങൾക്ക് താൽപ്പര്യമുണ്ടാകാം…", "suggestions.header": "നിങ്ങൾക്ക് താൽപ്പര്യമുണ്ടാകാം…",
"tabs_bar.federated_timeline": "സംയുക്തമാക്കിയ", "tabs_bar.federated_timeline": "സംയുക്തമായ",
"tabs_bar.home": "ഹോം", "tabs_bar.home": "ഹോം",
"tabs_bar.local_timeline": "പ്രാദേശികം", "tabs_bar.local_timeline": "പ്രാദേശികം",
"tabs_bar.notifications": "അറിയിപ്പുകൾ", "tabs_bar.notifications": "അറിയിപ്പുകൾ",

View file

@ -142,7 +142,7 @@
"emoji_button.food": "Food & Drink", "emoji_button.food": "Food & Drink",
"emoji_button.label": "Insert emoji", "emoji_button.label": "Insert emoji",
"emoji_button.nature": "Nature", "emoji_button.nature": "Nature",
"emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻", "emoji_button.not_found": "No matching emojis found",
"emoji_button.objects": "Objects", "emoji_button.objects": "Objects",
"emoji_button.people": "People", "emoji_button.people": "People",
"emoji_button.recent": "Frequently used", "emoji_button.recent": "Frequently used",

View file

@ -22,7 +22,7 @@
"account.follows.empty": "Deze gebruiker volgt nog niemand.", "account.follows.empty": "Deze gebruiker volgt nog niemand.",
"account.follows_you": "Volgt jou", "account.follows_you": "Volgt jou",
"account.hide_reblogs": "Boosts van @{name} verbergen", "account.hide_reblogs": "Boosts van @{name} verbergen",
"account.joined": "Joined {date}", "account.joined": "Geregistreerd in {date}",
"account.last_status": "Laatst actief", "account.last_status": "Laatst actief",
"account.link_verified_on": "Eigendom van deze link is gecontroleerd op {date}", "account.link_verified_on": "Eigendom van deze link is gecontroleerd op {date}",
"account.locked_info": "De privacystatus van dit account is op besloten gezet. De eigenaar bepaalt handmatig wie hen kan volgen.", "account.locked_info": "De privacystatus van dit account is op besloten gezet. De eigenaar bepaalt handmatig wie hen kan volgen.",
@ -160,7 +160,7 @@
"empty_column.domain_blocks": "Er zijn nog geen geblokkeerde domeinen.", "empty_column.domain_blocks": "Er zijn nog geen geblokkeerde domeinen.",
"empty_column.favourited_statuses": "Jij hebt nog geen favoriete toots. Wanneer je er een aan jouw favorieten toevoegt, valt deze hier te zien.", "empty_column.favourited_statuses": "Jij hebt nog geen favoriete toots. Wanneer je er een aan jouw favorieten toevoegt, valt deze hier te zien.",
"empty_column.favourites": "Niemand heeft deze toot nog aan hun favorieten toegevoegd. Wanneer iemand dit doet, valt dat hier te zien.", "empty_column.favourites": "Niemand heeft deze toot nog aan hun favorieten toegevoegd. Wanneer iemand dit doet, valt dat hier te zien.",
"empty_column.follow_recommendations": "Looks like no suggestions could be generated for you. You can try using search to look for people you might know or explore trending hashtags.", "empty_column.follow_recommendations": "Het lijkt er op dat er geen aanbevelingen voor jou aangemaakt kunnen worden. Je kunt proberen te zoeken naar mensen die je wellicht kent, zoeken op hashtags, de lokale en globale tijdlijnen bekijken of de gebruikersgids doorbladeren.",
"empty_column.follow_requests": "Jij hebt nog enkel volgverzoek ontvangen. Wanneer je er eentje ontvangt, valt dat hier te zien.", "empty_column.follow_requests": "Jij hebt nog enkel volgverzoek ontvangen. Wanneer je er eentje ontvangt, valt dat hier te zien.",
"empty_column.hashtag": "Er is nog niks te vinden onder deze hashtag.", "empty_column.hashtag": "Er is nog niks te vinden onder deze hashtag.",
"empty_column.home": "Deze tijdlijn is leeg! Volg meer mensen om het te vullen. {suggestions}", "empty_column.home": "Deze tijdlijn is leeg! Volg meer mensen om het te vullen. {suggestions}",
@ -262,7 +262,7 @@
"lists.subheading": "Jouw lijsten", "lists.subheading": "Jouw lijsten",
"load_pending": "{count, plural, one {# nieuw item} other {# nieuwe items}}", "load_pending": "{count, plural, one {# nieuw item} other {# nieuwe items}}",
"loading_indicator.label": "Laden…", "loading_indicator.label": "Laden…",
"media_gallery.toggle_visible": "Media verbergen", "media_gallery.toggle_visible": "{number, plural, one {afbeelding verbergen} other {afbeeldingen verbergen}}",
"missing_indicator.label": "Niet gevonden", "missing_indicator.label": "Niet gevonden",
"missing_indicator.sublabel": "Deze hulpbron kan niet gevonden worden", "missing_indicator.sublabel": "Deze hulpbron kan niet gevonden worden",
"mute_modal.duration": "Duur", "mute_modal.duration": "Duur",

View file

@ -142,7 +142,7 @@
"emoji_button.food": "Food & Drink", "emoji_button.food": "Food & Drink",
"emoji_button.label": "Insert emoji", "emoji_button.label": "Insert emoji",
"emoji_button.nature": "Nature", "emoji_button.nature": "Nature",
"emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻", "emoji_button.not_found": "No matching emojis found",
"emoji_button.objects": "Objects", "emoji_button.objects": "Objects",
"emoji_button.people": "People", "emoji_button.people": "People",
"emoji_button.recent": "Frequently used", "emoji_button.recent": "Frequently used",

View file

@ -1,5 +1,5 @@
{ {
"account.account_note_header": "A tua nota para @{name}", "account.account_note_header": "Nota",
"account.add_or_remove_from_list": "Adicionar ou remover das listas", "account.add_or_remove_from_list": "Adicionar ou remover das listas",
"account.badges.bot": "Robô", "account.badges.bot": "Robô",
"account.badges.group": "Grupo", "account.badges.group": "Grupo",
@ -46,7 +46,7 @@
"account.unfollow": "Deixar de seguir", "account.unfollow": "Deixar de seguir",
"account.unmute": "Não silenciar @{name}", "account.unmute": "Não silenciar @{name}",
"account.unmute_notifications": "Deixar de silenciar @{name}", "account.unmute_notifications": "Deixar de silenciar @{name}",
"account_note.placeholder": "Nenhum comentário fornecido", "account_note.placeholder": "Clique para adicionar nota",
"alert.rate_limited.message": "Volte a tentar depois das {retry_time, time, medium}.", "alert.rate_limited.message": "Volte a tentar depois das {retry_time, time, medium}.",
"alert.rate_limited.title": "Limite de tentativas", "alert.rate_limited.title": "Limite de tentativas",
"alert.unexpected.message": "Ocorreu um erro inesperado.", "alert.unexpected.message": "Ocorreu um erro inesperado.",

View file

@ -142,7 +142,7 @@
"emoji_button.food": "ආහාර සහ පාන", "emoji_button.food": "ආහාර සහ පාන",
"emoji_button.label": "Insert emoji", "emoji_button.label": "Insert emoji",
"emoji_button.nature": "Nature", "emoji_button.nature": "Nature",
"emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻", "emoji_button.not_found": "No matching emojis found",
"emoji_button.objects": "Objects", "emoji_button.objects": "Objects",
"emoji_button.people": "මිනිසුන්", "emoji_button.people": "මිනිසුන්",
"emoji_button.recent": "නිතර භාවිතා වූ", "emoji_button.recent": "නිතර භාවිතා වූ",

View file

@ -27,7 +27,7 @@
"account.link_verified_on": "Ägarskap för detta konto kontrollerades den {date}", "account.link_verified_on": "Ägarskap för detta konto kontrollerades den {date}",
"account.locked_info": "Detta konto har låst integritetsstatus. Ägaren väljer manuellt vem som kan följa.", "account.locked_info": "Detta konto har låst integritetsstatus. Ägaren väljer manuellt vem som kan följa.",
"account.media": "Media", "account.media": "Media",
"account.mention": "Nämna @{name}", "account.mention": "Nämn @{name}",
"account.moved_to": "{name} har flyttat till:", "account.moved_to": "{name} har flyttat till:",
"account.mute": "Tysta @{name}", "account.mute": "Tysta @{name}",
"account.mute_notifications": "Stäng av notifieringar från @{name}", "account.mute_notifications": "Stäng av notifieringar från @{name}",
@ -90,7 +90,7 @@
"compose_form.hashtag_warning": "Denna toot kommer inte att visas under någon hashtag eftersom den är onoterad. Endast offentliga toots kan sökas med hashtag.", "compose_form.hashtag_warning": "Denna toot kommer inte att visas under någon hashtag eftersom den är onoterad. Endast offentliga toots kan sökas med hashtag.",
"compose_form.lock_disclaimer": "Ditt konto är inte {locked}. Vem som helst kan följa dig för att se dina inlägg som endast är för följare.", "compose_form.lock_disclaimer": "Ditt konto är inte {locked}. Vem som helst kan följa dig för att se dina inlägg som endast är för följare.",
"compose_form.lock_disclaimer.lock": "låst", "compose_form.lock_disclaimer.lock": "låst",
"compose_form.placeholder": "Vad funderar du på?", "compose_form.placeholder": "Vad tänker du på?",
"compose_form.poll.add_option": "Lägg till ett val", "compose_form.poll.add_option": "Lägg till ett val",
"compose_form.poll.duration": "Varaktighet för omröstning", "compose_form.poll.duration": "Varaktighet för omröstning",
"compose_form.poll.option_placeholder": "Val {number}", "compose_form.poll.option_placeholder": "Val {number}",
@ -105,7 +105,7 @@
"compose_form.spoiler.marked": "Texten är dold bakom en varning", "compose_form.spoiler.marked": "Texten är dold bakom en varning",
"compose_form.spoiler.unmarked": "Texten är inte dold", "compose_form.spoiler.unmarked": "Texten är inte dold",
"compose_form.spoiler_placeholder": "Skriv din varning här", "compose_form.spoiler_placeholder": "Skriv din varning här",
"confirmation_modal.cancel": "Ångra", "confirmation_modal.cancel": "Avbryt",
"confirmations.block.block_and_report": "Blockera & rapportera", "confirmations.block.block_and_report": "Blockera & rapportera",
"confirmations.block.confirm": "Blockera", "confirmations.block.confirm": "Blockera",
"confirmations.block.message": "Är du säker på att du vill blockera {name}?", "confirmations.block.message": "Är du säker på att du vill blockera {name}?",
@ -128,7 +128,7 @@
"confirmations.unfollow.message": "Är du säker på att du vill avfölja {name}?", "confirmations.unfollow.message": "Är du säker på att du vill avfölja {name}?",
"conversation.delete": "Radera konversation", "conversation.delete": "Radera konversation",
"conversation.mark_as_read": "Markera som läst", "conversation.mark_as_read": "Markera som läst",
"conversation.open": "Se konversation", "conversation.open": "Visa konversation",
"conversation.with": "Med {names}", "conversation.with": "Med {names}",
"directory.federated": "Från känt servernätverk", "directory.federated": "Från känt servernätverk",
"directory.local": "Endast från {domain}", "directory.local": "Endast från {domain}",
@ -344,7 +344,7 @@
"privacy.change": "Justera sekretess", "privacy.change": "Justera sekretess",
"privacy.direct.long": "Skicka endast till nämnda användare", "privacy.direct.long": "Skicka endast till nämnda användare",
"privacy.direct.short": "Direkt", "privacy.direct.short": "Direkt",
"privacy.private.long": "Skicka endast till följare", "privacy.private.long": "Endast synligt för följare",
"privacy.private.short": "Endast följare", "privacy.private.short": "Endast följare",
"privacy.public.long": "Skicka till publik tidslinje", "privacy.public.long": "Skicka till publik tidslinje",
"privacy.public.short": "Publik", "privacy.public.short": "Publik",
@ -457,7 +457,7 @@
"upload_modal.choose_image": "Välj bild", "upload_modal.choose_image": "Välj bild",
"upload_modal.description_placeholder": "En snabb brun räv hoppar över den lata hunden", "upload_modal.description_placeholder": "En snabb brun räv hoppar över den lata hunden",
"upload_modal.detect_text": "Upptäck bildens text", "upload_modal.detect_text": "Upptäck bildens text",
"upload_modal.edit_media": "Redigera meida", "upload_modal.edit_media": "Redigera media",
"upload_modal.hint": "Klicka eller dra cirkeln på förhandstitten för att välja den fokusering som alltid kommer synas på alla miniatyrer.", "upload_modal.hint": "Klicka eller dra cirkeln på förhandstitten för att välja den fokusering som alltid kommer synas på alla miniatyrer.",
"upload_modal.preparing_ocr": "Förbereder OCR…", "upload_modal.preparing_ocr": "Förbereder OCR…",
"upload_modal.preview_label": "Förhandstitt ({ratio})", "upload_modal.preview_label": "Förhandstitt ({ratio})",

View file

@ -142,7 +142,7 @@
"emoji_button.food": "Food & Drink", "emoji_button.food": "Food & Drink",
"emoji_button.label": "Insert emoji", "emoji_button.label": "Insert emoji",
"emoji_button.nature": "Nature", "emoji_button.nature": "Nature",
"emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻", "emoji_button.not_found": "No matching emojis found",
"emoji_button.objects": "Objects", "emoji_button.objects": "Objects",
"emoji_button.people": "People", "emoji_button.people": "People",
"emoji_button.recent": "Frequently used", "emoji_button.recent": "Frequently used",

View file

@ -142,7 +142,7 @@
"emoji_button.food": "Food & Drink", "emoji_button.food": "Food & Drink",
"emoji_button.label": "Insert emoji", "emoji_button.label": "Insert emoji",
"emoji_button.nature": "Nature", "emoji_button.nature": "Nature",
"emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻", "emoji_button.not_found": "No matching emojis found",
"emoji_button.objects": "Objects", "emoji_button.objects": "Objects",
"emoji_button.people": "People", "emoji_button.people": "People",
"emoji_button.recent": "Frequently used", "emoji_button.recent": "Frequently used",

View file

@ -142,7 +142,7 @@
"emoji_button.food": "อาหารและเครื่องดื่ม", "emoji_button.food": "อาหารและเครื่องดื่ม",
"emoji_button.label": "แทรกอีโมจิ", "emoji_button.label": "แทรกอีโมจิ",
"emoji_button.nature": "ธรรมชาติ", "emoji_button.nature": "ธรรมชาติ",
"emoji_button.not_found": "ไม่มีอีโมโจ!! (╯°□°)╯︵ ┻━┻", "emoji_button.not_found": "ไม่พบอีโมจิที่ตรงกัน",
"emoji_button.objects": "วัตถุ", "emoji_button.objects": "วัตถุ",
"emoji_button.people": "ผู้คน", "emoji_button.people": "ผู้คน",
"emoji_button.recent": "ที่ใช้บ่อย", "emoji_button.recent": "ที่ใช้บ่อย",

View file

@ -142,7 +142,7 @@
"emoji_button.food": "Food & Drink", "emoji_button.food": "Food & Drink",
"emoji_button.label": "Insert emoji", "emoji_button.label": "Insert emoji",
"emoji_button.nature": "Nature", "emoji_button.nature": "Nature",
"emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻", "emoji_button.not_found": "No matching emojis found",
"emoji_button.objects": "Objects", "emoji_button.objects": "Objects",
"emoji_button.people": "Кешеләр", "emoji_button.people": "Кешеләр",
"emoji_button.recent": "Frequently used", "emoji_button.recent": "Frequently used",

View file

@ -142,7 +142,7 @@
"emoji_button.food": "Food & Drink", "emoji_button.food": "Food & Drink",
"emoji_button.label": "Insert emoji", "emoji_button.label": "Insert emoji",
"emoji_button.nature": "Nature", "emoji_button.nature": "Nature",
"emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻", "emoji_button.not_found": "No matching emojis found",
"emoji_button.objects": "Objects", "emoji_button.objects": "Objects",
"emoji_button.people": "People", "emoji_button.people": "People",
"emoji_button.recent": "Frequently used", "emoji_button.recent": "Frequently used",

View file

@ -142,7 +142,7 @@
"emoji_button.food": "Food & Drink", "emoji_button.food": "Food & Drink",
"emoji_button.label": "Insert emoji", "emoji_button.label": "Insert emoji",
"emoji_button.nature": "Nature", "emoji_button.nature": "Nature",
"emoji_button.not_found": "No emojos!! (╯°□°)╯︵ ┻━┻", "emoji_button.not_found": "No matching emojis found",
"emoji_button.objects": "Objects", "emoji_button.objects": "Objects",
"emoji_button.people": "People", "emoji_button.people": "People",
"emoji_button.recent": "Frequently used", "emoji_button.recent": "Frequently used",

View file

@ -29,13 +29,13 @@
"account.media": "媒体", "account.media": "媒体",
"account.mention": "提及 @{name}", "account.mention": "提及 @{name}",
"account.moved_to": "{name} 已经迁移到:", "account.moved_to": "{name} 已经迁移到:",
"account.mute": "静音 @{name}", "account.mute": "隐藏 @{name}",
"account.mute_notifications": "静音来自 @{name} 的通知", "account.mute_notifications": "隐藏来自 @{name} 的通知",
"account.muted": "已静音", "account.muted": "已隐藏",
"account.never_active": "从未活跃", "account.never_active": "从未活跃",
"account.posts": "嘟文", "account.posts": "嘟文",
"account.posts_with_replies": "嘟文和回复", "account.posts_with_replies": "嘟文和回复",
"account.report": " @{name}", "account.report": "报 @{name}",
"account.requested": "正在等待对方同意。点击以取消发送关注请求", "account.requested": "正在等待对方同意。点击以取消发送关注请求",
"account.share": "分享 @{name} 的个人资料", "account.share": "分享 @{name} 的个人资料",
"account.show_reblogs": "显示来自 @{name} 的转嘟", "account.show_reblogs": "显示来自 @{name} 的转嘟",
@ -44,8 +44,8 @@
"account.unblock_domain": "不再隐藏来自 {domain} 的内容", "account.unblock_domain": "不再隐藏来自 {domain} 的内容",
"account.unendorse": "不在个人资料中推荐此用户", "account.unendorse": "不在个人资料中推荐此用户",
"account.unfollow": "取消关注", "account.unfollow": "取消关注",
"account.unmute": "不再静音 @{name}", "account.unmute": "不再隐藏 @{name}",
"account.unmute_notifications": "不再静音来自 @{name} 的通知", "account.unmute_notifications": "不再隐藏来自 @{name} 的通知",
"account_note.placeholder": "点击添加备注", "account_note.placeholder": "点击添加备注",
"alert.rate_limited.message": "请在{retry_time, time, medium}后重试。", "alert.rate_limited.message": "请在{retry_time, time, medium}后重试。",
"alert.rate_limited.title": "频率受限", "alert.rate_limited.title": "频率受限",
@ -70,7 +70,7 @@
"column.follow_requests": "关注请求", "column.follow_requests": "关注请求",
"column.home": "主页", "column.home": "主页",
"column.lists": "列表", "column.lists": "列表",
"column.mutes": "已静音的用户", "column.mutes": "已隐藏的用户",
"column.notifications": "通知", "column.notifications": "通知",
"column.pins": "置顶嘟文", "column.pins": "置顶嘟文",
"column.public": "跨站公共时间轴", "column.public": "跨站公共时间轴",
@ -106,7 +106,7 @@
"compose_form.spoiler.unmarked": "正文未被折叠", "compose_form.spoiler.unmarked": "正文未被折叠",
"compose_form.spoiler_placeholder": "折叠部分的警告消息", "compose_form.spoiler_placeholder": "折叠部分的警告消息",
"confirmation_modal.cancel": "取消", "confirmation_modal.cancel": "取消",
"confirmations.block.block_and_report": "屏蔽与", "confirmations.block.block_and_report": "屏蔽与报",
"confirmations.block.confirm": "屏蔽", "confirmations.block.confirm": "屏蔽",
"confirmations.block.message": "你确定要屏蔽 {name} 吗?", "confirmations.block.message": "你确定要屏蔽 {name} 吗?",
"confirmations.delete.confirm": "删除", "confirmations.delete.confirm": "删除",
@ -114,12 +114,12 @@
"confirmations.delete_list.confirm": "删除", "confirmations.delete_list.confirm": "删除",
"confirmations.delete_list.message": "你确定要永久删除这个列表吗?", "confirmations.delete_list.message": "你确定要永久删除这个列表吗?",
"confirmations.domain_block.confirm": "隐藏整个网站的内容", "confirmations.domain_block.confirm": "隐藏整个网站的内容",
"confirmations.domain_block.message": "你真的确定要屏蔽所有来自 {domain} 的内容吗?多数情况下,屏蔽或静音几个特定的用户就已经足够了。来自该网站的内容将不再出现在你的任何公共时间轴或通知列表里。来自该网站的关注者将会被移除。", "confirmations.domain_block.message": "你真的确定要屏蔽所有来自 {domain} 的内容吗?多数情况下,屏蔽或隐藏几个特定的用户就已经足够了。来自该网站的内容将不再出现在你的任何公共时间轴或通知列表里。来自该网站的关注者将会被移除。",
"confirmations.logout.confirm": "登出", "confirmations.logout.confirm": "登出",
"confirmations.logout.message": "你确定要登出吗?", "confirmations.logout.message": "你确定要登出吗?",
"confirmations.mute.confirm": "静音", "confirmations.mute.confirm": "隐藏",
"confirmations.mute.explanation": "这将隐藏他们的嘟文以及提到他们的嘟文,但他们仍可以看到你的嘟文并关注你。", "confirmations.mute.explanation": "这将隐藏他们的嘟文以及提到他们的嘟文,但他们仍可以看到你的嘟文并关注你。",
"confirmations.mute.message": "你确定要静音 {name} 吗?", "confirmations.mute.message": "你确定要隐藏 {name} 吗?",
"confirmations.redraft.confirm": "删除并重新编辑", "confirmations.redraft.confirm": "删除并重新编辑",
"confirmations.redraft.message": "你确定要删除这条嘟文并重新编辑它吗?所有相关的转嘟和喜欢都会被清除,回复将会失去关联。", "confirmations.redraft.message": "你确定要删除这条嘟文并重新编辑它吗?所有相关的转嘟和喜欢都会被清除,回复将会失去关联。",
"confirmations.reply.confirm": "回复", "confirmations.reply.confirm": "回复",
@ -167,7 +167,7 @@
"empty_column.home.suggestions": "查看一些建议", "empty_column.home.suggestions": "查看一些建议",
"empty_column.list": "此列表中暂时没有内容。列表中用户所发送的的新嘟文将会在这里显示。", "empty_column.list": "此列表中暂时没有内容。列表中用户所发送的的新嘟文将会在这里显示。",
"empty_column.lists": "你还没有创建过列表。你创建的列表会在这里显示。", "empty_column.lists": "你还没有创建过列表。你创建的列表会在这里显示。",
"empty_column.mutes": "你没有静音任何用户。", "empty_column.mutes": "你没有隐藏任何用户。",
"empty_column.notifications": "你还没有收到过任何通知,快和其他用户互动吧。", "empty_column.notifications": "你还没有收到过任何通知,快和其他用户互动吧。",
"empty_column.public": "这里什么都没有!写一些公开的嘟文,或者关注其他服务器的用户后,这里就会有嘟文出现了", "empty_column.public": "这里什么都没有!写一些公开的嘟文,或者关注其他服务器的用户后,这里就会有嘟文出现了",
"error.unexpected_crash.explanation": "此页面无法正确显示,这可能是因为我们的代码中有错误,也可能是因为浏览器兼容问题。", "error.unexpected_crash.explanation": "此页面无法正确显示,这可能是因为我们的代码中有错误,也可能是因为浏览器兼容问题。",
@ -178,7 +178,7 @@
"errors.unexpected_crash.report_issue": "报告问题", "errors.unexpected_crash.report_issue": "报告问题",
"follow_recommendations.done": "完成", "follow_recommendations.done": "完成",
"follow_recommendations.heading": "关注你感兴趣的用户!这里有一些推荐。", "follow_recommendations.heading": "关注你感兴趣的用户!这里有一些推荐。",
"follow_recommendations.lead": "你关注的人的嘟文将按时间顺序在你的主页上显示。 别担心,你可以随时取消关注!", "follow_recommendations.lead": "你关注的人的嘟文将按时间顺序在你的主页上显示。 别担心,你可以随时取消关注!",
"follow_request.authorize": "同意", "follow_request.authorize": "同意",
"follow_request.reject": "拒绝", "follow_request.reject": "拒绝",
"follow_requests.unlocked_explanation": "虽说你没有锁嘟,但是 {domain} 的工作人员觉得你可能想手工审核关注请求。", "follow_requests.unlocked_explanation": "虽说你没有锁嘟,但是 {domain} 的工作人员觉得你可能想手工审核关注请求。",
@ -226,7 +226,7 @@
"keyboard_shortcuts.legend": "显示此列表", "keyboard_shortcuts.legend": "显示此列表",
"keyboard_shortcuts.local": "打开本站时间轴", "keyboard_shortcuts.local": "打开本站时间轴",
"keyboard_shortcuts.mention": "提及嘟文作者", "keyboard_shortcuts.mention": "提及嘟文作者",
"keyboard_shortcuts.muted": "打开已静音的用户列表", "keyboard_shortcuts.muted": "打开已隐藏用户列表",
"keyboard_shortcuts.my_profile": "打开你的个人资料", "keyboard_shortcuts.my_profile": "打开你的个人资料",
"keyboard_shortcuts.notifications": "打开通知栏", "keyboard_shortcuts.notifications": "打开通知栏",
"keyboard_shortcuts.open_media": "打开媒体", "keyboard_shortcuts.open_media": "打开媒体",
@ -278,14 +278,14 @@
"navigation_bar.domain_blocks": "已屏蔽的网站", "navigation_bar.domain_blocks": "已屏蔽的网站",
"navigation_bar.edit_profile": "修改个人资料", "navigation_bar.edit_profile": "修改个人资料",
"navigation_bar.favourites": "喜欢", "navigation_bar.favourites": "喜欢",
"navigation_bar.filters": "静音关键词", "navigation_bar.filters": "隐藏关键词",
"navigation_bar.follow_requests": "关注请求", "navigation_bar.follow_requests": "关注请求",
"navigation_bar.follows_and_followers": "关注管理", "navigation_bar.follows_and_followers": "关注管理",
"navigation_bar.info": "关于本站", "navigation_bar.info": "关于本站",
"navigation_bar.keyboard_shortcuts": "快捷键列表", "navigation_bar.keyboard_shortcuts": "快捷键列表",
"navigation_bar.lists": "列表", "navigation_bar.lists": "列表",
"navigation_bar.logout": "登出", "navigation_bar.logout": "登出",
"navigation_bar.mutes": "已静音的用户", "navigation_bar.mutes": "已隐藏的用户",
"navigation_bar.personal": "个人", "navigation_bar.personal": "个人",
"navigation_bar.pins": "置顶嘟文", "navigation_bar.pins": "置顶嘟文",
"navigation_bar.preferences": "首选项", "navigation_bar.preferences": "首选项",
@ -360,12 +360,12 @@
"relative_time.seconds": "{number}秒", "relative_time.seconds": "{number}秒",
"relative_time.today": "今天", "relative_time.today": "今天",
"reply_indicator.cancel": "取消", "reply_indicator.cancel": "取消",
"report.forward": "转发至 {target}", "report.forward": "转发报至 {target}",
"report.forward_hint": "这名用户来自另一个服务器。是否要向那个服务器发送一条匿名的", "report.forward_hint": "这名用户来自另一个服务器。是否要向那个服务器发送一条匿名的报?",
"report.hint": "将会发送给你所在服务器的监察员。你可以在下面填写报该用户的理由:", "report.hint": "报将会发送给你所在服务器的监察员。你可以在下面填写报该用户的理由:",
"report.placeholder": "备注", "report.placeholder": "备注",
"report.submit": "提交", "report.submit": "提交",
"report.target": " {target}", "report.target": "报 {target}",
"search.placeholder": "搜索", "search.placeholder": "搜索",
"search_popout.search_format": "高级搜索格式", "search_popout.search_format": "高级搜索格式",
"search_popout.tips.full_text": "输入关键词检索所有你发送、喜欢、转嘟过或提及到你的嘟文,以及其他用户公开的用户名、昵称和话题标签。", "search_popout.tips.full_text": "输入关键词检索所有你发送、喜欢、转嘟过或提及到你的嘟文,以及其他用户公开的用户名、昵称和话题标签。",
@ -395,7 +395,7 @@
"status.media_hidden": "已隐藏的媒体内容", "status.media_hidden": "已隐藏的媒体内容",
"status.mention": "提及 @{name}", "status.mention": "提及 @{name}",
"status.more": "更多", "status.more": "更多",
"status.mute": "静音 @{name}", "status.mute": "隐藏 @{name}",
"status.mute_conversation": "将此对话静音", "status.mute_conversation": "将此对话静音",
"status.open": "展开嘟文", "status.open": "展开嘟文",
"status.pin": "在个人资料页面置顶", "status.pin": "在个人资料页面置顶",
@ -409,7 +409,7 @@
"status.remove_bookmark": "移除书签", "status.remove_bookmark": "移除书签",
"status.reply": "回复", "status.reply": "回复",
"status.replyAll": "回复所有人", "status.replyAll": "回复所有人",
"status.report": " @{name}", "status.report": "报 @{name}",
"status.sensitive_warning": "敏感内容", "status.sensitive_warning": "敏感内容",
"status.share": "分享", "status.share": "分享",
"status.show_less": "隐藏内容", "status.show_less": "隐藏内容",

View file

@ -25,7 +25,7 @@
"account.joined": "加入於 {date}", "account.joined": "加入於 {date}",
"account.last_status": "上次活躍時間", "account.last_status": "上次活躍時間",
"account.link_verified_on": "已在 {date} 檢查此連結的擁有者權限", "account.link_verified_on": "已在 {date} 檢查此連結的擁有者權限",
"account.locked_info": "此帳號的隱私狀態被設為鎖定。該擁有者會手動審核能關注此帳號的人。", "account.locked_info": "此帳戶的隱私狀態被設為鎖定。該擁有者會手動審核能關注此帳戶的人。",
"account.media": "媒體", "account.media": "媒體",
"account.mention": "提及 @{name}", "account.mention": "提及 @{name}",
"account.moved_to": "{name} 已遷移至:", "account.moved_to": "{name} 已遷移至:",
@ -114,7 +114,7 @@
"confirmations.delete_list.confirm": "刪除", "confirmations.delete_list.confirm": "刪除",
"confirmations.delete_list.message": "確定永久刪除此名單?", "confirmations.delete_list.message": "確定永久刪除此名單?",
"confirmations.domain_block.confirm": "隱藏整個域名", "confirmations.domain_block.confirm": "隱藏整個域名",
"confirmations.domain_block.message": "真的非常確定封鎖整個 {domain} 網域嗎?大部分情況下,您只需要封鎖或靜音少數特定的帳號就能滿足需求了。您將不能在任何公開的時間軸及通知中看到此網域的內容。您來自該網域的關注者也將被移除。", "confirmations.domain_block.message": "真的非常確定封鎖整個 {domain} 網域嗎?大部分情況下,您只需要封鎖或靜音少數特定的帳帳戶能滿足需求了。您將不能在任何公開的時間軸及通知中看到此網域的內容。您來自該網域的關注者也將被移除。",
"confirmations.logout.confirm": "登出", "confirmations.logout.confirm": "登出",
"confirmations.logout.message": "確定要登出嗎?", "confirmations.logout.message": "確定要登出嗎?",
"confirmations.mute.confirm": "靜音", "confirmations.mute.confirm": "靜音",
@ -150,7 +150,7 @@
"emoji_button.search_results": "搜尋結果", "emoji_button.search_results": "搜尋結果",
"emoji_button.symbols": "符號", "emoji_button.symbols": "符號",
"emoji_button.travel": "旅遊與地點", "emoji_button.travel": "旅遊與地點",
"empty_column.account_suspended": "帳被暫停", "empty_column.account_suspended": "帳被暫停",
"empty_column.account_timeline": "這裡還沒有嘟文!", "empty_column.account_timeline": "這裡還沒有嘟文!",
"empty_column.account_unavailable": "無法取得個人資料", "empty_column.account_unavailable": "無法取得個人資料",
"empty_column.blocks": "您還沒有封鎖任何使用者。", "empty_column.blocks": "您還沒有封鎖任何使用者。",
@ -181,7 +181,7 @@
"follow_recommendations.lead": "來自您追蹤的人的貼文將會按時間順序顯示在您的家 feed 上。不要害怕犯錯,您隨時都可以取消追蹤其他人!", "follow_recommendations.lead": "來自您追蹤的人的貼文將會按時間順序顯示在您的家 feed 上。不要害怕犯錯,您隨時都可以取消追蹤其他人!",
"follow_request.authorize": "授權", "follow_request.authorize": "授權",
"follow_request.reject": "拒絕", "follow_request.reject": "拒絕",
"follow_requests.unlocked_explanation": "即便您的帳號未被鎖定,{domain} 的員工認為您可能想要自己審核這些帳號的追蹤請求。", "follow_requests.unlocked_explanation": "即便您的帳戶未被鎖定,{domain} 的員工認為您可能想要自己審核這些帳戶的追蹤請求。",
"generic.saved": "已儲存", "generic.saved": "已儲存",
"getting_started.developers": "開發者", "getting_started.developers": "開發者",
"getting_started.directory": "個人資料目錄", "getting_started.directory": "個人資料目錄",
@ -189,7 +189,7 @@
"getting_started.heading": "開始使用", "getting_started.heading": "開始使用",
"getting_started.invite": "邀請使用者", "getting_started.invite": "邀請使用者",
"getting_started.open_source_notice": "Mastodon 是開源軟體。您可以在 GitHub {github} 上貢獻或是回報問題。", "getting_started.open_source_notice": "Mastodon 是開源軟體。您可以在 GitHub {github} 上貢獻或是回報問題。",
"getting_started.security": "帳安全性設定", "getting_started.security": "帳安全性設定",
"getting_started.terms": "服務條款", "getting_started.terms": "服務條款",
"hashtag.column_header.tag_mode.all": "以及 {additional}", "hashtag.column_header.tag_mode.all": "以及 {additional}",
"hashtag.column_header.tag_mode.any": "或是 {additional}", "hashtag.column_header.tag_mode.any": "或是 {additional}",
@ -432,7 +432,7 @@
"time_remaining.minutes": "剩餘{number, plural, one {# 分鐘} other {# 分鐘}}", "time_remaining.minutes": "剩餘{number, plural, one {# 分鐘} other {# 分鐘}}",
"time_remaining.moments": "剩餘時間", "time_remaining.moments": "剩餘時間",
"time_remaining.seconds": "剩餘 {number, plural, one {# 秒} other {# 秒}}", "time_remaining.seconds": "剩餘 {number, plural, one {# 秒} other {# 秒}}",
"timeline_hint.remote_resource_not_displayed": "不會顯示來自其他器的 {resource}", "timeline_hint.remote_resource_not_displayed": "不會顯示來自其他服器的 {resource}",
"timeline_hint.resources.followers": "關注者", "timeline_hint.resources.followers": "關注者",
"timeline_hint.resources.follows": "正在關注", "timeline_hint.resources.follows": "正在關注",
"timeline_hint.resources.statuses": "更早的嘟文", "timeline_hint.resources.statuses": "更早的嘟文",

View file

@ -48,6 +48,8 @@
overflow: hidden; overflow: hidden;
transition: color .1s ease-out; transition: color .1s ease-out;
cursor: pointer; cursor: pointer;
background: transparent;
border: 0;
&:hover { &:hover {
color: darken($lighter-text-color, 4%); color: darken($lighter-text-color, 4%);
@ -106,11 +108,13 @@
padding: 10px; padding: 10px;
padding-right: 45px; padding-right: 45px;
background: $simple-background-color; background: $simple-background-color;
position: relative;
input { input {
font-size: 14px; font-size: 14px;
font-weight: 400; font-weight: 400;
padding: 7px 9px; padding: 7px 9px;
padding-right: 25px;
font-family: inherit; font-family: inherit;
display: block; display: block;
width: 100%; width: 100%;
@ -131,6 +135,30 @@
} }
} }
.emoji-mart-search-icon {
position: absolute;
top: 18px;
right: 45px + 5px;
z-index: 2;
padding: 2px 5px 1px;
border: 0;
background: none;
transition: all 100ms linear;
transition-property: opacity;
pointer-events: auto;
opacity: 0.7;
&:disabled {
cursor: default;
pointer-events: none;
opacity: 0.3;
}
svg {
fill: $action-button-color;
}
}
.emoji-mart-category .emoji-mart-emoji { .emoji-mart-category .emoji-mart-emoji {
cursor: pointer; cursor: pointer;
@ -169,9 +197,36 @@
} }
} }
/* For screenreaders only, via https://stackoverflow.com/a/19758620 */
.emoji-mart-sr-only {
position: absolute;
width: 1px;
height: 1px;
padding: 0;
margin: -1px;
overflow: hidden;
clip: rect(0, 0, 0, 0);
border: 0;
}
.emoji-mart-category-list {
margin: 0;
padding: 0;
}
.emoji-mart-category-list li {
list-style: none;
margin: 0;
padding: 0;
display: inline-block;
}
.emoji-mart-emoji { .emoji-mart-emoji {
position: relative; position: relative;
display: inline-block; display: inline-block;
background: transparent;
border: 0;
padding: 0;
font-size: 0; font-size: 0;
span { span {
@ -182,19 +237,17 @@
.emoji-mart-no-results { .emoji-mart-no-results {
font-size: 14px; font-size: 14px;
text-align: center;
padding-top: 70px;
color: $light-text-color; color: $light-text-color;
text-align: center;
.emoji-mart-category-label { padding: 5px 6px;
display: none; padding-top: 70px;
}
.emoji-mart-no-results-label { .emoji-mart-no-results-label {
margin-top: .2em; margin-top: .2em;
} }
.emoji-mart-emoji:hover::before { .emoji-mart-emoji:hover::before {
cursor: default;
content: none; content: none;
} }
} }

View file

@ -1,3 +1,5 @@
@use "sass:math";
.hero-widget { .hero-widget {
margin-bottom: 10px; margin-bottom: 10px;
box-shadow: 0 0 15px rgba($base-shadow-color, 0.2); box-shadow: 0 0 15px rgba($base-shadow-color, 0.2);
@ -498,10 +500,10 @@ $fluid-breakpoint: $maximum-width + 20px;
} }
&__item { &__item {
width: (960px - 20px) / 3; width: math.div(960px - 20px, 3);
@media screen and (max-width: $fluid-breakpoint) { @media screen and (max-width: $fluid-breakpoint) {
width: (940px - 20px) / 3; width: math.div(940px - 20px, 3);
} }
@media screen and (max-width: 640px) { @media screen and (max-width: 640px) {

View file

@ -11,10 +11,11 @@
# created_at :datetime not null # created_at :datetime not null
# updated_at :datetime not null # updated_at :datetime not null
# last_status_at :datetime # last_status_at :datetime
# lock_version :integer default(0), not null
# #
class AccountStat < ApplicationRecord class AccountStat < ApplicationRecord
self.locking_column = nil
belongs_to :account, inverse_of: :account_stat belongs_to :account, inverse_of: :account_stat
update_index('accounts#account', :account) update_index('accounts#account', :account)

View file

@ -49,7 +49,6 @@ module AccountCounters
ON CONFLICT (account_id) DO UPDATE ON CONFLICT (account_id) DO UPDATE
SET #{key} = account_stats.#{key} + :value, SET #{key} = account_stats.#{key} + :value,
last_status_at = now(), last_status_at = now(),
lock_version = account_stats.lock_version + 1,
updated_at = now() updated_at = now()
RETURNING id; RETURNING id;
SQL SQL
@ -59,7 +58,6 @@ module AccountCounters
VALUES (:account_id, :default_value, now(), now()) VALUES (:account_id, :default_value, now(), now())
ON CONFLICT (account_id) DO UPDATE ON CONFLICT (account_id) DO UPDATE
SET #{key} = account_stats.#{key} + :value, SET #{key} = account_stats.#{key} + :value,
lock_version = account_stats.lock_version + 1,
updated_at = now() updated_at = now()
RETURNING id; RETURNING id;
SQL SQL

View file

@ -24,7 +24,7 @@ es-AR:
status: status:
attributes: attributes:
reblog: reblog:
taken: del estado ya existe taken: del mensaje ya existe
user: user:
attributes: attributes:
email: email:

View file

@ -7,7 +7,7 @@ zh-TW:
options: 選擇 options: 選擇
user: user:
agreement: 服務同意書 agreement: 服務同意書
email: 電子信箱 email: 電子信箱
locale: 地區 locale: 地區
password: 密碼 password: 密碼
user/account: user/account:

View file

@ -68,7 +68,7 @@ sv:
deleted: deleted:
explanation: Följande säkerhetsnyckel har tagits bort från ditt konto explanation: Följande säkerhetsnyckel har tagits bort från ditt konto
subject: 'Mastodon: Säkerhetsnyckeln borttagen' subject: 'Mastodon: Säkerhetsnyckeln borttagen'
title: En av dina säkerhetsnycklar har tagits bort title: En av dina säkerhetsnycklar har raderats
webauthn_disabled: webauthn_disabled:
explanation: Autentisering med säkerhetsnycklar till ditt konto har inaktiverats. Inloggning är nu endast möjligt med den token som genereras av den sammankopplade TOTP-appen. explanation: Autentisering med säkerhetsnycklar till ditt konto har inaktiverats. Inloggning är nu endast möjligt med den token som genereras av den sammankopplade TOTP-appen.
subject: 'Mastodon: Autentisering med säkerhetsnycklar är inaktiverat' subject: 'Mastodon: Autentisering med säkerhetsnycklar är inaktiverat'

View file

@ -2,14 +2,14 @@
zh-TW: zh-TW:
devise: devise:
confirmations: confirmations:
confirmed: 您的電子信箱址已確認成功。 confirmed: 您的電子信箱址已確認成功。
send_instructions: 幾分鐘後您將收到確認信件。若未收到此信件,請檢查垃圾郵件資料夾。 send_instructions: 幾分鐘後您將收到確認信件。若未收到此信件,請檢查垃圾郵件資料夾。
send_paranoid_instructions: 如果您的電子信箱存在於我們的資料庫,您將會在幾分鐘內收到確認信。若未收到請檢查垃圾郵件資料夾。 send_paranoid_instructions: 如果您的電子信箱存在於我們的資料庫,您將會在幾分鐘內收到確認信。若未收到請檢查垃圾郵件資料夾。
failure: failure:
already_authenticated: 您已登入。 already_authenticated: 您已登入。
inactive: 您的帳戶尚未啟用。 inactive: 您的帳戶尚未啟用。
invalid: 無效的 %{authentication_keys} 或密碼。 invalid: 無效的 %{authentication_keys} 或密碼。
last_attempt: 在帳鎖定前,您還有最後一次嘗試機會。 last_attempt: 在帳鎖定前,您還有最後一次嘗試機會。
locked: 已鎖定您的帳戶。 locked: 已鎖定您的帳戶。
not_found_in_database: 無效的 %{authentication_keys} 或密碼。 not_found_in_database: 無效的 %{authentication_keys} 或密碼。
pending: 您的帳戶仍在審核中。 pending: 您的帳戶仍在審核中。
@ -18,28 +18,28 @@ zh-TW:
unconfirmed: 您必須先確認電子信箱才能繼續使用。 unconfirmed: 您必須先確認電子信箱才能繼續使用。
mailer: mailer:
confirmation_instructions: confirmation_instructions:
action: 驗證電子信箱 action: 驗證電子信箱
action_with_app: 確認並返回 %{app} action_with_app: 確認並返回 %{app}
explanation: 您已經在 %{host} 上以此電子信箱址建立了一支帳戶。您距離啟用它只剩一點之遙了。若這不是您,請忽略此信件。 explanation: 您已經在 %{host} 上以此電子信箱址建立了一支帳戶。您距離啟用它只剩一點之遙了。若這不是您,請忽略此信件。
explanation_when_pending: 您使用此電子信箱址申請了 %{host} 的邀請。當您確認電子信箱後我們將審核您的申請。您可以登入以改變您的細節或刪除您的帳號,但直到您的帳號被核准之前,您無法操作大部分的功能。若您的申請遭拒絕,您的資料將被移除而不必做後續動作。如果這不是您,請忽略此信件。 explanation_when_pending: 您使用此電子信箱址申請了 %{host} 的邀請。當您確認電子信箱後我們將審核您的申請。您可以登入以改變您的細節或刪除您的帳戶,但直到您的帳戶被核准之前,您無法操作大部分的功能。若您的申請遭拒絕,您的資料將被移除而不必做後續動作。如果這不是您,請忽略此信件。
extra_html: 同時也請看看<a href="%{terms_path}">伺服器規則</a>與<a href="%{policy_path}">服務條款</a>。 extra_html: 同時也請看看<a href="%{terms_path}">伺服器規則</a>與<a href="%{policy_path}">服務條款</a>。
subject: Mastodon%{instance} 確認說明 subject: Mastodon%{instance} 確認說明
title: 驗證電子信箱 title: 驗證電子信箱
email_changed: email_changed:
explanation: 您帳戶的電子信箱址將變更為: explanation: 您帳戶的電子信箱址將變更為:
extra: 若您未變更電子信箱,那麼很有可能是某人取得了您帳戶的存取權限。請立刻變更密碼,或當帳戶被鎖定時,請聯絡伺服器的管理員。 extra: 若您未變更電子信箱,那麼很有可能是某人取得了您帳戶的存取權限。請立刻變更密碼,或當帳戶被鎖定時,請聯絡伺服器的管理員。
subject: Mastodon已變更電子信箱 subject: Mastodon已變更電子信箱
title: 新電子信箱 title: 新電子信箱
password_change: password_change:
explanation: 您帳戶的密碼已變更。 explanation: 您帳戶的密碼已變更。
extra: 若您未變更密碼,那麼很有可能是某人取得了您帳戶的存取權限。請立刻變更密碼,或若帳戶被鎖定時,請聯絡伺服器的管理員。 extra: 若您未變更密碼,那麼很有可能是某人取得了您帳戶的存取權限。請立刻變更密碼,或若帳戶被鎖定時,請聯絡伺服器的管理員。
subject: Mastodon已變更密碼 subject: Mastodon已變更密碼
title: 密碼已變更 title: 密碼已變更
reconfirmation_instructions: reconfirmation_instructions:
explanation: 請確認新的電子信箱址以變更。 explanation: 請確認新的電子信箱址以變更。
extra: 若此次變更不是由您開啟的請忽略此信件。Mastodon 帳戶的電子信箱址在您存取上面的連結前不會變更。 extra: 若此次變更不是由您開啟的請忽略此信件。Mastodon 帳戶的電子信箱址在您存取上面的連結前不會變更。
subject: Mastodon確認 %{instance} 的電子信箱 subject: Mastodon確認 %{instance} 的電子信箱
title: 驗證電子信箱 title: 驗證電子信箱
reset_password_instructions: reset_password_instructions:
action: 變更密碼 action: 變更密碼
explanation: 您已請求帳戶的新密碼。 explanation: 您已請求帳戶的新密碼。
@ -82,8 +82,8 @@ zh-TW:
success: 成功透過 %{kind} 帳戶登入。 success: 成功透過 %{kind} 帳戶登入。
passwords: passwords:
no_token: 您必須透過密碼重設信件才能存取此頁面。若確實如此,請確定輸入的網址是完整的。 no_token: 您必須透過密碼重設信件才能存取此頁面。若確實如此,請確定輸入的網址是完整的。
send_instructions: 若電子信箱址存在於我們的資料庫,幾分鐘後您將在信箱中收到密碼復原連結。若未收到請檢查垃圾郵件資料夾。 send_instructions: 若電子信箱址存在於我們的資料庫,幾分鐘後您將在信箱中收到密碼復原連結。若未收到請檢查垃圾郵件資料夾。
send_paranoid_instructions: 若電子信箱址存在於我們的資料庫,幾分鐘後您將在信箱中收到密碼復原連結。若未收到請檢查垃圾郵件資料夾。 send_paranoid_instructions: 若電子信箱址存在於我們的資料庫,幾分鐘後您將在信箱中收到密碼復原連結。若未收到請檢查垃圾郵件資料夾。
updated: 您的密碼已成功變更,現在已經登入。 updated: 您的密碼已成功變更,現在已經登入。
updated_not_active: 您的密碼已成功變更。 updated_not_active: 您的密碼已成功變更。
registrations: registrations:
@ -92,16 +92,16 @@ zh-TW:
signed_up_but_inactive: 您已註冊成功,但由於您的帳戶尚未啟用,我們暫時無法讓您登入。 signed_up_but_inactive: 您已註冊成功,但由於您的帳戶尚未啟用,我們暫時無法讓您登入。
signed_up_but_locked: 您已註冊成功,但由於您的帳戶已被鎖定,我們無法讓您登入。 signed_up_but_locked: 您已註冊成功,但由於您的帳戶已被鎖定,我們無法讓您登入。
signed_up_but_pending: 包含確認連結的訊息已寄到您的電子信箱。按下此連結後我們將審核您的申請。核准後將通知您。 signed_up_but_pending: 包含確認連結的訊息已寄到您的電子信箱。按下此連結後我們將審核您的申請。核准後將通知您。
signed_up_but_unconfirmed: 包含確認連結的訊息已寄到您的電子信箱。請前往連結以啟用帳。若未收到請檢查垃圾郵件資料夾。 signed_up_but_unconfirmed: 包含確認連結的訊息已寄到您的電子信箱。請前往連結以啟用帳。若未收到請檢查垃圾郵件資料夾。
update_needs_confirmation: 已成功更新您的帳號,但仍需驗證您的新信箱。請檢查電子信箱並前往確認連結來確認新信箱位址。若未收到請檢查垃圾郵件資料夾。 update_needs_confirmation: 已成功更新您的帳戶,但仍需驗證您的新信箱。請檢查電子信箱並前往確認連結來確認新信箱地址。若未收到請檢查垃圾郵件資料夾。
updated: 您的帳戶已成功更新。 updated: 您的帳戶已成功更新。
sessions: sessions:
already_signed_out: 已成功登出。 already_signed_out: 已成功登出。
signed_in: 已成功登入。 signed_in: 已成功登入。
signed_out: 已成功登出。 signed_out: 已成功登出。
unlocks: unlocks:
send_instructions: 幾分鐘後您將收到解鎖帳的指引信件。若未收到請檢查垃圾郵件資料夾。 send_instructions: 幾分鐘後您將收到解鎖帳的指引信件。若未收到請檢查垃圾郵件資料夾。
send_paranoid_instructions: 若此帳存在,您將在幾分鐘後收到解鎖指引信件。若未收到請檢查垃圾郵件資料夾。 send_paranoid_instructions: 若此帳存在,您將在幾分鐘後收到解鎖指引信件。若未收到請檢查垃圾郵件資料夾。
unlocked: 已解鎖您的帳戶,請登入繼續。 unlocked: 已解鎖您的帳戶,請登入繼續。
errors: errors:
messages: messages:

View file

@ -138,12 +138,12 @@ es-AR:
read:notifications: ver tus notificaciones read:notifications: ver tus notificaciones
read:reports: ver tus denuncias read:reports: ver tus denuncias
read:search: buscar en tu nombre read:search: buscar en tu nombre
read:statuses: ver todos los toots read:statuses: ver todos los mensajes
write: modificar todos los datos de tu cuenta write: modificar todos los datos de tu cuenta
write:accounts: modificar tu perfil write:accounts: modificar tu perfil
write:blocks: bloquear cuentas y dominios write:blocks: bloquear cuentas y dominios
write:bookmarks: marcar toots write:bookmarks: marcar mensajes
write:favourites: marcar toots como favoritos write:favourites: marcar mensajes como favoritos
write:filters: crear filtros write:filters: crear filtros
write:follows: seguir cuentas write:follows: seguir cuentas
write:lists: crear listas write:lists: crear listas
@ -151,4 +151,4 @@ es-AR:
write:mutes: silenciar cuentas y conversaciones write:mutes: silenciar cuentas y conversaciones
write:notifications: limpiar tus notificaciones write:notifications: limpiar tus notificaciones
write:reports: denunciar otras cuentas write:reports: denunciar otras cuentas
write:statuses: publicar toots write:statuses: publicar mensajes

View file

@ -37,7 +37,7 @@ sv:
index: index:
application: Applikation application: Applikation
callback_url: Återkalls URL callback_url: Återkalls URL
delete: Ta bort delete: Radera
empty: Du har inga program. empty: Du har inga program.
name: Namn name: Namn
new: Ny applikation new: Ny applikation

View file

@ -120,10 +120,10 @@ zh-CN:
scopes: scopes:
admin:read: 读取服务器上的所有数据 admin:read: 读取服务器上的所有数据
admin:read:accounts: 读取所有帐号的敏感信息 admin:read:accounts: 读取所有帐号的敏感信息
admin:read:reports: 读取所有告和被报告帐号的敏感信息 admin:read:reports: 读取所有举报和被举报帐号的敏感信息
admin:write: 修改服务器上的所有数据 admin:write: 修改服务器上的所有数据
admin:write:accounts: 对帐号执行管理操作 admin:write:accounts: 对帐号执行管理操作
admin:write:reports: 执行管理操作 admin:write:reports: 报执行管理操作
follow: 关注或屏蔽用户 follow: 关注或屏蔽用户
push: 接收你的帐户的推送通知 push: 接收你的帐户的推送通知
read: 读取你的帐户数据 read: 读取你的帐户数据
@ -134,9 +134,9 @@ zh-CN:
read:filters: 查看你的过滤器 read:filters: 查看你的过滤器
read:follows: 查看你的关注 read:follows: 查看你的关注
read:lists: 查看你的列表 read:lists: 查看你的列表
read:mutes: 查看你的静音列表 read:mutes: 查看你的隐藏列表
read:notifications: 查看你的通知 read:notifications: 查看你的通知
read:reports: 查看你的 read:reports: 查看你的
read:search: 以你的身份搜索 read:search: 以你的身份搜索
read:statuses: 查看所有嘟文 read:statuses: 查看所有嘟文
write: 修改你的账号数据 write: 修改你的账号数据
@ -148,7 +148,7 @@ zh-CN:
write:follows: 关注其他人 write:follows: 关注其他人
write:lists: 创建列表 write:lists: 创建列表
write:media: 上传媒体文件 write:media: 上传媒体文件
write:mutes: 静音用户和对话 write:mutes: 隐藏用户和对话
write:notifications: 清除你的通知 write:notifications: 清除你的通知
write:reports: 他人 write:reports: 报他人
write:statuses: 发表嘟文 write:statuses: 发表嘟文

View file

@ -61,7 +61,7 @@ zh-TW:
title: 發生錯誤 title: 發生錯誤
new: new:
able_to: 這將允許其作: able_to: 這將允許其作:
prompt: 應用程式 %{client_name} 要求取得您帳的存取權限 prompt: 應用程式 %{client_name} 要求取得您帳的存取權限
title: 需要授權 title: 需要授權
show: show:
title: 複製此授權碼並貼上到應用程式中。 title: 複製此授權碼並貼上到應用程式中。
@ -125,8 +125,8 @@ zh-TW:
admin:write:accounts: 對帳戶進行仲裁管理動作 admin:write:accounts: 對帳戶進行仲裁管理動作
admin:write:reports: 對報告進行仲裁管理動作 admin:write:reports: 對報告進行仲裁管理動作
follow: 修改帳戶關係 follow: 修改帳戶關係
push: 接收帳號的推送通知 push: 接收帳戶的推播通知
read: 讀取您所有的帳資料 read: 讀取您所有的帳資料
read:accounts: 檢視帳戶資訊 read:accounts: 檢視帳戶資訊
read:blocks: 檢視您的封鎖名單 read:blocks: 檢視您的封鎖名單
read:bookmarks: 檢視您的書籤 read:bookmarks: 檢視您的書籤
@ -139,7 +139,7 @@ zh-TW:
read:reports: 檢視您的檢舉 read:reports: 檢視您的檢舉
read:search: 以你的身份搜尋 read:search: 以你的身份搜尋
read:statuses: 檢視所有嘟文 read:statuses: 檢視所有嘟文
write: 修改您帳的所有資料 write: 修改您帳的所有資料
write:accounts: 修改您的個人檔案 write:accounts: 修改您的個人檔案
write:blocks: 封鎖帳戶及站台 write:blocks: 封鎖帳戶及站台
write:bookmarks: 書籤狀態 write:bookmarks: 書籤狀態

View file

@ -730,7 +730,7 @@ es-AR:
aliases: aliases:
add_new: Crear alias add_new: Crear alias
created_msg: El nuevo alias se creó exitosamente. Ahora podés empezar la mudanza desde la cuenta vieja. created_msg: El nuevo alias se creó exitosamente. Ahora podés empezar la mudanza desde la cuenta vieja.
deleted_msg: Eliminaste el alias exitosamente. La mudanza de esa cuenta a esta ya no será posible. deleted_msg: Eliminaste el alias exitosamente. La mudanza de esa cuenta a ésta ya no será posible.
empty: No tenés alias. empty: No tenés alias.
hint_html: Si querés mudarte desde otra cuenta a esta, acá podés crear un alias, el cual es necesario antes de empezar a mudar seguidores de la cuenta vieja a ésta. Esta acción por sí misma es <strong>inofensiva y reversible</strong>. <strong>La migración de la cuenta se inicia desde la cuenta anterior</strong>. hint_html: Si querés mudarte desde otra cuenta a esta, acá podés crear un alias, el cual es necesario antes de empezar a mudar seguidores de la cuenta vieja a ésta. Esta acción por sí misma es <strong>inofensiva y reversible</strong>. <strong>La migración de la cuenta se inicia desde la cuenta anterior</strong>.
remove: Desvincular alias remove: Desvincular alias

View file

@ -64,7 +64,7 @@ fa:
other: پیگیر other: پیگیر
following: پی می‌گیرد following: پی می‌گیرد
instance_actor_flash: این حساب یک عامل مجازی است که به نمایندگی از خود کارساز استفاده می‌شود و نه هیچ یکی از کاربران. این حساب به منظور اتصال به فدراسیون استفاده می‌شود و نباید معلق شود. instance_actor_flash: این حساب یک عامل مجازی است که به نمایندگی از خود کارساز استفاده می‌شود و نه هیچ یکی از کاربران. این حساب به منظور اتصال به فدراسیون استفاده می‌شود و نباید معلق شود.
joined: کاربر از %{date} joined: پیوسته از %{date}
last_active: آخرین فعالیت last_active: آخرین فعالیت
link_verified_on: مالکیت این پیوند در %{date} بررسی شد link_verified_on: مالکیت این پیوند در %{date} بررسی شد
media: عکس و ویدیو media: عکس و ویدیو
@ -428,7 +428,13 @@ fa:
unsuppress: بازگردانی پیشنهادهای پی‌گیری unsuppress: بازگردانی پیشنهادهای پی‌گیری
instances: instances:
back_to_all: همه back_to_all: همه
back_to_limited: محدود
back_to_warning: هشدار
by_domain: دامین by_domain: دامین
delivery:
all: همه
unavailable: ناموجود
warning: هشدار
delivery_available: پیام آماده است delivery_available: پیام آماده است
empty: هیج دامنه‌ای پیدا نشد. empty: هیج دامنه‌ای پیدا نشد.
known_accounts: known_accounts:
@ -1327,7 +1333,6 @@ fa:
time: time:
formats: formats:
default: "%d %b %Y, %H:%M" default: "%d %b %Y, %H:%M"
month: "%Ob %Y"
two_factor_authentication: two_factor_authentication:
add: افزودن add: افزودن
disable: غیرفعال‌کردن disable: غیرفعال‌کردن

View file

@ -273,6 +273,7 @@ fr:
create_domain_block_html: "%{name} a bloqué 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_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_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}"
demote_user_html: "%{name} a rétrogradé l'utilisateur·rice %{target}" demote_user_html: "%{name} a rétrogradé l'utilisateur·rice %{target}"
destroy_announcement_html: "%{name} a supprimé l'annonce %{target}" destroy_announcement_html: "%{name} a supprimé l'annonce %{target}"
destroy_custom_emoji_html: "%{name} a détruit l'émoji %{target}" destroy_custom_emoji_html: "%{name} a détruit l'émoji %{target}"
@ -281,6 +282,7 @@ fr:
destroy_email_domain_block_html: "%{name} a débloqué le domaine de courriel %{target}" destroy_email_domain_block_html: "%{name} a débloqué le domaine de courriel %{target}"
destroy_ip_block_html: "%{name} a supprimé la règle pour l'IP %{target}" destroy_ip_block_html: "%{name} a supprimé la règle pour l'IP %{target}"
destroy_status_html: "%{name} a supprimé le statut de %{target}" destroy_status_html: "%{name} a supprimé le statut de %{target}"
destroy_unavailable_domain_html: "%{name} a repris la livraison au domaine %{target}"
disable_2fa_user_html: "%{name} a désactivé l'authentification à deux facteurs pour l'utilisateur·rice %{target}" disable_2fa_user_html: "%{name} a désactivé l'authentification à deux facteurs pour l'utilisateur·rice %{target}"
disable_custom_emoji_html: "%{name} a désactivé l'émoji %{target}" disable_custom_emoji_html: "%{name} a désactivé l'émoji %{target}"
disable_user_html: "%{name} a désactivé la connexion de l'utilisateur·rice %{target}" disable_user_html: "%{name} a désactivé la connexion de l'utilisateur·rice %{target}"
@ -453,10 +455,25 @@ fr:
title: Recommandations d'abonnement title: Recommandations d'abonnement
unsuppress: Rétablir les recommandations d'abonnement unsuppress: Rétablir les recommandations d'abonnement
instances: instances:
back_to_all: Tout
back_to_limited: Limité
back_to_warning: Avertissement
by_domain: Domaine by_domain: Domaine
delivery: delivery:
all: Tout
clear: Effacer les erreurs de livraison
restart: Redémarrer la livraison
stop: Arrêter la livraison
title: Livraison
unavailable: Indisponible unavailable: Indisponible
unavailable_message: Livraison indisponible
warning: Avertissement
warning_message:
one: Échec de livraison %{count} jour
other: Échec de livraison %{count} jours
delivery_available: Livraison disponible delivery_available: Livraison disponible
delivery_error_days: Jours d'erreur de livraison
delivery_error_hint: Si la livraison n'est pas possible pendant %{count} jours, elle sera automatiquement marquée comme non livrable.
empty: Aucun domaine trouvé. empty: Aucun domaine trouvé.
known_accounts: known_accounts:
one: "%{count} compte connu" one: "%{count} compte connu"
@ -636,7 +653,7 @@ fr:
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. 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 title: Description courte du serveur
site_terms: site_terms:
desc_html: Affichée sur la page des conditions dutilisation du site. Vous pouvez utiliser des balises HTML desc_html: Vous pouvez écrire votre propre politique de confidentialité, conditions dutilisation ou autre jargon juridique. Vous pouvez utiliser des balises HTML
title: Politique de confidentialité title: Politique de confidentialité
site_title: Nom du serveur site_title: Nom du serveur
thumbnail: thumbnail:
@ -1352,7 +1369,7 @@ fr:
<p>Ce document est publié sous licence CC-BY-SA. Il a été mis à jour pour la dernière fois le 7 mars 2018.</p> <p>Ce document est publié sous licence CC-BY-SA. Il a été mis à jour pour la dernière fois le 7 mars 2018.</p>
<p>Originellement adapté de la <a href="https://github.com/discourse/discourse">politique de confidentialité de Discourse</a>.</p> <p>Originellement adapté de la <a href="https://github.com/discourse/discourse">politique de confidentialité de Discourse</a>.</p>
title: "%{instance} Conditions dutilisation et politique de confidentialité" title: Conditions dutilisation et politique de confidentialité de %{instance}
themes: themes:
contrast: Mastodon (Contraste élevé) contrast: Mastodon (Contraste élevé)
default: Mastodon (Sombre) default: Mastodon (Sombre)

File diff suppressed because one or more lines are too long

View file

@ -21,7 +21,9 @@ gl:
federation_hint_html: Cunha conta en %{instance} poderás seguir ás persoas en calquera servidor do Mastodon e alé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 get_apps: Probar unha aplicación móbil
hosted_on: Mastodon aloxado en %{domain} 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. 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 learn_more: Saber máis
privacy_policy: Política de privacidade privacy_policy: Política de privacidade
rules: Regras do servidor rules: Regras do servidor
@ -1384,12 +1386,12 @@ gl:
enabled: A autenticación de dobre-factor está activada enabled: A autenticación de dobre-factor está activada
enabled_success: Activouse con éxito a autenticación de dobre-factor enabled_success: Activouse con éxito a autenticación de dobre-factor
generate_recovery_codes: Xerar códigos de recuperación generate_recovery_codes: Xerar códigos de recuperación
lost_recovery_codes: Os códigos de recuperación permítenlle recuperar o acceso a súa conta si perde o teléfono. Si perde os códigos de recuperación, pode restauralos aquí. Os seus códigos de recuperación anteriores serán invalidados. lost_recovery_codes: Os códigos de recuperación permítenche recuperar o acceso a túa conta se perdes o teléfono. Se perdes os códigos de recuperación, podes restauralos aquí. Os teus códigos de recuperación anteriores serán invalidados.
methods: Métodos para o segundo factor methods: Métodos para o segundo factor
otp: App autenticadora otp: App autenticadora
recovery_codes: Códigos de recuperación do respaldo recovery_codes: Códigos de recuperación do respaldo
recovery_codes_regenerated: Códigos de recuperación xerados correctamente recovery_codes_regenerated: Códigos de recuperación xerados correctamente
recovery_instructions_html: Si perdese o acceso ao seu teléfono, pode utilizar un dos códigos inferiores de recuperación para recuperar o acceso a súa conta. <strong>Garde os códigos en lugar seguro</strong>. Por exemplo, pode imprimilos e gardalos xunto con outros documentos importantes. recovery_instructions_html: Se perdeses o acceso ao teu teléfono, podes utilizar un dos códigos de recuperación inferiores para recuperar o acceso á conta. <strong>Garda os códigos nun lugar seguro</strong>. Por exemplo, podes imprimilos e gardalos xunto con outros documentos importantes.
webauthn: Chaves de seguridade webauthn: Chaves de seguridade
user_mailer: user_mailer:
backup_ready: backup_ready:
@ -1445,7 +1447,7 @@ gl:
generic_access_help_html: Problemas para acceder a conta? Podes contactar con %{email} para obter axuda generic_access_help_html: Problemas para acceder a conta? Podes contactar con %{email} para obter axuda
invalid_otp_token: O código do segundo factor non é válido invalid_otp_token: O código do segundo factor non é válido
invalid_sign_in_token: Código de seguridade non válido invalid_sign_in_token: Código de seguridade non válido
otp_lost_help_html: Si perde o acceso a ambos, pode contactar con %{email} otp_lost_help_html: Se perdes o acceso a ambos, podes contactar con %{email}
seamless_external_login: Está conectado a través de un servizo externo, polo que os axustes de contrasinal e correo-e non están dispoñibles. seamless_external_login: Está conectado a través de un servizo externo, polo que os axustes de contrasinal e correo-e non están dispoñibles.
signed_in_as: 'Rexistrada como:' signed_in_as: 'Rexistrada como:'
suspicious_sign_in_confirmation: Semella que non te conectaches antes desde este dispositivo, e hai tempo que non te conectas, así que ímosche enviar un código de seguridade ao teu enderezo de email para confirmar que es ti. suspicious_sign_in_confirmation: Semella que non te conectaches antes desde este dispositivo, e hai tempo que non te conectas, así que ímosche enviar un código de seguridade ao teu enderezo de email para confirmar que es ti.

View file

@ -846,7 +846,7 @@ ja:
email_change_html: アカウントを削除しなくても<a href="%{path}">メールアドレスを変更</a>できます email_change_html: アカウントを削除しなくても<a href="%{path}">メールアドレスを変更</a>できます
email_contact_html: それでも届かない場合、<a href="mailto:%{email}">%{email}</a> までメールで問い合わせてください email_contact_html: それでも届かない場合、<a href="mailto:%{email}">%{email}</a> までメールで問い合わせてください
email_reconfirmation_html: 確認のメールが届かない場合、<a href="%{path}">もう一度申請</a>できます。 email_reconfirmation_html: 確認のメールが届かない場合、<a href="%{path}">もう一度申請</a>できます。
irreversible: アカウントを元に戻したり復活させることはできません irreversible: 削除操作の撤回やアカウントの復活はできません
more_details_html: 詳しくは<a href="%{terms_path}">プライバシーポリシー</a>をご覧ください。 more_details_html: 詳しくは<a href="%{terms_path}">プライバシーポリシー</a>をご覧ください。
username_available: あなたのユーザー名は再利用できるようになります username_available: あなたのユーザー名は再利用できるようになります
username_unavailable: あなたのユーザー名は引き続き利用できません username_unavailable: あなたのユーザー名は引き続き利用できません

View file

@ -478,6 +478,11 @@ pl:
unavailable: Niedostępne unavailable: Niedostępne
unavailable_message: Doręczaniei niedostępne unavailable_message: Doręczaniei niedostępne
warning: Ostrzeżenie warning: Ostrzeżenie
warning_message:
few: "%{count} dni niepowodzenia doręczenia"
many: "%{count} dni niepowodzenia doręczenia"
one: "%{count} dzień niepowodzenia doręczenia"
other: "%{count} dni niepowodzenia doręczenia"
delivery_available: Doręczanie jest dostępne delivery_available: Doręczanie jest dostępne
delivery_error_days: Dni błędów doręczenia delivery_error_days: Dni błędów doręczenia
delivery_error_hint: Jeżeli doręczanie nie będzie możliwe przez %{count} dni, zostanie automatycznie oznaczona jako nie do doręczania. delivery_error_hint: Jeżeli doręczanie nie będzie możliwe przez %{count} dni, zostanie automatycznie oznaczona jako nie do doręczania.

View file

@ -21,7 +21,9 @@ sc:
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. 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 get_apps: Proa un'aplicatzione mòbile
hosted_on: Mastodon allogiadu in %{domain} 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. 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 learn_more: Àteras informatziones
privacy_policy: Polìtica de riservadesa privacy_policy: Polìtica de riservadesa
rules: Règulas de su serbidore rules: Règulas de su serbidore

View file

@ -52,7 +52,7 @@ es-AR:
setting_display_media_hide_all: Siempre ocultar todos los medios setting_display_media_hide_all: Siempre ocultar todos los medios
setting_display_media_show_all: Siempre mostrar todos los medios setting_display_media_show_all: Siempre mostrar todos los medios
setting_hide_network: Las cuentas que seguís y tus seguidores serán ocultados en tu perfil setting_hide_network: Las cuentas que seguís y tus seguidores serán ocultados en tu perfil
setting_noindex: Afecta a tu perfil público y páginas de estado setting_noindex: Afecta a tu perfil público y páginas de mensajes
setting_show_application: La aplicación que usás para enviar mensajes se mostrará en la vista detallada de tus mensajes setting_show_application: La aplicación que usás para enviar mensajes se mostrará en la vista detallada de tus mensajes
setting_use_blurhash: Los gradientes se basan en los colores de las imágenes ocultas pero haciendo borrosos los detalles setting_use_blurhash: Los gradientes se basan en los colores de las imágenes ocultas pero haciendo borrosos los detalles
setting_use_pending_items: Ocultar actualizaciones de la línea temporal detrás de un clic en lugar de desplazar automáticamente el flujo setting_use_pending_items: Ocultar actualizaciones de la línea temporal detrás de un clic en lugar de desplazar automáticamente el flujo

View file

@ -149,7 +149,7 @@ fr:
setting_aggregate_reblogs: Grouper les partages dans les fils dactualités setting_aggregate_reblogs: Grouper les partages dans les fils dactualités
setting_auto_play_gif: Lire automatiquement les GIFs animés setting_auto_play_gif: Lire automatiquement les GIFs animés
setting_boost_modal: Demander confirmation avant de partager un message setting_boost_modal: Demander confirmation avant de partager un message
setting_crop_images: Recadrer en 16x9 les images des messages qui ne sont pas ouvert en vue détaillée setting_crop_images: Recadrer en 16x9 les images des messages qui ne sont pas ouverts en vue détaillée
setting_default_language: Langue de publication setting_default_language: Langue de publication
setting_default_privacy: Confidentialité des messages setting_default_privacy: Confidentialité des messages
setting_default_sensitive: Toujours marquer les médias comme sensibles setting_default_sensitive: Toujours marquer les médias comme sensibles

View file

@ -30,19 +30,19 @@ gd:
defaults: defaults:
autofollow: Leanaidh na daoine a chlàraicheas leis a cuireadh ort gu fèin-obrachail autofollow: Leanaidh na daoine a chlàraicheas leis a cuireadh ort gu fèin-obrachail
avatar: PNG, GIF or JPG. %{size} air a char as motha. Thèid a sgèileadh sìos gu %{dimensions}px avatar: PNG, GIF or JPG. %{size} air a char as motha. Thèid a sgèileadh sìos gu %{dimensions}px
bot: Tha an cunntas seo ri gnìomhan fèin-obrachail gu h-àraidh is dhfhaoidte nach doir duine sam bith sùil air idir bot: Comharraich do chàch gu bheil an cunntas seo ri gnìomhan fèin-obrachail gu h-àraidh is dhfhaoidte nach doir duine sam bith sùil air idir
context: Na co-theacsaichean air am bi a chriathrag an sàs context: Na co-theacsaichean air am bi a chriathrag an sàs
current_password: A chùm tèarainteachd, cuir a-steach facal-faire a chunntais làithrich current_password: A chùm tèarainteachd, cuir a-steach facal-faire a chunntais làithrich
current_username: Airson seo a dhearbhadh, cuir a-steach ainm-cleachdaiche a chunntais làithrich current_username: Airson seo a dhearbhadh, cuir a-steach ainm-cleachdaiche a chunntais làithrich
digest: Cha dèid seo a chur ach nuair a bhios tu air ùine mhòr gun ghnìomh a ghabhail agus ma fhuair thu teachdaireachd phearsanta fhad s a bha thu air falbh digest: Cha dèid seo a chur ach nuair a bhios tu air ùine mhòr gun ghnìomh a ghabhail agus ma fhuair thu teachdaireachd phearsanta fhad s a bha thu air falbh
discoverable: "S e dòigh eile a th ann an eòlaire nam pròifil leis an ruig an cunntas agad èisteachd nas fharsainge" discoverable: Ceadaich gun lorg coigrich an cunntas agad le taic o mholaidhean is gleusan eile
email: Thèid post-d dearbhaidh a chur thugad email: Thèid post-d dearbhaidh a chur thugad
fields: Faodaidh tu suas ri 4 nithean a shealltainn mar chlàr air a phròifil agad fields: Faodaidh tu suas ri 4 nithean a shealltainn mar chlàr air a phròifil agad
header: PNG, GIF or JPG. %{size} air a char as motha. Thèid a sgèileadh sìos gu %{dimensions}px header: PNG, GIF or JPG. %{size} air a char as motha. Thèid a sgèileadh sìos gu %{dimensions}px
inbox_url: Dèan lethbhreac dhen URL o phrìomh-dhuilleag an ath-sheachadain a bu mhiann leat cleachdadh inbox_url: Dèan lethbhreac dhen URL o phrìomh-dhuilleag an ath-sheachadain a bu mhiann leat cleachdadh
irreversible: Thèid postaichean criathraichte a-mach à sealladh gu buan fiù s ma bheir thu a chriathrag air falbh uaireigin eile irreversible: Thèid postaichean criathraichte a-mach à sealladh gu buan fiù s ma bheir thu a chriathrag air falbh uaireigin eile
locale: Cànan eadar-aghaidh a chleachdaiche, nam post-d s nam brathan putaidh locale: Cànan eadar-aghaidh a chleachdaiche, nam post-d s nam brathan putaidh
locked: Feumaidh tu gabhail ri luchd-leantainn ùr a làimh locked: Stiùirich cò dhfhaodas leantainn ort le gabhail ri iarrtasan leantainn a làimh
password: Cleachd co-dhiù 8 caractaran password: Cleachd co-dhiù 8 caractaran
phrase: Thèid a mhaidseadh gun aire air litrichean mòra s beaga no air rabhadh susbainte puist phrase: Thèid a mhaidseadh gun aire air litrichean mòra s beaga no air rabhadh susbainte puist
scopes: Na APIan a dhfhaodas an aplacaid inntrigeadh. Ma thaghas tu sgòp air ìre as àirde, cha leig thu leas sgòpaichean fa leth a thaghadh. scopes: Na APIan a dhfhaodas an aplacaid inntrigeadh. Ma thaghas tu sgòp air ìre as àirde, cha leig thu leas sgòpaichean fa leth a thaghadh.
@ -51,7 +51,7 @@ gd:
setting_display_media_default: Falaich meadhanan ris a bheil comharra gu bheil iad frionasach setting_display_media_default: Falaich meadhanan ris a bheil comharra gu bheil iad frionasach
setting_display_media_hide_all: Falaich na meadhanan an-còmhnaidh setting_display_media_hide_all: Falaich na meadhanan an-còmhnaidh
setting_display_media_show_all: Seall na meadhanan an-còmhnaidh setting_display_media_show_all: Seall na meadhanan an-còmhnaidh
setting_hide_network: Cha nochd cò a tha thu a leantainn orra no an luchd-leantainn agad fhèin air a phròifil agad setting_hide_network: Thèid cò a tha thu a leantainn orra s an luchd-leantainn agad fhèin a chur am falach air a phròifil agad
setting_noindex: Bheir seo buaidh air a phròifil phoblach s air duilleagan nam postaichean agad setting_noindex: Bheir seo buaidh air a phròifil phoblach s air duilleagan nam postaichean agad
setting_show_application: Chithear cò an aplacaid a chleachd thu airson post a sgrìobhadh ann an seallaidhean mionaideach nam postaichean agad setting_show_application: Chithear cò an aplacaid a chleachd thu airson post a sgrìobhadh ann an seallaidhean mionaideach nam postaichean agad
setting_use_blurhash: Tha caiseadan stèidhichte air dathan nan nithean lèirsinneach a chaidh fhalach ach chan fhaicear am mion-fhiosrachadh setting_use_blurhash: Tha caiseadan stèidhichte air dathan nan nithean lèirsinneach a chaidh fhalach ach chan fhaicear am mion-fhiosrachadh
@ -128,7 +128,7 @@ gd:
context: Co-theacsaichean na criathraige context: Co-theacsaichean na criathraige
current_password: Am facal-faire làithreach current_password: Am facal-faire làithreach
data: Dàta data: Dàta
discoverable: Seall an cunntas seo san eòlaire discoverable: Mol an cunntas do chàch
display_name: Ainm-taisbeanaidh display_name: Ainm-taisbeanaidh
email: Seòladh puist-d email: Seòladh puist-d
expires_in: Falbhaidh an ùine air às dèidh expires_in: Falbhaidh an ùine air às dèidh
@ -138,7 +138,7 @@ gd:
inbox_url: URL bogsa a-steach an ath-sheachadain inbox_url: URL bogsa a-steach an ath-sheachadain
irreversible: Leig seachad seach falach irreversible: Leig seachad seach falach
locale: Cànan na h-eadar-aghaidh locale: Cànan na h-eadar-aghaidh
locked: Glais an cunntas locked: Iarr iarrtasan leantainn
max_uses: An àireamh as motha de chleachdaidhean max_uses: An àireamh as motha de chleachdaidhean
new_password: Facal-faire ùr new_password: Facal-faire ùr
note: Mu mo dhèidhinn note: Mu mo dhèidhinn
@ -160,7 +160,7 @@ gd:
setting_display_media_hide_all: Falaich na h-uile setting_display_media_hide_all: Falaich na h-uile
setting_display_media_show_all: Seall na h-uile setting_display_media_show_all: Seall na h-uile
setting_expand_spoilers: Leudaich postaichean ris a bheil rabhadh susbainte an-còmhnaidh setting_expand_spoilers: Leudaich postaichean ris a bheil rabhadh susbainte an-còmhnaidh
setting_hide_network: Falaich an lìonra agad setting_hide_network: Falaich an graf sòisealta agad
setting_noindex: Thoir air falbh an ro-aonta air inneacsadh le einnseanan-luirg setting_noindex: Thoir air falbh an ro-aonta air inneacsadh le einnseanan-luirg
setting_reduce_motion: Ìslich an gluasad sna beòthachaidhean setting_reduce_motion: Ìslich an gluasad sna beòthachaidhean
setting_show_application: Foillsich dè an aplacaid a chleachdas tu airson postaichean a chur setting_show_application: Foillsich dè an aplacaid a chleachdas tu airson postaichean a chur
@ -208,7 +208,7 @@ gd:
rule: rule:
text: Riaghailt text: Riaghailt
tag: tag:
listable: Leig leis an taga hais seo gun nochd e ann an toraidhean luirg s air eòlaire nam pròifil listable: Leig leis an taga hais seo gun nochd e ann an toraidhean luirg s am measg nam molaidhean
name: Taga hais name: Taga hais
trendable: Leig leis an taga hais seo gun nochd e am measg nan treandaichean trendable: Leig leis an taga hais seo gun nochd e am measg nan treandaichean
usable: Leig le postaichean an taga hais seo a chleachdadh usable: Leig le postaichean an taga hais seo a chleachdadh

View file

@ -3,7 +3,7 @@ zh-CN:
simple_form: simple_form:
hints: hints:
account_alias: account_alias:
acct: 指定想要迁移过来的原帐号:用户名@站点域名 acct: 指定想要迁移过来的原帐号:用户名@站点域名
account_migration: account_migration:
acct: 指定你想迁移过去的目标帐号:用户名@站点域名 acct: 指定你想迁移过去的目标帐号:用户名@站点域名
account_warning_preset: account_warning_preset:
@ -74,7 +74,7 @@ zh-CN:
ip_block: ip_block:
comment: 可选。请记住为什么你添加了此规则。 comment: 可选。请记住为什么你添加了此规则。
expires_in: IP 地址是一种有限的资源,它们有时是共享的,并且常常变化。因此,不推荐无限期的 IP 封禁。 expires_in: IP 地址是一种有限的资源,它们有时是共享的,并且常常变化。因此,不推荐无限期的 IP 封禁。
ip: 输入 IPv4 或 IPv6 地址。你可以使用 CIDR 语法屏蔽整个范围。小心不要屏蔽自己! ip: 输入 IPv4 或 IPv6 地址。你可以使用CIDR语法屏蔽IP段。小心不要屏蔽自己!
severities: severities:
no_access: 阻止访问所有资源 no_access: 阻止访问所有资源
sign_up_requires_approval: 新注册需要你的批准 sign_up_requires_approval: 新注册需要你的批准
@ -101,7 +101,7 @@ zh-CN:
text: 预置文本 text: 预置文本
title: 标题 title: 标题
admin_account_action: admin_account_action:
include_statuses: 在电子邮件中包括已的嘟文 include_statuses: 在电子邮件中包括已报的嘟文
send_email_notification: 通过邮件提醒此用户 send_email_notification: 通过邮件提醒此用户
text: 内容警告 text: 内容警告
type: 动作 type: 动作
@ -145,7 +145,7 @@ zh-CN:
otp_attempt: 双重认证代码 otp_attempt: 双重认证代码
password: 密码 password: 密码
phrase: 关键词 phrase: 关键词
setting_advanced_layout: 启用高级 Web 界面 setting_advanced_layout: 启用高级web界面
setting_aggregate_reblogs: 在时间轴中合并转嘟 setting_aggregate_reblogs: 在时间轴中合并转嘟
setting_auto_play_gif: 自动播放 GIF 动画 setting_auto_play_gif: 自动播放 GIF 动画
setting_boost_modal: 在转嘟前询问我 setting_boost_modal: 在转嘟前询问我
@ -203,7 +203,7 @@ zh-CN:
mention: 当有用户在嘟文中提及我时,发送电子邮件提醒我 mention: 当有用户在嘟文中提及我时,发送电子邮件提醒我
pending_account: 在有帐号需要审核时,发送电子邮件提醒我 pending_account: 在有帐号需要审核时,发送电子邮件提醒我
reblog: 当有用户转嘟了我的嘟文时,发送电子邮件提醒我 reblog: 当有用户转嘟了我的嘟文时,发送电子邮件提醒我
report: 在提交新时,发送电子邮件提醒我 report: 在提交新报时,发送电子邮件提醒我
trending_tag: 当未经审核的话题成为当前热门时发邮件提醒 trending_tag: 当未经审核的话题成为当前热门时发邮件提醒
rule: rule:
text: 规则 text: 规则

View file

@ -8,16 +8,18 @@ zh-TW:
acct: 指定欲移動至之帳戶的 使用者名稱@站台 acct: 指定欲移動至之帳戶的 使用者名稱@站台
account_warning_preset: account_warning_preset:
text: 您可使用嘟文語法,例如網址、「#」標籤和提及功能 text: 您可使用嘟文語法,例如網址、「#」標籤和提及功能
title: 可選。不會向收件者顯示
admin_account_action: admin_account_action:
include_statuses: 使用者可看到導致檢舉或警告的嘟文
send_email_notification: 使用者將收到帳戶發生之事情的解釋 send_email_notification: 使用者將收到帳戶發生之事情的解釋
text_html: 選用。您能使用嘟文語法。您可 <a href="%{path}">新增警告預設</a> 來節省時間 text_html: 選用。您能使用嘟文語法。您可 <a href="%{path}">新增警告預設</a> 來節省時間
type_html: 設定要使用 <strong>%{acct}</strong> 做的事 type_html: 設定要使用 <strong>%{acct}</strong> 做的事
types: types:
disable: 禁止該使用者使用他們的帳,但是不刪除或隱藏他們的內容。 disable: 禁止該使用者使用他們的帳,但是不刪除或隱藏他們的內容。
none: 使用這個寄送警告給該使用者,而不進行其他動作。 none: 使用這個寄送警告給該使用者,而不進行其他動作。
sensitive: 強制標記此使用者所有媒體為敏感內容。 sensitive: 強制標記此使用者所有媒體為敏感內容。
silence: 禁止該使用者發公開嘟文,從無跟隨他們的帳中隱藏嘟文和通知。 silence: 禁止該使用者發公開嘟文,從無跟隨他們的帳中隱藏嘟文和通知。
suspend: 禁止所有對該帳任何互動,並且刪除其內容。三十日內可以撤回。 suspend: 禁止所有對該帳任何互動,並且刪除其內容。三十日內可以撤回。
warning_preset_id: 選用。您仍可在預設的結尾新增自訂文字 warning_preset_id: 選用。您仍可在預設的結尾新增自訂文字
announcement: announcement:
all_day: 核取後,只會顯示出時間範圍中的日期部分 all_day: 核取後,只會顯示出時間範圍中的日期部分
@ -96,7 +98,7 @@ zh-TW:
defaults: defaults:
autofollow: 邀請別人關注你的帳戶 autofollow: 邀請別人關注你的帳戶
avatar: 大頭貼 avatar: 大頭貼
bot: 此帳是台機器人 bot: 此帳是台機器人
chosen_languages: 過濾語言 chosen_languages: 過濾語言
confirm_new_password: 確認新密碼 confirm_new_password: 確認新密碼
confirm_password: 確認密碼 confirm_password: 確認密碼
@ -105,14 +107,14 @@ zh-TW:
data: 資料 data: 資料
discoverable: 在目錄列出此帳戶 discoverable: 在目錄列出此帳戶
display_name: 顯示名稱 display_name: 顯示名稱
email: 電子信箱 email: 電子信箱
expires_in: 失效時間 expires_in: 失效時間
fields: 個人資料中繼資料 fields: 個人資料中繼資料
header: 頁面頂端 header: 頁面頂端
inbox_url: 中繼收件匣的 URL inbox_url: 中繼收件匣的 URL
irreversible: 放棄而非隱藏 irreversible: 放棄而非隱藏
locale: 介面語言 locale: 介面語言
locked: 鎖定帳 locked: 鎖定帳
max_uses: 最大使用次數 max_uses: 最大使用次數
new_password: 新密碼 new_password: 新密碼
note: 簡介 note: 簡介
@ -127,6 +129,7 @@ zh-TW:
setting_default_privacy: 嘟文可見範圍 setting_default_privacy: 嘟文可見範圍
setting_default_sensitive: 總是將媒體標記為敏感內容 setting_default_sensitive: 總是將媒體標記為敏感內容
setting_delete_modal: 刪除嘟文前先詢問我 setting_delete_modal: 刪除嘟文前先詢問我
setting_disable_swiping: 停用滑動手勢
setting_display_media: 媒體顯示 setting_display_media: 媒體顯示
setting_display_media_default: 預設 setting_display_media_default: 預設
setting_display_media_hide_all: 全部隱藏 setting_display_media_hide_all: 全部隱藏
@ -140,12 +143,16 @@ zh-TW:
setting_theme: 站點主題 setting_theme: 站點主題
setting_trends: 顯示本日趨勢 setting_trends: 顯示本日趨勢
setting_unfollow_modal: 取消關注某人前先詢問我 setting_unfollow_modal: 取消關注某人前先詢問我
setting_use_blurhash: 將隱藏媒體以彩色漸變圖樣表示
setting_use_pending_items: 限速模式 setting_use_pending_items: 限速模式
severity: 優先級 severity: 優先級
sign_in_token_attempt: 安全代碼
type: 匯入類型 type: 匯入類型
username: 使用者名稱 username: 使用者名稱
username_or_email: 使用者名稱或電子信箱 username_or_email: 使用者名稱或電子信箱
whole_word: 整個詞彙 whole_word: 整個詞彙
email_domain_block:
with_dns_records: 包括網域的 MX 記錄和 IP 位址
featured_tag: featured_tag:
name: "「#」標籤" name: "「#」標籤"
interactions: interactions:

View file

@ -158,7 +158,7 @@ sv:
protocol: Protokoll protocol: Protokoll
public: Offentlig public: Offentlig
push_subscription_expires: PuSH-prenumerationen löper ut push_subscription_expires: PuSH-prenumerationen löper ut
redownload: Uppdatera avatar redownload: Uppdatera profil
reject: Förkasta reject: Förkasta
reject_all: Förkasta allt / Avvisa alla reject_all: Förkasta allt / Avvisa alla
remove_avatar: Ta bort avatar remove_avatar: Ta bort avatar
@ -173,6 +173,7 @@ sv:
role: Behörigheter role: Behörigheter
roles: roles:
admin: Administratör admin: Administratör
moderator: Moderator
staff: Personal staff: Personal
user: Användare user: Användare
search: Sök search: Sök
@ -215,7 +216,7 @@ sv:
destroy_custom_emoji: Radera egen emoji destroy_custom_emoji: Radera egen emoji
destroy_domain_allow: Ta bort tillåten domän destroy_domain_allow: Ta bort tillåten domän
destroy_domain_block: Ta bort blockerad domän destroy_domain_block: Ta bort blockerad domän
destroy_ip_block: Ta bort IP-regel destroy_ip_block: Radera IP-regel
destroy_status: Ta bort status destroy_status: Ta bort status
disable_2fa_user: Inaktivera 2FA disable_2fa_user: Inaktivera 2FA
disable_custom_emoji: Inaktivera egna emojis disable_custom_emoji: Inaktivera egna emojis
@ -238,12 +239,15 @@ sv:
update_status: Uppdatera status update_status: Uppdatera status
deleted_status: "(raderad status)" deleted_status: "(raderad status)"
empty: Inga loggar hittades. empty: Inga loggar hittades.
filter_by_action: Filtrera efter åtgärd
filter_by_user: Filtrera efter användare
title: Revisionslogg title: Revisionslogg
announcements: announcements:
live: Direkt live: Direkt
publish: Publicera
scheduled_for: Schemalagd för %{time} scheduled_for: Schemalagd för %{time}
custom_emojis: custom_emojis:
assign_category: Ange kategori assign_category: Tilldela kategori
by_domain: Domän by_domain: Domän
copied_msg: Skapade en lokal kopia av emoji utan problem copied_msg: Skapade en lokal kopia av emoji utan problem
copy: Kopia copy: Kopia
@ -255,6 +259,7 @@ sv:
disable: Inaktivera disable: Inaktivera
disabled: Inaktiverad disabled: Inaktiverad
disabled_msg: Inaktiverade emoji utan problem disabled_msg: Inaktiverade emoji utan problem
emoji: Emoji
enable: Aktivera enable: Aktivera
enabled: Aktiverad enabled: Aktiverad
enabled_msg: Aktiverade den emoji utan problem enabled_msg: Aktiverade den emoji utan problem
@ -384,7 +389,8 @@ sv:
title: Filtrera title: Filtrera
title: Inbjudningar title: Inbjudningar
ip_blocks: ip_blocks:
delete: Ta bort add_new: Skapa regel
delete: Radera
expires_in: expires_in:
'1209600': 2 veckor '1209600': 2 veckor
'15778476': 6 månader '15778476': 6 månader
@ -410,6 +416,10 @@ sv:
created_msg: Anmälningsanteckning har skapats! created_msg: Anmälningsanteckning har skapats!
destroyed_msg: Anmälningsanteckning har raderats! destroyed_msg: Anmälningsanteckning har raderats!
reports: reports:
account:
reports:
one: "%{count} rapport"
other: "%{count} rapporter"
action_taken_by: Åtgärder vidtagna av action_taken_by: Åtgärder vidtagna av
are_you_sure: Är du säker? are_you_sure: Är du säker?
assign_to_self: Tilldela till mig assign_to_self: Tilldela till mig
@ -440,7 +450,7 @@ sv:
updated_at: Uppdaterad updated_at: Uppdaterad
rules: rules:
add_new: Lägg till regel add_new: Lägg till regel
delete: Ta bort delete: Radera
edit: Ändra regel edit: Ändra regel
title: Serverns regler title: Serverns regler
settings: settings:
@ -479,7 +489,7 @@ sv:
desc_html: Visas på framsidan när registreringen är stängd. Du kan använda HTML-taggar desc_html: Visas på framsidan när registreringen är stängd. Du kan använda HTML-taggar
title: Stängt registreringsmeddelande title: Stängt registreringsmeddelande
deletion: deletion:
desc_html: Tillåt alla att ta bort sitt konto desc_html: Tillåt vem som helst att radera sitt konto
title: Öppen kontoradering title: Öppen kontoradering
min_invite_role: min_invite_role:
disabled: Ingen disabled: Ingen
@ -531,6 +541,7 @@ sv:
last_active: Senast aktiv last_active: Senast aktiv
name: Hashtag name: Hashtag
title: Hashtaggar title: Hashtaggar
trending_right_now: Trenderar just nu
unreviewed: Ej granskad unreviewed: Ej granskad
title: Administration title: Administration
warning_presets: warning_presets:
@ -550,6 +561,7 @@ sv:
discovery: Upptäck discovery: Upptäck
localization: localization:
body: Mastodon översätts av volontärer. body: Mastodon översätts av volontärer.
guide_link: https://crowdin.com/project/mastodon
guide_link_text: Alla kan bidra. guide_link_text: Alla kan bidra.
sensitive_content: Känsligt innehåll sensitive_content: Känsligt innehåll
application_mailer: application_mailer:
@ -570,10 +582,11 @@ sv:
auth: auth:
apply_for_account: Be om en inbjudan apply_for_account: Be om en inbjudan
change_password: Lösenord change_password: Lösenord
delete_account: Ta bort konto delete_account: Radera konto
delete_account_html: Om du vill radera ditt konto kan du <a href="%{path}">fortsätta här</a>. Du kommer att bli ombedd att bekräfta. delete_account_html: Om du vill radera ditt konto kan du <a href="%{path}">fortsätta här</a>. Du kommer att bli ombedd att bekräfta.
description: description:
prefix_invited_by_user: "@%{name} bjuder in dig att gå med i en Mastodon-server!" prefix_invited_by_user: "@%{name} bjuder in dig att gå med i en Mastodon-server!"
prefix_sign_up: Registrera dig på Mastodon idag!
didnt_get_confirmation: Fick du inte instruktioner om bekräftelse? didnt_get_confirmation: Fick du inte instruktioner om bekräftelse?
forgot_password: Glömt ditt lösenord? forgot_password: Glömt ditt lösenord?
invalid_reset_password_token: Lösenordsåterställningstoken är ogiltig eller utgått. Vänligen be om en ny. invalid_reset_password_token: Lösenordsåterställningstoken är ogiltig eller utgått. Vänligen be om en ny.
@ -631,10 +644,13 @@ sv:
x_seconds: "%{count}sek" x_seconds: "%{count}sek"
deletes: deletes:
confirm_password: Ange ditt lösenord för att verifiera din identitet confirm_password: Ange ditt lösenord för att verifiera din identitet
proceed: Ta bort konto proceed: Radera konto
success_msg: Ditt konto har raderats success_msg: Ditt konto har raderats
warning: warning:
email_change_html: Du kan <a href="%{path}">ändra din e-postadress</a> utan att radera ditt konto
irreversible: Du kan inte återställa eller återaktivera ditt konto irreversible: Du kan inte återställa eller återaktivera ditt konto
directories:
explore_mastodon: Utforska %{title}
domain_validator: domain_validator:
invalid_domain: är inte ett giltigt domännamn invalid_domain: är inte ett giltigt domännamn
errors: errors:
@ -684,11 +700,13 @@ sv:
footer: footer:
developers: Utvecklare developers: Utvecklare
more: Mer… more: Mer…
resources: Resurser
trending_now: Trendar nu
generic: generic:
all: Alla all: Alla
changes_saved_msg: Ändringar sparades framgångsrikt! changes_saved_msg: Ändringar sparades framgångsrikt!
copy: Kopiera copy: Kopiera
delete: Ta bort delete: Radera
order_by: Sortera efter order_by: Sortera efter
save_changes: Spara ändringar save_changes: Spara ändringar
validation_errors: validation_errors:
@ -744,6 +762,7 @@ sv:
acct: användarnamn@domän av det nya kontot acct: användarnamn@domän av det nya kontot
cancel_explanation: Avstängning av omdirigeringen kommer att återaktivera ditt nuvarande konto, men kommer inte att återskapa följare som har flyttats till det kontot. cancel_explanation: Avstängning av omdirigeringen kommer att återaktivera ditt nuvarande konto, men kommer inte att återskapa följare som har flyttats till det kontot.
incoming_migrations: Flyttar från ett annat konto incoming_migrations: Flyttar från ett annat konto
proceed_with_move: Flytta följare
redirected_msg: Ditt konto dirigeras om till %{acct}. redirected_msg: Ditt konto dirigeras om till %{acct}.
moderation: moderation:
title: Moderera title: Moderera
@ -785,11 +804,14 @@ sv:
subject: "%{name} publicerade nyss" subject: "%{name} publicerade nyss"
notifications: notifications:
other_settings: Andra aviseringsinställningar other_settings: Andra aviseringsinställningar
otp_authentication:
enable: Aktivera
pagination: pagination:
newer: Nyare newer: Nyare
next: Nästa next: Nästa
older: Äldre older: Äldre
prev: Tidigare prev: Tidigare
truncate: "&hellip;"
polls: polls:
errors: errors:
invalid_choice: Det valda röstalternativet finns inte invalid_choice: Det valda röstalternativet finns inte
@ -806,6 +828,7 @@ sv:
remote_follow: remote_follow:
acct: Ange ditt användarnamn@domän du vill följa från 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 missing_resource: Det gick inte att hitta den begärda omdirigeringsadressen för ditt konto
no_account_html: Har du inget konto? Du kan <a href='%{sign_up_path}' target='_blank'>registrera dig här</a>
proceed: Fortsätt för att följa proceed: Fortsätt för att följa
prompt: 'Du kommer att följa:' prompt: 'Du kommer att följa:'
reason_html: "<strong>Varför är det här steget nödvändigt?</strong> <code>%{instance}</code> är kanske inte den server du är registrerad vid, så vi behöver dirigera dig till din hemserver först." reason_html: "<strong>Varför är det här steget nödvändigt?</strong> <code>%{instance}</code> är kanske inte den server du är registrerad vid, så vi behöver dirigera dig till din hemserver först."
@ -813,13 +836,29 @@ sv:
activity: Senaste aktivitet activity: Senaste aktivitet
browser: Webbläsare browser: Webbläsare
browsers: browsers:
alipay: Alipay
blackberry: Blackberry
chrome: Chrome
edge: Microsoft Edge
electron: Electron
firefox: Firefox
generic: Okänd browser generic: Okänd browser
ie: Internet Explorer
opera: Opera
safari: Safari
current_session: Nuvarande session current_session: Nuvarande session
description: "%{browser} på %{platform}" description: "%{browser} på %{platform}"
explanation: Detta är inloggade webbläsare på Mastodon just nu. explanation: Detta är inloggade webbläsare på Mastodon just nu.
platforms: platforms:
android: Android
blackberry: Blackberry
chrome_os: Chrome OS
firefox_os: Firefox OS
ios: iOS
linux: Linux
mac: Mac mac: Mac
other: okänd plattform other: okänd plattform
windows: Windows
revoke: Återkalla revoke: Återkalla
revoke_success: Sessionen återkallas framgångsrikt revoke_success: Sessionen återkallas framgångsrikt
title: Sessioner title: Sessioner
@ -841,6 +880,7 @@ sv:
profile: Profil profile: Profil
relationships: Följer och följare relationships: Följer och följare
two_factor_authentication: Tvåfaktorsautentisering two_factor_authentication: Tvåfaktorsautentisering
webauthn_authentication: Säkerhetsnycklar
statuses: statuses:
attached: attached:
description: 'Bifogad: %{attached}' description: 'Bifogad: %{attached}'
@ -862,8 +902,18 @@ sv:
ownership: Någon annans toot kan inte fästas ownership: Någon annans toot kan inte fästas
private: Icke-offentliga toot kan inte fästas private: Icke-offentliga toot kan inte fästas
reblog: Knuffar kan inte fästas reblog: Knuffar kan inte fästas
poll:
total_people:
one: "%{count} person"
other: "%{count} personer"
total_votes:
one: "%{count} röst"
other: "%{count} röster"
vote: Rösta
show_more: Visa mer show_more: Visa mer
show_thread: Visa tråd show_thread: Visa tråd
sign_in_to_participate: Logga in för att delta i konversationen
title: '%{name}: "%{quote}"'
visibilities: visibilities:
private: Endast följare private: Endast följare
private_long: Visa endast till följare private_long: Visa endast till följare
@ -963,7 +1013,9 @@ sv:
default: Mastodon default: Mastodon
mastodon-light: Mastodon (ljust) mastodon-light: Mastodon (ljust)
two_factor_authentication: two_factor_authentication:
add: Lägg till
disable: Inaktivera disable: Inaktivera
edit: Redigera
enabled: Tvåfaktorsautentisering är aktiverad enabled: Tvåfaktorsautentisering är aktiverad
enabled_success: Tvåfaktorsautentisering aktiverad enabled_success: Tvåfaktorsautentisering aktiverad
generate_recovery_codes: Generera återställningskoder generate_recovery_codes: Generera återställningskoder
@ -971,11 +1023,15 @@ sv:
recovery_codes: Backup återställningskod recovery_codes: Backup återställningskod
recovery_codes_regenerated: Återställningskoder genererades på nytt recovery_codes_regenerated: Återställningskoder genererades på nytt
recovery_instructions_html: Om du någonsin tappar åtkomst till din telefon kan du använda någon av återställningskoderna nedan för att återställa åtkomst till ditt konto. <strong> Håll återställningskoderna säkra </strong>. Du kan till exempel skriva ut dem och lagra dem med andra viktiga dokument. recovery_instructions_html: Om du någonsin tappar åtkomst till din telefon kan du använda någon av återställningskoderna nedan för att återställa åtkomst till ditt konto. <strong> Håll återställningskoderna säkra </strong>. Du kan till exempel skriva ut dem och lagra dem med andra viktiga dokument.
webauthn: Säkerhetsnycklar
user_mailer: user_mailer:
backup_ready: backup_ready:
explanation: Du begärde en fullständig säkerhetskopiering av ditt Mastodon-konto. Det är nu klart för nedladdning! explanation: Du begärde en fullständig säkerhetskopiering av ditt Mastodon-konto. Det är nu klart för nedladdning!
subject: Ditt arkiv är klart för nedladdning subject: Ditt arkiv är klart för nedladdning
title: Arkivuttagning title: Arkivuttagning
warning:
title:
none: Varning
welcome: welcome:
edit_profile_action: Profilinställning 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. 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.
@ -993,12 +1049,15 @@ sv:
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! 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!
title: Välkommen ombord, %{name}! title: Välkommen ombord, %{name}!
users: users:
follow_limit_reached: Du kan inte följa fler än %{limit} personer
invalid_otp_token: Ogiltig tvåfaktorskod invalid_otp_token: Ogiltig tvåfaktorskod
otp_lost_help_html: Om du förlorat åtkomst till båda kan du komma i kontakt med %{email} otp_lost_help_html: Om du förlorat åtkomst till båda kan du komma i kontakt med %{email}
seamless_external_login: Du är inloggad via en extern tjänst, så lösenord och e-postinställningar är inte tillgängliga. seamless_external_login: Du är inloggad via en extern tjänst, så lösenord och e-postinställningar är inte tillgängliga.
signed_in_as: 'Inloggad som:' signed_in_as: 'Inloggad som:'
webauthn_credentials: webauthn_credentials:
delete: Ta bort add: Lägg till ny säkerhetsnyckel
delete: Radera
delete_confirmation: Är du säker på att du vill ta bort denna säkerhetsnyckel? delete_confirmation: Är du säker på att du vill ta bort denna säkerhetsnyckel?
destroy: destroy:
success: Din säkerhetsnyckel har tagits bort. success: Din säkerhetsnyckel har raderats.
not_enabled: Du har inte aktiverat WebAuthn än

View file

@ -2,7 +2,7 @@
th: th:
about: about:
about_hashtag_html: มีการแท็กโพสต์สาธารณะเหล่านี้ด้วย <strong>#%{hashtag}</strong> คุณสามารถโต้ตอบกับโพสต์หากคุณมีบัญชีที่ใดก็ตามในเฟดิเวิร์ส about_hashtag_html: มีการแท็กโพสต์สาธารณะเหล่านี้ด้วย <strong>#%{hashtag}</strong> คุณสามารถโต้ตอบกับโพสต์หากคุณมีบัญชีที่ใดก็ตามในเฟดิเวิร์ส
about_mastodon_html: 'เครือข่ายสังคมแห่งอนาคต: ไม่มีโฆษณา, ไม่มีการสอดแนมโดยองค์กร, การออกแบบตามหลักจริยธรรม และการกระจายศูนย์! เป็นเจ้าของข้อมูลของคุณด้วย Mastodon!' about_mastodon_html: 'เครือข่ายสังคมแห่งอนาคต: ไม่มีโฆษณา ไม่มีการสอดแนมโดยองค์กร การออกแบบตามหลักจริยธรรม และการกระจายศูนย์! เป็นเจ้าของข้อมูลของคุณด้วย Mastodon!'
about_this: เกี่ยวกับ about_this: เกี่ยวกับ
active_count_after: ใช้งานอยู่ active_count_after: ใช้งานอยู่
active_footnote: ผู้ใช้งานรายเดือน (MAU) active_footnote: ผู้ใช้งานรายเดือน (MAU)
@ -1023,6 +1023,7 @@ th:
platforms: platforms:
adobe_air: Adobe Air adobe_air: Adobe Air
android: Android android: Android
chrome_os: Chrome OS
firefox_os: Firefox OS firefox_os: Firefox OS
ios: iOS ios: iOS
linux: Linux linux: Linux

View file

@ -18,14 +18,14 @@ zh-CN:
contact_unavailable: 未公开 contact_unavailable: 未公开
discover_users: 发现用户 discover_users: 发现用户
documentation: 文档 documentation: 文档
federation_hint_html: 在 %{instance} 上拥有账号后,你可以关注任何兼容 Mastodon 服务器上的人。 federation_hint_html: 在 %{instance} 上拥有账号后,你可以关注任何兼容Mastodon的服务器上的人。
get_apps: 尝试移动应用 get_apps: 尝试移动应用
hosted_on: 一个在 %{domain} 上运行的 Mastodon 实例 hosted_on: 一个在 %{domain} 上运行的 Mastodon 实例
instance_actor_flash: "这个账号是个虚拟帐号,不代表任何用户,只用来代表服务器本身。它用于和其它服务器互通,所以不应该被封禁,除非你想封禁整个实例。但是想封禁整个实例的时候,你应该用域名封禁。 \n" instance_actor_flash: "这个账号是个虚拟帐号,不代表任何用户,只用来代表服务器本身。它用于和其它服务器互通,所以不应该被封禁,除非你想封禁整个实例。但是想封禁整个实例的时候,你应该用域名封禁。 \n"
learn_more: 了解详情 learn_more: 了解详情
privacy_policy: 隐私政策 privacy_policy: 隐私政策
rules: 服务器规则 rules: 服务器规则
rules_html: 如果你想要在此 Mastodon 服务器上拥有一个账户,你必须遵守相应的规则,摘要如下: rules_html: 如果你想要在此Mastodon服务器上拥有一个账户你必须遵守相应的规则摘要如下
see_whats_happening: 看一看现在在发生什么 see_whats_happening: 看一看现在在发生什么
server_stats: 服务器统计数据: server_stats: 服务器统计数据:
source_code: 源代码 source_code: 源代码
@ -51,7 +51,7 @@ zh-CN:
what_is_mastodon: Mastodon 是什么? what_is_mastodon: Mastodon 是什么?
accounts: accounts:
choices_html: "%{name} 的推荐:" choices_html: "%{name} 的推荐:"
endorsements_hint: 你可以在 Web 界面上推荐你关注的人,他们会显示在这里。 endorsements_hint: 你可以在web界面上推荐你关注的人,他们会显示在这里。
featured_tags_hint: 你可以精选一些话题标签展示在这里。 featured_tags_hint: 你可以精选一些话题标签展示在这里。
follow: 关注 follow: 关注
followers: followers:
@ -189,8 +189,8 @@ zh-CN:
sensitized: 已标记为敏感内容 sensitized: 已标记为敏感内容
shared_inbox_url: 公用收件箱Shared InboxURL shared_inbox_url: 公用收件箱Shared InboxURL
show: show:
created_reports: 这个帐户提交的 created_reports: 这个帐户提交的
targeted_reports: 针对这个帐户的 targeted_reports: 针对这个帐户的
silence: 隐藏 silence: 隐藏
silenced: 已隐藏 silenced: 已隐藏
statuses: 嘟文 statuses: 嘟文
@ -214,7 +214,7 @@ zh-CN:
whitelisted: 允许跨站交互 whitelisted: 允许跨站交互
action_logs: action_logs:
action_types: action_types:
assigned_to_self_report: 指派 assigned_to_self_report: 指派
change_email_user: 为用户修改邮箱地址 change_email_user: 为用户修改邮箱地址
confirm_user: 确认用户 confirm_user: 确认用户
create_account_warning: 创建警告 create_account_warning: 创建警告
@ -242,13 +242,13 @@ zh-CN:
memorialize_account: 将账户设为追悼模式 memorialize_account: 将账户设为追悼模式
promote_user: 给用户升任 promote_user: 给用户升任
remove_avatar_user: 移除头像 remove_avatar_user: 移除头像
reopen_report: 重开 reopen_report: 重开
reset_password_user: 重置密码 reset_password_user: 重置密码
resolve_report: 处理 resolve_report: 处理
sensitive_account: 将你帐号中的媒体标记为敏感内容 sensitive_account: 将你帐号中的媒体标记为敏感内容
silence_account: 隐藏用户 silence_account: 隐藏用户
suspend_account: 封禁用户 suspend_account: 封禁用户
unassigned_report: 取消的指派 unassigned_report: 取消报的指派
unsensitive_account: 去除你帐号中媒体的敏感内容标记 unsensitive_account: 去除你帐号中媒体的敏感内容标记
unsilence_account: 解除账号隐藏 unsilence_account: 解除账号隐藏
unsuspend_account: 解除账号封禁 unsuspend_account: 解除账号封禁
@ -257,7 +257,7 @@ zh-CN:
update_domain_block: 更新域名屏蔽 update_domain_block: 更新域名屏蔽
update_status: 更新嘟文 update_status: 更新嘟文
actions: actions:
assigned_to_self_report_html: "%{name} 接管了 %{target}" assigned_to_self_report_html: "%{name} 接管了报 %{target}"
change_email_user_html: "%{name} 更改了用户 %{target} 的电子邮件地址" change_email_user_html: "%{name} 更改了用户 %{target} 的电子邮件地址"
confirm_user_html: "%{name} 确认了用户 %{target} 的电子邮件地址" confirm_user_html: "%{name} 确认了用户 %{target} 的电子邮件地址"
create_account_warning_html: "%{name} 向 %{target} 发送了警告" create_account_warning_html: "%{name} 向 %{target} 发送了警告"
@ -285,13 +285,13 @@ zh-CN:
memorialize_account_html: "%{name} 将 %{target} 设置为追悼帐户" memorialize_account_html: "%{name} 将 %{target} 设置为追悼帐户"
promote_user_html: "%{name} 对用户 %{target} 进行了升任操作" promote_user_html: "%{name} 对用户 %{target} 进行了升任操作"
remove_avatar_user_html: "%{name} 删除了 %{target} 的头像" remove_avatar_user_html: "%{name} 删除了 %{target} 的头像"
reopen_report_html: "%{name} 重开了 %{target}" reopen_report_html: "%{name} 重开了报 %{target}"
reset_password_user_html: "%{name} 重置了用户 %{target} 的密码" reset_password_user_html: "%{name} 重置了用户 %{target} 的密码"
resolve_report_html: "%{name} 处理了 %{target}" resolve_report_html: "%{name} 处理了报 %{target}"
sensitive_account_html: "%{name} 将 %{target} 的媒体标记为敏感内容" sensitive_account_html: "%{name} 将 %{target} 的媒体标记为敏感内容"
silence_account_html: "%{name} 隐藏了用户 %{target}" silence_account_html: "%{name} 隐藏了用户 %{target}"
suspend_account_html: "%{name} 封禁了用户 %{target}" suspend_account_html: "%{name} 封禁了用户 %{target}"
unassigned_report_html: "%{name} 放弃接管 %{target}" unassigned_report_html: "%{name} 放弃接管报 %{target}"
unsensitive_account_html: "%{name} 去除了 %{target} 的媒体的敏感内容标记" unsensitive_account_html: "%{name} 去除了 %{target} 的媒体的敏感内容标记"
unsilence_account_html: "%{name} 解除了用户 %{target} 的隐藏状态" unsilence_account_html: "%{name} 解除了用户 %{target} 的隐藏状态"
unsuspend_account_html: "%{name} 解除了用户 %{target} 的封禁状态" unsuspend_account_html: "%{name} 解除了用户 %{target} 的封禁状态"
@ -366,7 +366,7 @@ zh-CN:
feature_timeline_preview: 时间轴预览 feature_timeline_preview: 时间轴预览
features: 功能 features: 功能
hidden_service: 匿名服务连通性 hidden_service: 匿名服务连通性
open_reports: 待处理 open_reports: 待处理报数
pending_tags: 等待审核的标签 pending_tags: 等待审核的标签
pending_users: 等待审核的用户 pending_users: 等待审核的用户
recent_users: 新用户 recent_users: 新用户
@ -410,10 +410,10 @@ zh-CN:
public_comment_hint: 给这一域名限制添加公开的评论,如果你推广你的域名限制列表的话,这些评论就会显示出来。 public_comment_hint: 给这一域名限制添加公开的评论,如果你推广你的域名限制列表的话,这些评论就会显示出来。
reject_media: 拒绝接收媒体文件 reject_media: 拒绝接收媒体文件
reject_media_hint: 删除本站已缓存的媒体文件,并且不再接收来自该域名的任何媒体文件。此选项不影响封禁 reject_media_hint: 删除本站已缓存的媒体文件,并且不再接收来自该域名的任何媒体文件。此选项不影响封禁
reject_reports: 拒绝接收 reject_reports: 拒绝接收
reject_reports_hint: 忽略来自此域名的所有。这和封禁无关。 reject_reports_hint: 忽略来自此域名的所有报。这和封禁无关。
rejecting_media: 拒绝接收媒体文件 rejecting_media: 拒绝接收媒体文件
rejecting_reports: 拒绝接收 rejecting_reports: 拒绝接收
severity: severity:
silence: 已隐藏 silence: 已隐藏
suspend: 已封禁 suspend: 已封禁
@ -440,7 +440,7 @@ zh-CN:
title: 添加电子邮件域名屏蔽 title: 添加电子邮件域名屏蔽
title: 电子邮件域名屏蔽 title: 电子邮件域名屏蔽
follow_recommendations: follow_recommendations:
description_html: "<strong>“关注推荐”帮助新用户快速找到有趣的内容</strong>。 当用户与他人的互动不足以形成个性化的建议时,就会推荐关注这些账户。每日都会更新推荐,基于选定语言的近期最高互动数和最多本站关注者数综合评估得出。" description_html: "<strong>“关注推荐”帮助新用户快速找到有趣的内容</strong>。 当用户与他人的互动不足以形成个性化的建议时,就会推荐关注这些账户。推荐会每日更新,基于选定语言的近期最高互动数和最多本站关注者数综合评估得出。"
language: 选择语言 language: 选择语言
status: 嘟文 status: 嘟文
suppress: 禁用推荐关注 suppress: 禁用推荐关注
@ -449,12 +449,12 @@ zh-CN:
unsuppress: 恢复推荐关注 unsuppress: 恢复推荐关注
instances: instances:
back_to_all: 全部 back_to_all: 全部
back_to_limited: 隐藏 back_to_limited: 受限
back_to_warning: 警告 back_to_warning: 警告
by_domain: 域名 by_domain: 域名
delivery: delivery:
all: 全部 all: 全部
clear: 投递错误 clear: 投递错误
restart: 重新投递 restart: 重新投递
stop: 停止投递 stop: 停止投递
title: 投递 title: 投递
@ -479,7 +479,7 @@ zh-CN:
total_blocked_by_us: 被我站屏蔽的 total_blocked_by_us: 被我站屏蔽的
total_followed_by_them: 被对方关注的 total_followed_by_them: 被对方关注的
total_followed_by_us: 被我站关注的 total_followed_by_us: 被我站关注的
total_reported: 关于对方的 total_reported: 关于对方的
total_storage: 媒体文件 total_storage: 媒体文件
invites: invites:
deactivate_all: 撤销所有邀请链接 deactivate_all: 撤销所有邀请链接
@ -525,8 +525,8 @@ zh-CN:
status: 状态 status: 状态
title: 中继站 title: 中继站
report_notes: report_notes:
created_msg: 记录建立成功! created_msg: 报记录建立成功!
destroyed_msg: 记录删除成功! destroyed_msg: 报记录删除成功!
reports: reports:
account: account:
notes: notes:
@ -537,10 +537,10 @@ zh-CN:
are_you_sure: 你确定吗? are_you_sure: 你确定吗?
assign_to_self: 接管 assign_to_self: 接管
assigned: 已接管的监察员 assigned: 已接管的监察员
by_target_domain: 账户的域名 by_target_domain: 报账户的域名
comment: comment:
none: 没有 none: 没有
created_at: 时间 created_at: 报时间
forwarded: 已转发 forwarded: 已转发
forwarded_to: 转发举报至 %{domain} forwarded_to: 转发举报至 %{domain}
mark_as_resolved: 标记为“已处理” mark_as_resolved: 标记为“已处理”
@ -551,14 +551,14 @@ zh-CN:
create_and_unresolve: 添加记录并重开 create_and_unresolve: 添加记录并重开
delete: 删除 delete: 删除
placeholder: 描述已经执行的操作,或其他任何相关的跟进情况… placeholder: 描述已经执行的操作,或其他任何相关的跟进情况…
reopen: 重开 reopen: 重开
report: ' #%{id}' report: '报 #%{id}'
reported_account: 用户 reported_account: 报用户
reported_by: reported_by: 报人
resolved: 已处理 resolved: 已处理
resolved_msg: 处理成功! resolved_msg: 报处理成功!
status: 状态 status: 状态
title: title:
unassign: 取消接管 unassign: 取消接管
unresolved: 未处理 unresolved: 未处理
updated_at: 更新时间 updated_at: 更新时间
@ -710,9 +710,9 @@ zh-CN:
body: 新帐户的详细信息如下。你可以批准或拒绝此申请。 body: 新帐户的详细信息如下。你可以批准或拒绝此申请。
subject: 在 %{instance} 上有新帐号 ( %{username}) 需要审核 subject: 在 %{instance} 上有新帐号 ( %{username}) 需要审核
new_report: new_report:
body: "%{reporter} 了用户 %{target}" body: "%{reporter} 报了用户 %{target}"
body_remote: 来自 %{domain} 的用户了用户 %{target} body_remote: 来自 %{domain} 的用户报了用户 %{target}
subject: 来自 %{instance} 的用户#%{id} subject: 来自 %{instance} 的用户报(#%{id}
new_trending_tag: new_trending_tag:
body: '今日的热门话题 #%{name} 之前未经审核。直到你允许之前这个话题将不会公开显示,或者就保持原样让它石沉大海。' body: '今日的热门话题 #%{name} 之前未经审核。直到你允许之前这个话题将不会公开显示,或者就保持原样让它石沉大海。'
subject: 在 %{instance} 有新话题 (#%{name}) 待审核 subject: 在 %{instance} 有新话题 (#%{name}) 待审核
@ -724,8 +724,8 @@ zh-CN:
hint_html: 如果你想把另一个帐号迁移到这里,你可以先在这里创建一个别名。如果你想把关注者迁移过来,这一步是必须的。设置别名的操作时<strong>无害而且可以恢复的</strong>。<strong>帐号迁移的操作会从旧帐号开始</strong>。 hint_html: 如果你想把另一个帐号迁移到这里,你可以先在这里创建一个别名。如果你想把关注者迁移过来,这一步是必须的。设置别名的操作时<strong>无害而且可以恢复的</strong>。<strong>帐号迁移的操作会从旧帐号开始</strong>。
remove: 取消关联别名 remove: 取消关联别名
appearance: appearance:
advanced_web_interface: 高级 Web 界面 advanced_web_interface: 高级web界面
advanced_web_interface_hint: 如果你想使用整个屏幕宽度,高级 Web 界面允许你配置多个不同的栏目,可以同时看到更多的信息:主页、通知、跨站时间轴、任意数量的列表和话题标签。 advanced_web_interface_hint: 如果你想使用整个屏幕宽度,高级 web 界面允许您配置多个不同的栏目,可以同时看到更多的信息:主页、通知、跨站时间轴、任意数量的列表和话题标签。
animations_and_accessibility: 动画和访问选项 animations_and_accessibility: 动画和访问选项
confirmation_dialogs: 确认对话框 confirmation_dialogs: 确认对话框
discovery: 发现 discovery: 发现
@ -887,7 +887,7 @@ zh-CN:
csv: CSV csv: CSV
domain_blocks: 域名屏蔽 domain_blocks: 域名屏蔽
lists: 列表 lists: 列表
mutes: 静音的用户 mutes: 隐藏的用户
storage: 媒体文件存储 storage: 媒体文件存储
featured_tags: featured_tags:
add_new: 添加新条目 add_new: 添加新条目
@ -1031,7 +1031,7 @@ zh-CN:
title: 运营 title: 运营
move_handler: move_handler:
carry_blocks_over_text: 这个用户迁移自你屏蔽过的 %{acct} carry_blocks_over_text: 这个用户迁移自你屏蔽过的 %{acct}
carry_mutes_over_text: 这个用户迁移自你静音过的 %{acct} carry_mutes_over_text: 这个用户迁移自你隐藏过的 %{acct}
copy_account_note_text: 这个用户迁移自 %{acct},你曾为其添加备注: copy_account_note_text: 这个用户迁移自 %{acct},你曾为其添加备注:
notification_mailer: notification_mailer:
digest: digest:
@ -1445,8 +1445,8 @@ zh-CN:
error: 删除你的安全密钥时出错。请重试。 error: 删除你的安全密钥时出错。请重试。
success: 你的安全密钥已成功删除。 success: 你的安全密钥已成功删除。
invalid_credential: 无效的安全密钥 invalid_credential: 无效的安全密钥
nickname_hint: 输入你新安全密钥的昵称 nickname_hint: 输入你新安全密钥的昵称
not_enabled: 你尚未启用 WebAuthn not_enabled: 你尚未启用WebAuthn
not_supported: 此浏览器不支持安全密钥 not_supported: 此浏览器不支持安全密钥
otp_required: 要使用安全密钥,请先启用两步验证。 otp_required: 要使用安全密钥,请先启用两步验证。
registered_on: 注册于 %{date} registered_on: 注册于 %{date}

View file

@ -25,7 +25,7 @@ zh-TW:
learn_more: 了解詳細 learn_more: 了解詳細
privacy_policy: 隱私權政策 privacy_policy: 隱私權政策
rules: 伺服器規則 rules: 伺服器規則
rules_html: 以下是您若想在此 Mastodon 伺服器建立帳必須遵守的規則總結: rules_html: 以下是您若想在此 Mastodon 伺服器建立帳必須遵守的規則總結:
see_whats_happening: 看看發生什麼事 see_whats_happening: 看看發生什麼事
server_stats: 伺服器統計: server_stats: 伺服器統計:
source_code: 原始碼 source_code: 原始碼
@ -57,7 +57,7 @@ zh-TW:
followers: followers:
other: 關注者 other: 關注者
following: 正在關注 following: 正在關注
instance_actor_flash: 這個帳是一個用來代表此伺服器的虛擬執行者,而非真實使用者。它用途為站點聯盟且不應被停權。 instance_actor_flash: 這個帳是一個用來代表此伺服器的虛擬執行者,而非真實使用者。它用途為站點聯盟且不應被停權。
joined: 加入於 %{date} joined: 加入於 %{date}
last_active: 上次活躍時間 last_active: 上次活躍時間
link_verified_on: 此連結的所有權已在 %{date} 檢查過 link_verified_on: 此連結的所有權已在 %{date} 檢查過
@ -99,12 +99,12 @@ zh-TW:
avatar: 頭像 avatar: 頭像
by_domain: 站點 by_domain: 站點
change_email: change_email:
changed_msg: 已成功變更帳戶電子信箱址! changed_msg: 已成功變更帳戶電子信箱址!
current_email: 目前的電子信箱 current_email: 目前的電子信箱
label: 變更電子信箱 label: 變更電子信箱
new_email: 新的電子信箱 new_email: 新的電子信箱
submit: 變更電子信箱 submit: 變更電子信箱
title: 為 %{username} 變更電子信箱 title: 為 %{username} 變更電子信箱
confirm: 確定 confirm: 確定
confirmed: 已確定 confirmed: 已確定
confirming: 確定 confirming: 確定
@ -118,7 +118,7 @@ zh-TW:
display_name: 暱稱 display_name: 暱稱
domain: 站點 domain: 站點
edit: 編輯 edit: 編輯
email: 電子信箱 email: 電子信箱
email_status: 電子信箱狀態 email_status: 電子信箱狀態
enable: 啟用 enable: 啟用
enabled: 已啟用 enabled: 已啟用
@ -140,7 +140,7 @@ zh-TW:
media_attachments: 多媒體附件 media_attachments: 多媒體附件
memorialize: 設定為追悼帳戶 memorialize: 設定為追悼帳戶
memorialized: 被悼念的 memorialized: 被悼念的
memorialized_msg: 成功將%{username} 的帳號變為紀念帳號 memorialized_msg: 成功將%{username} 的帳戶變為紀念帳戶
moderation: moderation:
active: 活躍 active: 活躍
all: 全部 all: 全部
@ -151,7 +151,7 @@ zh-TW:
moderation_notes: 管理備忘 moderation_notes: 管理備忘
most_recent_activity: 最近活動 most_recent_activity: 最近活動
most_recent_ip: 最近 IP 位址 most_recent_ip: 最近 IP 位址
no_account_selected: 未選取任何帳,因此未變更 no_account_selected: 未選取任何帳,因此未變更
no_limits_imposed: 未受限制 no_limits_imposed: 未受限制
not_subscribed: 未訂閱 not_subscribed: 未訂閱
pending: 等待審核中 pending: 等待審核中
@ -164,7 +164,7 @@ zh-TW:
redownloaded_msg: 成功重新載入%{username} 的個人資料頁面 redownloaded_msg: 成功重新載入%{username} 的個人資料頁面
reject: 拒絕 reject: 拒絕
reject_all: 全部拒絕 reject_all: 全部拒絕
rejected_msg: 成功拒絕了%{username} 的新帳申請 rejected_msg: 成功拒絕了%{username} 的新帳申請
remove_avatar: 取消頭像 remove_avatar: 取消頭像
remove_header: 移除開頭 remove_header: 移除開頭
removed_avatar_msg: 成功刪除了 %{username} 的頭像 removed_avatar_msg: 成功刪除了 %{username} 的頭像
@ -200,7 +200,7 @@ zh-TW:
suspension_reversible_hint_html: 這個帳戶已被暫停,所有數據將會在 %{date} 被刪除。在此之前,您可以完全回復您的帳戶。如果您想即時刪除這個帳戶的數據,您可以在下面進行操作。 suspension_reversible_hint_html: 這個帳戶已被暫停,所有數據將會在 %{date} 被刪除。在此之前,您可以完全回復您的帳戶。如果您想即時刪除這個帳戶的數據,您可以在下面進行操作。
time_in_queue: 正在佇列等待 %{time} time_in_queue: 正在佇列等待 %{time}
title: 帳戶 title: 帳戶
unconfirmed_email: 未確認的電子信箱 unconfirmed_email: 未確認的電子信箱
undo_sensitized: 取消敏感狀態 undo_sensitized: 取消敏感狀態
undo_silenced: 取消靜音 undo_silenced: 取消靜音
undo_suspension: 取消停權 undo_suspension: 取消停權
@ -215,7 +215,7 @@ zh-TW:
action_logs: action_logs:
action_types: action_types:
assigned_to_self_report: 指派回報 assigned_to_self_report: 指派回報
change_email_user: 變更使用者的電子信箱 change_email_user: 變更使用者的電子信箱
confirm_user: 確認使用者 confirm_user: 確認使用者
create_account_warning: 建立警告 create_account_warning: 建立警告
create_announcement: 建立公告 create_announcement: 建立公告
@ -237,17 +237,17 @@ zh-TW:
disable_user: 停用帳戶 disable_user: 停用帳戶
enable_custom_emoji: 啓用自訂顏文字 enable_custom_emoji: 啓用自訂顏文字
enable_user: 啓用帳戶 enable_user: 啓用帳戶
memorialize_account: 設定成紀念帳 memorialize_account: 設定成紀念帳
promote_user: 把用戶升級 promote_user: 把用戶升級
remove_avatar_user: 刪除大頭貼 remove_avatar_user: 刪除大頭貼
reopen_report: 重開舉報 reopen_report: 重開舉報
reset_password_user: 重設密碼 reset_password_user: 重設密碼
resolve_report: 消除舉報 resolve_report: 消除舉報
sensitive_account: 把您的帳的媒體標記為敏感內容 sensitive_account: 把您的帳的媒體標記為敏感內容
silence_account: 靜音用戶 silence_account: 靜音用戶
suspend_account: 暫停用戶 suspend_account: 暫停用戶
unassigned_report: 取消指派舉報 unassigned_report: 取消指派舉報
unsensitive_account: 取消把您的帳的媒體設定為敏感內容 unsensitive_account: 取消把您的帳的媒體設定為敏感內容
unsilence_account: 取消用戶的靜音狀態 unsilence_account: 取消用戶的靜音狀態
unsuspend_account: 取消用戶的暫停狀態 unsuspend_account: 取消用戶的暫停狀態
update_announcement: 更新公告 update_announcement: 更新公告
@ -393,7 +393,12 @@ zh-TW:
title: 新增電子信箱黑名單項目 title: 新增電子信箱黑名單項目
title: 電子信箱黑名單 title: 電子信箱黑名單
instances: instances:
back_to_all: 所有
back_to_warning: 警告
by_domain: 站台 by_domain: 站台
delivery:
all: 所有
warning: 警告
delivery_available: 可傳送 delivery_available: 可傳送
empty: 找不到網域 empty: 找不到網域
known_accounts: known_accounts:
@ -466,7 +471,7 @@ zh-TW:
are_you_sure: 你確定嗎? are_you_sure: 你確定嗎?
assign_to_self: 指派給自己 assign_to_self: 指派給自己
assigned: 指派負責人 assigned: 指派負責人
by_target_domain: 檢舉帳之網域 by_target_domain: 檢舉帳之網域
comment: comment:
none: none:
created_at: 日期 created_at: 日期
@ -493,6 +498,7 @@ zh-TW:
updated_at: 更新 updated_at: 更新
rules: rules:
add_new: 新增規則 add_new: 新增規則
delete: 刪除
edit: 編輯規則 edit: 編輯規則
title: 伺服器規則 title: 伺服器規則
settings: settings:
@ -503,7 +509,7 @@ zh-TW:
desc_html: 以半形逗號分隔多個使用者名。只能加入來自本站且未開啟保護的帳戶。如果留空,則預設關注本站所有管理員。 desc_html: 以半形逗號分隔多個使用者名。只能加入來自本站且未開啟保護的帳戶。如果留空,則預設關注本站所有管理員。
title: 新使用者預設關注 title: 新使用者預設關注
contact_information: contact_information:
email: 用於聯絡的公開電子信箱 email: 用於聯絡的公開電子信箱
username: 請輸入使用者名稱 username: 請輸入使用者名稱
custom_css: custom_css:
desc_html: 透過於每個頁面都載入的 CSS 調整外觀 desc_html: 透過於每個頁面都載入的 CSS 調整外觀
@ -632,8 +638,8 @@ zh-TW:
title: 管理預設警告 title: 管理預設警告
admin_mailer: admin_mailer:
new_pending_account: new_pending_account:
body: 以下是新帳的詳細資訊。您可以同意或拒絕這項申請。 body: 以下是新帳的詳細資訊。您可以同意或拒絕這項申請。
subject: "%{instance} 上有新帳 (%{username}) 待審核" subject: "%{instance} 上有新帳 (%{username}) 待審核"
new_report: new_report:
body: "%{reporter} 檢舉了使用者 %{target}" body: "%{reporter} 檢舉了使用者 %{target}"
body_remote: 來自 %{domain} 的使用者檢舉了使用者 %{target} body_remote: 來自 %{domain} 的使用者檢舉了使用者 %{target}
@ -643,10 +649,10 @@ zh-TW:
subject: "%{instance} 上有待審核的主題標籤 (#%{name})" subject: "%{instance} 上有待審核的主題標籤 (#%{name})"
aliases: aliases:
add_new: 建立別名 add_new: 建立別名
created_msg: 成功建立別名。您可以自舊帳開始轉移。 created_msg: 成功建立別名。您可以自舊帳開始轉移。
deleted_msg: 成功移除別名。您將無法再由舊帳號轉移到當前帳號 deleted_msg: 成功移除別名。您將無法再由舊帳戶轉移到目前的帳戶
empty: 您目前沒有任何別名。 empty: 您目前沒有任何別名。
hint_html: 如果想由其他帳號轉移到此帳號,您可以在此處創建別名,稍後系統將容許您把關注者由舊帳號轉移至此。此項作業是<strong>無害且可復原的</strong>。 <strong>帳號的遷移程序需要在舊帳號啟動</strong>。 hint_html: 如果想由其他帳戶轉移到此帳戶,您可以在此處建立別名,稍後系統將容許您把關注者由舊帳戶轉移至此。此項作業是<strong>無害且可復原的</strong>。 <strong>帳戶的遷移程序需要在舊帳戶啟動</strong>。
remove: 取消連結別名 remove: 取消連結別名
appearance: appearance:
advanced_web_interface: 進階網頁介面 advanced_web_interface: 進階網頁介面
@ -684,8 +690,8 @@ zh-TW:
delete_account_html: 如果你想刪除你的帳戶,請<a href="%{path}">點擊這裡繼續</a>。你需要確認你的操作。 delete_account_html: 如果你想刪除你的帳戶,請<a href="%{path}">點擊這裡繼續</a>。你需要確認你的操作。
description: description:
prefix_invited_by_user: "@%{name} 邀請您加入這個 Mastodon 伺服器!" prefix_invited_by_user: "@%{name} 邀請您加入這個 Mastodon 伺服器!"
prefix_sign_up: 現在就註冊 Mastodon 帳吧! prefix_sign_up: 現在就註冊 Mastodon 帳吧!
suffix: 有了帳,就可以從任何 Mastodon 伺服器關注任何人、發發廢嘟,並且與任何 Mastodon 伺服器的使用者交♂流? suffix: 有了帳,就可以從任何 Mastodon 伺服器關注任何人、發發廢嘟,並且與任何 Mastodon 伺服器的使用者交流,以及更多
didnt_get_confirmation: 沒有收到驗證信? didnt_get_confirmation: 沒有收到驗證信?
dont_have_your_security_key: 找不到您的安全金鑰? dont_have_your_security_key: 找不到您的安全金鑰?
forgot_password: 忘記密碼? forgot_password: 忘記密碼?
@ -708,14 +714,14 @@ zh-TW:
set_new_password: 設定新密碼 set_new_password: 設定新密碼
setup: setup:
email_below_hint_html: 如果此電子郵件地址不正確,您可於此修改並接收郵件進行認證。 email_below_hint_html: 如果此電子郵件地址不正確,您可於此修改並接收郵件進行認證。
email_settings_hint_html: 請確認 e-mail 是否傳送到 %{email} 。如果不對的話,可以從帳號設定修改 email_settings_hint_html: 請確認電子信件是否寄至 %{email} 。如果不對的話,可以在帳戶設定裡變更
title: 設定 title: 設定
status: status:
account_status: 狀態 account_status: 狀態
confirming: 等待電子郵件確認完成。 confirming: 等待電子郵件確認完成。
functional: 您的帳可以正常使用了。 functional: 您的帳可以正常使用了。
pending: 管管們正在處理您的申請,這可能需要一點時間處理。我們將在申請通過後以電子郵件方式通知您。 pending: 管管們正在處理您的申請,這可能需要一點時間處理。我們將在申請通過後以電子郵件方式通知您。
redirecting_to: 您的帳號因目前重定向至 %{acct} 而被停用。 redirecting_to: 您的帳戶因目前重新導向至 %{acct} 而被停用。
too_fast: 送出表單的速度太快跟不上,請稍後再試。 too_fast: 送出表單的速度太快跟不上,請稍後再試。
trouble_logging_in: 登錄時遇到困難? trouble_logging_in: 登錄時遇到困難?
use_security_key: 使用安全金鑰 use_security_key: 使用安全金鑰
@ -768,10 +774,10 @@ zh-TW:
before: 在進行下一步驟之前,請詳細閱讀以下説明: before: 在進行下一步驟之前,請詳細閱讀以下説明:
caches: 已被其他節點快取的內容可能會殘留其中 caches: 已被其他節點快取的內容可能會殘留其中
data_removal: 您的嘟文和其他資料將會被永久刪除 data_removal: 您的嘟文和其他資料將會被永久刪除
email_change_html: 你可以在不刪除帳的情況下<a href="%{path}">變更你的電子郵件地址</a> email_change_html: 你可以在不刪除帳的情況下<a href="%{path}">變更你的電子郵件地址</a>
email_contact_html: 如果你仍然沒有收到郵件,請寄信到 <a href="mailto:%{email}">%{email}</a> 以獲得協助 email_contact_html: 如果你仍然沒有收到郵件,請寄信到 <a href="mailto:%{email}">%{email}</a> 以獲得協助
email_reconfirmation_html: 如果你沒有收到確認郵件,你可以<a href="%{path}">請求再次發送</a> email_reconfirmation_html: 如果你沒有收到確認郵件,你可以<a href="%{path}">請求再次發送</a>
irreversible: 你將無法復原或重新啟用你的帳 irreversible: 你將無法復原或重新啟用你的帳
more_details_html: 更多詳細資訊,請參閲<a href="%{terms_path}">隱私政策</a>。 more_details_html: 更多詳細資訊,請參閲<a href="%{terms_path}">隱私政策</a>。
username_available: 你的使用者名稱將會釋出供他人使用 username_available: 你的使用者名稱將會釋出供他人使用
username_unavailable: 你的使用者名稱將會保留並不予他人使用 username_unavailable: 你的使用者名稱將會保留並不予他人使用
@ -870,8 +876,8 @@ zh-TW:
inactive: 非活躍 inactive: 非活躍
publicize_checkbox: 並發嘟: publicize_checkbox: 並發嘟:
publicize_toot: 驗證成功!我在是住在 %{service} 的 %{username} %{url} publicize_toot: 驗證成功!我在是住在 %{service} 的 %{username} %{url}
remove: 移除帳證明 remove: 移除帳證明
removed: 成功移除帳證明 removed: 成功移除帳證明
status: 驗證狀態 status: 驗證狀態
view_proof: 檢視證明 view_proof: 檢視證明
imports: imports:
@ -924,18 +930,19 @@ zh-TW:
migrations: migrations:
acct: 新帳戶的 使用者名稱@站點網域 acct: 新帳戶的 使用者名稱@站點網域
cancel: 取消重導向 cancel: 取消重導向
cancel_explanation: 取消重導向將會重新啓用目前帳號,但不會還原已移至該帳號的關注者。 cancel_explanation: 取消重新導向將會重新啟用目前帳戶,但不會還原已移至該帳號的關注者。
cancelled_msg: 成功取消重導向。 cancelled_msg: 成功取消重導向。
errors: errors:
already_moved: 與已經重導向的帳戶相同 already_moved: 與已經重導向的帳戶相同
missing_also_known_as: 不是這個帳的別名 missing_also_known_as: 不是這個帳的別名
move_to_self: 不能是目前帳 move_to_self: 不能是目前帳
not_found: 找不到 not_found: 找不到
on_cooldown: 你正在處於冷卻CD狀態 on_cooldown: 你正在處於冷卻CD狀態
followers_count: 轉移時的追隨者 followers_count: 轉移時的追隨者
incoming_migrations: 自另一個帳轉移 incoming_migrations: 自另一個帳轉移
proceed_with_move: 移動關注者 proceed_with_move: 移動關注者
redirected_msg: 您的帳號現在指向 %{acct} redirected_msg: 您的帳戶現在指向 %{acct}
set_redirect: 設定重新導向
moderation: moderation:
title: 營運 title: 營運
notification_mailer: notification_mailer:
@ -975,6 +982,11 @@ zh-TW:
next: 下一頁 next: 下一頁
older: 較舊 older: 較舊
prev: 上一頁 prev: 上一頁
preferences:
other: 其他
relationships:
moved: 已轉移
status: 帳戶狀態
remote_follow: remote_follow:
acct: 請輸入您的使用者名稱@站點網域 acct: 請輸入您的使用者名稱@站點網域
missing_resource: 無法找到資源 missing_resource: 無法找到資源
@ -1006,11 +1018,25 @@ zh-TW:
explanation: 這些是現在正登入於你的 Mastodon 帳戶的瀏覽器。 explanation: 這些是現在正登入於你的 Mastodon 帳戶的瀏覽器。
ip: IP 位址 ip: IP 位址
platforms: platforms:
adobe_air: Adobe Air
android: Android
blackberry: 黑莓機 Blackberry
chrome_os: Chrome OS
firefox_os: Firefox OS
ios: iOS
linux: Linux
mac: Mac mac: Mac
other: 不明平台
windows: Windows
windows_mobile: Windows Mobile
windows_phone: Windows Phone
revoke: 取消 revoke: 取消
revoke_success: Session 取消成功 revoke_success: Session 取消成功
title: 作業階段 title: 作業階段
settings: settings:
account: 帳戶
account_settings: 帳戶設定
aliases: 帳戶別名
appearance: 外觀設定 appearance: 外觀設定
authorized_apps: 已授權應用程式 authorized_apps: 已授權應用程式
back: 回到 Mastodon back: 回到 Mastodon
@ -1019,7 +1045,9 @@ zh-TW:
edit_profile: 編輯使用者資訊 edit_profile: 編輯使用者資訊
export: 匯出 export: 匯出
featured_tags: 推薦標籤 featured_tags: 推薦標籤
identity_proofs: 身分驗證
import: 匯入 import: 匯入
import_and_export: 匯入及匯出
migrate: 帳戶搬遷 migrate: 帳戶搬遷
notifications: 通知 notifications: 通知
preferences: 偏好設定 preferences: 偏好設定

View file

@ -15,7 +15,13 @@ class AddCaseInsensitiveIndexToTags < ActiveRecord::Migration[5.2]
Tag.where(id: redundant_tag_ids).in_batches.delete_all Tag.where(id: redundant_tag_ids).in_batches.delete_all
end end
begin
safety_assured { execute 'CREATE UNIQUE INDEX CONCURRENTLY index_tags_on_name_lower ON tags (lower(name))' } safety_assured { execute 'CREATE UNIQUE INDEX CONCURRENTLY index_tags_on_name_lower ON tags (lower(name))' }
rescue ActiveRecord::StatementInvalid
remove_index :tags, name: 'index_tags_on_name_lower'
raise
end
remove_index :tags, name: 'index_tags_on_name' remove_index :tags, name: 'index_tags_on_name'
remove_index :tags, name: 'hashtag_search_index' remove_index :tags, name: 'hashtag_search_index'
end end

View file

@ -1,16 +1,10 @@
require Rails.root.join('lib', 'mastodon', 'migration_helpers')
class AddFixedLowercaseIndexToAccounts < ActiveRecord::Migration[5.2] class AddFixedLowercaseIndexToAccounts < ActiveRecord::Migration[5.2]
include Mastodon::MigrationHelpers
disable_ddl_transaction! disable_ddl_transaction!
class CorruptionError < StandardError
def cause
nil
end
def backtrace
[]
end
end
def up def up
if index_name_exists?(:accounts, 'old_index_accounts_on_username_and_domain_lower') && index_name_exists?(:accounts, 'index_accounts_on_username_and_domain_lower') if index_name_exists?(:accounts, 'old_index_accounts_on_username_and_domain_lower') && index_name_exists?(:accounts, 'index_accounts_on_username_and_domain_lower')
remove_index :accounts, name: 'index_accounts_on_username_and_domain_lower' remove_index :accounts, name: 'index_accounts_on_username_and_domain_lower'
@ -21,7 +15,8 @@ class AddFixedLowercaseIndexToAccounts < ActiveRecord::Migration[5.2]
begin begin
add_index :accounts, "lower (username), COALESCE(lower(domain), '')", name: 'index_accounts_on_username_and_domain_lower', unique: true, algorithm: :concurrently add_index :accounts, "lower (username), COALESCE(lower(domain), '')", name: 'index_accounts_on_username_and_domain_lower', unique: true, algorithm: :concurrently
rescue ActiveRecord::RecordNotUnique rescue ActiveRecord::RecordNotUnique
raise CorruptionError, 'Migration failed because of index corruption, see https://docs.joinmastodon.org/admin/troubleshooting/index-corruption/#fixing' remove_index :accounts, name: 'index_accounts_on_username_and_domain_lower'
raise CorruptionError
end end
remove_index :accounts, name: 'old_index_accounts_on_username_and_domain_lower' if index_name_exists?(:accounts, 'old_index_accounts_on_username_and_domain_lower') remove_index :accounts, name: 'old_index_accounts_on_username_and_domain_lower' if index_name_exists?(:accounts, 'old_index_accounts_on_username_and_domain_lower')

View file

@ -1,8 +1,19 @@
require Rails.root.join('lib', 'mastodon', 'migration_helpers')
class AddCaseInsensitiveBtreeIndexToTags < ActiveRecord::Migration[5.2] class AddCaseInsensitiveBtreeIndexToTags < ActiveRecord::Migration[5.2]
include Mastodon::MigrationHelpers
disable_ddl_transaction! disable_ddl_transaction!
def up def up
begin
safety_assured { execute 'CREATE UNIQUE INDEX CONCURRENTLY index_tags_on_name_lower_btree ON tags (lower(name) text_pattern_ops)' } safety_assured { execute 'CREATE UNIQUE INDEX CONCURRENTLY index_tags_on_name_lower_btree ON tags (lower(name) text_pattern_ops)' }
rescue ActiveRecord::StatementInvalid => e
remove_index :tags, name: 'index_tags_on_name_lower_btree'
raise CorruptionError if e.is_a?(ActiveRecord::RecordNotUnique)
raise e
end
remove_index :tags, name: 'index_tags_on_name_lower' remove_index :tags, name: 'index_tags_on_name_lower'
end end

View file

@ -0,0 +1,9 @@
# frozen_string_literal: true
class RemoveLockVersionFromAccountStats < ActiveRecord::Migration[5.2]
def change
safety_assured do
remove_column :account_stats, :lock_version, :integer, null: false, default: 0
end
end
end

View file

@ -10,7 +10,7 @@
# #
# It's strongly recommended that you check this file into your version control system. # It's strongly recommended that you check this file into your version control system.
ActiveRecord::Schema.define(version: 2021_05_07_001928) do ActiveRecord::Schema.define(version: 2021_05_26_193025) do
# These are extensions that must be enabled in order to support this database # These are extensions that must be enabled in order to support this database
enable_extension "plpgsql" enable_extension "plpgsql"
@ -111,7 +111,6 @@ ActiveRecord::Schema.define(version: 2021_05_07_001928) do
t.datetime "created_at", null: false t.datetime "created_at", null: false
t.datetime "updated_at", null: false t.datetime "updated_at", null: false
t.datetime "last_status_at" t.datetime "last_status_at"
t.integer "lock_version", default: 0, null: false
t.index ["account_id"], name: "index_account_stats_on_account_id", unique: true t.index ["account_id"], name: "index_account_stats_on_account_id", unique: true
end end

View file

@ -14,7 +14,7 @@ module Mastodon
end end
MIN_SUPPORTED_VERSION = 2019_10_01_213028 MIN_SUPPORTED_VERSION = 2019_10_01_213028
MAX_SUPPORTED_VERSION = 2021_05_07_001928 MAX_SUPPORTED_VERSION = 2021_05_26_193025
# Stubs to enjoy ActiveRecord queries while not depending on a particular # Stubs to enjoy ActiveRecord queries while not depending on a particular
# version of the code/database # version of the code/database

View file

@ -41,6 +41,20 @@
module Mastodon module Mastodon
module MigrationHelpers module MigrationHelpers
class CorruptionError < StandardError
def initialize(message = nil)
super(message.presence || 'Migration failed because of index corruption, see https://docs.joinmastodon.org/admin/troubleshooting/index-corruption/#fixing')
end
def cause
nil
end
def backtrace
[]
end
end
# Model that can be used for querying permissions of a SQL user. # Model that can be used for querying permissions of a SQL user.
class Grant < ActiveRecord::Base class Grant < ActiveRecord::Base
self.table_name = 'information_schema.role_table_grants' self.table_name = 'information_schema.role_table_grants'

View file

@ -102,7 +102,7 @@ module Mastodon
ActiveRecord::Base.connection_pool.with_connection do ActiveRecord::Base.connection_pool.with_connection do
grouped_records = type.adapter.send(:grouped_objects, records) grouped_records = type.adapter.send(:grouped_objects, records)
bulk_body = Chewy::Type::Import::BulkBuilder.new(type, grouped_records).bulk_body bulk_body = Chewy::Type::Import::BulkBuilder.new(type, **grouped_records).bulk_body
end end
index_count = grouped_records[:index].size if grouped_records.key?(:index) index_count = grouped_records[:index].size if grouped_records.key?(:index)

View file

@ -13,7 +13,7 @@ module Mastodon
end end
def patch def patch
0 1
end end
def flags def flags

View file

@ -45,7 +45,7 @@ end
namespace :emojis do namespace :emojis do
desc 'Generate a unicode to filename mapping' desc 'Generate a unicode to filename mapping'
task :generate do task :generate do
source = 'http://www.unicode.org/Public/emoji/12.0/emoji-test.txt' source = 'http://www.unicode.org/Public/emoji/13.1/emoji-test.txt'
codes = [] codes = []
dest = Rails.root.join('app', 'javascript', 'mastodon', 'features', 'emoji', 'emoji_map.json') dest = Rails.root.join('app', 'javascript', 'mastodon', 'features', 'emoji', 'emoji_map.json')

View file

@ -64,7 +64,7 @@
"@babel/plugin-proposal-decorators": "^7.14.2", "@babel/plugin-proposal-decorators": "^7.14.2",
"@babel/plugin-transform-react-inline-elements": "^7.12.13", "@babel/plugin-transform-react-inline-elements": "^7.12.13",
"@babel/plugin-transform-runtime": "^7.14.3", "@babel/plugin-transform-runtime": "^7.14.3",
"@babel/preset-env": "^7.14.2", "@babel/preset-env": "^7.14.4",
"@babel/preset-react": "^7.13.13", "@babel/preset-react": "^7.13.13",
"@babel/runtime": "^7.14.0", "@babel/runtime": "^7.14.0",
"@gamestdio/websocket": "^0.3.2", "@gamestdio/websocket": "^0.3.2",
@ -86,11 +86,11 @@
"color-blend": "^3.0.1", "color-blend": "^3.0.1",
"compression-webpack-plugin": "^6.1.1", "compression-webpack-plugin": "^6.1.1",
"cross-env": "^7.0.3", "cross-env": "^7.0.3",
"css-loader": "^5.2.5", "css-loader": "^5.2.6",
"cssnano": "^4.1.11", "cssnano": "^4.1.11",
"detect-passive-events": "^2.0.3", "detect-passive-events": "^2.0.3",
"dotenv": "^9.0.2", "dotenv": "^9.0.2",
"emoji-mart": "Gargron/emoji-mart#build", "emoji-mart": "^3.0.1",
"es6-symbol": "^3.1.3", "es6-symbol": "^3.1.3",
"escape-html": "^1.0.3", "escape-html": "^1.0.3",
"exif-js": "^2.3.0", "exif-js": "^2.3.0",
@ -142,7 +142,7 @@
"react-router-scroll-4": "^1.0.0-beta.1", "react-router-scroll-4": "^1.0.0-beta.1",
"react-select": "^4.3.1", "react-select": "^4.3.1",
"react-sparklines": "^1.7.0", "react-sparklines": "^1.7.0",
"react-swipeable-views": "^0.13.9", "react-swipeable-views": "^0.14.0",
"react-textarea-autosize": "^8.3.2", "react-textarea-autosize": "^8.3.2",
"react-toggle": "^4.1.2", "react-toggle": "^4.1.2",
"redis": "^3.1.2", "redis": "^3.1.2",
@ -177,12 +177,12 @@
"@testing-library/jest-dom": "^5.12.0", "@testing-library/jest-dom": "^5.12.0",
"@testing-library/react": "^11.2.7", "@testing-library/react": "^11.2.7",
"babel-eslint": "^10.1.0", "babel-eslint": "^10.1.0",
"babel-jest": "^26.6.3", "babel-jest": "^27.0.2",
"eslint": "^7.27.0", "eslint": "^7.27.0",
"eslint-plugin-import": "~2.23.3", "eslint-plugin-import": "~2.23.4",
"eslint-plugin-jsx-a11y": "~6.4.1", "eslint-plugin-jsx-a11y": "~6.4.1",
"eslint-plugin-promise": "~5.1.0", "eslint-plugin-promise": "~5.1.0",
"eslint-plugin-react": "~7.23.2", "eslint-plugin-react": "~7.24.0",
"jest": "^26.6.3", "jest": "^26.6.3",
"raf": "^3.4.1", "raf": "^3.4.1",
"react-intl-translations-manager": "^5.0.3", "react-intl-translations-manager": "^5.0.3",

View file

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#060" d="M36 27c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V9c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v18z"/><path fill="#D52B1E" d="M32 5H15v26h17c2.209 0 4-1.791 4-4V9c0-2.209-1.791-4-4-4z"/><path fill="#FFCC4D" d="M15 10c-4.418 0-8 3.582-8 8s3.582 8 8 8 8-3.582 8-8-3.582-8-8-8zm3.994 5.938l2.089-1.393c.491.863.803 1.839.888 2.881l-2.977-1.488zM16 24h2.592c-.779.467-1.655.786-2.592.92V24zm-7.971-6.574c.083-1.022.383-1.982.858-2.832l1.602 1.602-2.46 1.23zm0 1.147l3.747 1.874.447-.895L9.118 18l2.116-1.058 1.412 1.412.707-.707-1.176-1.176.046-.023-.447-.895-.344.172-.975-.975 1.461.244.164-.986-2.514-.419c1.084-1.333 2.65-2.253 4.432-2.508V23h-3.099l2.376-1.584-.555-.832-3 2 .014.021c-.959-1.097-1.582-2.492-1.707-4.032zM14 24.92c-.937-.135-1.813-.453-2.592-.92H14v.92zm6.287-2.34l-2.933-2.933-.707.707.471.471-.395.592L19.099 23H16V11.08c1.321.189 2.524.741 3.499 1.561l-2.657.886.316.948 3-1-.103-.308c.167.174.323.357.471.548l-2.804 1.869L18 16l-.224.447L20.882 18l-3.105 1.553.447.895 3.747-1.874c-.124 1.527-.737 2.913-1.684 4.006z"/><path fill="#D52B1E" d="M11 13v7c0 2.209 1.791 4 4 4s4-1.791 4-4v-7h-8z"/><path fill="#FFF" d="M12 14v6c0 1.656 1.343 3 3 3s3-1.344 3-3v-6h-6z"/><path fill="#829ACD" d="M13 17h4v2h-4z"/><path fill="#829ACD" d="M14 16h2v4h-2z"/><path fill="#039" d="M12 17h1v2h-1zm2 0h2v2h-2zm3 0h1v2h-1zm-3 3h2v2h-2zm0-6h2v2h-2z"/></svg> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#060" d="M36 27c0 2.209-1.791 4-4 4H4c-2.209 0-4-1.791-4-4V9c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v18z"/><path fill="#D52B1E" d="M32 5H15v26h17c2.209 0 4-1.791 4-4V9c0-2.209-1.791-4-4-4z"/><path fill="#FFCC4D" d="M15 10c-4.419 0-8 3.581-8 8 0 4.418 3.581 8 8 8 4.418 0 8-3.582 8-8 0-4.419-3.582-8-8-8zm-6.113 4.594l1.602 1.602-2.46 1.23c.083-1.022.383-1.981.858-2.832zm-.858 3.979l4.4 2.207-2.706 1.804.014.021c-.96-1.097-1.583-2.492-1.708-4.032zM14 24.92c-.937-.134-1.813-.453-2.592-.92H14v.92zM14 23h-3.099L14 20.934V23zm0-3.268l-.607.405L9.118 18l2.116-1.058L14 19.707v.025zm0-1.439l-3.543-3.543 3.543.59v2.953zm0-3.992l-4.432-.713c1.084-1.333 2.65-2.253 4.432-2.508v3.221zm7.113.293c.475.851.775 1.81.858 2.833l-2.46-1.23 1.602-1.603zM16 11.08c1.782.256 3.348 1.175 4.432 2.508L16 14.301V11.08zm0 4.26l3.543-.591L16 18.293V15.34zm0 4.367l2.765-2.765L20.882 18l-4.274 2.137-.608-.405v-.025zm0 5.213V24h2.592c-.779.467-1.655.786-2.592.92zM16 23v-2.066L19.099 23H16zm4.264-.395l.014-.021-2.706-1.804 4.4-2.207c-.126 1.54-.749 2.935-1.708 4.032z"/><path fill="#D52B1E" d="M11 13v7c0 2.209 1.791 4 4 4s4-1.791 4-4v-7h-8z"/><path fill="#FFF" d="M12 14v6c0 1.656 1.343 3 3 3s3-1.344 3-3v-6h-6z"/><path fill="#829ACD" d="M13 17h4v2h-4z"/><path fill="#829ACD" d="M14 16h2v4h-2z"/><path fill="#039" d="M12 17h1v2h-1zm2 0h2v2h-2zm3 0h1v2h-1zm-3 3h2v2h-2zm0-6h2v2h-2z"/></svg>

Before

Width:  |  Height:  |  Size: 1.4 KiB

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#ED1C24" d="M32 5H4C1.791 5 0 6.791 0 9h36c0-2.209-1.791-4-4-4z"/><path fill="#EEE" d="M0 9h36v4H0z"/><path fill="#ED1C24" d="M32 31H4c-2.209 0-4-1.791-4-4h36c0 2.209-1.791 4-4 4z"/><path fill="#EEE" d="M0 23h36v4H0z"/><path fill="#241D4F" d="M0 13h36v10H0z"/></svg> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#A7122D" d="M0 26.518V27c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4v-.482H0z"/><path fill="#EEE" d="M0 22.181h36v4.485H0z"/><path fill="#292648" d="M0 13.513h36v8.821H0z"/><path fill="#EEE" d="M0 9.181h36v4.485H0z"/><path fill="#A7122D" d="M0 9.333V9c0-2.209 1.791-4 4-4h28c2.209 0 4 1.791 4 4v.333H0z"/></svg>

Before

Width:  |  Height:  |  Size: 338 B

After

Width:  |  Height:  |  Size: 382 B

View file

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#D99E82" cx="18" cy="18" r="17"/><path fill="#8A4B38" d="M22.638 16.947c1.177-.385 2.444.261 2.827 1.44.384 1.179-.26 2.447-1.441 2.831-1.181.384-3.871.201-4.255-.978-.383-1.181 1.687-2.911 2.869-3.293zm8.57-.672c-.38.452-1.055.512-1.507.131-.452-.381-.511-1.055-.131-1.508.381-.451 1.514-1.057 1.966-.677.453.381.053 1.601-.328 2.054zm-22-7c-.38.452-1.055.512-1.507.131-.452-.381-.511-1.054-.131-1.508.381-.451 1.514-1.057 1.966-.677.453.381.053 1.601-.328 2.054zm12.093-1.894c-.748-.478-.969-1.472-.49-2.22.479-.749 1.473-.968 2.222-.49.749.479 1.872 2.05 1.394 2.798-.48.75-2.377.392-3.126-.088zm-7.926 6.217c-.515-1.066-.064-2.351 1.005-2.864s2.351-.061 2.864 1.008c.513 1.07.682 3.643-.387 4.154-1.071.514-2.971-1.227-3.482-2.298zm1.024 14.099c.602-.874 1.8-1.096 2.672-.492.874.605 1.094 1.801.49 2.675s-2.528 2.147-3.4 1.544c-.875-.604-.366-2.854.238-3.727zm10.013-.406c-.687-.436-.889-1.348-.449-2.034.438-.685 1.349-.886 2.035-.447.686.438 1.715 1.878 1.276 2.562-.438.688-2.176.359-2.862-.081zM5.536 18.42c.762-.853 2.071-.926 2.923-.163.852.764.924 2.071.161 2.922-.763.854-2.992 1.955-3.843 1.191-.854-.763-.005-3.099.759-3.95z"/></svg> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#DA9F83" d="M34.966 17.87c.414 4.649-2.082 8.731-4.831 12.206-2.304 2.554-5.602 3.631-8.901 4.285-3.198 1.089-6.766.739-9.716-.895-1.034-.43-2.248-.559-3.167-1.176-2.879-1.846-4.524-4.927-5.779-8.029-1.627-2.916-1.74-6.483-1.414-9.742.219-1.107.967-2.032 1.388-3.051.729-2.127 1.916-3.963 3.569-5.475.786-.787 1.377-1.823 2.303-2.444.919-.617 2.103-.758 3.137-1.188 1.016-.422 1.968-1.08 3.072-1.299 1.072-.213 2.201.106 3.335.106 2.235-.056 4.482.148 6.575.789 1.034.43 1.781 1.38 2.7 1.997.926.622 1.999 1.04 2.784 1.827 1.603 1.566 2.984 3.411 3.94 5.446.65 2.109.957 4.389 1.005 6.643z"/><path fill="#8A4B38" d="M22.638 16.947c1.177-.385 2.444.261 2.827 1.44.384 1.179-.26 2.447-1.441 2.831-1.181.384-3.871.201-4.255-.978-.383-1.181 1.687-2.911 2.869-3.293zm8.57-.672c-.38.452-1.055.512-1.507.131-.452-.381-.511-1.055-.131-1.508.381-.451 1.514-1.057 1.966-.677.453.381.053 1.601-.328 2.054zm-22-7c-.38.452-1.055.512-1.507.131-.452-.381-.511-1.054-.131-1.508.381-.451 1.514-1.057 1.966-.677.453.381.053 1.601-.328 2.054zm12.093-1.894c-.748-.478-.969-1.472-.49-2.22.479-.749 1.473-.968 2.222-.49.749.479 1.872 2.05 1.394 2.798-.48.75-2.377.392-3.126-.088zm-7.926 6.217c-.515-1.066-.064-2.351 1.005-2.864s2.351-.061 2.864 1.008c.513 1.07.682 3.643-.387 4.154-1.071.514-2.971-1.227-3.482-2.298zm1.024 14.099c.602-.874 1.8-1.096 2.672-.492.874.605 1.094 1.801.49 2.675s-2.528 2.147-3.4 1.544c-.875-.604-.366-2.854.238-3.727zm10.013-.406c-.687-.436-.889-1.348-.449-2.034.438-.685 1.349-.886 2.035-.447.686.438 1.715 1.878 1.276 2.562-.438.688-2.176.359-2.862-.081zM5.536 18.42c.762-.853 2.071-.926 2.923-.163.852.764.924 2.071.161 2.922-.763.854-2.992 1.955-3.843 1.191-.854-.763-.005-3.099.759-3.95z"/></svg>

Before

Width:  |  Height:  |  Size: 1.2 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 7 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

View file

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#CCD6DD" cx="18" cy="18" r="18"/><circle fill="#3B88C3" cx="18" cy="18" r="14"/><circle fill="#DD2E44" cx="18" cy="18" r="10"/><circle fill="#FFAC33" cx="18" cy="18" r="6"/><path d="M34.864 29.199c-.42.306-1.257.592-1.934.592-1.965 0-4.654-.717-6.334-2.386l-2.954-3.872c-.274-.275-.357-.575-.21-.932.148-.359-.73-.601-.342-.601h5.058c1.867 0 4.308 1.256 5.925 3.018l.371.351c.772.843 1.183 1.629 1.182 2.386 0 .621-.272 1.087-.762 1.444z"/><path d="M28.305 35.204c-.771 0-1.632-.417-2.49-1.204l-.488-.378C23.532 31.977 22 29.491 22 27.59v-5.164c0-.396.5.514.865.363.363-.15.915-.066 1.195.214l3.166 3.124c1.699 1.711 3.061 4.619 3.061 6.62 0 .689-.143 1.255-.452 1.682-.364.499-.897.775-1.53.775z"/><path fill="#C1694F" d="M31.345 31.964c-.256 0-.487-.122-.683-.317l-14-14c-.391-.391-.391-1.023 0-1.415.391-.391 1.023-.39 1.414 0l14 14c.391.391.378 1.036-.013 1.427-.194.195-.461.305-.718.305z"/></svg> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><circle fill="#DD2E44" cx="18" cy="18" r="18"/><circle fill="#FFF" cx="18" cy="18" r="13.5"/><circle fill="#DD2E44" cx="18" cy="18" r="10"/><circle fill="#FFF" cx="18" cy="18" r="6"/><circle fill="#DD2E44" cx="18" cy="18" r="3"/><path opacity=".2" d="M18.24 18.282l13.144 11.754s-2.647 3.376-7.89 5.109L17.579 18.42l.661-.138z"/><path fill="#FFAC33" d="M18.294 19c-.255 0-.509-.097-.704-.292-.389-.389-.389-1.018 0-1.407l.563-.563c.389-.389 1.018-.389 1.408 0 .388.389.388 1.018 0 1.407l-.564.563c-.194.195-.448.292-.703.292z"/><path fill="#55ACEE" d="M24.016 6.981c-.403 2.079 0 4.691 0 4.691l7.054-7.388c.291-1.454-.528-3.932-1.718-4.238-1.19-.306-4.079.803-5.336 6.935zm5.003 5.003c-2.079.403-4.691 0-4.691 0l7.388-7.054c1.454-.291 3.932.528 4.238 1.718.306 1.19-.803 4.079-6.935 5.336z"/><path fill="#3A87C2" d="M32.798 4.485L21.176 17.587c-.362.362-1.673.882-2.51.046-.836-.836-.419-2.08-.057-2.443L31.815 3.501s.676-.635 1.159-.152-.176 1.136-.176 1.136z"/></svg>

Before

Width:  |  Height:  |  Size: 976 B

After

Width:  |  Height:  |  Size: 1 KiB

View file

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5BCEFA" d="M0 27c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4v-1.3H0V27z"/><path fill="#F5A9B8" d="M.026 20.5L0 25.8h36v-5.3z"/><path fill="#EEE" d="M0 15.3h36v5.3H0z"/><path fill="#F5A9B8" d="M.026 10.1L0 15.4h36v-5.3z"/><path fill="#5BCEFA" d="M36 9c0-2.209-1.791-4-4-4H4C1.791 5 0 6.791 0 9v1.2h36V9z"/></svg> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#5BCEFA" d="M0 27c0 2.209 1.791 4 4 4h28c2.209 0 4-1.791 4-4v-1.3H0V27z"/><path fill="#F5A9B8" d="M.026 20.5L0 25.8h36v-5.3z"/><path fill="#EEE" d="M0 15.3h36v5.3H0z"/><path fill="#F5A9B8" d="M0 9.902h36V15.4H0z"/><path fill="#5BCEFA" d="M36 9c0-2.209-1.791-4-4-4H4C1.791 5 0 6.791 0 9v1.2h36V9z"/></svg>

Before

Width:  |  Height:  |  Size: 383 B

After

Width:  |  Height:  |  Size: 376 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M10.478 22.439s.702 2.281-.337 7.993c-.186 1.025-.46 2.072-.599 2.93-1.757 0-1.851 2.002-1.478 2.002h2.094c1.337 0 2.971-3.334 3.854-7.961s-3.534-4.964-3.534-4.964zm13.042 3.702s2.272 1.22 2.188 4.081c-.033 1.131-.249 2.091-.355 3.024-1.832 0-1.839 1.985-1.305 1.985h1.856c.923 0 3.001-3.158 3.379-7.281.379-4.122-5.763-1.809-5.763-1.809z"/><path fill="#292F33" d="M36 8.447C36 3.525 31.859 1 27 1c-.553 0-1 .448-1 1s.447 1 1 1c1.804 0 6.717.934 6.717 5.447 0 2.881-1.567 5.462-3.77 5.982-.164-.073-.345-.104-.509-.192-7.239-3.917-13.457.902-15.226-.29-1.752-1.182-.539-3.255-2.824-5.243-.33-1.841-1.073-4.477-1.794-4.477-.549 0-1.265 1.825-1.74 3.656-.591-1.381-1.363-2.756-1.86-2.756-.64 0-1.278 2.273-1.594 4.235-1.68 1.147-2.906 2.809-2.906 4.765 0 2.7 4.05 3.357 5.4 3.411 1.35.054 3.023 3.562 3.585 5.072 1.242 4.367 2.051 8.699 2.698 11.183-1.649 0-1.804 2.111-1.348 2.111.713 0 1.953-.003 2.225 0 1.381.014 2.026-4.706 2.026-8.849 0-.212-.011-.627-.011-.627s1.93.505 6.038-.208c2.444-.424 5.03.849 5.746 3.163.527 1.704 1.399 3.305 1.868 4.484-1.589 0-1.545 2.037-1.084 2.037.787 0 1.801.014 2.183 0 1.468-.055.643-7.574 1.03-10.097s1.267-5.578-.229-8.797C34.857 15.236 36 11.505 36 8.447z"/><circle fill="#C3C914" cx="5.994" cy="11.768" r=".9"/><path fill="#66757F" d="M2.984 12.86c-.677.423-.677 1.777-1.015 1.777S.954 13.841.954 12.86c-.001-.981 2.862-.52 2.03 0zm3.594 1.483c-.041.026-.09.036-.142.026-.018-.004-1.548-.241-2.545.146-.129.05-.341-.023-.413-.191s.023-.365.152-.415c1.44-.569 2.857-.234 2.934-.218.139.029.195.19.188.372-.004.114-.104.235-.174.28zm-.472 2.339c-.048.009-.097-.001-.141-.031-.015-.01-1.331-.83-2.402-.853-.138-.003-.305-.154-.305-.341 0-.186.165-.335.304-.333 1.552.024 2.724.891 2.789.937.117.082.104.255.027.424-.049.107-.189.182-.272.197z"/><path d="M7.854 7.881s.372-.039.859.033c.217-.46.585-.887.585-.887s.281.668.386 1.179c.025.12.218.117.322.189 0 0 .038-3.463-.863-3.836.001-.002-.755 1.124-1.289 3.322zM4.399 9.36s.384-.267.883-.574c.217-.624.568-1.333.568-1.333s.307.602.345.81c.21-.114.21-.106.403-.19 0 0-.114-2.286-1.099-2.527 0 0-.732 1.372-1.1 3.814z" fill="#7F676D"/><path fill="#66757F" d="M18.45 23.644c-2.649.57-2.38 2.782-2.38 2.782s1.93.505 6.038-.208c1.067-.185 2.153-.03 3.107.377-1.607-3.047-4.315-3.479-6.765-2.951z"/><path fill="#292F33" d="M5.976 10.982s.333.347.319.778c-.014.43-.25.833-.25.833s-.292-.347-.319-.826c-.027-.48.25-.785.25-.785z"/></svg>

After

Width:  |  Height:  |  Size: 2.4 KiB

View file

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M29.213 17.569c2.079-1.322 4.403-3.87 4.403-8.673 0-.552-.447-1-1-1s-1 .448-1 1c0 3.828-1.742 5.863-3.341 6.929-1.582-1.303-4.898-1.289-8.067-1.289-4.361 0-7.897 1.65-7.897 5.076S15.847 24 20.208 24c2.143 0 4.355-.644 6.056-1.701 1.1 3.606 4.093 10.286 5.351 10.286 1.557 0-2.384-12.683-2.384-14.665 0-.13-.006-.245-.018-.351z"/><path fill="#CCD6DD" d="M13.439 32.585c-1.558 0-2.947-10.221-2.947-12.202 0-1.983 1.262-3.59 2.82-3.59 1.556 0 2.819 1.607 2.819 3.59.001 1.981-1.135 12.202-2.692 12.202z"/><path fill="#99AAB5" d="M23.592 19.049c0 4.982-2.608 9.023-7.592 9.023S5.989 24.011 5.543 19.049C5 13 8.455 11 13.439 11s10.153 3.064 10.153 8.049zm-6.768 14.664c0 1.868-1.516 2.256-3.384 2.256-1.869 0-3.384-.388-3.384-2.256s1.515-3.384 3.384-3.384c1.868 0 3.384 1.516 3.384 3.384zm18.176 0c0 1.868-1.516 2.256-3.385 2.256-1.868 0-3.384-.388-3.384-2.256s1.516-3.384 3.384-3.384c1.869 0 3.385 1.516 3.385 3.384zm1-24.817c0 1.869-1.516 3.384-3.384 3.384-1.868 0-3.385-1.516-3.385-3.384 0-1.868 1.517-3.384 3.385-3.384C34.484 5.512 36 7.028 36 8.896z"/><path fill="#CCD6DD" d="M14.567 9.104c0 1.869-2.778 3.384-6.204 3.384-3.426 0-7.332-4.512-7.332-5.64 0-1.128 3.906-1.128 7.332-1.128 3.427 0 6.204 1.515 6.204 3.384z"/><path fill="#66757F" d="M16.837 2.53c-.045-1.16-.581-2.45-4.526-2.45-2.804 0-6.768 3.266-6.768 4.512s2.272 2.256 5.076 2.256c.322 0 .651-.031.983-.083-.283 1.199-.419 2.572-.419 4.031 0 4.672 1.397 6.204 4.512 6.204 3.115 0 4.512-1.532 4.512-6.204.001-4.057-1.055-7.443-3.37-8.266z"/><path fill="#292F33" d="M2.256 6.128c0 .623-.505 1.128-1.128 1.128S0 6.751 0 6.128C0 5.505.505 5 1.128 5s1.128.505 1.128 1.128z"/></svg> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#99AAB5" d="M30.016 33.887c-.804.654-1.278.708-1.357 1.156-.151.855.855.855 1.86.754 1.006-.101 1.106-.905.905-1.86-.201-.955-1.408-.05-1.408-.05zm-16.591 0c-.804.654-1.278.708-1.357 1.156-.151.855.855.855 1.86.754 1.006-.101 1.106-.905.905-1.86s-1.408-.05-1.408-.05z"/><path fill="#66757F" d="M25.039 33.133c-.804.654-1.278.708-1.357 1.156-.151.855.855.855 1.86.754 1.006-.101 1.106-.905.905-1.86-.202-.955-1.408-.05-1.408-.05zm-15.938 0c-.804.654-1.278.708-1.357 1.156-.151.855.855.855 1.86.754 1.006-.101 1.106-.905.905-1.86s-1.408-.05-1.408-.05z"/><path fill="#66757F" d="M19.446 23.182c1.879.01 2.338.358 2.734 1.367 1.269 3.234 1.958 2.001 2.264 4.419.311 2.453.272 4.449.708 4.676 1.004.523 2.59.817 1.11-4.995-.396-1.555-.783-4.266-.268-5.843.753-2.303.744-4.007.885-4.641-7.49.29-9.145 5.008-7.433 5.017z"/><path fill="#CCD6DD" d="M28.256 16.743c1.993-1.268 3.117-1.982 3.117-6.586 0-.529-.073-1.408-.603-1.408s-.352.526-.352 1.056c0 3.669-1.063 4.679-3.005 5.594-1.517-1.249-4.696-1.236-7.734-1.236-4.181 0-7.57 1.582-7.57 4.866s.89 4.571 5.071 4.571c1.45 0 2.856-.284 4.529-.647 1.837-.398 2.335.63 2.941 1.529 1.941 2.882 2.823 1.706 3.646 3.999.836 2.328 1.231 4.284 1.706 4.411 1.094.293 2.705.235 0-5.117-.724-1.432-1.69-3.995-1.529-5.646.235-2.411-.143-4.073-.143-4.723 0-.123-.062-.561-.074-.663z"/><path fill="#66757F" d="M9.702 32.226c-1.444-.38.837-6.535-1.191-8.533-1.355-1.334 1.369-7.759 2.854-7.596 1.483.163.692 4.949.484 6.839-.144 1.308-1.288 5.351-.726 7.671.323 1.336-.694 1.811-1.421 1.619z"/><path fill="#66757F" d="M12.318 31.59c-.147 1.785-1.27 2.066-2.616 1.955-1.346-.111-2.408-.571-2.261-2.356s1.357-3.143 2.704-3.033c1.347.111 2.32 1.649 2.173 3.434z"/><path fill="#CCD6DD" d="M13.772 32.472c-1.489-.111-.364-6.578-2.722-8.174-1.575-1.066-.064-7.879 1.425-7.988 1.488-.109 1.58 4.741 1.719 6.637.096 1.312-.294 5.496.681 7.675.561 1.254-.352 1.906-1.103 1.85z"/><path fill="#99AAB5" d="M20.914 18.184c0 4.6-1.198 7.245-5.767 7.791-5.644.675-10.032-2.963-9.608-7.544.528-5.707 3.78-7.425 7.29-7.431 4.601-.008 8.085 2.582 8.085 7.184z"/><path fill="#99AAB5" d="M22.575 18.402c0 4.6-2.859 7.027-7.428 7.573-5.644.675-10.032-2.963-9.608-7.544.528-5.707 3.772-7.665 7.282-7.671 2.598-.005 5.43 0 7.179 2.607 2.123.561 2.575 3.032 2.575 5.035zm-6.132 13.409c.18 1.782-.873 2.262-2.217 2.398-1.344.136-2.471-.124-2.652-1.905-.18-1.782.763-3.338 2.108-3.474 1.344-.136 2.581 1.199 2.761 2.981z"/><path fill="#66757F" d="M27.758 31.562c-.043 1.79-1.053 2.138-2.287 2.109-1.234-.029-2.226-.425-2.183-2.215.043-1.79 1.078-3.219 2.312-3.19 1.234.029 2.2 1.506 2.158 3.296z"/><path fill="#99AAB5" d="M32.689 31.553c.374 1.751-.528 2.324-1.735 2.582s-2.264.103-2.638-1.648.302-3.382 1.509-3.639c1.207-.258 2.49.953 2.864 2.705zm.512-20.467c.093 1.789-1.087 3.305-2.634 3.385-1.547.08-2.878-1.306-2.971-3.095-.093-1.789.245-4.364 1.792-4.444 1.547-.08 3.72 2.365 3.813 4.154z"/><path fill="#CCD6DD" d="M13.231 7.67c.328 1.726-1.846 3.731-4.913 4.172-6.15.884-7.16-2.459-7.291-3.511-.104-.834 2.703-1.177 6.395-3.149 4.572-2.442 5.481.762 5.809 2.488z"/><path fill="#66757F" d="M14.179 3.118c-.044-1.161-.352-3.039-3.677-3.039-1.397 0-3.713.424-3.814 1.832-1.81-.351-2.883 1.772-2.287 2.815.619 1.082 1.248 1.099 3.683.654.923-.169 2.007.577 1.801 1.493l-.078.333c-.28 1.191-1.561 2.861-1.561 4.308 0 1.396.967 2.42 2.719 2.36-.119 1.515 1.23 3.12 3.414 3.12 3.115 0 4.424-1.961 4.223-5.631-.081-1.481-.654-3.117-1.81-4.072-.049-2.313-.954-3.972-2.613-4.173z"/><path fill="#292F33" d="M2.521 8.864c.001.623.022 1.247-.589 1.363-.372.071-1.213-.281-1.423-1.138-.184-.756.286-1.202.898-1.319.611-.116 1.113.305 1.114 1.094z"/><circle fill="#292F33" cx="7.715" cy="6.871" r="1"/><path fill="#99AAB5" d="M23.341 13.677c1.414.069 2.967 1.455 2.402 2.714s-1.616 1.537-2.564 1.408c-1.106-.151-2.492-.819-2.279-2.594.117-.976 1.111-1.593 2.441-1.528z"/></svg>

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 3.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#CCD6DD" d="M10.378 3.072c2.343 2.343 1.636 5.435-.707 7.778s-5.435 3.05-7.778.707-2.429-7.47-.707-9.192 6.849-1.636 9.192.707z"/><path fill="#66757F" d="M8.695 4.467c1.562 1.562.855 3.388-.707 4.95s-3.388 2.269-4.95.707-1.414-5.657-.706-6.364 4.802-.855 6.363.707z"/><path fill="#CCD6DD" d="M25.622 3.072c-2.343 2.343-1.636 5.435.707 7.778s5.435 3.05 7.778.707 2.429-7.47.707-9.192-6.849-1.636-9.192.707z"/><path fill="#66757F" d="M27.305 4.467c-1.562 1.562-.855 3.388.707 4.95s3.388 2.269 4.95.707c1.562-1.562 1.414-5.657.707-6.364-.708-.707-4.803-.855-6.364.707z"/><path fill="#E1E8ED" d="M34.017 15s1-13-16-13c-17.178 0-16 12-16 12 0 13 11 19 16 19s16-5 16-18z"/><circle fill="#DD2E44" cx="18" cy="30" r="4"/><path fill="#CCD6DD" d="M18 15c-5 0-7 9.687-7 13s2 7 7 7 7-3.687 7-7-2-13-7-13z"/><path fill="#272B2B" d="M14.579 24.298C12.726 25.438 15.719 30 18 30s5.275-4.562 3.421-5.702c-1.853-1.141-4.989-1.141-6.842 0z"/><path fill="#DD2E44" d="M16 32s.095 2 2.095 2 2.095-2 2.095-2-2.095.158-2.095-2c0 1-2.095 2-2.095 2z"/><path fill="#292F33" d="M16 32.5c-1.693 0-2.404-1.199-2.433-1.25-.138-.239-.056-.545.183-.684.24-.138.544-.056.683.184.016.026.469.75 1.567.75 1.312 0 1.487-1.389 1.502-1.547.027-.273.277-.463.544-.45.274.026.476.268.452.541-.076.85-.695 2.456-2.498 2.456z"/><path fill="#292F33" d="M20 32.5c-1.803 0-2.422-1.606-2.498-2.456-.024-.274.179-.518.454-.542.281-.011.519.179.542.454.015.155.19 1.544 1.502 1.544 1.098 0 1.551-.724 1.569-.755.143-.233.448-.313.684-.173.236.14.317.44.18.678-.03.051-.741 1.25-2.433 1.25z"/><path fill="#272B2B" d="M25.5 19c-.825 0-1.5-.675-1.5-1.5v-1c0-.825.675-1.5 1.5-1.5s1.5.675 1.5 1.5v1c0 .825-.675 1.5-1.5 1.5zm-15 0c-.825 0-1.5-.675-1.5-1.5v-1c0-.825.675-1.5 1.5-1.5s1.5.675 1.5 1.5v1c0 .825-.675 1.5-1.5 1.5z"/></svg>

After

Width:  |  Height:  |  Size: 1.8 KiB

View file

@ -1 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#99AAB5" d="M35.059 18c0 3.304-7.642 11-17.067 11C8.566 29 .925 22.249.925 18c0-3.313 7.642-11 17.067-11s17.067 7.686 17.067 11z"/><path fill="#F5F8FA" d="M33.817 18c0 2.904-7.087 9.667-15.826 9.667-8.74 0-15.825-5.935-15.825-9.667 0-2.912 7.085-9.666 15.825-9.666C26.73 8.333 33.817 15.088 33.817 18z"/><circle fill="#55ACEE" cx="18" cy="18" r="8.458"/><circle fill="#292F33" cx="18" cy="18" r="4.708"/><circle fill="#F5F8FA" cx="21" cy="15" r="2"/></svg> <svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#E1E8ED" d="M35.059 18c0 3.304-7.642 11-17.067 11C8.566 29 .925 22.249.925 18c0-3.314 34.134-3.314 34.134 0z"/><path fill="#292F33" d="M35.059 18H.925c0-3.313 7.642-11 17.067-11s17.067 7.686 17.067 11z"/><path fill="#F5F8FA" d="M33.817 18c0 2.904-7.087 9.667-15.826 9.667-8.74 0-15.825-5.935-15.825-9.667 0-2.912 7.085-9.666 15.825-9.666C26.73 8.333 33.817 15.088 33.817 18z"/><circle fill="#8B5E3C" cx="18" cy="18" r="8.458"/><circle fill="#292F33" cx="18" cy="18" r="4.708"/><circle fill="#F5F8FA" cx="14.983" cy="15" r="2"/></svg>

Before

Width:  |  Height:  |  Size: 528 B

After

Width:  |  Height:  |  Size: 605 B

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#4289C1" d="M29.258 33.016l-.287-6.788c.116-3.312-2.475-6.09-5.787-6.206l-9.994-.349c-3.312-.116-5.115 2.169-6.206 5.787l-.669 6.296 22.943 1.26z"/><path fill="#F7DECE" d="M14.6 20.207c0 .692 1.841 1.543 3.4 1.543 1.56 0 3.4-.851 3.4-1.543V17.25h-6.8v2.957z"/><path fill="#EEC2AD" d="M14.6 18.557c.947 1.058 2.122 1.344 3.4 1.344 1.277 0 2.452-.287 3.4-1.344v-2.688h-6.8v2.688z"/><path fill="#F7DECE" d="M13.159 10.449c-.058 1.113-.67 1.987-1.366 1.95-.696-.036-1.213-.969-1.154-2.082.058-1.114.67-1.987 1.366-1.951.696.037 1.213.969 1.154 2.083m12.602.661c-.058 1.113-.67 1.987-1.366 1.95-.696-.036-1.213-.969-1.154-2.082.058-1.114.67-1.987 1.366-1.951.696.036 1.213.969 1.154 2.083"/><path fill="#F7DECE" d="M11.606 11.157c.225-4.298 3.342-7.628 6.961-7.439 3.619.19 6.371 3.828 6.145 8.126-.225 4.298-3.342 7.628-6.961 7.439-3.619-.19-6.371-3.828-6.145-8.126"/><path fill="#292F33" d="M18.721.767c4.343.228 6.87 3.944 6.73 6.614-.14 2.67-.764 4.199-1.251 3.101l-.974-2.193s-3.257-.171-4.287-1.296c0 0 1.461 3.29-1.629-.085 0 0 .431 2.166-2.686-.676 0 0-1.685.983-2.368 3.625-.189.734-1.06-.545-.92-3.215.141-2.672 2.5-6.131 7.385-5.875"/><path fill="#C1694F" d="M17.865 17.114c-2.118-.111-2.739-.687-2.843-.803-.186-.207-.17-.526.037-.713.201-.181.507-.17.695.018.038.031.535.404 2.163.489 1.692.089 2.2-.259 2.205-.262.207-.186.515-.161.702.048.186.207.159.535-.048.721-.115.105-.794.613-2.911.502m.729-2.89l-1.153-.06c-.318-.017-.563-.289-.546-.607.017-.318.289-.563.607-.546l1.153.06c.318.017.563.289.546.607s-.289.563-.607.546"/><path fill="#662113" d="M16.136 11.285c-.061 0-.122-.015-.179-.045-.003-.002-.366-.198-.738-.231-.423-.042-.898.167-.902.169-.188.086-.411 0-.496-.189-.084-.189 0-.411.189-.496.027-.012.656-.286 1.277-.231.532.049 1.011.31 1.031.321.181.1.247.327.148.508-.069.124-.197.194-.33.194zm5.901.525c-.076 0-.152-.023-.219-.07-.001 0-.309-.212-.743-.25-.443-.039-.792.086-.796.087-.194.073-.41-.026-.481-.22-.073-.193.023-.408.216-.481.021-.008.51-.188 1.128-.133.636.056 1.067.354 1.114.388.168.121.207.355.086.523-.073.102-.189.156-.305.156z"/><path fill="#205E7A" d="M28.526 30.798c.55 1.503-1.121.825-2.428 1.314-.848.317-2.282.836-2.503.135-.438-1.384-1.215-3.713-1.534-5.108.021-.008.073-.029.092-.038-.09-.134-.104-.552-.119-.723-.135-1.507.912-3.055.912-3.055s2.054-.278 2.573-.547c.246 1.605.468 2.641.468 2.641s1.882 3.586 2.539 5.381z"/><path fill="#E1E8ED" d="M23.519 21.032l.406 1.236c.257.784-.173 1.636-.957 1.893l-4.506 1.48c-.784.257-1.636-.173-1.893-.957l-.406-1.236c-.257-.784.173-1.636.957-1.893l4.506-1.48c.784-.258 1.636.173 1.893.957z"/><path fill="#88C9F9" d="M14.795 23.072c.224.681-1.922 1.386-1.698 2.067.224.681 2.369-.023 2.593.658.224.681.939.446.939.446l-.671-2.043-.671-2.043c0-.001-.715.234-.492.915z"/><path fill="#55ACEE" d="M16.602 22.024l1.164 3.545c.086.261-.058.545-.319.631l-.685.225c-.261.086-.545-.058-.631-.319l-1.164-3.545c-.086-.261.058-.545.319-.631l.685-.225c.261-.085.545.058.631.319z"/><path fill="#A6D388" d="M21.989 35.145c1.066.007 2.736-2.31 1.089-3.653-1.648-1.343-4.499-3.099-5.959-3.806-1.869-.904-5.366-3.919-6.06-4.643s-2.351-.603-3.222.663c-.619.9-1.446 4.193-.004 6.844 1.686 3.098 4.561 5.082 8.396 5.082 1.013 0 2.116.067 2.742-.074s1.736-.421 3.018-.413z"/><path fill="#F7DECE" d="M24.636 28.21c1.283-.13 1.305-1.899 1.127-2.981-.34-2.066.052-3.88-1.566-4.624-1.416-.651-.693 1.394-1.464 2.998-1.107 2.301-.356 3.386-.356 3.386s1.136 1.314 2.259 1.221z"/><path fill="#4289C1" d="M29.126 32.334c.748 2.158-1.786 3.587-3.434 2.993-.855-.308-1.36-1.539-1.973-3.658-.838-2.892-1.31-4.485-1.31-4.485s.882-.225 1.934-.685c1.042-.456 1.577-.915 1.577-.915s2.589 4.968 3.206 6.75z"/><path fill="#F7DECE" d="M17.283 35.882h2.565c2.094 0 4.259-1.378 4.368-3.156.096-1.556-1.641-.279-3.392-.598-1.592-.291-2.97.074-2.97.074s.112 2.503-.571 3.68z"/><path fill="#4289C1" d="M6.516 30.976c.653-1.477 3.431-.958 5.844-.364 2.118.521 4.292 1.188 5.903 1.473 0 0 .334.755.171 2.106-.091.752-.506 1.665-.506 1.665s-3.248.091-5.405-.195c-3.238-.428-7.188-2.012-6.007-4.685z"/></svg>

After

Width:  |  Height:  |  Size: 4 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F7DECE" d="M5 21c0 2.209-1.119 4-2.5 4S0 23.209 0 21s1.119-4 2.5-4S5 18.791 5 21z"/><path fill="#F7DECE" d="M3 18.562C3 10.037 8.373 3.125 15 3.125s12 6.912 12 15.438C27 27.088 21.627 34 15 34S3 27.088 3 18.562z"/><path fill="#DD2E44" d="M20 0c-.249 0-.478.007-.713.012C19.19.01 19.097 0 19 0 9 0 2 4.582 2 9s6.373 4 13 4c4.442 0 7.648 0 9.966-.086L25 13l6 15h2s.343-3.055 1-7c1-6 .533-21-14-21z"/><path fill="#F7DECE" d="M30 21c0 2.209-1.119 4-2.5 4S25 23.209 25 21s1.119-4 2.5-4 2.5 1.791 2.5 4z"/><path fill="#662113" d="M10 21c-.552 0-1-.447-1-1v-2c0-.552.448-1 1-1s1 .448 1 1v2c0 .553-.448 1-1 1zm10 0c-.553 0-1-.447-1-1v-2c0-.552.447-1 1-1s1 .448 1 1v2c0 .553-.447 1-1 1z"/><path fill="#B7755E" d="M16 26h-2c-.552 0-1-.447-1-1s.448-1 1-1h2c.552 0 1 .447 1 1s-.448 1-1 1z"/><path fill="#E6E7E8" d="M27 25c0-2-2.293-.707-3 0-1 1-3 3-5 2-2.828-1.414-4-1-4-1s-1.171-.414-4 1c-2 1-4-1-5-2-.707-.707-3-2-3 0s1 2 1 2c-1 2 1 3 1 3 0 3 3 3 3 3 0 3 4 2 4 2 1 1 3 1 3 1s2 0 3-1c0 0 4 1 4-2 0 0 3 0 3-3 0 0 2-1 1-3 0 0 1 0 1-2z"/><path fill="#F7DECE" d="M15 28c7 0 4 2 0 2s-7-2 0-2z"/><ellipse fill="#D1D3D4" cx="3" cy="14" rx="2" ry="4"/><ellipse fill="#D1D3D4" cx="26" cy="14" rx="2" ry="4"/><circle fill="#F1F2F2" cx="32" cy="29" r="4"/><path fill="#F1F2F2" d="M29 12c0 1.104-.896 2-2 2H2c-1.104 0-2-.896-2-2v-1c0-1.104.896-2 2-2h25c1.104 0 2 .896 2 2v1z"/></svg>

After

Width:  |  Height:  |  Size: 1.4 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#F7DECE" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#C1694F" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path fill="#662113" d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#292F33" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#F7DECE" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#C1694F" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path fill="#662113" d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#F7DECE" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#C1694F" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path fill="#662113" d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#FFE51E" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#F3D2A2" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#C1694F" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path fill="#662113" d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#F7DECE" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#C1694F" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path fill="#662113" d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#963B22" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#D4AB88" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#C1694F" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path fill="#662113" d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#F7DECE" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#C1694F" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path fill="#662113" d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#60352A" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#AF7E57" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#915A34" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path fill="#662113" d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#292F33" d="M11 11.844c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28V.425C.955.154 1.959 0 3 0c6.075 0 11 4.925 11 11 0 3.009-1.211 5.733-3.168 7.719.107-.557.168-1.13.168-1.719v-5.156z"/><path fill="#F7DECE" d="M0 28.604L2 32l3-5v-1.523c2.968-1.051 5.222-3.607 5.832-6.757.107-.558.168-1.131.168-1.72v-5.156c-2.297-.669-3.315-3.565-3.734-5.369C6.313 7.952 4.23 10.155 0 11.28v17.324z"/><path fill="#3B94D9" d="M0 28.604L2 32l3-5h6c2.209 0 4 1.791 4 4v5H0v-7.396z"/><path fill="#1C6399" d="M10 32h1v4h-1z"/><path fill="#C1694F" d="M5 22h1s-1 2-4 2c-.809 0-1.462-.151-2-.363V22h5zm-2-2.5H1c-.276 0-.5-.224-.5-.5s.224-.5.5-.5h2c.276 0 .5.224.5.5s-.224.5-.5.5z"/><path fill="#662113" d="M6 16c-.553 0-1-.448-1-1v-1c0-.552.447-1 1-1s1 .448 1 1v1c0 .552-.447 1-1 1z"/><path fill="#0B0200" d="M25 11.844c2.297-.669 3.315-3.565 3.734-5.369.953 1.477 3.036 3.68 7.266 4.805V.425C35.045.154 34.041 0 33 0c-6.075 0-11 4.925-11 11 0 3.009 1.211 5.733 3.168 7.719C25.061 18.162 25 17.589 25 17v-5.156z"/><path fill="#7C533E" d="M36 11.28c-4.23-1.125-6.313-3.328-7.266-4.804-.42 1.804-1.438 4.699-3.734 5.369V17c0 .589.061 1.162.168 1.719.61 3.15 2.863 5.706 5.832 6.757V27l3 5 2-3.396V11.28z"/><path fill="#3B94D9" d="M36 28.604L34 32l-3-5h-6c-2.209 0-4 1.791-4 4v5h15v-7.396z"/><path fill="#1C6399" d="M25 32h1v4h-1z"/><path fill="#3D2E24" d="M31 22h-1s1 2 4 2c.809 0 1.462-.151 2-.363V22h-5zm2-2.5h2c.276 0 .5-.224.5-.5s-.224-.5-.5-.5h-2c-.276 0-.5.224-.5.5s.224.5.5.5z"/><path d="M30 16c.553 0 1-.448 1-1v-1c0-.552-.447-1-1-1s-1 .448-1 1v1c0 .552.447 1 1 1z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 1.9 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F7DECE" d="M5 8.042c6.626 0 12 5.373 12 12 0 6.626-5.374 12-12 12-1.787 0-3.476-.401-5-1.102V9.143c1.524-.7 3.213-1.101 5-1.101z"/><path fill="#292F33" d="M15.333 15.042c-.055.06-.128.115-.197.171-.72.716-1.753 1.477-3.219 2.036-3.691 1.407-9.121.297-9.121.297s.748-1.198 2.101-2.492c-1.809.549-3.463 1.359-4.897 2.371v-9.25c1.81-.903 3.843-1.425 6-1.428 6.508-.008 9.915 3.393 10.059 6.135.176.085.352.168.531.265 0 0-.237.641-.902 1.459-.077.094-.161.191-.249.29-.038.047-.064.1-.106.146z"/><path fill="#662113" d="M10 21.542c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5zm-5 0c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5z"/><path fill="#C1694F" d="M9.995 25.542c-.273-.003-.495-.226-.495-.5 0-.276.224-.5.5-.5.602 0 1.5.399 1.5 1.5 0 .438-.143.765-.352 1 .209.235.352.562.352 1 0 1.101-.898 1.5-1.5 1.5-.273 0-.493-.22-.496-.494-.004-.273.217-.499.49-.506.231-.006.506-.098.506-.5s-.275-.494-.5-.5h-.011c-.272-.006-.489-.228-.489-.5 0-.274.222-.497.495-.5.23-.006.505-.098.505-.5 0-.403-.274-.494-.505-.5z"/><path fill="#F7DECE" d="M31 8.042c-6.626 0-12 5.373-12 12 0 6.626 5.374 12 12 12 1.787 0 3.476-.401 5-1.102V9.143c-1.524-.7-3.213-1.101-5-1.101z"/><path fill="#292F33" d="M20.667 15.042c.055.06.128.115.197.171.72.716 1.753 1.477 3.219 2.036 3.691 1.407 9.121.297 9.121.297s-.748-1.198-2.101-2.492c1.809.549 3.463 1.358 4.897 2.371v-9.25c-1.81-.904-3.843-1.426-6-1.429-6.508-.008-9.915 3.393-10.059 6.135-.176.085-.352.168-.531.265 0 0 .237.641.902 1.459.077.094.161.191.249.29.038.048.064.101.106.147z"/><path fill="#662113" d="M26 21.542c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5zm5 0c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5z"/><path fill="#C1694F" d="M26.005 25.542c.273-.003.495-.226.495-.5 0-.276-.224-.5-.5-.5-.602 0-1.5.399-1.5 1.5 0 .438.143.765.352 1-.209.235-.352.562-.352 1 0 1.101.898 1.5 1.5 1.5.273 0 .493-.22.496-.494.004-.273-.217-.499-.49-.506-.231-.006-.506-.098-.506-.5s.275-.494.5-.5h.011c.272-.006.489-.228.489-.5 0-.274-.222-.497-.495-.5-.23-.006-.505-.098-.505-.5 0-.403.274-.494.505-.5z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F7DECE" d="M5 8.042c6.626 0 12 5.373 12 12 0 6.626-5.374 12-12 12-1.787 0-3.476-.401-5-1.102V9.143c1.524-.7 3.213-1.101 5-1.101z"/><path fill="#292F33" d="M15.333 15.042c-.055.06-.128.115-.197.171-.72.716-1.753 1.477-3.219 2.036-3.691 1.407-9.121.297-9.121.297s.748-1.198 2.101-2.492c-1.809.549-3.463 1.359-4.897 2.371v-9.25c1.81-.903 3.843-1.425 6-1.428 6.508-.008 9.915 3.393 10.059 6.135.176.085.352.168.531.265 0 0-.237.641-.902 1.459-.077.094-.161.191-.249.29-.038.047-.064.1-.106.146z"/><path fill="#662113" d="M10 21.542c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5zm-5 0c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5z"/><path fill="#C1694F" d="M9.995 25.542c-.273-.003-.495-.226-.495-.5 0-.276.224-.5.5-.5.602 0 1.5.399 1.5 1.5 0 .438-.143.765-.352 1 .209.235.352.562.352 1 0 1.101-.898 1.5-1.5 1.5-.273 0-.493-.22-.496-.494-.004-.273.217-.499.49-.506.231-.006.506-.098.506-.5s-.275-.494-.5-.5h-.011c-.272-.006-.489-.228-.489-.5 0-.274.222-.497.495-.5.23-.006.505-.098.505-.5 0-.403-.274-.494-.505-.5z"/><path fill="#F3D2A2" d="M31 8.042c-6.626 0-12 5.373-12 12 0 6.626 5.374 12 12 12 1.787 0 3.476-.401 5-1.102V9.143c-1.524-.7-3.213-1.101-5-1.101z"/><path fill="#FFE51E" d="M20.667 15.042c.055.06.128.115.197.171.72.716 1.753 1.477 3.219 2.036 3.691 1.407 9.121.297 9.121.297s-.748-1.198-2.101-2.492c1.809.549 3.463 1.358 4.897 2.371v-9.25c-1.81-.904-3.843-1.426-6-1.429-6.508-.008-9.915 3.393-10.059 6.135-.176.085-.352.168-.531.265 0 0 .237.641.902 1.459.077.094.161.191.249.29.038.048.064.101.106.147z"/><path fill="#662113" d="M26 21.542c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5zm5 0c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5z"/><path fill="#C1694F" d="M26.005 25.542c.273-.003.495-.226.495-.5 0-.276-.224-.5-.5-.5-.602 0-1.5.399-1.5 1.5 0 .438.143.765.352 1-.209.235-.352.562-.352 1 0 1.101.898 1.5 1.5 1.5.273 0 .493-.22.496-.494.004-.273-.217-.499-.49-.506-.231-.006-.506-.098-.506-.5s.275-.494.5-.5h.011c.272-.006.489-.228.489-.5 0-.274-.222-.497-.495-.5-.23-.006-.505-.098-.505-.5 0-.403.274-.494.505-.5z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

View file

@ -0,0 +1 @@
<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 36 36"><path fill="#F7DECE" d="M5 8.042c6.626 0 12 5.373 12 12 0 6.626-5.374 12-12 12-1.787 0-3.476-.401-5-1.102V9.143c1.524-.7 3.213-1.101 5-1.101z"/><path fill="#292F33" d="M15.333 15.042c-.055.06-.128.115-.197.171-.72.716-1.753 1.477-3.219 2.036-3.691 1.407-9.121.297-9.121.297s.748-1.198 2.101-2.492c-1.809.549-3.463 1.359-4.897 2.371v-9.25c1.81-.903 3.843-1.425 6-1.428 6.508-.008 9.915 3.393 10.059 6.135.176.085.352.168.531.265 0 0-.237.641-.902 1.459-.077.094-.161.191-.249.29-.038.047-.064.1-.106.146z"/><path fill="#662113" d="M10 21.542c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5zm-5 0c1.411 0 1.497-1.251 1.5-1.503.001-.274.225-.497.5-.497.276 0 .5.224.5.5 0 .864-.523 2.5-2.5 2.5-.276 0-.5-.224-.5-.5 0-.277.224-.5.5-.5z"/><path fill="#C1694F" d="M9.995 25.542c-.273-.003-.495-.226-.495-.5 0-.276.224-.5.5-.5.602 0 1.5.399 1.5 1.5 0 .438-.143.765-.352 1 .209.235.352.562.352 1 0 1.101-.898 1.5-1.5 1.5-.273 0-.493-.22-.496-.494-.004-.273.217-.499.49-.506.231-.006.506-.098.506-.5s-.275-.494-.5-.5h-.011c-.272-.006-.489-.228-.489-.5 0-.274.222-.497.495-.5.23-.006.505-.098.505-.5 0-.403-.274-.494-.505-.5z"/><path fill="#D4AB88" d="M31 8.042c-6.626 0-12 5.373-12 12 0 6.626 5.374 12 12 12 1.787 0 3.476-.401 5-1.102V9.143c-1.524-.7-3.213-1.101-5-1.101z"/><path fill="#963B22" d="M20.667 15.042c.055.06.128.115.197.171.72.716 1.753 1.477 3.219 2.036 3.691 1.407 9.121.297 9.121.297s-.748-1.198-2.101-2.492c1.809.549 3.463 1.358 4.897 2.371v-9.25c-1.81-.904-3.843-1.426-6-1.429-6.508-.008-9.915 3.393-10.059 6.135-.176.085-.352.168-.531.265 0 0 .237.641.902 1.459.077.094.161.191.249.29.038.048.064.101.106.147z"/><path fill="#662113" d="M26 21.542c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5zm5 0c-1.411 0-1.497-1.251-1.5-1.503-.001-.274-.225-.497-.5-.497-.276 0-.5.224-.5.5 0 .864.523 2.5 2.5 2.5.276 0 .5-.224.5-.5 0-.277-.224-.5-.5-.5z"/><path fill="#C1694F" d="M26.005 25.542c.273-.003.495-.226.495-.5 0-.276-.224-.5-.5-.5-.602 0-1.5.399-1.5 1.5 0 .438.143.765.352 1-.209.235-.352.562-.352 1 0 1.101.898 1.5 1.5 1.5.273 0 .493-.22.496-.494.004-.273-.217-.499-.49-.506-.231-.006-.506-.098-.506-.5s.275-.494.5-.5h.011c.272-.006.489-.228.489-.5 0-.274-.222-.497-.495-.5-.23-.006-.505-.098-.505-.5 0-.403.274-.494.505-.5z"/><path fill="#DD2E44" d="M26.539 4.711c0-2.602-2.11-4.711-4.711-4.711C20.249 0 18.855.78 18 1.972 17.144.78 15.751 0 14.172 0c-2.601 0-4.711 2.109-4.711 4.711 0 .369.047.727.127 1.07.654 4.065 5.173 8.353 8.411 9.529 3.238-1.177 7.758-5.465 8.412-9.528.081-.344.128-.702.128-1.071z"/></svg>

After

Width:  |  Height:  |  Size: 2.7 KiB

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