Tôi có một ứng dụng dịch trong 3 ngôn ngữ: Anh, Đức, Ba LanLàm cách nào để tránh sự cố do thiếu các mục nhập chuỗi?
Vì vậy, tôi có ba thư mục cho các ngôn ngữ trong dự án:
values
strings.xml
values-en
strings.xml
values-de
strings.xml
values-pl
strings.xml
tôi đã nhận ra rằng nếu tôi đặt tất cả các chuỗi vào thư mục giá trị và có một số chuỗi bị thiếu trong phiên bản tiếng Ba Lan mà ứng dụng gặp sự cố khi truy cập các chuỗi bị thiếu trong phiên bản tiếng Ba Lan.
Tôi đã mong đợi rằng hệ thống chỉ nhận được chuỗi từ thư mục giá trị mặc định nếu nó không tìm thấy nó trong thư mục values-pl.
Có cách nào để nắm bắt các lỗi treo chuỗi có khả năng bị thiếu không? EVen nếu tôi có thể nhận được một cảnh báo trong trình biên dịch rằng chuỗi trong bất kỳ ngôn ngữ là mất tích sẽ được OK?
EDIT VÀ BỔ SUNG
Trong thực tế chuỗi khác đã mất tích trong mặc định quá .... do đó, nhờ câu trả lời/bình luận!
Nhưng bây giờ tôi cũng đã thử nghiệm trường hợp có một chuỗi chỉ đơn giản là thiếu trong tệp strings.xml mặc định chỉ NHƯNG hiện diện trong tất cả các tệp khác. Tôi không nhận được bất kỳ cảnh báo hoặc bất cứ điều gì khác. Vì vậy, trong trường hợp này nếu TẤT CẢ các chuỗi có mặt trong de, en, pl nhưng một là thiếu trong mặc định, sau đó ứng dụng bị treo ở Trung Quốc ví dụ (tôi hiểu tất nhiên vì mặc định là mất tích).
NHƯNG những gì làm phiền tôi là tôi không tìm thấy bất kỳ cách nào để kiểm tra tính đầy đủ của tất cả các chuỗi được tham chiếu trong mã. Đây là cách tôi tiếp cận chuỗi mất tích:
context.getString(R.string.MYTRING_abc),
Từ các expiriens của tôi nếu thiếu chuỗi dự án không biên dịch. Tôi đang sử dụng nhật thực juno. – NickF
Nếu bạn kiểm tra ứng dụng của mình, bằng mọi ngôn ngữ có sẵn, bạn sẽ không phải đặt câu hỏi này. Đối với tôi, điều đó không có lý, tại sao bạn không chắc chắn rằng các chuỗi có sẵn trước khi xuất bản ứng dụng của bạn. Không phải tất cả các trường hợp ngoại lệ nên được nắm bắt, chúng phải được xử lý trước khi chúng có thể xảy ra. – Darwind
"Tôi có một ứng dụng được dịch sang 3 ngôn ngữ: tiếng Anh, tiếng Đức, tiếng Ba Lan" - không, bạn có ứng dụng của mình được dịch sang bốn ngôn ngữ: tiếng Anh, tiếng Đức, tiếng Ba Lan và bất kỳ ngôn ngữ nào trong thư mục 'res/values /' của bạn. Nếu bạn thực sự chỉ có ứng dụng của mình được dịch sang ba ngôn ngữ, thì một trong những ngôn ngữ đó cần phải chuyển sang 'res/values /'. Bạn muốn 'res/values /' có giá trị mặc định cho mọi tài nguyên chuỗi, trong bất cứ thứ gì bạn muốn xem xét ngôn ngữ mặc định của mình. – CommonsWare