簡體   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