Lint: Bagaimana mengabaikan "<key> tidak diterjemahkan dalam kesalahan <language>"?


189

Saya tidak dapat mengkompilasi / debug aplikasi Android kami, karena file pelokalan belum sempurna.

Alat validasi IDE saya Lint membuat kesalahan yang mengatakan:

newCardsOrderVals tidak diterjemahkan dalam ar, bg, ca, cs

Mengkompilasi / menginstal / menjalankan dengan Ant berfungsi dengan baik, tetapi saya ingin menggunakan IDE saya untuk memudahkan debugging.

Apakah ada cara untuk mematikan pemeriksaan khusus ini, atau idealnya menjadikannya peringatan daripada kesalahan?

Saya mengerti bahwa sebelum rilis kita akan benar-benar perlu untuk mendapatkan file pelokalan dengan benar, tetapi untuk saat ini itu bukan prioritas karena layar sendiri sedang dimodifikasi sangat sering.


1
Apakah ada cara untuk mengonfigurasi semua bahasa mana yang ditandai sebagai "tidak diterjemahkan?" Saya mendapatkan kesalahan seperti "es, he, and iw". Mengapa saya mendapatkan bahasa itu? Bagaimana cara mengkonfigurasi aplikasi Android saya untuk membatasi set hanya "en"?
inder

@inder: Mungkin karena Anda memiliki direktori seperti "values-he" dll di folder / res Anda?
Nicolas Raoul

1
Tidak, saya tidak punya direktori seperti itu. Hanya, nilai, tata letak, dan gambar.
inder

7
es, ia dan saya berasal dari perpustakaan Facebook SDK.
madej

2
Ini adalah bug di Android Lint: code.google.com/p/android/issues/detail?id=50525
altumano

Jawaban:


348

Android Studio:

  • "File"> "Pengaturan" dan ketik "MissingTranslation" ke dalam kotak pencarian

Gerhana:

  • Windows / Linux: Di "Jendela"> "Preferensi"> "Android"> "Pemeriksaan Kesalahan Serat"
  • Mac: "Eclipse"> "Preferences"> "Android"> "Lint Error Memeriksa"

Temukan MissingTranslationgaris, dan atur Warningseperti yang terlihat di bawah ini:

Terjemahan tidak ada, tidak diterjemahkan dalam


2
... Ada di bawah "Window"> "Preferences"> "Android"> "Lint Error Checking"
Ollie Bennett

2
Ini membantu, tetapi saya tidak memiliki masalah ini untuk waktu yang lama, sampai tiba-tiba muncul. Dan saya tidak tahu kenapa.
pktangyue

Terima kasih atas posting Anda yang berharga
Pawan asati

FYI di bawah Android Studio itu "File"> "Pengaturan" dan "MissingTranslation" ke dalam kotak pencarian.
rekan

86

Anda dapat mengatur atribut yang dapat diterjemahkan = "salah" pada definisi seperti ini:

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

Untuk informasi lebih lanjut: http://tools.android.com/recent/non-translatablestrings


1
Saya mengatakan "file lokalisasi tidak sempurna belum ". Mereka dipenuhi sedikit demi sedikit. terjemahan = "false" akan mencegah siapa pun menerjemahkan.
Nicolas Raoul

3
Walaupun jawabannya tidak terkait langsung dengan pertanyaan, saya kira, itu memberikan solusi yang brilian untuk orang-orang seperti saya yang menemukan topik ini ketika Google "bagaimana membuat serat jangan khawatir tentang konstanta / parameter aplikasi saya". Terima kasih, efor18!
aka_sh

83

Untuk mengabaikan ini dalam gradle build, tambahkan ini ke bagian android file build Anda:

lintOptions {
   disable 'MissingTranslation'
}

2
Terima kasih banyak, benar-benar menyelamatkan saya berhari-hari untuk menemukan semua string yang benar untuk produksi.
D-Kent

Bagus, ini berhasil
Mirko

Menambahkan ini ke modul aplikasi saya memindahkannya untuk saya.
Merkurius

23

Ini akan menyebabkan Lint mengabaikan kesalahan terjemahan yang hilang untuk SEMUA string dalam file, namun file sumber string lainnya dapat diverifikasi jika diperlukan.

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

Ini mungkin cara yang paling benar untuk melanjutkan, tanpa menonaktifkan serat untuk semua proyek
MatPag

11

Jika Anda ingin mematikan peringatan tentang string tertentu, Anda dapat menggunakan yang berikut:

strings.xml

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

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

</resources>

Jika Anda ingin memperingatkan pada string tertentu dan bukan kesalahan, Anda perlu membuat aturan Lint khusus untuk menyesuaikan status keparahan untuk hal tertentu.

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


1
+1 Cara yang baik untuk melakukannya sekali untuk semua, sehingga semua pengembang tim tidak perlu mengubah pengaturan IDE mereka. Adakah cara untuk menjadikannya peringatan, alih-alih menekan sepenuhnya?
Nicolas Raoul

Anda dapat membuat aturan Lint khusus untuk menyesuaikan status keparahan untuk hal tertentu. Ada contoh di sini: tools.android.com/tips/lint-custom-rules
Eduko

9

Masukkan dalam lint.xmlfile ini:

<?xml version="1.0" encoding="UTF-8"?>
<lint>
    ...

    <issue
        id="MissingTranslation"
        severity="ignore" />
</lint>

Untuk lebih jelasnya: Menekan Peringatan Lint .


8

tambahkan baris di file /res/values.xml Anda di tab root sumber daya seperti ini:

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

alat: lokal mengatur bahasa lokal ke bahasa Inggris, tidak perlu terjemahan bahasa nanti untuk semua sumber daya string dan alat: abaikan biarkan Lint untuk menambahkan terjemahan nilai-nilai string sumber daya yang hilang.


6

Tambahkan berikut ke file gradle Anda di bagian android

    lintOptions {
       disable 'MissingTranslation'
    }

5

Sebagai tambahan,

Bukan proyek kelayakan tergantung, Preferensi Eclipse.
Di Mac, Eclipse> Preferensi

masukkan deskripsi gambar di sini


3

Pendekatan lain adalah menunjukkan bahasa yang ingin Anda dukung dan memfilter sisanya menggunakan opsi 'resConfigs' dengan Gradle.

Lihat jawaban lain ini untuk detailnya

Ini lebih baik, saya pikir, karena Anda tidak harus sepenuhnya mengabaikan kesalahan terjemahan yang sah untuk bahasa yang ingin Anda dukung



1

Banyak dari mereka memiliki jawaban kerja yang berbeda, dan saya juga mendapat kesalahan serat yang sama sehingga saya abaikan dengan melakukan hal berikut dengan eclipse.

  1. klik pada Windows
  2. klik pada preferensi
  3. pilih android> Pemeriksaan Kesalahan Serat.
  4. klik abaikan Semua> Terapkan> Oke.

Itu dia.


2
ini akan mengabaikan semua preferensi serat. Tidak hanya Terjemahan yang Hilang
Luciano Rodríguez

1

Berikut ini bekerja untuk saya.

  • Klik pada Windows
  • Klik pada preferensi
  • Pilih android> Pemeriksaan Kesalahan Serat.
  • Temukan dan pilih pemeriksaan Lint yang relevan dan
  • Atur tingkat keparahan ke 'Abaikan' (di kanan bawah)
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.