diff --git a/.github/workflows/translations-sync.yml b/.github/workflows/translations-sync.yml index 5e3cd42ce7b37..d6674614e56a0 100644 --- a/.github/workflows/translations-sync.yml +++ b/.github/workflows/translations-sync.yml @@ -18,12 +18,12 @@ concurrency: permissions: contents: read +env: + BRANCH_NAME: chore/crowdin + jobs: synchronize-with-crowdin: runs-on: ubuntu-latest - outputs: - pull_request_number: ${{ steps.crowdin_pr.outputs.pull_request_number }} - steps: - name: Harden Runner uses: step-security/harden-runner@0634a2670c59f64b4a01f0f96f84700a4088b9f0 # v2.12.0 @@ -38,14 +38,13 @@ jobs: # see all the options at https://github.com/crowdin/github-action - name: Crowdin PR uses: crowdin/github-action@b8012bd5491b8aa8578b73ab5b5f5e7c94aaa6e2 # v2.7.0 - id: crowdin_pr with: # do not upload anything - this is a one-way operation download upload_sources: false upload_translations: false # the rest of this controls how the PR comes in with new translations download_translations: true - localization_branch_name: chore/crowdin + localization_branch_name: ${{ env.BRANCH_NAME }} create_pull_request: true pull_request_title: '[automated]: crowdin sync' pull_request_body: 'New Crowdin translations from the [Node.js Crowdin project](https://crowdin.com/project/nodejs-web)' @@ -74,8 +73,7 @@ jobs: - name: Git Checkout uses: actions/checkout@11bd71901bbe5b1630ceea73d27597364c9af683 # v4.2.2 with: - # Use the number from the output of crowdin/github-action - ref: refs/pull/${{ needs.synchronize-with-crowdin.outputs.pull_request_number }}/head + ref: ${{ env.BRANCH_NAME }} token: ${{ secrets.CROWDIN_GITHUB_BOT_TOKEN }} - name: Restore Lint Cache @@ -109,15 +107,12 @@ jobs: - name: Install packages run: pnpm install --frozen-lockfile - - name: Run `lint:md --fix` - # This runs a specific version of ESLint with only the Translation Pages Globbing - # This avoid that unrelated changes get linted/modified within this PR - run: pnpm exec eslint "apps/site/pages/**/*.md?(x)" --fix --cache --cache-strategy=metadata --cache-file=apps/site/.eslintmdcache --config=apps/site/eslint.config.js + - name: Run ESLint + working-directory: apps/site + run: pnpm lint:md --fix - - name: Run `prettier --write` - # This runs a specific version of Prettier with only the Translation Pages Globbing - # This avoid that unrelated changes get prettied/modified within this PR - run: pnpm exec prettier "apps/site/{pages,i18n}/**/*.{json,md,mdx}" --check --write --cache --cache-strategy=metadata --cache-location=apps/site/.prettiercache + - name: Run Prettier + run: pnpm prettier:fix - name: Push Changes back to Pull Request uses: stefanzweifel/git-auto-commit-action@b863ae1933cb653a53c021fe36dbb774e1fb9403 # v5.2.0 diff --git a/apps/site/pages/uk/about/index.mdx b/apps/site/pages/uk/about/index.mdx index 11a83ab918c7f..a6ee2409318fb 100644 --- a/apps/site/pages/uk/about/index.mdx +++ b/apps/site/pages/uk/about/index.mdx @@ -53,3 +53,41 @@ Node.js надихався системами [Event Machine](https://github.com HTTP є повноцінною частиною Node.js, розроблений з урахуванням потокової передачі даних і низької затримки. Це робить Node.js ідеальним варіантом для створення основи для веббібліотеки або фреймворку. Те, що Node.js спроєктований без використання потоків, не означає, що ви не можете використовувати багато ядер у своєму середовищі. Дочірні процеси можна створити за допомогою нашого API [`child_process.fork()`](https://nodejs.org/api/child_process.html). Вони спроєктовані так, що з ними можна легко взаємодіяти. Модуль [`cluster`](https://nodejs.org/api/cluster.html) побудований на такому самому інтерфейсі, що дозволяє ділити сокети на багато процесів, аби збалансувати навантаження на ядра. + +## Офіційні ресурси Node.js + +Щоб забезпечити автентичність та безпеку під час роботи з Node.js, завжди використовуйте офіційні джерела. Не довіряйте електронним листам, бінарним файлам та завантаженням із неофіційних джерел. + +### Офіційні домени Node.js + +Для завантаження бінарних файлів Node.js та використання офіційної документації використовуйте лише ці домени: + +- [nodejs.org](https://nodejs.org) +- [nodejs.dev](https://nodejs.dev) _(Перенаправляє на https://nodejs.org)_ +- [iojs.org](https://iojs.org) _(Перенаправляє на https://nodejs.org)_ + +### Офіційні пакети npm + +Команда Node.js підтримує такі офіційні простори імен в npm: + +- [`@node-core`](https://npmjs.com/~node-core) +- [`@pkgjs`](https://npmjs.com/~pkgjs) + +Крім того, команда Node.js супроводжує пакети, опубліковані обліковим записом npm [`nodejs-foundation`](https://npmjs.com/~nodejs-foundation). Інші пакети, які стосуються Node.js (як‑от [`undici`](https://www.npmjs.com/package/undici)), також можуть супроводжуватися учасниками з близькими зв'язками з проєктом. + +Використання пакетів команди Node.js гарантує, що ви працюватимете з офіційно підтримуваними компонентами Node.js. + +### Офіційні організації GitHub + +Node.js та інші проєкти супроводжуються під цими офіційними організаціями GitHub: + +- [nodejs](https://github.com/nodejs) +- [pkgjs](https://github.com/pkgjs) + +### Офіційні канали зв'язку + +Node.js та OpenJS Foundation комунікують через різні офіційні та спільнотні канали. Деталі, як долучитися до них, можна знайти на сторінці [Долучитися](https://nodejs.org/en/about/get-involved). + +### Повідомлення про проблеми й неполадки сайту + +Якщо ви помітите проблеми з вебсайтом Node.js, повідомте про них на [репозиторії вебсайту](https://github.com/nodejs/nodejs.org/issues). Щоб отримати дані про неполадки в реальному часі, відвідайте [сторінку статусу Node.js](https://status.nodejs.org). diff --git a/apps/site/pages/uk/about/previous-releases.mdx b/apps/site/pages/uk/about/previous-releases.mdx index c50df72d0f0b5..17b1240d727a8 100644 --- a/apps/site/pages/uk/about/previous-releases.mdx +++ b/apps/site/pages/uk/about/previous-releases.mdx @@ -26,14 +26,28 @@ layout: about ## Офіційні та спільнотні методи установки -Вебсайт Node.js пропонує різні методи установки, з якими можна встановити Node.js неінтерактивно. Наприклад, за допомогою інтерфейсів командного рядка, менеджерів пакетів ОС (як-от `apt`) або менеджерів версій Node.js (як-от `nvm`). +Вебсайт Node.js пропонує кілька неінтерактивних методів установки, як-от інтерфейси командного рядка (CLI), менеджери пакетів ОС (напр. `brew`) та менеджери версій Node.js (напр. `nvm`). -Аби популяризувати та прорекламувати внески спільноти, проєкт Node.js представив нову сторінку завантажень, яка містить і офіційні, і спільнотні методи установки, що надає більше гнучкості та опцій для користувачів. -Разом з цим ми представили концепцію «офіційних» та «спільнотних» методів установки. Щоб метод уважався «офіційним», він повинний відповідати наступним вимогам: +Аби показати та просувати внески спільноти, проєкт Node.js представляє нову сторінку завантажень, яка поділяє методи установки на «офіційні» та «спільнотні». Це надає користувачам більше гнучкості та вибору, а для зрозумілості ми створили критерії для кожної категорії. -| Вимоги | -| ------------------------------------------------------------------------------------------------------------------------------------------------------- | -| Нові релізи Node.js повинні бути доступні одразу після офіційного релізу | -| Супроводжувачі проєкту повинні мати близькі зв'язки з Node.js, у тому числі пряме спілкування | -| Метод установки завантажує офіційні бінарні файли, зібрані проєктом Node.js | -| Метод установки **не** повинний будувати з вихідного коду, коли доступні бінарні файли, та не повинний змінювати офіційні бінарні файли, надані Node.js | +### Офіційні методи установки + +«Офіційні» методи установки повинні виконувати наступні вимоги: + +| Вимоги до офіційних методів установки | +| :------------------------------------------------------------------------------------------------------------------------------------------------- | +| Нові релізи Node.js повинні бути доступні одразу після офіційного релізу. | +| Супроводжувачі проєкту повинні мати близькі зв'язки з проєктом Node.js, у тому числі й пряме спілкування. | +| Метод установки повинний завантажувати офіційні бінарні файли, зібрані проєктом Node.js. | +| Метод установки не повинний будувати з вихідного коду, коли доступні вже збудовані бінарні файли, а також не має змінювати офіційні бінарні файли. | + +### Спільнотні методи установки + +Спільнотні методи установки, які містяться на самообслуговуваній сторінці завантажень (/download), також мають відповідати мінімальному набору критеріїв: + +- **Підтримка версій:** Повинні підтримувати всі версії Node.js, які не мають статусу End-of-Life (EOL). +- **Сумісність ОС:** Повинні працювати на принаймні одній офіційно підтримуваній операційній системі (ОС). +- **Широка підтримка ОС:** Не можуть обмежуватися лише кількома дистрибутивами чи версіями ОС. + - Наприклад, якщо метод установки заявляє, що підтримує «Windows», він повинний працювати на «Windows 10», «Windows 11» та всіх їхніх випусках (включно із серверними версіями). + - Схожим чином, якщо метод установки заявляє, що підтримує «Linux», він повинний працювати на всіх великих дистрибутивах Linux, а не лише на конкретних. Також він не може покладатися на менеджери пакетів, специфічних для деяких дистрибутивів, як-от `apt` чи `dnf`. +- **Вільність і відкритість вихідного коду:** Повинні бути вільними для використання та мати відкритий вихідний код, не можуть продаватися як комерційний продукт та не можуть бути платним сервісом. diff --git a/apps/site/pages/zh-tw/about/branding.mdx b/apps/site/pages/zh-tw/about/branding.mdx index 11beabae534cb..b67baa381f398 100644 --- a/apps/site/pages/zh-tw/about/branding.mdx +++ b/apps/site/pages/zh-tw/about/branding.mdx @@ -3,12 +3,14 @@ title: Node.js 的品牌形象 layout: about --- -Node.js 的品牌形象 +# Node.js 的品牌形象 請閱讀[商標政策](https://trademark-policy.openjsf.org/)以取得 Node.js® 商標與標誌的使用權資訊。 ## Node.js 吉祥物 +感謝 [Angela Angelini](https://www.linkedin.com/in/angeliningl/) 設計及貢獻了 Rocket Turtle。 + Node.js 吉祥物 - - - Node.js® 暗色橫向標誌 - - - - Node.js® 亮色橫向標誌 - - + + + + Node.js® 暗色橫向標誌 + + + + Node.js® 亮色橫向標誌 + + + + ### Node.js® 堆疊標誌 - - - - - - - - - - - + + + + + + + + + + + + + +
- Node.js® 暗色堆疊標誌 - - Node.js® 亮色堆疊標誌 -
- Node.js® 黑色堆疊標誌 - - Node.js® 白色堆疊標誌 -
+ Node.js® 暗色堆疊標誌 + + Node.js® 亮色堆疊標誌 +
+ Node.js® 黑色堆疊標誌 + + Node.js® 白色堆疊標誌 +
### JS 圖示 - - - - - + + + + + + + +
- 綠色 JS 圖示 - - 白色 JS 圖示 -
+ 綠色 JS 圖示 + + 白色 JS 圖示 +
diff --git a/packages/i18n/locales/uk.json b/packages/i18n/locales/uk.json index c6e1d1ce2b21a..a54075b6997d5 100644 --- a/packages/i18n/locales/uk.json +++ b/packages/i18n/locales/uk.json @@ -61,6 +61,7 @@ "links": { "asynchronousWork": "Асинхронна робота", "asynchronousFlowControl": "Асинхронне управління потоком", + "discoverPromisesInNodejs": "Проміси в Node.js", "overviewOfBlockingVsNonBlocking": "Огляд блокувальних і неблокувальних викликів", "javascriptAsynchronousProgrammingAndCallbacks": "Асинхронне програмування і функції зворотного виклику в JavaScript", "discoverJavascriptTimers": "Таймери JavaScript", @@ -108,6 +109,7 @@ "links": { "diagnostics": "Діагностика", "userJourney": "Шлях користувача", + "understandingAndTuningMemory": "Розуміння та налаштування пам'яті", "memory": "Пам’ять", "liveDebugging": "Налагодження в реальному часі", "poorPerformance": "Низька продуктивність", @@ -147,15 +149,38 @@ "downloadReleasesTable": { "version": "Node.js", "nApiVersion": "N-API", - "npmVersion": "npm", "codename": "Кодова назва", "releaseDate": "Опубліковано", + "firstReleased": "Уперше випущено", + "lastUpdated": "Востаннє оновлено", + "status": "Статус", + "details": "Деталі" + }, + "releaseModal": { + "title": "Node.js {version} ({codename})", + "titleWithoutCodename": "Node.js {version}", + "overview": "Огляд", + "minorVersions": "Мінорні версії", + "releaseAnnouncement": "Оголошення релізу", + "unsupportedVersionWarning": "Ця версія більше не супроводжується. Будь ласка, використовуйте підтримувану версію." + }, + "minorReleasesTable": { + "version": "Версія", + "links": "Посилання", "actions": { + "release": "Реліз", "changelog": "Список змін", - "releases": "Релізи", "docs": "Документація" } }, + "releaseOverview": { + "firstReleased": "Уперше випущено", + "lastUpdated": "Востаннє оновлено", + "minorVersions": "Мінорних версій", + "nApiVersion": "Версія N-API", + "npmVersion": "Версія npm", + "v8Version": "Версія V8" + }, "pagination": { "next": "Далі", "previous": "Назад" diff --git a/packages/i18n/locales/zh-tw.json b/packages/i18n/locales/zh-tw.json index 32400f7c9c2fc..d13e02455eb97 100644 --- a/packages/i18n/locales/zh-tw.json +++ b/packages/i18n/locales/zh-tw.json @@ -61,6 +61,7 @@ "links": { "asynchronousWork": "非同步工作", "asynchronousFlowControl": "非同步流程控制", + "discoverPromisesInNodejs": "探索 Node.js 中的 Promise", "overviewOfBlockingVsNonBlocking": "阻塞與非阻塞概述", "javascriptAsynchronousProgrammingAndCallbacks": "JavaScript 中的非同步程式與回呼函式", "discoverJavascriptTimers": "探索 JavaScript 計時器", @@ -108,6 +109,7 @@ "links": { "diagnostics": "診斷訊息", "userJourney": "使用者旅程", + "understandingAndTuningMemory": "深入瞭解並調教記憶體", "memory": "記憶體", "liveDebugging": "即時偵錯", "poorPerformance": "低效能", @@ -147,15 +149,38 @@ "downloadReleasesTable": { "version": "Node.js", "nApiVersion": "N-API", - "npmVersion": "npm", "codename": "代號", "releaseDate": "發佈於", + "firstReleased": "首次釋出於", + "lastUpdated": "上次更新於", + "status": "狀態", + "details": "詳細資訊" + }, + "releaseModal": { + "title": "Node.js {version} ({codename})", + "titleWithoutCodename": "Node.js {version}", + "overview": "概覽", + "minorVersions": "小版本", + "releaseAnnouncement": "發行公告", + "unsupportedVersionWarning": "此版本已不再維護。請使用現正支援的版本。" + }, + "minorReleasesTable": { + "version": "版本", + "links": "連結", "actions": { + "release": "發行版本", "changelog": "更新紀錄", - "releases": "發行版本", "docs": "文件" } }, + "releaseOverview": { + "firstReleased": "首次釋出於", + "lastUpdated": "上次更新於", + "minorVersions": "小版本", + "nApiVersion": "N-API 版本", + "npmVersion": "npm 版本", + "v8Version": "V8 版本" + }, "pagination": { "next": "下一頁", "previous": "上一頁"