יובל האגר wrote:
Forgive me if this is a dumb question that have been discussed before..
How come Drupal does not use the native gettext 'mo' format (binary po) for strings translation? Why is the process of copying strings from the 'po' into the database is needed? Is it meaningful in terms of performance?
1. We should not except the PHP version of Drupal users to have the gettext extension loaded, to build on that. Gettext is not a common extension installed with PHP as far as we heard/imagine (no hard evidence though). 2. Anyway, actually noone implemented a gettext extension based locale module, so we can benchmark the performance against the current implementation. (It could be slower or quicker, we don't know). But see the previous point. 3. Finally noone come around to implement a MO reader and handler in PHP (not using the gettext extension) and proved it that it is better then using the database. (Gerhard has some itch to scratch here if I understand it right, so it might happen. No hard date on it though, and probably as a contrib module first).
Taking this a bit further, if 'mo' files were used *instead* of the database, this problem could be easily solved by just letting the web interface put strings in the database which will have precedence over the 'mo' strings.
We would not really need the database then. If we have mo reader code, mo writing is not far away. We could use a mo file for user modified strings. Summary: yes, this is a possibility, noone explored it yet, and proved it is superior to what we do now. Gabor