多语言php脚本
如何在html/php脚本中创建多语言主菜单 现在我有多语言php脚本,php,multilingual,Php,Multilingual,如何在html/php脚本中创建多语言主菜单 现在我有 <li> <a href="{url p='poceni-letalske-karte.html'}"> <span>{t t="Letalske Karte"}</span> </a> </li> 及 English它会转到mysite.com/EN 我想当用户选择英语EN代码时,它也会改变主菜单文本,怎么做? 这是我们的网站 我找到了这个脚本 但是我不知道如
<li>
<a href="{url p='poceni-letalske-karte.html'}">
<span>{t t="Letalske Karte"}</span>
</a>
</li>
及
English
它会转到mysite.com/EN
我想当用户选择英语EN代码时,它也会改变主菜单文本,怎么做?
这是我们的网站
我找到了这个脚本
但是我不知道如何设置为/EN/因为现在在这个脚本中设置为
index.php?lang=EN
我的方法是执行以下操作:
步骤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
?>
步骤3:通过url变量检查用户是否请求语言更改
<?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'];
?>
希望这能帮助您开始使用上面的代码,但是每次加载到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');
?>
如果您的语言文件很长,您可以通过在语言文件上方添加以下内容,按页面将其拆分:
// 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
?>
LM PHP(语言管理PHP)
对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");
是的,当然,我们都说。。。不管dat语言是什么…你昨天问了这个问题。你应该编辑这个问题,而不是打开一个新的问题。这个问题有什么问题吗?@LukaBoltes-首先,你可以在问题中加入你的脚本,而不是链接到第三方网站。如果你能证明自己尝试过某件事,即使它不起作用,你也更有可能得到帮助——就像现在这样,你的问题看起来像是你希望有人为你做一切。您是否已将语言添加到站点?为什么不起作用?当用户更改值时会发生什么情况?应该发生什么?Thx代码第三步放在哪里?另外,我如何设置为site.com/EN/?您是否计划在每个文件夹中都有重复的网站?或者你只是想让它标记一种语言并重定向到主站点?我的建议是使用一个查询字符串,比如index.php?lang=EN来捕获用户想要的语言首选项,并使用htaccess将这些URL重写为index.php/ENHow来创建htaccess rewrite?它需要像hotelpedia.si/EN一样,现在是酒店语言选择器,同时我想被翻译为SEO的主菜单与index.php/EN相同,或者只是/EN/对吗?因为我更喜欢正义/正义/美丽的解决方案。这帮了大忙。我只是将$lang替换为$dict,以避免与$\u GET数组中的'lang'键混淆。
<?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");