Content · Programming · PHP

PHP dngettext() Function: Usage and Examples

Learn how PHP dngettext works with practical examples, important behavior, relevant alternatives and common mistakes.

1 views Published Oct 16, 2026 Updated Oct 16, 2026

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

FunctionPurpose
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

MistakeCorrect Approach
Ignoring this behavior: Pluralization rules come from the installed catalog, not a universal count != 1 conditionPluralization 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.

Share this resourceSend this page to someone who may find it useful.