datetime: Translate timezone names
Both Cities and Regions need to be translated. Also make sure that we sort them properly, and use symbolic names for COLUMNS in the region liststore. https://bugzilla.gnome.org/show_bug.cgi?id=630264
This commit is contained in:
parent
a635c0b646
commit
189766a634
77 changed files with 230068 additions and 21 deletions
|
@ -327,6 +327,7 @@ panels/background/Makefile
|
|||
panels/background/gnome-background-panel.desktop.in
|
||||
panels/datetime/Makefile
|
||||
panels/datetime/gnome-datetime-panel.desktop.in
|
||||
panels/datetime/po-timezones/Makefile
|
||||
panels/default-applications/Makefile
|
||||
panels/default-applications/gnome-at-commandline.in
|
||||
panels/default-applications/gnome-at-session.desktop.in
|
||||
|
|
|
@ -1,6 +1,8 @@
|
|||
# This is used in GNOMECC_CAPPLETS_CFLAGS
|
||||
cappletname = datetime
|
||||
|
||||
SUBDIRS = po-timezones
|
||||
|
||||
icons16dir = $(datadir)/icons/hicolor/16x16/apps
|
||||
dist_icons16_DATA = icons/16x16/preferences-system-time.png
|
||||
icons22dir = $(datadir)/icons/hicolor/22x22/apps
|
||||
|
|
|
@ -26,6 +26,9 @@
|
|||
#include <gsettings-desktop-schemas/gdesktop-enums.h>
|
||||
#include <string.h>
|
||||
#include <stdlib.h>
|
||||
#include <libintl.h>
|
||||
|
||||
#define GETTEXT_PACKAGE_TIMEZONES GETTEXT_PACKAGE "-timezones"
|
||||
|
||||
G_DEFINE_DYNAMIC_TYPE (CcDateTimePanel, cc_date_time_panel, CC_TYPE_PANEL)
|
||||
|
||||
|
@ -35,10 +38,18 @@ G_DEFINE_DYNAMIC_TYPE (CcDateTimePanel, cc_date_time_panel, CC_TYPE_PANEL)
|
|||
enum {
|
||||
CITY_COL_CITY,
|
||||
CITY_COL_REGION,
|
||||
CITY_COL_CITY_TRANSLATED,
|
||||
CITY_COL_REGION_TRANSLATED,
|
||||
CITY_COL_ZONE,
|
||||
CITY_NUM_COLS
|
||||
};
|
||||
|
||||
enum {
|
||||
REGION_COL_REGION,
|
||||
REGION_COL_REGION_TRANSLATED,
|
||||
REGION_NUM_COLS
|
||||
};
|
||||
|
||||
#define W(x) (GtkWidget*) gtk_builder_get_object (priv->builder, x)
|
||||
|
||||
#define CLOCK_SCHEMA "org.gnome.desktop.interface"
|
||||
|
@ -317,7 +328,7 @@ location_changed_cb (CcTimezoneMap *map,
|
|||
{
|
||||
gchar *string;
|
||||
|
||||
gtk_tree_model_get (model, &iter, 0, &string, -1);
|
||||
gtk_tree_model_get (model, &iter, CITY_COL_CITY, &string, -1);
|
||||
|
||||
if (!g_strcmp0 (string, split[0]))
|
||||
{
|
||||
|
@ -340,7 +351,7 @@ location_changed_cb (CcTimezoneMap *map,
|
|||
{
|
||||
gchar *string;
|
||||
|
||||
gtk_tree_model_get (model, &iter, 0, &string, -1);
|
||||
gtk_tree_model_get (model, &iter, CITY_COL_CITY, &string, -1);
|
||||
|
||||
if (!g_strcmp0 (string, split[1]))
|
||||
{
|
||||
|
@ -374,32 +385,53 @@ struct get_region_data
|
|||
GHashTable *table;
|
||||
};
|
||||
|
||||
/* Slash look-alikes that might be used in translations */
|
||||
#define TRANSLATION_SPLIT \
|
||||
"\x20\x44" /* FRACTION SLASH */ \
|
||||
"\x22\x15" /* DIVISION SLASH */ \
|
||||
"\x29\xF8" /* BIG SOLIDUS */ \
|
||||
"\xFF\x0F" /* FULLWIDTH SOLIDUS */ \
|
||||
"/"
|
||||
|
||||
static void
|
||||
get_regions (TzLocation *loc,
|
||||
struct get_region_data *data)
|
||||
{
|
||||
gchar **split;
|
||||
gchar **split_translated;
|
||||
|
||||
split = g_strsplit (loc->zone, "/", 2);
|
||||
|
||||
/* remove underscores */
|
||||
g_strdelimit (split[1], "_", ' ');
|
||||
|
||||
/* Load the translation for it */
|
||||
split_translated = g_strsplit_set (dgettext (GETTEXT_PACKAGE_TIMEZONES, loc->zone),
|
||||
TRANSLATION_SPLIT, 2);
|
||||
|
||||
/* remove underscores */
|
||||
g_strdelimit (split_translated[1], "_", ' ');
|
||||
|
||||
if (!g_hash_table_lookup_extended (data->table, split[0], NULL, NULL))
|
||||
{
|
||||
g_hash_table_insert (data->table, g_strdup (split[0]),
|
||||
GINT_TO_POINTER (1));
|
||||
gtk_list_store_insert_with_values (data->region_store, NULL, 0, 0,
|
||||
split[0], -1);
|
||||
gtk_list_store_insert_with_values (data->region_store, NULL, 0,
|
||||
REGION_COL_REGION, split[0],
|
||||
REGION_COL_REGION_TRANSLATED, split_translated[0], -1);
|
||||
}
|
||||
|
||||
|
||||
gtk_list_store_insert_with_values (data->city_store, NULL, 0,
|
||||
CITY_COL_CITY, split[1],
|
||||
CITY_COL_CITY_TRANSLATED, split_translated[1],
|
||||
CITY_COL_REGION, split[0],
|
||||
CITY_COL_REGION_TRANSLATED, split_translated[0],
|
||||
CITY_COL_ZONE, loc->zone,
|
||||
-1);
|
||||
|
||||
g_strfreev (split);
|
||||
g_strfreev (split_translated);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
|
@ -457,7 +489,8 @@ load_regions_model (GtkListStore *regions, GtkListStore *cities)
|
|||
tz_db_free (db);
|
||||
|
||||
/* sort the models */
|
||||
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (regions), 0,
|
||||
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (regions),
|
||||
REGION_COL_REGION_TRANSLATED,
|
||||
GTK_SORT_ASCENDING);
|
||||
}
|
||||
|
||||
|
@ -671,7 +704,7 @@ cc_date_time_panel_init (CcDateTimePanel *self)
|
|||
city_modelfilter);
|
||||
|
||||
city_modelsort = GTK_TREE_MODEL_SORT (gtk_builder_get_object (priv->builder, "city-modelsort"));
|
||||
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (city_modelsort), 0,
|
||||
gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (city_modelsort), CITY_COL_CITY_TRANSLATED,
|
||||
GTK_SORT_ASCENDING);
|
||||
|
||||
gtk_tree_model_filter_set_visible_func (city_modelfilter,
|
||||
|
|
|
@ -25,12 +25,17 @@
|
|||
|
||||
#include <glib/gi18n-lib.h>
|
||||
|
||||
#define GETTEXT_PACKAGE_TIMEZONES GETTEXT_PACKAGE "-timezones"
|
||||
|
||||
void
|
||||
g_io_module_load (GIOModule *module)
|
||||
{
|
||||
bindtextdomain (GETTEXT_PACKAGE, GNOMELOCALEDIR);
|
||||
bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
|
||||
|
||||
bindtextdomain (GETTEXT_PACKAGE_TIMEZONES, GNOMELOCALEDIR);
|
||||
bind_textdomain_codeset (GETTEXT_PACKAGE_TIMEZONES, "UTF-8");
|
||||
|
||||
/* register the panel */
|
||||
cc_date_time_panel_register (module);
|
||||
}
|
||||
|
|
|
@ -59,7 +59,7 @@
|
|||
<child>
|
||||
<object class="GtkCellRendererText" id="cellrenderertext1"/>
|
||||
<attributes>
|
||||
<attribute name="text">0</attribute>
|
||||
<attribute name="text">1</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
|
@ -81,11 +81,11 @@
|
|||
<child>
|
||||
<object class="GtkComboBox" id="city_combobox">
|
||||
<property name="visible">True</property>
|
||||
<property name="model">city-modelfilter</property>
|
||||
<property name="model">city-modelsort</property>
|
||||
<child>
|
||||
<object class="GtkCellRendererText" id="cellrenderertext2"/>
|
||||
<attributes>
|
||||
<attribute name="text">0</attribute>
|
||||
<attribute name="text">2</attribute>
|
||||
</attributes>
|
||||
</child>
|
||||
</object>
|
||||
|
@ -438,6 +438,8 @@
|
|||
<columns>
|
||||
<!-- column-name region -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name region-translated -->
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
</object>
|
||||
<object class="GtkListStore" id="city-liststore">
|
||||
|
@ -446,6 +448,10 @@
|
|||
<column type="gchararray"/>
|
||||
<!-- column-name region -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name city-translated -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name region-translated -->
|
||||
<column type="gchararray"/>
|
||||
<!-- column-name zone -->
|
||||
<column type="gchararray"/>
|
||||
</columns>
|
||||
|
|
25
panels/datetime/po-timezones/Makefile.am
Normal file
25
panels/datetime/po-timezones/Makefile.am
Normal file
|
@ -0,0 +1,25 @@
|
|||
CATALOGS = $(patsubst %.po,%.mo,$(wildcard *.po))
|
||||
|
||||
all: $(CATALOGS)
|
||||
|
||||
NLSPACKAGE = $(GETTEXT_PACKAGE)-timezones
|
||||
|
||||
%.mo: %.po
|
||||
$(AM_V_GEN) msgfmt -o $@ $<
|
||||
|
||||
install: $(CATALOGS)
|
||||
@mkdir -p $(DESTDIR)$(localedir)
|
||||
for n in $(CATALOGS); do \
|
||||
l=`basename $$n .mo`; \
|
||||
$(INSTALL) -m 755 -d $(DESTDIR)$(localedir)/$$l; \
|
||||
$(INSTALL) -m 755 -d $(DESTDIR)$(localedir)/$$l/LC_MESSAGES; \
|
||||
if [ -f $$n ]; then \
|
||||
$(INSTALL) -m 644 $$n $(DESTDIR)$(localedir)/$$l/LC_MESSAGES/$(NLSPACKAGE).mo; \
|
||||
fi; \
|
||||
done
|
||||
|
||||
EXTRA_DIST=$(wildcard *.po)
|
||||
|
||||
CLEANFILES = $(CATALOGS)
|
||||
|
||||
-include $(top_srcdir)/git.mk
|
3
panels/datetime/po-timezones/README
Normal file
3
panels/datetime/po-timezones/README
Normal file
|
@ -0,0 +1,3 @@
|
|||
Those translations are copied from system-config-date
|
||||
http://git.fedorahosted.org/git/?p=system-config-date.git;a=tree;f=po/timezones
|
||||
and should not be modified by the GNOME translation teams.
|
3350
panels/datetime/po-timezones/am.po
Normal file
3350
panels/datetime/po-timezones/am.po
Normal file
File diff suppressed because it is too large
Load diff
3255
panels/datetime/po-timezones/ar.po
Normal file
3255
panels/datetime/po-timezones/ar.po
Normal file
File diff suppressed because it is too large
Load diff
3273
panels/datetime/po-timezones/as.po
Normal file
3273
panels/datetime/po-timezones/as.po
Normal file
File diff suppressed because it is too large
Load diff
3250
panels/datetime/po-timezones/ast.po
Normal file
3250
panels/datetime/po-timezones/ast.po
Normal file
File diff suppressed because it is too large
Load diff
3275
panels/datetime/po-timezones/bg.po
Normal file
3275
panels/datetime/po-timezones/bg.po
Normal file
File diff suppressed because it is too large
Load diff
3340
panels/datetime/po-timezones/bn.po
Normal file
3340
panels/datetime/po-timezones/bn.po
Normal file
File diff suppressed because it is too large
Load diff
3259
panels/datetime/po-timezones/bn_IN.po
Normal file
3259
panels/datetime/po-timezones/bn_IN.po
Normal file
File diff suppressed because it is too large
Load diff
3283
panels/datetime/po-timezones/bs.po
Normal file
3283
panels/datetime/po-timezones/bs.po
Normal file
File diff suppressed because it is too large
Load diff
3300
panels/datetime/po-timezones/ca.po
Normal file
3300
panels/datetime/po-timezones/ca.po
Normal file
File diff suppressed because it is too large
Load diff
3227
panels/datetime/po-timezones/cs.po
Normal file
3227
panels/datetime/po-timezones/cs.po
Normal file
File diff suppressed because it is too large
Load diff
3333
panels/datetime/po-timezones/cy.po
Normal file
3333
panels/datetime/po-timezones/cy.po
Normal file
File diff suppressed because it is too large
Load diff
3250
panels/datetime/po-timezones/da.po
Normal file
3250
panels/datetime/po-timezones/da.po
Normal file
File diff suppressed because it is too large
Load diff
3722
panels/datetime/po-timezones/de.po
Normal file
3722
panels/datetime/po-timezones/de.po
Normal file
File diff suppressed because it is too large
Load diff
3272
panels/datetime/po-timezones/el.po
Normal file
3272
panels/datetime/po-timezones/el.po
Normal file
File diff suppressed because it is too large
Load diff
3262
panels/datetime/po-timezones/en_GB.po
Normal file
3262
panels/datetime/po-timezones/en_GB.po
Normal file
File diff suppressed because it is too large
Load diff
3252
panels/datetime/po-timezones/es.po
Normal file
3252
panels/datetime/po-timezones/es.po
Normal file
File diff suppressed because it is too large
Load diff
3351
panels/datetime/po-timezones/et.po
Normal file
3351
panels/datetime/po-timezones/et.po
Normal file
File diff suppressed because it is too large
Load diff
3304
panels/datetime/po-timezones/fa.po
Normal file
3304
panels/datetime/po-timezones/fa.po
Normal file
File diff suppressed because it is too large
Load diff
3272
panels/datetime/po-timezones/fi.po
Normal file
3272
panels/datetime/po-timezones/fi.po
Normal file
File diff suppressed because it is too large
Load diff
3263
panels/datetime/po-timezones/fr.po
Normal file
3263
panels/datetime/po-timezones/fr.po
Normal file
File diff suppressed because it is too large
Load diff
3348
panels/datetime/po-timezones/gl.po
Normal file
3348
panels/datetime/po-timezones/gl.po
Normal file
File diff suppressed because it is too large
Load diff
3241
panels/datetime/po-timezones/gu.po
Normal file
3241
panels/datetime/po-timezones/gu.po
Normal file
File diff suppressed because it is too large
Load diff
3274
panels/datetime/po-timezones/he.po
Normal file
3274
panels/datetime/po-timezones/he.po
Normal file
File diff suppressed because it is too large
Load diff
3247
panels/datetime/po-timezones/hi.po
Normal file
3247
panels/datetime/po-timezones/hi.po
Normal file
File diff suppressed because it is too large
Load diff
3281
panels/datetime/po-timezones/hr.po
Normal file
3281
panels/datetime/po-timezones/hr.po
Normal file
File diff suppressed because it is too large
Load diff
3258
panels/datetime/po-timezones/hu.po
Normal file
3258
panels/datetime/po-timezones/hu.po
Normal file
File diff suppressed because it is too large
Load diff
3332
panels/datetime/po-timezones/id.po
Normal file
3332
panels/datetime/po-timezones/id.po
Normal file
File diff suppressed because it is too large
Load diff
3232
panels/datetime/po-timezones/ilo.po
Normal file
3232
panels/datetime/po-timezones/ilo.po
Normal file
File diff suppressed because it is too large
Load diff
3251
panels/datetime/po-timezones/is.po
Normal file
3251
panels/datetime/po-timezones/is.po
Normal file
File diff suppressed because it is too large
Load diff
3242
panels/datetime/po-timezones/it.po
Normal file
3242
panels/datetime/po-timezones/it.po
Normal file
File diff suppressed because it is too large
Load diff
3264
panels/datetime/po-timezones/ja.po
Normal file
3264
panels/datetime/po-timezones/ja.po
Normal file
File diff suppressed because it is too large
Load diff
3280
panels/datetime/po-timezones/ka.po
Normal file
3280
panels/datetime/po-timezones/ka.po
Normal file
File diff suppressed because it is too large
Load diff
3244
panels/datetime/po-timezones/kn.po
Normal file
3244
panels/datetime/po-timezones/kn.po
Normal file
File diff suppressed because it is too large
Load diff
3246
panels/datetime/po-timezones/ko.po
Normal file
3246
panels/datetime/po-timezones/ko.po
Normal file
File diff suppressed because it is too large
Load diff
3237
panels/datetime/po-timezones/ku.po
Normal file
3237
panels/datetime/po-timezones/ku.po
Normal file
File diff suppressed because it is too large
Load diff
3237
panels/datetime/po-timezones/lo.po
Normal file
3237
panels/datetime/po-timezones/lo.po
Normal file
File diff suppressed because it is too large
Load diff
3351
panels/datetime/po-timezones/lt.po
Normal file
3351
panels/datetime/po-timezones/lt.po
Normal file
File diff suppressed because it is too large
Load diff
3287
panels/datetime/po-timezones/lv.po
Normal file
3287
panels/datetime/po-timezones/lv.po
Normal file
File diff suppressed because it is too large
Load diff
3274
panels/datetime/po-timezones/mai.po
Normal file
3274
panels/datetime/po-timezones/mai.po
Normal file
File diff suppressed because it is too large
Load diff
3350
panels/datetime/po-timezones/mk.po
Normal file
3350
panels/datetime/po-timezones/mk.po
Normal file
File diff suppressed because it is too large
Load diff
3240
panels/datetime/po-timezones/ml.po
Normal file
3240
panels/datetime/po-timezones/ml.po
Normal file
File diff suppressed because it is too large
Load diff
3242
panels/datetime/po-timezones/mr.po
Normal file
3242
panels/datetime/po-timezones/mr.po
Normal file
File diff suppressed because it is too large
Load diff
3277
panels/datetime/po-timezones/ms.po
Normal file
3277
panels/datetime/po-timezones/ms.po
Normal file
File diff suppressed because it is too large
Load diff
3234
panels/datetime/po-timezones/nb.po
Normal file
3234
panels/datetime/po-timezones/nb.po
Normal file
File diff suppressed because it is too large
Load diff
3725
panels/datetime/po-timezones/nds.po
Normal file
3725
panels/datetime/po-timezones/nds.po
Normal file
File diff suppressed because it is too large
Load diff
3288
panels/datetime/po-timezones/nl.po
Normal file
3288
panels/datetime/po-timezones/nl.po
Normal file
File diff suppressed because it is too large
Load diff
3238
panels/datetime/po-timezones/nn.po
Normal file
3238
panels/datetime/po-timezones/nn.po
Normal file
File diff suppressed because it is too large
Load diff
3345
panels/datetime/po-timezones/no.po
Normal file
3345
panels/datetime/po-timezones/no.po
Normal file
File diff suppressed because it is too large
Load diff
3250
panels/datetime/po-timezones/or.po
Normal file
3250
panels/datetime/po-timezones/or.po
Normal file
File diff suppressed because it is too large
Load diff
3239
panels/datetime/po-timezones/pa.po
Normal file
3239
panels/datetime/po-timezones/pa.po
Normal file
File diff suppressed because it is too large
Load diff
3257
panels/datetime/po-timezones/pl.po
Normal file
3257
panels/datetime/po-timezones/pl.po
Normal file
File diff suppressed because it is too large
Load diff
3298
panels/datetime/po-timezones/pt.po
Normal file
3298
panels/datetime/po-timezones/pt.po
Normal file
File diff suppressed because it is too large
Load diff
3252
panels/datetime/po-timezones/pt_BR.po
Normal file
3252
panels/datetime/po-timezones/pt_BR.po
Normal file
File diff suppressed because it is too large
Load diff
3284
panels/datetime/po-timezones/ro.po
Normal file
3284
panels/datetime/po-timezones/ro.po
Normal file
File diff suppressed because it is too large
Load diff
3250
panels/datetime/po-timezones/ru.po
Normal file
3250
panels/datetime/po-timezones/ru.po
Normal file
File diff suppressed because it is too large
Load diff
3283
panels/datetime/po-timezones/si.po
Normal file
3283
panels/datetime/po-timezones/si.po
Normal file
File diff suppressed because it is too large
Load diff
3293
panels/datetime/po-timezones/sk.po
Normal file
3293
panels/datetime/po-timezones/sk.po
Normal file
File diff suppressed because it is too large
Load diff
3350
panels/datetime/po-timezones/sl.po
Normal file
3350
panels/datetime/po-timezones/sl.po
Normal file
File diff suppressed because it is too large
Load diff
3278
panels/datetime/po-timezones/sq.po
Normal file
3278
panels/datetime/po-timezones/sq.po
Normal file
File diff suppressed because it is too large
Load diff
3255
panels/datetime/po-timezones/sr.po
Normal file
3255
panels/datetime/po-timezones/sr.po
Normal file
File diff suppressed because it is too large
Load diff
3255
panels/datetime/po-timezones/sr@latin.po
Normal file
3255
panels/datetime/po-timezones/sr@latin.po
Normal file
File diff suppressed because it is too large
Load diff
3221
panels/datetime/po-timezones/sv.po
Normal file
3221
panels/datetime/po-timezones/sv.po
Normal file
File diff suppressed because it is too large
Load diff
3246
panels/datetime/po-timezones/ta.po
Normal file
3246
panels/datetime/po-timezones/ta.po
Normal file
File diff suppressed because it is too large
Load diff
3245
panels/datetime/po-timezones/te.po
Normal file
3245
panels/datetime/po-timezones/te.po
Normal file
File diff suppressed because it is too large
Load diff
3246
panels/datetime/po-timezones/tr.po
Normal file
3246
panels/datetime/po-timezones/tr.po
Normal file
File diff suppressed because it is too large
Load diff
3239
panels/datetime/po-timezones/uk.po
Normal file
3239
panels/datetime/po-timezones/uk.po
Normal file
File diff suppressed because it is too large
Load diff
3237
panels/datetime/po-timezones/ur.po
Normal file
3237
panels/datetime/po-timezones/ur.po
Normal file
File diff suppressed because it is too large
Load diff
3349
panels/datetime/po-timezones/vi.po
Normal file
3349
panels/datetime/po-timezones/vi.po
Normal file
File diff suppressed because it is too large
Load diff
3244
panels/datetime/po-timezones/zh_CN.po
Normal file
3244
panels/datetime/po-timezones/zh_CN.po
Normal file
File diff suppressed because it is too large
Load diff
3243
panels/datetime/po-timezones/zh_TW.po
Normal file
3243
panels/datetime/po-timezones/zh_TW.po
Normal file
File diff suppressed because it is too large
Load diff
Loading…
Add table
Add a link
Reference in a new issue