�&ǐk�@'bJ�h�ۊL'}T� :��'2�Z#$��n�a��� �>a��`��_3d�Qpt�/�P -��#5�,�M��� �pA:©�q�����NW��ډ�A���� �9nʺج���� �TSM��{J6?7��r�@�\����D��� �׶���s�f�TJj?"��D��`?��̒� b�#�%�C*v�$�{�$����5Ծ�F�s��y�e/8��h-�f�̰&(����Gj�L:U� 2�� ����v�_k����Y��gp,�k�WF�R������_C�R��N@���R�@�ߔ?A�w9���F("iNa-S���Q�o�3tDMLh*�#4k�T/iQ��Y*�G��m����)��8�hBm/�I�,g�ﯖ���Z��}�Cz�q@´��d.����L�ŕ�,��1�Z�܌�: ̪���F+J-'��c�tvJ8��]Q-��b��y �6;*J`r_�d ��'�G ~p��)'�C,�%F��E(��2�k�����lР�z�!�=t ��_�0��f7��� ;�p�|�U �%. # # 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 < 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") } # eval_pgettext MSGCTXT MSGID # looks up the translation of MSGID in the context MSGCTXT and substitutes # shell variables in the result. eval_pgettext () { gettext --context="$1" "$2" | (export PATH `envsubst --variables "$2"`; envsubst "$2") } # eval_npgettext MSGCTXT MSGID MSGID-PLURAL COUNT # looks up the translation of MSGID / MSGID-PLURAL for COUNT in the context # MSGCTXT and substitutes shell variables in the result. eval_npgettext () { ngettext --context="$1" "$2" "$3" "$4" | (export PATH `envsubst --variables "$2 $3"`; envsubst "$2 $3") } # 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.