2015-05-26 15 views
8

Tôi đã dịch xong ứng dụng sang tiếng Thổ Nhĩ Kỳ bằng cách sử dụng Bản địa hóa cơ bản. Tuy nhiên, tôi cũng cần dịch mã NSLocationWhenInUseUsageDescription trong tệp Info.plist của mình. Tôi đã làm chính xác những gì tôi đã làm cho mọi thứ khác:NSLocationWhenInUseUsageĐịnh dạng bản địa hóa bằng cách sử dụng tệp .strings không hoạt động

Went File thanh tra và kiểm tra Thổ Nhĩ Kỳ:

enter image description here

Sau đó, tôi đã đi đến tài nguyên chuỗi mới và hoàn thành bản dịch của tôi bằng cách thêm phím này để các địa phương hóa file:

enter image description here

"NSLocationWhenInUseUsageDescription" = "[my Turkish description of location permissions]";

Đã lưu, biên dịch, thậm chí xóa ứng dụng khỏi thiết bị và được xây dựng lại, nhưng không có kết quả. Khi ứng dụng của tôi yêu cầu quyền vị trí, giải thích bên dưới vẫn là tiếng Anh (tôi đã thử bao gồm cả bản dịch tiếng Anh cũng như trong tệp Bản dịch cơ sở, nhưng nó không thay đổi bất kỳ thứ gì).

Mọi thứ khác là tiếng Thổ Nhĩ Kỳ, được dịch tốt. Nó chỉ là sự cho phép vị trí không dịch. Tôi cũng đã thấy How to localise a string inside the iOS info.plist file? và thêm khóa "Localized resources can be mixed" = YES (tất nhiên, là CFBundleAllowMixedLocalizations, không phải là nghĩa đen câu đó) vào bản gốc của tôi nhưng điều đó cũng không thay đổi bất cứ điều gì.

Tôi làm cách nào để khắc phục sự cố?

+0

Hãy thử làm sạch, và xóa dự án khỏi thư mục DerivedData –

+0

@DanieleCandotti làm sạch thư mục xây dựng, xóa mọi thứ bên trong DerivedData, xóa ứng dụng, khởi động lại Xcode, xây dựng lại. vẫn giống nhau. –

+0

Cố gắng loại bỏ cơ sở rồi thêm tiếng Anh –

Trả lời

2

Tôi đã bắt đầu lại. Đã xóa bản dịch, làm sạch dự án và thử lại. Nó đã làm việc. Tôi không có ý tưởng tại sao nó không ban đầu mặc dù.

+0

hoạt động trong trình mô phỏng hoặc chỉ thiết bị? –

+0

@Zak cũng vì bản chất không xác định của vấn đề tôi không thể nói điều gì đó chính xác, nhưng nếu bạn muốn ở bên an toàn, hãy đặt lại trình mô phỏng trước khi thử những điều này sẽ không làm tổn thương :) –

+0

sẽ thử điều đó. cảm ơn! –

18

Đây là những gì đã kết thúc với tôi trong Xcode 7.1.

Trước tiên, hãy chuyển đến thư mục dự án và tạo thủ công hai tệp InfoPlist.strings, thư mục đầu tiên bên trong thư mục en.lproj và thư mục thứ hai bên trong thư mục fr.lproj.

Cả hai file cần phải có nội dung sau:

NSLocationWhenInUseUsageDescription = "YOUR TEXT HERE"; 

Kể từ khi các tập tin sẽ không hiển thị tự động trong Xcode, bạn phải tự thêm cả gói dự án, điều này có thể đạt được thông qua cách kích chuột phải tên dự án trong Xcode và chọn tùy chọn Add files to X, sau đó chọn các tệp bạn vừa tạo.


Ngoài ra nếu bạn muốn kiểm tra kết quả & chắc chắn rằng mọi thứ làm việc, thay đổi Application Language trong Edit Scheme > Run > Options là không đủ.

Bạn cần phải thay đổi giả hoặc thiết bị ngôn ngữ qua Settings > General > Language & Region > iPhone Language

+0

Không Xcode tự động tạo các tệp/thư mục thích hợp khi bạn bật tính năng bản địa hóa từ trình kiểm tra? Hoặc bạn đang nói rằng có một lỗi với theo dõi của Xcode (thay đổi/xóa/tạo vv) theo cách đó? –

+1

Tôi đã thử bản địa hóa 'Info.plist' bằng cách sử dụng nút bản địa hóa trong trình đơn thanh tra nhưng không hoạt động đối với tôi, ngay cả sau khi xóa và xóa và thử lại nhiều lần. –

+0

Chắc chắn có một lỗi ở đâu đó với quá trình bản địa hóa, rất vui khi thấy bạn chưa gặp phải nó khi tạo tệp/thư mục theo cách thủ công. Sẽ thử điều đó. –

0

Vấn đề của tôi có vẻ là trường hợp nhạy cảm:

My InfoPlist.strings đã có một thấp "i" trong công cụ tìm và Xcode (infoPlist), nhưng cần phải ở trên.

Tôi đã thay đổi tên tệp và tham chiếu trong dự án Xcode nguồn và nó hoạt động (hoặc bị xóa và tạo lại với tên đúng).

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