Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用PHP MySQL动态更改网站语言?_Php_Mysql - Fatal编程技术网

如何使用PHP MySQL动态更改网站语言?

如何使用PHP MySQL动态更改网站语言?,php,mysql,Php,Mysql,我有一个带有管理面板的PHP MySQL网站。我可以从管理面板输入数据,它们显示在用户端网页上。现在,我想我应该能够插入管理面板中的英文文本数据,它们应该在用户端以3种不同的语言显示 在用户端,我希望为访问者提供选择语言首选项的选项,并且用户端页面应以所选语言显示。现在我完全不知道为了实现这一点,我需要在用户端页面上进行哪些与编程相关的更改 我在网上搜索和阅读了一些文章,但坦率地说,我找不到适合我的案例的解决方案。所以请帮帮我 在我的工作环境中使用/设置了以下内容 Windows Server

我有一个带有管理面板的PHP MySQL网站。我可以从管理面板输入数据,它们显示在用户端网页上。现在,我想我应该能够插入管理面板中的英文文本数据,它们应该在用户端以3种不同的语言显示

在用户端,我希望为访问者提供选择语言首选项的选项,并且用户端页面应以所选语言显示。现在我完全不知道为了实现这一点,我需要在用户端页面上进行哪些与编程相关的更改

我在网上搜索和阅读了一些文章,但坦率地说,我找不到适合我的案例的解决方案。所以请帮帮我

在我的工作环境中使用/设置了以下内容

Windows Server 2003 PHP 5.2.17 MySQL 5.0.51a UTF-8 Unicode utf8 XHTML1.0过渡版本 元字符集=iso-8859-1 提前谢谢大家,,
KRA

假设您将所有语言变量和/或html视图分离成某种结构,您总是可以使用cookie

让您的站点检查是否存在所述cookie,如果它不存在,则让站点还原为默认语言,否则相应地调整语言

例:

为每种语言创建一个具有下拉值的表单,并在提交表单时设置语言cookie变量:

setcookie('userLanguage',$language_value,strtotime("+1 year"));
第一个参数是cookie变量的名称,第二个参数是本例中的值,即用户的语言选择,第三个参数是我制作的cookie的有效期一年,但您可以将其设置为任何您喜欢的值

下一步实际上取决于站点的设置方式,但我将假设您的语言文本位于db中,或者以某种智能方式进行处理。无论哪种方式,您都需要检索cookie:

if ($_COOKIE['userLanguage'] <> '')
  // Do some language stuff here based on the value of $_COOKIE['userLanguage']
else
  // Do some stuff here for default language

就这样。有很多不同的方法来处理实际的语言转换,但是获取用户偏好并记住它的行为基本上就是这样。

这在很大程度上取决于您如何存储文本数据。如果您在db mysql中有它,那么我建议您有一个COLLMN,它代表该语言。然后,您可以有一个会话变量、一个特定的url或其他一些东西,可以指示用户正在请求哪种语言

你需要的是找出你的用户想要什么样的语言的方法,然后就很容易了


你试过什么了吗?

在你的网站上使用语言文件

比如说,, 英语-en.php 对于法语-fr.php

此文件将包含将在前端用户端使用的变量。用户可以选择任何语言,选择后,您的代码将加载以下语言

在您的例子中,您使用的是数据库,所以您可以在表中而不是数据库中使用它

因此,前端文件将由变量而不是文本组成,这些变量将由语言变量替换。其他变量来自数据库或文件,这是用户选择语言时的选择

是的,您需要设置默认语言

请使用以下链接来实现:

http://scriptdigital.com/divers/phplocalization.html
http://www.mind-it.info/2010/02/22/a-simple-approach-to-localization-in-php/
http://code.google.com/p/slsphp/
使用这种方法

这对我有用


我已经在oyutrade.com中完成了这项工作

假设您希望在服务器端PHP上执行翻译,您可以使用file\u get\u contents从Google Translate API获取数据。然后您需要解析响应并获得翻译文本。您需要访问翻译服务

<?php
$string = 'Hello World';
$source_lang = 'en';
$target_lang = 'zh-CN'

header ( "Content-Type: text/html;charset=utf-8" );
$data = file_get_contents ( 'https://www.googleapis.com/language/translate/v2?key=INSERT-YOUR-KEY&q='.urlencode($string).'&source='.$source_lang.'&target='.$target_lang ); 
$data = json_decode ( $data );  
$translated = $data->data->translations->[0]->translatedText;
echo $translated;

?>
有关基本概念的更多信息,请访问:

Google Translate API查询文档:


您可以使用它并将相关数据保存到数据库中。在数据库表中,每种语言可能有单独的列。管理员输入文本/数据后,您必须使用解决方案将其转换,并将其保存到同一行的相关列中。根据用户的语言选择,可以从相关列中为用户提供数据。

您好,谢谢您的回复。但是你能为我提供一些基本的指导,告诉我如何做你上面解释的事情吗。很抱歉打扰你。他会改变人类语言吗?让我来编辑你的问题。这三种语言是什么?为什么你没有从你的管理面板输入每种语言
{
    "data": {
        "translations": [
            {
                "translatedText": "Hallo Welt",
                "detectedSourceLanguage": "en"
            }
        ]
    }
}