| one language | several languages |
| Internally hard coded | Code protected only by offering an excerpt of strings to be translated |
| External DLL file | Main code fully protected no extra work required. Language strings protected from accidental changes. |
| External strings file | Main code fully protected no extra work required |
| one language | several languages | |
| Internally hard coded | Upkeep must be replicated on every language mb/mbx | One upkeep |
| External DLL file | One upkeep | One upkeep |
| External strings file | One upkeep | One upkeep |
| one language | several languages | |
| Internally hard coded | New compilation(s) of corrected code for the concerned executable(s) | New compilation of corrected code of the unique executable |
| External DLL file | Corrections (DLL compiler) in the concerned language file(s) | Corrections (DLL compiler) in the language file |
| External strings file | Corrections (text editor) in the concerned language file(s) | Corrections (text editor) in the language file |
| one language | several languages | |
| Internally hard coded | If the author wants to control his code, he must create a new executable for the language. | id... , he must create a new version of the executable including the new language. |
| External DLL file | Addition by end user himself. New language file may be offered for general distribution without returning to the author. | Addition by end user himself. If translation is sent to author, he can consolidate the language file for general distribution. |
| External strings file | Addition by end user himself. New language file may be offered for general distribution without returning to the author. | Addition by end user himself. If translation is sent to author, he can consolidate the language file for general distribution. |
| one language | several languages | |
| Internally hard coded | Reference size for executable: code + strings for one language. | Maximum for executable: code + strings for all languages |
| External DLL file | Minimum for executable + as many single language DLLs as there are languages. | Near minimum executable (mini + language switching code) + as many single language DLLs as desired. |
| External strings file | Minimum for executable + as many single language text files as there are languages. | Near minimum executable (mini + language switching code) + one string external (~ single language file * ALL available languages) |
| one language | several languages | |
| Internally hard coded | Fastest solution | Near to next fastest, requires selecting language for each string handling |
| External DLL file | No change in speed will most probably perceived. | Could be slightly slower because reading a bigger DLL, but no impact is expected |
| External strings file | Slower if strings are read as required only | Slowest if strings are read as required only because the added choice of language |
| one language | several languages | |
| Internally hard coded | close application and change executable | on the fly within the loaded application |
| External DLL file | a/ if one external only recognized by application, close application and physically switch external. b/if several external files recognized by application, on the fly within the loaded application | on the fly within the loaded application |
| External strings file | a/ if one external only recognized by application, close application and physically switch external. b/if several external files recognized by application, on the fly within the loaded application | on the fly within the loaded application |