| @c This file is part of the GNU gettext manual. |
| @c Copyright (C) 1995-2020 Free Software Foundation, Inc. |
| @c See the file gettext.texi for copying conditions. |
| |
| @node Tcl |
| @subsection Tcl - Tk's scripting language |
| @cindex Tcl |
| @cindex Tk's scripting language |
| |
| @table @asis |
| @item RPMs |
| tcl |
| |
| @item Ubuntu packages |
| tcl |
| |
| @item File extension |
| @code{tcl} |
| |
| @item String syntax |
| @code{"abc"} |
| |
| @item gettext shorthand |
| @code{[_ "abc"]} |
| |
| @item gettext/ngettext functions |
| @code{::msgcat::mc} |
| |
| @item textdomain |
| --- |
| |
| @item bindtextdomain |
| ---, use @code{::msgcat::mcload} instead |
| |
| @item setlocale |
| automatic, uses LANG, but ignores LC_MESSAGES and LC_ALL |
| |
| @item Prerequisite |
| @code{package require msgcat} |
| @*@code{proc _ @{s@} @{return [::msgcat::mc $s]@}} |
| |
| @item Use or emulate GNU gettext |
| ---, uses a Tcl specific message catalog format |
| |
| @item Extractor |
| @code{xgettext -k_} |
| |
| @item Formatting with positions |
| @code{format "%2\$d %1\$d"} |
| |
| @item Portability |
| fully portable |
| |
| @item po-mode marking |
| --- |
| @end table |
| |
| Two examples are available in the @file{examples} directory: |
| @code{hello-tcl}, @code{hello-tcl-tk}. |
| |
| Before marking strings as internationalizable, substitutions of variables |
| into the string need to be converted to @code{format} applications. For |
| example, @code{"file $filename not found"} becomes |
| @code{[format "file %s not found" $filename]}. |
| Only after this is done, can the strings be marked and extracted. |
| After marking, this example becomes |
| @code{[format [_ "file %s not found"] $filename]} or |
| @code{[msgcat::mc "file %s not found" $filename]}. Note that the |
| @code{msgcat::mc} function implicitly calls @code{format} when more than one |
| argument is given. |