| |
Справочное описание GLib | ||||
---|---|---|---|---|
#include <glib.h> #include <glib/gi18n.h> #define _ (String) #define Q_ (String) #define N_ (String) const gchar* g_strip_context (const gchar *msgid, const gchar *msgval); const gchar* const * g_get_language_names (void);
GLib не требует от пользователей использовать специальный метод интернационализации.
А так как GLib сама локализована с использованием механизма
gettext()
, является естественным предложение фактического стандарта
gettext()
поддерживающего макросы в простой для использования форме.
Для использования этих макросов в приложениях, вы должны включить glib/gi18n.h
.
Для использования в библиотеке, вы должны включить glib/gi18n-lib.h
после определения макроса GETTEXT_PACKAGE соответственно для вашей библиотеки:
#define GETTEXT_PACKAGE "gtk20" #include <glib/gi18n-lib.h>
#define _(String)
Маркирует строку для перевода, заменяется переведённой строкой во время выполнения.
String : |
строка для перевода |
Начиная с версии 2.4
#define Q_(String)
Аналогично _()
, но применяет
g_strip_context()
для перевода.
Это имеет преимущество, потомучто строка может быть дополнена префиксом для гарантии уникальности и обеспечения содержимого для перевода.
Один случай использования приведён в руководстве gettext - это перевод GUI, где можно снять неоднозначность двух меню "Open" как "File|Open" и "Printer|Open". Другой способ использования - это строка "Russian" которая может иметь разный перевод в зависимости от того является ли она названием набора символов или языка. Это может быть решено при помощи "charset|Russian" и "language|Russian".
String : |
строка для перевода, с префиксом отделённым знаком '|', который не должен транслироваться |
Начиная с версии 2.4
#define N_(String)
Маркирует строку для перевода, заменяется не переведённой строкой во время выполнения. Это полезно в ситуациях где переведённые строки не могут быть использованы напрямую, например в инициализаторах строковых массивов.
{ static const char *messages[] = { N_("некоторое очень значимое сообщение"), N_("и ещё одно") }; const char *string; ... string = index > 1 ? _("сообщение по умолчанию") : gettext (messages[index]); fputs (string); ... }
String : |
строка для перевода |
Начиная с версии 2.4
const gchar* g_strip_context (const gchar *msgid, const gchar *msgval);
Вспомогательная функция для поддержки
gettext()
(смотрите Q_()
).
msgid : |
строка |
msgval : |
другая строка |
Возвращает : | msgval , если msgval
не идентичен msgid и содержит
символ '|', в этом случае возвращается указатель на подстроку msgid после первого символа '|'.
|
Начиная с версии 2.4
const gchar* const * g_get_language_names (void);
Вычисляет список применимых имён локалей, которые могут быть использованы например для конструирования locale-зависимых имён файлов или поиска путей. Возвращаемый список сортируется от самого желательного до менее желательного и всегда содержит локаль по умолчанию "C".
Например, если LANGUAGE=de:en_US, то возвращаемый список будет "de", "en_US", "en", "C".
Эта функция консультируется с переменными окружения LANGUAGE
,
LC_ALL
, LC_MESSAGES
и LANG
для поиска списка локалей определённых пользователем.
Возвращает : | NULL -завершённый массив строк которыми владеет GLib
и они не должны освобождаться или изменяться.
|
Начиная с версии 2.6
Закладки на сайте Проследить за страницей |
Created 1996-2024 by Maxim Chirkov Добавить, Поддержать, Вебмастеру |