SlideShare a Scribd company logo
1 of 10
Download to read offline
Hướng dẫn bản địa hóa chương trình
I. Công đoạn chuẩn bị.

Yêu cầu của bài này: Ban đầu chương trình có giao diện tiếng việt, khi người dùng click vào
button
thì hiển thị giao diện tiếng anh, còn khi click vào button
diện tiếng việt.

Hướng dẫn tạo bản địa hóa cho chương trình – Nguyễn Duy Đại
https://nguyenduydai.wordpress.com

thì hiển thị lại giao

Trang 1
Để làm được việc này, trước tiên bạn cần đặt tên đầy đủ cho các control như sau:

Công việc chuẩn bị đã xong, giờ ta qua bước tiếp theo.

Hướng dẫn tạo bản địa hóa cho chương trình – Nguyễn Duy Đại
https://nguyenduydai.wordpress.com

Trang 2
II. Tạo tập tin resources.
1. Tạo tập tin Resources cho giao diện mặc định đang thiết kế trên form (ở đây là tiếng việt)
- Nhấp chuột phải vào project  Add  New Item.
- Trong cửa sổ Add New Item bạn chọn Resources File rồi đặt tên cho resource của mình
(ở đây tôi đặt tên: myResource.resx)

-

Bước tiếp theo của bạn bây giờ là nhập giá trị Name, Value cho tập tin resources vừa tạo.
Chú ý: + Name của resources là tên các control bạn đặt khi thiết kế
+ Value là thuộc tính Text của control đó.

Hướng dẫn tạo bản địa hóa cho chương trình – Nguyễn Duy Đại
https://nguyenduydai.wordpress.com

Trang 3
Ở đây tui sẽ đặt thế này:

OK, xong rồi lưu lại.

2. Tạo tập tin Resources cho giao diện muốn chuyển đổi ngôn ngữ (ở đây là tiếng anh).
- Làm tương tự như trên, chỉ khác phần nhập value cho tập tin Resources thôi.
Một lưu ý rất quan trọng là tập tin resource này phải được đặt tên theo dạng:
ten_tap_tin.ma_quoc_gia.resx
ten_tap_tin phải giống với phần tên tập tin của resources 1
(Mã quốc gia thì bạn có thể xem ở bảng List of Culture Codes mà mình gửi cùng).
Ở bài này mình sẽ đặt tên cho tập tin resources này là:
Hướng dẫn tạo bản địa hóa cho chương trình – Nguyễn Duy Đại
https://nguyenduydai.wordpress.com

Trang 4
myResource.en-US.resx
(en-US là mã quốc gia của Mỹ, vì giao diện mình cần chuyển là tiếng anh của Mỹ).
-

Các giá trị trong tập tin resources thứ 2 có dạng thế này:

Nhập đầy đủ thì lưu lại.
OK, vậy là xong công đoạn chuẩn bị tập tin Resources, tiếp theo là giai đoạn biên dịch tập
tin resources thành file .dll để sử dụng.

Hướng dẫn tạo bản địa hóa cho chương trình – Nguyễn Duy Đại
https://nguyenduydai.wordpress.com

Trang 5
III. Biên dịch tập tin Resources sang file .dll
Bạn vào Start  All Program  Microsoft Visual Studio  Visual Studio Tools 
chọn Visual Studio Command Prompt.
1. Bước 1: Chuyển đến thư mục chứa tập tin resources trong Project của bạn:
Ở đây, project của mình để ở:
D:Localizing_Globalization_Example
Bạn gõ các lệnh sau:
D: 
cd D:Localizing_Globalization_Example
Nếu gõ đúng thì bạn sẽ thấy nó thế này:

Ok, bây giờ ta bắt tay vào biên dịch cho tập tin resources thứ nhất: (myResource.resx)
2. Biên dịch tập tin resources thứ nhất.
Bạn gõ các lệnh sau:
resgen myResource.resx 
al /embed:myResource.resources /out:myResource.resources.dll 
Hướng dẫn tạo bản địa hóa cho chương trình – Nguyễn Duy Đại
https://nguyenduydai.wordpress.com

Trang 6
Nếu bạn gõ đúng thì nó sẽ hiển thị thế này:

Biên dịch thành công rồi, bạn copy/cut file: myResource.resources.dll vào thư mục
binDebug của Project.

Xong rồi bạn qua tiếp bước 3: biên dịch tập tin resources thứ 2:
myResource.en-US.resx

Hướng dẫn tạo bản địa hóa cho chương trình – Nguyễn Duy Đại
https://nguyenduydai.wordpress.com

Trang 7
3. Biên dịch tập tin resources thứ hai.
Thực hiện tương tự như bước 2 thôi, chỉ khác xíu ah.
Các bước làm như sau:
Bạn lần lượt gõ các lệnh:
resgen myResource.en-US.resx 
al /embed:myResource.en-US.resources /c:en-US /out:myResource.en-US.resources.dll 
Nếu bạn gõ đúng thì nó sẽ hiển thị thế này:

Hướng dẫn tạo bản địa hóa cho chương trình – Nguyễn Duy Đại
https://nguyenduydai.wordpress.com

Trang 8
OK,vậy là bạn biên dịch xong tập tin thứ 2. Bạn có thể Close Command Prompt đi được rồi
đó.
Tiếp theo bạn tạo 1 thư mục: en-US trong thư mục binDebug của Project, rồi copy/cut file:
myResource.en-US.resources.dll vào thư mục đó.
Đến đây đã xong hết tất cả các công việc chuẩn bị ngoài lề, việc quan trọng của chúng ta bây
giờ là phải viết code để thể hiện nó trên chương trình. Code nào….
IV. Code
- Trước tiên bạn using 3 thư viện này vào:
using System.Reflection;
using System.Resources;
using System.Globalization;

-

Bạn cần khai báo 1 biến kiểu ResoureManager để quản lý resoures của bạn.
ResourceManager resource;

-

Trong hàm khởi tạo của Form, bạn khởi tạo cho biến resource mà bạn vừa khai báo ở trên:
ResourceManager resource;
Đường dẫn tới tập tin resource của bạn
public frmExample()
{
InitializeComponent();
resource = new ResourceManager("Localizing_Globalization_Example.myResource",
Assembly.GetExecutingAssembly());
}

-

Tiếp theo bạn viết 1 phương thức để chuyển đổi ngôn ngữ mỗi khi click vào button ngôn
ngữ tương ứng (cái này nếu muốn chuyên nghiệp hơn thì dùng vòng lặp duyệt các
control. Vì mình hướng dẫn chi tiết thế này để các bạn mới cũng có thể làm dc nên hơi
dài dòng chút.)
private void ChuyenDoiNgonNgu(String ma)
{
CultureInfo ci = new CultureInfo(ma);
lblQuanLySV.Text = resource.GetString("lblQuanLySV",ci);
lblMaSV.Text = resource.GetString("lblMaSV", ci);
lblTenSV.Text = resource.GetString("lblTenSV", ci);
btnThem.Text = resource.GetString("btnThem", ci);
btnXoa.Text = resource.GetString("btnXoa", ci);
grbDanhSachSV.Text = resource.GetString("grbDanhSachSV", ci);
lsvDanhSachSV.Columns[0].Text = resource.GetString("colMaSV", ci);
lsvDanhSachSV.Columns[1].Text = resource.GetString("colTenSV", ci);
}

-

Công việc cuối cùng của bạn là gọi lại phương thức trong sự kiện click của button ngôn
ngữ tương ứng:
 Button Tiếng việt
private void btnVi_Click(object sender, EventArgs e)
{

Hướng dẫn tạo bản địa hóa cho chương trình – Nguyễn Duy Đại
https://nguyenduydai.wordpress.com

Trang 9
ChuyenDoiNgonNgu("");
}



Button Tiếng anh
private void btnEn_US_Click(object sender, EventArgs e)
{
ChuyenDoiNgonNgu("en-US");
}

Chú ý: với button hiển thị ngôn ngữ mặc định (ở đây là tiếng việt) thì mã bạn chuyền vào là
1 chuỗi rỗng. Còn với ngôn ngữ khác (ko phải mặc định) thị bạn phải chuyền mã quốc gia
tương ứng với nước đó (Có trong bảng List of Culture Codes).
Đến đây thì mọi công việc của bạn đã hoàn tất, bạn chỉ việc chạy chương trình và chiêm
ngưỡng kết quả của mình thôi.
Cũng ko khó khăn lắm phải ko? Bạn chịu khó làm lại 2-3 lần là thuộc làu như lòng bàn tay
ấy mà.

Good luck!

Hướng dẫn tạo bản địa hóa cho chương trình – Nguyễn Duy Đại
https://nguyenduydai.wordpress.com

Trang 10

More Related Content

Viewers also liked

Jaime Torres Bodet.
Jaime Torres Bodet.Jaime Torres Bodet.
Jaime Torres Bodet.AnnyMellark
 
El método clínico en las enfermedades tiroideas
El método clínico en las enfermedades tiroideasEl método clínico en las enfermedades tiroideas
El método clínico en las enfermedades tiroideasgabrielita1819
 
Il blog come strumento per comunicare l'archeologia
Il blog come strumento per comunicare l'archeologiaIl blog come strumento per comunicare l'archeologia
Il blog come strumento per comunicare l'archeologiaMarina Lo Blundo
 
OPS 571 Final Exam 2015 version
OPS 571 Final Exam 2015 versionOPS 571 Final Exam 2015 version
OPS 571 Final Exam 2015 versionbrewgabrielse
 
AC Letter of recommendation
AC Letter of recommendationAC Letter of recommendation
AC Letter of recommendationMeloney Ridley
 
Masculino agente e civis corrida popular 7km ok
Masculino agente e civis   corrida popular 7km okMasculino agente e civis   corrida popular 7km ok
Masculino agente e civis corrida popular 7km okAlfredo Zamora
 
ENJ-300 El Defensor en la Fase de Investigación
ENJ-300 El Defensor en la Fase de InvestigaciónENJ-300 El Defensor en la Fase de Investigación
ENJ-300 El Defensor en la Fase de InvestigaciónENJ
 
Netrworking Protocol Training
Netrworking Protocol TrainingNetrworking Protocol Training
Netrworking Protocol TrainingMarco Ronga
 
John M. Retirement 2014
John M. Retirement 2014John M. Retirement 2014
John M. Retirement 2014Humes LeeAlice
 
Estados financieros junio 30 2013
Estados financieros junio 30 2013Estados financieros junio 30 2013
Estados financieros junio 30 2013videodigital
 
Comunicação pública em mídias sociais: há espaço para o humor?
Comunicação pública em mídias sociais: há espaço para o humor?Comunicação pública em mídias sociais: há espaço para o humor?
Comunicação pública em mídias sociais: há espaço para o humor?Murilo Pinto
 
Certificate_of_Completion
Certificate_of_CompletionCertificate_of_Completion
Certificate_of_CompletionSamantha Gordon
 

Viewers also liked (18)

Jaime Torres Bodet.
Jaime Torres Bodet.Jaime Torres Bodet.
Jaime Torres Bodet.
 
Where is Larissa?
Where is Larissa?Where is Larissa?
Where is Larissa?
 
El método clínico en las enfermedades tiroideas
El método clínico en las enfermedades tiroideasEl método clínico en las enfermedades tiroideas
El método clínico en las enfermedades tiroideas
 
Il blog come strumento per comunicare l'archeologia
Il blog come strumento per comunicare l'archeologiaIl blog come strumento per comunicare l'archeologia
Il blog come strumento per comunicare l'archeologia
 
OPS 571 Final Exam 2015 version
OPS 571 Final Exam 2015 versionOPS 571 Final Exam 2015 version
OPS 571 Final Exam 2015 version
 
AC Letter of recommendation
AC Letter of recommendationAC Letter of recommendation
AC Letter of recommendation
 
Masculino agente e civis corrida popular 7km ok
Masculino agente e civis   corrida popular 7km okMasculino agente e civis   corrida popular 7km ok
Masculino agente e civis corrida popular 7km ok
 
ENJ-300 El Defensor en la Fase de Investigación
ENJ-300 El Defensor en la Fase de InvestigaciónENJ-300 El Defensor en la Fase de Investigación
ENJ-300 El Defensor en la Fase de Investigación
 
Netrworking Protocol Training
Netrworking Protocol TrainingNetrworking Protocol Training
Netrworking Protocol Training
 
Askep chv (gagal jantung)
Askep chv (gagal jantung)Askep chv (gagal jantung)
Askep chv (gagal jantung)
 
John M. Retirement 2014
John M. Retirement 2014John M. Retirement 2014
John M. Retirement 2014
 
Estados financieros junio 30 2013
Estados financieros junio 30 2013Estados financieros junio 30 2013
Estados financieros junio 30 2013
 
Comunicação pública em mídias sociais: há espaço para o humor?
Comunicação pública em mídias sociais: há espaço para o humor?Comunicação pública em mídias sociais: há espaço para o humor?
Comunicação pública em mídias sociais: há espaço para o humor?
 
Certificate_of_Completion
Certificate_of_CompletionCertificate_of_Completion
Certificate_of_Completion
 
LA SALUD
LA SALUDLA SALUD
LA SALUD
 
Ab00 a040gha01 02
Ab00 a040gha01 02Ab00 a040gha01 02
Ab00 a040gha01 02
 
Syariah muamalat
Syariah muamalatSyariah muamalat
Syariah muamalat
 
Tattoos for boys
Tattoos for boysTattoos for boys
Tattoos for boys
 

Similar to Localizing globalization step_bystep

Hướng Dẫn Chỉnh Sửa Giao Diện Dspace – P3
Hướng Dẫn Chỉnh Sửa Giao Diện Dspace – P3Hướng Dẫn Chỉnh Sửa Giao Diện Dspace – P3
Hướng Dẫn Chỉnh Sửa Giao Diện Dspace – P3Gari Dinh
 
Giải pháp toàn diện cho Multi Language
Giải pháp toàn diện cho Multi Language Giải pháp toàn diện cho Multi Language
Giải pháp toàn diện cho Multi Language ZendVN
 
PMMNM.docx
PMMNM.docxPMMNM.docx
PMMNM.docxNgnHng26
 
IT120-2. Bắt đầu với Hello World
IT120-2. Bắt đầu với Hello WorldIT120-2. Bắt đầu với Hello World
IT120-2. Bắt đầu với Hello WorldMultiUni
 
Hướng dẫn tạo Loader trong .NET - bản dịch
Hướng dẫn tạo Loader trong .NET - bản dịchHướng dẫn tạo Loader trong .NET - bản dịch
Hướng dẫn tạo Loader trong .NET - bản dịchLevis Nickaster
 
Huong dan su dung end note11112019final
Huong dan su dung end note11112019finalHuong dan su dung end note11112019final
Huong dan su dung end note11112019finalNgô Te
 
Ứng dụng phần mềm Quản lý tài liệu GXD quản lý tài liệu dự án xây dựng trên 1...
Ứng dụng phần mềm Quản lý tài liệu GXD quản lý tài liệu dự án xây dựng trên 1...Ứng dụng phần mềm Quản lý tài liệu GXD quản lý tài liệu dự án xây dựng trên 1...
Ứng dụng phần mềm Quản lý tài liệu GXD quản lý tài liệu dự án xây dựng trên 1...Nguyễn Thế Anh Giaxaydung.vn
 
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2KhanhPham
 
Bài tập Lập trinh viên thiết bị di động
Bài tập Lập trinh viên thiết bị di độngBài tập Lập trinh viên thiết bị di động
Bài tập Lập trinh viên thiết bị di độngRobert Commando
 
Bai tap thuc hanh tin ung dung2010
Bai tap thuc hanh tin ung dung2010Bai tap thuc hanh tin ung dung2010
Bai tap thuc hanh tin ung dung2010hopitpro
 
Create easymoduleinphpfox
Create easymoduleinphpfoxCreate easymoduleinphpfox
Create easymoduleinphpfoxEntu Di
 
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì?  9 Thứ thú vị có thể làm với PHPPHP có thể làm gì?  9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHPNIIT - ICT Hà Nội
 
Giới thiệu Android- Bài 2
Giới thiệu Android- Bài 2Giới thiệu Android- Bài 2
Giới thiệu Android- Bài 2hoccungdoanhnghiep
 
Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#Hihi Hung
 
Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#LanLT2011
 

Similar to Localizing globalization step_bystep (20)

Hướng Dẫn Chỉnh Sửa Giao Diện Dspace – P3
Hướng Dẫn Chỉnh Sửa Giao Diện Dspace – P3Hướng Dẫn Chỉnh Sửa Giao Diện Dspace – P3
Hướng Dẫn Chỉnh Sửa Giao Diện Dspace – P3
 
Giải pháp toàn diện cho Multi Language
Giải pháp toàn diện cho Multi Language Giải pháp toàn diện cho Multi Language
Giải pháp toàn diện cho Multi Language
 
PMMNM.docx
PMMNM.docxPMMNM.docx
PMMNM.docx
 
IT120-2. Bắt đầu với Hello World
IT120-2. Bắt đầu với Hello WorldIT120-2. Bắt đầu với Hello World
IT120-2. Bắt đầu với Hello World
 
Báo cáo tuần 2
Báo cáo tuần 2Báo cáo tuần 2
Báo cáo tuần 2
 
Wordpress
WordpressWordpress
Wordpress
 
Hướng dẫn tạo Loader trong .NET - bản dịch
Hướng dẫn tạo Loader trong .NET - bản dịchHướng dẫn tạo Loader trong .NET - bản dịch
Hướng dẫn tạo Loader trong .NET - bản dịch
 
Huong dan su dung end note11112019final
Huong dan su dung end note11112019finalHuong dan su dung end note11112019final
Huong dan su dung end note11112019final
 
Giao trinh access_2003
Giao trinh access_2003Giao trinh access_2003
Giao trinh access_2003
 
Ứng dụng phần mềm Quản lý tài liệu GXD quản lý tài liệu dự án xây dựng trên 1...
Ứng dụng phần mềm Quản lý tài liệu GXD quản lý tài liệu dự án xây dựng trên 1...Ứng dụng phần mềm Quản lý tài liệu GXD quản lý tài liệu dự án xây dựng trên 1...
Ứng dụng phần mềm Quản lý tài liệu GXD quản lý tài liệu dự án xây dựng trên 1...
 
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
Tài liệu Zend Framework 2 - Cài đặt và cấu hình Zend Framework 2 - Bài 2
 
Web201 slide 1
Web201   slide 1Web201   slide 1
Web201 slide 1
 
Bài tập Lập trinh viên thiết bị di động
Bài tập Lập trinh viên thiết bị di độngBài tập Lập trinh viên thiết bị di động
Bài tập Lập trinh viên thiết bị di động
 
Bai tap thuc hanh tin ung dung2010
Bai tap thuc hanh tin ung dung2010Bai tap thuc hanh tin ung dung2010
Bai tap thuc hanh tin ung dung2010
 
Create easymoduleinphpfox
Create easymoduleinphpfoxCreate easymoduleinphpfox
Create easymoduleinphpfox
 
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì?  9 Thứ thú vị có thể làm với PHPPHP có thể làm gì?  9 Thứ thú vị có thể làm với PHP
PHP có thể làm gì? 9 Thứ thú vị có thể làm với PHP
 
Giới thiệu Android- Bài 2
Giới thiệu Android- Bài 2Giới thiệu Android- Bài 2
Giới thiệu Android- Bài 2
 
Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#
 
Nhat nghe c#
Nhat nghe   c#Nhat nghe   c#
Nhat nghe c#
 
C# cơ bản hay
C# cơ bản hayC# cơ bản hay
C# cơ bản hay
 

Localizing globalization step_bystep

  • 1. Hướng dẫn bản địa hóa chương trình I. Công đoạn chuẩn bị. Yêu cầu của bài này: Ban đầu chương trình có giao diện tiếng việt, khi người dùng click vào button thì hiển thị giao diện tiếng anh, còn khi click vào button diện tiếng việt. Hướng dẫn tạo bản địa hóa cho chương trình – Nguyễn Duy Đại https://nguyenduydai.wordpress.com thì hiển thị lại giao Trang 1
  • 2. Để làm được việc này, trước tiên bạn cần đặt tên đầy đủ cho các control như sau: Công việc chuẩn bị đã xong, giờ ta qua bước tiếp theo. Hướng dẫn tạo bản địa hóa cho chương trình – Nguyễn Duy Đại https://nguyenduydai.wordpress.com Trang 2
  • 3. II. Tạo tập tin resources. 1. Tạo tập tin Resources cho giao diện mặc định đang thiết kế trên form (ở đây là tiếng việt) - Nhấp chuột phải vào project  Add  New Item. - Trong cửa sổ Add New Item bạn chọn Resources File rồi đặt tên cho resource của mình (ở đây tôi đặt tên: myResource.resx) - Bước tiếp theo của bạn bây giờ là nhập giá trị Name, Value cho tập tin resources vừa tạo. Chú ý: + Name của resources là tên các control bạn đặt khi thiết kế + Value là thuộc tính Text của control đó. Hướng dẫn tạo bản địa hóa cho chương trình – Nguyễn Duy Đại https://nguyenduydai.wordpress.com Trang 3
  • 4. Ở đây tui sẽ đặt thế này: OK, xong rồi lưu lại. 2. Tạo tập tin Resources cho giao diện muốn chuyển đổi ngôn ngữ (ở đây là tiếng anh). - Làm tương tự như trên, chỉ khác phần nhập value cho tập tin Resources thôi. Một lưu ý rất quan trọng là tập tin resource này phải được đặt tên theo dạng: ten_tap_tin.ma_quoc_gia.resx ten_tap_tin phải giống với phần tên tập tin của resources 1 (Mã quốc gia thì bạn có thể xem ở bảng List of Culture Codes mà mình gửi cùng). Ở bài này mình sẽ đặt tên cho tập tin resources này là: Hướng dẫn tạo bản địa hóa cho chương trình – Nguyễn Duy Đại https://nguyenduydai.wordpress.com Trang 4
  • 5. myResource.en-US.resx (en-US là mã quốc gia của Mỹ, vì giao diện mình cần chuyển là tiếng anh của Mỹ). - Các giá trị trong tập tin resources thứ 2 có dạng thế này: Nhập đầy đủ thì lưu lại. OK, vậy là xong công đoạn chuẩn bị tập tin Resources, tiếp theo là giai đoạn biên dịch tập tin resources thành file .dll để sử dụng. Hướng dẫn tạo bản địa hóa cho chương trình – Nguyễn Duy Đại https://nguyenduydai.wordpress.com Trang 5
  • 6. III. Biên dịch tập tin Resources sang file .dll Bạn vào Start  All Program  Microsoft Visual Studio  Visual Studio Tools  chọn Visual Studio Command Prompt. 1. Bước 1: Chuyển đến thư mục chứa tập tin resources trong Project của bạn: Ở đây, project của mình để ở: D:Localizing_Globalization_Example Bạn gõ các lệnh sau: D:  cd D:Localizing_Globalization_Example Nếu gõ đúng thì bạn sẽ thấy nó thế này: Ok, bây giờ ta bắt tay vào biên dịch cho tập tin resources thứ nhất: (myResource.resx) 2. Biên dịch tập tin resources thứ nhất. Bạn gõ các lệnh sau: resgen myResource.resx  al /embed:myResource.resources /out:myResource.resources.dll  Hướng dẫn tạo bản địa hóa cho chương trình – Nguyễn Duy Đại https://nguyenduydai.wordpress.com Trang 6
  • 7. Nếu bạn gõ đúng thì nó sẽ hiển thị thế này: Biên dịch thành công rồi, bạn copy/cut file: myResource.resources.dll vào thư mục binDebug của Project. Xong rồi bạn qua tiếp bước 3: biên dịch tập tin resources thứ 2: myResource.en-US.resx Hướng dẫn tạo bản địa hóa cho chương trình – Nguyễn Duy Đại https://nguyenduydai.wordpress.com Trang 7
  • 8. 3. Biên dịch tập tin resources thứ hai. Thực hiện tương tự như bước 2 thôi, chỉ khác xíu ah. Các bước làm như sau: Bạn lần lượt gõ các lệnh: resgen myResource.en-US.resx  al /embed:myResource.en-US.resources /c:en-US /out:myResource.en-US.resources.dll  Nếu bạn gõ đúng thì nó sẽ hiển thị thế này: Hướng dẫn tạo bản địa hóa cho chương trình – Nguyễn Duy Đại https://nguyenduydai.wordpress.com Trang 8
  • 9. OK,vậy là bạn biên dịch xong tập tin thứ 2. Bạn có thể Close Command Prompt đi được rồi đó. Tiếp theo bạn tạo 1 thư mục: en-US trong thư mục binDebug của Project, rồi copy/cut file: myResource.en-US.resources.dll vào thư mục đó. Đến đây đã xong hết tất cả các công việc chuẩn bị ngoài lề, việc quan trọng của chúng ta bây giờ là phải viết code để thể hiện nó trên chương trình. Code nào…. IV. Code - Trước tiên bạn using 3 thư viện này vào: using System.Reflection; using System.Resources; using System.Globalization; - Bạn cần khai báo 1 biến kiểu ResoureManager để quản lý resoures của bạn. ResourceManager resource; - Trong hàm khởi tạo của Form, bạn khởi tạo cho biến resource mà bạn vừa khai báo ở trên: ResourceManager resource; Đường dẫn tới tập tin resource của bạn public frmExample() { InitializeComponent(); resource = new ResourceManager("Localizing_Globalization_Example.myResource", Assembly.GetExecutingAssembly()); } - Tiếp theo bạn viết 1 phương thức để chuyển đổi ngôn ngữ mỗi khi click vào button ngôn ngữ tương ứng (cái này nếu muốn chuyên nghiệp hơn thì dùng vòng lặp duyệt các control. Vì mình hướng dẫn chi tiết thế này để các bạn mới cũng có thể làm dc nên hơi dài dòng chút.) private void ChuyenDoiNgonNgu(String ma) { CultureInfo ci = new CultureInfo(ma); lblQuanLySV.Text = resource.GetString("lblQuanLySV",ci); lblMaSV.Text = resource.GetString("lblMaSV", ci); lblTenSV.Text = resource.GetString("lblTenSV", ci); btnThem.Text = resource.GetString("btnThem", ci); btnXoa.Text = resource.GetString("btnXoa", ci); grbDanhSachSV.Text = resource.GetString("grbDanhSachSV", ci); lsvDanhSachSV.Columns[0].Text = resource.GetString("colMaSV", ci); lsvDanhSachSV.Columns[1].Text = resource.GetString("colTenSV", ci); } - Công việc cuối cùng của bạn là gọi lại phương thức trong sự kiện click của button ngôn ngữ tương ứng:  Button Tiếng việt private void btnVi_Click(object sender, EventArgs e) { Hướng dẫn tạo bản địa hóa cho chương trình – Nguyễn Duy Đại https://nguyenduydai.wordpress.com Trang 9
  • 10. ChuyenDoiNgonNgu(""); }  Button Tiếng anh private void btnEn_US_Click(object sender, EventArgs e) { ChuyenDoiNgonNgu("en-US"); } Chú ý: với button hiển thị ngôn ngữ mặc định (ở đây là tiếng việt) thì mã bạn chuyền vào là 1 chuỗi rỗng. Còn với ngôn ngữ khác (ko phải mặc định) thị bạn phải chuyền mã quốc gia tương ứng với nước đó (Có trong bảng List of Culture Codes). Đến đây thì mọi công việc của bạn đã hoàn tất, bạn chỉ việc chạy chương trình và chiêm ngưỡng kết quả của mình thôi. Cũng ko khó khăn lắm phải ko? Bạn chịu khó làm lại 2-3 lần là thuộc làu như lòng bàn tay ấy mà. Good luck! Hướng dẫn tạo bản địa hóa cho chương trình – Nguyễn Duy Đại https://nguyenduydai.wordpress.com Trang 10