Я сейчас пишу один проектик, и хочю чтобы можно было легко его локализовывать, причем мне нужна не столько возможность перевести все сообщения программы на другие языки, но и перевести некоторые термины, в зависимости от пожелания заказчика. Впринципе все понятно, умные дядьки придумали gettext(). Соответсвенно программу я пищу следующим образом: все выводы сообщений пишу через вызов функции _(), в коде программы сообщения на английском, и раз в неделю обновляю .po файл.
Все замечательно, но сообщения "Not selected", "Any" (используеться как один из варианты выбора в выпадающих списках) встречаются в программе часто, и в разных контестках, и хочется чтобы на русский передовились как "Не выбран" "Не выбрана" "Не выбрано", "Любой" "Любая" "Любое".
Пока мне в голову приходит только сдедующий варианты: писать в теле программы вместо всех сообщений, некие "пседво" сообщения из которых понятно, что должен увидеть пользователь и в каком контектсе, и делать перевод этих сообщений на все языки, в том числе и на английский.
Либо, специальным образом метить контестно зависимые сообщения, тоесть например вместо _("Not selected") писать _("__Not selected (no file selected)") или _("__Not selected (no group selected)"), и на английский перевести только эти фраза, а остальные не трогать.
Есть ли другие варианты?