По вопросу транслитерации. Можно ли получить помощь (...

Автор ForumOOo (бот), 10 марта 2015, 02:30

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

ForumOOo (бот)

Компонент: Calc
Версия продукта: 4.2.x
Сборка: Версия: 4.4.1.2 ID сборки: 40m0(Build:2) Локаль: ru_RU
ОС: ubunty 14.04

По вопросу транслитерации.
Можно ли получить помощь (или ссылку, если есть подобное) - выложить пошаговую инструкцию для чайника -  как установить макрос,
или дополнение или что то еще, при помощи которого текст, набранный в кириллице в одной ячейке, автоматически преобразовывался в
латиницу?

программа libreOffice, Версия: 4.4.1.2  ID сборки: 40m0(Build:2)  Локаль: ru_RU,  установлена в ubuntu 14.04
ноутбук samsung rc530

--
Подпись: Rafael
Эл. почта: luch88@rambler.ru

Yakov

Можно попробовать это расширение:
http://extensions.libreoffice.org/extension-center/oootranslit/releases/0.4.1

Только макрос придётся вручную запускать (предварительно выделив текст)- никакого значка или пункта меню не появляется.

kompilainenn

Цитата: Yakov от 10 марта 2015, 11:28никакого значка или пункта меню не появляется.
можно самому назначить же
Поддержать разработчиков LibreOffice можно тут, а наш форум вот тут

ForumOOo (бот)

Компонент: Calc
Версия продукта: 4.2.x
Сборка:
ОС:

попробую этот вариант. вопрос - как это - самому назначить? я в макросах совсем не разбираюсь......

--
Подпись: Rafael
Эл. почта: luch88@rambler.ru

rami

Почитайте здесь: http://forumooo.ru/index.php/topic,4547.0.html , там JohnSUN предложил один из вариантов.

Скопируйте код:Function transToLat(Str As String) As String
const RArrayL = "абвгдеёжзийклмнопрстуфхцчшщьыъэюя "
const RArrayU = "АБВГДЕЁЖЗИЙКЛМНОПРСТУФХЦЧШЩЬЫЪЭЮЯ "
const colChar = 34
Dim i AS Integer
Dim LenS AS Integer
Dim p AS Integer
Dim d AS Integer
Dim arr
Dim result As String

  arr = ARRAY(ARRAY("a", "b", "v", "g", "d", "e", "e", "zh", "z", "i", "y", _
      "k", "l", "m", "n", "o", "p", "r", "s", "t", "u", "f", _
      "kh", "ts", "ch", "sh", "shch", "%", "y", "%", "e", "yu", "ya"," "), _
      ARRAY("A", "B", "V", "G", "D", "Ye", "Ye", "Zh", "Z", "I", "Y", _
      "K", "L", "M", "N", "O", "P", "R", "S", "T", "U", "F", _
      "Kh", "Ts", "Ch", "Sh", "Shch", "", "Y", "", "E", "Yu", "Ya"," "))
    result = ""
    LenS = len(Str)
    For i = 1 To lenS
      d = 0
      p = InStr(1, RArrayL, MID(str,i,1), 0)
      If p = 0 Then
        p = InStr(1, RArrayU, MID(str,i,1), 0)
        d = 1
      EndIf
      If p <> 0 Then
        result = result + arr(d)(p-1)
      Else
        result = result + MID(str,i,1) 'если не русская буква, то берем исходную
      EndIf
    Next i
    transToLat = result
End Function

В меню "Сервис" выберите Макросы —> Управление макросами —> LibreOffice Basic, в открывшимся окне нажмите "Управление..." , в новом окне выделите ваш документ и нажмите "Создать..." , будет создан новый модуль Module1, жмите OK, а затем "Правка".
Откроется редактор макросов, вставляете скопированный код.
В Calc пользуетесь новой функцией =TRANSTOLAT() как обычно.

Yakov

Цитата: ForumOOo (бот) от 10 марта 2015, 12:04вопрос - как это - самому назначить? я в макросах совсем не разбираюсь......
Меню
Вид - Панели инструментов - Настройка - панели инструментов (вибираем нужную панель)  - Кнопка "Добавить"
В открывшемся окне в категории выбираем "Макросы OOo" ->  Мои макросы  ->  oootranslite -> fnctranslite
затем в правом окне OpenDialog и давим кнопку Добавить
Всё!
На панели инструментов появилась кнопка OpenDialog
Теперь можно кнопку проверить и назначить ей значок

RAFAEL

Всем огромная благодарность за помощь.
У меня все получилось! :beer:

Все прекрасно перекодирует из кириллицы в латиницу! Я счастлив!  :D

Rafael