Silverlight 4 + RIA Services – Ready for Business: Bản địa hóa ứng dụng cho doanh nghiệp


Để tiếp tục loạt bài, hãy cùng bản địa hóa ứng dụng của chúng ta.  Hiện nay, việc hỗ trợ chỉ một ngôn ngữ trong ứng dụng cho doanh nghiệp không còn đủ nữa.   Nhiều ứng dụng kinh doanh trong thế giới thực cần hỗ trợ cho nhiều ngôn ngữ khác nhau.  Để biểu diễn cho việc này, ta hãy cùng xem qua việc bản địa hóa có trong Silverlight Business Application Template.

Bạn có thể tải về toàn bộ chương trình tại đây.

Ở đây là phiên bản tiếng Anh cùng với một phiên bản được bản địa (chú ý là tiếng Hebrew được hiển thị chính xác từ phải sang trái):

image

image

Hãy bắt đầu bằng việc tạo ra một Silverlight Business Application. Chú ý là có một ứng dụng server và một ứng dụng client trong cùng solution. Các chuỗi cần thiết cho cả server và client được đặt phía server và những cái chỉ cần cho client được đặt phía client. Ta hãy bắt đầu với server.

image

Trong thư mục Resources ta thấy có hai tập tài nguyên. Một là các thông báo lỗi và cái còn lại chứa các thông tin chi tiết cho việc đăng nhập. Chúng được lưu trữ trong các file resx dưới dạng xml. Có nhiều công cụ bản địa hóa bên ngoài VS hỗ trợ định dang này. Ở đây tôi sẽ biểu diễn việc bản địa trong VS.

Ta cần làm một bước cài đặt trước khi có thể bắt đầu. Bạn cần chỉ cụ thể cho Visual Studio biết những ngôn ngữ nào sẽ được hỗ trợ trong ứng dụng Silverlight. Không may, điều này không thể làm được  trong cửa sổ Project Properties của VS, vậy nên bạn cần chỉnh sửa trực tiếp file csproj của ứng dụng Silverlight.

Nhấp phải chuột lên dự án Silverlight và chọn Unload.

image

Nhấp phải chuột lần nữa và chọn ““Edit MyApp.csproj”

image

Sau đó tìm thuộc tính SupportedCultures và thêm một danh sách đầy đủ các văn hóa mà bạn muốn hỗ trợ.

image

Sau đó nhấp phải chuột lên dự án và chọn Reload project.

Ok, hoàn thành việc thiết đặt, giờ ta sẽ thực sự bản địa hóa ứng dụng.

Bước đầu tiên là tạo ra một bản sao của các file với phần mởi rộng [Local].resx. Ví dụ, tôi tạo một file tên “ErrorResources.he.resx”. Ở đây có một danh sách đầy đủ các mã văn hóa.

Sau đó mở file trong VS và bạn sẽ thấy một cửa sổ soạn thảo rất thân thiện. Chỉ đơn giản thay thế các văn bản tiếng Anh với các văn bản tương ứng trong ngôn ngữ mà bạn muốn hỗ trợ.

Dưới đây là hình ảnh trong lúc đang thực hiện dịch:

image

Lặp lại cho file RegistrationDataResources.resx.

Tiếp theo ta cần làm cho các file *.he.resx có thể truy cập được từ client. Đầu tiên hãy tìm đến thư mục chứa tài nguyên của client. Nhớ là các tài nguyên tiếng Anh đã được liên kết sẵn đến đây. Ta cần thêm các file Hebrew mà ta vừa tạo.

image

Nhấp phải chuột và chọn thêm một mục đã tồn tại:

image

Sau đó duyệt đến file ErrorResources.he.resx trong ứng dụng web.

image

Rồi chọn “Add As Link” (nhấn vào hình tam giác ngược bên phải nút Add để thấy mục này)

image

Lặp lại cho các file bản địa hóa khác trên client.

image

Trong ApplicationStrings.resx và ApplicationStrings.he.resx. Tôi thêm một giá trị để chỉ ra hướng của văn bản.

image

Sau đó tôi tạo ra hai thay đổi nhỏ vào các template để dùng giá trị này. Trong mỗi cửa sổ, tôi sẽ cần đặt giá trị cho hướng văn bản.

trong Main.xaml:

<UserControl
  x:Class="LocalizedBusinessApplication.MainPage"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
  FlowDirection="{Binding Path=ApplicationStrings.FlowDirection, Source={StaticResource ResourceWrapper}}" >

Và trong View\LoginRegistrationWindow.xaml

<controls:ChildWindow
  x:Class="LocalizedBusinessApplication.LoginUI.LoginRegistrationWindow"
  x:Name="childWindow"
  xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
  Width="400"
  Title="{Binding Path=ApplicationStrings.LoginWindowTitle, Source={StaticResource ResourceWrapper}}"
  Style="{StaticResource LogRegWindowStyle}"
  FlowDirection="{Binding Path=ApplicationStrings.FlowDirection, Source={StaticResource ResourceWrapper}}"
  Closing="LoginWindow_Closing">

Giờ ta đã sẵn sàng để chạy ứng dụng.

image

Nó trong rất tuyệt, nhưng toàn bộ là tiếng Anh… giờ làm sao ta có thể kiểm tra được việc bản địa hóa này? Đơn giản là thay đổi ngôn ngữ trong trình duyệt của bạn.

Trong IE đó là Tools\Internet Options

image

Hãy đảm bảo là Hebrew nằm đầu tiên. Sau đó nhấn nút refresh trên trang và…

image

Cái tôi đã trình bày ở đây chính là cách bản địa hóa một ứng dụng Silverlight dùng Business Application Template.

Enjoy!

2 thoughts on “Silverlight 4 + RIA Services – Ready for Business: Bản địa hóa ứng dụng cho doanh nghiệp

  1. Chào anh, cho em hỏi có cách nào để thêm 1 combobox trên màn hình chính của ứng dụng silverlight (ví dụ phần Fotter của Main), sau đó cho chọn ngôn ngữ trong đó thay vì phải vào Internet Options không?

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s