PDA

View Full Version : trang web 2 nhiều ngôn ngữ làm sao đây các pro



manhtuan007
29-04-2005, 19:20
Vấn đề đặt ra là có 2 loại web:
1. là giao diện tất cả đề thay đổi ngôn ngữ.
2. Dữ liệu động cũng 2 ngôn ngữ.
Ba con có cách nào hay hay ko, Tui nghe nói người ta sài cái software tự dịch ra ngôn ngữ luôn. nghĩ là nhập tiếng anh thì nó dịch ra tiếng việt. Tui ko tin cái vụ này tí nào.
Bà con chỉ tui các nào để làm 2 ngôn ngữ đi

hostcrown
29-04-2005, 21:15
Không có software nào như vậy đâu, có nhưng dịch rất hạn chế.

aarone2003
30-04-2005, 07:38
Bạn nói rõ xem nào ?

Bạn tính làm site multi language à ?

Nếu thế thì thêm 1 comlumn language vào table members ...
+ Nếu là guest thì language default là việt (hoặc anh)
+ Nếu là user thì cho phép lựa chọn ( nếu chọn việt thì update table members cột language = việt , rùi truy vấn language thì dựa vào cột đó )

.....

tet2005
01-05-2005, 10:56
Mình đang định làm cái site nhiều ngôn ngữ, hướng đi của mình rất đơn giản có mấy viết mấy. Tức là bình thường nếu mình làm 1 ngôn ngữ thì mình chỉ làm 1 trang news.php nhưng bây giờ mình làm 2 trang là news_eng.php và news_vie.php tương tự cho các trang khác.Nếu bạn cảm thấy là như vậy là rườm rà (chứ không phải vất vả) thì có cách như các forum hay làm (cách này là website nhiều ngôn ngữ giao diện chứ không phải là website nhiều ngôn ngữ).

Nếu làm theo cách mình bạn có thể chủ động hơn trong phần thể hiện ngôn ngữ và tùy biến lập trình, đặc biệt trong khâu xử lý dữ liệu.

Với các phần như tin tức bài viết, bạn nên thiết kế database bao gồm 2 phần cho 2 thứ tiếng ví dụ như csdl news
id
title_vie
title_eng
des_vie
des_eng
content_vie
content_eng
writer
day_submit
view
active

Như vậy nếu member submit news tại trang tiếng anh thì các mục title_vie, content_vie, des_vie sẽ bỏ trống, nếu có người xem tin đó trong trang tiếng việt sẽ nhận thông báo là tin chưa dịch, vui lòng xem bên trang tiếng anh. Sau đó admin sẽ có nhiệm vụ dịch tin đó sang tiếng việt một cách nhanh chóng. Nếu admin mà submit tin thì admin sẽ lo nhiệm vụ dịch sẵn luôn, tức là anh việt gì cũng có. Những phần nhạy cảm như comment hay forum thì đừng có mơ mà dịch, tốt nhất là làm 2 forum riêng, một cái tiếng anh một cái tiếng việt, phần commet thì nên để một trường có tên là lang nếu comment từ trang tiếng anh thì ghi vào là eng nếu tiếng việt thì ghi vào là vie. Mặc định chúng ta nên để hiện thị comment việt anh chung, và sau này cho user tùy biến cách xem.

Đó là một vài định hướng mà mình nghĩ, và mình đang làm thành công với phiên bản mới của website do mình làm, còn bạn thích cứ theo.

NDThuan
02-05-2005, 19:20
Ý kiến của tôi:
Làm 1 table chứa TÊN NGÔN NGỮ và MÃ SỐ NGÔN NGỮ
Ví dụ nếu web có 2 ngôn ngữ thì khi bạn đưa vào 1 tin mới thì bạn phải insert (2) cái record, 1 cái chứa mã số X, một cái chứa mã số Y mới nội dung của ngôn ngữ tương ứng.

Khi người dùng truy cập trang web thì bạn thiết lập một giá trị mặc định, nếu người dùng chọn một cái khác mặc định thì bạn ghi một cookies lên máy người đó, dựa vào cookies đó để load ngôn ngữ thích hợp từ DB. Kiểu như cái select template của cái forum này này :D

pixelart
04-05-2005, 10:39
01. Nếu bạn muốn làm 2 ngôn ngữ ( ở phần tĩnh ) thì tạo 2 file lang.
VD: lang_vn.php và lang_en.php . Trong 2 file này mình định nghĩa giống nhau. VD:

// file lang_vn.php
$lang[about] = "Giới thiệu";

còn file lang_en.php
$lang[about] = "About";

Khi member hoặc Guest lựa chọn language nào thì mình tạo session hoặc cookie để include file lang vào .

Còn chuyện muốn 2 ngôn ngữ trong database thì khi post bài bạn phải nhập cả tiếng anh và tiếng Việt vào thôi, ko có cách nào khác đâu

ITHaNam
04-05-2005, 10:54
Ý kiến của bạn mình thấy hiện nay rất nhiếu site đã làm và thực hiện. Cách này cho phép chúng ta có thể xây dựng một site với rất nhiều ngôn ngữ rất đơngianr và nhanh chóng.
Cách này rất hay đấy.
Còn bạn muốn trong CSDL có nhiều ngôn ngữ thì mình nghĩ đựoc 1 cách như thê này:
bạn tạo các trường tương ứng với ngôn ngữ đó VD: Tiếng viêt: vi, English: en...
Khi user chọn 1 ngôn ngữ nào đó trong site thì ta chạy các file lang như ý kiến của bạn và sẽ cho chạy CSDl đến bảng có ngôn ngữ tương ứng, khi user nhập or thay đổi dũ liệu gì thì ta cần translation sang các cột còn lại.