Solve the msgctxt problem a bit more elegantly, and add some hints about
* gtk/gtkstock.c: Solve the msgctxt problem a bit more
elegantly, and add some hints about this to the docs of
gtk_stock_set_translate_func. Proposed by Christian Persch
svn path=/trunk/; revision=22137
This commit is contained in:
@ -1,3 +1,11 @@
|
|||||||
|
2009-01-18 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
|
Bug 563280 – stock items & translation context
|
||||||
|
|
||||||
|
* gtk/gtkstock.c: Solve the msgctxt problem a bit more
|
||||||
|
elegantly, and add some hints about this to the docs of
|
||||||
|
gtk_stock_set_translate_func. Proposed by Christian Persch
|
||||||
|
|
||||||
2009-01-18 Matthias Clasen <mclasen@redhat.com>
|
2009-01-18 Matthias Clasen <mclasen@redhat.com>
|
||||||
|
|
||||||
Bug 568196 – Please change context of Forward stock label
|
Bug 568196 – Please change context of Forward stock label
|
||||||
|
|||||||
@ -429,8 +429,36 @@ static const GtkStockItem builtin_items [] =
|
|||||||
* If no function is registered for a translation domain,
|
* If no function is registered for a translation domain,
|
||||||
* g_dgettext() is used.
|
* g_dgettext() is used.
|
||||||
*
|
*
|
||||||
* Since: 2.8
|
* The function is used for all stock items whose
|
||||||
|
* @translation_domain matches @domain. Note that it is possible
|
||||||
|
* to use strings different from the actual gettext translation domain
|
||||||
|
* of your application for this, as long as your #GtkTranslateFunc uses
|
||||||
|
* the correct domain when calling dgettext(). This can be useful, e.g.
|
||||||
|
* when dealing with message contexts:
|
||||||
*
|
*
|
||||||
|
* |[
|
||||||
|
* GtkStockItem items[] = {
|
||||||
|
* { MY_ITEM1, NC_("odd items", "Item 1"), 0, 0, "odd-item-domain" },
|
||||||
|
* { MY_ITEM2, NC_("even items", "Item 2"), 0, 0, "even-item-domain" },
|
||||||
|
* };
|
||||||
|
*
|
||||||
|
* gchar *
|
||||||
|
* my_translate_func (const gchar *msgid,
|
||||||
|
* gpointer data)
|
||||||
|
* {
|
||||||
|
* gchar *msgctxt = data;
|
||||||
|
*
|
||||||
|
* return (gchar*)g_dpgettext2 (GETTEXT_PACKAGE, msgctxt, msgid);
|
||||||
|
* }
|
||||||
|
*
|
||||||
|
* /* ... &ast/
|
||||||
|
*
|
||||||
|
* gtk_stock_add (items, G_N_ELEMENTS (items));
|
||||||
|
* gtk_stock_set_translate_func ("odd-item-domain", my_translate_func, "odd-item-domain");
|
||||||
|
* gtk_stock_set_translate_func ("even-item-domain", my_translate_func, "even-item-domain");
|
||||||
|
* ]|
|
||||||
|
*
|
||||||
|
* Since: 2.8
|
||||||
*/
|
*/
|
||||||
void
|
void
|
||||||
gtk_stock_set_translate_func (const gchar *domain,
|
gtk_stock_set_translate_func (const gchar *domain,
|
||||||
@ -465,24 +493,11 @@ static gchar *
|
|||||||
sgettext_swapped (const gchar *msgid,
|
sgettext_swapped (const gchar *msgid,
|
||||||
gpointer data)
|
gpointer data)
|
||||||
{
|
{
|
||||||
return (gchar *)g_dpgettext2 ((const char *)data, "Stock label", msgid);
|
gchar *msgctxt = data;
|
||||||
}
|
|
||||||
|
|
||||||
static gchar *
|
return (gchar *)g_dpgettext2 (GETTEXT_PACKAGE, msgctxt, msgid);
|
||||||
sgettext_swapped_navigation (const gchar *msgid,
|
|
||||||
gpointer data)
|
|
||||||
{
|
|
||||||
return (gchar *)g_dpgettext2 ((const char *)data, "Stock label, navigation", msgid);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static gchar *
|
|
||||||
sgettext_swapped_media (const gchar *msgid,
|
|
||||||
gpointer data)
|
|
||||||
{
|
|
||||||
return (gchar *)g_dpgettext2 ((const char *)data, "Stock label, media", msgid);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
static void
|
static void
|
||||||
init_stock_hash (void)
|
init_stock_hash (void)
|
||||||
{
|
{
|
||||||
@ -500,15 +515,15 @@ init_stock_hash (void)
|
|||||||
|
|
||||||
gtk_stock_set_translate_func (GETTEXT_PACKAGE,
|
gtk_stock_set_translate_func (GETTEXT_PACKAGE,
|
||||||
sgettext_swapped,
|
sgettext_swapped,
|
||||||
GETTEXT_PACKAGE,
|
"Stock label",
|
||||||
NULL);
|
NULL);
|
||||||
gtk_stock_set_translate_func (GETTEXT_PACKAGE "-navigation",
|
gtk_stock_set_translate_func (GETTEXT_PACKAGE "-navigation",
|
||||||
sgettext_swapped_navigation,
|
sgettext_swapped,
|
||||||
GETTEXT_PACKAGE,
|
"Stock label, navigation",
|
||||||
NULL);
|
NULL);
|
||||||
gtk_stock_set_translate_func (GETTEXT_PACKAGE "-media",
|
gtk_stock_set_translate_func (GETTEXT_PACKAGE "-media",
|
||||||
sgettext_swapped_media,
|
sgettext_swapped,
|
||||||
GETTEXT_PACKAGE,
|
"Stock label, media",
|
||||||
NULL);
|
NULL);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user