Во-первых, gettext()
не волшебно. Он не содержит глобального словаря всех слов на всех языках.
Все, что он делает, это просматривает перевод сообщения в базе данных сообщений вашего приложения, поэтому в этом примере предполагается, что такой файл существует (где gettext()
может его найти, это может быть несколько сложно).
Далее, вы используете это неправильно. Страница, на которую вы ссылаетесь, описывает функцию ngettext()
, которую вы должны будете использовать для получения перевода, который зависит от количества.
Ваш звонок должен выглядеть примерно так:
printf("%s", ngettext("moon", "moons", ii));
Это позволяет gettext решить, какую форму использовать, основываясь на параметре count.