2014-11-09 17 views
15

Trong ứng dụng của tôi, tôi có ba ngôn ngữ. LaunchScreen.xib cũng có ba localzations.xcode 6 iOS launchScreen.xib vấn đề bản địa hóa

enter image description here

Giống như localizable.strings Tôi đã thay đổi văn bản cần được sử dụng bởi các đối tượng ID.

enter image description here

Khi tung ra App có luôn luôn là nội dung tiếng Anh được sử dụng, không phải là cục bộ. Và có một "X" int ông biểu tượng của LaunchScreen.xib và LaunchScreen.xib (Base). Tại sao? Làm thế nào tôi có thể giải quyết vấn đề đó?

+0

bạn đang thử nghiệm ứng dụng trên trình mô phỏng? – NullData

+0

cả thiết bị mô phỏng và thiết bị (iPhone/iPad) - và các cài đặt ngôn ngữ và khu vực chung khác nhau. – Christian

+1

Tôi không nghĩ LaunchScreen.xib đang làm việc với Quốc tế hóa. Điều duy nhất tôi làm việc là xem trước trong Xcode. Có lẽ Apple sẽ sửa lỗi này trong tương lai gần. – Peter

Trả lời

-1

Tôi gặp vấn đề tương tự, sau đó tôi đã sử dụng MCLocalization nó rất dễ tích hợp trong ứng dụng của bạn. Nó làm việc hoàn hảo đối với tôi

+0

làm cách nào để giúp bản địa hóa màn hình khởi chạy? Đây không phải là một giải pháp. – Fawkes

7

Câu trả lời chính xác cho riêng bản địa hóa màn hình khởi động là ở đây:

Localization of Default.png is not working

Và đối với shortcutting tôi sẽ dán các bước chính:

  1. Tạo InfoPlist. tệp chuỗi. (File, New, Resource, Strings)
  2. Bản địa hóa và thêm khóa "UILaunchStoryboardName" với giá trị là tên của xib bạn muốn hiển thị làm màn hình khởi chạy cho bản địa hóa đó.

Ví dụ: cho phiên bản tiếng Tây Ban Nha, thêm khóa màn hình khởi chạy và tên của bạn cho phiên bản tiếng Tây Ban Nha của màn hình khởi chạy của bạn trong InfoPlist.strings mới được tạo bản địa hóa cho tiếng Tây Ban Nha.

"UILaunchStoryboardName" = "Launch_es";

+0

Tôi không thể làm việc này. Các tệp xib có trong Base.lproj không? –

+1

@LiauJianJie Không, chúng không nằm trong bất kỳ thư mục "bản địa hóa" nào. Bạn nên tạo chúng như bạn sẽ tạo ra bất kỳ xib thông thường nào khác. Bí quyết là bạn về cơ bản bản địa hóa tập tin cài đặt của bạn -> "Info.plist". Nhưng như chúng ta biết, bạn không thể bản địa hóa "Info.plist" theo cách thông thường để đánh dấu các ngôn ngữ trong Xcode. Để bản địa hóa "Info.plist", bạn phải tạo một tệp "InfoPlist.strings" một cách rõ ràng. Và sau đó để bản địa hóa "InfoPlist.strings" mới được tạo ra. Và chỉ từ bây giờ, Xcode sẽ tìm kiếm các thiết lập dự án của bạn một cách cục bộ, do đó tìm kiếm một tên cục bộ của launchScreen. – Fawkes

+1

Nếu bất kỳ ai gặp sự cố khi làm việc này, hãy kiểm tra xem bạn có đang ngớ ngẩn như tôi không bằng cách đặt ngôn ngữ trong sơ đồ thay vì thiết bị/trình giả lập và mong muốn nó hoạt động. –

0

Tôi muốn mô tả rõ ràng về cách khắc phục theo thông tin trước đó. Tôi gặp vấn đề tương tự và không thể tìm thấy mô tả rõ ràng. Tôi có Xcode 8.2.1 và Swift 3.0 ngay bây giờ. Cuối cùng: Tôi đã sao chép LaunchScreen.storyboard và thêm nó vào dự án với tên Launch_ru.storyboard. Sau khi tôi đã bản địa hóa Launch_ru.storyboard. Tiếp theo cần chọn nó và thêm Base Localization. Tiếp theo cần phải thêm để thêm vào trong tập tin địa phương chính InfoPList.string key "UILaunchStoryboardName" = "Launch_ru"; nơi Launch_ru là tên của Launch_ru.storyboard mới của tôi. Ba hành động này đã khắc phục được sự cố của tôi.

0

Fawkes' answer là một trong những quyền:

  1. Tạo InfoPlist.strings tập tin.(File, New, Resource, Strings)
  2. Bản địa hóa và thêm khóa "UILaunchStoryboardName" với giá trị là tên của xib bạn muốn hiển thị làm màn hình khởi chạy cho bản địa hóa đó.

Một điều cần lưu ý là, tất cả các storyboards màn hình khởi động mà bạn sẽ kết thúc có cần phải được sủa là "nội địa hóa cơ sở" trong Inspector Files:

enter image description here

Nếu bạn vô tình đánh dấu chúng là bản địa hóa cho một ngôn ngữ khác, nó sẽ không hoạt động (nó sẽ chỉ hiển thị một màn hình đen!)

Các vấn đề liên quan