Как создать собственный словарь для OpenOffice.org/LibreOffice

Материал из Forumooo wiki

Перейти к: навигация, поиск


Как создать собственный словарь для OpenOffice.org/LibreOffice

Для создания словаря понадобится:

Note.png Пользовательский словарь LibreOffice/OpenOffice находится в профиле пользователя, каталог wordbook, файл Standard.dic.



Перевод документации по Hunspell доступен по адресу: http://mozilla-russia.org/projects/dictionary/hunspell.html


Приступим к сборке.


LC_ALL='C' sort input.txt >sorted.txt

LC_ALL='C' ./affixcompress sorted.txt 250


Теперь надо в начале аффикс-файла указать служебную информацию о кодировке и типе аффикс-файла

SET UTF-8
FLAG num
my_ru-dict.dic
my_ru-dict.aff
hunspell -d my_ru-dict

и печатаем слова, которые должны быть в словаре. Если Hunspell их распознал, то словарь работает!


NOSPLITSUGS
MAXNGRAMSUGS 4


TRY абвгдеёжз.....эюя'

необходимо их расположить в последовательности от наиболее часто употребляемой к менее употребляемой


Расширение представляет собой zip - архив. Создадим архив my_ru-dict.zip c нашими файлами:

my_ru-dict.dic
my_ru-dict.aff

Создадим каталог в архиве:

META-INF

В каталоге создадим файл

manifest.xml

следующего содержания:

<manifest:manifest>
 <manifest:file-entry manifest:media-type="application/vnd.sun.star.configuration-data" manifest:full-path="Dictionaries.xcu"/>
</manifest:manifest>

В корневом каталоге архива создаём ещё файл


Dictionaries.xcu


следующего содержания:


<?xml version="1.0" encoding="UTF-8"?>
<oor:component-data xmlns:oor="http://openoffice.org/2001/registry" xmlns:xs="http://www.w3.org/2001/XMLSchema" oor:name="Linguistic" oor:package="org.openoffice.Office">
<node oor:name="ServiceManager">
   <node oor:name="Dictionaries">
       <node oor:name="HunSpellDic_ru_RU-my_ru-dict" oor:op="fuse">
           <prop oor:name="Locations" oor:type="oor:string-list">
               <value>%origin%/my_ru-dict.aff %origin%/my_ru-dict.dic</value>
           </prop>
           <prop oor:name="Format" oor:type="xs:string">
               <value>DICT_SPELL</value>
           </prop>
           <prop oor:name="Locales" oor:type="oor:string-list">
               <value>ru-RU</value>
           </prop>
       </node>
   </node>
</node>  
</oor:component-data>
Warning.png Обратите внимание! Должна быть уникальной строка

<node oor:name="HunSpellDic_ru_RU-my_ru-dict" oor:op="fuse"> имя HunSpellDic_ru_RU-my_ru-dict не должно повторяться в других словарях

В корневом каталоге архива создаём и ещё файл

  description.xml

Это описание для менеджера расширений, где указывается особенности установки словаря в LibreOffice/OpenOffice.

Содержимое файла:


<?xml version="1.0" encoding="UTF-8"?>
<description xmlns="http://openoffice.org/extensions/description/2006" xmlns:d="http://openoffice.org/extensions/description/2006"  xmlns:xlink="http://www.w3.org/1999/xlink">
   <identifier value="org.openoffice.ro.dictionaries.ru-my_ru-dict" />
   <version value="0.0.1" />
   <dependencies>
       <OpenOffice.org-minimal-version value="3.0" d:name="Russian Dictionaries for OpenOffice.org 3.0 and LibreOffice"/>
   </dependencies>
    <display-name>
     <name lang="ru">Словарь русского языка для OpenOffice.org 3.0 и LibreOffice</name>
     <name lang="en">Russian Dictionaries for OpenOffice.org 3.0 and LibreOffice</name>
   </display-name>
</description>


Warning.png Обратите внимание! Должна быть уникальной строка

<identifier value="org.openoffice.ro.dictionaries.ru-my_ru-dict" /> имя ru-my_ru-dict не должно повторяться в других словарях


my_ru-dict.oxt

Для этого в файл description.xml необходимо добавить следующие строки:

<registration>
  <simple-license  accept-by="admin" default-license-id="ID0" suppress-on-update="true" >
     <license-text xlink:href="info.txt" lang="en" license-id="ID0" />
  </simple-license>
</registration>

При этом в файле info.txt должен находиться выводимый текст.

Для этого в файл description.xml необходимо добавить следующие строки:

<extension-description>
   <src xlink:href="info_en.txt" lang="en" />
   <src xlink:href="info_ru.txt" lang="ru" />
</extension-description>

Необходимая информация (обычно это информация об авторах словаря и условиях его распространения) должна находиться в файлах: info_en.txt - на английском языке info_ru.txt - на русском языке

Личные инструменты
Пространства имён
Варианты
Действия
Компоненты
Общие вопросы
Совместимость
Навигация
Инструменты