HTML Diff
0 added 0 removed
Original 2026-01-01
Modified 2026-02-26
1 <p><strong>Рассказываем, что такое библиотека React-i18next и как с ее помощью можно локализовать приложение.</strong></p>
1 <p><strong>Рассказываем, что такое библиотека React-i18next и как с ее помощью можно локализовать приложение.</strong></p>
2 <blockquote><p>Эта статья будет полезна, если вы немного знаете основы JS и React и хотите узнать что-то новое. Если вы пока с ними не знакомы, рекомендуем пройти профессию "<a>Фронтенд-разработчик</a>" на Хекслете.</p>
2 <blockquote><p>Эта статья будет полезна, если вы немного знаете основы JS и React и хотите узнать что-то новое. Если вы пока с ними не знакомы, рекомендуем пройти профессию "<a>Фронтенд-разработчик</a>" на Хекслете.</p>
3 </blockquote><p>Для глобального рынка разрабатывается все больше сервисов и продуктов. А это значит, что ваше приложение должно работать на аудиторию, говорящую на разных языках и диалектах. В React нет встроенной интернационализации i18n, но локализовать приложение несложно, особенно с помощью i18next.</p>
3 </blockquote><p>Для глобального рынка разрабатывается все больше сервисов и продуктов. А это значит, что ваше приложение должно работать на аудиторию, говорящую на разных языках и диалектах. В React нет встроенной интернационализации i18n, но локализовать приложение несложно, особенно с помощью i18next.</p>
4 <p>Разберем основные термины, необходимые для понимания статьи.</p>
4 <p>Разберем основные термины, необходимые для понимания статьи.</p>
5 <p>i18n - это сокращение от слова интернационализация, где "18" обозначает количество букв между первой i и последней n. Эта аббревиатура используется во всех языках программирования.</p>
5 <p>i18n - это сокращение от слова интернационализация, где "18" обозначает количество букв между первой i и последней n. Эта аббревиатура используется во всех языках программирования.</p>
6 <p>i18next - это фреймворк интернационализации, написанный на JavaScript и для JavaScript, который интегрируется в код приложения.</p>
6 <p>i18next - это фреймворк интернационализации, написанный на JavaScript и для JavaScript, который интегрируется в код приложения.</p>
7 <p>React-i18next - это мощный набор компонентов, хуков и плагинов, которые работают поверх i18next. Давайте узнаем, как его использовать для приложений React.</p>
7 <p>React-i18next - это мощный набор компонентов, хуков и плагинов, которые работают поверх i18next. Давайте узнаем, как его использовать для приложений React.</p>
8 <h2>Содержание</h2>
8 <h2>Содержание</h2>
9 <ul><li><a>Установка и настройка react-i18next</a></li>
9 <ul><li><a>Установка и настройка react-i18next</a></li>
10 <li><a>Отладка i18next</a></li>
10 <li><a>Отладка i18next</a></li>
11 <li><a>Использование react-i18next</a></li>
11 <li><a>Использование react-i18next</a></li>
12 </ul><h2>Установка и настройка react-i18next</h2>
12 </ul><h2>Установка и настройка react-i18next</h2>
13 <p>Чтобы начать использовать react-i18next для локализации приложения, нужно добавить его в проект:</p>
13 <p>Чтобы начать использовать react-i18next для локализации приложения, нужно добавить его в проект:</p>
14 <p>i18next предоставляет ряд<a>плагинов и утилит,</a>которые расширяют возможности библиотеки. Например, плагин<a>i18next-browser-languageDetector</a>используется для определения языка пользователя в браузере.</p>
14 <p>i18next предоставляет ряд<a>плагинов и утилит,</a>которые расширяют возможности библиотеки. Например, плагин<a>i18next-browser-languageDetector</a>используется для определения языка пользователя в браузере.</p>
15 <p>Установим его стандартным способом с помощью npm:</p>
15 <p>Установим его стандартным способом с помощью npm:</p>
16 <p>Установив библиотеки, создадим и настроим экземпляр i18next:</p>
16 <p>Установив библиотеки, создадим и настроим экземпляр i18next:</p>
17 <p>i18next предоставляет также провайдер I18nextProvider. В провайдер можно обернуть компонент и передать экземпляр i18next, который вы инициализировали. Обычно это не требуется, но в<a>документации</a>можно посмотреть сценарии использования, в которых экземпляр может пригодиться.</p>
17 <p>i18next предоставляет также провайдер I18nextProvider. В провайдер можно обернуть компонент и передать экземпляр i18next, который вы инициализировали. Обычно это не требуется, но в<a>документации</a>можно посмотреть сценарии использования, в которых экземпляр может пригодиться.</p>
18 <blockquote><h3>Читайте также:</h3>
18 <blockquote><h3>Читайте также:</h3>
19 <p>Маршрутизация в React Router: как она работает и<a>почему ее выбирают разработчики</a></p>
19 <p>Маршрутизация в React Router: как она работает и<a>почему ее выбирают разработчики</a></p>
20 </blockquote><h2>Отладка i18next</h2>
20 </blockquote><h2>Отладка i18next</h2>
21 <p>Еще одна удобная опция конфигурации, которую предоставляет i18next, - это отладка. Мы можем установить значение true, чтобы получить вывод в консоль браузера, когда в i18next происходят определенные события, такие как завершение инициализации или изменение языка.</p>
21 <p>Еще одна удобная опция конфигурации, которую предоставляет i18next, - это отладка. Мы можем установить значение true, чтобы получить вывод в консоль браузера, когда в i18next происходят определенные события, такие как завершение инициализации или изменение языка.</p>
22 <h2>Использование react-i18next</h2>
22 <h2>Использование react-i18next</h2>
23 <p>Мы сделали первоначальную настройку и теперь можем приступить к работе с текстами.</p>
23 <p>Мы сделали первоначальную настройку и теперь можем приступить к работе с текстами.</p>
24 <p>react-i18next представляет хук useTranslation(), с помощью которого можно получить доступ к функции t(). Она принимает ключ и возвращает соответствующую строку из переводов активного языка. Хук useTranslation() гарантирует, что наши компоненты получат t(), связанную с нашим экземпляром i18next.</p>
24 <p>react-i18next представляет хук useTranslation(), с помощью которого можно получить доступ к функции t(). Она принимает ключ и возвращает соответствующую строку из переводов активного языка. Хук useTranslation() гарантирует, что наши компоненты получат t(), связанную с нашим экземпляром i18next.</p>
25 <p>Мы рассмотрели основные возможности библиотеки react-i18next. Если вы хотите узнать больше, дополнительную информацию можно найти в ее<a>официальной документации</a>.</p>
25 <p>Мы рассмотрели основные возможности библиотеки react-i18next. Если вы хотите узнать больше, дополнительную информацию можно найти в ее<a>официальной документации</a>.</p>
26 <blockquote><h3>Станьте профессиональным фронтенд-разработчиком с нуля за 10 месяцев</h3>
26 <blockquote><h3>Станьте профессиональным фронтенд-разработчиком с нуля за 10 месяцев</h3>
27 <p>На Хекслете есть профессия ["Фронтенд-разработчик"](<a>https://ru.hexlet.io/programs/frontend?utm_source=hexlet&amp;utm_medium=blog&amp;utm_campaign=prof-frontend&amp;utm_content=i18next</a>react&amp;utm_term=post_280423). Пройдите ее, чтобы изучить один из самых известных языков программирования, освоить популярные фреймворки и создать большое портфолио с проектами на GitHub.</p>
27 <p>На Хекслете есть профессия ["Фронтенд-разработчик"](<a>https://ru.hexlet.io/programs/frontend?utm_source=hexlet&amp;utm_medium=blog&amp;utm_campaign=prof-frontend&amp;utm_content=i18next</a>react&amp;utm_term=post_280423). Пройдите ее, чтобы изучить один из самых известных языков программирования, освоить популярные фреймворки и создать большое портфолио с проектами на GitHub.</p>
28 </blockquote>
28 </blockquote>