mirror of
https://github.com/NodeBB/NodeBB.git
synced 2026-01-05 07:10:30 +01:00
Merge remote-tracking branch 'refs/remotes/origin/master' into develop
# Conflicts: # package.json
This commit is contained in:
@@ -56,7 +56,7 @@
|
||||
"mousetrap": "^1.5.3",
|
||||
"nconf": "~0.8.2",
|
||||
"nodebb-plugin-composer-default": "5.0.1",
|
||||
"nodebb-plugin-dbsearch": "2.0.4",
|
||||
"nodebb-plugin-dbsearch": "2.0.6",
|
||||
"nodebb-plugin-emoji-extended": "1.1.1",
|
||||
"nodebb-plugin-emoji-one": "1.2.1",
|
||||
"nodebb-plugin-markdown": "8.0.0",
|
||||
@@ -65,9 +65,9 @@
|
||||
"nodebb-plugin-spam-be-gone": "0.5.0",
|
||||
"nodebb-rewards-essentials": "0.0.9",
|
||||
"nodebb-theme-lavender": "4.0.5",
|
||||
"nodebb-theme-persona": "5.0.12",
|
||||
"nodebb-theme-persona": "5.0.13",
|
||||
"nodebb-theme-slick": "1.1.0",
|
||||
"nodebb-theme-vanilla": "6.0.9",
|
||||
"nodebb-theme-vanilla": "6.0.10",
|
||||
"nodebb-widget-essentials": "3.0.0",
|
||||
"nodemailer": "2.6.4",
|
||||
"nodemailer-sendmail-transport": "1.0.0",
|
||||
|
||||
@@ -12,11 +12,11 @@
|
||||
"reorder-plugins": "Re-order Plugins",
|
||||
"order-active": "Order Active Plugins",
|
||||
"dev-interested": "Interested in writing plugins for NodeBB?",
|
||||
"docs-info": "Full documentation regarding plugin authoring can be found in the <a target=\"_blank\" href=\"https://docs.nodebb.org/en/latest/plugins/create.html\">NodeBB Docs Portal</a>.",
|
||||
"docs-info": "Full documentation regarding plugin authoring can be found in the <a target=\"_blank\" href=\"https://docs.nodebb.org/development/plugins/\">NodeBB Docs Portal</a>.",
|
||||
|
||||
"order.description": "Certain plugins work ideally when they are initialised before/after other plugins.",
|
||||
"order.explanation": "Plugins load in the order specified here, from top to bottom",
|
||||
|
||||
|
||||
"plugin-item.themes": "Themes",
|
||||
"plugin-item.deactivate": "Deactivate",
|
||||
"plugin-item.activate": "Activate",
|
||||
|
||||
@@ -18,13 +18,13 @@
|
||||
"stats.week": "Week",
|
||||
"stats.month": "Month",
|
||||
"stats.all": "All Time",
|
||||
|
||||
|
||||
"updates": "Updates",
|
||||
"running-version": "You are running <strong>NodeBB v<span id=\"version\">%1</span></strong>.",
|
||||
"keep-updated": "Always make sure that your NodeBB is up to date for the latest security patches and bug fixes.",
|
||||
"up-to-date": "<p>You are <strong>up-to-date</strong> <i class=\"fa fa-check\"></i></p>",
|
||||
"upgrade-available": "<p>A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/en/latest/upgrading/index.html\">upgrading your NodeBB</a>.</p>",
|
||||
"prerelease-upgrade-available": "<p>This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/en/latest/upgrading/index.html\">upgrading your NodeBB</a>.</p>",
|
||||
"upgrade-available": "<p>A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\">upgrading your NodeBB</a>.</p>",
|
||||
"prerelease-upgrade-available": "<p>This is an outdated pre-release version of NodeBB. A new version (v%1) has been released. Consider <a href=\"https://docs.nodebb.org/configuring/upgrade/\">upgrading your NodeBB</a>.</p>",
|
||||
"prerelease-warning": "<p>This is a <strong>pre-release</strong> version of NodeBB. Unintended bugs may occur. <i class=\"fa fa-exclamation-triangle\"></i></p>",
|
||||
"running-in-development": "<span>Forum is running in development mode. The forum may be open to potential vulnerabilities; please contact your system administrator.</span>",
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
"post-edit-duration-expired-minutes": "הנך רשאי לערוך תגובה עד %1 דקות מרגע פרסום התגובה.",
|
||||
"post-edit-duration-expired-minutes-seconds": "הנך רשאי לערוך תגובה עד %1 דקות %2 ושניות מרגע פרסום התגובה.",
|
||||
"post-edit-duration-expired-hours": "אתה מורשה לערוך פוסטים רק %1 שעות אחרי הפרסום.",
|
||||
"post-edit-duration-expired-hours-minutes": "You are only allowed to edit posts for %1 hour(s) %2 minute(s) after posting",
|
||||
"post-edit-duration-expired-hours-minutes": "הנך רשאי לערוך פוסט למשך %1 שעות %2 דקות מרגע פרסומו.",
|
||||
"post-edit-duration-expired-days": "You are only allowed to edit posts for %1 day(s) after posting",
|
||||
"post-edit-duration-expired-days-hours": "You are only allowed to edit posts for %1 day(s) %2 hour(s) after posting",
|
||||
"post-delete-duration-expired": "You are only allowed to delete posts for %1 second(s) after posting",
|
||||
@@ -75,8 +75,8 @@
|
||||
"still-uploading": "אנא המתן לסיום ההעלאות",
|
||||
"file-too-big": "הגודל המקסימלי של הקובץ הוא %1 קילובייט - אנא העלה קובץ קטן יותר",
|
||||
"guest-upload-disabled": "העלאת אורחים אינה מאופשרת",
|
||||
"already-bookmarked": "You have already bookmarked this post",
|
||||
"already-unbookmarked": "You have already unbookmarked this post",
|
||||
"already-bookmarked": "כבר הוספת פוסט זה לרשימת המסומנים",
|
||||
"already-unbookmarked": "כבר הסרת פוסט זה מרשימת המסומנים",
|
||||
"cant-ban-other-admins": "אינך יכול לחסום מנהלים אחרים!",
|
||||
"cant-remove-last-admin": "אתה המנהל היחיד. הוסף משתמש אחר לניהול לפני שאתה מוריד את עצמך מניהול",
|
||||
"cant-delete-admin": "משתמש זה מוגדר כמנהל. על מנת למחוק את המשתמש, עליך להסיר קודם את גישותיו.",
|
||||
|
||||
@@ -7,6 +7,6 @@
|
||||
"custom-header.description": "Adicione HTML pessoal aqui (ex. JavaScript, Meta Tags, Tags, etc), os quais serão acrescentados ao final da seção <code><head></code> do markup do seu fórum.",
|
||||
"custom-header.enable": "Ligar o Cabeçalho Personalizado",
|
||||
|
||||
"custom-css.livereload": "Enable Live Reload",
|
||||
"custom-css.livereload.description": "Enable this to force all sessions on every device under your account to refresh whenever you click save"
|
||||
"custom-css.livereload": "Habilitar Recarregamento Automático",
|
||||
"custom-css.livereload.description": "Ligue isso para forçar com que todas as sessões em todos os dispositivos em tua conta atualizem quando quer que você clique em salvar"
|
||||
}
|
||||
@@ -1,12 +1,12 @@
|
||||
{
|
||||
"you-are-on": "Informação - Você está em <strong>%1:%2</strong>",
|
||||
"nodes-responded": "%1 nodes responded within %2ms!",
|
||||
"nodes-responded": "%1 nodes respondidos dentro de %2ms!",
|
||||
"host": "host",
|
||||
"pid": "pid",
|
||||
"nodejs": "nodejs",
|
||||
"online": "online",
|
||||
"git": "git",
|
||||
"memory": "memory",
|
||||
"memory": "memória",
|
||||
"load": "carregar",
|
||||
"uptime": "tempo rodando",
|
||||
|
||||
|
||||
@@ -5,14 +5,14 @@
|
||||
"users": "Usuários",
|
||||
"posts": "Posts",
|
||||
"topics": "Tópicos",
|
||||
"page-views-seven": "Last 7 Days",
|
||||
"page-views-thirty": "Last 30 Days",
|
||||
"page-views-last-day": "Last 24 hours",
|
||||
"page-views-custom": "Custom Date Range",
|
||||
"page-views-custom-start": "Range Start",
|
||||
"page-views-custom-end": "Range End",
|
||||
"page-views-custom-help": "Enter a date range of page views you would like to view. If no date picker is available, the accepted format is <code>YYYY-MM-DD</code>",
|
||||
"page-views-custom-error": "Please enter a valid date range in the format <code>YYYY-MM-DD</code>",
|
||||
"page-views-seven": "Últimos 7 Dias",
|
||||
"page-views-thirty": "Últimos 30 Dias",
|
||||
"page-views-last-day": "Últimas 24 horas",
|
||||
"page-views-custom": "Alcançe de Data Personalizado",
|
||||
"page-views-custom-start": "Ínicio do Alcance",
|
||||
"page-views-custom-end": "Fim do Alcance",
|
||||
"page-views-custom-help": "Entre uma data de alcance de visualizações de página que você quer ver. Se nenhum selecionador de data estiver disponível, o formato aceito é <code>AAAA-MM-DD</code>",
|
||||
"page-views-custom-error": "Por favor entre com um alcance de data válido no formato <code>AAAA-MM-DD</code>",
|
||||
|
||||
"stats.day": "Dia",
|
||||
"stats.week": "Semana",
|
||||
@@ -26,7 +26,7 @@
|
||||
"upgrade-available": "<p>Uma nova versão (v%1) foi lançada. Leve em consideração <a href=\"https://docs.nodebb.org/en/latest/upgrading/index.html\">atualizar o seu NodeBB</a>.</p>",
|
||||
"prerelease-upgrade-available": "<p>Esta versão um pre-release antigo do NodeBB. Uma nova versão (v%1) foi lançada. Leve em consideração <a href=\"https://docs.nodebb.org/en/latest/upgrading/index.html\">atualizar o seu NodeBB</a>.</p>",
|
||||
"prerelease-warning": "<p>Esta é uma versão <strong>pre-release</strong> do NodeBB. Bugs inesperados podem ocorrer. <i class=\"fa fa-exclamation-triangle\"></i></p>",
|
||||
"running-in-development": "<span>Forum is running in development mode. The forum may be open to potential vulnerabilities; please contact your system administrator.</span>",
|
||||
"running-in-development": "<span>O fórum está sendo executado em modo de desenvolvedor. O fórum pode estar abrto à potenciais vulnerabilidades; por favor, entre em contato com o seu administrador de sistemas.</span>",
|
||||
|
||||
"notices": "Avisos",
|
||||
"restart-not-required": "Reiniciar não é necessário",
|
||||
|
||||
@@ -2,5 +2,5 @@
|
||||
"language-settings": "Configurações de Idioma",
|
||||
"description": "O idioma padrão determina as configurações de idioma para todos os usuários que estiverem visitando o seu fórum. <br />Usuários individuais podem sobrepor o idioma padrão em sua página de configurações de conta.",
|
||||
"default-language": "Idioma Padrão",
|
||||
"auto-detect": "Auto Detect Language Setting for Guests"
|
||||
"auto-detect": "Auto Detectar Configurações de Idioma para Convidados"
|
||||
}
|
||||
@@ -10,7 +10,7 @@
|
||||
"custom-class": "Classe Personalizada",
|
||||
"num-recent-replies": "# de Respostas Recentes",
|
||||
"ext-link": "Link Externo",
|
||||
"is-section": "Treat this category as a section",
|
||||
"is-section": "Trate estacategoria como uma seção",
|
||||
"upload-image": "Fazer upload de Imagem",
|
||||
"delete-image": "Remover",
|
||||
"category-image": "Imagem da Categoria",
|
||||
|
||||
@@ -1,7 +1,7 @@
|
||||
{
|
||||
"name": "Nome do Grupo",
|
||||
"description": "Descrição do Grupo",
|
||||
"member-count": "Member Count",
|
||||
"member-count": "Número de Membros",
|
||||
"system": "Grupo do Sistema",
|
||||
"edit": "Editar",
|
||||
"search-placeholder": "Procurar",
|
||||
|
||||
@@ -6,7 +6,7 @@
|
||||
"headers.allow-from": "Defina ALLOW-FROM para Colocar o NodeBB em um iFrame",
|
||||
"headers.powered-by": "Personalizar o cabeçalho de \"Powered By\" enviado pelo NodeBB",
|
||||
"headers.acao": "Access-Control-Allow-Origin",
|
||||
"headers.acao-help": "To deny access to all sites, leave empty",
|
||||
"headers.acao-help": "Para impedir o acesso à todos os sites, deixe vazio",
|
||||
"headers.acam": "Access-Control-Allow-Methods",
|
||||
"headers.acah": "Access-Control-Allow-Headers",
|
||||
"traffic-management": "Administração de Tráfego",
|
||||
|
||||
@@ -28,5 +28,5 @@
|
||||
"outgoing-links": "Links Externos",
|
||||
"outgoing-links.warning-page": "Utilizar Página de Aviso de Links Externos",
|
||||
"search-default-sort-by": "Padrão de ordenação de pesquisa por",
|
||||
"outgoing-links.whitelist": "Domains to whitelist for bypassing the warning page"
|
||||
"outgoing-links.whitelist": "Domínios para colocar na lista branca de passar pela página de aviso"
|
||||
}
|
||||
@@ -29,8 +29,8 @@
|
||||
"unread": "Configurações de Não-Lidos",
|
||||
"unread.cutoff": "Data de corte de não-lidos",
|
||||
"unread.min-track-last": "Mínimo de posts no tópico antes de rastrear o último lido",
|
||||
"recent": "Recent Settings",
|
||||
"recent.categoryFilter.disable": "Disable filtering of topics in ignored categories on the /recent page",
|
||||
"recent": "Configurações Recentes",
|
||||
"recent.categoryFilter.disable": "Desailitar filtragem de tópicos em categorias ignoradas na página /recente",
|
||||
"signature": "Configurações de Assinatura",
|
||||
"signature.disable": "Desabilitar assinaturas",
|
||||
"signature.no-links": "Desabilitar links em assinaturas",
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
"reputation": "Configurações de Reputação",
|
||||
"disable": "Desabilitar o Sistema de Reputação",
|
||||
"disable-down-voting": "Desabilitar Baixo Votar",
|
||||
"votes-are-public": "All Votes Are Public",
|
||||
"votes-are-public": "Todos os Votos São Públicos",
|
||||
"thresholds": "Limiares de Atividade",
|
||||
"min-rep-downvote": "Reputação mínima para votar negativamente em posts",
|
||||
"min-rep-flag": "Reputação mínima para sinalizar posts"
|
||||
|
||||
@@ -34,12 +34,12 @@
|
||||
"registration.max-invites": "Máximo de Convites por Usuário",
|
||||
"max-invites": "Máximo de Convites por Usuário",
|
||||
"max-invites-help": "0 para nenhuma restrição. Administradores tem convites infinitos<br>Apenas aplicável para \"Apenas Convite\"",
|
||||
"invite-expiration": "Invite expiration",
|
||||
"invite-expiration-help": "# of days invitations expire in.",
|
||||
"invite-expiration": "Vencimento do convite",
|
||||
"invite-expiration-help": "núm. de dias em que o convite vence.",
|
||||
"min-username-length": "Tamanho Mínimo do Nome de Usuário",
|
||||
"max-username-length": "Tamanho Máximo do Nome de Usuário",
|
||||
"min-password-length": "Tamanho Mínimo da Senha",
|
||||
"min-password-strength": "Minimum Password Strength",
|
||||
"min-password-strength": "Força Mínima da Senha",
|
||||
"max-about-me-length": "Tamanho Máximo do Sobre Mim",
|
||||
"terms-of-use": "Termos de Uso do Fórum <small>(Deixar em branco para desabilitar)</small>",
|
||||
"user-search": "Pesquisa de Usuário",
|
||||
|
||||
@@ -32,9 +32,9 @@
|
||||
"notif.post.unsub.info": "Esta notificação de postagem foi enviada para você devido as suas configurações de assinatura.",
|
||||
"test.text1": "Este é um e-mail de teste, para verificar que o enviador de emails está corretamente configurado no seu NodeBB.",
|
||||
"unsub.cta": "Clique aqui para alterar estas configurações",
|
||||
"banned.subject": "You have been banned from %1",
|
||||
"banned.text1": "The user %1 has been banned from %2.",
|
||||
"banned.text2": "This ban will last until %1.",
|
||||
"banned.text3": "This is the reason why you have been banned:",
|
||||
"banned.subject": "Você foi banido de %1",
|
||||
"banned.text1": "O usuário %1 foi banido de %2.",
|
||||
"banned.text2": "Este banimento dururá até %1.",
|
||||
"banned.text3": "Este é o motivo pelo qual você foi banido:",
|
||||
"closing": "Obrigado!"
|
||||
}
|
||||
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"invalid-data": "Dados Inválidos",
|
||||
"invalid-json": "Invalid JSON",
|
||||
"invalid-json": "JSON Inválido",
|
||||
"not-logged-in": "Você não parece estar logado.",
|
||||
"account-locked": "Sua conta foi temporariamente bloqueada ",
|
||||
"search-requires-login": "É necessário ter uma conta para pesquisar - por favor efetue o login ou cadastre-se.",
|
||||
@@ -13,7 +13,7 @@
|
||||
"invalid-title": "Título inválido!",
|
||||
"invalid-user-data": "Dados de Usuário Inválidos",
|
||||
"invalid-password": "Senha Inválida",
|
||||
"invalid-login-credentials": "Invalid login credentials",
|
||||
"invalid-login-credentials": "Credenciais de login inválidas",
|
||||
"invalid-username-or-password": "Por favor especifique ambos nome de usuário e senha",
|
||||
"invalid-search-term": "Termo de pesquisa inválido",
|
||||
"csrf-invalid": "Nós não fomos capazes de logá-lo, provavelmente devido à uma sessão expirada. Por favor tente novamente.",
|
||||
@@ -32,7 +32,7 @@
|
||||
"password-too-long": "A senha é muito grande",
|
||||
"user-banned": "Usuário banido",
|
||||
"user-banned-reason": "Desculpa, esta conta foi banida (Motivo: %1)",
|
||||
"user-banned-reason-until": "Sorry, this account has been banned until %1 (Reason: %2)",
|
||||
"user-banned-reason-until": "Desculpe, esta conta foi banida até %1 (Motivo: %2)",
|
||||
"user-too-new": "Desculpe, é necessário que você aguarde %1 segundo(s) antes de fazer o seu primeiro post.",
|
||||
"blacklisted-ip": "Desculpe, o seu endereço IP foi banido desta comunidade. Se você acha que isso é um engano, por favor contate um administrador.",
|
||||
"ban-expiry-missing": "Por favor forneça uma data para o fim deste banimento",
|
||||
@@ -107,7 +107,7 @@
|
||||
"chat-disabled": "O sistema de chat foi desabilitado",
|
||||
"too-many-messages": "Você enviou muitas mensagens, por favor aguarde um momento.",
|
||||
"invalid-chat-message": "Mensagem de chat inválida",
|
||||
"chat-message-too-long": "Chat messages can not be longer than %1 characters.",
|
||||
"chat-message-too-long": "Mensagens de chat não podem ter mais do que %1 caracteres.",
|
||||
"cant-edit-chat-message": "Você não tem permissão para editar esta mensagem",
|
||||
"cant-remove-last-user": "Você não pode excluir o último usuário",
|
||||
"cant-delete-chat-message": "Você não possui permissão para deletar esta mensagem",
|
||||
|
||||
@@ -104,6 +104,6 @@
|
||||
"cookies.accept": "Entendi!",
|
||||
"cookies.learn_more": "Saber Mais",
|
||||
"edited": "Editado",
|
||||
"disabled": "Disabled",
|
||||
"select": "Select"
|
||||
"disabled": "Desligado",
|
||||
"select": "Escolha"
|
||||
}
|
||||
@@ -27,7 +27,7 @@
|
||||
"details.disableJoinRequests": "Desabilitar pedidos de participação",
|
||||
"details.grant": "Conceder/Retomar a Posse",
|
||||
"details.kick": "Chutar",
|
||||
"details.kick_confirm": "Are you sure you want to remove this member from the group?",
|
||||
"details.kick_confirm": "Você tem certeza que deseja remover este membro do grupo?",
|
||||
"details.owner_options": "Administração do Grupo",
|
||||
"details.group_name": "Nome do Grupo",
|
||||
"details.member_count": "Número de Membros",
|
||||
|
||||
@@ -20,7 +20,7 @@
|
||||
"chat.three_months": "3 Meses",
|
||||
"chat.delete_message_confirm": "Tem certeza que deseja excluir esta mensagem?",
|
||||
"chat.add-users-to-room": "Adicionar usuários à sala",
|
||||
"chat.confirm-chat-with-dnd-user": "This user has set their status to DnD(Do not disturb). Do you still want to chat with them?",
|
||||
"chat.confirm-chat-with-dnd-user": "Este usuário definiu seu estado como DnD(Do not disturb─Não perturbe). Você ainda assim quer conversar com ele?",
|
||||
"composer.compose": "Compor",
|
||||
"composer.show_preview": "Exibir Pré-visualização",
|
||||
"composer.hide_preview": "Esconder Pré-visualização",
|
||||
|
||||
@@ -10,15 +10,15 @@
|
||||
"return_to": "Voltar para %1",
|
||||
"new_notification": "Nova Notificação",
|
||||
"you_have_unread_notifications": "Você possui notificações não lidas.",
|
||||
"all": "All",
|
||||
"topics": "Topics",
|
||||
"replies": "Replies",
|
||||
"chat": "Chats",
|
||||
"follows": "Follows",
|
||||
"upvote": "Upvotes",
|
||||
"new-flags": "New Flags",
|
||||
"my-flags": "Flags assigned to me",
|
||||
"bans": "Bans",
|
||||
"all": "Tudo",
|
||||
"topics": "Tópicos",
|
||||
"replies": "Respostas",
|
||||
"chat": "Conversas",
|
||||
"follows": "Seguindo",
|
||||
"upvote": "Cimavotos",
|
||||
"new-flags": "Novas Sinalizações",
|
||||
"my-flags": "Sinalizações designadas à mim",
|
||||
"bans": "Banimentos",
|
||||
"new_message_from": "Nova mensagem de <strong>%1</strong>",
|
||||
"upvoted_your_post_in": "<strong>%1</strong> deu voto positivo para seu post em <strong>%2</strong>.",
|
||||
"upvoted_your_post_in_dual": "<strong>%1</strong> e <strong>%2</strong> deram voto positivo ao seu post em <strong>%3</strong>.",
|
||||
@@ -40,7 +40,7 @@
|
||||
"user_started_following_you_multiple": "<strong>%1</strong> e %2 outros começaram a lhe acompanhar.",
|
||||
"new_register": "<strong>%1</strong> lhe enviou um pedido de cadastro.",
|
||||
"new_register_multiple": "Há <strong>%1</strong> pedidos de registro aguardando revisão.",
|
||||
"flag_assigned_to_you": "<strong>Flag %1</strong> has been assigned to you",
|
||||
"flag_assigned_to_you": "A Sinalização %1</strong> foi desiganada para você",
|
||||
"email-confirmed": "Email Confirmado",
|
||||
"email-confirmed-message": "Obrigado por validar o seu email. Agora sua conta está plenamente ativada.",
|
||||
"email-confirm-error-message": "Houve um problema ao validar o seu endereço de email. Talvez o código era invalido ou tenha expirado.",
|
||||
|
||||
@@ -14,7 +14,7 @@
|
||||
"quote": "Citar",
|
||||
"reply": "Responder",
|
||||
"replies_to_this_post": "%1 Respostas",
|
||||
"one_reply_to_this_post": "1 Reply",
|
||||
"one_reply_to_this_post": "1 Resposta",
|
||||
"last_reply_time": "Última resposta",
|
||||
"reply-as-topic": "Responder como tópico",
|
||||
"guest-login-reply": "Entre para responder",
|
||||
@@ -59,7 +59,7 @@
|
||||
"thread_tools.unlock": "Destrancar Tópico",
|
||||
"thread_tools.move": "Mover Tópico",
|
||||
"thread_tools.move_all": "Mover Tudo",
|
||||
"thread_tools.select_category": "Select Category",
|
||||
"thread_tools.select_category": "Escolha a Categoria",
|
||||
"thread_tools.fork": "Ramificar Tópico",
|
||||
"thread_tools.delete": "Deletar Tópico",
|
||||
"thread_tools.delete-posts": "Deletar Posts",
|
||||
|
||||
@@ -60,7 +60,7 @@
|
||||
"username_taken_workaround": "O nome de usuário que você escolheu já existia, então nós o alteramos um pouquinho. Agora você é conhecido como <strong>%1</strong>",
|
||||
"password_same_as_username": "A sua senha é igual ao seu nome de usuário, por favor escolha outra senha.",
|
||||
"password_same_as_email": "Tua senha é a mesma que o teu email, por favor escolha outra senha.",
|
||||
"weak_password": "Weak password.",
|
||||
"weak_password": "Senha fraca.",
|
||||
"upload_picture": "Carregar Foto",
|
||||
"upload_a_picture": "Carregue uma Foto",
|
||||
"remove_uploaded_picture": "Remover Foto Enviada",
|
||||
@@ -132,5 +132,5 @@
|
||||
"info.email-history": "Histórico do Email",
|
||||
"info.moderation-note": "Nota da Moderação",
|
||||
"info.moderation-note.success": "Nota da moderação salva",
|
||||
"info.moderation-note.add": "Add note"
|
||||
"info.moderation-note.add": "Adicionar nota"
|
||||
}
|
||||
@@ -1,25 +1,25 @@
|
||||
{
|
||||
"email-settings": "Email Settings",
|
||||
"address": "Email Address",
|
||||
"address-help": "The following email address refers to the email that the recipient will see in the \"From\" and \"Reply To\" fields.",
|
||||
"from": "From Name",
|
||||
"email-settings": "Podešavanje Email-a",
|
||||
"address": "Email adresa",
|
||||
"address-help": "Označena email adresa se odnosi na email koga će primalac videti \"Od\" i \"Odgovori\" poljima.",
|
||||
"from": "Od koga",
|
||||
"from-help": "The from name to display in the email.",
|
||||
"gmail-routing": "Gmail Routing",
|
||||
"gmail-routing-help1": "There have been reports of Gmail Routing not working on accounts with heightened security. In those scenarios, you will have to <a href=\"https://www.google.com/settings/security/lesssecureapps\">configure your GMail account to allow less secure apps</a>.",
|
||||
"gmail-routing-help2": "For more information about this workaround, <a href=\"https://nodemailer.com/using-gmail/\">please consult this NodeMailer article on the issue.</a> An alternative would be to utilise a third-party emailer plugin such as SendGrid, Mailgun, etc. <a href=\"{config.relative_path}/admin/extend/plugins\">Browse available plugins here</a>.",
|
||||
"gmail-transport": "Route emails through a Gmail/Google Apps account",
|
||||
"gmail-transport.username": "Username",
|
||||
"gmail-transport.username-help": "Enter the full email address here, especially if you are using a Google Apps managed domain.",
|
||||
"gmail-transport.password": "Password",
|
||||
"template": "Edit Email Template",
|
||||
"template.select": "Select Email Template",
|
||||
"template.revert": "Revert to Original",
|
||||
"testing": "Email Testing",
|
||||
"testing.select": "Select Email Template",
|
||||
"testing.send": "Send Test Email",
|
||||
"testing.send-help": "The test email will be sent to the currently logged in user's email address.",
|
||||
"subscriptions": "Email Subscriptions",
|
||||
"subscriptions.disable": "Disable subscriber notification emails",
|
||||
"gmail-routing": "Gmail rutiranje",
|
||||
"gmail-routing-help1": "Imamo izveštaje da Gmail rutiranje nije radilo na nalogu za povećanom bezbednošću. U takvom slučaju, moraćete da <a href=\"https://www.google.com/settings/security/lesssecureapps\">podesite Vaš GMail nalog da prihvati aplikacije sa manjom bezbednoću</a>.",
|
||||
"gmail-routing-help2": "Za više informacija o ovome, <a href=\"https://nodemailer.com/using-gmail/\">molimo konsultujte ovaj NodeMailer članak o ovom problemu.</a> Alternativa bi bila da iskoristite \"third-party\" email plugin-ove kao što su SendGrid, Mailgun, itd. <a href=\"{config.relative_path}/admin/extend/plugins\">Pogledajte plugin-ove ovde</a>.",
|
||||
"gmail-transport": "Rutiraj email-ove kroz nalog Gmail/Google aplikacije.",
|
||||
"gmail-transport.username": "Korisničko ime",
|
||||
"gmail-transport.username-help": "Unesite punu email adresu ovde, pogotovo ako koristite Google aplikacije na upravljanom domenu.",
|
||||
"gmail-transport.password": "Lozinka",
|
||||
"template": "Promeni šablon Email-a",
|
||||
"template.select": "Izaberi šablon Email-a",
|
||||
"template.revert": "Vrati na Originalno podešavanje.",
|
||||
"testing": "Testiranje Email-a",
|
||||
"testing.select": "Izaberi šablon Email-a",
|
||||
"testing.send": "Pošalji probni Email",
|
||||
"testing.send-help": "Probni email će biti poslat na adresu trenutno ulogovanog korisnika",
|
||||
"subscriptions": "Email subskripcije",
|
||||
"subscriptions.disable": "Onemogući notifikacije o email subskripcijama",
|
||||
"subscriptions.hour": "Digest Hour",
|
||||
"subscriptions.hour-help": "Please enter a number representing the hour to send scheduled email digests (e.g. <code>0</code> for midnight, <code>17</code> for 5:00pm). Keep in mind that this is the hour according to the server itself, and may not exactly match your system clock.<br /> The approximate server time is: <span id=\"serverTime\"></span><br /> The next daily digest is scheduled to be sent <span id=\"nextDigestTime\"></span>"
|
||||
"subscriptions.hour-help": "Molim unesite broj koji označava satnicu kada da pošalje zakazani sažeti email (nrp. <code>0</code> za ponoć, <code>17</code> za 5:00 pm). Uzmite u obzir da će se slanje događati po satnici samog servara, i da vrlo verovatno se ne poklapa sa satnicom vašeg sistema. <br /> Trenutno vreme servera je: <span id=\"serverTime\"></span><br /> Sledeći dnevni sažeti email zakazan je za slanje u <span id=\"nextDigestTime\"></span>"
|
||||
}
|
||||
@@ -1,46 +1,46 @@
|
||||
{
|
||||
"sorting": "Post Sorting",
|
||||
"sorting.post-default": "Default Post Sorting",
|
||||
"sorting.oldest-to-newest": "Oldest to Newest",
|
||||
"sorting.newest-to-oldest": "Newest to Oldest",
|
||||
"sorting.most-votes": "Most Votes",
|
||||
"sorting.topic-default": "Default Topic Sorting",
|
||||
"restrictions": "Posting Restrictions",
|
||||
"restrictions.seconds-between": "Seconds between Posts",
|
||||
"restrictions.seconds-between-new": "Seconds between Posts for New Users",
|
||||
"restrictions.rep-threshold": "Reputation threshold before this restriction is lifted",
|
||||
"restrictions.seconds-defore-new": "Seconds before new user can post",
|
||||
"restrictions.seconds-edit-after": "Number of seconds users are allowed to edit posts after posting. (0 disabled)",
|
||||
"restrictions.seconds-delete-after": "Number of seconds users are allowed to delete posts after posting. (0 disabled)",
|
||||
"restrictions.replies-no-delete": "Number of replies after users are disallowed to delete their own topics. (0 disabled)",
|
||||
"restrictions.min-title-length": "Minimum Title Length",
|
||||
"restrictions.max-title-length": "Maximum Title Length",
|
||||
"restrictions.min-post-length": "Minimum Post Length",
|
||||
"restrictions.max-post-length": "Maximum Post Length",
|
||||
"restrictions.days-until-stale": "Days until Topic is considered stale",
|
||||
"restrictions.stale-help": "If a topic is considered \"stale\", then a warning will be shown to users who attempt to reply to that topic.",
|
||||
"timestamp": "Timestamp",
|
||||
"sorting": "Sortiranje postova",
|
||||
"sorting.post-default": "Uobičajeno sortiranje postova",
|
||||
"sorting.oldest-to-newest": "Od starijih ka novijim",
|
||||
"sorting.newest-to-oldest": "Od novijih ka starijim",
|
||||
"sorting.most-votes": "Najviše glasova",
|
||||
"sorting.topic-default": "Uobičajeno sortiranje tema",
|
||||
"restrictions": "Restrikcije postavljanja",
|
||||
"restrictions.seconds-between": "Sekundi između postova",
|
||||
"restrictions.seconds-between-new": "Sekundi između postova za Novog korisnika",
|
||||
"restrictions.rep-threshold": "Prag reputacije pre nego što su restrikcije skinute",
|
||||
"restrictions.seconds-defore-new": "Sekundi pre nego što novi korisnik može da postuje",
|
||||
"restrictions.seconds-edit-after": "Broj sekundi posle kojih korisnik može da preuredi post pošto ga je postavio. (0 onemogućeno)",
|
||||
"restrictions.seconds-delete-after": "Broj sekundi posle korisniku nije više dozvnoljeno da obriše svoj post posle postavljanja. (0 onemogućeno)",
|
||||
"restrictions.replies-no-delete": "Broj sekundi posle korisniku nije više dozvnoljeno da obriše svoju temu. (0 onemogućeno)",
|
||||
"restrictions.min-title-length": "Minimum karaktera za Naslov",
|
||||
"restrictions.max-title-length": "Maksimum karaktera za Naslov",
|
||||
"restrictions.min-post-length": "Minimum karaktera za Post",
|
||||
"restrictions.max-post-length": "Maksimum karaktera za Post",
|
||||
"restrictions.days-until-stale": "Broj dana koliko je potrebno da prodje pre nego što tema se smatra ustajalom",
|
||||
"restrictions.stale-help": "Ako se tema smatra \"ustajalom\", onda će upozorenje biti prikazano korisnicima koji su odgovarali na tu temu.",
|
||||
"timestamp": "Vremenski žig",
|
||||
"timestamp.cut-off": "Date cut-off (in days)",
|
||||
"timestamp.cut-off-help": "Dates & times will be shown in a relative manner (e.g. \"3 hours ago\" / \"5 days ago\"), and localised into various\n\t\t\t\t\tlanguages. After a certain point, this text can be switched to display the localised date itself\n\t\t\t\t\t(e.g. 5 Nov 2016 15:30).<br /><em>(Default: <code>30</code>, or one month). Set to 0 to always display dates, leave blank to always display relative times.</em>",
|
||||
"teaser": "Teaser Post",
|
||||
"teaser.last-post": "Last – Show the latest post, including the original post, if no replies",
|
||||
"teaser.last-reply": "Last – Show the latest reply, or a \"No replies\" placeholder if no replies",
|
||||
"teaser.first": "First",
|
||||
"unread": "Unread Settings",
|
||||
"unread.cutoff": "Unread cutoff days",
|
||||
"unread.min-track-last": "Minimum posts in topic before tracking last read",
|
||||
"recent": "Recent Settings",
|
||||
"recent.categoryFilter.disable": "Disable filtering of topics in ignored categories on the /recent page",
|
||||
"signature": "Signature Settings",
|
||||
"signature.disable": "Disable signatures",
|
||||
"signature.no-links": "Disable links in signatures",
|
||||
"signature.no-images": "Disable images in signatures",
|
||||
"signature.max-length": "Maximum Signature Length",
|
||||
"composer": "Composer Settings",
|
||||
"composer-help": "The following settings govern the functionality and/or appearance of the post composer shown\n\t\t\t\tto users when they create new topics, or reply to existing topics.",
|
||||
"composer.show-help": "Show \"Help\" tab",
|
||||
"composer.enable-plugin-help": "Allow plugins to add content to the help tab",
|
||||
"composer.custom-help": "Custom Help Text",
|
||||
"ip-tracking": "IP Tracking",
|
||||
"ip-tracking.each-post": "Track IP Address for each post"
|
||||
"timestamp.cut-off-help": "Datumi & vreme će biti pokazano na relativan način (npr. \"pre 3 sata\" / \"pre 5 dana\"), i lokalizovano na različite\n\t\t\t\t\tjezike. Posle određenog vremena, ovaj tekst može biti promenjen na lokalizovani datum\n\t\t\t\t\t(npr. 5 Nov 2016 15:30).<br /><em>(Uobičajeno: <code>30</code>, ili jedan mesec). Postavi na 0 da uvek prikaže datume, ostavi prazno da uvek prikaže relativno vreme.</em>",
|
||||
"teaser": "Post zadirkivač",
|
||||
"teaser.last-post": "Poslednji &ndashč Pokazuje poslednji post, uključujući originalni post, ako nema odgovora",
|
||||
"teaser.last-reply": "Poslednji &ndashč Pokaži najnoviji odgovor, ili ako \"Nema odgovora\" placeholder ako nema odgovora",
|
||||
"teaser.first": "Prvi",
|
||||
"unread": "Nepročitana podešavanja",
|
||||
"unread.cutoff": "Nepročitano tokom prekinutih dana",
|
||||
"unread.min-track-last": "Minimum postova u temi, pre praćenja poslednjeg pročitanog",
|
||||
"recent": "Nedavna Podešavanja",
|
||||
"recent.categoryFilter.disable": "Onemogući filtriranje tema u ignorisanim kategorijama na /recent stranici",
|
||||
"signature": "Podešavanja Potpisa",
|
||||
"signature.disable": "Onemogući potpise",
|
||||
"signature.no-links": "Onemogući linkove u potpisima",
|
||||
"signature.no-images": "Onemogući slike u potpisima",
|
||||
"signature.max-length": "Minimum karaktera u Potpisu",
|
||||
"composer": "Podešavanje Composer-a",
|
||||
"composer-help": "Sledeća podešavanja upravljaju funkcionalnošću i/ili izgledom prikazanom kompozera post-a\n\t\t\t\tprema korisnicima kada prave nove teme, ili odgovaraju na postojeće.",
|
||||
"composer.show-help": "Prikaži tab \"Pomoć\"",
|
||||
"composer.enable-plugin-help": "Dozvoli plugin-ovima da dodaju sadržaj na tab-u \"pomoć\"",
|
||||
"composer.custom-help": "Prilagođen tekst za pomoć",
|
||||
"ip-tracking": "Praćenje IP adrese",
|
||||
"ip-tracking.each-post": "Prati IP Adresu za svaki post"
|
||||
}
|
||||
@@ -104,6 +104,6 @@
|
||||
"cookies.accept": "知道了!",
|
||||
"cookies.learn_more": "了解更多",
|
||||
"edited": "已编辑",
|
||||
"disabled": "Disabled",
|
||||
"select": "Select"
|
||||
"disabled": "禁用",
|
||||
"select": "选择"
|
||||
}
|
||||
@@ -59,7 +59,7 @@
|
||||
"thread_tools.unlock": "解锁主题",
|
||||
"thread_tools.move": "移动主题",
|
||||
"thread_tools.move_all": "移动全部",
|
||||
"thread_tools.select_category": "Select Category",
|
||||
"thread_tools.select_category": "选择版块",
|
||||
"thread_tools.fork": "分割主题",
|
||||
"thread_tools.delete": "删除主题",
|
||||
"thread_tools.delete-posts": "删除这些帖子",
|
||||
|
||||
@@ -99,7 +99,7 @@ define('forum/topic', [
|
||||
|
||||
function handleTopicSearch() {
|
||||
require(['search', 'mousetrap'], function (search, mousetrap) {
|
||||
$('.topic-search')
|
||||
$('.topic-search').off('click')
|
||||
.on('click', '.prev', function () {
|
||||
search.topicDOM.prev();
|
||||
})
|
||||
|
||||
@@ -245,7 +245,7 @@ define('navigator', ['forum/pagination', 'components'], function (pagination, co
|
||||
}
|
||||
}
|
||||
|
||||
var page = Math.max(1, Math.ceil(index / config.postsPerPage));
|
||||
var page = Math.max(1, Math.ceil((index + 1) / config.postsPerPage));
|
||||
|
||||
if (parseInt(page, 10) !== ajaxify.data.pagination.currentPage) {
|
||||
pagination.loadPage(page, function () {
|
||||
|
||||
@@ -156,7 +156,7 @@ define('search', ['navigator', 'translator', 'storage'], function (nav, translat
|
||||
return app.alertError(err.message);
|
||||
}
|
||||
|
||||
nav.scrollToPost(postIndex, true);
|
||||
nav.scrollToIndex(postIndex, true);
|
||||
});
|
||||
} else {
|
||||
translator.translate('[[search:no-matches]]', function (text) {
|
||||
|
||||
13
src/reset.js
13
src/reset.js
@@ -10,7 +10,6 @@ var events = require('./events');
|
||||
|
||||
var Reset = {};
|
||||
|
||||
|
||||
Reset.reset = function (callback) {
|
||||
db.init(function (err) {
|
||||
if (err) {
|
||||
@@ -163,10 +162,14 @@ function resetPlugins(callback) {
|
||||
}
|
||||
|
||||
function resetWidgets(callback) {
|
||||
require('./widgets').reset(function (err) {
|
||||
winston.info('[reset] All Widgets moved to Draft Zone');
|
||||
callback(err);
|
||||
});
|
||||
async.waterfall([
|
||||
require('./plugins').reload,
|
||||
require('./widgets').reset,
|
||||
function (next) {
|
||||
winston.info('[reset] All Widgets moved to Draft Zone');
|
||||
next();
|
||||
},
|
||||
], callback);
|
||||
}
|
||||
|
||||
module.exports = Reset;
|
||||
|
||||
@@ -326,12 +326,10 @@ Topics.isLocked = function (tid, callback) {
|
||||
};
|
||||
|
||||
Topics.search = function (tid, term, callback) {
|
||||
if (plugins.hasListeners('filter:topic.search')) {
|
||||
plugins.fireHook('filter:topic.search', {
|
||||
tid: tid,
|
||||
term: term,
|
||||
}, callback);
|
||||
} else {
|
||||
callback(new Error('[[error:no-plugins-available]]'), []);
|
||||
}
|
||||
plugins.fireHook('filter:topic.search', {
|
||||
tid: tid,
|
||||
term: term,
|
||||
}, function (err, pids) {
|
||||
callback(err, Array.isArray(pids) ? pids : []);
|
||||
});
|
||||
};
|
||||
|
||||
@@ -34,8 +34,72 @@ module.exports = {
|
||||
}).filter(Boolean);
|
||||
|
||||
winston.verbose('[2016/04/29] ' + toDismiss.length + ' dismissable flags found');
|
||||
async.each(toDismiss, posts.dismissFlag, next);
|
||||
async.each(toDismiss, dismissFlag, next);
|
||||
},
|
||||
], callback);
|
||||
},
|
||||
};
|
||||
|
||||
// copied from core since this function was removed
|
||||
// https://github.com/NodeBB/NodeBB/blob/v1.x.x/src/posts/flags.js
|
||||
function dismissFlag(pid, callback) {
|
||||
async.waterfall([
|
||||
function (next) {
|
||||
db.getObjectFields('post:' + pid, ['pid', 'uid', 'flags'], next);
|
||||
},
|
||||
function (postData, next) {
|
||||
if (!postData.pid) {
|
||||
return callback();
|
||||
}
|
||||
async.parallel([
|
||||
function (next) {
|
||||
if (parseInt(postData.uid, 10)) {
|
||||
if (parseInt(postData.flags, 10) > 0) {
|
||||
async.parallel([
|
||||
async.apply(db.sortedSetIncrBy, 'users:flags', -postData.flags, postData.uid),
|
||||
async.apply(db.incrObjectFieldBy, 'user:' + postData.uid, 'flags', -postData.flags),
|
||||
], next);
|
||||
} else {
|
||||
next();
|
||||
}
|
||||
} else {
|
||||
next();
|
||||
}
|
||||
},
|
||||
function (next) {
|
||||
db.sortedSetsRemove([
|
||||
'posts:flagged',
|
||||
'posts:flags:count',
|
||||
'uid:' + postData.uid + ':flag:pids',
|
||||
], pid, next);
|
||||
},
|
||||
function (next) {
|
||||
async.series([
|
||||
function (next) {
|
||||
db.getSortedSetRange('pid:' + pid + ':flag:uids', 0, -1, function (err, uids) {
|
||||
if (err) {
|
||||
return next(err);
|
||||
}
|
||||
|
||||
async.each(uids, function (uid, next) {
|
||||
var nid = 'post_flag:' + pid + ':uid:' + uid;
|
||||
async.parallel([
|
||||
async.apply(db.delete, 'notifications:' + nid),
|
||||
async.apply(db.sortedSetRemove, 'notifications', 'post_flag:' + pid + ':uid:' + uid),
|
||||
], next);
|
||||
}, next);
|
||||
});
|
||||
},
|
||||
async.apply(db.delete, 'pid:' + pid + ':flag:uids'),
|
||||
], next);
|
||||
},
|
||||
async.apply(db.deleteObjectField, 'post:' + pid, 'flags'),
|
||||
async.apply(db.delete, 'pid:' + pid + ':flag:uid:reason'),
|
||||
async.apply(db.deleteObjectFields, 'post:' + pid, ['flag:state', 'flag:assignee', 'flag:notes', 'flag:history']),
|
||||
], next);
|
||||
},
|
||||
function (results, next) {
|
||||
db.sortedSetsRemoveRangeByScore(['users:flags'], '-inf', 0, next);
|
||||
},
|
||||
], callback);
|
||||
}
|
||||
|
||||
@@ -70,7 +70,7 @@ function renderWidget(widget, uid, options, callback) {
|
||||
}
|
||||
},
|
||||
function (config, next) {
|
||||
var templateData = _.assign(options.templateData, { config: config });
|
||||
var templateData = _.assign({ }, options.templateData, { config: config });
|
||||
plugins.fireHook('filter:widget.render:' + widget.widget, {
|
||||
uid: uid,
|
||||
area: options,
|
||||
@@ -193,7 +193,7 @@ widgets.reset = function (callback) {
|
||||
function (results, next) {
|
||||
drafts = results.drafts || [];
|
||||
|
||||
async.each(results.areas, function (area, next) {
|
||||
async.eachSeries(results.areas, function (area, next) {
|
||||
async.waterfall([
|
||||
function (next) {
|
||||
widgets.getArea(area.template, area.location, next);
|
||||
|
||||
@@ -1505,13 +1505,6 @@ describe('Topic\'s', function () {
|
||||
});
|
||||
});
|
||||
|
||||
it('should error if no search plugin', function (done) {
|
||||
socketTopics.search({ uid: adminUid }, { tid: topic.tid, term: 'test' }, function (err) {
|
||||
assert.equal(err.message, '[[error:no-plugins-available]]');
|
||||
done();
|
||||
});
|
||||
});
|
||||
|
||||
it('should return results', function (done) {
|
||||
var plugins = require('../src/plugins');
|
||||
plugins.registerHook('myTestPlugin', {
|
||||
|
||||
Reference in New Issue
Block a user