gettext — библиотека проекта GNU для интернационализации (i18n Интернационализация).
В gettext для обозначения переводимых строк в тексте программы используются их английские оригиналы, а не специальные идентификаторы. Таким образом для отображения интерфейса на английском языке программе не нужны файлы перевода.
Библиотека gettext предполагает хранение перевода в файлах с расширениями .mo (Machine Object, бинарный файл, удобный для чтения программой и специфичный для платформы), или .gmo (GNU .mo) .po (Portable Object, человеко-читаемый файл перевода, не зависящий от платформы) и .pot (PO template — каталог, заготовка файла .po для перевода на новый язык). Кроме самих строк перевода, .po файлы могут содержать комментарии переводчика и различные служебные пометки.
Для формирования и обновления этих файлов при изменении программы можно использовать ряд утилит, например:
Читайте также node.js.