2013-05-07 35 views
5

Xin chào, tôi rất nhiều bị kẹt trong quá trình bản địa hóa trên ios.cách bản địa hóa các chuỗi nhãn trong ios cho người mới bắt đầu

heres những gì tôi hiểu, làm thế nào để đi đến nhà thám hiểm dự án và thiết lập tin cục bộ cơ sở cho các quốc gia khác nhau,

làm thế nào để tạo một tập tin chuỗi và đặt nó vào được bản địa sang một trong những nước cụ thể được chọn trong cơ sở nội địa hóa

như đơn giản hóa Trung Quốc

cặp giá trị quan trọng và làm thế nào để tương ứng với từ "HELLO WORLD" = "một số ngôn ngữ khác"; với tệp chuỗi được bản địa hóa

cách ứng dụng có nhãn đơn giản với thế giới viết xin chào khi biên dịch không thay đổi sang tiếng Trung trong trình mô phỏng tiếng Trung.

heres nơi tôi nghĩ rằng im đi sai.

tôi nghĩ rằng tôi cần kết nối các chuỗi trên màn hình với các chuỗi chứa trong tệp chuỗi được bản địa hóa của tôi.

và tôi có tạo một tệp chuỗi riêng biệt cho từng ngôn ngữ không?

Tôi đang tìm cách tạo một cuống rất đơn giản của một ứng dụng không chứa gì ngoài một vài nhãn được dịch sang các ngôn ngữ khác nhau. Vì vậy, tôi có thể tìm hiểu cách kết nối và làm việc để tôi có thể sử dụng nó ở nơi khác.

có bảng phân cảnh cho tiếng Trung, tôi có phải làm bất kỳ công việc nào không? hoặc nó có để trống không?

sau giờ làm tài liệu đọc tôi dường như được đi vòng vòng, im không ấn tượng với tài liệu hướng dẫn táo về vấn đề này nghĩ cái gì đó thiếu nó,

Trả lời

5

Đối nội địa hóa, bạn cần làm:

  1. Thêm tập tin .strings khác nhau cho mỗi ngôn ngữ
  2. Thêm giá trị chính cho mỗi tập tin ngôn ngữ
  3. Sử dụng:

NSLocalizedString(yourKey, nil);

hoặc

[[NSBundle mainBundle] localizedStringForKey:(yourKey) value:@"" table:nil] 

Để nhận được chuỗi cục bộ của chính thông qua.

Hướng dẫn:

  1. Localization in iOS apps made simple
  2. iPhone Apps Localization Guide
  3. Preparing your iOS app for localization in Xcode
+0

đưa tôi cả ngày nhưng tôi đã thực hiện được nhờ, –

2

Làm cho nó khá

Đối với Swift, có giải pháp tốt hơn làm cho bản địa hóa của bạn tốt hơn một chút - không phải là lộn xộn. Bạn có thể sử dụng phần mở rộng sau:

extension String { 

    var localized: String { 
     return NSLocalizedString(self, tableName: nil, bundle: NSBundle.mainBundle(), value: "", comment: "") 
    } 


    func localizedWithComment(comment:String) -> String { 
     return NSLocalizedString(self, tableName: nil, bundle: NSBundle.mainBundle(), value: "", comment: comment) 
    } 
} 

Bây giờ, bất cứ khi nào bạn muốn một cái gì đó cục bộ, bạn có thể chỉ yêu cầu nó như sở hữu chuỗi:

let text = "my-localization-key".localized 

Và nó sẽ nhận được chuỗi nội địa dựa trên ngôn ngữ hệ thống hiện tại của bạn/miền địa phương.

Vài lời khuyên

Nếu bạn có dự án lớn hơn, nó là giá trị xem xét các nhà quản lý, có thể xử lý việc xuất khẩu nội địa hóa/thêm nhiều ngôn ngữ mới cho bạn. Tôi ví dụ sử dụng Crowdin - nhưng bạn có thể tìm thấy một số dịch vụ hấp dẫn hơn. Điều tuyệt vời là bạn không phải làm tất cả mọi thứ bằng tay, bạn chỉ cần chèn phím/bản dịch và xuất khẩu được thực hiện cho bạn, cho tất cả các ngôn ngữ mà bạn có.

Ngoài ra, hãy thực hiện theo cách đặt tên tốt cho khóa của bạn. Dựa trên những gì tôi đã nhìn thấy người làm/kinh nghiệm của tôi, tôi nghĩ rằng đó là khôn ngoan để phím tên gọi theo mặt logic thành phần/mô-đun, nơi họ thuộc về, ví dụ:

"Profile.NavigationBar.Title" = "Profile"; 
"Profile.NavigationBar.Button.Edit" = "Edit; 

Bằng cách này, bạn có thể thấy ngay những gì và nơi bạn sẽ tìm thấy nó.

Cuối cùng, bản địa hóa nói chung là nỗi đau lớn vì số lượng lỗi mà bạn có thể làm. Có máy phát có thể tạo mã thực tế ra khỏi bản địa hóa của bạn, do đó trình biên dịch sẽ kiểm tra nó cho bạn. You can get it on GitHub.

Chúc may mắn!