Подтвердить что ты не робот

Android: получите недостающие переводы для строк-ресурсов

В Android вы можете указать тексты в локали по умолчанию в res/values/strings.xml. Дополнительные переводы могут быть добавлены для новых языков в res/values-it/strings.xml (например, для итальянского). Если строка не переведена, используется языковой стандарт fallback-default.

В настоящее время я не могу определить, какие строки мне еще нужно перевести (например, в values/strings.xml, но не в values-$/strings.xml для всех $на языках) и которые переводятся, хотя они являются обсолтыми (так и в values-$/strings.xml, но не в значениях /strings.xml существует $в языках)

Я ищу инструмент, который дает мне те переводы, которые отсутствуют, и тот, который устарел.

Честно говоря, не так сложно написать такой инструмент для командной строки, я едва могу поверить, что никто этого уже не сделал.

4b9b3361

Ответ 1

Интересный вопрос. Я написал простой script, чтобы найти дубликаты ресурсов в проекте android на https://gist.github.com/1133059. Это ужасно, я знаю, но я запишу его через несколько дней и, возможно, создам проект на github. Чтобы запустить его с консоли:
$scala DuplicatesFinder.scala /path/to/android/project

UPDATE:
Я сделал проект на github https://github.com/4e6/android-localization-helper, может быть, кто-то найдет его полезным

Ответ 2

Это не автоматизировано, но очень быстро. В Eclipse перейдите в Window- > Show View- > Other- > Android- > Resource Explorer.

Теперь под вкладкой "Проводник ресурсов" внизу (или туда, куда вы переместили его), посмотрите под String. Каждая строка должна иметь одинаковое количество версий, если у вас есть полный перевод, поэтому вы можете просканировать список всего за несколько секунд.

Сделайте это для каждого проекта со строками.

Я не знал об этом до тех пор, пока я не локализуюсь, но он по-прежнему полезен (например, когда я добавляю новую строку).

Ответ 3

Если вы используете Android Studio, легко найти, какая строка отсутствует.

Щелкните правой кнопкой мыши на значении /strings.xml и выберите "Открыть редактор переводов": pic 1

Здесь вы можете легко найти отсутствующие строки на всех языках, как показано ниже: введите описание изображения здесь

Спасибо...

Ответ 4

Новый официальный инструмент Android Lint поможет вам обнаружить эту проблему и многие другие: http://tools.android.com/tips/lint

Ответ 5

В Eclipse с версии SDK версии 17 появилась значительно улучшенная версия инструмента для инструментов для Android Dev Kit: Новый пользовательский интерфейс Eclipse Lint

Просто нажмите элемент панели инструментов "lint", запустите его в своем проекте, затем откройте элемент "не переведен", который будет отображаться для каждого тега, который нуждается в переводе.

Кредит satur9nine - это обновленная версия их ответа, которая приведет меня к этому.

Ответ 6

Вы также можете использовать Android lint (легкий доступ из Eclipse). Щелкните правой кнопкой мыши свой проект → Инструменты Android → Запустить Lint. Это даст вам список всех недостающих переводов, а также некоторые другие распространенные ошибки.

Он также покажет вам дубликаты ресурсов и строки, недоступные в переводе по умолчанию.

Ответ 7

В Android Studio выберите "Анализ"> "Запустить проверку по имени", введите следующую команду и выполните проверки для пользовательских Project Production Files настраиваемой области.

  • Дополнительный перевод
  • Неполный перевод

Ответ 8

Нет, я знаю, я предпочитаю этот вопрос.:) Однако, как наилучшая практика, я сначала заполняю строку strings.xml по умолчанию и переводю ее в самом конце. Я также добавляю небольшой комментарий к маркеру, чтобы указать конец перевода, и любые новые строки добавляются ниже этого. Это помогает мне отслеживать те, которые не переведены.

- ОБНОВЛЕНИЕ -

С помощью новейшего инструмента ADT для eclipse вы можете установить Lint, который заботится обо всех проблемах, связанных с дубликатами, и многое другое с его исчерпывающим набор предупреждений.

Ответ 9

Я менеджер продуктов для MOTODEV Studio. Как отметил @hjw, это особенность студии MOTODEV, называемой "Редактором файлов локализации". Этот редактор похож на электронную таблицу и позволяет видеть все ваши строки в одном представлении. Вы можете редактировать как электронную таблицу или базовый XML в том же представлении.

MOTODEV Studio - это фирменная версия Eclipse, поэтому она должна работать с вашими существующими проектами, если вы используете Eclipse. Если вы предпочитаете продолжать использовать существующую настройку Eclipse, вы все равно можете использовать MOTODEV Studio для обработки редактирования файлов string.xml, только если только одна версия может открывать рабочее пространство за раз.

Если у вас есть вопросы о том, как его использовать, не стесняйтесь присылать мне сообщение или сообщение на наших досках объявлений на developer.motorola.com

Ответ 10

Если вы хотите использовать getlocalization.com веб-сайт, который является бесплатным, если вы готовы иметь переводчики работают над вашей локализацией публично (в противном случае вам нужно заплатить, чтобы сделать ваш проект приватным).

Вы можете просто использовать свой плагин Eclipse, чтобы автоматически импортировать строки из вашего проекта Android: http://getlocalization.github.io/eclipse/

Тогда это интерфейс, который ваши переводчики увидят, когда они сделают фактический перевод:

screenshot of web interface given to translators

Я рекомендую вам щелкнуть правой кнопкой мыши на скриншоте выше, чтобы просмотреть его в большем формате на отдельной вкладке. Он действительно хорошо продуман и должен облегчить работу переводчика.

Ответ 11

Вы знаете MotoDev Studio для Android? В нем есть инструмент локализации. Внутри этого инструмента все langauges являются столбцами, и все тексты являются строками. Очень легко найти недостающие переводы внутри этой "электронной таблицы". Другой способ, найти переводные переводы, не так просто.

Ответ 12

Я предлагаю Amanuens, которые позволяют легко идентифицировать непереведенные строки и строки, которые не совпадают в основных и переведенных файлах. Он может, опционально, настраиваться на автоматическое сохранение файлов перевода, синхронизированных с репозиторием. Вы также можете предоставить переводчикам доступ к службе, и они могут найти простой в использовании веб-редактор для перевода вашего приложения.

Ответ 13

Я построил инструмент командной строки под названием ams (для android-missing-strings), который печатает отчет о каждой пропущенной записи, а также оставшиеся записи, которые больше не отображаются в вашем базовом файле strings.xml.

Он доступен здесь https://github.com/gubatron/android-missing-strings

ams - Android Missing Strings reporting tool.

Usage:
ams [-l xx[,yy,zz...]] -o <output_file>

Options:
-h --help            Print this help


-l --lang <xx>       Specify a language or many with comma separated 2-char language codes.

                     e.g:  -l cn         (creates report for Chinese strings.xml)
                           -l cn,it,fr   (creates report for Chinese, Italian and French strings.xml files)

                     If this parameter is ommited, a report with every language file found will be created.


-o --oFile           Specify the output file name for the report

Copyright (c) 2014 - The Mit License (MIT)

Authors:
Angel Leon <[email protected]>
Katay Santos <[email protected]>

Ответ 14

Шаги, чтобы получить все недостающие переводы:

  1. включить ошибку lint для отсутствующего перевода на уровне приложения build.gradle

    lintOptions {
       abortOnError false
       enable 'MissingTranslation'
    }
    
  2. добавить языки для сравнения внутри конфигурации по умолчанию level.gradle (здесь английский и хинди)

    resConfigs "en", "hi"
    
  3. щелкните правой кнопкой мыши по умолчанию strings.xml. Затем проанализировать → проверить код

enter image description here

  1. Теперь проверьте результат проверки. Android → Lint → Correctness → Сообщения> Неполный перевод

enter image description here

  1. Во всех выбранных строках отсутствуют переводы