Edit report at https://bugs.php.net/bug.php?id=51285&edit=1

 ID:                 51285
 Comment by:         n dot oxyde at gmail dot com
 Reported by:        jani dot ollikainen at pronetko dot fi
 Summary:            pgettext() and variants support for PHP
 Status:             Open
 Type:               Feature/Change Request
 Package:            Gettext related
 PHP Version:        5.3.2
 Block user comment: N
 Private report:     N

 New Comment:

You don't need builtin support of pcontext() functions to use Gettext contexts.

1/ Define the functions yourself:

        function pgettext($context, $message)
        {
                return gettext($actual_message);
        }

        function dpgettext($domain, $context, $message)
        {
                $actual_message = $context . "\04" . $message;
                return dgettext($domain, $actual_message);
        }

        function dcpgettext($domain, $context, $message, $category)
        {
                $actual_message = $context . "\04" . $message;
                return dcgettext($domain, $actual_message, $category);
        }

        function npgettext($context, $msgid1, $msgid2, $n)
        {
                $actual_msgid1 = $context . "\04" . $msgid1;
                $actual_msgid2 = $context . "\04" . $msgid2;
                return ngettext($actual_msgid1, $actual_msgid2, $n);
        }

        function dnpgettext($domain, $context, $msgid1, $msgid2, $n)
        {
                $actual_msgid1 = $context . "\04" . $msgid1;
                $actual_msgid2 = $context . "\04" . $msgid2;
                return dngettext($domain, $actual_msgid1, $actual_msgid2, $n);
        }

        function dcnpgettext(
                $domain, $context, $msgid1, $msgid2, $n, $category)
        {
                $actual_msgid1 = $context . "\04" . $msgid1;
                $actual_msgid2 = $context . "\04" . $msgid2;
                return dcngettext(
                        $domain, $actual_msgid1, $actual_msgid2, $n, $category);
        }

2/ Pass additional keywords arguments to xgettext:

        xgettext \
                -kpgettext:1c,2 \
                -kdpgettext:2c,3 \
                -kdcpgettext:2c,3 \
                -knpgettext:1c,2,3 \
                -kdnpgettext:2c,3,4 \
                -kdcnpgettext:2c,3,4


Previous Comments:
------------------------------------------------------------------------
[2010-03-12 14:56:28] jani dot ollikainen at pronetko dot fi

Description:
------------
Newer gettext libraries provide Contexts to translate words that could
be need context based translation in other languages.

http://www.gnu.org/software/gettext/manual/gettext.html#Contexts

PHP's gettext library doesn't support those.




------------------------------------------------------------------------



-- 
Edit this bug report at https://bugs.php.net/bug.php?id=51285&edit=1

Reply via email to