1 /* This file is part of Clementine. 2 Copyright 2010, David Sansome <davidsansome@gmail.com> 3 Copyright 2014, Krzysztof Sobiecki <sobkas@gmail.com> 4 Copyright 2014, John Maguire <john.maguire@gmail.com> 5 6 Clementine is free software: you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation, either version 3 of the License, or 9 (at your option) any later version. 10 11 Clementine is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with Clementine. If not, see <http://www.gnu.org/licenses/>. 18 */ 19 20 #ifndef CORE_POTRANSLATOR_H_ 21 #define CORE_POTRANSLATOR_H_ 22 23 #include <QTranslator> 24 25 // We convert from .po files to .qm files, which loses context information. 26 // This translator tries loading strings with an empty context if it can't 27 // find any others. 28 29 class PoTranslator : public QTranslator { 30 public: 31 QString translate(const char* context, const char* source_text, 32 const char* disambiguation = 0, int n = -1) const { 33 QString ret = QTranslator::translate(context, source_text, disambiguation); 34 if (!ret.isEmpty()) return ret; 35 return QTranslator::translate(nullptr, source_text, disambiguation); 36 } 37 }; 38 39 #endif // CORE_POTRANSLATOR_H_ 40