Blob Blame History Raw
From ad7c3eb581627159959cbfa5c57b0a76eb2d99e7 Mon Sep 17 00:00:00 2001
From: Mamoru TASAKA <mtasaka@fedoraproject.org>
Date: Wed, 24 Mar 2021 00:10:36 +0900
Subject: [PATCH] xscreensaver-gfx: set locate with gettext mechanism

To make some strings translated for xscreensaver-gfx, set locale with gettext mechanism.
Also, adjust Makefile to pass cflags.
---
 driver/Makefile.in        |  4 +++-
 driver/xscreensaver-gfx.c | 15 +++++++++++++++
 2 files changed, 18 insertions(+), 1 deletion(-)

diff --git a/driver/Makefile.in b/driver/Makefile.in
index 2c3c1c9..d5c12a8 100644
--- a/driver/Makefile.in
+++ b/driver/Makefile.in
@@ -104,7 +104,7 @@ DAEMON_OBJS	= xscreensaver.o blurb.o atoms.o clientmsg.o xinput.o prefs.o \
 		  $(UTILS_BIN)/xmu.o
 DAEMON_LIBS	= $(LIBS_PRE) $(XINPUT_LIBS) -lX11 $(LIBS_POST)
 
-GFX_DEFS	= 
+GFX_DEFS	= -DLOCALEDIR=\"$(localedir)\"
 GFX_SRCS	= xscreensaver-gfx.c screens.c windows.c subprocs.c \
 		  exec.c prefsw.c dpms.c fade.c exts.c atomswm.c
 GFX_OBJS	= xscreensaver-gfx.o screens.o windows.o subprocs.o \
@@ -833,6 +833,8 @@ xscreensaver: $(DAEMON_OBJS)
 	$(CC) $(LDFLAGS) -o $@ $(DAEMON_OBJS) $(DAEMON_LIBS)
 
 xscreensaver-gfx.o: XScreenSaver_ad.h
+xscreensaver-gfx.o: xscreensaver-gfx.c
+	$(CC) -c $(CC_ALL) $(GFX_DEFS) $<
 xscreensaver-gfx: $(GFX_OBJS)
 	$(CC) $(LDFLAGS) -o $@ $(GFX_OBJS) $(GFX_LIBS)
 
diff --git a/driver/xscreensaver-gfx.c b/driver/xscreensaver-gfx.c
index 61c50d5..b9c06e2 100644
--- a/driver/xscreensaver-gfx.c
+++ b/driver/xscreensaver-gfx.c
@@ -42,6 +42,10 @@
 # include <X11/extensions/Xrandr.h>
 #endif /* HAVE_RANDR */
 
+#ifdef ENABLE_NLS
+# include <libintl.h>
+#endif
+
 #include "xscreensaver.h"
 #include "version.h"
 #include "atoms.h"
@@ -559,6 +563,17 @@ main (int argc, char **argv)
   putenv (s);
   /* free (s); */  /* some versions of putenv do not copy */
 
+# ifdef ENABLE_NLS
+  {
+    bindtextdomain (GETTEXT_PACKAGE, LOCALEDIR);
+    textdomain (GETTEXT_PACKAGE);
+    bind_textdomain_codeset (GETTEXT_PACKAGE, "UTF-8");
+    if (!setlocale (LC_ALL, ""))
+      fprintf (stderr, "%s: warning: could not set default locale\n",
+               progname);
+  }
+# endif /* ENABLE_NLS */
+
   connect_to_server (si);
 
   if (p->xsync_p)
-- 
2.30.2