aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEmilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>2011-03-08 21:36:06 +0800
committerEmilio Pozuelo Monfort <emilio.pozuelo@collabora.co.uk>2011-03-15 02:46:45 +0800
commit6a78adf6f9ef38da9dd22e13feaff565ea5dce20 (patch)
treec5be0a64ee1c762f4bccbd25a65a4985eb22346b
parente24b350723d74b2f5f86401f3ecd6b85017bf592 (diff)
downloadgsoc2013-empathy-6a78adf6f9ef38da9dd22e13feaff565ea5dce20.tar
gsoc2013-empathy-6a78adf6f9ef38da9dd22e13feaff565ea5dce20.tar.gz
gsoc2013-empathy-6a78adf6f9ef38da9dd22e13feaff565ea5dce20.tar.bz2
gsoc2013-empathy-6a78adf6f9ef38da9dd22e13feaff565ea5dce20.tar.lz
gsoc2013-empathy-6a78adf6f9ef38da9dd22e13feaff565ea5dce20.tar.xz
gsoc2013-empathy-6a78adf6f9ef38da9dd22e13feaff565ea5dce20.tar.zst
gsoc2013-empathy-6a78adf6f9ef38da9dd22e13feaff565ea5dce20.zip
Look for a localized EULA first
-rw-r--r--libempathy-gtk/empathy-account-widget.c27
1 files changed, 24 insertions, 3 deletions
diff --git a/libempathy-gtk/empathy-account-widget.c b/libempathy-gtk/empathy-account-widget.c
index d55951142..e7cec6b20 100644
--- a/libempathy-gtk/empathy-account-widget.c
+++ b/libempathy-gtk/empathy-account-widget.c
@@ -1412,13 +1412,34 @@ account_widget_skype_show_eula (GtkWindow *parent)
{
GtkWidget *dialog, *textview, *vbox, *scrolledwindow;
GtkTextBuffer *buffer;
- gchar *filename = empathy_file_lookup ("skype-eula.txt", "data");
+ gchar *filename, *l10n_filename;
+ const gchar * const * langs;
+ GError *error = NULL;
gchar *eula;
gint result;
gsize len;
- GError *error = NULL;
+ gint i;
+
+ filename = empathy_file_lookup ("skype-eula.txt", "data");
+
+ langs = g_get_language_names ();
+
+ for (i = 0; langs[i] != NULL; i++)
+ {
+ l10n_filename = g_strconcat (filename, ".", langs[i], NULL);
+ g_file_get_contents (l10n_filename, &eula, &len, NULL);
+ g_free (l10n_filename);
+
+ if (eula != NULL)
+ break;
+ }
+
+ if (eula == NULL)
+ {
+ DEBUG ("Could not open translated Skype EULA");
+ g_file_get_contents (filename, &eula, &len, &error);
+ }
- g_file_get_contents (filename, &eula, &len, &error);
g_free (filename);
if (error != NULL)