Here are notes about internationalization support in Natron. To generate the translatable string files: lupdate -I. Engine -ts Engine/Engine.ts lupdate -I. Gui -ts Gui/Gui.ts Any error signaled by lupdate must be fixed. Sometimes, especially in template member functions, lupdate cannot find the right context. In this case, it must be specified manually. For example, inside the class ProjectGui, _gui->getApp()->updateProjectLoadStatus( tr("Restoring layout") ); has to be rewritten as: _gui->getApp()->updateProjectLoadStatus( QObject::tr("Restoring layout", "ProjectGui") ); Similarly, the context has to be specified in functions that are not members of a QObject class, eg in functions defined outside of classes.