Я пытаюсь запустить приложение C ++ GTK2 в Windows 7, используя Eclipse CDT + MinGW и GTK 2.22. Он использует <glib/gi18n.h>
для интернационализации и отлично работает на Linux. Тем не менее, я не могу заставить его работать на Windows. Я инициализирую локализацию, используя этот код:
setlocale(LC_ALL, "sk_SK");
bindtextdomain ("MyApp", "MyPath");
bind_textdomain_codeset ("MyApp", "UTF-8");
textdomain ("MyApp");
Ни одна из этих функций не возвращает NULL
, поэтому они успешно завершаются.
Затем, когда я пытаюсь получить строку, используя:
gettext("someText");
, я получаю только «someText», что означает, что мой файл переводов не был найден.
Мой созданный GNU-gettext языковой файл - MyPath / sk_SK / LC_MESSAGES / MyApp.mo.
Единственный способ сделать эту работу - установить переменную окружения LC_ALL
в Windows вручную на sk_SK
(но putenv("LC_ALL=sk_SK")
в моем коде тоже не работает).