Проблема ретроспективного внедрения интернационализации (i18n)
Одна из главных проблем i18n в приложениях заключается в том, что о ней вспоминают в последнюю очередь.
Обычно мы разрабатываем продукт, проверяем соответствие рынку (Product-Market Fit) и только спустя месяцы или годы решаем: «Пора выходить на глобальный уровень».
Сложность в том, что решения для i18n носят структурный характер и сильно влияют на работу команды. Куда эффективнее закладывать это в техническое задание с первого дня.
Как же с этим справиться? Заморозить разработку на неделю и рефакторить каждый компонент?
В последнее время я вижу много решений, основанных на compiler-driven подходе. Обещание заманчивое: добавьте пару строк кода, и приложение «само» станет мультиязычным.
Однако есть существенные недостатки.













