Load it all on start up and put it into a hash. There's not point for opening/closing files during runtime each time you need a string (besides the fact that it's horribly slow).
A hash like that doesn't take much memory. If we have 10000 words (which is REALLY a lot) with an average word length of 10 letters (which is a lot as well), that's only 100 kB of memory. That's nothing. So we will preload all strings.
I suggest you check out how it's been done in aprilui. Check out Dataset.cpp. It basically loads all files from a specific folder location. If there's a 2 letter country code specified, it loads that subdirectory.

EDIT: Stupid Imageshack resized it. D: But you can still recognize the directory structure.