1
0
mirror of https://github.com/1C-Company/v8-code-style.git synced 2024-12-12 05:24:24 +02:00
v8-code-style/docs/contributing/project_language.md
2021-09-24 14:07:14 +03:00

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.