Iniciar sesión Registro
Anuncios
Tu espacio publicitario
Reserva este slot exclusivo para el periodo elegido.
Comprar publicidad →
Logotipo de la comunidad de telegram - Мій шлях в IT (JavaScript Frontend)
Añadido 06 ene. 2025

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

@frontend_blog1
Número de suscriptores: 236
Fotos: 30
Enlaces: 56
Descripción:
Блог про мій шлях до IT індустрії Якщо потрібна безкоштовна допомога чи порада: @maxim_lg_ua Мій профіль на LinkedIn linkedin.com/in/maksym-maslov
Fuente

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

Logotipo de la comunidad de telegram - Мій шлях в IT (JavaScript Frontend) Мій шлях в IT (JavaScript Frontend) @frontend_blog1
291 Vistas/Alcance 2025-07-03 07:21 Mensaje №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 не сваряться, все чудово білдиться, але бага все одно може бути через один неочевидний символ.