我的网站有2个问题。
这是一种多语言的语言(德语,英语)。
我总是将翻译保存在这样的XML文档中

<?xml version="1.0" encoding="utf-8"?>
<root>
    <les>
        <en>Lesson</en>
        <de>Lektion</de>
    </les>


然后我将这些XML变量转换为php变量,并在需要的地方像这样回显它们

$xml=simplexml_load_file("langindex.xml") or die("xml not found!");
$les = $xml->les->$lang;

<?php echo $les;?>


问题1是,当我打开网站时,没有将任何语言设置为默认语言,因此即使包含!isset,我也总是必须首先选择一种语言。如果我什么都没选择,则将拉伸一些图像,这给我一个错误,即未设置任何语言。

<?php
session_start();
$page = 0;
$lang = $_GET['lang'];
$langArray = array('en','de');
$found = false;

if(in_array($lang, $langArray))
    $found = true;
if(!$found)
    $lang = 'en';

if(!isset($_SESSION['lang']))
    $_SESSION['lang'] = 'en';

if(isset($_GET['lang']) && in_array($_GET['lang'], array('en', 'de')))
    $_SESSION['lang'] = $_GET['lang'];


include '../nihongo/php/dbconnect.php';


我的语言切换器使用简单的<a href="?lang=X">进行操作,URL中也会显示?lang = X。

够了。
由于XML不太实用,因此我想将整个过程切换到SQL数据库。

我创建了具有ID,德语和英语列的表,并成功连接了数据库。
现在,我希望PHP告诉SQL仅以这样的选择获取会话语言的文本。

SELECT german FROM texts WHERE ID = '1'
SELECT english FROM texts WHERE ID = '2'


我的问题是我真的不知道如何使用PHP做到这一点。
我认为我要么不得不以某种方式将PHP var放入该语句中,要么选择整行,然后让PHP决定应显示哪一行。
欢迎任何建议/建议!
提前致谢!

最佳答案

我喜欢OpenCart实现此方法的方式,因为它很简单并且不会向数据库添加其他调用。看一下它们的实现。您会从开放源代码项目中学到很多调查和学习。

他们每种语言和模块都有一个php脚本,并带有包含所有字符串的数组。它仅包含或加载脚本以访问字符串,例如:en-gb。使用此方法通过其键加载字符串:

language->get('heading_title');

关于php - 使用PHP从SQL数据库中选择不同的语言,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54618593/

10-13 08:46
查看更多