Да, массив в этом случае лучше. Но вы немного не правильно его написали..
нужно так -
PHP |
$langs = array( 'main_menu' => 'Главная', ); |
тогда в шаблоне этот элемент будет вызываться так - $langs['main_menu']
Советую не создавать сразу большой массив, а вносить значения по мере надобности, тоесть так-
PHP |
$langs['main_title'] = 'Главная'; $langs['error'] = 'Ошибка'; |
Я пользуюсь несколько другим алгоритмом..
Есть языковой массив, например как в вашем случае $lang
И есть функция
PHP |
function getTranslate($txt) { global $lang; return isset($lang[$txt]) ? $lang[$txt] : $txt; } |
все что нужно - это вызвать функцию с установленным значением $txt, например
PHP |
echo '<div>'.getTranslate('Недостаточно прав для просмотра.').'</div>'; |
если в языковом массиве присутствует элемент с ключем "Недостаточно прав для просмотра." ($lang['Недостаточно прав для просмотра.']), то выводим его, если нет - показваем оригинальный текст.
Это очень удобно, когда проект большой, и не приходится придумывать для каждого языкового значения свое название. И даже если что-то не переведено, то выводится дефолтное сообщение, а не ошибка о несуществующем ключе в массиве.
Да, это более ресурсозатратный способ, чем вызывать элементы напрямую по ключам, но, согласитесь, удобнее. =)