Merge branch 'develop' into feat/report-notification

This commit is contained in:
Shpuld Shpuldson 2021-01-27 13:24:19 +02:00
commit 8334649c11
19 changed files with 684 additions and 211 deletions

View File

@ -3,8 +3,13 @@ All notable changes to this project will be documented in this file.
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/). The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
## [Unreleased] ## [Unreleased]
### Fixed
- Button to remove uploaded media in post status form is now properly placed and sized.
- Fixed shoutbox not working in mobile layout
## [2.2.3] - 2021-01-18
### Added ### Added
- Added Report button to status ellipsis menu for easier reporting - Added Report button to status ellipsis menu for easier reporting
@ -12,6 +17,11 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/).
- Follows/Followers tabs on user profiles now display the content properly. - Follows/Followers tabs on user profiles now display the content properly.
- Handle punycode in screen names - Handle punycode in screen names
### Changed
- Don't filter own posts when they hit your wordfilter
- Language picker now uses native language names
## [2.2.2] - 2020-12-22 ## [2.2.2] - 2020-12-22
### Added ### Added
- Mouseover titles for emojis in reaction picker - Mouseover titles for emojis in reaction picker

View File

@ -178,6 +178,13 @@ a {
&.-fullwidth { &.-fullwidth {
width: 100%; width: 100%;
} }
&.-hover-highlight {
&:hover svg {
color: $fallback--lightText;
color: var(--lightText, $fallback--lightText);
}
}
} }
input, textarea, .select, .input { input, textarea, .select, .input {

View File

@ -12,11 +12,11 @@
v-model="language" v-model="language"
> >
<option <option
v-for="(langCode, i) in languageCodes" v-for="lang in languages"
:key="langCode" :key="lang.code"
:value="langCode" :value="lang.code"
> >
{{ languageNames[i] }} {{ lang.name }}
</option> </option>
</select> </select>
<FAIcon <FAIcon
@ -29,6 +29,7 @@
<script> <script>
import languagesObject from '../../i18n/messages' import languagesObject from '../../i18n/messages'
import localeService from '../../services/locale/locale.service.js'
import ISO6391 from 'iso-639-1' import ISO6391 from 'iso-639-1'
import _ from 'lodash' import _ from 'lodash'
import { library } from '@fortawesome/fontawesome-svg-core' import { library } from '@fortawesome/fontawesome-svg-core'
@ -42,12 +43,8 @@ library.add(
export default { export default {
computed: { computed: {
languageCodes () { languages () {
return languagesObject.languages return _.map(languagesObject.languages, (code) => ({ code: code, name: this.getLanguageName(code) })).sort((a, b) => a.name.localeCompare(b.name))
},
languageNames () {
return _.map(this.languageCodes, this.getLanguageName)
}, },
language: { language: {
@ -61,12 +58,13 @@ export default {
methods: { methods: {
getLanguageName (code) { getLanguageName (code) {
const specialLanguageNames = { const specialLanguageNames = {
'ja': 'Japanese (日本語)', 'ja_easy': 'やさしいにほんご',
'ja_easy': 'Japanese (やさしいにほんご)', 'zh': '简体中文',
'zh': 'Simplified Chinese (简体中文)', 'zh_Hant': '繁體中文'
'zh_Hant': 'Traditional Chinese (繁體中文)'
} }
return specialLanguageNames[code] || ISO6391.getName(code) const languageName = specialLanguageNames[code] || ISO6391.getNativeName(code)
const browserLocale = localeService.internalToBrowserLocale(code)
return languageName.charAt(0).toLocaleUpperCase(browserLocale) + languageName.slice(1)
} }
} }
} }

View File

@ -21,20 +21,17 @@
@keydown.enter.stop.prevent="nextOption(index)" @keydown.enter.stop.prevent="nextOption(index)"
> >
</div> </div>
<div <button
v-if="options.length > 2" v-if="options.length > 2"
class="icon-container" class="delete-option button-unstyled -hover-highlight"
>
<FAIcon
icon="times"
class="delete"
@click="deleteOption(index)" @click="deleteOption(index)"
/> >
<FAIcon icon="times" />
</button>
</div> </div>
</div> <button
<a
v-if="options.length < maxOptions" v-if="options.length < maxOptions"
class="add-option faint" class="add-option faint button-unstyled -hover-highlight"
@click="addOption" @click="addOption"
> >
<FAIcon <FAIcon
@ -43,7 +40,7 @@
/> />
{{ $t("polls.add_option") }} {{ $t("polls.add_option") }}
</a> </button>
<div class="poll-type-expiry"> <div class="poll-type-expiry">
<div <div
class="poll-type" class="poll-type"
@ -116,7 +113,6 @@
align-self: flex-start; align-self: flex-start;
padding-top: 0.25em; padding-top: 0.25em;
padding-left: 0.1em; padding-left: 0.1em;
cursor: pointer;
} }
.poll-option { .poll-option {
@ -135,19 +131,11 @@
} }
} }
.icon-container { .delete-option {
// Hack: Move the icon over the input box // Hack: Move the icon over the input box
width: 1.5em; width: 1.5em;
margin-left: -1.5em; margin-left: -1.5em;
z-index: 1; z-index: 1;
.delete {
cursor: pointer;
&:hover {
color: inherit;
}
}
} }
.poll-type-expiry { .poll-type-expiry {

View File

@ -302,11 +302,12 @@
:key="file.url" :key="file.url"
class="media-upload-wrapper" class="media-upload-wrapper"
> >
<FAIcon <button
class="fa-scale-110 fa-old-padding" class="button-unstyled hider"
icon="times"
@click="removeMediaFile(file)" @click="removeMediaFile(file)"
/> >
<FAIcon icon="times" />
</button>
<attachment <attachment
:attachment="file" :attachment="file"
:set-media="() => $store.dispatch('setMedia', newStatus.files)" :set-media="() => $store.dispatch('setMedia', newStatus.files)"
@ -516,26 +517,11 @@
} }
.attachments .media-upload-wrapper { .attachments .media-upload-wrapper {
padding: 0 0.5em; position: relative;
.attachment { .attachment {
margin: 0; margin: 0;
padding: 0; padding: 0;
position: relative;
}
.fa-scale-110 fa-old-padding {
position: absolute;
margin: 10px;
margin: .75em;
padding: .5em;
background: rgba(230,230,230,0.6);
z-index: 2;
color: black;
border-radius: $fallback--attachmentRadius;
border-radius: var(--attachmentRadius, $fallback--attachmentRadius);
font-weight: bold;
cursor: pointer;
} }
} }

View File

@ -113,14 +113,15 @@
& > .emoji-input { & > .emoji-input {
flex: 1 1 auto; flex: 1 1 auto;
margin: 0 .2em .5em; margin: 0 0.2em 0.5em;
min-width: 0; min-width: 0;
} }
&>.icon-container { .delete-field {
width: 20px; width: 20px;
align-self: center; align-self: center;
margin: 0 .2em .5em; margin: 0 0.2em 0.5em;
padding: 0 0.5em;
} }
} }
} }

View File

@ -124,24 +124,24 @@
:placeholder="$t('settings.profile_fields.value')" :placeholder="$t('settings.profile_fields.value')"
> >
</EmojiInput> </EmojiInput>
<div <button
class="icon-container" class="delete-field button-unstyled -hover-highlight"
@click="deleteField(i)"
> >
<FAIcon <FAIcon
v-show="newFields.length > 1" v-show="newFields.length > 1"
icon="times" icon="times"
@click="deleteField(i)"
/> />
</button>
</div> </div>
</div> <button
<a
v-if="newFields.length < maxFields" v-if="newFields.length < maxFields"
class="add-field faint" class="add-field faint button-unstyled -hover-highlight"
@click="addField" @click="addField"
> >
<FAIcon icon="plus" /> <FAIcon icon="plus" />
{{ $t("settings.profile_fields.add_field") }} {{ $t("settings.profile_fields.add_field") }}
</a> </button>
</div> </div>
<p> <p>
<Checkbox v-model="bot"> <Checkbox v-model="bot">

View File

@ -109,7 +109,7 @@
v-if="chat" v-if="chat"
@click="toggleDrawer" @click="toggleDrawer"
> >
<router-link :to="{ name: 'chat' }"> <router-link :to="{ name: 'chat-panel' }">
<FAIcon <FAIcon
fixed-width fixed-width
class="fa-scale-110 fa-old-padding" class="fa-scale-110 fa-old-padding"

View File

@ -157,6 +157,7 @@ const Status = {
return muteWordHits(this.status, this.muteWords) return muteWordHits(this.status, this.muteWords)
}, },
muted () { muted () {
if (this.statusoid.user.id === this.currentUser.id) return false
const { status } = this const { status } = this
const { reblog } = status const { reblog } = status
const relationship = this.$store.getters.relationship(status.user.id) const relationship = this.$store.getters.relationship(status.user.id)

View File

@ -83,7 +83,7 @@
v-if="!!visibleRole" v-if="!!visibleRole"
class="alert user-role" class="alert user-role"
> >
{{ visibleRole }} {{ $t(`user_card.roles.${visibleRole}`) }}
</span> </span>
<span <span
v-if="user.bot" v-if="user.bot"
@ -507,7 +507,6 @@
.user-role { .user-role {
flex: none; flex: none;
text-transform: capitalize;
color: $fallback--text; color: $fallback--text;
color: var(--alertNeutralText, $fallback--text); color: var(--alertNeutralText, $fallback--text);
background-color: $fallback--fg; background-color: $fallback--fg;

View File

@ -740,6 +740,10 @@
"quarantine": "Disallow user posts from federating", "quarantine": "Disallow user posts from federating",
"delete_user": "Delete user", "delete_user": "Delete user",
"delete_user_confirmation": "Are you absolutely sure? This action cannot be undone." "delete_user_confirmation": "Are you absolutely sure? This action cannot be undone."
},
"roles": {
"admin": "Admin",
"moderator": "Moderator"
} }
}, },
"user_profile": { "user_profile": {

View File

@ -30,7 +30,7 @@
"administration": "Amministrazione", "administration": "Amministrazione",
"back": "Indietro", "back": "Indietro",
"interactions": "Interazioni", "interactions": "Interazioni",
"dms": "Messaggi diretti", "dms": "Messaggi privati",
"user_search": "Ricerca utenti", "user_search": "Ricerca utenti",
"search": "Ricerca", "search": "Ricerca",
"who_to_follow": "Chi seguire", "who_to_follow": "Chi seguire",
@ -44,7 +44,7 @@
"notifications": "Notifiche", "notifications": "Notifiche",
"read": "Letto!", "read": "Letto!",
"broken_favorite": "Stato sconosciuto, lo sto cercando…", "broken_favorite": "Stato sconosciuto, lo sto cercando…",
"favorited_you": "ha gradito il tuo messaggio", "favorited_you": "gradisce il tuo messaggio",
"load_older": "Carica notifiche precedenti", "load_older": "Carica notifiche precedenti",
"repeated_you": "ha condiviso il tuo messaggio", "repeated_you": "ha condiviso il tuo messaggio",
"follow_request": "vuole seguirti", "follow_request": "vuole seguirti",
@ -487,7 +487,11 @@
"follow_progress": "Richiedo…", "follow_progress": "Richiedo…",
"follow_sent": "Richiesta inviata!", "follow_sent": "Richiesta inviata!",
"favorites": "Preferiti", "favorites": "Preferiti",
"message": "Contatta" "message": "Contatta",
"roles": {
"moderator": "Moderatore",
"admin": "Amministratore"
}
}, },
"chat": { "chat": {
"title": "Chat" "title": "Chat"
@ -495,7 +499,7 @@
"features_panel": { "features_panel": {
"chat": "Chat", "chat": "Chat",
"gopher": "Gopher", "gopher": "Gopher",
"media_proxy": "Proxy multimedia", "media_proxy": "Proxy allegati",
"scope_options": "Opzioni visibilità", "scope_options": "Opzioni visibilità",
"text_limit": "Lunghezza massima", "text_limit": "Lunghezza massima",
"title": "Caratteristiche", "title": "Caratteristiche",
@ -505,7 +509,7 @@
}, },
"finder": { "finder": {
"error_fetching_user": "Errore nel recupero dell'utente", "error_fetching_user": "Errore nel recupero dell'utente",
"find_user": "Trova utente" "find_user": "Cerca utente"
}, },
"login": { "login": {
"login": "Accedi", "login": "Accedi",
@ -515,18 +519,18 @@
"register": "Registrati", "register": "Registrati",
"username": "Nome utente", "username": "Nome utente",
"description": "Accedi con OAuth", "description": "Accedi con OAuth",
"hint": "Accedi per partecipare alla discussione", "hint": "Accedi per conversare",
"authentication_code": "Codice di autenticazione", "authentication_code": "Codice di autenticazione",
"enter_recovery_code": "Inserisci un codice di recupero", "enter_recovery_code": "Inserisci un codice di recupero",
"enter_two_factor_code": "Inserisci un codice two-factor", "enter_two_factor_code": "Inserisci un codice 2FA",
"recovery_code": "Codice di recupero", "recovery_code": "Codice di recupero",
"heading": { "heading": {
"totp": "Autenticazione two-factor", "totp": "Autenticazione 2FA",
"recovery": "Recupero two-factor" "recovery": "Recupero 2FA"
} }
}, },
"post_status": { "post_status": {
"account_not_locked_warning": "Il tuo profilo non è {0}. Chiunque può seguirti e vedere i tuoi messaggi riservati ai tuoi seguaci.", "account_not_locked_warning": "Il tuo profilo non è {0}. Chiunque può seguirti e vedere i tuoi messaggi per seguaci.",
"account_not_locked_warning_link": "protetto", "account_not_locked_warning_link": "protetto",
"attachments_sensitive": "Nascondi gli allegati", "attachments_sensitive": "Nascondi gli allegati",
"content_type": { "content_type": {
@ -536,7 +540,7 @@
"text/html": "HTML" "text/html": "HTML"
}, },
"content_warning": "Oggetto (facoltativo)", "content_warning": "Oggetto (facoltativo)",
"default": "Sono appena atterrato a Fiumicino.", "default": "Sono appena atterrato a Città Laggiù.",
"direct_warning": "Questo post sarà visibile solo dagli utenti menzionati.", "direct_warning": "Questo post sarà visibile solo dagli utenti menzionati.",
"posting": "Sto pubblicando", "posting": "Sto pubblicando",
"scope": { "scope": {
@ -611,13 +615,13 @@
"ftl_removal_desc": "Questa stanza rimuove le seguenti dalla sequenza globale:", "ftl_removal_desc": "Questa stanza rimuove le seguenti dalla sequenza globale:",
"media_removal": "Rimozione multimedia", "media_removal": "Rimozione multimedia",
"media_removal_desc": "Questa istanza rimuove gli allegati dalle seguenti stanze:", "media_removal_desc": "Questa istanza rimuove gli allegati dalle seguenti stanze:",
"media_nsfw": "Allegati oscurati forzatamente", "media_nsfw": "Allegati oscurati d'ufficio",
"media_nsfw_desc": "Questa stanza oscura gli allegati dei messaggi provenienti da queste stanze:" "media_nsfw_desc": "Questa stanza oscura gli allegati dei messaggi provenienti da queste stanze:"
}, },
"mrf_policies": "Regole RM abilitate", "mrf_policies": "Regole RM abilitate",
"mrf_policies_desc": "Le regole RM cambiano il comportamento federativo della stanza. Vigono le seguenti regole:" "mrf_policies_desc": "Le regole RM cambiano il comportamento federativo della stanza. Vigono le seguenti regole:"
}, },
"staff": "Equipaggio" "staff": "Responsabili"
}, },
"domain_mute_card": { "domain_mute_card": {
"mute": "Zittisci", "mute": "Zittisci",
@ -646,20 +650,20 @@
}, },
"polls": { "polls": {
"add_poll": "Sondaggio", "add_poll": "Sondaggio",
"add_option": "Alternativa", "add_option": "Aggiungi opzione",
"option": "Opzione", "option": "Opzione",
"votes": "voti", "votes": "voti",
"vote": "Vota", "vote": "Vota",
"type": "Tipo di sondaggio", "type": "Tipo di sondaggio",
"single_choice": "Scelta singola", "single_choice": "Scelta singola",
"multiple_choices": "Scelta multipla", "multiple_choices": "Scelta multipla",
"expiry": "Scadenza", "expiry": "Età",
"expires_in": "Scade fra {0}", "expires_in": "Chiude fra {0}",
"expired": "Scaduto {0} fa", "expired": "Chiuso {0} fa",
"not_enough_options": "Aggiungi altre risposte" "not_enough_options": "Aggiungi altre risposte"
}, },
"interactions": { "interactions": {
"favs_repeats": "Condivisi e preferiti", "favs_repeats": "Condivisi e Graditi",
"load_older": "Carica vecchie interazioni", "load_older": "Carica vecchie interazioni",
"moves": "Utenti migrati", "moves": "Utenti migrati",
"follows": "Nuovi seguìti" "follows": "Nuovi seguìti"
@ -668,8 +672,8 @@
"load_all": "Carico tutti i {emojiAmount} emoji", "load_all": "Carico tutti i {emojiAmount} emoji",
"load_all_hint": "Primi {saneAmount} emoji caricati, caricarli tutti potrebbe causare rallentamenti.", "load_all_hint": "Primi {saneAmount} emoji caricati, caricarli tutti potrebbe causare rallentamenti.",
"unicode": "Emoji Unicode", "unicode": "Emoji Unicode",
"custom": "Emoji personale", "custom": "Emoji della stanza",
"add_emoji": "Inserisci Emoji", "add_emoji": "Inserisci emoji",
"search_emoji": "Cerca un emoji", "search_emoji": "Cerca un emoji",
"keep_open": "Tieni aperto il menù", "keep_open": "Tieni aperto il menù",
"emoji": "Emoji", "emoji": "Emoji",
@ -684,7 +688,7 @@
"remote_user_resolver": "Cerca utenti remoti" "remote_user_resolver": "Cerca utenti remoti"
}, },
"errors": { "errors": {
"storage_unavailable": "Pleroma non ha potuto accedere ai dati del tuo browser. Le tue credenziali o le tue impostazioni locali non potranno essere salvate e potresti incontrare strani errori. Prova ad abilitare i cookie." "storage_unavailable": "Pleroma non può accedere ai dati del tuo browser. Il tuo accesso o le tue impostazioni non saranno salvate e potresti incontrare strani errori. Prova ad abilitare i cookie."
}, },
"status": { "status": {
"pinned": "Intestato", "pinned": "Intestato",

View File

@ -5,37 +5,61 @@
"features_panel": { "features_panel": {
"chat": "Chat", "chat": "Chat",
"gopher": "Gopher", "gopher": "Gopher",
"media_proxy": "Proxy de mídia", "media_proxy": "Proxy de multimédia",
"scope_options": "Opções de privacidade", "scope_options": "Opções de privacidade",
"text_limit": "Limite de caracteres", "text_limit": "Limite de caracteres",
"title": "Funções", "title": "Características",
"who_to_follow": "Quem seguir" "who_to_follow": "Quem seguir",
"upload_limit": "Limite de carregamento",
"pleroma_chat_messages": "Chat do Pleroma"
}, },
"finder": { "finder": {
"error_fetching_user": "Erro ao procurar usuário", "error_fetching_user": "Erro ao pesquisar utilizador",
"find_user": "Buscar usuário" "find_user": "Pesquisar utilizador"
}, },
"general": { "general": {
"apply": "Aplicar", "apply": "Aplicar",
"submit": "Enviar", "submit": "Enviar",
"more": "Mais", "more": "Mais",
"generic_error": "Houve um erro", "generic_error": "Ocorreu um erro",
"optional": "opcional" "optional": "opcional",
"peek": "Espreitar",
"close": "Fechar",
"verify": "Verificar",
"confirm": "Confirmar",
"enable": "Ativar",
"disable": "Desativar",
"cancel": "Cancelar",
"show_less": "Mostrar menos",
"show_more": "Mostrar mais",
"retry": "Tenta novamente",
"error_retry": "Por favor, tenta novamente",
"loading": "A carregar…",
"dismiss": "Ignorar"
}, },
"image_cropper": { "image_cropper": {
"crop_picture": "Cortar imagem", "crop_picture": "Cortar imagem",
"save": "Salvar", "save": "Guardar",
"cancel": "Cancelar" "cancel": "Cancelar",
"save_without_cropping": "Guardar sem recortar"
}, },
"login": { "login": {
"login": "Entrar", "login": "Iniciar Sessão",
"description": "Entrar com OAuth", "description": "Iniciar sessão com OAuth",
"logout": "Sair", "logout": "Terminar sessão",
"password": "Senha", "password": "Palavra-passe",
"placeholder": "p.e. lain", "placeholder": "ex. lain",
"register": "Registrar", "register": "Registar",
"username": "Usuário", "username": "Nome de Utilizador",
"hint": "Entre para participar da discussão" "hint": "Entra para participar na discussão",
"heading": {
"totp": "Autenticação de dois fatores",
"recovery": "Recuperação de dois fatores"
},
"recovery_code": "Código de recuperação",
"authentication_code": "Código de autenticação",
"enter_two_factor_code": "Introduza o código de dois fatores",
"enter_recovery_code": "Introduza um código de recuperação"
}, },
"media_modal": { "media_modal": {
"previous": "Anterior", "previous": "Anterior",
@ -45,100 +69,125 @@
"about": "Sobre", "about": "Sobre",
"back": "Voltar", "back": "Voltar",
"chat": "Chat local", "chat": "Chat local",
"friend_requests": "Solicitações de seguidores", "friend_requests": "Pedidos de seguidores",
"mentions": "Menções", "mentions": "Menções",
"dms": "Mensagens diretas", "dms": "Mensagens Diretas",
"public_tl": "Linha do tempo pública", "public_tl": "Cronologia Pública",
"timeline": "Linha do tempo", "timeline": "Cronologia",
"twkn": "Toda a rede conhecida", "twkn": "Rede conhecida",
"user_search": "Buscar usuários", "user_search": "Pesquisa por Utilizadores",
"who_to_follow": "Quem seguir", "who_to_follow": "Quem seguir",
"preferences": "Preferências" "preferences": "Preferências",
"search": "Pesquisar",
"interactions": "Interações",
"administration": "Administração",
"chats": "Salas de Chat",
"timelines": "Cronologias",
"bookmarks": "Itens Guardados"
}, },
"notifications": { "notifications": {
"broken_favorite": "Status desconhecido, buscando...", "broken_favorite": "Publicação desconhecida, a procurar…",
"favorited_you": "favoritou sua postagem", "favorited_you": "gostou do teu post",
"followed_you": "seguiu você", "followed_you": "seguiu-te",
"load_older": "Carregar notificações antigas", "load_older": "Carregar notificações antigas",
"notifications": "Notificações", "notifications": "Notificações",
"read": "Lido!", "read": "Lido!",
"repeated_you": "repetiu sua postagem", "repeated_you": "partilhou o teu post",
"no_more_notifications": "Mais nenhuma notificação" "no_more_notifications": "Sem mais notificações",
"reacted_with": "reagiu com {0}",
"migrated_to": "migrou para",
"follow_request": "quer seguir-te",
"error": "Erro ao obter notificações: {0}"
}, },
"post_status": { "post_status": {
"new_status": "Postar novo status", "new_status": "Publicar nova publicação",
"account_not_locked_warning": "Sua conta não é {0}. Qualquer pessoa pode te seguir e ver seus posts privados (só para seguidores).", "account_not_locked_warning": "A sua conta não é {0}. Qualquer pessoa pode seguir-te e ver os seus posts privados (só para seguidores).",
"account_not_locked_warning_link": "restrita", "account_not_locked_warning_link": "restrito",
"attachments_sensitive": "Marcar anexos como sensíveis", "attachments_sensitive": "Marcar anexos como sensíveis",
"content_type": { "content_type": {
"text/plain": "Texto puro" "text/plain": "Texto puro",
"text/bbcode": "BBCode",
"text/html": "HTML",
"text/markdown": "Remarcação"
}, },
"content_warning": "Assunto (opcional)", "content_warning": "Assunto (opcional)",
"default": "Acabei de chegar no Rio!", "default": "Acabei de chegar a Lisboa.",
"direct_warning": "Este post será visível apenas para os usuários mencionados.", "direct_warning": "Este post será visível apenas para os usuários mencionados.",
"posting": "Publicando", "posting": "A publicar",
"scope": { "scope": {
"direct": "Direto - Enviar somente aos usuários mencionados", "direct": "Direto - Enviar somente aos usuários mencionados",
"private": "Apenas para seguidores - Enviar apenas para seguidores", "private": "Apenas para seguidores - Enviar apenas para seguidores",
"public": "Público - Enviar a linhas do tempo públicas", "public": "Público - Publicar em cronologias públicas",
"unlisted": "Não listado - Não enviar a linhas do tempo públicas" "unlisted": "Não listado - Não exibir em cronologias públicas"
} },
"scope_notice": {
"unlisted": "Esta publicação não será visível na Cronologia pública e na Rede conhecida por todos",
"private": "Esta publicação será apenas visível para os teus seguidores",
"public": "Esta publicação será visível para todos"
},
"empty_status_error": "Não consegues publicar um post vazio e sem ficheiros",
"preview_empty": "Vazio",
"preview": "Pré-visualização",
"media_description": "Descrição da multimédia",
"media_description_error": "Falha ao atualizar ficheiro, tente novamente",
"direct_warning_to_first_only": "Esta publicação só será visível para os utilizadores mencionados no início da mensagem.",
"direct_warning_to_all": "Esta publicação será visível para todos os utilizadores mencionados."
}, },
"registration": { "registration": {
"bio": "Biografia", "bio": "Biografia",
"email": "Correio eletrônico", "email": "Endereço de e-mail",
"fullname": "Nome para exibição", "fullname": "Nome para exibição",
"password_confirm": "Confirmação de senha", "password_confirm": "Confirmação de palavra-passe",
"registration": "Registro", "registration": "Registo",
"token": "Código do convite", "token": "Código do convite",
"captcha": "CAPTCHA", "captcha": "CAPTCHA",
"new_captcha": "Clique na imagem para carregar um novo captcha", "new_captcha": "Clique na imagem para carregar um novo captcha",
"username_placeholder": "p. ex. lain", "username_placeholder": "ex. lain",
"fullname_placeholder": "p. ex. Lain Iwakura", "fullname_placeholder": "ex. Lain Iwakura",
"bio_placeholder": "e.g.\nOi, sou Lain\nSou uma garota que vive no subúrbio do Japão. Você deve me conhecer da Rede.", "bio_placeholder": "ex.\nOlá, sou a Lain\nSou uma menina de anime que vive no Japão suburbano. Devem conhecer-me do \"the Wired\".",
"validations": { "validations": {
"username_required": "não pode ser deixado em branco", "username_required": "não pode ser deixado em branco",
"fullname_required": "não pode ser deixado em branco", "fullname_required": "não pode ser deixado em branco",
"email_required": "não pode ser deixado em branco", "email_required": "não pode ser deixado em branco",
"password_required": "não pode ser deixado em branco", "password_required": "não pode ser deixado em branco",
"password_confirmation_required": "não pode ser deixado em branco", "password_confirmation_required": "não pode ser deixado em branco",
"password_confirmation_match": "deve ser idêntica à senha" "password_confirmation_match": "deve corresponder à palavra-passe"
} }
}, },
"settings": { "settings": {
"app_name": "Nome do aplicativo", "app_name": "Nome da aplicação",
"attachmentRadius": "Anexos", "attachmentRadius": "Anexos",
"attachments": "Anexos", "attachments": "Anexos",
"avatar": "Avatar", "avatar": "Avatar",
"avatarAltRadius": "Avatares (Notificações)", "avatarAltRadius": "Avatares (Notificações)",
"avatarRadius": "Avatares", "avatarRadius": "Avatares",
"background": "Pano de Fundo", "background": "Imagem de Fundo",
"bio": "Biografia", "bio": "Biografia",
"blocks_tab": "Bloqueios", "blocks_tab": "Bloqueios",
"btnRadius": "Botões", "btnRadius": "Botões",
"cBlue": "Azul (Responder, seguir)", "cBlue": "Azul (Responder, seguir)",
"cGreen": "Verde (Repetir)", "cGreen": "Verde (Partilhar)",
"cOrange": "Laranja (Favoritar)", "cOrange": "Laranja (Favoritar)",
"cRed": "Vermelho (Cancelar)", "cRed": "Vermelho (Cancelar)",
"change_password": "Mudar senha", "change_password": "Mudar palavra-passe",
"change_password_error": "Houve um erro ao modificar sua senha.", "change_password_error": "Ocorreu um erro ao modificar a sua palavra-passe.",
"changed_password": "Senha modificada com sucesso!", "changed_password": "Palavra-passe modificada com sucesso!",
"collapse_subject": "Esconder posts com assunto", "collapse_subject": "Esconder posts com assunto",
"composing": "Escrita", "composing": "Escrita",
"confirm_new_password": "Confirmar nova senha", "confirm_new_password": "Confirmar nova palavra-passe",
"current_avatar": "Seu avatar atual", "current_avatar": "Seu avatar atual",
"current_password": "Sua senha atual", "current_password": "Palavra-passe atual",
"current_profile_banner": "Sua capa de perfil atual", "current_profile_banner": "Sua capa de perfil atual",
"data_import_export_tab": "Importação/exportação de dados", "data_import_export_tab": "Importação/exportação de dados",
"default_vis": "Opção de privacidade padrão", "default_vis": "Opção de privacidade padrão",
"delete_account": "Deletar conta", "delete_account": "Eliminar conta",
"delete_account_description": "Deletar sua conta e mensagens permanentemente.", "delete_account_description": "Apagar os seus dados permanentemente e desativar a sua conta.",
"delete_account_error": "Houve um problema ao deletar sua conta. Se ele persistir, por favor entre em contato com o/a administrador/a da instância.", "delete_account_error": "Ocorreu um erro ao remover a sua conta. Se este persistir, por favor entre em contato com o/a administrador/a da instância.",
"delete_account_instructions": "Digite sua senha no campo abaixo para confirmar a exclusão da conta.", "delete_account_instructions": "Escreva a sua palavra-passe no campo abaixo para confirmar a remoção da conta.",
"avatar_size_instruction": "O tamanho mínimo recomendado para imagens de avatar é 150x150 pixels.", "avatar_size_instruction": "O tamanho mínimo recomendado para imagens de avatar é 150x150 pixels.",
"export_theme": "Salvar predefinições", "export_theme": "Guardar predefinições",
"filtering": "Filtragem", "filtering": "Filtragem",
"filtering_explanation": "Todas as postagens contendo estas palavras serão silenciadas; uma palavra por linha.", "filtering_explanation": "Todas as publicações que contenham estas palavras serão silenciadas; uma palavra por linha",
"follow_export": "Exportar quem você segue", "follow_export": "Exportar quem você segue",
"follow_export_button": "Exportar quem você segue para um arquivo CSV", "follow_export_button": "Exportar quem você segue para um arquivo CSV",
"follow_export_processing": "Processando. Em breve você receberá a solicitação de download do arquivo", "follow_export_processing": "Processando. Em breve você receberá a solicitação de download do arquivo",
@ -148,7 +197,7 @@
"foreground": "Primeiro Plano", "foreground": "Primeiro Plano",
"general": "Geral", "general": "Geral",
"hide_attachments_in_convo": "Ocultar anexos em conversas", "hide_attachments_in_convo": "Ocultar anexos em conversas",
"hide_attachments_in_tl": "Ocultar anexos na linha do tempo.", "hide_attachments_in_tl": "Ocultar anexos na cronologia",
"max_thumbnails": "Número máximo de miniaturas por post", "max_thumbnails": "Número máximo de miniaturas por post",
"hide_isp": "Esconder painel específico da instância", "hide_isp": "Esconder painel específico da instância",
"preload_images": "Pré-carregar imagens", "preload_images": "Pré-carregar imagens",
@ -159,7 +208,7 @@
"import_followers_from_a_csv_file": "Importe seguidores a partir de um arquivo CSV", "import_followers_from_a_csv_file": "Importe seguidores a partir de um arquivo CSV",
"import_theme": "Carregar pré-definição", "import_theme": "Carregar pré-definição",
"inputRadius": "Campos de entrada", "inputRadius": "Campos de entrada",
"checkboxRadius": "Checkboxes", "checkboxRadius": "Caixas de seleção",
"instance_default": "(padrão: {value})", "instance_default": "(padrão: {value})",
"instance_default_simple": "(padrão)", "instance_default_simple": "(padrão)",
"interface": "Interface", "interface": "Interface",
@ -171,16 +220,16 @@
"loop_video": "Repetir vídeos", "loop_video": "Repetir vídeos",
"loop_video_silent_only": "Repetir apenas vídeos sem som (como os \"gifs\" do Mastodon)", "loop_video_silent_only": "Repetir apenas vídeos sem som (como os \"gifs\" do Mastodon)",
"mutes_tab": "Silenciados", "mutes_tab": "Silenciados",
"play_videos_in_modal": "Tocar vídeos diretamente no visualizador de mídia", "play_videos_in_modal": "Reproduzir vídeos diretamente no visualizador de multimédia",
"use_contain_fit": "Não cortar o anexo na miniatura", "use_contain_fit": "Não cortar o anexo na miniatura",
"name": "Nome", "name": "Nome",
"name_bio": "Nome & Biografia", "name_bio": "Nome & Biografia",
"new_password": "Nova senha", "new_password": "Nova palavra-passe",
"notification_visibility": "Tipos de notificação para mostrar", "notification_visibility": "Tipos de notificação para mostrar",
"notification_visibility_follows": "Seguidas", "notification_visibility_follows": "Seguidas",
"notification_visibility_likes": "Favoritos", "notification_visibility_likes": "Favoritos",
"notification_visibility_mentions": "Menções", "notification_visibility_mentions": "Menções",
"notification_visibility_repeats": "Repetições", "notification_visibility_repeats": "Partilhas",
"no_rich_text_description": "Remover formatação de todos os posts", "no_rich_text_description": "Remover formatação de todos os posts",
"no_blocks": "Sem bloqueios", "no_blocks": "Sem bloqueios",
"no_mutes": "Sem silenciados", "no_mutes": "Sem silenciados",
@ -188,7 +237,7 @@
"hide_followers_description": "Não mostrar quem me segue", "hide_followers_description": "Não mostrar quem me segue",
"show_admin_badge": "Mostrar título de Administrador em meu perfil", "show_admin_badge": "Mostrar título de Administrador em meu perfil",
"show_moderator_badge": "Mostrar título de Moderador em meu perfil", "show_moderator_badge": "Mostrar título de Moderador em meu perfil",
"nsfw_clickthrough": "Habilitar clique para ocultar anexos sensíveis", "nsfw_clickthrough": "Ativar clique em anexos e pré-visualizações de links para ocultar anexos NSFW",
"oauth_tokens": "Token OAuth", "oauth_tokens": "Token OAuth",
"token": "Token", "token": "Token",
"refresh_token": "Atualizar Token", "refresh_token": "Atualizar Token",
@ -201,7 +250,7 @@
"profile_banner": "Capa de perfil", "profile_banner": "Capa de perfil",
"profile_tab": "Perfil", "profile_tab": "Perfil",
"radii_help": "Arredondar arestas da interface (em pixel)", "radii_help": "Arredondar arestas da interface (em pixel)",
"replies_in_timeline": "Respostas na linha do tempo", "replies_in_timeline": "Respostas na cronologia",
"reply_visibility_all": "Mostrar todas as respostas", "reply_visibility_all": "Mostrar todas as respostas",
"reply_visibility_following": "Só mostrar respostas direcionadas a mim ou a usuários que sigo", "reply_visibility_following": "Só mostrar respostas direcionadas a mim ou a usuários que sigo",
"reply_visibility_self": "Só mostrar respostas direcionadas a mim", "reply_visibility_self": "Só mostrar respostas direcionadas a mim",
@ -215,7 +264,7 @@
"settings": "Configurações", "settings": "Configurações",
"subject_input_always_show": "Sempre mostrar campo de assunto", "subject_input_always_show": "Sempre mostrar campo de assunto",
"subject_line_behavior": "Copiar assunto ao responder", "subject_line_behavior": "Copiar assunto ao responder",
"subject_line_email": "Como em email: \"re: assunto\"", "subject_line_email": "Como num e-mail: \"re: assunto\"",
"subject_line_mastodon": "Como o Mastodon: copiar como está", "subject_line_mastodon": "Como o Mastodon: copiar como está",
"subject_line_noop": "Não copiar", "subject_line_noop": "Não copiar",
"post_status_content_type": "Tipo de conteúdo do status", "post_status_content_type": "Tipo de conteúdo do status",
@ -225,7 +274,7 @@
"theme": "Tema", "theme": "Tema",
"theme_help": "Use cores em código hexadecimal (#rrggbb) para personalizar seu esquema de cores.", "theme_help": "Use cores em código hexadecimal (#rrggbb) para personalizar seu esquema de cores.",
"theme_help_v2_1": "Você também pode sobrescrever as cores e opacidade de alguns componentes ao modificar o checkbox, use \"Limpar todos\" para limpar todas as modificações.", "theme_help_v2_1": "Você também pode sobrescrever as cores e opacidade de alguns componentes ao modificar o checkbox, use \"Limpar todos\" para limpar todas as modificações.",
"theme_help_v2_2": "Alguns ícones sob registros são indicadores de fundo/contraste de textos, passe por cima para informações detalhadas. Tenha ciência de que os indicadores de contraste não funcionam muito bem com transparência.", "theme_help_v2_2": "Alguns ícones em registo são indicadores de fundo/contraste de textos, passe por cima para obter informações detalhadas. Tenha em atenção que os indicadores de contraste não funcionam muito bem com transparência.",
"tooltipRadius": "Dicas/alertas", "tooltipRadius": "Dicas/alertas",
"upload_a_photo": "Enviar uma foto", "upload_a_photo": "Enviar uma foto",
"user_settings": "Configurações de Usuário", "user_settings": "Configurações de Usuário",
@ -245,7 +294,24 @@
"save_load_hint": "Manter as opções preserva as opções atuais ao selecionar ou carregar temas; também salva as opções ao exportar um tempo. Quanto todos os campos estiverem desmarcados, tudo será salvo ao exportar o tema.", "save_load_hint": "Manter as opções preserva as opções atuais ao selecionar ou carregar temas; também salva as opções ao exportar um tempo. Quanto todos os campos estiverem desmarcados, tudo será salvo ao exportar o tema.",
"reset": "Restaurar o padrão", "reset": "Restaurar o padrão",
"clear_all": "Limpar tudo", "clear_all": "Limpar tudo",
"clear_opacity": "Limpar opacidade" "clear_opacity": "Limpar opacidade",
"help": {
"upgraded_from_v2": "O PleromaFE foi atualizado, a aparência do tema poderá ser um pouco diferente.",
"snapshot_source_mismatch": "Conflito de versões: o mais provável é que o FE tenha revertido e voltado a atualizar, foi alterado o tema numa versão anterior do FE, o mais provável é desejar utilizar a versão anterior; caso contrário, utilize a nova versão.",
"migration_napshot_gone": "Por algum motivo, a pré-visualização estava em falta, algumas coisas poderão parecer diferentes do que se lembra.",
"migration_snapshot_ok": "Para estar seguro, foi carregada uma versão de pré-visualização do tema. Pode tentar carregar dados do tema.",
"fe_downgraded": "Versão do PleromaFE revertida.",
"fe_upgraded": "O criador de temas do PleromaFE foi atualizado depois da atualização da versão.",
"snapshot_missing": "Não existia nenhuma pré-visualização do tema no ficheiro, então pode parecer diferente do previsto originalmente.",
"snapshot_present": "Foi carregada uma pré-visualização do tema, todos os valores são substituídos. Caso contrário, pode carregar o tema completo.",
"older_version_imported": "O ficheiro que importaste foi criado numa versão antiga do FE.",
"future_version_imported": "O ficheiro que importaste foi criado para uma versão mais recente do FE.",
"v2_imported": "O ficheiro que importaste foi feito para uma versão antiga do FE. Tentamos maximizar a compatibilidade, porém, poderão existir incongruências."
},
"use_source": "Nova versão",
"use_snapshot": "Versão antiga",
"keep_as_is": "Manter como está",
"load_theme": "Carregar tema"
}, },
"common": { "common": {
"color": "Cor", "color": "Cor",
@ -280,7 +346,27 @@
"borders": "Bordas", "borders": "Bordas",
"buttons": "Botões", "buttons": "Botões",
"inputs": "Caixas de entrada", "inputs": "Caixas de entrada",
"faint_text": "Texto esmaecido" "faint_text": "Texto esmaecido",
"chat": {
"border": "Borda",
"outgoing": "Enviadas",
"incoming": "Recebidas"
},
"tabs": "Abas",
"toggled": "Alternado",
"disabled": "Desativado",
"selectedMenu": "Elemento do menu seleccionado",
"selectedPost": "Publicação seleccionada",
"pressed": "Pressionado",
"highlight": "Elementos destacados",
"icons": "Ícones",
"poll": "Gráfico da sondagem",
"wallpaper": "Fundo de ecrã",
"underlay": "Sublinhado",
"popover": "Sugestões, menus, etiquetas",
"post": "Publicações/Bios",
"alert_neutral": "Neutro",
"alert_warning": "Precaução"
}, },
"radii": { "radii": {
"_tab_label": "Arredondado" "_tab_label": "Arredondado"
@ -298,7 +384,7 @@
"always_drop_shadow": "Atenção, esta sombra sempre utiliza {0} quando compatível com o navegador.", "always_drop_shadow": "Atenção, esta sombra sempre utiliza {0} quando compatível com o navegador.",
"drop_shadow_syntax": "{0} não é compatível com o parâmetro {1} e a palavra-chave {2}.", "drop_shadow_syntax": "{0} não é compatível com o parâmetro {1} e a palavra-chave {2}.",
"avatar_inset": "Tenha em mente que combinar as sombras de inserção e a não-inserção em avatares pode causar resultados inesperados em avatares transparentes.", "avatar_inset": "Tenha em mente que combinar as sombras de inserção e a não-inserção em avatares pode causar resultados inesperados em avatares transparentes.",
"spread_zero": "Sombras com uma difusão > 0 aparecerão como se fossem definidas como 0.", "spread_zero": "Sombras com difusão > 0 aparecerão como se fossem definidas como zero",
"inset_classic": "Sombras de inserção utilizarão {0}" "inset_classic": "Sombras de inserção utilizarão {0}"
}, },
"components": { "components": {
@ -313,7 +399,8 @@
"buttonPressed": "Botão (pressionado)", "buttonPressed": "Botão (pressionado)",
"buttonPressedHover": "Botão (pressionado+em cima)", "buttonPressedHover": "Botão (pressionado+em cima)",
"input": "Campo de entrada" "input": "Campo de entrada"
} },
"hintV3": "Para as sombras, também pode usar a notação {0} para usar outro espaço de cor."
}, },
"fonts": { "fonts": {
"_tab_label": "Fontes", "_tab_label": "Fontes",
@ -336,30 +423,143 @@
"button": "Botão", "button": "Botão",
"text": "Vários {0} e {1}", "text": "Vários {0} e {1}",
"mono": "conteúdo", "mono": "conteúdo",
"input": "Acabei de chegar no Rio!", "input": "Acabei de chegar a Lisboa.",
"faint_link": "manual útil", "faint_link": "manual útil",
"fine_print": "Leia nosso {0} para não aprender nada!", "fine_print": "Leia nosso {0} para não aprender nada!",
"header_faint": "Está ok!", "header_faint": "Isto está bem",
"checkbox": "Li os termos e condições", "checkbox": "Li os termos e condições",
"link": "um belo link" "link": "um belo link"
} }
} },
"mfa": {
"scan": {
"secret_code": "Chave",
"title": "Scan",
"desc": "Utilizando a sua aplicação de dois fatores, faça scan deste código QR ou insira a chave de texto:"
},
"authentication_methods": "Métodos de autenticação",
"recovery_codes": "Códigos de recuperação.",
"generate_new_recovery_codes": "Gerar novos códigos de recuperação",
"confirm_and_enable": "Confirmar e ativar a palavra-passe de utilização única",
"otp": "Palavra-passe de utilização única",
"verify": {
"desc": "Para ativar a autenticação de dois fatores, introduza o código da sua aplicação de dois fatores:"
},
"recovery_codes_warning": "Anote os códigos ou armazene-os num lugar seguro - caso contrário, não os voltará a ver. Se perder acesso à sua aplicação de dois fatores e aos códigos de recuperação, a sua conta ficará bloqueada.",
"waiting_a_recovery_codes": "A receber códigos de recuperação…",
"warning_of_generate_new_codes": "Quando gera novos códigos de recuperação, os antigos deixam de funcionar.",
"title": "Autenticação de Dois Fatores",
"wait_pre_setup_otp": "pré-configuração de palavra-passe de utilização única",
"setup_otp": "Configurar palavra-passe de utilização única"
},
"security": "Segurança",
"mute_import_error": "Erro ao importar os silenciados",
"mute_import": "Importar silenciados",
"mute_export_button": "Exporta os silenciados para um ficheiro csv",
"mute_export": "Exportar silenciados",
"blocks_imported": "Lista de utilizadores bloqueados importada! O processo pode demorar alguns instantes.",
"block_import_error": "Erro ao importar a lista de utilizadores bloqueados",
"block_import": "Importar utilizadores bloqueados",
"block_export_button": "Exporta a tua lista de utilizadores bloqueados para um ficheiro csv",
"block_export": "Exportar utilizadores bloqueados",
"enter_current_password_to_confirm": "Introduza a sua palavra-passe atual para confirmar a sua identidade",
"mutes_and_blocks": "Silenciados e Bloqueados",
"chatMessageRadius": "Mensagem de texto",
"changed_email": "Endereço de e-mail modificado com sucesso!",
"change_email_error": "Ocorreu um erro ao modificar o seu endereço de e-mail.",
"change_email": "Mudar Endereço de E-mail",
"bot": "Esta uma conta robô",
"import_mutes_from_a_csv_file": "Importar silenciados de um ficheiro csv",
"mutes_imported": "Silenciados importados! Processá-los pode demorar alguns instantes.",
"allow_following_move": "Permitir seguimento automático quando a conta for migrada para outra instância",
"domain_mutes": "Domínios",
"discoverable": "Permitir a descoberta desta conta em resultados de busca e outros serviços",
"emoji_reactions_on_timeline": "Mostrar reações de emoji na timeline",
"hide_muted_posts": "Esconder posts de utilizadores silenciados",
"hide_follows_count_description": "Não mostrar o número de contas seguidas",
"hide_followers_count_description": "Não mostrar o número de seguidores",
"notification_visibility_emoji_reactions": "Reações",
"new_email": "Novo endereço de e-mail",
"profile_fields": {
"value": "Conteúdo",
"add_field": "Adicionar campo",
"label": "Metadados do perfil",
"name": "Etiqueta"
},
"import_blocks_from_a_csv_file": "Importar bloqueados a partir de um arquivo CSV",
"hide_wallpaper": "Esconder papel de parede da instância",
"notification_setting_privacy": "Privacidade",
"notification_setting_filters": "Filtros",
"fun": "Divertido",
"user_mutes": "Utilizadores",
"type_domains_to_mute": "Pesquisar domínios para silenciar",
"useStreamingApiWarning": "(não recomendado, experimental, pode omitir publicações)",
"useStreamingApi": "Receber publicações e notificações em tempo real",
"minimal_scopes_mode": "Minimizar as opções de publicação",
"search_user_to_mute": "Pesquisar utilizadores que pretende silenciar",
"search_user_to_block": "Pesquisa quais utilizadores desejas bloquear",
"notification_setting_hide_notification_contents": "Ocultar o remetente e o conteúdo das notificações push",
"version": {
"frontend_version": "Versão do Frontend",
"backend_version": "Versão do Backend",
"title": "Versão"
},
"notification_blocks": "Bloquear um utilizador previne todas as notificações, bem como as desativa.",
"notification_mutes": "Para deixar de receber notificações de um utilizador específico, silencia-o.",
"notification_setting_block_from_strangers": "Bloqueia as notificações de utilizadores que não segues",
"greentext": "Texto verde (meme arrows)",
"virtual_scrolling": "Otimizar a apresentação da cronologia",
"reset_background_confirm": "Tens a certeza que desejas redefinir o fundo?",
"reset_banner_confirm": "Tens a certeza que desejas redefinir a imagem do cabeçalho?",
"reset_avatar_confirm": "Tens a certeza que desejas redefinir o avatar?",
"reset_profile_banner": "Redefinir imagem do cabeçalho do perfil",
"reset_profile_background": "Redefinir fundo de perfil",
"reset_avatar": "Redefinir avatar",
"autohide_floating_post_button": "Automaticamente ocultar o botão 'Nova Publicação' (telemóvel)",
"notification_visibility_moves": "Utilizador Migrado",
"accent": "Destaque",
"pad_emoji": "Preencher espaços ao adicionar emojis do seletor"
}, },
"timeline": { "timeline": {
"collapse": "Esconder", "collapse": "Esconder",
"conversation": "Conversa", "conversation": "Conversa",
"error_fetching": "Erro ao buscar atualizações", "error_fetching": "Erro ao buscar atualizações",
"load_older": "Carregar postagens antigas", "load_older": "Carregar postagens antigas",
"no_retweet_hint": "Posts apenas para seguidores ou diretos não podem ser repetidos", "no_retweet_hint": "Posts apenas para seguidores ou diretos não podem ser partilhados",
"repeated": "Repetido", "repeated": "partilhado",
"show_new": "Mostrar novas", "show_new": "Mostrar novas",
"up_to_date": "Atualizado", "up_to_date": "Atualizado",
"no_more_statuses": "Sem mais posts", "no_more_statuses": "Sem mais posts",
"no_statuses": "Sem posts" "no_statuses": "Sem posts",
"reload": "Recarregar",
"error": "Erro a obter a cronologia: {0}"
}, },
"status": { "status": {
"reply_to": "Responder a", "reply_to": "Responder a",
"replies_list": "Respostas:" "replies_list": "Respostas:",
"unbookmark": "Remover post dos Items Guardados",
"expand": "Expandir",
"nsfw": "NSFW (Não apropriado para trabalho)",
"status_deleted": "Esta publicação foi apagada",
"hide_content": "Ocultar o conteúdo",
"show_content": "Mostrar o conteúdo",
"hide_full_subject": "Ocultar o assunto completo",
"show_full_subject": "Mostrar o assunto completo",
"thread_muted_and_words": ", contém:",
"thread_muted": "Conversação silenciada",
"external_source": "Fonte externa",
"copy_link": "Copiar o link do post",
"status_unavailable": "Publicação indisponível",
"unmute_conversation": "Mostrar a conversação",
"mute_conversation": "Silenciar a conversação",
"delete_confirm": "Tens a certeza que desejas apagar a publicação?",
"bookmark": "Guardar",
"pin": "Fixar no perfil",
"pinned": "Afixado",
"unpin": "Desafixar do perfil",
"delete": "Eliminar publicação",
"repeats": "Partilhados",
"favorites": "Favoritos"
}, },
"user_card": { "user_card": {
"approve": "Aprovar", "approve": "Aprovar",
@ -377,21 +577,52 @@
"following": "Seguindo!", "following": "Seguindo!",
"follows_you": "Segue você!", "follows_you": "Segue você!",
"its_you": "É você!", "its_you": "É você!",
"media": "Mídia", "media": "Multimédia",
"mute": "Silenciar", "mute": "Silenciar",
"muted": "Silenciado", "muted": "Silenciado",
"per_day": "por dia", "per_day": "por dia",
"remote_follow": "Seguir remotamente", "remote_follow": "Seguir remotamente",
"statuses": "Postagens", "statuses": "Postagens",
"unblock": "Desbloquear", "unblock": "Desbloquear",
"unblock_progress": "Desbloqueando...", "unblock_progress": "A desbloquear…",
"block_progress": "Bloqueando...", "block_progress": "A bloquear…",
"unmute": "Retirar silêncio", "unmute": "Retirar silêncio",
"unmute_progress": "Retirando silêncio...", "unmute_progress": "A retirar silêncio…",
"mute_progress": "Silenciando..." "mute_progress": "A silenciar…",
"admin_menu": {
"delete_user_confirmation": "Tens a certeza? Esta ação não pode ser revertida.",
"delete_user": "Eliminar utilizador",
"quarantine": "Não permitir publicações de utilizadores de instâncias remotas",
"disable_any_subscription": "Não permitir que nenhum utilizador te siga",
"disable_remote_subscription": "Não permitir seguidores de instâncias remotas",
"sandbox": "Forçar publicações apenas para seguidores",
"force_unlisted": "Forçar publicações como não listadas",
"strip_media": "Eliminar ficheiros multimédia das publicações",
"force_nsfw": "Marcar todas as publicações como NSFW (não apropriado para o trabalho)",
"delete_account": "Eliminar Conta",
"deactivate_account": "Desativar conta",
"activate_account": "Ativar conta",
"revoke_moderator": "Revogar permissões de Moderador",
"grant_moderator": "Conceder permissões de Moderador",
"revoke_admin": "Revogar permissões de Admin",
"grant_admin": "Conceder permissões de Admin",
"moderation": "Moderação"
},
"show_repeats": "Mostrar partilhas",
"hide_repeats": "Ocultar partilhas",
"unsubscribe": "Retirar subscrição",
"subscribe": "Subscrever",
"report": "Denunciar",
"message": "Mensagem",
"mention": "Mencionar",
"hidden": "Ocultar",
"roles": {
"moderator": "Moderador",
"admin": "Admin"
}
}, },
"user_profile": { "user_profile": {
"timeline_title": "Linha do tempo do usuário", "timeline_title": "Cronologia do Utilizador",
"profile_does_not_exist": "Desculpe, este perfil não existe.", "profile_does_not_exist": "Desculpe, este perfil não existe.",
"profile_loading_error": "Desculpe, houve um erro ao carregar este perfil." "profile_loading_error": "Desculpe, houve um erro ao carregar este perfil."
}, },
@ -400,17 +631,22 @@
"who_to_follow": "Quem seguir" "who_to_follow": "Quem seguir"
}, },
"tool_tip": { "tool_tip": {
"media_upload": "Envio de mídia", "media_upload": "Envio de multimédia",
"repeat": "Repetir", "repeat": "Partilhar",
"reply": "Responder", "reply": "Responder",
"favorite": "Favoritar", "favorite": "Favoritar",
"user_settings": "Configurações do usuário" "user_settings": "Configurações do usuário",
"bookmark": "Guardar",
"reject_follow_request": "Rejeitar o pedido de seguimento",
"accept_follow_request": "Aceitar o pedido de seguimento",
"add_reaction": "Adicionar Reação"
}, },
"upload": { "upload": {
"error": { "error": {
"base": "Falha no envio.", "base": "Falha no envio.",
"file_too_big": "Arquivo grande demais [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]", "file_too_big": "Arquivo grande demais [{filesize}{filesizeunit} / {allowedsize}{allowedsizeunit}]",
"default": "Tente novamente mais tarde" "default": "Tente novamente mais tarde",
"message": "Falha ao enviar: {0}"
}, },
"file_size_units": { "file_size_units": {
"B": "B", "B": "B",
@ -419,5 +655,179 @@
"GiB": "GiB", "GiB": "GiB",
"TiB": "TiB" "TiB": "TiB"
} }
},
"about": {
"mrf": {
"simple": {
"quarantine": "Quarentena",
"reject": "Rejeitar",
"accept": "Aceitar",
"media_removal_desc": "Este domínio remove multimédia das publicações dos seguintes domínios:",
"media_removal": "Remoção de multimédia",
"ftl_removal_desc": "Este domínio remove os seguintes domínios da cronologia \"Rede conhecida por todos\":",
"quarantine_desc": "Este domínio apenas irá publicar nos seguintes domínios:",
"reject_desc": "Este domínio não aceitará mensagens dos seguintes domínios:",
"accept_desc": "Este domínio aceita apenas mensagens dos seguintes domínios:",
"simple_policies": "Políticas especificas do domínio",
"media_nsfw": "Forçar definição de multimédia como Sensível",
"ftl_removal": "Remoção da cronologia da \"Rede conhecida por todos\"",
"media_nsfw_desc": "Este domínio força a multimédia a ser marcada como sensível nos seguintes domínios:"
},
"keyword": {
"replace": "Substituir",
"reject": "Rejeitar",
"is_replaced_by": "→",
"keyword_policies": "Política de Palavras-Chave",
"ftl_removal": "Remoção da cronologia da \"Rede conhecida por todos\""
},
"federation": "Federação",
"mrf_policies": "Ativar Políticas MRF",
"mrf_policies_desc": "Políticas MRF manipulam o comportamento da federação nos domínios. As seguintes políticas estão ativadas:"
},
"staff": "Staff"
},
"remote_user_resolver": {
"searching_for": "A pesquisar por",
"error": "Não encontrado.",
"remote_user_resolver": "Resolução de utilizador remoto"
},
"emoji": {
"unicode": "Emoji Unicode",
"custom": "Emoji customizado",
"add_emoji": "Inserir emoji",
"search_emoji": "Pesquisar por um emoji",
"emoji": "Emoji",
"load_all": "A carregar todos os {emojiAmount} emojis",
"load_all_hint": "Carregado o primeiro emoji {saneAmount}, carregar todos os emojis pode causar problemas de desempenho.",
"keep_open": "Manter o seletor aberto",
"stickers": "Autocolantes"
},
"polls": {
"single_choice": "Escolha única",
"vote": "Vota",
"votes": "votos",
"option": "Opção",
"add_option": "Adicionar Opção",
"not_enough_options": "Demasiado poucas opções únicas na sondagem",
"expired": "A sondagem terminou há {0}",
"expires_in": "A sondagem termina em {0}",
"expiry": "Tempo para finalizar sondagem",
"multiple_choices": "Escolha múltipla",
"type": "Tipo de sondagem",
"add_poll": "Adicionar Sondagem"
},
"importer": {
"error": "Ocorreu um erro ao importar este ficheiro.",
"success": "Importado com sucesso.",
"submit": "Enviar"
},
"exporter": {
"processing": "A processar, brevemente ser-te-á pedido que descarregues o ficheiro",
"export": "Exportar"
},
"domain_mute_card": {
"mute_progress": "A silenciar…",
"mute": "Silenciar",
"unmute": "Remover silêncio",
"unmute_progress": "A remover o silêncio…"
},
"selectable_list": {
"select_all": "Seleccionar tudo"
},
"interactions": {
"load_older": "Carregar interações mais antigas",
"follows": "Novos seguidores",
"favs_repeats": "Gostos e Partilhas",
"moves": "O utilizador migra"
},
"errors": {
"storage_unavailable": "O Pleroma não conseguiu aceder ao armazenamento do navegador. A sua sessão ou definições locais não serão armazenadas e poderá encontrar problemas inesperados. Tente ativar as cookies."
},
"shoutbox": {
"title": "Chat Geral"
},
"chats": {
"chats": "Chats",
"empty_chat_list_placeholder": "Não tens conversações ainda. Inicia uma nova conversa!",
"error_sending_message": "Ocorreu algo de errado ao enviar a mensagem.",
"error_loading_chat": "Ocorreu algo de errado ao carregar o chat.",
"delete_confirm": "Desejas realmente apagar esta mensagem?",
"more": "Mais",
"empty_message_error": "Não podes publicar uma mensagem vazia",
"new": "Nova conversação",
"delete": "Apagar",
"message_user": "Mensagem de {nickname}",
"you": "Tu:"
},
"search": {
"hashtags": "Hashtags",
"no_results": "Sem resultados",
"person_talking": "{count} pessoa a falar",
"people_talking": "{0} pessoas a falar",
"people": "Pessoas"
},
"display_date": {
"today": "Hoje"
},
"file_type": {
"file": "Ficheiro",
"image": "Imagem",
"video": "Vídeo",
"audio": "Áudio"
},
"password_reset": {
"password_reset_required_but_mailer_is_disabled": "Deves repor a tua palavra-passe, porém, a reposição de palavra-passe está desativada. Contacta o administrador da tua instância.",
"password_reset_required": "Deves repor a tua palavra-passe para iniciar sessão.",
"password_reset_disabled": "A reposição da palavra-passe foi desativada. Contacta o administrador da tua instância.",
"too_many_requests": "Alcançaste o limite de tentativas, tenta novamente mais tarde.",
"return_home": "Voltar à página principal",
"check_email": "Verifica o teu endereço de e-mail para obter um link para repor a tua palavra-passe.",
"placeholder": "O teu endereço de e-mail ou nome de utilizador",
"instruction": "Introduz o teu endereço de e-mail ou nome de utilizador. Enviaremos um link para repores a tua palavra-passe.",
"password_reset": "Repor palavra-passe",
"forgot_password": "Esqueceu-se da palavra-passe?"
},
"user_reporting": {
"generic_error": "Ocorreu um erro ao processar o teu pedido.",
"submit": "Enviar",
"forward_to": "Encaminhar para {0}",
"forward_description": "A conta é de outro servidor. Enviar também uma cópia da denúncia à outra instância?",
"additional_comments": "Comentários adicionais",
"add_comment_description": "Esta denúncia será enviada aos moderadores desta instância. Podes fornecer uma explicação pela qual te encontras a denunciar esta conta abaixo:",
"title": "Denunciar {0}"
},
"time": {
"years_short": "{0}a",
"year_short": "{0}a",
"years": "{0} anos",
"year": "{0} ano",
"weeks_short": "{0}sem",
"week_short": "{0}sem",
"weeks": "{0} semanas",
"week": "{0} semana",
"seconds_short": "{0}s",
"second_short": "{0}s",
"seconds": "{0} segundos",
"second": "{0} segundo",
"now": "agora mesmo",
"now_short": "agora",
"months_short": "{0}m",
"month_short": "{0}m",
"months": "{0} meses",
"month": "{0} mês",
"minutes_short": "{0}min",
"minute_short": "{0}min",
"minutes": "{0} minutos",
"minute": "{0} minuto",
"in_past": "há {0}",
"in_future": "em {0}",
"hours_short": "{0}h",
"hour_short": "{0}h",
"hours": "{0} horas",
"hour": "{0} hora",
"days_short": "{0}d",
"day_short": "{0}d",
"days": "{0} dias",
"day": "{0} dia"
} }
} }

View File

@ -183,14 +183,14 @@
"change_password": "Сменить пароль", "change_password": "Сменить пароль",
"change_password_error": "Произошла ошибка при попытке изменить пароль.", "change_password_error": "Произошла ошибка при попытке изменить пароль.",
"changed_password": "Пароль изменён успешно!", "changed_password": "Пароль изменён успешно!",
"collapse_subject": "Сворачивать посты с темой", "collapse_subject": "Сворачивать статусы с темой",
"confirm_new_password": "Подтверждение нового пароля", "confirm_new_password": "Подтверждение нового пароля",
"current_avatar": "Текущий аватар", "current_avatar": "Текущий аватар",
"current_password": "Текущий пароль", "current_password": "Текущий пароль",
"current_profile_banner": "Текущий баннер профиля", "current_profile_banner": "Текущий баннер профиля",
"data_import_export_tab": "Импорт / Экспорт данных", "data_import_export_tab": "Импорт / Экспорт данных",
"delete_account": "Удалить аккаунт", "delete_account": "Удалить аккаунт",
"delete_account_description": "Удалить ваш аккаунт и все ваши сообщения.", "delete_account_description": "Удалить вашу учётную запись и все ваши сообщения.",
"delete_account_error": "Возникла ошибка в процессе удаления вашего аккаунта. Если это повторяется, свяжитесь с администратором вашего сервера.", "delete_account_error": "Возникла ошибка в процессе удаления вашего аккаунта. Если это повторяется, свяжитесь с администратором вашего сервера.",
"delete_account_instructions": "Введите ваш пароль в поле ниже для подтверждения удаления.", "delete_account_instructions": "Введите ваш пароль в поле ниже для подтверждения удаления.",
"export_theme": "Сохранить Тему", "export_theme": "Сохранить Тему",
@ -238,7 +238,7 @@
"hide_followers_count_description": "Не показывать число моих подписчиков", "hide_followers_count_description": "Не показывать число моих подписчиков",
"show_admin_badge": "Показывать значок администратора в моем профиле", "show_admin_badge": "Показывать значок администратора в моем профиле",
"show_moderator_badge": "Показывать значок модератора в моем профиле", "show_moderator_badge": "Показывать значок модератора в моем профиле",
"nsfw_clickthrough": "Включить скрытие NSFW вложений и не показывать изображения в предпросмотре ссылок для NSFW статусов", "nsfw_clickthrough": "Включить скрытие вложений и предпросмотра ссылок для NSFW статусов",
"oauth_tokens": "OAuth токены", "oauth_tokens": "OAuth токены",
"token": "Токен", "token": "Токен",
"refresh_token": "Рефреш токен", "refresh_token": "Рефреш токен",
@ -295,7 +295,14 @@
"use_source": "Новая версия", "use_source": "Новая версия",
"use_snapshot": "Старая версия", "use_snapshot": "Старая версия",
"keep_as_is": "Оставить, как есть", "keep_as_is": "Оставить, как есть",
"load_theme": "Загрузить тему" "load_theme": "Загрузить тему",
"help": {
"fe_upgraded": "Движок тем для фронт-энда Pleroma был изменен после обновления.",
"older_version_imported": "Файл, который вы импортировали, был сделан в старой версии фронт-энда.",
"future_version_imported": "Файл, который вы импортировали, был сделан в новой версии фронт-энда.",
"v2_imported": "Файл, который вы импортировали, был сделан под старый фронт-энд. Мы стараемся улучшить совместимость, но все еще возможны несостыковки.",
"upgraded_from_v2": "Фронт-энд Pleroma был изменен. Выбранная тема может выглядеть слегка по-другому."
}
}, },
"common": { "common": {
"color": "Цвет", "color": "Цвет",
@ -330,7 +337,9 @@
"borders": "Границы", "borders": "Границы",
"buttons": "Кнопки", "buttons": "Кнопки",
"inputs": "Поля ввода", "inputs": "Поля ввода",
"faint_text": "Маловажный текст" "faint_text": "Маловажный текст",
"post": "Сообщения и описание пользователя",
"alert_neutral": "Нейтральный"
}, },
"radii": { "radii": {
"_tab_label": "Скругление" "_tab_label": "Скругление"
@ -451,7 +460,19 @@
"virtual_scrolling": "Оптимизировать рендеринг ленты", "virtual_scrolling": "Оптимизировать рендеринг ленты",
"hide_wallpaper": "Скрыть обои узла", "hide_wallpaper": "Скрыть обои узла",
"accent": "Акцент", "accent": "Акцент",
"upload_a_photo": "Загрузить фото" "upload_a_photo": "Загрузить фото",
"notification_mutes": "Чтобы не получать уведомления от определённого пользователя, заглушите его.",
"reset_avatar_confirm": "Вы действительно хотите сбросить личный образ?",
"reset_profile_banner": "Сбросить личный баннер",
"reset_profile_background": "Сбросить личные обои",
"reset_avatar": "Сбросить личный образ",
"search_user_to_mute": "Искать, кого вы хотите заглушить",
"search_user_to_block": "Искать, кого вы хотите заблокировать",
"pad_emoji": "Выделять эмодзи пробелами при добавлении из панели",
"avatar_size_instruction": "Желательный наименьший размер личного образа 150 на 150 пикселей.",
"enable_web_push_notifications": "Включить web push-уведомления",
"notification_blocks": "Блокировка пользователя выключает все уведомления от него, а также отписывает вас от него.",
"notification_setting_hide_notification_contents": "Скрыть отправителя и содержимое push-уведомлений"
}, },
"timeline": { "timeline": {
"collapse": "Свернуть", "collapse": "Свернуть",
@ -465,7 +486,7 @@
"error": "Ошибка при обновлении ленты: {0}" "error": "Ошибка при обновлении ленты: {0}"
}, },
"status": { "status": {
"bookmark": "В закладки", "bookmark": "Добавить в закладки",
"unbookmark": "Удалить из закладок", "unbookmark": "Удалить из закладок",
"status_deleted": "Пост удален", "status_deleted": "Пост удален",
"reply_to": "Ответ", "reply_to": "Ответ",
@ -473,7 +494,11 @@
"favorites": "Понравилось", "favorites": "Понравилось",
"unmute_conversation": "Прекратить игнорировать разговор", "unmute_conversation": "Прекратить игнорировать разговор",
"mute_conversation": "Игнорировать разговор", "mute_conversation": "Игнорировать разговор",
"thread_muted": "Разговор игнорируется" "thread_muted": "Разговор игнорируется",
"external_source": "Перейти к источнику",
"delete_confirm": "Вы действительно хотите удалить данный статус?",
"delete": "Удалить",
"copy_link": "Скопировать ссылку"
}, },
"user_card": { "user_card": {
"block": "Заблокировать", "block": "Заблокировать",
@ -515,7 +540,12 @@
"media": "С вложениями", "media": "С вложениями",
"mention": "Упомянуть", "mention": "Упомянуть",
"show_repeats": "Показывать повторы", "show_repeats": "Показывать повторы",
"hide_repeats": "Скрыть повторы" "hide_repeats": "Скрыть повторы",
"report": "Пожаловаться",
"roles": {
"moderator": "Модератор",
"admin": "Администратор"
}
}, },
"user_profile": { "user_profile": {
"timeline_title": "Лента пользователя" "timeline_title": "Лента пользователя"
@ -584,7 +614,8 @@
"title": "Особенности", "title": "Особенности",
"gopher": "Gopher", "gopher": "Gopher",
"who_to_follow": "Предложения кого читать", "who_to_follow": "Предложения кого читать",
"pleroma_chat_messages": "Pleroma Чат" "pleroma_chat_messages": "Pleroma Чат",
"upload_limit": "Наибольший размер загружаемого файла"
}, },
"tool_tip": { "tool_tip": {
"accept_follow_request": "Принять запрос на чтение", "accept_follow_request": "Принять запрос на чтение",
@ -673,6 +704,7 @@
"you": "Вы:" "you": "Вы:"
}, },
"remote_user_resolver": { "remote_user_resolver": {
"error": "Не найдено." "error": "Не найдено.",
"searching_for": "Ищем"
} }
} }

View File

@ -25,11 +25,11 @@
}, },
"features_panel": { "features_panel": {
"gopher": "Gopher", "gopher": "Gopher",
"pleroma_chat_messages": "Локальні балачки", "pleroma_chat_messages": "Чати",
"chat": "Міні-чат", "chat": "Міні-чат",
"who_to_follow": "Кого відстежувати", "who_to_follow": "Кого відстежувати",
"title": "Особливості", "title": "Особливості",
"scope_options": "Параметри осягу", "scope_options": "Параметри обсягу",
"media_proxy": "Посередник медіа-даних", "media_proxy": "Посередник медіа-даних",
"text_limit": "Ліміт символів", "text_limit": "Ліміт символів",
"upload_limit": "Обмеження завантажень" "upload_limit": "Обмеження завантажень"
@ -39,9 +39,9 @@
"export": "Експорт" "export": "Експорт"
}, },
"domain_mute_card": { "domain_mute_card": {
"unmute_progress": "Вимикаю…", "unmute_progress": "Вмикаю…",
"unmute": "Вимкнути заглушення", "unmute": "Вимкнути заглушення",
"mute_progress": "Вмикаю…", "mute_progress": "Вимикаю…",
"mute": "Ігнорувати" "mute": "Ігнорувати"
}, },
"shoutbox": { "shoutbox": {
@ -51,13 +51,13 @@
"staff": "Адміністрація", "staff": "Адміністрація",
"mrf": { "mrf": {
"simple": { "simple": {
"media_nsfw_desc": "Даний інстанс примусово позначає медіа в наступних інстансах як NSFW:", "media_nsfw_desc": "Даний інстанс примусово позначає медіа в наступних інстансах як дратівливий:",
"media_nsfw": "Примусове визначення медіа як дратівливого", "media_nsfw": "Примусове визначення медіа як дратівливого",
"media_removal_desc": "Поточний інстанс видаляє медіа з дописів на перелічених інстансах:", "media_removal_desc": "Поточний інстанс видаляє медіа з дописів на перелічених інстансах:",
"media_removal": "Видалення медіа", "media_removal": "Видалення медіа",
"ftl_removal_desc": "Цей інстанс видаляє перелічені інстанси з \"Усієї відомої мережі\":", "ftl_removal_desc": "Цей інстанс видаляє перелічені інстанси з Федеративної стрічки:",
"ftl_removal": "Видалення з \"Усієї відомої мережі\"", "ftl_removal": "Видалення зі стрічки Федеративної мережі",
"quarantine_desc": "Поточний інстанс буде надсилати тільки публічні дописи наступним інстансам:", "quarantine_desc": "Поточний інстанс надсилатиме тільки публічні дописи наступним інстансам:",
"quarantine": "Карантин", "quarantine": "Карантин",
"reject_desc": "Поточний інстанс не прийматиме повідомлення з перелічених інстансів:", "reject_desc": "Поточний інстанс не прийматиме повідомлення з перелічених інстансів:",
"accept": "Прийняти", "accept": "Прийняти",
@ -66,7 +66,7 @@
"simple_policies": "Правила поточного інстансу" "simple_policies": "Правила поточного інстансу"
}, },
"mrf_policies_desc": "Правила MRF розповсюджуються на даний інстанс. Наступні правила активні:", "mrf_policies_desc": "Правила MRF розповсюджуються на даний інстанс. Наступні правила активні:",
"mrf_policies": "Активні правила MRF (модуль переписування повідомлень)", "mrf_policies": "Активувати правила MRF (модуль переписування повідомлень)",
"keyword": { "keyword": {
"is_replaced_by": "→", "is_replaced_by": "→",
"replace": "Замінити", "replace": "Замінити",
@ -135,7 +135,7 @@
"error": "Помилка при оновленні сповіщень: {0}" "error": "Помилка при оновленні сповіщень: {0}"
}, },
"nav": { "nav": {
"chats": "Локальні балачки", "chats": "Чати",
"timelines": "Стрічки", "timelines": "Стрічки",
"twkn": "Уся відома мережа", "twkn": "Уся відома мережа",
"about": "Інформація", "about": "Інформація",
@ -546,7 +546,8 @@
"disabled": "Вимкнено", "disabled": "Вимкнено",
"selectedMenu": "Вибраний пункт меню", "selectedMenu": "Вибраний пункт меню",
"tabs": "Вкладки", "tabs": "Вкладки",
"pressed": "Натиснуто" "pressed": "Натиснуто",
"wallpaper": "Шпалери"
}, },
"common_colors": { "common_colors": {
"rgbo": "Піктограми, акценти, значки", "rgbo": "Піктограми, акценти, значки",
@ -602,7 +603,8 @@
"frontend_version": "Версія фронтенду", "frontend_version": "Версія фронтенду",
"backend_version": "Версія бекенду", "backend_version": "Версія бекенду",
"title": "Версія" "title": "Версія"
} },
"hide_wallpaper": "Сховати шпалери екземпляру"
}, },
"selectable_list": { "selectable_list": {
"select_all": "Вибрати все" "select_all": "Вибрати все"
@ -758,7 +760,11 @@
"unblock": "Розблокувати", "unblock": "Розблокувати",
"remote_follow": "Підписатись", "remote_follow": "Підписатись",
"muted": "Заглушений", "muted": "Заглушений",
"mute": "Заглушити" "mute": "Заглушити",
"roles": {
"moderator": "Модератор",
"admin": "Адміністратор"
}
}, },
"status": { "status": {
"copy_link": "Скопіювати посилання на допис", "copy_link": "Скопіювати посилання на допис",

View File

@ -526,7 +526,8 @@
"mute_import": "靜音導入", "mute_import": "靜音導入",
"mute_import_error": "導入靜音時出錯", "mute_import_error": "導入靜音時出錯",
"mute_export_button": "將靜音導出到csv文件", "mute_export_button": "將靜音導出到csv文件",
"mute_export": "靜音導出" "mute_export": "靜音導出",
"hide_wallpaper": "隱藏實例桌布"
}, },
"chats": { "chats": {
"more": "更多", "more": "更多",

View File

@ -188,7 +188,12 @@ export const parseUser = (data) => {
output.follow_request_count = data.pleroma.follow_request_count output.follow_request_count = data.pleroma.follow_request_count
output.tags = data.pleroma.tags output.tags = data.pleroma.tags
output.deactivated = data.pleroma.deactivated
// deactivated was changed to is_active in Pleroma 2.3.0
// so check if is_active is present
output.deactivated = typeof data.pleroma.is_active !== 'undefined'
? !data.pleroma.is_active // new backend
: data.pleroma.deactivated // old backend
output.notification_settings = data.pleroma.notification_settings output.notification_settings = data.pleroma.notification_settings
output.unread_chat_count = data.pleroma.unread_chat_count output.unread_chat_count = data.pleroma.unread_chat_count

View File

@ -0,0 +1,12 @@
const specialLanguageCodes = {
'ja_easy': 'ja',
'zh_Hant': 'zh-HANT'
}
const internalToBrowserLocale = code => specialLanguageCodes[code] || code
const localeService = {
internalToBrowserLocale
}
export default localeService

View File

@ -242,9 +242,18 @@ export const generateShadows = (input, colors) => {
panelHeader: 'panel', panelHeader: 'panel',
input: 'input' input: 'input'
} }
const inputShadows = input.shadows && !input.themeEngineVersion
? shadows2to3(input.shadows, input.opacity) const cleanInputShadows = Object.fromEntries(
: input.shadows || {} Object.entries(input.shadows)
.map(([name, shadowSlot]) => [
name,
// defaulting color to black to avoid potential problems
shadowSlot.map(shadowDef => ({ color: '#000000', ...shadowDef }))
])
)
const inputShadows = cleanInputShadows && !input.themeEngineVersion
? shadows2to3(cleanInputShadows, input.opacity)
: cleanInputShadows || {}
const shadows = Object.entries({ const shadows = Object.entries({
...DEFAULT_SHADOWS, ...DEFAULT_SHADOWS,
...inputShadows ...inputShadows