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.

Nicolas Raoul
sumber
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

Nicolas Raoul
sumber
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

efor18
sumber
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'
}
Janusz
sumber
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">
Tom Bollwitt
sumber
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

Eduko
sumber
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 .

Brais Gabin
sumber
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.

Purvik Rana
sumber
6

Tambahkan berikut ke file gradle Anda di bagian android

    lintOptions {
       disable 'MissingTranslation'
    }
chzahid
sumber
5

Sebagai tambahan,

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

masukkan deskripsi gambar di sini

Jinbom Heo
sumber
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

kip2
sumber
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.

raju
sumber
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)
pengguna4353093
sumber