ทำเว็บเป็น2ภาษา Thai Eng มีหลัการยังไงค่ะ สวัสดีปีใหม่ค่ะ ทำเว็บแบบให้ข้อมูลค่ะ ต้องทำเป็น 2 หน้า
ทำสองหน้าสิ หรือไม่ก็
เก็บข้อมูลต่างๆไวในตัวแปรหรือไฟล์
เช่น eng.php สำหรับภาษาอังกฤษ และ thai.php สำหรับ ไทย
โดยใน eng.php เก็บเมนูหรือข้อมูลที่เป็นภาษาอังกฤษ เช่น
Code (PHP)
$_Home="Home";
และใน thai.php เก็บเมนูหรือข้อมูลที่เป็นภาษาไทย เช่น
Code (PHP)
$_Home="หน้าหลัก";
การเรียกใช้ก็
Code (PHP)
include("eng.php");
หรือ
Code (PHP)
include("thai.php");
แล้วแต่เงี่ยนไข
ประมาณนี้มั่งอิอิอิ
Date :
2010-01-01 18:59:08
By :
onedan
ใช้ asp.net อ่ะค่ะ
Date :
2010-01-01 19:09:06
By :
bow
กำ ก็น่าจะหลักการเดียวกันนะ
Date :
2010-01-01 20:40:42
By :
onedan
เรื่องมันยาว เอาอันนี้ไปก่อน เอาไปเขียนเป็น win form ก่อนเอาไว้ใช้ตรวจสอบว่ามี culture code อะไรให้ใช้บ้าง
** ของ .Net 2005 กับ .Net 2008 จะหลักการเดียวกันใช้วิธีเดียวกันได้เลย แต่กับ .Net 2003 จำไม่ได้แล้วไม่พูดถึงแล้วกันเนาะ
Code (VB.NET)
Imports System.Globalization
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Dim amount As Double = 4.52
Dim _date As DateTime = DateTime.Now
Dim info As CultureInfo
For Each info In CultureInfo.GetCultures(CultureTypes.AllCultures)
TextBox2.Text += info.EnglishName & vbCrLf
TextBox2.Text += (info.Name & vbCrLf)
If Not info.IsNeutralCulture Then
TextBox2.Text += (amount.ToString("C", info.NumberFormat)) & vbCrLf
TextBox2.Text += _date.ToString("d", info.DateTimeFormat) & vbCrLf
End If
Next
End Sub
ผลลัพธ์จะได้ตามรูป เวลาเอาไปใช้จะใช้ code แบบนี้
ภาษาไทย th-TH
ภาษาอังกฤษ (อเมริกา) en-En
Date :
2010-01-01 21:11:33
By :
salapao_codeman
ขอบคุณทั้งสองท่านมากค่ะ
Date :
2010-01-02 00:30:25
By :
bow
Wishing You a happy and prosperous New Year
ผมเขียน asp.net เหมือนกันผมใช้ C# แต่คุณใช้อะไรเหรอครับ ทำสองภาษาไม่ยากครับ ทำได้โดยใช้ Resource File ครับ
ก่อนอื่น Add Asp.net folder เข้ามาก่อนครับเลือกตัวนี้ครับ App_GlobalResources
แล้วก็ add --> New Item.. เข้ามาครับ ภาษาอังกฤษก็ตั้งชื่อปกติครับ เช่น test.resx
ภาษาไทยก็ตั้ง test.th-TH.resx
จะใช้รูปแบบนี้ทั้งสองก็ได้ครับ
ภาษาไทย th-TH
ภาษาอังกฤษ (อเมริกา) en-En
ใน File ก็ใส่ชื่อ แล้วก็ Value ก็คือข้อความที่ให้แสดงครับ
สมมุติตั้ง name เป็น lb_Name,lb_Sername
Value ก็คือ ชื่อ , นามสกุล
ผมจำสร้าง Class ที่ใช้ประจำไว้ครับแล้วสร้าง Properties ไว้
Code (C#)
#region Properties Culture
public string GetCulture
{
get
{
return _Culture;
}
set
{
_Culture = value;
}
}
#endregion
กำหนด Default ให้เป็นภาษาไทย
Code (C#)
#region Method InitializeCulture (Set Language, Lacalization)
protected override void InitializeCulture()
{
// กำหนด Default เป็นภาษาไทย
string lang = "th-TH";
HttpCookie getCkResource = Request.Cookies["LocalResource"];
if (getCkResource != null)
lang = getCkResource.Value;
else
{
// ถ้าไม่มีข้อมูลให้ทำการ Add Cookie ที่เก็บ Resource เป็น ภาษาไทยไว้
getCkResource = new HttpCookie("LocalResource");
getCkResource.Value = "th-TH";
getCkResource.Expires = DateTime.Now.AddYears(1);
Response.Cookies.Add(getCkResource);
}
this.Culture = lang;
this.UICulture = lang;
GetCulture = lang;
}
#endregion
ที่หน้าจอก็เรียก Class นี้ไปใช้ครับ
การเขียนที่หน้าจอ
Code (C#)
private void DoLanguage()
{
//ส่ง culture ให้ Master Page
MP_Home masterPage = (MP_Home)this.Master;
masterPage.MP_Culture = GetCulture;
//Get Culture
Culture = GetCulture;
lblName.Text = Resources.Test.lb_Name;
lblSername.Text = Resources.Test.lb_Sername;
}
ประมาณนี้แหละครับ
Date :
2010-01-02 10:49:11
By :
KohDev
ทำไมชื่อผมมันไม่ขึ้นอีกแล้ว
Date :
2010-01-02 10:49:59
By :
KohDev
ใช้ VB.net ค่ะ ขอบคุณอีกทีค่ะ^^
Date :
2010-01-02 18:35:52
By :
bow
ไม่เกี่ยวกับภาษาครับ ใช้ html อย่างเดียวยังได้เลย
มันเป็นการทำ content 2 ชุด ไทย กับ อังกฤษ ให้แปลเตรียมเอาไว้
พอ user เลือกภาษาก็เอาภาษานั้นมาแสดง
สมมติใช้ Label กับ DropDownList ก็ได้
Code (C#)
if (DripDownList1.SelectedItem.Value == "ภาษาไทย")
{
Label1.Text = "ภาษาไทยจ้า";
}
else
{
Label1.Text = "This is english.";
}
Date :
2010-01-02 18:45:24
By :
tungman
อ้อครับว่าทำไมรูปคนหล่อไม่ขึ้น
VB.Net หรือ C# ก็เหมือนกันครับหลักการเดียวกันครับ
Date :
2010-01-03 00:13:55
By :
KohDev
Load balance : Server 04