Vấn đề:
Tôi sắp triển khai ngôn ngữ bản địa cho một ứng dụng ipad đã rất lớn được xây dựng bằng cách sử dụng sencha touch bọc trong thẻ điện thoại. Tôi có bản dịch tiếng Anh và tiếng Tây Ban Nha trong các tệp json.Phonegap/Sencha Ngôn ngữ bản địa hóa
Những gì tôi đang lập kế hoạch về Làm:
tôi có kế hoạch để tải các tập tin json vào một cửa hàng sencha touch, tạo ra một đối tượng toàn cầu. Sau đó, ở mỗi nơi mà tôi gọi văn bản được hiển thị, tôi sẽ thay thế văn bản bằng một cuộc gọi đến đối tượng chung.
Câu hỏi của tôi (s):
Có một cách dễ dàng hơn để thực hiện nội địa hóa ngôn ngữ với việc thiết lập của tôi?
Tôi có gặp phải vấn đề với công cụ sencha bản địa (như trình chỉnh sửa ngày) không?
Khi tải/tải lại file ngôn ngữ json, tôi sẽ có hiệu suất vấn đề (đòi hỏi một webview reload ?, đối tượng sencha vấn đề thay đổi kích thước, vv)
chỉnh sửa 1: viết liên quan Thông tin:
Đối với những người đi xuống con đường này, nó nhanh chóng trở nên hữu ích để viết một plugin phonegap đơn giản để cài đặt ngôn ngữ của thiết bị ipad/iphone vào javascript của bạn. Điều này đòi hỏi một plugin, mà sẽ giống như thế này:
Javascript:
phần 1:
PhoneGap.exec("PixFileDownload.getSystemLanguage");
phần 2 (callback Function):
setLanguage(returnedLanguage)
{
GlobalVar.CurrentLanguage = returnedLanguage; //GloablVar.CurrentLanguage already defined
}
Mục tiêu C:
-(void)getSystemLanguage:(NSMutableArray*)paramArray withDict:(NSMutableDictionary*)options
{
/*Plugin Details
PhoneGap.exec("PixFileDownload.getSystemLanguage");
Returns Language Code
*/
NSUserDefaults* defs = [NSUserDefaults standardUserDefaults];
NSArray* languages = [defs objectForKey:@"AppleLanguages"];
NSString *language = [languages objectAtIndex:0];
NSLog(@"####### This is the language code%@",language);
NSString *jsCallBack;
jsCallBack = [NSString stringWithFormat:@"setLanguage('%@');",language];
[self.webView stringByEvaluatingJavaScriptFromString:jsCallBack];
}
chỉnh sửa 2: nhân vật mã hóa Khi thêm ký tự ngôn ngữ bổ sung cho một dự án sencha (hoặc bất kỳ dự án webview PhoneGap), đảm bảo rằng bạn có mã hóa đúng quy định trong tập tin chỉ mục. Đây là thẻ tôi cần.
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
Hãy xem câu trả lời này về cách tải nội dung bản địa hóa làm ghi đè. Đây là cách Sencha làm điều đó để bản địa hóa các widget tích hợp. http://stackoverflow.com/questions/8226173/sencha-touch-localization-use-a-store-or-a-global-json-object/8227539#8227539 – Stuart