[PATCH] Add i18n support

Dmitry V. Levin ldv at altlinux.org
Sat Apr 1 14:15:55 UTC 2017


Let's make a step towards the growing strace userbase all around
the world and translate something to the language of their choice.

This change enables translation of error messages corresponding
to errno codes, e.g.

$ LANG=fr_FR strace -P /missing rm -f /missing
newfstatat(AT_FDCWD, "/missing", 0x615478, AT_SYMLINK_NOFOLLOW) = -1 ENOENT (Aucun fichier ou dossier de ce type)
unlinkat(AT_FDCWD, "/missing", 0)       = -1 ENOENT (Aucun fichier ou dossier de ce type)

Subsequent changes may extend i18n support further by implementing
translation of other strings, e.g. syscall names and symbolic constants.

* strace.c: Include <locale.h>.
(main): Call setlocale.
* tests/init.sh: Export LC_ALL=C.
---
 strace.c      | 2 ++
 tests/init.sh | 1 +
 2 files changed, 3 insertions(+)

diff --git a/strace.c b/strace.c
index 7214e6e..3791c3f 100644
--- a/strace.c
+++ b/strace.c
@@ -39,6 +39,7 @@
 #include <pwd.h>
 #include <grp.h>
 #include <dirent.h>
+#include <locale.h>
 #include <sys/utsname.h>
 #ifdef HAVE_PRCTL
 # include <sys/prctl.h>
@@ -2488,6 +2489,7 @@ restart_tracee:
 int
 main(int argc, char *argv[])
 {
+	setlocale(LC_ALL, "");
 	init(argc, argv);
 
 	exit_code = !nprocs;
diff --git a/tests/init.sh b/tests/init.sh
index e190797..f9ce08c 100644
--- a/tests/init.sh
+++ b/tests/init.sh
@@ -25,6 +25,7 @@
 # (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF
 # THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 
+export LC_ALL=C
 ME_="${0##*/}"
 LOG="$ME_.tmp"
 OUT="$LOG.out"

-- 
ldv




More information about the Strace-devel mailing list