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

Автор eeigor, 11 августа 2022, 19:34

0 Пользователи и 1 гость просматривают эту тему.

eeigor

Имеется в виду: сантиметры-миллиметры (ru-RU) или дюймы и пр. Нужен соответствующий код.

Function GetUILocale()
''' Calls: 'LibreOffice Macros & Dialogs'.Tools.GetRegistryKeyContent()
''' Remarks: Returns "" (ZLS) if the user interface parameter is "Default - Russian".

   Dim sNodePath$: sNodePath = "/org.openoffice.Office.Linguistic/General"
   Dim sPropName$: sPropName = "UILocale"

   GlobalScope.BasicLibraries.LoadLibrary("Tools")
   GetUILocale = GetRegistryKeyContent(sNodePath).getByName(sPropName)
End Function

Sub Test_GetUILocale()
   MsgBox "UILocale:  " & GetUILocale(), 0, "Registry Info"
End Sub
Ubuntu 18.04 LTS • LibreOffice 7.3.5.2 Community

sokol92

Здравствуйте, Игорь!
Вы имеете в виду параметр диалога "Параметры" LibreOffice Calc / Общие / Метрики / Единица измерения?

Это Metric.
Владимир.

eeigor

Владимир, здравствуйте и спасибо.

Задался вопросом. Когда что-то пишу на Ask, но локали разные, то иногда это влияет на результат. Вот и решил учитывать этот момент, если это необходимо. Эту работу нужно выполнить один раз и потом использовать.

Edit:
Например: ParaIndent property defines the indentation of the cell contents in 1/100 mm.
 Const FACTOR = 352.7777778  'conversion factor for 10 pt default shift
Выше: расстояние в 1 отступ по умолчанию. А ниже: как задаётся отступ.
 oCell.ParaIndent = oCell.ParaIndent + (nIndent * FACTOR)

Вот! А если не миллиметры? С этим ещё предстоит разобраться...
Ubuntu 18.04 LTS • LibreOffice 7.3.5.2 Community