source: smplayer/trunk/src/translator.cpp

Last change on this file was 188, checked in by Silvan Scherrer, 8 years ago

SMPlayer: update trunk to version 17.1.0

  • Property svn:eol-style set to LF
File size: 2.5 KB
Line 
1/* smplayer, GUI front-end for mplayer.
2 Copyright (C) 2006-2017 Ricardo Villalba <rvm@users.sourceforge.net>
3
4 This program is free software; you can redistribute it and/or modify
5 it under the terms of the GNU General Public License as published by
6 the Free Software Foundation; either version 2 of the License, or
7 (at your option) any later version.
8
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 GNU General Public License for more details.
13
14 You should have received a copy of the GNU General Public License
15 along with this program; if not, write to the Free Software
16 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
17*/
18
19#include "translator.h"
20#include "paths.h"
21#include <QTranslator>
22#include <QLocale>
23#include <QApplication>
24
25Translator::Translator() {
26 qApp->installTranslator( &app_trans );
27 qApp->installTranslator( &qt_trans );
28 #if QT_VERSION >= 0x050000
29 qApp->installTranslator( &qtbase_trans );
30 #endif
31}
32
33Translator::~Translator() {
34}
35
36bool Translator::loadCatalog(QTranslator & t, QString name, QString locale, QString dir) {
37 QString s = name + "_" + locale; //.toLower();
38 bool r = t.load(s, dir);
39 if (r)
40 qDebug("Translator::loadCatalog: successfully loaded %s from %s", s.toUtf8().data(), dir.toUtf8().data());
41 else
42 qDebug("Translator::loadCatalog: can't load %s from %s", s.toUtf8().data(), dir.toUtf8().data());
43 return r;
44}
45
46void Translator::load(QString locale) {
47 if (locale.isEmpty()) {
48 locale = QLocale::system().name();
49 }
50
51 QString trans_path = Paths::translationPath();
52 QString qt_trans_path = Paths::qtTranslationPath();
53
54#if defined(Q_OS_WIN) || defined(Q_OS_OS2)
55 // In windows and OS2 try to load the qt translation from the app path, as
56 // most users won't have Qt installed.
57 loadCatalog(qt_trans, "qt", locale, trans_path );
58 #if QT_VERSION >= 0x050000
59 loadCatalog(qtbase_trans, "qtbase", locale, trans_path);
60 #endif
61#else
62 // In linux try to load it first from app path (in case there's an updated
63 // translation), if it fails it will try then from the Qt path.
64 if (! loadCatalog(qt_trans, "qt", locale, trans_path ) ) {
65 loadCatalog(qt_trans, "qt", locale, qt_trans_path);
66 }
67 #if QT_VERSION >= 0x050000
68 if (! loadCatalog(qtbase_trans, "qtbase", locale, trans_path ) ) {
69 loadCatalog(qtbase_trans, "qtbase", locale, qt_trans_path);
70 }
71 #endif
72#endif
73 loadCatalog(app_trans, "smplayer", locale, trans_path);
74}
Note: See TracBrowser for help on using the repository browser.