mirror of
https://github.com/1C-Company/v8-code-style.git
synced 2025-04-15 21:28:30 +02:00
69 lines
4.5 KiB
Markdown
69 lines
4.5 KiB
Markdown
# Язык проекта, локализация интерфейса
|
|
|
|
|
|
- На **Английском** пишем:
|
|
- Исходный код проекта, имена классов, строковые литералы и т.д.
|
|
- Документирующие комментарии для разработчиков 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` в котором хранятся локализованные сообщения.
|
|
- Создаются публичные константы, которые являются ключами в ресурсных файлах
|
|
|
|
```java
|
|
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 Marketplace: [ResourceBundle Editor](https://marketplace.eclipse.org/node/2628188) или аналогичный, позволяющий синхронно редактировать интерфейсы на нескольких языках, корректно учитывающий кодировку UTF-8.
|
|
|