Tôi đang nhận được cảnh báo trong Android Studio về các chuỗi chưa được dịch - nó đang nói với tôi rằng chúng chưa được dịch sang tiếng Anh. Điều này dường như là do tôi có một thư mục tài nguyên "en-rGB". Nhưng tôi đã cố làm theo các hướng dẫn trong lint để chỉ định ngôn ngữ mặc định, nhưng điều này không hiệu quả.
Tôi có các tệp String.xml sau đây:
values/strings.xml
:
<resources xmlns:tools="http://schemas.android.com/tools"
tools:locale="en">
<string name="string1">Howdy</string>
<string name="string2">Howdy</string>
</resources>
values-en-rGB/strings.xml
:
<resources>
<string name="string1">Hello</string>
</resources>
values-fr/strings.xml
:
<resources>
<string name="string1">Bonjour</string>
<string name="string2">Bonjour</string>
</resources>
values-fr-rCA/strings.xml
:
<resources>
<string name="string2">Bonjour</string>
</resources>
Kết quả dự kiến: Không nên có cảnh báo, cả hai chuỗi được dịch sang cả tiếng Anh và tiếng Pháp
Kết quả thực tế: Lint sẽ cảnh báo về chuỗi2, nói rằng nó không được dịch sang tiếng Anh.
Lưu ý, tôi đã bao gồm fr-rCA để cho thấy rằng đó không phải là một khu vực. Thật là hạnh phúc khi nó được dịch sang tiếng Pháp "không đăng ký", nó cũng không cần phải dịch sang tiếng Canada tiếng Pháp. Trong trường hợp này, nó sẽ không cảnh báo về chuỗi1, mặc dù nó không được dịch sang tiếng Canada, vì nó đã được dịch sang tiếng Pháp.
Tôi không thể thay đổi thư mục tài nguyên chính thành tiếng Anh ( values-en
), vì điều đó sẽ dẫn đến lỗi không có tài nguyên mặc định. Cái nào đúng.
Tôi không muốn loại bỏ cảnh báo nói chung, vì tôi đang dự định thêm các ngôn ngữ khác và tôi muốn cảnh báo xuất hiện cho các chuỗi không được dịch sang các ngôn ngữ khác mà tôi đã đưa vào.
Những gì tôi đang theo là cách chính xác để thông báo cho ngôn ngữ mặc định. Tôi đã thực hiện theo hướng dẫn cho cảnh báo "Bản dịch chưa hoàn chỉnh":
Bạn có thể cho lint (và các công cụ khác) ngôn ngữ nào là ngôn ngữ mặc định trong thư mục res / value / của bạn bằng cách chỉ định các công cụ: locale = "ngôn ngữ mã hóa" cho phần tử gốc trong tệp tài nguyên của bạn. (Tiền tố công cụ đề cập đến khai báo không gian tên http://schemas.android.com/tools .)
Nhưng điều này dường như không hoạt động. Tôi đang làm sai, hay đây là một vấn đề với lint?
strings.xml
các tệp nên có tất cả các mục làm mặc định values/strings.xml
, bất kể giá trị có cần dịch hay không.