Berikut adalah nilai - nilai saya \ strings.xml (file default) dan semuanya sudah jelas:
Pertanyaan saya):
- Bagaimana bisa "tidak ditemukan di lokal default" jika saya mengedit lokal default (values \ strings.xml)?
- Bagaimana ini bisa menjadi kesalahan terjemahan lint jika saya menyetelnya
translatable="false"
? Dalam folder values-pl \ strings.xml (dan values-ru, values-iw juga) stringnya bahkan tidak ada? seharusnya tidak. - Sepertinya saya tidak mengerti mengapa saya tidak mendapatkan error untuk string Rusia.
(Saya akan menunjukkan nilai-ru \ string.xml atau values-pl \ string.xml di sini tetapi tidak ada yang menarik di sana, karena stringnya tetap hilang ...)
Jawaban:
ini terjadi pada saya juga
Saya melakukan 2 hal:
sumber
Invalidate Caches / Restart
. Agar tidak mencari di komentar, seperti yang saya lakukan misalnya.Membangun kembali bisa memakan waktu lama. YMMV, tapi ...
Cukup hapus garis yang melanggar dan tambahkan kembali.
Bekerja untuk saya. Sangat cepat.
sumber
Dalam kasus saya, ini membantu saya:
Jika tidak berhasil untuk Anda, coba tambahkan string yang sama ke
strings.xml(v21)
file.sumber
Tekan Invalidate Caches / Restart ... untuk memulai ulang android studio. Itu berhasil untuk saya. Sebenarnya ini terjadi ketika saya menyalin file dari komputer saya yang lain dan menempelkannya melalui file explorer.
sumber
Saya mendapatkan pesan kesalahan yang sama, hanya dengan masalah aneh yang muncul di lokal default itu sendiri dan semua terjemahan. Ternyata Anda tidak boleh menggunakan titik pada nama Anda (misalnya name = "bla.blub") karena akan diubah secara internal menjadi "bla_blub" dan kemudian tidak bisa cocok dengan "bla.blub", maka kesalahannya. Saya hanya perlu mengubah titik menjadi garis bawah di lokal default dan kemudian semua kesalahan lain dalam terjemahan lain (termasuk titik pada nama) juga hilang.
Namun ketahuilah bahwa alat build lain masih dapat menimbulkan masalah, jadi ganti semua titik dengan garis bawah!
sumber
Keluar dari Android Studio dan memulai ulang memperbaikinya untuk saya.
sumber
Saya memecahkan masalah ini dengan mengikuti langkah-langkah di bawah ini:
membersihkan proyek saya
membangunnya kembali
dan terakhir menekan cache tidak valid / Restart di menu file
sumber
Saya telah membuat alat untuk mengelola status terjemahan aplikasi android. Ini tidak hanya memberi tahu Anda string apa yang hilang di bahasa lain, tetapi juga dapat melaporkan, dan membersihkan string yang tersisa yang mungkin telah Anda hapus pada file terjemahan default Anda.
https://github.com/gubatron/android-missing-strings
Untuk membersihkan semua sisa bahasa lain, panggil seperti ini
Ini akan membersihkan string yang tersisa dan akan menampilkan laporan string yang hilang untuk semua bahasa ke dalam file all.txt
sumber
Anda hanya perlu menyalin baris yang melanggar (atau hanya salah satu dari beberapa baris yang melanggar), menghapusnya, dan menempelkannya kembali. Itu menghilangkan masalah bagi saya.
sumber
Pastikan Anda memiliki konvensi penamaan yang sama pada semua file string termasuk kapitalisasi yang sama. katakanlah jika Anda memiliki "sign_in" di strings.xml dan "sign_In" di fr / string.xml, maka itu akan memberi Anda kesalahan pada fr / strings.xml seperti "diterjemahkan di sini tetapi tidak ditemukan di lokal default". Jadi, saat Anda mengedit ke "sign_in". Kesalahan akan dihapus.
sumber
Salin dan tempel tidak berhasil untuk saya.
Saya juga mencoba Bersihkan dan memulai ulang, kesalahan sebelumnya hilang tetapi string baru yang dimasukkan masih memiliki kesalahan baru.
Saya mencoba menutup file strings.xml yang dibuka dan Translations Editor , lalu memulai ulang.
strings.xml dan Translations Editor
Itu berhasil untuk saya.
sumber
Saya mengalami masalah ini untuk semua string di file xml saya.
Masalahnya, default Anda
strings.xml
tidak boleh memilikitools:locale
atribut seperti yang dimiliki file terjemahan lainnya. Jika ya, setiap kali saya mengompilasi aplikasi dalam mode rilis, itu akan memperlakukannya sebagai file terjemahan lain.sumber