Локализация приложений#

Локализация приложений осуществляется средствами Java Resource Bundle и специальными тегами, внедряемыми в код и метаданные приложений.

Словари#

Для хранения строк на разных языках используются словари. Словарём является пакет ресурсов (Resource Bundle), содержащий properties-файлы со строками {ключ}={значение}:

  • {имя_словаря}.properties - словарь по умолчанию

  • {имя_словаря}_{язык}.properties - словарь для указанного языка.

  • {имя_словаря}_{язык}_{локаль}.properties - словарь для указанного языка с уточнением локали.

Создание словаря#

Новый словарь создается через контекстное меню от каталога с ресурсами.

  1. В IDEA перейдите в каталог в котором хотите создать словарь.

  2. Вызовите на каталоге контекстное меню.

  3. Выполните пункт New > Resource Bundle.

Имя словаря должно совпадать с именем сущности или пакета.

В создавшиеся файлы, добавьте локализованные строки в формате{ключ}={значение}:

Сaption=Валюта
ID=Идентификатор
MultiLineName=Многострочный \  
текст

При создании многострочной ресурсной строки, каждую строку необходимо заканчивать символом \.

Использование локализованных строк#

Локализация строк доступна в:

  • Scala-коде *Dvi/Avi – классов.

  • Scala-коде *Dpi/Api – классов.

  • Scala-коде *_Pkg – классов.

  • Аннотациях @Oper , @MainSelection.

  • *.avm.xml – файлах (для свойств, хранящих «наименование»)

Для получения значения локализованной строки из словаря, имя которого совпадает с текущей сущностью, необходимо указать ключ локализованной строки, обрамлённый тегами: [#Ключ_строки].

Если необходимо получить значение строки из произвольного словаря, необходимо указать полный путь к словарю: [#ru/bitec/app/{модуль}/Словарь.Ключ_строки].

Локализованные строки в Scala-коде#

Для подстановки локализованного значения строки в Scala-код используется макрос ls"#Ключ_строки" или ls"""#Ключ_строки""".

def foo(): Unit = {  
    showMessage(ls"[#MyLocalizedMessage]")  
}

Локализованные строки в аннотациях#

@MainSelection(caption = "[#Gs3_StockMainMenu.caption]")  
object Gs3_StockMainMenuAvi extends ProjectApplicationAvi {}

Локализованные строки в *.avm.xml#

<representation caption="[#caption]">
	<attributes>
		<attr name="sSystemName"
              caption="[#sSystemName]"
			  isVisible="true"/>
    <attributes/>
<representation/>

Ввод значений на другом языке#

Операция Ввести текст на другом языке позволяет ввести значение на другом языке для выбранного редактируемого поля.

Операция доступна если:

  1. Ввод включен в характеристиках класса или глобально в настройках модуля btk.

  2. Поле в выборке называется так же как и атрибут у редактируемого объекта класса.

  3. Поле редактируемо.

  4. Поле должно быть выбрано (нажали на поле ввода).

В списке выберете редактируемое поле и в контекстном меню выберете Информация -> Ввести текст на другом языке. В карточке выберете редактируемое поле и на тулбаре Информация -> Ввести текст на другом языке.

Включение#

Для класса Карточка класса -> Характеристики -> Доступен ввод текста на других языках.

Глобально Настройки и сервисы -> Настройки модулей системы -> Общие настройки модулей -> btk -> bTextLangEnabledAll.