From 03a619c5bf7a97d785f42815b4c58c923e1f8090 Mon Sep 17 00:00:00 2001 From: Crowdin Bot Date: Fri, 10 Jan 2025 05:08:38 +0000 Subject: [PATCH 1/4] chore: synced translations from crowdin --- apps/site/pages/es/about/branding.mdx | 12 +- apps/site/pages/es/about/index.mdx | 18 +- .../pages/es/about/security-reporting.mdx | 11 +- apps/site/pages/es/index.mdx | 173 +++++------ apps/site/pages/fa/about/index.mdx | 16 +- .../pages/fa/about/security-reporting.mdx | 11 +- apps/site/pages/fr/about/branding.mdx | 12 +- apps/site/pages/fr/about/index.mdx | 16 +- .../pages/fr/about/security-reporting.mdx | 11 +- apps/site/pages/fr/download/current.mdx | 28 ++ apps/site/pages/fr/download/index.mdx | 28 ++ apps/site/pages/fr/index.mdx | 169 +++++------ apps/site/pages/id/about/branding.mdx | 12 +- apps/site/pages/id/about/index.mdx | 18 +- .../pages/id/about/security-reporting.mdx | 6 +- apps/site/pages/id/index.mdx | 173 +++++------ apps/site/pages/ja/about/branding.mdx | 12 +- apps/site/pages/ja/about/index.mdx | 16 +- .../site/pages/ja/about/previous-releases.mdx | 13 + .../pages/ja/about/security-reporting.mdx | 57 ++++ apps/site/pages/ja/download/current.mdx | 28 ++ apps/site/pages/ja/download/index.mdx | 28 ++ apps/site/pages/ja/index.mdx | 169 +++++------ apps/site/pages/ko/about/branding.mdx | 12 +- apps/site/pages/ko/about/index.mdx | 16 +- .../pages/ko/about/security-reporting.mdx | 11 +- apps/site/pages/ko/index.mdx | 169 +++++------ apps/site/pages/pt/about/index.mdx | 16 +- .../pages/pt/about/security-reporting.mdx | 11 +- .../ro/about/get-involved/collab-summit.md | 17 ++ .../pages/ro/about/get-involved/events.mdx | 16 + apps/site/pages/tr/about/index.mdx | 16 +- .../pages/tr/about/security-reporting.mdx | 11 +- apps/site/pages/uk/about/branding.mdx | 12 +- apps/site/pages/uk/about/governance.md | 2 +- apps/site/pages/uk/about/index.mdx | 16 +- .../pages/uk/about/security-reporting.mdx | 15 +- apps/site/pages/uk/download/current.mdx | 30 ++ apps/site/pages/uk/download/index.mdx | 30 ++ .../pages/uk/download/package-manager/all.md | 6 +- apps/site/pages/uk/index.mdx | 171 +++++------ apps/site/pages/zh-cn/about/index.mdx | 18 +- .../pages/zh-cn/about/security-reporting.mdx | 11 +- apps/site/pages/zh-tw/about/index.mdx | 16 +- .../pages/zh-tw/about/security-reporting.mdx | 11 +- apps/site/pages/zh-tw/download/index.mdx | 3 +- apps/site/snippets/fr/download/fnm.bash | 11 + apps/site/snippets/fr/download/npm.bash | 2 + apps/site/snippets/fr/download/pnpm.bash | 5 + apps/site/snippets/fr/download/yarn.bash | 5 + apps/site/snippets/ja/download/brew.bash | 4 +- apps/site/snippets/ja/download/choco.bash | 8 + apps/site/snippets/ja/download/docker.bash | 11 + apps/site/snippets/ja/download/fnm.bash | 11 + apps/site/snippets/ja/download/npm.bash | 2 + apps/site/snippets/ja/download/nvm.bash | 9 + apps/site/snippets/ja/download/pnpm.bash | 5 + apps/site/snippets/ja/download/yarn.bash | 5 + apps/site/snippets/uk/download/brew.bash | 8 + apps/site/snippets/uk/download/choco.bash | 8 + apps/site/snippets/uk/download/docker.bash | 11 + apps/site/snippets/uk/download/fnm.bash | 11 + apps/site/snippets/uk/download/npm.bash | 2 + apps/site/snippets/uk/download/nvm.bash | 9 + apps/site/snippets/uk/download/pnpm.bash | 5 + apps/site/snippets/uk/download/yarn.bash | 5 + apps/site/snippets/zh-tw/download/brew.bash | 8 + apps/site/snippets/zh-tw/download/choco.bash | 8 + apps/site/snippets/zh-tw/download/docker.bash | 11 + apps/site/snippets/zh-tw/download/npm.bash | 2 + apps/site/snippets/zh-tw/download/nvm.bash | 9 + apps/site/snippets/zh-tw/download/pnpm.bash | 5 + apps/site/snippets/zh-tw/download/yarn.bash | 5 + packages/i18n/locales/ja.json | 287 ++++++++++++++++++ 74 files changed, 1359 insertions(+), 786 deletions(-) create mode 100644 apps/site/pages/fr/download/current.mdx create mode 100644 apps/site/pages/fr/download/index.mdx create mode 100644 apps/site/pages/ja/about/security-reporting.mdx create mode 100644 apps/site/pages/ja/download/current.mdx create mode 100644 apps/site/pages/ja/download/index.mdx create mode 100644 apps/site/pages/ro/about/get-involved/collab-summit.md create mode 100644 apps/site/pages/ro/about/get-involved/events.mdx create mode 100644 apps/site/pages/uk/download/current.mdx create mode 100644 apps/site/pages/uk/download/index.mdx create mode 100644 apps/site/snippets/fr/download/fnm.bash create mode 100644 apps/site/snippets/fr/download/npm.bash create mode 100644 apps/site/snippets/fr/download/pnpm.bash create mode 100644 apps/site/snippets/fr/download/yarn.bash create mode 100644 apps/site/snippets/ja/download/choco.bash create mode 100644 apps/site/snippets/ja/download/docker.bash create mode 100644 apps/site/snippets/ja/download/fnm.bash create mode 100644 apps/site/snippets/ja/download/npm.bash create mode 100644 apps/site/snippets/ja/download/nvm.bash create mode 100644 apps/site/snippets/ja/download/pnpm.bash create mode 100644 apps/site/snippets/ja/download/yarn.bash create mode 100644 apps/site/snippets/uk/download/brew.bash create mode 100644 apps/site/snippets/uk/download/choco.bash create mode 100644 apps/site/snippets/uk/download/docker.bash create mode 100644 apps/site/snippets/uk/download/fnm.bash create mode 100644 apps/site/snippets/uk/download/npm.bash create mode 100644 apps/site/snippets/uk/download/nvm.bash create mode 100644 apps/site/snippets/uk/download/pnpm.bash create mode 100644 apps/site/snippets/uk/download/yarn.bash create mode 100644 apps/site/snippets/zh-tw/download/brew.bash create mode 100644 apps/site/snippets/zh-tw/download/choco.bash create mode 100644 apps/site/snippets/zh-tw/download/docker.bash create mode 100644 apps/site/snippets/zh-tw/download/npm.bash create mode 100644 apps/site/snippets/zh-tw/download/nvm.bash create mode 100644 apps/site/snippets/zh-tw/download/pnpm.bash create mode 100644 apps/site/snippets/zh-tw/download/yarn.bash create mode 100644 packages/i18n/locales/ja.json diff --git a/apps/site/pages/es/about/branding.mdx b/apps/site/pages/es/about/branding.mdx index 08ccf552e7e9d..36ceead6ad870 100644 --- a/apps/site/pages/es/about/branding.mdx +++ b/apps/site/pages/es/about/branding.mdx @@ -11,13 +11,7 @@ Por favor revise la [política de la marca comercial](https://trademark-policy.o Créditos a [Angela Angelini](https://www.linkedin.com/in/angeliningl/) por diseñar y contribuir con la Tortuga Cohete. -Mascota de Node.js +Mascota de Node.js ## Logo de Node.js® @@ -33,7 +27,6 @@ Créditos a [Angela Angelini](https://www.linkedin.com/in/angeliningl/) por dise Logo Horizontal Claro de Node.js - @@ -50,7 +43,6 @@ Créditos a [Angela Angelini](https://www.linkedin.com/in/angeliningl/) por dise Logo Apilado Claro de Node.js - @@ -61,7 +53,6 @@ Créditos a [Angela Angelini](https://www.linkedin.com/in/angeliningl/) por dise Logo Apilado Blanco de Node.js - @@ -78,7 +69,6 @@ Créditos a [Angela Angelini](https://www.linkedin.com/in/angeliningl/) por dise Iconos Blanco de JS - diff --git a/apps/site/pages/es/about/index.mdx b/apps/site/pages/es/about/index.mdx index 8489ee76f5426..b9f211b01e657 100644 --- a/apps/site/pages/es/about/index.mdx +++ b/apps/site/pages/es/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -60,4 +60,4 @@ El hecho de que Node.js esté diseñado sin hilos no significa que no puedas ace [`child_process.fork()`]: https://nodejs.org/api/child_process.html [`cluster`]: https://nodejs.org/api/cluster.html [máquina de eventos]: https://github.com/eventmachine/eventmachine -[twisted]: https://twisted.org/ +[torcido]: https://twisted.org/ diff --git a/apps/site/pages/es/about/security-reporting.mdx b/apps/site/pages/es/about/security-reporting.mdx index 012bfa538e2ff..0cc5351ce5d68 100644 --- a/apps/site/pages/es/about/security-reporting.mdx +++ b/apps/site/pages/es/about/security-reporting.mdx @@ -53,15 +53,8 @@ Si tienes sugerencias sobre cómo podría mejorarse este proceso, por favor, env ## Mejores Prácticas de la OpenSSF - - Insignia OpenSSF + +Insignia OpenSSF La [Insignia de Buenas Prácticas](https://github.com/coreinfrastructure/best-practices-badge) de la Fundación de Seguridad del Software Abierto (OpenSSF) es una manera en que los proyectos de Software Libre y de Código Abierto (FLOSS) pueden mostrar que siguen las mejores prácticas. Los proyectos pueden auto-certificarse voluntariamente sobre cómo siguen cada buena práctica. Los consumidores de la insignia pueden evaluar rápidamente qué proyectos FLOSS siguen las mejores prácticas y, como resultado, tienen más probabilidades de producir software seguro de alta calidad. diff --git a/apps/site/pages/es/index.mdx b/apps/site/pages/es/index.mdx index 5ef18bf2575ed..933f6fd7a1bfc 100644 --- a/apps/site/pages/es/index.mdx +++ b/apps/site/pages/es/index.mdx @@ -9,10 +9,9 @@ layout: home

Ejecuta JavaScript en cualquier parte

-Node.js® es un entorno de ejecución de JavaScript multiplataforma, -de código abierto y gratuito que permite a los desarrolladores crear servidores, -aplicaciones web, herramientas de línea de comando y scripts. - + Node.js® es un entorno de ejecución de JavaScript multiplataforma, + de código abierto y gratuito que permite a los desarrolladores crear servidores, + aplicaciones web, herramientas de línea de comando y scripts.
@@ -47,93 +46,87 @@ aplicaciones web, herramientas de línea de comando y scripts. // server.mjs import { createServer } from 'node:http'; -const server = createServer((req, res) => { -res.writeHead(200, { 'Content-Type': 'text/plain' }); -res.end('Hello World!\n'); -}); - -// starts a simple http server locally on port 3000 -server.listen(3000, '127.0.0.1', () => { -console.log('Listening on 127.0.0.1:3000'); -}); - -// run with `node server.mjs` - -```` - -```js displayName="Write Tests" -// tests.mjs -import assert from 'node:assert'; -import test from 'node:test'; - -test('that 1 is equal 1', () => { - assert.strictEqual(1, 1); -}); - -test('that throws as 1 is not equal 2', () => { - // throws an exception because 1 != 2 - assert.strictEqual(1, 2); -}); - -// run with `node tests.mjs` -```` - -```js displayName="Read and Hash a File" -// crypto.mjs -import { createHash } from 'node:crypto'; -import { readFile } from 'node:fs/promises'; - -const hasher = createHash('sha1'); - -hasher.setEncoding('hex'); -// ensure you have a `package.json` file for this test! -hasher.write(await readFile('package.json')); -hasher.end(); - -const fileHash = hasher.read(); - -// run with `node crypto.mjs` -``` - -```js displayName="Streams Pipeline" -// streams.mjs -import { pipeline } from 'node:stream/promises'; -import { createReadStream, createWriteStream } from 'node:fs'; -import { createGzip } from 'node:zlib'; - -// ensure you have a `package.json` file for this test! -await pipeline( - createReadStream('package.json'), - createGzip(), - createWriteStream('package.json.gz') -); - -// run with `node streams.mjs` -``` - -```js displayName="Work with Threads" -// threads.mjs -import { - Worker, - isMainThread, - workerData, - parentPort, -} from 'node:worker_threads'; - -if (isMainThread) { - const data = 'some data'; - const worker = new Worker(import.meta.filename, { workerData: data }); - worker.on('message', msg => console.log('Reply from Thread:', msg)); -} else { - const source = workerData; - parentPort.postMessage(btoa(source.toUpperCase())); -} - -// run with `node threads.mjs` -``` - + const server = createServer((req, res) => { + res.writeHead(200, { 'Content-Type': 'text/plain' }); + res.end('Hello World!\n'); + }); + + // starts a simple http server locally on port 3000 + server.listen(3000, '127.0.0.1', () => { + console.log('Listening on 127.0.0.1:3000'); + }); + + // run with `node server.mjs` + ``` + + ```js displayName="Write Tests" + // tests.mjs + import assert from 'node:assert'; + import test from 'node:test'; + + test('that 1 is equal 1', () => { + assert.strictEqual(1, 1); + }); + + test('that throws as 1 is not equal 2', () => { + // throws an exception because 1 != 2 + assert.strictEqual(1, 2); + }); + + // run with `node tests.mjs` + ``` + + ```js displayName="Read and Hash a File" + // crypto.mjs + import { createHash } from 'node:crypto'; + import { readFile } from 'node:fs/promises'; + + const hasher = createHash('sha1'); + + hasher.setEncoding('hex'); + // ensure you have a `package.json` file for this test! + hasher.write(await readFile('package.json')); + hasher.end(); + + const fileHash = hasher.read(); + + // run with `node crypto.mjs` + ``` + + ```js displayName="Streams Pipeline" + // streams.mjs + import { pipeline } from 'node:stream/promises'; + import { createReadStream, createWriteStream } from 'node:fs'; + import { createGzip } from 'node:zlib'; + + // ensure you have a `package.json` file for this test! + await pipeline + ( + createReadStream('package.json'), + createGzip(), + createWriteStream('package.json.gz') + ); + + // run with `node streams.mjs` + ``` + + ```js displayName="Work with Threads" + // threads.mjs + import { Worker, isMainThread, + workerData, parentPort } from 'node:worker_threads'; + + if (isMainThread) { + const data = 'some data'; + const worker = new Worker(import.meta.filename, { workerData: data }); + worker.on('message', msg => console.log('Reply from Thread:', msg)); + } else { + const source = workerData; + parentPort.postMessage(btoa(source.toUpperCase())); + } + + // run with `node threads.mjs` + ```
Aprenda más sobre lo que Node.js puede ofrecer con nuestros [Materiales de aprendizaje](/learn). - diff --git a/apps/site/pages/fa/about/index.mdx b/apps/site/pages/fa/about/index.mdx index 1bc8bbe99714b..2d344a52bed70 100644 --- a/apps/site/pages/fa/about/index.mdx +++ b/apps/site/pages/fa/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/fa/about/security-reporting.mdx b/apps/site/pages/fa/about/security-reporting.mdx index ab8dafdc590ec..5060752c1d758 100644 --- a/apps/site/pages/fa/about/security-reporting.mdx +++ b/apps/site/pages/fa/about/security-reporting.mdx @@ -50,15 +50,8 @@ layout: about ## رویه‌های بهینه OpenSSF - - نشان OpenSSF + +نشان OpenSSF [نشان بهترین شیوه ها](https://github.com/coreinfrastructure/best-practices-badge) بنیاد امنیت متن باز (OpenSSF) راهی است برای پروژه‌های نرم‌افزار آزاد/رایگان و متن باز (FLOSS) تا نشان دهند که از رویه‌های بهینه پیروی می‌کنند. پروژه‌ها می‌توانند به صورت داوطلبانه خود تأیید کنند که چگونه از هر رویه بهینه پیروی می‌کنند. مصرف‌کنندگان این نشان می‌توانند به سرعت ارزیابی کنند که کدام پروژه‌های FLOSS از رویه‌های بهینه پیروی می‌کنند و در نتیجه احتمال بیشتری دارد که نرم‌افزارهای امن با کیفیت بالاتر تولید کنند. diff --git a/apps/site/pages/fr/about/branding.mdx b/apps/site/pages/fr/about/branding.mdx index bd7fe749280d8..7b1c241923000 100644 --- a/apps/site/pages/fr/about/branding.mdx +++ b/apps/site/pages/fr/about/branding.mdx @@ -11,13 +11,7 @@ Veuillez consulter la [politique en matière de marques](https://trademark-polic Crédit à [Angela Angelini](https://www.linkedin.com/in/angeliningl/) pour la conception et la contribution de la tortue-fusée. -Mascotte de Node.js +Mascotte de Node.js ## Logo Node.js® @@ -33,7 +27,6 @@ Crédit à [Angela Angelini](https://www.linkedin.com/in/angeliningl/) pour la c Logo horizontal clair de Node.js - @@ -50,7 +43,6 @@ Crédit à [Angela Angelini](https://www.linkedin.com/in/angeliningl/) pour la c Logo empilé clair de Node.js - @@ -61,7 +53,6 @@ Crédit à [Angela Angelini](https://www.linkedin.com/in/angeliningl/) pour la c Logo empilé blanc de Node.js - @@ -78,7 +69,6 @@ Crédit à [Angela Angelini](https://www.linkedin.com/in/angeliningl/) pour la c Icons JS Blanc - diff --git a/apps/site/pages/fr/about/index.mdx b/apps/site/pages/fr/about/index.mdx index 914d165ead2ad..73a10f0da21df 100644 --- a/apps/site/pages/fr/about/index.mdx +++ b/apps/site/pages/fr/about/index.mdx @@ -15,13 +15,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -32,13 +32,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/fr/about/security-reporting.mdx b/apps/site/pages/fr/about/security-reporting.mdx index b17332a3543ac..d811ded7a3dde 100644 --- a/apps/site/pages/fr/about/security-reporting.mdx +++ b/apps/site/pages/fr/about/security-reporting.mdx @@ -74,15 +74,8 @@ Si vous avez des suggestions sur la façon dont ce processus pourrait être amé ## OpenSSF Best Practices - - Badge OpenSSF + +Badge OpenSSF Le [badge des meilleures pratiques] de l'Open Source Security Foundation (OpenSSF) (https://github.com/coreinfrastructure/best-practices-badge) est un moyen pour les projets de logiciels libres et open source (FLOSS) de montrer qu'ils suivent les meilleures pratiques. Les projets peuvent volontairement auto-certifier la manière dont ils suivent chaque meilleure pratique. Les utilisateurs du badge peuvent rapidement déterminer quels sont les projets FLOSS qui suivent les meilleures pratiques et qui sont donc plus susceptibles de produire des logiciels sécurisés de meilleure qualité. diff --git a/apps/site/pages/fr/download/current.mdx b/apps/site/pages/fr/download/current.mdx new file mode 100644 index 0000000000000..a4816c7603613 --- /dev/null +++ b/apps/site/pages/fr/download/current.mdx @@ -0,0 +1,28 @@ +--- +layout: download +title: Télécharger Node.js® +--- + +
+Obtenir Node.js® pour l'utiliser avec + + + + + Ou obtenez Node.js® préconstruit exécutant une architecture. + + + +
+ +
+Lire le journal des modifications pour cette version. + +Lire le journal des modifications pour cette version. + +Apprenez à vérifier les SHASUMS signés. + +Découvrez comment compiler Node.js à partir des sources. + +Consultez nos binaires chaque nuit, toutes les versions précédentes ou les binaires non officiels pour d'autres plateformes. +
diff --git a/apps/site/pages/fr/download/index.mdx b/apps/site/pages/fr/download/index.mdx new file mode 100644 index 0000000000000..dd559ba8104a1 --- /dev/null +++ b/apps/site/pages/fr/download/index.mdx @@ -0,0 +1,28 @@ +--- +layout: download +title: Télécharger Node.js® +--- + +
+Obtenir Node.js® pour l'utiliser avec + + + + + Ou obtenez un Node.js® préconstruit exécutant une architecture. + + + +
+ +
+Lire le journal des modifications pour cette version. + +Lire le journal des modifications pour cette version. + +Apprenez à vérifier les SHASUMS signés. + +Découvrez comment compiler Node.js à partir des sources. + +Consultez nos binaires chaque nuit, toutes les versions précédentes ou les binaires non officiels pour d'autres plateformes. +
diff --git a/apps/site/pages/fr/index.mdx b/apps/site/pages/fr/index.mdx index 2cd1371107d46..e7ff5e8f88325 100644 --- a/apps/site/pages/fr/index.mdx +++ b/apps/site/pages/fr/index.mdx @@ -9,8 +9,7 @@ layout: home

Exécuter du JavaScript partout

-Node.js® est un environnement d'exécution JavaScript gratuit, open-source et multiplateforme qui permet aux développeurs de créer des serveurs, des applications web, des outils en ligne de commande et des scripts. - + Node.js® est un environnement d'exécution JavaScript gratuit, open-source et multiplateforme qui permet aux développeurs de créer des serveurs, des applications web, des outils en ligne de commande et des scripts.
@@ -45,93 +44,87 @@ Node.js® est un environnement d'exécution JavaScript gratuit, open-source et m // server.mjs import { createServer } from 'node:http'; -const server = createServer((req, res) => { -res.writeHead(200, { 'Content-Type': 'text/plain' }); -res.end('Hello World!\n'); -}); - -// starts a simple http server locally on port 3000 -server.listen(3000, '127.0.0.1', () => { -console.log('Listening on 127.0.0.1:3000'); -}); - -// run with `node server.mjs` - -```` - -```js displayName="Write Tests" -// tests.mjs -import assert from 'node:assert'; -import test from 'node:test'; - -test('that 1 is equal 1', () => { - assert.strictEqual(1, 1); -}); - -test('that throws as 1 is not equal 2', () => { - // throws an exception because 1 != 2 - assert.strictEqual(1, 2); -}); - -// run with `node tests.mjs` -```` - -```js displayName="Read and Hash a File" -// crypto.mjs -import { createHash } from 'node:crypto'; -import { readFile } from 'node:fs/promises'; - -const hasher = createHash('sha1'); - -hasher.setEncoding('hex'); -// ensure you have a `package.json` file for this test! -hasher.write(await readFile('package.json')); -hasher.end(); - -const fileHash = hasher.read(); - -// run with `node crypto.mjs` -``` - -```js displayName="Streams Pipeline" -// streams.mjs -import { pipeline } from 'node:stream/promises'; -import { createReadStream, createWriteStream } from 'node:fs'; -import { createGzip } from 'node:zlib'; - -// ensure you have a `package.json` file for this test! -await pipeline( - createReadStream('package.json'), - createGzip(), - createWriteStream('package.json.gz') -); - -// run with `node streams.mjs` -``` - -```js displayName="Work with Threads" -// threads.mjs -import { - Worker, - isMainThread, - workerData, - parentPort, -} from 'node:worker_threads'; - -if (isMainThread) { - const data = 'some data'; - const worker = new Worker(import.meta.filename, { workerData: data }); - worker.on('message', msg => console.log('Reply from Thread:', msg)); -} else { - const source = workerData; - parentPort.postMessage(btoa(source.toUpperCase())); -} - -// run with `node threads.mjs` -``` - + const server = createServer((req, res) => { + res.writeHead(200, { 'Content-Type': 'text/plain' }); + res.end('Hello World!\n'); + }); + + // starts a simple http server locally on port 3000 + server.listen(3000, '127.0.0.1', () => { + console.log('Listening on 127.0.0.1:3000'); + }); + + // run with `node server.mjs` + ``` + + ```js displayName="Write Tests" + // tests.mjs + import assert from 'node:assert'; + import test from 'node:test'; + + test('that 1 is equal 1', () => { + assert.strictEqual(1, 1); + }); + + test('that throws as 1 is not equal 2', () => { + // throws an exception because 1 != 2 + assert.strictEqual(1, 2); + }); + + // run with `node tests.mjs` + ``` + + ```js displayName="Read and Hash a File" + // crypto.mjs + import { createHash } from 'node:crypto'; + import { readFile } from 'node:fs/promises'; + + const hasher = createHash('sha1'); + + hasher.setEncoding('hex'); + // ensure you have a `package.json` file for this test! + hasher.write(await readFile('package.json')); + hasher.end(); + + const fileHash = hasher.read(); + + // run with `node crypto.mjs` + ``` + + ```js displayName="Streams Pipeline" + // streams.mjs + import { pipeline } from 'node:stream/promises'; + import { createReadStream, createWriteStream } from 'node:fs'; + import { createGzip } from 'node:zlib'; + + // ensure you have a `package.json` file for this test! + await pipeline + ( + createReadStream('package.json'), + createGzip(), + createWriteStream('package.json.gz') + ); + + // run with `node streams.mjs` + ``` + + ```js displayName="Work with Threads" + // threads.mjs + import { Worker, isMainThread, + workerData, parentPort } from 'node:worker_threads'; + + if (isMainThread) { + const data = 'some data'; + const worker = new Worker(import.meta.filename, { workerData: data }); + worker.on('message', msg => console.log('Reply from Thread:', msg)); + } else { + const source = workerData; + parentPort.postMessage(btoa(source.toUpperCase())); + } + + // run with `node threads.mjs` + ```
Apprenez-en plus sur ce que Node.js est capable d'offrir avec notre [Matériel d'apprentissage](/learn). - diff --git a/apps/site/pages/id/about/branding.mdx b/apps/site/pages/id/about/branding.mdx index 503745304067a..58c108b838b20 100644 --- a/apps/site/pages/id/about/branding.mdx +++ b/apps/site/pages/id/about/branding.mdx @@ -11,13 +11,7 @@ Harap tinjau [kebijakan merek dagang](https://trademark-policy.openjsf.org/) unt Penghargaan kepada [Angela Angelini](https://www.linkedin.com/in/angeliningl/) atas desain dan kontribusinya terhadap Rocket Turtle. -Node.js mascot +Node.js mascot ## Logo Node.js® @@ -33,7 +27,6 @@ Penghargaan kepada [Angela Angelini](https://www.linkedin.com/in/angeliningl/) a Logo Terang Horizontal Node.js® - @@ -50,7 +43,6 @@ Penghargaan kepada [Angela Angelini](https://www.linkedin.com/in/angeliningl/) a Logo Terang Bertumpuk Node.js® - @@ -61,7 +53,6 @@ Penghargaan kepada [Angela Angelini](https://www.linkedin.com/in/angeliningl/) a Logo Bertumpuk Putih Node.js - @@ -78,7 +69,6 @@ Penghargaan kepada [Angela Angelini](https://www.linkedin.com/in/angeliningl/) a Ikon JS Putih - diff --git a/apps/site/pages/id/about/index.mdx b/apps/site/pages/id/about/index.mdx index 623a5c9777f81..4b81588bbf2f6 100644 --- a/apps/site/pages/id/about/index.mdx +++ b/apps/site/pages/id/about/index.mdx @@ -17,13 +17,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -34,13 +34,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -62,7 +62,7 @@ HTTP adalah warga negara kelas satu di Node.js, dirancang dengan streaming dan r latensi dalam pikiran. Ini membuat Node.js sangat cocok untuk fondasi web perpustakaan atau kerangka kerja. -Node.js dirancang tanpa thread bukan berarti Anda tidak dapat memanfaatkan banyak inti di lingkungan Anda. Proses anak dapat dihasilkan dengan menggunakan API child_process.fork() kami, dan dirancang agar mudah untuk berkomunikasi. Dibangun di atas antarmuka yang sama adalah modul cluster, yang memungkinkan Anda berbagi soket antar proses untuk mengaktifkan penyeimbangan beban pada inti Anda. +Node.js dirancang tanpa thread bukan berarti Anda tidak dapat memanfaatkan banyak inti di lingkungan Anda. Proses anak dapat dihasilkan dengan menggunakan API child\_process.fork() kami, dan dirancang agar mudah untuk berkomunikasi. Dibangun di atas antarmuka yang sama adalah modul cluster, yang memungkinkan Anda berbagi soket antar proses untuk mengaktifkan penyeimbangan beban pada inti Anda. [blocking vs. non-blocking]: /learn/asynchronous-work/overview-of-blocking-vs-non-blocking [`child_process.fork()`]: https://nodejs.org/api/child_process.html diff --git a/apps/site/pages/id/about/security-reporting.mdx b/apps/site/pages/id/about/security-reporting.mdx index d2808fcb4b6bd..eec7c6747e8cd 100644 --- a/apps/site/pages/id/about/security-reporting.mdx +++ b/apps/site/pages/id/about/security-reporting.mdx @@ -51,11 +51,7 @@ Jika Anda memiliki saran tentang bagaimana proses ini dapat ditingkatkan, silaka ## Praktik Terbaik OpenSSF - OpenSSF Badge +OpenSSF Badge [Best Practices badge](https://github.com/coreinfrastructure/best-practices-badge) Open Source Security Foundation (OpenSSF) adalah cara bagi proyek Free/Libre dan Open Source Software (FLOSS) untuk menunjukkan bahwa mereka mengikuti praktik terbaik. Proyek dapat secara sukarela melakukan sertifikasi sendiri bagaimana mereka mengikuti setiap praktik terbaik. Konsumen yang tersertifikasi dapat dengan cepat menilai proyek FLOSS mana yang mengikuti praktik terbaik dan sebagai hasilnya, mereka lebih cenderung menghasilkan perangkat lunak aman berkualitas lebih tinggi. diff --git a/apps/site/pages/id/index.mdx b/apps/site/pages/id/index.mdx index cbe152c9a454f..81c705ffaffe9 100644 --- a/apps/site/pages/id/index.mdx +++ b/apps/site/pages/id/index.mdx @@ -9,10 +9,9 @@ layout: home

Jalankan JavaScript Di Mana Saja

-Node.js® adalah lingkungan runtime JavaScript gratis dan sumber terbuka yang -lintas platform, yang memungkinkan pengembang membuat server, aplikasi web, -alat baris perintah, dan skrip. - + Node.js® adalah lingkungan runtime JavaScript gratis dan sumber terbuka yang + lintas platform, yang memungkinkan pengembang membuat server, aplikasi web, + alat baris perintah, dan skrip.
@@ -47,93 +46,87 @@ alat baris perintah, dan skrip. // server.mjs import { createServer } from 'node:http'; -const server = createServer((req, res) => { -res.writeHead(200, { 'Content-Type': 'text/plain' }); -res.end('Hello World!\n'); -}); - -// starts a simple http server locally on port 3000 -server.listen(3000, '127.0.0.1', () => { -console.log('Listening on 127.0.0.1:3000'); -}); - -// run with `node server.mjs` - -```` - -```js displayName="Write Tests" -// tests.mjs -import assert from 'node:assert'; -import test from 'node:test'; - -test('that 1 is equal 1', () => { - assert.strictEqual(1, 1); -}); - -test('that throws as 1 is not equal 2', () => { - // throws an exception because 1 != 2 - assert.strictEqual(1, 2); -}); - -// run with `node tests.mjs` -```` - -```js displayName="Read and Hash a File" -// crypto.mjs -import { createHash } from 'node:crypto'; -import { readFile } from 'node:fs/promises'; - -const hasher = createHash('sha1'); - -hasher.setEncoding('hex'); -// ensure you have a `package.json` file for this test! -hasher.write(await readFile('package.json')); -hasher.end(); - -const fileHash = hasher.read(); - -// run with `node crypto.mjs` -``` - -```js displayName="Streams Pipeline" -// streams.mjs -import { pipeline } from 'node:stream/promises'; -import { createReadStream, createWriteStream } from 'node:fs'; -import { createGzip } from 'node:zlib'; - -// ensure you have a `package.json` file for this test! -await pipeline( - createReadStream('package.json'), - createGzip(), - createWriteStream('package.json.gz') -); - -// run with `node streams.mjs` -``` - -```js displayName="Work with Threads" -// threads.mjs -import { - Worker, - isMainThread, - workerData, - parentPort, -} from 'node:worker_threads'; - -if (isMainThread) { - const data = 'some data'; - const worker = new Worker(import.meta.filename, { workerData: data }); - worker.on('message', msg => console.log('Reply from Thread:', msg)); -} else { - const source = workerData; - parentPort.postMessage(btoa(source.toUpperCase())); -} - -// run with `node threads.mjs` -``` - + const server = createServer((req, res) => { + res.writeHead(200, { 'Content-Type': 'text/plain' }); + res.end('Hello World!\n'); + }); + + // starts a simple http server locally on port 3000 + server.listen(3000, '127.0.0.1', () => { + console.log('Listening on 127.0.0.1:3000'); + }); + + // run with `node server.mjs` + ``` + + ```js displayName="Write Tests" + // tests.mjs + import assert from 'node:assert'; + import test from 'node:test'; + + test('that 1 is equal 1', () => { + assert.strictEqual(1, 1); + }); + + test('that throws as 1 is not equal 2', () => { + // throws an exception because 1 != 2 + assert.strictEqual(1, 2); + }); + + // run with `node tests.mjs` + ``` + + ```js displayName="Read and Hash a File" + // crypto.mjs + import { createHash } from 'node:crypto'; + import { readFile } from 'node:fs/promises'; + + const hasher = createHash('sha1'); + + hasher.setEncoding('hex'); + // ensure you have a `package.json` file for this test! + hasher.write(await readFile('package.json')); + hasher.end(); + + const fileHash = hasher.read(); + + // run with `node crypto.mjs` + ``` + + ```js displayName="Streams Pipeline" + // streams.mjs + import { pipeline } from 'node:stream/promises'; + import { createReadStream, createWriteStream } from 'node:fs'; + import { createGzip } from 'node:zlib'; + + // ensure you have a `package.json` file for this test! + await pipeline + ( + createReadStream('package.json'), + createGzip(), + createWriteStream('package.json.gz') + ); + + // run with `node streams.mjs` + ``` + + ```js displayName="Work with Threads" + // threads.mjs + import { Worker, isMainThread, + workerData, parentPort } from 'node:worker_threads'; + + if (isMainThread) { + const data = 'some data'; + const worker = new Worker(import.meta.filename, { workerData: data }); + worker.on('message', msg => console.log('Reply from Thread:', msg)); + } else { + const source = workerData; + parentPort.postMessage(btoa(source.toUpperCase())); + } + + // run with `node threads.mjs` + ```
Pelajari lebih lanjut tentang apa yang bisa ditawarkan Node.js melalui [Bahan Pembelajaran](/learn) kami. - diff --git a/apps/site/pages/ja/about/branding.mdx b/apps/site/pages/ja/about/branding.mdx index 2e2e19b65d342..25ace67d18fc9 100644 --- a/apps/site/pages/ja/about/branding.mdx +++ b/apps/site/pages/ja/about/branding.mdx @@ -11,13 +11,7 @@ Node.jsのロゴやシンボルマークの許可されている利用方法に ロケットタートルは作者である[Angela Angelini](https://www.linkedin.com/in/angeliningl/)から提供されたものです。 -Node.jsマスコット +Node.jsマスコット ## Node.js®ロゴ @@ -33,7 +27,6 @@ Node.jsのロゴやシンボルマークの許可されている利用方法に Node.jsライト横型ロゴ - @@ -50,7 +43,6 @@ Node.jsのロゴやシンボルマークの許可されている利用方法に Node.jsライトスタック型ロゴ - @@ -61,7 +53,6 @@ Node.jsのロゴやシンボルマークの許可されている利用方法に Node.jsホワイトスタック型ロゴ - @@ -78,7 +69,6 @@ Node.jsのロゴやシンボルマークの許可されている利用方法に JSアイコンホワイト - diff --git a/apps/site/pages/ja/about/index.mdx b/apps/site/pages/ja/about/index.mdx index 00c987a077ad0..7f5bc663529eb 100644 --- a/apps/site/pages/ja/about/index.mdx +++ b/apps/site/pages/ja/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/ja/about/previous-releases.mdx b/apps/site/pages/ja/about/previous-releases.mdx index b7ab7d96b6a86..5a17d2a65b4bd 100644 --- a/apps/site/pages/ja/about/previous-releases.mdx +++ b/apps/site/pages/ja/about/previous-releases.mdx @@ -20,3 +20,16 @@ Node.jsのリリーススケジュールに関する詳しい情報は[GitHub](h ## 各バージョンの最新のリリース + +## 公式とコミュニティー + +Node.jsのウェブサイトはNode.jsを非対話的な方法でインストールできるように数多くのインストール方法を提供しています。例えば、CLIやOSのパッケージマネージャー(`apt`など)、Node.jsのバージョンマネージャー(`nvm`など)を通してインストールすることができます。 + +Node.jsプロジェクトはコミュニティーの取り組みを普及させ、宣伝する試みとして、公式とコミュニティーの両方のインストール方法をリストする新しいダウンロードページを導入しました。この変更に伴い、「公式」と「コミュニティー」のインストール方法の概念を導入しました。「公式」とみなされるためにはインストール方法が以下の条件を満たしている必要があります: + +必要条件 | +-------------------------------------------------------------------- | +Node.jsの新しいリリースは公式リリースと同時に利用可能できなければならない | +プロジェクトメンテナーはNode.jsと直接的なコミュニケーションも含めた密接な関係でなければらなない | +Node.jsプロジェクトによって同梱されている公式バイナリーをダウンロードさせるインストール方法になっていなければならない | +バイナリーが利用可能な場合にソースからビルドしたりNode.jsが提供する公式バイナリーを改変しないインストール方法にしなければいけない | diff --git a/apps/site/pages/ja/about/security-reporting.mdx b/apps/site/pages/ja/about/security-reporting.mdx new file mode 100644 index 0000000000000..a2b297db9931f --- /dev/null +++ b/apps/site/pages/ja/about/security-reporting.mdx @@ -0,0 +1,57 @@ +--- +title: セキュリティーレポート +layout: about +--- + +セキュリティーレポート + +最新のセキュリティーポリシーについては[こちらのページ](https://github.com/nodejs/node/security/policy)も確認してください。 + +## Node.jsの問題の報告 + +Node.jsのセキュリティーに関する問題は[HackerOne](https://hackerone.com/nodejs)を通して報告してください。 + +あなたの報告は5日以内に受領され、10日以内に次のステップに関する詳しい回答が提供されます。 + +あなたの報告への最初の返信の後、セキュリティーチームは修正と最終的な発表に向けて進捗をお知らせします。また、報告された問題に関する追加情報やガイダンスを求める場合があります。 + +### Node.jsの脆弱性報奨金制度 + +Node.jsプロジェクトはセキュリティー研究者と責任ある情報開示のために公式な脆弱性報奨金制度に参加しています。この制度はHackerOneプラットフォームを通して管理されています。詳細については[https://hackerone.com/nodejs](https://hackerone.com/nodejs)を確認してください。 + +## サードパーティーモジュールの問題の報告 + +サードパーティーモジュールのセキュリティーに関する問題はそれぞれの管理者に報告する必要があります。 + +## 情報開示方針 + +こちらがNode.jsのセキュリティーに関する情報開示方針です。 + +報告されたセキュリティーの問題は受領されると、主担当者が割り当てられます。この主担当者は問題の修正やリリース工程を調整します。問題の確認が終わると影響を受けるすべてのバージョンの一覧が決まります。コードは潜在的に類似の問題がないか確認するために監査されます。これらの修正はメンテナンス中のすべてのバージョンへ適用するために準備されます。これらの修正は公開リポジトリーにコミットされることはなく、情報が発表されるまで内部で保持されます。 + +この脆弱性のために提案された禁止日が選択され、脆弱性に対してCVE(Common Vulnerabilities and Exposures(CVE®))が要求されます。 + +禁止日にはNode.jsのセキュリティーメーリングリストに発表される内容のコピーが送信されます。変更は公開リポジトリーにプッシュされ、新しいビルドはnodejs.orgにデプロイされます。メーリングリストが通知されてから6時間以内に勧告のコピーがNode.jsブログに公開されます。 + +通常、禁止日はCVEが発行されてから72時間に設定されます。ただし、これは問題の深刻度や修正の適用にかかる難易度によって異なる場合があります。 + +これらの工程には時間がかかる場合があります。特に他のプロジェクトの管理者との調整が必要な場合です。問題を可能な限り迅速に処理するためにあらゆる努力がなされます。ただし、情報の開示が一貫して処理されることを確保するために、上記のリリース工程に従うことが重要です。 + +## セキュリティー更新の受信 + +セキュリティーの問題に関する情報は次の方法で通知されます。 + +[Googleグループ](https://groups.google.com/group/nodejs-sec) +[Node.jsブログ](/blog) + +## この方針に関するご意見 + +これらの工程を改善する方法についてご意見がある場合は、[pull request](https://github.com/nodejs/nodejs.org)を作成するか、[issueを作成](https://github.com/nodejs/security-wg/issues/new)して議論してください。 + +## OpenSSFベストプラクティス + + +OpenSSFバッジ + + +オープンソースセキュリティー財団(OpenSSF)の[ベストプラクティスバッジ](https://github.com/coreinfrastructure/best-practices-badge)は、Free/Libre and Open Source Software(FLOSS)プロジェクトがベストプラクティスに従っていることを示す方法です。プロジェクトはそれぞれのベストプラクティスに従っている方法を自発的に自己認証できます。バッジを使うことでどのFLOSSプロジェクトがベストプラクティスに従っているかを迅速に評価でき、結果としてより高品質で安全なソフトウェアを製造する可能性が高くなります。 diff --git a/apps/site/pages/ja/download/current.mdx b/apps/site/pages/ja/download/current.mdx new file mode 100644 index 0000000000000..aa1e295165498 --- /dev/null +++ b/apps/site/pages/ja/download/current.mdx @@ -0,0 +1,28 @@ +--- +layout: download +title: Node.js®をダウンロードする +--- + +
+用のNode.js® を使ってダウンロードする + + + + + アーキテクチャーで動作する用のビルド済みのNode.js®も利用できます。 + + + +
+ +
+このバージョンの変更点を確認できます。 + +このバージョンのブログ記事を確認できます。 + +署名済みSHASUMSの検証方法について詳しくはこちら。 + +ソースコードからNode.jsをビルドする方法はこちら。 + +ナイトリー版のバイナリーや過去のリリース、その他のプラットフォーム用の非公式のバイナリーもあります。 +
diff --git a/apps/site/pages/ja/download/index.mdx b/apps/site/pages/ja/download/index.mdx new file mode 100644 index 0000000000000..aa1e295165498 --- /dev/null +++ b/apps/site/pages/ja/download/index.mdx @@ -0,0 +1,28 @@ +--- +layout: download +title: Node.js®をダウンロードする +--- + +
+用のNode.js® を使ってダウンロードする + + + + + アーキテクチャーで動作する用のビルド済みのNode.js®も利用できます。 + + + +
+ +
+このバージョンの変更点を確認できます。 + +このバージョンのブログ記事を確認できます。 + +署名済みSHASUMSの検証方法について詳しくはこちら。 + +ソースコードからNode.jsをビルドする方法はこちら。 + +ナイトリー版のバイナリーや過去のリリース、その他のプラットフォーム用の非公式のバイナリーもあります。 +
diff --git a/apps/site/pages/ja/index.mdx b/apps/site/pages/ja/index.mdx index 935fef71d8b3d..f67e22920db51 100644 --- a/apps/site/pages/ja/index.mdx +++ b/apps/site/pages/ja/index.mdx @@ -9,8 +9,7 @@ layout: home

どこでもJavaScriptを使おう

-Node.js®はクロスプラットフォームに対応したフリーでオープンソースのJavaScript実行環境です。開発者にサーバー、ウェブアプリ、コマンドラインツール、スクリプトなどを開発する環境を提供します。 - + Node.js®はクロスプラットフォームに対応したフリーでオープンソースのJavaScript実行環境です。開発者にサーバー、ウェブアプリ、コマンドラインツール、スクリプトなどを開発する環境を提供します。
@@ -45,93 +44,87 @@ Node.js®はクロスプラットフォームに対応したフリーでオー // server.mjs import { createServer } from 'node:http'; -const server = createServer((req, res) => { -res.writeHead(200, { 'Content-Type': 'text/plain' }); -res.end('Hello World!\n'); -}); - -// starts a simple http server locally on port 3000 -server.listen(3000, '127.0.0.1', () => { -console.log('Listening on 127.0.0.1:3000'); -}); - -// run with `node server.mjs` - -```` - -```js displayName="Write Tests" -// tests.mjs -import assert from 'node:assert'; -import test from 'node:test'; - -test('that 1 is equal 1', () => { - assert.strictEqual(1, 1); -}); - -test('that throws as 1 is not equal 2', () => { - // throws an exception because 1 != 2 - assert.strictEqual(1, 2); -}); - -// run with `node tests.mjs` -```` - -```js displayName="Read and Hash a File" -// crypto.mjs -import { createHash } from 'node:crypto'; -import { readFile } from 'node:fs/promises'; - -const hasher = createHash('sha1'); - -hasher.setEncoding('hex'); -// ensure you have a `package.json` file for this test! -hasher.write(await readFile('package.json')); -hasher.end(); - -const fileHash = hasher.read(); - -// run with `node crypto.mjs` -``` - -```js displayName="Streams Pipeline" -// streams.mjs -import { pipeline } from 'node:stream/promises'; -import { createReadStream, createWriteStream } from 'node:fs'; -import { createGzip } from 'node:zlib'; - -// ensure you have a `package.json` file for this test! -await pipeline( - createReadStream('package.json'), - createGzip(), - createWriteStream('package.json.gz') -); - -// run with `node streams.mjs` -``` - -```js displayName="Work with Threads" -// threads.mjs -import { - Worker, - isMainThread, - workerData, - parentPort, -} from 'node:worker_threads'; - -if (isMainThread) { - const data = 'some data'; - const worker = new Worker(import.meta.filename, { workerData: data }); - worker.on('message', msg => console.log('Reply from Thread:', msg)); -} else { - const source = workerData; - parentPort.postMessage(btoa(source.toUpperCase())); -} - -// run with `node threads.mjs` -``` - + const server = createServer((req, res) => { + res.writeHead(200, { 'Content-Type': 'text/plain' }); + res.end('Hello World!\n'); + }); + + // starts a simple http server locally on port 3000 + server.listen(3000, '127.0.0.1', () => { + console.log('Listening on 127.0.0.1:3000'); + }); + + // run with `node server.mjs` + ``` + + ```js displayName="Write Tests" + // tests.mjs + import assert from 'node:assert'; + import test from 'node:test'; + + test('that 1 is equal 1', () => { + assert.strictEqual(1, 1); + }); + + test('that throws as 1 is not equal 2', () => { + // throws an exception because 1 != 2 + assert.strictEqual(1, 2); + }); + + // run with `node tests.mjs` + ``` + + ```js displayName="Read and Hash a File" + // crypto.mjs + import { createHash } from 'node:crypto'; + import { readFile } from 'node:fs/promises'; + + const hasher = createHash('sha1'); + + hasher.setEncoding('hex'); + // ensure you have a `package.json` file for this test! + hasher.write(await readFile('package.json')); + hasher.end(); + + const fileHash = hasher.read(); + + // run with `node crypto.mjs` + ``` + + ```js displayName="Streams Pipeline" + // streams.mjs + import { pipeline } from 'node:stream/promises'; + import { createReadStream, createWriteStream } from 'node:fs'; + import { createGzip } from 'node:zlib'; + + // ensure you have a `package.json` file for this test! + await pipeline + ( + createReadStream('package.json'), + createGzip(), + createWriteStream('package.json.gz') + ); + + // run with `node streams.mjs` + ``` + + ```js displayName="Work with Threads" + // threads.mjs + import { Worker, isMainThread, + workerData, parentPort } from 'node:worker_threads'; + + if (isMainThread) { + const data = 'some data'; + const worker = new Worker(import.meta.filename, { workerData: data }); + worker.on('message', msg => console.log('Reply from Thread:', msg)); + } else { + const source = workerData; + parentPort.postMessage(btoa(source.toUpperCase())); + } + + // run with `node threads.mjs` + ```
私たちの[学習教材](/learn)でNode.jsでできることをさらに学んでみましょう。 - diff --git a/apps/site/pages/ko/about/branding.mdx b/apps/site/pages/ko/about/branding.mdx index 3b957d4cec5f4..12e8b5542e667 100644 --- a/apps/site/pages/ko/about/branding.mdx +++ b/apps/site/pages/ko/about/branding.mdx @@ -11,13 +11,7 @@ Node.js® 로고 및 마크의 허용 가능한 사용에 대한 정보는 [상 로켓 거북이를 디자인하고 기여한 [Angela Angelini](https://www.linkedin.com/in/angeliningl/)에게 감사의 말씀을 전합니다. -Node.js 마스코트 +Node.js 마스코트 ## Node.js® 로고 @@ -33,7 +27,6 @@ Node.js® 로고 및 마크의 허용 가능한 사용에 대한 정보는 [상 Node.js 밝은 수평 로고 - @@ -50,7 +43,6 @@ Node.js® 로고 및 마크의 허용 가능한 사용에 대한 정보는 [상 Node.js 밝은 세로 로고 - @@ -61,7 +53,6 @@ Node.js® 로고 및 마크의 허용 가능한 사용에 대한 정보는 [상 Node.js 흰색 세로 로고 - @@ -78,7 +69,6 @@ Node.js® 로고 및 마크의 허용 가능한 사용에 대한 정보는 [상 흰색 JS 아이콘 - diff --git a/apps/site/pages/ko/about/index.mdx b/apps/site/pages/ko/about/index.mdx index 6b1f89e3ecfb4..b72ea24718330 100644 --- a/apps/site/pages/ko/about/index.mdx +++ b/apps/site/pages/ko/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/ko/about/security-reporting.mdx b/apps/site/pages/ko/about/security-reporting.mdx index 3f5e5252363e8..58ea3b0e620bb 100644 --- a/apps/site/pages/ko/about/security-reporting.mdx +++ b/apps/site/pages/ko/about/security-reporting.mdx @@ -50,15 +50,8 @@ Node.js의 보안 공개 정책은 다음과 같습니다. ## OpenSSF 모범 사례 - - OpenSSF 배지 + +OpenSSF 배지 Open Source Security Foundation(OpenSSF) [모범 사례 배지](https://github.com/coreinfrastructure/best-practices-badge)는 자유/오픈 소스 소프트웨어(FLOSS) 프로젝트가 모범 사례를 따르고 있음을 보여주는 방법입니다. 프로젝트는 자발적으로 각 사례를 어떻게 따르고 있는지에 대해 자체 인증할 수 있습니다. 이 배지를 확인하는 사용자들은 FLOSS 프로젝트가 모범 사례를 따르고 있는지 빠르게 평가할 수 있으며, 그 결과 더 높은 품질의 안전한 소프트웨어를 제작할 가능성이 높다는 것을 알 수 있습니다. diff --git a/apps/site/pages/ko/index.mdx b/apps/site/pages/ko/index.mdx index 25f31ed624ab0..575404dbbf5db 100644 --- a/apps/site/pages/ko/index.mdx +++ b/apps/site/pages/ko/index.mdx @@ -9,8 +9,7 @@ layout: home

어디서든 JavaScript를 실행하세요

-Node.js®는 무료, 오픈소스, 다중 플랫폼 JavaScript 런타임 환경으로 개발자 여러분이 서버, 웹 애플리케이션, 명령어 작성 도구와 스크립트를 만들도록 해줍니다. - + Node.js®는 무료, 오픈소스, 다중 플랫폼 JavaScript 런타임 환경으로 개발자 여러분이 서버, 웹 애플리케이션, 명령어 작성 도구와 스크립트를 만들도록 해줍니다.
@@ -45,93 +44,87 @@ Node.js®는 무료, 오픈소스, 다중 플랫폼 JavaScript 런타임 환경 // server.mjs import { createServer } from 'node:http'; -const server = createServer((req, res) => { -res.writeHead(200, { 'Content-Type': 'text/plain' }); -res.end('Hello World!\n'); -}); - -// starts a simple http server locally on port 3000 -server.listen(3000, '127.0.0.1', () => { -console.log('Listening on 127.0.0.1:3000'); -}); - -// run with `node server.mjs` - -```` - -```js displayName="Write Tests" -// tests.mjs -import assert from 'node:assert'; -import test from 'node:test'; - -test('that 1 is equal 1', () => { - assert.strictEqual(1, 1); -}); - -test('that throws as 1 is not equal 2', () => { - // throws an exception because 1 != 2 - assert.strictEqual(1, 2); -}); - -// run with `node tests.mjs` -```` - -```js displayName="Read and Hash a File" -// crypto.mjs -import { createHash } from 'node:crypto'; -import { readFile } from 'node:fs/promises'; - -const hasher = createHash('sha1'); - -hasher.setEncoding('hex'); -// ensure you have a `package.json` file for this test! -hasher.write(await readFile('package.json')); -hasher.end(); - -const fileHash = hasher.read(); - -// run with `node crypto.mjs` -``` - -```js displayName="Streams Pipeline" -// streams.mjs -import { pipeline } from 'node:stream/promises'; -import { createReadStream, createWriteStream } from 'node:fs'; -import { createGzip } from 'node:zlib'; - -// ensure you have a `package.json` file for this test! -await pipeline( - createReadStream('package.json'), - createGzip(), - createWriteStream('package.json.gz') -); - -// run with `node streams.mjs` -``` - -```js displayName="Work with Threads" -// threads.mjs -import { - Worker, - isMainThread, - workerData, - parentPort, -} from 'node:worker_threads'; - -if (isMainThread) { - const data = 'some data'; - const worker = new Worker(import.meta.filename, { workerData: data }); - worker.on('message', msg => console.log('Reply from Thread:', msg)); -} else { - const source = workerData; - parentPort.postMessage(btoa(source.toUpperCase())); -} - -// run with `node threads.mjs` -``` - + const server = createServer((req, res) => { + res.writeHead(200, { 'Content-Type': 'text/plain' }); + res.end('Hello World!\n'); + }); + + // starts a simple http server locally on port 3000 + server.listen(3000, '127.0.0.1', () => { + console.log('Listening on 127.0.0.1:3000'); + }); + + // run with `node server.mjs` + ``` + + ```js displayName="Write Tests" + // tests.mjs + import assert from 'node:assert'; + import test from 'node:test'; + + test('that 1 is equal 1', () => { + assert.strictEqual(1, 1); + }); + + test('that throws as 1 is not equal 2', () => { + // throws an exception because 1 != 2 + assert.strictEqual(1, 2); + }); + + // run with `node tests.mjs` + ``` + + ```js displayName="Read and Hash a File" + // crypto.mjs + import { createHash } from 'node:crypto'; + import { readFile } from 'node:fs/promises'; + + const hasher = createHash('sha1'); + + hasher.setEncoding('hex'); + // ensure you have a `package.json` file for this test! + hasher.write(await readFile('package.json')); + hasher.end(); + + const fileHash = hasher.read(); + + // run with `node crypto.mjs` + ``` + + ```js displayName="Streams Pipeline" + // streams.mjs + import { pipeline } from 'node:stream/promises'; + import { createReadStream, createWriteStream } from 'node:fs'; + import { createGzip } from 'node:zlib'; + + // ensure you have a `package.json` file for this test! + await pipeline + ( + createReadStream('package.json'), + createGzip(), + createWriteStream('package.json.gz') + ); + + // run with `node streams.mjs` + ``` + + ```js displayName="Work with Threads" + // threads.mjs + import { Worker, isMainThread, + workerData, parentPort } from 'node:worker_threads'; + + if (isMainThread) { + const data = 'some data'; + const worker = new Worker(import.meta.filename, { workerData: data }); + worker.on('message', msg => console.log('Reply from Thread:', msg)); + } else { + const source = workerData; + parentPort.postMessage(btoa(source.toUpperCase())); + } + + // run with `node threads.mjs` + ```
Node.js가 제공하는 [학습 자료](/learn)를 통해 더 많은 정보를 알아보세요. - diff --git a/apps/site/pages/pt/about/index.mdx b/apps/site/pages/pt/about/index.mdx index 5a9795a95a8a3..daaab4881380c 100644 --- a/apps/site/pages/pt/about/index.mdx +++ b/apps/site/pages/pt/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/pt/about/security-reporting.mdx b/apps/site/pages/pt/about/security-reporting.mdx index 184f4b990d644..70272eaf6154a 100644 --- a/apps/site/pages/pt/about/security-reporting.mdx +++ b/apps/site/pages/pt/about/security-reporting.mdx @@ -50,15 +50,8 @@ Se tivermos sugestões sobre como este processo poderia ser melhorado, podemos s ## Boas Práticas da OpenSSF - - Distintivo da OpenSSF + +Distintivo da OpenSSF distintivo de boas práticas da “Open Source Security Foundation (OpenSSF)” é uma maneira de os projetos de Software Livre e de Código Aberto (FLOSS) mostrarem que seguem as boas práticas. Os projetos podem certificar-se voluntariamente como seguem cada uma das boas práticas. Os consumidores do distintivo podem avaliar rapidamente quais os projetos FLOSS que seguem as boas práticas e, consequentemente, têm maior probabilidade de produzir software seguro de superior qualidade. diff --git a/apps/site/pages/ro/about/get-involved/collab-summit.md b/apps/site/pages/ro/about/get-involved/collab-summit.md new file mode 100644 index 0000000000000..678f4f051cae5 --- /dev/null +++ b/apps/site/pages/ro/about/get-involved/collab-summit.md @@ -0,0 +1,17 @@ +--- +title: Summitul de colaborare +layout: about +--- + +# Summitul de colaborare + +Summitul de Colaborare Node.js este un eveniment informal conceput pentru a reuni contribuitorii actuali și potențiali, facilitând discuții despre Node.js prin colaborare activă, sesiuni de învățare și schimb de cunoștințe. Echipele, grupurile de lucru și membrii comunității se întâlnesc de două ori pe an pentru a susține procesul decizional și a avansa inițiative importante prin colaborare directă și implicare activă. + +## Cine participă? + +Summitul de Colaborare este frecventat în principal de contribuitorii actuali și membrii comunității, dar îi primește cu brațele deschise și pe cei care nu au contribuit încă, dar doresc să se implice. Dacă ești nou când vine vorba de contribuții aduse la Node.js, Summitul de Colaborare oferă o oportunitate excelentă de a înțelege activitatea comunității și cum poți contribui cu abilitățile tale, în timp ce îți perfecționezi cunoștințele. + +Înainte de summit, contribuitorii și membrii comunității trimit propuneri de sesiuni pentru a stabili programul. Participanții se pot familiariza cu sesiunile înainte de a ajunge la eveniment, luând parte la discuțiile generale ale comunității și se pot implica activ în sesiunile propriu-zise. Vor exista, de asemenea, numeroase oportunități pentru discuții spontane și sesiuni de brainstorming. + +Pentru informații despre Summiturile de Colaborare viitoare și trecute, consultă [Summit repo](https://github.com/openjs-foundation/summit). +Aruncă o privire la [tichetele înregistrate](https://github.com/nodejs/summit/issues) care prezintă subiectele propuse de contribuitori și membrii comunității pentru discuții față în față. diff --git a/apps/site/pages/ro/about/get-involved/events.mdx b/apps/site/pages/ro/about/get-involved/events.mdx new file mode 100644 index 0000000000000..740f02623c96c --- /dev/null +++ b/apps/site/pages/ro/about/get-involved/events.mdx @@ -0,0 +1,16 @@ +--- +title: Evenimente viitoare +layout: about +--- + +## Evenimente viitoare + +Evenimentele Node.js sunt deschise pentru toată lumea. Oricine dorește se poate alătura și participa. + +### Viitoarele întâlniri Node.js® + +Proiectul Node.js organizează numeroase întâlniri pe parcursul anului pentru a discuta și planifica diverse aspecte ale proiectului. + +Acestea sunt întâlnirile programate pentru următoarele 7 zile. + + diff --git a/apps/site/pages/tr/about/index.mdx b/apps/site/pages/tr/about/index.mdx index bc4e9683f1bf1..4973f55a84b66 100644 --- a/apps/site/pages/tr/about/index.mdx +++ b/apps/site/pages/tr/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/tr/about/security-reporting.mdx b/apps/site/pages/tr/about/security-reporting.mdx index 8c5cf0326847d..fc13948715082 100644 --- a/apps/site/pages/tr/about/security-reporting.mdx +++ b/apps/site/pages/tr/about/security-reporting.mdx @@ -52,15 +52,8 @@ Tartışmak için [bir konuyu dosyalayın](https://github.com/nodejs/security-wg ## OpenSSF En İyi Uygulamaları - - OpenSSF Rozeti + +OpenSSF Rozeti Açık Kaynak Güvenlik Vakfı (OpenSSF) [En İyi Uygulamalar rozeti](https://github.com/coreinfrastructure/best-practices-badge), Özgür/Kütüphane ve Açık Kaynak Yazılım (FLOSS) projelerinin en iyi uygulamaları takip ettiklerini göstermeleri için bir yoldur. Projeler gönüllü olarak her bir en iyi uygulamayı nasıl takip ettiklerini kendi kendilerine belgeleyebilirler. Rozetin tüketicileri, hangi FLOSS projelerinin en iyi uygulamaları takip ettiğini ve sonuç olarak daha yüksek kalitede güvenli yazılım üretme olasılığının daha yüksek olduğunu hızlı bir şekilde değerlendirebilirler. diff --git a/apps/site/pages/uk/about/branding.mdx b/apps/site/pages/uk/about/branding.mdx index 0d416c8a49ea4..03f2fc08f10bc 100644 --- a/apps/site/pages/uk/about/branding.mdx +++ b/apps/site/pages/uk/about/branding.mdx @@ -11,13 +11,7 @@ layout: about Дякуємо [Анджелі Анджеліні](https://www.linkedin.com/in/angeliningl) за дизайн та внесок у Rocket Turtle. -Маскот Node.js +Маскот Node.js ## Логотип Node.js® @@ -33,7 +27,6 @@ layout: about Світлий горизонтальний логотип Node.js - @@ -50,7 +43,6 @@ layout: about Світлий складений логотип Node.js® - @@ -61,7 +53,6 @@ layout: about Білий складений логотип Node.js® - @@ -78,7 +69,6 @@ layout: about Білий значок JS - diff --git a/apps/site/pages/uk/about/governance.md b/apps/site/pages/uk/about/governance.md index 179c03d627c04..52ca3681d5f8b 100644 --- a/apps/site/pages/uk/about/governance.md +++ b/apps/site/pages/uk/about/governance.md @@ -11,7 +11,7 @@ Node.js дотримується моделі прийняття рішень [ ## Співавтори -Основний репозиторій GitHub [nodejs/node][] обслуговується співавторами, які на постійній основі обираються іншими чинними співавторами. +Основний репозиторій GitHub [nodejs/node][] супроводжується співавторами, які на постійній основі обираються іншими чинними співавторами. Особи, які здійснюють важливий та цінний внесок, стають співавторами та отримують доступ для commit'ів. Ці особи визначаються іншими співавторами, а їхня номінація на цю роль обговорюється із чинними співавторами. diff --git a/apps/site/pages/uk/about/index.mdx b/apps/site/pages/uk/about/index.mdx index 8ace8ffa2c205..9fd7b29199885 100644 --- a/apps/site/pages/uk/about/index.mdx +++ b/apps/site/pages/uk/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/uk/about/security-reporting.mdx b/apps/site/pages/uk/about/security-reporting.mdx index c710284b2385d..2068921d6b36c 100644 --- a/apps/site/pages/uk/about/security-reporting.mdx +++ b/apps/site/pages/uk/about/security-reporting.mdx @@ -27,7 +27,7 @@ layout: about Ось політика розкриття інформації щодо безпеки в Node.js -Основний обробник отримує повідомлення про помилку безпеки, яке йому призначається. Ця особа координуватиме процес виправлення помилки та релізу. Помилку знаходять та визначають усі версії, де вона присутня. Код перевіряють на наявність схожих помилок. Потім проводять виправлення для всіх обслуговуваних релізів. Ці виправлення не випускаються в публічний репозиторій, а зберігаються локально, поки не буде здійснено оголошення. +Основний обробник отримує повідомлення про помилку безпеки, яке йому призначається. Ця особа координуватиме процес виправлення помилки та релізу. Помилку знаходять та визначають усі версії, де вона присутня. Код перевіряють на наявність схожих помилок. Потім проводять виправлення для всіх супроводжуваних релізів. Ці виправлення не випускаються в публічний репозиторій, а зберігаються локально, поки не буде здійснено оголошення. Обирається дата оголошення цієї вразливості та робиться запит на CVE (Common Vulnerabilities and Exposures (CVE®)) щодо неї. @@ -47,19 +47,12 @@ layout: about ## Коментарі стосовно цієї політики Якщо у вас є пропозиції щодо покращення цього процесу, створіть [pull request](https://github.com/nodejs/nodejs.org) або -[створіть issue](https://github.com/nodejs/security-wg/issues/new) для обговорення. +[issue](https://github.com/nodejs/security-wg/issues/new) для обговорення. ## Найкращі практики OpenSSF - - Значок OpenSSF + +Значок OpenSSF [Значок за найкращі практики](https://github.com/coreinfrastructure/best-practices-badge) від Open Source Security Foundation (OpenSSF) — це спосіб для проєктів із відкритим кодом (Free/Libre and Open Source Software, FLOSS) показати, що вони дотримуються найкращих практик. Проєкти можуть самостійно описати, як вони дотримуються кожної практики. Користувачі можуть швидко оцінити, які проєкти FLOSS дотримуються найкращих практик і, як результат, створювати безпечне ПЗ кращої якості. diff --git a/apps/site/pages/uk/download/current.mdx b/apps/site/pages/uk/download/current.mdx new file mode 100644 index 0000000000000..b064686a5b4ef --- /dev/null +++ b/apps/site/pages/uk/download/current.mdx @@ -0,0 +1,30 @@ +--- +layout: download +title: Завантажити Node.js® +--- + +
+Отримати Node.js® для за допомогою з + + + + + Або отримайте збудований Node.js® для з архітектурою . + + + +
+ +
+Читайте список змін цієї версії. + +Читайте публікацію в блозі про цю версію. + +Дізнайтеся, як перевірити підписані SHASUMS. + +Дізнайтеся, як зібрати Node.js із вихідного коду. + +Перегляньте наші нічні бінарні файли, +усі попередні релізи чи +неофіційні бінарні файли для інших платформ. +
diff --git a/apps/site/pages/uk/download/index.mdx b/apps/site/pages/uk/download/index.mdx new file mode 100644 index 0000000000000..b064686a5b4ef --- /dev/null +++ b/apps/site/pages/uk/download/index.mdx @@ -0,0 +1,30 @@ +--- +layout: download +title: Завантажити Node.js® +--- + +
+Отримати Node.js® для за допомогою з + + + + + Або отримайте збудований Node.js® для з архітектурою . + + + +
+ +
+Читайте список змін цієї версії. + +Читайте публікацію в блозі про цю версію. + +Дізнайтеся, як перевірити підписані SHASUMS. + +Дізнайтеся, як зібрати Node.js із вихідного коду. + +Перегляньте наші нічні бінарні файли, +усі попередні релізи чи +неофіційні бінарні файли для інших платформ. +
diff --git a/apps/site/pages/uk/download/package-manager/all.md b/apps/site/pages/uk/download/package-manager/all.md index f603bf86ddaf6..7f04165a5f93a 100644 --- a/apps/site/pages/uk/download/package-manager/all.md +++ b/apps/site/pages/uk/download/package-manager/all.md @@ -5,7 +5,7 @@ title: Установка Node.js через менеджер пакетів # Установка Node.js через менеджери пакетів -> Пакети на цій сторінці обслуговуються та підтримуються їхніми відповідними розробниками, **не** командою Node.js. Будь ласка, повідомляйте про проблеми цих пакетів їхнім розробникам. Якщо виявиться, що проблема є помилкою Node.js, то вони повідомлять нас про неї. +> Пакети на цій сторінці супроводжуються та підтримуються їхніми відповідними розробниками, **не** командою Node.js. Будь ласка, повідомляйте про проблеми цих пакетів їхнім розробникам. Якщо виявиться, що проблема є помилкою Node.js, то вони повідомлять нас про неї. ## Alpine Linux @@ -66,8 +66,8 @@ dnf module install nodejs:18/common Ці ресурси надають пакети, які сумісні з CentOS, Fedora та RHEL. -- [Snaps Node.js](#snap) обслуговуються та підтримуються на https://github.com/nodejs/snap -- [Бінарні дистрибутиви Node.js](#debian-and-ubuntu-based-linux-distributions) обслуговуються та підтримуються [NodeSource](https://github.com/nodesource/distributions) +- [Snaps Node.js](#snap) супроводжуються та підтримуються на https://github.com/nodejs/snap +- [Бінарні дистрибутиви Node.js](#debian-and-ubuntu-based-linux-distributions) супроводжуються та підтримуються [NodeSource](https://github.com/nodesource/distributions) ## Дистрибутиви Linux на базі Debian та Ubuntu diff --git a/apps/site/pages/uk/index.mdx b/apps/site/pages/uk/index.mdx index 2b65d70048c87..75d1d7d556be5 100644 --- a/apps/site/pages/uk/index.mdx +++ b/apps/site/pages/uk/index.mdx @@ -9,9 +9,8 @@ layout: home

Запускайте JavaScript будь-де

-Node.js® — це безплатне, кросплатформне середовище виконання JavaScript із відкритим кодом, -яке дозволяє розробникам створювати сервери, вебзастосунки, інструменти командного рядка та скрипти. - + Node.js® — це безплатне, кросплатформне середовище виконання JavaScript із відкритим кодом, + яке дозволяє розробникам створювати сервери, вебзастосунки, інструменти командного рядка та скрипти.
@@ -46,93 +45,87 @@ Node.js® — це безплатне, кросплатформне середо // server.mjs import { createServer } from 'node:http'; -const server = createServer((req, res) => { -res.writeHead(200, { 'Content-Type': 'text/plain' }); -res.end('Hello World!\n'); -}); - -// starts a simple http server locally on port 3000 -server.listen(3000, '127.0.0.1', () => { -console.log('Listening on 127.0.0.1:3000'); -}); - -// run with `node server.mjs` - -```` - -```js displayName="Write Tests" -// tests.mjs -import assert from 'node:assert'; -import test from 'node:test'; - -test('that 1 is equal 1', () => { - assert.strictEqual(1, 1); -}); - -test('that throws as 1 is not equal 2', () => { - // throws an exception because 1 != 2 - assert.strictEqual(1, 2); -}); - -// run with `node tests.mjs` -```` - -```js displayName="Read and Hash a File" -// crypto.mjs -import { createHash } from 'node:crypto'; -import { readFile } from 'node:fs/promises'; - -const hasher = createHash('sha1'); - -hasher.setEncoding('hex'); -// ensure you have a `package.json` file for this test! -hasher.write(await readFile('package.json')); -hasher.end(); - -const fileHash = hasher.read(); - -// run with `node crypto.mjs` -``` - -```js displayName="Streams Pipeline" -// streams.mjs -import { pipeline } from 'node:stream/promises'; -import { createReadStream, createWriteStream } from 'node:fs'; -import { createGzip } from 'node:zlib'; - -// ensure you have a `package.json` file for this test! -await pipeline( - createReadStream('package.json'), - createGzip(), - createWriteStream('package.json.gz') -); - -// run with `node streams.mjs` -``` - -```js displayName="Work with Threads" -// threads.mjs -import { - Worker, - isMainThread, - workerData, - parentPort, -} from 'node:worker_threads'; - -if (isMainThread) { - const data = 'some data'; - const worker = new Worker(import.meta.filename, { workerData: data }); - worker.on('message', msg => console.log('Reply from Thread:', msg)); -} else { - const source = workerData; - parentPort.postMessage(btoa(source.toUpperCase())); -} - -// run with `node threads.mjs` -``` - + const server = createServer((req, res) => { + res.writeHead(200, { 'Content-Type': 'text/plain' }); + res.end('Hello World!\n'); + }); + + // starts a simple http server locally on port 3000 + server.listen(3000, '127.0.0.1', () => { + console.log('Listening on 127.0.0.1:3000'); + }); + + // run with `node server.mjs` + ``` + + ```js displayName="Write Tests" + // tests.mjs + import assert from 'node:assert'; + import test from 'node:test'; + + test('that 1 is equal 1', () => { + assert.strictEqual(1, 1); + }); + + test('that throws as 1 is not equal 2', () => { + // throws an exception because 1 != 2 + assert.strictEqual(1, 2); + }); + + // run with `node tests.mjs` + ``` + + ```js displayName="Read and Hash a File" + // crypto.mjs + import { createHash } from 'node:crypto'; + import { readFile } from 'node:fs/promises'; + + const hasher = createHash('sha1'); + + hasher.setEncoding('hex'); + // ensure you have a `package.json` file for this test! + hasher.write(await readFile('package.json')); + hasher.end(); + + const fileHash = hasher.read(); + + // run with `node crypto.mjs` + ``` + + ```js displayName="Streams Pipeline" + // streams.mjs + import { pipeline } from 'node:stream/promises'; + import { createReadStream, createWriteStream } from 'node:fs'; + import { createGzip } from 'node:zlib'; + + // ensure you have a `package.json` file for this test! + await pipeline + ( + createReadStream('package.json'), + createGzip(), + createWriteStream('package.json.gz') + ); + + // run with `node streams.mjs` + ``` + + ```js displayName="Work with Threads" + // threads.mjs + import { Worker, isMainThread, + workerData, parentPort } from 'node:worker_threads'; + + if (isMainThread) { + const data = 'some data'; + const worker = new Worker(import.meta.filename, { workerData: data }); + worker.on('message', msg => console.log('Reply from Thread:', msg)); + } else { + const source = workerData; + parentPort.postMessage(btoa(source.toUpperCase())); + } + + // run with `node threads.mjs` + ```
Дізнайтеся більше про можливості Node.js із [нашими навчальними матеріалами](/learn). - diff --git a/apps/site/pages/zh-cn/about/index.mdx b/apps/site/pages/zh-cn/about/index.mdx index 47b787ffa40d5..cd3daeb14bba7 100644 --- a/apps/site/pages/zh-cn/about/index.mdx +++ b/apps/site/pages/zh-cn/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -51,7 +51,7 @@ Node.js 在设计上受到了诸如 Ruby 的 [Event Machine][] 和 Python 的 [T HTTP 在 Node.js 中是第一类公民,设计时考虑了流式传输和低延迟。这使得 Node.js 非常适合作为 Web 库或框架的基础。 -Node.js 的设计没有线程并不意味着您不能利用环境中的多个核心。可以使用我们的 [child_process.fork()](https://nodejs.org/docs/latest/api/child_process.html#child_processforkmodulepath-args-options) API 来生成子进程,并且设计得易于通信。建立在同一接口之上的是 [cluster](https://nodejs.org/docs/latest/api/cluster.html) 模块,它允许您在进程之间共享套接字,从而实现对核心的负载均衡。 +Node.js 的设计没有线程并不意味着您不能利用环境中的多个核心。可以使用我们的 [child\_process.fork()](https://nodejs.org/docs/latest/api/child_process.html#child_processforkmodulepath-args-options) API 来生成子进程,并且设计得易于通信。建立在同一接口之上的是 [cluster](https://nodejs.org/docs/latest/api/cluster.html) 模块,它允许您在进程之间共享套接字,从而实现对核心的负载均衡。 [blocking vs. non-blocking]: /learn/asynchronous-work/overview-of-blocking-vs-non-blocking [`child_process.fork()`]: https://nodejs.org/api/child_process.html diff --git a/apps/site/pages/zh-cn/about/security-reporting.mdx b/apps/site/pages/zh-cn/about/security-reporting.mdx index fafe4d90c5cef..e0ec739c92aab 100644 --- a/apps/site/pages/zh-cn/about/security-reporting.mdx +++ b/apps/site/pages/zh-cn/about/security-reporting.mdx @@ -50,15 +50,8 @@ Node.js 项目为安全研究人员和负责任的公开披露提供官方漏洞 ## OpenSSF 最佳实践 - - OpenSSF Badge + +OpenSSF Badge 开源安全基金会(OpenSSF)[最佳实践徽章](https://github.com/coreinfrastructure/best-practices-badge) 是自由/自由和开源软件(FLOSS)项目展示他们遵循最佳实践的一种方式。 项目可以自愿地自我认证他们如何遵循每个最佳实践。 徽章的使用者可以快速评估哪些 FLOSS 项目正在遵循最佳实践,因此更有可能产生更高质量的安全软件。 diff --git a/apps/site/pages/zh-tw/about/index.mdx b/apps/site/pages/zh-tw/about/index.mdx index 81b70befaa623..b297aa2df0fbb 100644 --- a/apps/site/pages/zh-tw/about/index.mdx +++ b/apps/site/pages/zh-tw/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { - res.statusCode = 200; - res.setHeader('Content-Type', 'text/plain'); - res.end('Hello World'); +res.statusCode = 200; +res.setHeader('Content-Type', 'text/plain'); +res.end('Hello World'); }); server.listen(port, hostname, () => { - console.log(`Server running at http://${hostname}:${port}/`); +console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/zh-tw/about/security-reporting.mdx b/apps/site/pages/zh-tw/about/security-reporting.mdx index 7f41b4ba9fcea..634022e514d6a 100644 --- a/apps/site/pages/zh-tw/about/security-reporting.mdx +++ b/apps/site/pages/zh-tw/about/security-reporting.mdx @@ -51,15 +51,8 @@ Node.js 專案為安全研究人員和盡責公開揭露設立了官方漏洞獎 ## OpenSSF 最佳實踐 - - OpenSSF 徽章 + +OpenSSF 徽章 開源安全基金會 (OpenSSF) [最佳實踐徽章](https://github.com/coreinfrastructure/best-practices-badge)的意義是為奉行最佳實踐的自由/開源軟體 (FLOSS) 專案提供背書。專案可以自發認證每項最佳實踐的遵循情況,徽章的使用者則可以快速評估哪些 FLOSS 專案確實遵循最佳實踐,因此更有可能產出安全又高品質的軟體。 diff --git a/apps/site/pages/zh-tw/download/index.mdx b/apps/site/pages/zh-tw/download/index.mdx index d9053f8c812f7..ac060aca72fa9 100644 --- a/apps/site/pages/zh-tw/download/index.mdx +++ b/apps/site/pages/zh-tw/download/index.mdx @@ -4,7 +4,7 @@ title: 下載 Node.js® ---
-取得適用於 的 Node.js® ,透過 並包含 +取得適用於 的 Node.js® 透過 包含 @@ -25,5 +25,4 @@ title: 下載 Node.js® 暸解如何自原始碼建置 Node.js。 查看我們的每日組建版本、所有先前版本或適用於其他平台的非官方組建。 -
diff --git a/apps/site/snippets/fr/download/fnm.bash b/apps/site/snippets/fr/download/fnm.bash new file mode 100644 index 0000000000000..85efe05d67a6a --- /dev/null +++ b/apps/site/snippets/fr/download/fnm.bash @@ -0,0 +1,11 @@ +# Télécharger et installer fnm : +${props.os === 'WIN' ? + 'winget install Schniz.fnm' : + 'curl -o- https://fnm.vercel.app/install | bash' +} + +# Télécharger et installer Node.js : +fnm install ${props.release.major} + +# Vérifier la version de Node.js : +node -v # Doit afficher "${props.release.versionWithPrefix}". diff --git a/apps/site/snippets/fr/download/npm.bash b/apps/site/snippets/fr/download/npm.bash new file mode 100644 index 0000000000000..2ce402b87fc66 --- /dev/null +++ b/apps/site/snippets/fr/download/npm.bash @@ -0,0 +1,2 @@ +# Vérifier la version de npm : +npm -v # Doit afficher "${props.release.npm}". diff --git a/apps/site/snippets/fr/download/pnpm.bash b/apps/site/snippets/fr/download/pnpm.bash new file mode 100644 index 0000000000000..9af08fe20eaad --- /dev/null +++ b/apps/site/snippets/fr/download/pnpm.bash @@ -0,0 +1,5 @@ +# Télécharger et installer pnpm : +corepack enable pnpm + +# Vérifier la version de pnpm : +pnpm -v diff --git a/apps/site/snippets/fr/download/yarn.bash b/apps/site/snippets/fr/download/yarn.bash new file mode 100644 index 0000000000000..a6edd8b595951 --- /dev/null +++ b/apps/site/snippets/fr/download/yarn.bash @@ -0,0 +1,5 @@ +# Télécharger et installer Yarn : +corepack enable yarn + +# Vérifier la version de Yarn : +yarn -v diff --git a/apps/site/snippets/ja/download/brew.bash b/apps/site/snippets/ja/download/brew.bash index b2eafe88986fa..823b9d30ae1bc 100644 --- a/apps/site/snippets/ja/download/brew.bash +++ b/apps/site/snippets/ja/download/brew.bash @@ -1,8 +1,8 @@ # Homebrewをダウンロードしてインストールする curl -o- https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh | bash -# Node.jsをダウンロードしてインストールする: +# Node.jsをダウンロードしてインストールする: brew install node@${props.release.major} -# Node.jsのバージョンを確認する: +# Node.jsのバージョンを確認する: node -v # "${props.release.versionWithPrefix}"が表示される。 diff --git a/apps/site/snippets/ja/download/choco.bash b/apps/site/snippets/ja/download/choco.bash new file mode 100644 index 0000000000000..75f35c7e1ad95 --- /dev/null +++ b/apps/site/snippets/ja/download/choco.bash @@ -0,0 +1,8 @@ +# Chocolateyをダウンロードしてインストールする: +powershell -c "irm https://community.chocolatey.org/install.ps1|iex" + +# Node.jsをダウンロードしてインストールする: +choco install nodejs-lts --version="${props.release.major}" + +# Node.jsのバージョンを確認する: +node -v # "${props.release.versionWithPrefix}"が表示される。 diff --git a/apps/site/snippets/ja/download/docker.bash b/apps/site/snippets/ja/download/docker.bash new file mode 100644 index 0000000000000..1cdba9c156445 --- /dev/null +++ b/apps/site/snippets/ja/download/docker.bash @@ -0,0 +1,11 @@ +# DockerにはOSごとにそれぞれのインストール方法があります。 +# 詳しくは https://docker.com/get-started/ にある公式ドキュメントを参照してください + +# Node.jsのDockerイメージを取得する: +docker pull node:${props.release.major}-${props.release.major >= 4 ? 'alpine' : 'slim'} + +# Node.jsのコンテナーを作成しシェルを起動する: +docker run -it --rm --entrypoint sh node:${props.release.major}-${props.release.major >= 4 ? 'alpine' : 'slim'} + +# Node.jsのバージョンを確認する: +node -v # "${props.release.versionWithPrefix}"が表示される。 diff --git a/apps/site/snippets/ja/download/fnm.bash b/apps/site/snippets/ja/download/fnm.bash new file mode 100644 index 0000000000000..6d2dd85d2c398 --- /dev/null +++ b/apps/site/snippets/ja/download/fnm.bash @@ -0,0 +1,11 @@ +# fnmをダウンロードしてインストールする: +${props.os === 'WIN' ? + 'winget install Schniz.fnm' : + 'curl -o- https://fnm.vercel.app/install | bash' +} + +# Node.jsをダウンロードしてインストールする: +fnm install ${props.release.major} + +# Node.jsのバージョンを確認する: +node -v # "${props.release.versionWithPrefix}"が表示される。 diff --git a/apps/site/snippets/ja/download/npm.bash b/apps/site/snippets/ja/download/npm.bash new file mode 100644 index 0000000000000..e13871eecf04f --- /dev/null +++ b/apps/site/snippets/ja/download/npm.bash @@ -0,0 +1,2 @@ +# npmのバージョンを確認する: +npm -v # "${props.release.npm}"が表示される。 diff --git a/apps/site/snippets/ja/download/nvm.bash b/apps/site/snippets/ja/download/nvm.bash new file mode 100644 index 0000000000000..52e85e6b5bb1e --- /dev/null +++ b/apps/site/snippets/ja/download/nvm.bash @@ -0,0 +1,9 @@ +# nvmをダウンロードしてインストールする: +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash + +# Node.jsをダウンロードしてインストールする: +nvm install ${props.release.major} + +# Node.jsのバージョンを確認する: +node -v # "${props.release.versionWithPrefix}"が表示される。 +nvm current # "${props.release.versionWithPrefix}"が表示される。 diff --git a/apps/site/snippets/ja/download/pnpm.bash b/apps/site/snippets/ja/download/pnpm.bash new file mode 100644 index 0000000000000..33e15432ca5c2 --- /dev/null +++ b/apps/site/snippets/ja/download/pnpm.bash @@ -0,0 +1,5 @@ +# pnpmをダウンロードしてインストールする: +corepack enable pnpm + +# pnpmのバージョンを確認する: +pnpm -v diff --git a/apps/site/snippets/ja/download/yarn.bash b/apps/site/snippets/ja/download/yarn.bash new file mode 100644 index 0000000000000..e70e8dd66181a --- /dev/null +++ b/apps/site/snippets/ja/download/yarn.bash @@ -0,0 +1,5 @@ +# Yarnをダウンロードしてインストールする: +corepack enable yarn + +# Yarnのバージョンを確認する: +yarn -v diff --git a/apps/site/snippets/uk/download/brew.bash b/apps/site/snippets/uk/download/brew.bash new file mode 100644 index 0000000000000..c19e42a39446f --- /dev/null +++ b/apps/site/snippets/uk/download/brew.bash @@ -0,0 +1,8 @@ +# Завантажує й установлює Homebrew +curl -o- https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh | bash + +# Завантажує й установлює Node.js: +brew install node@${props.release.major} + +# Перевіряє версію Node.js: +node -v # Повинно вивести «${props.release.versionWithPrefix}». diff --git a/apps/site/snippets/uk/download/choco.bash b/apps/site/snippets/uk/download/choco.bash new file mode 100644 index 0000000000000..98e501a08451b --- /dev/null +++ b/apps/site/snippets/uk/download/choco.bash @@ -0,0 +1,8 @@ +# Завантажує й установлює Chocolatey: +powershell -c "irm https://community.chocolatey.org/install.ps1|iex" + +# Завантажує й установлює Node.js: +choco install nodejs-lts --version="${props.release.major}" + +# Перевіряє версію Node.js: +node -v # Повинно вивести «${props.release.versionWithPrefix}». diff --git a/apps/site/snippets/uk/download/docker.bash b/apps/site/snippets/uk/download/docker.bash new file mode 100644 index 0000000000000..1d52935c5f64e --- /dev/null +++ b/apps/site/snippets/uk/download/docker.bash @@ -0,0 +1,11 @@ +# Docker містить окремі інструкції установки для кожної операційної системи. +# Будь ласка, перегляньте офіційну документацію на https://docker.com/get-started/ + +# Завантажує образ Docker Node.js: +docker pull node:${props.release.major}-${props.release.major >= 4 ? 'alpine' : 'slim'} + +# Створює контейнер Node.js та розпочинає сесію в Shell: +docker run -it --rm --entrypoint sh node:${props.release.major}-${props.release.major >= 4 ? 'alpine' : 'slim'} + +# Перевіряє версію Node.js: +node -v # Повинно вивести «${props.release.versionWithPrefix}». diff --git a/apps/site/snippets/uk/download/fnm.bash b/apps/site/snippets/uk/download/fnm.bash new file mode 100644 index 0000000000000..ac63580dfe4a9 --- /dev/null +++ b/apps/site/snippets/uk/download/fnm.bash @@ -0,0 +1,11 @@ +# Завантажує й установлює fnm: +${props.os === 'WIN' ? + 'winget install Schniz.fnm' : + 'curl -o- https://fnm.vercel.app/install | bash' +} + +# Завантажує й установлює Node.js: +fnm install ${props.release.major} + +# Перевіряє версію Node.js: +node -v # Повинно вивести «${props.release.versionWithPrefix}». diff --git a/apps/site/snippets/uk/download/npm.bash b/apps/site/snippets/uk/download/npm.bash new file mode 100644 index 0000000000000..f44d273105575 --- /dev/null +++ b/apps/site/snippets/uk/download/npm.bash @@ -0,0 +1,2 @@ +# Перевіряє версію npm: +npm -v # Повинно вивести «${props.release.npm}». diff --git a/apps/site/snippets/uk/download/nvm.bash b/apps/site/snippets/uk/download/nvm.bash new file mode 100644 index 0000000000000..97925cfe00e44 --- /dev/null +++ b/apps/site/snippets/uk/download/nvm.bash @@ -0,0 +1,9 @@ +# Завантажує й установлює nvm: +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash + +# Завантажує й установлює Node.js: +nvm install ${props.release.major} + +# Перевіряє версію Node.js: +node -v # Повинно вивести «${props.release.versionWithPrefix}». +nvm current # Повинно вивести «${props.release.versionWithPrefix}». diff --git a/apps/site/snippets/uk/download/pnpm.bash b/apps/site/snippets/uk/download/pnpm.bash new file mode 100644 index 0000000000000..d463ea5fbabab --- /dev/null +++ b/apps/site/snippets/uk/download/pnpm.bash @@ -0,0 +1,5 @@ +# Завантажує й установлює pnpm: +corepack enable pnpm + +# Перевіряє версію pnpm: +pnpm -v diff --git a/apps/site/snippets/uk/download/yarn.bash b/apps/site/snippets/uk/download/yarn.bash new file mode 100644 index 0000000000000..0236132f9f6da --- /dev/null +++ b/apps/site/snippets/uk/download/yarn.bash @@ -0,0 +1,5 @@ +# Завантажує й установлює Yarn: +corepack enable yarn + +# Перевіряє версію Yarn: +yarn -v diff --git a/apps/site/snippets/zh-tw/download/brew.bash b/apps/site/snippets/zh-tw/download/brew.bash new file mode 100644 index 0000000000000..f424c65921ad0 --- /dev/null +++ b/apps/site/snippets/zh-tw/download/brew.bash @@ -0,0 +1,8 @@ +# 下載並安裝 Homebrew +curl -o- https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh | bash + +# 下載並安裝 Node.js: +brew install node@${props.release.major} + +# 核對 Node.js 版本: +node -v # 應會印出 "${props.release.versionWithPrefix}"。 diff --git a/apps/site/snippets/zh-tw/download/choco.bash b/apps/site/snippets/zh-tw/download/choco.bash new file mode 100644 index 0000000000000..1a1908fb88d45 --- /dev/null +++ b/apps/site/snippets/zh-tw/download/choco.bash @@ -0,0 +1,8 @@ +# 下載並安裝 Chocolatey: +powershell -c "irm https://community.chocolatey.org/install.ps1|iex" + +# 下載並安裝 Node.js: +choco install nodejs-lts --version="${props.release.major}" + +# 核對 Node.js 版本: +node -v # 應會印出 "${props.release.versionWithPrefix}"。 diff --git a/apps/site/snippets/zh-tw/download/docker.bash b/apps/site/snippets/zh-tw/download/docker.bash new file mode 100644 index 0000000000000..fdb493e7ecaa5 --- /dev/null +++ b/apps/site/snippets/zh-tw/download/docker.bash @@ -0,0 +1,11 @@ +# Docker 針對不同作業系統有特定的安裝指示。 +# 請至 https://docker.com/get-started/ 查閱官方文件 + +# 拉取 Node.js Docker 映像: +docker pull node:${props.release.major}-${props.release.major >= 4 ? 'alpine' : 'slim'} + +# 建立 Node.js 容器並啟動 Shell 工作階段: +docker run -it --rm --entrypoint sh node:${props.release.major}-${props.release.major >= 4 ? 'alpine' : 'slim'} + +# 核對 Node.js 版本: +node -v # 應會印出 "${props.release.versionWithPrefix}"。 diff --git a/apps/site/snippets/zh-tw/download/npm.bash b/apps/site/snippets/zh-tw/download/npm.bash new file mode 100644 index 0000000000000..cd133eba0f096 --- /dev/null +++ b/apps/site/snippets/zh-tw/download/npm.bash @@ -0,0 +1,2 @@ +# 核對 npm 版本: +npm -v # 應當會印出 "${props.release.npm}"。 diff --git a/apps/site/snippets/zh-tw/download/nvm.bash b/apps/site/snippets/zh-tw/download/nvm.bash new file mode 100644 index 0000000000000..71d4c882a57e0 --- /dev/null +++ b/apps/site/snippets/zh-tw/download/nvm.bash @@ -0,0 +1,9 @@ +# 下載並安裝 nvm: +curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.1/install.sh | bash + +# 下載並安裝 Node.js: +nvm install ${props.release.major} + +# 核對 Node.js 版本: +node -v # 應會印出 "${props.release.versionWithPrefix}"。 +nvm current # 應會印出 "${props.release.versionWithPrefix}"。 diff --git a/apps/site/snippets/zh-tw/download/pnpm.bash b/apps/site/snippets/zh-tw/download/pnpm.bash new file mode 100644 index 0000000000000..100738061ff97 --- /dev/null +++ b/apps/site/snippets/zh-tw/download/pnpm.bash @@ -0,0 +1,5 @@ +# 下載並安裝 pnpm: +corepack enable pnpm + +# 核對 pnpm 版本: +pnpm -v diff --git a/apps/site/snippets/zh-tw/download/yarn.bash b/apps/site/snippets/zh-tw/download/yarn.bash new file mode 100644 index 0000000000000..6e383bb4b7c3e --- /dev/null +++ b/apps/site/snippets/zh-tw/download/yarn.bash @@ -0,0 +1,5 @@ +# 下載並安裝 Yarn: +corepack enable yarn + +# 核對 Yarn 版本: +yarn -v diff --git a/packages/i18n/locales/ja.json b/packages/i18n/locales/ja.json new file mode 100644 index 0000000000000..8e5bf1afcf709 --- /dev/null +++ b/packages/i18n/locales/ja.json @@ -0,0 +1,287 @@ +{ + "components": { + "containers": { + "footer": { + "links": { + "trademarkPolicy": "商標ポリシー", + "privacyPolicy": "プライバシーポリシー", + "versionSupport": "バージョンサポート", + "codeOfConduct": "行動規範", + "security": "セキュリティポリシー" + } + }, + "navBar": { + "links": { + "about": "About", + "download": "ダウンロード", + "docs": "ドキュメント", + "guides": "ガイド", + "learn": "学ぶ", + "security": "セキュリティー", + "certification": "認定資格", + "blog": "ブログ", + "contribute": "編集への協力" + } + } + }, + "navigation": { + "learn": { + "gettingStarted": { + "links": { + "gettingStarted": "はじめに", + "introductionToNodejs": "Node.jsの導入", + "howMuchJavascriptDoYouNeedToKnowToUseNodejs": "Node.jsを使用するために知っておくべきJavaScriptの知識はどのくらいですか?", + "differencesBetweenNodejsAndTheBrowser": "Node.jsとブラウザーの違い", + "theV8JavascriptEngine": "V8 JavaScriptエンジン", + "anIntroductionToTheNpmPackageManager": "npmパッケージマネージャーの紹介", + "ecmascript2015Es6AndBeyond": "ECMAScript 2015(ES6)とそれ以降のバージョン", + "nodejsTheDifferenceBetweenDevelopmentAndProduction": "Node.jsにおける開発環境と本番環境の違い", + "nodejsWithWebassembly": "Node.jsとWebAssembly", + "debugging": "Node.jsのデバッグ", + "profiling": "Node.jsアプリケーションのプロファイリング", + "securityBestPractices": "セキュリティーベストプラクティス" + } + }, + "typescript": { + "links": { + "typescript": "TypeScript", + "introduction": "TypeScriptの導入", + "transpile": "トランスパイルを用いたTypeScriptの実行", + "run": "実行ツールを用いたTypeScriptの実行", + "runNatively": "TypeScriptをネイティブに実行する" + } + }, + "asynchronousWork": { + "links": { + "asynchronousWork": "非同期処理", + "asynchronousFlowControl": "非同期のフロー制御", + "overviewOfBlockingVsNonBlocking": "ブロッキングとノンブロッキングの概要", + "javascriptAsynchronousProgrammingAndCallbacks": "JavaScriptの非同期プログラミングとコールバック", + "discoverJavascriptTimers": "JavaScriptのタイマー処理について", + "eventLoopTimersAndNexttick": "Node.jsのイベントループ", + "theNodejsEventEmitter": "Node.jsのイベントエミッター", + "understandingProcessnexttick": "process.nextTick()について", + "understandingSetimmediate": "setImmediate()について", + "dontBlockTheEventLoop": "イベントループをブロックしない" + } + }, + "manipulatingFiles": { + "links": { + "manipulatingFiles": "ファイルの操作", + "nodejsFileStats": "Node.jsでのファイル情報", + "nodejsFilePaths": "Node.jsでのファイルパス", + "workingWithFileDescriptorsInNodejs": "Node.jsでのファイルディスクリプターの操作", + "readingFilesWithNodejs": "Node.jsを使用したファイルの読み込み", + "writingFilesWithNodejs": "Node.jsを使用したファイルの書き込み", + "workingWithFoldersInNodejs": "Node.jsでのフォルダーの操作", + "workingWithDifferentFilesystems": "異なるファイルシステムを扱う方法" + } + }, + "commandLine": { + "links": { + "commandLine": "コマンドライン", + "runNodejsScriptsFromTheCommandLine": "コマンドラインからNode.jsスクリプトを実行する", + "howToReadEnvironmentVariablesFromNodejs": "Node.jsから環境変数を読み込む方法", + "howToUseTheNodejsRepl": "Node.js REPLの使用方法", + "outputToTheCommandLineUsingNodejs": "Node.jsを使用してコマンドラインに出力する", + "acceptInputFromTheCommandLineInNodejs": "Node.jsでコマンドラインからの入力を受け取る" + } + }, + "modules": { + "links": { + "modules": "モジュール", + "publishingAPackage": "パッケージの公開", + "publishingNodeApiModules": "Node-APIパッケージを公開する方法", + "anatomyOfAnHttpTransaction": "HTTPトランザクションの構成", + "abiStability": "ABIの安定性", + "howToUseStreams": "ストリームの使い方", + "backpressuringInStreams": "ストリーム内のバックプレッシャー" + } + }, + "diagnostics": { + "links": { + "diagnostics": "診断", + "userJourney": "ユーザージャーニー", + "memory": "メモリー", + "liveDebugging": "ライブデバッグ", + "poorPerformance": "パフォーマンスの低下", + "flameGraphs": "フレームグラフ" + } + }, + "testRunner": { + "links": { + "testRunner": "テストランナー", + "introduction": "Node.jsのテストランナーの紹介", + "usingTestRunner": "Node.jsのテストランナーを使用する", + "mocking": "テストでのモックの使い方" + } + } + }, + "about": { + "links": { + "about": "Node.jsについて", + "aboutSide": "Node.js®について", + "branding": "Node.jsのブランド", + "governance": "プロジェクトの管理体制", + "releases": "Node.js リリース", + "security": "セキュリティーレポート" + } + }, + "getInvolved": { + "links": { + "getInvolved": "参加しよう", + "collabSummit": "コラボレーションサミット", + "upcomingEvents": "今後のイベント", + "contribute": "Node.jsに貢献する", + "codeOfConduct": "行動規範" + } + } + }, + "downloadReleasesTable": { + "version": "Node.js", + "nApiVersion": "N-API", + "npmVersion": "npm", + "codename": "コードネーム", + "releaseDate": "でリリース済み", + "actions": { + "changelog": "変更履歴", + "releases": "リリース", + "docs": "ドキュメント" + } + }, + "pagination": { + "next": "次へ", + "previous": "前へ" + }, + "common": { + "alertBox": { + "info": "補足", + "warning": "注意", + "danger": "警告" + }, + "breadcrumbs": { + "navigateToHome": "ホームに移動する" + }, + "crossLink": { + "previous": "前へ", + "next": "次へ" + }, + "codebox": { + "copy": "クリップボードにコピー", + "copied": "クリップボードにコピーされました!" + }, + "pagination": { + "prev": "前へ", + "prevAriaLabel": "前のページ", + "next": "次へ", + "nextAriaLabel": "次のページ", + "defaultLabel": "ページネーション", + "pageLabel": "{pageNumber}ページ目に移動" + }, + "sidebar": { + "title": "ページを変更する" + }, + "languageDropdown": { + "label": "言語を選択" + }, + "themeToggle": { + "label": "ダークモードに切り替え" + } + }, + "metabar": { + "lastUpdated": "最終更新日", + "readingTime": "所要時間", + "addedIn": "追加時期", + "author": "著者", + "authors": "著者", + "contribute": "編集への協力", + "contributeText": "このページを編集", + "viewAs": "表示方法", + "tableOfContents": "目次" + }, + "search": { + "searchBox": { + "placeholder": "入力を開始..." + } + }, + "blog": { + "blogHeader": { + "subtitle": "最新のNode.jsのニュース、ケーススタディ、チュートリアル、リソース。", + "rssLink": "RSSフィード" + } + } + }, + "layouts": { + "blogPost": { + "author": { + "byLine": "{author, select, null {} other {著者: {author}}}" + } + }, + "blogIndex": { + "categoryName": "{category, select, all {ブログ} other {{category}ブログ記事}}" + }, + "blog": { + "title": "ブログ", + "selectCategory": "カテゴリー", + "categories": { + "all": "すべて", + "announcements": "お知らせ", + "release": "リリース", + "vulnerability": "脆弱性", + "advisory-board": "諮問委員会", + "community": "コミュニティー", + "feature": "機能", + "module": "モジュール", + "npm": "npm", + "uncategorized": "未分類", + "video": "ビデオ", + "weekly": "週間更新", + "wg": "作業グループ", + "events": "イベント" + } + }, + "error": { + "notFound": { + "title": "ページが見つかりませんでした", + "description": "申し訳ありませんが、探しているページが見つかりませんでした! ホームページからやり直してください。" + }, + "internalServerError": { + "title": "内部サーバーエラー", + "description": "このページで回復不可能なエラーが発生しました。" + }, + "backToHome": "ホームに戻る" + }, + "download": { + "buttons": { + "installer": "{os} インストーラー (.{extension})", + "binary": "スタンドアローンのバイナリー (.{extension})" + }, + "dropdown": { + "platform": "プラットフォーム", + "os": "オペレーティングシステム", + "version": "バージョン", + "installMethod": "インストール方法", + "packageManager": "パッケージマネージャー", + "unknown": "不明", + "platformGroups": { + "official": "推奨(公式)", + "unofficial": "コミュニティー(非公式)" + } + }, + "codeBox": { + "unsupportedVersionWarning": "このバージョンのメンテナンスは終了しています。現在サポートされているバージョンを利用してください。EOLのサポートについて。", + "communityPlatformInfo": "コミュニティーソフトウェアを含むインストール方法はそのソフトウェアを管理しているチームによってサポートされます。", + "externalSupportInfo": "もし何らかの問題を見つけた場合は{platform}のウェブサイトを参照してください。", + "noScriptDetected": "このページはJavaScriptが必要です。JavaScriptなしでもリリースページから直接Node.jsをダウンロードできます。", + "platformInfo": { + "default": "{platform}とそのインストールスクリプトはNode.jsプロジェクトによって管理されていません。", + "nvm": "\"nvm\"はクロスプラットフォームに対応したNode.jsのバージョンマネージャーです。", + "fnm": "\"fnm\"はクロスプラットフォームに対応したNode.jsのバージョンマネージャーです。", + "brew": "HomebrewはmacOS用およびLinux用のパッケージマネージャーです。", + "choco": "ChocolateyはWIndows用のパッケージマネージャーです。", + "docker": "Dockerはコンテナー化に関するプラットフォームです。" + } + } + } + } +} From 27bd804cd083d08f643afeeda9371c1a1ed7414c Mon Sep 17 00:00:00 2001 From: github-merge-queue Date: Fri, 10 Jan 2025 05:11:01 +0000 Subject: [PATCH 2/4] chore: automated format of translated files Signed-off-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com> --- apps/site/pages/es/about/branding.mdx | 12 +- apps/site/pages/es/about/index.mdx | 16 +- .../pages/es/about/security-reporting.mdx | 11 +- apps/site/pages/es/index.mdx | 173 +++++++++--------- apps/site/pages/fa/about/index.mdx | 16 +- .../pages/fa/about/security-reporting.mdx | 11 +- apps/site/pages/fr/about/branding.mdx | 12 +- apps/site/pages/fr/about/index.mdx | 16 +- .../pages/fr/about/security-reporting.mdx | 11 +- apps/site/pages/fr/download/current.mdx | 1 + apps/site/pages/fr/download/index.mdx | 1 + apps/site/pages/fr/index.mdx | 169 +++++++++-------- apps/site/pages/id/about/branding.mdx | 12 +- apps/site/pages/id/about/index.mdx | 18 +- .../pages/id/about/security-reporting.mdx | 6 +- apps/site/pages/id/index.mdx | 173 +++++++++--------- apps/site/pages/ja/about/branding.mdx | 12 +- apps/site/pages/ja/about/index.mdx | 16 +- .../site/pages/ja/about/previous-releases.mdx | 12 +- .../pages/ja/about/security-reporting.mdx | 11 +- apps/site/pages/ja/index.mdx | 169 +++++++++-------- apps/site/pages/ko/about/branding.mdx | 12 +- apps/site/pages/ko/about/index.mdx | 16 +- .../pages/ko/about/security-reporting.mdx | 11 +- apps/site/pages/ko/index.mdx | 169 +++++++++-------- apps/site/pages/pt/about/index.mdx | 16 +- .../pages/pt/about/security-reporting.mdx | 11 +- apps/site/pages/tr/about/index.mdx | 16 +- .../pages/tr/about/security-reporting.mdx | 11 +- apps/site/pages/uk/about/branding.mdx | 12 +- apps/site/pages/uk/about/index.mdx | 16 +- .../pages/uk/about/security-reporting.mdx | 11 +- apps/site/pages/uk/download/current.mdx | 1 + apps/site/pages/uk/download/index.mdx | 1 + apps/site/pages/uk/index.mdx | 171 ++++++++--------- apps/site/pages/zh-cn/about/index.mdx | 18 +- .../pages/zh-cn/about/security-reporting.mdx | 11 +- apps/site/pages/zh-tw/about/index.mdx | 16 +- .../pages/zh-tw/about/security-reporting.mdx | 11 +- apps/site/pages/zh-tw/download/index.mdx | 1 + 40 files changed, 795 insertions(+), 614 deletions(-) diff --git a/apps/site/pages/es/about/branding.mdx b/apps/site/pages/es/about/branding.mdx index 36ceead6ad870..08ccf552e7e9d 100644 --- a/apps/site/pages/es/about/branding.mdx +++ b/apps/site/pages/es/about/branding.mdx @@ -11,7 +11,13 @@ Por favor revise la [política de la marca comercial](https://trademark-policy.o Créditos a [Angela Angelini](https://www.linkedin.com/in/angeliningl/) por diseñar y contribuir con la Tortuga Cohete. -Mascota de Node.js +Mascota de Node.js ## Logo de Node.js® @@ -27,6 +33,7 @@ Créditos a [Angela Angelini](https://www.linkedin.com/in/angeliningl/) por dise Logo Horizontal Claro de Node.js + @@ -43,6 +50,7 @@ Créditos a [Angela Angelini](https://www.linkedin.com/in/angeliningl/) por dise Logo Apilado Claro de Node.js + @@ -53,6 +61,7 @@ Créditos a [Angela Angelini](https://www.linkedin.com/in/angeliningl/) por dise Logo Apilado Blanco de Node.js + @@ -69,6 +78,7 @@ Créditos a [Angela Angelini](https://www.linkedin.com/in/angeliningl/) por dise Iconos Blanco de JS + diff --git a/apps/site/pages/es/about/index.mdx b/apps/site/pages/es/about/index.mdx index b9f211b01e657..df9cfdc257303 100644 --- a/apps/site/pages/es/about/index.mdx +++ b/apps/site/pages/es/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/es/about/security-reporting.mdx b/apps/site/pages/es/about/security-reporting.mdx index 0cc5351ce5d68..012bfa538e2ff 100644 --- a/apps/site/pages/es/about/security-reporting.mdx +++ b/apps/site/pages/es/about/security-reporting.mdx @@ -53,8 +53,15 @@ Si tienes sugerencias sobre cómo podría mejorarse este proceso, por favor, env ## Mejores Prácticas de la OpenSSF - -Insignia OpenSSF + + Insignia OpenSSF La [Insignia de Buenas Prácticas](https://github.com/coreinfrastructure/best-practices-badge) de la Fundación de Seguridad del Software Abierto (OpenSSF) es una manera en que los proyectos de Software Libre y de Código Abierto (FLOSS) pueden mostrar que siguen las mejores prácticas. Los proyectos pueden auto-certificarse voluntariamente sobre cómo siguen cada buena práctica. Los consumidores de la insignia pueden evaluar rápidamente qué proyectos FLOSS siguen las mejores prácticas y, como resultado, tienen más probabilidades de producir software seguro de alta calidad. diff --git a/apps/site/pages/es/index.mdx b/apps/site/pages/es/index.mdx index 933f6fd7a1bfc..5ef18bf2575ed 100644 --- a/apps/site/pages/es/index.mdx +++ b/apps/site/pages/es/index.mdx @@ -9,9 +9,10 @@ layout: home

Ejecuta JavaScript en cualquier parte

- Node.js® es un entorno de ejecución de JavaScript multiplataforma, - de código abierto y gratuito que permite a los desarrolladores crear servidores, - aplicaciones web, herramientas de línea de comando y scripts. +Node.js® es un entorno de ejecución de JavaScript multiplataforma, +de código abierto y gratuito que permite a los desarrolladores crear servidores, +aplicaciones web, herramientas de línea de comando y scripts. +
@@ -46,87 +47,93 @@ layout: home // server.mjs import { createServer } from 'node:http'; - const server = createServer((req, res) => { - res.writeHead(200, { 'Content-Type': 'text/plain' }); - res.end('Hello World!\n'); - }); - - // starts a simple http server locally on port 3000 - server.listen(3000, '127.0.0.1', () => { - console.log('Listening on 127.0.0.1:3000'); - }); - - // run with `node server.mjs` - ``` - - ```js displayName="Write Tests" - // tests.mjs - import assert from 'node:assert'; - import test from 'node:test'; - - test('that 1 is equal 1', () => { - assert.strictEqual(1, 1); - }); - - test('that throws as 1 is not equal 2', () => { - // throws an exception because 1 != 2 - assert.strictEqual(1, 2); - }); - - // run with `node tests.mjs` - ``` - - ```js displayName="Read and Hash a File" - // crypto.mjs - import { createHash } from 'node:crypto'; - import { readFile } from 'node:fs/promises'; - - const hasher = createHash('sha1'); - - hasher.setEncoding('hex'); - // ensure you have a `package.json` file for this test! - hasher.write(await readFile('package.json')); - hasher.end(); - - const fileHash = hasher.read(); - - // run with `node crypto.mjs` - ``` - - ```js displayName="Streams Pipeline" - // streams.mjs - import { pipeline } from 'node:stream/promises'; - import { createReadStream, createWriteStream } from 'node:fs'; - import { createGzip } from 'node:zlib'; - - // ensure you have a `package.json` file for this test! - await pipeline - ( - createReadStream('package.json'), - createGzip(), - createWriteStream('package.json.gz') - ); - - // run with `node streams.mjs` - ``` - - ```js displayName="Work with Threads" - // threads.mjs - import { Worker, isMainThread, - workerData, parentPort } from 'node:worker_threads'; - - if (isMainThread) { - const data = 'some data'; - const worker = new Worker(import.meta.filename, { workerData: data }); - worker.on('message', msg => console.log('Reply from Thread:', msg)); - } else { - const source = workerData; - parentPort.postMessage(btoa(source.toUpperCase())); - } - - // run with `node threads.mjs` - ``` +const server = createServer((req, res) => { +res.writeHead(200, { 'Content-Type': 'text/plain' }); +res.end('Hello World!\n'); +}); + +// starts a simple http server locally on port 3000 +server.listen(3000, '127.0.0.1', () => { +console.log('Listening on 127.0.0.1:3000'); +}); + +// run with `node server.mjs` + +```` + +```js displayName="Write Tests" +// tests.mjs +import assert from 'node:assert'; +import test from 'node:test'; + +test('that 1 is equal 1', () => { + assert.strictEqual(1, 1); +}); + +test('that throws as 1 is not equal 2', () => { + // throws an exception because 1 != 2 + assert.strictEqual(1, 2); +}); + +// run with `node tests.mjs` +```` + +```js displayName="Read and Hash a File" +// crypto.mjs +import { createHash } from 'node:crypto'; +import { readFile } from 'node:fs/promises'; + +const hasher = createHash('sha1'); + +hasher.setEncoding('hex'); +// ensure you have a `package.json` file for this test! +hasher.write(await readFile('package.json')); +hasher.end(); + +const fileHash = hasher.read(); + +// run with `node crypto.mjs` +``` + +```js displayName="Streams Pipeline" +// streams.mjs +import { pipeline } from 'node:stream/promises'; +import { createReadStream, createWriteStream } from 'node:fs'; +import { createGzip } from 'node:zlib'; + +// ensure you have a `package.json` file for this test! +await pipeline( + createReadStream('package.json'), + createGzip(), + createWriteStream('package.json.gz') +); + +// run with `node streams.mjs` +``` + +```js displayName="Work with Threads" +// threads.mjs +import { + Worker, + isMainThread, + workerData, + parentPort, +} from 'node:worker_threads'; + +if (isMainThread) { + const data = 'some data'; + const worker = new Worker(import.meta.filename, { workerData: data }); + worker.on('message', msg => console.log('Reply from Thread:', msg)); +} else { + const source = workerData; + parentPort.postMessage(btoa(source.toUpperCase())); +} + +// run with `node threads.mjs` +``` +
Aprenda más sobre lo que Node.js puede ofrecer con nuestros [Materiales de aprendizaje](/learn). + diff --git a/apps/site/pages/fa/about/index.mdx b/apps/site/pages/fa/about/index.mdx index 2d344a52bed70..1bc8bbe99714b 100644 --- a/apps/site/pages/fa/about/index.mdx +++ b/apps/site/pages/fa/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/fa/about/security-reporting.mdx b/apps/site/pages/fa/about/security-reporting.mdx index 5060752c1d758..ab8dafdc590ec 100644 --- a/apps/site/pages/fa/about/security-reporting.mdx +++ b/apps/site/pages/fa/about/security-reporting.mdx @@ -50,8 +50,15 @@ layout: about ## رویه‌های بهینه OpenSSF - -نشان OpenSSF + + نشان OpenSSF [نشان بهترین شیوه ها](https://github.com/coreinfrastructure/best-practices-badge) بنیاد امنیت متن باز (OpenSSF) راهی است برای پروژه‌های نرم‌افزار آزاد/رایگان و متن باز (FLOSS) تا نشان دهند که از رویه‌های بهینه پیروی می‌کنند. پروژه‌ها می‌توانند به صورت داوطلبانه خود تأیید کنند که چگونه از هر رویه بهینه پیروی می‌کنند. مصرف‌کنندگان این نشان می‌توانند به سرعت ارزیابی کنند که کدام پروژه‌های FLOSS از رویه‌های بهینه پیروی می‌کنند و در نتیجه احتمال بیشتری دارد که نرم‌افزارهای امن با کیفیت بالاتر تولید کنند. diff --git a/apps/site/pages/fr/about/branding.mdx b/apps/site/pages/fr/about/branding.mdx index 7b1c241923000..bd7fe749280d8 100644 --- a/apps/site/pages/fr/about/branding.mdx +++ b/apps/site/pages/fr/about/branding.mdx @@ -11,7 +11,13 @@ Veuillez consulter la [politique en matière de marques](https://trademark-polic Crédit à [Angela Angelini](https://www.linkedin.com/in/angeliningl/) pour la conception et la contribution de la tortue-fusée. -Mascotte de Node.js +Mascotte de Node.js ## Logo Node.js® @@ -27,6 +33,7 @@ Crédit à [Angela Angelini](https://www.linkedin.com/in/angeliningl/) pour la c Logo horizontal clair de Node.js + @@ -43,6 +50,7 @@ Crédit à [Angela Angelini](https://www.linkedin.com/in/angeliningl/) pour la c Logo empilé clair de Node.js + @@ -53,6 +61,7 @@ Crédit à [Angela Angelini](https://www.linkedin.com/in/angeliningl/) pour la c Logo empilé blanc de Node.js + @@ -69,6 +78,7 @@ Crédit à [Angela Angelini](https://www.linkedin.com/in/angeliningl/) pour la c Icons JS Blanc + diff --git a/apps/site/pages/fr/about/index.mdx b/apps/site/pages/fr/about/index.mdx index 73a10f0da21df..914d165ead2ad 100644 --- a/apps/site/pages/fr/about/index.mdx +++ b/apps/site/pages/fr/about/index.mdx @@ -15,13 +15,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -32,13 +32,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/fr/about/security-reporting.mdx b/apps/site/pages/fr/about/security-reporting.mdx index d811ded7a3dde..b17332a3543ac 100644 --- a/apps/site/pages/fr/about/security-reporting.mdx +++ b/apps/site/pages/fr/about/security-reporting.mdx @@ -74,8 +74,15 @@ Si vous avez des suggestions sur la façon dont ce processus pourrait être amé ## OpenSSF Best Practices - -Badge OpenSSF + + Badge OpenSSF Le [badge des meilleures pratiques] de l'Open Source Security Foundation (OpenSSF) (https://github.com/coreinfrastructure/best-practices-badge) est un moyen pour les projets de logiciels libres et open source (FLOSS) de montrer qu'ils suivent les meilleures pratiques. Les projets peuvent volontairement auto-certifier la manière dont ils suivent chaque meilleure pratique. Les utilisateurs du badge peuvent rapidement déterminer quels sont les projets FLOSS qui suivent les meilleures pratiques et qui sont donc plus susceptibles de produire des logiciels sécurisés de meilleure qualité. diff --git a/apps/site/pages/fr/download/current.mdx b/apps/site/pages/fr/download/current.mdx index a4816c7603613..0b62d4f467e0d 100644 --- a/apps/site/pages/fr/download/current.mdx +++ b/apps/site/pages/fr/download/current.mdx @@ -25,4 +25,5 @@ Apprenez à compiler Node.js à partir des sources. Consultez nos binaires chaque nuit, toutes les versions précédentes ou les binaires non officiels pour d'autres plateformes. + diff --git a/apps/site/pages/fr/download/index.mdx b/apps/site/pages/fr/download/index.mdx index dd559ba8104a1..0b2935443796b 100644 --- a/apps/site/pages/fr/download/index.mdx +++ b/apps/site/pages/fr/download/index.mdx @@ -25,4 +25,5 @@ Apprenez à compiler Node.js à partir des sources. Consultez nos binaires chaque nuit, toutes les versions précédentes ou les binaires non officiels pour d'autres plateformes. + diff --git a/apps/site/pages/fr/index.mdx b/apps/site/pages/fr/index.mdx index e7ff5e8f88325..2cd1371107d46 100644 --- a/apps/site/pages/fr/index.mdx +++ b/apps/site/pages/fr/index.mdx @@ -9,7 +9,8 @@ layout: home

Exécuter du JavaScript partout

- Node.js® est un environnement d'exécution JavaScript gratuit, open-source et multiplateforme qui permet aux développeurs de créer des serveurs, des applications web, des outils en ligne de commande et des scripts. +Node.js® est un environnement d'exécution JavaScript gratuit, open-source et multiplateforme qui permet aux développeurs de créer des serveurs, des applications web, des outils en ligne de commande et des scripts. +
@@ -44,87 +45,93 @@ layout: home // server.mjs import { createServer } from 'node:http'; - const server = createServer((req, res) => { - res.writeHead(200, { 'Content-Type': 'text/plain' }); - res.end('Hello World!\n'); - }); - - // starts a simple http server locally on port 3000 - server.listen(3000, '127.0.0.1', () => { - console.log('Listening on 127.0.0.1:3000'); - }); - - // run with `node server.mjs` - ``` - - ```js displayName="Write Tests" - // tests.mjs - import assert from 'node:assert'; - import test from 'node:test'; - - test('that 1 is equal 1', () => { - assert.strictEqual(1, 1); - }); - - test('that throws as 1 is not equal 2', () => { - // throws an exception because 1 != 2 - assert.strictEqual(1, 2); - }); - - // run with `node tests.mjs` - ``` - - ```js displayName="Read and Hash a File" - // crypto.mjs - import { createHash } from 'node:crypto'; - import { readFile } from 'node:fs/promises'; - - const hasher = createHash('sha1'); - - hasher.setEncoding('hex'); - // ensure you have a `package.json` file for this test! - hasher.write(await readFile('package.json')); - hasher.end(); - - const fileHash = hasher.read(); - - // run with `node crypto.mjs` - ``` - - ```js displayName="Streams Pipeline" - // streams.mjs - import { pipeline } from 'node:stream/promises'; - import { createReadStream, createWriteStream } from 'node:fs'; - import { createGzip } from 'node:zlib'; - - // ensure you have a `package.json` file for this test! - await pipeline - ( - createReadStream('package.json'), - createGzip(), - createWriteStream('package.json.gz') - ); - - // run with `node streams.mjs` - ``` - - ```js displayName="Work with Threads" - // threads.mjs - import { Worker, isMainThread, - workerData, parentPort } from 'node:worker_threads'; - - if (isMainThread) { - const data = 'some data'; - const worker = new Worker(import.meta.filename, { workerData: data }); - worker.on('message', msg => console.log('Reply from Thread:', msg)); - } else { - const source = workerData; - parentPort.postMessage(btoa(source.toUpperCase())); - } - - // run with `node threads.mjs` - ``` +const server = createServer((req, res) => { +res.writeHead(200, { 'Content-Type': 'text/plain' }); +res.end('Hello World!\n'); +}); + +// starts a simple http server locally on port 3000 +server.listen(3000, '127.0.0.1', () => { +console.log('Listening on 127.0.0.1:3000'); +}); + +// run with `node server.mjs` + +```` + +```js displayName="Write Tests" +// tests.mjs +import assert from 'node:assert'; +import test from 'node:test'; + +test('that 1 is equal 1', () => { + assert.strictEqual(1, 1); +}); + +test('that throws as 1 is not equal 2', () => { + // throws an exception because 1 != 2 + assert.strictEqual(1, 2); +}); + +// run with `node tests.mjs` +```` + +```js displayName="Read and Hash a File" +// crypto.mjs +import { createHash } from 'node:crypto'; +import { readFile } from 'node:fs/promises'; + +const hasher = createHash('sha1'); + +hasher.setEncoding('hex'); +// ensure you have a `package.json` file for this test! +hasher.write(await readFile('package.json')); +hasher.end(); + +const fileHash = hasher.read(); + +// run with `node crypto.mjs` +``` + +```js displayName="Streams Pipeline" +// streams.mjs +import { pipeline } from 'node:stream/promises'; +import { createReadStream, createWriteStream } from 'node:fs'; +import { createGzip } from 'node:zlib'; + +// ensure you have a `package.json` file for this test! +await pipeline( + createReadStream('package.json'), + createGzip(), + createWriteStream('package.json.gz') +); + +// run with `node streams.mjs` +``` + +```js displayName="Work with Threads" +// threads.mjs +import { + Worker, + isMainThread, + workerData, + parentPort, +} from 'node:worker_threads'; + +if (isMainThread) { + const data = 'some data'; + const worker = new Worker(import.meta.filename, { workerData: data }); + worker.on('message', msg => console.log('Reply from Thread:', msg)); +} else { + const source = workerData; + parentPort.postMessage(btoa(source.toUpperCase())); +} + +// run with `node threads.mjs` +``` +
Apprenez-en plus sur ce que Node.js est capable d'offrir avec notre [Matériel d'apprentissage](/learn). + diff --git a/apps/site/pages/id/about/branding.mdx b/apps/site/pages/id/about/branding.mdx index 58c108b838b20..503745304067a 100644 --- a/apps/site/pages/id/about/branding.mdx +++ b/apps/site/pages/id/about/branding.mdx @@ -11,7 +11,13 @@ Harap tinjau [kebijakan merek dagang](https://trademark-policy.openjsf.org/) unt Penghargaan kepada [Angela Angelini](https://www.linkedin.com/in/angeliningl/) atas desain dan kontribusinya terhadap Rocket Turtle. -Node.js mascot +Node.js mascot ## Logo Node.js® @@ -27,6 +33,7 @@ Penghargaan kepada [Angela Angelini](https://www.linkedin.com/in/angeliningl/) a Logo Terang Horizontal Node.js® + @@ -43,6 +50,7 @@ Penghargaan kepada [Angela Angelini](https://www.linkedin.com/in/angeliningl/) a Logo Terang Bertumpuk Node.js® + @@ -53,6 +61,7 @@ Penghargaan kepada [Angela Angelini](https://www.linkedin.com/in/angeliningl/) a Logo Bertumpuk Putih Node.js + @@ -69,6 +78,7 @@ Penghargaan kepada [Angela Angelini](https://www.linkedin.com/in/angeliningl/) a Ikon JS Putih + diff --git a/apps/site/pages/id/about/index.mdx b/apps/site/pages/id/about/index.mdx index 4b81588bbf2f6..623a5c9777f81 100644 --- a/apps/site/pages/id/about/index.mdx +++ b/apps/site/pages/id/about/index.mdx @@ -17,13 +17,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -34,13 +34,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -62,7 +62,7 @@ HTTP adalah warga negara kelas satu di Node.js, dirancang dengan streaming dan r latensi dalam pikiran. Ini membuat Node.js sangat cocok untuk fondasi web perpustakaan atau kerangka kerja. -Node.js dirancang tanpa thread bukan berarti Anda tidak dapat memanfaatkan banyak inti di lingkungan Anda. Proses anak dapat dihasilkan dengan menggunakan API child\_process.fork() kami, dan dirancang agar mudah untuk berkomunikasi. Dibangun di atas antarmuka yang sama adalah modul cluster, yang memungkinkan Anda berbagi soket antar proses untuk mengaktifkan penyeimbangan beban pada inti Anda. +Node.js dirancang tanpa thread bukan berarti Anda tidak dapat memanfaatkan banyak inti di lingkungan Anda. Proses anak dapat dihasilkan dengan menggunakan API child_process.fork() kami, dan dirancang agar mudah untuk berkomunikasi. Dibangun di atas antarmuka yang sama adalah modul cluster, yang memungkinkan Anda berbagi soket antar proses untuk mengaktifkan penyeimbangan beban pada inti Anda. [blocking vs. non-blocking]: /learn/asynchronous-work/overview-of-blocking-vs-non-blocking [`child_process.fork()`]: https://nodejs.org/api/child_process.html diff --git a/apps/site/pages/id/about/security-reporting.mdx b/apps/site/pages/id/about/security-reporting.mdx index eec7c6747e8cd..d2808fcb4b6bd 100644 --- a/apps/site/pages/id/about/security-reporting.mdx +++ b/apps/site/pages/id/about/security-reporting.mdx @@ -51,7 +51,11 @@ Jika Anda memiliki saran tentang bagaimana proses ini dapat ditingkatkan, silaka ## Praktik Terbaik OpenSSF -OpenSSF Badge + OpenSSF Badge [Best Practices badge](https://github.com/coreinfrastructure/best-practices-badge) Open Source Security Foundation (OpenSSF) adalah cara bagi proyek Free/Libre dan Open Source Software (FLOSS) untuk menunjukkan bahwa mereka mengikuti praktik terbaik. Proyek dapat secara sukarela melakukan sertifikasi sendiri bagaimana mereka mengikuti setiap praktik terbaik. Konsumen yang tersertifikasi dapat dengan cepat menilai proyek FLOSS mana yang mengikuti praktik terbaik dan sebagai hasilnya, mereka lebih cenderung menghasilkan perangkat lunak aman berkualitas lebih tinggi. diff --git a/apps/site/pages/id/index.mdx b/apps/site/pages/id/index.mdx index 81c705ffaffe9..cbe152c9a454f 100644 --- a/apps/site/pages/id/index.mdx +++ b/apps/site/pages/id/index.mdx @@ -9,9 +9,10 @@ layout: home

Jalankan JavaScript Di Mana Saja

- Node.js® adalah lingkungan runtime JavaScript gratis dan sumber terbuka yang - lintas platform, yang memungkinkan pengembang membuat server, aplikasi web, - alat baris perintah, dan skrip. +Node.js® adalah lingkungan runtime JavaScript gratis dan sumber terbuka yang +lintas platform, yang memungkinkan pengembang membuat server, aplikasi web, +alat baris perintah, dan skrip. +
@@ -46,87 +47,93 @@ layout: home // server.mjs import { createServer } from 'node:http'; - const server = createServer((req, res) => { - res.writeHead(200, { 'Content-Type': 'text/plain' }); - res.end('Hello World!\n'); - }); - - // starts a simple http server locally on port 3000 - server.listen(3000, '127.0.0.1', () => { - console.log('Listening on 127.0.0.1:3000'); - }); - - // run with `node server.mjs` - ``` - - ```js displayName="Write Tests" - // tests.mjs - import assert from 'node:assert'; - import test from 'node:test'; - - test('that 1 is equal 1', () => { - assert.strictEqual(1, 1); - }); - - test('that throws as 1 is not equal 2', () => { - // throws an exception because 1 != 2 - assert.strictEqual(1, 2); - }); - - // run with `node tests.mjs` - ``` - - ```js displayName="Read and Hash a File" - // crypto.mjs - import { createHash } from 'node:crypto'; - import { readFile } from 'node:fs/promises'; - - const hasher = createHash('sha1'); - - hasher.setEncoding('hex'); - // ensure you have a `package.json` file for this test! - hasher.write(await readFile('package.json')); - hasher.end(); - - const fileHash = hasher.read(); - - // run with `node crypto.mjs` - ``` - - ```js displayName="Streams Pipeline" - // streams.mjs - import { pipeline } from 'node:stream/promises'; - import { createReadStream, createWriteStream } from 'node:fs'; - import { createGzip } from 'node:zlib'; - - // ensure you have a `package.json` file for this test! - await pipeline - ( - createReadStream('package.json'), - createGzip(), - createWriteStream('package.json.gz') - ); - - // run with `node streams.mjs` - ``` - - ```js displayName="Work with Threads" - // threads.mjs - import { Worker, isMainThread, - workerData, parentPort } from 'node:worker_threads'; - - if (isMainThread) { - const data = 'some data'; - const worker = new Worker(import.meta.filename, { workerData: data }); - worker.on('message', msg => console.log('Reply from Thread:', msg)); - } else { - const source = workerData; - parentPort.postMessage(btoa(source.toUpperCase())); - } - - // run with `node threads.mjs` - ``` +const server = createServer((req, res) => { +res.writeHead(200, { 'Content-Type': 'text/plain' }); +res.end('Hello World!\n'); +}); + +// starts a simple http server locally on port 3000 +server.listen(3000, '127.0.0.1', () => { +console.log('Listening on 127.0.0.1:3000'); +}); + +// run with `node server.mjs` + +```` + +```js displayName="Write Tests" +// tests.mjs +import assert from 'node:assert'; +import test from 'node:test'; + +test('that 1 is equal 1', () => { + assert.strictEqual(1, 1); +}); + +test('that throws as 1 is not equal 2', () => { + // throws an exception because 1 != 2 + assert.strictEqual(1, 2); +}); + +// run with `node tests.mjs` +```` + +```js displayName="Read and Hash a File" +// crypto.mjs +import { createHash } from 'node:crypto'; +import { readFile } from 'node:fs/promises'; + +const hasher = createHash('sha1'); + +hasher.setEncoding('hex'); +// ensure you have a `package.json` file for this test! +hasher.write(await readFile('package.json')); +hasher.end(); + +const fileHash = hasher.read(); + +// run with `node crypto.mjs` +``` + +```js displayName="Streams Pipeline" +// streams.mjs +import { pipeline } from 'node:stream/promises'; +import { createReadStream, createWriteStream } from 'node:fs'; +import { createGzip } from 'node:zlib'; + +// ensure you have a `package.json` file for this test! +await pipeline( + createReadStream('package.json'), + createGzip(), + createWriteStream('package.json.gz') +); + +// run with `node streams.mjs` +``` + +```js displayName="Work with Threads" +// threads.mjs +import { + Worker, + isMainThread, + workerData, + parentPort, +} from 'node:worker_threads'; + +if (isMainThread) { + const data = 'some data'; + const worker = new Worker(import.meta.filename, { workerData: data }); + worker.on('message', msg => console.log('Reply from Thread:', msg)); +} else { + const source = workerData; + parentPort.postMessage(btoa(source.toUpperCase())); +} + +// run with `node threads.mjs` +``` +
Pelajari lebih lanjut tentang apa yang bisa ditawarkan Node.js melalui [Bahan Pembelajaran](/learn) kami. + diff --git a/apps/site/pages/ja/about/branding.mdx b/apps/site/pages/ja/about/branding.mdx index 25ace67d18fc9..2e2e19b65d342 100644 --- a/apps/site/pages/ja/about/branding.mdx +++ b/apps/site/pages/ja/about/branding.mdx @@ -11,7 +11,13 @@ Node.jsのロゴやシンボルマークの許可されている利用方法に ロケットタートルは作者である[Angela Angelini](https://www.linkedin.com/in/angeliningl/)から提供されたものです。 -Node.jsマスコット +Node.jsマスコット ## Node.js®ロゴ @@ -27,6 +33,7 @@ Node.jsのロゴやシンボルマークの許可されている利用方法に Node.jsライト横型ロゴ + @@ -43,6 +50,7 @@ Node.jsのロゴやシンボルマークの許可されている利用方法に Node.jsライトスタック型ロゴ + @@ -53,6 +61,7 @@ Node.jsのロゴやシンボルマークの許可されている利用方法に Node.jsホワイトスタック型ロゴ + @@ -69,6 +78,7 @@ Node.jsのロゴやシンボルマークの許可されている利用方法に JSアイコンホワイト + diff --git a/apps/site/pages/ja/about/index.mdx b/apps/site/pages/ja/about/index.mdx index 7f5bc663529eb..00c987a077ad0 100644 --- a/apps/site/pages/ja/about/index.mdx +++ b/apps/site/pages/ja/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/ja/about/previous-releases.mdx b/apps/site/pages/ja/about/previous-releases.mdx index 5a17d2a65b4bd..12e3aa7c1c00d 100644 --- a/apps/site/pages/ja/about/previous-releases.mdx +++ b/apps/site/pages/ja/about/previous-releases.mdx @@ -27,9 +27,9 @@ Node.jsのウェブサイトはNode.jsを非対話的な方法でインストー Node.jsプロジェクトはコミュニティーの取り組みを普及させ、宣伝する試みとして、公式とコミュニティーの両方のインストール方法をリストする新しいダウンロードページを導入しました。この変更に伴い、「公式」と「コミュニティー」のインストール方法の概念を導入しました。「公式」とみなされるためにはインストール方法が以下の条件を満たしている必要があります: -必要条件 | --------------------------------------------------------------------- | -Node.jsの新しいリリースは公式リリースと同時に利用可能できなければならない | -プロジェクトメンテナーはNode.jsと直接的なコミュニケーションも含めた密接な関係でなければらなない | -Node.jsプロジェクトによって同梱されている公式バイナリーをダウンロードさせるインストール方法になっていなければならない | -バイナリーが利用可能な場合にソースからビルドしたりNode.jsが提供する公式バイナリーを改変しないインストール方法にしなければいけない | +| 必要条件 | +| --------------------------------------------------------------------------------------------------------------------------------- | +| Node.jsの新しいリリースは公式リリースと同時に利用可能できなければならない | +| プロジェクトメンテナーはNode.jsと直接的なコミュニケーションも含めた密接な関係でなければらなない | +| Node.jsプロジェクトによって同梱されている公式バイナリーをダウンロードさせるインストール方法になっていなければならない | +| バイナリーが利用可能な場合にソースからビルドしたりNode.jsが提供する公式バイナリーを改変しないインストール方法にしなければいけない | diff --git a/apps/site/pages/ja/about/security-reporting.mdx b/apps/site/pages/ja/about/security-reporting.mdx index a2b297db9931f..af86a59df66a3 100644 --- a/apps/site/pages/ja/about/security-reporting.mdx +++ b/apps/site/pages/ja/about/security-reporting.mdx @@ -50,8 +50,15 @@ Node.jsプロジェクトはセキュリティー研究者と責任ある情報 ## OpenSSFベストプラクティス - -OpenSSFバッジ + + OpenSSFバッジ オープンソースセキュリティー財団(OpenSSF)の[ベストプラクティスバッジ](https://github.com/coreinfrastructure/best-practices-badge)は、Free/Libre and Open Source Software(FLOSS)プロジェクトがベストプラクティスに従っていることを示す方法です。プロジェクトはそれぞれのベストプラクティスに従っている方法を自発的に自己認証できます。バッジを使うことでどのFLOSSプロジェクトがベストプラクティスに従っているかを迅速に評価でき、結果としてより高品質で安全なソフトウェアを製造する可能性が高くなります。 diff --git a/apps/site/pages/ja/index.mdx b/apps/site/pages/ja/index.mdx index f67e22920db51..935fef71d8b3d 100644 --- a/apps/site/pages/ja/index.mdx +++ b/apps/site/pages/ja/index.mdx @@ -9,7 +9,8 @@ layout: home

どこでもJavaScriptを使おう

- Node.js®はクロスプラットフォームに対応したフリーでオープンソースのJavaScript実行環境です。開発者にサーバー、ウェブアプリ、コマンドラインツール、スクリプトなどを開発する環境を提供します。 +Node.js®はクロスプラットフォームに対応したフリーでオープンソースのJavaScript実行環境です。開発者にサーバー、ウェブアプリ、コマンドラインツール、スクリプトなどを開発する環境を提供します。 +
@@ -44,87 +45,93 @@ layout: home // server.mjs import { createServer } from 'node:http'; - const server = createServer((req, res) => { - res.writeHead(200, { 'Content-Type': 'text/plain' }); - res.end('Hello World!\n'); - }); - - // starts a simple http server locally on port 3000 - server.listen(3000, '127.0.0.1', () => { - console.log('Listening on 127.0.0.1:3000'); - }); - - // run with `node server.mjs` - ``` - - ```js displayName="Write Tests" - // tests.mjs - import assert from 'node:assert'; - import test from 'node:test'; - - test('that 1 is equal 1', () => { - assert.strictEqual(1, 1); - }); - - test('that throws as 1 is not equal 2', () => { - // throws an exception because 1 != 2 - assert.strictEqual(1, 2); - }); - - // run with `node tests.mjs` - ``` - - ```js displayName="Read and Hash a File" - // crypto.mjs - import { createHash } from 'node:crypto'; - import { readFile } from 'node:fs/promises'; - - const hasher = createHash('sha1'); - - hasher.setEncoding('hex'); - // ensure you have a `package.json` file for this test! - hasher.write(await readFile('package.json')); - hasher.end(); - - const fileHash = hasher.read(); - - // run with `node crypto.mjs` - ``` - - ```js displayName="Streams Pipeline" - // streams.mjs - import { pipeline } from 'node:stream/promises'; - import { createReadStream, createWriteStream } from 'node:fs'; - import { createGzip } from 'node:zlib'; - - // ensure you have a `package.json` file for this test! - await pipeline - ( - createReadStream('package.json'), - createGzip(), - createWriteStream('package.json.gz') - ); - - // run with `node streams.mjs` - ``` - - ```js displayName="Work with Threads" - // threads.mjs - import { Worker, isMainThread, - workerData, parentPort } from 'node:worker_threads'; - - if (isMainThread) { - const data = 'some data'; - const worker = new Worker(import.meta.filename, { workerData: data }); - worker.on('message', msg => console.log('Reply from Thread:', msg)); - } else { - const source = workerData; - parentPort.postMessage(btoa(source.toUpperCase())); - } - - // run with `node threads.mjs` - ``` +const server = createServer((req, res) => { +res.writeHead(200, { 'Content-Type': 'text/plain' }); +res.end('Hello World!\n'); +}); + +// starts a simple http server locally on port 3000 +server.listen(3000, '127.0.0.1', () => { +console.log('Listening on 127.0.0.1:3000'); +}); + +// run with `node server.mjs` + +```` + +```js displayName="Write Tests" +// tests.mjs +import assert from 'node:assert'; +import test from 'node:test'; + +test('that 1 is equal 1', () => { + assert.strictEqual(1, 1); +}); + +test('that throws as 1 is not equal 2', () => { + // throws an exception because 1 != 2 + assert.strictEqual(1, 2); +}); + +// run with `node tests.mjs` +```` + +```js displayName="Read and Hash a File" +// crypto.mjs +import { createHash } from 'node:crypto'; +import { readFile } from 'node:fs/promises'; + +const hasher = createHash('sha1'); + +hasher.setEncoding('hex'); +// ensure you have a `package.json` file for this test! +hasher.write(await readFile('package.json')); +hasher.end(); + +const fileHash = hasher.read(); + +// run with `node crypto.mjs` +``` + +```js displayName="Streams Pipeline" +// streams.mjs +import { pipeline } from 'node:stream/promises'; +import { createReadStream, createWriteStream } from 'node:fs'; +import { createGzip } from 'node:zlib'; + +// ensure you have a `package.json` file for this test! +await pipeline( + createReadStream('package.json'), + createGzip(), + createWriteStream('package.json.gz') +); + +// run with `node streams.mjs` +``` + +```js displayName="Work with Threads" +// threads.mjs +import { + Worker, + isMainThread, + workerData, + parentPort, +} from 'node:worker_threads'; + +if (isMainThread) { + const data = 'some data'; + const worker = new Worker(import.meta.filename, { workerData: data }); + worker.on('message', msg => console.log('Reply from Thread:', msg)); +} else { + const source = workerData; + parentPort.postMessage(btoa(source.toUpperCase())); +} + +// run with `node threads.mjs` +``` +
私たちの[学習教材](/learn)でNode.jsでできることをさらに学んでみましょう。 + diff --git a/apps/site/pages/ko/about/branding.mdx b/apps/site/pages/ko/about/branding.mdx index 12e8b5542e667..3b957d4cec5f4 100644 --- a/apps/site/pages/ko/about/branding.mdx +++ b/apps/site/pages/ko/about/branding.mdx @@ -11,7 +11,13 @@ Node.js® 로고 및 마크의 허용 가능한 사용에 대한 정보는 [상 로켓 거북이를 디자인하고 기여한 [Angela Angelini](https://www.linkedin.com/in/angeliningl/)에게 감사의 말씀을 전합니다. -Node.js 마스코트 +Node.js 마스코트 ## Node.js® 로고 @@ -27,6 +33,7 @@ Node.js® 로고 및 마크의 허용 가능한 사용에 대한 정보는 [상 Node.js 밝은 수평 로고 + @@ -43,6 +50,7 @@ Node.js® 로고 및 마크의 허용 가능한 사용에 대한 정보는 [상 Node.js 밝은 세로 로고 + @@ -53,6 +61,7 @@ Node.js® 로고 및 마크의 허용 가능한 사용에 대한 정보는 [상 Node.js 흰색 세로 로고 + @@ -69,6 +78,7 @@ Node.js® 로고 및 마크의 허용 가능한 사용에 대한 정보는 [상 흰색 JS 아이콘 + diff --git a/apps/site/pages/ko/about/index.mdx b/apps/site/pages/ko/about/index.mdx index b72ea24718330..6b1f89e3ecfb4 100644 --- a/apps/site/pages/ko/about/index.mdx +++ b/apps/site/pages/ko/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/ko/about/security-reporting.mdx b/apps/site/pages/ko/about/security-reporting.mdx index 58ea3b0e620bb..3f5e5252363e8 100644 --- a/apps/site/pages/ko/about/security-reporting.mdx +++ b/apps/site/pages/ko/about/security-reporting.mdx @@ -50,8 +50,15 @@ Node.js의 보안 공개 정책은 다음과 같습니다. ## OpenSSF 모범 사례 - -OpenSSF 배지 + + OpenSSF 배지 Open Source Security Foundation(OpenSSF) [모범 사례 배지](https://github.com/coreinfrastructure/best-practices-badge)는 자유/오픈 소스 소프트웨어(FLOSS) 프로젝트가 모범 사례를 따르고 있음을 보여주는 방법입니다. 프로젝트는 자발적으로 각 사례를 어떻게 따르고 있는지에 대해 자체 인증할 수 있습니다. 이 배지를 확인하는 사용자들은 FLOSS 프로젝트가 모범 사례를 따르고 있는지 빠르게 평가할 수 있으며, 그 결과 더 높은 품질의 안전한 소프트웨어를 제작할 가능성이 높다는 것을 알 수 있습니다. diff --git a/apps/site/pages/ko/index.mdx b/apps/site/pages/ko/index.mdx index 575404dbbf5db..25f31ed624ab0 100644 --- a/apps/site/pages/ko/index.mdx +++ b/apps/site/pages/ko/index.mdx @@ -9,7 +9,8 @@ layout: home

어디서든 JavaScript를 실행하세요

- Node.js®는 무료, 오픈소스, 다중 플랫폼 JavaScript 런타임 환경으로 개발자 여러분이 서버, 웹 애플리케이션, 명령어 작성 도구와 스크립트를 만들도록 해줍니다. +Node.js®는 무료, 오픈소스, 다중 플랫폼 JavaScript 런타임 환경으로 개발자 여러분이 서버, 웹 애플리케이션, 명령어 작성 도구와 스크립트를 만들도록 해줍니다. +
@@ -44,87 +45,93 @@ layout: home // server.mjs import { createServer } from 'node:http'; - const server = createServer((req, res) => { - res.writeHead(200, { 'Content-Type': 'text/plain' }); - res.end('Hello World!\n'); - }); - - // starts a simple http server locally on port 3000 - server.listen(3000, '127.0.0.1', () => { - console.log('Listening on 127.0.0.1:3000'); - }); - - // run with `node server.mjs` - ``` - - ```js displayName="Write Tests" - // tests.mjs - import assert from 'node:assert'; - import test from 'node:test'; - - test('that 1 is equal 1', () => { - assert.strictEqual(1, 1); - }); - - test('that throws as 1 is not equal 2', () => { - // throws an exception because 1 != 2 - assert.strictEqual(1, 2); - }); - - // run with `node tests.mjs` - ``` - - ```js displayName="Read and Hash a File" - // crypto.mjs - import { createHash } from 'node:crypto'; - import { readFile } from 'node:fs/promises'; - - const hasher = createHash('sha1'); - - hasher.setEncoding('hex'); - // ensure you have a `package.json` file for this test! - hasher.write(await readFile('package.json')); - hasher.end(); - - const fileHash = hasher.read(); - - // run with `node crypto.mjs` - ``` - - ```js displayName="Streams Pipeline" - // streams.mjs - import { pipeline } from 'node:stream/promises'; - import { createReadStream, createWriteStream } from 'node:fs'; - import { createGzip } from 'node:zlib'; - - // ensure you have a `package.json` file for this test! - await pipeline - ( - createReadStream('package.json'), - createGzip(), - createWriteStream('package.json.gz') - ); - - // run with `node streams.mjs` - ``` - - ```js displayName="Work with Threads" - // threads.mjs - import { Worker, isMainThread, - workerData, parentPort } from 'node:worker_threads'; - - if (isMainThread) { - const data = 'some data'; - const worker = new Worker(import.meta.filename, { workerData: data }); - worker.on('message', msg => console.log('Reply from Thread:', msg)); - } else { - const source = workerData; - parentPort.postMessage(btoa(source.toUpperCase())); - } - - // run with `node threads.mjs` - ``` +const server = createServer((req, res) => { +res.writeHead(200, { 'Content-Type': 'text/plain' }); +res.end('Hello World!\n'); +}); + +// starts a simple http server locally on port 3000 +server.listen(3000, '127.0.0.1', () => { +console.log('Listening on 127.0.0.1:3000'); +}); + +// run with `node server.mjs` + +```` + +```js displayName="Write Tests" +// tests.mjs +import assert from 'node:assert'; +import test from 'node:test'; + +test('that 1 is equal 1', () => { + assert.strictEqual(1, 1); +}); + +test('that throws as 1 is not equal 2', () => { + // throws an exception because 1 != 2 + assert.strictEqual(1, 2); +}); + +// run with `node tests.mjs` +```` + +```js displayName="Read and Hash a File" +// crypto.mjs +import { createHash } from 'node:crypto'; +import { readFile } from 'node:fs/promises'; + +const hasher = createHash('sha1'); + +hasher.setEncoding('hex'); +// ensure you have a `package.json` file for this test! +hasher.write(await readFile('package.json')); +hasher.end(); + +const fileHash = hasher.read(); + +// run with `node crypto.mjs` +``` + +```js displayName="Streams Pipeline" +// streams.mjs +import { pipeline } from 'node:stream/promises'; +import { createReadStream, createWriteStream } from 'node:fs'; +import { createGzip } from 'node:zlib'; + +// ensure you have a `package.json` file for this test! +await pipeline( + createReadStream('package.json'), + createGzip(), + createWriteStream('package.json.gz') +); + +// run with `node streams.mjs` +``` + +```js displayName="Work with Threads" +// threads.mjs +import { + Worker, + isMainThread, + workerData, + parentPort, +} from 'node:worker_threads'; + +if (isMainThread) { + const data = 'some data'; + const worker = new Worker(import.meta.filename, { workerData: data }); + worker.on('message', msg => console.log('Reply from Thread:', msg)); +} else { + const source = workerData; + parentPort.postMessage(btoa(source.toUpperCase())); +} + +// run with `node threads.mjs` +``` +
Node.js가 제공하는 [학습 자료](/learn)를 통해 더 많은 정보를 알아보세요. + diff --git a/apps/site/pages/pt/about/index.mdx b/apps/site/pages/pt/about/index.mdx index daaab4881380c..5a9795a95a8a3 100644 --- a/apps/site/pages/pt/about/index.mdx +++ b/apps/site/pages/pt/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/pt/about/security-reporting.mdx b/apps/site/pages/pt/about/security-reporting.mdx index 70272eaf6154a..184f4b990d644 100644 --- a/apps/site/pages/pt/about/security-reporting.mdx +++ b/apps/site/pages/pt/about/security-reporting.mdx @@ -50,8 +50,15 @@ Se tivermos sugestões sobre como este processo poderia ser melhorado, podemos s ## Boas Práticas da OpenSSF - -Distintivo da OpenSSF + + Distintivo da OpenSSF distintivo de boas práticas da “Open Source Security Foundation (OpenSSF)” é uma maneira de os projetos de Software Livre e de Código Aberto (FLOSS) mostrarem que seguem as boas práticas. Os projetos podem certificar-se voluntariamente como seguem cada uma das boas práticas. Os consumidores do distintivo podem avaliar rapidamente quais os projetos FLOSS que seguem as boas práticas e, consequentemente, têm maior probabilidade de produzir software seguro de superior qualidade. diff --git a/apps/site/pages/tr/about/index.mdx b/apps/site/pages/tr/about/index.mdx index 4973f55a84b66..bc4e9683f1bf1 100644 --- a/apps/site/pages/tr/about/index.mdx +++ b/apps/site/pages/tr/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/tr/about/security-reporting.mdx b/apps/site/pages/tr/about/security-reporting.mdx index fc13948715082..8c5cf0326847d 100644 --- a/apps/site/pages/tr/about/security-reporting.mdx +++ b/apps/site/pages/tr/about/security-reporting.mdx @@ -52,8 +52,15 @@ Tartışmak için [bir konuyu dosyalayın](https://github.com/nodejs/security-wg ## OpenSSF En İyi Uygulamaları - -OpenSSF Rozeti + + OpenSSF Rozeti Açık Kaynak Güvenlik Vakfı (OpenSSF) [En İyi Uygulamalar rozeti](https://github.com/coreinfrastructure/best-practices-badge), Özgür/Kütüphane ve Açık Kaynak Yazılım (FLOSS) projelerinin en iyi uygulamaları takip ettiklerini göstermeleri için bir yoldur. Projeler gönüllü olarak her bir en iyi uygulamayı nasıl takip ettiklerini kendi kendilerine belgeleyebilirler. Rozetin tüketicileri, hangi FLOSS projelerinin en iyi uygulamaları takip ettiğini ve sonuç olarak daha yüksek kalitede güvenli yazılım üretme olasılığının daha yüksek olduğunu hızlı bir şekilde değerlendirebilirler. diff --git a/apps/site/pages/uk/about/branding.mdx b/apps/site/pages/uk/about/branding.mdx index 03f2fc08f10bc..0d416c8a49ea4 100644 --- a/apps/site/pages/uk/about/branding.mdx +++ b/apps/site/pages/uk/about/branding.mdx @@ -11,7 +11,13 @@ layout: about Дякуємо [Анджелі Анджеліні](https://www.linkedin.com/in/angeliningl) за дизайн та внесок у Rocket Turtle. -Маскот Node.js +Маскот Node.js ## Логотип Node.js® @@ -27,6 +33,7 @@ layout: about Світлий горизонтальний логотип Node.js + @@ -43,6 +50,7 @@ layout: about Світлий складений логотип Node.js® + @@ -53,6 +61,7 @@ layout: about Білий складений логотип Node.js® + @@ -69,6 +78,7 @@ layout: about Білий значок JS + diff --git a/apps/site/pages/uk/about/index.mdx b/apps/site/pages/uk/about/index.mdx index 9fd7b29199885..8ace8ffa2c205 100644 --- a/apps/site/pages/uk/about/index.mdx +++ b/apps/site/pages/uk/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/uk/about/security-reporting.mdx b/apps/site/pages/uk/about/security-reporting.mdx index 2068921d6b36c..a4051acc496f6 100644 --- a/apps/site/pages/uk/about/security-reporting.mdx +++ b/apps/site/pages/uk/about/security-reporting.mdx @@ -51,8 +51,15 @@ layout: about ## Найкращі практики OpenSSF - -Значок OpenSSF + + Значок OpenSSF [Значок за найкращі практики](https://github.com/coreinfrastructure/best-practices-badge) від Open Source Security Foundation (OpenSSF) — це спосіб для проєктів із відкритим кодом (Free/Libre and Open Source Software, FLOSS) показати, що вони дотримуються найкращих практик. Проєкти можуть самостійно описати, як вони дотримуються кожної практики. Користувачі можуть швидко оцінити, які проєкти FLOSS дотримуються найкращих практик і, як результат, створювати безпечне ПЗ кращої якості. diff --git a/apps/site/pages/uk/download/current.mdx b/apps/site/pages/uk/download/current.mdx index b064686a5b4ef..8b6fc6186765f 100644 --- a/apps/site/pages/uk/download/current.mdx +++ b/apps/site/pages/uk/download/current.mdx @@ -26,5 +26,6 @@ title: Завантажити Node.js® Перегляньте наші нічні бінарні файли, усі попередні релізи чи + неофіційні бінарні файли для інших платформ. diff --git a/apps/site/pages/uk/download/index.mdx b/apps/site/pages/uk/download/index.mdx index b064686a5b4ef..8b6fc6186765f 100644 --- a/apps/site/pages/uk/download/index.mdx +++ b/apps/site/pages/uk/download/index.mdx @@ -26,5 +26,6 @@ title: Завантажити Node.js® Перегляньте наші нічні бінарні файли, усі попередні релізи чи + неофіційні бінарні файли для інших платформ. diff --git a/apps/site/pages/uk/index.mdx b/apps/site/pages/uk/index.mdx index 75d1d7d556be5..2b65d70048c87 100644 --- a/apps/site/pages/uk/index.mdx +++ b/apps/site/pages/uk/index.mdx @@ -9,8 +9,9 @@ layout: home

Запускайте JavaScript будь-де

- Node.js® — це безплатне, кросплатформне середовище виконання JavaScript із відкритим кодом, - яке дозволяє розробникам створювати сервери, вебзастосунки, інструменти командного рядка та скрипти. +Node.js® — це безплатне, кросплатформне середовище виконання JavaScript із відкритим кодом, +яке дозволяє розробникам створювати сервери, вебзастосунки, інструменти командного рядка та скрипти. +
@@ -45,87 +46,93 @@ layout: home // server.mjs import { createServer } from 'node:http'; - const server = createServer((req, res) => { - res.writeHead(200, { 'Content-Type': 'text/plain' }); - res.end('Hello World!\n'); - }); - - // starts a simple http server locally on port 3000 - server.listen(3000, '127.0.0.1', () => { - console.log('Listening on 127.0.0.1:3000'); - }); - - // run with `node server.mjs` - ``` - - ```js displayName="Write Tests" - // tests.mjs - import assert from 'node:assert'; - import test from 'node:test'; - - test('that 1 is equal 1', () => { - assert.strictEqual(1, 1); - }); - - test('that throws as 1 is not equal 2', () => { - // throws an exception because 1 != 2 - assert.strictEqual(1, 2); - }); - - // run with `node tests.mjs` - ``` - - ```js displayName="Read and Hash a File" - // crypto.mjs - import { createHash } from 'node:crypto'; - import { readFile } from 'node:fs/promises'; - - const hasher = createHash('sha1'); - - hasher.setEncoding('hex'); - // ensure you have a `package.json` file for this test! - hasher.write(await readFile('package.json')); - hasher.end(); - - const fileHash = hasher.read(); - - // run with `node crypto.mjs` - ``` - - ```js displayName="Streams Pipeline" - // streams.mjs - import { pipeline } from 'node:stream/promises'; - import { createReadStream, createWriteStream } from 'node:fs'; - import { createGzip } from 'node:zlib'; - - // ensure you have a `package.json` file for this test! - await pipeline - ( - createReadStream('package.json'), - createGzip(), - createWriteStream('package.json.gz') - ); - - // run with `node streams.mjs` - ``` - - ```js displayName="Work with Threads" - // threads.mjs - import { Worker, isMainThread, - workerData, parentPort } from 'node:worker_threads'; - - if (isMainThread) { - const data = 'some data'; - const worker = new Worker(import.meta.filename, { workerData: data }); - worker.on('message', msg => console.log('Reply from Thread:', msg)); - } else { - const source = workerData; - parentPort.postMessage(btoa(source.toUpperCase())); - } - - // run with `node threads.mjs` - ``` +const server = createServer((req, res) => { +res.writeHead(200, { 'Content-Type': 'text/plain' }); +res.end('Hello World!\n'); +}); + +// starts a simple http server locally on port 3000 +server.listen(3000, '127.0.0.1', () => { +console.log('Listening on 127.0.0.1:3000'); +}); + +// run with `node server.mjs` + +```` + +```js displayName="Write Tests" +// tests.mjs +import assert from 'node:assert'; +import test from 'node:test'; + +test('that 1 is equal 1', () => { + assert.strictEqual(1, 1); +}); + +test('that throws as 1 is not equal 2', () => { + // throws an exception because 1 != 2 + assert.strictEqual(1, 2); +}); + +// run with `node tests.mjs` +```` + +```js displayName="Read and Hash a File" +// crypto.mjs +import { createHash } from 'node:crypto'; +import { readFile } from 'node:fs/promises'; + +const hasher = createHash('sha1'); + +hasher.setEncoding('hex'); +// ensure you have a `package.json` file for this test! +hasher.write(await readFile('package.json')); +hasher.end(); + +const fileHash = hasher.read(); + +// run with `node crypto.mjs` +``` + +```js displayName="Streams Pipeline" +// streams.mjs +import { pipeline } from 'node:stream/promises'; +import { createReadStream, createWriteStream } from 'node:fs'; +import { createGzip } from 'node:zlib'; + +// ensure you have a `package.json` file for this test! +await pipeline( + createReadStream('package.json'), + createGzip(), + createWriteStream('package.json.gz') +); + +// run with `node streams.mjs` +``` + +```js displayName="Work with Threads" +// threads.mjs +import { + Worker, + isMainThread, + workerData, + parentPort, +} from 'node:worker_threads'; + +if (isMainThread) { + const data = 'some data'; + const worker = new Worker(import.meta.filename, { workerData: data }); + worker.on('message', msg => console.log('Reply from Thread:', msg)); +} else { + const source = workerData; + parentPort.postMessage(btoa(source.toUpperCase())); +} + +// run with `node threads.mjs` +``` +
Дізнайтеся більше про можливості Node.js із [нашими навчальними матеріалами](/learn). + diff --git a/apps/site/pages/zh-cn/about/index.mdx b/apps/site/pages/zh-cn/about/index.mdx index cd3daeb14bba7..47b787ffa40d5 100644 --- a/apps/site/pages/zh-cn/about/index.mdx +++ b/apps/site/pages/zh-cn/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -51,7 +51,7 @@ Node.js 在设计上受到了诸如 Ruby 的 [Event Machine][] 和 Python 的 [T HTTP 在 Node.js 中是第一类公民,设计时考虑了流式传输和低延迟。这使得 Node.js 非常适合作为 Web 库或框架的基础。 -Node.js 的设计没有线程并不意味着您不能利用环境中的多个核心。可以使用我们的 [child\_process.fork()](https://nodejs.org/docs/latest/api/child_process.html#child_processforkmodulepath-args-options) API 来生成子进程,并且设计得易于通信。建立在同一接口之上的是 [cluster](https://nodejs.org/docs/latest/api/cluster.html) 模块,它允许您在进程之间共享套接字,从而实现对核心的负载均衡。 +Node.js 的设计没有线程并不意味着您不能利用环境中的多个核心。可以使用我们的 [child_process.fork()](https://nodejs.org/docs/latest/api/child_process.html#child_processforkmodulepath-args-options) API 来生成子进程,并且设计得易于通信。建立在同一接口之上的是 [cluster](https://nodejs.org/docs/latest/api/cluster.html) 模块,它允许您在进程之间共享套接字,从而实现对核心的负载均衡。 [blocking vs. non-blocking]: /learn/asynchronous-work/overview-of-blocking-vs-non-blocking [`child_process.fork()`]: https://nodejs.org/api/child_process.html diff --git a/apps/site/pages/zh-cn/about/security-reporting.mdx b/apps/site/pages/zh-cn/about/security-reporting.mdx index e0ec739c92aab..fafe4d90c5cef 100644 --- a/apps/site/pages/zh-cn/about/security-reporting.mdx +++ b/apps/site/pages/zh-cn/about/security-reporting.mdx @@ -50,8 +50,15 @@ Node.js 项目为安全研究人员和负责任的公开披露提供官方漏洞 ## OpenSSF 最佳实践 - -OpenSSF Badge + + OpenSSF Badge 开源安全基金会(OpenSSF)[最佳实践徽章](https://github.com/coreinfrastructure/best-practices-badge) 是自由/自由和开源软件(FLOSS)项目展示他们遵循最佳实践的一种方式。 项目可以自愿地自我认证他们如何遵循每个最佳实践。 徽章的使用者可以快速评估哪些 FLOSS 项目正在遵循最佳实践,因此更有可能产生更高质量的安全软件。 diff --git a/apps/site/pages/zh-tw/about/index.mdx b/apps/site/pages/zh-tw/about/index.mdx index b297aa2df0fbb..81b70befaa623 100644 --- a/apps/site/pages/zh-tw/about/index.mdx +++ b/apps/site/pages/zh-tw/about/index.mdx @@ -14,13 +14,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` @@ -31,13 +31,13 @@ const hostname = '127.0.0.1'; const port = 3000; const server = createServer((req, res) => { -res.statusCode = 200; -res.setHeader('Content-Type', 'text/plain'); -res.end('Hello World'); + res.statusCode = 200; + res.setHeader('Content-Type', 'text/plain'); + res.end('Hello World'); }); server.listen(port, hostname, () => { -console.log(`Server running at http://${hostname}:${port}/`); + console.log(`Server running at http://${hostname}:${port}/`); }); ``` diff --git a/apps/site/pages/zh-tw/about/security-reporting.mdx b/apps/site/pages/zh-tw/about/security-reporting.mdx index 634022e514d6a..7f41b4ba9fcea 100644 --- a/apps/site/pages/zh-tw/about/security-reporting.mdx +++ b/apps/site/pages/zh-tw/about/security-reporting.mdx @@ -51,8 +51,15 @@ Node.js 專案為安全研究人員和盡責公開揭露設立了官方漏洞獎 ## OpenSSF 最佳實踐 - -OpenSSF 徽章 + + OpenSSF 徽章 開源安全基金會 (OpenSSF) [最佳實踐徽章](https://github.com/coreinfrastructure/best-practices-badge)的意義是為奉行最佳實踐的自由/開源軟體 (FLOSS) 專案提供背書。專案可以自發認證每項最佳實踐的遵循情況,徽章的使用者則可以快速評估哪些 FLOSS 專案確實遵循最佳實踐,因此更有可能產出安全又高品質的軟體。 diff --git a/apps/site/pages/zh-tw/download/index.mdx b/apps/site/pages/zh-tw/download/index.mdx index ac060aca72fa9..d8fb2039e3b26 100644 --- a/apps/site/pages/zh-tw/download/index.mdx +++ b/apps/site/pages/zh-tw/download/index.mdx @@ -25,4 +25,5 @@ title: 下載 Node.js® 暸解如何自原始碼建置 Node.js。 查看我們的每日組建版本、所有先前版本或適用於其他平台的非官方組建。 + From 77801b291938a9af0f0072d4cbf5be67879d6340 Mon Sep 17 00:00:00 2001 From: Brian Muenzenmeyer Date: Fri, 10 Jan 2025 08:42:06 -0600 Subject: [PATCH 3/4] enables japanese --- packages/i18n/config.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/i18n/config.json b/packages/i18n/config.json index 4100a8497c5de..c30a053e2f28f 100644 --- a/packages/i18n/config.json +++ b/packages/i18n/config.json @@ -136,7 +136,7 @@ "langDir": "ltr", "dateFormat": "YYYY.MM.DD", "hrefLang": "ja", - "enabled": false, + "enabled": true, "default": false }, { From 6b65174fe23788ec0f3a759669855b87b3e65c53 Mon Sep 17 00:00:00 2001 From: Brian Muenzenmeyer Date: Fri, 10 Jan 2025 08:46:44 -0600 Subject: [PATCH 4/4] Update apps/site/pages/es/about/index.mdx Signed-off-by: Brian Muenzenmeyer --- apps/site/pages/es/about/index.mdx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/site/pages/es/about/index.mdx b/apps/site/pages/es/about/index.mdx index df9cfdc257303..8489ee76f5426 100644 --- a/apps/site/pages/es/about/index.mdx +++ b/apps/site/pages/es/about/index.mdx @@ -60,4 +60,4 @@ El hecho de que Node.js esté diseñado sin hilos no significa que no puedas ace [`child_process.fork()`]: https://nodejs.org/api/child_process.html [`cluster`]: https://nodejs.org/api/cluster.html [máquina de eventos]: https://github.com/eventmachine/eventmachine -[torcido]: https://twisted.org/ +[twisted]: https://twisted.org/