commit
a936e75d02
@ -0,0 +1,38 @@
|
||||
name: JSON Linting
|
||||
on:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'dependabot/**'
|
||||
paths:
|
||||
- 'package.json'
|
||||
- 'yarn.lock'
|
||||
- '.prettier*'
|
||||
- '**/*.json'
|
||||
- '.github/workflows/lint-json.yml'
|
||||
|
||||
pull_request:
|
||||
paths:
|
||||
- 'package.json'
|
||||
- 'yarn.lock'
|
||||
- '.prettier*'
|
||||
- '**/*.json'
|
||||
- '.github/workflows/lint-json.yml'
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Clone repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
cache: yarn
|
||||
|
||||
- name: Install all yarn packages
|
||||
run: yarn --frozen-lockfile
|
||||
|
||||
- name: Prettier
|
||||
run: yarn prettier --check "**/*.json"
|
@ -0,0 +1,40 @@
|
||||
name: YML Linting
|
||||
on:
|
||||
push:
|
||||
branches-ignore:
|
||||
- 'dependabot/**'
|
||||
paths:
|
||||
- 'package.json'
|
||||
- 'yarn.lock'
|
||||
- '.prettier*'
|
||||
- '**/*.yaml'
|
||||
- '**/*.yml'
|
||||
- '.github/workflows/lint-yml.yml'
|
||||
|
||||
pull_request:
|
||||
paths:
|
||||
- 'package.json'
|
||||
- 'yarn.lock'
|
||||
- '.prettier*'
|
||||
- '**/*.yaml'
|
||||
- '**/*.yml'
|
||||
- '.github/workflows/lint-yml.yml'
|
||||
|
||||
jobs:
|
||||
lint:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
steps:
|
||||
- name: Clone repository
|
||||
uses: actions/checkout@v3
|
||||
|
||||
- name: Set up Node.js
|
||||
uses: actions/setup-node@v3
|
||||
with:
|
||||
cache: yarn
|
||||
|
||||
- name: Install all yarn packages
|
||||
run: yarn --frozen-lockfile
|
||||
|
||||
- name: Prettier
|
||||
run: yarn prettier --check "**/*.{yml,yaml}"
|
@ -0,0 +1,89 @@
|
||||
import { debounce } from 'lodash';
|
||||
import PropTypes from 'prop-types';
|
||||
import React from 'react';
|
||||
import ImmutablePureComponent from 'react-immutable-pure-component';
|
||||
import ImmutablePropTypes from 'react-immutable-proptypes';
|
||||
import { defineMessages, injectIntl, FormattedMessage } from 'react-intl';
|
||||
import { connect } from 'react-redux';
|
||||
import ColumnHeader from 'flavours/glitch/components/column_header';
|
||||
import ScrollableList from 'flavours/glitch/components/scrollable_list';
|
||||
import Column from 'flavours/glitch/features/ui/components/column';
|
||||
import { Helmet } from 'react-helmet';
|
||||
import Hashtag from 'flavours/glitch/components/hashtag';
|
||||
import { expandFollowedHashtags, fetchFollowedHashtags } from 'flavours/glitch/actions/tags';
|
||||
|
||||
const messages = defineMessages({
|
||||
heading: { id: 'followed_tags', defaultMessage: 'Followed hashtags' },
|
||||
});
|
||||
|
||||
const mapStateToProps = state => ({
|
||||
hashtags: state.getIn(['followed_tags', 'items']),
|
||||
isLoading: state.getIn(['followed_tags', 'isLoading'], true),
|
||||
hasMore: !!state.getIn(['followed_tags', 'next']),
|
||||
});
|
||||
|
||||
export default @connect(mapStateToProps)
|
||||
@injectIntl
|
||||
class FollowedTags extends ImmutablePureComponent {
|
||||
|
||||
static propTypes = {
|
||||
params: PropTypes.object.isRequired,
|
||||
dispatch: PropTypes.func.isRequired,
|
||||
intl: PropTypes.object.isRequired,
|
||||
hashtags: ImmutablePropTypes.list,
|
||||
isLoading: PropTypes.bool,
|
||||
hasMore: PropTypes.bool,
|
||||
multiColumn: PropTypes.bool,
|
||||
};
|
||||
|
||||
componentDidMount() {
|
||||
this.props.dispatch(fetchFollowedHashtags());
|
||||
};
|
||||
|
||||
handleLoadMore = debounce(() => {
|
||||
this.props.dispatch(expandFollowedHashtags());
|
||||
}, 300, { leading: true });
|
||||
|
||||
render () {
|
||||
const { intl, hashtags, isLoading, hasMore, multiColumn } = this.props;
|
||||
|
||||
const emptyMessage = <FormattedMessage id='empty_column.followed_tags' defaultMessage='You have not followed any hashtags yet. When you do, they will show up here.' />;
|
||||
|
||||
return (
|
||||
<Column bindToDocument={!multiColumn}>
|
||||
<ColumnHeader
|
||||
icon='hashtag'
|
||||
title={intl.formatMessage(messages.heading)}
|
||||
showBackButton
|
||||
multiColumn={multiColumn}
|
||||
/>
|
||||
|
||||
<ScrollableList
|
||||
scrollKey='followed_tags'
|
||||
emptyMessage={emptyMessage}
|
||||
hasMore={hasMore}
|
||||
isLoading={isLoading}
|
||||
onLoadMore={this.handleLoadMore}
|
||||
bindToDocument={!multiColumn}
|
||||
>
|
||||
{hashtags.map((hashtag) => (
|
||||
<Hashtag
|
||||
key={hashtag.get('name')}
|
||||
name={hashtag.get('name')}
|
||||
to={`/tags/${hashtag.get('name')}`}
|
||||
withGraph={false}
|
||||
// Taken from ImmutableHashtag. Should maybe refactor ImmutableHashtag to accept more options?
|
||||
people={hashtag.getIn(['history', 0, 'accounts']) * 1 + hashtag.getIn(['history', 1, 'accounts']) * 1}
|
||||
history={hashtag.get('history').reverse().map((day) => day.get('uses')).toArray()}
|
||||
/>
|
||||
))}
|
||||
</ScrollableList>
|
||||
|
||||
<Helmet>
|
||||
<meta name='robots' content='noindex' />
|
||||
</Helmet>
|
||||
</Column>
|
||||
);
|
||||
}
|
||||
|
||||
}
|
@ -1,6 +1,52 @@
|
||||
{
|
||||
"account.add_account_note": "Aldoni noton por @{name}",
|
||||
"account_note.cancel": "Nuligi",
|
||||
"account_note.edit": "Redakti",
|
||||
"account_note.save": "Konservi",
|
||||
"column.reblogged_by": "Diskonigita de",
|
||||
"column.subheading": "Diversaj agordoj",
|
||||
"column_header.profile": "Profilo",
|
||||
"column_subheading.lists": "Listoj",
|
||||
"compose.attach": "Aldoni…",
|
||||
"compose.attach.doodle": "Desegni ion",
|
||||
"compose.attach.upload": "Alŝuti dosieron",
|
||||
"compose.content-type.html": "HTML",
|
||||
"compose.content-type.markdown": "Markdown",
|
||||
"confirmations.unfilter.author": "Aŭtoro",
|
||||
"confirmations.unfilter.confirm": "Montri",
|
||||
"confirmations.unfilter.edit_filter": "Redakti filtrilon",
|
||||
"navigation_bar.keyboard_shortcuts": "Fulmoklavoj",
|
||||
"notification_purge.btn_all": "Selekti ĉiujn",
|
||||
"notification_purge.btn_apply": "Forigi selektajn",
|
||||
"notification_purge.btn_invert": "Inverti selekton",
|
||||
"notification_purge.btn_none": "Elekti neniun",
|
||||
"notifications.marked_clear": "Forigi selektajn sciigojn",
|
||||
"onboarding.next": "Sekva",
|
||||
"onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
|
||||
"onboarding.page_six.almost_done": "Preskaŭ finita…",
|
||||
"onboarding.page_six.apps_available": "Estas {apps} disponeblaj por iOS, Android kaj aliaj sistemoj.",
|
||||
"onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
|
||||
"onboarding.page_six.various_app": "poŝtelefonaj aplikaĵoj",
|
||||
"settings.auto_collapse_all": "Ĉiuj",
|
||||
"settings.auto_collapse_lengthy": "Longaj afiŝoj",
|
||||
"settings.auto_collapse_media": "Afiŝoj kun aŭdovidaĵoj",
|
||||
"settings.auto_collapse_notifications": "Sciigoj",
|
||||
"settings.auto_collapse_reblogs": "Diskonigoj",
|
||||
"settings.auto_collapse_replies": "Respondoj",
|
||||
"settings.close": "Fermi",
|
||||
"settings.content_warnings": "Content warnings",
|
||||
"settings.preferences": "Preferences"
|
||||
"settings.content_warnings.regexp": "Regula esprimo",
|
||||
"settings.preferences": "Preferences",
|
||||
"settings.shared_settings_link": "preferoj de uzanto",
|
||||
"settings.side_arm": "Duaranga butono por afiŝi:",
|
||||
"settings.side_arm.none": "Neniu",
|
||||
"settings.status_icons": "Ikonoj sur la afiŝoj",
|
||||
"settings.status_icons_language": "Indikilo de lingvo",
|
||||
"settings.status_icons_media": "Indikilo de aŭdovidaĵojn kaj balotenketo",
|
||||
"settings.status_icons_reply": "Indikilo de respondoj",
|
||||
"settings.status_icons_visibility": "Indikilo de privateco de afiŝo",
|
||||
"web_app_crash.change_your_settings": "Ŝanĝi viajn {settings}",
|
||||
"web_app_crash.reload": "Reŝarĝi",
|
||||
"web_app_crash.reload_page": "{reload} la nunan paĝon",
|
||||
"web_app_crash.settings": "agordojn"
|
||||
}
|
||||
|
@ -1,6 +1,200 @@
|
||||
{
|
||||
"about.fork_disclaimer": "O Glitch-soc é um software gratuito de código aberto bifurcado a partir do Mastodon.",
|
||||
"account.add_account_note": "Adicionar nota para @{name}",
|
||||
"account.disclaimer_full": "As informações abaixo podem refletir o perfil do usuário de forma incompleta.",
|
||||
"account.follows": "Seguidores",
|
||||
"account.joined": "Entrou em {date}",
|
||||
"account.suspended_disclaimer_full": "Este usuário foi suspenso por um moderador.",
|
||||
"account.view_full_profile": "Ver o perfil completo",
|
||||
"account_note.cancel": "Cancelar",
|
||||
"account_note.edit": "Editar",
|
||||
"account_note.glitch_placeholder": "Nenhum comentário fornecido",
|
||||
"account_note.save": "Salvar",
|
||||
"advanced_options.icon_title": "Opções avançadas",
|
||||
"advanced_options.local-only.long": "Não publicar em outras instâncias",
|
||||
"advanced_options.local-only.short": "Apenas localmente",
|
||||
"advanced_options.local-only.tooltip": "Este post é somente local",
|
||||
"advanced_options.threaded_mode.long": "Abrir automaticamente uma resposta ao postar",
|
||||
"advanced_options.threaded_mode.short": "Modo de discussão",
|
||||
"advanced_options.threaded_mode.tooltip": "Modo de discussão ativado",
|
||||
"boost_modal.missing_description": "Este toot contém algumas mídias sem descrição",
|
||||
"column.favourited_by": "Favoritado por",
|
||||
"column.heading": "Diversos",
|
||||
"column.reblogged_by": "Inpulsionado por",
|
||||
"column.subheading": "Opções diversas",
|
||||
"column_header.profile": "Perfil",
|
||||
"column_subheading.lists": "Listas",
|
||||
"column_subheading.navigation": "Navegação",
|
||||
"community.column_settings.allow_local_only": "Mostrar os toots apenas locais",
|
||||
"compose.attach": "Anexar...",
|
||||
"compose.attach.doodle": "Desenhe algo",
|
||||
"compose.attach.upload": "Enviar um arquivo",
|
||||
"compose.content-type.html": "HTML",
|
||||
"compose.content-type.markdown": "Markdown",
|
||||
"compose.content-type.plain": "Texto sem formatação",
|
||||
"compose_form.poll.multiple_choices": "Permitir múltipla escolha",
|
||||
"compose_form.poll.single_choice": "Permitir uma escolha",
|
||||
"compose_form.spoiler": "Ocultar texto atrás do aviso",
|
||||
"confirmation_modal.do_not_ask_again": "Não pedir confirmação novamente",
|
||||
"confirmations.deprecated_settings.confirm": "Usar preferências do Mastodon",
|
||||
"confirmations.deprecated_settings.message": "Alguns dos {app_settings} específicos do dispositivo que você está usando foram substituídos por Mastodon {preferences} e serão substituídos:",
|
||||
"confirmations.missing_media_description.confirm": "Enviar mesmo assim",
|
||||
"confirmations.missing_media_description.edit": "Editar mídia",
|
||||
"confirmations.missing_media_description.message": "Pelo menos um anexo de mídia não tem uma descrição. Considere descrever todos os anexos de mídia para deficientes visuais antes de enviar seu toot.",
|
||||
"confirmations.unfilter.author": "Autor",
|
||||
"confirmations.unfilter.confirm": "Exibir",
|
||||
"confirmations.unfilter.edit_filter": "Editar filtro",
|
||||
"confirmations.unfilter.filters": "Correspondência de {count, plural, one {filtro} other {filtros}}",
|
||||
"content-type.change": "Tipo de conteúdo",
|
||||
"direct.group_by_conversations": "Agrupar por conversa",
|
||||
"endorsed_accounts_editor.endorsed_accounts": "Contas em destaque",
|
||||
"favourite_modal.combo": "Você pode pressionar {combo} para pular isso da próxima vez",
|
||||
"getting_started.onboarding": "Mostre-me ao redor",
|
||||
"home.column_settings.advanced": "Avançado",
|
||||
"home.column_settings.filter_regex": "Filtrar com uma expressão regular",
|
||||
"home.column_settings.show_direct": "Mostrar DMs",
|
||||
"home.settings": "Configurações da coluna",
|
||||
"keyboard_shortcuts.bookmark": "para marcar",
|
||||
"keyboard_shortcuts.secondary_toot": "para enviar toot usando a configuração de privacidade secundária",
|
||||
"keyboard_shortcuts.toggle_collapse": "para recolher/mostrar toots",
|
||||
"layout.auto": "Automático",
|
||||
"layout.desktop": "Área de trabalho",
|
||||
"layout.hint.auto": "Escolher automaticamente o layout baseado na configuração \"Habilitar interface web avançada\" e o tamanho da tela.",
|
||||
"layout.hint.desktop": "Use o layout de várias colunas independentemente da configuração \"Habilitar interface web avançada\" ou do tamanho da tela.",
|
||||
"layout.hint.single": "Use o layout de uma coluna independentemente da configuração \"Habilitar interface web avançada\" ou do tamanho da tela.",
|
||||
"layout.single": "Celular",
|
||||
"media_gallery.sensitive": "Sensível",
|
||||
"moved_to_warning": "Esta conta foi como movida para {moved_to_link} e, portanto, pode não aceitar novos seguidores.",
|
||||
"navigation_bar.app_settings": "Configurações do aplicativo",
|
||||
"navigation_bar.featured_users": "Usuários em destaque",
|
||||
"navigation_bar.info": "Informação estendida",
|
||||
"navigation_bar.keyboard_shortcuts": "Atalhos de teclado",
|
||||
"navigation_bar.misc": "Diversos",
|
||||
"notification.markForDeletion": "Marcar para exclusão",
|
||||
"notification_purge.btn_all": "Selecionar\ntudo",
|
||||
"notification_purge.btn_apply": "Limpar\nselecionados",
|
||||
"notification_purge.btn_invert": "Inverter\nseleção",
|
||||
"notification_purge.btn_none": "Selecionar\nnenhum",
|
||||
"notification_purge.start": "Entrar no modo de limpeza de notificação",
|
||||
"notifications.marked_clear": "Limpar as notificações selecionadas",
|
||||
"notifications.marked_clear_confirmation": "Tem certeza que deseja limpar todas as notificações selecionadas permanentemente?",
|
||||
"onboarding.done": "Feito",
|
||||
"onboarding.next": "Próximo",
|
||||
"onboarding.page_five.public_timelines": "A linha do tempo local mostra publicações públicas de todos em {domain}. A linha do tempo federada mostra publicações públicas de todos que as pessoas seguem em {domain}. Estas são as linhas do tempo públicas, uma ótima maneira de descobrir novas pessoas.",
|
||||
"onboarding.page_four.home": "A linha do tempo da casa mostra publicações de pessoas que você segue.",
|
||||
"onboarding.page_four.notifications": "A coluna de notificações mostra quando alguém interage com você.",
|
||||
"onboarding.page_one.federation": "{domain} is an \"instance\" of Mastodon. Mastodon is a network of independent servers joining up to make one larger social network. We call these servers instances.",
|
||||
"onboarding.page_one.handle": "Você está em {domain}, então o seu identificador completo é {handle}",
|
||||
"onboarding.page_one.welcome": "Bem-vindo ao {domain}!",
|
||||
"onboarding.page_six.admin": "O administrador da sua instância é {admin}.",
|
||||
"onboarding.page_six.almost_done": "Quase pronto...",
|
||||
"onboarding.page_six.appetoot": "Bom Appetoot!",
|
||||
"onboarding.page_six.apps_available": "Há {apps} disponíveis para iOS, Android e outras plataformas.",
|
||||
"onboarding.page_six.github": "{domain} runs on Glitchsoc. Glitchsoc is a friendly {fork} of {Mastodon}. Glitchsoc is fully compatible with all Mastodon apps and instances. Glitchsoc is free open-source software. You can report bugs, request features, or contribute to the code on {github}.",
|
||||
"onboarding.page_six.guidelines": "diretrizes da comunidade",
|
||||
"onboarding.page_six.read_guidelines": "Por favor, leia {domain} {guidelines}!",
|
||||
"onboarding.page_six.various_app": "aplicativos móveis",
|
||||
"onboarding.page_three.profile": "Edite seu perfil para alterar seu avatar, bio e nome de exibição. Lá você também encontrará outras preferências.",
|
||||
"onboarding.page_three.search": "Use a barra de busca para encontrar pessoas e procure hashtags, tais como {illustration} e {introductions}. Para procurar uma pessoa que não esteja neste caso, use o identificador completo.",
|
||||
"onboarding.page_two.compose": "Escreva as postagens a partir da coluna de composição. Você pode enviar imagens, alterar as configurações de privacidade e adicionar avisos de conteúdo com os ícones abaixo.",
|
||||
"onboarding.skip": "Pular",
|
||||
"settings.always_show_spoilers_field": "Sempre ativar o campo Aviso de Conteúdo",
|
||||
"settings.auto_collapse": "Colapso automático",
|
||||
"settings.auto_collapse_all": "Tudo",
|
||||
"settings.auto_collapse_lengthy": "Toots longos",
|
||||
"settings.auto_collapse_media": "Toots com mídia",
|
||||
"settings.auto_collapse_notifications": "Notificações",
|
||||
"settings.auto_collapse_reblogs": "Impulsos",
|
||||
"settings.auto_collapse_replies": "Respostas",
|
||||
"settings.close": "Fechar",
|
||||
"settings.collapsed_statuses": "Toots recolhidos",
|
||||
"settings.compose_box_opts": "Caixa de composição",
|
||||
"settings.confirm_before_clearing_draft": "Mostrar diálogo de confirmação antes de sobrescrever a mensagem que está sendo composta",
|
||||
"settings.confirm_boost_missing_media_description": "Mostrar diálogo antes de inpulsionar os toots sem descrições de mídia",
|
||||
"settings.confirm_missing_media_description": "Mostrar diálogo antes de enviar toots sem descrições de mídia",
|
||||
"settings.content_warnings": "Content warnings",
|
||||
"settings.preferences": "Preferences"
|
||||
"settings.content_warnings.regexp": "Expressão regular",
|
||||
"settings.content_warnings_filter": "Avisos de conteúdo para não revelar automaticamente:",
|
||||
"settings.content_warnings_media_outside": "Exibir anexos de mídia fora avisos de conteúdo",
|
||||
"settings.content_warnings_media_outside_hint": "Reproduzir o comportamento do Mastodonte, fazendo com que a alternância do Aviso de Conteúdo não afete os anexos de mídia",
|
||||
"settings.content_warnings_shared_state": "Mostrar/ocultar o conteúdo de todas as cópias de uma só vez",
|
||||
"settings.content_warnings_shared_state_hint": "Reproduzir o comportamento do Mastodonte fazendo com que o botão de Aviso de Conteúdo afete todas as cópias de um post de uma só vez. Isto evitará o colapso automático de qualquer cópia de um toon com Aviso de Conteúdo revelado",
|
||||
"settings.content_warnings_unfold_opts": "Opções de auto-revelar",
|
||||
"settings.deprecated_setting": "Essa configuração agora é controlada pelo {settings_page_link} do Mastodon",
|
||||
"settings.enable_collapsed": "Habilitar toots recolhidos",
|
||||
"settings.enable_collapsed_hint": "Posts recolhidos têm partes dos seus conteúdos ocultos para ocupar menos espaço na tela. Isto é diferente do recurso 'Aviso de Conteúdo'",
|
||||
"settings.enable_content_warnings_auto_unfold": "Revelar automaticamente os avisos de conteúdo",
|
||||
"settings.general": "Geral",
|
||||
"settings.hicolor_privacy_icons": "Ícones de privacidade com cores de alto contraste",
|
||||
"settings.hicolor_privacy_icons.hint": "Exibir ícones de privacidade em cores brilhantes e facilmente distinguíveis",
|
||||
"settings.image_backgrounds": "Fundos de imagem",
|
||||
"settings.image_backgrounds_media": "Pré-visualização da mídia de toots colapsados",
|
||||
"settings.image_backgrounds_media_hint": "Se o post tiver algum anexo de mídia, use o primeiro em um plano de fundo",
|
||||
"settings.image_backgrounds_users": "Dar a toots recolhidos uma imagem de fundo",
|
||||
"settings.inline_preview_cards": "Cartões de pré-visualização em linha para links externos",
|
||||
"settings.layout": "Layout:",
|
||||
"settings.layout_opts": "Opções de layout",
|
||||
"settings.media": "Mídia",
|
||||
"settings.media_fullwidth": "Pré-visualização da mídia em largura total",
|
||||
"settings.media_letterbox": "Caixa de mensagens",
|
||||
"settings.media_letterbox_hint": "Escala para baixo para encher os recipientes de imagem em vez de esticá-los e cortá-los",
|
||||
"settings.media_reveal_behind_cw": "Revelar mídia sensível por trás de um Aviso de Conteúdo por padrão",
|
||||
"settings.notifications.favicon_badge": "Notificações não lidas como emblema do favicon",
|
||||
"settings.notifications.favicon_badge.hint": "Adicionar um emblema para notificações não lidas ao favicon",
|
||||
"settings.notifications.tab_badge": "Emblema de notificações não lidas",
|
||||
"settings.notifications.tab_badge.hint": "Exibir um emblema para notificações não lidas nos ícones de coluna quando a coluna de notificações não estiver aberta",
|
||||
"settings.notifications_opts": "Opções de notificações",
|
||||
"settings.pop_in_left": "Esquerda",
|
||||
"settings.pop_in_player": "Ativar player pop-in",
|
||||
"settings.pop_in_position": "Posição do player:",
|
||||
"settings.pop_in_right": "Direita",
|
||||
"settings.preferences": "Preferences",
|
||||
"settings.prepend_cw_re": "Preparar \"re: \" para avisos de conteúdo quando responder",
|
||||
"settings.preselect_on_reply": "Nome de usuário pré-selecionado na resposta",
|
||||
"settings.preselect_on_reply_hint": "Ao responder a uma conversa com vários participantes, pré-selecionar nomes de usuários após o primeiro",
|
||||
"settings.rewrite_mentions": "Reescrever as menções nos status exibidos",
|
||||
"settings.rewrite_mentions_acct": "Reescrever com nome de usuário e domínio (quando a conta for remota)",
|
||||
"settings.rewrite_mentions_no": "Não reescrever menções",
|
||||
"settings.rewrite_mentions_username": "Reescreva com nome de usuário",
|
||||
"settings.shared_settings_link": "preferências do usuário",
|
||||
"settings.show_action_bar": "Mostrar botões de ação em toots recolhidos",
|
||||
"settings.show_content_type_choice": "Exibir opção do tipo de conteúdo ao autorar toots",
|
||||
"settings.show_reply_counter": "Exibir uma estimativa da contagem de respostas",
|
||||
"settings.side_arm": "Botão de toot secundário:",
|
||||
"settings.side_arm.none": "Nenhum",
|
||||
"settings.side_arm_reply_mode": "Ao responder a um toot, o botão secundário de toot deve:",
|
||||
"settings.side_arm_reply_mode.copy": "Copiar configuração de privacidade do toot sendo respondido a",
|
||||
"settings.side_arm_reply_mode.keep": "Mantenha sua privacidade definida",
|
||||
"settings.side_arm_reply_mode.restrict": "Restringir configuração de privacidade ao toot sendo respondido a",
|
||||
"settings.status_icons": "Ícones de toot",
|
||||
"settings.status_icons_language": "Indicador de idioma",
|
||||
"settings.status_icons_local_only": "Indicador somente local",
|
||||
"settings.status_icons_media": "Indicadores de mídia e enquete",
|
||||
"settings.status_icons_reply": "Indicador de resposta",
|
||||
"settings.status_icons_visibility": "Indicador de privacidade",
|
||||
"settings.swipe_to_change_columns": "Permitir deslizar para alterar colunas (apenas celular)",
|
||||
"settings.tag_misleading_links": "Marcar links enganosos",
|
||||
"settings.tag_misleading_links.hint": "Acrescentar uma indicação visual com o link hospedeiro alvo a cada link que não o mencione explicitamente",
|
||||
"settings.wide_view": "Visualização ampla (apenas no Modo desktop)",
|
||||
"settings.wide_view_hint": "Estica as colunas para preencher melhor o espaço disponível.",
|
||||
"status.collapse": "Recolher",
|
||||
"status.has_audio": "Possui um arquivo de áudio anexado",
|
||||
"status.has_pictures": "Possui uma imagem anexada",
|
||||
"status.has_preview_card": "Possui uma pré-visualização anexada",
|
||||
"status.has_video": "Possui um vídeo anexado",
|
||||
"status.in_reply_to": "Este toot é uma resposta",
|
||||
"status.is_poll": "Este toot é uma enquete",
|
||||
"status.local_only": "Visível apenas em sua instância",
|
||||
"status.sensitive_toggle": "Clique para ver",
|
||||
"status.uncollapse": "Revelar",
|
||||
"web_app_crash.change_your_settings": "Altere suas {settings}",
|
||||
"web_app_crash.content": "Você poderia tentar qualquer uma das seguintes opções:",
|
||||
"web_app_crash.debug_info": "Informações de depuração",
|
||||
"web_app_crash.disable_addons": "Desativar complementos do navegador ou ferramentas de tradução integradas",
|
||||
"web_app_crash.issue_tracker": "rastreador de problemas",
|
||||
"web_app_crash.reload": "Recarregar",
|
||||
"web_app_crash.reload_page": "{reload} a página atual",
|
||||
"web_app_crash.report_issue": "Relatar um erro no {issuetracker}",
|
||||
"web_app_crash.settings": "configurações",
|
||||
"web_app_crash.title": "Desculpe, mas algo deu errado com o aplicativo Mastodon."
|
||||
}
|
||||
|
@ -1,3 +1,4 @@
|
||||
export const PERMISSION_INVITE_USERS = 0x0000000000010000;
|
||||
export const PERMISSION_MANAGE_USERS = 0x0000000000000400;
|
||||
export const PERMISSION_MANAGE_REPORTS = 0x0000000000000010;
|
||||
export const PERMISSION_INVITE_USERS = 0x0000000000010000;
|
||||
export const PERMISSION_MANAGE_USERS = 0x0000000000000400;
|
||||
export const PERMISSION_MANAGE_FEDERATION = 0x0000000000000020;
|
||||
export const PERMISSION_MANAGE_REPORTS = 0x0000000000000010;
|
||||
|
@ -0,0 +1,42 @@
|
||||
import {
|
||||
FOLLOWED_HASHTAGS_FETCH_REQUEST,
|
||||
FOLLOWED_HASHTAGS_FETCH_SUCCESS,
|
||||
FOLLOWED_HASHTAGS_FETCH_FAIL,
|
||||
FOLLOWED_HASHTAGS_EXPAND_REQUEST,
|
||||
FOLLOWED_HASHTAGS_EXPAND_SUCCESS,
|
||||
FOLLOWED_HASHTAGS_EXPAND_FAIL,
|
||||
} from 'flavours/glitch/actions/tags';
|
||||
import { Map as ImmutableMap, List as ImmutableList, fromJS } from 'immutable';
|
||||
|
||||
const initialState = ImmutableMap({
|
||||
items: ImmutableList(),
|
||||
isLoading: false,
|
||||
next: null,
|
||||
});
|
||||
|
||||
export default function followed_tags(state = initialState, action) {
|
||||
switch(action.type) {
|
||||
case FOLLOWED_HASHTAGS_FETCH_REQUEST:
|
||||
return state.set('isLoading', true);
|
||||
case FOLLOWED_HASHTAGS_FETCH_SUCCESS:
|
||||
return state.withMutations(map => {
|
||||
map.set('items', fromJS(action.followed_tags));
|
||||
map.set('isLoading', false);
|
||||
map.set('next', action.next);
|
||||
});
|
||||
case FOLLOWED_HASHTAGS_FETCH_FAIL:
|
||||
return state.set('isLoading', false);
|
||||
case FOLLOWED_HASHTAGS_EXPAND_REQUEST:
|
||||
return state.set('isLoading', true);
|
||||
case FOLLOWED_HASHTAGS_EXPAND_SUCCESS:
|
||||
return state.withMutations(map => {
|
||||
map.update('items', set => set.concat(fromJS(action.followed_tags)));
|
||||
map.set('isLoading', false);
|
||||
map.set('next', action.next);
|
||||
});
|
||||
case FOLLOWED_HASHTAGS_EXPAND_FAIL:
|
||||
return state.set('isLoading', false);
|
||||
default:
|
||||
return state;
|
||||
}
|
||||
};
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in new issue