Please locate source files from /var/www/oddb.org/ext/fulltext/data/dicts/{german|french}/xxx inte following locations.  
And check file permission.
Please implement command for these dictionary creation methods.
ODBA.storage.remove_dictionary('german')
ODBA.storage.remove_dictionary('french')
ODBA.storage.generate_dictionary('german')
ODBA.storage.generate_dictionary('french')
see methods.
ODBA::Storage#remove_dictionary(language) ODBA::Storage#generate_dictionary(language, data_path='/usr/share/postgresql/tsearch_data/', file='fulltext') ODBA::Storage#create_dictionary_map(language)
In oddb.org, Please run this command via bin/admin.
ch.oddb> generate_dictionaries
Or please create dictionaries with SQL, directly. like this.
z.B. default_german
# load extension CREATE EXTENSION tsearch2; # add permission GRANT ALL ON pg_ts_config to USER_NAME; GRANT ALL ON pg_ts_config_map to USER_NAME; GRANT ALL ON pg_ts_dict to USER_NAME; GRANT ALL ON pg_ts_parser to USER_NAME; # create configuration CREATE TEXT SEARCH CONFIGURATION public.default_german ( COPY = pg_catalog.german ); # create ispell dictionary (with above source files) CREATE TEXT SEARCH DICTIONARY german_ispell ( TEMPLATE = ispell, DictFile = german_fulltext, AffFile = german_fulltext, StopWords = german_fulltext ); # setup tokens with ispell and stem dictionaries. ALTER TEXT SEARCH CONFIGURATION default_german ALTER MAPPING FOR asciiword, asciihword, hword_asciipart, word, hword, hword_part, hword_numpart, numword, numhword WITH german_ispell, german_stem; # setup some tokens with simple dictionary. ALTER TEXT SEARCH CONFIGURATION default_german ALTER MAPPING FOR host, file, int, uint, version WITH simple; # drop some tokens from default setting ALTER TEXT SEARCH CONFIGURATION default_german DROP MAPPING FOR email, url, url_path, sfloat, float;
Then please make sure dictionary configuration with ts_debug() like this.
db=# select * from ts_debug('default_german', 'En Güte zu Hause! Guten Appetit in die Schule');
   alias   |    description    |  token  |        dictionaries         |  dictionary   |     lexemes      
-----------+-------------------+---------+-----------------------------+---------------+------------------
 asciiword | Word, all ASCII   | En      | {german_ispell,german_stem} | german_stem   | {en}
 blank     | Space symbols     |         | {}                          |               | 
 word      | Word, all letters | Güte    | {german_ispell,german_stem} | german_stem   | {gut}
 blank     | Space symbols     |         | {}                          |               | 
 asciiword | Word, all ASCII   | zu      | {german_ispell,german_stem} | german_ispell | {}
 blank     | Space symbols     |         | {}                          |               | 
 asciiword | Word, all ASCII   | Hause   | {german_ispell,german_stem} | german_ispell | {hausen,hau,sen}
 blank     | Space symbols     | !       | {}                          |               | 
 asciiword | Word, all ASCII   | Guten   | {german_ispell,german_stem} | german_ispell | {gut}
 blank     | Space symbols     |         | {}                          |               | 
 asciiword | Word, all ASCII   | Appetit | {german_ispell,german_stem} | german_ispell | {appetit}
 blank     | Space symbols     |         | {}                          |               | 
 asciiword | Word, all ASCII   | in      | {german_ispell,german_stem} | german_ispell | {}
 blank     | Space symbols     |         | {}                          |               | 
 asciiword | Word, all ASCII   | die     | {german_ispell,german_stem} | german_ispell | {}
 blank     | Space symbols     |         | {}                          |               | 
 asciiword | Word, all ASCII   | Schule  | {german_ispell,german_stem} | german_ispell | {schule,schulen}
(17 rows)