libreofficehunspelllibreoffice-basiclibreoffice-writer

Adding custom Dict to spell check extension of Libre office


I am trying to create and distribute a custom dictionary along with the primary one. I tried the steps mentioned here...

https://forum.openoffice.org/en/forum/viewtopic.php?f=7&t=33297

A user franx has provided step-by-step guide of ho to create a custom dictionary. But my question is how do I include both, primary and custom dict in the same extension. The custom dict should be installed in AppData path. For e.g.

C:\Users\Administrator\AppData\Roaming\LibreOffice\4\user\wordbook

Is this possible using .oxt file?


Solution

  • The "Dictionaries" sub-node of "ServiceManager" can have multiple entries. If you already have one "HunSpellDic_mr_IN" then you can create one more "HunSpellDic_mr_IN_private" like this...

    <?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_mr_IN" oor:op="fuse">
                <prop oor:name="Locations" oor:type="oor:string-list">
                    <value>%origin%/dicts/mr_IN.aff %origin%/dicts/mr_IN.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>mr-IN</value>
                </prop>
            </node>
    
            <node oor:name="HunSpellDic_mr_IN_private" oor:op="fuse">
                <prop oor:name="Locations" oor:type="oor:string-list">
                    <value>%origin%/dicts/mr_IN_private.aff %origin%/dicts/mr_IN_private.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>mr-IN</value>
                </prop>
            </node>
    

    The actual location where the files like "*_private.dic" are stored is not known. The words from private files are still considered correct and hence the location does not matter. This will help you to group words into different categories.