If you need to test a user interface to look for overflow, truncation, etc., I think you will have a hard time doing that in an automated way. If you are developing the program have access to the program's source code (as opposed to being just a tester of the finished product), you have a couple of options that may make such tests unnecessary.
A preferable method would be to create your interface in a way that ensures that strings will not be truncated. For example, instead of creating a text field that is 100 pixels long, writing a (localized) string into it, and hoping that it will not overflow the text field, try using (or creating) a function that will tell you the height and length of a string (in pixels) using the currently-active language and font settings. Now, you can use this information when creating the text field to ensure that it is large enough to fit the entire string, even if new languages are added later. How exactly you would go about doing this is dependent on programming language and operating system; some systems have this sort of functionality built into the font rendering subsystem (for an example, see the BeOS's documentation of the StringWidth
function http://menlo-park.de/menlo-park/beos/BeBook/The%20Interface%20Kit/Font.html#StringWidth()).
As for checking spelling, the easiest method would be to spell-check your text before the application is built. A common way of building localized applications is to have a header that contains an array of strings for each supported language, and then accessing them in the application with something like local_strings[language_id][string_id]
. Running a spell-checker on the source code would be easier than running it on the finished application, especially when using a source code editor with a built-in spell check feature (Eclipse, for example).