A lot depends on what you want to use screenshots for.
If they contain key information to be followed by users as an integral part of a procedure, then a), b) or
Steve's suggestion is needed. We have used numbered callouts and legends (which are easy to translate) and it is probably the easiest/fastest of these 3 options, but I think there is still some dissonance for users of other languages. Translated overlays or screenshots of the localized screen are a great option for users, but might be work intensive (I work on some projects with 34 translations
).
Alternatively, if screenshots are simply indicative of a screen layout to give users something familiar to what they see on their own screen, then you could take some steps to make screenshots independent of language. If you have Snagit, you can use the
Simplify function to mask out text. Here is a quick example of the Photoshop
New document dialog box. This is a one-click action in Snagit with a bit of simple tweaking. You can use this with the numbered callouts method to create a screenshot that can be used in any language.
Simplified1.png
This is a method that Microsoft used to call "screen portraits" a long time ago, but unfortunately I've lost the link to that reference. We use this method all the time now. We even use vector graphics to create screenshots from scratch, using a library of shapes for buttons and windows that we can quickly assemble and drop in where needed. We use Illustrator, but Inkscape works just as well,
jjw (We don't use text layers as you suggest, but I think this is possible.) Creating our own vector screenshots takes some effort up front, but the ongoing maintenance is much easier. They are very easy to update if the screen design changes. Vectors also display very nicely in all formats.
If none of these methods is suitable, then I think using fewer screenshots is still a valid option. If your text is well written and well organized, then a text-heavy, unlocalized screenshot might just be a distraction.