I have an idea for how to make translating programs in Linux a lot easier. It won't solve all the woes, but it could provide a decent amount of assistance. Freedesktop.org provides standards for Linux programs to use so that things are more cohesive. My idea is a freedesktop.org definition on how some very specific menus and buttons should choose verbiage. For example, The File, Edit, View, Tools, Help menus should always be named just that. The OK button should always read OK, and the cancel button should always be cancel. These are already unwritten standards, but it would help if we defined them specifically.
In a translatable program, the text within the program is not hard coded into the binary package, but is punted off to a translation file. So your program may look for ~/.myprogram/en.cfg to find out what the different fields should read in English and ~/.myprogram/sp.cfg for Spanish.
With my suggestion implemented, programs could first look in to a system wide file, such as /etc/en.cfg, first. If it is not able to find the translation there, then it would drop back to a secondary, program specific file. This would take care of translating a good chunk of your program, and it would also provide with an identical translation across all programs that use it.Another advantage is that you could change the verbiage of all programs in one easy edit. If you didn't want the File menu to say File, you could edit this one file, and then every program that supports the global translation file would be changed. It would be very simple.So that's my idea that will probably never be implemented. Let me know what you think, or if you know a way to formally submit this idea.