From 6c9cb52d09e91e27143d6caac4546b4ed33d3edc Mon Sep 17 00:00:00 2001 From: Danilo Paes Date: Mon, 4 Dec 2023 21:28:36 +0100 Subject: [PATCH] feat: Translation to brazilian portuguese Adding the full translation for Brazilian Portuguese. This PR replaces the https://github.com/aykutkardas/regexlearn.com/pull/139 which was incomplete --- README.md | 2 +- src/localization/index.ts | 1 + src/localization/pt-br/cheatsheet.json | 70 ++++++++ src/localization/pt-br/general.json | 39 +++++ src/localization/pt-br/index.js | 17 ++ src/localization/pt-br/landing.json | 26 +++ src/localization/pt-br/learn.json | 162 ++++++++++++++++++ src/localization/pt-br/lessons.json | 7 + .../pt-br/lessons/regexForSeo.json | 48 ++++++ 9 files changed, 371 insertions(+), 1 deletion(-) create mode 100644 src/localization/pt-br/cheatsheet.json create mode 100644 src/localization/pt-br/general.json create mode 100644 src/localization/pt-br/index.js create mode 100644 src/localization/pt-br/landing.json create mode 100644 src/localization/pt-br/learn.json create mode 100644 src/localization/pt-br/lessons.json create mode 100644 src/localization/pt-br/lessons/regexForSeo.json diff --git a/README.md b/README.md index bcb17902..838d2616 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ the way: - 🇵🇱 Polish - 🇰🇷 Korean - 🇦🇪 Arabic [(Requested)](https://github.com/aykutkardas/regexlearn.com/issues/163) -- 🇧🇷 Brazilian Portuguese [(Requested)](https://github.com/aykutkardas/regexlearn.com/issues/39) +- 🇧🇷 Brazilian Portuguese - 🇬🇪 Georgian [(Requested)](https://github.com/aykutkardas/regexlearn.com/issues/274) Interested in adding your language? Please diff --git a/src/localization/index.ts b/src/localization/index.ts index c35de6ae..d11ba5c3 100644 --- a/src/localization/index.ts +++ b/src/localization/index.ts @@ -9,6 +9,7 @@ export const langNames = { uk: '🇺🇦', ko: '🇰🇷', pl: '🇵🇱', + 'pt-br': '🇧🇷', }; export const defaultLocale = 'en'; diff --git a/src/localization/pt-br/cheatsheet.json b/src/localization/pt-br/cheatsheet.json new file mode 100644 index 00000000..b26d0e25 --- /dev/null +++ b/src/localization/pt-br/cheatsheet.json @@ -0,0 +1,70 @@ +{ + "cheatsheet.section.title": "Cheat Sheet de Regex", + "cheatsheet.section.description": "Explore todos os padrões e símbolos de Regex com o Cheat Sheet", + + "cheatsheet.anchors": "Âncoras", + "cheatsheet.caret.title": "Início da string ou linha", + "cheatsheet.caret.description": "Corresponde ao início da string ou linha.", + "cheatsheet.dollar.title": "Fim da string ou linha", + "cheatsheet.dollar.description": "Corresponde ao fim da string ou linha.", + "cheatsheet.wordBoundary.title": "Limite de palavra", + "cheatsheet.wordBoundary.description": "Corresponde ao caractere de palavra ou à posição no final de uma palavra.", + "cheatsheet.notWordBoundary.title": "Sem limite de palavra", + "cheatsheet.notWordBoundary.description": "Corresponde a um caractere de palavra ou a uma posição que não está no final de uma palavra.", + + "cheatsheet.characterClasses": "Classes de caracteres", + "cheatsheet.characterSet.title": "Conjunto de caracteres", + "cheatsheet.characterSet.description": "Corresponde a qualquer caractere no conjunto.", + "cheatsheet.negatedCharacterSet.title": "Conjunto de caracteres negados", + "cheatsheet.negatedCharacterSet.description": "Corresponde a qualquer caractere que não está no conjunto.", + "cheatsheet.range.title": "Intervalo", + "cheatsheet.range.description": "Corresponde a todos os caracteres entre dois caracteres, incluindo os mesmos.", + "cheatsheet.dot.title": "Ponto", + "cheatsheet.dot.description": "Corresponde a qualquer caractere, exceto quebras de linha.", + "cheatsheet.word.title": "Palavra", + "cheatsheet.word.description": "Corresponde a qualquer caractere alfanumérico, incluindo o sublinhado.", + "cheatsheet.notWord.title": "Sem palavra", + "cheatsheet.notWord.description": "Corresponde a qualquer caractere não alfanumérico.", + "cheatsheet.digit.title": "Dígito", + "cheatsheet.digit.description": "Corresponde a qualquer caractere numérico.", + "cheatsheet.notDigit.title": "Sem dígito", + "cheatsheet.notDigit.description": "Corresponde a qualquer caractere não numérico.", + "cheatsheet.space.title": "Espaço em branco", + "cheatsheet.space.description": "Corresponde a qualquer caractere de espaço em branco.", + "cheatsheet.notSpace.title": "Sem espaço em branco", + "cheatsheet.notSpace.description": "Corresponde a qualquer caractere que não seja um espaço em branco.", + + "cheatsheet.flags": "Flags", + "cheatsheet.caseInsensitiveFlag.title": "Ignorar maiúsculas e minúsculas", + "cheatsheet.caseInsensitiveFlag.description": "Faz com que a expressão ignore maiúsculas e minúsculas.", + "cheatsheet.globalFlag.title": "Global", + "cheatsheet.globalFlag.description": "Garante que a expressão não pare na primeira correspondência.", + "cheatsheet.multilineFlag.title": "Multilinha", + "cheatsheet.multilineFlag.description": "Se não estiver habilitado, início de linha e fim são equivalentes ao início e fim da string completa. Não funciona para cada linha individualmente.", + + "cheatsheet.groupAndReferences": "Grupos e Referências", + "cheatsheet.group.title": "Grupo", + "cheatsheet.group.description": "Agrupa uma expressão.", + "cheatsheet.reference.title": "Referência", + "cheatsheet.reference.description": "Referencia uma expressão agrupada.", + "cheatsheet.nonCapturingGroup.title": "Grupo de não captura", + "cheatsheet.nonCapturingGroup.description": "Cria um grupo que não pode ser referenciado.", + + "cheatsheet.lookarounds": "Lookarounds", + "cheatsheet.positiveLookahead.title": "Lookahead positivo", + "cheatsheet.negativeLookahead.title": "Lookahead negativo", + "cheatsheet.positiveLookbehind.title": "Lookbehind positivo", + "cheatsheet.negativeLookbehind.title": "Lookbehind negativo", + + "cheatsheet.quantifiersAndAlternation": "Quantificadores e Alternância", + "cheatsheet.plus.title": "Mais", + "cheatsheet.plus.description": "A expressão corresponde a um ou mais.", + "cheatsheet.asterisk.title": "Asterisco", + "cheatsheet.asterisk.description": "A expressão corresponde a zero ou mais.", + "cheatsheet.quantifier.title": "Quantificador", + "cheatsheet.quantifier.description": "A expressão corresponde aos intervalos especificados.", + "cheatsheet.optional.title": "Opcional", + "cheatsheet.optional.description": "Torna a expressão opcional.", + "cheatsheet.alternation.title": "Alternância", + "cheatsheet.alternation.description": "Funciona como um OU. Aguarda uma das expressões correspondentes." +} diff --git a/src/localization/pt-br/general.json b/src/localization/pt-br/general.json new file mode 100644 index 00000000..82a41ee9 --- /dev/null +++ b/src/localization/pt-br/general.json @@ -0,0 +1,39 @@ +{ + "general.prev": "Anterior", + "general.next": "Próximo", + "general.result": "Resultado", + "general.regex": "Expressão Regular", + "general.text": "Texto", + "general.watch": "Relógio", + "general.start": "Iniciar", + "general.continue": "Continuar", + "general.completedStep": "Passo Concluído!", + "general.hintQuestion": "Mostrar resposta", + "general.reportStep": "Reportar um problema", + "general.startLearning": "Começar a aprender", + "general.comingSoon": "Em breve", + "general.becomeSponsor": "Torne-se um patrocinador", + "general.learn": "Aprender", + "general.playground": "Playground", + "general.cheatsheet": "Cheatsheet", + "general.ourSponsors": "Nossos patrocinadores", + "general.share": "Compartilhar", + "general.shareLinkCopied": "Link de compartilhamento copiado!", + "general.somethingWentWrong": "Algo deu errado!", + + "notFound.intro": "A página que você está procurando não existe.", + "notFound.button": "Voltar para a página inicial", + + "page.landing.title": "Regex Learn - Passo a passo, do básico ao avançado.", + "page.learn.title": "Regex Learn - Curso Interativo de Expressões Regulares", + "page.cheatsheet.title": "Regex Learn - Cheatsheet de Expressões Regulares", + "page.playground.title": "Regex Learn - Playground", + "page.404.title": "Regex Learn - Página não encontrada", + + "page.landing.description": "Aprenda Expressões Regulares de forma interativa, pratique no seu próprio ritmo, teste e compartilhe suas próprias Expressões Regulares", + "page.learn.description": "Aprenda Expressões Regulares passo a passo. Complete o tutorial interativo que tornará seu aprendizado mais fácil e rápido.", + "page.cheatsheet.description": "Às vezes você só precisa lembrar da sintaxe das Expressões Regulares. Experimente a Cheatsheet, que facilitará o entendimento e a memorização.", + "page.playground.description": "Você pode criar e testar facilmente seu padrão de Expressões Regulares online através do Playground.", + + "learn.safari.unsupportWarning": "A Expressão Regular neste passo não é suportada por alguns navegadores. Se você estiver tendo problemas para passar por este passo, clique aqui." +} diff --git a/src/localization/pt-br/index.js b/src/localization/pt-br/index.js new file mode 100644 index 00000000..a30a668d --- /dev/null +++ b/src/localization/pt-br/index.js @@ -0,0 +1,17 @@ +import cheatsheet from './cheatsheet.json'; +import general from './general.json'; +import landing from './landing.json'; +import learn from './learn.json'; +import lessons from './lessons.json'; +import regexForSeo from './lessons/regexForSeo.json'; + +const messages = { + ...cheatsheet, + ...general, + ...landing, + ...learn, + ...lessons, + ...regexForSeo, +}; + +export default messages; diff --git a/src/localization/pt-br/landing.json b/src/localization/pt-br/landing.json new file mode 100644 index 00000000..b5f79775 --- /dev/null +++ b/src/localization/pt-br/landing.json @@ -0,0 +1,26 @@ +{ + "landing.title": "Aprenda Regex passo a passo, do básico ao avançado.", + "landing.description": "Aprender Regex é mais fácil do que você pensa. Você pode usar esta ferramenta para `aprender`, `praticar`, `testar` e `compartilhar` Regex.", + "landing.imageAltText": "Ilustração de um homem relaxado com as pernas sobre a mesa.", + + "section.learn.title": "Aprender", + "section.learn.content": "`Expressões Regulares`, abreviadas como Regex ou Regexp, são uma sequência de caracteres criada dentro de um conjunto de regras sintáticas do Regex. Você pode facilmente manipular seus dados com Regex, que utiliza comandos como encontrar, combinar e editar. Regex pode ser usado em linguagens de programação como Python, SQL, JavaScript, R, Google Analytics, Google Data Studio e em todo o processo de codificação. Aprenda regex online com exemplos e tutoriais no Regexlearn agora.", + "section.learn.imageAltText": "Ilustração de uma montanha com uma bandeira no topo.", + + "section.cheatsheet.button": "Revisar agora", + "section.cheatsheet.title": "Cheatsheet", + "section.cheatsheet.content": "Com o `Cheatsheet do RegexLearn`, você pode ver todos os usos necessários de uma vez e verificá-los diretamente na página. Explore todos os padrões e símbolos do Regex com o Cheatsheet.", + "section.cheatsheet.imageAltText": "Ilustração de um homem olhando páginas através de binóculos.", + + "section.playground.title": "Playground", + "section.playground.content": "Se você deseja gerar um Regex, pode construir e testar facilmente seu padrão de Regex através do Playground. Como um testador de Regex, você pode validar e compartilhar seu Regex com outros para trabalho colaborativo.", + "section.playground.imageAltText": "Ilustração de um gato prestes a derrubar um copo cheio.", + + "section.practice.title": "Praticar", + "section.practice.content": "Se você completou a parte de aprendizado, é hora de PRATICAR! Na seção de prática, você pode praticar seu conhecimento em Regex e fazer tutoriais com base no seu nível. Em breve.", + "section.practice.imageAltText": "Ilustração de uma mulher fazendo anotações de um livro.", + + "section.opensource.title": "Código aberto", + "section.opensource.content": "Regex Learn é um projeto de código aberto que recebe contribuições da comunidade e é gratuito para usar. Trabalhar neste projeto permite aprimorar suas habilidades, estudar e colaborar. Você pode contribuir e apoiar aqui.", + "section.opensource.imageAltText": "Ilustração de uma mulher, um homem e um gato montando peças de um quebra-cabeça." +} diff --git a/src/localization/pt-br/learn.json b/src/localization/pt-br/learn.json new file mode 100644 index 00000000..54639c01 --- /dev/null +++ b/src/localization/pt-br/learn.json @@ -0,0 +1,162 @@ +{ + "examples.starter.title": "Prática", + "examples.starter.description": "Agora é hora de praticar algo para consolidar o que aprendemos.", + + "examples.finish.title": "Prática concluída!", + "examples.finish.description": " ", + + "steps.starter.title": "Introdução", + "steps.starter.description": "Regex é a abreviação de `Expressão Regular`. Ajuda a fazer correspondência, buscar ou gerenciar texto. Comece digitando `OK` no campo Regex para avançar para a primeira etapa e acessar a descrição mais detalhada.", + + "steps.whatIsRegex.title": "O que são Expressões Regulares `Regex`?", + "steps.whatIsRegex.description": "Expressões regulares são uma sequência de caracteres que expressam um padrão de busca. Frequentemente abreviado como `Regex` ou `Regexp`. São usadas especialmente para encontrar ou substituir palavras em textos. Além disso, podemos testar se um texto atende às regras que estabelecemos.\\n\\n Por exemplo, digamos que você tenha uma lista de nomes de arquivos. E você só quer encontrar os arquivos com a extensão `pdf`. Após escrever a expressão `^\\w+\\.pdf$`, ela funcionará. O significado das definições nessa expressão ficará mais claro à medida que avançarmos nas etapas.", + + "steps.basicMatchers.title": "Matchers básicos", + "steps.basicMatchers.description": "O caractere ou palavra que queremos encontrar é escrito diretamente. É semelhante a um processo de busca normal. Por exemplo, para encontrar a palavra `curioso` no texto, escreva a mesma.", + + "steps.dotCharacter.title": "Ponto `.`: Qualquer caractere", + "steps.dotCharacter.description": "O ponto `.` permite selecionar qualquer caractere, incluindo caracteres especiais e espaços.", + + "steps.characterSet.title": "Conjuntos de caracteres `[abc]`", + "steps.characterSet.description": "Se um dos caracteres em uma palavra pode ser vários caracteres, escrevemos dentro de colchetes `[]` com todos os caracteres alternativos. Por exemplo, para escrever uma expressão que pode encontrar todas as palavras no texto, escreva os caracteres `a`, `e`, `i`, `o`, `u` consecutivamente dentro dos colchetes `[]`.", + + "steps.negatedCharacterSet.title": "Conjuntos de caracteres negados `[^abc]`", + "steps.negatedCharacterSet.description": "Para encontrar todas as palavras no texto abaixo, exceto `ber` e `bor`, escreva `e` e `o` lado a lado após o caractere circunflexo `^` dentro dos colchetes `[]`.", + + "steps.range.title": "Intervalo de letras `[a-z]`", + "steps.range.description": "Para encontrar letras em um intervalo especificado, a letra inicial e a letra final são escritas dentro de colchetes `[]` com um hífen `-` entre elas. É sensível a maiúsculas e minúsculas. Escreva a expressão que selecionará todas as letras minúsculas entre `e` e `o`, incluindo elas.", + + "steps.rangeNumber.title": "Intervalo de números `[0-9]`", + "steps.rangeNumber.description": "Para encontrar números em um intervalo especificado, o número inicial e o número final são escritos dentro de colchetes `[]` com um hífen `-` entre eles. Escreva uma expressão que selecionará todos os números entre `3` e `6`, incluindo eles.", + + "examples.basicMatchers.title": "Prática: Matcher básico", + "examples.basicMatchers.description": "Escreva a expressão que selecionará as letras `of` no texto.", + + "examples.dotCharacter.title": "Prática: Qualquer caractere", + "examples.dotCharacter.description": "Escreva a expressão para selecionar letras, números, espaços e caracteres especiais individuais no texto. A expressão que você escrever deve corresponder a qualquer caractere.", + + "examples.characterSet.title": "Prática: Conjunto de caracteres", + "examples.characterSet.description": "Escreva a frase que corresponderá a cada palavra no texto. Os únicos caracteres que mudam são as iniciais das palavras.", + + "examples.negatedCharacterSet.title": "Prática: Conjunto de caracteres negados", + "examples.negatedCharacterSet.description": "Escreva a expressão que corresponderá a qualquer coisa que não seja as palavras `beor` e `beur` no texto. Faça isso usando o conjunto de caracteres negados.", + + "examples.range.title": "Prática: Intervalo de letras", + "examples.range.description": "Escreva a expressão que selecionará as letras de `g` a `k` no texto.\\nas letras `g` e `k` também devem ser incluídas no intervalo.", + + "examples.rangeNumber.title": "Prática: Intervalo de números", + "examples.rangeNumber.description": "Escreva a expressão que selecionará os números de `2` a `7` no texto.\\n`2` e `7` também devem ser incluídos no intervalo.", + + "steps.repetitions.title": "Repetições", + "steps.repetitions.description": "Alguns caracteres especiais são usados para especificar quantas vezes um caractere se repete no texto. Esses caracteres especiais são o sinal de mais `+`, o asterisco `*` e o ponto de interrogação `?`.", + + "steps.asterisk.title": "Asterisco `*`", + "steps.asterisk.description": "Colocamos um asterisco `*` no início para indicar que um caractere não corresponde em absoluto ou pode corresponder várias vezes. Por exemplo, indica que a letra `e` nunca deve ocorrer no texto, ou pode ocorrer uma ou mais vezes consecutivas.", + + "steps.plusCharacter.title": "Sinal de mais `+`", + "steps.plusCharacter.description": "Para indicar que um caractere pode ocorrer uma ou mais vezes, colocamos o sinal de mais `+` no final. Por exemplo, indica que a letra `e` pode ocorrer uma ou mais vezes no texto.", + "steps.questionMark.title": "Sinal de Interrogação `?`", + "steps.questionMark.description": "Para indicar que um caractere é opcional, colocamos um sinal de interrogação `?` no final. Por exemplo, indica que a próxima letra `u` é opcional.", + + "steps.quantifier.title": "Chaves - 1", + "steps.quantifier.description": "Para expressar um certo número de ocorrências de um caractere, escrevemos chaves `{n}` junto com a quantidade de vezes que queremos que ocorra no final. Por exemplo, indica que a próxima letra `e` pode ocorrer apenas `2` vezes.", + + "steps.quantifierMin.title": "Chaves - 2", + "steps.quantifierMin.description": "Para expressar pelo menos um certo número de ocorrências de caractere, escrevemos no final do caractere quantas vezes queremos que ocorra, com uma vírgula `,` no final, e dentro das chaves `{n, }`. Por exemplo, indica que a próxima letra `e` pode ocorrer pelo menos `3` vezes.", + + "steps.quantifierRange.title": "Chaves - 3", + "steps.quantifierRange.description": "Para expressar a ocorrência de um caractere em um certo intervalo de números, escrevemos chaves `{x,y}` com o intervalo que queremos no final. Por exemplo, indica que a próxima letra `e` pode ocorrer entre `1` e `3` vezes.", + + "examples.asterisk.title": "Prática: Asterisco `*`", + "examples.asterisk.description": "Use o asterisco `*` para escrever a expressão que selecionará cada palavra, adequado para a ausência da letra `e` no texto e a presença de mais de uma.", + + "examples.plusCharacter.title": "Prática: Sinal de Mais `+`", + "examples.plusCharacter.description": "Escreva a expressão usando o sinal de mais `+` para selecionar palavras em que a letra `e` ocorre uma ou mais vezes no texto.", + + "examples.questionMark.title": "Prática: Sinal de Interrogação `?`", + "examples.questionMark.description": "Escreva a expressão indicando que a letra `n` é opcional no texto, usando o sinal de interrogação `?`. Portanto, ambas as palavras `a` e `an` podem ser selecionadas.", + + "examples.quantifier.title": "Prática: Chaves - 1", + "examples.quantifier.description": "Escreva a expressão usando chaves `{}` para selecionar `4` dígitos numéricos de `0` a `9` no texto.", + + "examples.quantifierMin.title": "Prática: Chaves - 2", + "examples.quantifierMin.description": "Escreva a expressão usando chaves `{}` para selecionar os números entre `0` e `9` que ocorrem pelo menos `2` vezes no texto.", + + "examples.quantifierRange.title": "Prática: Chaves - 3", + "examples.quantifierRange.description": "Escreva a expressão usando chaves`{}` para selecionar os números de `0` a `9` no texto que estão pelo menos entre `1` e `4`.", + + "steps.grouping.title": "Parênteses `( )`: Agrupamento", + "steps.grouping.description": "Podemos agrupar uma expressão e usar esses grupos para fazer referência ou impor algumas regras. Para agrupar uma expressão, a envolvemos `()` em parênteses. Por enquanto, apenas agrupamos `haa` abaixo.", + + "steps.groupReference.title": "Referenciando um grupo", + "steps.groupReference.description": "As palavras `ha` e `haa` são agrupadas abaixo. O primeiro grupo é usado escrevendo `\\1` para evitar reescrevê-lo. Aqui `1` denota a ordem do agrupamento. Escreva `\\2` no final de uma expressão para se referir ao segundo grupo.", + + "steps.nonCapturingGrouping.title": "Parênteses `(?: )`: Agrupamento Não Capturado", + "steps.nonCapturingGrouping.description": "Você pode agrupar uma expressão e garantir que ela não seja capturada por referências. Por exemplo, abaixo há dois grupos. No entanto, a primeira referência do grupo é denotada por `\\1` na verdade aponta para o segundo grupo, já que o primeiro é um grupo desconhecido.", + + "steps.pipeCharacter.title": "Caractere Pipe `|`", + "steps.pipeCharacter.description": "Permite especificar que uma expressão pode estar em diferentes expressões. Portanto, todas as declarações possíveis são escritas separadas pelo caractere Pipe `|`. Isso difere do charset `[abc]`, os charsets funcionam em nível de caractere. As alternativas estão em nível de expressão. Por exemplo, a seguinte expressão selecionaria tanto `cat` quanto `rat`. Adicione outro caractere pipe `|` no final de uma expressão e escreva `dog` para que todas as palavras sejam selecionadas.", + + "steps.escapeCharacter.title": "Caractere de Escape `\\`", + "steps.escapeCharacter.description": "Existem caracteres especiais que usamos ao escrever Regex. `{ } [ ] / \\ + * . $^ | ?` Antes de podermos selecionar esses caracteres, precisamos usar um caractere de escape `\\`. Por exemplo, para selecionar os caracteres ponto `.` e asterisco `*` no texto, adicionamos o caractere de escape `\\` antes deles.", + + "steps.caret.title": "Sinal de Circunflexo `^`: Seleção por Início de Linha", + "steps.caret.description": "Estamos usando `[0-9]` para encontrar números. Para encontrar apenas números no início de uma linha, prefixamos essa expressão com o sinal de circunflexo `^`.", + + "steps.dollar.title": "Sinal de Cifrão `$`: Seleção por Fim de Linha", + "steps.dollar.description": "Use o sinal de cifrão `$` após o valor `html` para encontrar o texto `html` apenas no final da linha.", + + "steps.wordCharacter.title": "Caractere de Palavra `\\w`: Letras, Números e Sublinhado", + "steps.wordCharacter.description": "A expressão `\\w` é usada para encontrar letras, números e sublinhados. Vamos usar a expressão `\\w` para encontrar o caractere de palavra no texto.", + + "steps.withoutWordCharacter.title": "Caractere Exceto Palavra `\\W`", + "steps.withoutWordCharacter.description": "A expressão `\\W` é usada para encontrar caracteres diferentes de letras, números e sublinhados.", + + "steps.numberCharacter.title": "Caractere Numérico `\\d`", + "steps.numberCharacter.description": "`\\d` é usado para encontrar apenas caracteres numéricos.", + + "steps.withoutNumberCharacter.title": "Exceto Caracteres Numéricos `\\D`", + "steps.withoutNumberCharacter.description": "`\\D` é usado para encontrar caracteres não numéricos.", + + "steps.spaceCharacter.title": "Caractere de Espaço `\\s`", + "steps.spaceCharacter.description": "`\\s` é usado para encontrar apenas caracteres de espaço.", + + "steps.withoutSpaceCharacter.title": "Exceto Caractere de Espaço `\\S`", + "steps.withoutSpaceCharacter.description": "`\\S` é usado para encontrar caracteres que não sejam de espaço.", + + "steps.lookarounds.title": "Lookarounds", + "steps.lookarounds.description": "Se quisermos que a frase que estamos escrevendo venha antes ou depois de outra frase, precisamos de um \"lookaround\". Continue para aprender a usar \"lookaround\".", + + "steps.positiveLookahead.title": "Lookahead Positivo: `(?=)`", + "steps.positiveLookahead.description": "Por exemplo, queremos selecionar o valor da hora no texto. Portanto, para selecionar apenas os valores numéricos que têm `PM` depois deles, precisamos escrever o lookahead positivo `(?=)` após nossa expressão. Inclua `PM` após o sinal de igual `=` entre parênteses.", + + "steps.negativeLookahead.title": "Lookahead Negativo: `(?!)`", + "steps.negativeLookahead.description": "Por exemplo, queremos selecionar números diferentes do valor da hora no texto. Portanto, devemos escrever o lookahead negativo `(?!)` após nossa expressão para selecionar apenas os valores numéricos que não têm `PM` depois. Inclua `PM` após o sinal de exclamação `!` entre parênteses.", + + "steps.positiveLookbehind.title": "Lookbehind Positivo: `(?<=)`", + "steps.positiveLookbehind.description": "Por exemplo, queremos selecionar o valor do preço no texto. Portanto, para selecionar apenas os valores numéricos precedidos por `$`, precisamos escrever o lookbehind positivo `(?<=)` antes de nossa expressão. Adicione `\\$` após o sinal de igual `=` entre parênteses.", + + "steps.negativeLookbehind.title": "Lookbehind Negativo: `(?