Retrieves the correct plural translation within a gettext domain.
What Is dngettext() in PHP?
Retrieves the correct plural translation within a gettext domain.
Its syntax is:
dngettext(string $domain, string $singular, string $plural, int $count): string
Parameters:
$domain— Accepted as string; required argument.$singular— Accepted as string; required argument.$plural— Accepted as string; required argument.$count— Accepted as int; required argument.
Return type: string. Pluralization rules come from the installed catalog, not a universal count != 1 condition.
Availability: Requires gettext plus locale-specific translations.
Example 1: Basic Usage
<?php
echo dngettext("messages", "apple", "apples", 1);
Result: Results and availability depend on the current PHP process, system permissions, cache, filesystem or installed locale. Pluralization rules come from the installed catalog, not a universal count != 1 condition.
Example 2: A Different Input
<?php
echo dngettext("messages", "apple", "apples", 4);
Result: Results and availability depend on the current PHP process, system permissions, cache, filesystem or installed locale. Pluralization rules come from the installed catalog, not a universal count != 1 condition.
Practical Example: Applying It in a Program
<?php
foreach ([0, 1, 3] as $quantity) { $label = dngettext("messages", "%d record", "%d records", $quantity); echo sprintf($label, $quantity) . PHP_EOL; }
Result: Results and availability depend on the current PHP process, system permissions, cache, filesystem or installed locale. Pluralization rules come from the installed catalog, not a universal count != 1 condition.
Important Behavior and Edge Cases
- Key behavior: Pluralization rules come from the installed catalog, not a universal count != 1 condition.
- Environment: Requires gettext plus locale-specific translations.
Comparison With Related Functions
| Function | Purpose |
|---|---|
dngettext() | Retrieves the correct plural translation within a gettext domain. |
ngettext() | ngettext() selects singular or plural translations in the active domain; dngettext() specifies a domain. |
Common Beginner Mistakes
| Mistake | Correct Approach |
|---|---|
| Ignoring this behavior: Pluralization rules come from the installed catalog, not a universal count != 1 condition | Pluralization rules come from the installed catalog, not a universal count != 1 condition. |
Key Takeaways
- Retrieves the correct plural translation within a gettext domain.
- Pluralization rules come from the installed catalog, not a universal count != 1 condition.
- Requires gettext plus locale-specific translations.
Summary: Pluralization rules come from the installed catalog, not a universal count != 1 condition.