Я розробляю багатомовний веб-додаток PHP, і у мене є довгі тексти, які мені потрібно перекласти за допомогою gettext. Це шаблони електронної пошти (зазвичай короткі, але все ж кілька рядків) та частини шаблонів перегляду (довші описові блоки тексту). Ці тексти включатимуть простий HTML (такі речі, як напівжирний / курсивний наголос, можливо, посилання тут чи там). Шаблони - це сценарії PHP, вихід яких відзнято.
Проблема полягає в тому, що gettext здається дуже незграбним для обробки довших текстів. Більш довгі тексти, як правило, зміняться з часом більше, ніж короткі тексти - я можу змінити msgid і обов'язково оновити його у всіх перекладах (могло бути багато роботи та дуже схильних до помилок, коли msgid довгий), або я можу тримати msgid не змінюється та модифікує лише переклади (які залишать в шаблонах помилкові застарілі тексти). Крім того, я бачив поради щодо включення HTML у рядки gettext, але, уникаючи цього, порушив би один природний фрагмент тексту на безліч фрагментів, що буде ще більшим кошмаром для перекладу та повторного збирання, а також я бачив поради проти непотрібне розщеплення рядків gettext на окремі msgids.
Інший підхід, який я бачу, - це взагалі ігнорувати gettext для цих довших текстів та відокремлювати ці блоки у зовнішніх підтемностях для кожної локалі, а просто включати один для поточного локалу. Недоліком є те, що я розділяю зусилля на переклад між файлами gettext .po та окремими шаблонами, розташованими в зовсім іншому місці.
Оскільки цей додаток буде використовуватися як відправна точка для інших додатків у майбутньому, я намагаюся придумати найкращий підхід у довгостроковій перспективі. Мені потрібні поради щодо найкращої практики в таких сценаріях. Як ви реалізували подібні випадки? Що, як виявилося, спрацювало, а що вийшло поганою ідеєю?