Вхід Реєстрація
Реклама
Ваше рекламне місце
Забронюйте цей слот без конкуренції на обраний період.
Купити рекламу →
Логотип телеграм спільноти - Мій шлях в IT (JavaScript Frontend)
Додано 06 січ 2025

Мій шлях в IT (JavaScript Frontend)

@frontend_blog1
Кількість підписників: 236
Фото: 30
Посилання: 56
Опис:
Блог про мій шлях до IT індустрії Якщо потрібна безкоштовна допомога чи порада: @maxim_lg_ua Мій профіль на LinkedIn linkedin.com/in/maksym-maslov
Джерело

Мій шлях в IT (JavaScript Frontend) | Вчора в мене була одна з ситуацій, які, на жаль, періодично трапляютьс...

Логотип телеграм спільноти - Мій шлях в IT (JavaScript Frontend) Мій шлях в IT (JavaScript Frontend) @frontend_blog1
291 Охват/переглядів 2025-07-03 07:21 Повідомлення №74
Вчора в мене була одна з ситуацій, які, на жаль, періодично трапляються.Я витратив майже три години, щоб замінити " " на " ". Без перебільшень. Надаю скрін з пулл реквеста.Задача була в тому, щоб пофіксити вміст буфера обміну при копіюванні повідомлення в чаті. Цей зміст мав переклади через react-i18next, які містили динамічні данні, які під час перекладу повинні були підставлятися зі змінних.В двох словах як це повинно було працювати:const message= "Hello world"const translate = t("copyMessage", { message }); а десь в файлах en/uk.json:{ copyMessage: "Your message is {message}"} console.log(translate) // "Your message is Hello world" Натомість я отримував "Your message is {message}".Я перелопатив доку i18next, я переписував конфіги, намагався відокремити символи переноса рядків від фігурних дужок, я годину спілкувався з чатом GPT і в решті решт, просто випадково, стер один "пробіл" і поставив інший. І все запрацювало.Звідки там взявся саме такий пробіл і чому раніше все працювало?Справа в тому, що тут стояв якийсь "неразривний пробіл", який міг потрапити в цей файл у випадку, коли текст було скопійовано з якихось нотаток, якогось редактору тексту чи перекладача. І візуально відрізнити їх просто неможливо.Раніше цей проєкт був на Next і ми використовували для перекладу лібу "next-intl". Нещодавно ми видалили Next і залишили тільки React, і були вимушені перейти на "react-i18next". Чому саме так - я не можу сказати, бо я не інвестігейтив це питання і під час цього переходу працював на іншому проєкті. Але справа в тому, що в "next-intl" все працювало, а в "react-i18next" цей пробіл просто зламав весь функціонал.Ось так буває, лінтер і prettier не сваряться, все чудово білдиться, але бага все одно може бути через один неочевидний символ.