diff --git a/.github/workflows/pr-check-lint_content.yml b/.github/workflows/pr-check-lint_content.yml index 420ece9b848453..db6aa54875f824 100644 --- a/.github/workflows/pr-check-lint_content.yml +++ b/.github/workflows/pr-check-lint_content.yml @@ -32,7 +32,7 @@ jobs: run: | # Use the GitHub API to get the list of changed files # documentation: https://docs.github.com/rest/commits/commits#compare-two-commits - DIFF_DOCUMENTS=$(gh api repos/{owner}/{repo}/compare/${{ env.BASE_SHA }}...${{ env.HEAD_SHA }} \ + DIFF_DOCUMENTS=$(gh api repos/{owner}/{repo}/compare/${BASE_SHA}...${HEAD_SHA} \ --jq '.files | .[] | select(.status|IN("added", "modified", "renamed", "copied", "changed")) | .filename') # filter out files that are not markdown DIFF_DOCUMENTS=$(echo "${DIFF_DOCUMENTS}" | egrep -i ".*\.md$" | xargs) @@ -96,7 +96,7 @@ jobs: # https://docs.github.com/en/actions/using-workflows/workflow-commands-for-github-actions#multiline-strings EOF="$(openssl rand -hex 8)" - files_to_lint="${{ env.DIFF_DOCUMENTS }}" + files_to_lint="${DIFF_DOCUMENTS}" echo "Running markdownlint --fix" MD_LINT_FAILED=false @@ -160,7 +160,7 @@ jobs: env: REVIEWDOG_GITHUB_API_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - echo "${{ env.MD_LINT_LOG }}" | \ + echo "${MD_LINT_LOG}" | \ reviewdog \ -efm="%f:%l:%c %m" \ -efm="%f:%l %m" \ @@ -172,8 +172,8 @@ jobs: if: env.FILES_MODIFIED == 'true' || env.MD_LINT_FAILED == 'true' || env.FM_LINT_FAILED == 'true' run: | echo -e "\nLogs from markdownlint:" - echo "${{ env.MD_LINT_LOG }}" + echo "${MD_LINT_LOG}" echo -e "\nLogs from front-matter linter:" - echo "${{ env.FM_LINT_LOG }}" + echo "${FM_LINT_LOG}" echo -e "\nPlease fix all the linting issues mentioned in above logs and in the review comments." exit 1 diff --git a/.github/workflows/pr-test.yml b/.github/workflows/pr-test.yml index 9d764782ab2c92..2f9710626f4117 100644 --- a/.github/workflows/pr-test.yml +++ b/.github/workflows/pr-test.yml @@ -42,7 +42,7 @@ jobs: run: | # Use the GitHub API to get the list of changed files # documentation: https://docs.github.com/rest/commits/commits#compare-two-commits - DIFF_DOCUMENTS=$(gh api repos/{owner}/{repo}/compare/${{ env.BASE_SHA }}...${{ env.HEAD_SHA }} \ + DIFF_DOCUMENTS=$(gh api repos/{owner}/{repo}/compare/${BASE_SHA}...${HEAD_SHA} \ --jq '.files | .[] | select(.status|IN("added", "modified", "renamed", "copied", "changed")) | .filename') # filter out files that are not markdown files @@ -112,23 +112,23 @@ jobs: working-directory: ${{ github.workspace }}/mdn/content run: | - mkdir -p ${{ env.BUILD_OUT_ROOT }} + mkdir -p ${BUILD_OUT_ROOT} # Don't use `yarn build` (from mdn/content) because that one hardcodes # the BUILD_OUT_ROOT and CONTENT_ROOT env vars. - node node_modules/@mdn/yari/build/cli.js ${{ env.GIT_DIFF_CONTENT }} + node node_modules/@mdn/yari/build/cli.js ${GIT_DIFF_CONTENT} echo "Disk usage size of build" - du -sh ${{ env.BUILD_OUT_ROOT }} + du -sh ${BUILD_OUT_ROOT} # Save the PR number into the build - echo ${{ github.event.number }} > ${{ env.BUILD_OUT_ROOT }}/NR + echo ${{ github.event.number }} > ${BUILD_OUT_ROOT}/NR # Download the raw diff blob and store that inside the build # directory. # The purpose of this is for the PR Review Companion to later # be able to use this raw diff file for the benefit of analyzing. - wget https://github.com/${{ github.repository }}/compare/${{ env.BASE_SHA }}...${{ env.HEAD_SHA }}.diff -O ${{ env.BUILD_OUT_ROOT }}/DIFF + wget https://github.com/${{ github.repository }}/compare/${BASE_SHA}...${HEAD_SHA}.diff -O ${BUILD_OUT_ROOT}/DIFF # Set the output variable so the next job could skip if there are no assets echo "has_assets=true" >> "$GITHUB_OUTPUT" @@ -137,9 +137,9 @@ jobs: if: ${{ env.GIT_DIFF_CONTENT }} run: | # Exclude the .map files, as they're used for debugging JS and CSS. - rsync -a --exclude "*.map" ${{ github.workspace }}/mdn/content/node_modules/@mdn/yari/client/build/ ${{ env.BUILD_OUT_ROOT }} + rsync -a --exclude "*.map" ${{ github.workspace }}/mdn/content/node_modules/@mdn/yari/client/build/ ${BUILD_OUT_ROOT} # Show the final disk usage size of the build. - du -sh ${{ env.BUILD_OUT_ROOT }} + du -sh ${BUILD_OUT_ROOT} - uses: actions/upload-artifact@v4 if: ${{ env.GIT_DIFF_CONTENT }} @@ -154,9 +154,9 @@ jobs: CONTENT_TRANSLATED_ROOT: ${{ github.workspace }}/files working-directory: ${{ github.workspace }}/mdn/content run: | - echo ${{ env.GIT_DIFF_FILES }} + echo ${GIT_DIFF_FILES} - yarn filecheck ${{ env.GIT_DIFF_FILES }} + yarn filecheck ${GIT_DIFF_FILES} review: needs: tests diff --git a/files/es/_redirects.txt b/files/es/_redirects.txt index ad5291f6fb8ce4..808aa78ab3c224 100644 --- a/files/es/_redirects.txt +++ b/files/es/_redirects.txt @@ -1721,10 +1721,10 @@ /es/docs/Web/API/WebSockets_API/Escribiendo_servidor_WebSocket /es/docs/Web/API/WebSockets_API/Writing_WebSocket_server /es/docs/Web/API/WebSockets_API/Escribiendo_servidores_con_WebSocket /es/docs/Web/API/WebSockets_API/Writing_WebSocket_servers /es/docs/Web/API/Web_Speech_API/Uso_de_la_Web_Speech_API /es/docs/Web/API/Web_Speech_API/Using_the_Web_Speech_API -/es/docs/Web/API/Window.clearTimeout /es/docs/Web/API/clearTimeout +/es/docs/Web/API/Window.clearTimeout /es/docs/Web/API/Window/clearTimeout /es/docs/Web/API/Window.navigator /es/docs/Web/API/Window/navigator /es/docs/Web/API/Window.onbeforeunload /es/docs/Web/API/Window/beforeunload_event -/es/docs/Web/API/Window.setTimeout /es/docs/Web/API/setTimeout +/es/docs/Web/API/Window.setTimeout /es/docs/Web/API/Window/setTimeout /es/docs/Web/API/Window/applicationCache /es/docs/orphaned/Web/API/Window/applicationCache /es/docs/Web/API/Window/dialogArguments /es/docs/orphaned/Web/API/Window/dialogArguments /es/docs/Web/API/WindowBase64.atob /es/docs/Web/API/Window/atob @@ -1736,18 +1736,18 @@ /es/docs/Web/API/WindowEventHandlers/onpopstate /es/docs/Web/API/Window/popstate_event /es/docs/Web/API/WindowOrWorkerGlobalScope/atob /es/docs/Web/API/Window/atob /es/docs/Web/API/WindowOrWorkerGlobalScope/caches /es/docs/Web/API/Window/caches -/es/docs/Web/API/WindowOrWorkerGlobalScope/clearInterval /es/docs/Web/API/clearInterval -/es/docs/Web/API/WindowOrWorkerGlobalScope/clearTimeout /es/docs/Web/API/clearTimeout -/es/docs/Web/API/WindowOrWorkerGlobalScope/createImageBitmap /es/docs/Web/API/createImageBitmap +/es/docs/Web/API/WindowOrWorkerGlobalScope/clearInterval /es/docs/Web/API/Window/clearInterval +/es/docs/Web/API/WindowOrWorkerGlobalScope/clearTimeout /es/docs/Web/API/Window/clearTimeout +/es/docs/Web/API/WindowOrWorkerGlobalScope/createImageBitmap /es/docs/Web/API/Window/createImageBitmap /es/docs/Web/API/WindowOrWorkerGlobalScope/fetch /es/docs/Web/API/Window/fetch /es/docs/Web/API/WindowOrWorkerGlobalScope/indexedDB /es/docs/Web/API/Window/indexedDB /es/docs/Web/API/WindowOrWorkerGlobalScope/isSecureContext /es/docs/Web/API/Window/isSecureContext -/es/docs/Web/API/WindowOrWorkerGlobalScope/setInterval /es/docs/Web/API/setInterval -/es/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout /es/docs/Web/API/setTimeout -/es/docs/Web/API/WindowTimers/clearInterval /es/docs/Web/API/clearInterval -/es/docs/Web/API/WindowTimers/clearTimeout /es/docs/Web/API/clearTimeout -/es/docs/Web/API/WindowTimers/setInterval /es/docs/Web/API/setInterval -/es/docs/Web/API/WindowTimers/setTimeout /es/docs/Web/API/setTimeout +/es/docs/Web/API/WindowOrWorkerGlobalScope/setInterval /es/docs/Web/API/Window/setInterval +/es/docs/Web/API/WindowOrWorkerGlobalScope/setTimeout /es/docs/Web/API/Window/setTimeout +/es/docs/Web/API/WindowTimers/clearInterval /es/docs/Web/API/Window/clearInterval +/es/docs/Web/API/WindowTimers/clearTimeout /es/docs/Web/API/Window/clearTimeout +/es/docs/Web/API/WindowTimers/setInterval /es/docs/Web/API/Window/setInterval +/es/docs/Web/API/WindowTimers/setTimeout /es/docs/Web/API/Window/setTimeout /es/docs/Web/API/XMLDocument/async /es/docs/Web/API/XMLDocument /es/docs/Web/API/XMLHttpRequest/FormData /es/docs/Web/API/FormData /es/docs/Web/API/XMLHttpRequest/Using_XMLHttpRequest /es/docs/Web/API/XMLHttpRequest_API/Using_XMLHttpRequest @@ -1755,6 +1755,8 @@ /es/docs/Web/API/atob /es/docs/Web/API/Window/atob /es/docs/Web/API/btoa /es/docs/Web/API/Window/btoa /es/docs/Web/API/caches /es/docs/Web/API/Window/caches +/es/docs/Web/API/clearInterval /es/docs/Web/API/Window/clearInterval +/es/docs/Web/API/clearTimeout /es/docs/Web/API/Window/clearTimeout /es/docs/Web/API/console/assert /es/docs/Web/API/console/assert_static /es/docs/Web/API/console/count /es/docs/Web/API/console/count_static /es/docs/Web/API/console/dir /es/docs/Web/API/console/dir_static @@ -1767,12 +1769,15 @@ /es/docs/Web/API/console/timeEnd /es/docs/Web/API/console/timeEnd_static /es/docs/Web/API/console/trace /es/docs/Web/API/console/trace_static /es/docs/Web/API/console/warn /es/docs/Web/API/console/warn_static +/es/docs/Web/API/createImageBitmap /es/docs/Web/API/Window/createImageBitmap /es/docs/Web/API/crypto_property /es/docs/Web/API/Window/crypto /es/docs/Web/API/event.defaultPrevented /es/docs/Web/API/Event/defaultPrevented /es/docs/Web/API/event.which /es/docs/Web/API/UIEvent/which /es/docs/Web/API/fetch /es/docs/Web/API/Window/fetch /es/docs/Web/API/indexedDB /es/docs/Web/API/Window/indexedDB /es/docs/Web/API/isSecureContext /es/docs/Web/API/Window/isSecureContext +/es/docs/Web/API/setInterval /es/docs/Web/API/Window/setInterval +/es/docs/Web/API/setTimeout /es/docs/Web/API/Window/setTimeout /es/docs/Web/Accesibilidad /es/docs/Web/Accessibility /es/docs/Web/Accesibilidad/Comunidad /es/docs/conflicting/Web/Accessibility /es/docs/Web/Accesibilidad/Understanding_WCAG /es/docs/Web/Accessibility/Understanding_WCAG @@ -2199,13 +2204,17 @@ /es/docs/Web/HTML/microformatos /es/docs/Web/HTML/microformats /es/docs/Web/HTML/Índice /es/docs/Web/HTML /es/docs/Web/HTTP/Access_control_CORS /es/docs/Web/HTTP/CORS +/es/docs/Web/HTTP/Basics_of_HTTP /es/docs/conflicting/Web/HTTP /es/docs/Web/HTTP/Basics_of_HTTP/Choosing_between_www_and_non-www_URLs /es/docs/Web/URI/Authority/Choosing_between_www_and_non-www_URLs /es/docs/Web/HTTP/Basics_of_HTTP/Data_URIs /es/docs/Web/URI/Schemes/data /es/docs/Web/HTTP/Basics_of_HTTP/Data_URLs /es/docs/Web/URI/Schemes/data /es/docs/Web/HTTP/Basics_of_HTTP/Datos_URIs /es/docs/Web/URI/Schemes/data +/es/docs/Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP /es/docs/Web/HTTP/Evolution_of_HTTP /es/docs/Web/HTTP/Basics_of_HTTP/Identificación_recursos_en_la_Web /es/docs/orphaned/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web /es/docs/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web /es/docs/orphaned/Web/HTTP/Basics_of_HTTP/Identifying_resources_on_the_Web -/es/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Lista_completa_de_tipos_MIME /es/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types +/es/docs/Web/HTTP/Basics_of_HTTP/MIME_types /es/docs/Web/HTTP/MIME_types +/es/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Common_types /es/docs/Web/HTTP/MIME_types/Common_types +/es/docs/Web/HTTP/Basics_of_HTTP/MIME_types/Lista_completa_de_tipos_MIME /es/docs/Web/HTTP/MIME_types/Common_types /es/docs/Web/HTTP/Gestion_de_la_conexion_en_HTTP_1.x /es/docs/Web/HTTP/Connection_management_in_HTTP_1.x /es/docs/Web/HTTP/Peticiones_condicionales /es/docs/Web/HTTP/Conditional_requests /es/docs/Web/HTTP/Sesión /es/docs/Web/HTTP/Session diff --git a/files/es/_wikihistory.json b/files/es/_wikihistory.json index 4c761971946439..6f362a29aaf10f 100644 --- a/files/es/_wikihistory.json +++ b/files/es/_wikihistory.json @@ -5460,6 +5460,14 @@ "modified": "2019-03-23T22:30:46.211Z", "contributors": ["khrizenriquez"] }, + "Web/API/Window/clearInterval": { + "modified": "2019-03-23T22:56:16.485Z", + "contributors": ["Guitxo"] + }, + "Web/API/Window/clearTimeout": { + "modified": "2019-06-18T10:20:27.972Z", + "contributors": ["AlePerez92", "fscholz", "basemnassar11", "VictorArias"] + }, "Web/API/Window/close": { "modified": "2020-10-15T21:37:07.614Z", "contributors": ["SphinxKnight", "dgrizzla", "Siro_Diaz"] @@ -5472,6 +5480,10 @@ "modified": "2019-03-23T22:45:47.266Z", "contributors": ["julian3xl"] }, + "Web/API/Window/createImageBitmap": { + "modified": "2020-10-15T22:14:17.553Z", + "contributors": ["Bumxu"] + }, "Web/API/Window/crypto": { "modified": "2020-02-12T20:26:38.795Z", "contributors": ["joseluisq", "AlePerez92", "victorjavierss"] @@ -5635,6 +5647,21 @@ "modified": "2019-03-23T22:57:50.655Z", "contributors": ["svera", "pedromagnus", "develasquez"] }, + "Web/API/Window/setInterval": { + "modified": "2020-08-24T18:02:23.092Z", + "contributors": ["mastertrooper", "Makinita", "Klius", "claudionebbia"] + }, + "Web/API/Window/setTimeout": { + "modified": "2019-03-23T23:17:29.378Z", + "contributors": [ + "BubuAnabelas", + "vltamara", + "nauj27", + "fscholz", + "AshfaqHossain", + "VictorArias" + ] + }, "Web/API/Window/showModalDialog": { "modified": "2019-03-18T20:58:55.311Z", "contributors": ["SphinxKnight", "BubuAnabelas", "Grijander81"] @@ -5707,14 +5734,6 @@ "inma_610" ] }, - "Web/API/clearInterval": { - "modified": "2019-03-23T22:56:16.485Z", - "contributors": ["Guitxo"] - }, - "Web/API/clearTimeout": { - "modified": "2019-06-18T10:20:27.972Z", - "contributors": ["AlePerez92", "fscholz", "basemnassar11", "VictorArias"] - }, "Web/API/console": { "modified": "2019-08-30T08:42:12.082Z", "contributors": ["ajuanjojjj", "fcanellas", "vlguerrero", "chrisdavidmills"] @@ -5767,10 +5786,6 @@ "modified": "2020-10-15T21:53:36.780Z", "contributors": ["juanluisrp", "oderflaj"] }, - "Web/API/createImageBitmap": { - "modified": "2020-10-15T22:14:17.553Z", - "contributors": ["Bumxu"] - }, "Web/API/notification/icon": { "modified": "2019-03-23T22:59:32.492Z", "contributors": ["joxhker"] @@ -5783,21 +5798,6 @@ "modified": "2019-03-23T22:50:37.341Z", "contributors": ["MarkelCuesta", "jezdez", "Davdriver"] }, - "Web/API/setInterval": { - "modified": "2020-08-24T18:02:23.092Z", - "contributors": ["mastertrooper", "Makinita", "Klius", "claudionebbia"] - }, - "Web/API/setTimeout": { - "modified": "2019-03-23T23:17:29.378Z", - "contributors": [ - "BubuAnabelas", - "vltamara", - "nauj27", - "fscholz", - "AshfaqHossain", - "VictorArias" - ] - }, "Web/Accessibility": { "modified": "2020-09-22T14:24:03.363Z", "contributors": [ @@ -9415,34 +9415,6 @@ "DavidPeniafiel" ] }, - "Web/HTTP/Basics_of_HTTP": { - "modified": "2020-04-20T02:59:31.392Z", - "contributors": [ - "obed3113", - "sanxofon", - "Sergio_Gonzalez_Collado", - "cissoid" - ] - }, - "Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP": { - "modified": "2019-03-23T22:10:11.567Z", - "contributors": ["Sergio_Gonzalez_Collado", "ChrisMHM"] - }, - "Web/HTTP/Basics_of_HTTP/MIME_types": { - "modified": "2019-11-18T08:03:54.325Z", - "contributors": [ - "IsaacAaron", - "sanxofon", - "Sergio_Gonzalez_Collado", - "kevinmont", - "juanrarodriguez18", - "strattadb" - ] - }, - "Web/HTTP/Basics_of_HTTP/MIME_types/Common_types": { - "modified": "2020-02-28T13:10:45.613Z", - "contributors": ["chrisdavidmills", "sanxofon", "franklevel", "gabrielnoe"] - }, "Web/HTTP/CORS": { "modified": "2020-08-10T16:23:20.546Z", "contributors": [ @@ -9521,6 +9493,10 @@ "omertafox" ] }, + "Web/HTTP/Evolution_of_HTTP": { + "modified": "2019-03-23T22:10:11.567Z", + "contributors": ["Sergio_Gonzalez_Collado", "ChrisMHM"] + }, "Web/HTTP/Headers": { "modified": "2019-12-10T13:29:15.931Z", "contributors": [ @@ -9719,6 +9695,21 @@ "modified": "2020-10-15T21:59:06.897Z", "contributors": ["JulioMoreyra", "francinysalles", "tonialfaro"] }, + "Web/HTTP/MIME_types": { + "modified": "2019-11-18T08:03:54.325Z", + "contributors": [ + "IsaacAaron", + "sanxofon", + "Sergio_Gonzalez_Collado", + "kevinmont", + "juanrarodriguez18", + "strattadb" + ] + }, + "Web/HTTP/MIME_types/Common_types": { + "modified": "2020-02-28T13:10:45.613Z", + "contributors": ["chrisdavidmills", "sanxofon", "franklevel", "gabrielnoe"] + }, "Web/HTTP/Messages": { "modified": "2019-11-12T11:40:26.816Z", "contributors": [ @@ -14288,6 +14279,15 @@ "Nukeador" ] }, + "conflicting/Web/HTTP": { + "modified": "2020-04-20T02:59:31.392Z", + "contributors": [ + "obed3113", + "sanxofon", + "Sergio_Gonzalez_Collado", + "cissoid" + ] + }, "conflicting/Web/HTTP/Basics_of_HTTP/MIME_types": { "modified": "2019-01-16T15:43:53.805Z", "contributors": [ diff --git a/files/es/web/http/basics_of_http/index.md b/files/es/conflicting/web/http/index.md similarity index 98% rename from files/es/web/http/basics_of_http/index.md rename to files/es/conflicting/web/http/index.md index 89eb19f963bab5..0725dbfefbb528 100644 --- a/files/es/web/http/basics_of_http/index.md +++ b/files/es/conflicting/web/http/index.md @@ -1,6 +1,7 @@ --- title: Conceptos básicos de HTTP -slug: Web/HTTP/Basics_of_HTTP +slug: conflicting/Web/HTTP +original_slug: Web/HTTP/Basics_of_HTTP --- {{HTTPSidebar}} diff --git a/files/es/learn/common_questions/tools_and_setup/what_are_browser_developer_tools/index.md b/files/es/learn/common_questions/tools_and_setup/what_are_browser_developer_tools/index.md index 636f1e1d72f122..a85ab0474f4bfe 100644 --- a/files/es/learn/common_questions/tools_and_setup/what_are_browser_developer_tools/index.md +++ b/files/es/learn/common_questions/tools_and_setup/what_are_browser_developer_tools/index.md @@ -227,7 +227,7 @@ Obtén más información sobre la consola de JavaScript en diferentes navegadore - [Consola Web de Firefox.](/es/docs/Tools/Web_Console) - [Consola de JavaScript Edge.](https://docs.microsoft.com/es-es/microsoft-edge/devtools-guide-chromium) -- [Consola JavaScript de Chrome.](https://developer.chrome.com/devtools/docs/console) (el inspector de Opera funciona de la misma manera) +- [Consola JavaScript de Chrome.](https://developer.chrome.com/docs/devtools/console/) (el inspector de Opera funciona de la misma manera) - [Consola en Safari.](https://developer.apple.com/library/safari/documentation/AppleApplications/Conceptual/Safari_Developer_Guide/Console/Console.html#//apple_ref/doc/uid/TP40007874-CH6-SW1) ## Ve también diff --git a/files/es/learn/html/introduction_to_html/test_your_skills_colon__html_text_basics/index.md b/files/es/learn/html/introduction_to_html/test_your_skills_colon__html_text_basics/index.md index 5cabfcf8c6735e..7c5a0e24cc4b5a 100644 --- a/files/es/learn/html/introduction_to_html/test_your_skills_colon__html_text_basics/index.md +++ b/files/es/learn/html/introduction_to_html/test_your_skills_colon__html_text_basics/index.md @@ -14,7 +14,13 @@ El objetivo de esta prueba de habilidad es evaluar si has comprendido el artícu ## Texto básico HTML 1 -En esta tarea queremos que etiquetes el HTML entregado utilizando elementos semánticos de encabezado y párrafo. Intenta actualizando el código más abajo para recrear el ejemplo terminado: +En esta tarea queremos que etiquetes el HTML entregado utilizando elementos semánticos de encabezado y párrafo. + +El ejemplo terminado debería de tener este aspecto: + +{{EmbedGHLiveSample("learning-area/html/introduction-to-html/tasks/basic-text/basic-text1-finished.html", '100%', 300)}} + +Intenta actualizando el código más abajo para recrear el ejemplo terminado: {{EmbedGHLiveSample("learning-area/html/introduction-to-html/tasks/basic-text/basic-text1.html", '100%', 700)}} @@ -24,6 +30,10 @@ En esta tarea queremos que etiquetes el HTML entregado utilizando elementos sem En esta tarea necesitamos que cambies la primera lista no marcada en una lista no ordenada, y la segunda en una lista ordenada. +El ejemplo terminado debería de tener este aspecto: + +{{EmbedGHLiveSample("learning-area/html/introduction-to-html/tasks/basic-text/basic-text2-finished.html", '100%', 400)}} + Intenta actualizando el código más abajo para recrear el ejemplo terminado: {{EmbedGHLiveSample("learning-area/html/introduction-to-html/tasks/basic-text/basic-text2.html", '100%', 700)}} @@ -34,6 +44,10 @@ Intenta actualizando el código más abajo para recrear el ejemplo terminado: En esta tarea se te entrega un párrafo, y tu objetivo es usar algunos elementos en línea para marcar algunas palabras con importancia, y otras con énfasis +El ejemplo terminado debería de tener este aspecto: + +{{EmbedGHLiveSample("learning-area/html/introduction-to-html/tasks/basic-text/basic-text3-finished.html", '100%', 120)}} + Intenta actualizando el código más abajo para recrear el ejemplo terminado: {{EmbedGHLiveSample("learning-area/html/introduction-to-html/tasks/basic-text/basic-text3.html", '100%', 700)}} diff --git a/files/es/mozilla/add-ons/webextensions/api/i18n/index.md b/files/es/mozilla/add-ons/webextensions/api/i18n/index.md index 4698c256bf0cbd..266920f6fad0f6 100644 --- a/files/es/mozilla/add-ons/webextensions/api/i18n/index.md +++ b/files/es/mozilla/add-ons/webextensions/api/i18n/index.md @@ -38,7 +38,7 @@ Para obtener más información sobre el uso de i18n en su extensión, consulte: > **Nota:** **Reconocimientos** > -> Esta API se basa en la API [`chrome.i18n`](https://developer.chrome.com/extensions/i18n) de Chromium. Esta documentación deriva del archivo [`i18n.json`](https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/api/i18n.json) en el código fuente de Chromium. +> Esta API se basa en la API [`chrome.i18n`](https://developer.chrome.com/docs/extensions/reference/api/i18n) de Chromium. Esta documentación deriva del archivo [`i18n.json`](https://chromium.googlesource.com/chromium/src/+/master/chrome/common/extensions/api/i18n.json) en el código fuente de Chromium. > > Los datos de compatibilidad de Microsoft Edge son suministrados por Microsoft Corporation y se incluyen aquí según los términos de la licencia Creative Commons Atribución 3.0, versión estadounidense. diff --git a/files/es/mozilla/add-ons/webextensions/api/storage/index.md b/files/es/mozilla/add-ons/webextensions/api/storage/index.md index eeac133e349e9c..aac3e9e40ce5c6 100644 --- a/files/es/mozilla/add-ons/webextensions/api/storage/index.md +++ b/files/es/mozilla/add-ons/webextensions/api/storage/index.md @@ -54,7 +54,7 @@ El almacenamiento tiene tres propiedades, que representan los diferentes tipos d > **Nota:** **Agradecimientos** > -> Esta API se basa en la API [`chrome.storage`](https://developer.chrome.com/extensions/storage) de Chromium. Esta documentación se deriva de [`storage.json`](https://chromium.googlesource.com/chromium/src/+/master/extensions/common/api/storage.json) en el código de Chromium. +> Esta API se basa en la API [`chrome.storage`](https://developer.chrome.com/docs/extensions/reference/api/storage) de Chromium. Esta documentación se deriva de [`storage.json`](https://chromium.googlesource.com/chromium/src/+/master/extensions/common/api/storage.json) en el código de Chromium. > > Los datos de compatibilidad de Microsoft Edge son proporcionados por Microsoft Corporation y se incluyen aquí bajo la Licencia de Estados Unidos Creative Commons Attribution 3.0. diff --git a/files/es/mozilla/add-ons/webextensions/api/storage/local/index.md b/files/es/mozilla/add-ons/webextensions/api/storage/local/index.md index 4f8a0e65b44a18..66bedab7ed52d6 100644 --- a/files/es/mozilla/add-ons/webextensions/api/storage/local/index.md +++ b/files/es/mozilla/add-ons/webextensions/api/storage/local/index.md @@ -41,7 +41,7 @@ El objeto local implementa los métodos definidos en el{{WebExtAPIRef("storage.S > **Nota:** **Agradecimientos** > -> Esta API se basa en la API [`chrome.storage`](https://developer.chrome.com/extensions/storage#property-local) de Chromium. Esta documentación se deriva de [`storage.json`](https://chromium.googlesource.com/chromium/src/+/master/extensions/common/api/storage.json) en el código de Chromium. +> Esta API se basa en la API [`chrome.storage`](https://developer.chrome.com/docs/extensions/reference/api/storage#property-local) de Chromium. Esta documentación se deriva de [`storage.json`](https://chromium.googlesource.com/chromium/src/+/master/extensions/common/api/storage.json) en el código de Chromium. > > Los datos de compatibilidad de Microsoft Edge son proporcionados por Microsoft Corporation y se incluyen aquí bajo la Licencia de Estados Unidos Creative Commons Attribution 3.0. diff --git a/files/es/mozilla/add-ons/webextensions/api/storage/sync/index.md b/files/es/mozilla/add-ons/webextensions/api/storage/sync/index.md index 85a395760d9fc7..31a097f5010217 100644 --- a/files/es/mozilla/add-ons/webextensions/api/storage/sync/index.md +++ b/files/es/mozilla/add-ons/webextensions/api/storage/sync/index.md @@ -36,7 +36,7 @@ El objeto de sincronización implementa los métodos definidos en el {{WebExtAPI > **Nota:** **Agradecimientos** > -> Esta API está basada en la API de Chromium's [`chrome.storage`](https://developer.chrome.com/extensions/storage#property-sync) API. Esta documentación se deriva de [`storage.json`](https://chromium.googlesource.com/chromium/src/+/master/extensions/common/api/storage.json) en el código de Chromium. +> Esta API está basada en la API de Chromium's [`chrome.storage`](https://developer.chrome.com/docs/extensions/reference/api/storage#property-sync) API. Esta documentación se deriva de [`storage.json`](https://chromium.googlesource.com/chromium/src/+/master/extensions/common/api/storage.json) en el código de Chromium. > > Los datos de compatibilidad de Microsoft Edge son proporcionados por Microsoft Corporation y se incluyen aquí bajo la Licencia de Estados Unidos Creative Commons Attribution 3.0. diff --git a/files/es/mozilla/add-ons/webextensions/chrome_incompatibilities/index.md b/files/es/mozilla/add-ons/webextensions/chrome_incompatibilities/index.md index 07e44cbcda6c54..7e5aaa27d4325b 100644 --- a/files/es/mozilla/add-ons/webextensions/chrome_incompatibilities/index.md +++ b/files/es/mozilla/add-ons/webextensions/chrome_incompatibilities/index.md @@ -213,14 +213,14 @@ Firefox doesn't yet support the `callback` argument to `executeScript()`. We don't yet support the following APIs, but plan to, soon: -- [commands](https://developer.chrome.com/extensions/commands) +- [commands](https://developer.chrome.com/docs/extensions/reference/api/commands) - [Devtools (mostly panels)](https://developer.chrome.com/extensions/devtools) -- [downloads](https://developer.chrome.com/extensions/downloads) -- [history](https://developer.chrome.com/extensions/history) -- [idle](https://developer.chrome.com/extensions/idle) -- [omnibox](https://developer.chrome.com/extensions/omnibox) -- [permissions](https://developer.chrome.com/extensions/permissions) -- [Native messaging (runtime.connectNative)](https://developer.chrome.com/extensions/runtime#method-connectNative) +- [downloads](https://developer.chrome.com/docs/extensions/reference/api/downloads) +- [history](https://developer.chrome.com/docs/extensions/reference/api/history) +- [idle](https://developer.chrome.com/docs/extensions/reference/api/idle) +- [omnibox](https://developer.chrome.com/docs/extensions/reference/api/omnibox) +- [permissions](https://developer.chrome.com/docs/extensions/reference/api/permissions) +- [Native messaging (runtime.connectNative)](https://developer.chrome.com/docs/extensions/reference/api/runtime#method-connectNative) ### CSS diff --git a/files/es/mozilla/add-ons/webextensions/index.md b/files/es/mozilla/add-ons/webextensions/index.md index 34b89d4d55f218..c61b85af201abe 100644 --- a/files/es/mozilla/add-ons/webextensions/index.md +++ b/files/es/mozilla/add-ons/webextensions/index.md @@ -5,7 +5,7 @@ slug: Mozilla/Add-ons/WebExtensions {{AddonSidebar}} -Las extensiones pueden extender y modificar la capacidad de un navegador. Las extensiones para Firefox son construidas utilizando las APIs de WebExtension, un sistema para el desarrollo de extensiones multi-navegador. En gran medida, el sistema es compatible con la [API de extensión](https://developer.chrome.com/extensions) soportada por Google Chrome, Opera y el [borrador del grupo de la comunidad del W3C](https://browserext.github.io/browserext/). +Las extensiones pueden extender y modificar la capacidad de un navegador. Las extensiones para Firefox son construidas utilizando las APIs de WebExtension, un sistema para el desarrollo de extensiones multi-navegador. En gran medida, el sistema es compatible con la [API de extensión](https://developer.chrome.com/docs/extensions) soportada por Google Chrome, Opera y el [borrador del grupo de la comunidad del W3C](https://browserext.github.io/browserext/). Las extensiones escritas para estos navegadores se ejecutarán en la mayoría de los casos en Firefox o [Microsoft Edge](https://developer.microsoft.com/en-us/microsoft-edge/platform/documentation/extensions/) con sólo [unos pocos cambios](/es/Add-ons/WebExtensions/Porting_from_Google_Chrome). La API también es totalmente compatible con [multiprocesos de Firefox](/es/Firefox/Multiprocess_Firefox). diff --git a/files/es/mozilla/add-ons/webextensions/what_are_webextensions/index.md b/files/es/mozilla/add-ons/webextensions/what_are_webextensions/index.md index 6481621a896f67..b157b8f2afe40d 100644 --- a/files/es/mozilla/add-ons/webextensions/what_are_webextensions/index.md +++ b/files/es/mozilla/add-ons/webextensions/what_are_webextensions/index.md @@ -43,7 +43,7 @@ Ejemplos: [Asteroids in Popup](https://addons.mozilla.org/en-US/firefox/addon/as **Ejemplos:** [Web Developer](https://addons.mozilla.org/en-US/firefox/addon/web-developer/), [Web React Developer Tools](https://addons.mozilla.org/en-US/firefox/addon/react-devtools/), and [aXe Developer Tools](https://addons.mozilla.org/en-US/firefox/addon/axe-devtools/) -Las extensiones para Firefox se construyen utilizando las [APIs de WebExtensions](/es/docs/Mozilla/Add-ons/WebExtensions), un sistema multi-navegador para desarrollar extensiones. En gran medida, la API es compatible con la [extension API](https://developer.chrome.com/extensions) soportada por Google Chrome y Opera. Extensiones escritas para estos navegadores en la mayoría de los casos se ejecutan en Firefox o Microsoft Edge con sólo unos pocos [cambios](/es/docs/Mozilla/Add-ons/WebExtensions/Porting_a_Google_Chrome_extension). La API es también totalmente compatible con los [multiprocesos de Firefox](/es/Firefox/Multiprocess_Firefox). +Las extensiones para Firefox se construyen utilizando las [APIs de WebExtensions](/es/docs/Mozilla/Add-ons/WebExtensions), un sistema multi-navegador para desarrollar extensiones. En gran medida, la API es compatible con la [extension API](https://developer.chrome.com/docs/extensions) soportada por Google Chrome y Opera. Extensiones escritas para estos navegadores en la mayoría de los casos se ejecutan en Firefox o Microsoft Edge con sólo unos pocos [cambios](/es/docs/Mozilla/Add-ons/WebExtensions/Porting_a_Google_Chrome_extension). La API es también totalmente compatible con los [multiprocesos de Firefox](/es/Firefox/Multiprocess_Firefox). Si tiene ideas o preguntas, o necesita ayuda para migrar un Add-on heredado a las APIs de WebExtensions, puede comunicarse con nosotros en el [Discourse de Add-ons](https://discourse.mozilla.org/c/add-ons/35) o en [#extdev](irc://irc.mozilla.org/extdev) en [IRC](https://wiki.mozilla.org/IRC). diff --git a/files/es/web/accessibility/aria/attributes/aria-label/index.md b/files/es/web/accessibility/aria/attributes/aria-label/index.md index 424f5720700e72..e1c7e9a9bd7a93 100644 --- a/files/es/web/accessibility/aria/attributes/aria-label/index.md +++ b/files/es/web/accessibility/aria/attributes/aria-label/index.md @@ -5,7 +5,7 @@ slug: Web/Accessibility/ARIA/Attributes/aria-label {{AccessibilitySidebar}} -El atributo [`aria-label`](https://www.w3.org/TR/wai-aria/#aria-label) se utiliza para definir una cadena que etiqueta el elemento actual. Úselo en los casos en que no haya una etiqueta de texto visible en pantalla. Si hay texto visible etiquetando el elemento, utilice [aria-labelledby](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-labelledby_attribute) en su lugar. +El atributo [`aria-label`](https://www.w3.org/TR/wai-aria/#aria-label) se utiliza para definir una cadena que etiqueta el elemento actual. Úselo en los casos en que no haya una etiqueta de texto visible en pantalla. Si hay texto visible etiquetando el elemento, utilice [aria-labelledby](/es/docs/Web/Accessibility/ARIA/Attributes/aria-labelledby) en su lugar. Este atributo puede ser utilizado con cualquier elemento HTML típico; no se limita a los elementos que tienen un papel ARIA asignado. @@ -39,7 +39,7 @@ Todos los elementos del DOM ### Técnicas ARIA relacionadas -- [Usando el atributo aria-labelledby](/en/Accessibility/ARIA/ARIA_Techniques/Using_the_aria-labelledby_attribute) +- [Usando el atributo aria-labelledby](/es/docs/Web/Accessibility/ARIA/Attributes/aria-labelledby) ### Compatibilidad diff --git a/files/es/web/api/console/assert_static/index.md b/files/es/web/api/console/assert_static/index.md index 956f9f92f7a4ed..2fb3afb7f71e70 100644 --- a/files/es/web/api/console/assert_static/index.md +++ b/files/es/web/api/console/assert_static/index.md @@ -46,4 +46,4 @@ Para más detalles ver [Salida de texto a la consola](/es/docs/Web/API/console#O - [Opera Dragonfly documentación: Consola](http://www.opera.com/dragonfly/documentation/console/) - [MSDN: Usando F12 Herramientas de Consola para ver Errores y Estados](http://msdn.microsoft.com/library/gg589530) -- [Herramientas de Desarrollo de Chrome: Usando la Consola](https://developer.chrome.com/devtools/docs/console#assertions) +- [Herramientas de Desarrollo de Chrome: Usando la Consola](https://developer.chrome.com/docs/devtools/console/) diff --git a/files/es/web/api/console/index.md b/files/es/web/api/console/index.md index e0de3e2a958ec0..6a3391b62bf4f7 100644 --- a/files/es/web/api/console/index.md +++ b/files/es/web/api/console/index.md @@ -60,7 +60,7 @@ Esta página documenta los [Métodos](#métodos) disponibles en el objeto `conso - {{domxref("console.timeLog()")}} - : Muestra el valor del [temporizador](#temporizadores) especificado en la consola. - {{domxref("console.timeStamp()")}} {{Non-standard_inline}} - - : Agrega un marcador a las herramientas del navegador [Chrome](https://developer.chrome.com/docs/devtools/evaluate-performance/reference/) o [Firefox](https://profiler.firefox.com/docs/#/./guide-ui-tour-timeline). + - : Agrega un marcador a las herramientas del navegador [Chrome](https://developer.chrome.com/docs/devtools/performance/reference) o [Firefox](https://profiler.firefox.com/docs/#/./guide-ui-tour-timeline). - {{domxref("console.trace()")}} - : Muestra una [traza de pila](#trazas_de_pila). - {{domxref("console.warn()")}} diff --git a/files/es/web/api/navigationpreloadmanager/index.md b/files/es/web/api/navigationpreloadmanager/index.md index 6c3ed3b84392c3..5e21e7f0d9c5c2 100644 --- a/files/es/web/api/navigationpreloadmanager/index.md +++ b/files/es/web/api/navigationpreloadmanager/index.md @@ -41,7 +41,7 @@ Esto se podría usar, por ejemplo, para reducir los datos enviados a solo una pa ## Ejemplos -Los ejemplos aquí son de [Acelera el _Service Worker_ con precargas de navegación](https://developer.chrome.com/blog/navigation-preload/) (developer.chrome.com). +Los ejemplos aquí son de [Acelera el _Service Worker_ con precargas de navegación](https://web.dev/navigation-preload/?hl=es-419) (developer.chrome.com). ### Detectar características y habilitar precarga de navegación @@ -114,7 +114,7 @@ navigator.serviceWorker.ready }); ``` -[Acelera el _Service Worker_ con precargas de navegación > Respuestas personalizadas para precargas](https://developer.chrome.com/blog/navigation-preload/) proporciona un ejemplo más completo de un sitio donde se construye la respuesta para una página web de artículo desde un encabezado y pie de página en caché, de modo que solo devuelva el contenido del artículo para una precarga. +[Acelera el _Service Worker_ con precargas de navegación > Respuestas personalizadas para precargas](https://web.dev/navigation-preload/?hl=es-419) proporciona un ejemplo más completo de un sitio donde se construye la respuesta para una página web de artículo desde un encabezado y pie de página en caché, de modo que solo devuelva el contenido del artículo para una precarga. ### Obtener el estado @@ -142,4 +142,4 @@ navigator.serviceWorker.ready ## Véase también -- [Acelera el _Service Worker_ con precargas de navegación](https://developer.chrome.com/blog/navigation-preload/) (developer.chrome.com) +- [Acelera el _Service Worker_ con precargas de navegación](https://web.dev/navigation-preload/?hl=es-419) (developer.chrome.com) diff --git a/files/es/web/api/clearinterval/index.md b/files/es/web/api/window/clearinterval/index.md similarity index 91% rename from files/es/web/api/clearinterval/index.md rename to files/es/web/api/window/clearinterval/index.md index ccbe3a4985e6e4..3b4dded0ab2388 100644 --- a/files/es/web/api/clearinterval/index.md +++ b/files/es/web/api/window/clearinterval/index.md @@ -1,6 +1,7 @@ --- title: WindowTimers.clearInterval() -slug: Web/API/clearInterval +slug: Web/API/Window/clearInterval +original_slug: Web/API/clearInterval --- {{APIRef("HTML DOM")}} diff --git a/files/es/web/api/cleartimeout/index.md b/files/es/web/api/window/cleartimeout/index.md similarity index 95% rename from files/es/web/api/cleartimeout/index.md rename to files/es/web/api/window/cleartimeout/index.md index 5c77b4c3794950..4aeb0d79f9a9d0 100644 --- a/files/es/web/api/cleartimeout/index.md +++ b/files/es/web/api/window/cleartimeout/index.md @@ -1,6 +1,7 @@ --- title: window.clearTimeout -slug: Web/API/clearTimeout +slug: Web/API/Window/clearTimeout +original_slug: Web/API/clearTimeout --- {{ApiRef}} diff --git a/files/es/web/api/createimagebitmap/index.md b/files/es/web/api/window/createimagebitmap/index.md similarity index 97% rename from files/es/web/api/createimagebitmap/index.md rename to files/es/web/api/window/createimagebitmap/index.md index 43a86129ef01de..51a5e63062eef2 100644 --- a/files/es/web/api/createimagebitmap/index.md +++ b/files/es/web/api/window/createimagebitmap/index.md @@ -1,6 +1,7 @@ --- title: self.createImageBitmap() -slug: Web/API/createImageBitmap +slug: Web/API/Window/createImageBitmap +original_slug: Web/API/createImageBitmap --- {{APIRef("Canvas API")}} diff --git a/files/es/web/api/setinterval/index.md b/files/es/web/api/window/setinterval/index.md similarity index 99% rename from files/es/web/api/setinterval/index.md rename to files/es/web/api/window/setinterval/index.md index ce2b6440455a40..4d8dd57d7f55f7 100644 --- a/files/es/web/api/setinterval/index.md +++ b/files/es/web/api/window/setinterval/index.md @@ -1,6 +1,7 @@ --- title: setInterval() -slug: Web/API/setInterval +slug: Web/API/Window/setInterval +original_slug: Web/API/setInterval l10n: sourceCommit: 0717d1c0a7528b2dd44d065fe90d860e3bdc2e6a --- diff --git a/files/es/web/api/settimeout/index.md b/files/es/web/api/window/settimeout/index.md similarity index 99% rename from files/es/web/api/settimeout/index.md rename to files/es/web/api/window/settimeout/index.md index cf89ebc0e2b596..439fd8524337fd 100644 --- a/files/es/web/api/settimeout/index.md +++ b/files/es/web/api/window/settimeout/index.md @@ -1,6 +1,7 @@ --- title: setTimeout() -slug: Web/API/setTimeout +slug: Web/API/Window/setTimeout +original_slug: Web/API/setTimeout l10n: sourceCommit: 4ba12fec878a1f941492ada3edd467bfd76532cf --- diff --git a/files/es/web/css/css_grid_layout/basic_concepts_of_grid_layout/index.md b/files/es/web/css/css_grid_layout/basic_concepts_of_grid_layout/index.md index c935c0e7392677..53aa7d02f04716 100644 --- a/files/es/web/css/css_grid_layout/basic_concepts_of_grid_layout/index.md +++ b/files/es/web/css/css_grid_layout/basic_concepts_of_grid_layout/index.md @@ -91,6 +91,8 @@ Definimos filas y columnas en nuestra cuadrícula con las propiedades {{cssxref( ![](1_grid_track.png) +### Ejemplo básico + Puedo modificar nuestro ejemplo anterior al agregar la propiedad `grid-template-columns`, para así definir el tamaño (ancho) de las vías de cada columna. Ahora he creado una cuadrícula con tres vías por columna de 200 píxeles. Los elementos hijo se posicionarán en esta cuadrícula uno en cada una de las celdas de la cuadrícula. @@ -132,9 +134,9 @@ Ahora he creado una cuadrícula con tres vías por columna de 200 píxeles. Los } ``` -{{ EmbedLiveSample('grid_first', '610', '140') }} +{{ EmbedLiveSample('Ejemplo_basico', '610', '140') }} -### La Unidad fr +### La unidad fr Las vías se pueden definir usando cualquier unidad de medida. Grid también introduce una unidad de longitud adicional para ayudarnos a crear vías de cuadrícula flexibles. La nueva unidad fr representa una fracción del espacio disponible en el contenedor de la cuadrícula. La siguiente definición de cuadrícula crearía tres vias con el mismo ancho, que se expanden y se encogen de acuerdo el espacio disponible. @@ -175,10 +177,22 @@ Las vías se pueden definir usando cualquier unidad de medida. Grid también int } ``` -{{ EmbedLiveSample('La_Unidad_fr', '220', '140') }} +{{ EmbedLiveSample('La_unidad_fr', '220', '140') }} + +### Tamaño desigual En el próximo ejemplo creamos una definición con una vía de `2fr` y luego dos vías de `1fr`. El espacio disponible se divide en cuatro. Dos partes corresponden a la primera vía y una parte a cada una de las dos vias restantes. +```html +
+
One
+
Two
+
Three
+
Four
+
Five
+
+``` + ```css .wrapper { display: grid; @@ -186,7 +200,41 @@ En el próximo ejemplo creamos una definición con una vía de `2fr` y luego dos } ``` -En este ejemplo final mezclamos las vías de tamaño absoluto con unidades de fracción(fr). La primera vía tiene 500 píxeles, por lo que este ancho fijo se sustrae del espacio disponible.El espacio restante se divide en tres y se asigna en proporción a las dos vías flexibles. +```css hidden +* { + box-sizing: border-box; +} + +.wrapper { + border: 2px solid #f76707; + border-radius: 5px; + background-color: #fff4e6; +} + +.wrapper > div { + border: 2px solid #ffa94d; + border-radius: 5px; + background-color: #ffd8a8; + padding: 1em; + color: #d9480f; +} +``` + +{{ EmbedLiveSample('Tamaño_desigual', '220', '140') }} + +### Mezclando tamanaños absolutos y flexibles + +En este ejemplo final mezclamos las vías de tamaño absoluto con unidades de fracción(fr). La primera vía tiene 500 píxeles, por lo que este ancho fijo se sustrae del espacio disponible. El espacio restante se divide en tres y se asigna en proporción a las dos vías flexibles. + +```html +
+
One
+
Two
+
Three
+
Four
+
Five
+
+``` ```css .wrapper { @@ -195,6 +243,28 @@ En este ejemplo final mezclamos las vías de tamaño absoluto con unidades de fr } ``` +```css hidden +* { + box-sizing: border-box; +} + +.wrapper { + border: 2px solid #f76707; + border-radius: 5px; + background-color: #fff4e6; +} + +.wrapper > div { + border: 2px solid #ffa94d; + border-radius: 5px; + background-color: #ffd8a8; + padding: 1em; + color: #d9480f; +} +``` + +{{ EmbedLiveSample('Mezclando_tamanaños_absolutos_y_flexibles', '220', '140') }} + ### Listando vías con la notación `repeat()` Las cuadrículas grandes con muchas vías o celdas pueden utilizar la notación `repeat()` con el fin de repetir todas o una sección de la lista de vías. Por ejemplo la definición de cuadrícula: diff --git a/files/es/web/http/basics_of_http/evolution_of_http/index.md b/files/es/web/http/evolution_of_http/index.md similarity index 99% rename from files/es/web/http/basics_of_http/evolution_of_http/index.md rename to files/es/web/http/evolution_of_http/index.md index 1d38c4992f2ce4..4684d6bcd460c4 100644 --- a/files/es/web/http/basics_of_http/evolution_of_http/index.md +++ b/files/es/web/http/evolution_of_http/index.md @@ -1,6 +1,7 @@ --- title: Evolución del protocolo HTTP -slug: Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP +slug: Web/HTTP/Evolution_of_HTTP +original_slug: Web/HTTP/Basics_of_HTTP/Evolution_of_HTTP --- {{HTTPSidebar}} diff --git a/files/es/web/http/basics_of_http/mime_types/common_types/index.md b/files/es/web/http/mime_types/common_types/index.md similarity index 99% rename from files/es/web/http/basics_of_http/mime_types/common_types/index.md rename to files/es/web/http/mime_types/common_types/index.md index c4269f6d809c71..0711b60967a996 100644 --- a/files/es/web/http/basics_of_http/mime_types/common_types/index.md +++ b/files/es/web/http/mime_types/common_types/index.md @@ -1,6 +1,7 @@ --- title: Lista completa de tipos MIME -slug: Web/HTTP/Basics_of_HTTP/MIME_types/Common_types +slug: Web/HTTP/MIME_types/Common_types +original_slug: Web/HTTP/Basics_of_HTTP/MIME_types/Common_types --- {{HTTPSidebar}} diff --git a/files/es/web/http/basics_of_http/mime_types/index.md b/files/es/web/http/mime_types/index.md similarity index 99% rename from files/es/web/http/basics_of_http/mime_types/index.md rename to files/es/web/http/mime_types/index.md index 28f0a23f5a016e..73e89a5546e678 100644 --- a/files/es/web/http/basics_of_http/mime_types/index.md +++ b/files/es/web/http/mime_types/index.md @@ -1,6 +1,7 @@ --- title: Tipos MIME -slug: Web/HTTP/Basics_of_HTTP/MIME_types +slug: Web/HTTP/MIME_types +original_slug: Web/HTTP/Basics_of_HTTP/MIME_types --- {{HTTPSidebar}} diff --git a/files/es/web/javascript/inheritance_and_the_prototype_chain/index.md b/files/es/web/javascript/inheritance_and_the_prototype_chain/index.md index 5ea1bcb2363dbe..e69960bdbffb63 100644 --- a/files/es/web/javascript/inheritance_and_the_prototype_chain/index.md +++ b/files/es/web/javascript/inheritance_and_the_prototype_chain/index.md @@ -252,7 +252,7 @@ Por ejemplo, los "métodos de array" como [`map()`](/es/docs/Web/JavaScript/Refe > [!WARNING] > Hay un error que solía ser frecuente: extender `Object.prototype` o uno de los otros prototipos integrados. Un ejemplo de esta característica errónea es definir `Array.prototype.myMethod = function () {...}` y luego usar `myMethod` en todas las instancias de matriz. > -> Esta característica errónea se llama _parche de mono_/_monkey patching_. Hacer parche de mono/monkey patching arriesga la compatibilidad futura, porque si el lenguaje agrega este método en el futuro pero con una firma diferente, su código se romperá. Ha provocado incidentes como el [SmooshGate](https://developer.chrome.com/blog/smooshgate?hl=es-419), y puede ser una gran molestia para que el lenguaje avance ya que JavaScript intenta "no romper la web". +> Esta característica errónea se llama _parche de mono_/_monkey patching_. Hacer parche de mono/monkey patching arriesga la compatibilidad futura, porque si el lenguaje agrega este método en el futuro pero con una firma diferente, su código se romperá. Ha provocado incidentes como el [SmooshGate](https://developer.chrome.com/blog/smooshgate), y puede ser una gran molestia para que el lenguaje avance ya que JavaScript intenta "no romper la web". > > La **única** buena razón para extender un prototipo integrado es respaldar las características de los motores JavaScript más nuevos, como `Array.prototype.forEach`. diff --git a/files/fr/games/anatomy/index.md b/files/fr/games/anatomy/index.md index 979c7a77a97bd8..7628f5974d9891 100644 --- a/files/fr/games/anatomy/index.md +++ b/files/fr/games/anatomy/index.md @@ -107,7 +107,7 @@ La clé pour programmer une boucle principale, en JavaScript, est d'attacher n'i ## Construire une boucle principale encore plus optimisée en JavaScript -En fin de compte, en JavaScript, le navigateur roule sa propre boucle principale et votre code existe dans certaines de ses étapes. La section ci-dessus décrit des boucles principales qui essaient de ne pas lâcher le contrôle du navigateur. Ces méthodes principales s'attachent à `window.requestAnimationFrame()`, qui demandent au navigateur le contrôle sur la prochaine image qui arrive. C'est au navigateur de décider de la gestion de sa boucle principale. Les spécifications du [W3C en matière de requestAnimationFrame](http://www.w3.org/TR/animation-timing/) ne définissent pas exactement quand les navigateur doivent éxécuter les rappels de requestAnimationFrame. Cela pourrait être bénéfique car cela laisse aux concepteurs de navigateurs la liberté d'expérimenter les solutions qu'ils pensent être les meilleures au travers du temps. +En fin de compte, en JavaScript, le navigateur roule sa propre boucle principale et votre code existe dans certaines de ses étapes. La section ci-dessus décrit des boucles principales qui essaient de ne pas lâcher le contrôle du navigateur. Ces méthodes principales s'attachent à `window.requestAnimationFrame()`, qui demandent au navigateur le contrôle sur la prochaine image qui arrive. C'est au navigateur de décider de la gestion de sa boucle principale. Les spécifications du [W3C en matière de requestAnimationFrame](https://www.w3.org/TR/animation-timing/) ne définissent pas exactement quand les navigateur doivent éxécuter les rappels de requestAnimationFrame. Cela pourrait être bénéfique car cela laisse aux concepteurs de navigateurs la liberté d'expérimenter les solutions qu'ils pensent être les meilleures au travers du temps. Les versions modernes de Firefox et Google Chrome (et probablement d'autres)_tentent_ de connecter les rappels de `requestAnimationFrame` à leur fil principal au tout début de chaque image. De ce fait, le déroulement principal _essaye_ d'être le plus possible comme ci-dessous: diff --git a/files/fr/games/index.md b/files/fr/games/index.md index 19149fa4b85883..2dbcdb40a5c6d6 100644 --- a/files/fr/games/index.md +++ b/files/fr/games/index.md @@ -20,13 +20,13 @@ Nous avons également inclus une section de références afin que vous puissiez ## Portez des jeux natifs sur le Web -Si vous êtes un développeur natif (par exemple écrivant des jeux en C ++), et que vous êtes intéressé par la façon dont vous pouvez porter vos jeux sur le Web, vous devriez en apprendre plus sur notre outil [Emscripten](http://kripken.github.io/emscripten-site/index.html) - c'est un compilateur LLVM vers JavaScript, qui prend le "bytecode LLVM" (par exemple, généré à partir de C / C ++ en utilisant Clang ou un autre langage) et le compile dans [asm.js](/fr/docs/Games/Tools/asm.js) , qui peut être exécuté sur le Web. +Si vous êtes un développeur natif (par exemple écrivant des jeux en C ++), et que vous êtes intéressé par la façon dont vous pouvez porter vos jeux sur le Web, vous devriez en apprendre plus sur notre outil [Emscripten](https://emscripten.org/index.html) - c'est un compilateur LLVM vers JavaScript, qui prend le "bytecode LLVM" (par exemple, généré à partir de C / C ++ en utilisant Clang ou un autre langage) et le compile dans [asm.js](/fr/docs/Games/Tools/asm.js) , qui peut être exécuté sur le Web. Pour commencer, voir : -- [About Emscripten](http://kripken.github.io/emscripten-site/docs/introducing_emscripten/about_emscripten.html) pour une introduction incluant des détails de haut niveau. -- [D/gameswnload and Install](http://kripken.github.io/emscripten-site/docs/getting_started/downloads.html) pour installer la chaîne d'outils . -- [Emscripten Tutorial](http://kripken.github.io/emscripten-site/docs/getting_started/Tutorial.html) pour un tutoriel qui vous enseigne comment commencer. +- [About Emscripten](https://emscripten.org/docs/introducing_emscripten/about_emscripten.html) pour une introduction incluant des détails de haut niveau. +- [D/gameswnload and Install](https://emscripten.org/docs/getting_started/downloads.html) pour installer la chaîne d'outils . +- [Emscripten Tutorial](https://emscripten.org/docs/getting_started/Tutorial.html) pour un tutoriel qui vous enseigne comment commencer. ## Exemples @@ -42,17 +42,17 @@ Pour une liste d'exemples de jeux, voir notre [page exemples](/fr/docs/Games/Exa - : Un livre en ligne, écrit par Bob Nystrom, qui traite des modèles de programmation dans le contexte du développement de jeux, dans le but d'aider les développeurs de jeux à produire un code plus réussi et plus opérationnel. - [Gamedev.js Weekly (en anglais)](http://gamedevjsweekly/games.com/) - : Bulletin hebdomadaire sur le développement de jeux HTML5, envoyé tous les vendredis. Contient les derniers articles, didacticiels, outils et ressources. -- [HTML5 Game Devs Forum (en anglais)](http://www.html5gamedevs.com/) +- [HTML5 Game Devs Forum (en anglais)](https://www.html5gamedevs.com/) - : Forums pour développeurs, créateurs de "framework" et éditeurs. Posez des questions, obtenez des commentaires, aidez les autres. - [HTML5 Game Engine (en anglais)](http://html5gameengine.com/) - : Liste des architectures de jeux HTML5 les plus populaires ainsi que leurs classement, fonctionnalités et exemples. - [JSBreakouts (en anglais)](http://www.jsbreakouts.org/) - : Comparez les clones JavaScript Breakout dans différents systèmes pour vous aider à choisir le bon pour vous. -- [Tuts+ Game Development (en anglais)](http://gamedevelopment.tutsplus.com/) +- [Tuts+ Game Development (en anglais)](https://gamedevelopment.tutsplus.com/) - : Tutoriels et articles sur le developpement de jeux en général. -- [HTML5 Gamedev Starter (en anglais)](http://html5devstarter.enclavegames.com/) +- [HTML5 Gamedev Starter (en anglais)](https://html5devstarter.enclavegames.com/) - : De quoi démarrer pour les nouveaux développeurs de jeux, une liste organisée de liens vers diverses ressources utiles sur le web. -- [js13kGames (en anglais)](http://js13kgames.com/) +- [js13kGames (en anglais)](https://js13kgames.com/) - : Concours de codage JavaScript pour les développeurs de jeux HTML5 avec une limite de taille de fichier fixée à 13 kilo-octets. Tous les jeux soumis sont disponibles sous forme lisible sur GitHub. - [Mozilla Hacks blog (en anglais)](https://hacks.mozilla.org/category/games/) - : Catégorie Jeux sur le blog "Hacks" de Mozilla contenant des articles connexes intéressants. diff --git a/files/fr/games/introduction/index.md b/files/fr/games/introduction/index.md index ade0e946acc0b1..065852e824f42f 100644 --- a/files/fr/games/introduction/index.md +++ b/files/fr/games/introduction/index.md @@ -16,7 +16,7 @@ Le Web peut vraiment se concevoir comme une plateforme pour les jeux : "le Web e | Fonctionnalités | Technologie | | -------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Audio** | [Web Audio API](/fr/docs/Web/API/Web_Audio_API) | -| **Graphisme** | [WebGL](/fr/docs/WebGL) ([OpenGL ES](http://www.khronos.org/opengles/) 2.0) | +| **Graphisme** | [WebGL](/fr/docs/WebGL) ([OpenGL ES](https://www.khronos.org/opengles/) 2.0) | | **Mécanismes d'interface utilisateur** | [Événements tactiles](/fr/docs/Web/Guide/DOM/Events/Touch_events), [Gamepad API](/fr/docs/Web/Guide/API/Gamepad), capteurs, [WebRTC](/fr/docs/WebRTC), [Full Screen API](/fr/docs/Web/Guide/DOM/Using_full_screen_mode), [Pointer Lock API](/fr/docs/WebAPI/Pointer_Lock) | | **Langage** | [JavaScript](/fr/docs/JavaScript) (ou C/C++ utilisé avec [Emscripten](https://github.com/kripken/emscripten/wiki) pour être compilé en JavaScript) | | **Réseau** | [WebRTC](/fr/docs/WebRTC) et/ou les [WebSockets](/fr/docs/WebSockets) | @@ -60,7 +60,7 @@ Pour celles et ceux qui souhaitent plonger dans la technique, voici la liste des - [Web Audio API](/fr/docs/Web/API/Web_Audio_API) - : Cette API pour contrôler la lecture, la synthèse et la manipulation de l'audio à partir du code JavaScript vous permet de créer des effets sonores impressionnants, de jouer et de manipuler de la musique en temps réel. - [WebGL](/fr/docs/Web/API/WebGL_API) - - : Vous permet de créer à partir de contenu internet des graphismes de hautes performances, avec l'accélération matérielle de graphisme 3D (et 2D). C'est une implémentation qui permet la prise en charge web de [OpenGL ES](http://www.khronos.org/opengles/) 2.0. + - : Vous permet de créer à partir de contenu internet des graphismes de hautes performances, avec l'accélération matérielle de graphisme 3D (et 2D). C'est une implémentation qui permet la prise en charge web de [OpenGL ES](https://www.khronos.org/opengles/) 2.0. - [WebRTC](/fr/docs/Web/API/WebRTC_API) - : L'API WebRTC (Real-Time Communications) vous donne le pouvoir de contrôler les données audio et vidéo, y compris la téléconférence, et de transmettre des données d'applications aux utilisateurs et entre utilisateurs. Vous voulez que vos joueurs discutent lorsqu'ils explosent des monstres ? Cette API est faite pour vous. - [WebSockets](/fr/docs/WebSockets) diff --git a/files/fr/games/introduction_to_html5_game_development/index.md b/files/fr/games/introduction_to_html5_game_development/index.md index 1e1c7f1db5fa3d..39495f4372d5e2 100644 --- a/files/fr/games/introduction_to_html5_game_development/index.md +++ b/files/fr/games/introduction_to_html5_game_development/index.md @@ -20,7 +20,7 @@ slug: Games/Introduction_to_HTML5_Game_Development | **Fonction** | Technologie | | -------------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | | **Audio** | [Web Audio API](/fr/docs/Web/API/Web_Audio_API) | -| **Graphique** | [WebGL](/fr/docs/Web/API/WebGL_API) ([OpenGL ES](http://www.khronos.org/opengles/) 2.0) | +| **Graphique** | [WebGL](/fr/docs/Web/API/WebGL_API) ([OpenGL ES](https://www.khronos.org/opengles/) 2.0) | | **Input** | [Événements tactiles](/fr/docs/Web/Guide/DOM/Events/Touch_events), [Utiliser l'API Gamepad](/fr/docs/Web/Guide/API/Gamepad), capteurs de l'appareil , [L'API WebRTC](/fr/docs/Web/API/WebRTC_API), [Utiliser le mode plein écran](/fr/docs/Web/Guide/DOM/Using_full_screen_mode), [Pointer Lock API](/fr/docs/WebAPI/Pointer_Lock) | | **Language** | [JavaScript](/fr/docs/JavaScript) (ou C/C++ utilisant [Emscripten](https://github.com/kripken/emscripten/wiki) pour compiler en JavaScript ) | | **Networking** | [WebRTC](/fr/docs/WebRTC) et/ou [WebSockets](/fr/docs/Web/API/WebSockets_API) | @@ -49,7 +49,7 @@ slug: Games/Introduction_to_HTML5_Game_Development - [API Web Audio](/fr/docs/Web_Audio_API) - : Contrôlez la lecture, la synthèse et la manipulation de l'audio en temps réel. - [WebGL](/fr/docs/WebGL) - - : Créez des graphiques 3D (et 2D) haute performance à accélération matérielle. [OpenGL ES](http://www.khronos.org/opengles/) 2.0. + - : Créez des graphiques 3D (et 2D) haute performance à accélération matérielle. [OpenGL ES](https://www.khronos.org/opengles/) 2.0. - [WebRTC](/fr/docs/WebRTC) - : Communications en temps réel pour contrôler les données audio et vidéo, y compris la téléconférence et la transmission d'autres données d'application entre deux utilisateurs comme le chat. - [WebSockets](/fr/docs/WebSockets) diff --git a/files/fr/games/publishing_games/game_distribution/index.md b/files/fr/games/publishing_games/game_distribution/index.md index b1cd147963456f..87bfff7c6dd38f 100644 --- a/files/fr/games/publishing_games/game_distribution/index.md +++ b/files/fr/games/publishing_games/game_distribution/index.md @@ -49,7 +49,7 @@ En tant que développeur.se front-end, vous savez sans doute déjà quoi faire : Si vous voulez gagner un peu d'argent avec le développement de jeux, prenez soin de sécuriser votre code source d'une façon ou d'une autre afin d'éviter que d'autres personnes ne vous le piquent et ne le vendent comme si c'était le leur. Vous pouvez par exemple concaténer et le réduire pour le rendre plus petit, ou encore le rendre beaucoup plus moche afin qu'il soit beaucoup plus difficile de déconstruire votre jeu. Une autre bonne mesure à prendre est de mettre à disposition une démo en ligne si vous prévoyez de le packager et de le vendre sur une boutique fermée du type iTunes ou Steam. -Si vous travaillez sur un projet annexe juste pour le plaisir, garder le code source ouvert bénéficiera à celles et ceux qui voudraient apprendre à partir de vos créations. Dans ce cas vous n'avez même pas besoin de vous soucier de trouver un fournisseur d'hébergement, puisqu'il est possible d'[héberger vos jeux sur GitHub Pages](https://dev.end3r.com/2014/02/host-your-html5-games-on-github-pages/). Vous bénéficiez d'un hébergement gratuit, d'un contrôle de versions et de contributeurs potentiels si votre projet est suffisamment intéressant. +Si vous travaillez sur un projet annexe juste pour le plaisir, garder le code source ouvert bénéficiera à celles et ceux qui voudraient apprendre à partir de vos créations. Dans ce cas vous n'avez même pas besoin de vous soucier de trouver un fournisseur d'hébergement, puisqu'il est possible d'[héberger vos jeux sur GitHub Pages](https://end3r.com/blog/2014/02/host-your-html5-games-on-github-pages/). Vous bénéficiez d'un hébergement gratuit, d'un contrôle de versions et de contributeurs potentiels si votre projet est suffisamment intéressant. ### Éditeurs et portails @@ -70,10 +70,9 @@ Voyons quelles options sont à notre disposition en matière de marketplaces/mag ### Boutiques en ligne -Les meilleures plateformes de jeux HTML5 sont des boutiques Web. Il est facile de [préparer un jeu pour ces plateformes](https://code.tutsplus.com/tutorials/preparing-for-firefox-os--mobile-18515), puisque cela ne demande que très peu voire aucune modification au jeu lui-même : il suffit en général d'ajouter une simple notice explicative ("manifeste") avec toutes les informations nécessaires dans un dossier zip contenant l'ensemble des ressources. +Les meilleures plateformes de jeux HTML5 sont des boutiques Web. Il est facile de préparer un jeu pour ces plateformes, puisque cela ne demande que très peu voire aucune modification au jeu lui-même : il suffit en général d'ajouter une simple notice explicative ("manifeste") avec toutes les informations nécessaires dans un dossier zip contenant l'ensemble des ressources. - Le magasin d'applications [Chrome Web Store](https://chrome.google.com/webstore/) représente également une option intéressante : une notice explicative, votre jeu dans un dossier zip et un formulaire de soumission à remplir en ligne, c'est tout ce dont vous avez besoin pour mettre votre jeu à disposition. -- [Tizen](https://www.tizenstore.com/) accorde beaucoup d'importance au soutien des applications écrites en JavaScript : leur boutique fait partie des options disponibles. ### Les App Store natifs @@ -99,16 +98,14 @@ Le Web est le choix le plus évident et le plus intéressant pour des jeux HTML5 Il existe toute une variété d'outils, à choisir en fonction de vos compétences, de vos frameworks favoris ou des plateformes que vous visez. Tout l'enjeu consiste à choisir le meilleur outil pour réaliser la tâche que vous souhaitez réaliser. -- [Phonegap](https://phonegap.com/) — basé sur Cordova, c'est l'outil le plus populaire pour construire et packager des applications JavaScript à destination des plateformes natives. -- [CocoonIO](http://cocoon.io/) — le plus populaire des outils dédiés à la conception de jeux HTML5 pour de multiples boutiques natives. CocoonIO propose ses propres optimisations de performance pour les jeux utilisant Canvas, et fonctionne avec beaucoup de frameworks de jeu. - [Ejecta](https://impactjs.com/ejecta) — un outil conçu spécifiquement pour packager les jeux créés avec le framework [ImpactJS](https://impactjs.com/) pour iOS, par ailleurs développé par le créateur d'ImpactJS. L'outil propose une intégration fluide avec ImpactJS, mais ne supporte qu'un framework et app store. - [NW.js](https://nwjs.io/) — anciennement connu sous le nom de Node-Webkit, c'est la solution à privilégier lorsqu'on souhaite construire des jeux d'ordinateur qui fonctionnent sur Windows, Mac et Linux. Les distributions sont packagés grâce au moteur WebKit afin d'offrir un rendu sur n'importe quelle plateforme. Parmi les autres outils existants, on peut citer : -- [Intel XDK](https://software.intel.com/fr/intel-xdk) — une alternative très intéressante, similaire à CocoonIO. -- [Electron](https://electron.atom.io/) — connu sous Atom Shell — est un outil open-source et multi-plateformes de GitHub. -- [Manifold.js](http://manifoldjs.com/) — cet outil de l'équipe Microsoft peut créer des distributions natives de jeux HTML5 depuis iOS, Android et Windows. +- [Intel XDK (en anglais)](https://www.intel.com/content/www/us/en/developer/tools/overview.html) — une alternative très intéressante, similaire à CocoonIO. +- [Electron](https://www.electronjs.org/) — connu sous Atom Shell — est un outil open-source et multi-plateformes de GitHub. +- [Manifold.js](https://manifoldjs.com/) — cet outil de l'équipe Microsoft peut créer des distributions natives de jeux HTML5 depuis iOS, Android et Windows. ## Résumé diff --git a/files/fr/games/publishing_games/game_monetization/index.md b/files/fr/games/publishing_games/game_monetization/index.md index abcdd7e3fd2ab4..261ce95dcb2d08 100644 --- a/files/fr/games/publishing_games/game_monetization/index.md +++ b/files/fr/games/publishing_games/game_monetization/index.md @@ -39,11 +39,11 @@ Les publicités vidéo sont de plus en plus populaires, en particulier sous la f Il existe une approche qui peut fonctionner comme un modèle de monétisation à elle seule, et qui consiste à vendre des licences pour la distribution de votre jeu. Il y a de plus en plus de portails intéressés à montrer vos jeux sur leurs sites Web. Ils suivent diverses stratégies pour gagner de l'argent via vos jeux, mais vous n'avez pas à vous soucier de tout cela car la vente de la licence est généralement une transaction unique. Vous obtenez de l'argent et ils peuvent faire preuve de créativité en utilisant votre jeu pour gagner de l'argent. -Trouver des éditeurs peut être difficile au début — esssayez de les rechercher sur les [forums HTML5 Gamedevs](http://www.html5gamedevs.com/). Si vous êtes bien connu, ils peuvent vous contacter. La plupart des offres sont conclues par e-mail lorsque vous parlez à une personne dédiée du côté de l'éditeur. Certains sites Web d'éditeurs ont ces informations facilement disponibles, tandis que d'autres sont plus difficiles à trouver. Lorsque vous atteignez un éditeur, essayez d'être gentil et direct - ce sont des gens occupés. +Trouver des éditeurs peut être difficile au début — esssayez de les rechercher sur les [forums HTML5 Gamedevs](https://www.html5gamedevs.com/). Si vous êtes bien connu, ils peuvent vous contacter. La plupart des offres sont conclues par e-mail lorsque vous parlez à une personne dédiée du côté de l'éditeur. Certains sites Web d'éditeurs ont ces informations facilement disponibles, tandis que d'autres sont plus difficiles à trouver. Lorsque vous atteignez un éditeur, essayez d'être gentil et direct - ce sont des gens occupés. ### Licences exclusives -La licence exclusive est un type de licence pour un éditeur — vous avez créé un jeu et vous en vendez tous les droits à une seule entité ainsi que les droits de le redistribuer — [Softgames](http://www.softgames.de/) est un exemple d'un tel éditeur. Vous ne pouvez pas le revendre sous quelque forme que ce soit tant que l'éditeur en a les droits - c'est pourquoi les accords exclusifs valent beaucoup d'argent. Combien exactement? Cela dépend de la qualité du jeu, de son genre, de son éditeur et de bien d'autres, mais généralement, ce sera entre 2000 et 5000 USD. Une fois que vous avez vendu une licence exclusive, vous pouvez oublier la promotion de ce jeu particulier car vous ne gagnerez pas plus, alors ne concluez un tel accord que si vous êtes sûr qu'il est suffisamment rentable. +La licence exclusive est un type de licence pour un éditeur — vous avez créé un jeu et vous en vendez tous les droits à une seule entité ainsi que les droits de le redistribuer — [Softgames](https://www.softgames.com/) est un exemple d'un tel éditeur. Vous ne pouvez pas le revendre sous quelque forme que ce soit tant que l'éditeur en a les droits - c'est pourquoi les accords exclusifs valent beaucoup d'argent. Combien exactement? Cela dépend de la qualité du jeu, de son genre, de son éditeur et de bien d'autres, mais généralement, ce sera entre 2000 et 5000 USD. Une fois que vous avez vendu une licence exclusive, vous pouvez oublier la promotion de ce jeu particulier car vous ne gagnerez pas plus, alors ne concluez un tel accord que si vous êtes sûr qu'il est suffisamment rentable. ### Licences non exclusives @@ -71,11 +71,11 @@ Il existe d'autres façons de gagner de l'argent lors de la création de jeux HT ### Vendre des ressources -Si vous êtes graphiste, vous pouvez vendre les actifs des jeux que vous avez créés ou quelque chose de nouveau exclusivement à cette fin dans des boutiques en ligne comme [Envato Market](http://market.envato.com/). Ce n'est pas beaucoup, mais si vous êtes un designer connu, cela peut être un flux de revenus passif supplémentaire. +Si vous êtes graphiste, vous pouvez vendre les actifs des jeux que vous avez créés ou quelque chose de nouveau exclusivement à cette fin dans des boutiques en ligne comme [Envato Market](https://themeforest.net/). Ce n'est pas beaucoup, mais si vous êtes un designer connu, cela peut être un flux de revenus passif supplémentaire. ### Rédaction d'articles et de tutoriels -Il est possible d'écrire des articles sur vos jeux et même d'être payé pour eux. La [promotion](/fr/docs/Games/Techniques/Publishing_games/Game_promotion) et la monétisation de jeux en même temps sont gagnant-gagnant, et si vous n'en abusez pas avec trop de publicité, les lecteurs apprécieront de les lire et d'apprendre une chose ou deux. Si vous vous concentrez d'abord sur le partage des connaissances et que vous utilisez vos jeux comme des exemples, cela devrait être correct. Consultez [Tuts+ Game Development](http://gamedevelopment.tutsplus.com/) ou des sites Web similaires pour des opportunités d'écriture. +Il est possible d'écrire des articles sur vos jeux et même d'être payé pour eux. La [promotion](/fr/docs/Games/Techniques/Publishing_games/Game_promotion) et la monétisation de jeux en même temps sont gagnant-gagnant, et si vous n'en abusez pas avec trop de publicité, les lecteurs apprécieront de les lire et d'apprendre une chose ou deux. Si vous vous concentrez d'abord sur le partage des connaissances et que vous utilisez vos jeux comme des exemples, cela devrait être correct. Consultez [Tuts+ Game Development](https://gamedevelopment.tutsplus.com/) ou des sites Web similaires pour des opportunités d'écriture. ### Marchandise @@ -83,7 +83,7 @@ Vous pouvez vendre des t-shirts, des [autocollants](https://www.stickermule.com/ ### Donations -Lorsque tout le reste échoue, vous pouvez essayer de mettre un bouton de don sur la page de votre jeu et demander le soutien de la communauté. Parfois, cela fonctionne, mais seulement si le joueur vous connaît et estime que cela vous aidera dans votre situation. C'est pourquoi il est si important de gérer soigneusement votre communauté. Cela a fonctionné avec la compétition [js13kGames](http://js13kgames.com/) — chaque participant a reçu un t-shirt gratuit, et certains ont même rendu quelques dollars pour l'aider à continuer dans les années à venir. +Lorsque tout le reste échoue, vous pouvez essayer de mettre un bouton de don sur la page de votre jeu et demander le soutien de la communauté. Parfois, cela fonctionne, mais seulement si le joueur vous connaît et estime que cela vous aidera dans votre situation. C'est pourquoi il est si important de gérer soigneusement votre communauté. Cela a fonctionné avec la compétition [js13kGames](https://js13kgames.com/) — chaque participant a reçu un t-shirt gratuit, et certains ont même rendu quelques dollars pour l'aider à continuer dans les années à venir. ## Résumé diff --git a/files/fr/games/publishing_games/game_promotion/index.md b/files/fr/games/publishing_games/game_promotion/index.md index 05f3bce4ec9bab..5587edaa7eee00 100644 --- a/files/fr/games/publishing_games/game_promotion/index.md +++ b/files/fr/games/publishing_games/game_promotion/index.md @@ -17,9 +17,9 @@ Beaucoup de grands jeux naissent d'une petite démo rapide créée pendant une c Vous avez tout intérêt à créer votre propre site internet comprenant toutes les informations relatives à vos jeux, de façon à montrer aux gens ce sur quoi vous avez travaillé. Plus vous pouvez intégrer d'informations, mieux c'est : captures d'écrans, descriptions, bande-annonce, dossier de presse, configurations nécessaires, plateformes disponibles, détails sur l'assistance, etc. Vous marquerez des points en autorisant vos utilisateurs à jouer directement à vos jeux en ligne, a minima à une démo. Vous devriez également travailler un peu votre référencement sur les moteurs de recherche (SEO - _Search Engine Optimization_) pour permettre aux gens de trouver vos jeux plus facilement. -Vous pouvez également tenir un blog dédié à tout ce qui concerne vos activités de développeur⋅se de jeux. Décrivez votre processus de développement, discutez des bugs les plus affreux que vous rencontrez, partagez des anecdotes marrantes ou ce que vous avez appris, les hauts et les bas d'une vie de développeur de jeu. La publication régulière d'informations à propos de vos jeux aidera à éduquer d'autres personnes, à améliorer votre réputation au sein de la communauté, et améliorera également votre référencement. Une possibilité plus avancée consiste à publier un [rapport mensuel](https://dev.end3r.com/?s=monthly+report) qui synthétise vos progrès : il vous permet de voir ce que vous avez accompli au cours du mois passé, ce qu'il reste à faire, et il rappelle aux gens que votre jeu sera bientôt publié. C'est toujours une bonne chose de générer du buzz. +Vous pouvez également tenir un blog dédié à tout ce qui concerne vos activités de développeur⋅se de jeux. Décrivez votre processus de développement, discutez des bugs les plus affreux que vous rencontrez, partagez des anecdotes marrantes ou ce que vous avez appris, les hauts et les bas d'une vie de développeur de jeu. La publication régulière d'informations à propos de vos jeux aidera à éduquer d'autres personnes, à améliorer votre réputation au sein de la communauté, et améliorera également votre référencement. Une possibilité plus avancée consiste à publier un [rapport mensuel](https://end3r.com/blog/?s=monthly+report) qui synthétise vos progrès : il vous permet de voir ce que vous avez accompli au cours du mois passé, ce qu'il reste à faire, et il rappelle aux gens que votre jeu sera bientôt publié. C'est toujours une bonne chose de générer du buzz. -Bien que vous puissiez créer votre site web de zéro, il existe également des outils pour rendre le processus plus facile. [ManaKeep](https://manakeep.com) par exemple est un constructeur de sites internet conçu spécifiquement pour les développeurs de jeux indépendants, et représente un super point de départ pour créer votre site. [Presskit()](https://dopresskit.com/) quant à lui peut vous aider à monter une page dédiée à la presse que vous pouvez partager avec les médias. +Bien que vous puissiez créer votre site web de zéro, il existe également des outils pour rendre le processus plus facile. [ManaKeep](https://manakeep.com/) par exemple est un constructeur de sites internet conçu spécifiquement pour les développeurs de jeux indépendants, et représente un super point de départ pour créer votre site. [Presskit()](https://dopresskit.com/) quant à lui peut vous aider à monter une page dédiée à la presse que vous pouvez partager avec les médias. ## Médias sociaux @@ -33,7 +33,7 @@ Faites grandir votre groupe de fans en discutant avec eux, en partageant des ast L'utilisation de portails de jeux est principalement liée à la [monétisation](/fr/docs/Games/Publishing_games/Game_monetization). Cependant, si vous n'avez pas prévu de [vendre des licences](/fr/docs/Games/Publishing_games/Game_monetization#licensing) d'achat à vos utilisateurs mais que vous prévoyez à la place [d'intégrer des publicités](/fr/docs/Games/Publishing_games/Game_monetization#advertisements) ou de passer par des achats dans l'application même, la promotion de votre jeu sur des portails gratuits peut être efficace. -Plusieurs options s'offrent à vous en termes de publication, grâce à des portails comme [CrazyGames.com](https://crazygames.com), [GameDistribution.com](https://gamedistribution.com/), [HahaGames.com](https://www.hahagames.com), [Lagged.com](https://lagged.com), [PacoGames.com](https://www.pacogames.com) ,[games4html5.com](https://www.games4html5.com/), [HTML5Games.com](https://html5games.com/), [BestGamo.com](https://www.bestgamo.com) ou encore [Crazy Games](https://www.crazygames4u.com/), et au moins 20 ou 30 autres portails connus, avec ou sans API. +Plusieurs options s'offrent à vous en termes de publication, grâce à des portails comme [CrazyGames.com](https://www.crazygames.com), [GameDistribution.com](https://gamedistribution.com/), [HahaGames.com](https://www.hahagames.com/), [Lagged.com](https://lagged.com/), [PacoGames.com](https://www.pacogames.com/) ,[games4html5.com](https://www.games4html5.com/), [HTML5Games.com](https://html5games.com/) ou encore [Crazy Games](https://www.crazygames4u.com/), et au moins 20 ou 30 autres portails connus, avec ou sans API. Les portails qui possèdent leur propre API vous permettront d'autoriser des accès pour vos utilisateurs, de sauvegarder leurs progrès ou de suivre leurs achats au sein de l'application. Vous pouvez également vendre une version complète de votre jeu depuis la version démo sur navigateur, ce qui peut être une excellente tactique au vu de la forte concurrence qui existe ; certains développeurs parviennent même à proposer des versions intégrales sur navigateur. La plupart des portails proposent soit des contrats de partage des revenus de votre jeu, soit vous achèteront des licences non exclusives. @@ -41,9 +41,9 @@ Les portails gratuits quant à eux vous amènent du trafic, mais seuls les meill ## Presse -Vous pouvez essayer de contacter la [presse](https://indiegames.com/) spécialisée à propos de votre jeu ; gardez toutefois à l'esprit que les journalistes reçoivent déjà des tonnes de demandes chaque jour qui passe : restez humble et patient si vous ne recevez pas de réponse tout de suite, et restez poli⋅e quand vous leur parlez. Assurez-vous au préalable qu'ils traitent bien du genre de jeu ou de plateformes dont vous souhaitez leur parler : vous éviterez ainsi de leur envoyer des demandes qui ne relèvent pas de leur domaine d'intérêt. Du moment que vous gardez une approche honnête et que votre jeu est bon, vous aurez de bien meilleures chances de réussite. +Vous pouvez essayer de contacter la [presse](https://indiegamesplus.com/) spécialisée à propos de votre jeu ; gardez toutefois à l'esprit que les journalistes reçoivent déjà des tonnes de demandes chaque jour qui passe : restez humble et patient si vous ne recevez pas de réponse tout de suite, et restez poli⋅e quand vous leur parlez. Assurez-vous au préalable qu'ils traitent bien du genre de jeu ou de plateformes dont vous souhaitez leur parler : vous éviterez ainsi de leur envoyer des demandes qui ne relèvent pas de leur domaine d'intérêt. Du moment que vous gardez une approche honnête et que votre jeu est bon, vous aurez de bien meilleures chances de réussite. -Si vous souhaitez en savoir plus sur la déontologie et la façon de s'adresser à la presse, vous devriez absolument consulter ces deux ressources : un guide génial traduit par Game Sphere intitulé ["Comment contacter la presse"](http://www.game-sphere.fr/comment-contacter-la-presse/) (en français) (tiré du guide ["How To Contact Press"](https://app.box.com/s/p0ft5zdolpi0ydkrykab) en anglais), et des [listes de YouTubers et de sites](https://pixelprospector.com/videogamejournaliser.html) (y compris français) à contacter que PixelProspector propose. +Si vous souhaitez en savoir plus sur la déontologie et la façon de s'adresser à la presse, vous devriez absolument consulter ces deux ressources : un guide génial traduit par Game Sphere intitulé ["Comment contacter la presse"](https://www.game-sphere.fr/comment-contacter-la-presse/) (en français) (tiré du guide ["How To Contact Press"](https://app.box.com/s/p0ft5zdolpi0ydkrykab) en anglais), et des [listes de YouTubers et de sites](https://pixelprospector.com/videogamejournaliser.html) (y compris français) à contacter que PixelProspector propose. ## Tutoriels diff --git a/files/fr/games/techniques/2d_collision_detection/index.md b/files/fr/games/techniques/2d_collision_detection/index.md index b8fa72c25154ad..c986c421f7c132 100644 --- a/files/fr/games/techniques/2d_collision_detection/index.md +++ b/files/fr/games/techniques/2d_collision_detection/index.md @@ -62,10 +62,10 @@ Cet algorithme permet de détecter une collision entre deux polygones _convexes_ L'implémentation de cet algorithme est hors de propos sur cette page, nous vous conseillons les articles suivants : -1. [Separating Axis Theorem (SAT) explanation](http://www.sevenson.com.au/actionscript/sat/) ; -2. [(Anglais) Collision detection and response (en)](http://www.metanetsoftware.com/technique/tutorialA.html) ; -3. [Collision detection Using the Separating Axis Theorem (en)](http://gamedevelopment.tutsplus.com/tutorials/collision-detection-using-the-separating-axis-theorem--gamedev-169) ; -4. [SAT (Separating Axis Theorem) (en)](http://www.codezealot.org/archives/55) ; +1. [Separating Axis Theorem (SAT) explanation](https://www.sevenson.com.au/programming/sat/) ; +2. [Collision detection and response (en)](https://www.metanetsoftware.com/technique/tutorialA.html) ; +3. [Collision detection Using the Separating Axis Theorem (en)](https://code.tutsplus.com/collision-detection-using-the-separating-axis-theorem--gamedev-169t) ; +4. [SAT (Separating Axis Theorem) (en)](https://www.codezealot.org/archives/55/) ; 5. [Separation of Axis Theorem (SAT) for Collision Detection (en)](http://rocketmandevelopment.com/blog/separation-of-axis-theorem-for-collision-detection/). ## Performances diff --git a/files/fr/games/techniques/3d_on_the_web/building_up_a_basic_demo_with_playcanvas/index.md b/files/fr/games/techniques/3d_on_the_web/building_up_a_basic_demo_with_playcanvas/index.md index b336e06dd4e351..0e35d2b72abde2 100644 --- a/files/fr/games/techniques/3d_on_the_web/building_up_a_basic_demo_with_playcanvas/index.md +++ b/files/fr/games/techniques/3d_on_the_web/building_up_a_basic_demo_with_playcanvas/index.md @@ -5,7 +5,7 @@ slug: Games/Techniques/3D_on_the_web/Building_up_a_basic_demo_with_PlayCanvas {{GamesSidebar}} -**PlayCanvas** est un populaire moteur 3D WebGL de jeu, originellement concu par Will Eastcott et Dave Evans. Il est disponible en [open-source sur GitHub](https://github.com/playcanvas/engine), avec un [éditeur](http://developer.playcanvas.com/en/user-manual/designer/) en ligne et une bonne [documentation](http://developer.playcanvas.com/en/). L'éditeur en ligne est gratuit pour les projets publics avec jusqu'à deux membres d'équipe, mais il y a aussi des [plans payants](https://playcanvas.com/plans) si vous vous lancez dans un projet commercial privé avec plus de développeurs. +**PlayCanvas** est un populaire moteur 3D WebGL de jeu, originellement concu par Will Eastcott et Dave Evans. Il est disponible en [open-source sur GitHub](https://github.com/playcanvas/engine), avec un [éditeur](https://developer.playcanvas.com/en/user-manual/designer/) en ligne et une bonne [documentation](https://developer.playcanvas.com/en/). L'éditeur en ligne est gratuit pour les projets publics avec jusqu'à deux membres d'équipe, mais il y a aussi des [plans payants](https://playcanvas.com/plans) si vous vous lancez dans un projet commercial privé avec plus de développeurs. ![Site PlayCanvas](playcanvas-cover.png) @@ -13,9 +13,9 @@ slug: Games/Techniques/3D_on_the_web/Building_up_a_basic_demo_with_PlayCanvas PlayCanvas a publié quelques démos populaires présentant ses fonctionnalités. -- [Tanx](http://playcanv.as/p/aP0oxhUr) est un jeu de char multijoueur dans lequel vous pouvez conduire votre char, en tirant sur d'autres joueurs au fur et à mesure. -- [Swooop](http://playcanv.as/p/JtL2iqIH) est un jeu de vol où vous pilotez votre avion autour d'une île magique tout en collectant des bijoux et du carburant. -- Des visualisations comme the [Star Lord](http://playcanv.as/b/FQbBsJTd) et [BMW i8](http://playcanv.as/p/RqJJ9oU9) mettent également en valeur les possibilités du moteur. +- [Tanx](https://tanx.io) est un jeu de char multijoueur dans lequel vous pouvez conduire votre char, en tirant sur d'autres joueurs au fur et à mesure. +- [Swooop](https://playcanv.as/p/JtL2iqIH) est un jeu de vol où vous pilotez votre avion autour d'une île magique tout en collectant des bijoux et du carburant. +- Des visualisations comme the [Star Lord](https://playcanv.as/b/FQbBsJTd) et [BMW i8](https://playcanv.as/p/RqJJ9oU9) mettent également en valeur les possibilités du moteur. ![](playcanvas-demos.png) diff --git a/files/fr/games/techniques/3d_on_the_web/index.md b/files/fr/games/techniques/3d_on_the_web/index.md index 68cb79fc4475f5..c79887769bfbc0 100644 --- a/files/fr/games/techniques/3d_on_the_web/index.md +++ b/files/fr/games/techniques/3d_on_the_web/index.md @@ -36,13 +36,13 @@ Il est difficile d'imaginer un jeu sans la détection de collision — nous devo Le concept de réalité virtuelle n'est pas nouveau, mais il est en train de conquérir le web grâce à des avancées matérielles telles que l' [Oculus Rift](https://www.oculus.com/en-us/rift/) et l'[API WebVR](/fr/docs/Web/API/WebVR_API) (actuellement expérimental) pour capturer les informations du matériel de réalité virtuelle et les rendre disponibles pour les applications JavaScript. Pour en savoir plus, lisez [WebVR - Réalité virtuelle pour le Web](/fr/docs/Games/Techniques/3D_on_the_web/WebVR). -Il y a aussi la [construction d'une démo de base avec l'article A-Frame](/fr/docs/Games/Techniques/3D_on_the_web/Building_up_a_basic_demo_with_A-Frame) qui montre comment il est facile de construire des environnements 3D pour la réalité virtuelle en utilisant le framework [A-Frame](http://aframe.io/) . +Il y a aussi la [construction d'une démo de base avec l'article A-Frame](/fr/docs/Games/Techniques/3D_on_the_web/Building_up_a_basic_demo_with_A-Frame) qui montre comment il est facile de construire des environnements 3D pour la réalité virtuelle en utilisant le framework [A-Frame](https://aframe.io//) . ## L'essor des bibliothèques et des cadres Le codage de WebGL brut est assez complexe, mais vous aurez envie de le maîtriser à long terme, car vos projets seront plus avancés (consultez notre [documentation WebGL](/fr/docs/Web/API/WebGL_API) pour commencer). Pour les projets de monde réel, vous utiliserez probablement aussi un "framework" pour accélérer le développement et vous aider à gérer le projet. L'utilisation d'un "framework" pour les jeux 3D permet également d'optimiser les performances, car les outils que vous utilisez vous permettent de vous concentrer sur la construction du jeu. -La bibliothèque 3D JavaScript la plus populaire est [Three.js](http://threejs.org/), un outil polyvalent qui rend les techniques 3D plus simples à implémenter. Il existe d'autres bibliothèques et cadres de développement de jeux populaires qui valent la peine d'être regardés ; [A-Frame](https://aframe.io), [PlayCanvas](https://playcanvas.com/) et [Babylon.js](http://www.babylonjs.com/) sont parmi les plus reconnaissables avec une documentation riche, des éditeurs en ligne et des communautés actives. +La bibliothèque 3D JavaScript la plus populaire est [Three.js](https://threejs.org/), un outil polyvalent qui rend les techniques 3D plus simples à implémenter. Il existe d'autres bibliothèques et cadres de développement de jeux populaires qui valent la peine d'être regardés ; [A-Frame](https://aframe.io/), [PlayCanvas](https://playcanvas.com/) et [Babylon.js](https://www.babylonjs.com/) sont parmi les plus reconnaissables avec une documentation riche, des éditeurs en ligne et des communautés actives. ### Construction d'une démo de base avec A-Frame @@ -82,11 +82,11 @@ Vous pouvez trouver tous les codes source de cette série de [démos sur GitHub] ### Frameworks -- [Three.js](http://threejs.org/) +- [Three.js](https://threejs.org/) - [Whitestorm.js](http://whitestormjs.xyz/) (basé sur Three.js) - [PlayCanvas](https://playcanvas.com/) -- [Babylon.js](http://www.babylonjs.com/) -- [A-Frame](http://aframe.io/) +- [Babylon.js](https://www.babylonjs.com/) +- [A-Frame](https://aframe.io//) ### Tutorials diff --git a/files/fr/games/techniques/audio_for_web_games/index.md b/files/fr/games/techniques/audio_for_web_games/index.md index 144272c10a67d2..544229bb29a111 100644 --- a/files/fr/games/techniques/audio_for_web_games/index.md +++ b/files/fr/games/techniques/audio_for_web_games/index.md @@ -214,7 +214,7 @@ Tout ceci est possible en utilisant l'élément standard {{HTMLElement ("audio") ## API Web Audio pour les jeux -Maintenant qu'il est supporté dans tous les navigateurs modernes à l'exception d'Opera Mini et d'Internet Explorer ([bien que Microsoft travaille maintenant dessus](https://developer.microsoft.com/en-us/microsoft-edge/platform/status/webaudioapi/)), une approche acceptable pour de nombreuses situations est d'utiliser l'[API Web Audio](/fr/docs/Web/API/Web_Audio_API) (voir la page [Puis-je utiliser l'API Web Audio ?](http://caniuse.com/#search=web%20audio%20api) pour plus d'informations sur la compatibilité du navigateur). L'API Web Audio est une API JavaScript audio avancée, idéale pour l'audio du jeu. Les développeurs peuvent générer de l'audio et manipuler des échantillons audio tout en positionnant le son dans l'espace de jeu 3D. +Maintenant qu'il est supporté dans tous les navigateurs modernes à l'exception d'Opera Mini et d'Internet Explorer ([bien que Microsoft travaille maintenant dessus](https://developer.microsoft.com/en-us/microsoft-edge/platform/status/webaudioapi/)), une approche acceptable pour de nombreuses situations est d'utiliser l'[API Web Audio](/fr/docs/Web/API/Web_Audio_API) (voir la page [Puis-je utiliser l'API Web Audio ?](https://caniuse.com/#search=web%20audio%20api) pour plus d'informations sur la compatibilité du navigateur). L'API Web Audio est une API JavaScript audio avancée, idéale pour l'audio du jeu. Les développeurs peuvent générer de l'audio et manipuler des échantillons audio tout en positionnant le son dans l'espace de jeu 3D. Une stratégie inter-navigateurs envisageable serait de fournir un son basique à l'aide de l'élément standard {{HTMLElement ("audio")}} et, là où cela est pris en charge, d'améliorer l'expérience en utilisant l'API Web Audio. @@ -373,8 +373,8 @@ Ceci est particulièrement utile dans un environnement tridimensionnel rendu en - [Web Audio API sur MDN](/fr/docs/Web/API/Web_Audio_API) - [`