Skip to content

Commit 0181ce3

Browse files
committed
docs: add brazilian portuguese I18n
Config Astro for new language pt-BR. Translate homepage, getting started, resolve challenge and injection token challenge MDX files.
1 parent 3e1dc89 commit 0181ce3

File tree

5 files changed

+268
-0
lines changed

5 files changed

+268
-0
lines changed

docs/astro.config.mjs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import { defineConfig } from 'astro/config';
44
export const locales = {
55
root: { label: 'English', lang: 'en' },
66
es: { label: 'Español', lang: 'es' },
7+
'pt-br': { label: 'Português (Brasil)', lang: 'pt-BR' },
78
};
89

910
// https://astro.build/config
@@ -28,13 +29,15 @@ export default defineConfig({
2829
autogenerate: { directory: 'guides' },
2930
translations: {
3031
es: 'Guías',
32+
'pt-BR': 'Guias',
3133
},
3234
},
3335
{
3436
label: 'Challenges',
3537
autogenerate: { directory: 'challenges' },
3638
translations: {
3739
es: 'Desafíos',
40+
'pt-BR': 'Desafios'
3841
},
3942
},
4043
],
@@ -73,6 +76,10 @@ export default defineConfig({
7376
label: 'Español',
7477
lang: 'es',
7578
},
79+
'pt-br': {
80+
label: 'Português (Brasil)',
81+
lang: 'pt-BR',
82+
},
7683
},
7784
}),
7885
],
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
---
2+
title: 🟠 InjectionToken
3+
description: Desafio 39 é sobre aprender o poder da injenção de dependências
4+
author: thomas-laforge
5+
challengeNumber: 39
6+
command: angular-injection-token
7+
sidebar:
8+
order: 118
9+
badge: New
10+
---
11+
12+
## Informação
13+
14+
In this small application, we start with a `VideoComponent` containing a **1-second** timer. The development team decided to use a global constant to store the timer value: `DEFAULT_TIMER`. However, a few weeks later, the product team wants to add a new screen for phone calls called `PhoneComponent`, and we want to reuse the `TimerComponent`. However, the product team wants a timer of **2 seconds**. How can we achieve this?
15+
16+
## Statement
17+
18+
Currently, the timer is still 1 second for the `PhoneComponent`. The goal of this challenge is to change the timer value to 2 seconds for the `PhoneComponent`.
19+
20+
## Constraints
21+
22+
The use of `@Input` is forbidden. This example is basic, and using `@Input` could be a good option, but in more complex applications, the component we need to update can be deeply nested, making the use of `@Input` a really bad design.
23+
24+
## Hint
25+
26+
<details>
27+
<summary>Dica 1</summary>
28+
29+
Looking at this [blog post](https://itnext.io/stop-being-scared-of-injectiontokens-ab22f72f0fe9) can be of great help.
30+
31+
</details>
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
---
2+
title: Começando
3+
description: Um guia de como começar com Desafios Angular.
4+
sidebar:
5+
order: 1
6+
---
7+
8+
Para começar com <b>Desafios Angular</b>, siga os seguintes passos:
9+
10+
## Crie uma conta GitHub
11+
12+
Se você desejar submeter uma resposta, será necessário ter uma conta pessoal no GitHub. Além disso, ter uma conta GitHub é sempre benéfico e é de graça.
13+
14+
## Crie um fork do projeto GitHub
15+
16+
Navegue para o [reposítório do Desafios Angular](https://github.com/tomalaforge/angular-challenges) e clique o botão <span class="github-neutral-btn"> <svg aria-hidden="true" height="16" viewBox="0 0 16 16" version="1.1" width="16" data-view-component="true" class="octicon octicon-repo-forked mr-2">
17+
<path d="M5 5.372v.878c0 .414.336.75.75.75h4.5a.75.75 0 0 0 .75-.75v-.878a2.25 2.25 0 1 1 1.5 0v.878a2.25 2.25 0 0 1-2.25 2.25h-1.5v2.128a2.251 2.251 0 1 1-1.5 0V8.5h-1.5A2.25 2.25 0 0 1 3.5 6.25v-.878a2.25 2.25 0 1 1 1.5 0ZM5 3.25a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Zm6.75.75a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm-3 8.75a.75.75 0 1 0-1.5 0 .75.75 0 0 0 1.5 0Z"></path></svg>Fork</span> no cabeçalho. Isso criará uma cópia do repositório no seu GitHub pessoal.
18+
19+
## Clone o repositório para sua máquina local
20+
21+
Escolha um diretório/pasta no seu computador e clone o repositório.
22+
23+
Abra o terminal, navegue até a pasta selecionada e digite o comando:
24+
25+
```bash
26+
git clone https://github.com/[SEU_NOME_GITHUB]/angular-challenges.git
27+
```
28+
29+
:::note[Nota]
30+
Você pode achar a URL para clonar clicando no botão <span class="github-success-btn"><> Code</span> na sua <b>própria instância</b> do repositório do Desafios Angular.
31+
32+
![Header of github workpspace](../../../../assets/header-github.png)
33+
34+
:::
35+
36+
## Abra o projeto na sua IDE favorita
37+
38+
Abra o projeto na IDE de sua escolha.
39+
40+
## Instale todas dependências
41+
42+
```bash
43+
npm ci
44+
```
45+
46+
## Escolha um desafio
47+
48+
O seu projeto está pronto e executando. O que falta agora é escolher um desafio 🚀
49+
50+
Cada desafio consiste em:
51+
52+
- <b>Nome</b>: indica sobre o que o desafio é sobre.
53+
- <b>Número</b>: ordem de criação. O número não tem nenhum significado, mas ajuda na referência para a seção de <i>Pull Request</i> no GitHub.
54+
- <b>Indicador</b>: ajuda a visualizar o grau de dificuldade. É totalmente subjetivo 😅
55+
- 🟢 fácil
56+
- 🟠 médio
57+
- 🔴 difícil
Lines changed: 93 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,93 @@
1+
---
2+
title: Resolver um desafio
3+
description: Guia de como resolver um desafio
4+
sidebar:
5+
order: 2
6+
---
7+
8+
Neste guia, você aprenderá em como resolver um desafio e submeter uma resposta para o repositório principal no GitHub.
9+
10+
## Introdução
11+
12+
Este repositório é feito com [Nx](https://nx.dev/getting-started/intro). <b>Nx</b> é uma monorepositório que permite armazenar múltiplaa aplicações dentro de um mesmo espaço de trabalho. Cada desafio é uma aplicação separada. Se você abrir o diretório `apps`, achará várias pastas, sendo cada uma relacionada a um desafio específico. Cada diretório representar um aplicação `Nx` completa e independente. Para executar e começar uma aplicação, abra seu terminal e use:
13+
14+
```bash
15+
npx nx serve <NOME_APLICACAO>
16+
```
17+
18+
:::note[Nota]
19+
Se você não tem certeza quanto ao `NOME_APLICACAO`, abra o arquivo README.md com o nome do desafio. O comando `serve` está escrito nele com um link para a documentação do desafio.
20+
:::
21+
22+
:::note[Nota]
23+
Se `nx` está instalado globalmente no seu dispositivo, você pode pular o uso de `npx`.
24+
25+
Para instalar `nx` globalmente, execute:
26+
27+
```bash
28+
npm i -g nx
29+
```
30+
31+
:::
32+
33+
## Crie uma branch Git
34+
35+
Antes de começar a implementação de sua solução para um desafio, crie uma _branch_ para commitar seu trabalho.
36+
37+
```bash
38+
git checkout -b <NOME_BRANCH>
39+
```
40+
41+
## Resolva o Desafio
42+
43+
Siga as instruções para resolver o desafio.
44+
45+
## Commitar e fazer o _Push_ do seu trabalho
46+
47+
O último passo é commitar seu trabalho seguindo o [Conventional Guidelines](https://www.conventionalcommits.org/en/v1.0.0/).
48+
49+
Finalmente, faça um _push_ do trabalho ao repositório remoto com o seguinte comando:
50+
51+
```bash
52+
git push --set-upstream origin <NOME_BRANCH>
53+
```
54+
55+
:::tip[Não lembre disso]
56+
Você não precisa lembrar do comando. Você pode simplemente lembrar do `git push` e se é a primeira vez que você efetua um _push_ na _branch_, `git` fornecerá para você o comando completo.
57+
:::
58+
59+
## Submeta seu trabalho no Repositório Principal
60+
61+
Agora, todo seu trabalho está localizado dentro de sua instância local do repositório do Desafios Angular.
62+
63+
O próximo passo é ir para a [página principal do Desafios Angular](https://github.com/tomalaforge/angular-challenges) e criar um novo _Pull request_.
64+
65+
GitHub deve mostrar um cabeçalho notificação para ajudar a criação do _pull request_.
66+
67+
Se não mostrar, você pode ter feito um dos passos anteriores errado ou você pode ir para a aba <b>Pull Request</b> e clicar no botão <span class="github-success-btn">New pull request</span>.
68+
69+
Uma vez escolhidas as duas _branches_ para comparar, você deve ser redirecionado para a página:
70+
71+
![New pull request screen](../../../../assets/new-pull-request.png)
72+
73+
Na seção do título, comece com <b>Answer:</b> seguido pelo <b>número do desafio</b>. Depois, você está livre para adicionar o que você desejar.
74+
75+
:::danger[Perigo]
76+
Isso é muito importante. Isso deixará as outras pessoas saberem qual desafio você tentou resolver.
77+
:::
78+
79+
Na seção de descrição, você pode adicionar perguntas, problemas que encontrou ou qualquer coisa que queira compartilhar. Você pode deixar vazio caso não tenha nada para dizer.
80+
81+
Você pode clicar em <span class="github-success-btn">Create pull request</span>.
82+
83+
Eu lerei e comentarei <b>quando eu tiver algum tempo livre.</b>
84+
85+
<p class="important-block">Não se preocupe se sua resposta não for revisada imediatamente. Estou fazendo isso de <b>graça</b> e durante meu <b>tempo livre</b>. Se você quiser me ajudar, você pode fazê-lo <a href="https://github.com/sponsors/tomalaforge">me patrocinando no github</a>. Isso mostrará que meu trabalho é de grande ajuda para você e seu time.</p>
86+
87+
:::note[Nota]
88+
Todo mundo é bem-vindo para comentar e ver outros PRs.
89+
:::
90+
91+
:::tip[Campeão OSS]
92+
🔥 Ao terminar este tutorial, você está pronto para contribuir para qualquer outro repositório público do GitHub e submeter um PR. É tão simples quanto isso. 🔥
93+
:::
Lines changed: 80 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,80 @@
1+
---
2+
title: Bem-vindos aos Desafios Angular
3+
description: Comece resolvendo esses desafios e se torne um melhor desenvolvedor frontend Angular.
4+
template: splash
5+
noCommentSection: true
6+
hero:
7+
tagline: Comece agora e vire um expert em Angular!
8+
image:
9+
file: ../../../assets/angular-challenge.webp
10+
actions:
11+
- text: Início
12+
link: /pt-br/guides/getting-started/
13+
icon: right-arrow
14+
variant: primary
15+
- text: Ir para o desafio mais recente
16+
link: /pt-br/challenges/angular/39-injection-token/
17+
icon: rocket
18+
- text: Dar uma estrela
19+
link: https://github.com/tomalaforge/angular-challenges
20+
icon: github
21+
variant: secondary
22+
---
23+
24+
import { Card, CardGrid } from '@astrojs/starlight/components';
25+
import MyIcon from '../../../components/MyIcon.astro';
26+
27+
<CardGrid>
28+
<Card title="39 Desafios">
29+
Este repositório possui 39 desafios relacionados a <b>Angular</b>, <b>Nx</b>, <b>RxJS</b>,
30+
<b>Ngrx</b> e <b>Typescript</b>.
31+
Esses desafios são voltados para problemas reais ou funcionalidades específicas afim de
32+
melhorar suas habilidades.
33+
</Card>
34+
35+
<Card title="Torne-se um contribuidor OSS">
36+
Um dos objetivos desse repositório é <b>baixar a barreira</b> de entrada para o Software de
37+
Código Aberto (OSS). Ao realizar esses desafios, você aprenderá como começar a contruibuir em
38+
qualquer outro Projeto de Código Aberto.
39+
</Card>
40+
41+
<Card title="Aprenda junto com os outros">
42+
Aprender e praticar um novo <i>framework</i> é sempre desafiador. O conjunto de desafios
43+
possui casos de uso reais para aplicarmos o que aprendemos. Qualquer um pode comentar e
44+
oferecer assistência.
45+
<b>
46+
Aprender sozinho é legal, mas aprender juntos com outras pessoas levará você mais longe.
47+
</b>
48+
</Card>
49+
50+
<Card title="Contribua">
51+
Tem algum problema, um bug interessante ou uma ideia? Não hesite;
52+
<b>crie seus próprios desafios</b> sem perder tempo.
53+
</Card>
54+
55+
<Card title="Prepare-se para entrevistas">
56+
Completar esses desafios vai preparar você para qualquer desafio técnico que encontrar em
57+
uma entrevista a uma vaga frontend.
58+
</Card>
59+
60+
<Card title="Patrocínio">
61+
Este projeto é livre e tem o objetivo de permanecer assim o máximo possível. No entanto,
62+
tudo é feito durante meu tempo livre, incluindo a criação de desafios e revisão de <i>pull requests</i> (PRs).
63+
<b>Patrocinar pode me ajudar e contribuir para o crescimento do projeto</b>.
64+
</Card>
65+
</CardGrid>
66+
67+
---
68+
69+
<div class="article-footer">
70+
<a href="https://github.com/sponsors/tomalaforge" alt="Sponsor link">
71+
<MyIcon name="fillHeart" size="1.2rem" color="white" />
72+
Patrocine o Projeto
73+
</a>
74+
</div>
75+
76+
<div class="main-page-footer">
77+
Criado por{' '}
78+
<a href="https://github.com/tomalaforge?tab=repositories">Thomas Laforge</a> -
79+
Fornecido por 🌟 <a href="https://starlight.astro.build/">Starlight</a>
80+
</div>

0 commit comments

Comments
 (0)