{
    "content": [
        {
            "type": "text",
            "text": "# dcngettext(3) (man)\n\n**Summary:** ngettext, dngettext, dcngettext - translate message and choose plural form\n\n## See Also\n\n- gettext(3)\n- dgettext(3)\n- dcgettext(3)\n\n## Section Outline\n\n- **NAME** (2 lines)\n- **SYNOPSIS** (1 lines) — 1 subsections\n  - #include <libintl.h> (9 lines)\n- **DESCRIPTION** (16 lines)\n- **RETURN VALUE** (5 lines)\n- **ERRORS** (2 lines)\n- **BUGS** (3 lines)\n- **SEE ALSO** (5 lines)\n\n## Full Content\n\n### NAME\n\nngettext, dngettext, dcngettext - translate message and choose plural form\n\n### SYNOPSIS\n\n#### #include <libintl.h>\n\nchar * ngettext (const char * msgid, const char * msgidplural,\nunsigned long int n);\nchar * dngettext (const char * domainname,\nconst char * msgid, const char * msgidplural,\nunsigned long int n);\nchar * dcngettext (const char * domainname,\nconst char * msgid, const char * msgidplural,\nunsigned long int n, int category);\n\n### DESCRIPTION\n\nThe  ngettext, dngettext and dcngettext functions attempt to translate a text string into the\nuser's native language, by looking up the appropriate plural form of  the  translation  in  a\nmessage catalog.\n\nPlural  forms  are  grammatical  variants  depending on the a number. Some languages have two\nforms, called singular and plural. Other languages have three forms,  called  singular,  dual\nand plural. There are also languages with four forms.\n\nThe  ngettext,  dngettext and dcngettext functions work like the gettext, dgettext and dcget‐‐\ntext functions, respectively.  Additionally, they choose the appropriate plural  form,  which\ndepends  on  the  number  n and the language of the message catalog where the translation was\nfound.\n\nIn the \"C\" locale, or if none of the used catalogs contain a translation for msgid, the nget‐‐\ntext, dngettext and dcngettext functions return msgid if n == 1, or msgidplural if n != 1.\n\n### RETURN VALUE\n\nIf  a  translation was found in one of the specified catalogs, the appropriate plural form is\nconverted to the locale's codeset and returned. The resulting string is statically  allocated\nand  must not be modified or freed. Otherwise msgid or msgidplural is returned, as described\nabove.\n\n### ERRORS\n\nerrno is not modified.\n\n### BUGS\n\nThe return type ought to be const char *, but is char * to avoid warnings in C code predating\nANSI C.\n\n### SEE ALSO\n\ngettext(3), dgettext(3), dcgettext(3)\n\n\n\nGNU gettext 0.20.1.124-32cf                   May 2001                                   NGETTEXT(3)\n\n"
        }
    ],
    "structuredContent": {
        "command": "dcngettext",
        "section": "3",
        "mode": "man",
        "summary": "ngettext, dngettext, dcngettext - translate message and choose plural form",
        "synopsis": "",
        "flags": [],
        "examples": [],
        "see_also": [
            {
                "name": "gettext",
                "section": "3",
                "url": "https://www.chedong.com/phpMan.php/man/gettext/3/json"
            },
            {
                "name": "dgettext",
                "section": "3",
                "url": "https://www.chedong.com/phpMan.php/man/dgettext/3/json"
            },
            {
                "name": "dcgettext",
                "section": "3",
                "url": "https://www.chedong.com/phpMan.php/man/dcgettext/3/json"
            }
        ],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 1,
                "subsections": [
                    {
                        "name": "#include <libintl.h>",
                        "lines": 9
                    }
                ]
            },
            {
                "name": "DESCRIPTION",
                "lines": 16,
                "subsections": []
            },
            {
                "name": "RETURN VALUE",
                "lines": 5,
                "subsections": []
            },
            {
                "name": "ERRORS",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "BUGS",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "SEE ALSO",
                "lines": 5,
                "subsections": []
            }
        ]
    }
}