ПРОДВИНУТАЯ РАБОТА С МУЛЬТИЯЗЫЧНОСТЬЮ В REACT | i18n

Поделиться
HTML-код
  • Опубликовано: 23 ноя 2024

Комментарии • 53

  • @ayub_begimkulov
    @ayub_begimkulov  Год назад +8

    Друзья, все таки решил выложить свое решение для i18n на npm, кажется, что есть люди, кому это может быть полезно.
    Собственно, вот ссылка на GitHub:
    github.com/Ayub-Begimkulov/i18n
    И вот ссылка на npm:
    www.npmjs.com/package/@ayub-begimkulov/i18n
    Выпустил пока в персональном скоупе (@ayub-begimkulov/i18n), так как не придумал еще название.
    Также дока пока совсем скудноватая, в ближайшие пару дней планирую улучшить. Должны еще доехать пару улучшений с точки зрения TS.
    Накидайте звезд, если хотите, чтобы проект развивался.

  • @D_d-l6c
    @D_d-l6c Год назад +2

    Очень информативное видео! Спасибо, что делишься своим глубочайшим пониманием технологий.

  • @Nuts_Cracker
    @Nuts_Cracker Год назад +2

    Спасибо! Очень своевременно вышло видео. Пишу свою первую мультиязычную апку на реакте. С i18-n разобрался, это не сложно. Однако практические рекомендации на основе опыта трудно переоценить!

  • @raidenraiden7938
    @raidenraiden7938 Год назад +2

    Лайк сразу, гляну чуть позже)

  • @malsagov6331
    @malsagov6331 Год назад +1

    Очень крутое видео! Спасибо за контент Айюб!

  • @demiurgen13
    @demiurgen13 Год назад +2

    Видео - огонь! Очень полезно, спасибо

  • @kombuchamp
    @kombuchamp Год назад +1

    Отличный доклад, спасибо

  • @роматарасов-о8л
    @роматарасов-о8л Год назад +1

    Тема очень актуальная, хорошее видео

  • @rostyslavnahornyi691
    @rostyslavnahornyi691 Год назад +1

    new level of quality!

  • @mercury_2379
    @mercury_2379 Год назад +1

    комментарий в поддержку канала

  • @7iomka
    @7iomka Год назад +1

    Проблема кастомных решений - отсутствие поддержки из коробки автопереводов или хелперов заполняющий или создающих новые ключи. Например в vscode есть замечательное расширение lokalise.i18n-ally которое поддерживает большую часть решений из списка популярных. В целом наверное хотелось бы увидеть твоё кастомное решение как отдельный пакет учитывая насколько узкую задачу с маленьким размером кода оно выполняет и делает это судя по всему на отлично)

  • @komilolimov2257
    @komilolimov2257 Год назад

    Очень внятное объяснение, и все разобрал по этапно и очень красиво всё объяснил. Спасибо за такой контент мог бы сделать контент про next js и rtk . Спасибо заранее!

    • @ayub_begimkulov
      @ayub_begimkulov  Год назад

      По rtq уже есть видос с топ 6 ошибок. По нексту надо подумать, что можно снять.

  • @SnegurkaBu
    @SnegurkaBu Год назад +1

    Спасибо, очень познавательно. Было бы очень интересно посмотреть лайв-кодинг библиотеки, просто без монтажа, в формате стрима.

    • @ayub_begimkulov
      @ayub_begimkulov  Год назад

      Спасибо за фидбэк! Про стрим можно подумать, это должно быть что-то отдельное от остальных видосов, так как такой формат не всем заходит.

  • @jamjam3337
    @jamjam3337 Год назад +1

    👏👍

  • @aleksandrmisnov
    @aleksandrmisnov Год назад +1

    Классное видео ! Спасибо. Немного быстро для меня было, но думаю в пакете смогу сам разобраться с типизацией. Аюб , а сможешь сделать видео о том как правильно работать с NextJS и тайпскрипт? Было бы очень занятно посмотреть. И вообще, по next было бы полезно любой материал в твоём исполнение. Спасибо большое, очень рад что на тебя наткнулся.

    • @ayub_begimkulov
      @ayub_begimkulov  Год назад

      Привет! Спасибо за обратную связь.
      Касательно некст - запишу себе и попробую подумать, что можно интересного сделать.

  • @wardi9013
    @wardi9013 Год назад

    Салютб спасибо за ролекю А если в аппе один язык, но хочется чтобы все лежало так же по ключам и подгружалось не сразу все в бандле, а только нужные лэйблы для текущей страницы? был бы рад ссылочки с примерами или туторами.

  • @AlexanderPozhidaev
    @AlexanderPozhidaev Год назад +1

    Спасибо за видео!
    Почему не использовали Intl.PluralRules вместо собственной реализации pluralize?

    • @ayub_begimkulov
      @ayub_begimkulov  Год назад

      А я даже и не знал о нем)
      Кажется реально удобно, если не надо поддерживать старые браузеры.
      Спасибо за фидбэк!

  • @dimetriss5122
    @dimetriss5122 Год назад +2

    А есть/будет ли возможность асинхронно подгружать переводы для отдельных страниц, чтоб не тянуть переводы страниц на которые юзер потенциально не зайдет ему с языком сразу?
    На сколько это вообще критично и необходимо и как такое реализовать?

    • @denissmirnov766
      @denissmirnov766 Год назад

      Мы на проекте разбивали загрузку по языку/странице. Т.к. начались проблемы с SEO из-за огромного json с переводами

    • @ayub_begimkulov
      @ayub_begimkulov  Год назад

      Разбивать можно. По поводу необходимости - не знаю. Все зависит от того, насколько много переводов у тебя на каждой странице и повлияет ли это реально на размер бандла.
      Тут нужно смотреть от проекта в проект. А касательно решения, которое я тут показываю - пока это не поддержано. Но если есть нужда - можно подумать.

  • @fedordostoevskiy4209
    @fedordostoevskiy4209 Год назад +1

    👀👏👏

  • @ReaktorGaming86
    @ReaktorGaming86 Год назад +1

    Тебе бы над изложением мысли поработать. Зачастую непонятно, что ты хочешь сказать. Например, на 17:00, про перевод времени. Я три раза переслушал, и так и не понял, что означает "они приходят из коробки", почему я не должен использовать moment, и что означает "информация не должна быть связана с вашим кодом". В чем вообще суть проблемы и в чем суть твоего решения?

    • @ayub_begimkulov
      @ayub_begimkulov  Год назад +1

      Привет. Спасибо за фидбэк! В плане подачи да, есть над чем поработать.
      1) Из коробки - значит уже с пакетом. Я имел в виду, что библиотеки для работы со временем (moment, date-fns, Luxon и тд.) уже имеют функционал перевода и не надо этим заниматься самому.
      2) Суть моего решения такая:
      - Маленький размер библиотеки.
      - Полная поддержка TS.
      - Поддержка необходимого функционала.
      - Простота и отсутствие 100 разных способов делать одно и то же.
      - Асинхронная подгрузка ключей.
      Мое решение использовать не обязательно, я просто поделился тем, почему мне не нравятся текущие решения и почему я написал свое. Все, понятное дело, субъективно.
      Как-то так)

  • @elena_sva
    @elena_sva Год назад

    Кажется это можно проще написать function pluralizeRu(count: number){
    const rem = Math.abs(count) % 100
    if (rem >= 11 && rem

  • @dmitrysuhotskylessonjs3981
    @dmitrysuhotskylessonjs3981 Год назад +1

    Привет. Есть вопрос, какое оптимальное решение для локализации - если мы используем crud blog с хранением данных на бэке. Хранить все переводы в базе?

    • @ayub_begimkulov
      @ayub_begimkulov  Год назад +1

      Тут мне кажется стоит разделить переводы на 2 части.
      1) Интерфейсные текста. Всякие кнопки, менющки, модалки и тд. В общем, все что храниться коде.
      2) Контент.
      Собственно 1-я храниться также, как и показано в данном видео. 2-я - уже на беке. Но тут нужно, чтобы контент писался на 2-х языках.

  • @АлександрКалинин-ъ6й

    translate(🔫🏎🔥)😁

  • @andreyh6934
    @andreyh6934 Год назад +2

    Спасибо, НО НЕ ТАРАТОРЬ!!! Люди, которые смотрят - только учатся и для них такая подача очень быстрая. А так за старание спасибо)

    • @ayub_begimkulov
      @ayub_begimkulov  Год назад

      Да, есть такая проблема. Особенно под конец видео сильно торопиться начинаю.
      Спасибо за фидбэк, буду работать над этим.

    • @alekz888
      @alekz888 Год назад

      Поставьте скорость видео 0.75 и все будет ок

    • @sharkman6434
      @sharkman6434 Год назад

      Смотрю на скорости 1,5, этот канал скорее от джун+ уровня, чтоб понимать о чём тут речь нужно хотя бы раз самому написать это. Новичкам лучше в школу идти и долбить пол года на курсах а потом уже смотреть каналы типа этого )

  • @dfkadyr
    @dfkadyr Год назад +1

    Спасибо

  • @artyomtaranenko2267
    @artyomtaranenko2267 Год назад +1

    next-i18next - best of the best)