Skip to content

Commit 45f5e2f

Browse files
authored
[Added] Brazilian Portuguese Translation (axios#27)
* ✨ starting translation to brazilian portuguese * Brazilian translation finished * Update notes.md
1 parent 74e31d1 commit 45f5e2f

16 files changed

+4249
-243
lines changed

inert.config.js

Lines changed: 41 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@ const {
1717
const enConfig = require('./en.lang.js');
1818
const deConfig = require('./de.lang.js');
1919
const zhConfig = require('./zh.lang.js');
20+
const ptBRConfig = require('./ptBR.lang.js');
2021

2122
/**
2223
* This is the inert configuration file. It contains all the information inert needs to build this template.
@@ -37,6 +38,10 @@ module.exports = {
3738
name: 'English',
3839
prefix: '/'
3940
},
41+
{
42+
name: 'Brazilian Portuguese',
43+
prefix: '/ptBR/'
44+
},
4045
{
4146
name: 'Deutsch',
4247
prefix: '/de/'
@@ -99,12 +104,14 @@ module.exports = {
99104
* Output for internationalized files
100105
*/
101106
deOutput: ":output:/de",
107+
ptBROutput: ":output:/ptBR",
102108
zhOutput: ":output:/zh",
103109
/**
104110
* Output for posts
105111
*/
106112
postOutput: ":output:/docs",
107113
dePosts: ":deOutput:/docs",
114+
ptBRPosts: ":ptBROutput:/docs",
108115
zhPosts: ":zhOutput:/docs"
109116
},
110117

@@ -125,11 +132,16 @@ module.exports = {
125132
* Build for other languages
126133
*/
127134
halt('templates/index.ejs'), // This makes sure that the output from the previous methods isn't passed into singleHTMLBuild
135+
128136
singleHTMLBuild(deConfig),
129137
writeFile(":deOutput:/index.html"),
130138
halt('templates/index.ejs'),
139+
131140
singleHTMLBuild(zhConfig),
132-
writeFile(":zhOutput:/index.html")
141+
writeFile(":zhOutput:/index.html"),
142+
143+
singleHTMLBuild(ptBRConfig),
144+
writeFile(":ptBROutput:/index.html"),
133145
],
134146

135147
/**
@@ -256,6 +268,34 @@ module.exports = {
256268
],
257269
},
258270
},
271+
{
272+
folder: "posts/ptBR",
273+
build: {
274+
traverseLevel: "recursive",
275+
filePipeline: [
276+
/**
277+
* Compiles the content of markdown files into HTML. Does not save the result. If the argument
278+
* `true` is passed, it will throw an error when it encounters a non-markdown file. Will always
279+
* throw on markdown error.
280+
*/
281+
markdown(),
282+
/**
283+
* This function takes an ejs file as an argument and builds it with the global `data` set to
284+
* the value of the previous method's result. If this is the first method, the raw content
285+
* of the given file is used. Will always throw on EJS error.
286+
*
287+
* As most blogs are monolingual, we will not be including any fancy i18n stuff here, although
288+
* you can if you want to.
289+
*/
290+
htmlBuild("post", ptBRConfig),
291+
/**
292+
* Like in the `sass` folder's pipeline, the `write` method takes the output of the previous `htmlBuild`
293+
* method and writes it to a file with the same name in the specified directory.
294+
*/
295+
write("ptBRPosts", ".html"),
296+
],
297+
},
298+
},
259299
{
260300
folder: "posts/zh",
261301
build: {

posts/ptBR/api_intro.md

Lines changed: 60 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,60 @@
1+
---
2+
title: "Axios API"
3+
description: "A referência de API do Axios"
4+
prev_title: "Requisições POST"
5+
prev_link: "/docs/ptBR/post_example"
6+
next_title: "Instância Axios"
7+
next_link: "/docs/ptBR/instance"
8+
---
9+
10+
Requisições podem ser feitas passando as configuraçãos relevantes para o `axios`.
11+
12+
##### axios(config)
13+
14+
```js
15+
import axios from 'axios';
16+
17+
// Envia uma requisição post
18+
axios({
19+
method: "post",
20+
url: "/user/12345",
21+
data: {
22+
firstName: "Fred",
23+
lastName: "Flintstone",
24+
},
25+
});
26+
```
27+
28+
```js
29+
// Requisição GET para imagem remota em node.js
30+
axios({
31+
method: "get",
32+
url: "http://bit.ly/2mTM3nY",
33+
responseType: "stream",
34+
}).then(function (response) {
35+
response.data.pipe(fs.createWriteStream("ada_lovelace.jpg"));
36+
});
37+
```
38+
39+
##### axios(url[, config])
40+
41+
```js
42+
// Envia uma requisição GET (método padrão)
43+
axios("/user/12345");
44+
```
45+
46+
### Apelidos para requisições
47+
48+
Por conveniência, foram fornecidos pseudônimos para todos os métodos de solicitação suportados.
49+
50+
##### axios.request(config)
51+
##### axios.get(url[, config])
52+
##### axios.delete(url[, config])
53+
##### axios.head(url[, config])
54+
##### axios.options(url[, config])
55+
##### axios.post(url[, data[, config]])
56+
##### axios.put(url[, data[, config]])
57+
##### axios.patch(url[, data[, config]])
58+
59+
###### INFO
60+
Ao usar os pseudônimo dos métodos, as propriedades `url`,` method` e `data` não precisam ser especificadas na configuração.

posts/ptBR/cancellation.md

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
---
2+
title: 'Cancelamento'
3+
prev_title: 'Manipulando erros'
4+
prev_link: '/docs/ptBR/handling_errors'
5+
next_title: 'Corpo de codificação de URL'
6+
next_link: '/docs/ptBR/urlencoded'
7+
---
8+
9+
Você pode cancelar uma requisição usando um *cancel token*.
10+
11+
> O token de cancelamento do axios é baseado em retirada [proposta de promessas canceláveis](https://github.com/tc39/proposal-cancelable-promises).
12+
13+
Você pode criar um token de cancelamento usando o `CancelToken.souce` conforme mostrado abaixo:
14+
15+
```js
16+
const CancelToken = axios.CancelToken;
17+
const source = CancelToken.source();
18+
19+
axios.get('/user/12345', {
20+
cancelToken: source.token
21+
}).catch(function (thrown) {
22+
if (axios.isCancel(thrown)) {
23+
console.log('Request canceled', thrown.message);
24+
} else {
25+
// manipulando erro
26+
}
27+
});
28+
29+
axios.post('/user/12345', {
30+
name: 'new name'
31+
}, {
32+
cancelToken: source.token
33+
})
34+
35+
// cancela a requisição (o parâmetro de mensagem é opcional)
36+
source.cancel('Operação cancelada pelo usuário');
37+
```
38+
39+
Você também poder criar um token de cancelamento passando uma função executora para o construtor de `CancelToken`
40+
41+
```js
42+
const CancelToken = axios.CancelToken;
43+
let cancel;
44+
45+
axios.get('/user/12345', {
46+
cancelToken: new CancelToken(function executor(c) {
47+
// Uma função executora recebe uma função de cancelamento como parametro
48+
cancel = c;
49+
})
50+
});
51+
52+
// cancela a requisição
53+
cancel();
54+
```
55+
56+
> Nota: você pode cancelar multiplas requisições com o mesmo token de cancelamento.

posts/ptBR/config_defaults.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
---
2+
title: 'Configurações padrões'
3+
prev_title: 'Esquema de respostas'
4+
prev_link: '/docs/ptBR/res_schema'
5+
next_title: 'Interceptadores'
6+
next_link: '/docs/ptBR/interceptors'
7+
---
8+
9+
## Configurações padrões
10+
11+
Você pode especificar configurações padrões que será aplicar em todas as requisições.
12+
13+
### Configurações globais do axios
14+
15+
```js
16+
axios.defaults.baseURL = 'https://api.example.com';
17+
axios.defaults.headers.common['Authorization'] = AUTH_TOKEN;
18+
axios.defaults.headers.post['Content-Type'] = 'application/x-www-form-urlencoded';
19+
```
20+
21+
### Padrões de instância personalizados
22+
23+
```js
24+
// Define as configurações padrões quando cria a instância
25+
const instance = axios.create({
26+
baseURL: 'https://api.example.com'
27+
});
28+
29+
// Altera as configurações padrões após a instância ser criada
30+
instance.defaults.headers.common['Authorization'] = AUTH_TOKEN;
31+
```
32+
33+
### Ordem de precedência
34+
35+
As configurações serão mescladas pela ordem de precedente. A ordem é o padrão da biblioteca encontrados em [lib/defaults.js](https://github.com/axios/axios/blob/master/lib/defaults.js#L28), depos as propriedades `defaults` da instância, e finalmente `config` argumentos para a requisição. O último terá precedência sobre o primeiro. Aqui está um exemplo.
36+
37+
```js
38+
// Cria uma instancia usando os padrões de configurações fornecidas pela biblioteca
39+
// Neste ponto o valor do timeout é de `0` pois é o padrão da biblioteca
40+
const instance = axios.create();
41+
42+
// Sobrescreve o valor do tempo de espera da biblioteca
43+
// Agora todas as requisições que usarem está instancia terá que esperar 2.5 secundos antes do tempo se esgotar
44+
instance.defaults.timeout = 2500;
45+
46+
// Sobrescreve o tempo de espera para apenas está requisição por levar um tempo maior
47+
instance.get('/longRequest', {
48+
timeout: 5000
49+
});
50+
```

posts/ptBR/example.md

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
---
2+
title: 'Exemplos minimalistas'
3+
description: 'Um pequeno exemplo de como usar o axios'
4+
prev_title: 'Introdução'
5+
prev_link: '/docs/ptBR/intro'
6+
next_title: 'Requisições POST'
7+
next_link: '/docs/ptBR/post_example'
8+
---
9+
10+
## nota: Uso de CommonJS
11+
Em ordem de usar o TypeScript (para intellissen e/ou preenchimento automático) enquanto usando CommonJS, importe com o `require()` utilize a seguinte abordagem:
12+
13+
```js
14+
const axios = require('axios').default;
15+
16+
// axios.<método> agora o axios fornecerá preenchimento automático e tipagens de parâmetros
17+
```
18+
19+
# Exemplo
20+
21+
Executando uma requisição `GET`
22+
23+
```js
24+
const axios = require('axios');
25+
26+
// Faz uma requisição a um usuarío com um ID expecifico
27+
axios.get('/user?ID=12345')
28+
.then(function (response) {
29+
// manipula o sucesso da requisição
30+
console.log(response);
31+
})
32+
.catch(function (error) {
33+
// manipula erros da requisição
34+
console.error(error);
35+
})
36+
.then(function () {
37+
// sempre será executado
38+
});
39+
40+
// Opcionalmente a requisição acima poderia ser feita assim da seguinte forma
41+
axios.get('/user', {
42+
params: {
43+
ID: 12345
44+
}
45+
})
46+
.then(function (response) {
47+
console.log(response);
48+
})
49+
.catch(function (error) {
50+
console.error(error);
51+
})
52+
.then(function () {
53+
// sempre será executado
54+
});
55+
56+
// Quer usar async/await? Adicione o prefixo `async` na sua função/método
57+
async function getUser() {
58+
try {
59+
const response = await axios.get('/user?ID=12345');
60+
console.log(response);
61+
} catch (error) {
62+
console.error(error);
63+
}
64+
}
65+
```
66+
> **NOTA:** `async/await` faz parte do ECMAScript 2017 e não é suportado no Internet
67+
> Explorer e versões antigas de browsers, use com cuidado.

posts/ptBR/handling_errors.md

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
---
2+
title: 'Manipulando Erros'
3+
prev_title: 'Interceptadores'
4+
prev_link: '/docs/ptBR/interceptors'
5+
next_title: 'Cancelamento'
6+
next_link: '/docs/ptBR/cancellation'
7+
---
8+
9+
```js
10+
axios.get('/user/12345')
11+
.catch(function (error) {
12+
if (error.response) {
13+
// A requisição foi feita e o servidor respondeu com um código de status
14+
// que sai do alcance de 2xx
15+
console.error(error.response.data);
16+
console.error(error.response.status);
17+
console.error(error.response.headers);
18+
} else if (error.request) {
19+
// A requisição foi feita mas nenhuma resposta foi recebida
20+
// `error.request` é uma instância do XMLHttpRequest no navegador e uma instância de
21+
// http.ClientRequest no node.js
22+
console.error(error.request);
23+
} else {
24+
// Alguma coisa acontenceu ao configurar a requisição que acionou este erro.
25+
console.error('Error', error.message);
26+
}
27+
console.error(error.config);
28+
});
29+
```
30+
31+
Usando a configuração opcional `validadeStatus`, você pode definir o(s) código(s) HTTP que devem lançar um erro
32+
33+
```js
34+
axios.get('/user/12345', {
35+
validateStatus: function (status) {
36+
return status < 500; // Resolve somente se o código de status for menor que 500
37+
}
38+
})
39+
```
40+
41+
Usando o `toJSON` você pode receber um objeto com mais informações sobre o erro HTTP.
42+
43+
```js
44+
axios.get('/user/12345')
45+
.catch(function (error) {
46+
console.error(error.toJSON());
47+
});
48+
```

0 commit comments

Comments
 (0)