Lint: Làm thế nào để bỏ qua lỗi <key> không được dịch trong <ngôn ngữ> lỗi?


189

Tôi không thể biên dịch / gỡ lỗi ứng dụng Android của chúng tôi, vì các tệp bản địa hóa chưa hoàn hảo.

Công cụ xác thực IDE của tôi Lint tạo ra lỗi:

newCardsOrderVals không được dịch trong ar, bg, ca, cs

Biên dịch / cài đặt / chạy với Ant hoạt động tốt, nhưng tôi muốn sử dụng IDE của mình để dễ gỡ lỗi.

Có cách nào để tắt kiểm tra cụ thể này, hay lý tưởng nhất là làm cho nó một cảnh báo chứ không phải là một lỗi?

Tôi hiểu rằng trước khi phát hành, chúng tôi sẽ thực sự cần phải có các tệp bản địa hóa ngay, nhưng hiện tại nó không phải là ưu tiên vì bản thân màn hình đang được sửa đổi rất thường xuyên.


1
Có cách nào để định cấu hình tất cả các ngôn ngữ được gắn cờ là "không được dịch không?" Tôi nhận được các lỗi như "es, he và iw". Tại sao tôi có được những ngôn ngữ đó? Làm cách nào để định cấu hình ứng dụng Android của tôi để chỉ giới hạn cài đặt thành "en"?
inder

@inder: Có thể vì bạn có các thư mục như "value-he", v.v. trong thư mục res / của bạn?
Nicolas Raoul

1
Không, tôi không có bất kỳ thư mục như vậy. Chỉ, giá trị, bố trí, và drawable.
ấn định

7
es, anh ấy và tôi đến từ thư viện SDK của Facebook.
madej

2
Đây là một lỗi trong Android Lint: code.google.com/p/android/issues/detail?id=50525
altumano

Câu trả lời:


348

Studio Android:

  • "Tệp"> "Cài đặt" và nhập "MissingTranslation" vào hộp tìm kiếm

Nhật thực:

  • Windows / Linux: Trong "Cửa sổ"> "Tùy chọn"> "Android"> "Kiểm tra lỗi Lint"
  • Mac: "Eclipse"> "Tùy chọn"> "Android"> "Kiểm tra lỗi Lint"

Tìm MissingTranslationdòng và đặt nó Warningnhư được thấy dưới đây:

Thiếu bản dịch, không được dịch trong


2
... Đó là trong "Cửa sổ"> "Tùy chọn"> "Android"> "Kiểm tra lỗi Lint"
Ollie Bennett

2
Nó hữu ích, nhưng tôi đã không gặp vấn đề này trong một thời gian rất dài, cho đến khi nó đột nhiên xuất hiện. Và tôi không biết tại sao.
pktangyue

Cảm ơn bài viết có giá trị của bạn
Pawan asati

FYI trong Android Studio, đó là "Tệp"> "Cài đặt" và "MissingTranslation" vào hộp tìm kiếm.
ngang hàng

86

Bạn có thể đặt thuộc tính translitable = "false" theo định nghĩa như sau:

<string name="account_setup_imap" translatable="false">IMAP</string>

Để biết thêm thông tin: http://tools.android.com/recent/non-translatablestrings


1
Tôi nói "các tập tin nội địa hóa không được hoàn thiện chưa ". Họ đang được lấp đầy từng chút một. translitable = "false" sẽ ngăn bất kỳ ai dịch.
Nicolas Raoul

3
Mặc dù câu trả lời không liên quan trực tiếp đến câu hỏi, tôi đoán, nó cung cấp giải pháp tuyệt vời cho những người như tôi đã tìm thấy chủ đề này khi Google "làm thế nào để không lo lắng về hằng số / tham số ứng dụng của tôi". Cảm ơn bạn, efor18!
aka_sh

83

Để bỏ qua điều này trong bản dựng lớp, hãy thêm phần này vào phần android trong tệp bản dựng của bạn:

lintOptions {
   disable 'MissingTranslation'
}

2
Cảm ơn bạn rất nhiều, theo nghĩa đen đã giúp tôi tiết kiệm được nhiều ngày để tìm ra tất cả các chuỗi chính xác cho sản xuất.
D-Kent

Thật tuyệt, điều này đã làm được
Mirko

Đã thêm nó vào mô-đun ứng dụng của tôi đã gửi nó cho tôi.
Sao Thủy

23

Điều này sẽ khiến Lint bỏ qua lỗi dịch bị thiếu cho TẤT CẢ các chuỗi trong tệp, tuy nhiên các tệp tài nguyên chuỗi khác có thể được xác minh nếu cần.

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" 
    tools:ignore="MissingTranslation">

Đây có lẽ là cách chính xác nhất để tiến hành, mà không vô hiệu hóa lint cho tất cả dự án
MatPag

11

Nếu bạn muốn tắt các cảnh báo về các chuỗi cụ thể, bạn có thể sử dụng như sau:

chuỗi DOM

<?xml version="1.0" encoding="utf-8"?>
<resources>    

    <!--suppress MissingTranslation -->
    <string name="some_string">ignore my translation</string>
    ...

</resources>

Nếu bạn muốn cảnh báo về các chuỗi cụ thể thay vì lỗi, bạn sẽ cần xây dựng quy tắc Lint tùy chỉnh để điều chỉnh trạng thái nghiêm trọng cho một điều cụ thể.

http://tools.android.com/tips/lint-custom-rules


1
+1 Cách tốt để làm điều đó một lần cho tất cả, để tất cả các nhà phát triển của nhóm không phải sửa đổi cài đặt IDE của họ. Bất kỳ cách nào để làm cho nó một cảnh báo, thay vì đàn áp hoàn toàn?
Nicolas Raoul

Bạn có thể xây dựng quy tắc Lint tùy chỉnh để điều chỉnh trạng thái mức độ nghiêm trọng cho một điều cụ thể. Có một ví dụ ở đây: tools.android.com/tips/lint-custom-rules
Eduko


8

thêm các dòng trong tệp /res/values.xml của bạn vào tab gốc tài nguyên như thế này:

<resources
xmlns:tools="http://schemas.android.com/tools" 
    tools:locale="en" tools:ignore="MissingTranslation">

công cụ: ngôn ngữ đặt ngôn ngữ địa phương thành tiếng Anh, sau này không cần dịch ngôn ngữ cho tất cả các chuỗi tài nguyên và công cụ: bỏ qua Lint để tìm các bản dịch bị thiếu của các giá trị chuỗi tài nguyên.


6

Thêm sau vào tập tin lớp của bạn trong phần Android

    lintOptions {
       disable 'MissingTranslation'
    }

5

Ngoài ra,

Không phụ thuộc vào dự án, Tùy chọn Eclipse.
Trong Mac, Eclipse> Tùy chọn

nhập mô tả hình ảnh ở đây


3

Một cách tiếp cận khác là chỉ ra các ngôn ngữ bạn định hỗ trợ và lọc phần còn lại bằng cách sử dụng tùy chọn 'resConfigs' với Gradle.

Kiểm tra câu trả lời khác này để biết chi tiết

Điều này tốt hơn, tôi nghĩ, bởi vì bạn không phải hoàn toàn bỏ qua các lỗi dịch thuật hợp pháp cho các ngôn ngữ bạn thực sự muốn hỗ trợ



1

Nhiều người trong số họ có một câu trả lời làm việc khác nhau, và tôi cũng có những lỗi tương tự tôi làm cho nó bỏ qua bằng cách làm như sau với nhật thực.

  1. bấm vào Windows
  2. bấm vào sở thích
  3. chọn android> Kiểm tra lỗi Lint.
  4. nhấp vào bỏ qua Tất cả> Áp dụng> Ok.

Đó là nó.


2
điều này sẽ bỏ qua tất cả các ưu đãi lint. Không chỉ có bản dịch bị thiếu
Luciano Rodríguez

1

Sau đây làm việc cho tôi.

  • Bấm vào Windows
  • Bấm vào sở thích
  • Chọn android> Kiểm tra lỗi Lint.
  • Tìm và chọn kiểm tra Lint có liên quan và
  • Đặt mức độ nghiêm trọng thành 'Bỏ qua' (ở dưới cùng bên phải)
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.