Jon Lebensold wrote:If you were doing full on translation of a site in more than 2 languages, you'd probably use on of the other file formats that Zend_Translate reads that are XML based and designed to handle multilingual content (.tmx, .xliff). These formats are also supported by translation software, so your translators and your developers can easily import something written by the translation department.
Yeah, it could work this way, but if it's the development team, the marketers, the SEO optimizers and the HTML integrators who are bringing the texts in there, there's no way you can send it to the translation department without gathering everything before. That's the opposite problem in fact. I wonder if the problem comes from our way of working with texts or if it's more of a framework issue.
Jon Lebensold wrote:Another big plus with Zend_Translate is that it degrades nicely. You could easily do a site audit and find every key you want in another language, dump it into a spreadsheet and get a translator to start working on it. It's not ideal, but certainly doable.
We thought about the site audit solution, but basically it creates a few problems too. First, manual audits are just not conceivable, we're a small company and checking the whole codebase looking for terms each time we release a project would waste way too much time.
Then there's automatic audits, but there will always be some cases where you can't find all the keys. There might be keys only needed in very particular occasions, when a very particular client logs on and do a very particular action. Even if we logged everything during the development, there's still a risk that the developer will never try a piece of code (whatever the reason) and then the translation system will never log or warn the missing key.
The solution could be to declare each needed term even if they're not used in this particular context, for example, declaring the need of a particular key before an if statement where its used. We could then log the missing key but it would require to include translation terms that are not currently needed. On the other hand, that might generate more stable cache files. I'm not really sure where I'm headed.