Improved translation mechanism
authorNikolay Tischenko <niktischenko@gmail.com>
Wed, 10 Nov 2010 15:39:25 +0000 (21:39 +0600)
committerNikolay Tischenko <niktischenko@gmail.com>
Wed, 10 Nov 2010 15:39:25 +0000 (21:39 +0600)
24 files changed:
resources/someplayer_ru.ts
src/directoryview.cpp
src/directoryview.h
src/edittagsdialog.cpp
src/edittagsdialog.h
src/equalizerdialog.cpp
src/equalizerdialog.h
src/libraryform.cpp
src/libraryform.h
src/mainwindow.cpp
src/mainwindow.h
src/managelibraryform.cpp
src/managelibraryform.h
src/playerform.cpp
src/playerform.h
src/playlistdialog.cpp
src/playlistdialog.h
src/saveplaylistdialog.cpp
src/saveplaylistdialog.h
src/settingsdialog.cpp
src/settingsdialog.h
src/timerdialog.cpp
src/timerdialog.h
src/ui/mainwindow.ui

index 5ba81c0..f7e7781 100644 (file)
 <context>
     <name>MainWindow</name>
     <message>
 <context>
     <name>MainWindow</name>
     <message>
-        <location filename="../src/ui/mainwindow.ui" line="14"/>
         <source>someplayer</source>
         <source>someplayer</source>
-        <translation>someplayer</translation>
+        <translation type="obsolete">someplayer</translation>
+    </message>
+    <message>
+        <location filename="../src/ui/mainwindow.ui" line="14"/>
+        <source>SomePlayer</source>
+        <translatorcomment>SomePlayer</translatorcomment>
+        <translation>SomePlayer</translation>
     </message>
     <message>
         <location filename="../src/ui/mainwindow.ui" line="40"/>
     </message>
     <message>
         <location filename="../src/ui/mainwindow.ui" line="40"/>
         <source>0 tracks</source>
         <translation></translation>
     </message>
         <source>0 tracks</source>
         <translation></translation>
     </message>
+    <message>
+        <location filename="../src/managelibraryform.cpp" line="66"/>
+        <source>Select directory</source>
+        <translation>Выберите директорию</translation>
+    </message>
 </context>
 <context>
     <name>PlayerForm</name>
 </context>
 <context>
     <name>PlayerForm</name>
index e0c9f41..f58e459 100644 (file)
@@ -267,3 +267,7 @@ void DirectoryView::portraitMode() {
        ui->topWidget->show();
        ui->bottomWidget->show();
 }
        ui->topWidget->show();
        ui->bottomWidget->show();
 }
+
+void DirectoryView::updateTranslations() {
+       ui->retranslateUi(this);
+}
index db180ef..62cb1fb 100644 (file)
@@ -46,6 +46,7 @@ public:
        void updateGradient();
        void lanscapeMode();
        void portraitMode();
        void updateGradient();
        void lanscapeMode();
        void portraitMode();
+       void updateTranslations();
 
 signals:
        void addAndPlay(Track);
 
 signals:
        void addAndPlay(Track);
index b385270..c402d98 100644 (file)
@@ -48,3 +48,7 @@ TrackMetadata EditTagsDialog::meta() {
        _meta.setTitle(ui->titleLineEdit->text());
        return _meta;
 }
        _meta.setTitle(ui->titleLineEdit->text());
        return _meta;
 }
+
+void EditTagsDialog::updateTranslations() {
+       ui->retranslateUi(this);
+}
index a2b2b4b..a0b1da9 100644 (file)
@@ -38,6 +38,8 @@ public:
     ~EditTagsDialog();
     void setTrackMetadata(TrackMetadata meta);
     TrackMetadata meta();
     ~EditTagsDialog();
     void setTrackMetadata(TrackMetadata meta);
     TrackMetadata meta();
+public slots:
+    void updateTranslations();
 
 private:
     Ui::EditTagsDialog *ui;
 
 private:
     Ui::EditTagsDialog *ui;
index 2ba6e5a..ecdeaa2 100644 (file)
@@ -216,3 +216,7 @@ void EqualizerDialog::portraitMode() {
        ui->bhorizontalLayout->addItem(ui->chorizontalSpacer);
        ui->bhorizontalLayout->addWidget(ui->saveButton);
 }
        ui->bhorizontalLayout->addItem(ui->chorizontalSpacer);
        ui->bhorizontalLayout->addWidget(ui->saveButton);
 }
+
+void EqualizerDialog::updateTranslations() {
+       ui->retranslateUi(this);
+}
index e5df486..9d89f36 100644 (file)
@@ -43,6 +43,7 @@ public slots:
        void reloadPresets();
        void landscapeMode();
        void portraitMode();
        void reloadPresets();
        void landscapeMode();
        void portraitMode();
+       void updateTranslations();
 
 private slots:
        void _value0_changed(int v) { emit valueChanged(0, v);}
 
 private slots:
        void _value0_changed(int v) { emit valueChanged(0, v);}
index 7ccfb78..17d9697 100644 (file)
@@ -814,3 +814,7 @@ void LibraryForm::_search_in_library(QString pattern) {
        ui->listView->setColumnWidth(0, 70);
        ui->listView->scrollToTop();
 }
        ui->listView->setColumnWidth(0, 70);
        ui->listView->scrollToTop();
 }
+
+void LibraryForm::updateTranslations() {
+       ui->retranslateUi(this);
+}
index 2d75912..9c5b423 100644 (file)
@@ -62,6 +62,7 @@ public slots:
        void portraitMode();
        void updateIcons();
        void checkGradient();
        void portraitMode();
        void updateIcons();
        void checkGradient();
+       void updateTranslations();
 private slots:
        void _view_button();
        void _dynamic_button();
 private slots:
        void _view_button();
        void _dynamic_button();
index f71f9dc..f46be74 100644 (file)
@@ -43,6 +43,7 @@ MainWindow::MainWindow(QWidget *parent) :
 {
        Config config;
        _library = new Library(config.applicationDir(), config.applicationDir());
 {
        Config config;
        _library = new Library(config.applicationDir(), config.applicationDir());
+       _translator = new QTranslator(this);
        ui->setupUi(this);
        connect(ui->actionAbout, SIGNAL(triggered()), this, SLOT(about()));
        connect(ui->actionSettings, SIGNAL(triggered()), this, SLOT(settings()));
        ui->setupUi(this);
        connect(ui->actionAbout, SIGNAL(triggered()), this, SLOT(about()));
        connect(ui->actionSettings, SIGNAL(triggered()), this, SLOT(settings()));
@@ -277,9 +278,13 @@ void MainWindow::settings() {
        _library_form->checkGradient();
        _directory_form->updateIcons();
        _directory_form->updateGradient();
        _library_form->checkGradient();
        _directory_form->updateIcons();
        _directory_form->updateGradient();
-       QTranslator *translator = new QTranslator(this);
-       translator->load(QString("/opt/someplayer/someplayer_%1").arg(config.getValue("ui/language").toString()));
-       QApplication::installTranslator(translator);
+       if (config.getValue("ui/language").toString() != "en") {
+               _translator->load(QString("/opt/someplayer/someplayer_%1").arg(config.getValue("ui/language").toString()));
+               QApplication::installTranslator(_translator);
+       } else {
+               QApplication::removeTranslator(_translator);
+       }
+       updateTranslations();
 }
 
 void MainWindow::_orientation_changed() {
 }
 
 void MainWindow::_orientation_changed() {
@@ -310,3 +315,12 @@ void MainWindow::_add_tracks(QList<Track> tracks) {
        _library->saveCurrentPlaylist(cur);
        _player_form->reload(true);
 }
        _library->saveCurrentPlaylist(cur);
        _player_form->reload(true);
 }
+
+void MainWindow::updateTranslations() {
+       ui->retranslateUi(this);
+       _player_form->updateTranslations();
+       _library_form->updateTranslations();
+       _equalizer_dialog->updateTranslations();
+       _manage_library_form->updateTranslations();
+       _directory_form->updateTranslations();
+}
index 4a8f41d..9552c86 100644 (file)
@@ -22,6 +22,7 @@
 
 #include <QMainWindow>
 #include <QMessageBox>
 
 #include <QMainWindow>
 #include <QMessageBox>
+#include <QTranslator>
 #include "playerform.h"
 #include "libraryform.h"
 #include "busywidget.h"
 #include "playerform.h"
 #include "libraryform.h"
 #include "busywidget.h"
@@ -58,6 +59,7 @@ public slots:
        void player();
        void library();
        void settings();
        void player();
        void library();
        void settings();
+       void updateTranslations();
 private slots:
        void _manage_library();
        void _save_playlist();
 private slots:
        void _manage_library();
        void _save_playlist();
@@ -79,6 +81,7 @@ private:
        EqualizerDialog *_equalizer_dialog;
        ManageLibraryForm *_manage_library_form;
        int _timeout_interval;
        EqualizerDialog *_equalizer_dialog;
        ManageLibraryForm *_manage_library_form;
        int _timeout_interval;
+       QTranslator *_translator;
 };
 
 #endif // MAINWINDOW_H
 };
 
 #endif // MAINWINDOW_H
index 2fcd474..c038ef1 100644 (file)
@@ -63,7 +63,7 @@ ManageLibraryForm::~ManageLibraryForm()
 }
 
 void ManageLibraryForm::_add() {
 }
 
 void ManageLibraryForm::_add() {
-       QString directory = QFileDialog::getExistingDirectory (this, "Select directory", DEFAULT_PATH_PREFIX, QFileDialog::ShowDirsOnly );
+       QString directory = QFileDialog::getExistingDirectory (this, tr("Select directory"), DEFAULT_PATH_PREFIX, QFileDialog::ShowDirsOnly );
        if (!directory.isEmpty()) {
                _library->addDirectory(directory);
        }
        if (!directory.isEmpty()) {
                _library->addDirectory(directory);
        }
@@ -161,3 +161,7 @@ void ManageLibraryForm::_update_all() {
        refresh();
        emit refreshLibrary();
 }
        refresh();
        emit refreshLibrary();
 }
+
+void ManageLibraryForm::updateTranslations() {
+       ui->retranslateUi(this);
+}
index 99ee295..7bc4568 100644 (file)
@@ -48,6 +48,7 @@ signals:
 public slots:
        void refresh();
        void updateIcons();
 public slots:
        void refresh();
        void updateIcons();
+       void updateTranslations();
 
 private slots:
        void _add();
 
 private slots:
        void _add();
index f4ec6ea..11328da 100644 (file)
@@ -87,12 +87,12 @@ PlayerForm::PlayerForm(Library* lib, QWidget *parent) :
        _model = new QStandardItemModel(0, 2, this);
        ui->playlistView->setModel(_model);
        _context_menu = new QMenu(ui->playlistView);
        _model = new QStandardItemModel(0, 2, this);
        ui->playlistView->setModel(_model);
        _context_menu = new QMenu(ui->playlistView);
-       QAction *clear_playlist = _context_menu->addAction(tr("Clear playlist"));
-       QAction *delete_action = _context_menu->addAction(tr("Delete"));
-       QAction *add_to_favorites = _context_menu->addAction(tr("Add to favorites"));
-       QAction *enqueue_action = _context_menu->addAction(tr("Enqueue"));
-       QAction *add_to_playlists = _context_menu->addAction(tr("Add to playlists"));
-       QAction *edit_tags = _context_menu->addAction(tr("Edit tags"));
+       __clear_playlist = _context_menu->addAction(tr("Clear playlist"));
+       __delete_action = _context_menu->addAction(tr("Delete"));
+       __add_to_favorites = _context_menu->addAction(tr("Add to favorites"));
+       __enqueue_action = _context_menu->addAction(tr("Enqueue"));
+       __add_to_playlists = _context_menu->addAction(tr("Add to playlists"));
+       __edit_tags = _context_menu->addAction(tr("Edit tags"));
 
        _track_renderer = new TrackRenderer(this);
        _track_renderer->setActiveRow(-1);
 
        _track_renderer = new TrackRenderer(this);
        _track_renderer->setActiveRow(-1);
@@ -123,12 +123,12 @@ PlayerForm::PlayerForm(Library* lib, QWidget *parent) :
        connect(ui->repeatButton, SIGNAL(clicked()), this, SLOT(_toggle_repeat()));
        connect(ui->seekSlider, SIGNAL(sliderMoved(int)), _player, SLOT(seek(int)));
        connect(ui->playlistView, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(_custom_context_menu_requested(QPoint)));
        connect(ui->repeatButton, SIGNAL(clicked()), this, SLOT(_toggle_repeat()));
        connect(ui->seekSlider, SIGNAL(sliderMoved(int)), _player, SLOT(seek(int)));
        connect(ui->playlistView, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(_custom_context_menu_requested(QPoint)));
-       connect(clear_playlist, SIGNAL(triggered()), this, SIGNAL(clearPlaylist()));
-       connect(delete_action, SIGNAL(triggered()), this, SLOT(_delete_track()));
-       connect(enqueue_action, SIGNAL(triggered()), this, SLOT(_enqueue_track()));
-       connect(add_to_favorites, SIGNAL(triggered()), this, SLOT(_add_to_favorites()));
-       connect(add_to_playlists, SIGNAL(triggered()), this, SLOT(_add_to_playlists()));
-       connect(edit_tags, SIGNAL(triggered()), this, SLOT(_edit_tags()));
+       connect(__clear_playlist, SIGNAL(triggered()), this, SIGNAL(clearPlaylist()));
+       connect(__delete_action, SIGNAL(triggered()), this, SLOT(_delete_track()));
+       connect(__enqueue_action, SIGNAL(triggered()), this, SLOT(_enqueue_track()));
+       connect(__add_to_favorites, SIGNAL(triggered()), this, SLOT(_add_to_favorites()));
+       connect(__add_to_playlists, SIGNAL(triggered()), this, SLOT(_add_to_playlists()));
+       connect(__edit_tags, SIGNAL(triggered()), this, SLOT(_edit_tags()));
        connect(_player, SIGNAL(stateChanged(PlayerState)), this, SLOT(_state_changed(PlayerState)));
        connect(_player, SIGNAL(trackDone(Track)), _lib, SLOT(updateTrackCount(Track)));
        connect(_tag_resolver, SIGNAL(decoded(Track)), this, SLOT(_track_decoded(Track)));
        connect(_player, SIGNAL(stateChanged(PlayerState)), this, SLOT(_state_changed(PlayerState)));
        connect(_player, SIGNAL(trackDone(Track)), _lib, SLOT(updateTrackCount(Track)));
        connect(_tag_resolver, SIGNAL(decoded(Track)), this, SLOT(_track_decoded(Track)));
@@ -720,3 +720,7 @@ void PlayerForm::_toggle_extra_buttons() {
                ui->ctagButton->setIcon(QIcon());
        }
 }
                ui->ctagButton->setIcon(QIcon());
        }
 }
+
+void PlayerForm::updateTranslations() {
+       ui->retranslateUi(this);
+}
index bd66e8d..cd819d9 100644 (file)
@@ -83,6 +83,7 @@ public slots:
        void play(Track);
        void showCountdown(QString);
        void hideCountdown();
        void play(Track);
        void showCountdown(QString);
        void hideCountdown();
+       void updateTranslations();
 
 private slots:
        void _library();
 
 private slots:
        void _library();
@@ -130,6 +131,13 @@ private:
        QString _bottom_gradient;
        bool _show_extra_buttons;
 
        QString _bottom_gradient;
        bool _show_extra_buttons;
 
+       QAction *__clear_playlist;
+       QAction *__delete_action;
+       QAction *__add_to_favorites;
+       QAction *__enqueue_action;
+       QAction *__add_to_playlists;
+       QAction *__edit_tags;
+
        TrackRenderer *_track_renderer;
        TagResolver *_tag_resolver;
        void _display_track(Track);
        TrackRenderer *_track_renderer;
        TagResolver *_tag_resolver;
        void _display_track(Track);
index 893aee2..a21d898 100644 (file)
@@ -48,3 +48,7 @@ QList<QString> PlaylistDialog::selected() {
        }
        return _selected;
 }
        }
        return _selected;
 }
+
+void PlaylistDialog::updateTranslations() {
+       ui->retranslateUi(this);
+}
index 49e8e9f..946afef 100644 (file)
@@ -36,6 +36,9 @@ public:
 
     QList<QString> selected();
 
 
     QList<QString> selected();
 
+public slots:
+    void updateTranslations();
+
 private:
     Ui::PlaylistDialog *ui;
 
 private:
     Ui::PlaylistDialog *ui;
 
index 20753a2..bb12fa9 100644 (file)
@@ -50,3 +50,6 @@ void SavePlaylistDialog::_select_item(QModelIndex id) {
        done(QDialog::Accepted);
 }
 
        done(QDialog::Accepted);
 }
 
+void SavePlaylistDialog::updateTranslations() {
+       ui->retranslateUi(this);
+}
index 307f2db..be3d496 100644 (file)
@@ -38,6 +38,9 @@ public:
        void setPlaylistNames(QList<QString>);
        QString selectedName();
 
        void setPlaylistNames(QList<QString>);
        QString selectedName();
 
+public slots:
+       void updateTranslations();
+
 private slots:
        void _select_item(QModelIndex);
 private:
 private slots:
        void _select_item(QModelIndex);
 private:
index 0c54f85..f585a1a 100644 (file)
@@ -158,3 +158,7 @@ void SettingsDialog::_set_lang_ru(bool checked) {
        Config config;
        config.setValue("ui/language", "ru");
 }
        Config config;
        config.setValue("ui/language", "ru");
 }
+
+void SettingsDialog::updateTranslations() {
+       ui->retranslateUi(this);
+}
index 037e6cb..681301c 100644 (file)
@@ -35,6 +35,9 @@ public:
        explicit SettingsDialog(QWidget *parent = 0);
        ~SettingsDialog();
 
        explicit SettingsDialog(QWidget *parent = 0);
        ~SettingsDialog();
 
+public slots:
+       void updateTranslations();
+
 private:
        Ui::SettingsDialog *ui;
 
 private:
        Ui::SettingsDialog *ui;
 
index 431d6d7..47a4a8a 100644 (file)
@@ -62,3 +62,7 @@ bool TimerDialog::timerDisabled() {
 void TimerDialog::showDisable() {
        ui->disableCheckBox->setVisible(true);
 }
 void TimerDialog::showDisable() {
        ui->disableCheckBox->setVisible(true);
 }
+
+void TimerDialog::updateTranslations() {
+       ui->retranslateUi(this);
+}
index 18513f3..e06e6c9 100644 (file)
@@ -40,6 +40,7 @@ public slots:
     void init();
     void setTime (int, int, int);
     void showDisable();
     void init();
     void setTime (int, int, int);
     void showDisable();
+    void updateTranslations();
 
 
 private:
 
 
 private:
index 263d702..e7af79f 100644 (file)
@@ -11,7 +11,7 @@
    </rect>
   </property>
   <property name="windowTitle">
    </rect>
   </property>
   <property name="windowTitle">
-   <string>someplayer</string>
+   <string>SomePlayer</string>
   </property>
   <widget class="QWidget" name="centralWidget">
    <layout class="QVBoxLayout" name="verticalLayout">
   </property>
   <widget class="QWidget" name="centralWidget">
    <layout class="QVBoxLayout" name="verticalLayout">