gettext — php ngettext несколько переменных

Копирование примера из руководство, ngettext работает так:

ngettext("%d window", "%d windows", 1); //'1 window';
ngettext("%d window", "%d windows", 2); //'2 windows';

Но что, если я хочу использовать 2 переменные, например %d windows %d doors? Есть ли стандартный способ реализовать это, чтобы правильная строка (4 комбинации) появлялась на основе 2 переменных?

3

Решение

ngettext() не поддерживает несколько переменных. Вы должны обязательно писать предложения, которые могут быть правильно переведены блок за блоком (если возможно, несколько предложений, чтобы избежать проблем с упорядочением в зависимости от языка).

По крайней мере, одна из причин, по которой это не поддерживается, заключается в том, что количество необходимых резервных предложений (первые параметры ngettext()) будет расти экспоненциально с числом переменных (то есть вам понадобится 4 таких предложения для 2 переменных: единственное число-единственное число, единственное-множественное число, множественное число-единственное и множественное-множественное число, затем 8 для 3 переменных и т. д.).

Вы найдете ответ на аналогичный вопрос на https://stackoverflow.com/a/1893929/4457767.

4

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]