I am using t() function in modules and templates. But when I need to correct the original English text, I find that I have two rows in the database (I manage it through i18n translating interface manager). One is the original text and the other the corrected one. I delete the old one and translate the new one. Is this the standard procedure? Could there be a better way of translating, for example with a module based on numerical ID or something to avoid duplicate or obsolete strings?

3 Answers 3


I think there is not a better way, because all those strings are stored/returned in the database as the code is being read out.

I think there is no way to know if they are actually exists in code to be used or not.


Thanks for your reply. I find the method very strange, but in any case an ID method would be rather difficult to handle. Maybe a mixed approach - ID with English string, so you do not change the ID but the string is changed instead. I remember doing something similar in a custom translation manager for a proprietary E-learning platform and it was very easy to translate, including a system to automatically show translation pending strings both in the database and in the pages themselves (graphically). But it was all in raw PHP, nothing to do with Drupal.


Well, I remind that we entered the strings via admin first, and then with the returned ID we wrote the code. In that way it is better to manage, and you can add a keyword to the parameters of the code in order to remember which string the ID refers to.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.