ถามเกี่ยวกับ php การสร้างเว็บสองภาษา ช่วยที่ค่ะ ไทย/อังกฤษ (TH/EN)
table เดียวก็แยก ฟิลด์เป็น ไทย กับ อังกฤษ ครับ
ภาษาไทยก็เลือกเอาฟิลด์ภาษาไทยไปแสดง อังกฤษก็เอาฟิลด์อังกฤษ
Date :
2009-07-23 21:34:36
By :
plakrim
สร้างตารางขึ้นมาตารางหนึ่งอาจใช้ชื่อ translation มีช่องดังนี้
trans_id (int)(auto)(primary)
trans_iso(varchar 10)
trans_main(text)
trans_value(text)
เวลาใส่ ก็ตามแบบ id ไม่ต้องไปสนมัน เอาไว้อ้างอิงตอนแก้ไขเฉยๆ
iso ก็ใส่ของภาษา เช่นไทย th อังกฤษ en พยายามใช้ iso ที่เป็นมาตรฐานเพราะจะทำงานกันหลายคนได้สะดวก
main คือค่าหลัก เช่น hello, register
value คือค่าที่แปลแล้ว เช่น สวัสดี, ลงทะเบียน
จะกรอกกี่ภาษาก็ได้
กำหนดการเลือกภาษาด้วย $webiso อาจจะกำหนดตายตัวหรือ $_GET cookie อะไรก็ตาม ขอให้ได้เป็น th, en หรือค่า iso ก็พอ
เวลาใช้งานก็สร้างฟังก์ชั่นขึ้นมาก่อน
Code (PHP)
<?php
function lang($inputmain) {
$sql = "select * from translation where main = '".$inputmain."' and iso = '".$webiso."';";
// แล้วก็ mysql_query() อะไรไปตามระเบียบ เนื่องจากผมใช้ ado class เลยลืมคำสั่งพวกนี้ไปแล้ว 55
$output = ค่าที่ได้จากการ mysql_query;
return $output;
}
?>
ฟังก์ชั่นด้านบนจะทำการเรียกค่าหลักแล้วอิงด้วย iso จะได้คำแปลออกมา อาจใส่เงื่อนไขเพิ่มเติมได้ เช่นถ้าไม่พบก็ส่งคืนค่า inputmain ไปดื้อๆเลยก็ได้
การใช้งาน
Code (PHP)
<?php
echo lang("hello");
?>
Date :
2009-07-23 22:37:35
By :
mr.v
ผมขอตินิดนึงนะครับ คุณ mr.v
ถ้าทำแบบนั้น รับรอง ได้คิวรี่กันบานแน่ๆ
1 คำ 1คิวนี่ โอว ม่ายยย
ถ้าใน 1 หน้า มี 30 คำละ 30 คิวรี่นะครับ อิอิ
ให้ทำแบบนี้นะ
Code (PHP)
<?php
//ฟังค์ชั่น ดึงภาษาออกมา
function fetchlang($webiso = 'th')
{
$lang = array();
$sql = mysql_query("select * from translation where iso = '".$webiso."';");
while ( $row = mysql_fetch_array($sql) )
{
$lang[$row['trans_main']] = $row['trans_value'];
}
return $lang;
}
//ภาษาที่จะใช้งาน
$webiso = 'th';
$lang = fetchlang();
//การใช้งาน
echo $lang['hello'];
?>
Date :
2009-07-24 08:53:28
By :
danya
ใช้เครื่องมือของ Google Translate ซิครับ เว็ปนี้ก็ใช้นะครับได้มากกว่าสองภาษาด้วยสังเกตุได้บนขวาของเว็ปไซด์แล้วลองเลือกภาษาที่ต้องการดูครับ
Date :
2009-07-24 14:19:22
By :
miang
เราก็ทำอะ แฮะๆ ๆ แต่ว่าเราสร้างแค่ฟร์อมรับข้อมูลเป็นสองภาษาเองอะแล้วเวลาใช้ก็เรียก include มันขึ้นมาโชว์อะค่ะ แบบนี้ใช้ได้เปล่าอะเพราะคิดเอาเองว่ามันน่าจะได้ ก็ไม่รู้เหมือนกัน แบบ ทำด้วยความจนตรอกอะค่ะ มั่ว ๆ ทำ แต่มันก็โชว์ขึ้นมานะค่ะ แบบสร้างดาต้าเบสไว้แบบนี้อะค่ะ id (int)(auto)(primary Key),
m_thai (text),
m_eng(text),
date_reg(date)
มันใช้ได้จริงรึเปล่าอะค่ะ ตอนนี้เรียกข้อความขึ้นมาแสดงก็แสดงได้ทั้งไทยและอังกฤษอะ แต่มีปัญหาจัดคอลัมภ์ไม่ได้อะ พอดีไปฝึกงานอะแล้วหัวหน้าให้ทำอะเร่งด้วย เลยทำตามที่คิดอะ
Date :
2009-07-27 00:32:29
By :
jiro_aaron
โอะๆ ผมไม่เก่งเรื่อง sql โดยเฉพาะใน php เพิ่งจะเห็น fetch array ยังไม่เคยใช้เลย
Date :
2009-07-27 04:02:08
By :
mr.v
Code (PHP)
<?
session_start();
if($_SESSION["lang"] == "EN")
{
include("en.php");
}
else
{
include("th.php");
}
?>
Code (th.php)
<?
$strTitle = "ยินดีต้อนรับเข้าสู่เว็บไซต์ของฉัน";
$strHome = "หน้าแรก";
$strService = "บริการของเรา";
$strAbout = "เกี่ยวกับเรา";
$strContact = "ติดต่อเรา";
//** สมมุติค่ามาจาก Database ที่ได้จากการ Query ***//
$result["DETAIL_TH"] = "นี้คือเนื้อหาภาษาไทย";
$strDetail = $result["DETAIL_TH"];
?>
Code (en.php)
<?
$strTitle = "Welcome to My Web Site";
$strHome = "Home";
$strService = "Service";
$strAbout = "About Us";
$strContact = "Contact Us";
//** สมมุติค่ามาจาก Database ที่ได้จากการ Query ***//
$result["DETAIL_EN"] = "This is content English";
$strDetail = $result["DETAIL_EN"];
?>
Go to : PHP Multiple Language การใช้ PHP ทำเว็บ 2 ภาษาแบบง่าย ๆ
Date :
2011-08-22 13:04:14
By :
thaicreate
Load balance : Server 02