Internationalization
gettext support macros.
GLib doesn't force any particular localization method upon its users.
But since GLib itself is localized using the gettext() mechanism, it seems
natural to offer the de-facto standard gettext() support macros in an
easy-to-use form.
In order to use these macros in an application, you must include
glib/gi18n.h. For use in a library, must include
glib/gi18n-lib.h after defining
the GETTEXT_PACKAGE macro suitably for your library:
#define GETTEXT_PACKAGE "gtk20"
#include <glib/gi18n-lib.h>
The gettext manual.
Marks a string for translation, gets replaced with the translated string
at runtime.
@String: the string to be translated
@Since: 2.4
Like _(), but applies g_strip_context() to the translation. This has the
advantage that the string can be adorned with a prefix to guarantee
uniqueness and provide context to the translator.
One use case given in the gettext manual is GUI translation, where one could
e.g. disambiguate two "Open" menu entries as "File|Open" and "Printer|Open".
Another use case is the string "Russian" which may have to be translated
differently depending on whether it's the name of a character set or a
language. This could be solved by using "charset|Russian" and
"language|Russian".
@String: the string to be translated, with a '|'-separated prefix which
must not be translated
@Since: 2.4
Marks a string for translation, gets replaced with the untranslated string
at runtime. This is useful in situations where the translated strings can't
be directly used, e.g. in string array initializers.
{
static const char *messages[] = {
N_("some very meaningful message"),
N_("and another one")
};
const char *string;
...
string
= index > 1 ? _("a default message") : gettext (messages[index]);
fputs (string);
...
}
@String: the string to be translated
@Since: 2.4
@msgid:
@msgval:
@Returns: