For people who haven't yet committed to a particular localisation method:
The one program I was involved with that worked with multiple languages, we used Google Sheets (spreadsheet) which can access Google Translation using the GOOGLETRANSLATE function. Actually, now I think about it, we were using Alta Vista, but the principle was the same, just less automated.
What we then did was backcheck the translation in the reverse direction, and flag for human intervention any that didn't come back the same as they went in.
eg "
Now is the time" translates to "
Jetzt ist die Zeit", and "
Jetzt ist die Zeit" translates back to the same "
Now is the time", so it's probably a good translation.
whereas "
Hold your horses" translates to "
Ruhig Blut!", but "
Ruhig Blut!" translates back to the different "
Keep calm!", so we'd double-check that manually. Actually, if the initial customer in the language was friendly, we'd just leave it as is and supply them with a printed list of the translations we weren't sure about, and they'd usually come back the next day with their native-language-speaker suggestions which we'd immediately incorporate into the translation file and somehow get it back to them.
We were using a 16-bit BASIC (Microsoft PDS 7.1) so we couldn't store the translations in memory. Instead we had a function that we called with a phrase number that would do a random-access lookup into a file, ie in the program code it looked like
PRINT Phrase$(3779), and then we had a coding tool that would go through all the source files and add(/update) comments to all the Phrase$() calls eg
PRINT Phrase$(3779) 'Hello, World!' The same coding tool would find instances like
Phrase("Hello, World!") and lookup/add the text in/to the translation file, eg find that phrase/line 3779 in the translation file is "Hello, World!" and then update the code to
Phrase$(3779) 'Hello, World!'
In a sample of the system that I apparently made here in 2023 and/or 2021, I included a column that stores the translations as a Map, that could be used in develop systems that don't have the memory restrictions that we worked under. ie basically using a Map instead of an SQL database.
Link to sample
Google Sheet