Прежде всего, он не будет работать с вашим кодом.Вам нужно будет использовать
define('GREETING', 'Hello World').
Проверьте руководство PHP для define .
Во-вторых, использование констант для этого ужасная идея.Вы засоряете глобальное пространство имен тоннами констант и рискуете константой имен.См. Userland Naming Guide .
Если вы не хотите использовать Zend_Translate
(вам не нужно использовать весь фреймворк для этого) и не можете использовать gettext
, яПредлагаем использовать массивы для хранения переводов, например, что-то вроде этого:
$lang = array(
'greeting' => 'Hello World'
'something' => 'else'
);
, а затем вы можете использовать это в своем шаблоне так:
<h1><?php echo $lang['greeting'] ?></h1>
Таким образом, у вас естьчтобы убедиться, что $lang
еще не определено в глобальной области.
Некоторые люди предпочитают использовать язык по умолчанию вместо идентификаторов перевода, например, они предпочитают писать
<h1><?php echo t('Hello World') ?></h1>
, гдеt
будет функционировать, отображая входную строку в выходную строку.Массив перевода должен будет содержать полные предложения и отображать их на другие языки, например,
$lang = array(
'Hello World' => 'Hola Mundo'
);
Но, конечно, вы также можете просто получить к нему доступ с помощью $lang['Hello World']
.Просто становится неловко для длинных струн.Многие функции перевода позволяют вам передавать дополнительные параметры, чтобы допустить что-то вроде этого:
$lang = array(
'currentTime' => 'The current time is %s'
);
<h1><?php echo t('currentTime', date('H:i:s')) ?></h1>