Android: получите недостающие переводы для строк-ресурсов - PullRequest
32 голосов
/ 08 августа 2011

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

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

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

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

Ответы [ 14 ]

0 голосов
/ 27 июня 2019

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

  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 -> Правильность -> Сообщения> Неполный перевод

enter image description here

  1. Во всех выбранных строках отсутствуют переводы
0 голосов
/ 01 декабря 2016

Я создал инструмент командной строки с именем ams (для android-missing-strings), который распечатывает отчет о каждой пропущенной записи, а также оставшиеся записи, которые больше не отображаются в файле base 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 <gubatron@gmail.com>
Katay Santos <kataysantos@gmail.com>
0 голосов
/ 09 августа 2011

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

0 голосов
/ 08 августа 2011

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...