diff --git a/docs/source/configuration/how-to.md b/docs/source/configuration/how-to.md index 5d4eafd897..a1023c1837 100644 --- a/docs/source/configuration/how-to.md +++ b/docs/source/configuration/how-to.md @@ -20,7 +20,7 @@ then access any of its internal configuration to retrieve the configuration you like: ```js -const absoluteUrl = `${config.settings.apiPath}/${content.url}` +const absoluteUrl = `${config.settings.apiPath}/${content.url}`; ``` Both the main project and individual add-ons can extend Volto's configuration registry. @@ -150,3 +150,31 @@ export default function applyConfig(config) { return config; } +``` + +## `nonContentRoutes` and `nonContentRoutesPublic` + +`nonContentRoutes` is a list of routes reserved in Volto for its functionality as a content management system. +These functions include user authentication and registration, changing settings through control panels, generating a site map, and other functions. +Examples of these routes include `/login`, `/register`, and `/\/controlpanel\/.*$/`. +Editors can't use them for content. +The HTML attribute class value `cms-ui` is applied to members of `nonContentRoutes`. +You can configure `nonContentRoutes` with either a regular expression or a string representing the end of the URI. + +`nonContentRoutesPublic` is a subset of `nonContentRoutes`. +These routes are used for public sections of a Volto site that do not require authentication. +This subset includes `/login`, `/search`, and `/sitemap`. + +The following example shows how to configure settings for `nonContentRoutes` and `nonContentRoutesPublic`. + +```js +export default function applyConfig(config) { + config.settings = { + ...config.settings, + nonContentRoutes:[....], + nonContentRoutesPublic: [....] + }; + + return config; +} +``` diff --git a/packages/volto-slate/locales/pt_BR/LC_MESSAGES/volto.po b/packages/volto-slate/locales/pt_BR/LC_MESSAGES/volto.po new file mode 100644 index 0000000000..867d80478b --- /dev/null +++ b/packages/volto-slate/locales/pt_BR/LC_MESSAGES/volto.po @@ -0,0 +1,205 @@ +msgid "" +msgstr "" +"Project-Id-Version: Plone\n" +"POT-Creation-Date: 2022-07-20T12:45:09.681Z\n" +"PO-Revision-Date: \n" +"Last-Translator: Érico Andrei \n" +"Language-Team: Plone i18n \n" +"Language: pt_BR\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=utf-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: nplurals=2; plural=(n > 1);\n" +"Language-Code: en\n" +"Language-Name: English\n" +"Preferred-Encodings: utf-8\n" +"Domain: volto\n" +"X-Generator: Poedit 3.5\n" + +# defaultMessage: Add link +#: editor/plugins/Link/index +msgid "Add link" +msgstr "Adicionar link" + +# defaultMessage: An error has occurred while editing "{name}" field. We have been notified and we are looking into it. Please save your work and retry. If the issue persists please contact the site administrator. +#: widgets/HtmlSlateWidget +#, fuzzy +msgid "An error has occurred while editing \"{name}\" field. We have been notified and we are looking into it. Please save your work and retry. If the issue persists please contact the site administrator." +msgstr "Ocorreu um erro ao editar o campo \"{name}\". Fomos notificados e estamos analisando o problema. Salve seu trabalho e tente novamente. Se o problema persistir, entre em contato com o administrador do site." + +# defaultMessage: An error has occurred while rendering "{name}" field. We have been notified and we are looking into it. If the issue persists please contact the site administrator. +#: widgets/RichTextWidgetView +#, fuzzy +msgid "An error has occurred while rendering \"{name}\" field. We have been notified and we are looking into it. If the issue persists please contact the site administrator." +msgstr "Ocorreu um erro ao renderizar o campo \"{name}\". Fomos notificados e estamos analisando o problema. Se o problema persistir, entre em contato com o administrador do site." + +# defaultMessage: Bottom +#: blocks/Table/TableBlockEdit +msgid "Bottom" +msgstr "Base" + +# defaultMessage: Center +#: blocks/Table/TableBlockEdit +#, fuzzy +msgid "Center" +msgstr "Centro" + +# defaultMessage: Delete col +#: blocks/Table/TableBlockEdit editor/plugins/Table/index +#, fuzzy +msgid "Delete col" +msgstr "Excluir coluna" + +# defaultMessage: Delete row +#: blocks/Table/TableBlockEdit editor/plugins/Table/index +#, fuzzy +msgid "Delete row" +msgstr "Excluir linha" + +# defaultMessage: Delete table +#: editor/plugins/Table/index +#, fuzzy +msgid "Delete table" +msgstr "Excluir tabela" + +# defaultMessage: Divide each row into separate cells +#: blocks/Table/TableBlockEdit +#, fuzzy +msgid "Divide each row into separate cells" +msgstr "Dividir cada linha em células separadas" + +# defaultMessage: Edit element +#: elementEditor/messages +#, fuzzy +msgid "Edit element" +msgstr "Editar elemento" + +# defaultMessage: Edit link +#: editor/plugins/AdvancedLink/index editor/plugins/Link/index +#, fuzzy +msgid "Edit link" +msgstr "Editar link" + +# defaultMessage: Fixed width table cells +#: blocks/Table/TableBlockEdit +#, fuzzy +msgid "Fixed width table cells" +msgstr "Células de tabela de largura fixa" + +# defaultMessage: Hide headers +#: blocks/Table/TableBlockEdit +#, fuzzy +msgid "Hide headers" +msgstr "Ocultar cabeçalhos" + +# defaultMessage: Insert col after +#: blocks/Table/TableBlockEdit editor/plugins/Table/index +#, fuzzy +msgid "Insert col after" +msgstr "Inserir coluna após" + +# defaultMessage: Insert col before +#: blocks/Table/TableBlockEdit editor/plugins/Table/index +#, fuzzy +msgid "Insert col before" +msgstr "Inserir coluna antes" + +# defaultMessage: Insert row after +#: blocks/Table/TableBlockEdit editor/plugins/Table/index +#, fuzzy +msgid "Insert row after" +msgstr "Inserir linha após" + +# defaultMessage: Insert row before +#: blocks/Table/TableBlockEdit editor/plugins/Table/index +#, fuzzy +msgid "Insert row before" +msgstr "Inserir linha antes" + +# defaultMessage: Left +#: blocks/Table/TableBlockEdit +#, fuzzy +msgid "Left" +msgstr "Esquerda" + +# defaultMessage: Make the table compact +#: blocks/Table/TableBlockEdit +#, fuzzy +msgid "Make the table compact" +msgstr "Compactar a tabela" + +# defaultMessage: Make the table sortable +#: blocks/Table/TableBlockEdit +msgid "Make the table sortable" +msgstr "Tornar a tabela ordenável" + +# defaultMessage: Middle +#: blocks/Table/TableBlockEdit +msgid "Middle" +msgstr "Meio" + +# defaultMessage: No matching blocks +#: blocks/Text/SlashMenu +#, fuzzy +msgid "No matching blocks" +msgstr "Não há blocos correspondentes" + +# defaultMessage: Reduce complexity +#: blocks/Table/TableBlockEdit +#, fuzzy +msgid "Reduce complexity" +msgstr "Reduzir complexidade" + +# defaultMessage: Remove element +#: elementEditor/messages +#, fuzzy +msgid "Remove element" +msgstr "Remover elemento" + +# defaultMessage: Remove link +#: editor/plugins/AdvancedLink/index +#, fuzzy +msgid "Remove link" +msgstr "Remover link" + +# defaultMessage: Right +#: blocks/Table/TableBlockEdit +#, fuzzy +msgid "Right" +msgstr "Direita" + +# defaultMessage: Stripe alternate rows with color +#: blocks/Table/TableBlockEdit +#, fuzzy +msgid "Stripe alternate rows with color" +msgstr "Alternar cores das linhas" + +# defaultMessage: Table +#: blocks/Table/TableBlockEdit +#, fuzzy +msgid "Table" +msgstr "Tabela" + +# defaultMessage: Table color inverted +#: blocks/Table/TableBlockEdit +#, fuzzy +msgid "Table color inverted" +msgstr "Cor da tabela invertida" + +# defaultMessage: Top +#: blocks/Table/TableBlockEdit +#, fuzzy +msgid "Top" +msgstr "Topo" + +# defaultMessage: Type text… +#: blocks/Text/DefaultTextBlockEditor blocks/Text/DetachedTextBlockEditor +#, fuzzy +msgid "Type text…" +msgstr "Digite texto…" + +# defaultMessage: Visible only in view mode +#: blocks/Table/TableBlockEdit +#, fuzzy +msgid "Visible only in view mode" +msgstr "Visível apenas no modo de visualização" diff --git a/packages/volto-slate/news/+update_pt_br.feature b/packages/volto-slate/news/+update_pt_br.feature new file mode 100644 index 0000000000..35ce73755f --- /dev/null +++ b/packages/volto-slate/news/+update_pt_br.feature @@ -0,0 +1 @@ +Update Brazilian Portuguese translations. @ericof diff --git a/packages/volto/cypress/tests/core/basic/a11y.js b/packages/volto/cypress/tests/core/basic/a11y.js index 9c21668d8f..593c2b4889 100644 --- a/packages/volto/cypress/tests/core/basic/a11y.js +++ b/packages/volto/cypress/tests/core/basic/a11y.js @@ -10,6 +10,10 @@ describe('Accessibility Tests', () => { it('Contact form has not a11y violations', () => { cy.navigate('/contact-form'); + cy.get('#field-name').click().type('input'); + cy.get('#field-from').click().type('something@domain.com'); + cy.get('#field-subject').click().type('input'); + cy.get('#field-message').click().type('input'); cy.checkA11y(); }); diff --git a/packages/volto/locales/pt_BR/LC_MESSAGES/volto.po b/packages/volto/locales/pt_BR/LC_MESSAGES/volto.po index 2cc2bc38b4..4f37b4e35a 100644 --- a/packages/volto/locales/pt_BR/LC_MESSAGES/volto.po +++ b/packages/volto/locales/pt_BR/LC_MESSAGES/volto.po @@ -3,7 +3,7 @@ msgstr "" "Project-Id-Version: Plone\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2017-04-27T19:30:59.079Z\n" -"PO-Revision-Date: 2022-11-14 19:36-0300\n" +"PO-Revision-Date: 2024-09-15 14:20-0300\n" "Last-Translator: Érico Andrei \n" "Language: pt_BR\n" "Language-Team: Portuguese (https://www.transifex.com/plone/teams/14552/pt/)\n" @@ -15,7 +15,7 @@ msgstr "" "Language-Name: Português do Brasil\n" "Preferred-Encodings: utf-8\n" "Domain: volto\n" -"X-Generator: Poedit 3.2\n" +"X-Generator: Poedit 3.5\n" #. Default: "

Add some HTML here

" #: components/manage/Blocks/HTML/Edit @@ -142,7 +142,7 @@ msgstr "Adicionar bloco" #. Default: "Add block in position {index}" #: components/manage/Blocks/Container/NewBlockAddButton msgid "Add block in position {index}" -msgstr "" +msgstr "Adicionar bloco na posição {index}" #. Default: "Add block…" #: helpers/MessageLabels/MessageLabels @@ -595,7 +595,7 @@ msgstr "Alterações guardadas." #. Default: "Check this box to customize the title, description, or image of the target content item for this teaser. Leave it unchecked to show updates to the target content item if it is edited later." #: components/manage/Blocks/Teaser/schema msgid "Check this box to customize the title, description, or image of the target content item for this teaser. Leave it unchecked to show updates to the target content item if it is edited later." -msgstr "" +msgstr "Marque essa caixa para personalizar o título, a descrição ou a imagem do item de conteúdo de destino para esse teaser. Deixe-a desmarcada para mostrar atualizações no item de conteúdo de destino se ele for editado posteriormente." #. Default: "Checkbox" #: components/manage/Widgets/SchemaWidget @@ -750,7 +750,7 @@ msgstr "Itens contidos" #. Default: "Container settings" #: components/manage/Blocks/Container/SimpleContainerToolbar msgid "Container settings" -msgstr "" +msgstr "Configurações de contêineres" #. Default: "Content" #: components/manage/Controlpanels/Controlpanels @@ -781,7 +781,7 @@ msgstr "Regras de conteúdo de pastas pai" #. Default: "Content that links to or references {title}" #: components/manage/LinksToItem/LinksToItem msgid "Content that links to or references {title}" -msgstr "" +msgstr "Conteúdo com links ou referências para {title}" #. Default: "Content type created" #: components/manage/Controlpanels/ContentTypes @@ -880,7 +880,7 @@ msgstr "Senha atual" #. Default: "Customize teaser content" #: components/manage/Blocks/Teaser/schema msgid "Customize teaser content" -msgstr "" +msgstr "Personalizar o conteúdo do destaque" #. Default: "Cut" #: components/manage/Actions/Actions @@ -1017,12 +1017,12 @@ msgstr "Excluir linha" #. Default: "Delete selected items?" #: components/manage/Contents/Contents msgid "Delete selected items?" -msgstr "" +msgstr "Excluir os itens selecionados?" #. Default: "Delete this item?" #: components/manage/Contents/Contents msgid "Delete this item?" -msgstr "" +msgstr "Apagar este item?" #. Default: "Deleted" #: components/manage/Controlpanels/Rules/Rules @@ -1032,7 +1032,7 @@ msgstr "Removida" #. Default: "Deleting this item breaks {brokenReferences} {variation}." #: components/manage/Contents/Contents msgid "Deleting this item breaks {brokenReferences} {variation}." -msgstr "" +msgstr "A exclusão desse item quebra {brokenReferences} {variation}." #. Default: "Depth" #: components/manage/Widgets/QuerystringWidget @@ -1328,7 +1328,7 @@ msgstr "Informe seu nome de usuário para verificação." #. Default: "Entries" #: components/manage/Blocks/ToC/Schema msgid "Entries" -msgstr "" +msgstr "Entradas" #. Default: "Error" #: components/manage/Add/Add @@ -1359,7 +1359,7 @@ msgstr "Evento" #. Default: "Event end date must be on or after {startDateValueOrStartFieldName}" #: helpers/MessageLabels/MessageLabels msgid "Event end date must be on or after {startDateValueOrStartFieldName}" -msgstr "" +msgstr "A data de término do evento deve ser igual ou posterior a {startDateValueOrStartFieldName}" #. Default: "Event listing" #: config/Views @@ -1369,7 +1369,7 @@ msgstr "Listagem de Evento" #. Default: "Event start date must be on or before {endDateValueOrEndFieldName}" #: helpers/MessageLabels/MessageLabels msgid "Event start date must be on or before {endDateValueOrEndFieldName}" -msgstr "" +msgstr "A data de início do evento deve ser igual ou anterior a {endDateValueOrEndFieldName}" #. Default: "Event view" #: config/Views @@ -1596,7 +1596,7 @@ msgstr "Bloco Google Maps" #. Default: "Grid" #: components/manage/Blocks/Grid/schema msgid "Grid" -msgstr "" +msgstr "Grade" #. Default: "Group" #: components/manage/Sharing/Sharing @@ -1611,7 +1611,7 @@ msgstr "Grupo criado" #. Default: "Group deleted" #: helpers/MessageLabels/MessageLabels msgid "Group deleted" -msgstr "" +msgstr "Grupo Excluído" #. Default: "Group roles updated" #: helpers/MessageLabels/MessageLabels @@ -1676,7 +1676,7 @@ msgstr "Ocultar filtros" #. Default: "Hide title" #: components/manage/Blocks/ToC/Schema msgid "Hide title" -msgstr "" +msgstr "Ocultar título" #. Default: "History" #: components/manage/History/History @@ -1712,7 +1712,7 @@ msgstr "ID" #. Default: "Icon View" #: components/manage/Sidebar/ObjectBrowserBody msgid "Icon View" -msgstr "" +msgstr "Visualização de ícone" #. Default: "If all of the following conditions are met:" #: components/manage/Controlpanels/Rules/ConfigureRule @@ -1869,12 +1869,12 @@ msgstr "Bloco inválido" #. Default: "Invalid teaser source" #: components/manage/Blocks/Teaser/Data msgid "Invalid teaser source" -msgstr "" +msgstr "Fonte do destaque inválida" #. Default: "It is not allowed to define both the password and to request sending the password reset message by e-mail. You need to select one of them." #: helpers/MessageLabels/MessageLabels msgid "It is not allowed to define both the password and to request sending the password reset message by e-mail. You need to select one of them." -msgstr "" +msgstr "Não é permitido definir a senha e solicitar o envio da mensagem de redefinição de senha por e-mail. Por favor, selecione um deles." #. Default: "Item batch size" #: components/manage/Widgets/QuerystringWidget @@ -1998,7 +1998,7 @@ msgstr "Link" #. Default: "Anchor link copied to the clipboard" #: helpers/MessageLabels/MessageLabels msgid "Link copied to clipboard" -msgstr "" +msgstr "Link copiado para área de transferência" #. Default: "Link more" #: components/manage/Blocks/Listing/schema @@ -2013,7 +2013,7 @@ msgstr "Visão de redireção de Link" #. Default: "Link settings" #: components/manage/Blocks/Image/schema msgid "Link settings" -msgstr "" +msgstr "Configurações do link" #. Default: "Link Title" #: components/manage/Blocks/Listing/schema @@ -2035,18 +2035,18 @@ msgstr "Linkar tradução para" #. Default: "Linking this item with hyperlink in text" #: components/manage/LinksToItem/LinksToItem msgid "Linking this item with hyperlink in text" -msgstr "" +msgstr "Vinculação deste item com hiperlink no texto" #. Default: "Links and references" #: components/manage/LinksToItem/LinksToItem #: components/manage/Toolbar/More msgid "Links and references" -msgstr "" +msgstr "Links e referências" #. Default: "List View" #: components/manage/Sidebar/ObjectBrowserBody msgid "List View" -msgstr "" +msgstr "Exibição de lista" #. Default: "Listing" #: components/manage/Blocks/Listing/schema @@ -2104,7 +2104,7 @@ msgstr "Nome de usuário" #. Default: "Logo of" #: components/theme/Logo/Logo msgid "Logo of" -msgstr "" +msgstr "Logotipo da" #. Default: "Logout" #: components/manage/Toolbar/PersonalTools @@ -2390,7 +2390,7 @@ msgstr "Nenhum item selecionado" #. Default: "No links to this item found." #: components/manage/LinksToItem/LinksToItem msgid "No links to this item found." -msgstr "" +msgstr "Não foram encontrados links para esse item." #. Default: "No map selected" #: components/manage/Blocks/Maps/MapsSidebar @@ -2496,7 +2496,7 @@ msgstr "Ok" #. Default: "Only 7-bit bytes characters are allowed. Cannot contain uppercase letters, special characters: <, >, &, #, /, ?, or others that are illegal in URLs. Cannot start with: _, aq_, @@, ++. Cannot end with __. Cannot be: request,contributors, ., .., "". Cannot contain new lines." #: components/manage/Widgets/IdWidget msgid "Only 7-bit bytes characters are allowed. Cannot contain uppercase letters, special characters: <, >, &, #, /, ?, or others that are illegal in URLs. Cannot start with: _, aq_, @@, ++. Cannot end with __. Cannot be: request,contributors, ., .., "". Cannot contain new lines." -msgstr "" +msgstr "Somente caracteres de bytes de 7 bits são permitidos. Não pode conter letras maiúsculas, caracteres especiais: <, >, &, #, /, ?, ou outros que são ilegais em URLs. Não pode começar com: , aq, @@, ++. Não pode terminar com __. Não pode ser: request, contributors, ., .., “”. Não pode conter quebras de linha." #. Default: "Open in a new tab" #: components/manage/Blocks/Image/schema @@ -2519,12 +2519,12 @@ msgstr "Abrir navegador de objetos" #. Default: "Order" #: components/manage/Sidebar/Sidebar msgid "Order" -msgstr "" +msgstr "Ordem" #. Default: "Ordered" #: components/manage/Blocks/ToC/Schema msgid "Ordered" -msgstr "" +msgstr "Ordenado" #. Default: "Origin" #: components/manage/Blocks/LeadImage/LeadImageSidebar @@ -2534,7 +2534,7 @@ msgstr "Origem" #. Default: "Overview of relations of all content items" #: components/manage/LinksToItem/LinksToItem msgid "Overview of relations of all content items" -msgstr "" +msgstr "Visão geral das relações de todos os itens de conteúdo" #. Default: "Page" #: components/manage/Toolbar/Toolbar @@ -2778,17 +2778,17 @@ msgstr "Reduzir complexidade" #. Default: "Referencing this item as related item" #: components/manage/LinksToItem/LinksToItem msgid "Referencing this item as related item" -msgstr "" +msgstr "Referenciando este item como item relacionado" #. Default: "Referencing this item with {relationship}" #: components/manage/LinksToItem/LinksToItem msgid "Referencing this item with {relationship}" -msgstr "" +msgstr "Referenciando este item via {relationship}" #. Default: "Refresh source content" #: components/manage/Blocks/Teaser/Data msgid "Refresh source content" -msgstr "" +msgstr "Atualizar o conteúdo de origem" #. Default: "Register" #: components/theme/Anontools/Anontools @@ -2838,7 +2838,7 @@ msgstr "Remover" #. Default: "Remove element {index}" #: components/manage/Blocks/Container/EditBlockWrapper msgid "Remove element {index}" -msgstr "" +msgstr "Remover elemento {index}" #. Default: "Remove item" #: components/manage/Widgets/ObjectListWidget @@ -2927,7 +2927,7 @@ msgstr "Falta informação obrigatória." #. Default: "Reset element {index}" #: components/manage/Blocks/Container/EditBlockWrapper msgid "Reset element {index}" -msgstr "" +msgstr "Redefinir elemento {index}" #. Default: "Reset title" #: components/manage/Widgets/VocabularyTermsWidget @@ -3230,7 +3230,7 @@ msgstr "Envie um e-mail de confirmação com um link para definir a senha." #. Default: "Server Error" #: components/theme/Error/ServerError msgid "Server Error" -msgstr "" +msgstr "Erro de servidor" #. Default: "Set my password" #: components/theme/PasswordReset/PasswordReset @@ -3376,12 +3376,12 @@ msgstr "Pequeno" #. Default: "Some items are also a folder. By deleting them you will delete {containedItemsToDelete} {variation} inside the folders." #: components/manage/Contents/Contents msgid "Some items are also a folder. By deleting them you will delete {containedItemsToDelete} {variation} inside the folders." -msgstr "" +msgstr "Alguns itens também são uma pasta. Ao excluí-los, você excluirá {containedItemsToDelete} {variation} dentro destas pastas." #. Default: "Some items are referenced by other contents. By deleting them {brokenReferences} {variation} will be broken." #: components/manage/Contents/Contents msgid "Some items are referenced by other contents. By deleting them {brokenReferences} {variation} will be broken." -msgstr "" +msgstr "Alguns itens são referenciados por outros conteúdos. Ao excluí-los, {brokenReferences} {variation} podem ser quebrados." #. Default: "Some relations are broken. Please fix." #: components/manage/Controlpanels/Relations/Relations @@ -3428,7 +3428,7 @@ msgstr "Ordenado" #. Default: "Sorted on" #: components/manage/Blocks/Search/components/SortOn msgid "Sorted on" -msgstr "" +msgstr "Ordenado por" #. Default: "Source" #: components/manage/Blocks/HTML/Edit @@ -3478,7 +3478,7 @@ msgstr "Situação" #. Default: "Sticky" #: components/manage/Blocks/ToC/Schema msgid "Sticky" -msgstr "" +msgstr "Fixo" #. Default: "Stop compare" #: components/manage/Multilingual/CompareLanguages @@ -3508,7 +3508,7 @@ msgstr "Assunto" #. Default: "Submit" #: components/manage/AnchorPlugin/components/LinkButton/AddLinkForm msgid "Submit" -msgstr "" +msgstr "Enviar" #. Default: "Success" #: components/manage/Actions/Actions @@ -3674,12 +3674,12 @@ msgstr "O endereço do link é:" #. Default: "The number of items must be greater than or equal to {minItems}" #: helpers/MessageLabels/MessageLabels msgid "The number of items must be greater than or equal to {minItems}" -msgstr "" +msgstr "O número de itens deve ser maior ou igual a {minItems}" #. Default: "The number of items must be less than or equal to {maxItems}" #: helpers/MessageLabels/MessageLabels msgid "The number of items must be less than or equal to {maxItems}" -msgstr "" +msgstr "O número de itens deve ser menor ou igual a {maxItems}" #. Default: "The provided alternative url already exists!" #: components/manage/Aliases/Aliases @@ -3700,7 +3700,7 @@ msgstr "A configuração do site está desatualizada e precisa ser atualizada." #. Default: "The value does not match the pattern {pattern}" #: helpers/MessageLabels/MessageLabels msgid "The value does not match the pattern {pattern}" -msgstr "" +msgstr "O valor não corresponde ao padrão {pattern}" #. Default: "The working copy was discarded" #: components/manage/Toolbar/More @@ -3715,12 +3715,12 @@ msgstr "O {plonecms} tem {copyright} de 2000-{current_year} pela {plonefoundatio #. Default: "There are no groups with the searched criteria" #: helpers/MessageLabels/MessageLabels msgid "There are no groups with the searched criteria" -msgstr "" +msgstr "Não há grupos com os critérios pesquisados" #. Default: "There are no users with the searched criteria" #: helpers/MessageLabels/MessageLabels msgid "There are no users with the searched criteria" -msgstr "" +msgstr "Não há usuários com os critérios pesquisados" #. Default: "There are some errors." #: components/manage/Add/Add @@ -3772,7 +3772,7 @@ msgstr "Esta é uma cópia de trabalho de {title}" #. Default: "This item is also a folder. By deleting it you will delete {containedItemsToDelete} {variation} inside the folder." #: components/manage/Contents/Contents msgid "This item is also a folder. By deleting it you will delete {containedItemsToDelete} {variation} inside the folder." -msgstr "" +msgstr "Esse item também é uma pasta. Ao excluí-lo, você excluirá {containedItemsToDelete} {variation} dentro da pasta." #. Default: "This item was locked by {creator} on {date}" #: components/manage/LockingToastsFactory/LockingToastsFactory @@ -4009,7 +4009,7 @@ msgstr "Atualizar" #. Default: "Update User" #: helpers/MessageLabels/MessageLabels msgid "Update User" -msgstr "" +msgstr "Atualizar o usuário" #. Default: "Update installed addons" #: components/manage/Controlpanels/AddonsControlpanel @@ -4107,7 +4107,7 @@ msgstr "Usuário criado" #. Default: "User deleted" #: helpers/MessageLabels/MessageLabels msgid "User deleted" -msgstr "" +msgstr "Usuário excluído" #. Default: "User name" #: components/manage/Controlpanels/Users/UsersControlpanel @@ -4122,7 +4122,7 @@ msgstr "Papéis do grupo atualizados" #. Default: "User updated successfuly" #: helpers/MessageLabels/MessageLabels msgid "User updated successfuly" -msgstr "" +msgstr "Usuário atualizado com sucesso" #. Default: "Username" #: helpers/MessageLabels/MessageLabels @@ -4181,12 +4181,12 @@ msgstr "Ver mudanças" #. Default: "View links and references to this item" #: components/manage/Contents/Contents msgid "View links and references to this item" -msgstr "" +msgstr "Exibir links e referências a este item" #. Default: "View this revision" #: components/manage/History/History msgid "View this revision" -msgstr "Ver esta revisão" +msgstr "Visualizar esta revisão" #. Default: "View working copy" #: components/manage/Toolbar/More @@ -4231,7 +4231,7 @@ msgstr "Pedimos desculpas pelo inconveniente, mas a página que você estava ten #. Default: "We apologize for the inconvenience, but there was an unexpected error on the server." #: components/theme/Error/ServerError msgid "We apologize for the inconvenience, but there was an unexpected error on the server." -msgstr "" +msgstr "Pedimos desculpas pelo inconveniente, mas ocorreu um erro inesperado no servidor." #. Default: "We apologize for the inconvenience, but you don't have permissions on this resource." #: components/theme/Forbidden/Forbidden @@ -4419,7 +4419,7 @@ msgstr "Visões disponíveis" #. Default: "Error in the block field {errorField}." #: helpers/MessageLabels/MessageLabels msgid "blocksFieldsErrorTitle" -msgstr "" +msgstr "Erro no campo de blocos {errorField}" #. Default: "Forgot your password?" #: components/theme/Login/Login @@ -4435,12 +4435,12 @@ msgstr "Caixa de seleção" #. Default: "column" #: components/manage/Blocks/Grid/templates msgid "column" -msgstr "" +msgstr "coluna" #. Default: "columns" #: components/manage/Blocks/Grid/templates msgid "columns" -msgstr "" +msgstr "colunas" #. Default: "Common" #: config/Blocks @@ -4540,7 +4540,7 @@ msgstr "Onde" #. Default: "This website does not accept files larger than {limit}" #: helpers/MessageLabels/MessageLabels msgid "fileTooLarge" -msgstr "" +msgstr "Este site não aceita arquivos maiores que {limit}" #. Default: "flush intIds and rebuild relations" #: helpers/MessageLabels/MessageLabels @@ -4550,7 +4550,7 @@ msgstr "descarrega os intIds e recontrua os relacionamentos" #. Default: "
  • Regenerate intIds (tokens of relations in relation catalog)
  • Rebuild relations

Check the log for details!

Warning: If you have add-ons relying on intIds, you should not flush them.

" #: helpers/MessageLabels/MessageLabels msgid "flushAndRebuildRelationsHints" -msgstr "" +msgstr "
  • Regerar os intIds (tokens das relações no catálogo de relações)
  • Reconstruir relações

Verifique o log para detalhes!

Aviso: Se você tem complementos que dependem de intIds, não deve excluí-los.

" #. Default: "Head title" #: components/manage/Blocks/Teaser/schema @@ -4580,12 +4580,12 @@ msgstr "Imagem" #. Default: "Clear image" #: components/manage/Blocks/Image/ImageSidebar msgid "image_block_clear" -msgstr "" +msgstr "Remover imagem" #. Default: "Image preview" #: components/manage/Blocks/Image/ImageSidebar msgid "image_block_preview" -msgstr "" +msgstr "Pré-visualização da imagem" #. Default: "Input must be integer" #: helpers/MessageLabels/MessageLabels @@ -4600,12 +4600,12 @@ msgstr "Intranet" #. Default: "item" #: components/manage/Contents/Contents msgid "item" -msgstr "" +msgstr "Item" #. Default: "items" #: components/manage/Contents/Contents msgid "items" -msgstr "" +msgstr "Itens" #. Default: "My email is" #: components/theme/PasswordReset/RequestPasswordReset @@ -4749,12 +4749,12 @@ msgstr "reconstruir relacionamentos" #. Default: "reference" #: components/manage/Contents/Contents msgid "reference" -msgstr "" +msgstr "referência" #. Default: "references" #: components/manage/Contents/Contents msgid "references" -msgstr "" +msgstr "referências" #. Default: "results" #: components/theme/Search/Search @@ -4974,7 +4974,7 @@ msgstr "caminho do destino" #. Default: "Text" #: config/Blocks msgid "text" -msgstr "" +msgstr "texto" #. Default: "Title" #: config/Blocks @@ -5047,7 +5047,7 @@ msgstr "Sim" #. Default: "{count, plural, one {Upload {count} file} other {Upload {count} files}}" #: components/manage/Contents/ContentsUploadModal msgid "{count, plural, one {Upload {count} file} other {Upload {count} files}}" -msgstr "{count, plural, one {Enviar {count} arquivo} other {Enviar {count} arquivos}}" +msgstr "{count, plural, one {Enviar {count} arquivo} ou {Enviar {count} arquivos}}" #. Default: "{count} selected" #: components/manage/Contents/Contents diff --git a/packages/volto/news/+update_pt_br.feature b/packages/volto/news/+update_pt_br.feature new file mode 100644 index 0000000000..35ce73755f --- /dev/null +++ b/packages/volto/news/+update_pt_br.feature @@ -0,0 +1 @@ +Update Brazilian Portuguese translations. @ericof diff --git a/packages/volto/news/2570.bugfix b/packages/volto/news/2570.bugfix new file mode 100644 index 0000000000..490f159699 --- /dev/null +++ b/packages/volto/news/2570.bugfix @@ -0,0 +1,2 @@ +Change Form input:focus text color to the `textColor` value for a11y. +Add Cypress test for contact form inputs. @ThomasKindermann @tedw87 \ No newline at end of file diff --git a/packages/volto/news/6173.feature b/packages/volto/news/6173.feature new file mode 100644 index 0000000000..1d887eae5d --- /dev/null +++ b/packages/volto/news/6173.feature @@ -0,0 +1 @@ +Added `config.settings.nonContentRoutesPublic` to avoid `isCmsUi` issues in these public routes. @giuliaghisini diff --git a/packages/volto/news/6299.bugfix b/packages/volto/news/6299.bugfix new file mode 100644 index 0000000000..0d8ad4608a --- /dev/null +++ b/packages/volto/news/6299.bugfix @@ -0,0 +1 @@ +Fixed findBlocks when no blocks are passed. @giuliaghisini diff --git a/packages/volto/news/6330.bugfix b/packages/volto/news/6330.bugfix new file mode 100644 index 0000000000..809f559863 --- /dev/null +++ b/packages/volto/news/6330.bugfix @@ -0,0 +1 @@ +Changed sidebar accordion text colour from @teal to @textColor. @JeffersonBledsoe diff --git a/packages/volto/news/6332.bugfix b/packages/volto/news/6332.bugfix new file mode 100644 index 0000000000..6b82b6cd5e --- /dev/null +++ b/packages/volto/news/6332.bugfix @@ -0,0 +1 @@ +Labels accessibility for ArrayWidget, SelectWidget, TokenWidget. @folix-01 diff --git a/packages/volto/src/components/manage/Widgets/ArrayWidget.jsx b/packages/volto/src/components/manage/Widgets/ArrayWidget.jsx index 2670cc84bc..dc361195b3 100644 --- a/packages/volto/src/components/manage/Widgets/ArrayWidget.jsx +++ b/packages/volto/src/components/manage/Widgets/ArrayWidget.jsx @@ -314,6 +314,7 @@ class ArrayWidget extends Component { // small fix for https://github.com/clauderic/react-sortable-hoc/pull/352: getHelperDimensions={({ node }) => node.getBoundingClientRect()} id={`field-${this.props.id}`} + aria-labelledby={`fieldset-${this.props.fieldSet}-field-label-${this.props.id}`} key={this.props.id} isDisabled={this.props.disabled || this.props.isDisabled} className="react-select-container" diff --git a/packages/volto/src/components/manage/Widgets/SelectWidget.jsx b/packages/volto/src/components/manage/Widgets/SelectWidget.jsx index 64b0cdea69..0c9d61e12f 100644 --- a/packages/volto/src/components/manage/Widgets/SelectWidget.jsx +++ b/packages/volto/src/components/manage/Widgets/SelectWidget.jsx @@ -224,6 +224,7 @@ class SelectWidget extends Component { id={`field-${id}`} key={choices} name={id} + aria-labelledby={`fieldset-${this.props.fieldSet}-field-label-${id}`} menuShouldScrollIntoView={false} isDisabled={disabled} isSearchable={true} diff --git a/packages/volto/src/components/manage/Widgets/TokenWidget.jsx b/packages/volto/src/components/manage/Widgets/TokenWidget.jsx index b38de6897d..cad1f0bdcb 100644 --- a/packages/volto/src/components/manage/Widgets/TokenWidget.jsx +++ b/packages/volto/src/components/manage/Widgets/TokenWidget.jsx @@ -173,6 +173,7 @@ class TokenWidget extends Component { { const block = blocks[blockId]; // check blocks from data as well since some add-ons use that diff --git a/packages/volto/src/helpers/Url/Url.js b/packages/volto/src/helpers/Url/Url.js index fe58098824..889d2c04a2 100644 --- a/packages/volto/src/helpers/Url/Url.js +++ b/packages/volto/src/helpers/Url/Url.js @@ -139,7 +139,10 @@ export const isCmsUi = memoize((currentPathname) => { // because the regexp test does not take that into account // https://github.com/plone/volto/issues/870 return settings.nonContentRoutes.reduce( - (acc, route) => acc || new RegExp(route).test(`/${fullPath}`), + (acc, route) => + acc || + (!settings.nonContentRoutesPublic?.includes(route) && + new RegExp(route).test(fullPath)), false, ); }); diff --git a/packages/volto/src/helpers/Url/Url.test.js b/packages/volto/src/helpers/Url/Url.test.js index b85ef9fc3a..d5ca89fb3f 100644 --- a/packages/volto/src/helpers/Url/Url.test.js +++ b/packages/volto/src/helpers/Url/Url.test.js @@ -151,15 +151,29 @@ describe('Url', () => { describe('isCmsUi', () => { [...settings.nonContentRoutes, '/controlpanel/mypanel'].forEach((route) => { if (typeof route === 'string') { - it(`matches non-content-route ${route}`, () => { - expect(isCmsUi(`/mycontent/${route}`)).toBe(true); - }); + if (settings.nonContentRoutesPublic.includes(route)) { + it(`matches non-content-route-public ${route}`, () => { + expect(isCmsUi(route)).toBe(false); + }); + } else { + it(`matches non-content-route ${route}`, () => { + expect(isCmsUi(`/mycontent/${route}`)).toBe(true); + }); + } } }); it('returns false on non-cms-ui views', () => { expect(isCmsUi('/mycontent')).toBe(false); }); + + it('returns true on non content routes', () => { + expect(isCmsUi('/mycontent/historyview')).toBe(true); + }); + + it('returns false on public non content routes', () => { + expect(isCmsUi('/mycontent/login')).toBe(false); + }); }); describe('flattenHTMLToAppURL', () => { diff --git a/packages/volto/test-setup-config.jsx b/packages/volto/test-setup-config.jsx index 59cb64257f..890205193a 100644 --- a/packages/volto/test-setup-config.jsx +++ b/packages/volto/test-setup-config.jsx @@ -10,6 +10,7 @@ import React from 'react'; import config from '@plone/volto/registry'; import { loadables } from '@plone/volto/config/Loadables'; import { nonContentRoutes } from '@plone/volto/config/NonContentRoutes'; +import { nonContentRoutesPublic } from '@plone/volto/config/NonContentRoutesPublic'; import { contentIcons } from '@plone/volto/config/ContentIcons'; import { styleClassNameConverters, @@ -35,6 +36,7 @@ config.set('settings', { showTags: true, isMultilingual: false, nonContentRoutes, + nonContentRoutesPublic, contentIcons: contentIcons, loadables, lazyBundles: { diff --git a/packages/volto/theme/themes/pastanaga/collections/form.overrides b/packages/volto/theme/themes/pastanaga/collections/form.overrides index 3d5ae5e965..680367e099 100644 --- a/packages/volto/theme/themes/pastanaga/collections/form.overrides +++ b/packages/volto/theme/themes/pastanaga/collections/form.overrides @@ -50,6 +50,7 @@ &:focus { border-radius: 0; + color: @textColor; } } diff --git a/packages/volto/theme/themes/pastanaga/modules/accordion.variables b/packages/volto/theme/themes/pastanaga/modules/accordion.variables index d3c1835b1a..ffa6fb712b 100644 --- a/packages/volto/theme/themes/pastanaga/modules/accordion.variables +++ b/packages/volto/theme/themes/pastanaga/modules/accordion.variables @@ -34,14 +34,14 @@ /* Styled Title */ @styledTitleFontWeight: @normal; -@styledTitleColor: @teal; +@styledTitleColor: @textColor; @styledTitleBorder: none; /* Styled Title States */ @styledTitleHoverBackground: @darkWhite; -@styledTitleHoverColor: @teal; +@styledTitleHoverColor: @textColor; @styledActiveTitleBackground: @darkWhite; -@styledActiveTitleColor: @teal; +@styledActiveTitleColor: @textColor; /* Styled Child Title States */