Compare commits

...

25 commits

Author SHA1 Message Date
d672d80447 Merge branch 'develop' into itepechi 2023-08-13 04:07:03 +09:00
b339df3b99 Update ja_pedantic translations 2023-08-13 04:02:39 +09:00
FloatingGhost
174f98b1cb don't die on my arm box please 2023-08-05 14:17:42 +01:00
FloatingGhost
ab146b67ec version 2023-08-05 13:29:44 +01:00
FloatingGhost
3b4208ea41 debounce emoji searching 2023-08-04 16:48:13 +01:00
floatingghost
856324fa26 Merge pull request 'Make favicon next to post username use Still-Image functionality' (#327) from Mergan/pleroma-fe:still-image-instance-favicon into develop
Reviewed-on: https://akkoma.dev/AkkomaGang/akkoma-fe/pulls/327
2023-08-04 15:09:56 +00:00
floatingghost
5a9322d2c7 Merge pull request 'StillImage: Improved animated image detection' (#335) from yukijoou/akkoma-fe:still-image-better-gif-detection into develop
Reviewed-on: https://akkoma.dev/AkkomaGang/akkoma-fe/pulls/335
2023-08-04 15:09:32 +00:00
Weblate
b52bfbcba0 Merge branch 'origin/develop' into Weblate. 2023-08-04 14:56:22 +00:00
floatingghost
2b05a738c9 Merge pull request 'Add replying info for redraft' (#332) from xarvos/pleroma-fe:fix-reply-redraft into develop
Reviewed-on: https://akkoma.dev/AkkomaGang/akkoma-fe/pulls/332
2023-08-04 14:56:20 +00:00
Weblate
fa5d31b793 Merge branch 'origin/develop' into Weblate. 2023-08-04 14:54:38 +00:00
tusooa
29cfdcbbcd Add load more to blocks/mutes 2023-08-04 15:54:04 +01:00
Weblate
5174b95918 Translated using Weblate (Greek)
Currently translated at 15.4% (162 of 1046 strings)

Added translation using Weblate (Greek)

Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: getimiskon <getimiskon@disroot.org>
Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/el/
Translation: Pleroma fe/pleroma-fe
2023-08-04 13:34:26 +00:00
Weblate
56528206b8 Translated using Weblate (Portuguese)
Currently translated at 62.7% (656 of 1046 strings)

Co-authored-by: Jonathan Soares <jontix@murena.io>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/pt/
Translation: Pleroma fe/pleroma-fe
2023-08-04 13:34:26 +00:00
Weblate
590380c084 Translated using Weblate (Thai)
Currently translated at 1.7% (18 of 1046 strings)

Added translation using Weblate (Thai)

Co-authored-by: Chanakan Mungtin <chanakan5591@chanakancloud.net>
Co-authored-by: Pongsatorn Paewsoongnern <akkoma@miraiverse.me>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/th/
Translation: Pleroma fe/pleroma-fe
2023-08-04 13:34:26 +00:00
Weblate
dfcbb3c1ec Translated using Weblate (Ukrainian)
Currently translated at 100.0% (1046 of 1046 strings)

Co-authored-by: Denys Nykula <vegan@libre.net.ua>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/uk/
Translation: Pleroma fe/pleroma-fe
2023-08-04 13:34:26 +00:00
Weblate
9b01c31283 Translated using Weblate (Chinese (Simplified))
Currently translated at 100.0% (1046 of 1046 strings)

Co-authored-by: Poesty Li <poesty7450@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/zh_Hans/
Translation: Pleroma fe/pleroma-fe
2023-08-04 13:34:26 +00:00
Weblate
6be003b2f8 Translated using Weblate (French)
Currently translated at 98.3% (1029 of 1046 strings)

Co-authored-by: Thomate <thomas@burdick.fr>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/fr/
Translation: Pleroma fe/pleroma-fe
2023-08-04 13:34:26 +00:00
Weblate
cc302fb0e2 Translated using Weblate (Japanese (ja_EASY))
Currently translated at 72.3% (757 of 1046 strings)

Translated using Weblate (Japanese (ja_EASY))

Currently translated at 71.9% (753 of 1046 strings)

Co-authored-by: Hikaru Shinagawa <hikali.47041@gmail.com>
Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: kazari <6c577a54-aac9-482a-955e-745c858445e3@simplelogin.com>
Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/ja_EASY/
Translation: Pleroma fe/pleroma-fe
2023-08-04 13:34:26 +00:00
Weblate
c4e768f977 Translated using Weblate (Indonesian)
Currently translated at 67.8% (710 of 1046 strings)

Co-authored-by: Weblate <noreply@weblate.org>
Co-authored-by: Yonle <yonle@lecturify.net>
Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/id/
Translation: Pleroma fe/pleroma-fe
2023-08-04 13:34:26 +00:00
Weblate
d8a7217335 Translated using Weblate (Turkish)
Currently translated at 9.7% (102 of 1046 strings)

Co-authored-by: Hasan Yıldız <hasanyildiz0@yaani.com>
Co-authored-by: Weblate <noreply@weblate.org>
Translate-URL: http://translate.akkoma.dev/projects/akkoma/pleroma-fe/tr/
Translation: Pleroma fe/pleroma-fe
2023-08-04 13:34:26 +00:00
floatingghost
35d10ab9ff Merge pull request 'components: Honour 'prefers reduced motion' setting in many components' (#333) from yukijoou/akkoma-fe:fix-reduced-motion into develop
Reviewed-on: https://akkoma.dev/AkkomaGang/akkoma-fe/pulls/333
2023-08-04 13:34:23 +00:00
Yuki Joou
43d0a24547 StillImage: Improved animated image detection
This patch makes StillImage's animation detection return early in cases
where we can't detect the mimetype of the image. It also sets the image
as animated in those cases if the user agent wants reduced motion.

As reduced motion is an accessibility setting, I think it's best to use
a "better safe than sorry" approach, it's better to accidentally mark
something as animated that isn't than to have unblocked animations.
2023-08-03 16:34:28 +02:00
Yuki Joou
51ebe643d5 components: Honour 'prefers reduced motion' setting in many components
This helps accessibility for motion-sensitive people such as myself, and
can improve battery life in "battery saving" mode on most devices
2023-08-03 14:45:02 +02:00
Ngô Ngọc Đức Huy
7c14e1a5bd
Add replying info for redraft 2023-08-02 08:40:19 +07:00
David
0da0e2c814 Make favicon next to post username use Still-Image functionality 2023-07-24 01:08:11 -07:00
28 changed files with 753 additions and 157 deletions

View file

@ -1,3 +1,4 @@
platform: linux/amd64
pipeline: pipeline:
lint: lint:
when: when:

View file

@ -1,6 +1,6 @@
{ {
"name": "pleroma_fe", "name": "pleroma_fe",
"version": "3.5.0", "version": "3.10.0",
"description": "A frontend for Akkoma instances", "description": "A frontend for Akkoma instances",
"author": "Roger Braun <roger@rogerbraun.net>", "author": "Roger Braun <roger@rogerbraun.net>",
"private": true, "private": true,

View file

@ -7,7 +7,7 @@ import {
faStickyNote, faStickyNote,
faSmileBeam faSmileBeam
} from '@fortawesome/free-solid-svg-icons' } from '@fortawesome/free-solid-svg-icons'
import { trim, escapeRegExp, startCase } from 'lodash' import { trim, escapeRegExp, startCase, debounce } from 'lodash'
library.add( library.add(
faBoxOpen, faBoxOpen,
@ -42,6 +42,9 @@ const EmojiPicker = {
EmojiGrid EmojiGrid
}, },
methods: { methods: {
debouncedSearch: debounce(function (e) {
this.keyword = e.target.value
}, 500),
onStickerUploaded (e) { onStickerUploaded (e) {
this.$emit('sticker-uploaded', e) this.$emit('sticker-uploaded', e)
}, },
@ -85,17 +88,6 @@ const EmojiPicker = {
activeGroupView () { activeGroupView () {
return this.showingStickers ? '' : this.activeGroup return this.showingStickers ? '' : this.activeGroup
}, },
stickersAvailable () {
if (this.$store.state.instance.stickers) {
return this.$store.state.instance.stickers.length > 0
}
return 0
},
filteredEmoji () {
return this.filterByKeyword(
this.$store.state.instance.customEmoji || []
)
},
emojis () { emojis () {
const recentEmojis = this.$store.getters.recentEmojis const recentEmojis = this.$store.getters.recentEmojis
const standardEmojis = this.$store.state.instance.emoji || [] const standardEmojis = this.$store.state.instance.emoji || []

View file

@ -44,11 +44,10 @@
> >
<div class="emoji-search"> <div class="emoji-search">
<input <input
v-model="keyword"
type="text" type="text"
class="form-control" class="form-control"
:placeholder="$t('emoji.search_emoji')" :placeholder="$t('emoji.search_emoji')"
@input="$event.target.composing = false" @input="debouncedSearch"
> >
</div> </div>
<EmojiGrid <EmojiGrid

View file

@ -136,18 +136,26 @@ const ExtraButtons = {
}, },
doRedraftStatus () { doRedraftStatus () {
this.$store.dispatch('fetchStatusSource', { id: this.status.id }) this.$store.dispatch('fetchStatusSource', { id: this.status.id })
.then(data => this.$store.dispatch('openPostStatusModal', { .then(data => {
isRedraft: true, let repliedUserId = this.status.in_reply_to_user_id;
statusId: this.status.id, let repliedUser = this.status.attentions.filter(user =>
subject: data.spoiler_text, user.id === repliedUserId);
statusText: data.text, this.$store.dispatch('openPostStatusModal', {
statusIsSensitive: this.status.nsfw, isRedraft: true,
statusPoll: this.status.poll, attentions: this.status.attentions,
statusFiles: [...this.status.attachments], statusId: this.status.id,
statusScope: this.status.visibility, subject: data.spoiler_text,
statusLanguage: this.status.language, statusText: data.text,
statusContentType: data.content_type statusIsSensitive: this.status.nsfw,
})) statusPoll: this.status.poll,
statusFiles: [...this.status.attachments],
statusScope: this.status.visibility,
statusLanguage: this.status.language,
statusContentType: data.content_type,
replyTo: this.status.in_reply_to_status_id,
repliedUser: repliedUser
})
})
this.doDeleteStatus() this.doDeleteStatus()
}, },
showRedraftStatusConfirmDialog () { showRedraftStatusConfirmDialog () {

View file

@ -55,6 +55,9 @@
.interactive { .interactive {
.svg-inline--fa { .svg-inline--fa {
@media (prefers-reduced-motion: reduce) {
animation: unset;
}
animation-duration: 0.6s; animation-duration: 0.6s;
} }

View file

@ -1,9 +1,13 @@
<template> <template>
<div class="list"> <div
class="list"
role="list"
>
<div <div
v-for="item in items" v-for="item in items"
:key="getKey(item)" :key="getKey(item)"
class="list-item" class="list-item"
role="listitem"
> >
<slot <slot
name="item" name="item"

View file

@ -157,6 +157,9 @@
box-shadow: var(--panelShadow); box-shadow: var(--panelShadow);
transition-property: transform; transition-property: transform;
transition-duration: 0.25s; transition-duration: 0.25s;
@media (prefers-reduced-motion: reduce) {
transition: unset;
}
transform: translateX(0); transform: translateX(0);
z-index: 1001; z-index: 1001;
-webkit-overflow-scrolling: touch; -webkit-overflow-scrolling: touch;

View file

@ -74,6 +74,9 @@
.interactive { .interactive {
.svg-inline--fa { .svg-inline--fa {
@media (prefers-reduced-motion: reduce) {
animation: unset;
}
animation-duration: 0.6s; animation-duration: 0.6s;
} }

View file

@ -10,17 +10,20 @@ import SelectableList from 'src/components/selectable_list/selectable_list.vue'
import ProgressButton from 'src/components/progress_button/progress_button.vue' import ProgressButton from 'src/components/progress_button/progress_button.vue'
import withSubscription from 'src/components/../hocs/with_subscription/with_subscription' import withSubscription from 'src/components/../hocs/with_subscription/with_subscription'
import Checkbox from 'src/components/checkbox/checkbox.vue' import Checkbox from 'src/components/checkbox/checkbox.vue'
import withLoadMore from 'src/components/../hocs/with_load_more/with_load_more'
const BlockList = withSubscription({ const BlockList = withLoadMore({
fetch: (props, $store) => $store.dispatch('fetchBlocks'), fetch: (props, $store) => $store.dispatch('fetchBlocks'),
select: (props, $store) => get($store.state.users.currentUser, 'blockIds', []), select: (props, $store) => get($store.state.users.currentUser, 'blockIds', []),
childPropName: 'items' childPropName: 'items',
destroy: () => {}
})(SelectableList) })(SelectableList)
const MuteList = withSubscription({ const MuteList = withLoadMore({
fetch: (props, $store) => $store.dispatch('fetchMutes'), fetch: (props, $store) => $store.dispatch('fetchMutes'),
select: (props, $store) => get($store.state.users.currentUser, 'muteIds', []), select: (props, $store) => get($store.state.users.currentUser, 'muteIds', []),
childPropName: 'items' childPropName: 'items',
destroy: () => {}
})(SelectableList) })(SelectableList)
const DomainMuteList = withSubscription({ const DomainMuteList = withSubscription({

View file

@ -268,6 +268,10 @@
.side-drawer { .side-drawer {
overflow-x: hidden; overflow-x: hidden;
transition-timing-function: cubic-bezier(0, 1, 0.5, 1); transition-timing-function: cubic-bezier(0, 1, 0.5, 1);
@media (prefers-reduced-motion: reduce) {
transition-timing-function: unset;
transition: unset;
}
transition: 0.35s; transition: 0.35s;
transition-property: transform; transition-property: transform;
margin: 0 0 0 -100px; margin: 0 0 0 -100px;

View file

@ -20,6 +20,7 @@ import generateProfileLink from 'src/services/user_profile_link_generator/user_p
import { highlightClass, highlightStyle } from '../../services/user_highlighter/user_highlighter.js' import { highlightClass, highlightStyle } from '../../services/user_highlighter/user_highlighter.js'
import { muteWordHits } from '../../services/status_parser/status_parser.js' import { muteWordHits } from '../../services/status_parser/status_parser.js'
import { unescape, uniqBy } from 'lodash' import { unescape, uniqBy } from 'lodash'
import StillImage from '../still-image/still-image.vue'
import { library } from '@fortawesome/fontawesome-svg-core' import { library } from '@fortawesome/fontawesome-svg-core'
import { import {
@ -117,7 +118,8 @@ const Status = {
RichContent, RichContent,
MentionLink, MentionLink,
MentionsLine, MentionsLine,
QuoteButton QuoteButton,
StillImage
}, },
props: [ props: [
'statusoid', 'statusoid',

View file

@ -174,12 +174,12 @@
> >
@{{ status.user.screen_name_ui }} @{{ status.user.screen_name_ui }}
</router-link> </router-link>
<img <StillImage
v-if="!!(status.user && status.user.favicon)" v-if="!!(status.user && status.user.favicon)"
class="status-favicon" class="status-favicon"
:src="status.user.favicon" :src="status.user.favicon"
:title="faviconAlt(status)" :title="faviconAlt(status)"
> />
</span> </span>
</div> </div>

View file

@ -17,6 +17,9 @@
.emoji:hover { .emoji:hover {
transform: scale(1.4); transform: scale(1.4);
@media (prefers-reduced-motion: reduce) {
transition: unset;
}
transition: 0.05s; transition: 0.05s;
} }

View file

@ -39,12 +39,25 @@ const StillImage = {
this.imageLoadError && this.imageLoadError() this.imageLoadError && this.imageLoadError()
}, },
detectAnimation (image) { detectAnimation (image) {
// If there are no file extensions, the mimetype isn't set, and no mediaproxy is available, we can't figure out
// the mimetype of the image.
const hasFileExtension = this.src.split('/').pop().includes('.') // TODO: Better check?
const mediaProxyAvailable = this.$store.state.instance.mediaProxyAvailable
if (!hasFileExtension && this.mimetype === undefined && !mediaProxyAvailable) {
// It's a bit aggressive to assume all images we can't find the mimetype of is animated, but necessary for
// people in need of reduced motion accessibility. As such, we'll consider those images animated if the user
// agent is set to prefer reduced motion. Otherwise, it'll just be used as an early exit.
if (window.matchMedia('(prefers-reduced-motion: reduce)').matches)
this.isAnimated = true
return
}
if (this.mimetype === 'image/gif' || this.src.endsWith('.gif')) { if (this.mimetype === 'image/gif' || this.src.endsWith('.gif')) {
this.isAnimated = true this.isAnimated = true
return return
} }
// harmless CORS errors without-- clean console with // harmless CORS errors without-- clean console with
if (!this.$store.state.instance.mediaProxyAvailable) return if (!mediaProxyAvailable) return
// Animated JPEGs? // Animated JPEGs?
if (!(this.src.endsWith('.webp') || this.src.endsWith('.png'))) return if (!(this.src.endsWith('.webp') || this.src.endsWith('.png'))) return
// Browser Cache should ensure image doesn't get loaded twice if cache exists // Browser Cache should ensure image doesn't get loaded twice if cache exists

View file

@ -62,6 +62,9 @@
border-top-right-radius: 0; border-top-right-radius: 0;
border-top-left-radius: 0; border-top-left-radius: 0;
transform: translateY(-100%); transform: translateY(-100%);
@media (prefers-reduced-motion: reduce) {
transition: unset;
}
transition: transform 100ms; transition: transform 100ms;
} }
@ -89,6 +92,9 @@
svg { svg {
margin-left: 0.6em; margin-left: 0.6em;
@media (prefers-reduced-motion: reduce) {
transition: unset;
}
transition: transform 100ms; transition: transform 100ms;
} }

215
src/i18n/el.json Normal file
View file

@ -0,0 +1,215 @@
{
"about": {
"mrf": {
"keyword": {
"keyword_policies": "Πολιτικές λέξεων-κλειδιών",
"reject": "Απόρριψη",
"replace": "Αντικατάσταση"
},
"mrf_policies": "Ενεργοποιημένες πολιτικές MRF",
"mrf_policies_desc": "",
"simple": {
"accept": "Αποδοχή",
"accept_desc": "Αυτό το instance αποδέχεται μηνύματα μόνο από τα ακόλουθα instances:",
"ftl_removal": "Αφαίρεση από το χρονολόγιο \"Γνωστού Δίκτυου\"",
"ftl_removal_desc": "Αυτό το instance αφαιρεί αυτά τα instances από το χρονολόγιο \"Γνωστού Δικτύου\":",
"quarantine": "Καραντίνα",
"quarantine_desc": "Αυτό το instance δε θα στέλνει αναρτήσεις στα ακόλουθα instances:",
"reason": "Λόγος",
"simple_policies": "Πολιτικές του instance"
}
}
},
"announcements": {
"all_day_prompt": "Αυτό είναι ένα ολοήμερο συμβάν",
"cancel_edit_action": "Ακύρωση",
"close_error": "Κλείσιμο",
"delete_action": "Διαγραφή",
"edit_action": "Επεξεργασία",
"end_time_display": "Λήγει στις {time}",
"page_header": "Ανακοινώσεις",
"title": "Ανακοίνωση"
},
"chats": {
"empty_message_error": "Δε μπορεί να σταλεί κενό μήνυμα",
"error_sending_message": "Κάτι πήγε λάθος κατά την αποστολή του μηνύματος.",
"message_user": "Στείλε μήνυμα στον/στην {nickname}",
"more": "Περισσότερα",
"new": "Νέο Chat",
"you": "Εσείς:"
},
"display_date": {
"today": "Σήμερα"
},
"domain_mute_card": {
"mute": "Σίγαση"
},
"emoji": {
"add_emoji": "Εισαγωγή emoji",
"load_all": "Φόρτωση όλων των {emojiAmount} emoji",
"recent": "Χρησιμοποιήθηκαν πρόσφατα",
"search_emoji": "Αναζήτηση για ένα emoji",
"stickers": "Αυτοκόλλητα"
},
"errors": {
"storage_unavailable": "Το Pleroma δε μπόρεσε να προσπελάσει τον αποθηκευτικό χώρο του browser. Η σύνδεσή σας ή οι τοπικές ρυθμίσεις σας δε θα αποθηκευτούν και μπορεί να αντιμετωπίσετε απρόοπτα θέματα. Προσπαθήστε να ενεργοποιήσετε τα cookies."
},
"exporter": {
"export": "Εξαγωγή"
},
"features_panel": {
"text_limit": "Όριο κειμένου"
},
"file_type": {
"audio": "Ήχος",
"file": "Αρχείο",
"image": "Εικόνα",
"video": "Βίντεο"
},
"general": {
"apply": "Εφαρμογή",
"cancel": "Ακύρωση",
"close": "Κλείσιμο",
"disable": "Απενεργοποίηση",
"enable": "Ενεργοποίηση",
"error_retry": "Παρακαλώ δοκιμάστε ξανά",
"flash_content": "Κάντε κλικ για την εμφάνιση Flash περιεχομένου με τη χρήση του Ruffle (Πειραματικό, μπορεί να μη λειτουργεί).",
"loading": "Φόρτωση…",
"more": "Περισσότερα",
"optional": "προαιρετικό",
"retry": "Δοκιμάστε ξανά",
"role": {
"admin": "Διαχειριστής",
"moderator": "Συντονιστής"
},
"scope_in_timeline": {
"direct": "Άμεσο",
"local": "Τοπικό",
"private": "Μόνο για ακόλουθους",
"public": "Δημόσιο",
"unlisted": "Εκτός Λίστας"
},
"show_less": "Δείξε λιγότερα",
"show_more": "Δείξε περισσότερα"
},
"image_cropper": {
"cancel": "Ακύρωση",
"crop_picture": "Περικοπή εικόνας",
"save": "Αποθήκευση",
"save_without_cropping": "Αποθήκευση χωρίς περικοπή"
},
"importer": {
"success": "Εισήχθη επιτυχώς."
},
"languages": {
"ar": "Αραβικά",
"az": "Αζερικά",
"bg": "Βουλγαρικά",
"cs": "Τσεχικά",
"da": "Δανικά",
"de": "Γερμανικά",
"el": "Ελληνικά",
"en": "Αγγλικά",
"eo": "Εσπεράντο",
"es": "Ισπανικά",
"fa": "Περσικά",
"fi": "Φινλανδικά",
"fr": "Γαλλικά",
"ga": "Ιρλανδικά",
"he": "Εβραϊκά",
"hi": "Χίντι",
"hu": "Ουγγρικά",
"id": "Ινδονησιακά",
"it": "Ιταλικά",
"ja": "Ιαπωνικά",
"ko": "Κορεατικά",
"lt": "Λιθουανικά",
"lv": "Λετονικά",
"nl": "Ολλανδικά",
"pl": "Πολωνικά",
"pt": "Πορτογαλικά",
"ru": "Ρωσικά",
"sk": "Σλοβακικά",
"sv": "Σουηδικά",
"tr": "Τουρκικά",
"translated_from": {
"ar": "Μεταφράστηκε από τα @:languages.ar",
"az": "Μεταφράστηκε από τα @:languages.az",
"bg": "Μεταφράστηκε από τα @:languages.bg",
"cs": "Μεταφράστηκε από τα @:languages.cs",
"da": "Μεταφράστηκε από τα @:languages.da",
"de": "Μεταφράστηκε από τα @:languages.de",
"el": "Μεταφράστηκε από τα @:languages.el",
"en": "Μεταφράστηκε από τα @:languages.en",
"eo": "Μεταφράστηκε από τα @:languages.eo",
"es": "Μεταφράστηκε από τα @:languages.es",
"fa": "Μεταφράστηκε από τα @:languages.fa",
"fi": "Μεταφράστηκε από τα @:languages.fi",
"fr": "Μεταφράστηκε από τα @:languages.fr",
"ga": "Μεταφράστηκε από τα @:languages.ga",
"he": "Μεταφράστηκε από τα @:languages.he",
"hi": "Μεταφράστηκε από τα @:languages.hi",
"hu": "Μεταφράστηκε από τα @:languages.hu",
"id": "Μεταφράστηκε από τα @:languages.id",
"it": "Μεταφράστηκε από τα @:languages.it",
"ja": "Μεταφράστηκε από τα @:languages.ja",
"ko": "Μεταφράστηκε από τα @:languages.ko",
"lt": "Μεταφράστηκε από τα @:languages.lt",
"lv": "Μεταφράστηκε από τα @:languages.lv",
"nl": "Μεταφράστηκε από τα @:languages.nl",
"pl": "Μεταφράστηκε από τα @:languages.pl",
"pt": "Μεταφράστηκε από τα @:languages.pt",
"ru": "Μεταφράστηκε από τα @:languages.ru",
"sk": "Μεταφράστηκε από τα @:languages.sk",
"sv": "Μεταφράστηκε από τα @:languages.sv",
"tr": "tr",
"uk": "Μεταφράστηκε από τα @:languages.uk",
"zh": "Μεταφράστηκε από τα @:languages.zh"
},
"uk": "Ουκρανικά",
"zh": "Κινεζικά"
},
"lists": {
"create": "Δημιουργία",
"delete": "Διαγραφή λίστας",
"lists": "Λίστες",
"new": "Νέα Λίστα",
"save": "Αποθήκευση αλλαγών",
"search": "Αναζήτηση χρηστών",
"title": "Τίτλος λίστας"
},
"login": {
"authentication_code": "Κωδικός επαλήθευσης",
"description": "Σύνδεση με OAuth",
"enter_recovery_code": "Εισάγετε τον κωδικό ανάκτησης",
"hint": "Συνδεθείτε για να μπείτε στη συζήτηση",
"login": "Σύνδεση",
"logout": "Αποσύνδεση",
"logout_confirm": "Θέλετε σίγουρα να αποσυνδεθείτε;",
"logout_confirm_accept_button": "Αποσύνδεση",
"logout_confirm_cancel_button": "Ακύρωση",
"logout_confirm_title": "Αποσύνδεση",
"password": "Κωδικός πρόσβασης",
"placeholder": "τοονομαχρηστημου",
"recovery_code": "Κωδικός ανάκτησης",
"register": "Εγγραφή",
"username": "Όνομα χρήστη"
},
"media_modal": {
"next": "Επόμενο",
"previous": "Προηγούμενο"
},
"moderation": {
"reports": {
"add_note": "Προσθήκη σημείωσης",
"close": "Κλείσιμο",
"delete_note": "Διαγραφή",
"delete_note_accept": "Ναι, διάγραψέ το",
"delete_note_cancel": "Όχι, κράτα το",
"delete_note_confirm": "Θέλετε σίγουρα να διαγράψετε αυτήν τη σημείωση;",
"note_placeholder": "Αφήστε μια σημείωση",
"notes": "{ count } σημείωση | { count } σημειώσεις",
"statuses": "{ count } ανάρτηση| { count } αναρτήσεις"
}
}
}

View file

@ -425,6 +425,8 @@
"reason_placeholder": "Cette instance modère les inscriptions manuellement.\nExpliquer ce qui motive votre inscription à l'administration.", "reason_placeholder": "Cette instance modère les inscriptions manuellement.\nExpliquer ce qui motive votre inscription à l'administration.",
"register": "Enregistrer", "register": "Enregistrer",
"registration": "Inscription", "registration": "Inscription",
"request_sent": "Votre demande d'enregistrement est en attente d'approbation. Vous recevrez un courriel lorsque votre compte sera approuvé.",
"request_sent_title": "Demande d'abonnement envoyée",
"token": "Jeton d'invitation", "token": "Jeton d'invitation",
"username_placeholder": "ex : misato", "username_placeholder": "ex : misato",
"validations": { "validations": {

View file

@ -1,11 +1,15 @@
{ {
"about": { "about": {
"bubble_instances": "Instance Bubble Lokal",
"bubble_instances_description": "Instansi yang dipilih oleh admin untuk mewakili instance ini",
"mrf": { "mrf": {
"federation": "Federasi", "federation": "Federasi",
"keyword": { "keyword": {
"ftl_removal": "Penghapusan dari Linimasa \"Jaringan Yang Dikenal\"", "ftl_removal": "Penghapusan dari Linimasa \"Jaringan Yang Dikenal\"",
"is_replaced_by": "→", "is_replaced_by": "→",
"reject": "Tolak" "keyword_policies": "Kebijakan Kata Kunci",
"reject": "Tolak",
"replace": "Ganti"
}, },
"mrf_policies": "Kebijakan MRF yang diaktifkan", "mrf_policies": "Kebijakan MRF yang diaktifkan",
"mrf_policies_desc": "Kebijakan MRF memanipulasi federasi yang terjadi pada instansi ini. Kebijakan berikut adalah yang aktif:", "mrf_policies_desc": "Kebijakan MRF memanipulasi federasi yang terjadi pada instansi ini. Kebijakan berikut adalah yang aktif:",
@ -80,6 +84,7 @@
"keep_open": "Tetap buka pemilih", "keep_open": "Tetap buka pemilih",
"load_all": "Memuat semua {emojiAmount} emoji", "load_all": "Memuat semua {emojiAmount} emoji",
"load_all_hint": "Memuat {saneAmount} emoji pertama, memuat semua emoji dapat menyebabkan masalah performa.", "load_all_hint": "Memuat {saneAmount} emoji pertama, memuat semua emoji dapat menyebabkan masalah performa.",
"recent": "Baru-baru ini digunakan",
"search_emoji": "Cari emoji", "search_emoji": "Cari emoji",
"stickers": "Stiker", "stickers": "Stiker",
"unicode": "Emoji Unicode" "unicode": "Emoji Unicode"
@ -93,9 +98,11 @@
}, },
"features_panel": { "features_panel": {
"media_proxy": "Proxy media", "media_proxy": "Proxy media",
"scope_options": "Opsi cakupan",
"text_limit": "Batas teks", "text_limit": "Batas teks",
"title": "Fitur-fitur", "title": "Fitur-fitur",
"upload_limit": "Batas unggahan" "upload_limit": "Batas unggahan",
"who_to_follow": "Siapa untuk diikuti"
}, },
"file_type": { "file_type": {
"audio": "Audio", "audio": "Audio",
@ -113,6 +120,7 @@
"close": "Tutup", "close": "Tutup",
"confirm": "Konfirmasi", "confirm": "Konfirmasi",
"disable": "Nonaktifkan", "disable": "Nonaktifkan",
"dismiss": "Tutup",
"enable": "Aktifkan", "enable": "Aktifkan",
"error_retry": "Harap coba lagi", "error_retry": "Harap coba lagi",
"flash_content": "Klik untuk menampilkan konten Flash menggunakan Ruffle (Eksperimental, mungkin tidak bekerja).", "flash_content": "Klik untuk menampilkan konten Flash menggunakan Ruffle (Eksperimental, mungkin tidak bekerja).",
@ -132,7 +140,8 @@
"direct": "Langsung", "direct": "Langsung",
"local": "Lokal - hanya instansi kamu yang dapat melihat postingan ini", "local": "Lokal - hanya instansi kamu yang dapat melihat postingan ini",
"private": "Hanya pengikut", "private": "Hanya pengikut",
"public": "Publik" "public": "Publik",
"unlisted": "Tidak Tercantum"
}, },
"show_less": "Tampilkan lebih sedikit", "show_less": "Tampilkan lebih sedikit",
"show_more": "Tampilkan lebih banyak", "show_more": "Tampilkan lebih banyak",
@ -227,6 +236,7 @@
"lists": { "lists": {
"create": "Buat", "create": "Buat",
"delete": "Hapus daftar", "delete": "Hapus daftar",
"following_only": "Batas mengikuti",
"lists": "Daftar", "lists": "Daftar",
"new": "Buat Daftar", "new": "Buat Daftar",
"save": "Simpan perubahan", "save": "Simpan perubahan",
@ -276,6 +286,7 @@
"note_placeholder": "Tinggalkan catatan", "note_placeholder": "Tinggalkan catatan",
"notes": "{ count } catatan", "notes": "{ count } catatan",
"reopen": "Buka kembali", "reopen": "Buka kembali",
"report": "Laporan di",
"reports": "Laporan", "reports": "Laporan",
"resolve": "Selesaikan", "resolve": "Selesaikan",
"show_closed": "Tampilkan yang telah ditutup", "show_closed": "Tampilkan yang telah ditutup",
@ -291,6 +302,8 @@
"administration": "Administrasi", "administration": "Administrasi",
"announcements": "Pengumuman", "announcements": "Pengumuman",
"back": "Kembali", "back": "Kembali",
"bookmarks": "Bookmark",
"bubble_timeline": "Timeline Bubble",
"bubble_timeline_description": "Postingan dari instansi yang dekat dengan instansimu, yang direkomendasikan oleh admin kamu", "bubble_timeline_description": "Postingan dari instansi yang dekat dengan instansimu, yang direkomendasikan oleh admin kamu",
"chats": "Obrolan", "chats": "Obrolan",
"dms": "Pesan langsung", "dms": "Pesan langsung",
@ -309,7 +322,8 @@
"timelines": "Linimasa", "timelines": "Linimasa",
"twkn": "Jaringan Yang Dikenal", "twkn": "Jaringan Yang Dikenal",
"twkn_timeline_description": "Postingan dari seluruh jaringan", "twkn_timeline_description": "Postingan dari seluruh jaringan",
"user_search": "Penelusuran Pengguna" "user_search": "Penelusuran Pengguna",
"who_to_follow": "Siapa untuk diikuti"
}, },
"notifications": { "notifications": {
"broken_favorite": "Postingan tak dikenal, mencarinya…", "broken_favorite": "Postingan tak dikenal, mencarinya…",
@ -385,7 +399,8 @@
"direct": "Langsung - posting hanya kepada pengguna yang disebut", "direct": "Langsung - posting hanya kepada pengguna yang disebut",
"local": "Lokal - postingan tidak akan difederasi", "local": "Lokal - postingan tidak akan difederasi",
"private": "Hanya-pengikut - posting hanya kepada pengikut", "private": "Hanya-pengikut - posting hanya kepada pengikut",
"public": "Publik - posting ke linimasa publik" "public": "Publik - posting ke linimasa publik",
"unlisted": "Tidak Tercantum - Tidak memposting ke timeline publik"
}, },
"scope_notice": { "scope_notice": {
"local": "Postingan ini tidak akan terlihat di instansi lain", "local": "Postingan ini tidak akan terlihat di instansi lain",
@ -402,6 +417,7 @@
"captcha": "CAPTCHA", "captcha": "CAPTCHA",
"email": "Surel", "email": "Surel",
"email_language": "Dalam bahasa apa kamu ingin menerima surel dari server ini?", "email_language": "Dalam bahasa apa kamu ingin menerima surel dari server ini?",
"fullname": "Tampilan Nama",
"fullname_placeholder": "cth. Atsuko Kagari", "fullname_placeholder": "cth. Atsuko Kagari",
"new_captcha": "Klik gambarnya untuk mendapatkan captcha baru", "new_captcha": "Klik gambarnya untuk mendapatkan captcha baru",
"password_confirm": "Konfirmasi kata sandi", "password_confirm": "Konfirmasi kata sandi",
@ -424,6 +440,7 @@
}, },
"remote_user_resolver": { "remote_user_resolver": {
"error": "Tidak ditemukan.", "error": "Tidak ditemukan.",
"remote_user_resolver": "Pencarian pengguna jarak jauh",
"searching_for": "Mencari" "searching_for": "Mencari"
}, },
"search": { "search": {
@ -437,16 +454,22 @@
"select_all": "Pilih semua" "select_all": "Pilih semua"
}, },
"settings": { "settings": {
"accent": "Aksen",
"account_alias": "Akun alias",
"account_backup": "Pencadangan akun", "account_backup": "Pencadangan akun",
"account_backup_description": "Ini memungkinkan kamu untuk mengunduh arsip yang berisi informasi tentang akun dan postingan kamu, namun belum bisa diimpor ke akun Pleroma.", "account_backup_description": "Ini memungkinkan kamu untuk mengunduh arsip yang berisi informasi tentang akun dan postingan kamu, namun belum bisa diimpor ke akun Pleroma.",
"account_privacy": "Privasi", "account_privacy": "Privasi",
"add_alias_error": "Gagal menambahkan alias: {error}",
"add_backup": "Buat cadangan baru", "add_backup": "Buat cadangan baru",
"add_backup_error": "Gagal menambahkan cadangan baru: {error}", "add_backup_error": "Gagal menambahkan cadangan baru: {error}",
"added_alias": "Alias telah ditambahkan.",
"added_backup": "Cadangan baru ditambahkan.", "added_backup": "Cadangan baru ditambahkan.",
"allow_following_move": "Ikuti otomatis apabila akun yang diikuti pindah", "allow_following_move": "Ikuti otomatis apabila akun yang diikuti pindah",
"always_show_post_button": "Selalu tampilkan tombol posting baru yang mengambang",
"app_name": "Nama aplikasi", "app_name": "Nama aplikasi",
"attachmentRadius": "Lampiran", "attachmentRadius": "Lampiran",
"attachments": "Lampiran", "attachments": "Lampiran",
"autohide_floating_post_button": "Sembunyikan tombol buat posting secara otomatis (Ponsel)",
"avatar": "Avatar", "avatar": "Avatar",
"avatarAltRadius": "Avatar (notifikasi)", "avatarAltRadius": "Avatar (notifikasi)",
"avatarRadius": "Avatar", "avatarRadius": "Avatar",
@ -474,6 +497,8 @@
"changed_password": "Kata sandi berhasil diubah!", "changed_password": "Kata sandi berhasil diubah!",
"chatMessageRadius": "Pesan obrolan", "chatMessageRadius": "Pesan obrolan",
"checkboxRadius": "Kotak centang", "checkboxRadius": "Kotak centang",
"collapse_subject": "Tampilkan post dengan peringatan",
"columns": "Kolum",
"composing": "Menulis", "composing": "Menulis",
"confirm_dialogs": "Perlukan konfirmasi sebelum:", "confirm_dialogs": "Perlukan konfirmasi sebelum:",
"confirm_dialogs_approve_follow": "Menerima permintaan mengikuti", "confirm_dialogs_approve_follow": "Menerima permintaan mengikuti",
@ -484,17 +509,23 @@
"confirm_dialogs_repeat": "Mengulangi postingan", "confirm_dialogs_repeat": "Mengulangi postingan",
"confirm_dialogs_unfollow": "Berhenti mengikuti seseorang", "confirm_dialogs_unfollow": "Berhenti mengikuti seseorang",
"confirm_new_password": "Konfirmasi kata sandi baru", "confirm_new_password": "Konfirmasi kata sandi baru",
"confirmation_dialogs": "Opsi Konfirmasi",
"conversation_display": "Gaya tampilan percakapan", "conversation_display": "Gaya tampilan percakapan",
"conversation_display_linear": "Gaya Linier",
"conversation_display_tree": "Bercabang", "conversation_display_tree": "Bercabang",
"conversation_other_replies_button": "Tampilkan tombol \"Balasan lainnya\"",
"conversation_other_replies_button_below": "Di bawah postingan", "conversation_other_replies_button_below": "Di bawah postingan",
"conversation_other_replies_button_inside": "Di postingan", "conversation_other_replies_button_inside": "Di postingan",
"current_avatar": "Avatarmu saat ini", "current_avatar": "Avatarmu saat ini",
"current_mascot": "Maskot utamamu",
"current_password": "Kata sandi saat ini", "current_password": "Kata sandi saat ini",
"data_import_export_tab": "Impor / ekspor data", "data_import_export_tab": "Impor / ekspor data",
"default_vis": "Cakupan visibilitas default",
"delete_account": "Hapus akun", "delete_account": "Hapus akun",
"delete_account_description": "Hapus data kamu secara permanen dan nonaktifkan akunmu.", "delete_account_description": "Hapus data kamu secara permanen dan nonaktifkan akunmu.",
"delete_account_error": "Ada masalah ketika menghapus akun kamu. Jika ini terus terjadi harap hubungi adminstrator instansi kamu.", "delete_account_error": "Ada masalah ketika menghapus akun kamu. Jika ini terus terjadi harap hubungi adminstrator instansi kamu.",
"delete_account_instructions": "Ketik kata sandi kamu pada input di bawah untuk mengonfirmasi penghapusan akun.", "delete_account_instructions": "Ketik kata sandi kamu pada input di bawah untuk mengonfirmasi penghapusan akun.",
"disable_sticky_headers": "Jangan tempel tajuk kolom ke bagian atas layar",
"discoverable": "Izinkan penelusuran akun ini pada hasil pencarian dan layanan lainnya", "discoverable": "Izinkan penelusuran akun ini pada hasil pencarian dan layanan lainnya",
"domain_mutes": "Domain", "domain_mutes": "Domain",
"download_backup": "Unduh", "download_backup": "Unduh",
@ -505,6 +536,7 @@
"expert_mode": "Tampilkan pengaturan lanjutan", "expert_mode": "Tampilkan pengaturan lanjutan",
"expire_posts_enabled": "Hapus postingan setelah jumlah hari yang ditentukan", "expire_posts_enabled": "Hapus postingan setelah jumlah hari yang ditentukan",
"expire_posts_input_placeholder": "Jumlah hari", "expire_posts_input_placeholder": "Jumlah hari",
"export_theme": "Simpan preset",
"file_export_import": { "file_export_import": {
"backup_restore": "Pencadangan pengaturan", "backup_restore": "Pencadangan pengaturan",
"backup_settings": "Cadangkan pengaturan ke berkas", "backup_settings": "Cadangkan pengaturan ke berkas",
@ -519,7 +551,11 @@
}, },
"filtering": "Penyaringan", "filtering": "Penyaringan",
"filtering_explanation": "Semua postingan yang mengandung kata-kata ini akan dibisukan, satu kata per baris", "filtering_explanation": "Semua postingan yang mengandung kata-kata ini akan dibisukan, satu kata per baris",
"follow_export": "Ekspor Follow",
"follow_export_button": "Export yang kamu ikuti ke dalam file csv",
"follow_import": "Import pengikut",
"follow_import_error": "Terjadi kesalahan ketika mengimpor pengikut", "follow_import_error": "Terjadi kesalahan ketika mengimpor pengikut",
"follows_imported": "Pengguna yang diikuti telak diimpor! Proses mungkin membutuhkan beberapa saat.",
"fun": "Seru", "fun": "Seru",
"general": "Umum", "general": "Umum",
"greentext": "Panah meme", "greentext": "Panah meme",

View file

@ -4,6 +4,7 @@
"mrf": { "mrf": {
"federation": "フェデレーション", "federation": "フェデレーション",
"keyword": { "keyword": {
"ftl_removal": "「せつぞくしているすべてのネットワーク」タイムラインからのぞく",
"is_replaced_by": "→", "is_replaced_by": "→",
"keyword_policies": "キーワードポリシー", "keyword_policies": "キーワードポリシー",
"reject": "おことわり", "reject": "おことわり",
@ -120,7 +121,7 @@
"error_retry": "もういちど、ためしてください", "error_retry": "もういちど、ためしてください",
"flash_content": "クリックすると、Ruffle をつかって、フラッシュさくひんをひょうじします。(うまくうごかないかもしれません)", "flash_content": "クリックすると、Ruffle をつかって、フラッシュさくひんをひょうじします。(うまくうごかないかもしれません)",
"flash_fail": "フラッシュさくひんのロードに、しっぱいしました。コンソールに、くわしいことがかかれています。", "flash_fail": "フラッシュさくひんのロードに、しっぱいしました。コンソールに、くわしいことがかかれています。",
"flash_security": "フラッシュさくひんは、あぶないことをしてくるかもしれないので、ちゅういしてください。", "flash_security": "フラッシュさくひんは、あなたのコンピューターに、あぶないことをしてくるかもしれないので、ちゅういしてください。",
"generic_error": "エラーになりました", "generic_error": "エラーになりました",
"loading": "ロードしています…", "loading": "ロードしています…",
"more": "つづき", "more": "つづき",
@ -533,7 +534,7 @@
"expert_mode": "こまかいせっていをひょうじ", "expert_mode": "こまかいせっていをひょうじ",
"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_import": "フォローインポート", "follow_import": "フォローインポート",
@ -887,6 +888,7 @@
"media": "メディア", "media": "メディア",
"mention": "メンション", "mention": "メンション",
"mute": "ミュート", "mute": "ミュート",
"mute_domain": "ドメインをブロック",
"mute_progress": "ミュートしています…", "mute_progress": "ミュートしています…",
"muted": "ミュートしています!", "muted": "ミュートしています!",
"per_day": "/日", "per_day": "/日",
@ -897,6 +899,7 @@
"subscribe": "サブスクライブ", "subscribe": "サブスクライブ",
"unblock": "ブロックをやめる", "unblock": "ブロックをやめる",
"unblock_progress": "ブロックをとりけしています…", "unblock_progress": "ブロックをとりけしています…",
"unfollow_confirm": "{user}のフォローをやめますか?",
"unmute": "ミュートをやめる", "unmute": "ミュートをやめる",
"unmute_progress": "ミュートをとりけしています…", "unmute_progress": "ミュートをとりけしています…",
"unsubscribe": "サブスクライブをやめる" "unsubscribe": "サブスクライブをやめる"

View file

@ -127,7 +127,7 @@
"flash_security": "Flashコンテンツが任意の命令を実行させることにより、コンピューターが危険にさらされることがあります。", "flash_security": "Flashコンテンツが任意の命令を実行させることにより、コンピューターが危険にさらされることがあります。",
"generic_error": "エラーが発生しました", "generic_error": "エラーが発生しました",
"loading": "読み込み中…", "loading": "読み込み中…",
"more": "さらに読み込む", "more": "さらに表示",
"optional": "任意", "optional": "任意",
"peek": "隠す", "peek": "隠す",
"retry": "リトライ", "retry": "リトライ",
@ -140,7 +140,7 @@
"local": "ローカル:このインスタンスのユーザーしか見えません", "local": "ローカル:このインスタンスのユーザーしか見えません",
"private": "フォロワー限定", "private": "フォロワー限定",
"public": "公開", "public": "公開",
"unlisted": "アンリステッド" "unlisted": "未収載"
}, },
"show_less": "たたむ", "show_less": "たたむ",
"show_more": "さらに表示", "show_more": "さらに表示",
@ -399,7 +399,7 @@
"local": "ローカル:連合に送信しません", "local": "ローカル:連合に送信しません",
"private": "フォロワー限定:フォロワーのみに届きます", "private": "フォロワー限定:フォロワーのみに届きます",
"public": "パブリック:公開タイムラインに届きます", "public": "パブリック:公開タイムラインに届きます",
"unlisted": "アンリステッド:公開タイムラインに届きません" "unlisted": "未収載:公開タイムラインに届きません"
}, },
"scope_notice": { "scope_notice": {
"local": "このインスタンスのユーザーだけが読めます", "local": "このインスタンスのユーザーだけが読めます",
@ -409,8 +409,8 @@
} }
}, },
"registration": { "registration": {
"awaiting_email_confirmation": "あなたにメールが送られました。メールをご覧くださって、リンクをクリックしてください", "awaiting_email_confirmation": "確認メールを送信しました。メールに記載されたリンクをクリックしてください。",
"awaiting_email_confirmation_title": "メール確認中", "awaiting_email_confirmation_title": "メールアドレスの確認中",
"bio": "プロフィール", "bio": "プロフィール",
"bio_placeholder": "例:\nこんにちは。私は玲音。\n私はアニメのキャラクターで、日本の郊外に住んでいます。私をWiredで見たことがあるかもしれません。", "bio_placeholder": "例:\nこんにちは。私は玲音。\n私はアニメのキャラクターで、日本の郊外に住んでいます。私をWiredで見たことがあるかもしれません。",
"captcha": "CAPTCHA", "captcha": "CAPTCHA",
@ -420,8 +420,8 @@
"fullname_placeholder": "例:岩倉玲音", "fullname_placeholder": "例:岩倉玲音",
"new_captcha": "文字が読めないときは、画像をクリックすると新しい画像になります", "new_captcha": "文字が読めないときは、画像をクリックすると新しい画像になります",
"password_confirm": "パスワードの確認", "password_confirm": "パスワードの確認",
"reason": "登録するための目的", "reason": "登録の目的",
"reason_placeholder": "このインスタンスは新規登録を手動で受け付けています。\n登録したい理由をインスタンスの管理者に教えてください。", "reason_placeholder": "このインスタンスは新規登録を手動で受け付けています。\nここに管理者へのメッセージを入力してください。",
"register": "登録", "register": "登録",
"registration": "登録", "registration": "登録",
"request_sent": "登録リクエストを送信しました。承認された場合はメールにてお知らせします。", "request_sent": "登録リクエストを送信しました。承認された場合はメールにてお知らせします。",
@ -449,7 +449,7 @@
"people_talking": "{count}人が話しています", "people_talking": "{count}人が話しています",
"person_talking": "{count}人が話しています", "person_talking": "{count}人が話しています",
"no_more_results": "すべて表示されています", "no_more_results": "すべて表示されています",
"load_more": "さらに読み込む" "load_more": "さらに表示"
}, },
"selectable_list": { "selectable_list": {
"select_all": "すべて選択" "select_all": "すべて選択"
@ -1051,7 +1051,7 @@
"conversation": "スレッド", "conversation": "スレッド",
"error": "タイムラインの読み込みに失敗しました:{0}", "error": "タイムラインの読み込みに失敗しました:{0}",
"follow_tag": "タグをフォロー", "follow_tag": "タグをフォロー",
"load_older": "以前の投稿を読み込む", "load_older": "以前の投稿を表示",
"no_more_statuses": "すべて表示しました", "no_more_statuses": "すべて表示しました",
"no_retweet_hint": "投稿を「フォロワーのみ」または「ダイレクト」にすると、リピートできなくなります", "no_retweet_hint": "投稿を「フォロワーのみ」または「ダイレクト」にすると、リピートできなくなります",
"no_statuses": "投稿はありません", "no_statuses": "投稿はありません",
@ -1123,8 +1123,9 @@
"block_confirm_accept_button": "ブロック", "block_confirm_accept_button": "ブロック",
"block_confirm_cancel_button": "キャンセル", "block_confirm_cancel_button": "キャンセル",
"block_confirm_title": "ブロックには確認が必要です", "block_confirm_title": "ブロックには確認が必要です",
"block_progress": "ブロックしています…", "block_progress": "ブロック中…",
"blocked": "ブロックしています!", "blocked": "ブロック中",
"blocks_you": "ブロックされています",
"bot": "bot", "bot": "bot",
"deactivated": "無効", "deactivated": "無効",
"deny": "お断り", "deny": "お断り",
@ -1136,7 +1137,7 @@
"edit_profile": "プロフィールを編集", "edit_profile": "プロフィールを編集",
"favorites": "お気に入り", "favorites": "お気に入り",
"follow": "フォロー", "follow": "フォロー",
"follow_cancel": "フォローリクエストを取り消す", "follow_cancel": "リクエストを取り消す",
"follow_progress": "リクエストしています", "follow_progress": "リクエストしています",
"follow_sent": "リクエストを送りました", "follow_sent": "リクエストを送りました",
"follow_unfollow": "フォロー解除", "follow_unfollow": "フォロー解除",
@ -1182,6 +1183,9 @@
"unfollow_confirm_accept_button": "解除", "unfollow_confirm_accept_button": "解除",
"unfollow_confirm_cancel_button": "キャンセル", "unfollow_confirm_cancel_button": "キャンセル",
"unfollow_confirm_title": "フォローの解除には確認が必要です", "unfollow_confirm_title": "フォローの解除には確認が必要です",
"not_following_any_hashtags": "ハッシュタグをフォローしていません",
"follow_tag": "タグをフォロー",
"unfollow_tag": "タグのフォローを解除",
"unmute": "ミュート解除", "unmute": "ミュート解除",
"unmute_progress": "ミュートを解除しています…", "unmute_progress": "ミュートを解除しています…",
"unsubscribe": "購読を解除" "unsubscribe": "購読を解除"

View file

@ -30,7 +30,7 @@
"simple_policies": "Políticas especificas do domínio" "simple_policies": "Políticas especificas do domínio"
} }
}, },
"staff": "Staff" "staff": "Equipe"
}, },
"announcements": { "announcements": {
"all_day_prompt": "Este evento dura o dia inteiro", "all_day_prompt": "Este evento dura o dia inteiro",
@ -167,7 +167,7 @@
"password": "Palavra-passe", "password": "Palavra-passe",
"placeholder": "ex. lain", "placeholder": "ex. lain",
"recovery_code": "Código de recuperação", "recovery_code": "Código de recuperação",
"register": "Registar", "register": "Registrar",
"username": "Nome de Utilizador" "username": "Nome de Utilizador"
}, },
"media_modal": { "media_modal": {
@ -244,7 +244,7 @@
"text/plain": "Texto puro" "text/plain": "Texto puro"
}, },
"content_warning": "Assunto (opcional)", "content_warning": "Assunto (opcional)",
"default": "Acabei de chegar a Lisboa.", "default": "Acabei de chegar em",
"direct_warning_to_all": "Esta publicação será visível para todos os utilizadores mencionados.", "direct_warning_to_all": "Esta publicação será visível para todos os utilizadores mencionados.",
"direct_warning_to_first_only": "Esta publicação só será visível para os utilizadores mencionados no início da mensagem.", "direct_warning_to_first_only": "Esta publicação só será visível para os utilizadores mencionados no início da mensagem.",
"empty_status_error": "Não consegues publicar um post vazio e sem ficheiros", "empty_status_error": "Não consegues publicar um post vazio e sem ficheiros",
@ -268,7 +268,7 @@
}, },
"registration": { "registration": {
"bio": "Biografia", "bio": "Biografia",
"bio_placeholder": "ex.\nOlá, sou a Lain\nSou uma menina de anime que vive no Japão suburbano. Devem conhecer-me do \"the Wired\".", "bio_placeholder": "Ex.:\nBem-vindo a minha bio.\nEu amo assistir anime e jogar. Eu espero que possamos ser amigos!",
"captcha": "CAPTCHA", "captcha": "CAPTCHA",
"email": "Endereço de e-mail", "email": "Endereço de e-mail",
"fullname": "Nome para exibição", "fullname": "Nome para exibição",
@ -401,7 +401,7 @@
"scan": { "scan": {
"desc": "Utilizando a sua aplicação de dois fatores, faça scan deste código QR ou insira a chave de texto:", "desc": "Utilizando a sua aplicação de dois fatores, faça scan deste código QR ou insira a chave de texto:",
"secret_code": "Chave", "secret_code": "Chave",
"title": "Scan" "title": "Escanear"
}, },
"setup_otp": "Configurar palavra-passe de utilização única", "setup_otp": "Configurar palavra-passe de utilização única",
"title": "Autenticação de Dois Fatores", "title": "Autenticação de Dois Fatores",
@ -566,7 +566,7 @@
"fine_print": "Leia nosso {0} para não aprender nada!", "fine_print": "Leia nosso {0} para não aprender nada!",
"header": "Pré-visualizar", "header": "Pré-visualizar",
"header_faint": "Isto está bem", "header_faint": "Isto está bem",
"input": "Acabei de chegar a Lisboa.", "input": "Acabei de chegar na Lua",
"link": "um belo link", "link": "um belo link",
"mono": "conteúdo", "mono": "conteúdo",
"text": "Vários {0} e {1}" "text": "Vários {0} e {1}"
@ -648,7 +648,7 @@
"type_domains_to_mute": "Pesquisar domínios para silenciar", "type_domains_to_mute": "Pesquisar domínios para silenciar",
"upload_a_photo": "Enviar uma foto", "upload_a_photo": "Enviar uma foto",
"useStreamingApi": "Receber publicações e notificações em tempo real", "useStreamingApi": "Receber publicações e notificações em tempo real",
"useStreamingApiWarning": "(não recomendado, experimental, pode omitir publicações)", "useStreamingApiWarning": "É legal usar isso. Se der algum problema, atualize, eu acho?",
"use_contain_fit": "Não cortar o anexo na miniatura", "use_contain_fit": "Não cortar o anexo na miniatura",
"use_one_click_nsfw": "Abrir anexos sensíveis com um clique", "use_one_click_nsfw": "Abrir anexos sensíveis com um clique",
"user_mutes": "Utilizadores", "user_mutes": "Utilizadores",

34
src/i18n/th.json Normal file
View file

@ -0,0 +1,34 @@
{
"about": {
"bubble_instances": "เซิร์ฟเวอร์เพื่อนบ้าน",
"bubble_instances_description": "เซิร์ฟเวอร์ที่แอดมินตั้งค่าไว้เพื่อแสดงเป็นเพื่อนบ้าน",
"mrf": {
"keyword": {
"keyword_policies": "นโยบายของคีย์เวิร์ดค้นหา",
"reject": "ไม่อนุมัติ",
"replace": "แทนที่"
},
"simple": {
"accept": "ยอมรับ",
"accept_desc": "เซิร์ฟเวอร์นี้จะรับข้อความเฉพาะเซิฟร์เวอร์ต่อไปนี้:",
"instance": "เซิฟเวอร์",
"media_nsfw": "มีเดียถูกบังคับตั้งให้เป็น NSFW",
"not_applicable": "ไม่สามารถใช้ได้",
"quarantine": "คัดกรอง",
"reason": "เหตุผล",
"reject": "ปฎิเสธ"
}
},
"staff": "ผู้ดูแล"
},
"announcements": {
"cancel_edit_action": "ยกเลิก",
"close_error": "ปิด",
"delete_action": "ลบประกาศ",
"edit_action": "แก้ไขประกาศ",
"end_time_prompt": "เวลาสิ้นสุด: ",
"mark_as_read_action": "ตั้งเป็นอ่านแล้ว",
"page_header": "ประกาศ",
"post_action": "โพสต์"
}
}

View file

@ -49,6 +49,86 @@
"post_error": "Hata: {error}", "post_error": "Hata: {error}",
"post_form_header": "Post sonrası", "post_form_header": "Post sonrası",
"post_placeholder": "Duyuru içeriği", "post_placeholder": "Duyuru içeriği",
"published_time_display": "{time} tarihinde yayınlandı" "published_time_display": "{time} tarihinde yayınlandı",
"start_time_display": "{time} saatinde başlar",
"start_time_prompt": "Başlangıç saati: ",
"submit_edit_action": "Gönder",
"title": "Duyuru"
},
"chats": {
"chats": "Sohbetler",
"delete": "Sil",
"delete_confirm": "Bu mesajı gerçekten silmek istiyor musun?",
"empty_chat_list_placeholder": "Henüz hiç sohbetiniz yok. Yeni bir sohbet başlatın!",
"empty_message_error": "Boş mesaj gönderilemiyor",
"error_loading_chat": "Sohbet yüklenirken bir şeyler ters gitti.",
"error_sending_message": "Mesajı gönderirken bir şeyler ters gitti.",
"message_user": "{nickname} mesajı",
"more": "Daha",
"new": "Yeni Sohbet",
"you": "Sen:"
},
"display_date": {
"today": "Bugün"
},
"domain_mute_card": {
"mute": "Sesini kapat",
"mute_progress": "Ses kapatılıyor…",
"unmute": "Sesini aç",
"unmute_progress": "Sessize alınıyor…"
},
"emoji": {
"add_emoji": "Emoji ekle",
"custom": "Özel emoji",
"emoji": "Emoji",
"keep_open": "Seçiciyi açık tut",
"load_all": "Tüm {emojiAmount} emoji yükleniyor",
"load_all_hint": "İlk {saneAmount} emoji yüklendi, tüm emojilerin yüklenmesi performans sorunlarına neden olabilir.",
"recent": "Son zamanlarda kullanılmış",
"search_emoji": "Emoji ara",
"stickers": ıkartmalar",
"unicode": "Unicode emojisi"
},
"errors": {
"storage_unavailable": "Pleroma, tarayıcı depolama alanına erişemedi. Oturum açma bilgileriniz veya yerel ayarlarınız kaydedilmeyecek ve beklenmeyen sorunlarla karşılaşabilirsiniz. Çerezleri etkinleştirmeyi deneyin."
},
"exporter": {
"export": "Dışa aktar",
"processing": "İşleniyor, yakında dosyanızı indirmeniz istenecek"
},
"features_panel": {
"media_proxy": "Medya proxy'si",
"scope_options": "Kapsam seçenekleri",
"text_limit": "Metin sınırı",
"title": "Özellikler",
"upload_limit": "Yükleme sınırı",
"who_to_follow": "Kimi takip etmeli"
},
"file_type": {
"audio": "Ses",
"file": "Dosya",
"image": "Resim",
"video": "Video"
},
"finder": {
"error_fetching_user": "Kullanıcı getirilirken hata oluştu",
"find_user": "Kullanıcı bul"
},
"general": {
"apply": "Uygula",
"cancel": "İptal",
"close": "Kapalı",
"confirm": "Onayla",
"disable": "Devre dışı bırak",
"dismiss": "Reddetmek",
"enable": "Etkinleştir",
"error_retry": "Lütfen tekrar deneyin",
"flash_content": "Ruffle kullanarak Flash içeriğini göstermek için tıklayın (Deneysel, çalışmayabilir).",
"flash_fail": "Flash içeriği yüklenemedi, ayrıntılar için konsola bakın.",
"flash_security": "Flash içeriği hala isteğe bağlı kod olduğundan, bunun potansiyel olarak tehlikeli olabileceğini unutmayın.",
"generic_error": "Bir hata oluştu",
"loading": "Yükleniyor…",
"more": "Daha",
"optional": "Seçenek"
} }
} }

View file

@ -23,6 +23,7 @@
"media_nsfw_desc": "Сервер примусово позначає дражливими медіа з таких серверів:", "media_nsfw_desc": "Сервер примусово позначає дражливими медіа з таких серверів:",
"media_removal": "Видалення медіа", "media_removal": "Видалення медіа",
"media_removal_desc": "Сервер вилучає медіа в дописах із таких серверів:", "media_removal_desc": "Сервер вилучає медіа в дописах із таких серверів:",
"not_applicable": "Не застосовується",
"quarantine": "Карантин", "quarantine": "Карантин",
"quarantine_desc": "Сервер не надсилатиме дописів таким серверам:", "quarantine_desc": "Сервер не надсилатиме дописів таким серверам:",
"reason": "Підстава", "reason": "Підстава",
@ -31,7 +32,7 @@
"simple_policies": "Відносно цілих серверів" "simple_policies": "Відносно цілих серверів"
} }
}, },
"staff": "Адміністрація" "staff": "Команда"
}, },
"announcements": { "announcements": {
"all_day_prompt": "Триває весь день", "all_day_prompt": "Триває весь день",
@ -71,10 +72,10 @@
"today": "Сьогодні" "today": "Сьогодні"
}, },
"domain_mute_card": { "domain_mute_card": {
"mute": "Ігнорувати", "mute": "Приглушити",
"mute_progress": "Вимикаю…", "mute_progress": "Глушіння…",
"unmute": "Вимкнути заглушення", "unmute": "Відновити",
"unmute_progress": "Вмикаю…" "unmute_progress": "Відновлення…"
}, },
"emoji": { "emoji": {
"add_emoji": "Додати емоджі", "add_emoji": "Додати емоджі",
@ -83,6 +84,7 @@
"keep_open": "Тримати панель відкритою", "keep_open": "Тримати панель відкритою",
"load_all": "Всі {emojiAmount} емоджі завантажуються", "load_all": "Всі {emojiAmount} емоджі завантажуються",
"load_all_hint": "Завантажено {saneAmount} емоджі, більша кількість може спричинити гальмування.", "load_all_hint": "Завантажено {saneAmount} емоджі, більша кількість може спричинити гальмування.",
"recent": "Нещодавно вжиті",
"search_emoji": "Пошук емоджі", "search_emoji": "Пошук емоджі",
"stickers": "Наліпки", "stickers": "Наліпки",
"unicode": "Стандартні емоджі" "unicode": "Стандартні емоджі"
@ -131,19 +133,19 @@
"peek": "Глянути", "peek": "Глянути",
"retry": "Спробуйте ще раз", "retry": "Спробуйте ще раз",
"role": { "role": {
"admin": "Адмініструє", "admin": "Адміністрація",
"moderator": "Модерує" "moderator": "Модерування"
}, },
"scope_in_timeline": { "scope_in_timeline": {
"direct": "Особисто", "direct": "Особисто",
"local": "Місцево — допис видно тільки на вашому сервері", "local": "Місцево — допис видно тільки на вашому сервері",
"private": "Приватно", "private": "Приватно",
"public": "Загальнодоступно", "public": "Загальнодоступно",
"unlisted": "Непублічно" "unlisted": "Приховано"
}, },
"show_less": "Показати менше", "show_less": "Показати менше",
"show_more": "Показати більше", "show_more": "Показати більше",
"submit": "Відправити", "submit": "Надіслати",
"verify": "Перевірити" "verify": "Перевірити"
}, },
"image_cropper": { "image_cropper": {
@ -154,7 +156,7 @@
}, },
"importer": { "importer": {
"error": "Під час імпортування файлу сталася помилка.", "error": "Під час імпортування файлу сталася помилка.",
"submit": "Відправити", "submit": "Надіслати",
"success": "Імпортовано успішно." "success": "Імпортовано успішно."
}, },
"interactions": { "interactions": {
@ -164,8 +166,72 @@
"moves": "Переїзди користувач_ок" "moves": "Переїзди користувач_ок"
}, },
"languages": { "languages": {
"ar": "арабська",
"az": "азербайджанська",
"bg": "болгарська",
"cs": "чеська",
"da": "данська",
"de": "німецька",
"el": "грецька",
"en": "англійська", "en": "англійська",
"uk": "українська" "eo": "есперанто",
"es": "іспанська",
"fa": "перська",
"fi": "фінська",
"fr": "французька",
"ga": "ірландська",
"he": "іврит",
"hi": "гінді",
"hu": "угорська",
"id": "індонезійська",
"it": "італійська",
"ja": "японська",
"ko": "корейська",
"lt": "литовська",
"lv": "латвійська",
"nl": "нідерландська",
"pl": "польська",
"pt": "португальська",
"ru": "російська",
"sk": "словацька",
"sv": "шведська",
"tr": "турецька",
"translated_from": {
"ar": "Перекладено з арабської",
"az": "Перекладено з азербайджанської",
"bg": "Перекладено з болгарської",
"cs": "Перекладено з чеської",
"da": "Перекладено з данської",
"de": "Перекладено з німецької",
"el": "Перекладено з грецької",
"en": "Перекладено з англійської",
"eo": "Перекладено з есперанто",
"es": "Перекладено з іспанської",
"fa": "Перекладено з перської",
"fi": "Перекладено з фінської",
"fr": "Перекладено з французької",
"ga": "Перекладено з ірландської",
"he": "Перекладено з івриту",
"hi": "Перекладено з гінді",
"hu": "Перекладено з угорської",
"id": "Перекладено з індонезійської",
"it": "Перекладено з італійської",
"ja": "Перекладено з японської",
"ko": "Перекладено з корейської",
"lt": "Перекладено з литовської",
"lv": "Перекладено з латвійської",
"nl": "Перекладено з нідерландської",
"pl": "Перекладено з польської",
"pt": "Перекладено з португальської",
"ru": "Перекладено з російської",
"sk": "Перекладено зі словацької",
"sv": "Перекладено зі словенської",
"tr": "Перекладено з турецької",
"uk": "Перекладено з української",
"zh": "Перекладено з китайської"
},
"uk": "українська",
"zh": "китайська"
}, },
"lists": { "lists": {
"create": "Створити", "create": "Створити",
@ -173,6 +239,7 @@
"following_only": "Лише за ким ви стежите", "following_only": "Лише за ким ви стежите",
"lists": "Списки", "lists": "Списки",
"new": "Новий список", "new": "Новий список",
"save": "Зберегти зміни",
"search": "Знайти користувач_ок", "search": "Знайти користувач_ок",
"title": "Назва списку" "title": "Назва списку"
}, },
@ -199,6 +266,7 @@
"username": "Логін" "username": "Логін"
}, },
"media_modal": { "media_modal": {
"counter": "{current} / {total}",
"hide": "Закрити медіаперегляд", "hide": "Закрити медіаперегляд",
"next": "Наступна", "next": "Наступна",
"previous": "Попередня" "previous": "Попередня"
@ -222,7 +290,9 @@
"reports": "Скарги", "reports": "Скарги",
"resolve": "Вирішено", "resolve": "Вирішено",
"show_closed": "Показати закриті", "show_closed": "Показати закриті",
"statuses": "Дописів: { count } | Дописів: { count }" "statuses": "Дописів: { count } | Дописів: { count }",
"tag_policy_notice": "Увімкніть MRF TagPolicy, щоб обмежувати окремі обліковки",
"tags": "Обмежити обліковку"
}, },
"statuses": "Дописи", "statuses": "Дописи",
"users": "Користувач_ки" "users": "Користувач_ки"
@ -242,21 +312,21 @@
"home_timeline_description": "Дописи від тих, на кого ви підписані", "home_timeline_description": "Дописи від тих, на кого ви підписані",
"interactions": "Взаємодії", "interactions": "Взаємодії",
"lists": "Списки", "lists": "Списки",
"mentions": "Згадування", "mentions": "Згадки",
"moderation": "Модерування", "moderation": "Модерування",
"preferences": "Налаштування", "preferences": "Налаштування",
"public_timeline_description": "Загальнодоступні дописи всіх на цьому сервері", "public_timeline_description": "Загальнодоступні дописи всіх на цьому сервері",
"public_tl": "Спільна стрічка", "public_tl": "Спільна стрічка",
"search": "Пошук", "search": "Пошук",
"timeline": "Домашня стрічка", "timeline": "Стрічка",
"timelines": "Стрічки", "timelines": "Стрічки",
"twkn": "Уся відома мережа", "twkn": "Уся відома мережа",
"twkn_timeline_description": "Дописи з усієї мережі", "twkn_timeline_description": "Дописи з усієї мережі",
"user_search": "Пошук користувач_ок", "user_search": "Пошук користувач_ок",
"who_to_follow": "Кого відстежувати" "who_to_follow": "На кого підписатись"
}, },
"notifications": { "notifications": {
"broken_favorite": "Невідомий допис, шукаю його…", "broken_favorite": "Допис невідомий, пошук триває…",
"error": "Помилка при оновленні сповіщень: {0}", "error": "Помилка при оновленні сповіщень: {0}",
"favorited_you": "вподобує", "favorited_you": "вподобує",
"follow_request": "хоче підписатись", "follow_request": "хоче підписатись",
@ -285,12 +355,12 @@
"polls": { "polls": {
"add_option": "Додати варіант", "add_option": "Додати варіант",
"add_poll": "Додати опитування", "add_poll": "Додати опитування",
"expired": "Опитування закінчилось {0} тому", "expired": "Завершено {0} тому",
"expires_in": "Опитування закінчується через {0}", "expires_in": "До кінця {0}",
"expiry": "Термін опитування", "expiry": "Термін опитування",
"multiple_choices": "Декілька варіантів", "multiple_choices": "Декілька варіантів",
"not_enough_options": "Замало унікальних варіантів в опитуванні", "not_enough_options": "Замало унікальних варіантів в опитуванні",
"option": "Відповідь", "option": "Варіант",
"people_voted_count": "Осіб: {count} | Осіб: {count}", "people_voted_count": "Осіб: {count} | Осіб: {count}",
"single_choice": "Один варіант", "single_choice": "Один варіант",
"type": "Тип опитування", "type": "Тип опитування",
@ -322,7 +392,7 @@
"media_not_sensitive_warning": "Ви вказали засторогу, але не позначили вкладення дражливими!", "media_not_sensitive_warning": "Ви вказали засторогу, але не позначили вкладення дражливими!",
"new_status": "Новий допис", "new_status": "Новий допис",
"post": "Розмістити", "post": "Розмістити",
"posting": "Відправляється", "posting": "Розміщення",
"preview": "Попередній перегляд", "preview": "Попередній перегляд",
"preview_empty": "Порожньо", "preview_empty": "Порожньо",
"scope": { "scope": {
@ -340,11 +410,13 @@
} }
}, },
"registration": { "registration": {
"awaiting_email_confirmation": "Вам надіслано лист підтвердження створення обліковки. Перевірте е-пошту, щоб завершити реєстрацію.",
"awaiting_email_confirmation_title": "Очікування підтвердження поштою",
"bio": "Опис", "bio": "Опис",
"bio_placeholder": "як-от:\nВолинянка. Подорожую.\nДемократична соціалістка. Пишу драматичні поеми. Жити хочу! Геть, думи сумні!", "bio_placeholder": "як-от:\nВолинянка. Подорожую.\nДемократична соціалістка. Пишу драматичні поеми. Жити хочу! Геть, думи сумні!",
"captcha": "CAPTCHA", "captcha": "CAPTCHA",
"email": "Е-пошта", "email": "Е-пошта",
"email_language": "Якою мовою отримувати листи з сервера?", "email_language": "Мова листів сервера",
"fullname": "Ім'я", "fullname": "Ім'я",
"fullname_placeholder": "як-от Лариса Косач", "fullname_placeholder": "як-от Лариса Косач",
"new_captcha": "Натисніть на зображення, щоб оновити код, якщо він нерозбірливий", "new_captcha": "Натисніть на зображення, щоб оновити код, якщо він нерозбірливий",
@ -353,6 +425,8 @@
"reason_placeholder": "Запити на реєстрацію підтверджуються вручну.\nРозкажіть адміністрації, чому хочете зареєструватися.", "reason_placeholder": "Запити на реєстрацію підтверджуються вручну.\nРозкажіть адміністрації, чому хочете зареєструватися.",
"register": "Зареєструватися", "register": "Зареєструватися",
"registration": "Реєстрація", "registration": "Реєстрація",
"request_sent": "Ваш запит на реєстрацію надіслано на розгляд. Ви отримаєте лист, коли вашу реєстрацію схвалять.",
"request_sent_title": "Запит на реєстрацію надіслано",
"token": "Ключ запрошення", "token": "Ключ запрошення",
"username_placeholder": "як-от lesia", "username_placeholder": "як-от lesia",
"validations": { "validations": {
@ -370,7 +444,7 @@
"searching_for": "Шукаю" "searching_for": "Шукаю"
}, },
"search": { "search": {
"hashtags": "Хештеги", "hashtags": "Теги",
"no_results": "Немає результатів", "no_results": "Немає результатів",
"people": "Люди", "people": "Люди",
"people_talking": "{count} людей говорять про це", "people_talking": "{count} людей говорять про це",
@ -382,34 +456,34 @@
"settings": { "settings": {
"accent": "Акцент", "accent": "Акцент",
"account_alias": "Інші обліковки", "account_alias": "Інші обліковки",
"account_alias_table_head": "Нова обліковка", "account_alias_table_head": "Попередня обліковка",
"account_backup": "Резервне копіювання обліковки", "account_backup": "Резервне копіювання обліковки",
"account_backup_description": "Можете завантажити архів даних і дописів своєї обліковки. Але імпортувати їх на іншу обліковку поки неможливо.", "account_backup_description": "Можете завантажити архів даних і дописів своєї обліковки. Але імпортувати їх на іншу обліковку поки неможливо.",
"account_backup_table_head": "Резервна копія", "account_backup_table_head": "Резервна копія",
"account_privacy": "Приватність", "account_privacy": "Приватність",
"add_alias_error": "Помилка додання нової обліковки: {error}", "add_alias_error": "Помилка додання обліковки: {error}",
"add_backup": "Створити резервну копію", "add_backup": "Створити резервну копію",
"add_backup_error": "Помилка резервного копіювання: {error}", "add_backup_error": "Помилка резервного копіювання: {error}",
"added_alias": "Нову обліковку додано.", "added_alias": "Обліковку додано.",
"added_backup": "Резервну копію створено.", "added_backup": "Резервну копію створено.",
"allow_following_move": "Дозволити автостеження при переміщенні на інший інстанс", "allow_following_move": "Дозволити автостеження при переміщенні на інший інстанс",
"always_show_post_button": "Завжди показувати кнопку «Новий допис»", "always_show_post_button": "Завжди показувати кнопку «Новий допис»",
"app_name": "Назва програми", "app_name": "Назва програми",
"attachmentRadius": "Вкладення", "attachmentRadius": "Вкладення",
"attachments": "Вкладення", "attachments": "Вкладення",
"autohide_floating_post_button": "Автоматично ховати кнопку \"Новий допис\" (в мобільній версії)", "autohide_floating_post_button": "Автоматично ховати кнопку «Новий допис» (на мобільному)",
"avatar": "Аватар", "avatar": "Аватар",
"avatarAltRadius": "Аватари у сповіщеннях", "avatarAltRadius": "Аватари у сповіщеннях",
"avatarRadius": "Аватари", "avatarRadius": "Аватари",
"avatar_size_instruction": "Рекомендований мінімальний розмір для зображень аватара становить 150x150 пікселів.", "avatar_size_instruction": "Рекомендований мінімальний розмір для зображень аватара становить 150x150 пікселів.",
"background": "Обкладинка", "background": "Тло",
"backup_not_ready": "Резервна копія ще не готова.", "backup_not_ready": "Резервна копія ще не готова.",
"bio": "Опис", "bio": "Опис",
"block_export": "Експорт блокувань", "block_export": "Експорт блокувань",
"block_export_button": "Експорт блокувань у файл CSV", "block_export_button": "Експорт блокувань у CSV-файл",
"block_import": "Імпорт блокувань", "block_import": "Імпорт блокувань",
"block_import_error": "Помилка імпортування блокувань", "block_import_error": "Помилка імпорту блокувань",
"blocks_imported": "Блокування імпортовані! Їх обробка триватиме певний час.", "blocks_imported": "Блокування імпортовано! Їх буде застосовано поступово.",
"blocks_tab": "Блокування", "blocks_tab": "Блокування",
"bot": "Це обліковка бота", "bot": "Це обліковка бота",
"btnRadius": "Кнопки", "btnRadius": "Кнопки",
@ -441,6 +515,11 @@
"conversation_display": "Стиль показу розмови", "conversation_display": "Стиль показу розмови",
"conversation_display_linear": "Колонка", "conversation_display_linear": "Колонка",
"conversation_display_tree": "Дерево", "conversation_display_tree": "Дерево",
"conversation_other_replies_button": "Кнопка «Переглянути ще»",
"conversation_other_replies_button_below": "Під дописами",
"conversation_other_replies_button_inside": "Всередині дописів",
"current_avatar": "Ваш поточний аватар",
"current_mascot": "Ваш поточний маскот",
"current_password": "Поточний пароль", "current_password": "Поточний пароль",
"data_import_export_tab": "Імпорт/експорт даних", "data_import_export_tab": "Імпорт/експорт даних",
"default_vis": "Типовий рівень приватності", "default_vis": "Типовий рівень приватності",
@ -461,24 +540,24 @@
"expire_posts_input_placeholder": "Скільки днів", "expire_posts_input_placeholder": "Скільки днів",
"export_theme": "Завантажити", "export_theme": "Завантажити",
"file_export_import": { "file_export_import": {
"backup_restore": "Резервне копіювання налаштувань", "backup_restore": "Копія налаштувань",
"backup_settings": "Завантажити файл налаштувань", "backup_settings": "Завантажити файл налаштувань",
"backup_settings_theme": "Завантажити налаштування й тему", "backup_settings_theme": "Завантажити налаштування й тему",
"errors": { "errors": {
"file_slightly_new": "Другорядна версія файлу відрізняється, деякі налаштування можуть бути не прийняті", "file_slightly_new": "Файл призначено для трохи новішої версії й може спрацювати не повністю",
"file_too_new": "Несумісна основна версія: {fileMajor}, ця версія PleromaFE ({feMajor}) занадто стара для його обробки", "file_too_new": "Версія {fileMajor} новіша, ніж ця AkkomaFE ({feMajor}) може обробити",
"file_too_old": "Несумісна основна версія: {fileMajor}, версія файлу занадто стара і не підтримується (мінімальна версія налаштувань {feMajor})", "file_too_old": "Версія {fileMajor} більше не підтримується (треба {feMajor} чи новіше)",
"invalid_file": "Вибраний файл не є резервною копією налаштувань Pleroma. Ніяких змін не було зроблено." "invalid_file": "Вибраний файл не є резервною копією налаштувань Pleroma. Ніяких змін не було зроблено."
}, },
"restore_settings": "Відновити налаштування з файлу" "restore_settings": "Відновити налаштування з файлу"
}, },
"filtering": "Фільтр", "filtering": "Фільтр",
"filtering_explanation": "Усі дописи з цими словами буде сховано. Пишіть кожне слово з нового рядка", "filtering_explanation": "Усі дописи з цими словами буде сховано. Пишіть кожне слово з нового рядка",
"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": "Передній план",
"fun": "Іграшки", "fun": "Іграшки",
"general": "Загальні", "general": "Загальні",
@ -497,7 +576,7 @@
"hide_list_aliases_error_action": "Закрити", "hide_list_aliases_error_action": "Закрити",
"hide_media_previews": "Приховати попередній перегляд медіа", "hide_media_previews": "Приховати попередній перегляд медіа",
"hide_muted_posts": "Ховати повідомлення приглушених користувач_ок", "hide_muted_posts": "Ховати повідомлення приглушених користувач_ок",
"hide_muted_threads": "Ховати заглушені гілки", "hide_muted_threads": "Ховати приглушені гілки",
"hide_post_stats": "Ховати статистику дописів (скільки вподобань тощо)", "hide_post_stats": "Ховати статистику дописів (скільки вподобань тощо)",
"hide_shoutbox": "Приховати оголошення сервера", "hide_shoutbox": "Приховати оголошення сервера",
"hide_site_favicon": "Вилучити значок сервера з шапки", "hide_site_favicon": "Вилучити значок сервера з шапки",
@ -506,9 +585,9 @@
"hide_user_stats": "Ховати користувацьку статистику (скільки підписок тощо)", "hide_user_stats": "Ховати користувацьку статистику (скільки підписок тощо)",
"hide_wallpaper": "Сховати шпалери сервера", "hide_wallpaper": "Сховати шпалери сервера",
"hide_wordfiltered_statuses": "Ховати дописи зі словами з фільтру", "hide_wordfiltered_statuses": "Ховати дописи зі словами з фільтру",
"import_blocks_from_a_csv_file": "Імпортувати заблокованих з csv файлу", "import_blocks_from_a_csv_file": "Імпортуйте CSV-файл блокувань",
"import_followers_from_a_csv_file": "Імпортувати відстежуваних з csv файлу", "import_followers_from_a_csv_file": "Імпортуйте CSV-файл підписок",
"import_mutes_from_a_csv_file": "Імпорт заглушених з csv файлу", "import_mutes_from_a_csv_file": "Імпортуйте CSV-файл приглушень",
"import_theme": "Вивантажити", "import_theme": "Вивантажити",
"inputRadius": "Поля вводу", "inputRadius": "Поля вводу",
"instance_default": "(усталено: {value})", "instance_default": "(усталено: {value})",
@ -518,13 +597,16 @@
"invalid_theme_imported": "Вибраний файл не є темою Pleroma. У вашу тему не внесено жодних змін.", "invalid_theme_imported": "Вибраний файл не є темою Pleroma. У вашу тему не внесено жодних змін.",
"limited_availability": "Недоступно у вашому браузері", "limited_availability": "Недоступно у вашому браузері",
"links": "Посилання", "links": "Посилання",
"list_aliases_error": "Помилка завантаження нових обліковок: {error}", "list_aliases_error": "Помилка завантаження обліковок: {error}",
"list_backups_error": "Помилка завантаження переліку копій: {error}", "list_backups_error": "Помилка завантаження переліку копій: {error}",
"lock_account_description": "Показувати лише схваленим підписни_цям", "lock_account_description": "Показувати лише схваленим підписни_цям",
"loop_video": "Зациклити відео", "loop_video": "Зациклити відео",
"loop_video_silent_only": "Зациклити відео без звуку (напр. Mastodon \"gifs\")", "loop_video_silent_only": "Зациклити відео без звуку (напр. Mastodon \"gifs\")",
"mascot": "Маскот Mastodon FE",
"max_depth_in_thread": "Максимальна кількість типово показаних рівнів гілки обговорення",
"max_thumbnails": "Максимальна кількість мініатюр на повідомлення", "max_thumbnails": "Максимальна кількість мініатюр на повідомлення",
"mention_link_display": "Показувати згадування", "mention_link_bolden_you": "Підсвічувати посилання, коли вас згадують",
"mention_link_display": "Формат посилань згадок",
"mention_link_display_full": "завжди повністю (як-от {'@'}lesia{'@'}example.org)", "mention_link_display_full": "завжди повністю (як-от {'@'}lesia{'@'}example.org)",
"mention_link_display_full_for_remote": "повністю, якщо це інший сервер (як-от {'@'}lesia{'@'}example.org)", "mention_link_display_full_for_remote": "повністю, якщо це інший сервер (як-от {'@'}lesia{'@'}example.org)",
"mention_link_display_short": "завжди коротко (як-от {'@'}lesia)", "mention_link_display_short": "завжди коротко (як-от {'@'}lesia)",
@ -557,34 +639,37 @@
"more_settings": "Більше налаштувань", "more_settings": "Більше налаштувань",
"move_account": "Переїхати", "move_account": "Переїхати",
"move_account_error": "Помилка переїзду обліковки: {error}", "move_account_error": "Помилка переїзду обліковки: {error}",
"move_account_notes": "Щоб переїхати з цієї обліковки на іншу, вкажіть у її налаштуваннях цю облікову як нову.", "move_account_notes": "Щоб переїхати з цієї обліковки на іншу, додайте в її налаштуваннях цю обліковку як попередню.",
"move_account_target": "Нова обліковка (як-от {example})",
"moved_account": "Переїзд обліковки виконано.",
"mute_bot_posts": "Сховати дописи ботів", "mute_bot_posts": "Сховати дописи ботів",
"mute_export": "Експорт ігнорувань", "mute_export": "Експорт приглушень",
"mute_export_button": "Експорт заглушених у csv файл", "mute_export_button": "Експорт приглушених у csv файл",
"mute_import": "Імпорт ігнорувань", "mute_import": "Імпорт приглушень",
"mute_import_error": "Під час імпорту заглушених сталася помилка", "mute_import_error": "Під час імпорту приглушених сталася помилка",
"mutes_and_blocks": "Заглушення та блокування", "mutes_and_blocks": "Приглушення та блокування",
"mutes_imported": "Заглушені імпортовані! Їх обробка триватиме певний час.", "mutes_imported": "Приглушення імпортовано! Їх буде застосовано поступово.",
"mutes_tab": "Заглушені", "mutes_tab": "Приглушення",
"name": "Ім'я", "name": "Ім'я",
"name_bio": "Особисті дані", "name_bio": "Особисті дані",
"new_alias_target": "Вкажіть нову обліковку (як-от {example})", "new_alias_target": "Додайте стару обліковку ({example})",
"new_email": "Нова е-пошта", "new_email": "Нова е-пошта",
"new_password": "Новий пароль", "new_password": "Новий пароль",
"no_blocks": "Блокування відсутні", "no_blocks": "Нікого не заблоковано",
"no_mutes": "Заглушені відсутні", "no_mutes": "Нікого не приглушено",
"no_rich_text_description": "Видалення всього форматування тексту з усіх дописів", "no_rich_text_description": "Видалення всього форматування тексту з усіх дописів",
"notification_blocks": "Блокування користувача зупиняє всі сповіщення від нього, а також скасовує його відстеження.", "notification_blocks": "Щоб не отримувати сповіщень від когось і вилучити їх із підписни_ць, заблокуйте їх.",
"notification_mutes": "Щоб перестати отримувати сповіщення від певного користувача, заглушіть його.", "notification_mutes": "Щоб просто не отримувати сповіщень від когось, приглушіть їх.",
"notification_setting_block_from_strangers": "Блокувати сповіщення від тих, на кого ви не підписані", "notification_setting_block_from_strangers": "Блокувати сповіщення від тих, на кого ви не підписані",
"notification_setting_filters": "Фільтри", "notification_setting_filters": "Фільтри",
"notification_setting_hide_if_cw": "Ховати вміст push-сповіщення за наявності застороги",
"notification_setting_hide_notification_contents": "Ховати відправника та вміст push-сповіщень", "notification_setting_hide_notification_contents": "Ховати відправника та вміст push-сповіщень",
"notification_setting_privacy": "Приватність", "notification_setting_privacy": "Приватність",
"notification_visibility": "Сповіщати про такі події", "notification_visibility": "Сповіщати про такі події",
"notification_visibility_emoji_reactions": "Реакції", "notification_visibility_emoji_reactions": "Реакції",
"notification_visibility_follows": ідписни_ці", "notification_visibility_follows": ідписни_ці",
"notification_visibility_likes": "Вподобане", "notification_visibility_likes": "Вподобане",
"notification_visibility_mentions": "Згадування", "notification_visibility_mentions": "Згадки",
"notification_visibility_moves": "Переїзди користувач_ок", "notification_visibility_moves": "Переїзди користувач_ок",
"notification_visibility_polls": "Результати голосувань", "notification_visibility_polls": "Результати голосувань",
"notification_visibility_repeats": "Поширення", "notification_visibility_repeats": "Поширення",
@ -593,7 +678,7 @@
"oauth_tokens": "OAuth-ключі", "oauth_tokens": "OAuth-ключі",
"pad_emoji": "Автоматично додавати простір з обидвох сторін емоджі", "pad_emoji": "Автоматично додавати простір з обидвох сторін емоджі",
"panelRadius": "Панелі", "panelRadius": "Панелі",
"pause_on_unfocused": "Призупинити трансляцію, коли вкладка неактивна", "pause_on_unfocused": "Лише коли вкладка активна",
"play_videos_in_modal": "Відтворювати відео у спливаючій рамці", "play_videos_in_modal": "Відтворювати відео у спливаючій рамці",
"post_look_feel": "Вигляд дописів", "post_look_feel": "Вигляд дописів",
"post_status_content_type": "Типова розмітка тексту", "post_status_content_type": "Типова розмітка тексту",
@ -611,7 +696,7 @@
"profile_tab": "Профіль", "profile_tab": "Профіль",
"radii_help": "Радіус заокруглення кутів інтерфейсу (в пікселях)", "radii_help": "Радіус заокруглення кутів інтерфейсу (в пікселях)",
"refresh_token": "Оновити ключ", "refresh_token": "Оновити ключ",
"remove_alias": "Вилучити нову обліковку", "remove_alias": "Вилучити обліковку",
"remove_backup": "Вилучити", "remove_backup": "Вилучити",
"render_mfm": "Показувати розмітку Misskey", "render_mfm": "Показувати розмітку Misskey",
"render_mfm_on_hover": "Анімувати MFM лише при наведенні", "render_mfm_on_hover": "Анімувати MFM лише при наведенні",
@ -633,13 +718,14 @@
"saving_err": "Помилка при збереженні налаштувань", "saving_err": "Помилка при збереженні налаштувань",
"saving_ok": "Налаштування збережені", "saving_ok": "Налаштування збережені",
"scope_copy": "Відповідати на тому ж рівні приватності (завжди ввімкнено для особистих повідомлень)", "scope_copy": "Відповідати на тому ж рівні приватності (завжди ввімкнено для особистих повідомлень)",
"search_user_to_block": "Шукайте кого ви хочете заблокувати", "search_user_to_block": "Шукайте, кого слід заблокувати",
"search_user_to_mute": "Шукайте кого ви хочете заглушити", "search_user_to_mute": "Шукайте, кого слід приглушити",
"security": "Безпека", "security": "Безпека",
"security_tab": "Безпека", "security_tab": "Безпека",
"sensitive_by_default": "Одразу позначати дописи дражливими", "sensitive_by_default": "Одразу позначати дописи дражливими",
"sensitive_if_subject": "Позначати зображення дражливими, якщо вказано застереження", "sensitive_if_subject": "Позначати зображення дражливими, якщо вказано засторогу",
"set_new_avatar": "Встановити новий аватар", "set_new_avatar": "Встановити новий аватар",
"set_new_mascot": "Встановити нового маскота",
"set_new_profile_background": "Встановити нову обкладинку профілю", "set_new_profile_background": "Встановити нову обкладинку профілю",
"set_new_profile_banner": "Встановити новий банер", "set_new_profile_banner": "Встановити новий банер",
"setting_changed": "Конфігурація відрізняється від типової", "setting_changed": "Конфігурація відрізняється від типової",
@ -664,6 +750,7 @@
"show_panel_nav_shortcuts": "Ярлики стрічок у заголовку панелі", "show_panel_nav_shortcuts": "Ярлики стрічок у заголовку панелі",
"show_scrollbars": "Смуги прокрутки в бокових панелях", "show_scrollbars": "Смуги прокрутки в бокових панелях",
"show_wider_shortcuts": "Більша відстань між ярликами в заголовку", "show_wider_shortcuts": "Більша відстань між ярликами в заголовку",
"show_yous": "Показувати «(ви)»",
"stop_gifs": "Анімувати GIF лише при наведенні", "stop_gifs": "Анімувати GIF лише при наведенні",
"streaming": "Автоматично показувати нові дописи вгорі стрічки", "streaming": "Автоматично показувати нові дописи вгорі стрічки",
"style": { "style": {
@ -744,10 +831,10 @@
"faint_link": "корисний підручник", "faint_link": "корисний підручник",
"fine_print": "Прочитайте наш {0} аби нічого нового не дізнатись!", "fine_print": "Прочитайте наш {0} аби нічого нового не дізнатись!",
"header": "Попередній перегляд", "header": "Попередній перегляд",
"header_faint": "Все гаразд", "header_faint": "Усе гаразд",
"input": "Що нового?", "input": "Що нового?",
"link": "невеличке посилання", "link": "невеличке посилання",
"mono": "змісту", "mono": "вмісту",
"text": "Трохи більше {0} та {1}" "text": "Трохи більше {0} та {1}"
}, },
"radii": { "radii": {
@ -819,7 +906,7 @@
"subject_line_noop": "не копіювати", "subject_line_noop": "не копіювати",
"text": "Текст", "text": "Текст",
"theme": "Тема", "theme": "Тема",
"theme_help": "Замініть кольори теми своїми в форматі (#rrggbb).", "theme_help": "Замініть кольори теми своїми в форматі #rrggbb.",
"theme_help_v2_1": "Деякі кольори й прозорості розраховуються автоматично. Позначайте їх пташками, щоб замінити їх вручну. Кнопка «Очистити все» видаляє всі такі заміни.", "theme_help_v2_1": "Деякі кольори й прозорості розраховуються автоматично. Позначайте їх пташками, щоб замінити їх вручну. Кнопка «Очистити все» видаляє всі такі заміни.",
"theme_help_v2_2": "Значки під кольорами показують, наскільки добре видно текст на тлі. При наведенні побачите деталі. Якщо використовуєте прозорість, буде оцінено найгірший варіант.", "theme_help_v2_2": "Значки під кольорами показують, наскільки добре видно текст на тлі. При наведенні побачите деталі. Якщо використовуєте прозорість, буде оцінено найгірший варіант.",
"third_column_mode": "Третя панель, якщо достатньо місця", "third_column_mode": "Третя панель, якщо достатньо місця",
@ -828,13 +915,21 @@
"third_column_mode_postform": "Новий допис і меню", "third_column_mode_postform": "Новий допис і меню",
"token": "Ключ", "token": "Ключ",
"tooltipRadius": "Підказки/попередження", "tooltipRadius": "Підказки/попередження",
"type_domains_to_mute": "Пошук доменів для заглушення", "translation_language": "Мова автоматичного перекладу",
"tree_advanced": "Показувати додаткові кнопки відкриття й закриття ланцюгів відповідей у гілках",
"tree_fade_ancestors": "Показувати менш виразно дописи, що передують поточному",
"type_domains_to_mute": "Шукайте домени, які слід приглушити",
"upload_a_photo": "Вивантажити фото", "upload_a_photo": "Вивантажити фото",
"useStreamingApi": "Отримувати дописи та сповіщення наживо", "useStreamingApi": "Отримувати дописи та сповіщення наживо",
"useStreamingApiWarning": "(Не рекомендується, експериментально, повідомлення можуть зникати)", "useStreamingApiWarning": "Загалом працює. Якщо не зовсім, спробуєте оновити сторінку?",
"use_at_icon": "Значок {'@'} замість символа", "use_at_icon": "Значок {'@'} замість символу",
"use_blurhash": "Показувати дражливі мініатюри (як розмиті кольори)",
"use_contain_fit": "Не обрізати краї мініатюр", "use_contain_fit": "Не обрізати краї мініатюр",
"use_one_click_nsfw": "Відкривати NSFW вкладення одним кліком миші", "use_one_click_nsfw": "Відкривати NSFW вкладення одним кліком миші",
"user_accepts_direct_messages_from": "Приймати особисті повідомлення",
"user_accepts_direct_messages_from_everybody": "Будь-чиї",
"user_accepts_direct_messages_from_nobody": "Нічиї",
"user_accepts_direct_messages_from_people_i_follow": "Від тих, на кого я підписуюсь",
"user_mutes": "Користувач_ки", "user_mutes": "Користувач_ки",
"user_profile_default_tab": "Типова вкладка профілів", "user_profile_default_tab": "Типова вкладка профілів",
"user_profiles": "Користувацькі профілі", "user_profiles": "Користувацькі профілі",
@ -853,8 +948,18 @@
"word_filter": "Фільтр слів", "word_filter": "Фільтр слів",
"wordfilter": "Фільтр слів" "wordfilter": "Фільтр слів"
}, },
"settings_profile": {
"creating": "Створення профілю налаштувань «{profile}»…",
"synchronization_error": "Не вдалося синхронізувати налаштування: {err}",
"synchronized": "Налаштування синхронізовано!",
"synchronizing": "Синхронізація профілю налаштувань «{profile}»…"
},
"status": { "status": {
"ancestor_follow": "Переглянути ще {numReplies} під цим дописом | Переглянути ще {numReplies} під цим дописом",
"ancestor_follow_with_icon": "{icon} {text}",
"attachment_stop_flash": "Зупинити Flash-плеєр",
"bookmark": "Додати до закладок", "bookmark": "Додати до закладок",
"collapse_attachments": "Згорнути вкладення",
"copy_link": "Скопіювати посилання на допис", "copy_link": "Скопіювати посилання на допис",
"delete": "Видалити допис", "delete": "Видалити допис",
"delete_confirm": "Точно видалити допис?", "delete_confirm": "Точно видалити допис?",
@ -868,11 +973,17 @@
"expand": "Розгорнути", "expand": "Розгорнути",
"external_source": "Зовнішнє джерело", "external_source": "Зовнішнє джерело",
"favorites": "Вподобане", "favorites": "Вподобане",
"hide_attachment": "Сховати вкладення",
"hide_content": "Сховати вміст", "hide_content": "Сховати вміст",
"hide_full_subject": "Сховати всю тему", "hide_full_subject": "Згорнути засторогу",
"mute_conversation": "Заглушити розмову", "many_attachments": "Вкладень: {number} | Вкладень: {number}",
"mentions": "Згадки",
"move_down": "Посунути вкладення праворуч",
"move_up": "Посунути вкладення ліворуч",
"mute_conversation": "Приглушити розмову",
"nsfw": "Дражливий вміст", "nsfw": "Дражливий вміст",
"open_gallery": "Відкрити галерею", "open_gallery": "Відкрити галерею",
"override_translation_source_language": "Замістити початкову мову",
"pin": "Закріпити в профілі", "pin": "Закріпити в профілі",
"pinned": "Закріплено", "pinned": "Закріплено",
"plus_more": "ще {number}", "plus_more": "ще {number}",
@ -881,21 +992,33 @@
"redraft_confirm_accept_button": "Так, видалити й переписати", "redraft_confirm_accept_button": "Так, видалити й переписати",
"redraft_confirm_cancel_button": "Ні, лишити оригінал", "redraft_confirm_cancel_button": "Ні, лишити оригінал",
"redraft_confirm_title": "Підтвердьте видалення й переписання", "redraft_confirm_title": "Підтвердьте видалення й переписання",
"remove_attachment": "Видалити долучення", "remove_attachment": "Видалити вкладення",
"repeat_confirm": "Точно поширити допис?",
"repeat_confirm_accept_button": "Так, поширити",
"repeat_confirm_cancel_button": "Ні, не поширювати",
"repeat_confirm_title": "Підтвердьте поширення",
"repeats": "Поширення", "repeats": "Поширення",
"replies_list": "Відповіді:", "replies_list": "Відповіді:",
"replies_list_with_others": "Ще відповідей: {numReplies} | Ще відповідей: {numReplies}",
"reply_to": "Відповідь", "reply_to": "Відповідь",
"show_all_attachments": "Показати всі вкладення", "show_all_attachments": "Показати всі вкладення",
"show_all_conversation": "Показати всю розмову (ще дописів: {numStatus}) | Показати всю розмову (ще дописів: {numStatus})",
"show_all_conversation_with_icon": "{icon} {text}",
"show_attachment_description": "Переглянути опис (натисніть саме вкладення, якщо опис не вміщається)", "show_attachment_description": "Переглянути опис (натисніть саме вкладення, якщо опис не вміщається)",
"show_attachment_in_modal": "Показати вкладення у вікні", "show_attachment_in_modal": "Показати вкладення у вікні",
"show_content": "Показати вміст", "show_content": "Показати вміст",
"show_full_subject": "Показати всю засторогу", "show_full_subject": "Показати всю засторогу",
"show_only_conversation_under_this": "Показати відповіді лише до цього допису",
"status_deleted": "Цей допис був видалений", "status_deleted": "Цей допис був видалений",
"status_unavailable": "Допис недоступний", "status_unavailable": "Допис недоступний",
"thread_follow": "Ще відповідей: {numStatus} | Ще відповідей: {numStatus}",
"thread_follow_with_icon": "{icon} {text}",
"thread_hide": "Сховати гілку", "thread_hide": "Сховати гілку",
"thread_muted": "Гілку приглушено", "thread_muted": "Гілку приглушено",
"thread_muted_and_words": ", має слова:", "thread_muted_and_words": ", має слова:",
"thread_show": "Показати гілку", "thread_show": "Показати гілку",
"thread_show_full": "Показати відповіді: {numStatus} | Показати відповіді: {numStatus}",
"thread_show_full_with_icon": "{icon} {text}",
"translate": "Перекласти", "translate": "Перекласти",
"translated_from": "В оригіналі: {language}", "translated_from": "В оригіналі: {language}",
"unbookmark": "Видалити із закладок", "unbookmark": "Видалити із закладок",
@ -929,6 +1052,7 @@
"collapse": "Згорнути", "collapse": "Згорнути",
"conversation": "Розмова", "conversation": "Розмова",
"error": "Помилка завантаження стрічки: {0}", "error": "Помилка завантаження стрічки: {0}",
"follow_tag": "Підписатись на тег",
"load_older": "Завантажити давніші дописи", "load_older": "Завантажити давніші дописи",
"no_more_statuses": "Більше немає дописів", "no_more_statuses": "Більше немає дописів",
"no_retweet_hint": "Допис приватний чи особистий, тож його не можна поширити чи цитувати", "no_retweet_hint": "Допис приватний чи особистий, тож його не можна поширити чи цитувати",
@ -938,8 +1062,12 @@
"show_new": "Показати нові", "show_new": "Показати нові",
"socket_broke": "Втрачено з'єднання у реальному часі: код {0}", "socket_broke": "Втрачено з'єднання у реальному часі: код {0}",
"socket_reconnected": "Встановлено з'єднання у реальному часі", "socket_reconnected": "Встановлено з'єднання у реальному часі",
"unfollow_tag": "Відписатись від тегу",
"up_to_date": "Оновлено" "up_to_date": "Оновлено"
}, },
"toast": {
"no_translation_target_set": "Не обрано цільової мови перекладу — може не вдатися. Оберіть у налаштуваннях, на яку мову перекладати."
},
"tool_tip": { "tool_tip": {
"accept_follow_request": "Дозволити підписатись", "accept_follow_request": "Дозволити підписатись",
"add_reaction": "Додати реакцію", "add_reaction": "Додати реакцію",
@ -978,14 +1106,14 @@
"disable_remote_subscription": "Заборонити підписуватись користувач_кам з інших серверів", "disable_remote_subscription": "Заборонити підписуватись користувач_кам з інших серверів",
"force_nsfw": "Позначити всі дописи дражливими", "force_nsfw": "Позначити всі дописи дражливими",
"force_unlisted": "Не показувати дописи в стрічці", "force_unlisted": "Не показувати дописи в стрічці",
"grant_admin": "Надати права адміністратора", "grant_admin": "Дозволити адміністрування",
"grant_moderator": "Надати права модератора", "grant_moderator": "Дозволити модерування",
"moderation": "Модерування", "moderation": "Модерування",
"quarantine": "Не розповсюджувати дописи на інших інстансах", "quarantine": "Не розповсюджувати дописи на інших інстансах",
"revoke_admin": "Позбавити прав адміністратора", "revoke_admin": "Позбавити прав адміністрування",
"revoke_moderator": "Позбавити прав модератора", "revoke_moderator": "Позбавити прав модерування",
"sandbox": "Показувати дописи лише підписни_цям", "sandbox": "Показувати дописи лише підписни_цям",
"strip_media": "Вилучити медіа з дописів користувача" "strip_media": "Вилучити медіа з дописів"
}, },
"approve": "Дозволити", "approve": "Дозволити",
"approve_confirm": "Точно дозволити користувач_ці на вас підписатись?", "approve_confirm": "Точно дозволити користувач_ці на вас підписатись?",
@ -1006,13 +1134,18 @@
"deny_confirm": "Точно відхилити запит на підписку?", "deny_confirm": "Точно відхилити запит на підписку?",
"deny_confirm_accept_button": "Так, відхилити", "deny_confirm_accept_button": "Так, відхилити",
"deny_confirm_cancel_button": "Ні, скасувати", "deny_confirm_cancel_button": "Ні, скасувати",
"deny_confirm_title": "Відхилити запит на підписку",
"domain_muted": "Розблокувати домен",
"edit_profile": "Редагувати профіль", "edit_profile": "Редагувати профіль",
"favorites": "Вподобання", "favorites": "Вподобання",
"follow": "Підписатись", "follow": "Підписатись",
"follow_cancel": "Скасувати запит", "follow_cancel": "Скасувати запит",
"follow_progress": "Запитую…", "follow_progress": "Надсилання…",
"follow_sent": "Запит відправлено!", "follow_sent": "Запит надіслано!",
"follow_tag": "Підписатись на тег",
"follow_unfollow": "Відписатись", "follow_unfollow": "Відписатись",
"followed_tags": "Підписки на теги",
"followed_users": "Підписки на користувач_ок",
"followees": "Підписки", "followees": "Підписки",
"followers": ідписни_ці", "followers": ідписни_ці",
"following": "Ви підписані!", "following": "Ви підписані!",
@ -1036,7 +1169,8 @@
"mute_confirm_title": "Приглушення", "mute_confirm_title": "Приглушення",
"mute_domain": "Заблокувати домен", "mute_domain": "Заблокувати домен",
"mute_progress": "Глушимо…", "mute_progress": "Глушимо…",
"muted": "Заглушено", "muted": "Приглушено",
"not_following_any_hashtags": "У вас нема підписок на теги",
"note": "Приватна нотатка", "note": "Приватна нотатка",
"per_day": "на день", "per_day": "на день",
"remote_follow": "Підписатись", "remote_follow": "Підписатись",
@ -1053,8 +1187,9 @@
"unfollow_confirm_accept_button": "Так, відписатись", "unfollow_confirm_accept_button": "Так, відписатись",
"unfollow_confirm_cancel_button": "Ні, не відписуватись", "unfollow_confirm_cancel_button": "Ні, не відписуватись",
"unfollow_confirm_title": "Відписка", "unfollow_confirm_title": "Відписка",
"unmute": "Зняти глушення", "unfollow_tag": "Відписатись від тегу",
"unmute_progress": "Знімаємо глушення…", "unmute": "Відновити",
"unmute_progress": "Відновлення…",
"unsubscribe": "Відписатись" "unsubscribe": "Відписатись"
}, },
"user_profile": { "user_profile": {
@ -1069,7 +1204,7 @@
"forward_description": "Це обліковка з іншого сервера. Надіслати його адміністрації копію скарги?", "forward_description": "Це обліковка з іншого сервера. Надіслати його адміністрації копію скарги?",
"forward_to": "Переслати до {0}", "forward_to": "Переслати до {0}",
"generic_error": "Виникла помилка під час обробки вашого запиту.", "generic_error": "Виникла помилка під час обробки вашого запиту.",
"submit": "Відправити", "submit": "Надіслати",
"title": "Поскаржитись на {0}" "title": "Поскаржитись на {0}"
}, },
"who_to_follow": { "who_to_follow": {

View file

@ -926,6 +926,10 @@
"use_blurhash": "对NSFW的缩略图使用模糊处理", "use_blurhash": "对NSFW的缩略图使用模糊处理",
"use_contain_fit": "生成缩略图时不要裁剪附件", "use_contain_fit": "生成缩略图时不要裁剪附件",
"use_one_click_nsfw": "点击一次以打开工作场所不适宜NSFW的附件", "use_one_click_nsfw": "点击一次以打开工作场所不适宜NSFW的附件",
"user_accepts_direct_messages_from": "允许私信自",
"user_accepts_direct_messages_from_everybody": "所有人",
"user_accepts_direct_messages_from_nobody": "没有人",
"user_accepts_direct_messages_from_people_i_follow": "我关注的人",
"user_mutes": "用户", "user_mutes": "用户",
"user_profile_default_tab": "用户资料中的默认标签页", "user_profile_default_tab": "用户资料中的默认标签页",
"user_profiles": "用户资料", "user_profiles": "用户资料",

View file

@ -199,21 +199,28 @@ export const mutations = {
}) })
}, },
saveBlockIds (state, blockIds) { saveBlockIds (state, blockIds) {
state.currentUser.blockIds = blockIds console.log("ADDING BLOCK IDS", blockIds);
state.currentUser.blockIds = uniq(concat(state.currentUser.blockIds || [], blockIds))
}, },
addBlockId (state, blockId) { addBlockId (state, blockId) {
if (state.currentUser.blockIds.indexOf(blockId) === -1) { if (state.currentUser.blockIds.indexOf(blockId) === -1) {
state.currentUser.blockIds.push(blockId) state.currentUser.blockIds.push(blockId)
} }
}, },
setBlockIdsMaxId (state, blockIdsMaxId) {
state.currentUser.blockIdsMaxId = blockIdsMaxId
},
saveMuteIds (state, muteIds) { saveMuteIds (state, muteIds) {
state.currentUser.muteIds = muteIds state.currentUser.muteIds = uniq(concat(state.currentUser.muteIds || [], muteIds))
}, },
addMuteId (state, muteId) { addMuteId (state, muteId) {
if (state.currentUser.muteIds.indexOf(muteId) === -1) { if (state.currentUser.muteIds.indexOf(muteId) === -1) {
state.currentUser.muteIds.push(muteId) state.currentUser.muteIds.push(muteId)
} }
}, },
setMuteIdsMaxId (state, muteIdsMaxId) {
state.currentUser.muteIdsMaxId = muteIdsMaxId
},
updateMascot (state, mascotUrl) { updateMascot (state, mascotUrl) {
state.currentUser.mascot = mascotUrl state.currentUser.mascot = mascotUrl
}, },
@ -330,10 +337,21 @@ const users = {
.then((relationships) => store.commit('updateUserRelationship', relationships)) .then((relationships) => store.commit('updateUserRelationship', relationships))
} }
}, },
fetchBlocks (store) { fetchBlocks (store, args) {
return store.rootState.api.backendInteractor.fetchBlocks() const { reset } = args || {}
const maxId = store.state.currentUser.blockIdsMaxId
return store.rootState.api.backendInteractor.fetchBlocks({ maxId })
.then((blocks) => { .then((blocks) => {
store.commit('saveBlockIds', map(blocks, 'id')) store.commit('saveBlockIds', map(blocks, 'id'))
if (reset) {
store.commit('saveBlockIds', map(blocks, 'id'))
} else {
map(blocks, 'id').map(id => store.commit('addBlockId', id))
}
if (blocks.length) {
store.commit('setBlockIdsMaxId', last(blocks).id)
}
store.commit('addNewUsers', blocks) store.commit('addNewUsers', blocks)
return blocks return blocks
}) })
@ -353,10 +371,22 @@ const users = {
unblockUsers (store, ids = []) { unblockUsers (store, ids = []) {
return Promise.all(ids.map(id => unblockUser(store, id))) return Promise.all(ids.map(id => unblockUser(store, id)))
}, },
fetchMutes (store) { fetchMutes (store, args) {
return store.rootState.api.backendInteractor.fetchMutes() const { reset } = args || {}
const maxId = store.state.currentUser.muteIdsMaxId
return store.rootState.api.backendInteractor.fetchMutes({ maxId })
.then((mutes) => { .then((mutes) => {
store.commit('saveMuteIds', map(mutes, 'id')) store.commit('saveMuteIds', map(mutes, 'id'))
if (reset) {
store.commit('saveMuteIds', map(mutes, 'id'))
} else {
map(mutes, 'id').map(id => store.commit('addMuteId', id))
}
if (mutes.length) {
store.commit('setMuteIdsMaxId', last(mutes).id)
}
store.commit('addNewUsers', mutes) store.commit('addNewUsers', mutes)
return mutes return mutes
}) })

View file

@ -1166,8 +1166,13 @@ const generateMfaBackupCodes = ({ credentials }) => {
}).then((data) => data.json()) }).then((data) => data.json())
} }
const fetchMutes = ({ credentials }) => { const fetchMutes = ({ maxId, credentials }) => {
return promisedRequest({ url: MASTODON_USER_MUTES_URL, credentials }) const query = new URLSearchParams({ with_relationships: true })
if (maxId) {
query.append('max_id', maxId)
}
return promisedRequest({ url: `${MASTODON_USER_MUTES_URL}?${query.toString()}`, credentials })
.then((users) => users.map(parseUser)) .then((users) => users.map(parseUser))
} }
@ -1213,8 +1218,12 @@ const unsubscribeUser = ({ id, credentials }) => {
return promisedRequest({ url: MASTODON_UNSUBSCRIBE_USER(id), credentials, method: 'POST' }) return promisedRequest({ url: MASTODON_UNSUBSCRIBE_USER(id), credentials, method: 'POST' })
} }
const fetchBlocks = ({ credentials }) => { const fetchBlocks = ({ maxId, credentials }) => {
return promisedRequest({ url: MASTODON_USER_BLOCKS_URL, credentials }) const query = new URLSearchParams({ with_relationships: true })
if (maxId) {
query.append('max_id', maxId)
}
return promisedRequest({ url: `${MASTODON_USER_BLOCKS_URL}?${query.toString()}`, credentials })
.then((users) => users.map(parseUser)) .then((users) => users.map(parseUser))
} }