#**************************************************************
#  
#  Licensed to the Apache Software Foundation (ASF) under one
#  or more contributor license agreements.  See the NOTICE file
#  distributed with this work for additional information
#  regarding copyright ownership.  The ASF licenses this file
#  to you under the Apache License, Version 2.0 (the
#  "License"); you may not use this file except in compliance
#  with the License.  You may obtain a copy of the License at
#  
#    http://www.apache.org/licenses/LICENSE-2.0
#  
#  Unless required by applicable law or agreed to in writing,
#  software distributed under the License is distributed on an
#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
#  KIND, either express or implied.  See the License for the
#  specific language governing permissions and limitations
#  under the License.
#  
#**************************************************************

# This file defines the list of extensions that are preregistered or bundled with the pack sets.
# At first office start the installation of extensions is completed.

# file:// URLs are interpreted relative to the solver/340/<platform>/bin/ directory to which 
# built extensions are delivered by default.

# http:// URLs can be prefixed by an MD5 checksum.  If that is present then it is an error if
# the file pointed to by the URL has a different MD5 checksum.
# When the downloaded file name is not the last part of the URL (everything after the final /) then
# the name has to be specified after the URL enclosed in double quotes.


# Some extensions that are installed indepently of the language.

# the presenter console extension
[ language=all && ENABLE_PRESENTER_SCREEN=YES ]
    file://presenter/presenter-screen.oxt

# the presentation minimizer
[ language=all && ENABLE_MINIMIZER=YES ]
    file://minimizer/presentation-minimizer.oxt



# English dictionary
[ language=en.* || language=de || language=it ]
    b7ce02d25eb302e5b23572cdccaea461 http://numbertext.org/tmp/dict-en.oxt
    
# English (USA, en_US) dictionary
[ language==nl || language==ru ]
    e2eab80772ab1aa09716954219351a80 http://sourceforge.net/projects/aoo-extensions/files/1470/1/en_US.oxt/download "en_US.oxt"

# German dictionary.
[ language=de || language=de_DE || language=nl || language=ru ]
    eb3d3397b8034c7fce6e0d78daf914ca http://sourceforge.net/projects/aoo-extensions/files/1075/10/dict-de_DE-frami_2011-06-03.oxt/download "dict-de_DE-frami_2011-06-03.oxt"

# Dutch dictionary.
[ language=nl ]
    5c0de383ef649cffefc128cfb36b4d43 http://sourceforge.net/projects/aoo-extensions/files/1456/6/nl-dict-v2.00g.oxt/download "nl-dict-v2.00g.oxt"

# French dictionary.
[ language=fr || language=nl || language=de || language=de_DE ]
    47ca39e385b02839c24a5d953495cb98 http://sourceforge.net/projects/aoo-extensions/files/3554/5/ooo-dictionnaire-fr-moderne-v4.2.oxt/download "ooo-dictionnaire-fr-moderne-v4.2.oxt"

# Italian dictionary.
[ language=it || language=de || language=de_DE ]
    e7ad2666a727b594948cb672a31ba22d http://sourceforge.net/projects/aoo-extensions/files/1204/11/dict-it.oxt/download "dict-it.oxt"

# Spanish dictionary.
[ language=es ]
    28776430bb77547fd70cf6db504bda63 http://sourceforge.net/projects/aoo-extensions/files/1657/2/es_ES.oxt/download "es_ES.oxt"

# Danish dictionary.
[ language=da ]
    b38cba04b6513dd42b031199d617cce6 http://sourceforge.net/projects/aoo-extensions/files/1388/12/DanskeSynonymer.oxt/download "DanskeSynonymer.oxt"
    6ee1e24fb17e44577d8e3200f3e44adc http://sourceforge.net/projects/aoo-extensions/files/1429/6/dict-da-current.oxt/download "dict-da-current.oxt"

# Romanian dictionary.
[ language=ro ]
    b05941b975afc0321df0cd48a4d295c8 http://sourceforge.net/projects/aoo-extensions/files/1392/8/dict-ro.1.5.oxt/download "dict-ro.1.5.oxt"

# Russian dictionary.
[ language=ru ]
    a63512bc487d7378bbe2e44f59d5ef45 http://sourceforge.net/projects/aoo-extensions/files/3233/2/dict_ru_RU-0.3.6.oxt/download "dict_ru_RU-0.3.6.oxt"

# Slovenian dictionary.
[ language=sl ]
    cfc3e4da22a3bb9f3f5fa7ae443f6407 http://sourceforge.net/projects/aoo-extensions/files/3280/5/pack-sl.oxt "pack-sl.oxt"

# German (Austria) dictionary.
[ language=de || language=de_AT || language=de_DE ]
    76654bcb6ba11bb265111ef1fe3c6007 http://sourceforge.net/projects/aoo-extensions/files/1697/7/dict-de_AT-frami_2011-06-03.oxt/download "dict-de_AT-frami_2011-06-03.oxt"

# German (Switzerland) dictionary.
[ language=de || language=de_CH || language=de_DE ]
    7c9f63dcd9de3e4ec6ddbde160a0d793 http://sourceforge.net/projects/aoo-extensions/files/1699/7/dict-de_CH-frami_2011-06-03.oxt/download "dict-de_CH-frami_2011-06-03.oxt"

# Khmer dictionary.
[ language=km ]
    a22266cfa40fb23a79be27a239321a3f http://sourceforge.net/projects/aoo-extensions/files/1009/1/km_spellchecker_OOo30_V_1.0.2.oxt/download "km_spellchecker_OOo30_V_1.0.2.oxt"

# Scottish Gaelic.
[ language=gd ]
    d645b36c5d4fc52c18ac180453b48b5c http://sourceforge.net/projects/aoo-extensions/files/4587/7/hunspell-gd-2.5.oxt/download "hunspell-gd-2.5.oxt"

# Basque.
[ language=eu ]
    f408bb4a333bea2aec86bffaa4ffa229 http://sourceforge.net/projects/aoo-extensions/files/1383/2/xuxen_4_OOo3.oxt/download "xuxen_4_OOo3.oxt"

# Hungarian.
[ language=hu ]
    76345f925e34fef2d29bade4f29108e9 http://sourceforge.net/projects/aoo-extensions/files/3423/4/lightproof-hu_HU-1.3.oxt/download "lightproof-hu_HU-1.3.oxt"
    d320e43e815c2dfd599dbfb7cd0e41fb http://sourceforge.net/projects/aoo-extensions/files/1283/9/dict-hu.oxt/download "dict-hu.oxt"

# Asturian.
[ language=ast ]
    ed5702f25c8f5e36f97cafc606470c42 http://sourceforge.net/projects/aoo-extensions/files/3932/1/asturianu.oxt/download "asturianu.oxt"

# Norwegian.
[ language=nb ]
    18bbb57caee07d276ef21a0e88859664 http://sourceforge.net/projects/aoo-extensions/files/5955/0/dict-no-ooo330.oxt/download "dict-no-ooo330.oxt"

# Swedish.
[ language=sv ]
    249b3bd3d9de4928ab8c809623dc9c4f http://sourceforge.net/projects/aoo-extensions/files/5959/0/dict-sv.oxt/download "dict-sv.oxt"

# Korean.
[ language=ko ]
    c20c155c47174c1b0ec0a53618044ac3 http://sourceforge.net/projects/aoo-extensions/files/5968/0/Korean_spell-checker-0.5.6_OOo.oxt/download "Korean_spell-checker-0.5.6_OOo.oxt"

# Polish.
[ language=pl ]
    a69f9221864b1360e38ff3f0b0cc9222 http://sourceforge.net/projects/aoo-extensions/files/806/4/pl-dict.oxt/download "pl-dict.oxt"
