summaryrefslogtreecommitdiff
path: root/gtk+-mingw/bin/gettext.sh
diff options
context:
space:
mode:
authorLeo Tenenbaum <pommicket@gmail.com>2018-08-20 20:34:57 -0400
committerLeo Tenenbaum <pommicket@gmail.com>2018-08-20 20:34:57 -0400
commita4460f6d9453bbd7e584937686449cef3e19f052 (patch)
tree037c208f1e20302ed048c0952ef8e3418add9c86 /gtk+-mingw/bin/gettext.sh
Initial commit0.0.0
Diffstat (limited to 'gtk+-mingw/bin/gettext.sh')
-rw-r--r--gtk+-mingw/bin/gettext.sh123
1 files changed, 123 insertions, 0 deletions
diff --git a/gtk+-mingw/bin/gettext.sh b/gtk+-mingw/bin/gettext.sh
new file mode 100644
index 0000000..2369ab5
--- /dev/null
+++ b/gtk+-mingw/bin/gettext.sh
@@ -0,0 +1,123 @@
+#! /bin/sh
+#
+# Copyright (C) 2003, 2005-2007 Free Software Foundation, Inc.
+#
+# This program is free software; you can redistribute it and/or modify it
+# under the terms of the GNU Library General Public License as published
+# by the Free Software Foundation; either version 2, or (at your option)
+# any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU Library General Public
+# License along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301,
+# USA.
+#
+
+# Find a way to echo strings without interpreting backslash.
+if test "X`(echo '\t') 2>/dev/null`" = 'X\t'; then
+ echo='echo'
+else
+ if test "X`(printf '%s\n' '\t') 2>/dev/null`" = 'X\t'; then
+ echo='printf %s\n'
+ else
+ echo_func () {
+ cat <<EOT
+$*
+EOT
+ }
+ echo='echo_func'
+ fi
+fi
+
+# This script is primarily a shell function library. In order for
+# ". gettext.sh" to find it, we install it in $PREFIX/bin (that is usually
+# contained in $PATH), rather than in some other location such as
+# $PREFIX/share/sh-scripts or $PREFIX/share/gettext. In order to not violate
+# the Filesystem Hierarchy Standard when doing so, this script is executable.
+# Therefore it needs to support the standard --help and --version.
+if test -z "$ZSH_VERSION"; then
+ # zsh is not POSIX compliant: By default, while ". gettext.sh" is executed,
+ # it sets $0 to "gettext.sh", defeating the purpose of this test. But
+ # fortunately we know that when running under zsh, this script is always
+ # being sourced, not executed, because hardly anyone is crazy enough to
+ # install zsh as /bin/sh.
+ case "$0" in
+ gettext.sh | */gettext.sh | *\\gettext.sh)
+ progname=$0
+ package=gettext-runtime
+ version=0.18.1
+ # func_usage
+ # outputs to stdout the --help usage message.
+ func_usage ()
+ {
+ echo "GNU gettext shell script function library version $version"
+ echo "Usage: . gettext.sh"
+ }
+ # func_version
+ # outputs to stdout the --version message.
+ func_version ()
+ {
+ echo "$progname (GNU $package) $version"
+ echo "Copyright (C) 2003-2007 Free Software Foundation, Inc.
+License GPLv2+: GNU GPL version 2 or later <http://gnu.org/licenses/gpl.html>
+This is free software: you are free to change and redistribute it.
+There is NO WARRANTY, to the extent permitted by law."
+ echo "Written by" "Bruno Haible"
+ }
+ if test $# = 1; then
+ case "$1" in
+ --help | --hel | --he | --h )
+ func_usage; exit 0 ;;
+ --version | --versio | --versi | --vers | --ver | --ve | --v )
+ func_version; exit 0 ;;
+ esac
+ fi
+ func_usage 1>&2
+ exit 1
+ ;;
+ esac
+fi
+
+# eval_gettext MSGID
+# looks up the translation of MSGID and substitutes shell variables in the
+# result.
+eval_gettext () {
+ gettext "$1" | (export PATH `envsubst --variables "$1"`; envsubst "$1")
+}
+
+# eval_ngettext MSGID MSGID-PLURAL COUNT
+# looks up the translation of MSGID / MSGID-PLURAL for COUNT and substitutes
+# shell variables in the result.
+eval_ngettext () {
+ ngettext "$1" "$2" "$3" | (export PATH `envsubst --variables "$1 $2"`; envsubst "$1 $2")
+}
+
+# Note: This use of envsubst is much safer than using the shell built-in 'eval'
+# would be.
+# 1) The security problem with Chinese translations that happen to use a
+# character such as \xe0\x60 is avoided.
+# 2) The security problem with malevolent translators who put in command lists
+# like "$(...)" or "`...`" is avoided.
+# 3) The translations can only refer to shell variables that are already
+# mentioned in MSGID or MSGID-PLURAL.
+#
+# Note: "export PATH" above is a dummy; this is for the case when
+# `envsubst --variables ...` returns nothing.
+#
+# Note: In eval_ngettext above, "$1 $2" means a string whose variables set is
+# the union of the variables set of "$1" and "$2".
+#
+# Note: The minimal use of backquote above ensures that trailing newlines are
+# not dropped, not from the gettext invocation and not from the value of any
+# shell variable.
+#
+# Note: Field splitting on the `envsubst --variables ...` result is desired,
+# since envsubst outputs the variables, separated by newlines. Pathname
+# wildcard expansion or tilde expansion has no effect here, since the words
+# output by "envsubst --variables ..." consist solely of alphanumeric
+# characters and underscore.