Strings.xml dosyasında translatable = "false" ile "burada çevrildi ancak varsayılan yerel ayarda bulunamadı" hatası


98

İşte değerlerim \ strings.xml (varsayılan dosya) ve her şey kendi kendini açıklayıcı: görüntü açıklamasını buraya girin

Sorularım):

  1. Varsayılan yerel ayarı (değerler \ strings.xml) düzenliyorsam, nasıl "varsayılan yerel ayarda bulunamaz"?
  2. Ayarlasam nasıl tiftik çeviri hatası olabilir translatable="false"? Values-pl \ strings.xml'de (ve değerler-ru, değerler-iw klasörlerinde de) dizeler bile yok mu? zaten olmamalı.
  3. Rus dizesi için neden hata almadığımı anlayamıyorum.

(Burada-ru \ string.xml veya değerler-pl \ string.xml değerlerini gösterirdim ama ilgilendiğim hiçbir şey yok, çünkü dizeler yine de eksik ...)


2
Bu arada sırada meydana gelen bir şeyse, sadece olağan temizlemeleri gerçekleştirin (önbellekleri temizleyin / yeniden oluşturun veya geçersiz kılın / ASTUDIO'da yeniden başlatın, vb.) Tabii ki, hata "gerçek" değilse. ;) Demek istediğim, Android Studio 3.2 (beta atm) ile biraz rastgele oluyor, iyi dizelerin altı çiziliyor, bir şeye dokunuyorsunuz ve hata kayboluyor. Buggy. ¯_ (ツ) _ / ¯
Martin Marconcini


Şu anda Android Studio 3.3.2 çalıştırılıyor. Strings.xml dosyasında bir dize adını çoğaltırsam (örneğin kopyalayıp yapıştırırken) bu bazen başıma geliyor. Bu biraz sinir bozucu ama temizleme ve yeniden başlatma sorunu çözmüş gibi görünüyor.
John Riggs

Bir kaynağı bir dosyadan başka bir modüldeki başka bir dosyaya taşırsanız bu çok sık olur. Her seferinde önbelleği geçersiz kılmalıyım, temizleme / derlemenin hiçbir etkisi yoktur. İndekslemeyle ilgili bir sorun gibi görünüyor.
3c71

Uygulamayı çalıştırmak benim için çalıştı
kreker

Yanıtlar:


82

bu bana da oldu

2 şey yapıyorum:

  • Başka bir çevirinin yapılmadığını görmek için tüm dosyayı doğrulayın (dosyada en ama pt-br'de olanlar var)
  • Gradle'ı temizleyin, güncelleyin ve Android Studio'dan çıkın ve yeniden başlatın

8
Sadece projeyi temizleyin ve Android Studio'yu yeniden başlatın. Ve işe yaradı;)
Ektos974

19
Projeyi temizlemek ve Android Studio'yu yeniden başlatmak işe yaramazsa, lütfen Invalidate Caches / Restart'ı çalıştırmayı deneyin.
makuno

2
Temizlenmiş ve Önbellekleri Geçersiz Kıl / Yeniden Başlatma. Benim için de çalıştı! :)
Reeshabh Ranjan

2
❗ Bunu yapmadan önce satırı kaldırıp yeniden eklemeyi deneyin. Hayat kısa.
Nolan Amy

U cevap, yani komuta bir ek eklemek gerektiğini düşünüyorum: Invalidate Caches / Restart. Örneğin yaptığım gibi yorumlarda arama yapmamak için.
Morozov

68

Yeniden inşa etmek uzun zaman alabilir. YMMV, ama ...

Sorunlu satırı kaldırıp yeniden eklemeniz yeterlidir.

Benim için çalıştı. Çok hızlı.


3
Daha azını yapmak zorundaydım. Dizeyi yeniden adlandırdım ve sonra tekrar değiştirdim.
Matt

1
Vaov! bu çok hızlı.
userAbhi

3
Sorunlu satırı seçin, ctrl-X, ctrl-V. Bitti. Benim için çalıştı!
BİR

1
Sorunlu satırı seçin, silin, geri alın (komut / kontrol z). Bitti. Benim için çalıştı!
HendraWD

1
Daha hızlı çözümler
mochadwi

22

Benim durumumda bu bana yardımcı oldu:

  1. Hataya neden olan dizeleri seçin.
  2. Kes onları.
  3. Tekrar yapıştırın

Sizin için işe yaramazsa, aynı dizeleri strings.xml(v21)dosyaya eklemeyi deneyin .


10

Android stüdyosunu yeniden başlatmak için Önbellekleri Geçersiz Kıl / Yeniden Başlat ... düğmesine basın . Benim için çalıştı. Aslında bu, diğer bilgisayarımdan dosya kopyalayıp dosya gezgini ile yapıştırdığımda oldu.


5

Aynı hata mesajını aldım, sadece varsayılan yerel ayarda ve tüm çevirilerde atılmış olması garip bir sorunla. Görünüşe göre isminizde nokta kullanmamalısınız (örn. Name = "bla.blub") çünkü dahili olarak "bla_blub" a dönüştürülecek ve sonra "bla.blub" ile eşleşemeyecek, dolayısıyla hata. Varsayılan yerel ayarda noktaları altını çizecek şekilde değiştirmek zorunda kaldım ve sonra diğer çevirilerdeki diğer tüm hatalar (addaki noktalar dahil) da ortadan kalktı.

Ancak diğer derleme araçlarının yine de sorun yaratabileceğini unutmayın, bu nedenle tüm noktaları alt çizgilerle değiştirin!


4

Android Studio'dan çıkmak ve yeniden başlatmak benim için sorunu çözdü.


Benim için de işe yarıyor, önbelleği geçersiz kılmaktan ve yeniden başlatmaktan çok daha az acı verici.
3c71

4

Bu sorunu aşağıdaki adımları izleyerek çözdüm:

  1. projemi temizlemek

  2. onu yeniden inşa etmek

  3. ve son olarak dosya menüsünde geçersiz önbellekler / Yeniden Başlat'a basmak


2

Android uygulamalarının çeviri durumunu yönetmek için bir araç oluşturdum. Size yalnızca diğer dillerde eksik olan dizeleri anlatmakla kalmaz, aynı zamanda varsayılan çeviri dosyanızda silmiş olabileceğiniz kalan dizeleri de raporlayabilir ve temizleyebilir.

https://github.com/gubatron/android-missing-strings

Diğer dillerdeki tüm artıkları temizlemek için böyle çağırın

./ams --cleanleftovers -o all.txt

Bu, kalan dizeleri temizler ve tüm diller için eksik dizeler raporunu all.txt dosyasına verir



1

Aynı büyük harf kullanımı dahil tüm dize dosyalarında aynı adlandırma kurallarına sahip olduğunuzdan emin olun. diyelim ki strings.xml'de "sign_in" ve fr / string.xml dosyanızda "sign_In" varsa, fr / strings.xml'de "burada çevrildi ancak varsayılan yerel ayarda bulunamadı" gibi hata verecektir. Yani, "sign_in" olarak düzenleme yaptığınızda. Hata ortadan kalkacak.


0

Kopyala ve yapıştır benim için işe yaramadı.

Ayrıca Temizle ve yeniden başlatmayı da denedim, önceki hata gitti, ancak yeni girilen dizelerde hala yeni hatalar oluşuyor.

Açılan strings.xml dosyasını ve Çeviri Düzenleyicisini kapatmayı denedim , ardından yeniden başlattım .

strings.xml dosyası ve Çeviri Düzenleyicisi

Bu benim için çalışıyor.


0

Xml dosyamdaki tüm dizeler için bu sorunu yaşıyordum.

Mesele şu ki, varsayılanınız diğer çevrilmiş dosyalar gibi strings.xmlbir tools:localeözniteliğe sahip olmamalıdır . Varsa, uygulamayı yayınlama modunda her derlediğimde, onu başka bir çevrilmiş dosya olarak ele alıyor.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.