Better localization for filenames on Windows, OS X and Linux

If you have a localized application, at some stage you’ll discover that you need to localize filenames - for example if you have a set of template files. This is quite a tricky problem because it’s very hard to maintain a list of localized files and you can’t use diff tools for comparing them because they have different names. It’s a good idea to keep the filenames not localized but to “localize” them on-the-fly - only when you show them to the user.