Как я могу использовать gettext PHP в сочетании с gettext python?

У меня есть приложение, части которого я переношу на Django, но Python и PHP имеют другой формат строки, например, "Hello %1s" в PHP и "Hello {0}" или "Hello {name}" в Python.

Какое-то время мы будем поддерживать оба приложения, но есть ли способ использовать формат Python в PHP или наоборот?


person dd.    schedule 12.11.2009    source источник


Ответы (2)


Поможет ли вам что-то вроде этого расширения php PECL?

http://pecl.php.net/package/python

С Уважением.

person manumoomoo    schedule 12.11.2009

PHP gettext не расширяет/заменяет %s - это делается функциями вывода (например, printf). Похоже, это также имеет место в Python.

Самое главное, что в Python вы можете использовать %s для представления строк, см. http://docs.python.org/library/stdtypes.html#string-formatting

Таким образом, вы должны иметь возможность использовать строки в стиле %s в обоих случаях.

person chronos    schedule 12.11.2009
comment
Это часть sprintf для упорядочения аргументов: php.net/manual/en/function.sprintf .php - person dd.; 12.11.2009
comment
вы правы - я никогда не использовал спецификаторы порядка, поэтому ошибочно предположил, что их не существует :) - person chronos; 12.11.2009
comment
Вы видели %s в Python? - person chronos; 12.11.2009
comment
Да, и я использовал '%s' раньше, но тогда мы потеряли бы порядок, что для нас было бы важно, но это может работать для некоторых строк. - person dd.; 12.11.2009
comment
Можете ли вы указать строковые значения в том порядке, в котором они используются в строке формата, чтобы вообще не использовать модификаторы порядка? Я не знаю, налагает ли Django какие-либо ограничения на это. Альтернативным решением может быть использование строковых переменных в стиле $ в PHP, т. е. _(Hello $1!) — и регулярное выражение для замены всех вхождений $([\d]+) на {\1} для Python. Это было бы неэффективно и слишком многословно, но кроме этого я не вижу другого решения прямо сейчас. - person chronos; 13.11.2009