Підказка: Як ігнорувати помилки "<ключ> не перекладається на <мовний>" помилки?


189

Я не можу компілювати / налагоджувати наш додаток для Android, оскільки файли локалізації ще не ідеальні.

Інструмент перевірки мого IDE Lint створює помилки, говорячи:

newCardsOrderVals не перекладається на ar, bg, ca, cs

Компіляція / установка / запуск з Ant працює чудово, але я хотів би використовувати свій IDE для полегшення налагодження.

Чи є спосіб вимкнути цю перевірку чи в ідеалі зробити це попередженням, а не помилкою?

Я розумію, що перед випуском нам дійсно потрібно буде правильно підібрати файли локалізації, але поки це не є пріоритетним завданням, оскільки самі екрани змінюються дуже часто.


1
Чи є спосіб налаштувати, які всі мови позначені як "не перекладені?" Я отримую помилки типу "es, he, iw". Чому я отримую ці мови? Як налаштувати додаток Android для обмеження набору лише на "en"?
— індер

@inder: Може, тому, що у вашому res / папці є каталоги типу "values-he" тощо?
— Ніколя Рауль

1
Ні, у мене немає таких каталогів. Тільки, значення, компонування та малювання.
— inder

7
Так, він і iw походять з бібліотеки SDK у Facebook.
— madej

2
Це помилка в Android Lint: code.google.com/p/android/isissue/detail?id=50525
— altumano

Відповіді:


348

Android Studio:

  • "Файл"> "Налаштування" та введіть "Відсутній переклад" у вікні пошуку

Затемнення:

  • Windows / Linux: У меню "Вікно"> "Налаштування"> "Android"> "Перевірка помилок на обличчі"
  • Mac: "Eclipse"> "Preferences"> "Android"> "Lint Error Checking"

Знайдіть MissingTranslationрядок і встановіть його так, Warningяк показано нижче:

Відсутній переклад, не перекладено на


2
... Це в розділі "Вікно"> "Налаштування"> "Android"> "Перевірка помилок на обличчі"
— Оллі Беннетт

2
Це корисно, але у мене не було цієї проблеми дуже довго, поки вона раптом не з’явилася. І я не знаю, чому.
— pktangyue

Дякуємо за ваш цінний пост
— Pawan asati

FYI під Android Studio це "Файл"> "Налаштування" та "Відсутній переклад" у вікні пошуку.
— однолітків

86

Ви можете встановити атрибут translatable = "false" для такого визначення, як це:

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

Для отримання додаткової інформації: http://tools.android.com/recent/non-translatablestrings


1
Я сказав , що «файли локалізації не досконалі ще ». Їх потроху заповнюють. translatable = "false" не дозволить комусь перекласти.
— Ніколя Раул

3
Хоча відповідь не пов’язана безпосередньо з питанням, я думаю, він забезпечує геніальне рішення для людей, як я, які знайшли цю тему, коли Google "як зробити обличчя не хвилюйся щодо констант / параметрів програми". Дякую, efor18!
— aka_sh

83

Щоб ігнорувати це у збірці gradle, додайте це до розділу Android на вашому файлі збірки:

lintOptions {
   disable 'MissingTranslation'
}

2
Дуже дякую, буквально врятували мені дні, коли я знайшов усі правильні рядки для виробництва.
— D-Kent

Гарний, це вдалося
— Мирко

Додав це до мого модуля програми, так що він його замість мене.
— Меркурій

23

Це призведе до того, що Lint ігнорує відсутню помилку перекладу для ВСІХ рядків у файлі, але інші файли рядкових ресурсів можуть бути перевірені, якщо потрібно.

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

Це, мабуть, самий правильний спосіб продовжити, не вимикаючи
— жодної маски

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. Будь-який спосіб зробити це попередженням, а не придушити повністю?
— Ніколя Раул

Ви можете побудувати спеціальне правило 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">

інструменти: locale встановлює локальну мову на англійську мову, пізніше не потрібно перекладати мову для всіх рядків та інструментів ресурсу: ігноруйте, нехай Lint не повинен відмовитись від відсутніх перекладів значень рядка ресурсу.


6

Додайте наступне до файлу gradle в розділі Android

    lintOptions {
       disable 'MissingTranslation'
    }

5

В додаток,

Не залежні від проекту властивості, параметри Eclipse.
У Mac, Eclipse> Preferences

введіть тут опис зображення


3

Інший підхід полягає в тому, щоб вказати мови, які ви хочете підтримувати, і відфільтрувати інші, використовуючи опцію 'resConfigs' за допомогою Gradle.

Перегляньте цю іншу відповідь для деталей

Я вважаю, що це краще, тому що вам не доведеться повністю ігнорувати законні помилки перекладу для мов, які ви насправді хочете підтримувати



1

Багато з них давали різні робочі відповіді, і я теж отримав однакові помилки, і я змушую її ігнорувати, роблячи наступне із затемненням.

  1. натисніть на Windows
  2. натисніть на налаштування
  3. виберіть android> Lint Error Checkting.
  4. натисніть на ігнорувати Все> Застосувати> Добре.

Це воно.


2
це ігнорує всі переваги ворсу. Не тільки пропавший переклад
— Лучано Родрігес

1

Наступне працювало для мене.

  • Клацніть на Windows
  • Клацніть на налаштування
  • Виберіть android> Lint Error Checkting.
  • Знайдіть і виберіть відповідну перевірку і
  • Встановіть різкість на "Ігнорувати" (внизу праворуч)
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.