apakah mungkin untuk menentukan bahwa string dalam file di dalam value-*
direktori dengan sengaja tidak diterjemahkan ke dalam bahasa lain? Saya memiliki banyak string yang umum untuk semua bahasa dan tidak memerlukan terjemahan, jadi saya telah membuat unlocalized-strings.xml
file di dalam values
direktori .. Menjalankan Android Lint untuk memeriksa masalah, terus mengatakan bahwa beberapa terjemahan hilang .. Saya tidak mau untuk menonaktifkan pemeriksaan ini di seluruh proyek, saya ingin menonaktifkannya hanya di beberapa file XML .. mungkinkah?
"title_widget_updater_service" is not translated in de, en, en-rUS, it
Issue: Checks for incomplete translations where not all strings are translated
Id: MissingTranslation
If an application has more than one locale, then all the strings declared in one language
should also be translated in all other languages.
By default this detector allows regions of a language to just provide a subset of the
strings and fall back to the standard language strings. You can require all regions to
provide a full translation by setting the environment variable
ANDROID_LINT_COMPLETE_REGIONS.
Bagaimana bisa didefinisikan ini wilayah dari unlocalized string?
android
android-resources
android-lint
Gianni Costanzi
sumber
sumber
Jawaban:
Saya tidak tahu cara mengabaikan semua file, tetapi Anda dapat melakukannya string demi string menggunakan:
sumber
Ini adalah
ignore
atributtools
namespace di file string Anda, sebagai berikut:sumber
Project->Clean
untuk menghapus kesalahan secara definitif.Tambahkan ke
build.gradle
:sumber
Ada 3 cara yang saya ketahui:
Untuk menerapkan nilai modifikasi berdasarkan nilai: Atur atribut
translatable="false"
pada<string>
definisi:Jika Anda memiliki banyak sumber daya yang tidak boleh diterjemahkan, Anda dapat menempatkannya dalam sebuah file bernama
donottranslate.xml
dan lint akan menganggap semua itu sumber daya yang tidak dapat diterjemahkan .Cara lain yang saya temukan saat menelusuri sumber proyek Keyboard Peretas :
Anda dapat menambahkan awalan
donottranslate-
ke file sumber daya Anda. Seperti pada contoh sebelumnya, lint akan mempertimbangkan semuanya sebagai sumber daya yang tidak dapat diterjemahkan.Dalam kasus Anda, Anda dapat mengganti
unlocalized-strings.xml
dengandonottranslate-strings.xml
. Tampaknya berfungsi, tetapi saya belum menemukan dokumentasi apa pun untuk tip ini.Lihat: Situs Proyek Alat Android: String yang Tidak Dapat Diterjemahkan
sumber
donottranlate.xml
, kita tidak perlu menambahkantranslatable="false"
tag lagi?Dan berikut adalah solusi Android Studio untuk menonaktifkan kesalahan Lint yang fatal ini:
sumber
Saya pikir yang Anda butuhkan daripada menonaktifkan lint adalah menandainya dengan atribut
sumber
Buat file sumber daya dengan nama file yang diawali dengan " donottranslate " (mis. Donottranslate.xml , donottranslate_urls.xml , dll), dan lint akan mengabaikan stringnya sama sekali saat memeriksa terjemahan yang hilang.
sumber
Jika Anda ingin menonaktifkan pemeriksaan lint pada terjemahan yang hilang, Anda dapat pergi
"Properti Proyek -> Preferensi Lint Android -> Pilih MissingTranslation -> Swtich Untuk Diabaikan Dalam Tingkat Keparahan",
berharap ini membantu orang lain karena saya baru saja mengalami masalah ini :)
sumber
Cara lain untuk melakukannya adalah menambahkan string Anda ke file gradle, menggunakan
resValue
ataubuildConfigField
. Sesuatu seperti itu:Penggunaan:
sumber
Untuk menghindari peringatan di Android Studio, buka Preferences ==> Inspections, hapus centang "Terjemahan tidak lengkap". Tapi itu tidak akan memengaruhi build Gradle.
sumber
Ada juga "Editor Terjemahan" (klik kanan pada string.xml "Open Translation Editor").
Kemudian centang kotak 'Untranslatable' pada string.
https://developer.android.com/studio/write/translations-editor
sumber