forked from mirrors/nixpkgs
281775bb1a
Cherry picked from 260194193c
in staging as suggested by
https://github.com/NixOS/nixpkgs/pull/38763#issuecomment-380504142.
95 lines
2.2 KiB
Diff
95 lines
2.2 KiB
Diff
--- a/git-sh-i18n.sh
|
|
+++ b/git-sh-i18n.sh
|
|
@@ -15,87 +15,11 @@
|
|
fi
|
|
export TEXTDOMAINDIR
|
|
|
|
-# First decide what scheme to use...
|
|
-GIT_INTERNAL_GETTEXT_SH_SCHEME=fallthrough
|
|
-if test -n "$GIT_GETTEXT_POISON"
|
|
-then
|
|
- GIT_INTERNAL_GETTEXT_SH_SCHEME=poison
|
|
-elif test -n "@@USE_GETTEXT_SCHEME@@"
|
|
-then
|
|
- GIT_INTERNAL_GETTEXT_SH_SCHEME="@@USE_GETTEXT_SCHEME@@"
|
|
-elif test -n "$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS"
|
|
-then
|
|
- : no probing necessary
|
|
-elif type gettext.sh >/dev/null 2>&1
|
|
-then
|
|
- # GNU libintl's gettext.sh
|
|
- GIT_INTERNAL_GETTEXT_SH_SCHEME=gnu
|
|
-elif test "$(gettext -h 2>&1)" = "-h"
|
|
-then
|
|
- # gettext binary exists but no gettext.sh. likely to be a gettext
|
|
- # binary on a Solaris or something that is not GNU libintl and
|
|
- # lack eval_gettext.
|
|
- GIT_INTERNAL_GETTEXT_SH_SCHEME=gettext_without_eval_gettext
|
|
-fi
|
|
-export GIT_INTERNAL_GETTEXT_SH_SCHEME
|
|
-
|
|
-# ... and then follow that decision.
|
|
-case "$GIT_INTERNAL_GETTEXT_SH_SCHEME" in
|
|
-gnu)
|
|
- # Use libintl's gettext.sh, or fall back to English if we can't.
|
|
- . gettext.sh
|
|
- ;;
|
|
-gettext_without_eval_gettext)
|
|
- # Solaris has a gettext(1) but no eval_gettext(1)
|
|
- eval_gettext () {
|
|
- gettext "$1" | (
|
|
- export PATH $(git sh-i18n--envsubst --variables "$1");
|
|
- git sh-i18n--envsubst "$1"
|
|
- )
|
|
- }
|
|
-
|
|
- eval_ngettext () {
|
|
- ngettext "$1" "$2" "$3" | (
|
|
- export PATH $(git sh-i18n--envsubst --variables "$2");
|
|
- git sh-i18n--envsubst "$2"
|
|
- )
|
|
- }
|
|
- ;;
|
|
-poison)
|
|
- # Emit garbage so that tests that incorrectly rely on translatable
|
|
- # strings will fail.
|
|
- gettext () {
|
|
- printf "%s" "# GETTEXT POISON #"
|
|
- }
|
|
-
|
|
- eval_gettext () {
|
|
- printf "%s" "# GETTEXT POISON #"
|
|
- }
|
|
-
|
|
- eval_ngettext () {
|
|
- printf "%s" "# GETTEXT POISON #"
|
|
- }
|
|
- ;;
|
|
-*)
|
|
- gettext () {
|
|
- printf "%s" "$1"
|
|
- }
|
|
-
|
|
- eval_gettext () {
|
|
- printf "%s" "$1" | (
|
|
- export PATH $(git sh-i18n--envsubst --variables "$1");
|
|
- git sh-i18n--envsubst "$1"
|
|
- )
|
|
- }
|
|
+# GNU gettext
|
|
+export GIT_INTERNAL_GETTEXT_SH_SCHEME=gnu
|
|
+export PATH=@gettext@/bin:$PATH
|
|
|
|
- eval_ngettext () {
|
|
- (test "$3" = 1 && printf "%s" "$1" || printf "%s" "$2") | (
|
|
- export PATH $(git sh-i18n--envsubst --variables "$2");
|
|
- git sh-i18n--envsubst "$2"
|
|
- )
|
|
- }
|
|
- ;;
|
|
-esac
|
|
+. @gettext@/bin/gettext.sh
|
|
|
|
# Git-specific wrapper functions
|
|
gettextln () {
|