Lint:「<key> is not translation in <language>」エラーを無視する方法は?


189

ローカリゼーションファイルがまだ完全ではないため、Androidアプリをコンパイル/デバッグできません。

私のIDEの検証ツールLintは、次のようなエラーを作成します。

newCardsOrderValsはar、bg、ca、csで翻訳されていません

Antでのコンパイル/インストール/実行は問題なく動作しますが、デバッグを容易にするためにIDEを使用したいと思います。

この特定のチェックをオフにする方法、または理想的にはエラーではなく警告にする方法はありますか?

リリース前にローカリゼーションファイルを正しく取得する必要があることを理解していますが、画面自体が頻繁に変更されるため、当面は優先事項ではありません。


1
すべての言語に「翻訳されていない」というフラグを設定する方法はありますか?「es、he、and iw」のようなエラーが出ます。なぜそれらの言語を入手するのですか?セットを「en」のみに制限するようにAndroidアプリを構成するにはどうすればよいですか?
2013

@inder:res /フォルダーに「values-he」などのディレクトリがあるからでしょうか?
Nicolas Raoul

1
いいえ、そのようなディレクトリはありません。値、レイアウト、ドローアブルのみ。
2013

7
es、彼とiwはFacebook SDKライブラリから来ています。
madej 2013

2
これはAndroid Lintのバグです:code.google.com/p/android/issues/detail
id=

回答:


348

Android Studio:

  • [ファイル]> [設定]をクリックし、検索ボックスに「MissingTranslation」と入力します

日食:

  • Windows / Linux:[ウィンドウ]> [設定]> [Android]> [Lintエラーチェック]
  • Mac: "Eclipse"> "Preferences"> "Android"> "Lint Error Checking"

MissingTranslation行を見つけて、次のように設定しWarningます。

Missing translations, is not translated in


2
... [ウィンドウ]> [設定]> [Android]> [Lintエラーチェック]の下にあります
Ollie Bennett

2
それは役に立ちますが、突然問題が発生するまで、この問題は長い間ありませんでした。そして、私はその理由を知りません。
pktangyue 2014年

あなたの貴重な投稿をありがとう
Pawan asati 14

Android Studioでは、検索ボックスに「ファイル」>「設定」と「MissingTranslation」があります。
ピア

86

次のように、定義に属性translatable = "false"を設定できます。

<string name="account_setup_imap" translatable="false">IMAP</string>

詳細:http : //tools.android.com/recent/non-translatablestrings


1
私は、「ローカライゼーション・ファイルは完璧ではないと述べ、まだ」。彼らは少しずつ満たされています。translatable = "false"を指定すると、誰も翻訳できなくなります。
Nicolas Raoul

3
答えは質問とは直接関係ありませんが、Googleが「lintを作成する方法でアプリの定数/パラメーターを気にする必要がない」ときにこのトピックを見つけた私のような人々に素晴らしい解決策を提供すると思います。efor18、ありがとう!
aka_sh 14年

83

Gradleビルドでこれを無視するには、ビルドファイルのandroidセクションにこれを追加します。

lintOptions {
   disable 'MissingTranslation'
}

2
本当にありがとうございました。文字通り、制作に適したすべての文字列を見つける日を節約できました。
D-Kent

いいですね、これでうまく
Mirko

これを私のアプリモジュールに追加してくれました。
マーキュリー

23

これにより、Lintはファイル内のすべての文字列の変換エラーを無視しますが、必要に応じて他の文字列リソースファイルを確認できます。

<?xml version="1.0" encoding="utf-8"?>
<resources xmlns:tools="http://schemas.android.com/tools" 
    tools:ignore="MissingTranslation">

これはおそらく、すべてのプロジェクトのlintを無効にすることなく、続行する最も正しい方法です
MatPag

11

特定の文字列に関する警告をオフにしたい場合は、以下を使用できます。

strings.xml

<?xml version="1.0" encoding="utf-8"?>
<resources>    

    <!--suppress MissingTranslation -->
    <string name="some_string">ignore my translation</string>
    ...

</resources>

エラーではなく特定の文字列で警告したい場合は、カスタムLintルールを作成して、特定のものの重大度ステータスを調整する必要があります。

http://tools.android.com/tips/lint-custom-rules


1
+1すべてに対して一度行うのが良い方法です。これにより、チームのすべての開発者がIDE設定を変更する必要がなくなります。完全に抑制するのではなく、警告にする方法はありますか?
Nicolas Raoul 2014年

カスタムLintルールを作成して、特定の事柄の重大度ステータスを調整できます。ここに例があります:tools.android.com/tips/lint-custom-rules
Eduko


8

次のように、リソースルートタブの/res/values.xmlファイルに行を追加します。

<resources
xmlns:tools="http://schemas.android.com/tools" 
    tools:locale="en" tools:ignore="MissingTranslation">

tools:localeはローカル言語を英語に設定します。後ですべてのリソース文字列とtools:ignoreの言語を翻訳する必要はありません。Lintがリソース文字列値の不足している翻訳を無視します。


6

androidセクションのgradleファイルに以下を追加してください

    lintOptions {
       disable 'MissingTranslation'
    }

5

加えて、

プロジェクトに依存する特性ではなく、Eclipse設定。
Macでは、Eclipse> Preferences

ここに画像の説明を入力してください


3

別のアプローチは、サポートする予定の言語を示し、Gradleで 'resConfigs'オプションを使用して残りを除外することです。

詳細については、この他の回答を確認してください

実際にサポートしたい言語の正当な翻訳ミスを完全に無視する必要がないので、これはより良いと思います。



1

それらの多くは与えられた異なる動作する答えを持っています、そして私は同じlintエラーを得ましたが、Eclipseで次のことを行うことで無視します

  1. Windowsをクリックします
  2. 設定をクリックします
  3. android> Lint Error Checkingを選択します。
  4. [すべて無視]> [適用]> [OK]をクリックします。

それでおしまい。


2
これは、すべてのlint設定を無視します。欠けている翻訳だけではない
ルチアーノ・ロドリゲス

1

以下は私のために働いた。

  • Windowsをクリックします
  • 設定をクリックします
  • [android]> [Lint Error Checking]を選択します。
  • 関連するリントチェックを見つけて選択し、
  • 重大度を「無視」に設定します(右下)。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.