2010-01-28 2 views
0

Я хочу использовать что-то вроде этого в PHP файле:Разбираем Значение Результат для HTML

$about = array ('dutch' => 'over', 'spanish' => 'sobre', 'english' => 'about'); 
if ($USER['lang'] == 'dutch'){ 
// $about - becomes 'over' 
    } 
elseif ($USER['lang'] == 'spanish') { 
// $about - becomes 'sobre' 
    } 
else { 
// $about - becomes 'about' 
} 

И передать результат в HTML-файл. Я думал, что использую {about} на странице HTML, чтобы распечатать результат.

Кто-нибудь знает, как это сделать?

+0

Привет, испанский мой родной язык, использовать «Acerca де» как перевод «о»;) – rodrigoap

+0

Но тогда, я думаю, голландцы более wont't работы больше. Это «примерно», как в «примерно за три недели», или «обо мне»? –

+0

Я думаю, что это примерно как в «Справке> О Mozilla Firefox» – rodrigoap

ответ

1

Вы хотите создать многоязычную страницу. Самый простой способ получить доступ слова будет использовать массив

if ($USER["lang"] == "dutch") 

$words = array("about" => "over", 
       "word1" => "translation1", 
       "word2" => "translation2"); 

... 

echo $words["about"]; // Outputs the correct word for "about" 

Если это больше проекта со многими словами, вы можете захотеть взглянуть на полномасштабное решении интернационализации как Зенд фреймворке Zend_Translation. Он позволяет хранить переводы в разных форматах, включая файлы XML, текстовые файлы или базу данных для скорости.

+0

echo $ words ["about"]; выводит правильное слово для «about» только на php-странице. Мне нужно, чтобы он выводился на страницу html. – martin

+0

Нельзя делать в чистом HTML. Вы либо проанализируете свой HTML-код на PHP, либо имеете скрипт PHP, который выдает переведенный HTML-код. –

2

Используя ту же структуру кода, что у вас есть в данный момент:

$about = array ('dutch' => 'over', 'spanish' => 'sobre', 'english' => 'about'); 

if ($USER['lang']) { 
    echo $about[$USER['lang']]; 
} else { 
    echo 'about'; 
} 

Убедитесь, что $ USER [ «язык»] правильно продезинфицировать/проверено

Это решение только идеально подходит, если у вас есть несколько слов для перевода. Если вы хотите сделать что-то большее, чем это, вам следует исследовать, используя полную библиотеку переводов.

Вот несколько перевода библиотек, которые вы хотели бы проверить:

Edit: В качестве альтернативы, вы можете использовать переключатель. Это означает, что вам не нужно сравнивать $ USER ['lang'] со списком доступных языков.

switch ($USER['lang']) { 
    case 'dutch': 
     $about = 'over'; 
    case 'spanish': 
     $about = 'sobre'; 
    default: //if $USER['lang'] doesn't match any of the 
       //cases above, do the following: 
     $about = 'about'; 
} 
+0

Gracias amigo, Думаю, я использую переключатель. Но как получить вывод на страницу html? – martin

+0

Переменная $ about содержит слово 'about' в выбранном языке. Чтобы вывести содержимое переменной $, просто используйте «echo $ about» (без кавычек) в любой точке вашего html, которую вы хотите отобразить. Возможно, вас заинтересует использование шаблонизатора, такого как Dwoo (http://dwoo.org). Если мой ответ решил вашу проблему, я бы очень признателен, если бы вы могли отметить мой ответ в качестве принятого решения (нажмите на отметку ниже голосов за этот ответ. –

Смежные вопросы