Сразу перейдем к исходникам Qt 4.8.1 и рассмотрим класс QTranslator. Зачем это надо? Допустим вы написали приложение и вдруг осознали,ч то для мирового сообщества это надо делать на английском например, а для родины на русском.
А можно делать несколько ts файлов для разных частей программы? Можно, потом еще надо сливать их вместе утилитой lconvert.exe из поставки Qt.

class Q_CORE_EXPORT QTranslator : public QObject
{
Q_OBJECT
public:
explicit QTranslator(QObject *parent = 0);
#ifdef QT3_SUPPORT
QT3_SUPPORT_CONSTRUCTOR QTranslator(QObject * parent, const char * name);
#endif
~QTranslator();
// ### Qt 5: Merge (with "int n = -1")
virtual QString translate(const char *context, const char *sourceText,
const char *disambiguation = 0) const;
QString translate(const char *context, const char *sourceText, const char *disambiguation,
int n) const;
virtual bool isEmpty() const;
bool load(const QString & filename,
const QString & directory = QString(),
const QString & search_delimiters = QString(),
const QString & suffix = QString());
bool load(const QLocale & locale,
const QString & filename,
const QString & prefix = QString(),
const QString & directory = QString(),
const QString & suffix = QString());
bool load(const uchar *data, int len);
#ifdef QT3_SUPPORT
QT3_SUPPORT QString find(const char *context, const char *sourceText, const char * comment = 0) const
{ return translate(context, sourceText, comment); }
#endif
private:
Q_DISABLE_COPY(QTranslator)
Q_DECLARE_PRIVATE(QTranslator)
};