From: Nikolay Tischenko Date: Wed, 10 Nov 2010 15:39:25 +0000 (+0600) Subject: Improved translation mechanism X-Git-Tag: 1.4.1~14 X-Git-Url: http://git.maemo.org/git/?p=someplayer;a=commitdiff_plain;h=9d2d4bdd19da6c68ac764d6b6ce5cf94bd81c147 Improved translation mechanism --- diff --git a/resources/someplayer_ru.ts b/resources/someplayer_ru.ts index 5ba81c0..f7e7781 100644 --- a/resources/someplayer_ru.ts +++ b/resources/someplayer_ru.ts @@ -112,9 +112,14 @@ MainWindow - someplayer - someplayer + someplayer + + + + SomePlayer + SomePlayer + SomePlayer @@ -199,6 +204,11 @@ 0 tracks + + + Select directory + Выберите директорию + PlayerForm diff --git a/src/directoryview.cpp b/src/directoryview.cpp index e0c9f41..f58e459 100644 --- a/src/directoryview.cpp +++ b/src/directoryview.cpp @@ -267,3 +267,7 @@ void DirectoryView::portraitMode() { ui->topWidget->show(); ui->bottomWidget->show(); } + +void DirectoryView::updateTranslations() { + ui->retranslateUi(this); +} diff --git a/src/directoryview.h b/src/directoryview.h index db180ef..62cb1fb 100644 --- a/src/directoryview.h +++ b/src/directoryview.h @@ -46,6 +46,7 @@ public: void updateGradient(); void lanscapeMode(); void portraitMode(); + void updateTranslations(); signals: void addAndPlay(Track); diff --git a/src/edittagsdialog.cpp b/src/edittagsdialog.cpp index b385270..c402d98 100644 --- a/src/edittagsdialog.cpp +++ b/src/edittagsdialog.cpp @@ -48,3 +48,7 @@ TrackMetadata EditTagsDialog::meta() { _meta.setTitle(ui->titleLineEdit->text()); return _meta; } + +void EditTagsDialog::updateTranslations() { + ui->retranslateUi(this); +} diff --git a/src/edittagsdialog.h b/src/edittagsdialog.h index a2b2b4b..a0b1da9 100644 --- a/src/edittagsdialog.h +++ b/src/edittagsdialog.h @@ -38,6 +38,8 @@ public: ~EditTagsDialog(); void setTrackMetadata(TrackMetadata meta); TrackMetadata meta(); +public slots: + void updateTranslations(); private: Ui::EditTagsDialog *ui; diff --git a/src/equalizerdialog.cpp b/src/equalizerdialog.cpp index 2ba6e5a..ecdeaa2 100644 --- a/src/equalizerdialog.cpp +++ b/src/equalizerdialog.cpp @@ -216,3 +216,7 @@ void EqualizerDialog::portraitMode() { ui->bhorizontalLayout->addItem(ui->chorizontalSpacer); ui->bhorizontalLayout->addWidget(ui->saveButton); } + +void EqualizerDialog::updateTranslations() { + ui->retranslateUi(this); +} diff --git a/src/equalizerdialog.h b/src/equalizerdialog.h index e5df486..9d89f36 100644 --- a/src/equalizerdialog.h +++ b/src/equalizerdialog.h @@ -43,6 +43,7 @@ public slots: void reloadPresets(); void landscapeMode(); void portraitMode(); + void updateTranslations(); private slots: void _value0_changed(int v) { emit valueChanged(0, v);} diff --git a/src/libraryform.cpp b/src/libraryform.cpp index 7ccfb78..17d9697 100644 --- a/src/libraryform.cpp +++ b/src/libraryform.cpp @@ -814,3 +814,7 @@ void LibraryForm::_search_in_library(QString pattern) { ui->listView->setColumnWidth(0, 70); ui->listView->scrollToTop(); } + +void LibraryForm::updateTranslations() { + ui->retranslateUi(this); +} diff --git a/src/libraryform.h b/src/libraryform.h index 2d75912..9c5b423 100644 --- a/src/libraryform.h +++ b/src/libraryform.h @@ -62,6 +62,7 @@ public slots: void portraitMode(); void updateIcons(); void checkGradient(); + void updateTranslations(); private slots: void _view_button(); void _dynamic_button(); diff --git a/src/mainwindow.cpp b/src/mainwindow.cpp index f71f9dc..f46be74 100644 --- a/src/mainwindow.cpp +++ b/src/mainwindow.cpp @@ -43,6 +43,7 @@ MainWindow::MainWindow(QWidget *parent) : { 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())); @@ -277,9 +278,13 @@ void MainWindow::settings() { _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() { @@ -310,3 +315,12 @@ void MainWindow::_add_tracks(QList tracks) { _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(); +} diff --git a/src/mainwindow.h b/src/mainwindow.h index 4a8f41d..9552c86 100644 --- a/src/mainwindow.h +++ b/src/mainwindow.h @@ -22,6 +22,7 @@ #include #include +#include #include "playerform.h" #include "libraryform.h" #include "busywidget.h" @@ -58,6 +59,7 @@ public slots: void player(); void library(); void settings(); + void updateTranslations(); private slots: void _manage_library(); void _save_playlist(); @@ -79,6 +81,7 @@ private: EqualizerDialog *_equalizer_dialog; ManageLibraryForm *_manage_library_form; int _timeout_interval; + QTranslator *_translator; }; #endif // MAINWINDOW_H diff --git a/src/managelibraryform.cpp b/src/managelibraryform.cpp index 2fcd474..c038ef1 100644 --- a/src/managelibraryform.cpp +++ b/src/managelibraryform.cpp @@ -63,7 +63,7 @@ ManageLibraryForm::~ManageLibraryForm() } 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); } @@ -161,3 +161,7 @@ void ManageLibraryForm::_update_all() { refresh(); emit refreshLibrary(); } + +void ManageLibraryForm::updateTranslations() { + ui->retranslateUi(this); +} diff --git a/src/managelibraryform.h b/src/managelibraryform.h index 99ee295..7bc4568 100644 --- a/src/managelibraryform.h +++ b/src/managelibraryform.h @@ -48,6 +48,7 @@ signals: public slots: void refresh(); void updateIcons(); + void updateTranslations(); private slots: void _add(); diff --git a/src/playerform.cpp b/src/playerform.cpp index f4ec6ea..11328da 100644 --- a/src/playerform.cpp +++ b/src/playerform.cpp @@ -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); - 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); @@ -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(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))); @@ -720,3 +720,7 @@ void PlayerForm::_toggle_extra_buttons() { ui->ctagButton->setIcon(QIcon()); } } + +void PlayerForm::updateTranslations() { + ui->retranslateUi(this); +} diff --git a/src/playerform.h b/src/playerform.h index bd66e8d..cd819d9 100644 --- a/src/playerform.h +++ b/src/playerform.h @@ -83,6 +83,7 @@ public slots: void play(Track); void showCountdown(QString); void hideCountdown(); + void updateTranslations(); private slots: void _library(); @@ -130,6 +131,13 @@ private: 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); diff --git a/src/playlistdialog.cpp b/src/playlistdialog.cpp index 893aee2..a21d898 100644 --- a/src/playlistdialog.cpp +++ b/src/playlistdialog.cpp @@ -48,3 +48,7 @@ QList PlaylistDialog::selected() { } return _selected; } + +void PlaylistDialog::updateTranslations() { + ui->retranslateUi(this); +} diff --git a/src/playlistdialog.h b/src/playlistdialog.h index 49e8e9f..946afef 100644 --- a/src/playlistdialog.h +++ b/src/playlistdialog.h @@ -36,6 +36,9 @@ public: QList selected(); +public slots: + void updateTranslations(); + private: Ui::PlaylistDialog *ui; diff --git a/src/saveplaylistdialog.cpp b/src/saveplaylistdialog.cpp index 20753a2..bb12fa9 100644 --- a/src/saveplaylistdialog.cpp +++ b/src/saveplaylistdialog.cpp @@ -50,3 +50,6 @@ void SavePlaylistDialog::_select_item(QModelIndex id) { done(QDialog::Accepted); } +void SavePlaylistDialog::updateTranslations() { + ui->retranslateUi(this); +} diff --git a/src/saveplaylistdialog.h b/src/saveplaylistdialog.h index 307f2db..be3d496 100644 --- a/src/saveplaylistdialog.h +++ b/src/saveplaylistdialog.h @@ -38,6 +38,9 @@ public: void setPlaylistNames(QList); QString selectedName(); +public slots: + void updateTranslations(); + private slots: void _select_item(QModelIndex); private: diff --git a/src/settingsdialog.cpp b/src/settingsdialog.cpp index 0c54f85..f585a1a 100644 --- a/src/settingsdialog.cpp +++ b/src/settingsdialog.cpp @@ -158,3 +158,7 @@ void SettingsDialog::_set_lang_ru(bool checked) { Config config; config.setValue("ui/language", "ru"); } + +void SettingsDialog::updateTranslations() { + ui->retranslateUi(this); +} diff --git a/src/settingsdialog.h b/src/settingsdialog.h index 037e6cb..681301c 100644 --- a/src/settingsdialog.h +++ b/src/settingsdialog.h @@ -35,6 +35,9 @@ public: explicit SettingsDialog(QWidget *parent = 0); ~SettingsDialog(); +public slots: + void updateTranslations(); + private: Ui::SettingsDialog *ui; diff --git a/src/timerdialog.cpp b/src/timerdialog.cpp index 431d6d7..47a4a8a 100644 --- a/src/timerdialog.cpp +++ b/src/timerdialog.cpp @@ -62,3 +62,7 @@ bool TimerDialog::timerDisabled() { void TimerDialog::showDisable() { ui->disableCheckBox->setVisible(true); } + +void TimerDialog::updateTranslations() { + ui->retranslateUi(this); +} diff --git a/src/timerdialog.h b/src/timerdialog.h index 18513f3..e06e6c9 100644 --- a/src/timerdialog.h +++ b/src/timerdialog.h @@ -40,6 +40,7 @@ public slots: void init(); void setTime (int, int, int); void showDisable(); + void updateTranslations(); private: diff --git a/src/ui/mainwindow.ui b/src/ui/mainwindow.ui index 263d702..e7af79f 100644 --- a/src/ui/mainwindow.ui +++ b/src/ui/mainwindow.ui @@ -11,7 +11,7 @@ - someplayer + SomePlayer