4.5 KiB
Язык проекта, локализация интерфейса
-
На Английском пишем:
- Исходный код проекта, имена классов, строковые литералы и т.д.
- Документирующие комментарии для разработчиков JavaDoc
- Основной интерфейс пользователя (default language)
- Код тестов JUnit
- Документация по проверкам в корне каталога
/check.descriptions/
(основной язык) - Тестовый примеры кода 1С (желательно)
-
На Русском пишем:
- Второй дополнительный интерфейс
- Документация по проверкам в каталога
/check.descriptions/ru/
- Тестовый примеры кода 1С (допустимо)
Подробнее...
Исходный код должен быть написан на Английском языке. Английский язык - является языком по умолчанию. Не допускается использование транслита или иных не английских слов и терминов. В случае, если вы затрудняетесь в выборе подходящего термина на английском - обратитесь за помощью в issue по вашей функциональности к владельцам проекта - мы всегда поможем!
Язык ведения проекта (issue, аудит и т.д.) - Русский, т.к. ориентация на русское сообщество программистов. Поддержка разработчиков на других языка в будущем может быть решена дополнительно.
Локализация интерфейса
Все интерфейсные тексты, которые видит пользователь, должны быть написаны на английском языке и локализированы - вынесены в отдельные ресурсные файлы *.properties
.
Кодировка файлов *.properties
- UTF-8.
Все локализируемые ресурсные файлы должны быть переведены на дополнительный русский язык.
Например:
messages.properties
- основной интерфейс, должен содержать английский интерфейсmessages_ru.properties
- дополнительный интерфейс на русском языке
В проекте используется система локализации Eclipse NLS:
- Необходимо создавать final-класс наследник
org.eclipse.osgi.util.NLS
- В классе указывается консанта
BUNDLE_NAME
с полным квалификтором файлаmessages
в котором хранятся локализованные сообщения. - Создаются публичные константы, которые являются ключами в ресурсных файлах
final class Messages
extends NLS
{
private static final String BUNDLE_NAME = "com.e1c.v8codestyle.md.check.messages"; //$NON-NLS-1$
public static String CommonModuleNameClient_description;
public static String CommonModuleNameClient_message;
static
{
// initialize resource bundle
NLS.initializeMessages(BUNDLE_NAME, Messages.class);
}
private Messages()
{
}
}
Для большего удобства используйте помощник Eclipse Externalize Strings Wizard, который помогает переносить интерфейсные строки из кода в ресурсные файлы, с автоматическим созданием файла констант NLS.
Для редактирования ресурсных файлов следует использовать плагин из Маркет-плайса Eclipse: ResourceBundle Editor или аналогичны, позволяющий синхронно редактировать интерфейсы на нескольких языках, корректно учитывающий кодировку UTF-8.