The mapping via item data looks ok to me. You need to use tr() for i18n. If you use static const char* , use QT_TRANSLATE_NOOP http://qt-project.org/doc/qt-5/qtglobal.html#QT_TRANSLATE_NOOP