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

Android strings.xml Лучшие практики?

Я задаю себе пару вопросов, и им интересно, есть ли какие-то лучшие практики.

  • Как назвать строку? Это всегда заканчивается хаосом для меня.
  • Как синхронизировать переводы? Есть ли совлокальные онлайн-инструменты, которые вы можете порекомендовать?
  • Как заказать строку в файле strings.xml? По алфавиту? Сгруппированы по активности?...?
  • Как насчет повторного использования строк? Вы бы рекомендовали использовать несколько несколько разных строк или одну строку, которая как бы вписывается в несколько контекстов?
4b9b3361

Ответ 1

Я все еще новичок в этом, поэтому я искал примерный проект. Astrid является открытым исходным кодом на Github, и, просматривая каталог проектов res, вы открыли для новичка, как я.

Хороший материал. Посмотрите:

https://github.com/todoroo/astrid/tree/master/astrid/res/values

Ответ 2

Хороший вопрос. Я тоже борюсь с этим. Моя схема именования:

1) Элементы пользовательского интерфейса: Если строка соответствует только ui i, ее следует соответствующим элементу управления и цели, а также в какой части элемента управления он используется. Пример:

button_helpText;
control : button, purpose: help, context: Text;

2) Общие элементы: Если в пользовательском интерфейсе используется строка, но я хочу использовать ее в другом контексте, я просто оставляю префикс и добавляю постфикс, чтобы описать цель/контекст. Точность.

helpMessageHeading;
purpose: help; context: a Message (abstract, could be a dialog), context_of_dialog: Heading; (the heading of a help dialog)
helpMessageText;
purpose: help, context: a Message (abstract, could be a dialog), context_of_dialog: Text; (the text inside a help dialog)
helpExplanation;
purpose: help; context_of_help: Explanation (just a explanation of the help topic)

3) Заказ: Я заказываю эти строки главным образом на основе их контекста, поскольку это то, что вы обычно ищете.

<!-- buttons -->
...
<!-- dialogs -->
...
<!-- general -->
...
<!-- explanations -->
...

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

Я очень заинтересован в других ответах.

Ответ 3

Лучшее место для проверок соглашений, скорее всего, будет в пределах образцов Android SDK. Вот как вы можете их найти - http://developer.android.com/tools/samples/index.html

Ответ 4

Как сохранить переводы в синхронизации? Есть ли совлокальные онлайн-инструменты, которые вы можете порекомендовать?

Для меня лучшим инструментом является http://www.translatekarate.com

Это бесплатный и совлокальный.

Ответ 5

Как сохранить переводы в синхронизации? Существуют ли совлокальные онлайн-инструменты вы можете порекомендовать?

В настоящий момент я использую этот инструмент для совместной работы http://www.getlocalization.com/, что делает жизнь намного проще и бесплатна, если вы не используете никакие профессиональные функции.

Тогда есть также http://crowdin.net/, что немного лучше, на мой взгляд, becuse ist предлагает переводы с помощью google и bing, но стоит 9 $в самый дешевый вариант.

Как заказать строку в файле strings.xml? По алфавиту? Сгруппированные по видам деятельности?...

До сих пор я не заказывал их, потому что я в основном не редактировал свой xml вручную. Существует плагин, который упрощает обработку нескольких переводов в eclipse: редактор локализации Sequoyah

Ответ 6

Как сохранить переводы в синхронизации? Есть ли совлокальные онлайн-инструменты, которые вы можете порекомендовать?

Я использую инструмент управления проектами https://poeditor.com для перевода файлов XML и синхронизации их.