「ここで翻訳されていますが、デフォルトのロケールでは見つかりません」translatable =“ false”のstrings.xmlのエラー


98

これが私のvalues \ strings.xml(デフォルトファイル)であり、すべてが自明です: ここに画像の説明を入力してください

私の質問:

  1. デフォルトのロケール(values \ strings.xml)を編集している場合、どうすれば「デフォルトのロケールで見つかりません」になりますか?
  2. 設定した場合、どのように糸くずの翻訳エラーになる可能性がありますtranslatable="false"か?values-pl \ strings.xml(およびvalues-ru、values-iwフォルダーも)には、文字列も存在しませんか?とにかくすべきではありません。
  3. ロシア語の文字列でエラーが発生しない理由が理解できないようです。

(ここではvalues-ru \ string.xmlまたはvalues-pl \ string.xmlを表示しますが、文字列がとにかく欠落しているため、関心のあるものは何もありません...)


2
これが時々発生する場合は、通常のクリーンアップ(キャッシュのクリーンアップ/再構築または無効化/ ASTUDIOでの再起動など)を実行するだけです。もちろん、エラーが「実際」でない限り。;)私のポイントは、Android Studio 3.2(beta atm)では、ランダムに発生し、適切な文字列に下線が引かれ、何かに触れるとエラーが消えるということです。バギーです。_(ツ)_ /¯
マーティンMarconcini

1
この方法を試してください:stackoverflow.com/a/53780805/7831470
SagarGiri19年

現在AndroidStudio3.3.2を実行しています。これは、strings.xmlファイルで文字列名を複製した場合(コピーして貼り付ける場合など)に時々発生します。ちょっとイライラしますが、掃除して再起動すると直るそうです。
JohnRiggs19年

リソースをあるファイルから別のモジュールの別のファイルに移動すると、非常に頻繁に発生します。毎回キャッシュを無効にする必要があります。クリーンアップ/ビルドは効果がありません。インデックス作成に問題があるようです。
3c 7119年

アプリの実行は私のために働いた
kreker

回答:


82

これは私にも起こりました

私は2つのことをします:

  • ファイル全体を確認して、別の翻訳が行われていないことを確認します(ファイルenにありますが、pt-brにあります)
  • Gradleをクリーンアップして更新し、AndroidStudioを終了して再起動します

8
プロジェクトをクリーンアップしてAndroidStudioを再起動するだけです。そしてそれは
うまくいき

19
プロジェクトをクリーンアップしてAndroidStudioを再起動できない場合は、Invalidate Caches / Restartを実行してみてください。
makuno 2018年

2
キャッシュのクリーンアップと無効化/再起動。私も働いた!:)
ReeshabhRanjan19年

2
❗これを行う前に、行を削除して再度追加してみてください。人生は短いです。
ノーランエイミー

答え、つまりコマンドに補足を追加する必要があると思いますInvalidate Caches / Restart。私が例えばしたように、コメントを検索しないために。
モロゾフ

68

再構築には長い時間がかかる場合があります。YMMV、しかし...

問題のある行を削除して、再度追加するだけです。

私のために働いた。とても早い。


3
私はさらに少なくしなければなりませんでした。文字列の名前を変更してから、元に戻しました。
マット

1
うわー!これは超高速です。
userAbhi

3
問題のある行、ctrl-X、ctrl-Vを選択します。完了。私のために働いた!
ONE

1
問題のある行を選択し、削除、元に戻します(コマンド/コントロールz)。完了。私のために働いた!
HendraWD

1
より高速なソリューション
mochadwi

22

私の場合、これは私を助けました:

  1. エラーの原因となる文字列を選択します。
  2. それらをカットします。
  3. もう一度貼り付けます

それがうまくいかない場合は、同じ文字列をstrings.xml(v21)ファイルに追加してみてください。


10

[キャッシュの無効化/再起動...]を押してAndroidStudioを再起動します。それは私のために働いた。実際、これは、他のコンピューターからファイルをコピーして、ファイルエクスプローラーを介して貼り付けたときに発生しました。


5

同じエラーメッセージが表示されましたが、デフォルトのロケール自体とすべての翻訳でスローされるという奇妙な問題がありました。名前にドットを使用しないでください(例:name = "bla.blub")。これは、内部で「bla_blub」に変換され、「bla.blub」と一致しないため、エラーが発生するためです。デフォルトのロケールでドットを下線に変更するだけで、他の翻訳の他のすべてのエラー(名前のドットを含む)もなくなりました。

ただし、他のビルドツールでも問題が発生する可能性があるため、代わりにすべてのドットを下線に置き換えてください。


4

Android Studioを終了して再起動すると、修正されました。


それは私にとっても機能します。キャッシュを無効にして再起動するよりもはるかに簡単です。
3c71

3

以下の手順に従って、この問題を解決しました。

  1. 私のプロジェクトを掃除する

  2. それを再構築する

  3. 最後に無効なキャッシュを押す/ファイルメニューで再起動


2

Androidアプリの翻訳状況を管理するツールを作成しました。他の言語で欠落している文字列を通知するだけでなく、デフォルトの翻訳ファイルで削除した可能性のある残りの文字列をレポートしてクリーンアップすることもできます。

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

他の言語で残っているものをすべてクリーンアップするには、次のように呼び出します

./ams --cleanleftovers -o all.txt

これにより、残った文字列がクリーンアップされ、すべての言語の欠落した文字列レポートがall.txtファイルに出力されます。



1

同じ大文字を含むすべての文字列ファイルに同じ命名規則があることを確認してください。たとえば、strings.xmlに「sign_in」があり、fr / string.xmlに「sign_In」がある場合、「ここに翻訳されていますが、デフォルトのロケールでは見つかりません」のようにfr /strings.xmlでエラーが発生します。したがって、「sign_in」に編集すると。エラーは削除されます。


0

コピーアンドペーストは私にはうまくいきませんでした。

Clean and restartも試しましたが、以前のエラーはなくなりましたが、新しく入力した文字列にはまだ新しいエラーが発生しています。

開いたstrings.xmlファイルと翻訳エディターを閉じてから再起動してみました。

strings.xmlファイルと翻訳エディター

それは私にとってはうまくいきます。


0

xmlファイル内のすべての文字列でこの問題が発生していました。

重要なのは、他の翻訳されたファイルが持っているように、デフォルトに属性をstrings.xml持たせるべきではないというtools:localeことです。その場合、リリースモードでアプリをコンパイルすると、別の翻訳済みファイルとして扱われます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.