gettext не поддерживает такое склонение.
Если вы знаете всех возможных кандидатов на% s, вы можете перечислить их всех в ресурсе, например,
msgid "About Foobar"
msgstr "O Foobaru"
msgid "About Bazbar"
msgstr "O Bazbarbaru"
msgid "About Foobara"
msgstr "O Foobari"
msgid "About Bazbara"
msgstr "O Bazbari"
но тогда это сделает другой язык, такой как немецкий, громоздким.
Или, если вы можете определить это хорватское склонение как функцию, вы можете сначала обработать его в своей функции и продолжать использовать общее преобразование gettext.
translate('About %s', myDeclension(name));
и функция myDeclension делает это,
function myDeclension(text) {
if (isLocale() != 'hr') { return text; }
if (isEndWithA(text)) { return replaceLastAWithI(text); }
else { return addTrailingU(text); }
// add more Croatian specific conversion if any
}