Merge branch 'develop' of git.pleroma.social:pleroma/pleroma-fe into develop

This commit is contained in:
sadposter 2020-08-01 19:41:12 +01:00
commit 66c44b4260
62 changed files with 1206 additions and 595 deletions

View file

@ -7,6 +7,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Greentext now has separate color slot for it - Greentext now has separate color slot for it
- Removed the use of with_move parameters when fetching notifications - Removed the use of with_move parameters when fetching notifications
- Push notifications now are the same as normal notfication, and are localized. - Push notifications now are the same as normal notfication, and are localized.
- Updated Notification Settings to match new BE API
### Fixed ### Fixed
- Weird bug related to post being sent seemingly after pasting with keyboard (hopefully) - Weird bug related to post being sent seemingly after pasting with keyboard (hopefully)
@ -23,6 +24,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Descriptions can be set on uploaded files before posting - Descriptions can be set on uploaded files before posting
- Added status preview option to preview your statuses before posting - Added status preview option to preview your statuses before posting
- When a post is a reply to an unavailable post, the 'Reply to'-text has a strike-through style - When a post is a reply to an unavailable post, the 'Reply to'-text has a strike-through style
- Added ability to see all favoriting or repeating users when hovering the number on highlighted statuses
### Changed ### Changed
- Registration page no longer requires email if the server is configured not to require it - Registration page no longer requires email if the server is configured not to require it
@ -31,6 +33,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Add colons to the emoji alt text, to make them copyable - Add colons to the emoji alt text, to make them copyable
- Add better visual indication for drag-and-drop for files - Add better visual indication for drag-and-drop for files
- When disabling attachments, the placeholder links now show an icon and the description instead of just IMAGE or VIDEO etc - When disabling attachments, the placeholder links now show an icon and the description instead of just IMAGE or VIDEO etc
- Remove unnecessary options for 'automatic loading when loading older' and 'reply previews'
### Fixed ### Fixed
- Custom Emoji will display in poll options now. - Custom Emoji will display in poll options now.
@ -48,6 +51,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Videos are not cropped awkwardly in the uploads section anymore - Videos are not cropped awkwardly in the uploads section anymore
- Reply filtering options in Settings -> Filtering now work again using filtering on server - Reply filtering options in Settings -> Filtering now work again using filtering on server
- Don't show just blank-screen when cookies are disabled - Don't show just blank-screen when cookies are disabled
- Add status idempotency to prevent accidental double posting when posting returns an error
## [2.0.3] - 2020-05-02 ## [2.0.3] - 2020-05-02
### Fixed ### Fixed

View file

@ -2,7 +2,7 @@
> A single column frontend designed for Pleroma. > A single column frontend designed for Pleroma.
![screenshot](https://i.imgur.com/DJVqSJ0.png) ![screenshot](/uploads/796c5ecf985ed1e2b0943ee0df131ed0/DJVqSJ0.png)
# For Translators # For Translators

View file

@ -37,12 +37,14 @@ const ChatListItem = {
} }
}, },
messageForStatusContent () { messageForStatusContent () {
const content = this.chat.lastMessage ? (this.attachmentInfo || this.chat.lastMessage.content) : '' const message = this.chat.lastMessage
const isYou = message && message.account_id === this.currentUser.id
const content = message ? (this.attachmentInfo || message.content) : ''
const messagePreview = isYou ? `<i>${this.$t('chats.you')}</i> ${content}` : content
return { return {
summary: '', summary: '',
statusnet_html: content, statusnet_html: messagePreview,
text: content, text: messagePreview,
attachments: [] attachments: []
} }
} }

View file

@ -10,7 +10,7 @@
@click.stop.prevent="togglePanel" @click.stop.prevent="togglePanel"
> >
<div class="title"> <div class="title">
<span>{{ $t('chat.title') }}</span> <span>{{ $t('shoutbox.title') }}</span>
<i <i
v-if="floating" v-if="floating"
class="icon-cancel" class="icon-cancel"
@ -64,7 +64,7 @@
> >
<div class="title"> <div class="title">
<i class="icon-comment-empty" /> <i class="icon-comment-empty" />
{{ $t('chat.title') }} {{ $t('shoutbox.title') }}
</div> </div>
</div> </div>
</div> </div>

View file

@ -52,7 +52,7 @@ export default {
right: 0; right: 0;
top: 0; top: 0;
display: block; display: block;
content: ''; content: '';
transition: color 200ms; transition: color 200ms;
width: 1.1em; width: 1.1em;
height: 1.1em; height: 1.1em;

View file

@ -1,5 +1,5 @@
import UserAvatar from '../user_avatar/user_avatar.vue' import UserAvatar from '../user_avatar/user_avatar.vue'
import Popover from '../popover/popover.vue' import UserListPopover from '../user_list_popover/user_list_popover.vue'
const EMOJI_REACTION_COUNT_CUTOFF = 12 const EMOJI_REACTION_COUNT_CUTOFF = 12
@ -7,7 +7,7 @@ const EmojiReactions = {
name: 'EmojiReactions', name: 'EmojiReactions',
components: { components: {
UserAvatar, UserAvatar,
Popover UserListPopover
}, },
props: ['status'], props: ['status'],
data: () => ({ data: () => ({

View file

@ -1,44 +1,11 @@
<template> <template>
<div class="emoji-reactions"> <div class="emoji-reactions">
<Popover <UserListPopover
v-for="(reaction) in emojiReactions" v-for="(reaction) in emojiReactions"
:key="reaction.name" :key="reaction.name"
trigger="hover" :users="accountsForEmoji[reaction.name]"
placement="top"
:offset="{ y: 5 }"
> >
<div
slot="content"
class="reacted-users"
>
<div v-if="accountsForEmoji[reaction.name].length">
<div
v-for="(account) in accountsForEmoji[reaction.name]"
:key="account.id"
class="reacted-user"
>
<UserAvatar
:user="account"
class="avatar-small"
:compact="true"
/>
<div class="reacted-user-names">
<!-- eslint-disable vue/no-v-html -->
<span
class="reacted-user-name"
v-html="account.name_html"
/>
<!-- eslint-enable vue/no-v-html -->
<span class="reacted-user-screen-name">{{ account.screen_name }}</span>
</div>
</div>
</div>
<div v-else>
<i class="icon-spin4 animate-spin" />
</div>
</div>
<button <button
slot="trigger"
class="emoji-reaction btn btn-default" class="emoji-reaction btn btn-default"
:class="{ 'picked-reaction': reactedWith(reaction.name), 'not-clickable': !loggedIn }" :class="{ 'picked-reaction': reactedWith(reaction.name), 'not-clickable': !loggedIn }"
@click="emojiOnClick(reaction.name, $event)" @click="emojiOnClick(reaction.name, $event)"
@ -47,7 +14,7 @@
<span class="reaction-emoji">{{ reaction.name }}</span> <span class="reaction-emoji">{{ reaction.name }}</span>
<span>{{ reaction.count }}</span> <span>{{ reaction.count }}</span>
</button> </button>
</Popover> </UserListPopover>
<a <a
v-if="tooManyReactions" v-if="tooManyReactions"
class="emoji-reaction-expand faint" class="emoji-reaction-expand faint"
@ -69,32 +36,6 @@
flex-wrap: wrap; flex-wrap: wrap;
} }
.reacted-users {
padding: 0.5em;
}
.reacted-user {
padding: 0.25em;
display: flex;
flex-direction: row;
.reacted-user-names {
display: flex;
flex-direction: column;
margin-left: 0.5em;
min-width: 5em;
img {
width: 1em;
height: 1em;
}
}
.reacted-user-screen-name {
font-size: 9px;
}
}
.emoji-reaction { .emoji-reaction {
padding: 0 0.5em; padding: 0 0.5em;
margin-right: 0.5em; margin-right: 0.5em;

View file

@ -2,6 +2,7 @@ import SideDrawer from '../side_drawer/side_drawer.vue'
import Notifications from '../notifications/notifications.vue' import Notifications from '../notifications/notifications.vue'
import { unseenNotificationsFromStore } from '../../services/notification_utils/notification_utils' import { unseenNotificationsFromStore } from '../../services/notification_utils/notification_utils'
import GestureService from '../../services/gesture_service/gesture_service' import GestureService from '../../services/gesture_service/gesture_service'
import { mapGetters } from 'vuex'
const MobileNav = { const MobileNav = {
components: { components: {
@ -33,7 +34,8 @@ const MobileNav = {
sitename () { return this.$store.state.instance.name }, sitename () { return this.$store.state.instance.name },
isChat () { isChat () {
return this.$route.name === 'chat' return this.$route.name === 'chat'
} },
...mapGetters(['unreadChatCount'])
}, },
methods: { methods: {
toggleMobileSidebar () { toggleMobileSidebar () {
@ -67,7 +69,7 @@ const MobileNav = {
this.$refs.notifications.markAsSeen() this.$refs.notifications.markAsSeen()
}, },
onScroll ({ target: { scrollTop, clientHeight, scrollHeight } }) { onScroll ({ target: { scrollTop, clientHeight, scrollHeight } }) {
if (this.$store.getters.mergedConfig.autoLoad && scrollTop + clientHeight >= scrollHeight) { if (scrollTop + clientHeight >= scrollHeight) {
this.$refs.notifications.fetchOlderNotifications() this.$refs.notifications.fetchOlderNotifications()
} }
} }

View file

@ -16,6 +16,10 @@
@click.stop.prevent="toggleMobileSidebar()" @click.stop.prevent="toggleMobileSidebar()"
> >
<i class="button-icon icon-menu" /> <i class="button-icon icon-menu" />
<div
v-if="unreadChatCount"
class="alert-dot"
/>
</a> </a>
<router-link <router-link
v-if="!hideSitename" v-if="!hideSitename"

View file

@ -75,6 +75,7 @@ export default {
deleteOption (index, event) { deleteOption (index, event) {
if (this.options.length > 2) { if (this.options.length > 2) {
this.options.splice(index, 1) this.options.splice(index, 1)
this.updatePollToParent()
} }
}, },
convertExpiryToUnit (unit, amount) { convertExpiryToUnit (unit, amount) {

View file

@ -27,6 +27,11 @@ const buildMentionsString = ({ user, attentions = [] }, currentUser) => {
return mentions.length > 0 ? mentions.join(' ') + ' ' : '' return mentions.length > 0 ? mentions.join(' ') + ' ' : ''
} }
// Converts a string with px to a number like '2px' -> 2
const pxStringToNumber = (str) => {
return Number(str.substring(0, str.length - 2))
}
const PostStatusForm = { const PostStatusForm = {
props: [ props: [
'replyTo', 'replyTo',
@ -61,6 +66,7 @@ const PostStatusForm = {
StatusContent StatusContent
}, },
mounted () { mounted () {
this.updateIdempotencyKey()
this.resize(this.$refs.textarea) this.resize(this.$refs.textarea)
if (this.replyTo) { if (this.replyTo) {
@ -111,7 +117,8 @@ const PostStatusForm = {
dropStopTimeout: null, dropStopTimeout: null,
preview: null, preview: null,
previewLoading: false, previewLoading: false,
emojiInputShown: false emojiInputShown: false,
idempotencyKey: ''
} }
}, },
computed: { computed: {
@ -206,17 +213,46 @@ const PostStatusForm = {
}) })
}, },
watch: { watch: {
'newStatus.contentType': function () { 'newStatus': {
this.autoPreview() deep: true,
}, handler () {
'newStatus.spoilerText': function () { this.statusChanged()
this.autoPreview() }
} }
}, },
methods: { methods: {
statusChanged () {
this.autoPreview()
this.updateIdempotencyKey()
},
clearStatus () {
const newStatus = this.newStatus
this.newStatus = {
status: '',
spoilerText: '',
files: [],
visibility: newStatus.visibility,
contentType: newStatus.contentType,
poll: {},
mediaDescriptions: {}
}
this.pollFormVisible = false
this.$refs.mediaUpload && this.$refs.mediaUpload.clearFile()
this.clearPollForm()
if (this.preserveFocus) {
this.$nextTick(() => {
this.$refs.textarea.focus()
})
}
let el = this.$el.querySelector('textarea')
el.style.height = 'auto'
el.style.height = undefined
this.error = null
if (this.preview) this.previewStatus()
},
async postStatus (event, newStatus, opts = {}) { async postStatus (event, newStatus, opts = {}) {
if (this.posting) { return } if (this.posting) { return }
if (this.submitDisabled) { return } if (this.disableSubmit) { return }
if (this.emojiInputShown) { return } if (this.emojiInputShown) { return }
if (this.submitOnEnter) { if (this.submitOnEnter) {
event.stopPropagation() event.stopPropagation()
@ -253,36 +289,16 @@ const PostStatusForm = {
store: this.$store, store: this.$store,
inReplyToStatusId: this.replyTo, inReplyToStatusId: this.replyTo,
contentType: newStatus.contentType, contentType: newStatus.contentType,
poll poll,
idempotencyKey: this.idempotencyKey
} }
const postHandler = this.postHandler ? this.postHandler : statusPoster.postStatus const postHandler = this.postHandler ? this.postHandler : statusPoster.postStatus
postHandler(postingOptions).then((data) => { postHandler(postingOptions).then((data) => {
if (!data.error) { if (!data.error) {
this.newStatus = { this.clearStatus()
status: '',
spoilerText: '',
files: [],
visibility: newStatus.visibility,
contentType: newStatus.contentType,
poll: {},
mediaDescriptions: {}
}
this.pollFormVisible = false
this.$refs.mediaUpload && this.$refs.mediaUpload.clearFile()
this.clearPollForm()
this.$emit('posted', data) this.$emit('posted', data)
if (this.preserveFocus) {
this.$nextTick(() => {
this.$refs.textarea.focus()
})
}
let el = this.$el.querySelector('textarea')
el.style.height = 'auto'
el.style.height = undefined
this.error = null
if (this.preview) this.previewStatus()
} else { } else {
this.error = data.error this.error = data.error
} }
@ -399,7 +415,6 @@ const PostStatusForm = {
} }
}, },
onEmojiInputInput (e) { onEmojiInputInput (e) {
this.autoPreview()
this.$nextTick(() => { this.$nextTick(() => {
this.resize(this.$refs['textarea']) this.resize(this.$refs['textarea'])
}) })
@ -423,7 +438,7 @@ const PostStatusForm = {
* scroll is different for `Window` and `Element`s * scroll is different for `Window` and `Element`s
*/ */
const bottomBottomPaddingStr = window.getComputedStyle(bottomRef)['padding-bottom'] const bottomBottomPaddingStr = window.getComputedStyle(bottomRef)['padding-bottom']
const bottomBottomPadding = Number(bottomBottomPaddingStr.substring(0, bottomBottomPaddingStr.length - 2)) const bottomBottomPadding = pxStringToNumber(bottomBottomPaddingStr)
const scrollerRef = this.$el.closest('.sidebar-scroller') || const scrollerRef = this.$el.closest('.sidebar-scroller') ||
this.$el.closest('.post-form-modal-view') || this.$el.closest('.post-form-modal-view') ||
@ -432,10 +447,12 @@ const PostStatusForm = {
// Getting info about padding we have to account for, removing 'px' part // Getting info about padding we have to account for, removing 'px' part
const topPaddingStr = window.getComputedStyle(target)['padding-top'] const topPaddingStr = window.getComputedStyle(target)['padding-top']
const bottomPaddingStr = window.getComputedStyle(target)['padding-bottom'] const bottomPaddingStr = window.getComputedStyle(target)['padding-bottom']
const topPadding = Number(topPaddingStr.substring(0, topPaddingStr.length - 2)) const topPadding = pxStringToNumber(topPaddingStr)
const bottomPadding = Number(bottomPaddingStr.substring(0, bottomPaddingStr.length - 2)) const bottomPadding = pxStringToNumber(bottomPaddingStr)
const vertPadding = topPadding + bottomPadding const vertPadding = topPadding + bottomPadding
const oldHeight = pxStringToNumber(target.style.height)
/* Explanation: /* Explanation:
* *
* https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight * https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight
@ -464,8 +481,13 @@ const PostStatusForm = {
// BEGIN content size update // BEGIN content size update
target.style.height = 'auto' target.style.height = 'auto'
const heightWithoutPadding = target.scrollHeight - vertPadding const heightWithoutPadding = Math.floor(target.scrollHeight - vertPadding)
const newHeight = this.maxHeight ? Math.min(heightWithoutPadding, this.maxHeight) : heightWithoutPadding let newHeight = this.maxHeight ? Math.min(heightWithoutPadding, this.maxHeight) : heightWithoutPadding
// This is a bit of a hack to combat target.scrollHeight being different on every other input
// on some browsers for whatever reason. Don't change the height if difference is 1px or less.
if (Math.abs(newHeight - oldHeight) <= 1) {
newHeight = oldHeight
}
target.style.height = `${newHeight}px` target.style.height = `${newHeight}px`
this.$emit('resize', newHeight) this.$emit('resize', newHeight)
// END content size update // END content size update
@ -530,6 +552,9 @@ const PostStatusForm = {
}, },
handleEmojiInputShow (value) { handleEmojiInputShow (value) {
this.emojiInputShown = value this.emojiInputShown = value
},
updateIdempotencyKey () {
this.idempotencyKey = Date.now().toString()
} }
} }
} }

View file

@ -79,10 +79,7 @@
@click.stop.prevent="togglePreview" @click.stop.prevent="togglePreview"
> >
{{ $t('post_status.preview') }} {{ $t('post_status.preview') }}
<i <i :class="showPreview ? 'icon-left-open' : 'icon-right-open'" />
class="icon-down-open"
:style="{ transform: showPreview ? 'rotate(0deg)' : 'rotate(-90deg)' }"
/>
</a> </a>
<i <i
v-show="previewLoading" v-show="previewLoading"
@ -374,6 +371,7 @@
} }
.preview-heading { .preview-heading {
padding-left: 0.5em;
display: flex; display: flex;
width: 100%; width: 100%;
@ -385,14 +383,16 @@
.preview-toggle { .preview-toggle {
display: flex; display: flex;
cursor: pointer; cursor: pointer;
user-select: none;
&:hover { &:hover {
text-decoration: underline; text-decoration: underline;
} }
} i {
margin-left: 0.2em;
.icon-down-open { font-size: 0.8em;
transition: transform 0.1s; transform: rotate(90deg);
}
} }
.preview-container { .preview-container {

View file

@ -28,7 +28,10 @@ const ReactButton = {
}, },
emojis () { emojis () {
if (this.filterWord !== '') { if (this.filterWord !== '') {
return this.$store.state.instance.emoji.filter(emoji => emoji.displayText.includes(this.filterWord)) const filterWordLowercase = this.filterWord.toLowerCase()
return this.$store.state.instance.emoji.filter(emoji =>
emoji.displayText.toLowerCase().includes(filterWordLowercase)
)
} }
return this.$store.state.instance.emoji || [] return this.$store.state.instance.emoji || []
}, },

View file

@ -53,16 +53,6 @@
</small> </small>
</Checkbox> </Checkbox>
</li> </li>
<li>
<Checkbox v-model="autoLoad">
{{ $t('settings.autoload') }}
</Checkbox>
</li>
<li>
<Checkbox v-model="hoverPreview">
{{ $t('settings.reply_link_preview') }}
</Checkbox>
</li>
<li> <li>
<Checkbox v-model="emojiReactionsOnTimeline"> <Checkbox v-model="emojiReactionsOnTimeline">
{{ $t('settings.emoji_reactions_on_timeline') }} {{ $t('settings.emoji_reactions_on_timeline') }}

View file

@ -2,38 +2,18 @@
<div :label="$t('settings.notifications')"> <div :label="$t('settings.notifications')">
<div class="setting-item"> <div class="setting-item">
<h2>{{ $t('settings.notification_setting_filters') }}</h2> <h2>{{ $t('settings.notification_setting_filters') }}</h2>
<div class="select-multiple"> <p>
<span class="label">{{ $t('settings.notification_setting') }}</span> <Checkbox v-model="notificationSettings.block_from_strangers">
<ul class="option-list"> {{ $t('settings.notification_setting_block_from_strangers') }}
<li> </Checkbox>
<Checkbox v-model="notificationSettings.follows"> </p>
{{ $t('settings.notification_setting_follows') }}
</Checkbox>
</li>
<li>
<Checkbox v-model="notificationSettings.followers">
{{ $t('settings.notification_setting_followers') }}
</Checkbox>
</li>
<li>
<Checkbox v-model="notificationSettings.non_follows">
{{ $t('settings.notification_setting_non_follows') }}
</Checkbox>
</li>
<li>
<Checkbox v-model="notificationSettings.non_followers">
{{ $t('settings.notification_setting_non_followers') }}
</Checkbox>
</li>
</ul>
</div>
</div> </div>
<div class="setting-item"> <div class="setting-item">
<h2>{{ $t('settings.notification_setting_privacy') }}</h2> <h2>{{ $t('settings.notification_setting_privacy') }}</h2>
<p> <p>
<Checkbox v-model="notificationSettings.privacy_option"> <Checkbox v-model="notificationSettings.hide_notification_contents">
{{ $t('settings.notification_setting_privacy_option') }} {{ $t('settings.notification_setting_hide_notification_contents') }}
</Checkbox> </Checkbox>
</p> </p>
</div> </div>

View file

@ -9,6 +9,7 @@ import AvatarList from '../avatar_list/avatar_list.vue'
import Timeago from '../timeago/timeago.vue' import Timeago from '../timeago/timeago.vue'
import StatusContent from '../status_content/status_content.vue' import StatusContent from '../status_content/status_content.vue'
import StatusPopover from '../status_popover/status_popover.vue' import StatusPopover from '../status_popover/status_popover.vue'
import UserListPopover from '../user_list_popover/user_list_popover.vue'
import EmojiReactions from '../emoji_reactions/emoji_reactions.vue' import EmojiReactions from '../emoji_reactions/emoji_reactions.vue'
import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator' import generateProfileLink from 'src/services/user_profile_link_generator/user_profile_link_generator'
import { highlightClass, highlightStyle } from '../../services/user_highlighter/user_highlighter.js' import { highlightClass, highlightStyle } from '../../services/user_highlighter/user_highlighter.js'
@ -18,6 +19,21 @@ import { mapGetters, mapState } from 'vuex'
const Status = { const Status = {
name: 'Status', name: 'Status',
components: {
FavoriteButton,
ReactButton,
RetweetButton,
ExtraButtons,
PostStatusForm,
UserCard,
UserAvatar,
AvatarList,
Timeago,
StatusPopover,
UserListPopover,
EmojiReactions,
StatusContent
},
props: [ props: [
'statusoid', 'statusoid',
'expandable', 'expandable',
@ -197,20 +213,6 @@ const Status = {
currentUser: state => state.users.currentUser currentUser: state => state.users.currentUser
}) })
}, },
components: {
FavoriteButton,
ReactButton,
RetweetButton,
ExtraButtons,
PostStatusForm,
UserCard,
UserAvatar,
AvatarList,
Timeago,
StatusPopover,
EmojiReactions,
StatusContent
},
methods: { methods: {
visibilityIcon (visibility) { visibilityIcon (visibility) {
switch (visibility) { switch (visibility) {

View file

@ -72,7 +72,10 @@
:user="statusoid.user" :user="statusoid.user"
/> />
<div class="media-body faint"> <div class="media-body faint">
<span class="user-name"> <span
class="user-name"
:title="retweeter"
>
<router-link <router-link
v-if="retweeterHtml" v-if="retweeterHtml"
:to="retweeterProfileLink" :to="retweeterProfileLink"
@ -129,20 +132,28 @@
<h4 <h4
v-if="status.user.name_html" v-if="status.user.name_html"
class="user-name" class="user-name"
:title="status.user.name"
v-html="status.user.name_html" v-html="status.user.name_html"
/> />
<h4 <h4
v-else v-else
class="user-name" class="user-name"
:title="status.user.name"
> >
{{ status.user.name }} {{ status.user.name }}
</h4> </h4>
<router-link <router-link
class="account-name" class="account-name"
:title="status.user.screen_name"
:to="userProfileLink" :to="userProfileLink"
> >
{{ status.user.screen_name }} {{ status.user.screen_name }}
</router-link> </router-link>
<img
class="status-favicon"
v-if="!!(status.user && status.user.favicon)"
:src="status.user.favicon"
>
</div> </div>
<span class="heading-right"> <span class="heading-right">
@ -222,7 +233,10 @@
> >
<span class="reply-to-text">{{ $t('status.reply_to') }}</span> <span class="reply-to-text">{{ $t('status.reply_to') }}</span>
</span> </span>
<router-link :to="replyProfileLink"> <router-link
:title="replyToName"
:to="replyProfileLink"
>
{{ replyToName }} {{ replyToName }}
</router-link> </router-link>
<span <span
@ -265,24 +279,30 @@
class="favs-repeated-users" class="favs-repeated-users"
> >
<div class="stats"> <div class="stats">
<div <UserListPopover
v-if="statusFromGlobalRepository.rebloggedBy && statusFromGlobalRepository.rebloggedBy.length > 0" v-if="statusFromGlobalRepository.rebloggedBy && statusFromGlobalRepository.rebloggedBy.length > 0"
class="stat-count" :users="statusFromGlobalRepository.rebloggedBy"
> >
<a class="stat-title">{{ $t('status.repeats') }}</a> <div class="stat-count">
<div class="stat-number"> <a class="stat-title">{{ $t('status.repeats') }}</a>
{{ statusFromGlobalRepository.rebloggedBy.length }} <div class="stat-number">
{{ statusFromGlobalRepository.rebloggedBy.length }}
</div>
</div> </div>
</div> </UserListPopover>
<div <UserListPopover
v-if="statusFromGlobalRepository.favoritedBy && statusFromGlobalRepository.favoritedBy.length > 0" v-if="statusFromGlobalRepository.favoritedBy && statusFromGlobalRepository.favoritedBy.length > 0"
class="stat-count" :users="statusFromGlobalRepository.favoritedBy"
> >
<a class="stat-title">{{ $t('status.favorites') }}</a> <div
<div class="stat-number"> class="stat-count"
{{ statusFromGlobalRepository.favoritedBy.length }} >
<a class="stat-title">{{ $t('status.favorites') }}</a>
<div class="stat-number">
{{ statusFromGlobalRepository.favoritedBy.length }}
</div>
</div> </div>
</div> </UserListPopover>
<div class="avatar-row"> <div class="avatar-row">
<AvatarList :users="combinedFavsAndRepeatsUsers" /> <AvatarList :users="combinedFavsAndRepeatsUsers" />
</div> </div>
@ -428,6 +448,12 @@ $status-margin: 0.75em;
} }
} }
.status-favicon {
height: 18px;
width: 18px;
margin-right: 0.4em;
}
.media-heading { .media-heading {
padding: 0; padding: 0;
vertical-align: bottom; vertical-align: bottom;
@ -722,6 +748,11 @@ $status-margin: 0.75em;
.stat-count { .stat-count {
margin-right: $status-margin; margin-right: $status-margin;
user-select: none;
&:hover .stat-title {
text-decoration: underline;
}
.stat-title { .stat-title {
color: var(--faint, $fallback--faint); color: var(--faint, $fallback--faint);

View file

@ -148,7 +148,6 @@ const Timeline = {
const bodyBRect = document.body.getBoundingClientRect() const bodyBRect = document.body.getBoundingClientRect()
const height = Math.max(bodyBRect.height, -(bodyBRect.y)) const height = Math.max(bodyBRect.height, -(bodyBRect.y))
if (this.timeline.loading === false && if (this.timeline.loading === false &&
this.$store.getters.mergedConfig.autoLoad &&
this.$el.offsetHeight > 0 && this.$el.offsetHeight > 0 &&
(window.innerHeight + window.pageYOffset) >= (height - 750)) { (window.innerHeight + window.pageYOffset) >= (height - 750)) {
this.fetchOlderStatuses() this.fetchOlderStatuses()

View file

@ -66,6 +66,7 @@
<div class="bottom-line"> <div class="bottom-line">
<router-link <router-link
class="user-screen-name" class="user-screen-name"
:title="user.screen_name"
:to="userProfileLink(user)" :to="userProfileLink(user)"
> >
@{{ user.screen_name }} @{{ user.screen_name }}

View file

@ -0,0 +1,18 @@
const UserListPopover = {
name: 'UserListPopover',
props: [
'users'
],
components: {
Popover: () => import('../popover/popover.vue'),
UserAvatar: () => import('../user_avatar/user_avatar.vue')
},
computed: {
usersCapped () {
return this.users.slice(0, 16)
}
}
}
export default UserListPopover

View file

@ -0,0 +1,71 @@
<template>
<Popover
trigger="hover"
placement="top"
:offset="{ y: 5 }"
>
<template slot="trigger">
<slot />
</template>
<div
slot="content"
class="user-list-popover"
>
<div v-if="users.length">
<div
v-for="(user) in usersCapped"
:key="user.id"
class="user-list-row"
>
<UserAvatar
:user="user"
class="avatar-small"
:compact="true"
/>
<div class="user-list-names">
<!-- eslint-disable vue/no-v-html -->
<span v-html="user.name_html" />
<!-- eslint-enable vue/no-v-html -->
<span class="user-list-screen-name">{{ user.screen_name }}</span>
</div>
</div>
</div>
<div v-else>
<i class="icon-spin4 animate-spin" />
</div>
</div>
</Popover>
</template>
<script src="./user_list_popover.js" ></script>
<style lang="scss">
@import '../../_variables.scss';
.user-list-popover {
padding: 0.5em;
.user-list-row {
padding: 0.25em;
display: flex;
flex-direction: row;
.user-list-names {
display: flex;
flex-direction: column;
margin-left: 0.5em;
min-width: 5em;
img {
width: 1em;
height: 1em;
}
}
.user-list-screen-name {
font-size: 9px;
}
}
}
</style>

View file

@ -73,7 +73,6 @@
"settings": { "settings": {
"attachmentRadius": "المُرفَقات", "attachmentRadius": "المُرفَقات",
"attachments": "المُرفَقات", "attachments": "المُرفَقات",
"autoload": "",
"avatar": "الصورة الرمزية", "avatar": "الصورة الرمزية",
"avatarAltRadius": "الصور الرمزية (الإشعارات)", "avatarAltRadius": "الصور الرمزية (الإشعارات)",
"avatarRadius": "الصور الرمزية", "avatarRadius": "الصور الرمزية",
@ -147,7 +146,6 @@
"profile_tab": "الملف الشخصي", "profile_tab": "الملف الشخصي",
"radii_help": "", "radii_help": "",
"replies_in_timeline": "الردود على الخيط الزمني", "replies_in_timeline": "الردود على الخيط الزمني",
"reply_link_preview": "",
"reply_visibility_all": "عرض كافة الردود", "reply_visibility_all": "عرض كافة الردود",
"reply_visibility_following": "", "reply_visibility_following": "",
"reply_visibility_self": "", "reply_visibility_self": "",

View file

@ -73,7 +73,6 @@
"settings": { "settings": {
"attachmentRadius": "Adjunts", "attachmentRadius": "Adjunts",
"attachments": "Adjunts", "attachments": "Adjunts",
"autoload": "Recarrega automàticament en arribar a sota de tot.",
"avatar": "Avatar", "avatar": "Avatar",
"avatarAltRadius": "Avatars en les notificacions", "avatarAltRadius": "Avatars en les notificacions",
"avatarRadius": "Avatars", "avatarRadius": "Avatars",
@ -96,8 +95,8 @@
"default_vis": "Abast per defecte de les entrades", "default_vis": "Abast per defecte de les entrades",
"delete_account": "Esborra el compte", "delete_account": "Esborra el compte",
"delete_account_description": "Esborra permanentment el teu compte i tots els missatges", "delete_account_description": "Esborra permanentment el teu compte i tots els missatges",
"delete_account_error": "No s'ha pogut esborrar el compte. Si continua el problema, contacta amb l'administració del node", "delete_account_error": "No s'ha pogut esborrar el compte. Si continua el problema, contacta amb l'administració del node.",
"delete_account_instructions": "Confirma que vols esborrar el compte escrivint la teva contrasenya aquí sota", "delete_account_instructions": "Confirma que vols esborrar el compte escrivint la teva contrasenya aquí sota.",
"export_theme": "Desa el tema", "export_theme": "Desa el tema",
"filtering": "Filtres", "filtering": "Filtres",
"filtering_explanation": "Es silenciaran totes les entrades que continguin aquestes paraules. Separa-les per línies", "filtering_explanation": "Es silenciaran totes les entrades que continguin aquestes paraules. Separa-les per línies",
@ -119,7 +118,7 @@
"invalid_theme_imported": "No s'ha entès l'arxiu carregat perquè no és un tema vàlid de Pleroma. No s'ha fet cap canvi als temes actuals.", "invalid_theme_imported": "No s'ha entès l'arxiu carregat perquè no és un tema vàlid de Pleroma. No s'ha fet cap canvi als temes actuals.",
"limited_availability": "No està disponible en aquest navegador", "limited_availability": "No està disponible en aquest navegador",
"links": "Enllaços", "links": "Enllaços",
"lock_account_description": "Restringeix el teu compte només a seguidores aprovades.", "lock_account_description": "Restringeix el teu compte només a seguidores aprovades",
"loop_video": "Reprodueix els vídeos en bucle", "loop_video": "Reprodueix els vídeos en bucle",
"loop_video_silent_only": "Reprodueix en bucles només els vídeos sense so (com els \"GIF\" de Mastodon)", "loop_video_silent_only": "Reprodueix en bucles només els vídeos sense so (com els \"GIF\" de Mastodon)",
"name": "Nom", "name": "Nom",
@ -145,7 +144,6 @@
"profile_tab": "Perfil", "profile_tab": "Perfil",
"radii_help": "Configura l'arrodoniment de les vores (en píxels)", "radii_help": "Configura l'arrodoniment de les vores (en píxels)",
"replies_in_timeline": "Replies in timeline", "replies_in_timeline": "Replies in timeline",
"reply_link_preview": "Mostra el missatge citat en passar el ratolí per sobre de l'enllaç de resposta",
"reply_visibility_all": "Mostra totes les respostes", "reply_visibility_all": "Mostra totes les respostes",
"reply_visibility_following": "Mostra només les respostes a entrades meves o d'usuàries que jo segueixo", "reply_visibility_following": "Mostra només les respostes a entrades meves o d'usuàries que jo segueixo",
"reply_visibility_self": "Mostra només les respostes a entrades meves", "reply_visibility_self": "Mostra només les respostes a entrades meves",
@ -160,7 +158,7 @@
"streaming": "Carrega automàticament entrades noves quan estigui a dalt de tot", "streaming": "Carrega automàticament entrades noves quan estigui a dalt de tot",
"text": "Text", "text": "Text",
"theme": "Tema", "theme": "Tema",
"theme_help": "Personalitza els colors del tema. Escriu-los en format RGB hexadecimal (#rrggbb)", "theme_help": "Personalitza els colors del tema. Escriu-los en format RGB hexadecimal (#rrggbb).",
"tooltipRadius": "Missatges sobreposats", "tooltipRadius": "Missatges sobreposats",
"user_settings": "Configuració personal", "user_settings": "Configuració personal",
"values": { "values": {

View file

@ -112,7 +112,6 @@
"app_name": "Název aplikace", "app_name": "Název aplikace",
"attachmentRadius": "Přílohy", "attachmentRadius": "Přílohy",
"attachments": "Přílohy", "attachments": "Přílohy",
"autoload": "Povolit automatické načítání při rolování dolů",
"avatar": "Avatar", "avatar": "Avatar",
"avatarAltRadius": "Avatary (oznámení)", "avatarAltRadius": "Avatary (oznámení)",
"avatarRadius": "Avatary", "avatarRadius": "Avatary",
@ -206,7 +205,6 @@
"profile_tab": "Profil", "profile_tab": "Profil",
"radii_help": "Nastavit zakulacení rohů rozhraní (v pixelech)", "radii_help": "Nastavit zakulacení rohů rozhraní (v pixelech)",
"replies_in_timeline": "Odpovědi v časové ose", "replies_in_timeline": "Odpovědi v časové ose",
"reply_link_preview": "Povolit náhledy odkazu pro odpověď při přejetí myši",
"reply_visibility_all": "Zobrazit všechny odpovědi", "reply_visibility_all": "Zobrazit všechny odpovědi",
"reply_visibility_following": "Zobrazit pouze odpovědi směřované na mě nebo uživatele, které sleduji", "reply_visibility_following": "Zobrazit pouze odpovědi směřované na mě nebo uživatele, které sleduji",
"reply_visibility_self": "Zobrazit pouze odpovědi směřované na mě", "reply_visibility_self": "Zobrazit pouze odpovědi směřované na mě",
@ -258,7 +256,7 @@
"contrast": { "contrast": {
"hint": "Poměr kontrastu je {ratio}, {level} {context}", "hint": "Poměr kontrastu je {ratio}, {level} {context}",
"level": { "level": {
"aa": "splňuje směrnici úrovně AA (minimální)", "aa": "splňuje směrnici úrovně AA (minimální)",
"aaa": "splňuje směrnici úrovně AAA (doporučováno)", "aaa": "splňuje směrnici úrovně AAA (doporučováno)",
"bad": "nesplňuje žádné směrnice přístupnosti" "bad": "nesplňuje žádné směrnice přístupnosti"
}, },
@ -400,7 +398,6 @@
"reply_to": "Odpověď uživateli", "reply_to": "Odpověď uživateli",
"replies_list": "Odpovědi:" "replies_list": "Odpovědi:"
}, },
"user_card": { "user_card": {
"approve": "Schválit", "approve": "Schválit",
"block": "Blokovat", "block": "Blokovat",
@ -446,7 +443,7 @@
"favorite": "Oblíbit", "favorite": "Oblíbit",
"user_settings": "Uživatelské nastavení" "user_settings": "Uživatelské nastavení"
}, },
"upload":{ "upload": {
"error": { "error": {
"base": "Nahrávání selhalo.", "base": "Nahrávání selhalo.",
"file_too_big": "Soubor je příliš velký [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", "file_too_big": "Soubor je příliš velký [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]",

View file

@ -66,7 +66,7 @@
"who_to_follow": "Wem folgen" "who_to_follow": "Wem folgen"
}, },
"notifications": { "notifications": {
"broken_favorite": "Unbekannte Nachricht, suche danach...", "broken_favorite": "Unbekannte Nachricht, suche danach",
"favorited_you": "favorisierte deine Nachricht", "favorited_you": "favorisierte deine Nachricht",
"followed_you": "folgt dir", "followed_you": "folgt dir",
"load_older": "Ältere Benachrichtigungen laden", "load_older": "Ältere Benachrichtigungen laden",
@ -115,7 +115,7 @@
"registration": "Registrierung", "registration": "Registrierung",
"token": "Einladungsschlüssel", "token": "Einladungsschlüssel",
"captcha": "CAPTCHA", "captcha": "CAPTCHA",
"new_captcha": "Zum Erstellen eines neuen Captcha auf das Bild klicken.", "new_captcha": "Zum Erstellen eines neuen Captcha auf das Bild klicken",
"validations": { "validations": {
"username_required": "darf nicht leer sein", "username_required": "darf nicht leer sein",
"fullname_required": "darf nicht leer sein", "fullname_required": "darf nicht leer sein",
@ -131,7 +131,6 @@
"settings": { "settings": {
"attachmentRadius": "Anhänge", "attachmentRadius": "Anhänge",
"attachments": "Anhänge", "attachments": "Anhänge",
"autoload": "Aktiviere automatisches Laden von älteren Beiträgen beim scrollen",
"avatar": "Avatar", "avatar": "Avatar",
"avatarAltRadius": "Avatare (Benachrichtigungen)", "avatarAltRadius": "Avatare (Benachrichtigungen)",
"avatarRadius": "Avatare", "avatarRadius": "Avatare",
@ -162,7 +161,7 @@
"pad_emoji": "Emojis mit Leerzeichen umrahmen", "pad_emoji": "Emojis mit Leerzeichen umrahmen",
"export_theme": "Farbschema speichern", "export_theme": "Farbschema speichern",
"filtering": "Filtern", "filtering": "Filtern",
"filtering_explanation": "Alle Beiträge, welche diese Wörter enthalten, werden ausgeblendet. Ein Wort pro Zeile.", "filtering_explanation": "Alle Beiträge, welche diese Wörter enthalten, werden ausgeblendet. Ein Wort pro Zeile",
"follow_export": "Follower exportieren", "follow_export": "Follower exportieren",
"follow_export_button": "Exportiere deine Follows in eine csv-Datei", "follow_export_button": "Exportiere deine Follows in eine csv-Datei",
"follow_export_processing": "In Bearbeitung. Die Liste steht gleich zum herunterladen bereit.", "follow_export_processing": "In Bearbeitung. Die Liste steht gleich zum herunterladen bereit.",
@ -225,7 +224,6 @@
"profile_tab": "Profil", "profile_tab": "Profil",
"radii_help": "Kantenrundung (in Pixel) der Oberfläche anpassen", "radii_help": "Kantenrundung (in Pixel) der Oberfläche anpassen",
"replies_in_timeline": "Antworten in der Zeitleiste", "replies_in_timeline": "Antworten in der Zeitleiste",
"reply_link_preview": "Antwortlink-Vorschau beim Überfahren mit der Maus aktivieren",
"reply_visibility_all": "Alle Antworten zeigen", "reply_visibility_all": "Alle Antworten zeigen",
"reply_visibility_following": "Zeige nur Antworten an mich oder an Benutzer, denen ich folge", "reply_visibility_following": "Zeige nur Antworten an mich oder an Benutzer, denen ich folge",
"reply_visibility_self": "Nur Antworten an mich anzeigen", "reply_visibility_self": "Nur Antworten an mich anzeigen",
@ -249,7 +247,7 @@
"streaming": "Aktiviere automatisches Laden (Streaming) von neuen Beiträgen", "streaming": "Aktiviere automatisches Laden (Streaming) von neuen Beiträgen",
"text": "Text", "text": "Text",
"theme": "Farbschema", "theme": "Farbschema",
"theme_help": "Benutze HTML-Farbcodes (#rrggbb) um dein Farbschema anzupassen", "theme_help": "Benutze HTML-Farbcodes (#rrggbb) um dein Farbschema anzupassen.",
"theme_help_v2_1": "Du kannst auch die Farben und die Deckkraft bestimmter Komponenten überschreiben, indem du das Kontrollkästchen umschaltest. Verwende die Schaltfläche \"Alle löschen\", um alle Überschreibungen zurückzusetzen.", "theme_help_v2_1": "Du kannst auch die Farben und die Deckkraft bestimmter Komponenten überschreiben, indem du das Kontrollkästchen umschaltest. Verwende die Schaltfläche \"Alle löschen\", um alle Überschreibungen zurückzusetzen.",
"theme_help_v2_2": "Unter einigen Einträgen befinden sich Symbole für Hintergrund-/Textkontrastindikatoren, für detaillierte Informationen fahre mit der Maus darüber. Bitte beachte, dass bei der Verwendung von Transparenz Kontrastindikatoren den schlechtest möglichen Fall darstellen.", "theme_help_v2_2": "Unter einigen Einträgen befinden sich Symbole für Hintergrund-/Textkontrastindikatoren, für detaillierte Informationen fahre mit der Maus darüber. Bitte beachte, dass bei der Verwendung von Transparenz Kontrastindikatoren den schlechtest möglichen Fall darstellen.",
"tooltipRadius": "Tooltips/Warnungen", "tooltipRadius": "Tooltips/Warnungen",
@ -323,7 +321,7 @@
"always_drop_shadow": "Achtung, dieser Schatten verwendet immer {0}, wenn der Browser dies unterstützt.", "always_drop_shadow": "Achtung, dieser Schatten verwendet immer {0}, wenn der Browser dies unterstützt.",
"drop_shadow_syntax": "{0} unterstützt Parameter {1} und Schlüsselwort {2} nicht.", "drop_shadow_syntax": "{0} unterstützt Parameter {1} und Schlüsselwort {2} nicht.",
"avatar_inset": "Bitte beachte, dass die Kombination von eingesetzten und nicht eingesetzten Schatten auf Avataren zu unerwarteten Ergebnissen bei transparenten Avataren führen kann.", "avatar_inset": "Bitte beachte, dass die Kombination von eingesetzten und nicht eingesetzten Schatten auf Avataren zu unerwarteten Ergebnissen bei transparenten Avataren führen kann.",
"spread_zero": "Schatten mit einer Streuung > 0 erscheinen so, als ob sie auf Null gesetzt wären.", "spread_zero": "Schatten mit einer Streuung > 0 erscheinen so, als ob sie auf Null gesetzt wären",
"inset_classic": "Eingesetzte Schatten werden mit {0} verwendet" "inset_classic": "Eingesetzte Schatten werden mit {0} verwendet"
}, },
"components": { "components": {
@ -377,7 +375,7 @@
"warning_of_generate_new_codes": "Wenn du neue Wiederherstellungs-Codes generierst, werden die alten Codes nicht mehr funktionieren.", "warning_of_generate_new_codes": "Wenn du neue Wiederherstellungs-Codes generierst, werden die alten Codes nicht mehr funktionieren.",
"generate_new_recovery_codes": "Generiere neue Wiederherstellungs-Codes", "generate_new_recovery_codes": "Generiere neue Wiederherstellungs-Codes",
"title": "Zwei-Faktor Authentifizierung", "title": "Zwei-Faktor Authentifizierung",
"waiting_a_recovery_codes": "Erhalte Wiederherstellungscodes...", "waiting_a_recovery_codes": "Erhalte Wiederherstellungscodes",
"authentication_methods": "Authentifizierungsmethoden", "authentication_methods": "Authentifizierungsmethoden",
"scan": { "scan": {
"title": "Scan", "title": "Scan",
@ -401,8 +399,6 @@
"changed_email": "Email Adresse erfolgreich geändert!", "changed_email": "Email Adresse erfolgreich geändert!",
"change_email_error": "Es trat ein Problem auf beim Versuch, deine Email Adresse zu ändern.", "change_email_error": "Es trat ein Problem auf beim Versuch, deine Email Adresse zu ändern.",
"change_email": "Ändere Email", "change_email": "Ändere Email",
"notification_setting_non_followers": "Nutzer, die dir nicht folgen",
"notification_setting_followers": "Nutzer, die dir folgen",
"import_blocks_from_a_csv_file": "Importiere Blocks von einer CSV Datei", "import_blocks_from_a_csv_file": "Importiere Blocks von einer CSV Datei",
"accent": "Akzent" "accent": "Akzent"
}, },
@ -411,7 +407,7 @@
"conversation": "Unterhaltung", "conversation": "Unterhaltung",
"error_fetching": "Fehler beim Laden", "error_fetching": "Fehler beim Laden",
"load_older": "Lade ältere Beiträge", "load_older": "Lade ältere Beiträge",
"no_retweet_hint": "Der Beitrag ist als nur-für-Follower oder als Direktnachricht markiert und kann nicht wiederholt werden.", "no_retweet_hint": "Der Beitrag ist als nur-für-Follower oder als Direktnachricht markiert und kann nicht wiederholt werden",
"repeated": "wiederholte", "repeated": "wiederholte",
"show_new": "Zeige Neuere", "show_new": "Zeige Neuere",
"up_to_date": "Aktuell" "up_to_date": "Aktuell"
@ -485,7 +481,7 @@
"not_found": "Benutzername/E-Mail-Adresse nicht gefunden. Vertippt?", "not_found": "Benutzername/E-Mail-Adresse nicht gefunden. Vertippt?",
"too_many_requests": "Kurze Pause. Zu viele Versuche. Bitte, später nochmal probieren.", "too_many_requests": "Kurze Pause. Zu viele Versuche. Bitte, später nochmal probieren.",
"password_reset_disabled": "Passwortzurücksetzen deaktiviert. Bitte Administrator kontaktieren.", "password_reset_disabled": "Passwortzurücksetzen deaktiviert. Bitte Administrator kontaktieren.",
"password_reset_required": "Passwortzurücksetzen erforderlich", "password_reset_required": "Passwortzurücksetzen erforderlich.",
"password_reset_required_but_mailer_is_disabled": "Passwortzurücksetzen wäre erforderlich, ist aber deaktiviert. Bitte Administrator kontaktieren." "password_reset_required_but_mailer_is_disabled": "Passwortzurücksetzen wäre erforderlich, ist aber deaktiviert. Bitte Administrator kontaktieren."
}, },
"about": { "about": {
@ -520,9 +516,9 @@
}, },
"domain_mute_card": { "domain_mute_card": {
"mute": "Stummschalten", "mute": "Stummschalten",
"mute_progress": "Wird stummgeschaltet..", "mute_progress": "Wird stummgeschaltet",
"unmute": "Stummschaltung aufheben", "unmute": "Stummschaltung aufheben",
"unmute_progress": "Stummschaltung wird aufgehoben.." "unmute_progress": "Stummschaltung wird aufgehoben"
}, },
"exporter": { "exporter": {
"export": "Exportieren", "export": "Exportieren",

View file

@ -29,8 +29,8 @@
}, },
"staff": "Staff" "staff": "Staff"
}, },
"chat": { "shoutbox": {
"title": "Chat" "title": "Shoutbox"
}, },
"domain_mute_card": { "domain_mute_card": {
"mute": "Mute", "mute": "Mute",
@ -265,7 +265,6 @@
"allow_following_move": "Allow auto-follow when following account moves", "allow_following_move": "Allow auto-follow when following account moves",
"attachmentRadius": "Attachments", "attachmentRadius": "Attachments",
"attachments": "Attachments", "attachments": "Attachments",
"autoload": "Enable automatic loading when scrolled to the bottom",
"avatar": "Avatar", "avatar": "Avatar",
"avatarAltRadius": "Avatars (Notifications)", "avatarAltRadius": "Avatars (Notifications)",
"avatarRadius": "Avatars", "avatarRadius": "Avatars",
@ -387,7 +386,6 @@
"profile_tab": "Profile", "profile_tab": "Profile",
"radii_help": "Set up interface edge rounding (in pixels)", "radii_help": "Set up interface edge rounding (in pixels)",
"replies_in_timeline": "Replies in timeline", "replies_in_timeline": "Replies in timeline",
"reply_link_preview": "Enable reply-link preview on mouse hover",
"reply_visibility_all": "Show all replies", "reply_visibility_all": "Show all replies",
"reply_visibility_following": "Only show replies directed at me or users I'm following", "reply_visibility_following": "Only show replies directed at me or users I'm following",
"reply_visibility_self": "Only show replies directed at me", "reply_visibility_self": "Only show replies directed at me",
@ -439,13 +437,9 @@
"greentext": "Meme arrows", "greentext": "Meme arrows",
"notifications": "Notifications", "notifications": "Notifications",
"notification_setting_filters": "Filters", "notification_setting_filters": "Filters",
"notification_setting": "Receive notifications from:", "notification_setting_block_from_strangers": "Block notifications from users who you do not follow",
"notification_setting_follows": "Users you follow",
"notification_setting_non_follows": "Users you do not follow",
"notification_setting_followers": "Users who follow you",
"notification_setting_non_followers": "Users who do not follow you",
"notification_setting_privacy": "Privacy", "notification_setting_privacy": "Privacy",
"notification_setting_privacy_option": "Hide the sender and contents of push notifications", "notification_setting_hide_notification_contents": "Hide the sender and contents of push notifications",
"notification_mutes": "To stop receiving notifications from a specific user, use a mute.", "notification_mutes": "To stop receiving notifications from a specific user, use a mute.",
"notification_blocks": "Blocking a user stops all notifications as well as unsubscribes them.", "notification_blocks": "Blocking a user stops all notifications as well as unsubscribes them.",
"enable_web_push_notifications": "Enable web push notifications", "enable_web_push_notifications": "Enable web push notifications",
@ -790,6 +784,7 @@
"password_reset_required_but_mailer_is_disabled": "You must reset your password, but password reset is disabled. Please contact your instance administrator." "password_reset_required_but_mailer_is_disabled": "You must reset your password, but password reset is disabled. Please contact your instance administrator."
}, },
"chats": { "chats": {
"you": "You:",
"message_user": "Message {nickname}", "message_user": "Message {nickname}",
"delete": "Delete", "delete": "Delete",
"chats": "Chats", "chats": "Chats",

View file

@ -5,14 +5,15 @@
"features_panel": { "features_panel": {
"chat": "Babilejo", "chat": "Babilejo",
"gopher": "Gopher", "gopher": "Gopher",
"media_proxy": "Aŭdvidaĵa prokurilo", "media_proxy": "Vidaŭdaĵa prokurilo",
"scope_options": "Agordoj de amplekso", "scope_options": "Agordoj de amplekso",
"text_limit": "Teksta limo", "text_limit": "Limo de teksto",
"title": "Funkcioj", "title": "Funkcioj",
"who_to_follow": "Kiun aboni" "who_to_follow": "Kiun aboni",
"pleroma_chat_messages": "Babilejo de Pleroma"
}, },
"finder": { "finder": {
"error_fetching_user": "Eraro alportante uzanton", "error_fetching_user": "Eraris alporto de uzanto",
"find_user": "Trovi uzanton" "find_user": "Trovi uzanton"
}, },
"general": { "general": {
@ -20,12 +21,25 @@
"submit": "Sendi", "submit": "Sendi",
"more": "Pli", "more": "Pli",
"generic_error": "Eraro okazis", "generic_error": "Eraro okazis",
"optional": "Malnepra" "optional": "malnepra",
"close": "Fermi",
"verify": "Kontroli",
"confirm": "Konfirmi",
"enable": "Ŝalti",
"disable": "Malŝalti",
"cancel": "Nuligi",
"dismiss": "Forlasi",
"show_less": "Montri malplion",
"show_more": "Montri plion",
"retry": "Reprovi",
"error_retry": "Bonvolu reprovi",
"loading": "Enlegante…"
}, },
"image_cropper": { "image_cropper": {
"crop_picture": "Tondi bildon", "crop_picture": "Tondi bildon",
"save": "Konservi", "save": "Konservi",
"cancel": "Nuligi" "cancel": "Nuligi",
"save_without_cropping": "Konservi sen tondado"
}, },
"login": { "login": {
"login": "Saluti", "login": "Saluti",
@ -34,8 +48,16 @@
"password": "Pasvorto", "password": "Pasvorto",
"placeholder": "ekz. lain", "placeholder": "ekz. lain",
"register": "Registriĝi", "register": "Registriĝi",
"username": "Salutnomo", "username": "Uzantonomo",
"hint": "Salutu por partopreni la diskutadon" "hint": "Salutu por partopreni la diskutadon",
"heading": {
"recovery": "Rehavo de duobla aŭtentikigo",
"totp": "Duobla aŭtentikigo"
},
"recovery_code": "Rehava kodo",
"enter_two_factor_code": "Enigu kodon de duobla aŭtentikigo",
"enter_recovery_code": "Enigu rehavan kodon",
"authentication_code": "Aŭtentikiga kodo"
}, },
"media_modal": { "media_modal": {
"previous": "Antaŭa", "previous": "Antaŭa",
@ -45,7 +67,7 @@
"about": "Pri", "about": "Pri",
"back": "Reen", "back": "Reen",
"chat": "Loka babilejo", "chat": "Loka babilejo",
"friend_requests": "Abonaj petoj", "friend_requests": "Petoj pri abono",
"mentions": "Mencioj", "mentions": "Mencioj",
"dms": "Rektaj mesaĝoj", "dms": "Rektaj mesaĝoj",
"public_tl": "Publika tempolinio", "public_tl": "Publika tempolinio",
@ -53,7 +75,12 @@
"twkn": "La tuta konata reto", "twkn": "La tuta konata reto",
"user_search": "Serĉi uzantojn", "user_search": "Serĉi uzantojn",
"who_to_follow": "Kiun aboni", "who_to_follow": "Kiun aboni",
"preferences": "Agordoj" "preferences": "Agordoj",
"chats": "Babiloj",
"search": "Serĉi",
"interactions": "Interagoj",
"administration": "Administrado",
"bookmarks": "Legosignoj"
}, },
"notifications": { "notifications": {
"broken_favorite": "Nekonata stato, serĉante ĝin…", "broken_favorite": "Nekonata stato, serĉante ĝin…",
@ -63,15 +90,21 @@
"notifications": "Sciigoj", "notifications": "Sciigoj",
"read": "Legite!", "read": "Legite!",
"repeated_you": "ripetis vian staton", "repeated_you": "ripetis vian staton",
"no_more_notifications": "Neniuj pliaj sciigoj" "no_more_notifications": "Neniuj pliaj sciigoj",
"reacted_with": "reagis per {0}",
"migrated_to": "migris al",
"follow_request": "volas vin aboni"
}, },
"post_status": { "post_status": {
"new_status": "Afiŝi novan staton", "new_status": "Afiŝi novan staton",
"account_not_locked_warning": "Via konto ne estas {0}. Iu ajn povas vin aboni por vidi viajn afiŝoj nur por abonantoj.", "account_not_locked_warning": "Via konto ne estas {0}. Iu ajn povas vin aboni por vidi viajn afiŝoj nur por abonantoj.",
"account_not_locked_warning_link": "ŝlosita", "account_not_locked_warning_link": "ŝlosita",
"attachments_sensitive": "Marki kunsendaĵojn kiel konsternajn", "attachments_sensitive": "Marki kunsendaĵojn konsternaj",
"content_type": { "content_type": {
"text/plain": "Plata teksto" "text/plain": "Plata teksto",
"text/bbcode": "BBCode",
"text/markdown": "Markdown",
"text/html": "HTML"
}, },
"content_warning": "Temo (malnepra)", "content_warning": "Temo (malnepra)",
"default": "Ĵus alvenis al la Universala Kongreso!", "default": "Ĵus alvenis al la Universala Kongreso!",
@ -82,7 +115,19 @@
"private": "Nur abonantoj Afiŝi nur al abonantoj", "private": "Nur abonantoj Afiŝi nur al abonantoj",
"public": "Publika Afiŝi al publikaj tempolinioj", "public": "Publika Afiŝi al publikaj tempolinioj",
"unlisted": "Nelistigita Ne afiŝi al publikaj tempolinioj" "unlisted": "Nelistigita Ne afiŝi al publikaj tempolinioj"
} },
"scope_notice": {
"unlisted": "Ĉi tiu afiŝo ne estos videbla en la Publika historio kaj La tuta konata reto",
"private": "Ĉi tiu afiŝo estos videbla nur al viaj abonantoj",
"public": "Ĉi tiu afiŝo estos videbla al ĉiuj"
},
"media_description_error": "Malsukcesis afiŝo de vidaŭdaĵoj; reprovu",
"empty_status_error": "Ne povas afiŝi malplenan staton sen dosieroj",
"preview_empty": "Malplena",
"preview": "Antaŭrigardo",
"direct_warning_to_first_only": "Ĉi tiu afiŝo estas nur videbla al uzantoj menciitaj je la komenco de la mesaĝo.",
"direct_warning_to_all": "Ĉi tiu afiŝo estos videbla al ĉiuj menciitaj uzantoj.",
"media_description": "Priskribo de vidaŭdaĵo"
}, },
"registration": { "registration": {
"bio": "Priskribo", "bio": "Priskribo",
@ -92,10 +137,10 @@
"registration": "Registriĝo", "registration": "Registriĝo",
"token": "Invita ĵetono", "token": "Invita ĵetono",
"captcha": "TESTO DE HOMECO", "captcha": "TESTO DE HOMECO",
"new_captcha": "Alklaku la bildon por akiri novan teston", "new_captcha": "Klaku la bildon por akiri novan teston",
"username_placeholder": "ekz. lain", "username_placeholder": "ekz. lain",
"fullname_placeholder": "ekz. Lain Iwakura", "fullname_placeholder": "ekz. Lain Iwakura",
"bio_placeholder": "ekz.\nSaluton, mi estas Lain\nMi estas animea knabino vivante en Japanujo. Eble vi konas min de la retejo «Wired».", "bio_placeholder": "ekz.\nSaluton, mi estas Lain.\nMi estas animea knabino vivanta en Japanujo. Eble vi konas min pro la retejo «Wired».",
"validations": { "validations": {
"username_required": "ne povas resti malplena", "username_required": "ne povas resti malplena",
"fullname_required": "ne povas resti malplena", "fullname_required": "ne povas resti malplena",
@ -109,53 +154,52 @@
"app_name": "Nomo de aplikaĵo", "app_name": "Nomo de aplikaĵo",
"attachmentRadius": "Kunsendaĵoj", "attachmentRadius": "Kunsendaĵoj",
"attachments": "Kunsendaĵoj", "attachments": "Kunsendaĵoj",
"autoload": "Ŝalti memfaran enlegadon ĉe subo de paĝo",
"avatar": "Profilbildo", "avatar": "Profilbildo",
"avatarAltRadius": "Profilbildoj (sciigoj)", "avatarAltRadius": "Profilbildoj (sciigoj)",
"avatarRadius": "Profilbildoj", "avatarRadius": "Profilbildoj",
"background": "Fono", "background": "Fono",
"bio": "Priskribo", "bio": "Priskribo",
"blocks_tab": "Baroj", "blocks_tab": "Blokitoj",
"btnRadius": "Butonoj", "btnRadius": "Butonoj",
"cBlue": "Blua (Respondo, abono)", "cBlue": "Blua (respondi, aboni)",
"cGreen": "Verda (Kunhavigo)", "cGreen": "Verda (kunhavigi)",
"cOrange": "Oranĝa (Ŝato)", "cOrange": "Oranĝa (ŝati)",
"cRed": "Ruĝa (Nuligo)", "cRed": "Ruĝa (nuligi)",
"change_password": "Ŝanĝi pasvorton", "change_password": "Ŝanĝi pasvorton",
"change_password_error": "Okazis eraro dum ŝanĝo de via pasvorto.", "change_password_error": "Eraris ŝanĝo de via pasvorto.",
"changed_password": "Pasvorto sukcese ŝanĝiĝis!", "changed_password": "Pasvorto sukcese ŝanĝiĝis!",
"collapse_subject": "Maletendi afiŝojn kun temoj", "collapse_subject": "Maletendi afiŝojn kun temoj",
"composing": "Verkante", "composing": "Verkado",
"confirm_new_password": "Konfirmu novan pasvorton", "confirm_new_password": "Konfirmu novan pasvorton",
"current_avatar": "Via nuna profilbildo", "current_avatar": "Via nuna profilbildo",
"current_password": "Nuna pasvorto", "current_password": "Nuna pasvorto",
"current_profile_banner": "Via nuna profila rubando", "current_profile_banner": "Via nuna profila rubando",
"data_import_export_tab": "Enporto / Elporto de datenoj", "data_import_export_tab": "Enporto / Elporto de datumoj",
"default_vis": "Implicita videbleca amplekso", "default_vis": "Implicita amplekso de vidibleco",
"delete_account": "Forigi konton", "delete_account": "Forigi konton",
"delete_account_description": "Por ĉiam forigi vian konton kaj ĉiujn viajn mesaĝojn", "delete_account_description": "Por ĉiam forigi viajn datumojn kaj malaktivigi vian konton.",
"delete_account_error": "Okazis eraro dum forigo de via kanto. Se tio daŭre okazados, bonvolu kontakti la administranton de via nodo.", "delete_account_error": "Eraris forigo de via kanto. Se tio daŭre ripetiĝos, bonvolu kontakti la administranton de via nodo.",
"delete_account_instructions": "Entajpu sube vian pasvorton por konfirmi forigon de konto.", "delete_account_instructions": "Entajpu sube vian pasvorton por konfirmi forigon de konto.",
"avatar_size_instruction": "La rekomendata malpleja grando de profilbildoj estas 150×150 bilderoj.", "avatar_size_instruction": "La rekomendata minimuma grando de profilbildoj estas 150×150 bilderoj.",
"export_theme": "Konservi antaŭagordon", "export_theme": "Konservi antaŭagordon",
"filtering": "Filtrado", "filtering": "Filtrado",
"filtering_explanation": "Ĉiuj statoj kun tiuj ĉi vortoj silentiĝos, po unu linio", "filtering_explanation": "Ĉiuj statoj kun tiuj ĉi vortoj silentiĝos; skribu po unu linie",
"follow_export": "Abona elporto", "follow_export": "Elporto de abonoj",
"follow_export_button": "Elporti viajn abonojn al CSV-dosiero", "follow_export_button": "Elporti viajn abonojn al CSV-dosiero",
"follow_export_processing": "Traktante; baldaŭ vi ricevos peton elŝuti la dosieron", "follow_export_processing": "Traktante; baldaŭ vi ricevos peton elŝuti la dosieron",
"follow_import": "Abona enporto", "follow_import": "Enporto de abonoj",
"follow_import_error": "Eraro enportante abonojn", "follow_import_error": "Eraro enportante abonojn",
"follows_imported": "Abonoj enportiĝis! Traktado daŭros iom.", "follows_imported": "Abonoj enportiĝis! Traktado daŭros iom da tempo.",
"foreground": "Malfono", "foreground": "Malfono",
"general": "Ĝenerala", "general": "Ĝenerala",
"hide_attachments_in_convo": "Kaŝi kunsendaĵojn en interparoloj", "hide_attachments_in_convo": "Kaŝi kunsendaĵojn en interparoloj",
"hide_attachments_in_tl": "Kaŝi kunsendaĵojn en tempolinio", "hide_attachments_in_tl": "Kaŝi kunsendaĵojn en tempolinio",
"max_thumbnails": "Plej multa nombro da bildetoj po afiŝo", "max_thumbnails": "Maksimuma nombro da bildetoj en afiŝo",
"hide_isp": "Kaŝi nodo-propran breton", "hide_isp": "Kaŝi breton propran al nodo",
"preload_images": "Antaŭ-enlegi bildojn", "preload_images": "Antaŭ-enlegi bildojn",
"use_one_click_nsfw": "Malfermi konsternajn kunsendaĵojn per nur unu klako", "use_one_click_nsfw": "Malfermi konsternajn kunsendaĵojn per nur unu klako",
"hide_post_stats": "Kaŝi statistikon de afiŝoj (ekz. nombron da ŝatoj)", "hide_post_stats": "Kaŝi statistikon de afiŝoj (ekz. nombron de ŝatoj)",
"hide_user_stats": "Kaŝi statistikon de uzantoj (ekz. nombron da abonantoj)", "hide_user_stats": "Kaŝi statistikon de uzantoj (ekz. nombron de abonantoj)",
"hide_filtered_statuses": "Kaŝi filtritajn statojn", "hide_filtered_statuses": "Kaŝi filtritajn statojn",
"import_followers_from_a_csv_file": "Enporti abonojn el CSV-dosiero", "import_followers_from_a_csv_file": "Enporti abonojn el CSV-dosiero",
"import_theme": "Enlegi antaŭagordojn", "import_theme": "Enlegi antaŭagordojn",
@ -170,9 +214,9 @@
"links": "Ligiloj", "links": "Ligiloj",
"lock_account_description": "Limigi vian konton al nur abonantoj aprobitaj", "lock_account_description": "Limigi vian konton al nur abonantoj aprobitaj",
"loop_video": "Ripetadi filmojn", "loop_video": "Ripetadi filmojn",
"loop_video_silent_only": "Ripetadi nur filmojn sen sono (ekz. la \"GIF-ojn\" de Mastodon)", "loop_video_silent_only": "Ripetadi nur filmojn sen sono (ekz. la «GIF-ojn» de Mastodon)",
"mutes_tab": "Silentigoj", "mutes_tab": "Silentigoj",
"play_videos_in_modal": "Ludi filmojn rekte en la aŭdvidaĵa spektilo", "play_videos_in_modal": "Ludi filmojn en ŝpruca kadro",
"use_contain_fit": "Ne tondi la kunsendaĵon en bildetoj", "use_contain_fit": "Ne tondi la kunsendaĵon en bildetoj",
"name": "Nomo", "name": "Nomo",
"name_bio": "Nomo kaj priskribo", "name_bio": "Nomo kaj priskribo",
@ -183,51 +227,50 @@
"notification_visibility_mentions": "Mencioj", "notification_visibility_mentions": "Mencioj",
"notification_visibility_repeats": "Ripetoj", "notification_visibility_repeats": "Ripetoj",
"no_rich_text_description": "Forigi riĉtekstajn formojn de ĉiuj afiŝoj", "no_rich_text_description": "Forigi riĉtekstajn formojn de ĉiuj afiŝoj",
"no_blocks": "Neniuj baroj", "no_blocks": "Neniuj blokitoj",
"no_mutes": "Neniuj silentigoj", "no_mutes": "Neniuj silentigoj",
"hide_follows_description": "Ne montri kiun mi sekvas", "hide_follows_description": "Ne montri kiun mi sekvas",
"hide_followers_description": "Ne montri kiu min sekvas", "hide_followers_description": "Ne montri kiu min sekvas",
"show_admin_badge": "Montri la insignon de administranto en mia profilo", "show_admin_badge": "Montri la insignon de administranto en mia profilo",
"show_moderator_badge": "Montri la insignon de kontrolanto en mia profilo", "show_moderator_badge": "Montri la insignon de reguligisto en mia profilo",
"nsfw_clickthrough": "Ŝalti traklakan kaŝon de konsternaj kunsendaĵoj", "nsfw_clickthrough": "Ŝalti traklakan kaŝadon de konsternaj kunsendaĵoj",
"oauth_tokens": "Ĵetonoj de OAuth", "oauth_tokens": "Ĵetonoj de OAuth",
"token": "Ĵetono", "token": "Ĵetono",
"refresh_token": "Ĵetono de novigo", "refresh_token": "Ĵetono de aktualigo",
"valid_until": "Valida ĝis", "valid_until": "Valida ĝis",
"revoke_token": "Senvalidigi", "revoke_token": "Senvalidigi",
"panelRadius": "Bretoj", "panelRadius": "Bretoj",
"pause_on_unfocused": "Paŭzigi elsendfluon kiam langeto ne estas fokusata", "pause_on_unfocused": "Paŭzigi elsendfluon kiam langeto ne estas fokusata",
"presets": "Antaŭagordoj", "presets": "Antaŭagordoj",
"profile_background": "Profila fono", "profile_background": "Fono de profilo",
"profile_banner": "Profila rubando", "profile_banner": "Rubando de profilo",
"profile_tab": "Profilo", "profile_tab": "Profilo",
"radii_help": "Agordi fasadan rondigon de randoj (bildere)", "radii_help": "Agordi fasadan rondigon de randoj (bildere)",
"replies_in_timeline": "Respondoj en tempolinio", "replies_in_timeline": "Respondoj en tempolinio",
"reply_link_preview": "Ŝalti respond-ligilan antaŭvidon dum musa ŝvebo",
"reply_visibility_all": "Montri ĉiujn respondojn", "reply_visibility_all": "Montri ĉiujn respondojn",
"reply_visibility_following": "Montri nur respondojn por mi aŭ miaj abonatoj", "reply_visibility_following": "Montri nur respondojn por mi aŭ miaj abonatoj",
"reply_visibility_self": "Montri nur respondojn por mi", "reply_visibility_self": "Montri nur respondojn por mi",
"saving_err": "Eraro dum konservo de agordoj", "saving_err": "Eraris konservado de agordoj",
"saving_ok": "Agordoj konserviĝis", "saving_ok": "Agordoj konserviĝis",
"security_tab": "Sekureco", "security_tab": "Sekureco",
"scope_copy": "Kopii amplekson por respondo (rektaj mesaĝoj ĉiam kopiiĝas)", "scope_copy": "Kopii amplekson por respondo (rektaj mesaĝoj ĉiam kopiiĝas)",
"set_new_avatar": "Agordi novan profilbildon", "set_new_avatar": "Agordi novan profilbildon",
"set_new_profile_background": "Agordi novan profilan fonon", "set_new_profile_background": "Agordi novan fonon de profilo",
"set_new_profile_banner": "Agordi novan profilan rubandon", "set_new_profile_banner": "Agordi novan rubandon de profilo",
"settings": "Agordoj", "settings": "Agordoj",
"subject_input_always_show": "Ĉiam montri teman kampon", "subject_input_always_show": "Ĉiam montri kampon de temo",
"subject_line_behavior": "Kopii temon por respondo", "subject_line_behavior": "Kopii temon dum respondado",
"subject_line_email": "Kiel retpoŝto: \"re: temo\"", "subject_line_email": "Kiel retpoŝto: «re: temo»",
"subject_line_mastodon": "Kiel Mastodon: kopii senŝanĝe", "subject_line_mastodon": "Kiel Mastodon: kopii senŝanĝe",
"subject_line_noop": "Ne kopii", "subject_line_noop": "Ne kopii",
"post_status_content_type": "Afiŝi specon de la enhavo de la stato", "post_status_content_type": "Afiŝi specon de la enhavo de la stato",
"stop_gifs": "Movi GIF-bildojn dum musa ŝvebo", "stop_gifs": "Movi GIF-bildojn dum ŝvebo de muso",
"streaming": "Ŝalti memfaran fluigon de novaj afiŝoj ĉe la supro de la paĝo", "streaming": "Ŝalti memagan fluigon de novaj afiŝoj kiam vi vidas la supron de la paĝo",
"text": "Teksto", "text": "Teksto",
"theme": "Haŭto", "theme": "Haŭto",
"theme_help": "Uzu deksesumajn kolorkodojn (#rrvvbb) por adapti vian koloran haŭton.", "theme_help": "Uzu deksesumajn kolorkodojn (#rrvvbb) por adapti vian koloran haŭton.",
"theme_help_v2_1": "Vi ankaŭ povas superagordi la kolorojn kaj travideblecon de kelkaj eroj per marko de la markbutono; uzu la butonon \"Vakigi ĉion\" por forigi ĉîujn superagordojn.", "theme_help_v2_1": "Vi ankaŭ povas superagordi la kolorojn kaj travideblecon de kelkaj eroj per marko de la markbutono; uzu la butonon «Vakigi ĉion» por forigi ĉîujn superagordojn.",
"theme_help_v2_2": "Bildsimboloj sub kelkaj eroj estas indikiloj de kontrasto inter fono kaj teksto; muse ŝvebu por detalaj informoj. Bonvolu memori, ke la indikilo montras la plej malbonan okazeblon dum sia uzo.", "theme_help_v2_2": "Bildsimboloj sub kelkaj eroj estas indikiloj de kontrasto inter fono kaj teksto; ŝvebigu muson por detalaj informoj. Bonvolu memori, ke la indikilo montras la plej malbonan okazeblon dum sia uzo.",
"tooltipRadius": "Ŝpruchelpiloj/avertoj", "tooltipRadius": "Ŝpruchelpiloj/avertoj",
"upload_a_photo": "Alŝuti foton", "upload_a_photo": "Alŝuti foton",
"user_settings": "Agordoj de uzanto", "user_settings": "Agordoj de uzanto",
@ -236,7 +279,7 @@
"true": "jes" "true": "jes"
}, },
"notifications": "Sciigoj", "notifications": "Sciigoj",
"enable_web_push_notifications": "Ŝalti retajn pajn sciigojn", "enable_web_push_notifications": "Ŝalti retajn pasivajn sciigojn",
"style": { "style": {
"switcher": { "switcher": {
"keep_color": "Konservi kolorojn", "keep_color": "Konservi kolorojn",
@ -244,10 +287,22 @@
"keep_opacity": "Konservi maltravideblecon", "keep_opacity": "Konservi maltravideblecon",
"keep_roundness": "Konservi rondecon", "keep_roundness": "Konservi rondecon",
"keep_fonts": "Konservi tiparojn", "keep_fonts": "Konservi tiparojn",
"save_load_hint": "Elektebloj de \"konservi\" konservas la nuntempajn agordojn dum elektado aŭ enlegado de haŭtoj. Ĝi ankaŭ konservas tiujn agordojn dum elportado de haŭto. Kun ĉiuj markbutonoj nemarkitaj, elporto de la haŭto ĉion konservos.", "save_load_hint": "Elektebloj de «konservi» konservas la nuntempajn agordojn dum elektado aŭ enlegado de haŭtoj. Ĝi ankaŭ konservas tiujn agordojn dum elportado de haŭto. Kun ĉiuj markbutonoj nemarkitaj, elporto de la haŭto ĉion konservos.",
"reset": "Restarigi", "reset": "Restarigi",
"clear_all": "Vakigi ĉion", "clear_all": "Vakigi ĉion",
"clear_opacity": "Vakigi maltravideblecon" "clear_opacity": "Vakigi maltravideblecon",
"help": {
"fe_downgraded": "Versio de PleromaFE reen iris.",
"fe_upgraded": "La motoro de haŭtoj de PleromaFE ĝisdatiĝis post ĝisdatigo de la versio.",
"older_version_imported": "La enportita dosiero estis farita per pli malnova versio de PleromaFE.",
"future_version_imported": "La enportita dosiero estis farita per pli nova versio de PleromaFE.",
"v2_imported": "La dosiero, kiun vi enportis, estis farita por malnova versio de PleromaFE. Ni provas maksimumigi interkonformecon, sed tamen eble montriĝos misoj.",
"upgraded_from_v2": "PleromaFE estis ĝisdatigita; la haŭto eble aspektos malsame ol kiel vi ĝin memoras."
},
"use_source": "Nova versio",
"use_snapshot": "Malnova versio",
"keep_as_is": "Teni senŝanĝa",
"load_theme": "Enlegi haŭton"
}, },
"common": { "common": {
"color": "Koloro", "color": "Koloro",
@ -255,7 +310,7 @@
"contrast": { "contrast": {
"hint": "Proporcio de kontrasto estas {ratio}, ĝi {level} {context}", "hint": "Proporcio de kontrasto estas {ratio}, ĝi {level} {context}",
"level": { "level": {
"aa": "plenumas la gvidilon je nivelo AA (malpleja)", "aa": "plenumas la gvidilon je nivelo AA (minimuma)",
"aaa": "plenumas la gvidilon je nivela AAA (rekomendita)", "aaa": "plenumas la gvidilon je nivela AAA (rekomendita)",
"bad": "plenumas neniujn faciluzajn gvidilojn" "bad": "plenumas neniujn faciluzajn gvidilojn"
}, },
@ -268,21 +323,39 @@
"common_colors": { "common_colors": {
"_tab_label": "Komunaj", "_tab_label": "Komunaj",
"main": "Komunaj koloroj", "main": "Komunaj koloroj",
"foreground_hint": "Vidu langeton \"Specialaj\" por pli detalaj agordoj", "foreground_hint": "Vidu langeton «Specialaj» por pli detalaj agordoj",
"rgbo": "Bildsimboloj, emfazoj, insignoj" "rgbo": "Bildsimboloj, emfazoj, insignoj"
}, },
"advanced_colors": { "advanced_colors": {
"_tab_label": "Specialaj", "_tab_label": "Specialaj",
"alert": "Averta fono", "alert": "Fono de averto",
"alert_error": "Eraro", "alert_error": "Eraro",
"badge": "Insigna fono", "badge": "Fono de insigno",
"badge_notification": "Sciigo", "badge_notification": "Sciigo",
"panel_header": "Kapo de breto", "panel_header": "Kapo de breto",
"top_bar": "Supra breto", "top_bar": "Supra breto",
"borders": "Limoj", "borders": "Limoj",
"buttons": "Butonoj", "buttons": "Butonoj",
"inputs": "Enigaj kampoj", "inputs": "Enigaj kampoj",
"faint_text": "Malvigla teksto" "faint_text": "Malvigla teksto",
"chat": {
"border": "Limo",
"outgoing": "Eliraj",
"incoming": "Envenaj"
},
"tabs": "Langetoj",
"disabled": "Malŝaltita",
"selectedMenu": "Elektita menuero",
"selectedPost": "Elektita afiŝo",
"pressed": "Premita",
"highlight": "Emfazitaj eroj",
"icons": "Bildsimboloj",
"poll": "Grafo de enketo",
"underlay": "Subtavolo",
"popover": "Ŝpruchelpiloj, menuoj",
"post": "Afiŝoj/Priskriboj de uzantoj",
"alert_neutral": "Neŭtrala",
"alert_warning": "Averto"
}, },
"radii": { "radii": {
"_tab_label": "Rondeco" "_tab_label": "Rondeco"
@ -297,7 +370,7 @@
"inset": "Internigo", "inset": "Internigo",
"hint": "Por ombroj vi ankaŭ povas uzi --variable kiel koloran valoron, por uzi variantojn de CSS3. Bonvolu rimarki, ke tiuokaze agordoj de maltravidebleco ne funkcios.", "hint": "Por ombroj vi ankaŭ povas uzi --variable kiel koloran valoron, por uzi variantojn de CSS3. Bonvolu rimarki, ke tiuokaze agordoj de maltravidebleco ne funkcios.",
"filter_hint": { "filter_hint": {
"always_drop_shadow": "Averto: ĉi tiu ombro ĉiam uzas {0} kiam la foliumilo ĝin subtenas.", "always_drop_shadow": "Averto: ĉi tiu ombro ĉiam uzas {0} kiam la foliumilo tion subtenas.",
"drop_shadow_syntax": "{0} ne subtenas parametron {1} kaj ŝlosilvorton {2}.", "drop_shadow_syntax": "{0} ne subtenas parametron {1} kaj ŝlosilvorton {2}.",
"avatar_inset": "Bonvolu rimarki, ke agordi ambaŭ internajn kaj eksterajn ombrojn por profilbildoj povas redoni neatenditajn rezultojn ĉe profilbildoj travideblaj.", "avatar_inset": "Bonvolu rimarki, ke agordi ambaŭ internajn kaj eksterajn ombrojn por profilbildoj povas redoni neatenditajn rezultojn ĉe profilbildoj travideblaj.",
"spread_zero": "Ombroj kun vastigo > 0 aperos kvazaŭ ĝi estus fakte nulo", "spread_zero": "Ombroj kun vastigo > 0 aperos kvazaŭ ĝi estus fakte nulo",
@ -313,13 +386,13 @@
"button": "Butono", "button": "Butono",
"buttonHover": "Butono (je ŝvebo)", "buttonHover": "Butono (je ŝvebo)",
"buttonPressed": "Butono (premita)", "buttonPressed": "Butono (premita)",
"buttonPressedHover": "Butono (premita je ŝvebo)", "buttonPressedHover": "Butono (premita kaj je ŝvebo)",
"input": "Eniga kampo" "input": "Eniga kampo"
} }
}, },
"fonts": { "fonts": {
"_tab_label": "Tiparoj", "_tab_label": "Tiparoj",
"help": "Elektu tiparon uzotan por eroj de la fasado. Por \"propra\" vi devas enigi la precizan nomon de tiparo tiel, kiel ĝi aperas en la sistemo", "help": "Elektu tiparon uzotan por eroj de la fasado. Por «propra» vi devas enigi la precizan nomon de tiparo tiel, kiel ĝi aperas en la sistemo.",
"components": { "components": {
"interface": "Fasado", "interface": "Fasado",
"input": "Enigaj kampoj", "input": "Enigaj kampoj",
@ -345,66 +418,175 @@
"checkbox": "Mi legetis la kondiĉojn de uzado", "checkbox": "Mi legetis la kondiĉojn de uzado",
"link": "bela eta ligil" "link": "bela eta ligil"
} }
} },
"discoverable": "Permesi trovon de ĉi tiu konto en serĉrezultoj kaj aliaj servoj",
"mutes_and_blocks": "Silentigitoj kaj blokitoj",
"chatMessageRadius": "Babileja mesaĝo",
"changed_email": "Retpoŝtadreso sukcese ŝanĝiĝis!",
"change_email_error": "Eraris ŝanĝo de via retpoŝtadreso.",
"change_email": "Ŝanĝi retpoŝtadreson",
"bot": "Ĉi tio estas robota konto",
"blocks_imported": "Blokitoj enportiĝis! Traktado daŭros iom da tempo.",
"block_import_error": "Eraris enporto de blokitoj",
"block_export": "Elporto de blokitoj",
"block_import": "Enporto de blokitoj",
"block_export_button": "Elporti viajn blokitojn al CSV-dosiero",
"allow_following_move": "Permesi memagan abonadon kiam abonata konto migras",
"mfa": {
"verify": {
"desc": "Por ŝalti duoblan aŭtentikigon, enigu la kodon el via aplikaĵo por duobla aŭtentikigo:"
},
"scan": {
"secret_code": "Ŝlosilo",
"desc": "Uzante vian aplikaĵon por duobla aŭtentikigo, skanu ĉi tiun rapidrespondan kodon aŭ enigu tekstan ŝlosilon:",
"title": "Skani"
},
"authentication_methods": "Metodoj de aŭtentikigo",
"recovery_codes_warning": "Notu la kodojn aŭ konservu ilin en sekura loko alie vi ne revidos ilin. Se vi perdos aliron al via aplikaĵo por duobla aŭtentikigo kaj al la rehavaj kodoj, vi ne povos aliri vian konton.",
"waiting_a_recovery_codes": "Ricevante savkopiajn kodojn…",
"recovery_codes": "Rehavaj kodoj.",
"warning_of_generate_new_codes": "Kiam vi estigos novajn rehavajn kodojn, viaj malnovaj ne plu funkcios.",
"generate_new_recovery_codes": "Estigi novajn rehavajn kodojn",
"title": "Duobla aŭtentikigo",
"otp": "OTP"
},
"enter_current_password_to_confirm": "Enigu vian pasvorton por konfirmi vian identecon",
"security": "Sekureco",
"fun": "Amuzo",
"type_domains_to_mute": "Serĉu silentigotajn retnomojn",
"useStreamingApiWarning": "(Nerekomendate, eksperimente, povas preterpasi afiŝojn)",
"useStreamingApi": "Ricevi afiŝojn kaj sciigojn realtempe",
"user_mutes": "Uzantoj",
"reset_background_confirm": "Ĉu vi certe volas restarigi la fonon?",
"reset_banner_confirm": "Ĉu vi certe volas restarigi la rubandon?",
"reset_avatar_confirm": "Ĉu vi certe volas restarigi la profilbildon?",
"reset_profile_banner": "Restarigi rubandon de profilo",
"reset_profile_background": "Restarigi fonon de profilo",
"reset_avatar": "Restarigi profilbildon",
"minimal_scopes_mode": "Minimumigi elekteblojn pri amplekso de afiŝoj",
"search_user_to_block": "Serĉu, kiun vi volas bloki",
"search_user_to_mute": "Serĉu, kiun vi volas silentigi",
"autohide_floating_post_button": "Memage kaŝi la butonon por Nova afiŝo (poŝtelefone)",
"hide_followers_count_description": "Ne montri nombron de abonantoj",
"hide_follows_count_description": "Ne montri nombron de abonoj",
"notification_visibility_emoji_reactions": "Reagoj",
"notification_visibility_moves": "Migroj",
"new_email": "Nova retpoŝtadreso",
"profile_fields": {
"value": "Enhavo",
"name": "Etikedo",
"add_field": "Aldoni kampon",
"label": "Pridatumoj de profilo"
},
"import_blocks_from_a_csv_file": "Enporti blokitojn el CSV-dosiero",
"hide_muted_posts": "Kaŝi afiŝojn de silentigitaj uzantoj",
"emoji_reactions_on_timeline": "Montri bildosignajn reagojn en la tempolinio",
"pad_emoji": "Meti spacetojn ĉirkaŭ bildosigno post ties elekto",
"domain_mutes": "Retnomoj",
"notification_blocks": "Blokinte uzanton vi malabonos ĝin kaj haltigos ĉiujn sciigojn.",
"notification_mutes": "Por ne plu ricevi sciigojn de certa uzanto, silentigu.",
"notification_setting_hide_notification_contents": "Kaŝi la sendinton kaj la enhavojn de pasivaj sciigoj",
"notification_setting_privacy": "Privateco",
"notification_setting_block_from_strangers": "Bloki sciigojn de uzantoj, kiujn vi ne abonas",
"notification_setting_filters": "Filtriloj",
"greentext": "Memecitaĵoj",
"version": {
"frontend_version": "Versio de fasado",
"backend_version": "Versio de internaĵo",
"title": "Versio"
},
"accent": "Emfazo"
}, },
"timeline": { "timeline": {
"collapse": "Maletendi", "collapse": "Maletendi",
"conversation": "Interparolo", "conversation": "Interparolo",
"error_fetching": "Eraro dum ĝisdatigo", "error_fetching": "Eraris ĝisdatigo",
"load_older": "Montri pli malnovajn statojn", "load_older": "Montri pli malnovajn statojn",
"no_retweet_hint": "Afiŝo estas markita kiel rekta aŭ nur por abonantoj, kaj ne eblas ĝin ripeti", "no_retweet_hint": "Afiŝo estas markita kiel rekta aŭ nur por abonantoj, kaj ne eblas ĝin ripeti",
"repeated": "ripetita", "repeated": "ripetita",
"show_new": "Montri novajn", "show_new": "Montri novajn",
"up_to_date": "Ĝisdata", "up_to_date": "Ĝisdata",
"no_more_statuses": "Neniuj pliaj statoj", "no_more_statuses": "Neniuj pliaj statoj",
"no_statuses": "Neniuj statoj" "no_statuses": "Neniuj statoj",
"reload": "Enlegi ree"
}, },
"user_card": { "user_card": {
"approve": "Aprobi", "approve": "Aprobi",
"block": "Bari", "block": "Bloki",
"blocked": "Barita!", "blocked": "Blokita!",
"deny": "Rifuzi", "deny": "Rifuzi",
"favorites": "Ŝatataj", "favorites": "Ŝatataj",
"follow": "Aboni", "follow": "Aboni",
"follow_sent": "Peto sendiĝis!", "follow_sent": "Peto sendiĝis!",
"follow_progress": "Petanta…", "follow_progress": "Petante…",
"follow_again": "Ĉu sendi peton denove?", "follow_again": "Ĉu sendi peton ree?",
"follow_unfollow": "Malaboni", "follow_unfollow": "Malaboni",
"followees": "Abonatoj", "followees": "Abonatoj",
"followers": "Abonantoj", "followers": "Abonantoj",
"following": "Abonanta!", "following": "Abonata!",
"follows_you": "Abonas vin!", "follows_you": "Abonas vin!",
"its_you": "Tio estas vi!", "its_you": "Tio estas vi!",
"media": "Aŭdvidaĵoj", "media": "Vidaŭdaĵoj",
"mute": "Silentigi", "mute": "Silentigi",
"muted": "Silentigitaj", "muted": "Silentigita",
"per_day": "tage", "per_day": "tage",
"remote_follow": "Fore aboni", "remote_follow": "Fore aboni",
"statuses": "Statoj", "statuses": "Statoj",
"unblock": "Malbari", "unblock": "Malbloki",
"unblock_progress": "Malbaranta…", "unblock_progress": "Malblokante…",
"block_progress": "Baranta…", "block_progress": "Blokante…",
"unmute": "Malsilentigi", "unmute": "Malsilentigi",
"unmute_progress": "Malsilentiganta…", "unmute_progress": "Malsilentigante…",
"mute_progress": "Silentiganta…" "mute_progress": "Silentigante…",
"report": "Raporti",
"message": "Mesaĝo",
"mention": "Mencio",
"hidden": "Kaŝita",
"admin_menu": {
"delete_user_confirmation": "Ĉu vi tute certas? Ĉi tiu ago ne estas malfarebla.",
"delete_user": "Forigi uzanton",
"quarantine": "Malpermesi federadon de afiŝoj de uzanto",
"disable_any_subscription": "Malpermesi ĉian abonadon al uzanto",
"disable_remote_subscription": "Malpermesi abonadon al uzanto el foraj nodoj",
"sandbox": "Devigi afiŝojn esti nur por abonantoj",
"force_unlisted": "Devigi afiŝojn nelistiĝi",
"strip_media": "Forigi vidaŭdaĵojn de afiŝoj",
"force_nsfw": "Marki ĉiujn afiŝojn konsternaj",
"delete_account": "Forigi konton",
"deactivate_account": "Malaktivigi konton",
"activate_account": "Aktivigi konton",
"revoke_moderator": "Malnomumi reguligiston",
"grant_moderator": "Nomumi reguligiston",
"revoke_admin": "Malnomumi administranton",
"grant_admin": "Nomumi administranton",
"moderation": "Reguligado"
},
"show_repeats": "Montri ripetojn",
"hide_repeats": "Kaŝi ripetojn",
"unsubscribe": "Ne ricevi sciigojn",
"subscribe": "Ricevi sciigojn"
}, },
"user_profile": { "user_profile": {
"timeline_title": "Uzanta tempolinio", "timeline_title": "Historio de uzanto",
"profile_does_not_exist": "Pardonu, ĉi tiu profilo ne ekzistas.", "profile_does_not_exist": "Pardonu, ĉi tiu profilo ne ekzistas.",
"profile_loading_error": "Pardonu, eraro okazis dum enlegado de ĉi tiu profilo." "profile_loading_error": "Pardonu, eraris enlego de ĉi tiu profilo."
}, },
"who_to_follow": { "who_to_follow": {
"more": "Pli", "more": "Pli",
"who_to_follow": "Kiun aboni" "who_to_follow": "Kiun aboni"
}, },
"tool_tip": { "tool_tip": {
"media_upload": "Alŝuti aŭdvidaĵon", "media_upload": "Alŝuti vidaŭdaĵon",
"repeat": "Ripeti", "repeat": "Ripeti",
"reply": "Respondi", "reply": "Respondi",
"favorite": "Ŝati", "favorite": "Ŝati",
"user_settings": "Agordoj de uzanto" "user_settings": "Agordoj de uzanto",
"bookmark": "Legosigno",
"reject_follow_request": "Rifuzi abonpeton",
"accept_follow_request": "Akcepti abonpeton",
"add_reaction": "Aldoni reagon"
}, },
"upload":{ "upload": {
"error": { "error": {
"base": "Alŝuto malsukcesis.", "base": "Alŝuto malsukcesis.",
"file_too_big": "Dosiero estas tro granda [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", "file_too_big": "Dosiero estas tro granda [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]",
@ -417,5 +599,198 @@
"GiB": "GiB", "GiB": "GiB",
"TiB": "TiB" "TiB": "TiB"
} }
},
"emoji": {
"search_emoji": "Serĉi bildosignon",
"keep_open": "Teni elektilon malfermita",
"emoji": "Bildsignoj",
"stickers": "Glumarkoj",
"add_emoji": "Enigi bildosignon",
"load_all": "Enlegante ĉiujn {emojiAmount} bildosignojn",
"load_all_hint": "Enlegis la {saneAmount} unuajn bildosignojn; enlego de ĉiuj povus kaŭzi problemojn pri efikeco.",
"unicode": "Unikoda bildosigno",
"custom": "Propra bildosigno"
},
"polls": {
"not_enough_options": "Tro malmultaj unikaj elektebloj en la enketo",
"expired": "Enketo finiĝis antaŭ {0}",
"expires_in": "Enketo finiĝas je {0}",
"expiry": "Aĝo de enketo",
"multiple_choices": "Pluraj elektoj",
"single_choice": "Unu elekto",
"type": "Speco de enketo",
"vote": "Voĉi",
"votes": "voĉoj",
"option": "Elekteblo",
"add_option": "Aldoni elekteblon",
"add_poll": "Aldoni enketon"
},
"importer": {
"error": "Eraris enporto de ĉi tiu dosiero.",
"success": "Enportita sukcese.",
"submit": "Sendi"
},
"exporter": {
"processing": "Traktante; baldaŭ vi ricevos peton elŝuti vian dosieron",
"export": "Elporti"
},
"domain_mute_card": {
"unmute_progress": "Malsilentigante…",
"unmute": "Malsilentigi",
"mute_progress": "Silentigante…",
"mute": "Silentigi"
},
"about": {
"staff": "Skipo",
"mrf": {
"simple": {
"media_nsfw_desc": "Ĉi tiu nodo devigas vidaŭdaĵojn esti markitaj kiel konsternaj en afiŝoj el la jenaj nodoj:",
"media_nsfw": "Devige marki vidaŭdaĵojn konsternaj",
"media_removal_desc": "Ĉi tiu nodo forigas vidaŭdaĵojn de afiŝoj el la jenaj nodoj:",
"media_removal": "Forigo de vidaŭdaĵoj",
"ftl_removal": "Forigo de la historio de «La tuta konata reto»",
"quarantine_desc": "Ĉi tiu nodo sendos nur publikajn afiŝojn al la jenaj nodoj:",
"quarantine": "Kvaranteno",
"reject_desc": "Ĉi tiu nodo ne akceptos mesaĝojn de la jenaj nodoj:",
"reject": "Rifuzi",
"accept_desc": "Ĉi tiu nodo nur akceptas mesaĝojn de la jenaj nodoj:",
"accept": "Akcepti",
"simple_policies": "Specialaj politikoj de la nodo"
},
"mrf_policies": "Ŝaltis politikon de Mesaĝa ŝanĝilaro (MRF)",
"keyword": {
"is_replaced_by": "→",
"replace": "Anstataŭigi",
"reject": "Rifuzi",
"ftl_removal": "Forigo de la historio de «La tuta konata reto»",
"keyword_policies": "Politiko pri ŝlosilvortoj"
},
"federation": "Federado",
"mrf_policies_desc": "Politikoj de Mesaĝa ŝanĝilaro (MRF) efikas sur federa konduto de la nodo. La sekvaj politikoj estas ŝaltitaj:"
}
},
"selectable_list": {
"select_all": "Elekti ĉion"
},
"remote_user_resolver": {
"error": "Netrovinte.",
"searching_for": "Serĉante",
"remote_user_resolver": "Trovilo de foraj uzantoj"
},
"interactions": {
"load_older": "Enlegi pli malnovajn interagojn",
"moves": "Migrado de uzantoj",
"follows": "Novaj abonoj",
"favs_repeats": "Ripetoj kaj ŝatoj"
},
"errors": {
"storage_unavailable": "Pleroma ne povis aliri deponejon de la foliumilo. Via saluto kaj viaj lokaj agordoj ne estos konservitaj, kaj vi eble renkontos neatenditajn problemojn. Provu permesi kuketojn."
},
"status": {
"hide_content": "Kaŝi enhavon",
"show_content": "Montri enhavon",
"hide_full_subject": "Kaŝi plenan temon",
"show_full_subject": "Montri plenan temon",
"thread_muted_and_words": ", enhavas vortojn:",
"thread_muted": "Fadeno silentigita",
"copy_link": "Kopii ligilon al stato",
"status_unavailable": "Stato ne estas disponebla",
"unmute_conversation": "Malsilentigi interparolon",
"mute_conversation": "Silentigi interparolon",
"replies_list": "Respondoj:",
"reply_to": "Responde al",
"delete_confirm": "Ĉu vi certe volas forigi ĉi tiun staton?",
"unbookmark": "Senlegosigni",
"bookmark": "Legosigni",
"pinned": "Fiksita",
"unpin": "Malfiksi de profilo",
"pin": "Fiksi al profilo",
"delete": "Forigi staton",
"repeats": "Ripetoj",
"favorites": "Ŝatataj"
},
"time": {
"years_short": "{0}j",
"year_short": "{0}j",
"years": "{0} jaroj",
"year": "{0} jaro",
"weeks_short": "{0}s",
"week_short": "{0}s",
"weeks": "{0} semajnoj",
"week": "{0} semajno",
"seconds_short": "{0}s",
"second_short": "{0}s",
"seconds": "{0} sekundoj",
"second": "{0} sekundo",
"now_short": "nun",
"now": "ĵus",
"months_short": "{0}m",
"month_short": "{0}m",
"months": "{0} monatoj",
"month": "{0} monato",
"minutes_short": "{0}m",
"minute_short": "{0}m",
"minutes": "{0} minutoj",
"minute": "{0} minuto",
"in_past": "antaŭ {0}",
"in_future": "post {0}",
"hours_short": "{0}h",
"hour_short": "{0}h",
"hours": "{0} horoj",
"hour": "{0} horo",
"days_short": "{0}t",
"day_short": "{0}t",
"days": "{0} tagoj",
"day": "{0} tago"
},
"search": {
"people": "Personoj",
"no_results": "Neniuj rezultoj",
"people_talking": "{count} personoj parolas",
"person_talking": "{count} persono parolas",
"hashtags": "Kradvortoj"
},
"display_date": {
"today": "Hodiaŭ"
},
"file_type": {
"file": "Dosiero",
"image": "Bildo",
"video": "Filmo",
"audio": "Sono"
},
"chats": {
"empty_chat_list_placeholder": "Vi ankoraŭ havas neniun babilon. Komencu novan babilon!",
"error_sending_message": "Io misokazis dum sendado de la mesaĝo.",
"error_loading_chat": "Io misokazis dum enlego de la babilo.",
"delete_confirm": "Ĉu vi certe volas forigi ĉi tiun mesaĝon?",
"more": "Pli",
"empty_message_error": "Ne povas sendi malplenan mesaĝon",
"new": "Nova babilo",
"chats": "Babiloj",
"delete": "Forigi",
"you": "Vi:"
},
"password_reset": {
"password_reset_required_but_mailer_is_disabled": "Vi devas restarigi vian pasvorton, sed restarigado de pasvortoj estas malŝaltita. Bonvolu kontakti la administranton de via nodo.",
"password_reset_required": "Vi devas restarigi vian pasvorton por saluti.",
"password_reset_disabled": "Restarigado de pasvortoj estas malŝaltita. Bonvolu kontakti la administranton de via nodo.",
"too_many_requests": "Vi atingis la limon de provoj, reprovu pli poste.",
"not_found": "Ni ne trovis tiun retpoŝtadreson aŭ uzantonomon.",
"return_home": "Reiri al la hejmpaĝo",
"check_email": "Kontrolu vian retpoŝton pro ligilo por restarigi vian pasvorton.",
"placeholder": "Via retpoŝtadreso aŭ uzantonomo",
"instruction": "Enigu vian retpoŝtadreson aŭ uzantonomon. Ni sendos al vi ligilon por restarigi vian pasvorton.",
"password_reset": "Restarigi pasvorton",
"forgot_password": "Ĉu vi forgesis pasvorton?"
},
"user_reporting": {
"generic_error": "Eraris traktado de via peto.",
"submit": "Sendi",
"forward_to": "Plusendi al {0}",
"forward_description": "La konto venas de alia servilo. Ĉu kopio de la raporto sendiĝu ankaŭ tien?",
"additional_comments": "Aldonaj komentoj",
"add_comment_description": "Ĉi tiu raporto sendiĝos al reguligistoj de via nodo. Vi povas komprenigi kial vi raportas ĉi tiun konton sube:",
"title": "Raportante {0}"
} }
} }

View file

@ -203,7 +203,6 @@
}, },
"attachmentRadius": "Adjuntos", "attachmentRadius": "Adjuntos",
"attachments": "Adjuntos", "attachments": "Adjuntos",
"autoload": "Habilitar carga automática al llegar al final de la página",
"avatar": "Avatar", "avatar": "Avatar",
"avatarAltRadius": "Avatares (Notificaciones)", "avatarAltRadius": "Avatares (Notificaciones)",
"avatarRadius": "Avatares", "avatarRadius": "Avatares",
@ -307,7 +306,6 @@
"profile_tab": "Perfil", "profile_tab": "Perfil",
"radii_help": "Establezca el redondeo de las esquinas de la interfaz (en píxeles)", "radii_help": "Establezca el redondeo de las esquinas de la interfaz (en píxeles)",
"replies_in_timeline": "Réplicas en la línea temporal", "replies_in_timeline": "Réplicas en la línea temporal",
"reply_link_preview": "Activar la previsualización del enlace de responder al pasar el ratón por encima",
"reply_visibility_all": "Mostrar todas las réplicas", "reply_visibility_all": "Mostrar todas las réplicas",
"reply_visibility_following": "Solo mostrar réplicas para mí o usuarios a los que sigo", "reply_visibility_following": "Solo mostrar réplicas para mí o usuarios a los que sigo",
"reply_visibility_self": "Solo mostrar réplicas para mí", "reply_visibility_self": "Solo mostrar réplicas para mí",
@ -344,11 +342,6 @@
"true": "sí" "true": "sí"
}, },
"notifications": "Notificaciones", "notifications": "Notificaciones",
"notification_setting": "Recibir notificaciones de:",
"notification_setting_follows": "Usuarios que sigues",
"notification_setting_non_follows": "Usuarios que no sigues",
"notification_setting_followers": "Usuarios que te siguen",
"notification_setting_non_followers": "Usuarios que no te siguen",
"notification_mutes": "Para dejar de recibir notificaciones de un usuario específico, siléncialo.", "notification_mutes": "Para dejar de recibir notificaciones de un usuario específico, siléncialo.",
"notification_blocks": "El bloqueo de un usuario detiene todas las notificaciones y también las cancela.", "notification_blocks": "El bloqueo de un usuario detiene todas las notificaciones y también las cancela.",
"enable_web_push_notifications": "Habilitar las notificiaciones en el navegador", "enable_web_push_notifications": "Habilitar las notificiaciones en el navegador",

View file

@ -116,7 +116,6 @@
}, },
"settings": { "settings": {
"attachments": "Manused", "attachments": "Manused",
"autoload": "Luba ajajoone automaatne uuendamine kui ajajoon on põhja keritud",
"avatar": "Profiilipilt", "avatar": "Profiilipilt",
"bio": "Bio", "bio": "Bio",
"current_avatar": "Sinu praegune profiilipilt", "current_avatar": "Sinu praegune profiilipilt",
@ -130,7 +129,6 @@
"nsfw_clickthrough": "Peida tööks-mittesobivad(NSFW) manuste hiireklõpsu taha", "nsfw_clickthrough": "Peida tööks-mittesobivad(NSFW) manuste hiireklõpsu taha",
"profile_background": "Profiilitaust", "profile_background": "Profiilitaust",
"profile_banner": "Profiilibänner", "profile_banner": "Profiilibänner",
"reply_link_preview": "Luba algpostituse kuvamine vastustes",
"set_new_avatar": "Vali uus profiilipilt", "set_new_avatar": "Vali uus profiilipilt",
"set_new_profile_background": "Vali uus profiilitaust", "set_new_profile_background": "Vali uus profiilitaust",
"set_new_profile_banner": "Vali uus profiilibänner", "set_new_profile_banner": "Vali uus profiilibänner",
@ -304,14 +302,9 @@
"enable_web_push_notifications": "Luba veebipõhised push-teated", "enable_web_push_notifications": "Luba veebipõhised push-teated",
"notification_blocks": "Kasutaja blokeerimisel ei tule neilt enam teateid ning nendele teilt ka mitte.", "notification_blocks": "Kasutaja blokeerimisel ei tule neilt enam teateid ning nendele teilt ka mitte.",
"notification_setting_privacy_option": "Peida saatja ning sisu push-teadetelt", "notification_setting_privacy_option": "Peida saatja ning sisu push-teadetelt",
"notification_setting": "Saa teateid nendelt:",
"notifications": "Teated", "notifications": "Teated",
"notification_mutes": "Kui soovid mõnelt kasutajalt mitte teateid saada, kasuta vaigistust.", "notification_mutes": "Kui soovid mõnelt kasutajalt mitte teateid saada, kasuta vaigistust.",
"notification_setting_privacy": "Privaatsus", "notification_setting_privacy": "Privaatsus",
"notification_setting_non_followers": "Kasutajatelt, kes sind ei jälgi",
"notification_setting_followers": "Kasutajatelt, kes jälgivad sind",
"notification_setting_non_follows": "Kasutajatelt, keda sa ei jälgi",
"notification_setting_follows": "Kasutajatelt, keda jälgid",
"notification_setting_filters": "Filtrid", "notification_setting_filters": "Filtrid",
"greentext": "Meemi nooled", "greentext": "Meemi nooled",
"fun": "Naljad", "fun": "Naljad",

View file

@ -84,7 +84,7 @@
"preferences": "Hobespenak" "preferences": "Hobespenak"
}, },
"notifications": { "notifications": {
"broken_favorite": "Egoera ezezaguna, bilatzen...", "broken_favorite": "Egoera ezezaguna, bilatzen",
"favorited_you": "zure mezua gogoko du", "favorited_you": "zure mezua gogoko du",
"followed_you": "Zu jarraitzen zaitu", "followed_you": "Zu jarraitzen zaitu",
"load_older": "Kargatu jakinarazpen zaharragoak", "load_older": "Kargatu jakinarazpen zaharragoak",
@ -128,7 +128,7 @@
"new_status": "Mezu berri bat idatzi", "new_status": "Mezu berri bat idatzi",
"account_not_locked_warning": "Zure kontua ez dago {0}. Edozeinek jarraitzen hastearekin, zure mezuak irakur ditzake.", "account_not_locked_warning": "Zure kontua ez dago {0}. Edozeinek jarraitzen hastearekin, zure mezuak irakur ditzake.",
"account_not_locked_warning_link": "Blokeatuta", "account_not_locked_warning_link": "Blokeatuta",
"attachments_sensitive": "Nabarmendu eranskinak hunkigarri gisa ", "attachments_sensitive": "Nabarmendu eranskinak hunkigarri gisa",
"content_type": { "content_type": {
"text/plain": "Testu arrunta", "text/plain": "Testu arrunta",
"text/html": "HTML", "text/html": "HTML",
@ -187,9 +187,9 @@
"confirm_and_enable": "Baieztatu eta gaitu OTP", "confirm_and_enable": "Baieztatu eta gaitu OTP",
"title": "Bi-faktore autentifikazioa", "title": "Bi-faktore autentifikazioa",
"generate_new_recovery_codes": "Sortu berreskuratze kode berriak", "generate_new_recovery_codes": "Sortu berreskuratze kode berriak",
"warning_of_generate_new_codes": "Berreskuratze kode berriak sortzean, zure berreskuratze kode zaharrak ez dute balioko", "warning_of_generate_new_codes": "Berreskuratze kode berriak sortzean, zure berreskuratze kode zaharrak ez dute balioko.",
"recovery_codes": "Berreskuratze kodea", "recovery_codes": "Berreskuratze kodea",
"waiting_a_recovery_codes": "Babes-kopia kodeak jasotzen...", "waiting_a_recovery_codes": "Babes-kopia kodeak jasotzen",
"recovery_codes_warning": "Idatzi edo gorde kodeak leku seguruan - bestela ez dituzu berriro ikusiko. Zure 2FA aplikaziorako sarbidea eta berreskuratze kodeak galduz gero, zure kontutik blokeatuta egongo zara.", "recovery_codes_warning": "Idatzi edo gorde kodeak leku seguruan - bestela ez dituzu berriro ikusiko. Zure 2FA aplikaziorako sarbidea eta berreskuratze kodeak galduz gero, zure kontutik blokeatuta egongo zara.",
"authentication_methods": "Autentifikazio metodoa", "authentication_methods": "Autentifikazio metodoa",
"scan": { "scan": {
@ -198,12 +198,11 @@
"secret_code": "Giltza" "secret_code": "Giltza"
}, },
"verify": { "verify": {
"desc": "Bi-faktore autentifikazioa gaitzeko, sar ezazu bi-faktore kodea zure app-tik" "desc": "Bi-faktore autentifikazioa gaitzeko, sar ezazu bi-faktore kodea zure app-tik:"
} }
}, },
"attachmentRadius": "Eranskinak", "attachmentRadius": "Eranskinak",
"attachments": "Eranskinak", "attachments": "Eranskinak",
"autoload": "Gaitu karga automatikoa beheraino mugitzean",
"avatar": "Avatarra", "avatar": "Avatarra",
"avatarAltRadius": "Avatarra (Aipamenak)", "avatarAltRadius": "Avatarra (Aipamenak)",
"avatarRadius": "Avatarrak", "avatarRadius": "Avatarrak",
@ -221,7 +220,7 @@
"cOrange": "Laranja (Gogokoa)", "cOrange": "Laranja (Gogokoa)",
"cRed": "Gorria (ezeztatu)", "cRed": "Gorria (ezeztatu)",
"change_password": "Pasahitza aldatu", "change_password": "Pasahitza aldatu",
"change_password_error": "Arazao bat egon da zure pasahitza aldatzean", "change_password_error": "Arazao bat egon da zure pasahitza aldatzean.",
"changed_password": "Pasahitza ondo aldatu da!", "changed_password": "Pasahitza ondo aldatu da!",
"collapse_subject": "Bildu gaia daukaten mezuak", "collapse_subject": "Bildu gaia daukaten mezuak",
"composing": "Idazten", "composing": "Idazten",
@ -248,7 +247,7 @@
"follows_imported": "Jarraitzaileak inportatuta! Prozesatzeak denbora pixka bat iraungo du.", "follows_imported": "Jarraitzaileak inportatuta! Prozesatzeak denbora pixka bat iraungo du.",
"foreground": "Aurreko planoa", "foreground": "Aurreko planoa",
"general": "Orokorra", "general": "Orokorra",
"hide_attachments_in_convo": "Ezkutatu eranskinak elkarrizketatan ", "hide_attachments_in_convo": "Ezkutatu eranskinak elkarrizketatan",
"hide_attachments_in_tl": "Ezkutatu eranskinak donbora-lerroan", "hide_attachments_in_tl": "Ezkutatu eranskinak donbora-lerroan",
"hide_muted_posts": "Ezkutatu mutututako erabiltzaileen mezuak", "hide_muted_posts": "Ezkutatu mutututako erabiltzaileen mezuak",
"max_thumbnails": "Mezu bakoitzeko argazki-miniatura kopuru maximoa", "max_thumbnails": "Mezu bakoitzeko argazki-miniatura kopuru maximoa",
@ -307,7 +306,6 @@
"profile_tab": "Profila", "profile_tab": "Profila",
"radii_help": "Konfiguratu interfazearen ertzen biribiltzea (pixeletan)", "radii_help": "Konfiguratu interfazearen ertzen biribiltzea (pixeletan)",
"replies_in_timeline": "Denbora-lerroko erantzunak", "replies_in_timeline": "Denbora-lerroko erantzunak",
"reply_link_preview": "Gaitu erantzun-estekaren aurrebista arratoiarekin",
"reply_visibility_all": "Erakutsi erantzun guztiak", "reply_visibility_all": "Erakutsi erantzun guztiak",
"reply_visibility_following": "Erakutsi bakarrik niri zuzendutako edo nik jarraitutako erabiltzaileen erantzunak", "reply_visibility_following": "Erakutsi bakarrik niri zuzendutako edo nik jarraitutako erabiltzaileen erantzunak",
"reply_visibility_self": "Erakutsi bakarrik niri zuzendutako erantzunak", "reply_visibility_self": "Erakutsi bakarrik niri zuzendutako erantzunak",
@ -344,11 +342,6 @@
"true": "bai" "true": "bai"
}, },
"notifications": "Jakinarazpenak", "notifications": "Jakinarazpenak",
"notification_setting": "Jaso pertsona honen jakinarazpenak:",
"notification_setting_follows": "Jarraitutako erabiltzaileak",
"notification_setting_non_follows": "Jarraitzen ez dituzun erabiltzaileak",
"notification_setting_followers": "Zu jarraitzen zaituzten erabiltzaileak",
"notification_setting_non_followers": "Zu jarraitzen ez zaituzten erabiltzaileak",
"notification_mutes": "Erabiltzaile jakin baten jakinarazpenak jasotzeari uzteko, isilarazi ezazu.", "notification_mutes": "Erabiltzaile jakin baten jakinarazpenak jasotzeari uzteko, isilarazi ezazu.",
"notification_blocks": "Erabiltzaile bat blokeatzeak jakinarazpen guztiak gelditzen ditu eta harpidetza ezeztatu.", "notification_blocks": "Erabiltzaile bat blokeatzeak jakinarazpen guztiak gelditzen ditu eta harpidetza ezeztatu.",
"enable_web_push_notifications": "Gaitu web jakinarazpenak", "enable_web_push_notifications": "Gaitu web jakinarazpenak",
@ -434,7 +427,7 @@
}, },
"fonts": { "fonts": {
"_tab_label": "Letra-tipoak", "_tab_label": "Letra-tipoak",
"help": "Aukeratu letra-tipoak erabiltzailearen interfazean erabiltzeko. \"Pertsonalizatua\" letra-tipoan, sisteman agertzen den izen berdinarekin idatzi behar duzu.", "help": "Aukeratu letra-tipoak erabiltzailearen interfazean erabiltzeko. \"Pertsonalizatua\" letra-tipoan, sisteman agertzen den izen berdinarekin idatzi behar duzu.",
"components": { "components": {
"interface": "Interfazea", "interface": "Interfazea",
"input": "Sarrera eremuak", "input": "Sarrera eremuak",
@ -534,7 +527,7 @@
"favorites": "Gogokoak", "favorites": "Gogokoak",
"follow": "Jarraitu", "follow": "Jarraitu",
"follow_sent": "Eskaera bidalita!", "follow_sent": "Eskaera bidalita!",
"follow_progress": "Eskatzen...", "follow_progress": "Eskatzen",
"follow_again": "Eskaera berriro bidali?", "follow_again": "Eskaera berriro bidali?",
"follow_unfollow": "Jarraitzeari utzi", "follow_unfollow": "Jarraitzeari utzi",
"followees": "Jarraitzen", "followees": "Jarraitzen",
@ -553,11 +546,11 @@
"subscribe": "Harpidetu", "subscribe": "Harpidetu",
"unsubscribe": "Harpidetza ezeztatu", "unsubscribe": "Harpidetza ezeztatu",
"unblock": "Blokeoa kendu", "unblock": "Blokeoa kendu",
"unblock_progress": "Blokeoa ezeztatzen...", "unblock_progress": "Blokeoa ezeztatzen",
"block_progress": "Blokeatzen...", "block_progress": "Blokeatzen",
"unmute": "Isiltasuna kendu", "unmute": "Isiltasuna kendu",
"unmute_progress": "Isiltasuna kentzen...", "unmute_progress": "Isiltasuna kentzen",
"mute_progress": "Isiltzen...", "mute_progress": "Isiltzen",
"hide_repeats": "Ezkutatu errepikapenak", "hide_repeats": "Ezkutatu errepikapenak",
"show_repeats": "Erakutsi errpekiapenak", "show_repeats": "Erakutsi errpekiapenak",
"admin_menu": { "admin_menu": {
@ -639,4 +632,4 @@
"password_reset_required": "Pasahitza berrezarri behar duzu saioa hasteko.", "password_reset_required": "Pasahitza berrezarri behar duzu saioa hasteko.",
"password_reset_required_but_mailer_is_disabled": "Pasahitza berrezarri behar duzu, baina pasahitza berrezartzeko aukera desgaituta dago. Mesedez, jarri harremanetan instantziaren administratzailearekin." "password_reset_required_but_mailer_is_disabled": "Pasahitza berrezarri behar duzu, baina pasahitza berrezartzeko aukera desgaituta dago. Mesedez, jarri harremanetan instantziaren administratzailearekin."
} }
} }

View file

@ -28,7 +28,12 @@
"disable": "Poista käytöstä", "disable": "Poista käytöstä",
"confirm": "Hyväksy", "confirm": "Hyväksy",
"verify": "Varmenna", "verify": "Varmenna",
"enable": "Ota käyttöön" "enable": "Ota käyttöön",
"loading": "Ladataan…",
"error_retry": "Yritä uudelleen",
"retry": "Yritä uudelleen",
"close": "Sulje",
"peek": "Kurkkaa"
}, },
"login": { "login": {
"login": "Kirjaudu sisään", "login": "Kirjaudu sisään",
@ -63,7 +68,8 @@
"who_to_follow": "Seurausehdotukset", "who_to_follow": "Seurausehdotukset",
"preferences": "Asetukset", "preferences": "Asetukset",
"administration": "Ylläpito", "administration": "Ylläpito",
"search": "Haku" "search": "Haku",
"bookmarks": "Kirjanmerkit"
}, },
"notifications": { "notifications": {
"broken_favorite": "Viestiä ei löydetty…", "broken_favorite": "Viestiä ei löydetty…",
@ -126,7 +132,12 @@
"public": "Tämä viesti näkyy kaikille", "public": "Tämä viesti näkyy kaikille",
"private": "Tämä viesti näkyy vain sinun seuraajillesi", "private": "Tämä viesti näkyy vain sinun seuraajillesi",
"unlisted": "Tämä viesti ei näy Julkisella Aikajanalla tai Koko Tunnettu Verkosto -aikajanalla" "unlisted": "Tämä viesti ei näy Julkisella Aikajanalla tai Koko Tunnettu Verkosto -aikajanalla"
} },
"preview": "Esikatselu",
"preview_empty": "Tyhjä",
"empty_status_error": "Tyhjää viestiä ilman tiedostoja ei voi lähettää",
"media_description": "Tiedoston kuvaus",
"media_description_error": "Tiedostojen päivitys epäonnistui, yritä uudelleen"
}, },
"registration": { "registration": {
"bio": "Kuvaus", "bio": "Kuvaus",
@ -152,7 +163,6 @@
"settings": { "settings": {
"attachmentRadius": "Liitteet", "attachmentRadius": "Liitteet",
"attachments": "Liitteet", "attachments": "Liitteet",
"autoload": "Lataa vanhempia viestejä automaattisesti ruudun pohjalla",
"avatar": "Profiilikuva", "avatar": "Profiilikuva",
"avatarAltRadius": "Profiilikuvat (ilmoitukset)", "avatarAltRadius": "Profiilikuvat (ilmoitukset)",
"avatarRadius": "Profiilikuvat", "avatarRadius": "Profiilikuvat",
@ -175,7 +185,7 @@
"data_import_export_tab": "Tietojen tuonti / vienti", "data_import_export_tab": "Tietojen tuonti / vienti",
"default_vis": "Oletusnäkyvyysrajaus", "default_vis": "Oletusnäkyvyysrajaus",
"delete_account": "Poista tili", "delete_account": "Poista tili",
"delete_account_description": "Poista tilisi ja viestisi pysyvästi.", "delete_account_description": "Poista tietosi ja lukitse tili pysyvästi.",
"delete_account_error": "Virhe poistaessa tiliäsi. Jos virhe jatkuu, ota yhteyttä palvelimesi ylläpitoon.", "delete_account_error": "Virhe poistaessa tiliäsi. Jos virhe jatkuu, ota yhteyttä palvelimesi ylläpitoon.",
"delete_account_instructions": "Syötä salasanasi vahvistaaksesi tilin poiston.", "delete_account_instructions": "Syötä salasanasi vahvistaaksesi tilin poiston.",
"emoji_reactions_on_timeline": "Näytä emojireaktiot aikajanalla", "emoji_reactions_on_timeline": "Näytä emojireaktiot aikajanalla",
@ -239,7 +249,6 @@
"profile_tab": "Profiili", "profile_tab": "Profiili",
"radii_help": "Aseta reunojen pyöristys (pikseleinä)", "radii_help": "Aseta reunojen pyöristys (pikseleinä)",
"replies_in_timeline": "Keskustelut aikajanalla", "replies_in_timeline": "Keskustelut aikajanalla",
"reply_link_preview": "Keskusteluiden vastauslinkkien esikatselu",
"reply_visibility_all": "Näytä kaikki vastaukset", "reply_visibility_all": "Näytä kaikki vastaukset",
"reply_visibility_following": "Näytä vain vastaukset minulle tai seuraamilleni käyttäjille", "reply_visibility_following": "Näytä vain vastaukset minulle tai seuraamilleni käyttäjille",
"reply_visibility_self": "Näytä vain vastaukset minulle", "reply_visibility_self": "Näytä vain vastaukset minulle",
@ -273,7 +282,6 @@
"show_moderator_badge": "Näytä Moderaattori-merkki profiilissani", "show_moderator_badge": "Näytä Moderaattori-merkki profiilissani",
"useStreamingApi": "Vastaanota viestiejä ja ilmoituksia reaaliajassa", "useStreamingApi": "Vastaanota viestiejä ja ilmoituksia reaaliajassa",
"notification_setting_filters": "Suodattimet", "notification_setting_filters": "Suodattimet",
"notification_setting": "Vastaanota ilmoituksia seuraavista:",
"notification_setting_privacy_option": "Piilota lähettäjä ja sisältö sovelluksen ulkopuolisista ilmoituksista", "notification_setting_privacy_option": "Piilota lähettäjä ja sisältö sovelluksen ulkopuolisista ilmoituksista",
"enable_web_push_notifications": "Ota käyttöön sovelluksen ulkopuoliset ilmoitukset", "enable_web_push_notifications": "Ota käyttöön sovelluksen ulkopuoliset ilmoitukset",
"app_name": "Sovelluksen nimi", "app_name": "Sovelluksen nimi",
@ -329,7 +337,7 @@
"post_status_content_type": "Uuden viestin sisällön muoto", "post_status_content_type": "Uuden viestin sisällön muoto",
"user_mutes": "Käyttäjät", "user_mutes": "Käyttäjät",
"useStreamingApiWarning": "(Kokeellinen)", "useStreamingApiWarning": "(Kokeellinen)",
"type_domains_to_mute": "Syötä mykistettäviä sivustoja", "type_domains_to_mute": "Etsi mykistettäviä sivustoja",
"upload_a_photo": "Lataa kuva", "upload_a_photo": "Lataa kuva",
"fun": "Hupi", "fun": "Hupi",
"greentext": "Meeminuolet", "greentext": "Meeminuolet",
@ -479,10 +487,6 @@
"pad_emoji": "Välistä emojit välilyönneillä lisätessäsi niitä valitsimesta", "pad_emoji": "Välistä emojit välilyönneillä lisätessäsi niitä valitsimesta",
"mutes_tab": "Mykistykset", "mutes_tab": "Mykistykset",
"new_email": "Uusi sähköpostiosoite", "new_email": "Uusi sähköpostiosoite",
"notification_setting_follows": "Käyttäjät joita seuraat",
"notification_setting_non_follows": "Käyttäjät joita et seuraa",
"notification_setting_followers": "Käyttäjät jotka seuraavat sinua",
"notification_setting_non_followers": "Käyttäjät jotka eivät seuraa sinua",
"notification_setting_privacy": "Yksityisyys", "notification_setting_privacy": "Yksityisyys",
"notification_mutes": "Jos et halua ilmoituksia joltain käyttäjältä, käytä mykistystä.", "notification_mutes": "Jos et halua ilmoituksia joltain käyttäjältä, käytä mykistystä.",
"notification_blocks": "Estäminen pysäyttää kaikki ilmoitukset käyttäjältä ja poistaa seurauksen.", "notification_blocks": "Estäminen pysäyttää kaikki ilmoitukset käyttäjältä ja poistaa seurauksen.",
@ -490,7 +494,21 @@
"title": "Versio", "title": "Versio",
"backend_version": "Palvelimen versio", "backend_version": "Palvelimen versio",
"frontend_version": "Käyttöliittymän versio" "frontend_version": "Käyttöliittymän versio"
} },
"reset_profile_background": "Nollaa taustakuva",
"reset_background_confirm": "Haluatko todella nollata taustakuvan?",
"mutes_and_blocks": "Mykistykset ja Estot",
"bot": "Tämä on bottitili",
"profile_fields": {
"label": "Profiilin metatiedot",
"add_field": "Lisää kenttä",
"name": "Nimi",
"value": "Sisältö"
},
"reset_avatar": "Nollaa profiilikuva",
"reset_profile_banner": "Nollaa profiilin tausta",
"reset_avatar_confirm": "Haluatko todella nollata profiilikuvan?",
"reset_banner_confirm": "Haluatko todella nollata profiilin taustan?"
}, },
"time": { "time": {
"day": "{0} päivä", "day": "{0} päivä",
@ -536,7 +554,8 @@
"show_new": "Näytä uudet", "show_new": "Näytä uudet",
"up_to_date": "Ajantasalla", "up_to_date": "Ajantasalla",
"no_more_statuses": "Ei enempää viestejä", "no_more_statuses": "Ei enempää viestejä",
"no_statuses": "Ei viestejä" "no_statuses": "Ei viestejä",
"reload": "Päivitä"
}, },
"status": { "status": {
"favorites": "Tykkäykset", "favorites": "Tykkäykset",
@ -551,7 +570,15 @@
"mute_conversation": "Mykistä keskustelu", "mute_conversation": "Mykistä keskustelu",
"unmute_conversation": "Poista mykistys", "unmute_conversation": "Poista mykistys",
"status_unavailable": "Viesti ei saatavissa", "status_unavailable": "Viesti ei saatavissa",
"copy_link": "Kopioi linkki" "copy_link": "Kopioi linkki",
"bookmark": "Lisää kirjanmerkkeihin",
"unbookmark": "Poista kirjanmerkeistä",
"thread_muted": "Keskustelu mykistetty",
"thread_muted_and_words": ", sisältää sanat:",
"show_full_subject": "Näytä koko otsikko",
"hide_full_subject": "Piilota koko otsikko",
"show_content": "Näytä sisältö",
"hide_content": "Piilota sisältö"
}, },
"user_card": { "user_card": {
"approve": "Hyväksy", "approve": "Hyväksy",
@ -561,7 +588,7 @@
"follow": "Seuraa", "follow": "Seuraa",
"follow_sent": "Pyyntö lähetetty!", "follow_sent": "Pyyntö lähetetty!",
"follow_progress": "Pyydetään…", "follow_progress": "Pyydetään…",
"follow_again": "Lähetä pyyntö uudestaan", "follow_again": "Lähetä pyyntö uudestaan?",
"follow_unfollow": "Älä seuraa", "follow_unfollow": "Älä seuraa",
"followees": "Seuraa", "followees": "Seuraa",
"followers": "Seuraajat", "followers": "Seuraajat",
@ -601,7 +628,7 @@
"subscribe": "Tilaa", "subscribe": "Tilaa",
"unsubscribe": "Poista tilaus", "unsubscribe": "Poista tilaus",
"unblock": "Poista esto", "unblock": "Poista esto",
"unblock_progress": "Postetaan estoa…", "unblock_progress": "Poistetaan estoa…",
"unmute": "Poista mykistys", "unmute": "Poista mykistys",
"unmute_progress": "Poistetaan mykistystä…", "unmute_progress": "Poistetaan mykistystä…",
"mute_progress": "Mykistetään…", "mute_progress": "Mykistetään…",
@ -625,7 +652,8 @@
"user_settings": "Käyttäjäasetukset", "user_settings": "Käyttäjäasetukset",
"add_reaction": "Lisää Reaktio", "add_reaction": "Lisää Reaktio",
"accept_follow_request": "Hyväksy seurauspyyntö", "accept_follow_request": "Hyväksy seurauspyyntö",
"reject_follow_request": "Hylkää seurauspyyntö" "reject_follow_request": "Hylkää seurauspyyntö",
"bookmark": "Kirjanmerkki"
}, },
"upload": { "upload": {
"error": { "error": {
@ -675,7 +703,7 @@
"mute": "Mykistä", "mute": "Mykistä",
"unmute": "Poista mykistys", "unmute": "Poista mykistys",
"mute_progress": "Mykistetään…", "mute_progress": "Mykistetään…",
"unmute_progress": "Poistetaan mykistyst…" "unmute_progress": "Poistetaan mykistystä…"
}, },
"exporter": { "exporter": {
"export": "Vie", "export": "Vie",
@ -743,5 +771,8 @@
"people_talking": "{0} käyttäjää puhuvat", "people_talking": "{0} käyttäjää puhuvat",
"person_talking": "{0} käyttäjä puhuu", "person_talking": "{0} käyttäjä puhuu",
"no_results": "Ei tuloksia" "no_results": "Ei tuloksia"
},
"errors": {
"storage_unavailable": "Pleroma ei voinut käyttää selaimen muistia. Kirjautumisesi ja paikalliset asetukset eivät tallennu ja saatat kohdata odottamattomia ongelmia. Yritä sallia evästeet."
} }
} }

View file

@ -182,7 +182,6 @@
}, },
"attachmentRadius": "Pièces jointes", "attachmentRadius": "Pièces jointes",
"attachments": "Pièces jointes", "attachments": "Pièces jointes",
"autoload": "Charger la suite automatiquement une fois le bas de la page atteint",
"avatar": "Avatar", "avatar": "Avatar",
"avatarAltRadius": "Avatars (Notifications)", "avatarAltRadius": "Avatars (Notifications)",
"avatarRadius": "Avatars", "avatarRadius": "Avatars",
@ -282,7 +281,6 @@
"profile_tab": "Profil", "profile_tab": "Profil",
"radii_help": "Vous pouvez ici choisir le niveau d'arrondi des angles de l'interface (en pixels)", "radii_help": "Vous pouvez ici choisir le niveau d'arrondi des angles de l'interface (en pixels)",
"replies_in_timeline": "Réponses au journal", "replies_in_timeline": "Réponses au journal",
"reply_link_preview": "Afficher un aperçu lors du survol de liens vers une réponse",
"reply_visibility_all": "Montrer toutes les réponses", "reply_visibility_all": "Montrer toutes les réponses",
"reply_visibility_following": "Afficher uniquement les réponses adressées à moi ou aux personnes que je suis", "reply_visibility_following": "Afficher uniquement les réponses adressées à moi ou aux personnes que je suis",
"reply_visibility_self": "Afficher uniquement les réponses adressées à moi", "reply_visibility_self": "Afficher uniquement les réponses adressées à moi",
@ -319,11 +317,6 @@
"true": "oui" "true": "oui"
}, },
"notifications": "Notifications", "notifications": "Notifications",
"notification_setting": "Reçevoir les notifications de:",
"notification_setting_follows": "Utilisateurs que vous suivez",
"notification_setting_non_follows": "Utilisateurs que vous ne suivez pas",
"notification_setting_followers": "Utilisateurs qui vous suivent",
"notification_setting_non_followers": "Utilisateurs qui ne vous suivent pas",
"notification_mutes": "Pour stopper la récéption de notifications d'un utilisateur particulier, utilisez un masquage.", "notification_mutes": "Pour stopper la récéption de notifications d'un utilisateur particulier, utilisez un masquage.",
"notification_blocks": "Bloquer un utilisateur stoppe toute notification et se désabonne de lui.", "notification_blocks": "Bloquer un utilisateur stoppe toute notification et se désabonne de lui.",
"enable_web_push_notifications": "Activer les notifications de push web", "enable_web_push_notifications": "Activer les notifications de push web",
@ -350,7 +343,8 @@
"migration_snapshot_ok": "Pour être sûr un instantanée du thème à été chargé. Vos pouvez essayer de charger ses données.", "migration_snapshot_ok": "Pour être sûr un instantanée du thème à été chargé. Vos pouvez essayer de charger ses données.",
"fe_downgraded": "Retour en arrière de la version de PleromaFE.", "fe_downgraded": "Retour en arrière de la version de PleromaFE.",
"fe_upgraded": "Le moteur de thème PleromaFE à été mis à jour après un changement de version.", "fe_upgraded": "Le moteur de thème PleromaFE à été mis à jour après un changement de version.",
"snapshot_missing": "Aucun instantané du thème à été trouvé dans le fichier, il peut y avoir un rendu différent à la vision originelle." "snapshot_missing": "Aucun instantané du thème à été trouvé dans le fichier, il peut y avoir un rendu différent à la vision originelle.",
"snapshot_present": "Un instantané du thème à été chargé, toutes les valeurs sont dont écrasées. Vous pouvez autrement charger le thème complètement."
}, },
"keep_as_is": "Garder tel-quel", "keep_as_is": "Garder tel-quel",
"use_source": "Nouvelle version" "use_source": "Nouvelle version"
@ -626,7 +620,7 @@
"reject": "Rejeté", "reject": "Rejeté",
"replace": "Remplacer", "replace": "Remplacer",
"keyword_policies": "Politiques par mot-clés", "keyword_policies": "Politiques par mot-clés",
"ftl_removal": "Suppression du flux \"Ensemble du réseau connu\"", "ftl_removal": "Suppression du flux fédéré",
"is_replaced_by": "→" "is_replaced_by": "→"
}, },
"simple": { "simple": {

View file

@ -36,7 +36,7 @@
"twkn": "An Líonra Iomlán" "twkn": "An Líonra Iomlán"
}, },
"notifications": { "notifications": {
"broken_favorite": "Post anaithnid. Cuardach dó...", "broken_favorite": "Post anaithnid. Cuardach dó",
"favorited_you": "toghadh le do phost", "favorited_you": "toghadh le do phost",
"followed_you": "lean tú", "followed_you": "lean tú",
"load_older": "Luchtaigh fógraí aosta", "load_older": "Luchtaigh fógraí aosta",
@ -73,7 +73,6 @@
"settings": { "settings": {
"attachmentRadius": "Ceangaltáin", "attachmentRadius": "Ceangaltáin",
"attachments": "Ceangaltáin", "attachments": "Ceangaltáin",
"autoload": "Cumasaigh luchtú uathoibríoch nuair a scrollaítear go bun",
"avatar": "Phictúir phrófíle", "avatar": "Phictúir phrófíle",
"avatarAltRadius": "Phictúirí phrófíle (Fograí)", "avatarAltRadius": "Phictúirí phrófíle (Fograí)",
"avatarRadius": "Phictúirí phrófíle", "avatarRadius": "Phictúirí phrófíle",
@ -85,7 +84,7 @@
"cOrange": "Oráiste (Cosúil)", "cOrange": "Oráiste (Cosúil)",
"cRed": "Dearg (Cealaigh)", "cRed": "Dearg (Cealaigh)",
"change_password": "Athraigh do pasfhocal", "change_password": "Athraigh do pasfhocal",
"change_password_error": "Bhí fadhb ann ag athrú do pasfhocail", "change_password_error": "Bhí fadhb ann ag athrú do pasfhocail.",
"changed_password": "Athraigh an pasfhocal go rathúil!", "changed_password": "Athraigh an pasfhocal go rathúil!",
"collapse_subject": "Poist a chosc le teidil", "collapse_subject": "Poist a chosc le teidil",
"confirm_new_password": "Deimhnigh do pasfhocal nua", "confirm_new_password": "Deimhnigh do pasfhocal nua",
@ -147,7 +146,6 @@
"profile_tab": "Próifíl", "profile_tab": "Próifíl",
"radii_help": "Cruinniú imeall comhéadan a chumrú (i bpicteilíní)", "radii_help": "Cruinniú imeall comhéadan a chumrú (i bpicteilíní)",
"replies_in_timeline": "Freagraí sa amlíne", "replies_in_timeline": "Freagraí sa amlíne",
"reply_link_preview": "Cumasaigh réamhamharc nasc freagartha ar chlár na luiche",
"reply_visibility_all": "Taispeáin gach freagra", "reply_visibility_all": "Taispeáin gach freagra",
"reply_visibility_following": "Taispeáin freagraí amháin atá dírithe ar mise nó ar úsáideoirí atá mé ag leanúint", "reply_visibility_following": "Taispeáin freagraí amháin atá dírithe ar mise nó ar úsáideoirí atá mé ag leanúint",
"reply_visibility_self": "Taispeáin freagraí amháin atá dírithe ar mise", "reply_visibility_self": "Taispeáin freagraí amháin atá dírithe ar mise",
@ -162,7 +160,7 @@
"streaming": "Cumasaigh post nua a shruthú uathoibríoch nuair a scrollaítear go barr an leathanaigh", "streaming": "Cumasaigh post nua a shruthú uathoibríoch nuair a scrollaítear go barr an leathanaigh",
"text": "Téacs", "text": "Téacs",
"theme": "Téama", "theme": "Téama",
"theme_help": "Úsáid cód daith hex (#rrggbb) chun do schéim a saincheapadh", "theme_help": "Úsáid cód daith hex (#rrggbb) chun do schéim a saincheapadh.",
"tooltipRadius": "Bileoga eolais", "tooltipRadius": "Bileoga eolais",
"user_settings": "Socruithe úsáideora", "user_settings": "Socruithe úsáideora",
"values": { "values": {

View file

@ -70,9 +70,9 @@
"preferences": "העדפות" "preferences": "העדפות"
}, },
"notifications": { "notifications": {
"broken_favorite": "סטאטוס לא ידוע, מחפש...", "broken_favorite": "סטאטוס לא ידוע, מחפש",
"favorited_you": "אהב את הסטטוס שלך", "favorited_you": "אהב את הסטטוס שלך",
"followed_you": "עקב אחריך!", "followed_you": "עקב אחריך",
"load_older": "טען התראות ישנות", "load_older": "טען התראות ישנות",
"notifications": "התראות", "notifications": "התראות",
"read": "קרא!", "read": "קרא!",
@ -140,7 +140,6 @@
"app_name": "שם האפליקציה", "app_name": "שם האפליקציה",
"attachmentRadius": "צירופים", "attachmentRadius": "צירופים",
"attachments": "צירופים", "attachments": "צירופים",
"autoload": "החל טעינה אוטומטית בגלילה לתחתית הדף",
"avatar": "תמונת פרופיל", "avatar": "תמונת פרופיל",
"avatarAltRadius": "תמונות פרופיל (התראות)", "avatarAltRadius": "תמונות פרופיל (התראות)",
"avatarRadius": "תמונות פרופיל", "avatarRadius": "תמונות פרופיל",
@ -179,7 +178,7 @@
"follow_export": "יצוא עקיבות", "follow_export": "יצוא עקיבות",
"follow_export_button": "ייצא את הנעקבים שלך לקובץ csv", "follow_export_button": "ייצא את הנעקבים שלך לקובץ csv",
"follow_import": "יבוא עקיבות", "follow_import": "יבוא עקיבות",
"follow_import_error": "שגיאה בייבוא נעקבים.", "follow_import_error": "שגיאה בייבוא נעקבים",
"follows_imported": "נעקבים יובאו! ייקח זמן מה לעבד אותם.", "follows_imported": "נעקבים יובאו! ייקח זמן מה לעבד אותם.",
"foreground": "חזית", "foreground": "חזית",
"general": "כללי", "general": "כללי",
@ -240,7 +239,6 @@
"profile_tab": "פרופיל", "profile_tab": "פרופיל",
"radii_help": "קבע מראש עיגול פינות לממשק (בפיקסלים)", "radii_help": "קבע מראש עיגול פינות לממשק (בפיקסלים)",
"replies_in_timeline": "תגובות בציר הזמן", "replies_in_timeline": "תגובות בציר הזמן",
"reply_link_preview": "החל תצוגה מקדימה של לינק-תגובה בעת ריחוף עם העכבר",
"reply_visibility_all": "הראה את כל התגובות", "reply_visibility_all": "הראה את כל התגובות",
"reply_visibility_following": "הראה תגובות שמופנות אליי או לעקובים שלי בלבד", "reply_visibility_following": "הראה תגובות שמופנות אליי או לעקובים שלי בלבד",
"reply_visibility_self": "הראה תגובות שמופנות אליי בלבד", "reply_visibility_self": "הראה תגובות שמופנות אליי בלבד",
@ -313,7 +311,7 @@
"favorites": "מועדפים", "favorites": "מועדפים",
"follow": "עקוב", "follow": "עקוב",
"follow_sent": "בקשה נשלחה!", "follow_sent": "בקשה נשלחה!",
"follow_progress": "מבקש...", "follow_progress": "מבקש",
"follow_again": "שלח בקשה שוב?", "follow_again": "שלח בקשה שוב?",
"follow_unfollow": "בטל עקיבה", "follow_unfollow": "בטל עקיבה",
"followees": "נעקבים", "followees": "נעקבים",
@ -329,11 +327,11 @@
"report": "דווח", "report": "דווח",
"statuses": "סטטוסים", "statuses": "סטטוסים",
"unblock": "הסר חסימה", "unblock": "הסר חסימה",
"unblock_progress": "מסיר חסימה...", "unblock_progress": "מסיר חסימה",
"block_progress": "חוסם...", "block_progress": "חוסם",
"unmute": "הסר השתקה", "unmute": "הסר השתקה",
"unmute_progress": "מסיר השתקה...", "unmute_progress": "מסיר השתקה",
"mute_progress": "משתיק...", "mute_progress": "משתיק",
"admin_menu": { "admin_menu": {
"moderation": "ניהול (צוות)", "moderation": "ניהול (צוות)",
"grant_admin": "הפוך למנהל", "grant_admin": "הפוך למנהל",
@ -379,7 +377,7 @@
"favorite": "מועדף", "favorite": "מועדף",
"user_settings": "הגדרות משתמש" "user_settings": "הגדרות משתמש"
}, },
"upload":{ "upload": {
"error": { "error": {
"base": "העלאה נכשלה.", "base": "העלאה נכשלה.",
"file_too_big": "קובץ גדול מדי [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", "file_too_big": "קובץ גדול מדי [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]",

View file

@ -38,7 +38,6 @@
}, },
"settings": { "settings": {
"attachments": "Csatolmányok", "attachments": "Csatolmányok",
"autoload": "Autoatikus betöltés engedélyezése lap aljára görgetéskor",
"avatar": "Avatár", "avatar": "Avatár",
"bio": "Bio", "bio": "Bio",
"current_avatar": "Jelenlegi avatár", "current_avatar": "Jelenlegi avatár",
@ -52,7 +51,6 @@
"nsfw_clickthrough": "NSFW átkattintási tartalom elrejtésének engedélyezése", "nsfw_clickthrough": "NSFW átkattintási tartalom elrejtésének engedélyezése",
"profile_background": "Profil háttérkép", "profile_background": "Profil háttérkép",
"profile_banner": "Profil Banner", "profile_banner": "Profil Banner",
"reply_link_preview": "Válasz-link előzetes mutatása egér rátételkor",
"set_new_avatar": "Új avatár", "set_new_avatar": "Új avatár",
"set_new_profile_background": "Új profil háttér beállítása", "set_new_profile_background": "Új profil háttér beállítása",
"set_new_profile_banner": "Új profil banner", "set_new_profile_banner": "Új profil banner",

View file

@ -35,7 +35,8 @@
"search": "Ricerca", "search": "Ricerca",
"who_to_follow": "Chi seguire", "who_to_follow": "Chi seguire",
"preferences": "Preferenze", "preferences": "Preferenze",
"bookmarks": "Segnalibri" "bookmarks": "Segnalibri",
"chats": "Conversazioni"
}, },
"notifications": { "notifications": {
"followed_you": "ti segue", "followed_you": "ti segue",
@ -52,7 +53,6 @@
}, },
"settings": { "settings": {
"attachments": "Allegati", "attachments": "Allegati",
"autoload": "Abilita caricamento automatico quando raggiungi il fondo pagina",
"avatar": "Icona utente", "avatar": "Icona utente",
"bio": "Introduzione", "bio": "Introduzione",
"current_avatar": "La tua icona attuale", "current_avatar": "La tua icona attuale",
@ -66,7 +66,6 @@
"nsfw_clickthrough": "Fai click per visualizzare gli allegati offuscati", "nsfw_clickthrough": "Fai click per visualizzare gli allegati offuscati",
"profile_background": "Sfondo della tua pagina", "profile_background": "Sfondo della tua pagina",
"profile_banner": "Stendardo del tuo profilo", "profile_banner": "Stendardo del tuo profilo",
"reply_link_preview": "Visualizza le risposte al passaggio del cursore",
"set_new_avatar": "Scegli una nuova icona", "set_new_avatar": "Scegli una nuova icona",
"set_new_profile_background": "Scegli un nuovo sfondo per la tua pagina", "set_new_profile_background": "Scegli un nuovo sfondo per la tua pagina",
"set_new_profile_banner": "Scegli un nuovo stendardo per il tuo profilo", "set_new_profile_banner": "Scegli un nuovo stendardo per il tuo profilo",
@ -85,7 +84,7 @@
"change_password": "Cambia password", "change_password": "Cambia password",
"change_password_error": "C'è stato un problema durante il cambiamento della password.", "change_password_error": "C'è stato un problema durante il cambiamento della password.",
"changed_password": "Password cambiata correttamente!", "changed_password": "Password cambiata correttamente!",
"collapse_subject": "Ripiega messaggi con Oggetto", "collapse_subject": "Ripiega messaggi con oggetto",
"confirm_new_password": "Conferma la nuova password", "confirm_new_password": "Conferma la nuova password",
"current_password": "La tua password attuale", "current_password": "La tua password attuale",
"data_import_export_tab": "Importa o esporta dati", "data_import_export_tab": "Importa o esporta dati",
@ -257,7 +256,12 @@
"panel_header": "Titolo pannello", "panel_header": "Titolo pannello",
"badge_notification": "Notifica", "badge_notification": "Notifica",
"popover": "Suggerimenti, menù, sbalzi", "popover": "Suggerimenti, menù, sbalzi",
"toggled": "Scambiato" "toggled": "Scambiato",
"chat": {
"border": "Bordo",
"outgoing": "Inviati",
"incoming": "Ricevuti"
}
}, },
"common_colors": { "common_colors": {
"rgbo": "Icone, accenti, medaglie", "rgbo": "Icone, accenti, medaglie",
@ -332,11 +336,6 @@
"notification_mutes": "Per non ricevere notifiche da uno specifico utente, zittiscilo.", "notification_mutes": "Per non ricevere notifiche da uno specifico utente, zittiscilo.",
"notification_setting_privacy_option": "Nascondi mittente e contenuti delle notifiche push", "notification_setting_privacy_option": "Nascondi mittente e contenuti delle notifiche push",
"notification_setting_privacy": "Privacy", "notification_setting_privacy": "Privacy",
"notification_setting_followers": "Utenti che ti seguono",
"notification_setting_non_followers": "Utenti che non ti seguono",
"notification_setting_non_follows": "Utenti che non segui",
"notification_setting_follows": "Utenti che segui",
"notification_setting": "Ricevi notifiche da:",
"notification_setting_filters": "Filtri", "notification_setting_filters": "Filtri",
"notifications": "Notifiche", "notifications": "Notifiche",
"greentext": "Frecce da meme", "greentext": "Frecce da meme",
@ -398,7 +397,16 @@
"frontend_version": "Versione interfaccia", "frontend_version": "Versione interfaccia",
"backend_version": "Versione backend", "backend_version": "Versione backend",
"title": "Versione" "title": "Versione"
} },
"reset_avatar": "Azzera icona",
"reset_profile_background": "Azzera sfondo profilo",
"reset_profile_banner": "Azzera stendardo profilo",
"reset_avatar_confirm": "Vuoi veramente azzerare l'icona?",
"reset_banner_confirm": "Vuoi veramente azzerare lo stendardo?",
"reset_background_confirm": "Vuoi veramente azzerare lo sfondo?",
"chatMessageRadius": "Messaggi istantanei",
"notification_setting_hide_notification_contents": "Nascondi mittente e contenuti delle notifiche push",
"notification_setting_block_from_strangers": "Blocca notifiche da utenti che non segui"
}, },
"timeline": { "timeline": {
"error_fetching": "Errore nell'aggiornamento", "error_fetching": "Errore nell'aggiornamento",
@ -427,7 +435,47 @@
"block": "Blocca", "block": "Blocca",
"blocked": "Bloccato!", "blocked": "Bloccato!",
"deny": "Nega", "deny": "Nega",
"remote_follow": "Segui da remoto" "remote_follow": "Segui da remoto",
"admin_menu": {
"delete_user_confirmation": "Ne sei completamente sicuro? Quest'azione non può essere annullata.",
"delete_user": "Elimina utente",
"quarantine": "I messaggi non arriveranno alle altre stanze",
"disable_any_subscription": "Rendi utente non seguibile",
"disable_remote_subscription": "Blocca i tentativi di seguirlo da altre stanze",
"sandbox": "Rendi tutti i messaggi solo per seguaci",
"force_unlisted": "Rendi tutti i messaggi invisibili",
"strip_media": "Rimuovi ogni allegato ai messaggi",
"force_nsfw": "Oscura tutti i messaggi",
"delete_account": "Elimina profilo",
"deactivate_account": "Disattiva profilo",
"activate_account": "Attiva profilo",
"revoke_moderator": "Divesti Moderatore",
"grant_moderator": "Crea Moderatore",
"revoke_admin": "Divesti Amministratore",
"grant_admin": "Crea Amministratore",
"moderation": "Moderazione"
},
"show_repeats": "Mostra condivisioni",
"hide_repeats": "Nascondi condivisioni",
"mute_progress": "Zittisco…",
"unmute_progress": "Riabilito…",
"unmute": "Riabilita",
"block_progress": "Blocco…",
"unblock_progress": "Sblocco…",
"unblock": "Sblocca",
"unsubscribe": "Disdici",
"subscribe": "Abbònati",
"report": "Segnala",
"mention": "Menzioni",
"media": "Media",
"its_you": "Sei tu!",
"hidden": "Nascosto",
"follow_unfollow": "Disconosci",
"follow_again": "Reinvio richiesta?",
"follow_progress": "Richiedo…",
"follow_sent": "Richiesta inviata!",
"favorites": "Preferiti",
"message": "Contatta"
}, },
"chat": { "chat": {
"title": "Chat" "title": "Chat"
@ -439,7 +487,8 @@
"scope_options": "Opzioni visibilità", "scope_options": "Opzioni visibilità",
"text_limit": "Lunghezza massima", "text_limit": "Lunghezza massima",
"title": "Caratteristiche", "title": "Caratteristiche",
"who_to_follow": "Chi seguire" "who_to_follow": "Chi seguire",
"pleroma_chat_messages": "Chiacchiere"
}, },
"finder": { "finder": {
"error_fetching_user": "Errore nel recupero dell'utente", "error_fetching_user": "Errore nel recupero dell'utente",
@ -493,7 +542,9 @@
"new_status": "Nuovo messaggio", "new_status": "Nuovo messaggio",
"empty_status_error": "Non puoi pubblicare messaggi vuoti senza allegati", "empty_status_error": "Non puoi pubblicare messaggi vuoti senza allegati",
"preview_empty": "Vuoto", "preview_empty": "Vuoto",
"preview": "Anteprima" "preview": "Anteprima",
"media_description_error": "Allegati non caricati, riprova",
"media_description": "Descrizione allegati"
}, },
"registration": { "registration": {
"bio": "Introduzione", "bio": "Introduzione",
@ -517,7 +568,9 @@
"captcha": "CAPTCHA" "captcha": "CAPTCHA"
}, },
"user_profile": { "user_profile": {
"timeline_title": "Sequenza dell'Utente" "timeline_title": "Sequenza dell'Utente",
"profile_loading_error": "Spiacente, c'è stato un errore nel caricamento del profilo.",
"profile_does_not_exist": "Spiacente, questo profilo non esiste."
}, },
"who_to_follow": { "who_to_follow": {
"more": "Altro", "more": "Altro",
@ -626,7 +679,22 @@
"pin": "Intesta al profilo", "pin": "Intesta al profilo",
"delete": "Elimina messaggio", "delete": "Elimina messaggio",
"repeats": "Condivisi", "repeats": "Condivisi",
"favorites": "Preferiti" "favorites": "Preferiti",
"hide_content": "Nascondi contenuti",
"show_content": "Mostra contenuti",
"hide_full_subject": "Nascondi intero oggetto",
"show_full_subject": "Mostra intero oggetto",
"thread_muted_and_words": ", contiene:",
"thread_muted": "Discussione zittita",
"copy_link": "Copia collegamento",
"status_unavailable": "Messaggio non disponibile",
"unmute_conversation": "Riabilita conversazione",
"mute_conversation": "Zittisci conversazione",
"replies_list": "Risposte:",
"reply_to": "Rispondi a",
"delete_confirm": "Vuoi veramente eliminare questo messaggio?",
"unbookmark": "Rimuovi segnalibro",
"bookmark": "Aggiungi segnalibro"
}, },
"time": { "time": {
"years_short": "{0}a", "years_short": "{0}a",
@ -661,5 +729,84 @@
"day_short": "{0}g", "day_short": "{0}g",
"days": "{0} giorni", "days": "{0} giorni",
"day": "{0} giorno" "day": "{0} giorno"
},
"user_reporting": {
"title": "Segnalo {0}",
"additional_comments": "Osservazioni accessorie",
"generic_error": "C'è stato un errore nell'elaborazione della tua richiesta.",
"submit": "Invia",
"forward_to": "Inoltra a {0}",
"forward_description": "Il profilo appartiene ad un'altra stanza. Inviare la segnalazione anche a quella?",
"add_comment_description": "La segnalazione sarà inviata ai moderatori della tua stanza. Puoi motivarla qui sotto:"
},
"password_reset": {
"password_reset_required_but_mailer_is_disabled": "Devi reimpostare la tua password, ma non puoi farlo. Contatta il tuo amministratore.",
"password_reset_required": "Devi reimpostare la tua password per poter continuare.",
"password_reset_disabled": "Non puoi azzerare la tua password. Contatta il tuo amministratore.",
"too_many_requests": "Hai raggiunto il numero massimo di tentativi, riprova più tardi.",
"not_found": "Non ho trovato questa email o nome utente.",
"return_home": "Torna alla pagina principale",
"check_email": "Controlla la tua posta elettronica.",
"placeholder": "La tua email o nome utente",
"instruction": "Inserisci il tuo indirizzo email o il tuo nome utente. Ti invieremo un collegamento per reimpostare la tua password.",
"password_reset": "Azzera password",
"forgot_password": "Password dimenticata?"
},
"search": {
"no_results": "Nessun risultato",
"people_talking": "{count} partecipanti",
"person_talking": "{count} partecipante",
"hashtags": "Etichette",
"people": "Utenti"
},
"upload": {
"file_size_units": {
"TiB": "TiB",
"GiB": "GiB",
"MiB": "MiB",
"KiB": "KiB",
"B": "B"
},
"error": {
"default": "Riprova in seguito",
"file_too_big": "File troppo pesante [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]",
"base": "Caricamento fallito."
}
},
"tool_tip": {
"bookmark": "Aggiungi segnalibro",
"reject_follow_request": "Rifiuta seguace",
"accept_follow_request": "Accetta seguace",
"user_settings": "Impostazioni utente",
"add_reaction": "Reagisci",
"favorite": "Gradisci",
"reply": "Rispondi",
"repeat": "Ripeti",
"media_upload": "Carica allegati"
},
"display_date": {
"today": "Oggi"
},
"file_type": {
"file": "File",
"image": "Immagine",
"video": "Video",
"audio": "Audio"
},
"chats": {
"empty_chat_list_placeholder": "Non hai conversazioni. Contatta qualcuno!",
"error_sending_message": "Errore. Il messaggio non è stato inviato.",
"error_loading_chat": "Errore. La conversazione non è stata caricata.",
"delete_confirm": "Vuoi veramente eliminare questo messaggio?",
"more": "Altro",
"empty_message_error": "Non puoi inviare messaggi vuoti",
"new": "Nuova conversazione",
"chats": "Conversazioni",
"delete": "Elimina",
"message_user": "Contatta {nickname}",
"you": "Tu:"
},
"shoutbox": {
"title": "Graffiti"
} }
} }

View file

@ -27,7 +27,7 @@
}, },
"exporter": { "exporter": {
"export": "エクスポート", "export": "エクスポート",
"processing": "おまちください。しばらくすると、あなたのファイルをダウンロードするように、メッセージがでます" "processing": "おまちください。しばらくすると、あなたのファイルをダウンロードするように、メッセージがでます"
}, },
"features_panel": { "features_panel": {
"chat": "チャット", "chat": "チャット",
@ -39,7 +39,7 @@
"who_to_follow": "おすすめユーザー" "who_to_follow": "おすすめユーザー"
}, },
"finder": { "finder": {
"error_fetching_user": "ユーザーけんさくがエラーになりました", "error_fetching_user": "ユーザーけんさくがエラーになりました",
"find_user": "ユーザーをさがす" "find_user": "ユーザーをさがす"
}, },
"general": { "general": {
@ -80,9 +80,9 @@
"enter_recovery_code": "リカバリーコードをいれてください", "enter_recovery_code": "リカバリーコードをいれてください",
"enter_two_factor_code": "2-ファクターコードをいれてください", "enter_two_factor_code": "2-ファクターコードをいれてください",
"recovery_code": "リカバリーコード", "recovery_code": "リカバリーコード",
"heading" : { "heading": {
"totp" : "2-ファクターにんしょう", "totp": "2-ファクターにんしょう",
"recovery" : "2-ファクターリカバリー" "recovery": "2-ファクターリカバリー"
} }
}, },
"media_modal": { "media_modal": {
@ -107,7 +107,7 @@
"preferences": "せってい" "preferences": "せってい"
}, },
"notifications": { "notifications": {
"broken_favorite": "ステータスがみつかりません。さがしています...", "broken_favorite": "ステータスがみつかりません。さがしています",
"favorited_you": "あなたのステータスがおきにいりされました", "favorited_you": "あなたのステータスがおきにいりされました",
"followed_you": "フォローされました", "followed_you": "フォローされました",
"load_older": "ふるいつうちをみる", "load_older": "ふるいつうちをみる",
@ -172,10 +172,10 @@
"unlisted": "このとうこうは、パブリックタイムラインと、つながっているすべてのネットワークでは、みることができません" "unlisted": "このとうこうは、パブリックタイムラインと、つながっているすべてのネットワークでは、みることができません"
}, },
"scope": { "scope": {
"direct": "ダイレクト: メンションされたユーザーのみにとどきます", "direct": "ダイレクト: メンションされたユーザーのみにとどきます",
"private": "フォロワーげんてい: フォロワーのみにとどきます", "private": "フォロワーげんてい: フォロワーのみにとどきます",
"public": "パブリック: パブリックタイムラインにとどきます", "public": "パブリック: パブリックタイムラインにとどきます",
"unlisted": "アンリステッド: パブリックタイムラインにとどきません" "unlisted": "アンリステッド: パブリックタイムラインにとどきません"
} }
}, },
"registration": { "registration": {
@ -212,17 +212,17 @@
"security": "セキュリティ", "security": "セキュリティ",
"enter_current_password_to_confirm": "あなたのアイデンティティをたしかめるため、あなたのいまのパスワードをかいてください", "enter_current_password_to_confirm": "あなたのアイデンティティをたしかめるため、あなたのいまのパスワードをかいてください",
"mfa": { "mfa": {
"otp" : "OTP", "otp": "OTP",
"setup_otp" : "OTPをつくる", "setup_otp": "OTPをつくる",
"wait_pre_setup_otp" : "OTPをよういしています", "wait_pre_setup_otp": "OTPをよういしています",
"confirm_and_enable" : "OTPをたしかめて、ゆうこうにする", "confirm_and_enable": "OTPをたしかめて、ゆうこうにする",
"title": "2-ファクターにんしょう", "title": "2-ファクターにんしょう",
"generate_new_recovery_codes" : "あたらしいリカバリーコードをつくる", "generate_new_recovery_codes": "あたらしいリカバリーコードをつくる",
"warning_of_generate_new_codes" : "あたらしいリカバリーコードをつくったら、ふるいコードはつかえなくなります。", "warning_of_generate_new_codes": "あたらしいリカバリーコードをつくったら、ふるいコードはつかえなくなります。",
"recovery_codes" : "リカバリーコード。", "recovery_codes": "リカバリーコード。",
"waiting_a_recovery_codes": "バックアップコードをうけとっています...", "waiting_a_recovery_codes": "バックアップコードをうけとっています",
"recovery_codes_warning" : "コードをかきうつすか、ひとにみられないところにセーブしてください。そうでなければ、あなたはこのコードをふたたびみることはできません。もしあなたが、2FAアプリのアクセスをうしなって、なおかつ、リカバリーコードもおもいだせないならば、あなたはあなたのアカウントから、しめだされます。", "recovery_codes_warning": "コードをかきうつすか、ひとにみられないところにセーブしてください。そうでなければ、あなたはこのコードをふたたびみることはできません。もしあなたが、2FAアプリのアクセスをうしなって、なおかつ、リカバリーコードもおもいだせないならば、あなたはあなたのアカウントから、しめだされます。",
"authentication_methods" : "にんしょうメソッド", "authentication_methods": "にんしょうメソッド",
"scan": { "scan": {
"title": "スキャン", "title": "スキャン",
"desc": "あなたの2-ファクターアプリをつかって、このQRコードをスキャンするか、テキストキーをうちこんでください:", "desc": "あなたの2-ファクターアプリをつかって、このQRコードをスキャンするか、テキストキーをうちこんでください:",
@ -234,7 +234,6 @@
}, },
"attachmentRadius": "ファイル", "attachmentRadius": "ファイル",
"attachments": "ファイル", "attachments": "ファイル",
"autoload": "したにスクロールしたとき、じどうてきによみこむ。",
"avatar": "アバター", "avatar": "アバター",
"avatarAltRadius": "つうちのアバター", "avatarAltRadius": "つうちのアバター",
"avatarRadius": "アバター", "avatarRadius": "アバター",
@ -274,12 +273,12 @@
"pad_emoji": "えもじをピッカーでえらんだとき、えもじのまわりにスペースをいれる", "pad_emoji": "えもじをピッカーでえらんだとき、えもじのまわりにスペースをいれる",
"export_theme": "セーブ", "export_theme": "セーブ",
"filtering": "フィルタリング", "filtering": "フィルタリング",
"filtering_explanation": "これらのことばをふくむすべてのものがミュートされます。1ぎょうに1つのことばをかいてください", "filtering_explanation": "これらのことばをふくむすべてのものがミュートされます。1ぎょうに1つのことばをかいてください",
"follow_export": "フォローのエクスポート", "follow_export": "フォローのエクスポート",
"follow_export_button": "エクスポート", "follow_export_button": "エクスポート",
"follow_export_processing": "おまちください。まもなくファイルをダウンロードできます。", "follow_export_processing": "おまちください。まもなくファイルをダウンロードできます。",
"follow_import": "フォローインポート", "follow_import": "フォローインポート",
"follow_import_error": "フォローのインポートがエラーになりました", "follow_import_error": "フォローのインポートがエラーになりました",
"follows_imported": "フォローがインポートされました! すこしじかんがかかるかもしれません。", "follows_imported": "フォローがインポートされました! すこしじかんがかかるかもしれません。",
"foreground": "フォアグラウンド", "foreground": "フォアグラウンド",
"general": "ぜんぱん", "general": "ぜんぱん",
@ -341,9 +340,8 @@
"profile_background": "プロフィールのバックグラウンド", "profile_background": "プロフィールのバックグラウンド",
"profile_banner": "プロフィールバナー", "profile_banner": "プロフィールバナー",
"profile_tab": "プロフィール", "profile_tab": "プロフィール",
"radii_help": "インターフェースのまるさをせっていする", "radii_help": "インターフェースのまるさをせっていする",
"replies_in_timeline": "タイムラインのリプライ", "replies_in_timeline": "タイムラインのリプライ",
"reply_link_preview": "カーソルをかさねたとき、リプライのプレビューをみる",
"reply_visibility_all": "すべてのリプライをみる", "reply_visibility_all": "すべてのリプライをみる",
"reply_visibility_following": "わたしにあてられたリプライと、フォローしているひとからのリプライをみる", "reply_visibility_following": "わたしにあてられたリプライと、フォローしているひとからのリプライをみる",
"reply_visibility_self": "わたしにあてられたリプライをみる", "reply_visibility_self": "わたしにあてられたリプライをみる",
@ -369,7 +367,7 @@
"streaming": "うえまでスクロールしたとき、じどうてきにストリーミングする", "streaming": "うえまでスクロールしたとき、じどうてきにストリーミングする",
"text": "もじ", "text": "もじ",
"theme": "テーマ", "theme": "テーマ",
"theme_help": "カラーテーマをカスタマイズできます", "theme_help": "カラーテーマをカスタマイズできます",
"theme_help_v2_1": "チェックボックスをONにすると、コンポーネントごとに、いろと、とうめいどを、オーバーライドできます。「すべてクリア」ボタンをおすと、すべてのオーバーライドを、やめます。", "theme_help_v2_1": "チェックボックスをONにすると、コンポーネントごとに、いろと、とうめいどを、オーバーライドできます。「すべてクリア」ボタンをおすと、すべてのオーバーライドを、やめます。",
"theme_help_v2_2": "バックグラウンドとテキストのコントラストをあらわすアイコンがあります。マウスをホバーすると、くわしいせつめいがでます。とうめいないろをつかっているときは、もっともわるいばあいのコントラストがしめされます。", "theme_help_v2_2": "バックグラウンドとテキストのコントラストをあらわすアイコンがあります。マウスをホバーすると、くわしいせつめいがでます。とうめいないろをつかっているときは、もっともわるいばあいのコントラストがしめされます。",
"upload_a_photo": "がぞうをアップロード", "upload_a_photo": "がぞうをアップロード",
@ -382,11 +380,6 @@
"fun": "おたのしみ", "fun": "おたのしみ",
"greentext": "ミームやじるし", "greentext": "ミームやじるし",
"notifications": "つうち", "notifications": "つうち",
"notification_setting": "つうちをうけとる:",
"notification_setting_follows": "あなたがフォローしているひとから",
"notification_setting_non_follows": "あなたがフォローしていないひとから",
"notification_setting_followers": "あなたをフォローしているひとから",
"notification_setting_non_followers": "あなたをフォローしていないひとから",
"notification_mutes": "あるユーザーからのつうちをとめるには、ミュートしてください。", "notification_mutes": "あるユーザーからのつうちをとめるには、ミュートしてください。",
"notification_blocks": "ブロックしているユーザーからのつうちは、すべてとまります。", "notification_blocks": "ブロックしているユーザーからのつうちは、すべてとまります。",
"enable_web_push_notifications": "ウェブプッシュつうちをゆるす", "enable_web_push_notifications": "ウェブプッシュつうちをゆるす",
@ -409,8 +402,8 @@
"hint": "コントラストは {ratio} です。{level}。({context})", "hint": "コントラストは {ratio} です。{level}。({context})",
"level": { "level": {
"aa": "AAレベルガイドライン (ミニマル) をみたします", "aa": "AAレベルガイドライン (ミニマル) をみたします",
"aaa": "AAAレベルガイドライン (レコメンデッド) をみたします", "aaa": "AAAレベルガイドライン (レコメンデッド) をみたします",
"bad": "ガイドラインをみたしません" "bad": "ガイドラインをみたしません"
}, },
"context": { "context": {
"18pt": "おおきい (18ポイントいじょう) テキスト", "18pt": "おおきい (18ポイントいじょう) テキスト",
@ -454,8 +447,8 @@
"always_drop_shadow": "ブラウザーがサポートしていれば、つねに {0} がつかわれます。", "always_drop_shadow": "ブラウザーがサポートしていれば、つねに {0} がつかわれます。",
"drop_shadow_syntax": "{0} は、{1} パラメーターと {2} キーワードをサポートしていません。", "drop_shadow_syntax": "{0} は、{1} パラメーターと {2} キーワードをサポートしていません。",
"avatar_inset": "うちがわのかげと、そとがわのかげを、いっしょにつかうと、とうめいなアバターが、へんなみためになります。", "avatar_inset": "うちがわのかげと、そとがわのかげを、いっしょにつかうと、とうめいなアバターが、へんなみためになります。",
"spread_zero": "ひろがりが 0 よりもおおきなかげは、0 とおなじです", "spread_zero": "ひろがりが 0 よりもおおきなかげは、0 とおなじです",
"inset_classic": "うちがわのかげは {0} をつかいます" "inset_classic": "うちがわのかげは {0} をつかいます"
}, },
"components": { "components": {
"panel": "パネル", "panel": "パネル",
@ -490,7 +483,7 @@
"content": "ほんぶん", "content": "ほんぶん",
"error": "エラーのれい", "error": "エラーのれい",
"button": "ボタン", "button": "ボタン",
"text": "これは{0}と{1}のれいです", "text": "これは{0}と{1}のれいです",
"mono": "monospace", "mono": "monospace",
"input": "はねだくうこうに、つきました。", "input": "はねだくうこうに、つきました。",
"faint_link": "とてもたすけになるマニュアル", "faint_link": "とてもたすけになるマニュアル",
@ -593,11 +586,11 @@
"subscribe": "サブスクライブ", "subscribe": "サブスクライブ",
"unsubscribe": "サブスクライブをやめる", "unsubscribe": "サブスクライブをやめる",
"unblock": "ブロックをやめる", "unblock": "ブロックをやめる",
"unblock_progress": "ブロックをとりけしています...", "unblock_progress": "ブロックをとりけしています",
"block_progress": "ブロックしています...", "block_progress": "ブロックしています",
"unmute": "ミュートをやめる", "unmute": "ミュートをやめる",
"unmute_progress": "ミュートをとりけしています...", "unmute_progress": "ミュートをとりけしています",
"mute_progress": "ミュートしています...", "mute_progress": "ミュートしています",
"hide_repeats": "リピートをかくす", "hide_repeats": "リピートをかくす",
"show_repeats": "リピートをみる", "show_repeats": "リピートをみる",
"admin_menu": { "admin_menu": {
@ -645,11 +638,11 @@
"favorite": "おきにいり", "favorite": "おきにいり",
"user_settings": "ユーザーせってい" "user_settings": "ユーザーせってい"
}, },
"upload":{ "upload": {
"error": { "error": {
"base": "アップロードにしっぱいしました。", "base": "アップロードにしっぱいしました。",
"file_too_big": "ファイルがおおきすぎます [{filesize} {filesizeunit} / {allowedsize} {allowedsizeunit}]", "file_too_big": "ファイルがおおきすぎます [{filesize} {filesizeunit} / {allowedsize} {allowedsizeunit}]",
"default": "しばらくしてから、ためしてください" "default": "しばらくしてから、ためしてください"
}, },
"file_size_units": { "file_size_units": {
"B": "B", "B": "B",

View file

@ -203,7 +203,6 @@
}, },
"attachmentRadius": "ファイル", "attachmentRadius": "ファイル",
"attachments": "ファイル", "attachments": "ファイル",
"autoload": "下にスクロールしたとき、自動的に読み込む。",
"avatar": "アバター", "avatar": "アバター",
"avatarAltRadius": "通知のアバター", "avatarAltRadius": "通知のアバター",
"avatarRadius": "アバター", "avatarRadius": "アバター",
@ -308,7 +307,6 @@
"profile_tab": "プロフィール", "profile_tab": "プロフィール",
"radii_help": "インターフェースの丸さを設定する。", "radii_help": "インターフェースの丸さを設定する。",
"replies_in_timeline": "タイムラインのリプライ", "replies_in_timeline": "タイムラインのリプライ",
"reply_link_preview": "カーソルを重ねたとき、リプライのプレビューを見る",
"reply_visibility_all": "すべてのリプライを見る", "reply_visibility_all": "すべてのリプライを見る",
"reply_visibility_following": "私に宛てられたリプライと、フォローしている人からのリプライを見る", "reply_visibility_following": "私に宛てられたリプライと、フォローしている人からのリプライを見る",
"reply_visibility_self": "私に宛てられたリプライを見る", "reply_visibility_self": "私に宛てられたリプライを見る",
@ -345,11 +343,6 @@
"true": "はい" "true": "はい"
}, },
"notifications": "通知", "notifications": "通知",
"notification_setting": "通知を受け取る:",
"notification_setting_follows": "あなたがフォローしているユーザーから",
"notification_setting_non_follows": "あなたがフォローしていないユーザーから",
"notification_setting_followers": "あなたをフォローしているユーザーから",
"notification_setting_non_followers": "あなたをフォローしていないユーザーから",
"notification_mutes": "特定のユーザーからの通知を止めるには、ミュートしてください。", "notification_mutes": "特定のユーザーからの通知を止めるには、ミュートしてください。",
"notification_blocks": "ブロックしているユーザーからの通知は、すべて止まります。", "notification_blocks": "ブロックしているユーザーからの通知は、すべて止まります。",
"enable_web_push_notifications": "ウェブプッシュ通知を許可する", "enable_web_push_notifications": "ウェブプッシュ通知を許可する",

View file

@ -90,7 +90,6 @@
"settings": { "settings": {
"attachmentRadius": "첨부물", "attachmentRadius": "첨부물",
"attachments": "첨부물", "attachments": "첨부물",
"autoload": "최하단에 도착하면 자동으로 로드 활성화",
"avatar": "아바타", "avatar": "아바타",
"avatarAltRadius": "아바타 (알림)", "avatarAltRadius": "아바타 (알림)",
"avatarRadius": "아바타", "avatarRadius": "아바타",
@ -172,7 +171,6 @@
"profile_tab": "프로필", "profile_tab": "프로필",
"radii_help": "인터페이스 모서리 둥글기 (픽셀 단위)", "radii_help": "인터페이스 모서리 둥글기 (픽셀 단위)",
"replies_in_timeline": "답글을 타임라인에", "replies_in_timeline": "답글을 타임라인에",
"reply_link_preview": "마우스를 올려서 답글 링크 미리보기 활성화",
"reply_visibility_all": "모든 답글 보기", "reply_visibility_all": "모든 답글 보기",
"reply_visibility_following": "나에게 직접 오는 답글이나 내가 팔로우 중인 사람에게서 오는 답글만 표시", "reply_visibility_following": "나에게 직접 오는 답글이나 내가 팔로우 중인 사람에게서 오는 답글만 표시",
"reply_visibility_self": "나에게 직접 전송 된 답글만 보이기", "reply_visibility_self": "나에게 직접 전송 된 답글만 보이기",

View file

@ -193,7 +193,6 @@
}, },
"attachmentRadius": "Vedlegg", "attachmentRadius": "Vedlegg",
"attachments": "Vedlegg", "attachments": "Vedlegg",
"autoload": "Automatisk lasting når du blar ned til bunnen",
"avatar": "Profilbilde", "avatar": "Profilbilde",
"avatarAltRadius": "Profilbilde (Varslinger)", "avatarAltRadius": "Profilbilde (Varslinger)",
"avatarRadius": "Profilbilde", "avatarRadius": "Profilbilde",
@ -293,7 +292,6 @@
"profile_tab": "Profil", "profile_tab": "Profil",
"radii_help": "Bestem hvor runde hjørnene i brukergrensesnittet skal være (i piksler)", "radii_help": "Bestem hvor runde hjørnene i brukergrensesnittet skal være (i piksler)",
"replies_in_timeline": "Svar på tidslinje", "replies_in_timeline": "Svar på tidslinje",
"reply_link_preview": "Vis en forhåndsvisning når du holder musen over svar til en status",
"reply_visibility_all": "Vis alle svar", "reply_visibility_all": "Vis alle svar",
"reply_visibility_following": "Vis bare svar som er til meg eller folk jeg følger", "reply_visibility_following": "Vis bare svar som er til meg eller folk jeg følger",
"reply_visibility_self": "Vis bare svar som er til meg", "reply_visibility_self": "Vis bare svar som er til meg",
@ -330,11 +328,6 @@
"true": "ja" "true": "ja"
}, },
"notifications": "Varsler", "notifications": "Varsler",
"notification_setting": "Motta varsler i fra:",
"notification_setting_follows": "Brukere du følger",
"notification_setting_non_follows": "Brukere du ikke følger",
"notification_setting_followers": "Brukere som følger deg",
"notification_setting_non_followers": "Brukere som ikke følger deg",
"notification_mutes": "For å stoppe å motta varsler i fra en spesifikk bruker, kan du dempe dem.", "notification_mutes": "For å stoppe å motta varsler i fra en spesifikk bruker, kan du dempe dem.",
"notification_blocks": "Hvis du blokkerer en bruker vil det stoppe alle varsler og i tilleg få dem til å slutte å følge deg", "notification_blocks": "Hvis du blokkerer en bruker vil det stoppe alle varsler og i tilleg få dem til å slutte å følge deg",
"enable_web_push_notifications": "Skru på pushnotifikasjoner i nettlesere", "enable_web_push_notifications": "Skru på pushnotifikasjoner i nettlesere",

View file

@ -136,7 +136,6 @@
"settings": { "settings": {
"attachmentRadius": "Bijlages", "attachmentRadius": "Bijlages",
"attachments": "Bijlages", "attachments": "Bijlages",
"autoload": "Automatisch laden inschakelen wanneer tot de bodem gescrold wordt",
"avatar": "Avatar", "avatar": "Avatar",
"avatarAltRadius": "Avatars (Meldingen)", "avatarAltRadius": "Avatars (Meldingen)",
"avatarRadius": "Avatars", "avatarRadius": "Avatars",
@ -217,7 +216,6 @@
"profile_tab": "Profiel", "profile_tab": "Profiel",
"radii_help": "Stel afronding van hoeken in de interface in (in pixels)", "radii_help": "Stel afronding van hoeken in de interface in (in pixels)",
"replies_in_timeline": "Antwoorden in tijdlijn", "replies_in_timeline": "Antwoorden in tijdlijn",
"reply_link_preview": "Antwoord-link weergave inschakelen bij aanwijzen met muisaanwijzer",
"reply_visibility_all": "Alle antwoorden tonen", "reply_visibility_all": "Alle antwoorden tonen",
"reply_visibility_following": "Enkel antwoorden tonen die aan mij of gevolgde gebruikers gericht zijn", "reply_visibility_following": "Enkel antwoorden tonen die aan mij of gevolgde gebruikers gericht zijn",
"reply_visibility_self": "Enkel antwoorden tonen die aan mij gericht zijn", "reply_visibility_self": "Enkel antwoorden tonen die aan mij gericht zijn",
@ -390,9 +388,6 @@
"link": "een leuke kleine link" "link": "een leuke kleine link"
} }
}, },
"notification_setting_follows": "Gebruikers die je volgt",
"notification_setting_non_follows": "Gebruikers die je niet volgt",
"notification_setting_followers": "Gebruikers die je volgen",
"notification_setting_privacy": "Privacy", "notification_setting_privacy": "Privacy",
"notification_setting_privacy_option": "Verberg de afzender en inhoud van push meldingen", "notification_setting_privacy_option": "Verberg de afzender en inhoud van push meldingen",
"notification_mutes": "Om niet langer meldingen te ontvangen van een specifieke gebruiker, kun je deze negeren.", "notification_mutes": "Om niet langer meldingen te ontvangen van een specifieke gebruiker, kun je deze negeren.",
@ -460,7 +455,6 @@
"upload_a_photo": "Upload een foto", "upload_a_photo": "Upload een foto",
"fun": "Plezier", "fun": "Plezier",
"greentext": "Meme pijlen", "greentext": "Meme pijlen",
"notification_setting": "Ontvang meldingen van:",
"block_export_button": "Exporteer je geblokkeerde gebruikers naar een csv bestand", "block_export_button": "Exporteer je geblokkeerde gebruikers naar een csv bestand",
"block_import_error": "Fout bij importeren blokkades", "block_import_error": "Fout bij importeren blokkades",
"discoverable": "Sta toe dat dit account ontdekt kan worden in zoekresultaten en andere diensten", "discoverable": "Sta toe dat dit account ontdekt kan worden in zoekresultaten en andere diensten",
@ -469,7 +463,6 @@
"hide_follows_description": "Niet tonen wie ik volg", "hide_follows_description": "Niet tonen wie ik volg",
"show_moderator_badge": "Moderators badge tonen in mijn profiel", "show_moderator_badge": "Moderators badge tonen in mijn profiel",
"notification_setting_filters": "Filters", "notification_setting_filters": "Filters",
"notification_setting_non_followers": "Gebruikers die je niet volgen",
"notification_blocks": "Door een gebruiker te blokkeren, ontvang je geen meldingen meer van de gebruiker en wordt je abonnement op de gebruiker opgeheven.", "notification_blocks": "Door een gebruiker te blokkeren, ontvang je geen meldingen meer van de gebruiker en wordt je abonnement op de gebruiker opgeheven.",
"version": { "version": {
"frontend_version": "Frontend Versie", "frontend_version": "Frontend Versie",

View file

@ -152,7 +152,6 @@
"app_name": "Nom de laplicacion", "app_name": "Nom de laplicacion",
"attachmentRadius": "Pèças juntas", "attachmentRadius": "Pèças juntas",
"attachments": "Pèças juntas", "attachments": "Pèças juntas",
"autoload": "Activar lo cargament automatic un còp arribat al cap de la pagina",
"avatar": "Avatar", "avatar": "Avatar",
"avatarAltRadius": "Avatars (Notificacions)", "avatarAltRadius": "Avatars (Notificacions)",
"avatarRadius": "Avatars", "avatarRadius": "Avatars",
@ -252,7 +251,6 @@
"profile_tab": "Perfil", "profile_tab": "Perfil",
"radii_help": "Configurar los caires arredondits de linterfàcia (en pixèls)", "radii_help": "Configurar los caires arredondits de linterfàcia (en pixèls)",
"replies_in_timeline": "Responsas del flux", "replies_in_timeline": "Responsas del flux",
"reply_link_preview": "Activar lapercebut en passar la mirga",
"reply_visibility_all": "Mostrar totas las responsas", "reply_visibility_all": "Mostrar totas las responsas",
"reply_visibility_following": "Mostrar pas que las responsas que me son destinada a ieu o un utilizaire que seguissi", "reply_visibility_following": "Mostrar pas que las responsas que me son destinada a ieu o un utilizaire que seguissi",
"reply_visibility_self": "Mostrar pas que las responsas que me son destinadas", "reply_visibility_self": "Mostrar pas que las responsas que me son destinadas",
@ -288,11 +286,6 @@
"true": "òc" "true": "òc"
}, },
"notifications": "Notificacions", "notifications": "Notificacions",
"notification_setting": "Recebre las notificacions de:",
"notification_setting_follows": "Utilizaires que seguissètz",
"notification_setting_non_follows": "Utilizaires que seguissètz pas",
"notification_setting_followers": "Utilizaires que vos seguisson",
"notification_setting_non_followers": "Utilizaires que vos seguisson pas",
"notification_mutes": "Per recebre pas mai dun utilizaire en particular, botatz-lo en silenci.", "notification_mutes": "Per recebre pas mai dun utilizaire en particular, botatz-lo en silenci.",
"notification_blocks": "Blocar un utilizaire arrèsta totas las notificacions tan coma quitar de los seguir.", "notification_blocks": "Blocar un utilizaire arrèsta totas las notificacions tan coma quitar de los seguir.",
"enable_web_push_notifications": "Activar las notificacions web push", "enable_web_push_notifications": "Activar las notificacions web push",
@ -550,4 +543,4 @@
"people_talking": "{count} personas ne parlan", "people_talking": "{count} personas ne parlan",
"no_results": "Cap de resultats" "no_results": "Cap de resultats"
} }
} }

View file

@ -34,9 +34,9 @@
}, },
"domain_mute_card": { "domain_mute_card": {
"mute": "Wycisz", "mute": "Wycisz",
"mute_progress": "Wyciszam...", "mute_progress": "Wyciszam",
"unmute": "Odcisz", "unmute": "Odcisz",
"unmute_progress": "Odciszam..." "unmute_progress": "Odciszam"
}, },
"exporter": { "exporter": {
"export": "Eksportuj", "export": "Eksportuj",
@ -68,7 +68,10 @@
"disable": "Wyłącz", "disable": "Wyłącz",
"enable": "Włącz", "enable": "Włącz",
"confirm": "Potwierdź", "confirm": "Potwierdź",
"verify": "Zweryfikuj" "verify": "Zweryfikuj",
"close": "Zamknij",
"loading": "Ładowanie…",
"retry": "Spróbuj ponownie"
}, },
"image_cropper": { "image_cropper": {
"crop_picture": "Przytnij obrazek", "crop_picture": "Przytnij obrazek",
@ -118,7 +121,8 @@
"user_search": "Wyszukiwanie użytkowników", "user_search": "Wyszukiwanie użytkowników",
"search": "Wyszukiwanie", "search": "Wyszukiwanie",
"who_to_follow": "Sugestie obserwacji", "who_to_follow": "Sugestie obserwacji",
"preferences": "Preferencje" "preferences": "Preferencje",
"bookmarks": "Zakładki"
}, },
"notifications": { "notifications": {
"broken_favorite": "Nieznany status, szukam go…", "broken_favorite": "Nieznany status, szukam go…",
@ -190,7 +194,10 @@
"private": "Tylko dla obserwujących Umieść dla osób, które cię obserwują", "private": "Tylko dla obserwujących Umieść dla osób, które cię obserwują",
"public": "Publiczny Umieść na publicznych osiach czasu", "public": "Publiczny Umieść na publicznych osiach czasu",
"unlisted": "Niewidoczny Nie umieszczaj na publicznych osiach czasu" "unlisted": "Niewidoczny Nie umieszczaj na publicznych osiach czasu"
} },
"preview_empty": "Pusty",
"preview": "Podgląd",
"empty_status_error": "Nie można wysłać pustego wpisu bez plików"
}, },
"registration": { "registration": {
"bio": "Bio", "bio": "Bio",
@ -234,7 +241,7 @@
"generate_new_recovery_codes": "Wygeneruj nowe kody zapasowe", "generate_new_recovery_codes": "Wygeneruj nowe kody zapasowe",
"warning_of_generate_new_codes": "Po tym gdy wygenerujesz nowe kody zapasowe, stare przestaną działać.", "warning_of_generate_new_codes": "Po tym gdy wygenerujesz nowe kody zapasowe, stare przestaną działać.",
"recovery_codes": "Kody zapasowe.", "recovery_codes": "Kody zapasowe.",
"waiting_a_recovery_codes": "Otrzymuję kody zapasowe...", "waiting_a_recovery_codes": "Otrzymuję kody zapasowe",
"recovery_codes_warning": "Spisz kody na kartce papieru, albo zapisz je w bezpiecznym miejscu - inaczej nie zobaczysz ich już nigdy. Jeśli stracisz dostęp do twojej aplikacji 2FA i kodów zapasowych, nie będziesz miał(-a) dostępu do swojego konta.", "recovery_codes_warning": "Spisz kody na kartce papieru, albo zapisz je w bezpiecznym miejscu - inaczej nie zobaczysz ich już nigdy. Jeśli stracisz dostęp do twojej aplikacji 2FA i kodów zapasowych, nie będziesz miał(-a) dostępu do swojego konta.",
"authentication_methods": "Metody weryfikacji", "authentication_methods": "Metody weryfikacji",
"scan": { "scan": {
@ -249,7 +256,6 @@
"allow_following_move": "Zezwalaj na automatyczną obserwację gdy obserwowane konto migruje", "allow_following_move": "Zezwalaj na automatyczną obserwację gdy obserwowane konto migruje",
"attachmentRadius": "Załączniki", "attachmentRadius": "Załączniki",
"attachments": "Załączniki", "attachments": "Załączniki",
"autoload": "Włącz automatyczne ładowanie po przewinięciu do końca strony",
"avatar": "Awatar", "avatar": "Awatar",
"avatarAltRadius": "Awatary (powiadomienia)", "avatarAltRadius": "Awatary (powiadomienia)",
"avatarRadius": "Awatary", "avatarRadius": "Awatary",
@ -340,8 +346,8 @@
"notification_visibility_moves": "Użytkownik migruje", "notification_visibility_moves": "Użytkownik migruje",
"notification_visibility_emoji_reactions": "Reakcje", "notification_visibility_emoji_reactions": "Reakcje",
"no_rich_text_description": "Usuwaj formatowanie ze wszystkich postów", "no_rich_text_description": "Usuwaj formatowanie ze wszystkich postów",
"no_blocks": "Bez blokad", "no_blocks": "Brak blokad",
"no_mutes": "Bez wyciszeń", "no_mutes": "Brak wyciszeń",
"hide_follows_description": "Nie pokazuj kogo obserwuję", "hide_follows_description": "Nie pokazuj kogo obserwuję",
"hide_followers_description": "Nie pokazuj kto mnie obserwuje", "hide_followers_description": "Nie pokazuj kto mnie obserwuje",
"hide_follows_count_description": "Nie pokazuj licznika obserwowanych", "hide_follows_count_description": "Nie pokazuj licznika obserwowanych",
@ -362,7 +368,6 @@
"profile_tab": "Profil", "profile_tab": "Profil",
"radii_help": "Ustaw zaokrąglenie krawędzi interfejsu (w pikselach)", "radii_help": "Ustaw zaokrąglenie krawędzi interfejsu (w pikselach)",
"replies_in_timeline": "Odpowiedzi na osi czasu", "replies_in_timeline": "Odpowiedzi na osi czasu",
"reply_link_preview": "Włącz dymek z podglądem postu po najechaniu na znak odpowiedzi",
"reply_visibility_all": "Pokazuj wszystkie odpowiedzi", "reply_visibility_all": "Pokazuj wszystkie odpowiedzi",
"reply_visibility_following": "Pokazuj tylko odpowiedzi skierowane do mnie i osób które obserwuję", "reply_visibility_following": "Pokazuj tylko odpowiedzi skierowane do mnie i osób które obserwuję",
"reply_visibility_self": "Pokazuj tylko odpowiedzi skierowane do mnie", "reply_visibility_self": "Pokazuj tylko odpowiedzi skierowane do mnie",
@ -405,11 +410,6 @@
"fun": "Zabawa", "fun": "Zabawa",
"greentext": "Memiczne strzałki", "greentext": "Memiczne strzałki",
"notifications": "Powiadomienia", "notifications": "Powiadomienia",
"notification_setting": "Otrzymuj powiadomienia od:",
"notification_setting_follows": "Ludzi których obserwujesz",
"notification_setting_non_follows": "Ludzi których nie obserwujesz",
"notification_setting_followers": "Ludzi którzy obserwują ciebie",
"notification_setting_non_followers": "Ludzi którzy nie obserwują ciebie",
"notification_mutes": "By przestać otrzymywać powiadomienia od jednego użytkownika, wycisz go.", "notification_mutes": "By przestać otrzymywać powiadomienia od jednego użytkownika, wycisz go.",
"notification_blocks": "Blokowanie uzytkownika zatrzymuje wszystkie powiadomienia i odsubskrybowuje go.", "notification_blocks": "Blokowanie uzytkownika zatrzymuje wszystkie powiadomienia i odsubskrybowuje go.",
"enable_web_push_notifications": "Włącz powiadomienia push", "enable_web_push_notifications": "Włącz powiadomienia push",
@ -489,7 +489,11 @@
"selectedMenu": "Wybrany element menu", "selectedMenu": "Wybrany element menu",
"disabled": "Wyłączone", "disabled": "Wyłączone",
"toggled": "Przełączone", "toggled": "Przełączone",
"tabs": "Karty" "tabs": "Karty",
"chat": {
"outgoing": "Wiadomości wychodzące",
"incoming": "Wiadomości przychodzące"
}
}, },
"radii": { "radii": {
"_tab_label": "Zaokrąglenie" "_tab_label": "Zaokrąglenie"
@ -560,7 +564,16 @@
}, },
"notification_setting_privacy": "Prywatność", "notification_setting_privacy": "Prywatność",
"notification_setting_filters": "Filtry", "notification_setting_filters": "Filtry",
"notification_setting_privacy_option": "Ukryj nadawcę i zawartość powiadomień push" "notification_setting_privacy_option": "Ukryj nadawcę i zawartość powiadomień push",
"reset_avatar": "Zresetuj awatar",
"profile_fields": {
"value": "Zawartość",
"label": "Metadane profilu",
"name": "Nazwa",
"add_field": "Dodaj pole"
},
"bot": "To konto jest prowadzone przez bota",
"notification_setting_hide_notification_contents": "Ukryj nadawcę i zawartość powiadomień push"
}, },
"time": { "time": {
"day": "{0} dzień", "day": "{0} dzień",
@ -606,7 +619,8 @@
"show_new": "Pokaż nowe", "show_new": "Pokaż nowe",
"up_to_date": "Na bieżąco", "up_to_date": "Na bieżąco",
"no_more_statuses": "Brak kolejnych statusów", "no_more_statuses": "Brak kolejnych statusów",
"no_statuses": "Brak statusów" "no_statuses": "Brak statusów",
"reload": "Odśwież"
}, },
"status": { "status": {
"favorites": "Ulubione", "favorites": "Ulubione",
@ -621,7 +635,11 @@
"mute_conversation": "Wycisz konwersację", "mute_conversation": "Wycisz konwersację",
"unmute_conversation": "Odcisz konwersację", "unmute_conversation": "Odcisz konwersację",
"status_unavailable": "Status niedostępny", "status_unavailable": "Status niedostępny",
"copy_link": "Kopiuj link do statusu" "copy_link": "Kopiuj link do statusu",
"unbookmark": "Usuń z zakładek",
"bookmark": "Dodaj do zakładek",
"hide_content": "Ukryj zawartość",
"show_content": "Pokaż zawartość"
}, },
"user_card": { "user_card": {
"approve": "Przyjmij", "approve": "Przyjmij",
@ -676,7 +694,8 @@
"quarantine": "Zakaż federowania postów od tego użytkownika", "quarantine": "Zakaż federowania postów od tego użytkownika",
"delete_user": "Usuń użytkownika", "delete_user": "Usuń użytkownika",
"delete_user_confirmation": "Czy jesteś absolutnie pewny(-a)? Ta operacja nie może być cofnięta." "delete_user_confirmation": "Czy jesteś absolutnie pewny(-a)? Ta operacja nie może być cofnięta."
} },
"message": "Napisz"
}, },
"user_profile": { "user_profile": {
"timeline_title": "Oś czasu użytkownika", "timeline_title": "Oś czasu użytkownika",
@ -739,5 +758,25 @@
"password_reset_disabled": "Resetowanie hasła jest wyłączone. Proszę skontaktuj się z administratorem tej instancji.", "password_reset_disabled": "Resetowanie hasła jest wyłączone. Proszę skontaktuj się z administratorem tej instancji.",
"password_reset_required": "Musisz zresetować hasło, by się zalogować.", "password_reset_required": "Musisz zresetować hasło, by się zalogować.",
"password_reset_required_but_mailer_is_disabled": "Musisz zresetować hasło, ale resetowanie hasła jest wyłączone. Proszę skontaktuj się z administratorem tej instancji." "password_reset_required_but_mailer_is_disabled": "Musisz zresetować hasło, ale resetowanie hasła jest wyłączone. Proszę skontaktuj się z administratorem tej instancji."
},
"file_type": {
"file": "Plik",
"image": "Zdjęcie",
"video": "Wideo",
"audio": "Audio"
},
"chats": {
"more": "Więcej",
"delete": "Usuń",
"you": "Ty:",
"delete_confirm": "Czy na pewno chcesz usunąć tą wiadomość?",
"message_user": "Napisz do {nickname}",
"error_sending_message": "Coś poszło nie tak podczas wysyłania wiadomości.",
"error_loading_chat": "Coś poszło nie tak podczas ładowania czatu.",
"empty_message_error": "Nie można wysłać pustej wiadomości",
"new": "Nowy czat"
},
"display_date": {
"today": "Dzisiaj"
} }
} }

View file

@ -109,7 +109,6 @@
"app_name": "Nome do aplicativo", "app_name": "Nome do aplicativo",
"attachmentRadius": "Anexos", "attachmentRadius": "Anexos",
"attachments": "Anexos", "attachments": "Anexos",
"autoload": "Habilitar carregamento automático quando a rolagem chegar ao fim.",
"avatar": "Avatar", "avatar": "Avatar",
"avatarAltRadius": "Avatares (Notificações)", "avatarAltRadius": "Avatares (Notificações)",
"avatarRadius": "Avatares", "avatarRadius": "Avatares",
@ -203,7 +202,6 @@
"profile_tab": "Perfil", "profile_tab": "Perfil",
"radii_help": "Arredondar arestas da interface (em pixel)", "radii_help": "Arredondar arestas da interface (em pixel)",
"replies_in_timeline": "Respostas na linha do tempo", "replies_in_timeline": "Respostas na linha do tempo",
"reply_link_preview": "Habilitar a pré-visualização de de respostas ao passar o mouse.",
"reply_visibility_all": "Mostrar todas as respostas", "reply_visibility_all": "Mostrar todas as respostas",
"reply_visibility_following": "Só mostrar respostas direcionadas a mim ou a usuários que sigo", "reply_visibility_following": "Só mostrar respostas direcionadas a mim ou a usuários que sigo",
"reply_visibility_self": "Só mostrar respostas direcionadas a mim", "reply_visibility_self": "Só mostrar respostas direcionadas a mim",

View file

@ -38,7 +38,6 @@
}, },
"settings": { "settings": {
"attachments": "Atașamente", "attachments": "Atașamente",
"autoload": "Permite încărcarea automată când scrolat la capăt",
"avatar": "Avatar", "avatar": "Avatar",
"bio": "Bio", "bio": "Bio",
"current_avatar": "Avatarul curent", "current_avatar": "Avatarul curent",
@ -52,7 +51,6 @@
"nsfw_clickthrough": "Permite ascunderea al atașamentelor NSFW", "nsfw_clickthrough": "Permite ascunderea al atașamentelor NSFW",
"profile_background": "Fundalul de profil", "profile_background": "Fundalul de profil",
"profile_banner": "Banner de profil", "profile_banner": "Banner de profil",
"reply_link_preview": "Permite previzualizarea linkului de răspuns la planarea de mouse",
"set_new_avatar": "Setează avatar nou", "set_new_avatar": "Setează avatar nou",
"set_new_profile_background": "Setează fundal nou", "set_new_profile_background": "Setează fundal nou",
"set_new_profile_banner": "Setează banner nou la profil", "set_new_profile_banner": "Setează banner nou la profil",

View file

@ -124,7 +124,6 @@
}, },
"attachmentRadius": "Прикреплённые файлы", "attachmentRadius": "Прикреплённые файлы",
"attachments": "Вложения", "attachments": "Вложения",
"autoload": "Включить автоматическую загрузку при прокрутке вниз",
"avatar": "Аватар", "avatar": "Аватар",
"avatarAltRadius": "Аватары в уведомлениях", "avatarAltRadius": "Аватары в уведомлениях",
"avatarRadius": "Аватары", "avatarRadius": "Аватары",
@ -211,7 +210,6 @@
"profile_tab": "Профиль", "profile_tab": "Профиль",
"radii_help": "Скругление углов элементов интерфейса (в пикселях)", "radii_help": "Скругление углов элементов интерфейса (в пикселях)",
"replies_in_timeline": "Ответы в ленте", "replies_in_timeline": "Ответы в ленте",
"reply_link_preview": "Включить предварительный просмотр ответа при наведении мыши",
"reply_visibility_all": "Показывать все ответы", "reply_visibility_all": "Показывать все ответы",
"reply_visibility_following": "Показывать только ответы мне или тех на кого я подписан", "reply_visibility_following": "Показывать только ответы мне или тех на кого я подписан",
"reply_visibility_self": "Показывать только ответы мне", "reply_visibility_self": "Показывать только ответы мне",
@ -350,12 +348,8 @@
"link": "ссылка" "link": "ссылка"
} }
}, },
"notification_setting_non_followers": "Не читающие вас",
"allow_following_move": "Разрешить автоматически читать новый аккаунт при перемещении на другой сервер", "allow_following_move": "Разрешить автоматически читать новый аккаунт при перемещении на другой сервер",
"hide_user_stats": "Не показывать статистику пользователей (например количество читателей)", "hide_user_stats": "Не показывать статистику пользователей (например количество читателей)"
"notification_setting_followers": "Читающие вас",
"notification_setting_follows": "Читаемые вами",
"notification_setting_non_follows": "Не читаемые вами"
}, },
"timeline": { "timeline": {
"collapse": "Свернуть", "collapse": "Свернуть",

View file

@ -83,7 +83,6 @@
"settings.app_name": "అనువర్తన పేరు", "settings.app_name": "అనువర్తన పేరు",
"settings.attachmentRadius": "జోడింపులు", "settings.attachmentRadius": "జోడింపులు",
"settings.attachments": "జోడింపులు", "settings.attachments": "జోడింపులు",
"settings.autoload": "క్రిందికి స్క్రోల్ చేయబడినప్పుడు స్వయంచాలక లోడింగ్ని ప్రారంభించు",
"settings.avatar": "అవతారం", "settings.avatar": "అవతారం",
"settings.avatarAltRadius": "అవతారాలు (ప్రకటనలు)", "settings.avatarAltRadius": "అవతారాలు (ప్రకటనలు)",
"settings.avatarRadius": "అవతారాలు", "settings.avatarRadius": "అవతారాలు",
@ -178,7 +177,6 @@
"settings.profile_tab": "Profile", "settings.profile_tab": "Profile",
"settings.radii_help": "Set up interface edge rounding (in pixels)", "settings.radii_help": "Set up interface edge rounding (in pixels)",
"settings.replies_in_timeline": "Replies in timeline", "settings.replies_in_timeline": "Replies in timeline",
"settings.reply_link_preview": "Enable reply-link preview on mouse hover",
"settings.reply_visibility_all": "Show all replies", "settings.reply_visibility_all": "Show all replies",
"settings.reply_visibility_following": "Only show replies directed at me or users I'm following", "settings.reply_visibility_following": "Only show replies directed at me or users I'm following",
"settings.reply_visibility_self": "Only show replies directed at me", "settings.reply_visibility_self": "Only show replies directed at me",

View file

@ -199,7 +199,6 @@
}, },
"attachmentRadius": "附件", "attachmentRadius": "附件",
"attachments": "附件", "attachments": "附件",
"autoload": "启用滚动到底部时的自动加载",
"avatar": "头像", "avatar": "头像",
"avatarAltRadius": "头像(通知)", "avatarAltRadius": "头像(通知)",
"avatarRadius": "头像", "avatarRadius": "头像",
@ -299,7 +298,6 @@
"profile_tab": "个人资料", "profile_tab": "个人资料",
"radii_help": "设置界面边缘的圆角 (单位:像素)", "radii_help": "设置界面边缘的圆角 (单位:像素)",
"replies_in_timeline": "时间线中的回复", "replies_in_timeline": "时间线中的回复",
"reply_link_preview": "启用鼠标悬停时预览回复链接",
"reply_visibility_all": "显示所有回复", "reply_visibility_all": "显示所有回复",
"reply_visibility_following": "只显示发送给我的回复/发送给我关注的用户的回复", "reply_visibility_following": "只显示发送给我的回复/发送给我关注的用户的回复",
"reply_visibility_self": "只显示发送给我的回复", "reply_visibility_self": "只显示发送给我的回复",
@ -336,11 +334,6 @@
"true": "是" "true": "是"
}, },
"notifications": "通知", "notifications": "通知",
"notification_setting": "通知来源:",
"notification_setting_follows": "你所关注的用户",
"notification_setting_non_follows": "你没有关注的用户",
"notification_setting_followers": "关注你的用户",
"notification_setting_non_followers": "没有关注你的用户",
"notification_mutes": "要停止收到某个指定的用户的通知,请使用隐藏功能。", "notification_mutes": "要停止收到某个指定的用户的通知,请使用隐藏功能。",
"notification_blocks": "拉黑一个用户会停掉所有他的通知,等同于取消关注。", "notification_blocks": "拉黑一个用户会停掉所有他的通知,等同于取消关注。",
"enable_web_push_notifications": "启用 web 推送通知", "enable_web_push_notifications": "启用 web 推送通知",

View file

@ -1,5 +1,6 @@
import backendInteractorService from '../services/backend_interactor_service/backend_interactor_service.js' import backendInteractorService from '../services/backend_interactor_service/backend_interactor_service.js'
import { WSConnectionStatus } from '../services/api/api.service.js' import { WSConnectionStatus } from '../services/api/api.service.js'
import { maybeShowChatNotification } from '../services/chat_utils/chat_utils.js'
import { Socket } from 'phoenix' import { Socket } from 'phoenix'
const api = { const api = {
@ -77,6 +78,7 @@ const api = {
messages: [message.chatUpdate.lastMessage] messages: [message.chatUpdate.lastMessage]
}) })
dispatch('updateChat', { chat: message.chatUpdate }) dispatch('updateChat', { chat: message.chatUpdate })
maybeShowChatNotification(store, message.chatUpdate)
} }
} }
) )

View file

@ -2,6 +2,7 @@ import Vue from 'vue'
import { find, omitBy, orderBy, sumBy } from 'lodash' import { find, omitBy, orderBy, sumBy } from 'lodash'
import chatService from '../services/chat_service/chat_service.js' import chatService from '../services/chat_service/chat_service.js'
import { parseChat, parseChatMessage } from '../services/entity_normalizer/entity_normalizer.service.js' import { parseChat, parseChatMessage } from '../services/entity_normalizer/entity_normalizer.service.js'
import { maybeShowChatNotification } from '../services/chat_utils/chat_utils.js'
const emptyChatList = () => ({ const emptyChatList = () => ({
data: [], data: [],
@ -59,8 +60,12 @@ const chats = {
return chats return chats
}) })
}, },
addNewChats ({ rootState, commit, dispatch, rootGetters }, { chats }) { addNewChats (store, { chats }) {
commit('addNewChats', { dispatch, chats, rootGetters }) const { commit, dispatch, rootGetters } = store
const newChatMessageSideEffects = (chat) => {
maybeShowChatNotification(store, chat)
}
commit('addNewChats', { dispatch, chats, rootGetters, newChatMessageSideEffects })
}, },
updateChat ({ commit }, { chat }) { updateChat ({ commit }, { chat }) {
commit('updateChat', { chat }) commit('updateChat', { chat })
@ -130,13 +135,17 @@ const chats = {
setCurrentChatId (state, { chatId }) { setCurrentChatId (state, { chatId }) {
state.currentChatId = chatId state.currentChatId = chatId
}, },
addNewChats (state, { _dispatch, chats, _rootGetters }) { addNewChats (state, { chats, newChatMessageSideEffects }) {
chats.forEach((updatedChat) => { chats.forEach((updatedChat) => {
const chat = getChatById(state, updatedChat.id) const chat = getChatById(state, updatedChat.id)
if (chat) { if (chat) {
const isNewMessage = (chat.lastMessage && chat.lastMessage.id) !== (updatedChat.lastMessage && updatedChat.lastMessage.id)
chat.lastMessage = updatedChat.lastMessage chat.lastMessage = updatedChat.lastMessage
chat.unread = updatedChat.unread chat.unread = updatedChat.unread
if (isNewMessage && chat.unread) {
newChatMessageSideEffects(updatedChat)
}
} else { } else {
state.chatList.data.push(updatedChat) state.chatList.data.push(updatedChat)
Vue.set(state.chatList.idStore, updatedChat.id, updatedChat) Vue.set(state.chatList.idStore, updatedChat.id, updatedChat)

View file

@ -31,9 +31,7 @@ export const defaultState = {
preloadImage: true, preloadImage: true,
loopVideo: true, loopVideo: true,
loopVideoSilentOnly: true, loopVideoSilentOnly: true,
autoLoad: true,
streaming: false, streaming: false,
hoverPreview: true,
emojiReactionsOnTimeline: true, emojiReactionsOnTimeline: true,
autohideFloatingPostButton: false, autohideFloatingPostButton: false,
pauseOnUnfocused: true, pauseOnUnfocused: true,

View file

@ -13,9 +13,8 @@ import {
omitBy omitBy
} from 'lodash' } from 'lodash'
import { set } from 'vue' import { set } from 'vue'
import { isStatusNotification, prepareNotificationObject } from '../services/notification_utils/notification_utils.js' import { isStatusNotification, maybeShowNotification } from '../services/notification_utils/notification_utils.js'
import apiService from '../services/api/api.service.js' import apiService from '../services/api/api.service.js'
import { muteWordHits } from '../services/status_parser/status_parser.js'
const emptyTl = (userId = 0) => ({ const emptyTl = (userId = 0) => ({
statuses: [], statuses: [],
@ -77,17 +76,6 @@ export const prepareStatus = (status) => {
return status return status
} }
const visibleNotificationTypes = (rootState) => {
return [
rootState.config.notificationVisibility.likes && 'like',
rootState.config.notificationVisibility.mentions && 'mention',
rootState.config.notificationVisibility.repeats && 'repeat',
rootState.config.notificationVisibility.follows && 'follow',
rootState.config.notificationVisibility.moves && 'move',
rootState.config.notificationVisibility.emojiReactions && 'pleroma:emoji_reactions'
].filter(_ => _)
}
const mergeOrAdd = (arr, obj, item) => { const mergeOrAdd = (arr, obj, item) => {
const oldItem = obj[item.id] const oldItem = obj[item.id]
@ -325,7 +313,7 @@ const addNewStatuses = (state, { statuses, showImmediately = false, timeline, us
} }
} }
const addNewNotifications = (state, { dispatch, notifications, older, visibleNotificationTypes, rootGetters }) => { const addNewNotifications = (state, { dispatch, notifications, older, visibleNotificationTypes, rootGetters, newNotificationSideEffects }) => {
each(notifications, (notification) => { each(notifications, (notification) => {
if (isStatusNotification(notification.type)) { if (isStatusNotification(notification.type)) {
notification.action = addStatusToGlobalStorage(state, notification.action).item notification.action = addStatusToGlobalStorage(state, notification.action).item
@ -348,27 +336,7 @@ const addNewNotifications = (state, { dispatch, notifications, older, visibleNot
state.notifications.data.push(notification) state.notifications.data.push(notification)
state.notifications.idStore[notification.id] = notification state.notifications.idStore[notification.id] = notification
if ('Notification' in window && window.Notification.permission === 'granted') { newNotificationSideEffects(notification)
const notifObj = prepareNotificationObject(notification, rootGetters.i18n)
const reasonsToMuteNotif = (
notification.seen ||
state.notifications.desktopNotificationSilence ||
!visibleNotificationTypes.includes(notification.type) ||
(
notification.type === 'mention' && status && (
status.muted ||
muteWordHits(status, rootGetters.mergedConfig.muteWords).length === 0
)
)
)
if (!reasonsToMuteNotif) {
let desktopNotification = new window.Notification(notifObj.title, notifObj)
// Chrome is known for not closing notifications automatically
// according to MDN, anyway.
setTimeout(desktopNotification.close.bind(desktopNotification), 5000)
}
}
} else if (notification.seen) { } else if (notification.seen) {
state.notifications.idStore[notification.id].seen = true state.notifications.idStore[notification.id].seen = true
} }
@ -609,8 +577,13 @@ const statuses = {
addNewStatuses ({ rootState, commit }, { statuses, showImmediately = false, timeline = false, noIdUpdate = false, userId, pagination }) { addNewStatuses ({ rootState, commit }, { statuses, showImmediately = false, timeline = false, noIdUpdate = false, userId, pagination }) {
commit('addNewStatuses', { statuses, showImmediately, timeline, noIdUpdate, user: rootState.users.currentUser, userId, pagination }) commit('addNewStatuses', { statuses, showImmediately, timeline, noIdUpdate, user: rootState.users.currentUser, userId, pagination })
}, },
addNewNotifications ({ rootState, commit, dispatch, rootGetters }, { notifications, older }) { addNewNotifications (store, { notifications, older }) {
commit('addNewNotifications', { visibleNotificationTypes: visibleNotificationTypes(rootState), dispatch, notifications, older, rootGetters }) const { commit, dispatch, rootGetters } = store
const newNotificationSideEffects = (notification) => {
maybeShowNotification(store, notification)
}
commit('addNewNotifications', { dispatch, notifications, older, rootGetters, newNotificationSideEffects })
}, },
setError ({ rootState, commit }, { value }) { setError ({ rootState, commit }, { value }) {
commit('setError', { value }) commit('setError', { value })

View file

@ -632,7 +632,8 @@ const postStatus = ({
mediaIds = [], mediaIds = [],
inReplyToStatusId, inReplyToStatusId,
contentType, contentType,
preview preview,
idempotencyKey
}) => { }) => {
const form = new FormData() const form = new FormData()
const pollOptions = poll.options || [] const pollOptions = poll.options || []
@ -666,10 +667,15 @@ const postStatus = ({
form.append('preview', 'true') form.append('preview', 'true')
} }
let postHeaders = authHeaders(credentials)
if (idempotencyKey) {
postHeaders['idempotency-key'] = idempotencyKey
}
return fetch(MASTODON_POST_STATUS_URL, { return fetch(MASTODON_POST_STATUS_URL, {
body: form, body: form,
method: 'POST', method: 'POST',
headers: authHeaders(credentials) headers: postHeaders
}) })
.then((response) => { .then((response) => {
return response.json() return response.json()

View file

@ -0,0 +1,19 @@
import { showDesktopNotification } from '../desktop_notification_utils/desktop_notification_utils.js'
export const maybeShowChatNotification = (store, chat) => {
if (!chat.lastMessage) return
if (store.rootState.chats.currentChatId === chat.id && !document.hidden) return
const opts = {
tag: chat.lastMessage.id,
title: chat.account.name,
icon: chat.account.profile_image_url,
body: chat.lastMessage.content
}
if (chat.lastMessage.attachment && chat.lastMessage.attachment.type === 'image') {
opts.image = chat.lastMessage.attachment.preview_url
}
showDesktopNotification(store.rootState, opts)
}

View file

@ -0,0 +1,9 @@
export const showDesktopNotification = (rootState, desktopNotificationOpts) => {
if (!('Notification' in window && window.Notification.permission === 'granted')) return
if (rootState.statuses.notifications.desktopNotificationSilence) { return }
const desktopNotification = new window.Notification(desktopNotificationOpts.title, desktopNotificationOpts)
// Chrome is known for not closing notifications automatically
// according to MDN, anyway.
setTimeout(desktopNotification.close.bind(desktopNotification), 5000)
}

View file

@ -79,6 +79,7 @@ export const parseUser = (data) => {
const relationship = data.pleroma.relationship const relationship = data.pleroma.relationship
output.background_image = data.pleroma.background_image output.background_image = data.pleroma.background_image
output.favicon = data.pleroma.favicon
output.token = data.pleroma.chat_token output.token = data.pleroma.chat_token
if (relationship) { if (relationship) {

View file

@ -1,16 +1,22 @@
import { filter, sortBy, includes } from 'lodash' import { filter, sortBy, includes } from 'lodash'
import { muteWordHits } from '../status_parser/status_parser.js'
import { showDesktopNotification } from '../desktop_notification_utils/desktop_notification_utils.js'
export const notificationsFromStore = store => store.state.statuses.notifications.data export const notificationsFromStore = store => store.state.statuses.notifications.data
export const visibleTypes = store => ([ export const visibleTypes = store => {
store.state.config.notificationVisibility.likes && 'like', const rootState = store.rootState || store.state
store.state.config.notificationVisibility.mentions && 'mention',
store.state.config.notificationVisibility.repeats && 'repeat', return ([
store.state.config.notificationVisibility.follows && 'follow', rootState.config.notificationVisibility.likes && 'like',
store.state.config.notificationVisibility.followRequest && 'follow_request', rootState.config.notificationVisibility.mentions && 'mention',
store.state.config.notificationVisibility.moves && 'move', rootState.config.notificationVisibility.repeats && 'repeat',
store.state.config.notificationVisibility.emojiReactions && 'pleroma:emoji_reaction' rootState.config.notificationVisibility.follows && 'follow',
].filter(_ => _)) rootState.config.notificationVisibility.followRequest && 'follow_request',
rootState.config.notificationVisibility.moves && 'move',
rootState.config.notificationVisibility.emojiReactions && 'pleroma:emoji_reaction'
].filter(_ => _))
}
const statusNotifications = ['like', 'mention', 'repeat', 'pleroma:emoji_reaction'] const statusNotifications = ['like', 'mention', 'repeat', 'pleroma:emoji_reaction']
@ -32,6 +38,22 @@ const sortById = (a, b) => {
} }
} }
const isMutedNotification = (store, notification) => {
if (!notification.status) return
return notification.status.muted || muteWordHits(notification.status, store.rootGetters.mergedConfig.muteWords).length > 0
}
export const maybeShowNotification = (store, notification) => {
const rootState = store.rootState || store.state
if (notification.seen) return
if (!visibleTypes(store).includes(notification.type)) return
if (notification.type === 'mention' && isMutedNotification(store, notification)) return
const notificationObject = prepareNotificationObject(notification, store.rootGetters.i18n)
showDesktopNotification(rootState, notificationObject)
}
export const filteredNotificationsFromStore = (store, types) => { export const filteredNotificationsFromStore = (store, types) => {
// map is just to clone the array since sort mutates it and it causes some issues // map is just to clone the array since sort mutates it and it causes some issues
let sortedNotifications = notificationsFromStore(store).map(_ => _).sort(sortById) let sortedNotifications = notificationsFromStore(store).map(_ => _).sort(sortById)

View file

@ -35,7 +35,7 @@ const fetchAndUpdate = ({ store, credentials, older = false }) => {
const notifications = timelineData.data const notifications = timelineData.data
const readNotifsIds = notifications.filter(n => n.seen).map(n => n.id) const readNotifsIds = notifications.filter(n => n.seen).map(n => n.id)
const numUnseenNotifs = notifications.length - readNotifsIds.length const numUnseenNotifs = notifications.length - readNotifsIds.length
if (numUnseenNotifs > 0) { if (numUnseenNotifs > 0 && readNotifsIds.length > 0) {
args['since'] = Math.max(...readNotifsIds) args['since'] = Math.max(...readNotifsIds)
fetchNotifications({ store, args, older }) fetchNotifications({ store, args, older })
} }

View file

@ -11,7 +11,8 @@ const postStatus = ({
media = [], media = [],
inReplyToStatusId = undefined, inReplyToStatusId = undefined,
contentType = 'text/plain', contentType = 'text/plain',
preview = false preview = false,
idempotencyKey = ''
}) => { }) => {
const mediaIds = map(media, 'id') const mediaIds = map(media, 'id')
@ -25,7 +26,8 @@ const postStatus = ({
inReplyToStatusId, inReplyToStatusId,
contentType, contentType,
poll, poll,
preview preview,
idempotencyKey
}) })
.then((data) => { .then((data) => {
if (!data.error && !preview) { if (!data.error && !preview) {

View file

@ -675,23 +675,22 @@ export const SLOT_INHERITANCE = {
depends: ['bg'] depends: ['bg']
}, },
chatMessage: {
depends: ['chatBg']
},
chatMessageIncomingBg: { chatMessageIncomingBg: {
depends: ['chatMessage'], depends: ['chatBg']
layer: 'chatMessage'
}, },
chatMessageIncomingText: { chatMessageIncomingText: {
depends: ['text'], depends: ['text'],
layer: 'text' layer: 'chatMessage',
variant: 'chatMessageIncomingBg',
textColor: true
}, },
chatMessageIncomingLink: { chatMessageIncomingLink: {
depends: ['link'], depends: ['link'],
layer: 'link' layer: 'chatMessage',
variant: 'chatMessageIncomingBg',
textColor: 'preserve'
}, },
chatMessageIncomingBorder: { chatMessageIncomingBorder: {
@ -701,22 +700,27 @@ export const SLOT_INHERITANCE = {
}, },
chatMessageOutgoingBg: { chatMessageOutgoingBg: {
depends: ['chatMessage'], depends: ['chatMessageIncomingBg'],
color: (mod, chatMessage) => brightness(5 * mod, chatMessage).rgb color: (mod, chatMessage) => brightness(5 * mod, chatMessage).rgb
}, },
chatMessageOutgoingText: { chatMessageOutgoingText: {
depends: ['text'], depends: ['text'],
layer: 'text' layer: 'chatMessage',
variant: 'chatMessageOutgoingBg',
textColor: true
}, },
chatMessageOutgoingLink: { chatMessageOutgoingLink: {
depends: ['link'], depends: ['link'],
layer: 'link' layer: 'chatMessage',
variant: 'chatMessageOutgoingBg',
textColor: 'preserve'
}, },
chatMessageOutgoingBorder: { chatMessageOutgoingBorder: {
depends: ['chatMessage'], depends: ['chatMessageOutgoingBg'],
opacity: 'chatMessage' opacity: 'border',
color: (mod, border) => brightness(2 * mod, border).rgb
} }
} }

View file

@ -128,14 +128,17 @@ export const topoSort = (
while (unprocessed.length > 0) { while (unprocessed.length > 0) {
step(unprocessed.pop()) step(unprocessed.pop())
} }
return output.sort((a, b) => {
// The index thing is to make sorting stable on browsers
// where Array.sort() isn't stable
return output.map((data, index) => ({ data, index })).sort(({ data: a, index: ai }, { data: b, index: bi }) => {
const depsA = getDeps(a, inheritance).length const depsA = getDeps(a, inheritance).length
const depsB = getDeps(b, inheritance).length const depsB = getDeps(b, inheritance).length
if (depsA === depsB || (depsB !== 0 && depsA !== 0)) return 0 if (depsA === depsB || (depsB !== 0 && depsA !== 0)) return ai - bi
if (depsA === 0 && depsB !== 0) return -1 if (depsA === 0 && depsB !== 0) return -1
if (depsB === 0 && depsA !== 0) return 1 if (depsB === 0 && depsA !== 0) return 1
}) }).map(({ data }) => data)
} }
const expandSlotValue = (value) => { const expandSlotValue = (value) => {

View file

@ -43,7 +43,9 @@ const fetchAndUpdate = ({
args['userId'] = userId args['userId'] = userId
args['tag'] = tag args['tag'] = tag
args['withMuted'] = !hideMutedPosts args['withMuted'] = !hideMutedPosts
if (loggedIn) args['replyVisibility'] = replyVisibility if (loggedIn && ['friends', 'public', 'publicAndExternal'].includes(timeline)) {
args['replyVisibility'] = replyVisibility
}
const numStatusesBeforeFetch = timelineData.statuses.length const numStatusesBeforeFetch = timelineData.statuses.length