2013-01-22 38 views
5

Tôi đã có một tệp Localizable.strings trong dự án của mình mà tôi muốn thêm nội dung bản địa hóa khác.Cách khắc phục lỗi Xcode khi tạo thư mục lproj trong thư mục en.lproj?

Vì vậy, tôi đã chuyển đến Cài đặt dự án và nhấp vào dấu "+" để thêm ngôn ngữ. Bằng cách nào đó tôi không thể làm điều đó nữa trên bảng bên phải vì không có nút "+".

Xcode tạo thư mục cn.lproj bên trong thư mục en.lproj trong hệ thống tệp lộn xộn nhưng một số thư mục lproj khác như de.lproj được tạo ở nơi chúng thuộc về.

Làm cách nào để di chuyển thư mục xx.lproj đến thư mục mà nó thuộc về mà không vi phạm mọi thứ trong Xcode? Tôi sợ để lại cho họ nơi xcode được đặt chúng có thể gây ra lỗi tại thời gian chạy vì cn.lproj không nên là một thư mục con của en.lproj.

Trả lời

1

Cách chính xác để thêm bản địa hóa sẽ thông qua ngăn Thông tin dự án của bạn trong Xcode.

Nó trông như thế này:

Here's the most obvious way to add a localization via Xcode

Tôi nghĩ rằng cố gắng để làm điều đó bất kỳ cách nào khác có thể chuốc lấy phiền (hoặc rắc rối).

+0

Câu trả lời hay nhất Mich :) –

+3

Đó là những gì tôi đã làm và Xcode đang tạo các thư mục lproj ngẫu nhiên bên trong thư mục en.lproj mà chắc chắn là không chính xác. Xem câu hỏi. – openfrog

+0

Khi tôi thêm nội dung bản địa hóa vào dự án thử nghiệm mà bạn thấy ở đó, nó sẽ thêm thư mục "' zh-Hans.lproj' "và" 'de.lproj'" vào đúng vị trí. Bạn có thể thử tạo một dự án thử nghiệm nhỏ như tôi đã làm và xem cấu trúc đó như thế nào, sau đó kiểm tra đường dẫn đến bảng phân cảnh hoặc tệp chuỗi của bạn và đảm bảo rằng tệp được bản địa hóa (và thực sự là đường dẫn tệp) từ dự án hiện tại của bạn trông giống như những người trong dự án thử nghiệm được tạo nhanh chóng. –

0

Tôi nghĩ, bạn nên có thư mục en.lpoj cho tiếng Anh. Bây giờ, nếu bạn nhấp vào "+" và chọn xx làm ngôn ngữ, bạn sẽ nhận được xx.lpoj khác gần tên cũ (trên cùng cấp độ để nói) và KHÔNG ở bên trong en.lproj. Vì vậy, hãy xóa sai thư mục con này và thực hiện lại ...

+0

Đã làm lại nhiều lần nhưng một số ngôn ngữ nhất định chỉ tiếp tục được tạo bên trong en.lproj. – openfrog

3

Vì nó hóa ra đó là lỗi Xcode, nhưng may mắn thay nó có thể được giải quyết.

Bước đầu tiên là sao lưu dự án của bạn. Sau đó di chuyển các thư mục lproj được đặt sai trong en.lproj và nếu bạn muốn, hãy đặt tất cả chúng trong một thư mục con được bản địa hóa. Sau đó xóa tất cả các tệp liên kết bị hỏng (màu đỏ) khỏi Điều hướng dự án. Đối với các tệp xếp chồng có mũi tên, bạn sẽ phải xóa mục gốc. Không chọn "Chuyển vào Thùng rác". Sau đó, hãy đảm bảo trong Cài đặt dự án bạn có tất cả các bản địa hóa mà bạn muốn. Kéo sobfolder "đã bản địa hóa" chứa tất cả các thư mục lproj vào Xcode bất cứ nơi nào bạn muốn, và đảm bảo nó được thêm vào đích hiện tại (Thêm vào dấu kiểm mục tiêu phải được kiểm tra trong danh sách). Trong trường hợp của tôi, mọi thứ đều hoạt động như mong đợi sau khi thực hiện việc này. Và như là một hiệu ứng phụ tốt đẹp, tôi đã loại bỏ các tập tin xếp chồng khó chịu với mũi tên và thay vào đó có một cấu trúc nhóm rất rõ ràng bao gồm một thư mục bản địa và một vài lproj mà làm cho ý nghĩa nhiều hơn với tôi.

+0

Đây là câu trả lời hay nhất. Xcode bắt đầu sửa chữa dự án của tôi sau khi thêm ngôn ngữ thứ.Tôi đã trở lại cam kết 'tốt' cuối cùng trong git, thêm ngôn ngữ tiếp theo, nhưng với tối thiểu là các tập tin (2 Storyboards). Sau đó, tôi đã sao chép nội dung của thư mục tiếng Anh vào thư mục lproj mới và kéo thư mục đó vào Xcode như bạn đã mô tả. Đó không phải là đẹp, nhưng nó hoạt động. Tôi vẫn có một số tài sản còn lại trong chế độ xếp chồng lên nhau (với mũi tên i18n), nhưng tôi sẽ để chúng ở đâu ... Tôi đã cố gắng hàng giờ để tìm một giải pháp tốt hơn, nhưng Xcode chắc chắn thất bại và tôi không thể tìm ra lý do tại sao. – brainray

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