As I live and work in Germany, our websites use translations all the time. We use Ruby on Rails, but from what I read gettext() seems to work similar to RoRs translation system. It won't matter if you have the translation already. Just create the file with your local texts and find some nice system to sort this file (mostly following your sites structure.)
We normally do something like this:
So this would be the first two are texts on the main page and the others are labels for the order form in the portal section. You the would get them with gettext("main.new"). Do not just make one long list or you will never find stuff again. Allow for some stuff to appear several times (like we have addresses in several forms). You could make tags for them like address.street, address.city, but don't try to avoid repetitions 100%.
It may help to have the translations in Excel sheets or similar, from where you generate the text files. This may make handling easier. We don't do this normally, a good editor is ok too.
Then comes the database, which is more complex. There are several ways to do this. Basically have separate tables for the translations like Product with ProductTranslations or just repeat fields like title_en, title_de etc.
The table approach is better if you have many languages. The fields are simpler and searching with SQL is easier. But we use Apache Solr for the textsearch, having one core per language which works pretty well, so the database is mainly for storage.
Depending on your language be prepared to encoding problems. If any possible avoid having to copy data over different systems. Worst is Windows to Linux. If necessary use the most direct way possible. We once exported MS-SQL server data to CSV and the read back into Linux/Mysql. Constant source of pain. Worked far better when we skipped the CSV part and read data directly through ODBC.