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


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.