1 Do not bundle translations with a binary,
2 package them to system dir and use %lang tagging in package.
5 qWarning() << "language: " << language;
6 qWarning() << "qtpath: " << QLibraryInfo::location(QLibraryInfo::TranslationsPath);
7 qWarning() << "apppath: " << a.applicationDirPath();
8 qWarning() << "curdir: " << QDir::currentPath();
10 TODO: add install target
11 TODO: make it configurable via cmake params.
13 Author: Elan Ruusamäe <glen@pld-linux.org>
15 --- clementine-0.5.3/src/main.cpp~ 2010-10-18 23:59:12.000000000 +0300
16 +++ clementine-0.5.3/src/main.cpp 2010-10-18 23:59:15.876170584 +0300
20 Q_INIT_RESOURCE(data);
21 - Q_INIT_RESOURCE(translations);
22 + //Q_INIT_RESOURCE(translations);
24 // Has the user forced a different language?
25 QString language = options.language();
31 LoadTranslation("qt", QLibraryInfo::location(QLibraryInfo::TranslationsPath), language);
32 + // Clementine: system path
33 + LoadTranslation("clementine", QLibraryInfo::location(QLibraryInfo::TranslationsPath), language);
35 LoadTranslation("clementine", ":/translations", language);
36 + // Clementine: application path
37 LoadTranslation("clementine", a.applicationDirPath(), language);
38 + // Clementine: current dir
39 LoadTranslation("clementine", QDir::currentPath(), language);
42 --- clementine-0.5.3/src/ui/behavioursettingspage.cpp~ 2010-10-19 11:24:36.488320486 +0300
43 +++ clementine-0.5.3/src/ui/behavioursettingspage.cpp 2010-10-19 11:24:40.594127569 +0300
45 #include "playlist/playlist.h"
48 +#include <QLibraryInfo>
51 BehaviourSettingsPage::BehaviourSettingsPage(SettingsDialog* dialog)
54 // Populate the language combo box. We do this by looking at all the
55 // compiled in translations.
56 - QDir dir(":/translations/");
57 - QStringList codes(dir.entryList(QStringList() << "*.qm"));
58 - QRegExp lang_re("^clementine_(.*).qm$");
59 - foreach (const QString& filename, codes) {
60 - // The regex captures the "ru" from "clementine_ru.qm"
61 - if (!lang_re.exactMatch(filename))
62 +// QDir dir(":/translations/");
63 + QDir localeDir(QLibraryInfo::location(QLibraryInfo::TranslationsPath));
64 + QStringList dirList = localeDir.entryList(QDir::Dirs | QDir::NoDotAndDotDot, QDir::Name);
65 + foreach (const QString& code, dirList) {
66 + if (!QFile::exists(QLibraryInfo::location(QLibraryInfo::TranslationsPath) + "/" + code + "/LC_MESSAGES/clementine.qm")) {
70 - QString code = lang_re.cap(1);
71 +// QStringList codes(dir.entryList(QStringList() << "*.qm"));
72 +// QRegExp lang_re("^clementine_(.*).qm$");
73 +// foreach (const QString& filename, codes) {
74 +// // The regex captures the "ru" from "clementine_ru.qm"
75 +// if (!lang_re.exactMatch(filename))
78 +// QString code = lang_re.cap(1);
79 QString name = QString("%1 (%2)").arg(
80 QLocale::languageToString(QLocale(code).language()), code);
82 --- clementine-0.5.3/cmake/Translations.cmake 2010-10-18 23:59:53.487509786 +0300
83 +++ clementine-0.5.3/cmake/Translations.cmake 2010-10-19 01:42:52.112825900 +0300
86 - # Generate a qrc file for the translations
87 - set(_qrc ${CMAKE_CURRENT_BINARY_DIR}/${ADD_PO_DIRECTORY}/translations.qrc)
88 - file(WRITE ${_qrc} "<RCC><qresource prefix=\"/${ADD_PO_DIRECTORY}\">")
89 - foreach(_lang ${ADD_PO_LANGUAGES})
90 - file(APPEND ${_qrc} "<file>${po_prefix}${_lang}.qm</file>")
92 - file(APPEND ${_qrc} "</qresource></RCC>")
93 - qt4_add_resources(${outfiles} ${_qrc})
95 + set(_potBasename "clementine")
96 + foreach (_lang ${ADD_PO_LANGUAGES})
97 + set(_qm_filename "clementine_${_lang}.qm")
98 + set(_qm_filepath "${CMAKE_CURRENT_BINARY_DIR}/${ADD_PO_DIRECTORY}/${_qm_filename}")
100 + install(FILES ${_qm_filepath} DESTINATION share/locale/${_lang}/LC_MESSAGES RENAME ${_potBasename}.qm)
101 + set(_gmoFiles ${_gmoFiles} ${_gmoFile})
104 + add_custom_target(translations ALL DEPENDS ${_gmoFiles})
106 +# # Generate a qrc file for the translations
107 +# set(_qrc ${CMAKE_CURRENT_BINARY_DIR}/${ADD_PO_DIRECTORY}/translations.qrc)
108 +# file(WRITE ${_qrc} "<RCC><qresource prefix=\"/${ADD_PO_DIRECTORY}\">")
109 +# foreach(_lang ${ADD_PO_LANGUAGES})
110 +# file(APPEND ${_qrc} "<file>${po_prefix}${_lang}.qm</file>")
112 +# file(APPEND ${_qrc} "</qresource></RCC>")
113 +# qt4_add_resources(${outfiles} ${_qrc})