I've got a client with about 20% of visits coming from Spanish-speaking language sets. Should I allow for translation or is this something that can be done automatically?
Automatic translation should not be considered as an option. Too much will go wrong. It is possible to automate part of the translation work, of course; translation agencies do it all the time. The crucial question is: how much does it cost to maintain the site in two (or more) languages? If the Spanish version is not maintained synchronously with the English site, it was a mistake to create it. So you need to consider the organizational work and running costs. Plus of course the initial cost.
For a business decision, some estimate is needed about the expected impact of the translated site. How many prospective customers would prefer Spanish to English (when visiting the site) so much that it affects their behavior (willingness to buy, for example)?
I wouldn't recommend any kind of automatic translation, the quality is too bad. Even a cheap human-translation is risky from the UX perspective, if something is not properly translated people are not going to get it.
Many companies use students of non-linguistic courses (whatever they find) to do the translations, getting a very low quality result. Some big websites got translated by their communities but I am not that sure that that always work, I remember reading very weird things on the initial Facebook Spanish translation (I don't know what process they used to improve the quality with the time.)
Bad translations also affect conversion rates, with potential big impact on, for example, newsletters.
If you can't afford a good translation, then better do not translate it.
I have worked on a lot of very multi-lingual sites (millions of users, etc.), and one thing I can tell you is that supporting the language of a country will drastically improve your traffic from that country. Especially countries that are linguistically isolated like France or Russia or Spain.
If you already have 20% Spanish traffic and you're not offering the site in Spanish, that should jump to the top of your priority list. When you launch the Spanish version you will see those numbers skyrocket. You might be ignoring your next big market if you don't.
Automatic translation is fairly unprofessional quality-wise, but for blogs and stuff you can get away with it you let the user choose. Having a "translate this via Google" button is a possibility.
I developed a bi-lingual, Microsoft Access desktop application where depending on the value of the UI_Language in the app control table, all the screen captions, messages and values selected by the user can be in English or Spanish. All applicable tables have English and Spanish descriptions. Each tables primary key, the ID AUTONUMBER column, is used in the programming logic. so as to not create any dependence on hard-coded values which could be language-specific. Before each form or report is loaded for execution, the language-specific captions are pre-loaded, therefore not requiring two versions for each form. This also makes for easier source code maintenance and modifications.