gpt4 book ai didi

php - 如何在 PHP 中根据菜单/用户语言保留产品选项

转载 作者:行者123 更新时间:2023-11-30 01:33:00 24 4
gpt4 key购买 nike

我正在处理其他人的 php 代码,并且遇到用户/菜单语言问题。这是本网站横幅广告动态价格表页面的代码。根据所选的菜单语言,用户可以看到每种菜单语言的横幅广告价格不同。

每当用户访问此页面时,有效横幅广告价格都应针对用户的菜单语言。现在它固定在俄语上,我不知道如何动态地使它或至少将其更改/修复为英语。

请看一下,如果您能找到解决方案,请告诉我。谢谢!

<?php
class reklama_content
{
private $db;
private $cms;
private $valid;
private $data;
private $tools;

public function __construct()
{
$reg = Registry::getInstance();
$this->db = $reg->get('db');
$this->cms = $reg->get('cms');
$this->valid = $reg->get('Validate');
$this->data = $reg->get('methodData');
$this->tools = $reg->get('tools');
}

public function get_reklama_content()
{
$lang = language::getLang();

if ($_GET['ryb'])
$ryb = $_GET['ryb'];
else
$ryb = 'banners';

if ($ryb == 'banners')
$ret = $this->getBanner($lang);
elseif ($ryb == 'classifieds')
$ret = $this->getClassifieds($lang);
return $ret;
}

public function getClassifieds($lang)
{
$contetn = $this->db->selectArray($this->db->Select('*', 'block', "`name` = 'classifieds_content'"));
$ret = $contetn['content_' . $lang];
return $ret;
}

public function getBanner($lang)
{
$header = array();
$top = array();
$center = array();
$bottom = array();

$banners = $this->db->selectAssoc($this->db->Select('*', 'banners', false, 'page_id', false, true));
$contetn_top = $this->db->selectArray($this->db->Select('*', 'block', "`name` = 'reklams_baner_top'"));
$contetn_bottom = $this->db->selectArray($this->db->Select('*', 'block', "`name` = 'reklams_baner_bottom'"));

foreach ($banners as $x => $y) {
if ($y['position'] == 'header')
$header[$x] = $y;
elseif ($y['position'] == 'top')
$top[$x] = $y; elseif ($y['position'] == 'center')
$center[$x] = $y; elseif ($y['position'] == 'bottom')
$bottom[$x] = $y;
}

$ret = $contetn_top['content_' . $lang];


$langs = ($this->tools->getAllLang(true));

$ret .= '
<hr style="width: 100%; margin: 40px 0;" />
<div class="rek_banner_conteiner header_conteiner">
<span class="ban_title">' . l::top_banner1() . '</span>
<img src="styles/them_01/img/banner_468x60.jpg" class="header_example" />
<div class="lang_menu">' . l::menu_language1() . '<br />';

$ret .= '<span id="eng_header" >' . l::english() . '</span>';
$ret .= '<span id="de_header" >' . l::german() . '</span>';
$ret .= '<span id="rus_header" >' . l::russian() . '</span>';
$ret .= '<span id="tr_header" >' . l::turkish() . '</span>';
$ret .= '</div>';
foreach ($langs as $z => $g) {
$ret .= '
<div id="' . $g['name'] . '_header_box" class="hide">
<table>
<tr class="order_table_title">
<td class="order_table_position">' . l::location() . '</td>
<td class="order_table_size">' . l::size1() . '</td>
<td class="order_table_date">' . l::fee_per_month() . '</td>
</tr>
';
foreach ($header as $z => $f) {
$page = $this->db->selectArray($this->db->Select('title_' . $lang, 'pages', "`id` = '" . $f['page_id'] . "'"));
$ret .= '<tr>
<td>' . $page['title_' . $lang] . '</td>
<td>' . $f['size'] . '</td>
';
if ($f['price' . '_header_' . $g['name']])
$ret .= '<td>$ ' . $f['price' . '_header_' . $g['name']] . '</td>';
else
$ret .= '<td></td>';
$ret .= '

</tr>';
}
$ret .= '
</table>
</div>
';
}
$ret .= '</div>';

$ret .= $contetn_bottom['content_' . $lang];
return $ret;
}
}

?>

最佳答案

我在answer about language detection here中有代码。它包含一个很酷的、易于修改的小片段,我用它来根据浏览器的语言偏好来检查谁来自哪里。简而言之,您需要从 $_SERVER['HTTP_ACCEPT_LANGUAGE'] 检测语言或检测用户首选项(例如 ?lang=de )以覆盖其浏览器中的默认语言首选项。如果您没有使用像 tr.example.com 这样的自定义 URL,那就是这样。 。然后你可以做 switch() 。现在看起来您正在连接所有语言 <span>标签在一起。

switch($lang){
case "ru":
//Russian
$ret .= '<span id="rus_header" >' . l::russian() . '</span>';
break;

case "de":
//German
$ret .= '<span id="de_header" >' . l::german() . '</span>';
break;

case "tr":
//Turkish
$ret .= '<span id="tr_header" >' . l::turkish() . '</span>';
break;

default:
//English
$ret .= '<span id="eng_header" >' . l::english() . '</span>';

}

正如我的另一篇文章所说(有来自 Google 的视频)。理想情况下,最好在该语言的特定 URL 上提供一种语言的所有内容。然后,所有这些神奇的语言翻译都会发生,用户无需做出选择或猜测他们是否点击了他们不熟悉的语言的正确链接。

关于php - 如何在 PHP 中根据菜单/用户语言保留产品选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17223410/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com