Как и следовало ожидать, gettext не поможет вам построить грамматически правильные строки. Даже если у вас нет проблем с английским языком, программный способ создания отображаемого текста - это большая локализуемость, нет-нет, так как могут возникнуть проблемы с языком. Если это возможно, у вас, вероятно, должны быть отдельные строки для каждого случая, такие как «Ваш путь заблокирован динозавром», «Ваш путь заблокирован кроликом», «Ваш путь заблокирован анакондой» и т. Д. Это означает, что множество дублирование, но системы перевода помогают автоматизировать процесс за счет использования памяти переводов и даже в более сложных случаях автоматического перевода (который переводчикам просто необходимо вычитать и исправлять при необходимости).
Ваш "Page d'Anais" / "Page de Claudette" является отличным примером. Единственным решением в таких случаях является сохранение строки формата в таблице локализуемых строк (и, похоже, вы уже это делаете), чтобы локализаторы могли найти работоспособное решение. (например, «Page de: Anais», хотя и не очень хорошо работает в каждом случае, поэтому они локализуют «% s Page» как «Page de:% s»). Но локализаторам нужно понимать, куда пойдут строки этого формата и как он сконструирован, поэтому вам нужно прояснить это.
Одна из наиболее часто неправильно переведенных строк - это "% n of% n" (используется для печати страниц, как на странице "1 из 4"), которая без контекста часто переводится совершенно неправильно. Например. на французском языке буквальный перевод «1 из 4», что не имеет смысла в этом контексте, это должно быть «1 Sur 4».