A-AA+then

เกี่ยวกับเว็บ 2 ภาษา

874
ขอความเห็นหน่อยครับ ว่าถ้าจะทำเว็บ 2 ภาษาเช่น หน้า บทความแรก(th),first article(en)  โดยมีเงื่อนไขที่ว่า สามารถเปลี่ยนภาษาได้ในหน้านั่น เช่น อยุ่หน้า เนื้อหา บทความแรก แล้วถ้ากดเปลี่ยนภาษา(en) ต้องเปลี่ยนเป็นหน้า first article ผมไปเห็นในตารางจะมีฟิลด์ชื่อ alias เข้าใจว่าตัวนี้จะเป็นลิงค์ในการค้นหาในหน้า view ผมก็เลยคิดว่า ถ้าให้มันใช้ alias เดียวกันหมดก็น่าจะได้
ซึ่งก็ได้ เลยอยากถาม อ.ว่ามันจะผิดอะไรรึป่าวครับ ถ้าได้คงต้องไปแก้ที่หลังบ้าน ที่นามแฝงให้เช็คไม่ซ้ำกันในบทความเดียวกัน indecision

11 ความคิดเห็น

อืมม....ไม่ค่อยเข้าใจคำถาม ไม่รู้ว่าเกี่ยวข้องกับ GCMS หรือเปล่า ถ้าใช่ GCMS ห็รองรับ multi language อยู่แล้ว

ถ้าไม่เกี่ยวกับ GCMS

จะว่าไปแนวคิดที่ว่าก็ไม่แหละครับ (ถ้าสามารถจัดการตามที่ว่าได้ โดยตีความจากที่ผมเข้าใจนะครับ)

แนวคิดของระบบ multi language จริงๆแล้วก็จะแบงออกเป็นสองอย่างครับ เช่น

1.URL เดียวกัน แต่แบ่งภาษาในการแสดงผลของเนื้อหาออกเป้นภาษาอื่นๆ ในกรณีนี้เราต้องคำนึงถึงว่า มันคือหน้าเดียวกัน หน้าในภาษาอื่นจะหมายความถึงหน้าที่ผ่านการแปล ดังนั้น URL ของหน้าจะเป็น URL เดียวกัน เช่น การอ้างถึงเนื้อหาด้วย id ในแต่ละภาษาจะต้องมี id เดียวกัน ดังนั้น โดยทั่วๆไป ถ้าใช้ alias มันก็ควรมี alias เดียวกันครับ

วิธีสำหรับกรณีนี้ คือ แค่เพิ่มฟิลด์เก็บข้อมูลเนื้อหา ในภาษาที่ต้องการเท่านั้นครับ

2.URL แตกต่างกัน (เช่น GCMS) วิธีนี้ id ของบทความจะไม่ตรงกัน และก็สามารถใช้ alias ตามภาษาได้ ข้อดีคือในด้าน seo จะได้หน้าเพิ่ม ตามภาษาที่มีอยู่ แต่ข้อเสียคือ วิธีการออกแบบจะยุ่งยากกว่าครับ
1

ของ gcms นะครับ เอาเป็นว่าเดี่ยวผมเรียบเรียงก่อนแล้วมาอธิบายใหม่ 555+
2

ถ้าเป็น GCMS ก็น่าจะยากอยู่นะครับ เพราะตามที่ผมอธิบายคือ หน้าของ GCMS ในคนละภาษาเป็นคนละหน้ากันครับ ซึ่งถ้าจะแก้กันจริงๆ น่าจะต้องสร้างโมดูลใหม่กันเลยจะง่ายกว่า

หมายเหตุ เหตุผลหลักที่ผมเลือกวิธีนี้เพราะ

การเพิ่มภาษาใหม่ในภายหลังจะไม่ยุ่งยาก ลองนึงถึงภาพบทความที่มีสัก 4-5 ภาษาสิครับ ซึ่ง GCMS สามารถทำด้ง่ายๆแค่สร้างโมดูลในภาษาที่ต้องการเท่านั้น (ไม่ต้องแก้ไขระบบ) รวมถึงสามารถแสดงบทความเดียวกันในทุกภาษาได้เลย
3

คือถ้าปกติกดเลือกแปลภาษาจากหน้าแรก(คนปกติทำกัน)ผมว่ามันก็น่าจะไม่มีปัญหานะครับ แต่มันจะมีปัญหาตรงที่ว่าเข้ามาอ่านแล้วเช่นอยู่หน้านี้ 
#module=knowledge-การตรวจสอบว่ามีฟังก์ชั่นของ_javascript_อยู่หรือไม่&page=1 ที่เป็นภาษาไทย แล้วดันทะลึ่งจะอ่านภาษาอื่นแล้วกดแปลภาษา
ในหน้านี้ระบบก็ต้องไปหาเนื้อหาอันนี้ในภาษานั่นๆ ให้ได้ แต่ก็ไม่น่าจะยากก้อาจจะต้องหาอะไรมาบอกว่าบทความนี้เป็นบทความเดียวกัน wink
4

อ้างจากคำตอบที่ #4คือถ้าปกติกดเลือกแปลภาษาจากหน้าแรก(คนปกติทำกัน)ผมว่ามันก็น่าจะไม่มีปัญหานะครับ แต่มันจะมีปัญหาตรงที่ว่าเข้ามาอ่านแล้วเช่นอยู่หน้านี้ 
#module=knowledge-การตรวจสอบว่ามีฟังก์ชั่นของ_javascript_อยู่หรือไม่&page=1 ที่เป็นภาษาไทย แล้วดันทะลึ่งจะอ่านภาษาอื่นแล้วกดแปลภาษา
ในหน้านี้ระบบก็ต้องไปหาเนื้อหาอันนี้ในภาษานั่นๆ ให้ได้ แต่ก็ไม่น่าจะยากก้อาจจะต้องหาอะไรมาบอกว่าบทความนี้เป็นบทความเดียวกัน wink

แม่นแล้วครับ

จริงๆแล้วถ้าไม่ใช่โหมด Ajax ก็พอแก้ปัญหาได้ครับ เช่น อาจใช้ตัวเลือก dropdown ในการเปลี่ยนภาษา (หรืออาจเลือกใช้วิธีอื่น) โดยส่ง url ของบทความในภาษานั้นๆ แทนที่ lang=en (query ของ ภาษาเปลี่ยนแปลงตามหน้าที่เรียก)

แต่ถ้าเป็นโหมด Ajax การทำแบบนี้ อาจยากอยู่ครับ เนื่องจากภาษาจะอ้างอิงตาม lang
5

อีกนิดครับ ชื่อโมดูลสามารถเป็นภาษาอื่นได้รึป่าวครับ เช่น ความรู้ ก็คือ knowledge
6

ทางทฤษฏีแล้วมันได้ครับ แต่ที่ผมไม่อนุญาติ เพราะมันจะทำให้ URL ที่ได้ตรวจสอบไม่ผ่านมาตรฐาน ก็เลยไม่ทำ (เช่นเดียวกับ URL ในรูป % นั่นแหละครับ) เพื่อตัดปัญหาเลยให้ใช้แต่ภาษาอังกฤษครับ

อีกอย่างคือชื่อโมดูลอาจถูกใช้เป็นชื่อโฟลเดอร์ด้วย ซึ่งชื่อโฟลเดอร์ภาษาไทยมักมีปัญหากับ linux ครับ
7

อ่อไม่ครับชื่อโฟเดอร์ก็เปนภาษาอังกฤษ เหมือนเดิมแต่ก็คงให้ชี้ไปที่ index แต่ก็จะมาเจอปัญหาเดิมอีกว่าจะทำให้รู้ได้ไงว่า knowledge.html ถ้ากดภาษาไทยต้องไปแสดงผลที่ ความรู้.html 5555
เดี่ยวลองดูครับได้ไม่ได้ยังไงจะแจ้งให้ทราบ
8

ไม่จำเป็นมั้งครับ ผมว่ามันน่าจะยากไป ลองทำแบบนี้ดู

1.โมดูลเป้น eng ตามกฏเดิมไปเถอะ เพื่อไม่ให้ยุ่งยากกับการจัดการ
2.เพื่มฟิลด์ที่ต้องการให้เป็น 2 ภาษา เช่น alias_th, alias_en และ detail_th, detail_en และอื่นๆที่น่าจะจำเป้น เฃ่น topic,description,keywords
3.เพิ่มช่องกรอกในภาษาต่างๆตามด้ายบนในตอนเขียน
4.เปลี่ยนภาษาด้วยกฏเดิม เช่น lang=en
5.แก้ไขการ query ใหม่ โดยให้หาข้อมูลตามภาษาที่เลือก

วิธีนี้น่าจะแก้ไขน้อยที่สุดนะครับ
9

ทีแรกก็อยากทำแบบนั่นนะครับ แต่เหมือนที่ อ.พูดก็ถูก ถ้ามี 5 ภาษานิ ไม่อยากจะคิดเดี่ยวลองดูก่อนเผื่อได้เป็น แนวคิดใหม่ๆได้เอามาแผยแพร่กันครับ
10

อ้างจากคำตอบที่ #10ทีแรกก็อยากทำแบบนั่นนะครับ แต่เหมือนที่ อ.พูดก็ถูก ถ้ามี 5 ภาษานิ ไม่อยากจะคิดเดี่ยวลองดูก่อนเผื่อได้เป็น แนวคิดใหม่ๆได้เอามาแผยแพร่กันครับ
11
^