繁体   English   中英

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

[英]How to dynamically change website's language using PHP-MySQL?

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

在用户端,我想为访问者提供选择语言偏好的选项,并且用户端页面应以该所选语言显示。 现在,我完全不知道我需要在用户侧页面上进行哪些与编程相关的更改,才能实现此目的。

我已经搜索并阅读了一些互联网上的文章,但坦率地说找不到适合我情况的解决方案。 所以请帮帮我。

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

  • Windows Server 2003
  • PHP 5.2.17
  • MySQL 5.0.51a(UTF-8 Unicode(utf8))
  • XHTML 1.0过渡版
  • meta charset = iso-8859-1

预先感谢您,KRA

假设您希望在服务器端(PHP)上执行翻译,则可以使用file_get_contents从Google Translate API获取数据。 然后,您需要解析响应并获取翻译后的文本。 您需要获取API KEY才能访问翻译服务。

<?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;

?>

服务器响应是具有以下结构的JSON对象:

{
    "data": {
        "translations": [
            {
                "translatedText": "Hallo Welt",
                "detectedSourceLanguage": "en"
            }
        ]
    }
}

有关基本概念的更多信息,请访问: http : //baris.aydinoglu.info/coding/google-translate-api-in-php

Google Translate API查询的文档: http : //code.google.com/apis/language/translate/v2/using_rest.html

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

假设您已将所有语言变量和/或html视图分离为某种结构,则始终可以使用cookie。

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

例如:

拥有包含每种语言的下拉值的表单,并在提交表单时设置语言cookie变量:

setcookie('userLanguage',$language_value,strtotime("+1 year"));

第一个参数是cookie变量的名称,第二个参数是值(在这种情况下,是用户的语言选择,第三个参数是cookie的到期日期(我设定为一年,但是您可以将其设置为任意值)你喜欢)。

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

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

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

嗯,这很大程度上取决于您如何存储文本数据。 如果您在数据库(mysql)中拥有它,那么我建议您有一个代表该语言的列。 然后,您可以拥有一个会话变量或一个特定的url或其他可以给您一些指示的用户指示语言。

您需要某种方法来弄清楚用户想要哪种语言,之后就很容易了。

你有尝试过吗?

在您的网站中使用语言文件。

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

该文件将具有将在前端用户端使用的变量。用户可以选择任何语言,并且在选择时,您的代码将加载以下语言

在您的情况下,您正在使用数据库,因此可以在表中而不是数据库中使用此内容

因此,当用户选择一种语言时,您的Front文件将由变量而不是文本组成,并且此变量将被语言变量替换(从数据库还是从文件,由您选择)

是的,您需要使用默认语言。

使用以下链接来实现:

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/

使用此方法。

它为我工作。

使用PHP在网站上切换语言

我已经在oyutrade.com做到了

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM