根据所使用的语言切换变量中两个字段的值


Switch the value of two fields in a variable depending on the language used

我有一个双语、英语和西班牙语的脚本。语言变量的值以英语和西班牙语保存为数组,其值分别为英语和西班牙语。

示例语言代码如下:

if ($_SESSION['language'] == "english") {
    $lang['0'] ="Home";
    $lang['1'] ="Articles";
    $lang['2'] ="Categories";
} else {
    $lang['0'] ="Inicio";
    $lang['1'] ="Articulos de ";
    $lang['2'] ="Categorias";
for ($i=0; $i<count($lang); $i++)
    $lang[$i] = $lang[$i];
}

我遇到的问题是,对于西班牙语,有时单词的顺序相反,特别是如果它们是形容词。例如,英语中的"Red Car"将翻译成"Carro Rojo"是正确的(字面意思是"Car Red"(

以上面的代码为例,我想有一个标题,上面写着"婚礼文章","婚礼"是一个字段的值,"文章"是语言变量的值,如下所示:

echo $category_name." ".$lang['1'];

如果用户用英文阅读网站,则标题的名称将正确读取为"婚礼文章。但是,如果用户用西班牙语阅读网站,它会读"Bodas Articulos de"而不是"Articulos de Bodas">

我现在正在做的是:

if ($_SESSION['language'] == "english") {
echo $category_name." ".$lang['1'];
} else {
echo $lang['1']." ".$category_name;
}

请注意相反的顺序。

我想知道的是是否有一个函数可以颠倒两个字段值的顺序以满足另一种语言的可读性。

我是 0 级 php 爱好者,不知道所有可用的功能。我所研究的是我在这样的优秀网站中找到的例子。

实现此目的的方法多种多样,下面是一种。

<?
$groupLabels = array(
   'sites' => array('Websites', 'Sitios de Web'),
   'articles' => array('Articles', 'Articulos de'),
   'categories' => array('Categories', 'Categorias')
);
$itemLabels = array(
   'car' => array('Car', 'Carro'),
   'book' => array('Book', 'Libro'),
   'food' => array('Food', 'Comida')
);
function getLabel($language, $group, $item) {
   global $groupLabels;
   global $itemLabels;
   if ($language == "english") {
      return $itemLabels[$item][0] . " " . $groupLabels[$group][0];
   } else if ($language == "spanish") {
      return $groupLabels[$group][1] . " " . $itemLabels[$item][1];
   } else {
      return "Language not found";
   }
};
echo getLabel('english', 'articles', 'car') . "<br />"; // yields "Car Articles"
echo getLabel('spanish', 'articles', 'car') . "<br />"; // yields "Articulos de Carros"
?>

我明白你的意思。就像中文和英文,
在英语中,使用"名字姓氏" 但在中文中,我们使用"姓氏名字">

我们总是这样做:。/现场/ -英语.php -西班牙语.php

用英语.php

$lang = array(
    'red_car' => 'red car',
       ...
)

在西班牙语中.php

$lang = array(
    'red_car' => 'Carro Rojo',
       ...
)

包括语言文件:

require_once(./locale/English.php)

require_once(./locale/Spanish.php)

在代码中使用$lang['red_car']