diff mbox series

ui/gtk: fix gettext message's charset.

Message ID 20191116031037.1207-1-yanminhui163@163.com
State New
Headers show
Series ui/gtk: fix gettext message's charset. | expand

Commit Message

yanminhui Nov. 16, 2019, 3:10 a.m. UTC
Signed-off-by: yanminhui <yanminhui163@163.com>
---
 po/zh_CN.po | 2 +-
 ui/gtk.c    | 1 +
 2 files changed, 2 insertions(+), 1 deletion(-)

Comments

Gerd Hoffmann Nov. 21, 2019, 10:16 a.m. UTC | #1
On Thu, Nov 21, 2019 at 10:30:38AM +0800, yanminhui163 wrote:
> I had compiled on NeoKylin (i18n LANG=zh_CN.UTF-8), but gtk menu's text is wrong.

Please keep the qemu-devel mailing list Cc'ed (reply-to-all should do this).

So qemu doesn't do a full locate setup, to avoid confusing non-gtk parts
of qemu (see longish comments in ui/gtk.c).  Which is probably the
reason why the menus are not working properly, any non-ascii characters
are not displayed as question marks.  Explicitly calling
bind_textdomain_codeset() does indeed fix that.

It might not work for non-utf8 locales (latin1, big5, ...), but is still
a clear improvement over the current situation.  Unlike setlocale() it
should not have unwanted side effects elsewhere, so lets go with it.

Queued up for 4.2.

thanks,
  Gerd
diff mbox series

Patch

diff --git a/po/zh_CN.po b/po/zh_CN.po
index b25e8e3c02..38de6a4f2a 100644
--- a/po/zh_CN.po
+++ b/po/zh_CN.po
@@ -66,7 +66,7 @@  msgid "Detach Tab"
 msgstr "分离标签页"
 
 msgid "Show Menubar"
-msgstr ""
+msgstr "显示菜单栏"
 
 msgid "_Machine"
 msgstr "虚拟机(_M)"
diff --git a/ui/gtk.c b/ui/gtk.c
index 2f23922afc..692ccc7bbb 100644
--- a/ui/gtk.c
+++ b/ui/gtk.c
@@ -2215,6 +2215,7 @@  static void gtk_display_init(DisplayState *ds, DisplayOptions *opts)
     setlocale(LC_MESSAGES, "");
     setlocale(LC_CTYPE, "C.UTF-8");
     bindtextdomain("qemu", CONFIG_QEMU_LOCALEDIR);
+    bind_textdomain_codeset("qemu", "UTF-8");
     textdomain("qemu");
 
     window_display = gtk_widget_get_display(s->window);