ยินดีต้อนรับคุณ, บุคคลทั่วไป กรุณา เข้าสู่ระบบ หรือ ลงทะเบียน

เข้าสู่ระบบด้วยชื่อผู้ใช้ รหัสผ่าน และระยะเวลาในเซสชั่น

หน้า: [1]   ลงล่าง
พิมพ์
ผู้เขียน หัวข้อ: php ทำเว็บ 2ภาษา  (อ่าน 4492 ครั้ง)
0 สมาชิก และ 1 บุคคลทั่วไป กำลังดูหัวข้อนี้
saynum
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 51



ดูรายละเอียด
« เมื่อ: 23 กันยายน 2009, 01:58:47 »

 :)ต้องการทำเว็บสองภาษา รบกวนช่วยแนะนำ นะค่ะ

ไม่ค่อยถนัดเขียนโค้ดค่ะ แต่มาทำงานด้านนี้เลย ต้องศึกษาเพิ่ม

ขอบคุณค่ะ
บันทึกการเข้า

มือใหม่
navico
Verified Seller
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 108
ออฟไลน์ ออฟไลน์

กระทู้: 2,315



ดูรายละเอียด เว็บไซต์
« ตอบ #1 เมื่อ: 23 กันยายน 2009, 02:12:27 »

มีไรคุยกันได้ครับ...
ไม่เก่งหรอก แต่ก็น่าจะพอบอกได้บ้างนิดหน่อย
บันทึกการเข้า
EixQzUnG
สมุนแก๊งเสียว
*

พลังน้ำใจ: 34
ออฟไลน์ ออฟไลน์

กระทู้: 996



ดูรายละเอียด
« ตอบ #2 เมื่อ: 23 กันยายน 2009, 04:30:11 »

 Tongue พูดละยาวเลย เก็บได้หลายแบบ เลยครับ  Tongue



บันทึกการเข้า

aommiez
ก๊วนเสียว
*

พลังน้ำใจ: 13
ออฟไลน์ ออฟไลน์

กระทู้: 303



ดูรายละเอียด
« ตอบ #3 เมื่อ: 23 กันยายน 2009, 06:19:01 »

ต้องใช้ ตัวแปร หลัก แล้วก็
lang/
lang/eng.txt
lang/thai.txt

ในไฟล์ eng.txt มีตัวแปร
$home = home;

ในไฟล์ thai.txt มีตัวแปร
$home = หน้าแรก;

ไฟล์แสดงหน้าหลัก
<? include lang/eng.txt ?>  //เลือกภาษาที่จะแสดง
<? php echo $home; ?> // คำว่า $home มันก็จะแสดงตามที่เรา เซ็ตไว้

ประมาณนี้อะ แต่คำสั่งไม่ใช่แบบนี้นะครับ แค่ยกตัวอย่าง

บันทึกการเข้า
zoomman
ก๊วนเสียว
*

พลังน้ำใจ: 26
ออฟไลน์ ออฟไลน์

กระทู้: 246



ดูรายละเอียด
« ตอบ #4 เมื่อ: 23 กันยายน 2009, 08:03:51 »

ต้องใช้ ตัวแปร หลัก แล้วก็
lang/
lang/eng.txt
lang/thai.txt

ในไฟล์ eng.txt มีตัวแปร
$home = home;

ในไฟล์ thai.txt มีตัวแปร
$home = หน้าแรก;

ไฟล์แสดงหน้าหลัก
<? include lang/eng.txt ?>  //เลือกภาษาที่จะแสดง
<? php echo $home; ?> // คำว่า $home มันก็จะแสดงตามที่เรา เซ็ตไว้

ประมาณนี้อะ แต่คำสั่งไม่ใช่แบบนี้นะครับ แค่ยกตัวอย่าง


^
^
ตามนี้ครับง่ายสุด
บันทึกการเข้า

ลายเซ็น
เก๋าลัดคุง
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 196
ออฟไลน์ ออฟไลน์

กระทู้: 3,906



ดูรายละเอียด เว็บไซต์
« ตอบ #5 เมื่อ: 23 กันยายน 2009, 10:19:39 »

ทำอยู่ 2 ภาษาที่

อ้างถึง


รูปธงชาติ 2 ภาษา เหนื่อยสุดๆ  Tongue
บันทึกการเข้า

saynum
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 51



ดูรายละเอียด
« ตอบ #6 เมื่อ: 24 กันยายน 2009, 16:50:14 »

 :)ถามต่อแบบโง่ๆเลยนะค่ะ

ว่าตอนนี้เว็บที่ทำอยู่เป็นภาษาไทยอย่างเดียวอ่ะค่ะ

ถ้าจะเริ่มต้นทำเป็นภาษาอังกฤษด้วย 

ต้องเริ่มต้นจากตรงไหนค่ะ  ต้องทำหน้าแรกเป้นภาษาอังกฤษด้วยหรือเปล่าค่ะ

ช่วยแนะนำด้วยค่ะ 
บันทึกการเข้า

มือใหม่
mikeyx
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 271
ออฟไลน์ ออฟไลน์

กระทู้: 4,046



ดูรายละเอียด เว็บไซต์
« ตอบ #7 เมื่อ: 24 กันยายน 2009, 16:54:56 »

โค๊ด:
hxxp://www.stecon.co.th/eng/index.php

ใช้สลับ folder แค่นั้นเองครับเหมือนทำ 2 web เลบ Tongue
บันทึกการเข้า
เก๋าลัดคุง
Verified Seller
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 196
ออฟไลน์ ออฟไลน์

กระทู้: 3,906



ดูรายละเอียด เว็บไซต์
« ตอบ #8 เมื่อ: 24 กันยายน 2009, 17:22:18 »

:)ถามต่อแบบโง่ๆเลยนะค่ะ

ว่าตอนนี้เว็บที่ทำอยู่เป็นภาษาไทยอย่างเดียวอ่ะค่ะ

ถ้าจะเริ่มต้นทำเป็นภาษาอังกฤษด้วย 

ต้องเริ่มต้นจากตรงไหนค่ะ  ต้องทำหน้าแรกเป้นภาษาอังกฤษด้วยหรือเปล่าค่ะ

ช่วยแนะนำด้วยค่ะ 

อยู่ที่การเขียนโปรแกรมของเว็บ เขียนเพิ่มให้รับภาษาอังกฤษก็ได้

คุณทำ ภาษาไทย แล้วให้เป็นภาษาหลักเลยครับ ที่ติด index จะได้ไม่หาย
บันทึกการเข้า

@@@
Administrator
สมุนแก๊งเสียว
*

พลังน้ำใจ: 33
ออฟไลน์ ออฟไลน์

กระทู้: 634



ดูรายละเอียด เว็บไซต์
« ตอบ #9 เมื่อ: 25 กันยายน 2009, 18:49:36 »

โค๊ด:
hxxp://www.stecon.co.th/eng/index.php

ใช้สลับ folder แค่นั้นเองครับเหมือนทำ 2 web เลบ Tongue

ถ้าสองภาษาจริงๆไม่ต้องการเพิ่มก็ตามนี้ครับง่ายสุด

แต่ถ้าหลายภาษาก็ตามคุณ aommiez

ต้องใช้ ตัวแปร หลัก แล้วก็
lang/
lang/eng.txt
lang/thai.txt

ในไฟล์ eng.txt มีตัวแปร
$home = home;

ในไฟล์ thai.txt มีตัวแปร
$home = หน้าแรก;

ไฟล์แสดงหน้าหลัก
<? include lang/eng.txt ?>  //เลือกภาษาที่จะแสดง
<? php echo $home; ?> // คำว่า $home มันก็จะแสดงตามที่เรา เซ็ตไว้

ประมาณนี้อะ แต่คำสั่งไม่ใช่แบบนี้นะครับ แค่ยกตัวอย่าง


บันทึกการเข้า

รับซื้อเว็บ 100uip ต่อวันขึ้นไป EA Forex
EThaiZone
เจ้าพ่อโลลิค่อน
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 321
ออฟไลน์ ออฟไลน์

กระทู้: 12,518



ดูรายละเอียด เว็บไซต์
« ตอบ #10 เมื่อ: 25 กันยายน 2009, 22:39:30 »

ธงสำหรับทำไอค่อน
โค๊ด:
http://www.famfamfam.com/lab/icons/flags/

คงแนะนำแบบคุณ aommiez เหมือนกันครับ (มองในฐานะคนเขียน php)
แล้วถ้าทำลึกไปอีก ก็อาจทำเก็บค่าที่คนดูเลือกลงคุ๊กกี๊
เผื่อคราวหลังต้องการแสดงภาษาไหนเฉพาะในภายหลัง

แต่ตามหลัก seo จริงๆ แนะนำทำแยก 2 โฟลเดอร์แบบคุณ mikeyx
เพราะ seo มันขึ้นกับภาษา เลยเป็นการทำอันดับแบบ locate (ตามพื้นที่)

ไม่งั้นถ้าทำแบบ php รวมไฟล์เดียว เราก็ต้องมานั่งกำหนด default ภาษาสักอัน
แล้วภาษาที่เหลือก็จะไม่ได้เลย

 Tongue
บันทึกการเข้า

chitjung
Newbie
*

พลังน้ำใจ: 1
ออฟไลน์ ออฟไลน์

กระทู้: 48



ดูรายละเอียด
« ตอบ #11 เมื่อ: 26 กันยายน 2009, 10:35:23 »

ทำเป็น 2 folder ก้อได้ครับ
บันทึกการเข้า
!Man
คนรักเสียว
*

พลังน้ำใจ: 2
ออฟไลน์ ออฟไลน์

กระทู้: 119



ดูรายละเอียด เว็บไซต์
« ตอบ #12 เมื่อ: 26 กันยายน 2009, 15:40:21 »

ต้องใช้ ตัวแปร หลัก แล้วก็
lang/
lang/eng.txt
lang/thai.txt

ในไฟล์ eng.txt มีตัวแปร
$home = home;

ในไฟล์ thai.txt มีตัวแปร
$home = หน้าแรก;

ไฟล์แสดงหน้าหลัก
<? include lang/eng.txt ?>  //เลือกภาษาที่จะแสดง
<? php echo $home; ?> // คำว่า $home มันก็จะแสดงตามที่เรา เซ็ตไว้

ประมาณนี้อะ แต่คำสั่งไม่ใช่แบบนี้นะครับ แค่ยกตัวอย่าง




อีกแนวทางนึงครับ
<?
define(Login, 'เข้าสู่ระบบ');
define(Logout, 'ออกจากระบบ');
?>

เวลาแสดงก็
<?
echo Login;
?>
บันทึกการเข้า

saynum
Newbie
*

พลังน้ำใจ: 0
ออฟไลน์ ออฟไลน์

กระทู้: 51



ดูรายละเอียด
« ตอบ #13 เมื่อ: 28 กันยายน 2009, 15:08:57 »

ถ้าทำเป็นแยก floder คือเราก็ต้องทำข้อมูลเป็น 2 floder

แล้วให้ทำลิ้งไปแต่ละภาษา

เหรอค่ะ

เว็บใหญ่ทำกันหลับแน่เลย

ขอบคุณทุกคำแนะนำนะค่ะ

บันทึกการเข้า

มือใหม่
wat
สมุนแก๊งเสียว
*

พลังน้ำใจ: 81
ออฟไลน์ ออฟไลน์

กระทู้: 593



ดูรายละเอียด เว็บไซต์
« ตอบ #14 เมื่อ: 28 กันยายน 2009, 16:04:01 »

แอบเก็บครับ........ wanwan019
บันทึกการเข้า

"เริ่มจากเรื่องที่รัก เลือกสิ่งที่ถนัด ก่อนที่จะทุ่มให้สุดหัวใจ ใส่พลังลงไปให้สุดแรง"

คนหยามเหยียดสักเท่าไหร่ แต่สำคัญที่ว่าคุณสู้จริงหรือเปล่า
ball6847
เจ้าพ่อบอร์ดเสียว
*

พลังน้ำใจ: 212
ออฟไลน์ ออฟไลน์

กระทู้: 4,174



ดูรายละเอียด
« ตอบ #15 เมื่อ: 28 กันยายน 2009, 16:28:00 »

เป็นผมถึงหวัง SEO ผมก็ไม่ทำแยกซับโฟลเดอร์อ่ะ แก้ไขลำบาก อับเดทก็ลำบาก

เป็นผมใช้วิธีเก็บลงตัวแปลแบบคุณ aommiez ดีกว่า แต่ว่าผมคงไม่ใช่้ชื่อตัวแปรแบบนั้นเพราะกลัวว่ามันจะมีการซ้อนกับที่มีในระบบอยู่แล้ว เป็นผมคงใช้

lang/en.php
$lang[0] = 'Hello my friend';
$lang[1] = 'We meet again';


lang/th.php
$lang[0] = 'หวัดดีเพื่ือน';
$lang[1] = 'เจอกันอีกแล้ว';

แบบ array index นี่แหละ แม่นยำที่สุด แต่อาจจะงงหน่อยเวลาทำ template แต่ถ้ากำกับเป็น comment ไว้ก็ไม่มีปัญหา

หลังจากนั้นถ้าหวังเรื่อง seo ค่อยทำ mod rewrite ทีนี้จะทำแยก subdomain ละภาษาเลยก็ได้ จะทำกี่ภาษาก็เอา lang ไปแปลแล้วแก้สคริปท์ตอน setcookie อีกนิดหน่อย
« แก้ไขครั้งสุดท้าย: 28 กันยายน 2009, 16:29:34 โดย ball6847 » บันทึกการเข้า

Tee++;
โปรแกรมเมอร์ จอหงวน
หัวหน้าแก๊งเสียว
*

พลังน้ำใจ: 79
ออฟไลน์ ออฟไลน์

กระทู้: 1,861



ดูรายละเอียด เว็บไซต์
« ตอบ #16 เมื่อ: 28 กันยายน 2009, 18:20:54 »

อย่าใช้วิธีแบบ Array เลยครับ มัน manage ยาก เรื่องของ Key Language ลองศึกษาการเก็บ ภาษาเป็น ไฟล์ mo ดู โดยใช้ความสามารถ gettext ของ PHP

ยกตัวอย่างเช่นพวกเว็บใหญ่ๆ ที่ต้องทยอยแปล จะทำงานแบบนี้ครับ

_e('Hello I am Tee++');

โดยถ้าไม่เจอ ตัวแปลใน ภาษานั้นๆ ก็จะ echo key ออกมาเลย ซึ่ง key มันจะไม่เหมือน array คือ key เป็นคำได้เลย ดังนั้นเวลาแปล ไม่มี เราก็จะรู้ทันที เพราะมันจะไม่เป็นค่า "ว่างๆ" แต่จะ echo key มาใช้งาน

นอกจากนี้ยังมีอีกหลายวิธี ซึ่งทำงานคล้ายๆ กัน อาทิเช่น

1. cvs
2. xml
3. ini
4. Qt

ซึ่งจริงๆ แล้วเราแทบจะไม่ต้องเขียนอะไรมากเพราะเรามี "Zend_Translate" นั่นเอง อิอิ
http://framework.zend.com/manu...en/zend.translate.adapter.html

สำหรับ ใครที่จะใช้ mo มันจะทำงาน แบบ compile ครับ เราต้องสร้าง .po มา compile เป็น mo และควรจะใช้ร่วมกับ Zend_Cache

ซึ่งตัว PO ปกติแล้วเค้าใช้ POEDIT กัน
http://www.poedit.net/

ตัวอย่าง PO ก่อน compile เป็น MO

en/language.po

โค๊ด:
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: Tee <[email protected]>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"

msgid "ภาพแทนตัว"
msgstr "Avatar"

msgid "อีเมล์"
msgstr "Email"

msgid "รหัสผ่าน"
msgstr "Password"

msgid "รหัสผ่านปัจจุบัน"
msgstr "Current Password"

msgid "จำฉันไว้ในระบบ"
msgstr "Remember me"

msgid "เข้าสู่ระบบ"
msgstr "Log In"

th/language.po

โค๊ด:
msgid ""
msgstr ""
"Project-Id-Version: \n"
"POT-Creation-Date: \n"
"PO-Revision-Date: \n"
"Last-Translator: Tee <[email protected]>\n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=utf-8\n"
"Content-Transfer-Encoding: 8bit\n"

msgid "ภาพแทนตัว"
msgstr "ภาพแทนตัว"

msgid "อีเมล์"
msgstr "อีเมล์"

msgid "รหัสผ่าน"
msgstr "รหัสผ่าน"

msgid "รหัสผ่านปัจจุบัน"
msgstr "รหัสผ่านปัจจุบัน"

msgid "จำฉันไว้ในระบบ"
msgstr "จำฉันไว้ในระบบ"

msgid "เข้าสู่ระบบ"
msgstr "เข้าสู่ระบบ"

** พอดีภาษาหลักผมคือ Thai ก็เลยมี msgid เป็นไทย ซึ่งจริงๆแล้ว ผมไม่ต้องทำชุดไทยก็ได้ แต่อยากทำไว้ เป็น prototype เท่านั้นเอง **

อีกอย่างคือ ยัดมันเข้าไปหมดเลยครับ ไม่ต้องแยกไฟล์ ไม่ต้องแยก module มี สัก 10000 line ก็ไม่เป็นไร แต่ที่สำคัญทำเสร็จ มันจะต้องอยู่ใน memcached แล้ว ต่อมาเรียกโหลดจาก memory จะทำงานได้เร็วมากครับ
« แก้ไขครั้งสุดท้าย: 28 กันยายน 2009, 18:27:03 โดย Tee++; » บันทึกการเข้า

หน้า: [1]   ขึ้นบน
พิมพ์