diff --git a/content/7.blog/19.v3-9.md b/content/7.blog/19.v3-9.md
index 01ed3c107..f8552b579 100644
--- a/content/7.blog/19.v3-9.md
+++ b/content/7.blog/19.v3-9.md
@@ -1,6 +1,6 @@
---
title: Nuxt 3.9
-description: Nuxt 3.9 is out - a Christmas gift from the Nuxt team bringing Vite 5, interactive server components, new composables, a new loading API and more.
+description: Вышел Nuxt 3.9 — рождественский подарок от команды Nuxt, включающий Vite 5, интерактивные серверные компоненты, новые композаблы, новый API загрузки и многое другое.
navigation: false
image: /assets/blog/v3.9.png
authors:
@@ -12,21 +12,21 @@ date: 2023-12-25T00:00:00.000Z
category: Релиз
---
-A very merry Christmas to you and yours from all Nuxters involved in this release! 🎁🎄
+Веселого Рождества вам и вашим близким от всех Накстеров, принявших участие в этом релизе! 🎁🎄
-We have lots of features packed into v3.9 and can't wait for you to try them out.
+В версию 3.9 включено множество возможностей, и мы не можем дождаться, когда вы их опробуете.
### ⚡️ Vite 5
-This release comes with Vite 5 and Rollup 4 support. Module authors may need to check to ensure that any vite plugins you're creating are compatible with these latest releases.
+Этот релиз поставляется с поддержкой Vite 5 и Rollup 4. Авторам модулей может потребоваться проверить, совместимы ли все создаваемые вами плагины Vite с этими последними релизами.
-This comes with a whole host of great improvements and bug fixes - check out [the Vite changelog](https://vitejs.dev/guide/migration.html#migration-from-v4) for more info.
+В него включен целый ряд замечательных улучшений и исправлений ошибок — для получения более подробной информации ознакомьтесь с [журналом изменений Vite](https://vitejs.dev/guide/migration.html#migration-from-v4).
-### ✨ Vue 3.4 ready
+### ✨ Готов к Vue 3.4
-This release is tested with the latest Vue 3.4 release candidate, and has the necessary configuration to take advantage of [new features in Vue 3.4](https://blog.vuejs.org/posts/vue-3-4), including debugging hydration errors in production (just set `debug: true`) in your Nuxt config.
+Этот релиз протестирован с последним релиз-кандидатом Vue 3.4 и имеет необходимую конфигурацию для использования [новых функций Vue 3.4](https://blog.vuejs.org/posts/vue-3-4), включая отладку ошибок гидратации в продакшене (просто установите `debug: true`) в конфигурации Nuxt.
-👉 To take advantage, just update your `vue` version once v3.4 is released, or try out the release candidate today:
+👉 Чтобы воспользоваться преимуществами, просто обновите версию `vue` после выхода версии 3.4 или попробуйте релиз-кандидат уже сегодня:
```json [package.json]
{
@@ -38,9 +38,9 @@ This release is tested with the latest Vue 3.4 release candidate, and has the ne
}
```
-### 🏝️ Interactive Server Components
+### 🏝️ Интерактивные серверные компоненты
-This is a highly-experimental update, but it's now possible to play around with interactive components within Nuxt server components. You'll need to enable this new feature additionally to component islands:
+Это очень экспериментальное обновление, но теперь можно поиграться с интерактивными компонентами в серверных компонентах Nuxt. Вам нужно будет включить эту новую функцию в дополнение к компонентам-островам:
```ts [nuxt.config.ts]
export default defineNuxtConfig({
@@ -52,17 +52,17 @@ export default defineNuxtConfig({
})
```
-Now, within a server component, you can specify components to hydrate by using the `nuxt-client` directive:
+Теперь в серверном компоненте вы можете указать компоненты для гидратации с помощью директивы `nuxt-client`:
```vue [components/SomeComponent.server.vue]
```
-We're pretty excited about this one - so do let us know how you're using it! 🙏
+Мы в восторге от этой функции — так что дайте нам знать, как вы ее используете! 🙏
-### 🔥 Automatic Server Optimisations
+### 🔥 Автоматическая оптимизация сервера
-We now use Vite's new AST-aware 'define' to perform more accurate replacements on server-side code, meaning code like this will no longer throw an error:
+Теперь мы используем новый метод Vite 'define', поддерживающий AST, для выполнения более точных замен в коде на стороне сервера, что означает, что такой код больше не будет выдавать ошибку:
```vue [app.vue]
```
-This hasn't been possible until now because we haven't wanted to run the risk of accidentally replacing normal words like `document` within non-JS parts of your apps. But Vite's new `define` functionality is powered by `esbuild` and is syntax-aware, so we feel confident in enabling this functionality. Nevertheless, you can opt out if you need to:
+До сих пор это было невозможно, поскольку мы не хотели рисковать случайной заменой обычных слов, таких как `document`, в не-JS-частях ваших приложений. Но новая функциональность `define` в Vite работает на `esbuild` и учитывает синтаксис, поэтому мы уверены в том, что включим эту функциональность. Тем не менее, вы можете отказаться, если вам нужно:
```ts [nuxt.config.ts]
export default defineNuxtConfig({
@@ -84,55 +84,55 @@ export default defineNuxtConfig({
})
```
-### 🚦 Granular Loading API
+### 🚦 Точечное API загрузки
-We now have a new hook-based system for [``](/docs/api/components/nuxt-loading-indicator), including a `useLoadingIndicator` composable that lets you control/stop/start the loading state. You can also hook into `page:loading:start` and `page:loading:end` if you prefer.
+Теперь у нас есть новая система на основе хуков для [``](/docs/api/components/nuxt-loading-indicator), включая `useLoadingIndicator`, который позволяет вам контролировать/останавливать/запускать состояние загрузки. Вы также можете подключиться к `page:loading:start` и `page:loading:end`, если хотите.
::tip
-You can read more [in the docs](/docs/api/composables/use-loading-indicator) and in the original PR ([#24010](https://github.com/nuxt/nuxt/pull/24010)).
+Подробнее можно прочитать [в документации](/docs/api/composables/use-loading-indicator) и в оригинальном PR ([#24010](https://github.com/nuxt/nuxt/pull/24010)).
::
-### 🏁 Run single events in `callOnce`
+### 🏁 Запуск отдельных событий в `callOnce`
-Sometimes you only want to run code once, no matter how many times you load a page - and you don't want to run it again on the client if it ran on the server.
+Иногда нужно запустить код только один раз, независимо от того, сколько раз вы загружаете страницу, и вы не хотите запускать его снова на клиенте, если он уже выполнялся на сервере.
-For this, we have a new utility: [`callOnce`](/docs/api/utils/call-once) ([#24787](https://github.com/nuxt/nuxt/pull/24787)).
+Для этого у нас есть новая утилита: [`callOnce`](/docs/api/utils/call-once) ([#24787](https://github.com/nuxt/nuxt/pull/24787)).
```vue [app.vue]
```
-Note that this utility is context-aware so it _must_ be called in component setup function or Nuxt plugin, as with other Nuxt composables.
+Обратите внимание, что эта утилита зависит от контекста, поэтому ее _нужно_ вызывать в функции настройки компонента или плагине Nuxt, как и композаблы Nuxt.
::read-more{to="/docs/api/utils/call-once"}
::
-### 🚨 Error Types
+### 🚨 Типы ошибок
-For a while now, errors returned by `useAsyncData` and `useFetch` have been typed pretty generically as `Error`. We've significantly improved the type possibilities for them to make them more accurate in terms of what you'll actually receive. (We normalise errors with the `h3` `createError` utility under the hood, so they can be serialised from server to client, for example.)
+Некоторое время назад ошибки, возвращаемые `useAsyncData` и `useFetch`, были типизированы довольно обобщенно как `Error`. Мы значительно улучшили возможности типов для них, чтобы сделать их более точными с точки зрения того, что вы фактически получите. ("Под капотом" мы нормализуем ошибки с помощью утилиты `h3` `createError`, поэтому, например, их можно сериализовать с сервера на клиент.)
-We've tried to implement the type change in a backwards compatible way, but you might notice that you need to update the generic if you're manually configuring the generics for these composables. See ([#24396](https://github.com/nuxt/nuxt/pull/24396)) for more information, and do let us know if you experience any issues.
+Мы попытались реализовать изменение типа сохранив обратную совместимость, но вы могли заметить, что нужно обновить дженерик, если вы вручную настраиваете дженерики для этих композаблов. См. ([#24396](https://github.com/nuxt/nuxt/pull/24396)) для получения дополнительной информации, и сообщите нам, если у вас возникнут какие-либо проблемы.
-### 🔥 Schema Performance
+### 🔥 Производительность схемы
-We've taken some time in this release to make some minor performance improvements, so you should notice some things are a bit faster. This is an ongoing project and we have ideas for improving initial load time of the Nuxt dev server.
+В этом релизе мы потратили некоторое время на незначительные улучшения производительности, так что вы должны заметить, что некоторые вещи стали работать немного быстрее. Это постоянный проект, и у нас есть идеи по улучшению начальной загрузки dev-сервера Nuxt.
-## ✅ Upgrading
+## ✅ Обновление
-As usual, our recommendation for upgrading is to run:
+Как обычно, мы рекомендуем выполнить обновление следующим образом:
```sh
npx nuxi upgrade
```
-## Full Release Notes
+## Полное описание релиза
::read-more
---
@@ -140,9 +140,9 @@ to: https://github.com/nuxt/nuxt/releases/tag/v3.9.0
color: gray
icon: i-simple-icons-github
---
-Read the full release notes of Nuxt `v3.9.0`.
+Читайте полное описание релиза Nuxt `v3.9.0`.
::
-Thank you for reading this far! We hope you enjoy the new release. Please do let us know if you have any feedback or issues.
+Спасибо, что дочитали до этого места! Надеемся, вам понравится новый релиз. Пожалуйста, дайте нам знать, если у вас есть какие-либо отзывы или проблемы.
-**Happy Nuxting ✨**
+**Счастливого Накстинга ✨**