如何在html / php脚本中创建多语言主菜单 现在我有
<li>
<a href="{url p='poceni-letalske-karte.html'}">
<span>{t t="Letalske Karte"}</span>
</a>
</li>
和
<option value='EN'>English</option>
转到mysite.com/EN
我想当用户选择英语EN代码时它还会改变主菜单文本怎么做?
这是网站Letalske karte
我找到了这个脚本http://www.bitrepository.com/php-how-to-add-multi-language-support-to-a-website.html
但我不知道如何设置为/ EN /现在在此脚本中设置为index.php?lang=en
答案 0 :(得分:19)
我的方法是做以下事情:
步骤1:设置如下文件夹树结构:
Languages
-en
-lang.en.php
-fr
-lang.fr.php
-de
-lang.de.php
继续制作包含您想要支持的所有其他语言的新文件夹
第2步:创建我们的语言文件,我将从languages/en/lang.en.php
<?php
$lang['label'] = 'Value for this label';
$lang['firstname'] = 'First Name';
$lang['lastname'] = 'Last Name';
$lang['phone'] = 'Phone';
// ETC
?>
你会为其他所有语言重复这个,例如languages/fr/lang.fr.php
。注意标签在英语中是如何保持不变的
<?php
$lang['label'] = 'Valeur pour ce label';
$lang['firstname'] = 'Prénom';
$lang['lastname'] = 'Nom de famille';
$lang['phone'] = 'Téléphone';
// ETC
?>
步骤3:通过网址变量
检查用户是否请求了语言更改<?php
// Start a Session, You might start this somewhere else already.
session_start();
// What languages do we support
$available_langs = array('en','fr','de');
// Set our default language session
$_SESSION['lang'] = 'en';
if(isset($_GET['lang']) && $_GET['lang'] != ''){
// check if the language is one we support
if(in_array($_GET['lang'], $available_langs))
{
$_SESSION['lang'] = $_GET['lang']; // Set session
}
}
// Include active language
include('languages/'.$_SESSION['lang'].'/lang.'.$_SESSION['lang'].'.php');
?>
第4步:你可以像这样访问你的语言部分,它会根据加载的语言文件而改变。
<?php
echo $lang['firstname'];
?>
希望这有助于您开始作为一个想法
答案 1 :(得分:1)
使用上面的代码,但每次加载到EN都会覆盖会话,因此将其更改为
<?php
// Start a Session, You might start this somewhere else already.
session_start();
// What languages do we support
$available_langs = array('en','zh-cn','es');
if(isset($_GET['lang']) && $_GET['lang'] != ''){
// check if the language is one we support
if(in_array($_GET['lang'], $available_langs))
{
$_SESSION['lang'] = $_GET['lang']; // Set session
}
}
// Set our default language session ONLY if we've got nothing
if ($_SESSION['lang']=='') {
$_SESSION['lang'] = 'en';
}
// Include active language
include('languages/'.$_SESSION['lang'].'/lang.'.$_SESSION['lang'].'.php');
?>
答案 2 :(得分:1)
如果您的语言文件非常长,您可以通过在语言上方添加以下语言来逐页分解:
// for login page
$textpart = 'login';
并将语言页面拆分为数组
<?php
switch ($textpart) {
//login page
case 'login':
$lang['label'] = 'Value for this label';
$lang['firstname'] = 'First Name';
$lang['lastname'] = 'Last Name';
$lang['phone'] = 'Phone';
break;
//home page
case 'home':
// ETC
}
// All pages
$lang['title'] = 'Title';
// ETC
?>
答案 3 :(得分:0)
多语言管理和对PHP的支持。
样品:
<?php
include "LMPHP.php";
/////////////////////////////
$langs = new LMPHP();
$langs -> language_add("en","English");
$langs -> language_add("fr","Germany");
$langs -> language_active("en");
$langs -> word_add("Bye","Good Bye!");
$langs -> word_add("HowAre");
$langs -> language_active("fr");
$langs -> word_add("Bye","Au revoir!");
print_r( $langs -> words );
echo $langs -> word_get("Bye");
代码存储库: https://github.com/BaseMax/LMPHP
完整示例代码: https://github.com/BaseMax/LMPHP/blob/master/Sample.php