Commit b795ca86 authored by William Jon McCann's avatar William Jon McCann Committed by William Jon McCann

First shot at a language chooser widget that uses locale archives and

2007-09-18  William Jon McCann  <mccann@jhu.edu>

	* configure.ac:
	* gui/simple-greeter/Makefile.am:
	* gui/simple-greeter/gdm-language-chooser-dialog.c:
	(gdm_language_chooser_dialog_get_current_language_name),
	(gdm_language_chooser_dialog_set_property),
	(gdm_language_chooser_dialog_get_property),
	(gdm_language_chooser_dialog_constructor),
	(gdm_language_chooser_dialog_dispose),
	(gdm_language_chooser_dialog_class_init), (on_response),
	(gdm_language_chooser_dialog_init),
	(gdm_language_chooser_dialog_finalize),
	(gdm_language_chooser_dialog_new):
	* gui/simple-greeter/gdm-language-chooser-dialog.h:
	* gui/simple-greeter/gdm-language-chooser-widget.c:
	(chooser_locale_free),
	(gdm_language_chooser_widget_get_current_language_name),
	(gdm_language_chooser_widget_set_property),
	(gdm_language_chooser_widget_get_property),
	(gdm_language_chooser_widget_constructor),
	(gdm_language_chooser_widget_dispose),
	(gdm_language_chooser_widget_class_init), (on_language_selected),
	(locale_exists), (utf8_convert), (get_lc_identification),
	(get_short_name_for_locale), (parse_short_name), (nameentcmp),
	(collect_locales_from_archive), (select_dirs),
	(collect_locales_from_directory), (collect_locales_from_aliases),
	(collect_locales), (on_row_activated), (get_translated_language),
	(get_language), (get_territory), (get_translated_territory),
	(languages_parse_start_tag), (territories_parse_start_tag),
	(languages_init), (territories_init), (add_locale_to_model),
	(populate_model), (gdm_language_chooser_widget_init),
	(gdm_language_chooser_widget_finalize),
	(gdm_language_chooser_widget_new):
	* gui/simple-greeter/gdm-language-chooser-widget.h:
	* gui/simple-greeter/langinfo.h:
	* gui/simple-greeter/libnotificationarea/Makefile.am:
	* gui/simple-greeter/locarchive.h:
	* gui/simple-greeter/test-language-chooser.c: (main):
	First shot at a language chooser widget that uses locale
	archives and iso-codes.


svn path=/branches/mccann-gobject/; revision=5283
parent 50803f76
2007-09-18 William Jon McCann <mccann@jhu.edu>
* configure.ac:
* gui/simple-greeter/Makefile.am:
* gui/simple-greeter/gdm-language-chooser-dialog.c:
(gdm_language_chooser_dialog_get_current_language_name),
(gdm_language_chooser_dialog_set_property),
(gdm_language_chooser_dialog_get_property),
(gdm_language_chooser_dialog_constructor),
(gdm_language_chooser_dialog_dispose),
(gdm_language_chooser_dialog_class_init), (on_response),
(gdm_language_chooser_dialog_init),
(gdm_language_chooser_dialog_finalize),
(gdm_language_chooser_dialog_new):
* gui/simple-greeter/gdm-language-chooser-dialog.h:
* gui/simple-greeter/gdm-language-chooser-widget.c:
(chooser_locale_free),
(gdm_language_chooser_widget_get_current_language_name),
(gdm_language_chooser_widget_set_property),
(gdm_language_chooser_widget_get_property),
(gdm_language_chooser_widget_constructor),
(gdm_language_chooser_widget_dispose),
(gdm_language_chooser_widget_class_init), (on_language_selected),
(locale_exists), (utf8_convert), (get_lc_identification),
(get_short_name_for_locale), (parse_short_name), (nameentcmp),
(collect_locales_from_archive), (select_dirs),
(collect_locales_from_directory), (collect_locales_from_aliases),
(collect_locales), (on_row_activated), (get_translated_language),
(get_language), (get_territory), (get_translated_territory),
(languages_parse_start_tag), (territories_parse_start_tag),
(languages_init), (territories_init), (add_locale_to_model),
(populate_model), (gdm_language_chooser_widget_init),
(gdm_language_chooser_widget_finalize),
(gdm_language_chooser_widget_new):
* gui/simple-greeter/gdm-language-chooser-widget.h:
* gui/simple-greeter/langinfo.h:
* gui/simple-greeter/libnotificationarea/Makefile.am:
* gui/simple-greeter/locarchive.h:
* gui/simple-greeter/test-language-chooser.c: (main):
First shot at a language chooser widget that uses locale
archives and iso-codes.
2007-09-13 William Jon McCann <mccann@jhu.edu>
* gui/simple-greeter/Makefile.am:
......
......@@ -677,7 +677,7 @@ if test "x$XINPUT_LIBS" = x; then
done
if test "x$XINPUT_LIBS" = x; then
AC_MSG_ERROR(Couldn't find the XInput library. Check config.log for details)
fi
fi
fi
AC_CHECK_HEADER(X11/extensions/XInput.h, have_xinput=yes)
if test "x$have_xinput" = xyes; then
......@@ -852,6 +852,18 @@ else
fi
AC_SUBST(DBUS_SYS_DIR)
dnl ---------------------------------------------------------------------------
dnl - ISO Codes checks
dnl ---------------------------------------------------------------------------
AC_MSG_CHECKING([whether iso-codes has iso-639 domain])
if $PKG_CONFIG --variable=domains iso-codes | grep 639 >/dev/null ; then
AC_MSG_RESULT([yes])
else
AC_MSG_RESULT([no])
fi
AC_DEFINE_UNQUOTED([ISO_CODES_PREFIX],["`$PKG_CONFIG --variable=prefix iso-codes`"],[ISO codes prefix])
ISO_CODES=iso-codes
#
# Define some variables to represent the directories we use.
......@@ -1307,7 +1319,6 @@ gui/Makefile
gui/modules/Makefile
gui/simple-greeter/Makefile
gui/simple-greeter/libnotificationarea/Makefile
gui/simple-greeter/libbackground/Makefile
gui/simple-chooser/Makefile
utils/Makefile
data/Makefile
......
......@@ -8,17 +8,13 @@ INCLUDES = \
-I$(top_srcdir)/common \
-I$(top_srcdir)/libgreeter \
-I$(top_srcdir)/gui/simple-greeter/libnotificationarea \
-DAUTHDIR=\""$(authdir)"\" \
-DGDMCONFDIR=\"$(gdmconfdir)\" \
-DDATADIR=\""$(datadir)"\" \
-DGDMCONFDIR=\"$(gdmconfdir)\" \
-DDMCONFDIR=\""$(dmconfdir)"\" \
-DGDM_CONFIG_FILE=\"$(gdmconfdir)/gdm.conf\" \
-DGDMLOCALEDIR=\""$(gdmlocaledir)"\" \
-DLIBLOCALEDIR=\""$(libdir)/locale"\" \
-DGNOMELOCALEDIR=\""$(datadir)/locale"\" \
-DGLADEDIR=\""$(pkgdatadir)"\" \
-DLIBEXECDIR=\""$(libexecdir)"\" \
-DSBINDIR=\""$(sbindir)"\" \
-DPIXMAPDIR=\""$(pixmapdir)"\" \
$(GUI_CFLAGS) \
$(DBUS_CFLAGS) \
$(GREETER_CFLAGS) \
......@@ -28,6 +24,7 @@ INCLUDES = \
noinst_PROGRAMS = \
test-greeter-background \
test-greeter-panel \
test-language-chooser \
$(NULL)
test_greeter_background_SOURCES = \
......@@ -52,6 +49,18 @@ test_greeter_panel_LDADD = \
$(GUI_LIBS) \
$(NULL)
test_language_chooser_SOURCES = \
test-language-chooser.c \
gdm-language-chooser-widget.h \
gdm-language-chooser-widget.c \
gdm-language-chooser-dialog.h \
gdm-language-chooser-dialog.c \
$(NULL)
test_language_chooser_LDADD = \
$(GUI_LIBS) \
$(NULL)
libexec_PROGRAMS = \
gdm-simple-greeter
......
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
*
* Copyright (C) 2007 William Jon McCann <mccann@jhu.edu>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
*/
#include "config.h"
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <glib.h>
#include <glib/gi18n.h>
#include <glib-object.h>
#include <gtk/gtk.h>
#include "gdm-language-chooser-widget.h"
#include "gdm-language-chooser-dialog.h"
#define GDM_LANGUAGE_CHOOSER_DIALOG_GET_PRIVATE(o) (G_TYPE_INSTANCE_GET_PRIVATE ((o), GDM_TYPE_LANGUAGE_CHOOSER_DIALOG, GdmLanguageChooserDialogPrivate))
struct GdmLanguageChooserDialogPrivate
{
GtkWidget *chooser_widget;
};
enum {
PROP_0,
};
static void gdm_language_chooser_dialog_class_init (GdmLanguageChooserDialogClass *klass);
static void gdm_language_chooser_dialog_init (GdmLanguageChooserDialog *language_chooser_dialog);
static void gdm_language_chooser_dialog_finalize (GObject *object);
G_DEFINE_TYPE (GdmLanguageChooserDialog, gdm_language_chooser_dialog, GTK_TYPE_DIALOG)
char *
gdm_language_chooser_dialog_get_current_language_name (GdmLanguageChooserDialog *dialog)
{
char *language_name;
g_return_val_if_fail (GDM_IS_LANGUAGE_CHOOSER_DIALOG (dialog), NULL);
language_name = gdm_language_chooser_widget_get_current_language_name (GDM_LANGUAGE_CHOOSER_WIDGET (dialog->priv->chooser_widget));
return language_name;
}
static void
gdm_language_chooser_dialog_set_property (GObject *object,
guint prop_id,
const GValue *value,
GParamSpec *pspec)
{
GdmLanguageChooserDialog *self;
self = GDM_LANGUAGE_CHOOSER_DIALOG (object);
switch (prop_id) {
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
static void
gdm_language_chooser_dialog_get_property (GObject *object,
guint prop_id,
GValue *value,
GParamSpec *pspec)
{
GdmLanguageChooserDialog *self;
self = GDM_LANGUAGE_CHOOSER_DIALOG (object);
switch (prop_id) {
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
break;
}
}
static GObject *
gdm_language_chooser_dialog_constructor (GType type,
guint n_construct_properties,
GObjectConstructParam *construct_properties)
{
GdmLanguageChooserDialog *language_chooser_dialog;
GdmLanguageChooserDialogClass *klass;
klass = GDM_LANGUAGE_CHOOSER_DIALOG_CLASS (g_type_class_peek (GDM_TYPE_LANGUAGE_CHOOSER_DIALOG));
language_chooser_dialog = GDM_LANGUAGE_CHOOSER_DIALOG (G_OBJECT_CLASS (gdm_language_chooser_dialog_parent_class)->constructor (type,
n_construct_properties,
construct_properties));
return G_OBJECT (language_chooser_dialog);
}
static void
gdm_language_chooser_dialog_dispose (GObject *object)
{
GdmLanguageChooserDialog *language_chooser_dialog;
language_chooser_dialog = GDM_LANGUAGE_CHOOSER_DIALOG (object);
g_debug ("Disposing language_chooser_dialog");
G_OBJECT_CLASS (gdm_language_chooser_dialog_parent_class)->dispose (object);
}
static void
gdm_language_chooser_dialog_class_init (GdmLanguageChooserDialogClass *klass)
{
GObjectClass *object_class = G_OBJECT_CLASS (klass);
object_class->get_property = gdm_language_chooser_dialog_get_property;
object_class->set_property = gdm_language_chooser_dialog_set_property;
object_class->constructor = gdm_language_chooser_dialog_constructor;
object_class->dispose = gdm_language_chooser_dialog_dispose;
object_class->finalize = gdm_language_chooser_dialog_finalize;
g_type_class_add_private (klass, sizeof (GdmLanguageChooserDialogPrivate));
}
static void
on_response (GdmLanguageChooserDialog *dialog,
gint response_id)
{
switch (response_id) {
default:
break;
}
}
static void
gdm_language_chooser_dialog_init (GdmLanguageChooserDialog *dialog)
{
dialog->priv = GDM_LANGUAGE_CHOOSER_DIALOG_GET_PRIVATE (dialog);
dialog->priv->chooser_widget = gdm_language_chooser_widget_new ();
gtk_container_add (GTK_CONTAINER (GTK_DIALOG (dialog)->vbox), dialog->priv->chooser_widget);
gtk_dialog_add_buttons (GTK_DIALOG (dialog),
GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
GTK_STOCK_OK, GTK_RESPONSE_OK,
NULL);
g_signal_connect (dialog,
"response",
G_CALLBACK (on_response),
dialog);
gtk_widget_show_all (GTK_WIDGET (dialog));
}
static void
gdm_language_chooser_dialog_finalize (GObject *object)
{
GdmLanguageChooserDialog *language_chooser_dialog;
g_return_if_fail (object != NULL);
g_return_if_fail (GDM_IS_LANGUAGE_CHOOSER_DIALOG (object));
language_chooser_dialog = GDM_LANGUAGE_CHOOSER_DIALOG (object);
g_return_if_fail (language_chooser_dialog->priv != NULL);
G_OBJECT_CLASS (gdm_language_chooser_dialog_parent_class)->finalize (object);
}
GtkWidget *
gdm_language_chooser_dialog_new (void)
{
GObject *object;
object = g_object_new (GDM_TYPE_LANGUAGE_CHOOSER_DIALOG,
NULL);
return GTK_WIDGET (object);
}
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
*
* Copyright (C) 2007 William Jon McCann <mccann@jhu.edu>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
*/
#ifndef __GDM_LANGUAGE_CHOOSER_DIALOG_H
#define __GDM_LANGUAGE_CHOOSER_DIALOG_H
#include <glib-object.h>
#include <gtk/gtkdialog.h>
G_BEGIN_DECLS
#define GDM_TYPE_LANGUAGE_CHOOSER_DIALOG (gdm_language_chooser_dialog_get_type ())
#define GDM_LANGUAGE_CHOOSER_DIALOG(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDM_TYPE_LANGUAGE_CHOOSER_DIALOG, GdmLanguageChooserDialog))
#define GDM_LANGUAGE_CHOOSER_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GDM_TYPE_LANGUAGE_CHOOSER_DIALOG, GdmLanguageChooserDialogClass))
#define GDM_IS_LANGUAGE_CHOOSER_DIALOG(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDM_TYPE_LANGUAGE_CHOOSER_DIALOG))
#define GDM_IS_LANGUAGE_CHOOSER_DIALOG_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GDM_TYPE_LANGUAGE_CHOOSER_DIALOG))
#define GDM_LANGUAGE_CHOOSER_DIALOG_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDM_TYPE_LANGUAGE_CHOOSER_DIALOG, GdmLanguageChooserDialogClass))
typedef struct GdmLanguageChooserDialogPrivate GdmLanguageChooserDialogPrivate;
typedef struct
{
GtkDialog parent;
GdmLanguageChooserDialogPrivate *priv;
} GdmLanguageChooserDialog;
typedef struct
{
GtkDialogClass parent_class;
} GdmLanguageChooserDialogClass;
GType gdm_language_chooser_dialog_get_type (void);
GtkWidget * gdm_language_chooser_dialog_new (void);
char * gdm_language_chooser_dialog_get_current_language_name (GdmLanguageChooserDialog *dialog);
G_END_DECLS
#endif /* __GDM_LANGUAGE_CHOOSER_DIALOG_H */
This diff is collapsed.
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
*
* Copyright (C) 2007 William Jon McCann <mccann@jhu.edu>
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*
*/
#ifndef __GDM_LANGUAGE_CHOOSER_WIDGET_H
#define __GDM_LANGUAGE_CHOOSER_WIDGET_H
#include <glib-object.h>
#include <gtk/gtkvbox.h>
G_BEGIN_DECLS
#define GDM_TYPE_LANGUAGE_CHOOSER_WIDGET (gdm_language_chooser_widget_get_type ())
#define GDM_LANGUAGE_CHOOSER_WIDGET(o) (G_TYPE_CHECK_INSTANCE_CAST ((o), GDM_TYPE_LANGUAGE_CHOOSER_WIDGET, GdmLanguageChooserWidget))
#define GDM_LANGUAGE_CHOOSER_WIDGET_CLASS(k) (G_TYPE_CHECK_CLASS_CAST((k), GDM_TYPE_LANGUAGE_CHOOSER_WIDGET, GdmLanguageChooserWidgetClass))
#define GDM_IS_LANGUAGE_CHOOSER_WIDGET(o) (G_TYPE_CHECK_INSTANCE_TYPE ((o), GDM_TYPE_LANGUAGE_CHOOSER_WIDGET))
#define GDM_IS_LANGUAGE_CHOOSER_WIDGET_CLASS(k) (G_TYPE_CHECK_CLASS_TYPE ((k), GDM_TYPE_LANGUAGE_CHOOSER_WIDGET))
#define GDM_LANGUAGE_CHOOSER_WIDGET_GET_CLASS(o) (G_TYPE_INSTANCE_GET_CLASS ((o), GDM_TYPE_LANGUAGE_CHOOSER_WIDGET, GdmLanguageChooserWidgetClass))
typedef struct GdmLanguageChooserWidgetPrivate GdmLanguageChooserWidgetPrivate;
typedef struct
{
GtkVBox parent;
GdmLanguageChooserWidgetPrivate *priv;
} GdmLanguageChooserWidget;
typedef struct
{
GtkVBoxClass parent_class;
/* signals */
void (* language_activated) (GdmLanguageChooserWidget *widget);
} GdmLanguageChooserWidgetClass;
GType gdm_language_chooser_widget_get_type (void);
GtkWidget * gdm_language_chooser_widget_new (void);
char * gdm_language_chooser_widget_get_current_language_name (GdmLanguageChooserWidget *widget);
G_END_DECLS
#endif /* __GDM_LANGUAGE_CHOOSER_WIDGET_H */
/* Access to locale-dependent parameters.
Copyright (C) 1995-2002,2003,2004,2005 Free Software Foundation, Inc.
This file is part of the GNU C Library.
The GNU C Library is free software; you can redistribute it and/or
modify it under the terms of the GNU Lesser General Public
License as published by the Free Software Foundation; either
version 2.1 of the License, or (at your option) any later version.
The GNU C Library is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with the GNU C Library; if not, write to the Free
Software Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA
02111-1307 USA. */
#ifndef _LANGINFO_H
#define _LANGINFO_H 1
/* Get the type definition. */
#include <nl_types.h>
#include <bits/locale.h> /* Define the __LC_* category names. */
__BEGIN_DECLS
/* Construct an `nl_item' value for `nl_langinfo' from a locale category
(LC_*) and an item index within the category. Some code may depend on
the item values within a category increasing monotonically with the
indices. */
#define _NL_ITEM(category, index) (((category) << 16) | (index))
/* Extract the category and item index from a constructed `nl_item' value. */
#define _NL_ITEM_CATEGORY(item) ((int) (item) >> 16)
#define _NL_ITEM_INDEX(item) ((int) (item) & 0xffff)
/* Enumeration of locale items that can be queried with `nl_langinfo'. */
enum
{
/* LC_TIME category: date and time formatting. */
/* Abbreviated days of the week. */
ABDAY_1 = _NL_ITEM (__LC_TIME, 0), /* Sun */
#define ABDAY_1 ABDAY_1
ABDAY_2,
#define ABDAY_2 ABDAY_2
ABDAY_3,
#define ABDAY_3 ABDAY_3
ABDAY_4,
#define ABDAY_4 ABDAY_4
ABDAY_5,
#define ABDAY_5 ABDAY_5
ABDAY_6,
#define ABDAY_6 ABDAY_6
ABDAY_7,
#define ABDAY_7 ABDAY_7
/* Long-named days of the week. */
DAY_1, /* Sunday */
#define DAY_1 DAY_1
DAY_2, /* Monday */
#define DAY_2 DAY_2
DAY_3, /* Tuesday */
#define DAY_3 DAY_3
DAY_4, /* Wednesday */
#define DAY_4 DAY_4
DAY_5, /* Thursday */
#define DAY_5 DAY_5
DAY_6, /* Friday */
#define DAY_6 DAY_6
DAY_7, /* Saturday */
#define DAY_7 DAY_7
/* Abbreviated month names. */
ABMON_1, /* Jan */
#define ABMON_1 ABMON_1
ABMON_2,
#define ABMON_2 ABMON_2
ABMON_3,
#define ABMON_3 ABMON_3
ABMON_4,
#define ABMON_4 ABMON_4
ABMON_5,
#define ABMON_5 ABMON_5
ABMON_6,
#define ABMON_6 ABMON_6
ABMON_7,
#define ABMON_7 ABMON_7
ABMON_8,
#define ABMON_8 ABMON_8
ABMON_9,
#define ABMON_9 ABMON_9
ABMON_10,
#define ABMON_10 ABMON_10
ABMON_11,
#define ABMON_11 ABMON_11
ABMON_12,
#define ABMON_12 ABMON_12
/* Long month names. */
MON_1, /* January */
#define MON_1 MON_1
MON_2,
#define MON_2 MON_2
MON_3,
#define MON_3 MON_3
MON_4,
#define MON_4 MON_4
MON_5,
#define MON_5 MON_5
MON_6,
#define MON_6 MON_6
MON_7,
#define MON_7 MON_7
MON_8,
#define MON_8 MON_8
MON_9,
#define MON_9 MON_9
MON_10,
#define MON_10 MON_10
MON_11,
#define MON_11 MON_11
MON_12,
#define MON_12 MON_12
AM_STR, /* Ante meridiem string. */
#define AM_STR AM_STR
PM_STR, /* Post meridiem string. */
#define PM_STR PM_STR
D_T_FMT, /* Date and time format for strftime. */
#define D_T_FMT D_T_FMT
D_FMT, /* Date format for strftime. */
#define D_FMT D_FMT
T_FMT, /* Time format for strftime. */
#define T_FMT T_FMT
T_FMT_AMPM, /* 12-hour time format for strftime. */
#define T_FMT_AMPM T_FMT_AMPM
ERA, /* Alternate era. */
#define ERA ERA
__ERA_YEAR, /* Year in alternate era format. */
#ifdef __USE_GNU
# define ERA_YEAR __ERA_YEAR
#endif
ERA_D_FMT, /* Date in alternate era format. */
#define ERA_D_FMT ERA_D_FMT
ALT_DIGITS, /* Alternate symbols for digits. */
#define ALT_DIGITS ALT_DIGITS
ERA_D_T_FMT, /* Date and time in alternate era format. */
#define ERA_D_T_FMT ERA_D_T_FMT
ERA_T_FMT, /* Time in alternate era format. */
#define ERA_T_FMT ERA_T_FMT
_NL_TIME_ERA_NUM_ENTRIES, /* Number entries in the era arrays. */
_NL_TIME_ERA_ENTRIES, /* Structure with era entries in usable form.*/
_NL_WABDAY_1, /* Sun */
_NL_WABDAY_2,
_NL_WABDAY_3,
_NL_WABDAY_4,
_NL_WABDAY_5,
_NL_WABDAY_6,
_NL_WABDAY_7,
/* Long-named days of the week. */
_NL_WDAY_1, /* Sunday */
_NL_WDAY_2, /* Monday */
_NL_WDAY_3, /* Tuesday */
_NL_WDAY_4, /* Wednesday */
_NL_WDAY_5, /* Thursday */
_NL_WDAY_6, /* Friday */
_NL_WDAY_7, /* Saturday */
/* Abbreviated month names. */
_NL_WABMON_1, /* Jan */
_NL_WABMON_2,
_NL_WABMON_3,
_NL_WABMON_4,
_NL_WABMON_5,
_NL_WABMON_6,
_NL_WABMON_7,
_NL_WABMON_8,
_NL_WABMON_9,
_NL_WABMON_10,
_NL_WABMON_11,
_NL_WABMON_12,
/* Long month names. */
_NL_WMON_1, /* January */
_NL_WMON_2,
_NL_WMON_3,
_NL_WMON_4,
_NL_WMON_5,
_NL_WMON_6,
_NL_WMON_7,
_NL_WMON_8,
_NL_WMON_9,
_NL_WMON_10,
_NL_WMON_11,
_NL_WMON_12,
_NL_WAM_STR, /* Ante meridiem string. */
_NL_WPM_STR, /* Post meridiem string. */
_NL_WD_T_FMT, /* Date and time format for strftime. */
_NL_WD_FMT, /* Date format for strftime. */
_NL_WT_FMT, /* Time format for strftime. */
_NL_WT_FMT_AMPM, /* 12-hour time format for strftime. */
_NL_WERA_YEAR, /* Year in alternate era format. */
_NL_WERA_D_FMT, /* Date in alternate era format. */
_NL_WALT_DIGITS, /* Alternate symbols for digits. */
_NL_WERA_D_T_FMT, /* Date and time in alternate era format. */
_NL_WERA_T_FMT, /* Time in alternate era format. */
_NL_TIME_WEEK_NDAYS,
_NL_TIME_WEEK_1STDAY,
_NL_TIME_WEEK_1STWEEK,
_NL_TIME_FIRST_WEEKDAY,
_NL_TIME_FIRST_WORKDAY,
_NL_TIME_CAL_DIRECTION,
_NL_TIME_TIMEZONE,
_DATE_FMT, /* strftime format for date. */
#define _DATE_FMT _DATE_FMT
_NL_W_DATE_FMT,
_NL_TIME_CODESET,
_NL_NUM_LC_TIME, /* Number of indices in LC_TIME category. */
/* LC_COLLATE category: text sorting.
This information is accessed by the strcoll and strxfrm functions.
These `nl_langinfo' names are used only internally. */
_NL_COLLATE_NRULES = _NL_ITEM (__LC_COLLATE, 0),
_NL_COLLATE_RULESETS,
_NL_COLLATE_TABLEMB,
_NL_COLLATE_WEIGHTMB,
_NL_COLLATE_EXTRAMB,
_NL_COLLATE_INDIRECTMB,
_NL_COLLATE_GAP1,
_NL_COLLATE_GAP2,
_NL_COLLATE_GAP3,
_NL_COLLATE_TABLEWC,
_NL_COLLATE_WEIGHTWC,
_NL_COLLATE_EXTRAWC,
_NL_COLLATE_INDIRECTWC,
_NL_COLLATE_SYMB_HASH_SIZEMB,
_NL_COLLATE_SYMB_TABLEMB,
_NL_COLLATE_SYMB_EXTRAMB,
_NL_COLLATE_COLLSEQMB,
_NL_COLLATE_COLLSEQWC,
_NL_COLLATE_CODESET,
_NL_NUM_LC_COLLATE,
/* LC_CTYPE category: character classification.
This information is accessed by the functions in <ctype.h>.
These `nl_langinfo' names are used only internally. */
_NL_CTYPE_CLASS = _NL_ITEM (__LC_CTYPE, 0),
_NL_CTYPE_TOUPPER,
_NL_CTYPE_GAP1,
_NL_CTYPE_TOLOWER,
_NL_CTYPE_GAP2,
_NL_CTYPE_CLASS32,
_NL_CTYPE_GAP3,
_NL_CTYPE_GAP4,
_NL_CTYPE_GAP5,
_NL_CTYPE_GAP6,
_NL_CTYPE_CLASS_NAMES,
_NL_CTYPE_MAP_NAMES,
_NL_CTYPE_WIDTH,
_NL_CTYPE_MB_CUR_MAX,
_NL_CTYPE_CODESET_NAME,
CODESET = _NL_CTYPE_CODESET_NAME,
#define CODESET CODESET
_NL_CTYPE_TOUPPER32,
_NL_CTYPE_TOLOWER32,
_NL_CTYPE_CLASS_OFFSET,
_NL_CTYPE_MAP_OFFSET,
_NL_CTYPE_INDIGITS_MB_LEN,
_NL_CTYPE_INDIGITS0_MB,
_NL_CTYPE_INDIGITS1_MB,
_NL_CTYPE_INDIGITS2_MB,
_NL_CTYPE_INDIGITS3_MB,
_NL_CTYPE_INDIGITS4_MB,
_NL_CTYPE_INDIGITS5_MB,
_NL_CTYPE_INDIGITS6_MB,
_NL_CTYPE_INDIGITS7_MB,
_NL_CTYPE_INDIGITS8_MB,
_NL_CTYPE_INDIGITS9_MB,
_NL_CTYPE_INDIGITS_WC_LEN,
_NL_CTYPE_INDIGITS0_WC,
_NL_CTYPE_INDIGITS1_WC,
_NL_CTYPE_INDIGITS2_WC,
_NL_CTYPE_INDIGITS3_WC,
_NL_CTYPE_INDIGITS4_WC,
_NL_CTYPE_INDIGITS5_WC,