[英]How to dynamically change website's language using PHP-MySQL?
我有带有管理面板的PHP-MySQL网站。 我可以从管理面板输入数据,它们会显示在用户端网页上。 现在,我希望能够从管理面板以英语插入文本数据,并且它们应该在用户端以3种不同的语言显示。
在用户端,我想为访问者提供选择语言偏好的选项,并且用户端页面应以该所选语言显示。 现在,我完全不知道我需要在用户侧页面上进行哪些与编程相关的更改,才能实现此目的。
我已经搜索并阅读了一些互联网上的文章,但坦率地说找不到适合我情况的解决方案。 所以请帮帮我。
在我的工作环境中使用/设置了以下内容。
预先感谢您,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/
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.