[rhythmbox/wip/piotrdrag/unicode-typography: 14/14] Use Unicode in translatable strings



commit 07a9882e97a0b7f171c2fededc5adea78009dbca
Author: Piotr Drąg <piotrdrag gmail com>
Date:   Fri Sep 30 22:23:11 2016 +0200

    Use Unicode in translatable strings
    
    See https://developer.gnome.org/hig/stable/typography.html
    
    Fixes: https://gitlab.gnome.org/GNOME/rhythmbox/issues/789

 data/ui/library-prefs.ui                           |  2 +-
 data/ui/playlist-menu.ui                           |  6 ++---
 data/ui/podcast-popups.ui                          |  4 ++--
 data/ui/queue-popups.ui                            |  6 ++---
 lib/rb-cut-and-paste-code.c                        | 10 ++++----
 lib/rb-util.c                                      | 14 +++++------
 metadata/rb-metadata-gst.c                         |  6 ++---
 .../rb-audioscrobbler-profile-page.c               |  2 +-
 .../rb-audioscrobbler-radio-source.c               | 12 +++++-----
 .../rb-disc-recorder-plugin.c                      |  6 ++---
 plugins/context/tmpl/album-tmpl.html               |  4 ++--
 plugins/daap/rb-daap-plugin.c                      |  2 +-
 plugins/daap/rb-daap-sharing.c                     |  4 ++--
 plugins/daap/rb-daap-source.c                      |  4 ++--
 plugins/daap/rb-dacp-pairing-page.c                |  4 ++--
 plugins/im-status/im-status.py                     |  6 ++---
 plugins/ipod/ipod.plugin.in                        |  2 +-
 plugins/lyrics/LyricsConfigureDialog.py            |  2 +-
 plugins/lyrics/lyrics-prefs.ui                     |  2 +-
 plugins/lyrics/lyrics.py                           |  2 +-
 plugins/magnatune/MagnatuneSource.py               |  2 +-
 plugins/magnatune/magnatune-loading.ui             | 10 ++++----
 plugins/magnatune/magnatune-prefs.ui               |  2 +-
 plugins/mtpdevice/mtpdevice.plugin.in              |  2 +-
 plugins/pythonconsole/pythonconsole.py             |  4 ++--
 plugins/sendto/sendto.py                           |  2 +-
 plugins/soundcloud/soundcloud.py                   |  6 ++---
 podcast/rb-podcast-manager.c                       |  8 +++----
 remote/dbus/rb-client.c                            | 28 +++++++++++-----------
 rhythmdb/rhythmdb.c                                |  4 ++--
 shell/rb-application.c                             |  8 +++----
 shell/rb-playlist-manager.c                        |  6 ++---
 shell/rb-shell-player.c                            |  8 +++----
 shell/rb-shell-preferences.c                       |  4 ++--
 shell/rb-track-transfer-queue.c                    |  4 ++--
 sources/rb-media-player-source.c                   |  2 +-
 sources/rb-playlist-source.c                       |  4 ++--
 widgets/rb-song-info.c                             |  4 ++--
 38 files changed, 104 insertions(+), 104 deletions(-)
---
diff --git a/data/ui/library-prefs.ui b/data/ui/library-prefs.ui
index 546abec3e..79c065d23 100644
--- a/data/ui/library-prefs.ui
+++ b/data/ui/library-prefs.ui
@@ -115,7 +115,7 @@
                                   <object class="GtkLabel" id="label21">
                                     <property name="visible">True</property>
                                     <property name="can_focus">False</property>
-                                    <property name="label" translatable="yes">_Browse...</property>
+                                    <property name="label" translatable="yes">_Browse…</property>
                                     <property name="use_underline">True</property>
                                   </object>
                                   <packing>
diff --git a/data/ui/playlist-menu.ui b/data/ui/playlist-menu.ui
index b6f4eeb98..a2598e61c 100644
--- a/data/ui/playlist-menu.ui
+++ b/data/ui/playlist-menu.ui
@@ -1,9 +1,9 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <interface>
   <menu id="playlist-menu">
     <section>
       <item>
-       <attribute name="label" translatable="yes">_Edit...</attribute>
+       <attribute name="label" translatable="yes">_Edit…</attribute>
        <attribute name="action">app.playlist-edit</attribute>
       </item>
       <item>
@@ -23,7 +23,7 @@
     </section>
     <section>
       <item>
-       <attribute name="label" translatable="yes">_Save to File...</attribute>
+       <attribute name="label" translatable="yes">_Save to File…</attribute>
        <attribute name="action">app.playlist-save</attribute>
       </item>
     </section>
diff --git a/data/ui/podcast-popups.ui b/data/ui/podcast-popups.ui
index 443575d5a..33f831f75 100644
--- a/data/ui/podcast-popups.ui
+++ b/data/ui/podcast-popups.ui
@@ -1,9 +1,9 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <interface>
   <menu id="podcast-feed-popup">
     <section>
       <item>
-       <attribute name="label" translatable="yes">New Podcast Feed...</attribute>
+       <attribute name="label" translatable="yes">New Podcast Feed…</attribute>
        <attribute name="action">app.podcast-add</attribute>
       </item>
       <item>
diff --git a/data/ui/queue-popups.ui b/data/ui/queue-popups.ui
index 0c3473bf6..b6ed4976c 100644
--- a/data/ui/queue-popups.ui
+++ b/data/ui/queue-popups.ui
@@ -1,4 +1,4 @@
-<?xml version="1.0"?>
+<?xml version="1.0" encoding="UTF-8"?>
 <interface>
   <menu id="queue-source-popup">
     <section>
@@ -11,7 +11,7 @@
        <attribute name="action">app.queue-shuffle</attribute>
       </item>
       <item>
-       <attribute name="label" translatable="yes">_Save to File...</attribute>
+       <attribute name="label" translatable="yes">_Save to File…</attribute>
        <attribute name="action">app.save-playlist</attribute>
       </item>
     </section>
@@ -40,7 +40,7 @@
        <attribute name="action">app.queue-shuffle</attribute>
       </item>
       <item>
-       <attribute name="label" translatable="yes">_Save to File...</attribute>
+       <attribute name="label" translatable="yes">_Save to File…</attribute>
        <attribute name="action">app.save-playlist</attribute>
       </item>
     </section>
diff --git a/lib/rb-cut-and-paste-code.c b/lib/rb-cut-and-paste-code.c
index 7880dd9ae..4d4a1ebca 100644
--- a/lib/rb-cut-and-paste-code.c
+++ b/lib/rb-cut-and-paste-code.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+/* -*- Mode: C; coding: utf-8; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
  *
  *  Copyright (C) 2000 Eazel, Inc.
  *  Copyright (C) 2002 Jorn Baayen
@@ -102,7 +102,7 @@ rb_utf_friendly_time (time_t date)
 
        if (y == ny && m == nm && d == nd) {
                /* Translators: "friendly time" string for the current day, strftime format. like "Today 
12:34 am" */
-               format = _("Today %I:%M %p");
+               format = _("Today %I∶%M %p");
        }
 
        if (format == NULL) {
@@ -113,7 +113,7 @@ rb_utf_friendly_time (time_t date)
                        /* Translators: "friendly time" string for the previous day,
                         * strftime format. e.g. "Yesterday 12:34 am"
                         */
-                       format = _("Yesterday %I:%M %p");
+                       format = _("Yesterday %I∶%M %p");
                }
                g_date_time_unref (yesterday);
        }
@@ -127,7 +127,7 @@ rb_utf_friendly_time (time_t date)
                                /* Translators: "friendly time" string for a day in the current week,
                                 * strftime format. e.g. "Wed 12:34 am"
                                 */
-                               format = _("%a %I:%M %p");
+                               format = _("%a %I∶%M %p");
                                g_date_time_unref (yesterday);
                                break;
                        }
@@ -140,7 +140,7 @@ rb_utf_friendly_time (time_t date)
                        /* Translators: "friendly time" string for a day in the current year,
                         * strftime format. e.g. "Feb 12 12:34 am"
                         */
-                       format = _("%b %d %I:%M %p");
+                       format = _("%b %d %I∶%M %p");
                } else {
                        /* Translators: "friendly time" string for a day in a different year,
                         * strftime format. e.g. "Feb 12 1997"
diff --git a/lib/rb-util.c b/lib/rb-util.c
index 2cbd5e4e2..28f282855 100644
--- a/lib/rb-util.c
+++ b/lib/rb-util.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+/* -*- Mode: C; coding: utf-8; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
  *
  *  Copyright (C) 2003 Colin Walters <walters verbum org>
  *
@@ -563,9 +563,9 @@ rb_make_time_string (guint nseconds)
        seconds = nseconds % 60;
 
        if (hours == 0)
-               return g_strdup_printf (_("%d:%02d"), minutes, seconds);
+               return g_strdup_printf (_("%d∶%02d"), minutes, seconds);
        else
-               return g_strdup_printf (_("%d:%02d:%02d"), hours, minutes, seconds);
+               return g_strdup_printf (_("%d∶%02d∶%02d"), hours, minutes, seconds);
 }
 
 
@@ -629,20 +629,20 @@ rb_make_elapsed_time_string (guint elapsed, guint duration, gboolean show_remain
                 * with the abs(). */
                int remaining_seconds = abs (remaining % 60);
                if (hours2 == 0)
-                       return g_strdup_printf (_("%d:%02d of %d:%02d remaining"),
+                       return g_strdup_printf (_("%d∶%02d of %d∶%02d remaining"),
                                                remaining_minutes, remaining_seconds,
                                                minutes2, seconds2);
                else
-                       return g_strdup_printf (_("%d:%02d:%02d of %d:%02d:%02d remaining"),
+                       return g_strdup_printf (_("%d∶%02d∶%02d of %d∶%02d∶%02d remaining"),
                                                remaining_hours, remaining_minutes, remaining_seconds,
                                                hours2, minutes2, seconds2);
        } else {
                if (hours == 0 && hours2 == 0)
-                       return g_strdup_printf (_("%d:%02d of %d:%02d"),
+                       return g_strdup_printf (_("%d∶%02d of %d∶%02d"),
                                                minutes, seconds,
                                                minutes2, seconds2);
                else
-                       return g_strdup_printf (_("%d:%02d:%02d of %d:%02d:%02d"),
+                       return g_strdup_printf (_("%d∶%02d∶%02d of %d∶%02d∶%02d"),
                                                hours, minutes, seconds,
                                                hours2, minutes2, seconds2);
        }
diff --git a/metadata/rb-metadata-gst.c b/metadata/rb-metadata-gst.c
index 123f0a899..603654198 100644
--- a/metadata/rb-metadata-gst.c
+++ b/metadata/rb-metadata-gst.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+/* -*- Mode: C; coding: utf-8; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
  *
  *  Copyright (C) 2010 Jonathan Matthew  <jonathan d14n org>
  *
@@ -688,7 +688,7 @@ rb_metadata_save (RBMetaData *md, const char *uri, GError **error)
                g_set_error (error,
                             RB_METADATA_ERROR,
                             RB_METADATA_ERROR_MISSING_PLUGIN,
-                            _("Failed to create the 'decodebin' element; check your GStreamer 
installation"));
+                            _("Failed to create the “decodebin” element; check your GStreamer 
installation"));
                goto out;
        }
 
@@ -697,7 +697,7 @@ rb_metadata_save (RBMetaData *md, const char *uri, GError **error)
                g_set_error (error,
                             RB_METADATA_ERROR,
                             RB_METADATA_ERROR_MISSING_PLUGIN,
-                            _("Failed to create the 'giostreamsink' element; check your GStreamer 
installation"));
+                            _("Failed to create the “giostreamsink” element; check your GStreamer 
installation"));
                goto out;
        }
        g_object_set (md->priv->sink, "stream", stream, NULL);
diff --git a/plugins/audioscrobbler/rb-audioscrobbler-profile-page.c 
b/plugins/audioscrobbler/rb-audioscrobbler-profile-page.c
index 9e6bca0e5..43c8d06e3 100644
--- a/plugins/audioscrobbler/rb-audioscrobbler-profile-page.c
+++ b/plugins/audioscrobbler/rb-audioscrobbler-profile-page.c
@@ -799,7 +799,7 @@ login_status_change_cb (RBAudioscrobblerAccount *account,
        case RB_AUDIOSCROBBLER_ACCOUNT_LOGIN_STATUS_LOGGING_IN:
                show_login_bar = TRUE;
                show_profile = FALSE;
-               label_text = g_strdup (_("Waiting for authentication..."));
+               label_text = g_strdup (_("Waiting for authentication…"));
                button_text = g_strdup (_("Cancel"));
                gtk_info_bar_set_message_type (GTK_INFO_BAR (page->priv->login_bar), GTK_MESSAGE_INFO);
                break;
diff --git a/plugins/audioscrobbler/rb-audioscrobbler-radio-source.c 
b/plugins/audioscrobbler/rb-audioscrobbler-radio-source.c
index 477f5e69e..a2dac7f0b 100644
--- a/plugins/audioscrobbler/rb-audioscrobbler-radio-source.c
+++ b/plugins/audioscrobbler/rb-audioscrobbler-radio-source.c
@@ -124,17 +124,17 @@ static const char* radio_names[] = {
        /* Translators: station is built from the artist %s's top fans */
        N_("%s Fan Radio"),
        /* Translators: station is built from the library of the user %s */
-       N_("%s's Library"),
+       N_("%s’s Library"),
        /* Translators: station is built from the "neighbourhood" of the user %s.
         * Last.fm uses "neighbourhood" to mean other users with similar music tastes */
-       N_("%s's Neighbourhood"),
+       N_("%s’s Neighbourhood"),
        /* Translators: station is built from the tracks which have been "loved" by the user %s */
-       N_("%s's Loved Tracks"),
+       N_("%s’s Loved Tracks"),
        /* Translators: station is built from the tracks which are recommended to the user %s */
-       N_("%s's Recommended Radio"),
+       N_("%s’s Recommended Radio"),
        /* Translators: station is the "Mix Radio" for the user %s.
         * See http://blog.last.fm/2010/10/29/mix-radio-a-new-radio-station for description. */
-       N_("%s's Mix Radio"),
+       N_("%s’s Mix Radio"),
        /* Translators: station is built from the tracks which have been "tagged" with %s.
         * Last.fm lets users "tag" songs with any string they wish. Tags are usually genres,
         * but nationalities, record labels, decades and very random words are also common */
@@ -741,7 +741,7 @@ tune_response_cb (SoupSession *session,
                                                                 rb_audioscrobbler_service_get_name 
(source->priv->service));
                        } else {
                                /* Other error */
-                               error_message = g_strdup_printf (_("Error tuning station: %i - %s"), code, 
message);
+                               error_message = g_strdup_printf (_("Error tuning station: %i — %s"), code, 
message);
                        }
 
                        display_error_info_bar (source, error_message);
diff --git a/plugins/brasero-disc-recorder/rb-disc-recorder-plugin.c 
b/plugins/brasero-disc-recorder/rb-disc-recorder-plugin.c
index a89d87a70..029f44dc2 100644
--- a/plugins/brasero-disc-recorder/rb-disc-recorder-plugin.c
+++ b/plugins/brasero-disc-recorder/rb-disc-recorder-plugin.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+/* -*- Mode: C; coding: utf-8; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
  *
  *  Copyright (C) 2006 William Jon McCann <mccann jhu edu>
  *  Copyright (C) 2008 Rouquier Philippe <bonfire-app wanadoo fr>
@@ -651,13 +651,13 @@ impl_activate (PeasActivatable *plugin)
        pi->burn_action = g_action_map_lookup_action (G_ACTION_MAP (app), "burn-playlist");
        pi->copy_action = g_action_map_lookup_action (G_ACTION_MAP (app), "burn-duplicate-cd");
 
-       item = g_menu_item_new (_("Create Audio CD..."), "app.burn-playlist");
+       item = g_menu_item_new (_("Create Audio CD…"), "app.burn-playlist");
        rb_application_add_plugin_menu_item (RB_APPLICATION (g_application_get_default ()),
                                             "playlist-menu",
                                             "burn-playlist",
                                             item);
 
-       item = g_menu_item_new (_("Duplicate Audio CD..."), "app.burn-duplicate-cd");
+       item = g_menu_item_new (_("Duplicate Audio CD…"), "app.burn-duplicate-cd");
        rb_application_add_plugin_menu_item (RB_APPLICATION (g_application_get_default ()),
                                             "audiocd-toolbar",
                                             "burn-duplicate-cd",
diff --git a/plugins/context/tmpl/album-tmpl.html b/plugins/context/tmpl/album-tmpl.html
index 6d6ef0e55..e3471e790 100644
--- a/plugins/context/tmpl/album-tmpl.html
+++ b/plugins/context/tmpl/album-tmpl.html
@@ -16,9 +16,9 @@
         mn = time / 60
         sec = time % 60
         if hr > 0:
-            return _("%d:%02d:%02d") % (hr,mn,sec)
+            return _("%d∶%02d∶%02d") % (hr,mn,sec)
         else:
-            return _("%d:%02d") %(mn,sec)
+            return _("%d∶%02d") %(mn,sec)
 
     def format_year(date):
         try:
diff --git a/plugins/daap/rb-daap-plugin.c b/plugins/daap/rb-daap-plugin.c
index 5e5af17e8..ab8c02daa 100644
--- a/plugins/daap/rb-daap-plugin.c
+++ b/plugins/daap/rb-daap-plugin.c
@@ -193,7 +193,7 @@ impl_activate (PeasActivatable *bplugin)
        rb_application_add_plugin_menu_item (RB_APPLICATION (app),
                                             "display-page-add",
                                             "daap-new-share",
-                                            g_menu_item_new (_("Connect to DAAP share..."), 
"app.daap-new-share"));
+                                            g_menu_item_new (_("Connect to DAAP share…"), 
"app.daap-new-share"));
 
        /*
         * Don't use daap when the no-registration flag is set.
diff --git a/plugins/daap/rb-daap-sharing.c b/plugins/daap/rb-daap-sharing.c
index 63e5dbc7e..f567162be 100644
--- a/plugins/daap/rb-daap-sharing.c
+++ b/plugins/daap/rb-daap-sharing.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+/* -*- Mode: C; coding: utf-8; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
  *
  *  Implmentation of DAAP (iTunes Music Sharing) sharing
  *
@@ -58,7 +58,7 @@ rb_daap_sharing_default_share_name ()
                real_name = g_get_user_name ();
        }
 
-       return g_strdup_printf (_("%s's Music"), real_name);
+       return g_strdup_printf (_("%s’s Music"), real_name);
 }
 
 static gboolean
diff --git a/plugins/daap/rb-daap-source.c b/plugins/daap/rb-daap-source.c
index ef30cd8fa..e911359b1 100644
--- a/plugins/daap/rb-daap-source.c
+++ b/plugins/daap/rb-daap-source.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+/* -*- Mode: C; coding: utf-8; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
  *
  *  Implementation of DAAP (iTunes Music Sharing) source object
  *
@@ -473,7 +473,7 @@ ask_password (RBDAAPSource *source,
 #ifdef WITH_LIBSECRET
        flags |= G_ASK_PASSWORD_SAVING_SUPPORTED;
 #endif
-       message = g_strdup_printf (_("The music share '%s' requires a password to connect"), name);
+       message = g_strdup_printf (_("The music share “%s” requires a password to connect"), name);
        g_signal_emit_by_name (mount_op, "ask-password", message, NULL, "DAAP", flags);
        g_free (message);
 }
diff --git a/plugins/daap/rb-dacp-pairing-page.c b/plugins/daap/rb-dacp-pairing-page.c
index 93a5f98af..e9c1ac28f 100644
--- a/plugins/daap/rb-dacp-pairing-page.c
+++ b/plugins/daap/rb-dacp-pairing-page.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+/* -*- Mode: C; coding: utf-8; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
  *
  *  Implementation of DACP (iTunes Remote) pairing page object
  *
@@ -389,7 +389,7 @@ rb_dacp_pairing_page_connecting (RBDACPPairingPage *page, gboolean connecting) {
 
        if (connecting) {
                gtk_widget_show (page->priv->pairing_status_widget);
-               gtk_label_set_markup (GTK_LABEL (page->priv->pairing_status_widget), _("Connecting..."));
+               gtk_label_set_markup (GTK_LABEL (page->priv->pairing_status_widget), _("Connecting…"));
        } else {
                gtk_label_set_markup (GTK_LABEL (page->priv->pairing_status_widget), _("Could not pair with 
this Remote."));
        }
diff --git a/plugins/im-status/im-status.py b/plugins/im-status/im-status.py
index 790a123c7..dac649f0d 100644
--- a/plugins/im-status/im-status.py
+++ b/plugins/im-status/im-status.py
@@ -168,12 +168,12 @@ class IMStatusPlugin (GObject.Object, Peas.Activatable):
         # Translators: do not translate %(artist)s or %(title)s, they are
         # string substitution markers (like %s) for the artist and title of
         # the current playing song.  They can be reordered if necessary.
-        new_status = _(u"♫ %(artist)s - %(title)s ♫") % subs
+        new_status = _(u"♫ %(artist)s — %(title)s ♫") % subs
       elif self.current_album:
         # Translators: do not translate %(artist)s or %(album)s, they are
         # string substitution markers (like %s) for the artist and album name
         # of the current playing song.  They can be reordered if necessary.
-        new_status = _(u"♫ %(artist)s - %(album)s ♫") % subs
+        new_status = _(u"♫ %(artist)s — %(album)s ♫") % subs
     elif self.current_album:
       # Translators: do not translate %(album)s, it is a string substitution
       # marker (like %s) for the album name of the current playing song.
@@ -183,7 +183,7 @@ class IMStatusPlugin (GObject.Object, Peas.Activatable):
       # marker (like %s) for the title of the current playing song.
       new_status = _(u"♫ %(title)s ♫") % subs
     else:
-      new_status = _(u"♫ Listening to music... ♫")
+      new_status = _(u"♫ Listening to music… ♫")
 
     self.set_mc5_status (new_status)
     self.set_purple_status (new_status)
diff --git a/plugins/ipod/ipod.plugin.in b/plugins/ipod/ipod.plugin.in
index a9c8902e5..41865e280 100644
--- a/plugins/ipod/ipod.plugin.in
+++ b/plugins/ipod/ipod.plugin.in
@@ -1,7 +1,7 @@
 [Plugin]
 Module=ipod
 IAge=2
-_Name=Portable Players - iPod
+_Name=Portable Players — iPod
 _Description=Support for Apple iPod devices (show the content, play from device)
 Authors=James Livingston, Christophe Fergeau
 Copyright=Copyright © 2006 James Livingston
diff --git a/plugins/lyrics/LyricsConfigureDialog.py b/plugins/lyrics/LyricsConfigureDialog.py
index f03e789f5..77fac56a6 100644
--- a/plugins/lyrics/LyricsConfigureDialog.py
+++ b/plugins/lyrics/LyricsConfigureDialog.py
@@ -100,7 +100,7 @@ class LyricsConfigureDialog (GObject.Object, PeasGtk.Configurable):
 
                buttons = (Gtk.STOCK_CLOSE, Gtk.ResponseType.CLOSE,
                                Gtk.STOCK_OK, Gtk.ResponseType.OK)
-               self.chooser = Gtk.FileChooserDialog(title=_("Choose lyrics folder..."),
+               self.chooser = Gtk.FileChooserDialog(title=_("Choose lyrics folder…"),
                                        parent=None,
                                        action=Gtk.FileChooserAction.SELECT_FOLDER,
                                        buttons=buttons)
diff --git a/plugins/lyrics/lyrics-prefs.ui b/plugins/lyrics/lyrics-prefs.ui
index 2b1b77b7f..27026fda3 100644
--- a/plugins/lyrics/lyrics-prefs.ui
+++ b/plugins/lyrics/lyrics-prefs.ui
@@ -111,7 +111,7 @@
                               <object class="GtkLabel" id="label60">
                                 <property name="visible">True</property>
                                 <property name="can_focus">False</property>
-                                <property name="label" translatable="yes">Browse...</property>
+                                <property name="label" translatable="yes">Browse…</property>
                                 <property name="use_underline">True</property>
                               </object>
                               <packing>
diff --git a/plugins/lyrics/lyrics.py b/plugins/lyrics/lyrics.py
index c0f8de1e4..9d5e44c20 100644
--- a/plugins/lyrics/lyrics.py
+++ b/plugins/lyrics/lyrics.py
@@ -343,7 +343,7 @@ class LyricPane(object):
                if self.entry is None:
                        return
 
-               self.buffer.set_text(_("Searching for lyrics..."), -1);
+               self.buffer.set_text(_("Searching for lyrics…"), -1);
                lyrics_grabber = LyricGrabber(self.db, self.entry)
                lyrics_grabber.search_lyrics(self.__got_lyrics)
 
diff --git a/plugins/magnatune/MagnatuneSource.py b/plugins/magnatune/MagnatuneSource.py
index 834d9fa03..2af728973 100644
--- a/plugins/magnatune/MagnatuneSource.py
+++ b/plugins/magnatune/MagnatuneSource.py
@@ -189,7 +189,7 @@ class MagnatuneSource(RB.BrowserSource):
                        library = Gio.Settings.new("org.gnome.rhythmbox.rhythmdb")
                        library_location = library['locations'][0]
                except IndexError as e:
-                       RB.error_dialog(title = _("Couldn't download album"),
+                       RB.error_dialog(title = _("Couldn’t download album"),
                                        message = _("You must have a library location set to download an 
album."))
                        return
 
diff --git a/plugins/magnatune/magnatune-loading.ui b/plugins/magnatune/magnatune-loading.ui
index fcf486c5d..51fd37e67 100644
--- a/plugins/magnatune/magnatune-loading.ui
+++ b/plugins/magnatune/magnatune-loading.ui
@@ -68,7 +68,7 @@
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">    * Free listening of all songs</property>
+                    <property name="label" translatable="yes">    • Free listening of all songs</property>
                   </object>
                   <packing>
                     <property name="x_options">GTK_FILL</property>
@@ -80,7 +80,7 @@
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">    * Paid members get totally unlimited 
downloading of the entire catalog (no other service allows that)</property>
+                    <property name="label" translatable="yes">    • Paid members get totally unlimited 
downloading of the entire catalog (no other service allows that)</property>
                   </object>
                   <packing>
                     <property name="top_attach">1</property>
@@ -94,7 +94,7 @@
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">    * 10% of your Magnatune membership fees 
goes to Rhythmbox/GNOME - it's worth joining</property>
+                    <property name="label" translatable="yes">    • 10% of your Magnatune membership fees 
goes to Rhythmbox/GNOME — it’s worth joining</property>
                   </object>
                   <packing>
                     <property name="top_attach">2</property>
@@ -108,7 +108,7 @@
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">    * Open-Source friendly file formats: MP3s 
and WAVs, but also OGG and FLAC files.</property>
+                    <property name="label" translatable="yes">    • Open-Source friendly file formats: MP3s 
and WAVs, but also OGG and FLAC files.</property>
                   </object>
                   <packing>
                     <property name="top_attach">3</property>
@@ -122,7 +122,7 @@
                     <property name="visible">True</property>
                     <property name="can_focus">False</property>
                     <property name="xalign">0</property>
-                    <property name="label" translatable="yes">    * All albums and artists 
hand-picked</property>
+                    <property name="label" translatable="yes">    • All albums and artists 
hand-picked</property>
                   </object>
                   <packing>
                     <property name="top_attach">4</property>
diff --git a/plugins/magnatune/magnatune-prefs.ui b/plugins/magnatune/magnatune-prefs.ui
index 8f9f3e31f..643286f8d 100644
--- a/plugins/magnatune/magnatune-prefs.ui
+++ b/plugins/magnatune/magnatune-prefs.ui
@@ -163,7 +163,7 @@
             <property name="orientation">vertical</property>
             <child>
               <object class="GtkRadioButton" id="no_account_radio">
-                <property name="label" translatable="yes">I don't have a Magnatune account</property>
+                <property name="label" translatable="yes">I don’t have a Magnatune account</property>
                 <property name="use_action_appearance">False</property>
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
diff --git a/plugins/mtpdevice/mtpdevice.plugin.in b/plugins/mtpdevice/mtpdevice.plugin.in
index c80edece6..da224d5ce 100644
--- a/plugins/mtpdevice/mtpdevice.plugin.in
+++ b/plugins/mtpdevice/mtpdevice.plugin.in
@@ -1,7 +1,7 @@
 [Plugin]
 Module=mtpdevice
 IAge=2
-_Name=Portable Players - MTP
+_Name=Portable Players — MTP
 _Description=Support for MTP devices (show the content, transfer, play from device)
 Authors=Peter Grundström
 Copyright=Copyright © 2006-2007 Peter Grundström
diff --git a/plugins/pythonconsole/pythonconsole.py b/plugins/pythonconsole/pythonconsole.py
index 7d858bbc9..5b22ad6a1 100644
--- a/plugins/pythonconsole/pythonconsole.py
+++ b/plugins/pythonconsole/pythonconsole.py
@@ -104,7 +104,7 @@ class PythonConsolePlugin(GObject.Object, Peas.Activatable):
                        console.set_size_request(600, 400)
                        console.eval('print("' + \
                                     _("You can access the main window " \
-                                    "through the \'shell\' variable :") +
+                                    "through the “shell” variable:") +
                                     '\\n%s" % shell)', False)
 
                        self.window = Gtk.Window()
@@ -118,7 +118,7 @@ class PythonConsolePlugin(GObject.Object, Peas.Activatable):
 
        def enable_debugging(self, action, parameter, shell):
                pwd_path = os.path.join(rb.user_data_dir(), "rpdb2_password")
-               msg = _("After you press OK, Rhythmbox will wait until you connect to it with winpdb or 
rpdb2. If you have not set a debugger password in the file %s, it will use the default password 
('rhythmbox').") % pwd_path
+               msg = _("After you press OK, Rhythmbox will wait until you connect to it with winpdb or 
rpdb2. If you have not set a debugger password in the file %s, it will use the default password 
(“rhythmbox”).") % pwd_path
                dialog = Gtk.MessageDialog(None, 0, Gtk.MessageType.INFO, Gtk.ButtonsType.OK_CANCEL, msg)
                if dialog.run() == Gtk.RESPONSE_OK:
                        password = "rhythmbox"
diff --git a/plugins/sendto/sendto.py b/plugins/sendto/sendto.py
index e404939b2..e23e29f79 100644
--- a/plugins/sendto/sendto.py
+++ b/plugins/sendto/sendto.py
@@ -48,7 +48,7 @@ class SendToPlugin (GObject.Object, Peas.Activatable):
                app.add_action(self.__action)
 
                item = Gio.MenuItem()
-               item.set_label(_("Send to..."))
+               item.set_label(_("Send to…"))
                item.set_detailed_action('app.sendto')
                app.add_plugin_menu_item('edit', 'sendto', item)
                app.add_plugin_menu_item('browser-popup', 'sendto', item)
diff --git a/plugins/soundcloud/soundcloud.py b/plugins/soundcloud/soundcloud.py
index 7593f74fc..188484d8a 100644
--- a/plugins/soundcloud/soundcloud.py
+++ b/plugins/soundcloud/soundcloud.py
@@ -439,7 +439,7 @@ class SoundCloudSource(RB.StreamingSource):
                entry = player.get_playing_entry()
                if entry is not None and entry.get_entry_type() == self.props.entry_type:
                        url = entry.get_string(RB.RhythmDBPropType.LOCATION)
-                       menu[url] = _("View '%(title)s' on SoundCloud") % {'title': 
entry.get_string(RB.RhythmDBPropType.TITLE) }
+                       menu[url] = _("View “%(title)s” on SoundCloud") % {'title': 
entry.get_string(RB.RhythmDBPropType.TITLE) }
                        # artist too?
 
 
@@ -447,7 +447,7 @@ class SoundCloudSource(RB.StreamingSource):
                if self.songs.have_selection():
                        entry = self.songs.get_selected_entries()[0]
                        url = entry.get_string(RB.RhythmDBPropType.LOCATION)
-                       menu[url] = _("View '%(title)s' on SoundCloud") % {'title': 
entry.get_string(RB.RhythmDBPropType.TITLE) }
+                       menu[url] = _("View “%(title)s” on SoundCloud") % {'title': 
entry.get_string(RB.RhythmDBPropType.TITLE) }
                        # artist too?
 
                # selected container
@@ -455,7 +455,7 @@ class SoundCloudSource(RB.StreamingSource):
                (model, aiter) = selection.get_selected()
                if aiter is not None:
                        [name, url] = model.get(aiter, 0, 3)
-                       menu[url] = _("View '%(container)s' on SoundCloud") % {'container': name}
+                       menu[url] = _("View “%(container)s” on SoundCloud") % {'container': name}
 
                if len(menu) == 0:
                        self.sc_button.set_menu_model(None)
diff --git a/podcast/rb-podcast-manager.c b/podcast/rb-podcast-manager.c
index 9c36e68ac..e632542f0 100644
--- a/podcast/rb-podcast-manager.c
+++ b/podcast/rb-podcast-manager.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+/* -*- Mode: C; coding: utf-8; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
  *
  *  Copyright (C) 2005 Renato Araujo Oliveira Filho - INdT <renato filho indt org br>
  *
@@ -1043,7 +1043,7 @@ rb_podcast_manager_subscribe_feed (RBPodcastManager *pd, const char *url, gboole
 #if 0
        if (valid_url == NULL) {
                rb_error_dialog (NULL, _("Invalid URL"),
-                                _("The URL \"%s\" is not valid, please check it."), url);
+                                _("The URL “%s” is not valid, please check it."), url);
                return FALSE;
        }
 #endif
@@ -1055,7 +1055,7 @@ rb_podcast_manager_subscribe_feed (RBPodcastManager *pd, const char *url, gboole
                if (rhythmdb_entry_get_entry_type (entry) != RHYTHMDB_ENTRY_TYPE_PODCAST_FEED) {
                        /* added as something else, probably iradio */
                        rb_error_dialog (NULL, _("URL already added"),
-                                        _("The URL \"%s\" has already been added as a radio station. "
+                                        _("The URL “%s” has already been added as a radio station. "
                                         "If this is a podcast feed, please remove the radio station."), url);
                        return FALSE;
                }
@@ -1155,7 +1155,7 @@ confirm_bad_mime_type (RBPodcastThreadInfo *info)
        dialog = gtk_message_dialog_new (NULL, 0,
                                         GTK_MESSAGE_QUESTION,
                                         GTK_BUTTONS_YES_NO,
-                                        _("The URL '%s' does not appear to be a podcast feed. "
+                                        _("The URL “%s” does not appear to be a podcast feed. "
                                         "It may be the wrong URL, or the feed may be broken. "
                                         "Would you like Rhythmbox to attempt to use it anyway?"),
                                         info->url);
diff --git a/remote/dbus/rb-client.c b/remote/dbus/rb-client.c
index a9bfe6895..45478e5ff 100644
--- a/remote/dbus/rb-client.c
+++ b/remote/dbus/rb-client.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+/* -*- Mode: C; coding: utf-8; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
  *
  *  Copyright (C) 2006 Jonathan Matthew
  *
@@ -94,11 +94,11 @@ static GOptionEntry args[] = {
        { "debug", 0, 0, G_OPTION_ARG_NONE, &debug, NULL, NULL },
        { "version", 0, G_OPTION_FLAG_NO_ARG, G_OPTION_ARG_CALLBACK, show_version_cb, N_("Show the version of 
the program"), NULL },
 
-       { "no-start", 0, 0, G_OPTION_ARG_NONE, &no_start, N_("Don't start a new instance of Rhythmbox"), NULL 
},
+       { "no-start", 0, 0, G_OPTION_ARG_NONE, &no_start, N_("Don’t start a new instance of Rhythmbox"), NULL 
},
        { "quit", 0, 0, G_OPTION_ARG_NONE, &quit, N_("Quit Rhythmbox"), NULL },
        { "check-running", 0, 0, G_OPTION_ARG_NONE, &check_running, N_("Check if Rhythmbox is already 
running"), NULL },
 
-       { "no-present", 0, 0, G_OPTION_ARG_NONE, &no_present, N_("Don't present an existing Rhythmbox 
window"), NULL },
+       { "no-present", 0, 0, G_OPTION_ARG_NONE, &no_present, N_("Don’t present an existing Rhythmbox 
window"), NULL },
 
        { "next", 0, 0, G_OPTION_ARG_NONE, &next, N_("Jump to next song"), NULL },
        { "previous", 0, 0, G_OPTION_ARG_NONE, &previous, N_("Jump to previous song"), NULL },
@@ -161,15 +161,15 @@ struct {
        void (*handler)(InteractData *, int);
        const char *help;
 } interact_keys[] = {
-       { 'n',  interact_next,          N_("n - Next track") },
-       { 'p',  interact_prev,          N_("p - Previous track") },
-       { ' ',  interact_playpause,     N_("space - Play/pause") },
-       { 's',  interact_print_state,   N_("s - Show playing track details") },
-       { 'v',  interact_volume,        N_("v - Decrease volume") },
-       { 'V',  interact_volume,        N_("V - Increase volume") },
+       { 'n',  interact_next,          N_("n — Next track") },
+       { 'p',  interact_prev,          N_("p — Previous track") },
+       { ' ',  interact_playpause,     N_("space — Play/pause") },
+       { 's',  interact_print_state,   N_("s — Show playing track details") },
+       { 'v',  interact_volume,        N_("v — Decrease volume") },
+       { 'V',  interact_volume,        N_("V — Increase volume") },
        { '?',  interact_help,          NULL },
-       { 'h',  interact_help,          N_("h/? - Help") },
-       { 'q',  interact_quit,          N_("q - Quit") },
+       { 'h',  interact_help,          N_("h/? — Help") },
+       { 'q',  interact_quit,          N_("q — Quit") },
        { 3,    interact_quit,          NULL }, /* ctrl-c */
        { 4,    interact_quit,          NULL }, /* ctrl-d */
        /* seeking? */
@@ -214,9 +214,9 @@ rb_make_duration_string (gint64 duration, gboolean show_zero)
        if (hours == 0 && minutes == 0 && seconds == 0 && show_zero)
                str = g_strdup (_("Unknown"));
        else if (hours == 0)
-               str = g_strdup_printf (_("%d:%02d"), minutes, seconds);
+               str = g_strdup_printf (_("%d∶%02d"), minutes, seconds);
        else
-               str = g_strdup_printf (_("%d:%02d:%02d"), hours, minutes, seconds);
+               str = g_strdup_printf (_("%d∶%02d∶%02d"), hours, minutes, seconds);
 
        return str;
 }
@@ -953,7 +953,7 @@ interact (InteractData *data)
        g_source_set_callback (insrc, (GSourceFunc) interact_input, data, NULL);
 
        /* should print this before dbus setup, really */
-       g_print (_("Press 'h' for help."));
+       g_print (_("Press “h” for help."));
        g_print ("\r\n\r\n");
        g_source_attach (insrc, g_main_loop_get_context (mainloop));
 
diff --git a/rhythmdb/rhythmdb.c b/rhythmdb/rhythmdb.c
index c00798392..5e1db7288 100644
--- a/rhythmdb/rhythmdb.c
+++ b/rhythmdb/rhythmdb.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+/* -*- Mode: C; coding: utf-8; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
  *
  *  Copyright (C) 2003,2004 Colin Walters <walters gnome org>
  *
@@ -786,7 +786,7 @@ make_access_failed_error (const char *uri, GError *access_error)
 
        error = g_error_new (RHYTHMDB_ERROR,
                             RHYTHMDB_ERROR_ACCESS_FAILED,
-                            _("Couldn't access %s: %s"),
+                            _("Couldn’t access %s: %s"),
                             utf8ised,
                             access_error->message);
        rb_debug ("got error on %s: %s", uri, error->message);
diff --git a/shell/rb-application.c b/shell/rb-application.c
index 7550f669f..3262e5c2b 100644
--- a/shell/rb-application.c
+++ b/shell/rb-application.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+/* -*- Mode: C; coding: utf-8; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
  *
  *  Copyright (C) 2012 Jonathan Matthew <jonathan d14n org>
  *
@@ -290,7 +290,7 @@ help_action_cb (GSimpleAction *action, GVariant *parameters, gpointer user_data)
                      &error);
 
        if (error != NULL) {
-               rb_error_dialog (NULL, _("Couldn't display help"),
+               rb_error_dialog (NULL, _("Couldn’t display help"),
                                 "%s", error->message);
                g_error_free (error);
        }
@@ -632,7 +632,7 @@ rb_application_run (RBApplication *app, int argc, char **argv)
                { "debug-match",     'D', 0, G_OPTION_ARG_STRING,       &debug_match,     N_("Enable debug 
output matching a specified string"), NULL },
                { "no-update",         0, 0, G_OPTION_ARG_NONE,         &app->priv->no_update, N_("Do not 
update the library with file changes"), NULL },
                { "no-registration", 'n', 0, G_OPTION_ARG_NONE,         &app->priv->no_registration, N_("Do 
not register the shell"), NULL },
-               { "dry-run",           0, 0, G_OPTION_ARG_NONE,         &app->priv->dry_run,         
N_("Don't save any data permanently (implies --no-registration)"), NULL },
+               { "dry-run",           0, 0, G_OPTION_ARG_NONE,         &app->priv->dry_run,         
N_("Don’t save any data permanently (implies --no-registration)"), NULL },
                { "disable-plugins",   0, 0, G_OPTION_ARG_NONE,         &app->priv->disable_plugins, 
N_("Disable loading of plugins"), NULL },
                { "rhythmdb-file",     0, 0, G_OPTION_ARG_STRING,       &app->priv->rhythmdb_file,   N_("Path 
for database file to use"), NULL },
                { "playlists-file",    0, 0, G_OPTION_ARG_STRING,       &app->priv->playlists_file,   
N_("Path for playlists file to use"), NULL },
@@ -648,7 +648,7 @@ rb_application_run (RBApplication *app, int argc, char **argv)
        nargc = argc;
        nargv = argv;
        if (g_option_context_parse (context, &nargc, &nargv, &error) == FALSE) {
-               g_print (_("%s\nRun '%s --help' to see a full list of available command line options.\n"),
+               g_print (_("%s\nRun “%s --help” to see a full list of available command line options.\n"),
                         error->message, argv[0]);
                g_error_free (error);
                g_option_context_free (context);
diff --git a/shell/rb-playlist-manager.c b/shell/rb-playlist-manager.c
index c4809a6ce..fa29d29c2 100644
--- a/shell/rb-playlist-manager.c
+++ b/shell/rb-playlist-manager.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+/* -*- Mode: C; coding: utf-8; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
  *
  *  Copyright (C) 2003,2004 Colin Walters <walters gnome org>
  *
@@ -1052,7 +1052,7 @@ load_playlist_response_cb (GtkDialog *dialog,
                return;
 
        if (!rb_playlist_manager_parse_file (mgr, escaped_file, &error)) {
-               rb_error_dialog (NULL, _("Couldn't read playlist"),
+               rb_error_dialog (NULL, _("Couldn’t read playlist"),
                                 "%s", error->message);
                g_error_free (error);
        }
@@ -1139,7 +1139,7 @@ save_playlist_response_cb (GtkDialog *dialog,
        }
 
        if (export_type == RB_PLAYLIST_EXPORT_TYPE_UNKNOWN) {
-               rb_error_dialog (NULL, _("Couldn't save playlist"), _("Unsupported file extension given."));
+               rb_error_dialog (NULL, _("Couldn’t save playlist"), _("Unsupported file extension given."));
        } else {
                rb_playlist_source_save_playlist (RB_PLAYLIST_SOURCE (source), file, export_type);
                gtk_widget_destroy (GTK_WIDGET (dialog));
diff --git a/shell/rb-shell-player.c b/shell/rb-shell-player.c
index 4f7ab0a36..f73075035 100644
--- a/shell/rb-shell-player.c
+++ b/shell/rb-shell-player.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+/* -*- Mode: C; coding: utf-8; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
  *
  *  Copyright (C) 2002, 2003 Jorn Baayen <jorn nl linux org>
  *  Copyright (C) 2002,2003 Colin Walters <walters debian org>
@@ -2121,7 +2121,7 @@ rb_shell_player_stop (RBShellPlayer *player)
                rb_player_close (player->priv->mmplayer, NULL, &error);
        if (error) {
                rb_error_dialog (NULL,
-                                _("Couldn't stop playback"),
+                                _("Couldn’t stop playback"),
                                 "%s", error->message);
                g_error_free (error);
        }
@@ -2462,7 +2462,7 @@ rb_shell_player_error (RBShellPlayer *player,
                 * unless we've got more URLs to try */
                if (g_queue_is_empty (player->priv->playlist_urls)) {
                        rb_error_dialog (NULL,
-                                        _("Couldn't start playback"),
+                                        _("Couldn’t start playback"),
                                         "%s", (err) ? err->message : "(null)");
                        rb_shell_player_stop (player);
                        do_next = FALSE;
@@ -2773,7 +2773,7 @@ play_action_cb (GSimpleAction *action, GVariant *parameter, gpointer user_data)
        rb_debug ("play!");
        if (rb_shell_player_playpause (player, &error) == FALSE) {
                rb_error_dialog (NULL,
-                                _("Couldn't start playback"),
+                                _("Couldn’t start playback"),
                                 "%s", (error) ? error->message : "(null)");
        }
        g_clear_error (&error);
diff --git a/shell/rb-shell-preferences.c b/shell/rb-shell-preferences.c
index 7073bcc1b..f15ab5b63 100644
--- a/shell/rb-shell-preferences.c
+++ b/shell/rb-shell-preferences.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+/* -*- Mode: C; coding: utf-8; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
  *
  *  Copyright (C) 2002 Jorn Baayen <jorn nl linux org>
  *  Copyright (C) 2003 Colin Walters <walters debian org>
@@ -160,7 +160,7 @@ help_cb (GtkWidget *widget,
 
        if (error != NULL) {
                rb_error_dialog (NULL,
-                                _("Couldn't display help"),
+                                _("Couldn’t display help"),
                                 "%s", error->message);
 
                g_error_free (error);
diff --git a/shell/rb-track-transfer-queue.c b/shell/rb-track-transfer-queue.c
index d5f9de00a..b483d7d09 100644
--- a/shell/rb-track-transfer-queue.c
+++ b/shell/rb-track-transfer-queue.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/* -*- Mode: C; coding: utf-8; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
 /*
  *  Copyright (C) 2010 Jonathan Matthew  <jonathan d14n org>
  *
@@ -171,7 +171,7 @@ overwrite_prompt (RBTrackTransferBatch *batch, const char *uri, RBTrackTransferQ
                }
 
                g_object_get (queue->priv->shell, "window", &window, NULL);
-               text = g_strdup_printf (_("The file \"%s\" already exists. Do you want to replace it?"),
+               text = g_strdup_printf (_("The file “%s” already exists. Do you want to replace it?"),
                                        display_name);
                dialog = rb_alert_dialog_new (window,
                                              0,
diff --git a/sources/rb-media-player-source.c b/sources/rb-media-player-source.c
index cb8eade20..2678f2f1e 100644
--- a/sources/rb-media-player-source.c
+++ b/sources/rb-media-player-source.c
@@ -889,7 +889,7 @@ display_sync_settings_dialog (RBMediaPlayerSource *source)
                                                         0,
                                                         _("Sync with the device"),
                                                         GTK_RESPONSE_YES,
-                                                        _("Don't sync"),
+                                                        _("Don’t sync"),
                                                         GTK_RESPONSE_CANCEL,
                                                         NULL);
        g_free (title);
diff --git a/sources/rb-playlist-source.c b/sources/rb-playlist-source.c
index 989413e06..bbdb2e30d 100644
--- a/sources/rb-playlist-source.c
+++ b/sources/rb-playlist-source.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+/* -*- Mode: C; coding: utf-8; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
 /*
  *  Copyright (C) 2002 Jorn Baayen <jorn nl linux org>
  *  Copyright (C) 2003 Colin Walters <walters gnome org>
@@ -705,7 +705,7 @@ rb_playlist_source_save_playlist (RBPlaylistSource *source,
        g_object_unref (pl);
        g_free (name);
        if (error != NULL) {
-               rb_error_dialog (NULL, _("Couldn't save playlist"),
+               rb_error_dialog (NULL, _("Couldn’t save playlist"),
                                 "%s", error->message);
                g_error_free (error);
        }
diff --git a/widgets/rb-song-info.c b/widgets/rb-song-info.c
index 202f3d36e..24aee6224 100644
--- a/widgets/rb-song-info.c
+++ b/widgets/rb-song-info.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+/* -*- Mode: C; coding: utf-8; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
  *
  *  Copyright (C) 2002 Olivier Martin <olive martin gmail com>
  *  Copyright (C) 2003 Colin Walters <walters verbum org>
@@ -1250,7 +1250,7 @@ rb_song_info_update_duration (RBSongInfo *song_info)
        duration = rhythmdb_entry_get_ulong (song_info->priv->current_entry, RHYTHMDB_PROP_DURATION);
        minutes = duration / 60;
        seconds = duration % 60;
-       text = g_strdup_printf ("%d:%02d", minutes, seconds);
+       text = g_strdup_printf ("%d∶%02d", minutes, seconds);
        gtk_label_set_text (GTK_LABEL (song_info->priv->duration), text);
        g_free (text);
 }



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]