From 2ee8db765e222eb426837ebffce180c2e325fa28 Mon Sep 17 00:00:00 2001 From: Crowdin Bot Date: Fri, 31 Jan 2025 05:08:03 +0000 Subject: [PATCH 1/2] chore: synced translations from crowdin --- apps/site/pages/es/about/branding.mdx | 12 +- .../site/pages/es/about/get-involved/index.md | 2 +- .../pages/es/about/security-reporting.mdx | 11 +- .../pages/fa/about/security-reporting.mdx | 11 +- apps/site/pages/fr/about/branding.mdx | 12 +- apps/site/pages/fr/about/governance.md | 17 +- apps/site/pages/fr/about/index.mdx | 38 ++-- .../site/pages/fr/about/previous-releases.mdx | 12 +- .../pages/fr/about/security-reporting.mdx | 11 +- apps/site/pages/fr/download/current.mdx | 5 +- apps/site/pages/fr/download/index.mdx | 5 +- apps/site/pages/fr/index.mdx | 173 ++++++++--------- apps/site/pages/id/about/branding.mdx | 12 +- apps/site/pages/id/about/governance.md | 17 +- apps/site/pages/id/about/index.mdx | 30 ++- .../site/pages/id/about/previous-releases.mdx | 12 +- .../pages/id/about/security-reporting.mdx | 6 +- apps/site/pages/id/download/current.mdx | 5 +- apps/site/pages/id/download/index.mdx | 5 +- apps/site/pages/id/index.mdx | 177 +++++++++--------- apps/site/pages/ja/about/branding.mdx | 12 +- .../site/pages/ja/about/previous-releases.mdx | 12 +- .../pages/ja/about/security-reporting.mdx | 11 +- apps/site/pages/ko/about/branding.mdx | 12 +- .../site/pages/ko/about/previous-releases.mdx | 12 +- .../pages/ko/about/security-reporting.mdx | 11 +- .../pages/pt/about/security-reporting.mdx | 11 +- .../pages/tr/about/security-reporting.mdx | 11 +- apps/site/pages/uk/about/branding.mdx | 12 +- apps/site/pages/uk/about/governance.md | 17 +- apps/site/pages/uk/about/index.mdx | 30 ++- .../site/pages/uk/about/previous-releases.mdx | 12 +- .../pages/uk/about/security-reporting.mdx | 11 +- apps/site/pages/uk/index.mdx | 173 ++++++++--------- .../pages/zh-cn/about/security-reporting.mdx | 11 +- .../pages/zh-tw/about/previous-releases.mdx | 12 +- .../pages/zh-tw/about/security-reporting.mdx | 11 +- apps/site/snippets/es/download/brew.bash | 8 + apps/site/snippets/es/download/choco.bash | 8 + apps/site/snippets/es/download/devbox.bash | 14 ++ apps/site/snippets/es/download/docker.bash | 11 ++ apps/site/snippets/es/download/yarn.bash | 5 + 42 files changed, 424 insertions(+), 576 deletions(-) create mode 100644 apps/site/snippets/es/download/brew.bash create mode 100644 apps/site/snippets/es/download/choco.bash create mode 100644 apps/site/snippets/es/download/devbox.bash create mode 100644 apps/site/snippets/es/download/docker.bash create mode 100644 apps/site/snippets/es/download/yarn.bash 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/get-involved/index.md b/apps/site/pages/es/about/get-involved/index.md index b54e635612ce6..47aeed526cdc6 100644 --- a/apps/site/pages/es/about/get-involved/index.md +++ b/apps/site/pages/es/about/get-involved/index.md @@ -1,5 +1,5 @@ --- -title: Participar +title: Colaborar layout: about --- 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/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/governance.md b/apps/site/pages/fr/about/governance.md index 30cb570d6cbdd..3ba08548c9017 100644 --- a/apps/site/pages/fr/about/governance.md +++ b/apps/site/pages/fr/about/governance.md @@ -7,30 +7,23 @@ layout: about ## Processus de recherche de consensus -Le projet Node.js suit un modèle de prise de décision [Consensus Seeking][]. +Le projet Node.js suit un modèle de prise de décision [Consensus Seeking](https://en.wikipedia.org/wiki/Consensus-seeking_decision-making). ## Collaborateurs -Le dépôt GitHub [nodejs/node][] core est maintenu par les Collaborateurs +Le dépôt GitHub [nodejs/node](https://github.com/nodejs/node) core est maintenu par les Collaborateurs qui sont nommés par d'autres collaborateurs existants sur une base continue. Les personnes qui apportent des contributions significatives et précieuses sont nommées collaborateurs et se voient attribuer un accès au projet. Ces personnes sont identifiées par d'autres. Ces personnes sont identifiées par d'autres collaborateurs et leur nomination est discutée avec les collaborateurs existants. -Pour la liste actuelle des collaborateurs, voir le [README.md][] du projet. +Pour obtenir la liste actuelle des collaborateurs, consultez le site web du projet [README.md](https://github.com/nodejs/node/blob/main/README.md#current-project-team-members). -Un guide pour les collaborateurs est disponible à l'adresse suivante : [collaborator-guide.md][]. +Un guide pour les collaborateurs est disponible sur [collaborator-guide.md](https://github.com/nodejs/node/blob/main/doc/contributing/collaborator-guide.md). ## Comité de pilotage technique -Le projet est régi par le "[Technical Steering Committee (TSC)][]" +Le projet est régi par le [Technical Steering Committee (TSC)](https://github.com/nodejs/TSC/blob/main/TSC-Charter.md) qui est responsable de l'orientation de haut niveau du projet. Le TSC est un un sous-ensemble de collaborateurs actifs qui sont nommés par d'autres membres existants du TSC. - -[consensus seeking]: https://en.wikipedia.org/wiki/Consensus-seeking_decision-making -[readme.md]: https://github.com/nodejs/node/blob/main/README.md#current-project-team-members -[tsc]: https://github.com/nodejs/TSC -[technical steering committee (tsc)]: https://github.com/nodejs/TSC/blob/main/TSC-Charter.md -[collaborator-guide.md]: https://github.com/nodejs/node/blob/main/doc/contributing/collaborator-guide.md -[nodejs/node]: https://github.com/nodejs/node diff --git a/apps/site/pages/fr/about/index.mdx b/apps/site/pages/fr/about/index.mdx index 914d165ead2ad..f8385240f6d68 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}/`); }); ``` @@ -51,16 +51,15 @@ méthodes synchrones de la bibliothèque standard de Node.js. Comme rien ne se b raisonnables à développer en Node.js. Si ce langage ne vous est pas familier, vous trouverez un article complet sur le site suivant -[Blocage et non-blocage][]. +[Bloquant et Non-bloquant](/learn/asynchronous-work/overview-of-blocking-vs-non-blocking). --- -La conception de Node.js est similaire et influencée par des systèmes tels que Ruby [Event Machine][] et Python [Twisted][]. -[Event Machine][] de Ruby et [Twisted][] de Python. Node.js pousse le modèle d'événement un peu plus loin. -un peu plus loin. Il présente une boucle d'événements comme une construction d'exécution plutôt que comme une bibliothèque. Dans d'autres systèmes, +La conception de Node.js est similaire et influencée par des systèmes tels que Ruby [Event Machine](https://github.com/eventmachine/eventmachine) et [Twisted](https://twisted.org/) de Python. +Node.js pousse le modèle d'événement un peu plus loin. +Il présente une boucle d'événements comme une construction d'exécution et non comme une bibliothèque. Dans d'autres systèmes, il y a toujours un appel bloquant pour démarrer la boucle d'événements. -Généralement, le comportement est défini par des rappels au début d'un script et, à la fin, un serveur est démarré par le biais d'un appel bloquant. -la fin, un serveur est démarré par un appel bloquant comme `EventMachine::run()`. +Généralement, le comportement est défini par des rappels au début d'un script et, à la fin, un serveur est démarré par un appel bloquant comme `EventMachine::run()`. Dans Node.js, il n'y a pas de tel appel start-the-event-loop. Node.js entre simplement dans la boucle d'événements après avoir exécuté le script d'entrée. Node.js quitte la boucle d'événements lorsqu'il n'y a plus de rappels à effectuer. Ce comportement est similaire à celui d'un navigateur JavaScript - la boucle d'événements est cachée à l'utilisateur. @@ -70,14 +69,7 @@ latence. Node.js est donc bien adapté à la création d'une bibliothèque ou d' web ou d'un framework. Le fait que Node.js soit conçu sans threads ne signifie pas que vous ne pouvez pas tirer -profiter de plusieurs cœurs dans votre environnement. Les processus enfants peuvent être créés en utilisant notre API [`child_process.fork()`][]. -en utilisant notre API [`child_process.fork()`][], et sont conçus pour être faciles à communiquer. -communiquer avec. Le module [`cluster`][] est construit sur cette même interface, +profit de plusieurs cœurs dans votre environnement. Les processus enfants peuvent être créés en utilisant notre API [`child_process.fork()`](https://nodejs.org/api/child_process.html), et sont conçus pour être faciles à +communiquer avec. Le module [`cluster`](https://nodejs.org/api/cluster.html) est construit sur cette même interface, qui vous permet de partager des sockets entre les processus afin d'équilibrer la charge sur vos cœurs. - -[bloquant ou non bloquant]: /learn/asynchronous-work/overview-of-blocking-vs-non-blocking -[`child_process.fork()`]: https://nodejs.org/api/child_process.html -[`cluster`]: https://nodejs.org/api/cluster.html -[événements machine]: https://github.com/eventmachine/eventmachine -[tordu]: https://twisted.org/ diff --git a/apps/site/pages/fr/about/previous-releases.mdx b/apps/site/pages/fr/about/previous-releases.mdx index 4f414b6691601..37cbc24b4f6ff 100644 --- a/apps/site/pages/fr/about/previous-releases.mdx +++ b/apps/site/pages/fr/about/previous-releases.mdx @@ -31,9 +31,9 @@ par exemple, via des CLI, des gestionnaires de paquets OS (tels que `apt`), ou d Le projet Node.js, dans une tentative de populariser et d'annoncer les efforts de la communauté, a introduit une nouvelle page de téléchargement qui liste à la fois les méthodes d'installation officielles et communautaires, offrant plus de polyvalence et d'options aux utilisateurs. Avec ce changement, nous avons introduit le concept de méthodes d'installation "officielles" et "communautaires". Pour être considérée comme "officielle", la méthode d'installation doit répondre aux critères suivants : -| Prérequis | -| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Les nouvelles versions de Node.js doivent être disponibles en même temps que la version officielle | -| Les responsables de projet ont une relation étroite avec Node.js, y compris une communication directe | -| La méthode d'installation télécharge les binaires officiels fournis par le projet Node.js | -| La méthode d'installation ne compile **pas** à partir des sources lorsque les binaires sont disponibles, ni ne modifie les binaires officiels fournis par Node.js | +Prérequis | +----------------------------------------------------------------------------------------------------------------------------------------------------------------- | +Les nouvelles versions de Node.js doivent être disponibles en même temps que la version officielle | +Les responsables de projet ont une relation étroite avec Node.js, y compris une communication directe | +La méthode d'installation télécharge les binaires officiels fournis par le projet Node.js | +La méthode d'installation ne compile **pas** à partir des sources lorsque les binaires sont disponibles, ni ne modifie les binaires officiels fournis par Node.js | 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 index 0b62d4f467e0d..a3f32f2e12aa6 100644 --- a/apps/site/pages/fr/download/current.mdx +++ b/apps/site/pages/fr/download/current.mdx @@ -22,8 +22,7 @@ Lire le journal des modifications p 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. +Vous cherchez les sources de Node.js ? Téléchargez une archive signée Node.js source. +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 0b2935443796b..1c57f46d77e98 100644 --- a/apps/site/pages/fr/download/index.mdx +++ b/apps/site/pages/fr/download/index.mdx @@ -22,8 +22,7 @@ Lire le journal des modifications p 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. +Vous cherchez les sources de Node.js ? Téléchargez une archive signée Node.js source. +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..b861811b284db 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.
@@ -19,9 +18,9 @@ Node.js® est un environnement d'exécution JavaScript gratuit, open-source et m <> Télécharger Node.js (LTS) - Télécharger Node.js {release.versionWithPrefix} + Téléchargements Node.js {release.versionWithPrefix} 1 avec un support à long terme. - Node.js peut également être installé via gestionnaires de paquets. + Node.js peut également être installé via le gestionnaire de versions. )} @@ -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/governance.md b/apps/site/pages/id/about/governance.md index ac09ed445e313..b2cc8db0afac1 100644 --- a/apps/site/pages/id/about/governance.md +++ b/apps/site/pages/id/about/governance.md @@ -7,26 +7,19 @@ layout: about ## Proses Pencarian Kesepakatan -Proyek Node.js mengikuti model pengambilan keputusan [Pencarian Konsensus] []. +Proyek Node.js mengikuti model pengambilan keputusan [Musyawarah](https://id.wikipedia.org/wiki/Musyawarah). ## Kolaborator -Repositori inti GitHub [nodejs/node][] dikelola oleh Kolaborator +Repositori inti GitHub [nodejs/node](https://github.com/nodejs/node) dikelola oleh Kolaborator yang dinominasikan oleh Kolaborator lain yang ada secara berkelanjutan. Individu yang memberikan kontribusi signifikan dan berharga akan dijadikan Kolaborator dan diberikan akses komitmen terhadap proyek. Individu-individu ini diidentifikasi oleh Kolaborator lain dan nominasi mereka didiskusikan dengan Kolaborator yang ada. -Untuk daftar Kolaborator saat ini, lihat [README.md][] proyek. +Untuk daftar Kolaborator saat ini, lihat proyek kami [README.md](https://github.com/nodejs/node/blob/main/README.md#current-project-team-members). -Panduan untuk Kolaborator disimpan di [collaborator-guide.md][]. +Panduan untuk Kolaborator disimpan di [collaborator-guide.md](https://github.com/nodejs/node/blob/main/doc/contributing/collaborator-guide.md). ## Komite Pengarah Teknis -Proyek ini diatur oleh [Komite Pengarah Teknis][] dalam bahasa inggris Technical Steering Committee (TSC) yang bertanggung jawab atas panduan tingkat tinggi proyek. TSC adalah bagian dari Kolaborator aktif yang dinominasikan oleh anggota TSC lain yang sudah ada. - -[consensus seeking]: https://id.wikipedia.org/wiki/Musyawarah -[readme.md]: https://github.com/nodejs/node/blob/main/README.md#current-project-team-members -[tsc]: https://github.com/nodejs/TSC -[technical steering committee (tsc)]: https://github.com/nodejs/TSC/blob/main/TSC-Charter.md -[collaborator-guide.md]: https://github.com/nodejs/node/blob/main/doc/contributing/collaborator-guide.md -[nodejs/node]: https://github.com/nodejs/node +Proyek ini diatur oleh Komite Pengarah Teknis dalam bahasa inggris [Technical Steering Committee (TSC)](https://github.com/nodejs/TSC/blob/main/TSC-Charter.md) yang bertanggung jawab atas panduan tingkat tinggi proyek. TSC adalah bagian dari Kolaborator aktif yang dinominasikan oleh anggota TSC lain yang sudah ada. diff --git a/apps/site/pages/id/about/index.mdx b/apps/site/pages/id/about/index.mdx index b420da357524f..be50d482d10d7 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}/`); }); ``` @@ -52,20 +52,16 @@ Node.js langsung melakukan I/O, jadi proses tidak pernah memblokir kecuali saat metode sinkron dari pustaka standar Node.js. Karena tidak ada yang menghalangi, sistem yang dapat diskalakan sangat masuk akal untuk dikembangkan di Node.js. -Jika ada yang belum familiar dengan bahasa ini, ada artikel lengkap tentang [Blocking vs. Non-Blocking][]. +Jika ada beberapa bahasa yang kurang familiar, ada artikel lengkap tentang +[Blocking vs. Non-Blocking](/learn/asynchronous-work/overview-of-blocking-vs-non-blocking). --- -Node.js memiliki desain yang mirip dengan, dan dipengaruhi oleh, sistem seperti [Event Machine][] Ruby dan [Twisted][] Python. Node.js membawa model acara sedikit lebih jauh. Ini menyajikan loop peristiwa sebagai konstruksi runtime, bukan sebagai perpustakaan. Di sistem lain, selalu ada panggilan pemblokiran untuk memulai perulangan peristiwa. Biasanya, perilaku ditentukan melalui callback di awal skrip, dan di akhir skrip, server dimulai melalui panggilan pemblokiran seperti `EventMachine::run()`. Di Node.js, tidak ada panggilan start-the-event-loop. Node.js cukup memasuki loop acara setelah menjalankan skrip input. Node.js keluar dari loop peristiwa ketika tidak ada lagi callback yang harus dilakukan. Perilaku ini seperti JavaScript browser — loop peristiwa disembunyikan dari pengguna. +Node.js memiliki desain yang mirip dengan, dan dipengaruhi oleh, sistem seperti [Event Machine](https://github.com/eventmachine/eventmachine) Ruby dan [Twisted](https://twisted.org/) Python. Node.js membawa model acara sedikit lebih jauh. Ini menyajikan loop peristiwa sebagai konstruksi runtime, bukan sebagai perpustakaan. Di sistem lain, selalu ada panggilan pemblokiran untuk memulai perulangan peristiwa. +Biasanya, perilaku ditentukan melalui callback di awal skrip, dan di akhir skrip, server dimulai melalui panggilan pemblokiran seperti `EventMachine::run()`. Di Node.js, tidak ada panggilan start-the-event-loop. Node.js cukup memasuki loop acara setelah menjalankan skrip input. Node.js keluar dari loop peristiwa ketika tidak ada lagi callback yang harus dilakukan. Perilaku ini seperti JavaScript browser — loop peristiwa disembunyikan dari pengguna. HTTP adalah warga negara kelas satu di Node.js, dirancang dengan streaming dan rendah 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. - -[blocking vs. non-blocking]: /learn/asynchronous-work/overview-of-blocking-vs-non-blocking -[`child_process.fork()`]: https://nodejs.org/api/child_process.html -[`cluster`]: https://nodejs.org/api/cluster.html -[event machine]: https://github.com/eventmachine/eventmachine -[twisted]: https://twisted.org/ +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()`](https://nodejs.org/api/child_process.html) kami, dan dirancang agar mudah untuk berkomunikasi. Dibangun di atas antarmuka yang sama adalah modul [`cluster`](https://nodejs.org/api/cluster.html), yang memungkinkan Anda berbagi soket antar proses untuk mengaktifkan penyeimbangan beban pada inti Anda. diff --git a/apps/site/pages/id/about/previous-releases.mdx b/apps/site/pages/id/about/previous-releases.mdx index 947a3f11d80c8..6ae25494919ca 100644 --- a/apps/site/pages/id/about/previous-releases.mdx +++ b/apps/site/pages/id/about/previous-releases.mdx @@ -28,9 +28,9 @@ Situs web Node.js menawarkan sejumlah metode instalasi yang memungkinkan Node.js Proyek Node.js, dalam upaya untuk mempopulerkan dan mengiklankan upaya komunitas, telah memperkenalkan halaman Unduhan baru yang mencantumkan metode instalasi Resmi dan Komunitas, yang menyediakan lebih banyak fleksibilitas dan opsi bagi pengguna. Dengan perubahan ini, kami memperkenalkan konsep metode instalasi "Resmi" dan "Komunitas". Agar dianggap "Resmi", metode instalasi harus memenuhi persyaratan berikut: -| Persyaratan | -| ------------------------------------------------------------------------------------------------------------------------------ | -| Rilis Node.js baru harus tersedia secara bersamaan setelah rilis resmi | -| Pengelola proyek memiliki hubungan dekat dengan Node.js, termasuk komunikasi langsung | -| Metode instalasi mengunduh biner resmi yang dibundel oleh proyek Node.js | -| Metode instalasi **tidak** membangun dari sumber ketika biner tersedia, atau mengubah biner resmi yang disediakan oleh Node.js | +Persyaratan | +------------------------------------------------------------------------------------------------------------------------------ | +Rilis Node.js baru harus tersedia secara bersamaan setelah rilis resmi | +Pengelola proyek memiliki hubungan dekat dengan Node.js, termasuk komunikasi langsung | +Metode instalasi mengunduh biner resmi yang dibundel oleh proyek Node.js | +Metode instalasi **tidak** membangun dari sumber ketika biner tersedia, atau mengubah biner resmi yang disediakan oleh Node.js | 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/download/current.mdx b/apps/site/pages/id/download/current.mdx index 5e044321e5855..85058da6a2340 100644 --- a/apps/site/pages/id/download/current.mdx +++ b/apps/site/pages/id/download/current.mdx @@ -22,10 +22,9 @@ Baca postingan blog untuk versi ini Pelajari cara memverifikasi yang ditandatangani SHASUMS. -Lihat bagaimana cara membangun Node.js dari sumber. +Mencari sumber Node.js? Unduh tarball sumber Node.js yang telah ditandatangani. Lihat biner nightly kami atau -semua rilis sebelumnya +semua rilis sebelumnya atau biner tidak resmi untuk platform lain. - diff --git a/apps/site/pages/id/download/index.mdx b/apps/site/pages/id/download/index.mdx index 5e044321e5855..85058da6a2340 100644 --- a/apps/site/pages/id/download/index.mdx +++ b/apps/site/pages/id/download/index.mdx @@ -22,10 +22,9 @@ Baca postingan blog untuk versi ini Pelajari cara memverifikasi yang ditandatangani SHASUMS. -Lihat bagaimana cara membangun Node.js dari sumber. +Mencari sumber Node.js? Unduh tarball sumber Node.js yang telah ditandatangani. Lihat biner nightly kami atau -semua rilis sebelumnya +semua rilis sebelumnya atau biner tidak resmi untuk platform lain. - diff --git a/apps/site/pages/id/index.mdx b/apps/site/pages/id/index.mdx index cbe152c9a454f..3c91b0b790584 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.
@@ -22,8 +21,8 @@ alat baris perintah, dan skrip. Unduh Node.js (LTS) Unduhan Node.js {release.versionWithPrefix} - 1 dengan dukungan jangka panjang (LTS). - Node.js juga dapat diinstal melalui manajer paket. + 1 dengan dukungan jangka panjang (LTS). + Node.js juga dapat diinstal melalui manajer paket. )} @@ -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/previous-releases.mdx b/apps/site/pages/ja/about/previous-releases.mdx index 0b5284f20bab3..eed6d96e6ddee 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 af86a59df66a3..a2b297db9931f 100644 --- a/apps/site/pages/ja/about/security-reporting.mdx +++ b/apps/site/pages/ja/about/security-reporting.mdx @@ -50,15 +50,8 @@ 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/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/previous-releases.mdx b/apps/site/pages/ko/about/previous-releases.mdx index d3845b108f9c3..15aea3909a50d 100644 --- a/apps/site/pages/ko/about/previous-releases.mdx +++ b/apps/site/pages/ko/about/previous-releases.mdx @@ -31,9 +31,9 @@ Node.js 웹사이트에서는 CLI, 운영 체제 패키지 매니저(예: apt), Node.js 프로젝트는 커뮤니티의 노력을 알리고 활성화하기 위해 "공식" 및 "커뮤니티" 설치 방법을 모두 나열한 새로운 다운로드 페이지를 선보였습니다. 이 페이지는 사용자들에게 더 다양한 옵션과 유연성을 제공합니다. 이번 변화와 함께, "공식"과 "커뮤니티" 설치 방법이라는 개념을 도입했습니다. "공식"으로 간주되기 위해 설치 방법은 다음 요건을 충족해야 합니다: -| 요구사항 | -| ---------------------------------------------------------------------------------------------------------------------- | -| 새로운 Node.js 릴리스는 공식 릴리스와 동시에 제공되어야 합니다. | -| 프로젝트 유지 관리자는 Node.js와 직접적인 소통을 포함한 긴밀한 관계를 유지합니다. | -| 설치 방법은 Node.js 프로젝트에서 제공하는 공식 바이너리 번들을 다운로드합니다. | -| 설치 방법은 바이너리가 제공되는 경우 소스에서 빌드하지 않으며, Node.js에서 제공하는 공식 바이너리를 변경하지 않습니다. | +요구사항 | +---------------------------------------------------------------------- | +새로운 Node.js 릴리스는 공식 릴리스와 동시에 제공되어야 합니다. | +프로젝트 유지 관리자는 Node.js와 직접적인 소통을 포함한 긴밀한 관계를 유지합니다. | +설치 방법은 Node.js 프로젝트에서 제공하는 공식 바이너리 번들을 다운로드합니다. | +설치 방법은 바이너리가 제공되는 경우 소스에서 빌드하지 않으며, Node.js에서 제공하는 공식 바이너리를 변경하지 않습니다. | 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/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/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 52ca3681d5f8b..5db3273fef333 100644 --- a/apps/site/pages/uk/about/governance.md +++ b/apps/site/pages/uk/about/governance.md @@ -7,25 +7,18 @@ layout: about ## Процес пошуку консенсусу -Node.js дотримується моделі прийняття рішень [знаходження консенсусу][Consensus Seeking]. +Проєкт Node.js використовує модель прийняття рішень [знаходження консенсусу](https://uk.wikipedia.org/wiki/%D0%97%D0%BD%D0%B0%D1%85%D0%BE%D0%B4%D0%B6%D0%B5%D0%BD%D0%BD%D1%8F_%D0%BA%D0%BE%D0%BD%D1%81%D0%B5%D0%BD%D1%81%D1%83%D1%81%D1%83). ## Співавтори -Основний репозиторій GitHub [nodejs/node][] супроводжується співавторами, які на постійній основі обираються іншими чинними співавторами. +Основний репозиторій GitHub [nodejs/node](https://github.com/nodejs/node) супроводжується співавторами, які на постійній основі обираються іншими чинними співавторами. Особи, які здійснюють важливий та цінний внесок, стають співавторами та отримують доступ для commit'ів. Ці особи визначаються іншими співавторами, а їхня номінація на цю роль обговорюється із чинними співавторами. -Щоб дізнатися поточний список співавторів, перегляньте [README.md][]. +Щоб дізнатися поточний список співавторів, перегляньте [README.md](https://github.com/nodejs/node/blob/main/README.md#current-project-team-members) проєкту. -Інструкція для співавторів проєкту є на [collaborator-guide.md][]. +Інструкція для співавторів проєкту є на [collaborator-guide.md](https://github.com/nodejs/node/blob/main/doc/contributing/collaborator-guide.md). ## Технічний керівний комітет -Проєкт керується [Технічним керівним комітетом (TSC)][Technical Steering Committee (TSC)], який відповідальний за високорівневе керування проєктом. TSC — це набір активних співавторів, які номінуються іншими чинними членами TSC. - -[consensus seeking]: https://uk.wikipedia.org/wiki/%D0%97%D0%BD%D0%B0%D1%85%D0%BE%D0%B4%D0%B6%D0%B5%D0%BD%D0%BD%D1%8F_%D0%BA%D0%BE%D0%BD%D1%81%D0%B5%D0%BD%D1%81%D1%83%D1%81%D1%83 -[readme.md]: https://github.com/nodejs/node/blob/main/README.md#current-project-team-members -[tsc]: https://github.com/nodejs/TSC -[technical steering committee (tsc)]: https://github.com/nodejs/TSC/blob/main/TSC-Charter.md -[collaborator-guide.md]: https://github.com/nodejs/node/blob/main/doc/contributing/collaborator-guide.md -[nodejs/node]: https://github.com/nodejs/node +Проєкт керується [Технічним керівним комітетом (TSC)](https://github.com/nodejs/TSC/blob/main/TSC-Charter.md), який відповідальний за високорівневе керування проєктом. TSC — це набір активних співавторів, які номінуються іншими чинними членами TSC. diff --git a/apps/site/pages/uk/about/index.mdx b/apps/site/pages/uk/about/index.mdx index 8ace8ffa2c205..4c6876e68ec45 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,31 +31,25 @@ 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}/`); }); ``` Ця модель використовується на противагу поширенішій моделі, у якій використовуються потоки ОС. Така модель відносно неефективна та важка у використанні. Крім того, користувачі Node.js можуть не хвилюватися про дедлоки, оскільки тут немає блокувань. Майже жодна функція не виконує ввід-вивід безпосередньо, тому процеси не блокуються, за винятком тих випадків, коли ввід-вивід виконується синхронними методами стандартної бібліотеки Node.js. Завдяки відсутності блокувань доцільно створювати масштабовані системи в Node.js. -Якщо деякі терміни вам незрозумілі, перегляньте статтю про -[блокувальні та неблокувальні виклики][blocking vs. non-blocking]. +Якщо деякі терміни вам незрозумілі, ось повна стаття про +[блокувальні та неблокувальні виклики](/learn/asynchronous-work/overview-of-blocking-vs-non-blocking). --- -Node.js надихався системами [Event Machine][] мови Ruby та [Twisted][] мови Python. Проте Node.js зводить подієву модель на новий рівень. Він представляє цикл подій як основу середовища виконання, а не як бібліотеку. В інших системах присутній блокувальний виклик, який починає цикл подій. Зазвичай поведінка визначається функціями зворотного виклику на початку скрипту, після чого відбувається блокувальний виклик, наприклад, `EventMachine::run()`. Node.js не має такого виклику, а просто запускає цикл подій після виконання ввідного скрипту і виходить із циклу, коли всі зворотні виклики були виконані. Така поведінка схожа з поведінкою браузерного JavaScript — цикл подій прихований від користувача. +Node.js надихався системами [Event Machine](https://github.com/eventmachine/eventmachine) мови Ruby та [Twisted](https://twisted.org/) мови Python. Проте Node.js зводить подієву модель на новий рівень. Він представляє цикл подій як основу середовища виконання, а не як бібліотеку. В інших системах присутній блокувальний виклик, який починає цикл подій. Зазвичай поведінка визначається функціями зворотного виклику на початку скрипту, після чого відбувається блокувальний виклик, наприклад, `EventMachine::run()`. Node.js не має такого виклику, а просто запускає цикл подій після виконання ввідного скрипту і виходить із циклу, коли всі зворотні виклики були виконані. Така поведінка схожа з поведінкою браузерного JavaScript — цикл подій прихований від користувача. HTTP є повноцінною частиною Node.js, розроблений з урахуванням потокової передачі даних і низької затримки. Це робить Node.js ідеальним варіантом для створення основи для веббібліотеки або фреймворку. -Те, що Node.js спроєктований без використання потоків, не означає, що ви не можете використовувати багато ядер у своєму середовищі. Дочірні процеси можна створити за допомогою нашого API [`child_process.fork()`][]. Вони спроєктовані так, що з ними можна легко взаємодіяти. Модуль [`cluster`][] побудований на такому самому інтерфейсі, що дозволяє ділити сокети на багато процесів, аби збалансувати навантаження на ядра. - -[блокуючі vs неблокуючі методи]: /learn/asynchronous-work/overview-of-blocking-vs-non-blocking -[`child_process.fork()`]: https://nodejs.org/api/child_process.html -[`cluster`]: https://nodejs.org/api/cluster.html -[event machine]: https://github.com/eventmachine/eventmachine -[twisted]: https://twisted.org/ +Те, що Node.js спроєктований без використання потоків, не означає, що ви не можете використовувати багато ядер у своєму середовищі. Дочірні процеси можна створити за допомогою нашого API [`child_process.fork()`](https://nodejs.org/api/child_process.html). Вони спроєктовані так, що з ними можна легко взаємодіяти. Модуль [`cluster`](https://nodejs.org/api/cluster.html) побудований на такому самому інтерфейсі, що дозволяє ділити сокети на багато процесів, аби збалансувати навантаження на ядра. diff --git a/apps/site/pages/uk/about/previous-releases.mdx b/apps/site/pages/uk/about/previous-releases.mdx index 5bb462b04b52f..ba6ff3651d8e4 100644 --- a/apps/site/pages/uk/about/previous-releases.mdx +++ b/apps/site/pages/uk/about/previous-releases.mdx @@ -31,9 +31,9 @@ layout: about Аби популяризувати та прорекламувати внески спільноти, проєкт Node.js представив нову сторінку завантажень, яка містить і офіційні, і спільнотні методи установки, що надає більше гнучкості та опцій для користувачів. Разом з цим ми представили концепцію «офіційних» та «спільнотних» методів установки. Щоб метод уважався «офіційним», він повинний відповідати наступним вимогам: -| Вимоги | -| ------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Нові релізи Node.js повинні бути доступні одразу після офіційного релізу | -| Супроводжувачі проєкту повинні мати близькі зв'язки з Node.js, у тому числі пряме спілкування | -| Метод установки завантажує офіційні бінарні файли, зібрані проєктом Node.js | -| Метод установки **не** повинний будувати з вихідного коду, коли доступні бінарні файли, та не повинний змінювати офіційні бінарні файли, надані Node.js | +Вимоги | +------------------------------------------------------------------------------------------------------------------------------------------------------- | +Нові релізи Node.js повинні бути доступні одразу після офіційного релізу | +Супроводжувачі проєкту повинні мати близькі зв'язки з Node.js, у тому числі пряме спілкування | +Метод установки завантажує офіційні бінарні файли, зібрані проєктом Node.js | +Метод установки **не** повинний будувати з вихідного коду, коли доступні бінарні файли, та не повинний змінювати офіційні бінарні файли, надані Node.js | diff --git a/apps/site/pages/uk/about/security-reporting.mdx b/apps/site/pages/uk/about/security-reporting.mdx index a4051acc496f6..2068921d6b36c 100644 --- a/apps/site/pages/uk/about/security-reporting.mdx +++ b/apps/site/pages/uk/about/security-reporting.mdx @@ -51,15 +51,8 @@ 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/index.mdx b/apps/site/pages/uk/index.mdx index 2b65d70048c87..338fb37be041c 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 із відкритим кодом, + яке дозволяє розробникам створювати сервери, вебзастосунки, інструменти командного рядка та скрипти.
@@ -22,7 +21,7 @@ Node.js® — це безплатне, кросплатформне середо Завантажує Node.js {release.versionWithPrefix} 1 із довгостроковою підтримкою. - Node.js також можна встановити через менеджери пакетів. + Node.js також можна встановити через менеджери версій. )} @@ -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/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/previous-releases.mdx b/apps/site/pages/zh-tw/about/previous-releases.mdx index 14e357731035d..0c48c0fe4a222 100644 --- a/apps/site/pages/zh-tw/about/previous-releases.mdx +++ b/apps/site/pages/zh-tw/about/previous-releases.mdx @@ -27,9 +27,9 @@ Node.js 的主要版本在釋出後六個月內皆處於最新 (Current) 狀態 Node.js 專案基於推廣及宣傳社群成果的目的,推出新版的下載頁面,包含官方及社群的安裝方法並提供使用者更多樣的選項。隨著這項改變,我們引入了「官方」及「社群」安裝方法的概念。一項「官方」安裝方法需滿足下列所有條件: -| 條件 | -| ----------------------------------------------------------------------------------- | -| 必須與官方同時釋出新版 Node.js | -| 專案維護者與 Node.js 保持密切聯繫,例如可直接溝通 | -| 安裝方式需下載 Node.js 專案打包的官方二進位檔 | -| 安裝方法**不會**在 Node.js 已提供的官方二進位檔時自行編譯原始碼,或修改官方二進位檔 | +條件 | +------------------------------------------------ | +必須與官方同時釋出新版 Node.js | +專案維護者與 Node.js 保持密切聯繫,例如可直接溝通 | +安裝方式需下載 Node.js 專案打包的官方二進位檔 | +安裝方法**不會**在 Node.js 已提供的官方二進位檔時自行編譯原始碼,或修改官方二進位檔 | diff --git a/apps/site/pages/zh-tw/about/security-reporting.mdx b/apps/site/pages/zh-tw/about/security-reporting.mdx index 30e939514b44d..40b7deef12766 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/snippets/es/download/brew.bash b/apps/site/snippets/es/download/brew.bash new file mode 100644 index 0000000000000..4bc5e5c4f4253 --- /dev/null +++ b/apps/site/snippets/es/download/brew.bash @@ -0,0 +1,8 @@ +# Descarga e instala Homebrew +curl -o- https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh | bash + +# Descarga e instala Node.js: +brew install node@${props.release.major} + +# Verifica la versión de Node.js: +node -v # Debería mostrar "${props.release.versionWithPrefix}". diff --git a/apps/site/snippets/es/download/choco.bash b/apps/site/snippets/es/download/choco.bash new file mode 100644 index 0000000000000..923ab65a12a5b --- /dev/null +++ b/apps/site/snippets/es/download/choco.bash @@ -0,0 +1,8 @@ +# Descarga e instala Chocolatey: +powershell -c "irm https://community.chocolatey.org/install.ps1|iex" + +# Descarga e instala Node.js: +choco install nodejs-lts --version="${props.release.major}" + +# Verifica la versión de Node.js: +node -v # Debería mostrar "${props.release.versionWithPrefix}". diff --git a/apps/site/snippets/es/download/devbox.bash b/apps/site/snippets/es/download/devbox.bash new file mode 100644 index 0000000000000..7588b53272371 --- /dev/null +++ b/apps/site/snippets/es/download/devbox.bash @@ -0,0 +1,14 @@ +# Descarga e instala Devbox +curl -fsSL https://get.jetify.com/devbox | bash + +# Inicializa Devbox en tu proyecto +devbox init + +# Descarga e instala Node.js: +devbox add node@${props.release.major} + +# Abre una shell de Devbox +devbox shell + +# Verifica la versión de Node.js: +node -v # Debería mostrar "${props.release.versionWithPrefix}". diff --git a/apps/site/snippets/es/download/docker.bash b/apps/site/snippets/es/download/docker.bash new file mode 100644 index 0000000000000..29cd36a9e9ea8 --- /dev/null +++ b/apps/site/snippets/es/download/docker.bash @@ -0,0 +1,11 @@ +# Docker provee instrucciones dedicadas para cada sistema operativo. +# Por favor consulta la documentación oficial en https://www.docker.com/get-started/ + +# Descarga la imagen de Docker de Node.js: +docker pull node:${props.release.major}-${props.release.major >= 4 ? 'alpine' : 'slim'} + +# Crea un contenedor de Node.js e inicia una sesión shell: +docker run -it --rm --entrypoint sh node:${props.release.major}-${props.release.major >= 4 ? 'alpine' : 'slim'} + +# Verifica la versión de Node.js: +node -v # Debería mostrar "${props.release.versionWithPrefix}". diff --git a/apps/site/snippets/es/download/yarn.bash b/apps/site/snippets/es/download/yarn.bash new file mode 100644 index 0000000000000..0efd9b74efe5a --- /dev/null +++ b/apps/site/snippets/es/download/yarn.bash @@ -0,0 +1,5 @@ +# Descarga e instala Yarn: +corepack enable yarn + +# Verifica la versión de Yarn: +yarn -v From 27f3bc5162722840f87c54c429774c1b352f4eca Mon Sep 17 00:00:00 2001 From: github-merge-queue Date: Fri, 31 Jan 2025 05:10:56 +0000 Subject: [PATCH 2/2] 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 +- .../pages/es/about/security-reporting.mdx | 11 +- .../pages/fa/about/security-reporting.mdx | 11 +- apps/site/pages/fr/about/branding.mdx | 12 +- apps/site/pages/fr/about/index.mdx | 16 +- .../site/pages/fr/about/previous-releases.mdx | 12 +- .../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 | 16 +- .../site/pages/id/about/previous-releases.mdx | 12 +- .../pages/id/about/security-reporting.mdx | 6 +- apps/site/pages/id/download/current.mdx | 1 + apps/site/pages/id/download/index.mdx | 1 + apps/site/pages/id/index.mdx | 173 +++++++++--------- apps/site/pages/ja/about/branding.mdx | 12 +- .../site/pages/ja/about/previous-releases.mdx | 12 +- .../pages/ja/about/security-reporting.mdx | 11 +- apps/site/pages/ko/about/branding.mdx | 12 +- .../site/pages/ko/about/previous-releases.mdx | 12 +- .../pages/ko/about/security-reporting.mdx | 11 +- .../pages/pt/about/security-reporting.mdx | 11 +- .../pages/tr/about/security-reporting.mdx | 11 +- apps/site/pages/uk/about/branding.mdx | 12 +- apps/site/pages/uk/about/index.mdx | 16 +- .../site/pages/uk/about/previous-releases.mdx | 12 +- .../pages/uk/about/security-reporting.mdx | 11 +- apps/site/pages/uk/index.mdx | 171 ++++++++--------- .../pages/zh-cn/about/security-reporting.mdx | 11 +- .../pages/zh-tw/about/previous-releases.mdx | 12 +- .../pages/zh-tw/about/security-reporting.mdx | 11 +- 33 files changed, 492 insertions(+), 333 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/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/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 f8385240f6d68..df8c511311299 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/previous-releases.mdx b/apps/site/pages/fr/about/previous-releases.mdx index 37cbc24b4f6ff..4f414b6691601 100644 --- a/apps/site/pages/fr/about/previous-releases.mdx +++ b/apps/site/pages/fr/about/previous-releases.mdx @@ -31,9 +31,9 @@ par exemple, via des CLI, des gestionnaires de paquets OS (tels que `apt`), ou d Le projet Node.js, dans une tentative de populariser et d'annoncer les efforts de la communauté, a introduit une nouvelle page de téléchargement qui liste à la fois les méthodes d'installation officielles et communautaires, offrant plus de polyvalence et d'options aux utilisateurs. Avec ce changement, nous avons introduit le concept de méthodes d'installation "officielles" et "communautaires". Pour être considérée comme "officielle", la méthode d'installation doit répondre aux critères suivants : -Prérequis | ------------------------------------------------------------------------------------------------------------------------------------------------------------------ | -Les nouvelles versions de Node.js doivent être disponibles en même temps que la version officielle | -Les responsables de projet ont une relation étroite avec Node.js, y compris une communication directe | -La méthode d'installation télécharge les binaires officiels fournis par le projet Node.js | -La méthode d'installation ne compile **pas** à partir des sources lorsque les binaires sont disponibles, ni ne modifie les binaires officiels fournis par Node.js | +| Prérequis | +| ----------------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Les nouvelles versions de Node.js doivent être disponibles en même temps que la version officielle | +| Les responsables de projet ont une relation étroite avec Node.js, y compris une communication directe | +| La méthode d'installation télécharge les binaires officiels fournis par le projet Node.js | +| La méthode d'installation ne compile **pas** à partir des sources lorsque les binaires sont disponibles, ni ne modifie les binaires officiels fournis par Node.js | 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 a3f32f2e12aa6..e8bb2365da1c8 100644 --- a/apps/site/pages/fr/download/current.mdx +++ b/apps/site/pages/fr/download/current.mdx @@ -25,4 +25,5 @@ Apprenez à Node.js source. 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 1c57f46d77e98..371b0ce5c6847 100644 --- a/apps/site/pages/fr/download/index.mdx +++ b/apps/site/pages/fr/download/index.mdx @@ -25,4 +25,5 @@ Apprenez à Node.js source. 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 b861811b284db..4d23f884a27be 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 be50d482d10d7..975d2c2e5af02 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}/`); }); ``` diff --git a/apps/site/pages/id/about/previous-releases.mdx b/apps/site/pages/id/about/previous-releases.mdx index 6ae25494919ca..947a3f11d80c8 100644 --- a/apps/site/pages/id/about/previous-releases.mdx +++ b/apps/site/pages/id/about/previous-releases.mdx @@ -28,9 +28,9 @@ Situs web Node.js menawarkan sejumlah metode instalasi yang memungkinkan Node.js Proyek Node.js, dalam upaya untuk mempopulerkan dan mengiklankan upaya komunitas, telah memperkenalkan halaman Unduhan baru yang mencantumkan metode instalasi Resmi dan Komunitas, yang menyediakan lebih banyak fleksibilitas dan opsi bagi pengguna. Dengan perubahan ini, kami memperkenalkan konsep metode instalasi "Resmi" dan "Komunitas". Agar dianggap "Resmi", metode instalasi harus memenuhi persyaratan berikut: -Persyaratan | ------------------------------------------------------------------------------------------------------------------------------- | -Rilis Node.js baru harus tersedia secara bersamaan setelah rilis resmi | -Pengelola proyek memiliki hubungan dekat dengan Node.js, termasuk komunikasi langsung | -Metode instalasi mengunduh biner resmi yang dibundel oleh proyek Node.js | -Metode instalasi **tidak** membangun dari sumber ketika biner tersedia, atau mengubah biner resmi yang disediakan oleh Node.js | +| Persyaratan | +| ------------------------------------------------------------------------------------------------------------------------------ | +| Rilis Node.js baru harus tersedia secara bersamaan setelah rilis resmi | +| Pengelola proyek memiliki hubungan dekat dengan Node.js, termasuk komunikasi langsung | +| Metode instalasi mengunduh biner resmi yang dibundel oleh proyek Node.js | +| Metode instalasi **tidak** membangun dari sumber ketika biner tersedia, atau mengubah biner resmi yang disediakan oleh Node.js | 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/download/current.mdx b/apps/site/pages/id/download/current.mdx index 85058da6a2340..cccf988f76667 100644 --- a/apps/site/pages/id/download/current.mdx +++ b/apps/site/pages/id/download/current.mdx @@ -27,4 +27,5 @@ Mencari sumber Node.js? Unduh tarball sumber Lihat biner nightly kami atau semua rilis sebelumnya atau biner tidak resmi untuk platform lain. + diff --git a/apps/site/pages/id/download/index.mdx b/apps/site/pages/id/download/index.mdx index 85058da6a2340..cccf988f76667 100644 --- a/apps/site/pages/id/download/index.mdx +++ b/apps/site/pages/id/download/index.mdx @@ -27,4 +27,5 @@ Mencari sumber Node.js? Unduh tarball sumber Lihat biner nightly kami atau semua rilis sebelumnya atau biner tidak resmi untuk platform lain. + diff --git a/apps/site/pages/id/index.mdx b/apps/site/pages/id/index.mdx index 3c91b0b790584..a446694c9353d 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/previous-releases.mdx b/apps/site/pages/ja/about/previous-releases.mdx index eed6d96e6ddee..0b5284f20bab3 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/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/previous-releases.mdx b/apps/site/pages/ko/about/previous-releases.mdx index 15aea3909a50d..d3845b108f9c3 100644 --- a/apps/site/pages/ko/about/previous-releases.mdx +++ b/apps/site/pages/ko/about/previous-releases.mdx @@ -31,9 +31,9 @@ Node.js 웹사이트에서는 CLI, 운영 체제 패키지 매니저(예: apt), Node.js 프로젝트는 커뮤니티의 노력을 알리고 활성화하기 위해 "공식" 및 "커뮤니티" 설치 방법을 모두 나열한 새로운 다운로드 페이지를 선보였습니다. 이 페이지는 사용자들에게 더 다양한 옵션과 유연성을 제공합니다. 이번 변화와 함께, "공식"과 "커뮤니티" 설치 방법이라는 개념을 도입했습니다. "공식"으로 간주되기 위해 설치 방법은 다음 요건을 충족해야 합니다: -요구사항 | ----------------------------------------------------------------------- | -새로운 Node.js 릴리스는 공식 릴리스와 동시에 제공되어야 합니다. | -프로젝트 유지 관리자는 Node.js와 직접적인 소통을 포함한 긴밀한 관계를 유지합니다. | -설치 방법은 Node.js 프로젝트에서 제공하는 공식 바이너리 번들을 다운로드합니다. | -설치 방법은 바이너리가 제공되는 경우 소스에서 빌드하지 않으며, Node.js에서 제공하는 공식 바이너리를 변경하지 않습니다. | +| 요구사항 | +| ---------------------------------------------------------------------------------------------------------------------- | +| 새로운 Node.js 릴리스는 공식 릴리스와 동시에 제공되어야 합니다. | +| 프로젝트 유지 관리자는 Node.js와 직접적인 소통을 포함한 긴밀한 관계를 유지합니다. | +| 설치 방법은 Node.js 프로젝트에서 제공하는 공식 바이너리 번들을 다운로드합니다. | +| 설치 방법은 바이너리가 제공되는 경우 소스에서 빌드하지 않으며, Node.js에서 제공하는 공식 바이너리를 변경하지 않습니다. | 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/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/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 4c6876e68ec45..772d78a8c3d84 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/previous-releases.mdx b/apps/site/pages/uk/about/previous-releases.mdx index ba6ff3651d8e4..5bb462b04b52f 100644 --- a/apps/site/pages/uk/about/previous-releases.mdx +++ b/apps/site/pages/uk/about/previous-releases.mdx @@ -31,9 +31,9 @@ layout: about Аби популяризувати та прорекламувати внески спільноти, проєкт Node.js представив нову сторінку завантажень, яка містить і офіційні, і спільнотні методи установки, що надає більше гнучкості та опцій для користувачів. Разом з цим ми представили концепцію «офіційних» та «спільнотних» методів установки. Щоб метод уважався «офіційним», він повинний відповідати наступним вимогам: -Вимоги | -------------------------------------------------------------------------------------------------------------------------------------------------------- | -Нові релізи Node.js повинні бути доступні одразу після офіційного релізу | -Супроводжувачі проєкту повинні мати близькі зв'язки з Node.js, у тому числі пряме спілкування | -Метод установки завантажує офіційні бінарні файли, зібрані проєктом Node.js | -Метод установки **не** повинний будувати з вихідного коду, коли доступні бінарні файли, та не повинний змінювати офіційні бінарні файли, надані Node.js | +| Вимоги | +| ------------------------------------------------------------------------------------------------------------------------------------------------------- | +| Нові релізи Node.js повинні бути доступні одразу після офіційного релізу | +| Супроводжувачі проєкту повинні мати близькі зв'язки з Node.js, у тому числі пряме спілкування | +| Метод установки завантажує офіційні бінарні файли, зібрані проєктом Node.js | +| Метод установки **не** повинний будувати з вихідного коду, коли доступні бінарні файли, та не повинний змінювати офіційні бінарні файли, надані Node.js | 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/index.mdx b/apps/site/pages/uk/index.mdx index 338fb37be041c..a1ea7751f6f0d 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/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/previous-releases.mdx b/apps/site/pages/zh-tw/about/previous-releases.mdx index 0c48c0fe4a222..14e357731035d 100644 --- a/apps/site/pages/zh-tw/about/previous-releases.mdx +++ b/apps/site/pages/zh-tw/about/previous-releases.mdx @@ -27,9 +27,9 @@ Node.js 的主要版本在釋出後六個月內皆處於最新 (Current) 狀態 Node.js 專案基於推廣及宣傳社群成果的目的,推出新版的下載頁面,包含官方及社群的安裝方法並提供使用者更多樣的選項。隨著這項改變,我們引入了「官方」及「社群」安裝方法的概念。一項「官方」安裝方法需滿足下列所有條件: -條件 | ------------------------------------------------- | -必須與官方同時釋出新版 Node.js | -專案維護者與 Node.js 保持密切聯繫,例如可直接溝通 | -安裝方式需下載 Node.js 專案打包的官方二進位檔 | -安裝方法**不會**在 Node.js 已提供的官方二進位檔時自行編譯原始碼,或修改官方二進位檔 | +| 條件 | +| ----------------------------------------------------------------------------------- | +| 必須與官方同時釋出新版 Node.js | +| 專案維護者與 Node.js 保持密切聯繫,例如可直接溝通 | +| 安裝方式需下載 Node.js 專案打包的官方二進位檔 | +| 安裝方法**不會**在 Node.js 已提供的官方二進位檔時自行編譯原始碼,或修改官方二進位檔 | diff --git a/apps/site/pages/zh-tw/about/security-reporting.mdx b/apps/site/pages/zh-tw/about/security-reporting.mdx index 40b7deef12766..30e939514b44d 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 專案確實遵循最佳實踐,因此更有可能產出安全又高品質的軟體。