PDA

View Full Version : 1 Website 2 ngôn ngữ, ý tưởng ?



NgocHien
16-07-2003, 15:01
Chào mọi người.

Đối với ASP thường thì 1 website dùng 2 ngôn ngữ thì đơn giản, chỉ cần save 2 file ngôn ngữ vào 2 file khác nhau, khi dùng ngôn ngữ nào thì Include file đó vào và các file khác dùng là xong.

Nhưng trong Asp.NET thì không được vì các biến nếu chưa khai báo thì dùng không được, mà nếu khai báo thì rất nhiều.

Vậy ai có ý tưởng nào cho 1 website dùng 2 ngôn ngữ không ?, em đang kẹt chổ này.

Hãy thảo luận đi nào, các câu hỏi của em toàn là câu hỏi hay không đó. :emlaugh:

White_Rose
16-07-2003, 16:11
Tạo một file bao gồm mọi "câu tiếng Việt" chung cho mọi file aspx (dạng file lang).

chipma
16-07-2003, 16:44
Tại sao lại phải dùng 2 ngôn ngữ trong cùng 1 site chứ. Ngoài ASP ra thì NgocHien còn muốn xài thêm ngôn ngữ gì nữa. Theo tui thấy thì ASP là ngôn ngữ mạnh trong việc lập trình web rùi còn gì nữa. Nếu dùng 2 ngôn ngữ mà kết hợp ko được, trang web ko đẹp thì có phải mang tiếng trưởng giả học làm sang không.:)

1011
16-07-2003, 17:24
Trong ASP.NET làm đa ngôn ngữ còn dễ hơn trong ASP nữa.
Để tạo một site 2 ngôn ngữ chỉ việc tạo 2 file ngôn ngữ (.txt). Sau đó dùng RegGen.exe của .Net FrameWork để biên dịch thành file resource (.res).
Trong các trang cần xài đa ngôn ngữ chỉ việc:


Import System.Resource
...
'Khai báo đối tượng resource
Dim RM As ResourceManager

'Muốn lấy đa ngôn ngữ ra chỗ nào chỉ việc:
RM.GetString("bien_can_thay_ngon_ngu") 'ví dụ: userName chẳng hạn

'userName được định nghĩa trong các file language
'trong file lang-vn.txt : userName=Tên
'trong file lang-us.txt : userName=Name


Chú ý là các key trong các file ngôn ngữ (.txt) có phân biệt chữ hoa, chữ thường.
Phần này có trong Working with resource files của QuickStart.

NgocHien
17-07-2003, 09:17
Tại sao lại phải dùng 2 ngôn ngữ trong cùng 1 site chứ. Ngoài ASP ra thì NgocHien còn muốn xài thêm ngôn ngữ gì nữa. Theo tui thấy thì ASP là ngôn ngữ mạnh trong việc lập trình web rùi còn gì nữa. Nếu dùng 2 ngôn ngữ mà kết hợp ko được, trang web ko đẹp thì có phải mang tiếng trưởng giả học làm sang không.:)

Không phải, ý của em là 1 website dùng 2 ngôn ngữ Anh - Việt đó, chứ không phải ngôn ngữ lập trình đâu :emlaugh:

NgocHien
17-07-2003, 09:26
Trong ASP.NET làm đa ngôn ngữ còn dễ hơn trong ASP nữa.
Để tạo một site 2 ngôn ngữ chỉ việc tạo 2 file ngôn ngữ (.txt). Sau đó dùng RegGen.exe của .Net FrameWork để biên dịch thành file resource (.res).
Trong các trang cần xài đa ngôn ngữ chỉ việc:


Import System.Resource
...
'Khai báo đối tượng resource
Dim RM As ResourceManager

'Muốn lấy đa ngôn ngữ ra chỗ nào chỉ việc:
RM.GetString("bien_can_thay_ngon_ngu") 'ví dụ: userName chẳng hạn

'userName được định nghĩa trong các file language
'trong file lang-vn.txt : userName=Tên
'trong file lang-us.txt : userName=Name


Chú ý là các key trong các file ngôn ngữ (.txt) có phân biệt chữ hoa, chữ thường.
Phần này có trong Working with resource files của QuickStart.

EM chưa hiểu lắm, anh có thể cho em 1 ví dụ cụ thể được không ?

1011
17-07-2003, 11:21
Trời ơi !!! :)
Thì đây là cách giải quyết đa ngôn ngữ trên giao diện mờ, ở đây chúng ta dùng resource do ASP.NET support.
Trong phần Working with resource files trong QuickStart chỉ rất rõ.

chipma
18-07-2003, 11:16
Dùng 2 ngôn ngữ cho cùng 1 website thì hơi phức tạp vì phải làm số lượng trang tăng gấp đôi nhưng như vậy thì sẽ nhiều người truy cập. Nhưng đáng lo nhất là u đã đủ trình độ Eng để làm web tiếng anh chưa.

1011
18-07-2003, 11:45
Số trang tăng gấp đôi chỉ khi làm 2 ngôn ngữ cho site viết bằng HTM thôi. Còn đối với các trang động (.asp, .aspx, .php) thì có viết nhiều ngôn ngữ số trang vẫn không đổi.
Chẳng hạn, muốn tạo một site có 2 ngôn ngữ được viết bằng ASP.NET thì chỉ cần tạo thêm 2 file ngôn ngữ (lang-vn.txt và lang-us.txt). Sau đó biên dịch 2 file này thành resource là dùng thoải mái.

vikhoa
18-07-2003, 11:47
Chipma nghĩ sao mà nói thế nhỉ? Người ta hỏi, không trả lời được vấn đề thì thôi, sao cứ bàn ra khong vậy ?

Những bài off-topic kiểu này không nên tồn tại quá nhiều trong DDTH.

1011
18-07-2003, 12:15
Đa ngôn ngữ trên ASP.NET
1.Tạo file ngôn ngữ: (giả sử site có 2 ngôn ngữ)
-Tạo file lang-vn.txt:
...
userName=Tên
passWord=Mật mã
address=Địa chỉ
...

-Tạo file lang-us.txt:
...
userName=Name
passWord=Password
address=Address
...

2.Biên dịch các file ngôn ngữ thành resource
Dùng RegGen.exe trong .NET FRAME WORK để biên dịch các file ngôn ngữ này. Cú pháp như sau:


- Chạy Command Prompt
- Từ dấu nháy: C:\... RegGen.exe ten_file_ngon_ngu_can_bien_dich
dấu ... : tên đường dẫn chứa file RegGen.exe
Trong truờng hợp này: (giả sử ta lưu các file ngôn ngữ và RegGen trong cùng thư mục TestLanguage)
C:\TestLanguage\RegGen.exe lang-vn.txt

C:\TestLanguage\RegGen.exe lang-us.txt

Sau khi biên dịch ta sẽ có 2 file là: lang-vn.resource và lang-us.resource.

3.Đưa vào các chỗ cần dùng đa ngôn ngữ:


Import System.Resource
...
'Khai báo đối tượng Resource toàn cục cho mỗi trang
Dim RM As ResourceManager

'Gọi hàm ChangeLanguage() trong Page_Load mỗi trang
....
ChangeLanguage("vi") 'chọn tiếng Việt
'ChangeLanguage("en-us") 'chọn tiếng Anh
....

'Hàm ChangeLanguage()
'mặc định là tiếng Anh
Public Sub ChangeLanguage(Optional ByVal strLang As String = "en-us")
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(strLang)
End Sub

'Chỗ nào cần thay thế đa ngôn ngữ:
Label1.Text = RM.GetString("userName")
Label2.Text = RM.GetString("passWord")
...

tnh
18-07-2003, 13:03
Có thể tạo ra 1 website đa ngôn ngữ chứ không chỉ là hai,
Vấn đề ở chỗ là bạn tạo ra 1 cơ sở dữ liệu ( hoặc 1 file) để lưu tất cả những biến và giá trị của chúng (ngôn ngữ) sử dụng trong Web site, thông qua biến session_lang(người sử dụng chọn) bạn sẽ điều khiển website trỏ đến table_lang (flat file) nào.

* Lưu ý:
Thao tác với flat file thì rất mạo hiểm vì Webserver phải có quyền đọc ghi file.

Thao tác với CSDL thì việc phân tích và thiết kế CSDL hơi phức tạp vì phải bảo đảm nội dung xuất ra từ CSDL đúng với ngôn ngữ mà người dùng chọn

NgocHien
18-07-2003, 17:16
Đa ngôn ngữ chỉ là giao diện thôi, ý của em chỉ là giao diện chứ không phải nội dung nên ko dính dáng đến database

lythien
19-07-2003, 09:14
Sau khi cài bộ vs.net khi chay file .aspx nhưng trên server không có gì toàn là nền trắng bạn có biết tại sao không.mặc dù đả cài server IIS rồi .

NgocHien
19-07-2003, 10:12
ai mà biết cái code của bạn như thế nào mà trả lời, có thể sau mấy cái control bạn thiếu runat="server" ??

curiousman
17-08-2004, 06:31
Tôi có thử nhưng đâu có thấy cái file đấy search trên mạng hoài cũng vậy à
RegGen.exe bạn có xchác không có gi trả lời nhanh nhé.

xacuop
17-08-2004, 06:55
Có thể dùng file XML cũng được mà. Ko cần phải biên dịch thành resource. Nhựợc điểm là bạn phải biết XML :)

curiousman
17-08-2004, 07:36
Tôi tìm mãi mà không thấy file này mà theo bạn nói là dùng file Reggen để chuyển về file .resource . Vậy thực tế file này ở đâu vậy

linhnhan
17-08-2004, 20:28
Xây dựng website hỗ trợ đa ngôn ngữ không phải là quá khó nhưng khối lượng công việc thường tăng lên rất nhiều. Có khá nhiều tài liệu bàn về chuyện này, nên tham khảo kỹ để nắm được kỹ thuật và kinh nghiệm trước khi thiết kế website của mình.
Thử ngó qua cái này xem sao: http://openmymind.net/localization/index.html

nt253vn
17-08-2004, 20:53
Vào đây đownloa cái mã nguồn này về coi

www.khoesac.com

Viết = .net 2 ngôn ngữ = XML, down về coi sẽ rõ

thienmy
22-08-2004, 06:12
mấy anh ơi, bị là ngọc hiền nó chơi chữ với các anh đó. mà các anh không biết
thằng ngọc hiền đặt câu hỏi ngu bỏ mẹ.
nếu là dân pro chẳng ai đặt câu hỏi như vậy đâu.
trả lời né tthằng ngu mà cứ đòi làm giọng mẹ không hà
thiết kế = phần mềm nào khọng biêt như tui khuyên nên thiềt kế = phần mêm dreamvMMX trở lên rồi tạo 2 template ( 1 là ngôn ngữ vietnam, 1 là ngôn ngữ English)

thienmy
22-08-2004, 06:16
thiếu cha gì những website mà đa ngôn ngữ, bóng đá euro0004, thế vận hội ở hy lạp né sao mà không vào coi cho biết .....

jay
22-08-2004, 08:06
bạn chỉ cần tạo các file XML chứa text của các ngôn ngữ, sau đó ở trên web, mỗi khi đổi ngôn ngữ thì bạn load lại file XML của đúng ngôn ngữ đó (nên cache file này ở mức Application, đừng cache ở mức Session) rồi ở những chổ nào hiển thị text, bạn ghi đúng câu text tương ứng trong file XML ra là được roài

Nhưng vấn đề khó hơn là graphic, bạn sẽ phải load lại cách image có chứa chữ.

hueduongit
27-08-2004, 06:01
Cách của 1011 là tuyệt rồi, không thì dùng cách của tnh vậy, ở đây it nghĩ tnh đang đề cập đến csdl của phần ngôn ngữ, tức là phần "giao diện" đó mà, chứ không phải csdl nghiệp vụ của NgocHien đâu

Ilovesing
27-08-2004, 07:13
cách dùng Resource nó khá vất vả trong việc Compile lại Resource. Hoặc là mình xác định được các phần cần trao đổi hoặc là bạn phải dịch đi dịch lại nhiều lần nếu như bạn phải thay đổi một đoạn text nào đó. bạn có thể vào trang này xem tôi dùng Resource: http://thangbqt.europe.webmatrixhosting.net/
Tôi thấy dùng XML là hay nhất, nó dễ sử dụng hơn nhiều, nó hay ở chỗ là kô cần complie lại tí nào cả... vì vậy nó dễ dàng cho việc thay đổi. Tôi chỉ nói thế thôi, ai có ý kiến gì thì nói.
bạn có thể vào đây để tham khảo: http://www.vietaqua.info

nguyenlong
01-10-2004, 08:32
cac bac thao luan ma to tra hieu gi ca
toi chi moi voc vao cai vo asp.net nen trinh do con non yeu qua
vay bac nao co kinh nghiem giup toi voi nhe
langtuhongduc@yahoo.com
rat mong cac bac co chuong trinh cu the cho toi code de hoc hoi
thank