Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

pt-br: Make sure localized links are used rather than /en-US/* #14262

Merged
merged 3 commits into from
Jul 19, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -342,7 +342,7 @@ async function makeResult(items) {

Como resultado, seu código pode ser retardado por um número significativo de promises aguardadas acontecendo uma após a outra. Cada `await` vai esperar que o anterior termine, ao passo que, na verdade, o que você pode querer é que as promises comecem a ser processadas simultaneamente, como fariam se não estivéssemos usando async/await.

Vejamos esses dois exemplos — [slow-async-await.html](https://mdn.github.io/learning-area/javascript/asynchronous/async-await/slow-async-await.html) (veja [código-fonte](https://github.com/mdn/learning-area/blob/master/javascript/asynchronous/async-await/slow-async-await.html)) e [fast-async-await.html](https://mdn.github.io/learning-area/javascript/asynchronous/async-await/fast-async-await.html) (veja [código-fonte](https://github.com/mdn/learning-area/blob/master/javascript/asynchronous/async-await/fast-async-await.html)). Ambos começam com uma função promise personalizada que simula um processo assíncrono com uma chamada [`setTimeout()`](/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout):
Vejamos esses dois exemplos — [slow-async-await.html](https://mdn.github.io/learning-area/javascript/asynchronous/async-await/slow-async-await.html) (veja [código-fonte](https://github.com/mdn/learning-area/blob/master/javascript/asynchronous/async-await/slow-async-await.html)) e [fast-async-await.html](https://mdn.github.io/learning-area/javascript/asynchronous/async-await/fast-async-await.html) (veja [código-fonte](https://github.com/mdn/learning-area/blob/master/javascript/asynchronous/async-await/fast-async-await.html)). Ambos começam com uma função promise personalizada que simula um processo assíncrono com uma chamada [`setTimeout()`](/pt-BR/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout):

```js
function timeoutPromise(interval) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,11 +29,11 @@ Por um longo tempo, a plataforma web tem oferecido à programadores JavaScript u

Essas funções são:

- [`setTimeout()`](/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout)
- [`setTimeout()`](/pt-BR/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout)
- : Executa um bloco específico uma vez depois de um determinado tempo
- [`setInterval()`](/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval)
- [`setInterval()`](/pt-BR/docs/Web/API/WindowOrWorkerGlobalScope/setInterval)
- : Executa um bloco específico repetidamente com um intervalo fixo entre cada chamada.
- [`requestAnimationFrame()`](/en-US/docs/Web/API/window/requestAnimationFrame)
- [`requestAnimationFrame()`](/pt-BR/docs/Web/API/window/requestAnimationFrame)
- : Uma versão moderna de `setInterval()`. Ela executa um bloc de código específico antes do navegador renderizar a tela novamento, permitindo que seja executada em uma taxa de quadros adequada, independentemente do ambiente em que está sendo executado.

O código executado por estas funções é executado na main thread (depois do dado intervalo).
Expand All @@ -44,7 +44,7 @@ De qualquer forma, essas funções são usadas para executar animações constan

## setTimeout()

Como foi dito anteriormente, o [`setTimeout()`](/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout) executa um bloco de código particular depois que um determinado período de tempo passou. Ele toma os seguintes parâmetros:
Como foi dito anteriormente, o [`setTimeout()`](/pt-BR/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout) executa um bloco de código particular depois que um determinado período de tempo passou. Ele toma os seguintes parâmetros:

- Uma função a ser executada, ou uma referência de uma função definida em outro lugar.
- Um número representando o intervalo de tempo em milissegundos (1000 milissegundos equivalem a 1 segundo) para esperar antes de executar o código. Se você especificar um valor de 0 (ou simplesmente omitir o valor), a função será executada assim que possível (mas não imediatamente).
Expand Down Expand Up @@ -102,7 +102,7 @@ let myGreeting = setTimeout(sayHi, 2000, 'Mr. Universe');

### Cancelando timeouts

Finalmente, se um timeout foi criado, você pode cancelá-lo antes que o tempo especificado tenha passado chamando [`clearTimeout()`](/en-US/docs/Web/API/WindowOrWorkerGlobalScope/clearTimeout), passando para o identificador a chamada `setTimeout()` como um parâmetreo. então para cancelar o timeout acima, você fará isso:
Finalmente, se um timeout foi criado, você pode cancelá-lo antes que o tempo especificado tenha passado chamando [`clearTimeout()`](/pt-BR/docs/Web/API/WindowOrWorkerGlobalScope/clearTimeout), passando para o identificador a chamada `setTimeout()` como um parâmetreo. então para cancelar o timeout acima, você fará isso:

```js
clearTimeout(myGreeting);
Expand All @@ -114,9 +114,9 @@ clearTimeout(myGreeting);

`setTimeout()` funciona perfeitamento quando você precisa executar algum código depois de um período de tempo. Mas o que acontece quando voc\~e precisa executar o código de novo e de novo — por exemplo, no caso de uma animação?

É aí que o [`setInterval()`](/en-US/docs/Web/API/WindowOrWorkerGlobalScope/setInterval) entra. Ele funciona de uma maneira muito similar à `setTimeout()`, exceto que a função que você passar como primeiro parâmetro é executada repetidamente em não menos que um número determinado de milissegundos dado no segundo parâmetro, ao invés de apenas uma vez. Você também pode passar qualquer parâmetro sendo executado como um parâmetro subsequente da chamada de `setInterval()`.
É aí que o [`setInterval()`](/pt-BR/docs/Web/API/WindowOrWorkerGlobalScope/setInterval) entra. Ele funciona de uma maneira muito similar à `setTimeout()`, exceto que a função que você passar como primeiro parâmetro é executada repetidamente em não menos que um número determinado de milissegundos dado no segundo parâmetro, ao invés de apenas uma vez. Você também pode passar qualquer parâmetro sendo executado como um parâmetro subsequente da chamada de `setInterval()`.

Vamos dar uma olhada em um exemplo. A função a seguir cria um novo objeto [`Date()`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date), tira uma string de tempo usando [`toLocaleTimeString()`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString), e depois a mostra naUI. Em seguida, ela executa a função uma vez por segundo usando `setInterval()`, criando o efeito de um relógio digital que é atualizado uma vez por segundo ([veja aqui](https://mdn.github.io/learning-area/javascript/asynchronous/loops-and-intervals/setinterval-clock.html), e também [veja o código](https://github.com/mdn/learning-area/blob/master/javascript/asynchronous/loops-and-intervals/setinterval-clock.html)):
Vamos dar uma olhada em um exemplo. A função a seguir cria um novo objeto [`Date()`](/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Date), tira uma string de tempo usando [`toLocaleTimeString()`](/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString), e depois a mostra naUI. Em seguida, ela executa a função uma vez por segundo usando `setInterval()`, criando o efeito de um relógio digital que é atualizado uma vez por segundo ([veja aqui](https://mdn.github.io/learning-area/javascript/asynchronous/loops-and-intervals/setinterval-clock.html), e também [veja o código](https://github.com/mdn/learning-area/blob/master/javascript/asynchronous/loops-and-intervals/setinterval-clock.html)):

```js
function displayTime() {
Expand All @@ -132,7 +132,7 @@ Assim como o `setTimeout()`, o `setInterval()` também retorna um valor identifi

### Cancelando intervalos

`setInterval()` continua sua execução para sempre, a menos que você faça algo sobre isso. Você provavelmente quer um jeito de parar tais tarefas, do contrário você pode acabar com error quando o navegador não puder completar outras versões futuras da tarefa, ou se a animação acabar. Você pode fazer isso do mesmo jeito que você para timeouts — passando o identificador retornado por `setInterval()` para a função [`clearInterval()`](/en-US/docs/Web/API/WindowOrWorkerGlobalScope/clearInterval):
`setInterval()` continua sua execução para sempre, a menos que você faça algo sobre isso. Você provavelmente quer um jeito de parar tais tarefas, do contrário você pode acabar com error quando o navegador não puder completar outras versões futuras da tarefa, ou se a animação acabar. Você pode fazer isso do mesmo jeito que você para timeouts — passando o identificador retornado por `setInterval()` para a função [`clearInterval()`](/pt-BR/docs/Web/API/WindowOrWorkerGlobalScope/clearInterval):

```js
const myInterval = setInterval(myFunction, 2000);
Expand Down Expand Up @@ -234,7 +234,7 @@ Mas mesmo assim, você deve usar o `clearTimeout()` para entradas `setTimeout()`

## requestAnimationFrame()

[`requestAnimationFrame()`](/en-US/docs/Web/API/window/requestAnimationFrame) é uma função de loop especializada criada para executar animações com eficiência no navegador. Ela é basicamente a versão moderna de `setInterval()` — ela executa um bloco de código específico antes que o navegador renove o display, permitindo que uma animação seja executada em um framerate adequado independente do ambiente em que está sendo executada.
[`requestAnimationFrame()`](/pt-BR/docs/Web/API/window/requestAnimationFrame) é uma função de loop especializada criada para executar animações com eficiência no navegador. Ela é basicamente a versão moderna de `setInterval()` — ela executa um bloco de código específico antes que o navegador renove o display, permitindo que uma animação seja executada em um framerate adequado independente do ambiente em que está sendo executada.

Ela foi criada em resposta à problemas ocorridos com `setInterval()`, que por exemplo não roda em uma taxa de quadros otimizada para o dispositivo, e às vezes diminui os frames, continua a rodar mesmo se a guia não esiver ativa ou se a animação for rolada para fora da página, etc.

Expand Down Expand Up @@ -592,7 +592,7 @@ Let's work through this:

1. First, cancel the spinner animation with {{domxref("window.cancelAnimationFrame", "cancelAnimationFrame()")}} (it is always good to clean up unneeded processes), and hide the spinner container.
2. Next, display the results paragraph and set its text content to "PLAYERS GO!!" to signal to the players that they can now press their button to win.
3. Attach a [`keydown`](/en-US/docs/Web/API/Document/keydown_event) event listener to the document. When any button is pressed down, the `keyHandler()` function is run.
3. Attach a [`keydown`](/pt-BR/docs/Web/API/Document/keydown_event) event listener to the document. When any button is pressed down, the `keyHandler()` function is run.
4. Inside `keyHandler()`, the code includes the event object as a parameter (represented by `e`) — its {{domxref("KeyboardEvent.key", "key")}} property contains the key that was just pressed, and you can use this to respond to specific key presses with specific actions.
5. Log `e.key` to the console, which is a useful way of finding out the `key` value of different keys you are pressing.
6. When `e.key` is "a", display a message to say that Player 1 won, and when `e.key` is "l", display a message to say Player 2 won. (**Note:** This will only work with lowercase a and l — if an uppercase A or L is submitted (the key plus 
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,12 @@ Com o básico fora do caminho, agora vamos nos concentrar no JavaScript orientad
<td>
Alfabetização básica em informática, um entendimento básico de HTML e
CSS, familiaridade com o básico do JavaScript (consulte
<a href="/en-US/docs/Learn/JavaScript/First_steps">Primeiros passos</a>
<a href="/pt-BR/docs/Learn/JavaScript/First_steps">Primeiros passos</a>
e
<a href="/en-US/docs/Learn/JavaScript/Building_blocks"
<a href="/pt-BR/docs/Learn/JavaScript/Building_blocks"
>Blocos de construção</a
>) e noções básicas do OOJS (consulte
<a href="/en-US/docs/Learn/JavaScript/Object-oriented/Introduction"
<a href="/pt-BR/docs/Learn/JavaScript/Object-oriented/Introduction"
>Introdução aos objetos</a
>).
</td>
Expand Down Expand Up @@ -235,7 +235,7 @@ Isso faz sentido, mas existem outras maneiras — queremos familiarizá-lo com e

### O construtor Object()

Primeiro de tudo, você pode usar o construtor [`Object()`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object) para criar um novo objeto. Sim, até objetos genéricos possuem um construtor, o que gera um objeto vazio.
Primeiro de tudo, você pode usar o construtor [`Object()`](/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Object) para criar um novo objeto. Sim, até objetos genéricos possuem um construtor, o que gera um objeto vazio.

1. Tente inserir isso no console JavaScript do seu navegador:

Expand Down Expand Up @@ -269,7 +269,7 @@ Primeiro de tudo, você pode usar o construtor [`Object()`](/en-US/docs/Web/Java

Os construtores podem ajudá-lo a fornecer seu pedido de código — você pode criar construtores em um único local e, em seguida, criar instâncias conforme necessário, e fica claro de onde eles vieram.

No entanto, algumas pessoas preferem criar instâncias de objeto sem primeiro criar construtores, especialmente se estiverem criando apenas algumas instâncias de um objeto. JavaScript tem um método embutido chamado [`create()`](/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/create) que permite que você faça isso. Com ele, você pode criar um novo objeto com base em qualquer objeto existente.
No entanto, algumas pessoas preferem criar instâncias de objeto sem primeiro criar construtores, especialmente se estiverem criando apenas algumas instâncias de um objeto. JavaScript tem um método embutido chamado [`create()`](/pt-BR/docs/Web/JavaScript/Reference/Global_Objects/Object/create) que permite que você faça isso. Com ele, você pode criar um novo objeto com base em qualquer objeto existente.

1. Com o exercício concluído das seções anteriores carregadas no navegador, tente isso no seu console JavaScript:

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,13 +7,13 @@ original_slug: MDN/Structures/Macros

{{MDNSidebar}}

The [Kuma](/pt-BR/docs/Project:MDN/Kuma) platform on which MDN runs provides a powerful macro system, [KumaScript](/pt-BR/docs/MDN/Contribute/Tools/KumaScript "/en-US/docs/Project:MDN/Kuma/KumaScript_guide"), which makes it possible to do a wide variety of things automatically. This article provides information on how to invoke MDN's macros within articles.
The [Kuma](/pt-BR/docs/Project:MDN/Kuma) platform on which MDN runs provides a powerful macro system, [KumaScript](/pt-BR/docs/MDN/Contribute/Tools/KumaScript "/pt-BR/docs/Project:MDN/Kuma/KumaScript_guide"), which makes it possible to do a wide variety of things automatically. This article provides information on how to invoke MDN's macros within articles.

The [KumaScript guide](/pt-BR/docs/MDN/Contribute/Tools/KumaScript "/en-US/docs/Project:MDN/Kuma/KumaScript_guide") provides an in-depth look at how to use macros on MDN, so this section is more of a brief overview.
The [KumaScript guide](/pt-BR/docs/MDN/Contribute/Tools/KumaScript "/pt-BR/docs/Project:MDN/Kuma/KumaScript_guide") provides an in-depth look at how to use macros on MDN, so this section is more of a brief overview.

## Como as macros são implementadas

Macros on MDN are implemented using server-executed [JavaScript](/pt-BR/docs/Web/JavaScript) code, interpreted using [Node.js](https://nodejs.org/en/). On top of that we have a number of libraries we've implemented that provide wiki-oriented services and features to let macros interact with the wiki platform and its contents. If you're interested in learning more, see the [KumaScript guide](/pt-BR/docs/MDN/Contribute/Tools/KumaScript "/en-US/docs/Project:MDN/Kuma/KumaScript_guide").
Macros on MDN are implemented using server-executed [JavaScript](/pt-BR/docs/Web/JavaScript) code, interpreted using [Node.js](https://nodejs.org/en/). On top of that we have a number of libraries we've implemented that provide wiki-oriented services and features to let macros interact with the wiki platform and its contents. If you're interested in learning more, see the [KumaScript guide](/pt-BR/docs/MDN/Contribute/Tools/KumaScript "/pt-BR/docs/Project:MDN/Kuma/KumaScript_guide").

## Using a macro in content

Expand All @@ -37,4 +37,4 @@ Macros are heavily cached; for any set of input values (both parameters and envi

Macros can be as simple as just inserting a larger block of text or swapping in contents from another part of MDN, or as complex as building an entire index of content by searching through parts of the site, styling the output, and adding links.

You can read up on our most commonly-used macros on the [Commonly-used macros](/pt-BR/docs/MDN/Contribute/Structures/Macros/Commonly-used_macros "/en-US/docs/Project:MDN/Contributing/Custom_macros") page; also, there's a [complete list of all macros](/pt-BR/docs/templates) here. Most macros have documentation built into them, as comments at the top.
You can read up on our most commonly-used macros on the [Commonly-used macros](/pt-BR/docs/MDN/Contribute/Structures/Macros/Commonly-used_macros "/pt-BR/docs/Project:MDN/Contributing/Custom_macros") page; also, there's a [complete list of all macros](/pt-BR/docs/templates) here. Most macros have documentation built into them, as comments at the top.
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ animationEvent.initAnimationEvent(typeArg, canBubbleArg, cancelableArg, animatio
- `animationNameArg`
- : Um {{domxref("DOMString")}} contendo o valor do{{cssxref("animation-name")}} propriedade CSS associada com a transição.
- `elapsedTimeArg`
- : Um ponto flutuante indicando a quantidade de tempo que a animação esteve rodando, em segundos, com o tempo do evento terminar, excluirá-se o tempo em que a animação esteve em pausa.Para um `"animationstart"` evento, `elapsedTime` é `0.0` a não ser que haja um valor negativo para [`animation-delay`](https://developer.mozilla.org/en-US/docs/Web/CSS/animation-delay "The animation-delay CSS property specifies when the animation should start. This lets the animation sequence begin some time after it's applied to an element."), nesse caso o evento irá terminar com `elapsedTime` contendo `(-1 * delay)`.
- : Um ponto flutuante indicando a quantidade de tempo que a animação esteve rodando, em segundos, com o tempo do evento terminar, excluirá-se o tempo em que a animação esteve em pausa.Para um `"animationstart"` evento, `elapsedTime` é `0.0` a não ser que haja um valor negativo para [`animation-delay`](https://developer.mozilla.org/pt-BR/docs/Web/CSS/animation-delay "The animation-delay CSS property specifies when the animation should start. This lets the animation sequence begin some time after it's applied to an element."), nesse caso o evento irá terminar com `elapsedTime` contendo `(-1 * delay)`.

## Especificações

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -33,7 +33,7 @@ O evento **`keyup`** é acionado quando a tecla é liberada.

Os eventos {{domxref("Document/keydown_event", "keydown")}} e `keyup` fornecem um código indicando quando a tecla é pressionada, enquanto o {{domxref("Document/keypress_event", "keypress")}} indica quando um _character_ é inserido. Por exemplo, a letra minúscula "a", sera reportado como 65 por `keydown` e `keyup`, mas é 95 por `keypress`. Uma letra maiúscula é reportado como 65 por todos os eventos.

> **Nota:** Se você está procurando por uma maneira de reagir a mudanças no valor de um input, você deve usar o [`input` event](/en-US/docs/Web/API/HTMLElement/input_event). Algumas mudanças não são detectaveis por `keyup`, por exemplo, colar um texto de um contexto no input de texto.
> **Nota:** Se você está procurando por uma maneira de reagir a mudanças no valor de um input, você deve usar o [`input` event](/pt-BR/docs/Web/API/HTMLElement/input_event). Algumas mudanças não são detectaveis por `keyup`, por exemplo, colar um texto de um contexto no input de texto.

## Exemplos

Expand Down
Loading