09/10/2018, 22:41
trang web 2 nhiều ngôn ngữ làm sao đây các pro
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
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
Bài liên quan
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 đó )
.....
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.
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
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
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.