Hello, Jan Nieuwenhuizen asked me (the GNU gettext maintainer) for how to support Guile programs in gettext. The idea would be to make libintl bindings at the C level, and add support for Scheme to xgettext and msgfmt. Common Lisp support has already been done long ago; the guile support would therefore be a simple clone of it. I plan to use this sample "hello world" program as an example. Is this OK with you, the guile developers? =============================== hello.scm ================================== #!@GUILE@ -s !# ;;; Example for use of GNU gettext. ;;; Copyright (C) 2004 Free Software Foundation, Inc. ;;; This file is in the public domain. ;;; Source code of the GNU guile program. (use-modules (i18n)) (use-modules (ice-9 format)) (set! (i18n:textdomain) "hello-guile") (set! (i18n:textdomaindir "hello-guile") "@localedir@/") (define _ i18n:gettext) (display (_ "Hello, world!")) (newline) (format #t (_ "This program is running as process number ~D.") (getpid)) (newline) ============================================================================= Attached you find my proposal for the libintl binding module. It is based on the existing interface in GNU clisp, and adapted for guile. Please comment on it. You can use this proposal as a base for the documentation of this interface. Technically, this binding could be distributed with guile or with gettext. I would much prefer if it were part of guile, because this frees the guile user from checking whether the guile-libintl interface is installed or not. The ice-9 format string facility with its ~n@* facility is sufficient for i18n. Is it true that most guile programs use format, not printf, for formatted string output? > without guile properly understanding multi-byte strings it's a bit limited Without proper multibyte or Unicode string support, programs can not do surgery (truncation, uppercase conversion etc.) on strings returned from i18n:gettext, but it can output them. Bruno