PHP константа с gettext - PullRequest
       18

PHP константа с gettext

2 голосов
/ 16 марта 2010

Я использую файл конфигурации, который содержит: config.php

define('SYS_TITLE','My Application Title');

Я загружаю язык local для gettext на основе переменной SESSION в другой файл, включенный после загрузки файла конфигурации. как сделать что-то вроде:

echo _(SYS_TITLE);

Какой самый лучший способ перевести SYS_TITLE, не меняя большую часть кода.

Ответы [ 3 ]

0 голосов
/ 28 марта 2011

Вы можете просто использовать:

echo _("SYS_TITLE");

, а затем создайте файл .po для всех ваших переводов. Конечно, он не будет использовать значение вашей константы, но вам решать, приемлемо ли это. В конце концов, вам не нужно сообщение, чтобы буквально содержать текст языка по умолчанию.

Вы также можете создать некоторую функцию-обертку для вашего вызова gettext:

function gt(string){
    if(defined(string)){
        echo constant(string);
    } else {
        echo _(string);
    }
}

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

0 голосов
/ 28 марта 2011

Вы также должны быть в состоянии сделать это:

echo _(constant("SYS_TITLE"));

Это должно получить значение вашей константы, которое затем будет передано в вызов вашей функции. Хотя я не проверял это, поэтому я могу ошибаться.

0 голосов
/ 16 марта 2010

Если я правильно понял, вы ищете способ импортировать переведенную строку в некоторый php-код.

Как насчет загрузки всех ваших строк в XL в первом столбце и генерации php-кода во втором столбцес помощью простого вызова concatenate ()?

Если вы храните «Что-то на английском» в A1, вы можете настроить B1 следующим образом:

=CONCATENATE("define('SYS_TITLE','",A1,"');")

В итоге вы получите

A1                      B1
Something in english    define('SYS_TITLE','Something in english');
...