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

时间:2012-09-05 06:29:59

标签: php mysql

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

在用户方面,我想为访问者提供选择语言偏好的选项,用户双方页面应以所选语言显示。现在我完全没有意识到我需要在用户端页面上进行哪些与编程相关的更改才能实现这一点。

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

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

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

提前谢谢你, KRA

5 个答案:

答案 0 :(得分:1)

假设您希望在服务器端(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行的相关列。可以根据用户的语言选择向用户提供相关列的数据。

答案 1 :(得分:0)

假设您将所有语言变量和/或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

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

答案 2 :(得分:0)

这很大程度上取决于您如何存储文本数据。如果你有一个db(mysql),那么我建议你有一个代表语言的collumn。然后你可以有一个会话变量或一个特定的URL或其他东西,它可以指示用户请求的语言。

你需要的是一些方法来弄清楚你的用户想要什么样的语言,之后就很容易了。

你有没有尝试过任何东西?

答案 3 :(得分:0)

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

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

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

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

所以你的Front文件将由变量而不是Text组成,当用户选择语言时,这些变量将由语言变量(来自数据库或文件,你的选择)替换

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

使用以下链接实现: -

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/

答案 4 :(得分:0)

使用此方法。

它为我工作。

Switching languages on a website with PHP

我已经在oyutrade.com上完成了