Changeset 782 for git/branches/dmik/git-sh-i18n.sh
- Timestamp:
- Jun 23, 2014, 9:45:51 PM (11 years ago)
- Location:
- git/branches/dmik
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
git/branches/dmik ¶
- Property svn:mergeinfo changed
/git/vendor/2.0.0 (added) merged: 777 /git/vendor/current merged: 772,774,776
- Property svn:mergeinfo changed
-
TabularUnified git/branches/dmik/git-sh-i18n.sh ¶
r626 r782 1 #!/bin/sh 1 # This shell library is Git's interface to gettext.sh. See po/README 2 # for usage instructions. 2 3 # 3 4 # Copyright (c) 2010 Ãvar Arnfjörð Bjarmason 4 5 # 5 # This is Git's interface to gettext.sh. See po/README for usage6 # instructions.7 6 8 7 # Export the TEXTDOMAIN* data that we need for Git … … 17 16 export TEXTDOMAINDIR 18 17 19 if test -z "$GIT_GETTEXT_POISON" 18 # First decide what scheme to use... 19 GIT_INTERNAL_GETTEXT_SH_SCHEME=fallthrough 20 if test -n "@@USE_GETTEXT_SCHEME@@" 20 21 then 21 if test -z "$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS" && type gettext.sh >/dev/null 2>&1 22 then 23 # This is GNU libintl's gettext.sh, we don't need to do anything 24 # else than setting up the environment and loading gettext.sh 25 GIT_INTERNAL_GETTEXT_SH_SCHEME=gnu 26 export GIT_INTERNAL_GETTEXT_SH_SCHEME 22 GIT_INTERNAL_GETTEXT_SH_SCHEME="@@USE_GETTEXT_SCHEME@@" 23 elif test -n "$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS" 24 then 25 : no probing necessary 26 elif test -n "$GIT_GETTEXT_POISON" 27 then 28 GIT_INTERNAL_GETTEXT_SH_SCHEME=poison 29 elif type gettext.sh >/dev/null 2>&1 30 then 31 # GNU libintl's gettext.sh 32 GIT_INTERNAL_GETTEXT_SH_SCHEME=gnu 33 elif test "$(gettext -h 2>&1)" = "-h" 34 then 35 # gettext binary exists but no gettext.sh. likely to be a gettext 36 # binary on a Solaris or something that is not GNU libintl and 37 # lack eval_gettext. 38 GIT_INTERNAL_GETTEXT_SH_SCHEME=gettext_without_eval_gettext 39 fi 40 export GIT_INTERNAL_GETTEXT_SH_SCHEME 27 41 28 # Try to use libintl's gettext.sh, or fall back to English if we 29 # can't. 30 . gettext.sh 31 32 elif test -z "$GIT_INTERNAL_GETTEXT_TEST_FALLBACKS" && test "$(gettext -h 2>&1)" = "-h" 33 then 34 # We don't have gettext.sh, but there's a gettext binary in our 35 # path. This is probably Solaris or something like it which has a 36 # gettext implementation that isn't GNU libintl. 37 GIT_INTERNAL_GETTEXT_SH_SCHEME=solaris 38 export GIT_INTERNAL_GETTEXT_SH_SCHEME 39 40 # Solaris has a gettext(1) but no eval_gettext(1) 41 eval_gettext () { 42 gettext "$1" | ( 43 export PATH $(git sh-i18n--envsubst --variables "$1"); 44 git sh-i18n--envsubst "$1" 45 ) 46 } 47 48 else 49 # Since gettext.sh isn't available we'll have to define our own 50 # dummy pass-through functions. 51 52 # Tell our tests that we don't have the real gettext.sh 53 GIT_INTERNAL_GETTEXT_SH_SCHEME=fallthrough 54 export GIT_INTERNAL_GETTEXT_SH_SCHEME 55 56 gettext () { 57 printf "%s" "$1" 58 } 59 60 eval_gettext () { 61 printf "%s" "$1" | ( 62 export PATH $(git sh-i18n--envsubst --variables "$1"); 63 git sh-i18n--envsubst "$1" 64 ) 65 } 66 fi 67 else 68 # Emit garbage under GETTEXT_POISON=YesPlease. Unlike the C tests 69 # this relies on an environment variable 70 71 GIT_INTERNAL_GETTEXT_SH_SCHEME=poison 72 export GIT_INTERNAL_GETTEXT_SH_SCHEME 73 42 # ... and then follow that decision. 43 case "$GIT_INTERNAL_GETTEXT_SH_SCHEME" in 44 gnu) 45 # Use libintl's gettext.sh, or fall back to English if we can't. 46 . gettext.sh 47 ;; 48 gettext_without_eval_gettext) 49 # Solaris has a gettext(1) but no eval_gettext(1) 50 eval_gettext () { 51 gettext "$1" | ( 52 export PATH $(git sh-i18n--envsubst --variables "$1"); 53 git sh-i18n--envsubst "$1" 54 ) 55 } 56 ;; 57 poison) 58 # Emit garbage so that tests that incorrectly rely on translatable 59 # strings will fail. 74 60 gettext () { 75 61 printf "%s" "# GETTEXT POISON #" … … 79 65 printf "%s" "# GETTEXT POISON #" 80 66 } 81 fi 67 ;; 68 *) 69 gettext () { 70 printf "%s" "$1" 71 } 72 73 eval_gettext () { 74 printf "%s" "$1" | ( 75 export PATH $(git sh-i18n--envsubst --variables "$1"); 76 git sh-i18n--envsubst "$1" 77 ) 78 } 79 ;; 80 esac 82 81 83 82 # Git-specific wrapper functions
Note:
See TracChangeset
for help on using the changeset viewer.