diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 084d6616..1e59d2de 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -547,10 +547,6 @@ before_script: - Pop-Location - _fold_final_ - - _fold_start_ 'Generate qm files' - - .\_qt\5.15.0\msvc2019\bin\lrelease OpenRGB.pro - - _fold_final_ - - _fold_start_ 'run qmake and generate the msvc nmake makefile' - mkdir _build; cd _build - ..\_qt\5.15.0\msvc2019\bin\qmake ..\OpenRGB.pro @@ -627,10 +623,6 @@ before_script: - Pop-Location - _fold_final_ - - _fold_start_ 'Generate qm files' - - .\_qt\5.15.0\msvc2019_64\bin\lrelease OpenRGB.pro - - _fold_final_ - - _fold_start_ 'run qmake and generate the msvc nmake makefile' - mkdir _build; cd _build - ..\_qt\5.15.0\msvc2019_64\bin\qmake ..\OpenRGB.pro diff --git a/OpenRGB.pro b/OpenRGB.pro index 7e0c6504..67d87ac2 100644 --- a/OpenRGB.pro +++ b/OpenRGB.pro @@ -1263,15 +1263,16 @@ RESOURCES += qt/resources.qrc \ TRANSLATIONS += \ + qt/i18n/OpenRGB_de.ts \ qt/i18n/OpenRGB_en.ts \ qt/i18n/OpenRGB_en_AU.ts \ qt/i18n/OpenRGB_en_GB.ts \ - qt/i18n/OpenRGB_de.ts \ qt/i18n/OpenRGB_es.ts \ qt/i18n/OpenRGB_fr.ts \ qt/i18n/OpenRGB_ru.ts \ - qt/i18n/OpenRGB_zh.ts \ qt/i18n/OpenRGB_pt_BR.ts \ + qt/i18n/OpenRGB_zh.ts \ + qt/i18n/OpenRGB_zh_TW.ts \ FORMS += \ qt/OpenRGBClientInfoPage.ui \ diff --git a/main.cpp b/main.cpp index 04f14381..942bded9 100644 --- a/main.cpp +++ b/main.cpp @@ -18,7 +18,6 @@ #include #include #include -#include #ifdef _MACOSX_X86_X64 #include "macUSPCIOAccess.h" @@ -346,36 +345,6 @@ int main(int argc, char* argv[]) QApplication::setAttribute(Qt::AA_EnableHighDpiScaling); QApplication a(argc, argv); - /*---------------------------------------------------------*\ - | App translation | - | To add a new language: | - | Create a file under qt/i18n/OpenRGB_.ts | - | Add it to TRANSLATIONS in OpenRGB.pro | - | Edit this file (manually or with | - | linguist qt/i18n/OpenRGB_en.ts qt/i18n/OpenRGB_XX.ts | - \*---------------------------------------------------------*/ - QTranslator translator; - - QLocale locale = QLocale(QLocale::system()); - QLocale::setDefault(locale); - - // For local tests without changing the PC locale, override this value. - //locale = QLocale(QLocale::French, QLocale::France); - - a.removeTranslator(&translator); - - QString path = ":/i18n/"; - - if(translator.load(path + QString("OpenRGB_%1.qm").arg(locale.name()))) - { - a.installTranslator(&translator); - printf("Current Language changed to %s\n", locale.name().toStdString().c_str()); - } - else - { - printf("Failed to load translation file for default locale '%s'\n", locale.name().toStdString().c_str()); - } - /*---------------------------------------------------------*\ | Main UI widget | \*---------------------------------------------------------*/ diff --git a/qt/OpenRGBClientInfoPage.cpp b/qt/OpenRGBClientInfoPage.cpp index e47df65a..04c7b57f 100644 --- a/qt/OpenRGBClientInfoPage.cpp +++ b/qt/OpenRGBClientInfoPage.cpp @@ -50,6 +50,14 @@ OpenRGBClientInfoPage::~OpenRGBClientInfoPage() } +void OpenRGBClientInfoPage::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} + void OpenRGBClientInfoPage::AddClient(NetworkClient* new_client) { /*-----------------------------------------------------*\ @@ -82,7 +90,6 @@ void OpenRGBClientInfoPage::UpdateInfo() ui->ClientTree->setColumnWidth(1, 100); ui->ClientTree->setColumnWidth(2, 100); ui->ClientTree->setColumnWidth(3, 100); - ui->ClientTree->setHeaderLabels(QStringList() << tr("Connected Clients") << tr("Protocol Version") << tr("Save Connection") << ""); /*-----------------------------------------------------*\ | Set up a signal mapper to handle disconnect buttons | diff --git a/qt/OpenRGBClientInfoPage.h b/qt/OpenRGBClientInfoPage.h index ae920d65..b54879a5 100644 --- a/qt/OpenRGBClientInfoPage.h +++ b/qt/OpenRGBClientInfoPage.h @@ -24,6 +24,7 @@ public slots: void UpdateInfo(); private slots: + void changeEvent(QEvent *event); void on_ClientConnectButton_clicked(); void onClientDisconnectButton_clicked(QObject * arg); void onClientSaveCheckBox_clicked(QObject * arg); diff --git a/qt/OpenRGBClientInfoPage.ui b/qt/OpenRGBClientInfoPage.ui index 5d0041f5..8ebc2973 100644 --- a/qt/OpenRGBClientInfoPage.ui +++ b/qt/OpenRGBClientInfoPage.ui @@ -64,8 +64,28 @@ - 0 + 4 + + + Connected Clients + + + + + Protocol Version + + + + + Save Connection + + + + + + + diff --git a/qt/OpenRGBConsolePage.cpp b/qt/OpenRGBConsolePage.cpp index 6ff731fd..c3b21119 100644 --- a/qt/OpenRGBConsolePage.cpp +++ b/qt/OpenRGBConsolePage.cpp @@ -73,3 +73,11 @@ OpenRGBConsolePage::~OpenRGBConsolePage() { delete ui; } + +void OpenRGBConsolePage::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} diff --git a/qt/OpenRGBConsolePage.h b/qt/OpenRGBConsolePage.h index c4ccbd2c..6eb40368 100644 --- a/qt/OpenRGBConsolePage.h +++ b/qt/OpenRGBConsolePage.h @@ -17,6 +17,7 @@ public: ~OpenRGBConsolePage(); private slots: + void changeEvent(QEvent *event); void on_log_level_currentIndexChanged(int); void on_clear_clicked(); void on_refresh_clicked(); diff --git a/qt/OpenRGBDeviceInfoPage.cpp b/qt/OpenRGBDeviceInfoPage.cpp index 895acbcf..eafca391 100644 --- a/qt/OpenRGBDeviceInfoPage.cpp +++ b/qt/OpenRGBDeviceInfoPage.cpp @@ -25,6 +25,14 @@ OpenRGBDeviceInfoPage::~OpenRGBDeviceInfoPage() delete ui; } +void OpenRGBDeviceInfoPage::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} + RGBController* OpenRGBDeviceInfoPage::GetController() { return controller; diff --git a/qt/OpenRGBDeviceInfoPage.h b/qt/OpenRGBDeviceInfoPage.h index 0940279c..7319b014 100644 --- a/qt/OpenRGBDeviceInfoPage.h +++ b/qt/OpenRGBDeviceInfoPage.h @@ -22,6 +22,9 @@ public: private: RGBController* controller; Ui::OpenRGBDeviceInfoPageUi* ui; + +private slots: + void changeEvent(QEvent *event); }; #endif // OPENRGBDEVICEINFOPAGE_H diff --git a/qt/OpenRGBDevicePage.cpp b/qt/OpenRGBDevicePage.cpp index c53b353a..e558aece 100644 --- a/qt/OpenRGBDevicePage.cpp +++ b/qt/OpenRGBDevicePage.cpp @@ -133,6 +133,14 @@ OpenRGBDevicePage::~OpenRGBDevicePage() delete ui; } +void OpenRGBDevicePage::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} + RGBController* Ui::OpenRGBDevicePage::GetController() { return device; diff --git a/qt/OpenRGBDevicePage.h b/qt/OpenRGBDevicePage.h index 879a0d49..3f1ee8f7 100644 --- a/qt/OpenRGBDevicePage.h +++ b/qt/OpenRGBDevicePage.h @@ -29,6 +29,7 @@ public: void HideDeviceView(); private slots: + void changeEvent(QEvent *event); void UpdateInterface(); void on_ColorWheelBox_colorChanged(const QColor color); diff --git a/qt/OpenRGBDialog2.cpp b/qt/OpenRGBDialog2.cpp index 85663b2c..da8e76f1 100644 --- a/qt/OpenRGBDialog2.cpp +++ b/qt/OpenRGBDialog2.cpp @@ -539,6 +539,27 @@ OpenRGBDialog2::~OpenRGBDialog2() delete ui; } +void OpenRGBDialog2::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + for(int i = 0; i < ui->MainTabBar->count(); i++) + { + /*-----------------------------------------------------*\ + | if the objectName is either of the SDK tabs | + | then translate tab text (TODO: improve workaround) | + \*-----------------------------------------------------*/ + std::string label = ui->MainTabBar->widget(i)->objectName().toStdString(); + + if(label.substr(0,3) == "SDK") + { + ui->MainTabBar->setTabText(i, tr(label.c_str())); + } + } + } +} + void OpenRGBDialog2::closeEvent(QCloseEvent *event) { ResourceManager::get()->WaitForDeviceDetection(); @@ -621,7 +642,7 @@ void OpenRGBDialog2::AddPluginsPage() /*-----------------------------------------------------*\ | Create the tab label | \*-----------------------------------------------------*/ - TabLabel* PluginTabLabel = new TabLabel(PluginsLabelString, tr("Plugins")); + TabLabel* PluginTabLabel = new TabLabel(PluginsLabelString, tr("Plugins"), (char *)"Plugins", (char *)context); ui->SettingsTabBar->tabBar()->setTabButton(ui->SettingsTabBar->tabBar()->count() - 1, QTabBar::LeftSide, PluginTabLabel); } @@ -649,7 +670,7 @@ void OpenRGBDialog2::AddSoftwareInfoPage() /*-----------------------------------------------------*\ | Create the tab label | \*-----------------------------------------------------*/ - TabLabel* SoftwareTabLabel = new TabLabel(SoftwareLabelString, tr("Software")); + TabLabel* SoftwareTabLabel = new TabLabel(SoftwareLabelString, tr("Software"), (char *)"Software", (char *)context); ui->InformationTabBar->tabBar()->setTabButton(ui->InformationTabBar->tabBar()->count() - 1, QTabBar::LeftSide, SoftwareTabLabel); } @@ -677,7 +698,7 @@ void OpenRGBDialog2::AddSupportedDevicesPage() /*-----------------------------------------------------*\ | Create the tab label | \*-----------------------------------------------------*/ - TabLabel* SupportedTabLabel = new TabLabel(SettingsLabelString, tr("Supported Devices")); + TabLabel* SupportedTabLabel = new TabLabel(SettingsLabelString, tr("Supported Devices"), (char *)"Supported Devices", (char *)context); ui->SettingsTabBar->tabBar()->setTabButton(ui->SettingsTabBar->tabBar()->count() - 1, QTabBar::LeftSide, SupportedTabLabel); } @@ -706,7 +727,7 @@ void OpenRGBDialog2::AddSettingsPage() /*-----------------------------------------------------*\ | Create the tab label | \*-----------------------------------------------------*/ - TabLabel* SettingsTabLabel = new TabLabel(SettingsLabelString, tr("General Settings")); + TabLabel* SettingsTabLabel = new TabLabel(SettingsLabelString, tr("General Settings"), (char *)"General Settings", (char *)context); ui->SettingsTabBar->tabBar()->setTabButton(ui->SettingsTabBar->tabBar()->count() - 1, QTabBar::LeftSide, SettingsTabLabel); @@ -740,7 +761,7 @@ void OpenRGBDialog2::AddE131SettingsPage() /*-----------------------------------------------------*\ | Create the tab label | \*-----------------------------------------------------*/ - TabLabel* SettingsTabLabel = new TabLabel(SettingsLabelString, tr("E1.31 Devices")); + TabLabel* SettingsTabLabel = new TabLabel(SettingsLabelString, tr("E1.31 Devices"), (char *)"E1.31 Devices", (char *)context); ui->SettingsTabBar->tabBar()->setTabButton(ui->SettingsTabBar->tabBar()->count() - 1, QTabBar::LeftSide, SettingsTabLabel); } @@ -768,7 +789,7 @@ void OpenRGBDialog2::AddLIFXSettingsPage() /*-----------------------------------------------------*\ | Create the tab label | \*-----------------------------------------------------*/ - TabLabel* SettingsTabLabel = new TabLabel(SettingsLabelString, "LIFX Devices"); + TabLabel* SettingsTabLabel = new TabLabel(SettingsLabelString, tr("LIFX Devices"), (char *)"LIFX Devices", (char *)context); ui->SettingsTabBar->tabBar()->setTabButton(ui->SettingsTabBar->tabBar()->count() - 1, QTabBar::LeftSide, SettingsTabLabel); } @@ -796,7 +817,7 @@ void OpenRGBDialog2::AddPhilipsHueSettingsPage() /*-----------------------------------------------------*\ | Create the tab label | \*-----------------------------------------------------*/ - TabLabel* SettingsTabLabel = new TabLabel(SettingsLabelString, tr("Philips Hue Devices")); + TabLabel* SettingsTabLabel = new TabLabel(SettingsLabelString, tr("Philips Hue Devices"), (char *)"Philips Hue Devices", (char *)context); ui->SettingsTabBar->tabBar()->setTabButton(ui->SettingsTabBar->tabBar()->count() - 1, QTabBar::LeftSide, SettingsTabLabel); } @@ -824,7 +845,7 @@ void OpenRGBDialog2::AddPhilipsWizSettingsPage() /*-----------------------------------------------------*\ | Create the tab label | \*-----------------------------------------------------*/ - TabLabel* SettingsTabLabel = new TabLabel(SettingsLabelString, tr("Philips Wiz Devices")); + TabLabel* SettingsTabLabel = new TabLabel(SettingsLabelString, tr("Philips Wiz Devices"), (char *)"Philips Wiz Devices", (char *)context); ui->SettingsTabBar->tabBar()->setTabButton(ui->SettingsTabBar->tabBar()->count() - 1, QTabBar::LeftSide, SettingsTabLabel); } @@ -852,7 +873,7 @@ void OpenRGBDialog2::AddQMKORGBSettingsPage() /*-----------------------------------------------------*\ | Create the tab label | \*-----------------------------------------------------*/ - TabLabel* SettingsTabLabel = new TabLabel(SettingsLabelString, tr("OpenRGB QMK Protocol")); + TabLabel* SettingsTabLabel = new TabLabel(SettingsLabelString, tr("OpenRGB QMK Protocol"), (char *)"OpenRGB QMK Protocol", (char *)context); ui->SettingsTabBar->tabBar()->setTabButton(ui->SettingsTabBar->tabBar()->count() - 1, QTabBar::LeftSide, SettingsTabLabel); } @@ -880,7 +901,7 @@ void OpenRGBDialog2::AddSerialSettingsPage() /*-----------------------------------------------------*\ | Create the tab label | \*-----------------------------------------------------*/ - TabLabel* SettingsTabLabel = new TabLabel(SettingsLabelString, tr("Serial Devices")); + TabLabel* SettingsTabLabel = new TabLabel(SettingsLabelString, tr("Serial Devices"), (char *)"Serial Devices", (char *)context); ui->SettingsTabBar->tabBar()->setTabButton(ui->SettingsTabBar->tabBar()->count() - 1, QTabBar::LeftSide, SettingsTabLabel); } @@ -908,7 +929,7 @@ void OpenRGBDialog2::AddYeelightSettingsPage() /*-----------------------------------------------------*\ | Create the tab label | \*-----------------------------------------------------*/ - TabLabel* SettingsTabLabel = new TabLabel(SettingsLabelString, tr("Yeelight Devices")); + TabLabel* SettingsTabLabel = new TabLabel(SettingsLabelString, tr("Yeelight Devices"), (char *)"Yeelight Devices", (char *)context); ui->SettingsTabBar->tabBar()->setTabButton(ui->SettingsTabBar->tabBar()->count() - 1, QTabBar::LeftSide, SettingsTabLabel); } @@ -936,7 +957,7 @@ void OpenRGBDialog2::AddNanoleafSettingsPage() /*-----------------------------------------------------*\ | Create the tab label | \*-----------------------------------------------------*/ - TabLabel* SettingsTabLabel = new TabLabel(SettingsLabelString, "Nanoleaf Devices"); + TabLabel* SettingsTabLabel = new TabLabel(SettingsLabelString, tr("Nanoleaf Devices"), (char *)"Nanoleaf Devices", (char *)context); ui->SettingsTabBar->tabBar()->setTabButton(ui->SettingsTabBar->tabBar()->count() - 1, QTabBar::LeftSide, SettingsTabLabel); } @@ -964,7 +985,7 @@ void OpenRGBDialog2::AddElgatoKeyLightSettingsPage() /*-----------------------------------------------------*\ | Create the tab label | \*-----------------------------------------------------*/ - TabLabel* SettingsTabLabel = new TabLabel(SettingsLabelString, "Elgato KeyLight Devices"); + TabLabel* SettingsTabLabel = new TabLabel(SettingsLabelString, tr("Elgato KeyLight Devices"), (char *)"Elgato KeyLight Devices", (char *)context); ui->SettingsTabBar->tabBar()->setTabButton(ui->SettingsTabBar->tabBar()->count() - 1, QTabBar::LeftSide, SettingsTabLabel); } @@ -994,7 +1015,7 @@ void OpenRGBDialog2::AddPlugin(OpenRGBPluginEntry* plugin) /*-----------------------------------------------------*\ | Create the tab label | \*-----------------------------------------------------*/ - PluginTabLabel = (QLabel*)new TabLabel(PluginLabelString, QString::fromStdString(plugin->info.Label)); + PluginTabLabel = (QLabel*)new TabLabel(PluginLabelString, QString::fromStdString(plugin->info.Label), (char *)plugin->info.Label.c_str(), (char *)context); /*-----------------------------------------------------*\ | Place plugin as its own top level tab | @@ -1178,7 +1199,7 @@ void OpenRGBDialog2::AddI2CToolsPage() /*-----------------------------------------------------*\ | Create the tab label | \*-----------------------------------------------------*/ - TabLabel* SMBusToolsTabLabel = new TabLabel(SMBusToolsLabelString, tr("SMBus Tools")); + TabLabel* SMBusToolsTabLabel = new TabLabel(SMBusToolsLabelString, tr("SMBus Tools"), (char *)"SMBus Tools", (char *)context); ui->InformationTabBar->tabBar()->setTabButton(ui->InformationTabBar->tabBar()->count() - 1, QTabBar::LeftSide, SMBusToolsTabLabel); } @@ -1191,6 +1212,7 @@ void OpenRGBDialog2::AddClientTab() if(ClientInfoPage == NULL) { ClientInfoPage = new OpenRGBClientInfoPage(); + ClientInfoPage->setObjectName(QString("SDK Client")); ui->MainTabBar->insertTab(2, ClientInfoPage, tr("SDK Client")); } } @@ -1212,6 +1234,7 @@ void OpenRGBDialog2::AddServerTab() | Add server information tab if there is a server | \*-----------------------------------------------------*/ OpenRGBServerInfoPage *ServerInfoPage = new OpenRGBServerInfoPage(ResourceManager::get()->GetServer()); + ServerInfoPage->setObjectName(QString("SDK Server")); ui->MainTabBar->insertTab(2, ServerInfoPage, tr("SDK Server")); } @@ -1297,7 +1320,7 @@ void OpenRGBDialog2::UpdateDevicesList() /*-----------------------------------------------------*\ | Create the tab label | \*-----------------------------------------------------*/ - TabLabel* NewTabLabel = new TabLabel(GetIconString(controllers[controller_idx]->type, OpenRGBThemeManager::IsDarkTheme()), QString::fromStdString(controllers[controller_idx]->name)); + TabLabel* NewTabLabel = new TabLabel(GetIconString(controllers[controller_idx]->type, OpenRGBThemeManager::IsDarkTheme()), QString::fromStdString(controllers[controller_idx]->name), (char *)controllers[controller_idx]->name.c_str(), (char *)context); ui->DevicesTabBar->tabBar()->setTabButton(ui->DevicesTabBar->count() - 1, QTabBar::LeftSide, NewTabLabel); ui->DevicesTabBar->tabBar()->setTabToolTip(ui->DevicesTabBar->count() - 1, QString::fromStdString(controllers[controller_idx]->name)); @@ -1348,7 +1371,7 @@ void OpenRGBDialog2::UpdateDevicesList() /*-----------------------------------------------------*\ | Create the tab label | \*-----------------------------------------------------*/ - TabLabel* NewTabLabel = new TabLabel(GetIconString(controllers[controller_idx]->type, OpenRGBThemeManager::IsDarkTheme()), QString::fromStdString(controllers[controller_idx]->name)); + TabLabel* NewTabLabel = new TabLabel(GetIconString(controllers[controller_idx]->type, OpenRGBThemeManager::IsDarkTheme()), QString::fromStdString(controllers[controller_idx]->name), (char *)controllers[controller_idx]->name.c_str(), (char *)context); ui->InformationTabBar->tabBar()->setTabButton(ui->InformationTabBar->count() - 1, QTabBar::LeftSide, NewTabLabel); ui->InformationTabBar->tabBar()->setTabToolTip(ui->InformationTabBar->count() - 1, QString::fromStdString(controllers[controller_idx]->name)); @@ -1978,7 +2001,7 @@ void Ui::OpenRGBDialog2::AddConsolePage() /*-----------------------------------------------------*\ | Create the tab label | \*-----------------------------------------------------*/ - TabLabel* ConsoleTabLabel = new TabLabel(ConsoleLabelString, tr("Log Console")); + TabLabel* ConsoleTabLabel = new TabLabel(ConsoleLabelString, tr("Log Console"), (char *)"Log Console", (char *)context); ui->InformationTabBar->tabBar()->setTabButton(ui->InformationTabBar->tabBar()->count() - 1, QTabBar::LeftSide, ConsoleTabLabel); } diff --git a/qt/OpenRGBDialog2.h b/qt/OpenRGBDialog2.h index 24663b81..b8edc831 100644 --- a/qt/OpenRGBDialog2.h +++ b/qt/OpenRGBDialog2.h @@ -67,9 +67,12 @@ signals: void ProfileListChanged(); public slots: + void changeEvent(QEvent *event); void SetTrayIcon(bool tray_icon); private: + const char* context = "Ui::OpenRGBDialog2"; + /*-------------------------------------*\ | Page pointers | \*-------------------------------------*/ diff --git a/qt/OpenRGBE131SettingsPage/OpenRGBE131SettingsEntry.cpp b/qt/OpenRGBE131SettingsPage/OpenRGBE131SettingsEntry.cpp index 683ebf2c..3bccf739 100644 --- a/qt/OpenRGBE131SettingsPage/OpenRGBE131SettingsEntry.cpp +++ b/qt/OpenRGBE131SettingsPage/OpenRGBE131SettingsEntry.cpp @@ -37,6 +37,14 @@ OpenRGBE131SettingsEntry::~OpenRGBE131SettingsEntry() delete ui; } +void OpenRGBE131SettingsEntry::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} + void Ui::OpenRGBE131SettingsEntry::HideMatrixSettings() { ui->MatrixWidthLabel->setDisabled(true); diff --git a/qt/OpenRGBE131SettingsPage/OpenRGBE131SettingsEntry.h b/qt/OpenRGBE131SettingsPage/OpenRGBE131SettingsEntry.h index 5fa85610..ad8fb706 100644 --- a/qt/OpenRGBE131SettingsPage/OpenRGBE131SettingsEntry.h +++ b/qt/OpenRGBE131SettingsPage/OpenRGBE131SettingsEntry.h @@ -22,6 +22,7 @@ private: void ShowMatrixSettings(); private slots: + void changeEvent(QEvent *event); void on_TypeComboBox_currentIndexChanged(int index); }; diff --git a/qt/OpenRGBE131SettingsPage/OpenRGBE131SettingsPage.cpp b/qt/OpenRGBE131SettingsPage/OpenRGBE131SettingsPage.cpp index 2279def2..40a3e500 100644 --- a/qt/OpenRGBE131SettingsPage/OpenRGBE131SettingsPage.cpp +++ b/qt/OpenRGBE131SettingsPage/OpenRGBE131SettingsPage.cpp @@ -196,6 +196,14 @@ OpenRGBE131SettingsPage::~OpenRGBE131SettingsPage() delete ui; } +void OpenRGBE131SettingsPage::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} + void Ui::OpenRGBE131SettingsPage::on_AddE131DeviceButton_clicked() { OpenRGBE131SettingsEntry* entry = new OpenRGBE131SettingsEntry; diff --git a/qt/OpenRGBE131SettingsPage/OpenRGBE131SettingsPage.h b/qt/OpenRGBE131SettingsPage/OpenRGBE131SettingsPage.h index 3886a657..1bfa88da 100644 --- a/qt/OpenRGBE131SettingsPage/OpenRGBE131SettingsPage.h +++ b/qt/OpenRGBE131SettingsPage/OpenRGBE131SettingsPage.h @@ -19,6 +19,7 @@ public: ~OpenRGBE131SettingsPage(); private slots: + void changeEvent(QEvent *event); void on_AddE131DeviceButton_clicked(); void on_RemoveE131DeviceButton_clicked(); diff --git a/qt/OpenRGBElgatoKeyLightSettingsPage/OpenRGBElgatoKeyLightSettingsEntry.cpp b/qt/OpenRGBElgatoKeyLightSettingsPage/OpenRGBElgatoKeyLightSettingsEntry.cpp index 497ac716..a681bf52 100644 --- a/qt/OpenRGBElgatoKeyLightSettingsPage/OpenRGBElgatoKeyLightSettingsEntry.cpp +++ b/qt/OpenRGBElgatoKeyLightSettingsPage/OpenRGBElgatoKeyLightSettingsEntry.cpp @@ -14,3 +14,11 @@ OpenRGBElgatoKeyLightSettingsEntry::~OpenRGBElgatoKeyLightSettingsEntry() { delete ui; } + +void OpenRGBElgatoKeyLightSettingsEntry::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} diff --git a/qt/OpenRGBElgatoKeyLightSettingsPage/OpenRGBElgatoKeyLightSettingsEntry.h b/qt/OpenRGBElgatoKeyLightSettingsPage/OpenRGBElgatoKeyLightSettingsEntry.h index 5c4c8c03..82413b74 100644 --- a/qt/OpenRGBElgatoKeyLightSettingsPage/OpenRGBElgatoKeyLightSettingsEntry.h +++ b/qt/OpenRGBElgatoKeyLightSettingsPage/OpenRGBElgatoKeyLightSettingsEntry.h @@ -16,6 +16,9 @@ public: explicit OpenRGBElgatoKeyLightSettingsEntry(QWidget *parent = nullptr); ~OpenRGBElgatoKeyLightSettingsEntry(); Ui::OpenRGBElgatoKeyLightSettingsEntryUi *ui; + +private slots: + void changeEvent(QEvent *event); }; #endif // OPENRGBELGATOKEYLIGHTSETTINGSENTRY_H diff --git a/qt/OpenRGBElgatoKeyLightSettingsPage/OpenRGBElgatoKeyLightSettingsPage.cpp b/qt/OpenRGBElgatoKeyLightSettingsPage/OpenRGBElgatoKeyLightSettingsPage.cpp index 0969ef5b..8fb108ed 100644 --- a/qt/OpenRGBElgatoKeyLightSettingsPage/OpenRGBElgatoKeyLightSettingsPage.cpp +++ b/qt/OpenRGBElgatoKeyLightSettingsPage/OpenRGBElgatoKeyLightSettingsPage.cpp @@ -46,6 +46,14 @@ OpenRGBElgatoKeyLightSettingsPage::~OpenRGBElgatoKeyLightSettingsPage() delete ui; } +void OpenRGBElgatoKeyLightSettingsPage::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} + void Ui::OpenRGBElgatoKeyLightSettingsPage::on_AddElgatoKeyLightDeviceButton_clicked() { OpenRGBElgatoKeyLightSettingsEntry* entry = new OpenRGBElgatoKeyLightSettingsEntry; diff --git a/qt/OpenRGBElgatoKeyLightSettingsPage/OpenRGBElgatoKeyLightSettingsPage.h b/qt/OpenRGBElgatoKeyLightSettingsPage/OpenRGBElgatoKeyLightSettingsPage.h index 7d8fab14..ee87d453 100644 --- a/qt/OpenRGBElgatoKeyLightSettingsPage/OpenRGBElgatoKeyLightSettingsPage.h +++ b/qt/OpenRGBElgatoKeyLightSettingsPage/OpenRGBElgatoKeyLightSettingsPage.h @@ -19,6 +19,7 @@ public: ~OpenRGBElgatoKeyLightSettingsPage(); private slots: + void changeEvent(QEvent *event); void on_AddElgatoKeyLightDeviceButton_clicked(); void on_RemoveElgatoKeyLightDeviceButton_clicked(); diff --git a/qt/OpenRGBLIFXSettingsPage/OpenRGBLIFXSettingsEntry.cpp b/qt/OpenRGBLIFXSettingsPage/OpenRGBLIFXSettingsEntry.cpp index 9a1d8218..6fee7973 100644 --- a/qt/OpenRGBLIFXSettingsPage/OpenRGBLIFXSettingsEntry.cpp +++ b/qt/OpenRGBLIFXSettingsPage/OpenRGBLIFXSettingsEntry.cpp @@ -14,3 +14,11 @@ OpenRGBLIFXSettingsEntry::~OpenRGBLIFXSettingsEntry() { delete ui; } + +void OpenRGBLIFXSettingsEntry::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} diff --git a/qt/OpenRGBLIFXSettingsPage/OpenRGBLIFXSettingsEntry.h b/qt/OpenRGBLIFXSettingsPage/OpenRGBLIFXSettingsEntry.h index f56fb538..091bde96 100644 --- a/qt/OpenRGBLIFXSettingsPage/OpenRGBLIFXSettingsEntry.h +++ b/qt/OpenRGBLIFXSettingsPage/OpenRGBLIFXSettingsEntry.h @@ -16,6 +16,9 @@ public: explicit OpenRGBLIFXSettingsEntry(QWidget *parent = nullptr); ~OpenRGBLIFXSettingsEntry(); Ui::OpenRGBLIFXSettingsEntryUi *ui; + +private slots: + void changeEvent(QEvent *event); }; #endif // OPENRGBLIFXSETTINGSENTRY_H diff --git a/qt/OpenRGBLIFXSettingsPage/OpenRGBLIFXSettingsPage.cpp b/qt/OpenRGBLIFXSettingsPage/OpenRGBLIFXSettingsPage.cpp index 5a45d8ee..c51f25bf 100644 --- a/qt/OpenRGBLIFXSettingsPage/OpenRGBLIFXSettingsPage.cpp +++ b/qt/OpenRGBLIFXSettingsPage/OpenRGBLIFXSettingsPage.cpp @@ -54,6 +54,14 @@ OpenRGBLIFXSettingsPage::~OpenRGBLIFXSettingsPage() delete ui; } +void OpenRGBLIFXSettingsPage::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} + void Ui::OpenRGBLIFXSettingsPage::on_AddLIFXDeviceButton_clicked() { OpenRGBLIFXSettingsEntry* entry = new OpenRGBLIFXSettingsEntry; diff --git a/qt/OpenRGBLIFXSettingsPage/OpenRGBLIFXSettingsPage.h b/qt/OpenRGBLIFXSettingsPage/OpenRGBLIFXSettingsPage.h index ade0ef7c..73edbf5b 100644 --- a/qt/OpenRGBLIFXSettingsPage/OpenRGBLIFXSettingsPage.h +++ b/qt/OpenRGBLIFXSettingsPage/OpenRGBLIFXSettingsPage.h @@ -19,6 +19,7 @@ public: ~OpenRGBLIFXSettingsPage(); private slots: + void changeEvent(QEvent *event); void on_AddLIFXDeviceButton_clicked(); void on_RemoveLIFXDeviceButton_clicked(); diff --git a/qt/OpenRGBNanoleafSettingsPage/OpenRGBNanoleafSettingsEntry.cpp b/qt/OpenRGBNanoleafSettingsPage/OpenRGBNanoleafSettingsEntry.cpp index 6091e775..e27c40f9 100644 --- a/qt/OpenRGBNanoleafSettingsPage/OpenRGBNanoleafSettingsEntry.cpp +++ b/qt/OpenRGBNanoleafSettingsPage/OpenRGBNanoleafSettingsEntry.cpp @@ -47,6 +47,14 @@ OpenRGBNanoleafSettingsEntry::~OpenRGBNanoleafSettingsEntry() delete ui; } +void OpenRGBNanoleafSettingsEntry::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} + void OpenRGBNanoleafSettingsEntry::on_PairButton_clicked() { try diff --git a/qt/OpenRGBNanoleafSettingsPage/OpenRGBNanoleafSettingsEntry.h b/qt/OpenRGBNanoleafSettingsPage/OpenRGBNanoleafSettingsEntry.h index f89645e2..10f56bc4 100644 --- a/qt/OpenRGBNanoleafSettingsPage/OpenRGBNanoleafSettingsEntry.h +++ b/qt/OpenRGBNanoleafSettingsPage/OpenRGBNanoleafSettingsEntry.h @@ -21,6 +21,7 @@ public: Ui::OpenRGBNanoleafSettingsEntryUi *ui; private slots: + void changeEvent(QEvent *event); void on_UnpairButton_clicked(); void on_PairButton_clicked(); diff --git a/qt/OpenRGBNanoleafSettingsPage/OpenRGBNanoleafSettingsPage.cpp b/qt/OpenRGBNanoleafSettingsPage/OpenRGBNanoleafSettingsPage.cpp index 78f5678d..4dba4c39 100644 --- a/qt/OpenRGBNanoleafSettingsPage/OpenRGBNanoleafSettingsPage.cpp +++ b/qt/OpenRGBNanoleafSettingsPage/OpenRGBNanoleafSettingsPage.cpp @@ -44,6 +44,14 @@ OpenRGBNanoleafSettingsPage::~OpenRGBNanoleafSettingsPage() delete ui; } +void OpenRGBNanoleafSettingsPage::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} + void Ui::OpenRGBNanoleafSettingsPage::on_ScanForNanoleafDevicesButton_clicked() { /*-----------------------------------------------------*\ diff --git a/qt/OpenRGBNanoleafSettingsPage/OpenRGBNanoleafSettingsPage.h b/qt/OpenRGBNanoleafSettingsPage/OpenRGBNanoleafSettingsPage.h index af76e043..a5b8431a 100644 --- a/qt/OpenRGBNanoleafSettingsPage/OpenRGBNanoleafSettingsPage.h +++ b/qt/OpenRGBNanoleafSettingsPage/OpenRGBNanoleafSettingsPage.h @@ -20,6 +20,7 @@ public: ~OpenRGBNanoleafSettingsPage(); private slots: + void changeEvent(QEvent *event); void on_ScanForNanoleafDevicesButton_clicked(); void on_DeviceFound(QString address, int port); diff --git a/qt/OpenRGBPhilipsHueSettingsPage/OpenRGBPhilipsHueSettingsEntry.cpp b/qt/OpenRGBPhilipsHueSettingsPage/OpenRGBPhilipsHueSettingsEntry.cpp index e517f57f..449eb65e 100644 --- a/qt/OpenRGBPhilipsHueSettingsPage/OpenRGBPhilipsHueSettingsEntry.cpp +++ b/qt/OpenRGBPhilipsHueSettingsPage/OpenRGBPhilipsHueSettingsEntry.cpp @@ -15,6 +15,14 @@ OpenRGBPhilipsHueSettingsEntry::~OpenRGBPhilipsHueSettingsEntry() delete ui; } +void OpenRGBPhilipsHueSettingsEntry::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} + void Ui::OpenRGBPhilipsHueSettingsEntry::on_UnpairButton_clicked() { ui->UsernameValue->setText(""); diff --git a/qt/OpenRGBPhilipsHueSettingsPage/OpenRGBPhilipsHueSettingsEntry.h b/qt/OpenRGBPhilipsHueSettingsPage/OpenRGBPhilipsHueSettingsEntry.h index 810d8a31..d8d31535 100644 --- a/qt/OpenRGBPhilipsHueSettingsPage/OpenRGBPhilipsHueSettingsEntry.h +++ b/qt/OpenRGBPhilipsHueSettingsPage/OpenRGBPhilipsHueSettingsEntry.h @@ -17,6 +17,7 @@ public: ~OpenRGBPhilipsHueSettingsEntry(); Ui::OpenRGBPhilipsHueSettingsEntryUi *ui; private slots: + void changeEvent(QEvent *event); void on_UnpairButton_clicked(); }; diff --git a/qt/OpenRGBPhilipsHueSettingsPage/OpenRGBPhilipsHueSettingsPage.cpp b/qt/OpenRGBPhilipsHueSettingsPage/OpenRGBPhilipsHueSettingsPage.cpp index 22ddf100..5a7dcf92 100644 --- a/qt/OpenRGBPhilipsHueSettingsPage/OpenRGBPhilipsHueSettingsPage.cpp +++ b/qt/OpenRGBPhilipsHueSettingsPage/OpenRGBPhilipsHueSettingsPage.cpp @@ -74,6 +74,14 @@ OpenRGBPhilipsHueSettingsPage::~OpenRGBPhilipsHueSettingsPage() delete ui; } +void OpenRGBPhilipsHueSettingsPage::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} + void Ui::OpenRGBPhilipsHueSettingsPage::on_AddPhilipsHueDeviceButton_clicked() { OpenRGBPhilipsHueSettingsEntry* entry = new OpenRGBPhilipsHueSettingsEntry; diff --git a/qt/OpenRGBPhilipsHueSettingsPage/OpenRGBPhilipsHueSettingsPage.h b/qt/OpenRGBPhilipsHueSettingsPage/OpenRGBPhilipsHueSettingsPage.h index 6b56027d..990eb8d8 100644 --- a/qt/OpenRGBPhilipsHueSettingsPage/OpenRGBPhilipsHueSettingsPage.h +++ b/qt/OpenRGBPhilipsHueSettingsPage/OpenRGBPhilipsHueSettingsPage.h @@ -19,6 +19,7 @@ public: ~OpenRGBPhilipsHueSettingsPage(); private slots: + void changeEvent(QEvent *event); void on_AddPhilipsHueDeviceButton_clicked(); void on_RemovePhilipsHueDeviceButton_clicked(); diff --git a/qt/OpenRGBPhilipsWizSettingsPage/OpenRGBPhilipsWizSettingsEntry.cpp b/qt/OpenRGBPhilipsWizSettingsPage/OpenRGBPhilipsWizSettingsEntry.cpp index e6b2f946..c81f3c9f 100644 --- a/qt/OpenRGBPhilipsWizSettingsPage/OpenRGBPhilipsWizSettingsEntry.cpp +++ b/qt/OpenRGBPhilipsWizSettingsPage/OpenRGBPhilipsWizSettingsEntry.cpp @@ -14,3 +14,11 @@ OpenRGBPhilipsWizSettingsEntry::~OpenRGBPhilipsWizSettingsEntry() { delete ui; } + +void OpenRGBPhilipsWizSettingsEntry::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} diff --git a/qt/OpenRGBPhilipsWizSettingsPage/OpenRGBPhilipsWizSettingsEntry.h b/qt/OpenRGBPhilipsWizSettingsPage/OpenRGBPhilipsWizSettingsEntry.h index ddc4ee5a..246a0083 100644 --- a/qt/OpenRGBPhilipsWizSettingsPage/OpenRGBPhilipsWizSettingsEntry.h +++ b/qt/OpenRGBPhilipsWizSettingsPage/OpenRGBPhilipsWizSettingsEntry.h @@ -16,6 +16,9 @@ public: explicit OpenRGBPhilipsWizSettingsEntry(QWidget *parent = nullptr); ~OpenRGBPhilipsWizSettingsEntry(); Ui::OpenRGBPhilipsWizSettingsEntryUi *ui; + +private slots: + void changeEvent(QEvent *event); }; #endif // OPENRGBPHILIPSWIZSETTINGSENTRY_H diff --git a/qt/OpenRGBPhilipsWizSettingsPage/OpenRGBPhilipsWizSettingsPage.cpp b/qt/OpenRGBPhilipsWizSettingsPage/OpenRGBPhilipsWizSettingsPage.cpp index b4e7940c..09e146cb 100644 --- a/qt/OpenRGBPhilipsWizSettingsPage/OpenRGBPhilipsWizSettingsPage.cpp +++ b/qt/OpenRGBPhilipsWizSettingsPage/OpenRGBPhilipsWizSettingsPage.cpp @@ -49,6 +49,14 @@ OpenRGBPhilipsWizSettingsPage::~OpenRGBPhilipsWizSettingsPage() delete ui; } +void OpenRGBPhilipsWizSettingsPage::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} + void Ui::OpenRGBPhilipsWizSettingsPage::on_AddPhilipsWizDeviceButton_clicked() { OpenRGBPhilipsWizSettingsEntry* entry = new OpenRGBPhilipsWizSettingsEntry; diff --git a/qt/OpenRGBPhilipsWizSettingsPage/OpenRGBPhilipsWizSettingsPage.h b/qt/OpenRGBPhilipsWizSettingsPage/OpenRGBPhilipsWizSettingsPage.h index 6af02ecb..e51d707a 100644 --- a/qt/OpenRGBPhilipsWizSettingsPage/OpenRGBPhilipsWizSettingsPage.h +++ b/qt/OpenRGBPhilipsWizSettingsPage/OpenRGBPhilipsWizSettingsPage.h @@ -19,6 +19,7 @@ public: ~OpenRGBPhilipsWizSettingsPage(); private slots: + void changeEvent(QEvent *event); void on_AddPhilipsWizDeviceButton_clicked(); void on_RemovePhilipsWizDeviceButton_clicked(); diff --git a/qt/OpenRGBPluginContainer.cpp b/qt/OpenRGBPluginContainer.cpp index 840af3e3..8a54d763 100644 --- a/qt/OpenRGBPluginContainer.cpp +++ b/qt/OpenRGBPluginContainer.cpp @@ -20,6 +20,14 @@ Ui::OpenRGBPluginContainer::~OpenRGBPluginContainer() delete ui; } +void Ui::OpenRGBPluginContainer::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} + void Ui::OpenRGBPluginContainer::Hide() { plugin_widget->hide(); @@ -30,4 +38,4 @@ void Ui::OpenRGBPluginContainer::Show() { plugin_widget->show(); ui->PluginContainerLayout->layout()->invalidate(); -} \ No newline at end of file +} diff --git a/qt/OpenRGBPluginContainer.h b/qt/OpenRGBPluginContainer.h index 6cde4072..932d8fb1 100644 --- a/qt/OpenRGBPluginContainer.h +++ b/qt/OpenRGBPluginContainer.h @@ -24,6 +24,9 @@ public: private: Ui::OpenRGBPluginContainerUi *ui; + +private slots: + void changeEvent(QEvent *event); }; #endif // OPENRGBPLUGINCONTAINER_H diff --git a/qt/OpenRGBPluginsPage/OpenRGBPluginsEntry.cpp b/qt/OpenRGBPluginsPage/OpenRGBPluginsEntry.cpp index be1bd6ef..1cfa21d6 100644 --- a/qt/OpenRGBPluginsPage/OpenRGBPluginsEntry.cpp +++ b/qt/OpenRGBPluginsPage/OpenRGBPluginsEntry.cpp @@ -18,6 +18,14 @@ OpenRGBPluginsEntry::~OpenRGBPluginsEntry() delete ui; } +void OpenRGBPluginsEntry::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} + void OpenRGBPluginsEntry::RegisterEnableClickCallback(EnableClickCallback new_callback, void * new_callback_arg) { EnableClickCallbackVal = new_callback; diff --git a/qt/OpenRGBPluginsPage/OpenRGBPluginsEntry.h b/qt/OpenRGBPluginsPage/OpenRGBPluginsEntry.h index 99741047..b21c8209 100644 --- a/qt/OpenRGBPluginsPage/OpenRGBPluginsEntry.h +++ b/qt/OpenRGBPluginsPage/OpenRGBPluginsEntry.h @@ -23,6 +23,7 @@ public: void RegisterEnableClickCallback(EnableClickCallback new_callback, void * new_callback_arg); private slots: + void changeEvent(QEvent *event); void on_EnabledCheckBox_stateChanged(int checked); private: diff --git a/qt/OpenRGBPluginsPage/OpenRGBPluginsPage.cpp b/qt/OpenRGBPluginsPage/OpenRGBPluginsPage.cpp index 827f6023..be34283e 100644 --- a/qt/OpenRGBPluginsPage/OpenRGBPluginsPage.cpp +++ b/qt/OpenRGBPluginsPage/OpenRGBPluginsPage.cpp @@ -30,6 +30,14 @@ Ui::OpenRGBPluginsPage::~OpenRGBPluginsPage() delete ui; } +void Ui::OpenRGBPluginsPage::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} + void Ui::OpenRGBPluginsPage::RefreshList() { ui->PluginsList->clear(); diff --git a/qt/OpenRGBPluginsPage/OpenRGBPluginsPage.h b/qt/OpenRGBPluginsPage/OpenRGBPluginsPage.h index 0a20f7ab..879bd11a 100644 --- a/qt/OpenRGBPluginsPage/OpenRGBPluginsPage.h +++ b/qt/OpenRGBPluginsPage/OpenRGBPluginsPage.h @@ -22,12 +22,13 @@ public: void on_EnableButton_clicked(OpenRGBPluginsEntry* entry); private slots: + void changeEvent(QEvent *event); void on_InstallPluginButton_clicked(); void on_RemovePluginButton_clicked(); void on_PluginsList_itemSelectionChanged(); - + void on_PluginsList_PluginsDropped(std::vector); private: diff --git a/qt/OpenRGBProfileSaveDialog.cpp b/qt/OpenRGBProfileSaveDialog.cpp index 01a690cd..eabd27e5 100644 --- a/qt/OpenRGBProfileSaveDialog.cpp +++ b/qt/OpenRGBProfileSaveDialog.cpp @@ -19,6 +19,14 @@ Ui::OpenRGBProfileSaveDialog::~OpenRGBProfileSaveDialog() delete ui; } +void Ui::OpenRGBProfileSaveDialog::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} + std::string Ui::OpenRGBProfileSaveDialog::show() { std::string return_string; diff --git a/qt/OpenRGBProfileSaveDialog.h b/qt/OpenRGBProfileSaveDialog.h index 3bcdfc24..b194d7a9 100644 --- a/qt/OpenRGBProfileSaveDialog.h +++ b/qt/OpenRGBProfileSaveDialog.h @@ -22,6 +22,9 @@ public: private: Ui::OpenRGBProfileSaveDialogUi *ui; + +private slots: + void changeEvent(QEvent *event); }; #endif // OPENRGBPROFILESAVEDIALOG_H diff --git a/qt/OpenRGBQMKORGBSettingsPage/OpenRGBQMKORGBSettingsEntry.cpp b/qt/OpenRGBQMKORGBSettingsPage/OpenRGBQMKORGBSettingsEntry.cpp index 4016cf72..590436ba 100644 --- a/qt/OpenRGBQMKORGBSettingsPage/OpenRGBQMKORGBSettingsEntry.cpp +++ b/qt/OpenRGBQMKORGBSettingsPage/OpenRGBQMKORGBSettingsEntry.cpp @@ -14,3 +14,11 @@ OpenRGBQMKORGBSettingsEntry::~OpenRGBQMKORGBSettingsEntry() { delete ui; } + +void OpenRGBQMKORGBSettingsEntry::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} diff --git a/qt/OpenRGBQMKORGBSettingsPage/OpenRGBQMKORGBSettingsEntry.h b/qt/OpenRGBQMKORGBSettingsPage/OpenRGBQMKORGBSettingsEntry.h index c4df39f0..e8775719 100644 --- a/qt/OpenRGBQMKORGBSettingsPage/OpenRGBQMKORGBSettingsEntry.h +++ b/qt/OpenRGBQMKORGBSettingsPage/OpenRGBQMKORGBSettingsEntry.h @@ -12,6 +12,9 @@ class Ui::OpenRGBQMKORGBSettingsEntry : public QWidget { Q_OBJECT +private slots: + void changeEvent(QEvent *event); + public: explicit OpenRGBQMKORGBSettingsEntry(QWidget *parent = nullptr); ~OpenRGBQMKORGBSettingsEntry(); diff --git a/qt/OpenRGBQMKORGBSettingsPage/OpenRGBQMKORGBSettingsPage.cpp b/qt/OpenRGBQMKORGBSettingsPage/OpenRGBQMKORGBSettingsPage.cpp index e08831e3..97663ddc 100644 --- a/qt/OpenRGBQMKORGBSettingsPage/OpenRGBQMKORGBSettingsPage.cpp +++ b/qt/OpenRGBQMKORGBSettingsPage/OpenRGBQMKORGBSettingsPage.cpp @@ -59,6 +59,14 @@ OpenRGBQMKORGBSettingsPage::~OpenRGBQMKORGBSettingsPage() delete ui; } +void OpenRGBQMKORGBSettingsPage::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} + void Ui::OpenRGBQMKORGBSettingsPage::on_AddQMKORGBDeviceButton_clicked() { OpenRGBQMKORGBSettingsEntry* entry = new OpenRGBQMKORGBSettingsEntry; diff --git a/qt/OpenRGBQMKORGBSettingsPage/OpenRGBQMKORGBSettingsPage.h b/qt/OpenRGBQMKORGBSettingsPage/OpenRGBQMKORGBSettingsPage.h index 964ce1a2..81e51307 100644 --- a/qt/OpenRGBQMKORGBSettingsPage/OpenRGBQMKORGBSettingsPage.h +++ b/qt/OpenRGBQMKORGBSettingsPage/OpenRGBQMKORGBSettingsPage.h @@ -19,6 +19,7 @@ public: ~OpenRGBQMKORGBSettingsPage(); private slots: + void changeEvent(QEvent *event); void on_AddQMKORGBDeviceButton_clicked(); void on_RemoveQMKORGBDeviceButton_clicked(); diff --git a/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsEntry.cpp b/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsEntry.cpp index 0f69cdc4..dac20b0d 100644 --- a/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsEntry.cpp +++ b/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsEntry.cpp @@ -18,3 +18,11 @@ OpenRGBSerialSettingsEntry::~OpenRGBSerialSettingsEntry() { delete ui; } + +void OpenRGBSerialSettingsEntry::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} diff --git a/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsEntry.h b/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsEntry.h index fda38799..c9733fec 100644 --- a/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsEntry.h +++ b/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsEntry.h @@ -12,6 +12,9 @@ class Ui::OpenRGBSerialSettingsEntry : public QWidget { Q_OBJECT +private slots: + void changeEvent(QEvent *event); + public: explicit OpenRGBSerialSettingsEntry(QWidget *parent = nullptr); ~OpenRGBSerialSettingsEntry(); diff --git a/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsPage.cpp b/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsPage.cpp index aea12978..6ca9c05c 100644 --- a/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsPage.cpp +++ b/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsPage.cpp @@ -82,6 +82,14 @@ OpenRGBSerialSettingsPage::~OpenRGBSerialSettingsPage() delete ui; } +void OpenRGBSerialSettingsPage::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} + void Ui::OpenRGBSerialSettingsPage::on_AddSerialDeviceButton_clicked() { OpenRGBSerialSettingsEntry* entry = new OpenRGBSerialSettingsEntry; diff --git a/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsPage.h b/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsPage.h index 14f7b626..98f15b48 100644 --- a/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsPage.h +++ b/qt/OpenRGBSerialSettingsPage/OpenRGBSerialSettingsPage.h @@ -19,6 +19,7 @@ public: ~OpenRGBSerialSettingsPage(); private slots: + void changeEvent(QEvent *event); void on_AddSerialDeviceButton_clicked(); void on_RemoveSerialDeviceButton_clicked(); diff --git a/qt/OpenRGBServerInfoPage.cpp b/qt/OpenRGBServerInfoPage.cpp index 9f44ec4a..2580c8a9 100644 --- a/qt/OpenRGBServerInfoPage.cpp +++ b/qt/OpenRGBServerInfoPage.cpp @@ -28,6 +28,14 @@ OpenRGBServerInfoPage::~OpenRGBServerInfoPage() delete ui; } +void OpenRGBServerInfoPage::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} + void OpenRGBServerInfoPage::UpdateInfo() { ui->ServerHostValue->setText(network_server->GetHost().c_str()); @@ -59,8 +67,6 @@ void OpenRGBServerInfoPage::UpdateInfo() } ui->ServerClientTree->clear(); - ui->ServerClientTree->setColumnCount(3); - ui->ServerClientTree->setHeaderLabels(QStringList() << tr("Client IP") << tr("Protocol Version") << tr("Client Name")); for(unsigned int client_idx = 0; client_idx < network_server->GetNumClients(); client_idx++) { QTreeWidgetItem * new_item = new QTreeWidgetItem(); diff --git a/qt/OpenRGBServerInfoPage.h b/qt/OpenRGBServerInfoPage.h index 12136f6a..8fd7555c 100644 --- a/qt/OpenRGBServerInfoPage.h +++ b/qt/OpenRGBServerInfoPage.h @@ -22,6 +22,7 @@ public slots: void UpdateInfo(); private slots: + void changeEvent(QEvent *event); void on_ServerStartButton_clicked(); void on_ServerStopButton_clicked(); diff --git a/qt/OpenRGBServerInfoPage.ui b/qt/OpenRGBServerInfoPage.ui index cee5dace..3df2a6e0 100644 --- a/qt/OpenRGBServerInfoPage.ui +++ b/qt/OpenRGBServerInfoPage.ui @@ -38,8 +38,23 @@ - 0 + 3 + + + Client IP + + + + + Protocol Version + + + + + Client Name + + diff --git a/qt/OpenRGBSettingsPage.cpp b/qt/OpenRGBSettingsPage.cpp index bc332da0..c79cb120 100644 --- a/qt/OpenRGBSettingsPage.cpp +++ b/qt/OpenRGBSettingsPage.cpp @@ -1,6 +1,7 @@ #include "AutoStart.h" #include "OpenRGBSettingsPage.h" #include "ui_OpenRGBSettingsPage.h" +#include "LogManager.h" #include "ResourceManager.h" #include #include @@ -13,6 +14,43 @@ OpenRGBSettingsPage::OpenRGBSettingsPage(QWidget *parent) : { ui->setupUi(this); + /*---------------------------------------------------------*\ + | App translation | + | To add a new language: | + | Add an entry to TRANSLATIONS in OpenRGB.pro | + | Then run lupdate OpenRGB.pro to generate the new file | + | | + | Edit this file with | + | linguist qt/i18n/OpenRGB_en.ts qt/i18n/OpenRGB_XX.ts | + | or manually with any text editor | + \*---------------------------------------------------------*/ + + /*---------------------------------------------------------*\ + | Load available languages | + | Tehcnically the QString is unused but declared | + | here to show up in the translation file. | + \*---------------------------------------------------------*/ + QTranslator translator; + QMap map; + QString language = tr("English - US"); + + QDirIterator file(":/i18n/", QDirIterator::Subdirectories); + while(file.hasNext()) + { + translator.load(file.next()); + map.insert(translator.translate("Ui::OpenRGBSettingsPage", "English - US"), file.filePath()); + } + + ui->ComboBoxLanguage->blockSignals(true); + ui->ComboBoxLanguage->addItem(tr("System Default"), "default"); + QMapIterator i(map); + while(i.hasNext()) + { + i.next(); + ui->ComboBoxLanguage->addItem(i.key(), i.value()); + } + ui->ComboBoxLanguage->blockSignals(false); + /*---------------------------------------------------------*\ | Load theme settings | \*---------------------------------------------------------*/ @@ -37,6 +75,21 @@ OpenRGBSettingsPage::OpenRGBSettingsPage(QWidget *parent) : \*---------------------------------------------------------*/ json ui_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("UserInterface"); + if(ui_settings.contains("language")) + { + /*-----------------------------------------------------*\ + | Get the language preference from settings | + | and check the language combobox for a match | + \*-----------------------------------------------------*/ + std::string language = ui_settings["language"].get(); + int language_index = ui->ComboBoxLanguage->findText(QString::fromStdString(language)); + + if(language_index > -1) + { + ui->ComboBoxLanguage->setCurrentIndex(language_index); + } + } + if(ui_settings.contains("greyscale_tray_icon")) { ui->CheckboxTrayIconGreyscale->setChecked(ui_settings["greyscale_tray_icon"]); @@ -158,6 +211,14 @@ OpenRGBSettingsPage::~OpenRGBSettingsPage() delete ui; } +void OpenRGBSettingsPage::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} + void OpenRGBSettingsPage::UpdateProfiles() { /*---------------------------------------------------------*\ @@ -240,6 +301,44 @@ void OpenRGBSettingsPage::UpdateProfiles() } } +void OpenRGBSettingsPage::on_ComboBoxLanguage_currentTextChanged(const QString language) +{ + + bool loaded = false; + QString file = ui->ComboBoxLanguage->currentData().toString(); + QApplication* app = static_cast(QApplication::instance()); + + app->removeTranslator(&translator); + + if(file == "default") + { + QLocale locale = QLocale(QLocale::system()); + QLocale::setDefault(locale); + + loaded = translator.load(":/i18n/" + QString("OpenRGB_%1.qm").arg(locale.name())); + } + else + { + loaded = translator.load(file); + } + + if(loaded) + { + app->installTranslator(&translator); + LOG_DEBUG("[Settings] Changed Language to %s from the %s file\n", language, file); + + json ui_settings = ResourceManager::get()->GetSettingsManager()->GetSettings("UserInterface"); + std::string saved = ui_settings["language"].get(); + + if(saved != language.toStdString()) + { + ui_settings["language"] = language.toStdString(); + ResourceManager::get()->GetSettingsManager()->SetSettings("UserInterface",ui_settings); + SaveSettings(); + } + } +} + void OpenRGBSettingsPage::on_ComboBoxTheme_currentTextChanged(const QString theme) { if(theme_initialized) diff --git a/qt/OpenRGBSettingsPage.h b/qt/OpenRGBSettingsPage.h index e5832719..12ece198 100644 --- a/qt/OpenRGBSettingsPage.h +++ b/qt/OpenRGBSettingsPage.h @@ -2,6 +2,9 @@ #define SETTINGSPAGE_H #include "ui_OpenRGBSettingsPage.h" +#include +#include +#include #include #include "ResourceManager.h" @@ -36,8 +39,11 @@ private: bool theme_initialized = false; bool autostart_initialized = false; + QTranslator translator; private slots: + void changeEvent(QEvent *event); + void on_ComboBoxLanguage_currentTextChanged(const QString); void on_ComboBoxTheme_currentTextChanged(const QString); void on_CheckboxMinimizeOnClose_clicked(); void on_CheckboxTrayIconGreyscale_clicked(); diff --git a/qt/OpenRGBSettingsPage.ui b/qt/OpenRGBSettingsPage.ui index 4c50898f..3890a686 100644 --- a/qt/OpenRGBSettingsPage.ui +++ b/qt/OpenRGBSettingsPage.ui @@ -31,18 +31,21 @@ 0 0 - 408 - 556 + 427 + 764 - + Log Manager Settings: + + + @@ -50,150 +53,52 @@ - - - - Save Geometry On Close - - - - - - - - - - - - - Run zone checks on rescan - - - - - - - Set Profile on Exit - - - - - - - - - - Start Minimized - - - - - - - AMD SMBus: Reduce CPU Usage (restart required) - - - - - - - Start Client - - - - - - - Start Server - - - - - - - - - - Set Server Host - - - - + Enable Log Console (restart required) - - + + - Start At Login Settings: + Start Server - + - - - - 90000 - - - - - - - - - - - - - Minimize On Close - - - - - - - Greyscale Tray Icon - - - - - - - Start at Login Status - - - - - - - Theme (restart required) - - - - + Start At Login - - - - - + + - Set Server Port + Start At Login Settings: - + + + + Theme (restart required) + + + + + + + Drivers Settings + + + + Qt::Vertical @@ -209,14 +114,24 @@ - - + + - Drivers Settings + Save Geometry On Close - + + + + Start Client + + + + + + + Load Profile @@ -224,26 +139,121 @@ + + + Greyscale Tray Icon + + + + + + + Start at Login Status + + + + + + + AMD SMBus: Reduce CPU Usage (restart required) + + + + + + + Start Minimized + + + + Load Window Geometry - + + + + + + + 90000 + + + + + + + + + + + + + + + + Set Profile on Exit + + + + Custom Arguments - + + + + Minimize On Close + + + + Shared SMBus Access (restart required) + + + + + + + Set Server Host + + + + + + + Set Server Port + + + + + + + Run zone checks on rescan + + + + + + + Language + + + + + + diff --git a/qt/OpenRGBSoftwareInfoPage.cpp b/qt/OpenRGBSoftwareInfoPage.cpp index e6872e44..dfc845c3 100644 --- a/qt/OpenRGBSoftwareInfoPage.cpp +++ b/qt/OpenRGBSoftwareInfoPage.cpp @@ -19,3 +19,11 @@ OpenRGBSoftwareInfoPage::~OpenRGBSoftwareInfoPage() { delete ui; } + +void OpenRGBSoftwareInfoPage::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} diff --git a/qt/OpenRGBSoftwareInfoPage.h b/qt/OpenRGBSoftwareInfoPage.h index 31f7b8a8..baff9b78 100644 --- a/qt/OpenRGBSoftwareInfoPage.h +++ b/qt/OpenRGBSoftwareInfoPage.h @@ -18,6 +18,9 @@ public: private: Ui::OpenRGBSoftwareInfoPageUi *ui; + +private slots: + void changeEvent(QEvent *event); }; #endif // OPENRGBSOFTWAREINFOPAGE_H diff --git a/qt/OpenRGBSupportedDevicesPage.cpp b/qt/OpenRGBSupportedDevicesPage.cpp index 16ddd7fd..1f5c6da7 100644 --- a/qt/OpenRGBSupportedDevicesPage.cpp +++ b/qt/OpenRGBSupportedDevicesPage.cpp @@ -39,6 +39,14 @@ OpenRGBSupportedDevicesPage::~OpenRGBSupportedDevicesPage() delete ui; } +void OpenRGBSupportedDevicesPage::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} + void OpenRGBSupportedDevicesPage::on_SaveButton_clicked() { detectorTableModel->applySettings(); diff --git a/qt/OpenRGBSupportedDevicesPage.h b/qt/OpenRGBSupportedDevicesPage.h index b0bea4c1..cee65032 100644 --- a/qt/OpenRGBSupportedDevicesPage.h +++ b/qt/OpenRGBSupportedDevicesPage.h @@ -21,6 +21,7 @@ public: QSortFilterProxyModel* detectorSortModel; private slots: + void changeEvent(QEvent *event); void on_SaveButton_clicked(); void on_Filter_textChanged(const QString &arg1); diff --git a/qt/OpenRGBSystemInfoPage.cpp b/qt/OpenRGBSystemInfoPage.cpp index 32fe00e0..442231a9 100644 --- a/qt/OpenRGBSystemInfoPage.cpp +++ b/qt/OpenRGBSystemInfoPage.cpp @@ -47,6 +47,14 @@ OpenRGBSystemInfoPage::~OpenRGBSystemInfoPage() delete ui; } +void OpenRGBSystemInfoPage::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} + void Ui::OpenRGBSystemInfoPage::UpdateBusList() { /*-----------------------------------------------------*\ @@ -100,7 +108,7 @@ void Ui::OpenRGBSystemInfoPage::on_DumpButton_clicked() { current_index = 0; } - + if((int)(busses.size()) > current_index) { i2c_smbus_interface* bus = busses[current_index]; diff --git a/qt/OpenRGBSystemInfoPage.h b/qt/OpenRGBSystemInfoPage.h index bc6255cd..12c222a4 100644 --- a/qt/OpenRGBSystemInfoPage.h +++ b/qt/OpenRGBSystemInfoPage.h @@ -21,6 +21,7 @@ public slots: void UpdateBusList(); private slots: + void changeEvent(QEvent *event); void on_DetectButton_clicked(); void on_DumpButton_clicked(); diff --git a/qt/OpenRGBYeelightSettingsPage/OpenRGBYeelightSettingsEntry.cpp b/qt/OpenRGBYeelightSettingsPage/OpenRGBYeelightSettingsEntry.cpp index 286a9f13..d54307c3 100644 --- a/qt/OpenRGBYeelightSettingsPage/OpenRGBYeelightSettingsEntry.cpp +++ b/qt/OpenRGBYeelightSettingsPage/OpenRGBYeelightSettingsEntry.cpp @@ -17,6 +17,14 @@ OpenRGBYeelightSettingsEntry::~OpenRGBYeelightSettingsEntry() delete ui; } +void OpenRGBYeelightSettingsEntry::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} + void OpenRGBYeelightSettingsEntry::on_HostIPChooserButton_clicked() { char hostname[256]; diff --git a/qt/OpenRGBYeelightSettingsPage/OpenRGBYeelightSettingsEntry.h b/qt/OpenRGBYeelightSettingsPage/OpenRGBYeelightSettingsEntry.h index 9dcbb6ac..c2912093 100644 --- a/qt/OpenRGBYeelightSettingsPage/OpenRGBYeelightSettingsEntry.h +++ b/qt/OpenRGBYeelightSettingsPage/OpenRGBYeelightSettingsEntry.h @@ -18,6 +18,7 @@ public: Ui::OpenRGBYeelightSettingsEntryUi *ui; private slots: + void changeEvent(QEvent *event); void on_HostIPChooserButton_clicked(); }; diff --git a/qt/OpenRGBYeelightSettingsPage/OpenRGBYeelightSettingsPage.cpp b/qt/OpenRGBYeelightSettingsPage/OpenRGBYeelightSettingsPage.cpp index 25f6587f..2f45abc6 100644 --- a/qt/OpenRGBYeelightSettingsPage/OpenRGBYeelightSettingsPage.cpp +++ b/qt/OpenRGBYeelightSettingsPage/OpenRGBYeelightSettingsPage.cpp @@ -59,6 +59,14 @@ OpenRGBYeelightSettingsPage::~OpenRGBYeelightSettingsPage() delete ui; } +void OpenRGBYeelightSettingsPage::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} + void Ui::OpenRGBYeelightSettingsPage::on_AddYeelightDeviceButton_clicked() { OpenRGBYeelightSettingsEntry* entry = new OpenRGBYeelightSettingsEntry; diff --git a/qt/OpenRGBYeelightSettingsPage/OpenRGBYeelightSettingsPage.h b/qt/OpenRGBYeelightSettingsPage/OpenRGBYeelightSettingsPage.h index baf67ad9..a6ccfe46 100644 --- a/qt/OpenRGBYeelightSettingsPage/OpenRGBYeelightSettingsPage.h +++ b/qt/OpenRGBYeelightSettingsPage/OpenRGBYeelightSettingsPage.h @@ -19,6 +19,7 @@ public: ~OpenRGBYeelightSettingsPage(); private slots: + void changeEvent(QEvent *event); void on_AddYeelightDeviceButton_clicked(); void on_RemoveYeelightDeviceButton_clicked(); diff --git a/qt/OpenRGBZoneResizeDialog.cpp b/qt/OpenRGBZoneResizeDialog.cpp index d3aeca7c..4f9d9b8f 100644 --- a/qt/OpenRGBZoneResizeDialog.cpp +++ b/qt/OpenRGBZoneResizeDialog.cpp @@ -20,6 +20,14 @@ OpenRGBZoneResizeDialog::~OpenRGBZoneResizeDialog() delete ui; } +void OpenRGBZoneResizeDialog::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} + void Ui::OpenRGBZoneResizeDialog::on_ResizeSlider_valueChanged(int value) { ui->ResizeBox->blockSignals(true); diff --git a/qt/OpenRGBZoneResizeDialog.h b/qt/OpenRGBZoneResizeDialog.h index 300c389f..599b5d4b 100644 --- a/qt/OpenRGBZoneResizeDialog.h +++ b/qt/OpenRGBZoneResizeDialog.h @@ -19,6 +19,7 @@ public: int show(); private slots: + void changeEvent(QEvent *event); void on_ResizeSlider_valueChanged(int value); void on_ResizeBox_valueChanged(int arg1); diff --git a/qt/OpenRGBZonesBulkResizer.cpp b/qt/OpenRGBZonesBulkResizer.cpp index ec4fd353..7bd37688 100644 --- a/qt/OpenRGBZonesBulkResizer.cpp +++ b/qt/OpenRGBZonesBulkResizer.cpp @@ -117,6 +117,14 @@ OpenRGBZonesBulkResizer::~OpenRGBZonesBulkResizer() delete ui; } +void OpenRGBZonesBulkResizer::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + ui->retranslateUi(this); + } +} + void OpenRGBZonesBulkResizer::CreateZoneWidget(RGBController* controller, unsigned int zone_index) { /*---------------------------------------------------------*\ diff --git a/qt/OpenRGBZonesBulkResizer.h b/qt/OpenRGBZonesBulkResizer.h index a2353cd4..9b79134a 100644 --- a/qt/OpenRGBZonesBulkResizer.h +++ b/qt/OpenRGBZonesBulkResizer.h @@ -13,7 +13,7 @@ class Ui::OpenRGBZonesBulkResizer : public QWidget { Q_OBJECT -public: +public: static void RunChecks(QWidget *parent); explicit OpenRGBZonesBulkResizer(QWidget*, const std::vector>&); @@ -32,6 +32,7 @@ signals: void CloseRequest(); private slots: + void changeEvent(QEvent *event); void on_save_button_clicked(); void on_ignore_button_clicked(); diff --git a/qt/TabLabel.cpp b/qt/TabLabel.cpp index 56926f5f..b4f91c72 100644 --- a/qt/TabLabel.cpp +++ b/qt/TabLabel.cpp @@ -1,16 +1,34 @@ #include "TabLabel.h" #include -Ui::TabLabel::TabLabel(QString icon, QString name) : +Ui::TabLabel::TabLabel(QString icon, QString name, char* original, char* context) : QWidget(nullptr), ui(new Ui::TabLabelUi) { ui->setupUi(this); ui->icon->setText(""); ui->name->setText(name); + label = original; + ctxt = context; } Ui::TabLabel::~TabLabel() { delete ui; } + +void Ui::TabLabel::changeEvent(QEvent *event) +{ + if(event->type() == QEvent::LanguageChange) + { + /*-----------------------------------------------------*\ + | Storing the base string in label | + | enables switching between multiple languages | + | The context needs to be stored as the translation | + | file requires the originating context | + \*-----------------------------------------------------*/ + QApplication* app = static_cast(QApplication::instance()); + + ui->name->setText(app->translate(ctxt, label)); + } +} diff --git a/qt/TabLabel.h b/qt/TabLabel.h index 45fad649..68a7920d 100644 --- a/qt/TabLabel.h +++ b/qt/TabLabel.h @@ -13,11 +13,16 @@ class Ui::TabLabel : public QWidget Q_OBJECT public: - TabLabel(QString icon, QString name); + TabLabel(QString icon, QString name, char* original, char* context); ~TabLabel(); private: Ui::TabLabelUi *ui; + char* label; + char* ctxt; + +private slots: + void changeEvent(QEvent *event); }; #endif // TABLABEL_H diff --git a/qt/i18n/OpenRGB_de.ts b/qt/i18n/OpenRGB_de.ts index e52ad245..7b6c8d9a 100644 --- a/qt/i18n/OpenRGB_de.ts +++ b/qt/i18n/OpenRGB_de.ts @@ -30,6 +30,18 @@ Client info page Client-Information + + Connected Clients + Verbundene Clients + + + Protocol Version + Protokollversion + + + Save Connection + Verbindung speichern + OpenRGBConsolePageUi @@ -360,6 +372,112 @@ E1.31 Einstellungen + + OpenRGBElgatoKeyLightSettingsEntryUi + + Dialog + + + + IP: + IP: + + + + OpenRGBElgatoKeyLightSettingsPageUi + + Dialog + + + + Add + Hinzufügen + + + Remove + Entfernen + + + Save + Speichern + + + + OpenRGBLIFXSettingsEntryUi + + Form + + + + IP: + IP: + + + Name + Name + + + + OpenRGBLIFXSettingsPageUi + + Form + + + + Add + Hinzufügen + + + Remove + Entfernen + + + Save + Speichern + + + + OpenRGBNanoleafSettingsEntryUi + + Form + + + + IP: + IP: + + + Port: + Port: + + + Auth Key: + + + + Unpair + + + + Pair + + + + + OpenRGBNanoleafSettingsPageUi + + Form + + + + Scan + + + + To pair, hold the on-off button down for 5-7 seconds until the LED starts flashing in a pattern, then click the "Pair" button within 30 seconds. + + + OpenRGBPhilipsHueSettingsEntryUi @@ -388,7 +506,15 @@ Philips Hue settings entry - Philips Hue Eintrag + Philips Hue Eintrag + + + Form + + + + Auto Connect Group: + @@ -504,6 +630,10 @@ Plugins page Plugins + + <html><head/><body>Looking for plugins? See the official list at <a href="https://openrgb.org/plugins.html">OpenRGB.org</a></body></html> + + OpenRGBProfileSaveDialogUi @@ -630,6 +760,22 @@ Server info page Server Information + + Server Host: + + + + Client IP + Client IP + + + Protocol Version + Protokollversion + + + Client Name + Client-Name + OpenRGBSettingsPageUi @@ -729,6 +875,18 @@ Settings page Einstellungen + + Shared SMBus Access (restart required) + + + + Set Server Host + + + + Language + + OpenRGBSoftwareInfoPageUi @@ -942,15 +1100,15 @@ Ui::OpenRGBClientInfoPage Connected Clients - Verbundene Clients + Verbundene Clients Protocol Version - Protokollversion + Protokollversion Save Connection - Verbindung speichern + Verbindung speichern Disconnect @@ -1159,6 +1317,18 @@ Log Console Log-Konsole + + LIFX Devices + + + + Nanoleaf Devices + + + + Elgato KeyLight Devices + + Ui::OpenRGBE131SettingsEntry @@ -1250,15 +1420,15 @@ Client IP - Client IP + Client IP Protocol Version - Protokollversion + Protokollversion Client Name - Client-Name + Client-Name @@ -1267,6 +1437,14 @@ A problem occurred enabling Start At Login. Bei der Aktivierung von "Start bei Anmeldung" ist ein Problem aufgetreten. + + English - US + Deutsch + + + System Default + + Ui::OpenRGBYeelightSettingsEntry diff --git a/qt/i18n/OpenRGB_en.ts b/qt/i18n/OpenRGB_en.ts index 36aec62e..deceb1bc 100644 --- a/qt/i18n/OpenRGB_en.ts +++ b/qt/i18n/OpenRGB_en.ts @@ -30,6 +30,18 @@ IP: + + Connected Clients + + + + Protocol Version + + + + Save Connection + + OpenRGBConsolePageUi @@ -361,15 +373,117 @@ - OpenRGBPhilipsHueSettingsEntryUi + OpenRGBElgatoKeyLightSettingsEntryUi - Philips Hue settings entry + Dialog IP: + + + OpenRGBElgatoKeyLightSettingsPageUi + + Dialog + + + + Add + + + + Remove + + + + Save + + + + + OpenRGBLIFXSettingsEntryUi + + Form + + + + IP: + + + + Name + + + + + OpenRGBLIFXSettingsPageUi + + Form + + + + Add + + + + Remove + + + + Save + + + + + OpenRGBNanoleafSettingsEntryUi + + Form + + + + IP: + + + + Port: + + + + Auth Key: + + + + Unpair + + + + Pair + + + + + OpenRGBNanoleafSettingsPageUi + + Form + + + + Scan + + + + To pair, hold the on-off button down for 5-7 seconds until the LED starts flashing in a pattern, then click the "Pair" button within 30 seconds. + + + + + OpenRGBPhilipsHueSettingsEntryUi + + IP: + + Entertainment Mode: @@ -390,6 +504,14 @@ MAC: + + Form + + + + Auto Connect Group: + + OpenRGBPhilipsHueSettingsPageUi @@ -504,6 +626,10 @@ Remove Plugin + + <html><head/><body>Looking for plugins? See the official list at <a href="https://openrgb.org/plugins.html">OpenRGB.org</a></body></html> + + OpenRGBProfileSaveDialogUi @@ -630,6 +756,22 @@ Connected Clients: + + Server Host: + + + + Client IP + + + + Protocol Version + + + + Client Name + + OpenRGBSettingsPageUi @@ -713,6 +855,34 @@ Open Settings Folder + + Drivers Settings + + + + Greyscale Tray Icon + + + + AMD SMBus: Reduce CPU Usage (restart required) + + + + Set Profile on Exit + + + + Shared SMBus Access (restart required) + + + + Set Server Host + + + + Language + + OpenRGBSoftwareInfoPageUi @@ -924,18 +1094,6 @@ Ui::OpenRGBClientInfoPage - - Connected Clients - - - - Protocol Version - - - - Save Connection - - Disconnect @@ -1082,14 +1240,6 @@ Plugins - - Software - - - - Supported Devices - - General Settings @@ -1142,6 +1292,26 @@ Log Console + + LIFX Devices + + + + Nanoleaf Devices + + + + Elgato KeyLight Devices + + + + Supported Devices + + + + Software + + Ui::OpenRGBE131SettingsEntry @@ -1231,18 +1401,6 @@ Offline - - Client IP - - - - Protocol Version - - - - Client Name - - Ui::OpenRGBSettingsPage @@ -1250,6 +1408,14 @@ A problem occurred enabling Start At Login. + + English - US + English - US + + + System Default + + Ui::OpenRGBYeelightSettingsEntry diff --git a/qt/i18n/OpenRGB_en_AU.ts b/qt/i18n/OpenRGB_en_AU.ts index f8b9384e..b42f7f06 100644 --- a/qt/i18n/OpenRGB_en_AU.ts +++ b/qt/i18n/OpenRGB_en_AU.ts @@ -30,6 +30,18 @@ IP: + + Connected Clients + + + + Protocol Version + + + + Save Connection + + OpenRGBConsolePageUi @@ -361,11 +373,113 @@ - OpenRGBPhilipsHueSettingsEntryUi + OpenRGBElgatoKeyLightSettingsEntryUi - Philips Hue settings entry - + Dialog + + + IP: + + + + + OpenRGBElgatoKeyLightSettingsPageUi + + Dialog + + + + Add + + + + Remove + + + + Save + + + + + OpenRGBLIFXSettingsEntryUi + + Form + + + + IP: + + + + Name + + + + + OpenRGBLIFXSettingsPageUi + + Form + + + + Add + + + + Remove + + + + Save + + + + + OpenRGBNanoleafSettingsEntryUi + + Form + + + + IP: + + + + Port: + + + + Auth Key: + + + + Unpair + + + + Pair + + + + + OpenRGBNanoleafSettingsPageUi + + Form + + + + Scan + + + + To pair, hold the on-off button down for 5-7 seconds until the LED starts flashing in a pattern, then click the "Pair" button within 30 seconds. + + + + + OpenRGBPhilipsHueSettingsEntryUi IP: @@ -390,6 +504,14 @@ MAC: + + Form + + + + Auto Connect Group: + + OpenRGBPhilipsHueSettingsPageUi @@ -504,6 +626,10 @@ Remove Plugin + + <html><head/><body>Looking for plugins? See the official list at <a href="https://openrgb.org/plugins.html">OpenRGB.org</a></body></html> + + OpenRGBProfileSaveDialogUi @@ -630,6 +756,22 @@ Connected Clients: + + Server Host: + + + + Client IP + + + + Protocol Version + + + + Client Name + + OpenRGBSettingsPageUi @@ -713,6 +855,34 @@ Open Settings Folder + + Drivers Settings + + + + Greyscale Tray Icon + + + + AMD SMBus: Reduce CPU Usage (restart required) + + + + Set Profile on Exit + + + + Shared SMBus Access (restart required) + + + + Set Server Host + + + + Language + + OpenRGBSoftwareInfoPageUi @@ -924,18 +1094,6 @@ Ui::OpenRGBClientInfoPage - - Connected Clients - - - - Protocol Version - - - - Save Connection - - Disconnect @@ -1082,14 +1240,6 @@ Plugins - - Software - - - - Supported Devices - - General Settings @@ -1142,6 +1292,26 @@ Log Console + + LIFX Devices + + + + Nanoleaf Devices + + + + Elgato KeyLight Devices + + + + Supported Devices + + + + Software + + Ui::OpenRGBE131SettingsEntry @@ -1196,10 +1366,6 @@ Install OpenRGB Plugin - - Plugin files (*.dll; *.dylib; *.so; *.so.*) - - Replace Plugin @@ -1216,6 +1382,10 @@ Are you sure you want to remove this plugin? + + Plugin files (*.dll *.dylib *.so *.so.*) + + Ui::OpenRGBServerInfoPage @@ -1231,18 +1401,6 @@ Offline - - Client IP - - - - Protocol Version - - - - Client Name - - Ui::OpenRGBSettingsPage @@ -1250,6 +1408,14 @@ A problem occurred enabling Start At Login. + + English - US + English - AU + + + System Default + + Ui::OpenRGBYeelightSettingsEntry diff --git a/qt/i18n/OpenRGB_en_GB.ts b/qt/i18n/OpenRGB_en_GB.ts index 7854f2f0..e44d6241 100644 --- a/qt/i18n/OpenRGB_en_GB.ts +++ b/qt/i18n/OpenRGB_en_GB.ts @@ -30,6 +30,18 @@ IP: + + Connected Clients + + + + Protocol Version + + + + Save Connection + + OpenRGBConsolePageUi @@ -361,11 +373,113 @@ - OpenRGBPhilipsHueSettingsEntryUi + OpenRGBElgatoKeyLightSettingsEntryUi - Philips Hue settings entry - + Dialog + + + IP: + + + + + OpenRGBElgatoKeyLightSettingsPageUi + + Dialog + + + + Add + + + + Remove + + + + Save + + + + + OpenRGBLIFXSettingsEntryUi + + Form + + + + IP: + + + + Name + + + + + OpenRGBLIFXSettingsPageUi + + Form + + + + Add + + + + Remove + + + + Save + + + + + OpenRGBNanoleafSettingsEntryUi + + Form + + + + IP: + + + + Port: + + + + Auth Key: + + + + Unpair + + + + Pair + + + + + OpenRGBNanoleafSettingsPageUi + + Form + + + + Scan + + + + To pair, hold the on-off button down for 5-7 seconds until the LED starts flashing in a pattern, then click the "Pair" button within 30 seconds. + + + + + OpenRGBPhilipsHueSettingsEntryUi IP: @@ -390,6 +504,14 @@ MAC: + + Form + + + + Auto Connect Group: + + OpenRGBPhilipsHueSettingsPageUi @@ -504,6 +626,10 @@ Remove Plugin + + <html><head/><body>Looking for plugins? See the official list at <a href="https://openrgb.org/plugins.html">OpenRGB.org</a></body></html> + + OpenRGBProfileSaveDialogUi @@ -630,6 +756,22 @@ Connected Clients: + + Server Host: + + + + Client IP + + + + Protocol Version + + + + Client Name + + OpenRGBSettingsPageUi @@ -713,6 +855,34 @@ Open Settings Folder + + Drivers Settings + + + + Greyscale Tray Icon + + + + AMD SMBus: Reduce CPU Usage (restart required) + + + + Set Profile on Exit + + + + Shared SMBus Access (restart required) + + + + Set Server Host + + + + Language + + OpenRGBSoftwareInfoPageUi @@ -924,18 +1094,6 @@ Ui::OpenRGBClientInfoPage - - Connected Clients - - - - Protocol Version - - - - Save Connection - - Disconnect @@ -1082,14 +1240,6 @@ Plugins - - Software - - - - Supported Devices - - General Settings @@ -1142,6 +1292,26 @@ Log Console + + LIFX Devices + + + + Nanoleaf Devices + + + + Elgato KeyLight Devices + + + + Supported Devices + + + + Software + + Ui::OpenRGBE131SettingsEntry @@ -1196,10 +1366,6 @@ Install OpenRGB Plugin - - Plugin files (*.dll; *.dylib; *.so; *.so.*) - - Replace Plugin @@ -1216,6 +1382,10 @@ Are you sure you want to remove this plugin? + + Plugin files (*.dll *.dylib *.so *.so.*) + + Ui::OpenRGBServerInfoPage @@ -1231,18 +1401,6 @@ Offline - - Client IP - - - - Protocol Version - - - - Client Name - - Ui::OpenRGBSettingsPage @@ -1250,6 +1408,14 @@ A problem occurred enabling Start At Login. + + English - US + English - UK + + + System Default + + Ui::OpenRGBYeelightSettingsEntry diff --git a/qt/i18n/OpenRGB_es.ts b/qt/i18n/OpenRGB_es.ts index 271b4855..754554e2 100644 --- a/qt/i18n/OpenRGB_es.ts +++ b/qt/i18n/OpenRGB_es.ts @@ -30,6 +30,18 @@ IP: IP: + + Connected Clients + Clientes conectados + + + Protocol Version + Versión del protocolo + + + Save Connection + Guardar conexión + OpenRGBConsolePageUi @@ -361,11 +373,117 @@ Guardar + + OpenRGBElgatoKeyLightSettingsEntryUi + + Dialog + + + + IP: + IP: + + + + OpenRGBElgatoKeyLightSettingsPageUi + + Dialog + + + + Add + Añadir + + + Remove + Suprimir + + + Save + Guardar + + + + OpenRGBLIFXSettingsEntryUi + + Form + + + + IP: + IP: + + + Name + Nombre + + + + OpenRGBLIFXSettingsPageUi + + Form + + + + Add + Añadir + + + Remove + Suprimir + + + Save + Guardar + + + + OpenRGBNanoleafSettingsEntryUi + + Form + + + + IP: + IP: + + + Port: + + + + Auth Key: + + + + Unpair + + + + Pair + + + + + OpenRGBNanoleafSettingsPageUi + + Form + + + + Scan + + + + To pair, hold the on-off button down for 5-7 seconds until the LED starts flashing in a pattern, then click the "Pair" button within 30 seconds. + + + OpenRGBPhilipsHueSettingsEntryUi Philips Hue settings entry - Entrada de configuración de Philips Hue + Entrada de configuración de Philips Hue IP: @@ -391,6 +509,14 @@ MAC: MAC: + + Form + + + + Auto Connect Group: + + OpenRGBPhilipsHueSettingsPageUi @@ -506,6 +632,10 @@ Remove Plugin Suprimir plugin + + <html><head/><body>Looking for plugins? See the official list at <a href="https://openrgb.org/plugins.html">OpenRGB.org</a></body></html> + + OpenRGBProfileSaveDialogUi @@ -632,6 +762,22 @@ Connected Clients: Clientes conectados: + + Server Host: + + + + Client IP + IP del cliente + + + Protocol Version + Versión del protocolo + + + Client Name + Nombre del cliente + OpenRGBSettingsPageUi @@ -715,6 +861,34 @@ Open Settings Folder Abrir carpeta de configuración + + Drivers Settings + + + + Greyscale Tray Icon + + + + AMD SMBus: Reduce CPU Usage (restart required) + + + + Set Profile on Exit + + + + Shared SMBus Access (restart required) + + + + Set Server Host + + + + Language + + OpenRGBSoftwareInfoPageUi @@ -928,15 +1102,15 @@ Ui::OpenRGBClientInfoPage Connected Clients - Clientes conectados + Clientes conectados Protocol Version - Versión del protocolo + Versión del protocolo Save Connection - Guardar conexión + Guardar conexión Disconnect @@ -1144,6 +1318,18 @@ Log Console Consola de registro + + LIFX Devices + + + + Nanoleaf Devices + + + + Elgato KeyLight Devices + + Ui::OpenRGBE131SettingsEntry @@ -1235,15 +1421,15 @@ Client IP - IP del cliente + IP del cliente Protocol Version - Versión del protocolo + Versión del protocolo Client Name - Nombre del cliente + Nombre del cliente @@ -1252,6 +1438,14 @@ A problem occurred enabling Start At Login. Ha ocurrido un problema al activar el inicio de OpenRGB al iniciar sesión. + + English - US + Español + + + System Default + + Ui::OpenRGBYeelightSettingsEntry diff --git a/qt/i18n/OpenRGB_fr.ts b/qt/i18n/OpenRGB_fr.ts index 98ccf44d..d07cda25 100644 --- a/qt/i18n/OpenRGB_fr.ts +++ b/qt/i18n/OpenRGB_fr.ts @@ -30,6 +30,18 @@ Client info page Page info client + + Connected Clients + Clients connectés + + + Protocol Version + Version du protocole + + + Save Connection + Sauvegarder la connexion + OpenRGBConsolePageUi @@ -360,6 +372,112 @@ Paramètres E1.31 + + OpenRGBElgatoKeyLightSettingsEntryUi + + Dialog + + + + IP: + + + + + OpenRGBElgatoKeyLightSettingsPageUi + + Dialog + + + + Add + Ajouter + + + Remove + Supprimer + + + Save + Sauvegarder + + + + OpenRGBLIFXSettingsEntryUi + + Form + + + + IP: + + + + Name + Nom + + + + OpenRGBLIFXSettingsPageUi + + Form + + + + Add + Ajouter + + + Remove + Supprimer + + + Save + Sauvegarder + + + + OpenRGBNanoleafSettingsEntryUi + + Form + + + + IP: + + + + Port: + Port : + + + Auth Key: + + + + Unpair + + + + Pair + + + + + OpenRGBNanoleafSettingsPageUi + + Form + + + + Scan + + + + To pair, hold the on-off button down for 5-7 seconds until the LED starts flashing in a pattern, then click the "Pair" button within 30 seconds. + + + OpenRGBPhilipsHueSettingsEntryUi @@ -388,7 +506,15 @@ Philips Hue settings entry - Paramètres de l'entrée Philips Hue + Paramètres de l'entrée Philips Hue + + + Form + + + + Auto Connect Group: + @@ -504,6 +630,10 @@ Plugins page + + <html><head/><body>Looking for plugins? See the official list at <a href="https://openrgb.org/plugins.html">OpenRGB.org</a></body></html> + + OpenRGBProfileSaveDialogUi @@ -630,6 +760,22 @@ Server info page + + Server Host: + + + + Client IP + Ip du client + + + Protocol Version + Version du protocole + + + Client Name + Nom du client + OpenRGBSettingsPageUi @@ -713,6 +859,34 @@ Settings page Page des paramètres + + Drivers Settings + + + + Greyscale Tray Icon + + + + AMD SMBus: Reduce CPU Usage (restart required) + + + + Set Profile on Exit + + + + Shared SMBus Access (restart required) + + + + Set Server Host + + + + Language + + OpenRGBSoftwareInfoPageUi @@ -926,15 +1100,15 @@ Ui::OpenRGBClientInfoPage Connected Clients - Clients connectés + Clients connectés Protocol Version - Version du protocole + Version du protocole Save Connection - Sauvegarder la connexion + Sauvegarder la connexion Disconnect @@ -1142,6 +1316,18 @@ Log Console Journaux + + LIFX Devices + + + + Nanoleaf Devices + + + + Elgato KeyLight Devices + + Ui::OpenRGBE131SettingsEntry @@ -1233,15 +1419,15 @@ Client IP - Ip du client + Ip du client Protocol Version - Version du protocole + Version du protocole Client Name - Nom du client + Nom du client @@ -1250,6 +1436,14 @@ A problem occurred enabling Start At Login. Un problème est survenu à l'activation du démarrage à la connexion. + + English - US + Français + + + System Default + + Ui::OpenRGBYeelightSettingsEntry diff --git a/qt/i18n/OpenRGB_pt_BR.ts b/qt/i18n/OpenRGB_pt_BR.ts index 7a217972..b3727319 100644 --- a/qt/i18n/OpenRGB_pt_BR.ts +++ b/qt/i18n/OpenRGB_pt_BR.ts @@ -30,6 +30,18 @@ Client info page Informação do client + + Connected Clients + Client's conectados + + + Protocol Version + Versão do protocolo + + + Save Connection + Salvar conexão + OpenRGBConsolePageUi @@ -360,6 +372,112 @@ Ajustes E1.31 + + OpenRGBElgatoKeyLightSettingsEntryUi + + Dialog + + + + IP: + IP: + + + + OpenRGBElgatoKeyLightSettingsPageUi + + Dialog + + + + Add + Adicionar + + + Remove + Remover + + + Save + Salvar + + + + OpenRGBLIFXSettingsEntryUi + + Form + + + + IP: + IP: + + + Name + Nome + + + + OpenRGBLIFXSettingsPageUi + + Form + + + + Add + Adicionar + + + Remove + Remover + + + Save + Salvar + + + + OpenRGBNanoleafSettingsEntryUi + + Form + + + + IP: + IP: + + + Port: + Porta: + + + Auth Key: + + + + Unpair + + + + Pair + + + + + OpenRGBNanoleafSettingsPageUi + + Form + + + + Scan + + + + To pair, hold the on-off button down for 5-7 seconds until the LED starts flashing in a pattern, then click the "Pair" button within 30 seconds. + + + OpenRGBPhilipsHueSettingsEntryUi @@ -388,7 +506,15 @@ Philips Hue settings entry - Ajustes de entrada Philips Hue + Ajustes de entrada Philips Hue + + + Form + + + + Auto Connect Group: + @@ -504,6 +630,10 @@ Plugins page Plugins + + <html><head/><body>Looking for plugins? See the official list at <a href="https://openrgb.org/plugins.html">OpenRGB.org</a></body></html> + + OpenRGBProfileSaveDialogUi @@ -624,12 +754,28 @@ Connected Clients: - Client's conectados: + Client's conectados: Server info page Informação do servidor + + Server Host: + + + + Client IP + IP do Client + + + Protocol Version + Versão do protocolo + + + Client Name + Nome do client + OpenRGBSettingsPageUi @@ -729,6 +875,18 @@ Settings page Ajustes + + Shared SMBus Access (restart required) + + + + Set Server Host + + + + Language + + OpenRGBSoftwareInfoPageUi @@ -942,15 +1100,15 @@ Ui::OpenRGBClientInfoPage Connected Clients - Client's conectados + Client's conectados Protocol Version - Versão do protocolo + Versão do protocolo Save Connection - Salvar conexão + Salvar conexão Disconnect @@ -1159,6 +1317,18 @@ Log Console Console log + + LIFX Devices + + + + Nanoleaf Devices + + + + Elgato KeyLight Devices + + Ui::OpenRGBE131SettingsEntry @@ -1250,22 +1420,30 @@ Client IP - IP do Client + IP do Client Protocol Version - Versão do protocolo + Versão do protocolo Client Name - Nome do client + Nome do client Ui::OpenRGBSettingsPage A problem occurred enabling Start At Login. - Ocorreu um problema ao ativar "Iniciar no login". + Ocorreu um problema ao ativar "Iniciar no login". + + + English - US + Português + + + System Default + diff --git a/qt/i18n/OpenRGB_ru.ts b/qt/i18n/OpenRGB_ru.ts index 1c7a42bb..cc821f1f 100644 --- a/qt/i18n/OpenRGB_ru.ts +++ b/qt/i18n/OpenRGB_ru.ts @@ -30,6 +30,18 @@ Client info page Клиент SDK + + Connected Clients + Подключенные клиенты + + + Protocol Version + Версия протокола + + + Save Connection + Сохранить подключение + OpenRGBConsolePageUi @@ -365,6 +377,112 @@ Настройки E131 + + OpenRGBElgatoKeyLightSettingsEntryUi + + Dialog + + + + IP: + IP: + + + + OpenRGBElgatoKeyLightSettingsPageUi + + Dialog + + + + Add + Добавить + + + Remove + Удалить + + + Save + Сохранить + + + + OpenRGBLIFXSettingsEntryUi + + Form + + + + IP: + IP: + + + Name + Название + + + + OpenRGBLIFXSettingsPageUi + + Form + + + + Add + Добавить + + + Remove + Удалить + + + Save + Сохранить + + + + OpenRGBNanoleafSettingsEntryUi + + Form + + + + IP: + IP: + + + Port: + Порт: + + + Auth Key: + + + + Unpair + + + + Pair + + + + + OpenRGBNanoleafSettingsPageUi + + Form + + + + Scan + + + + To pair, hold the on-off button down for 5-7 seconds until the LED starts flashing in a pattern, then click the "Pair" button within 30 seconds. + + + OpenRGBPhilipsHueSettingsEntryUi @@ -393,7 +511,15 @@ Philips Hue settings entry - Настройки Philips Hue + Настройки Philips Hue + + + Form + + + + Auto Connect Group: + @@ -510,6 +636,10 @@ Plugins page Плагины + + <html><head/><body>Looking for plugins? See the official list at <a href="https://openrgb.org/plugins.html">OpenRGB.org</a></body></html> + + OpenRGBProfileSaveDialogUi @@ -636,6 +766,22 @@ Server info page Состояние сервера + + Server Host: + + + + Client IP + IP Клиента + + + Protocol Version + Версия протокола + + + Client Name + Название клиента + OpenRGBSettingsPageUi @@ -720,6 +866,34 @@ Settings page Настройки + + Drivers Settings + + + + Greyscale Tray Icon + + + + AMD SMBus: Reduce CPU Usage (restart required) + + + + Set Profile on Exit + + + + Shared SMBus Access (restart required) + + + + Set Server Host + + + + Language + + OpenRGBSoftwareInfoPageUi @@ -935,15 +1109,15 @@ Ui::OpenRGBClientInfoPage Connected Clients - Подключенные клиенты + Подключенные клиенты Protocol Version - Версия протокола + Версия протокола Save Connection - Сохранить подключение + Сохранить подключение Disconnect @@ -1151,6 +1325,18 @@ Log Console Консоль журналирования + + LIFX Devices + + + + Nanoleaf Devices + + + + Elgato KeyLight Devices + + Ui::OpenRGBE131SettingsEntry @@ -1243,15 +1429,15 @@ Client IP - IP Клиента + IP Клиента Protocol Version - Версия протокола + Версия протокола Client Name - Название клиента + Название клиента @@ -1260,6 +1446,14 @@ A problem occurred enabling Start At Login. Возникла проблема при включении автозапуска + + English - US + Русский + + + System Default + + Ui::OpenRGBYeelightSettingsEntry diff --git a/qt/i18n/OpenRGB_zh.ts b/qt/i18n/OpenRGB_zh.ts index 0ee766a5..87280bd5 100644 --- a/qt/i18n/OpenRGB_zh.ts +++ b/qt/i18n/OpenRGB_zh.ts @@ -1,61 +1,1125 @@ + + Ambient + + Form + 表单 + + + Select rectangle... + 选择矩形... + + + Top + 顶部 + + + Width + 宽度 + + + Left + + + + Mode + 模式 + + + Height + 高度 + + + Screen + 屏幕 + + + + AudioParty + + Form + 表单 + + + Device + 设备 + + + Amplitude + 波幅 + + + Divisions + 分支数量 + + + Effect threshold + 效果阈值 + + + Zones + 区域 + + + + AudioSine + + Form + 表单 + + + Oscillation + 振荡 + + + Color change speed + 颜色变换速度 + + + Repeat + 重复 + + + Colors + 颜色 + + + Average + 均值 + + + Background + 背景 + + + Wave color + 波的颜色 + + + Amplitude + 波幅 + + + Glow + 亮度 + + + Thickness + 厚度 + + + Device + 设备 + + + + AudioStar + + Form + 表单 + + + Amplitude + 波幅 + + + Device + 设备 + + + Decay + 衰变 + + + Edge beat + 边缘节拍 + + + + AudioVUMeter + + Form + 表单 + + + Audio device + 音频设备 + + + Average size + 平均尺寸 + + + Amplitude + 波幅 + + + Color offset + 颜色偏移 + + + Decay + 衰变 + + + Color spread + 颜色跨度 + + + + AudioVisualizerUi + + Amplitude (%) + 振幅(%) + + + FFT Window Mode + #FFT窗口模式 + + + Background Brightness + 背景亮度 + + + Background Mode + 背景模式 + + + Average Size + 平均尺寸 + + + Foreground Mode + 前景模式 + + + Decay (% per step) + 衰减(%) + + + Single Color Mode + 单色模式 + + + Normalization Offset + 正则化偏移 + + + Average Mode + 平均模式 + + + Normalization Scale + 正则化比例 + + + Audio Device + 音频设备 + + + Filter Constant + 过滤器常数 + + + Animation Speed + 动画速度 + + + Background Timeout + 背景等待延时 + + + Reactive Background + 背景亮度映射音量 + + + Silent Background + 背景在静音时打开 + + + Visualization Preview + 可视化预览 + + + + BackgroundApplier + + Form + 表单 + + + Add background + 添加背景 + + + Custom + 自定义 + + + X offset (%) + X 偏移量 (%) + + + Add color + 添加颜色 + + + Y offset (%) + Y 偏移量 (%) + + + Load + 加载 + + + Save + 保存 + + + Rotate (°) + 旋转(°) + + + Brightness + 亮度 + + + File + 文件 + + + Choose image file + 选择图像文件 + + + Open Image + 打开图像 + + + Image Files (*.png *.jpg *.bmp) + 图像文件(*.png *.jpg *.bmp) + + + + Bloom + + Form + 表单 + + + + BouncingBall + + Form + 表单 + + + Spectrum Velocity + 频谱速度 + + + How fast the ball moves side to side + 小球左右移动速度 + + + Defaults + 默认 + + + Gravity + 重力 + + + Ball Radius + 小球尺寸 + + + Drop Height % + 跌落高度% + + + Horizontal Velocity + 水平速度 + + + + BreathingCircle + + Form + 表单 + + + + Bubbles + + Form + 表单 + + + Rarity + 稀有度 + + + Bubbles thickness + 气泡厚度 + + + Background + 背景 + + + Max bubbles + 最大气泡数 + + + Speed + 速度 + + + Max expansion + 最大扩展度 + + + + Clock + + Form + 表单 + + + + ColorPicker + + Form + 表单 + + + + ColorStop + + Form + 表单 + + + + ColorWheelEffect + + Form + 表单 + + + X position + X位置 + + + Direction + 方向 + + + Y position + Y位置 + + + + Comet + + Form + 表单 + + + + ControllerZoneList + + Form + 表单 + + + + CrossingBeams + + Form + 表单 + + + Glow + 亮度 + + + Horizontal speed + 水平速度 + + + Vertical speed + 竖直速度 + + + Thickness + 厚度 + + + + CustomBlink + + Form + 表单 + + + Remove selected + 删除所选内容 + + + Current pattern: + 当前模式: + + + Clear list + 清除列表 + + + Add + 添加 + + + Reset time + 复位时间 + + + Interval + 间隔 + + + + CustomGradientWave + + Form + 表单 + + + Preset + 预设 + + + Colors + 颜色数 + + + Spread + 扩散 + + + + CustomMarquee + + Form + 表单 + + + Colors + 颜色数 + + DetectorTableModel - + Name 名称 - + Enabled 启用 + + DeviceList + + Form + 表单 + + + Select all + 全选 + + + Deselect all + 取消全选 + + + Controller + 控制器 + + + Enable + 启用 + + + Reverse + 反向 + + + + DeviceListItem + + Form + 表单 + + + Enable + 启用 + + + Reverse + 反向 + + + TextLabel + 文本标签 + + + This device doesn't have direct mode +Using an effect on a device WILL damage the flash or controller + 此设备没有直连模式 +在设备上使用灯效会损坏闪光灯或控制器 + + + + DoubleRotatingRainbow + + Form + 表单 + + + Frequency + 频率 + + + + EffectList + + Form + 表单 + + + Add to the effects list + 添加到灯效列表 + + + Start/Stop all effects + 启动/停止所有效果 + + + + EffectTabHeader + + Form + 表单 + + + EffectName + 效果名称 + + + + Fill + + Form + 表单 + + + + FractalMotion + + Form + 表单 + + + Freq m1 + 频率 m1 + + + Freq m12 + 频率 m12 + + + Background color: + 背景颜色: + + + Amplitude + 波幅 + + + Freq m2 + 频率 m2 + + + Freq m7 + 频率 m7 + + + Freq m10 + 频率 m10 + + + Freq m8 + 频率 m8 + + + Freq m9 + 频率 m9 + + + Freq m5 + 频率 m5 + + + Defaults + 默认 + + + Freq m4 + 频率 m4 + + + Freq m3 + 频率 m3 + + + Freq m6 + 频率 m6 + + + Frequency + 频率 + + + Freq m11 + 频率 m11 + + + Thickness + 厚度 + + + + GLSLCodeEditor + + Form + 表单 + + + Style + 风格 + + + #version + 版本 + + + Tab 1 + 选项卡 1 + + + Tab 2 + 选项卡 2 + + + Apply + 应用 + + + + GifPlayer + + Form + 表单 + + + Choose GIF file + 选择 GIF 文件 + + + Open GIF file + 打开 GIF 文件 + + + GIF Files (*.gif) + GIF 文件 (*.gif) + + + + GridOptions + + Form + 表单 + + + Auto register + 自动注册 + + + Height + 高度 + + + Unregister member controllers + 注销成员控制器 + + + Live preview + 实时预览 + + + Show bounds + 显示边界 + + + Auto load + 自动加载 + + + Grid options + 网格选项 + + + Show grid + 显示网格 + + + Width + 宽度 + + + Auto resize + 自动调整大小 + + + + Hypnotoad + + Form + 表单 + + + Spacing + 间距 + + + Color rotation speed + 颜色旋转速度 + + + Color rotation direction + 颜色旋转方向 + + + X position + X 位置 + + + Animation direction + 动画方向 + + + Animation speed + 动画速度 + + + Thickness + 厚度 + + + Y position + Y 位置 + + + + ItemOptions + + Form + 表单 + + + Item options + 项目选项 + + + x + x + + + y + y + + + Reverse + 反向 + + + Shape + 形状 + + + Led spacing + LED间距 + + + Edit shape + 编辑形状 + + + Identify + 亮绿灯标识 + + + + LayerEntry + + Form + 表单 + + + + LayerGroupEntry + + Form + 表单 + + + Add layer + 添加图层 + + + Clear + 清除 + + + Delete group + 删除组 + + + + Layers + + Form + 表单 + + + Add group + 添加组 + + + Clear + 清除 + + + + Lightning + + Form + 表单 + + + Mode + 模式 + + + + LivePreviewController + + Form + 表单 + + + Reverse + 反向 + + + Brightness + 亮度 + + + Custom height + 自定义高度 + + + Custom width + 自定义宽度 + + + Scale content + 缩放内容 + + + + Marquee + + Form + 表单 + + + + Mask + + Form + 表单 + + + width + 宽度 + + + height + 高度 + + + Invert colors + 颜色反转 + + + + Mosaic + + Form + 表单 + + + + MotionPoint + + Form + 表单 + + + Background color: + 背景颜色: + + + + MotionPoints + + Form + 表单 + + + + MovingPanes + + Form + 表单 + + + + NewShaderPassTabHeader + + Form + 表单 + + + + NoiseMap + + Form + 表单 + + + Amplitude + 波幅 + + + Defaults + 默认 + + + Colors + 颜色数 + + + Octaves + 八度? + Octaves + + + Persistence + 持久度 + + + Lacunarity + 真空度 + + + Frequency + 频率 + + + Motion + 运动 + + + Motion speed + 运动速度 + + OpenRGBClientInfoPageUi - + Client info page 客户端信息页面 - + Port: 端口: - + Connect 连接 - + IP: + + + Connected Clients + 连接的客户端 + + + + Protocol Version + 协议版本 + + + + Save Connection + 保存连接 + OpenRGBConsolePageUi - + Log console page 日志控制台页面 - + Log level 日志级别 - + Refresh logs 刷新日志 - + Clear log 清除日志 @@ -63,42 +1127,42 @@ OpenRGBDeviceInfoPageUi - + Device info page 设备信息页面 - + Name: 名称: - + Vendor: 供应商: - + Type: 类型: - + Description: 描述: - + Version: 版本: - + Location: 位置: - + Serial: 序列号: @@ -106,117 +1170,117 @@ OpenRGBDevicePageUi - + Device page 设备页面 - + G: 绿(G): - + H: 色调(H): - + Speed: 速度: - + Random 随机 - + B: 蓝(B): - + LED: - + Mode-Specific 特定模式 - + R: 红(R): - + Dir: - + S: 饱和度(S): - + Select All 全选 - + Per-LED 单色 - + Zone: 区域: - + <html><head/><body><p align="justify">Sets all devices to<br/><b>Static</b> mode and<br/>applies the selected color.</p></body></html> <html><head/><body><p对齐="justify">所有设备都设置为<br/><b>静态</b>模式和<br/>应用所选颜色。</p></body></html> - + Apply All Devices 应用所有设备 - + Colors: 颜色: - + V: 明度(V): - + Apply Colors To Selection 将颜色应用于所选内容 - + Resize 调整 - + Mode: 模式: - + Brightness: 亮度: - + Save To Device 保存到设备 @@ -224,69 +1288,69 @@ OpenRGBDialog2Ui - + OpenRGB OpenRGB(汉化:画板当吃生菜、绿鲤驴与鱼) - + Devices 设备 - + Information 信息 - + Settings 设置 - + Toggle LED View 开关 LED 视图 - + Rescan Devices 重新扫描设备 - - - + + + Save Profile 保存配置文件 - + Delete Profile 删除配置文件 - + Load Profile 加载配置文件 - + OpenRGB is detecting devices... OpenRGB 正在检测设备... - + Cancel 取消 - + Save Profile As... 保存配置文件为... - + Save Profile with custom name 使用自定义名称保存配置文件 @@ -294,62 +1358,62 @@ OpenRGBDialogUi - + OpenRGB OpenRGB - + Device 设备 - + Red 红色 - + Green 绿色 - + Blue 蓝色 - + Mode 模式 - + Set All 全部设置 - + Set Device 设置设备 - + Zone 区域 - + Set Zone 设置区域 - + Set LED 设置LED - + LED LED @@ -357,67 +1421,67 @@ OpenRGBE131SettingsEntryUi - + E131 settings entry E131 设置条目 - + Start Channel: 启动频道: - + Number of LEDs: LED数量: - + Start Universe: 开启Universe: - + Name: 名称: - + Matrix Order: 矩阵顺序: - + Matrix Height: 矩阵高度: - + Matrix Width: 矩阵宽度: - + Type: 类型: - + IP (Unicast): - + Universe Size: Universe大小: - + Keepalive Time: 保持活动时间: - + RGB Order: RGB顺序: @@ -425,58 +1489,189 @@ OpenRGBE131SettingsPageUi - + E131 settings page E131 设置页面 - + Add 添加 - + Remove 移除 - + Save 保存 + + OpenRGBEffectPage + + Form + 表单 + + + EffectName + 效果名称 + + + EffectDescription + 效果说明 + + + Random + 随机 + + + First color + 初始颜色 + + + Slider2Label + 滑块2标签 + + + Speed + 速度 + + + Brightness + 亮度 + + + Status: + 状态: + + + Stopped + 停止 + + + Start + 开始 + + + Stop + 停止 + + + Auto Start + 自动启动 + + + Preview + 预览 + + + Save to file + 保存到文件 + + + Manually edit + 手动编辑 + + + Load from file + 从文件加载 + + + + OpenRGBEffectTab + + Form + 表单 + + + Save as profile + 另存为配置文件 + + + Load profile + 加载配置文件 + + + Delete profile + 删除配置文件 + + + + OpenRGBElgatoKeyLightSettingsEntryUi + + + Dialog + + + + + IP: + + + + + OpenRGBElgatoKeyLightSettingsPageUi + + + Dialog + + + + + Add + 添加 + + + + Remove + 移除 + + + + Save + 保存 + + OpenRGBLIFXSettingsEntryUi - + Form 表单 - + IP: + + + Name + 名称 + OpenRGBLIFXSettingsPageUi - + Form 表单 - + Add 添加 - + Remove 移除 - + Save 保存 @@ -484,32 +1679,32 @@ OpenRGBNanoleafSettingsEntryUi - + Form 表单 - + IP: - + Port: 端口: - + Auth Key: 身份验证密钥: - + Unpair 取消配对 - + Pair 配对 @@ -517,17 +1712,17 @@ OpenRGBNanoleafSettingsPageUi - + Form 表单 - + Scan 扫描 - + To pair, hold the on-off button down for 5-7 seconds until the LED starts flashing in a pattern, then click the "Pair" button within 30 seconds. 配对时,请按住开关按钮 5-7 秒钟,直到 LED 开始以某种模式闪烁,然后在 30 秒内点按“配对”按钮。 @@ -535,42 +1730,42 @@ OpenRGBPhilipsHueSettingsEntryUi - + Form 表单 - + Entertainment Mode: 娱乐模式: - + Auto Connect Group: 自动连接: - + IP: - + Client Key: 客户端密钥: - + Username: 用户名: - + MAC: - + Unpair Bridge 未配对桥 @@ -578,27 +1773,27 @@ OpenRGBPhilipsHueSettingsPageUi - + Philips Hue settings page 飞利浦 Hue 设置页面 - + Remove 移除 - + Add 添加 - + Save 保存 - + After adding a Hue entry and saving, restart OpenRGB and press the Sync button on your Hue bridge to pair it. 添加 Hue 条目并保存后,重新启动 OpenRGB,然后按 Hue 网桥上的“同步”按钮进行配对。 @@ -606,12 +1801,12 @@ OpenRGBPhilipsWizSettingsEntryUi - + Philips WIZ settings entry 飞利浦 WIZ 设置条目 - + IP: @@ -619,22 +1814,22 @@ OpenRGBPhilipsWizSettingsPageUi - + Philips WIZ settings page 飞利浦 WIZ 设置页面 - + Add 添加 - + Remove 移除 - + Save 保存 @@ -642,7 +1837,7 @@ OpenRGBPluginContainerUi - + Plugin container 插件容器 @@ -650,47 +1845,47 @@ OpenRGBPluginsEntryUi - + Plugins entry 插件条目 - + Version: 版本: - + Name: 名称: - + Description: 描述: - + URL: - + Path: 路径: - + Enabled 启用 - + Commit: 提交: - + Icon 图标 @@ -698,30 +1893,35 @@ OpenRGBPluginsPageUi - + Plugins page 插件页面 - + Install Plugin 安装插件 - + Remove Plugin 移除插件 + + + <html><head/><body>Looking for plugins? See the official list at <a href="https://openrgb.org/plugins.html">OpenRGB.org</a></body></html> + + OpenRGBProfileSaveDialogUi - + Profile Name 配置文件名称 - + New Profile Name: 新配置文件名称: @@ -729,22 +1929,22 @@ OpenRGBQMKORGBSettingsEntryUi - + QMK settings entry QMK 设置条目 - + Name: 名称: - + USB PID: - + USB VID: @@ -752,22 +1952,22 @@ OpenRGBQMKORGBSettingsPageUi - + QMK Settings page QMK 设置页面 - + Add 添加 - + Remove 移除 - + Save 保存 @@ -775,32 +1975,32 @@ OpenRGBSerialSettingsEntryUi - + Serial settings entry 串行设置条目 - + Baud: Baud: - + Name: 名称: - + Number of LEDs: LED数量: - + Port: 端口: - + Protocol: 协议: @@ -808,22 +2008,22 @@ OpenRGBSerialSettingsPageUi - + Serial settings page 串行设置页面 - + Add 添加 - + Remove 移除 - + Save 保存 @@ -831,37 +2031,57 @@ OpenRGBServerInfoPageUi - + Server info page 服务器信息页面 - + Stop Server 中止服务器 - + Server Port: 服务器端口: - + + Client IP + 客户端 IP + + + + Protocol Version + 协议版本 + + + + Client Name + 客户端名称 + + + Start Server 启动服务器 - + + Server Host: + + + + Server Status: 服务器状态: - + Offline 离线 - + Connected Clients: 连接的客户端: @@ -869,117 +2089,137 @@ OpenRGBSettingsPageUi - + Settings page 软件设置 - + Minimize On Close 关闭窗口时最小化 - + 90000 - + Start Server 启动服务器 - + Enable Log Console (restart required) 启用日志控制台(需要重新启动) - + Custom Arguments 自定义参数 - + Save Geometry On Close 关闭时保存几何图形 - + Load Window Geometry 加载窗口几何图形 - + Start Client 启动客户端 - + Start At Login Settings: 从登录设置开始: - + Log Manager Settings: 日志管理器设置: - + Theme (restart required) 主题(需要重新启动) - + Start at Login Status 从登录状态开始 - + + Set Profile on Exit + + + + + Shared SMBus Access (restart required) + + + + + Set Server Host + + + + Set Server Port 设置服务器端口 - + + Language + + + + Load Profile 加载配置文件 - + Drivers Settings 驱动程序设置 - + Run zone checks on rescan 重新扫描时运行区域检查 - + User Interface Settings: 用户界面设置: - + Start At Login 登录时开启 - + Start Minimized 开启时最小化 - + AMD SMBus: Reduce CPU Usage (restart required) AMD SMBus:降低 CPU 使用率(需要重新启动) - + Greyscale Tray Icon 灰度托盘图标 - + Open Settings Folder 打开设置文件夹 @@ -987,52 +2227,52 @@ OpenRGBSoftwareInfoPageUi - + Software info page 软件信息页面 - + Build Date: 构建日期: - + Git Commit ID: Git Commit ID: - + Git Commit Date: Git Commit 日期: - + Git Branch: Git Branch: - + Version: 版本: - + Gitlab page Gitlab 页面 - + Website 网页 - + <a href="https://openrgb.org">https://openrgb.org</a> - + <a href="https://gitlab.com/CalcProgrammer1/OpenRGB">https://gitlab.com/CalcProgrammer1/OpenRGB</a> @@ -1040,22 +2280,22 @@ OpenRGBSupportedDevicesPageUi - + Supported devices 兼容设备选择 - + Filter: 过滤: - + Enable/Disable all 全部启用/禁用 - + Apply changes 应用更改 @@ -1063,107 +2303,122 @@ OpenRGBSystemInfoPageUi - + System info page 系统信息页面 - + SMBus Adapters: SMBus 适配器: - + Address: 地址: - + Read Device 读取设备 - + SMBus Dumper: - - - + + + 0x - + SMBus Detector: SMBus 检测器: - + Detection Mode: 检测模式: - + Detect Devices 检测设备 - + Dump Device 转储设备 - + SMBus Reader: SMBus 读卡器: - + Addr: 地 址: - + Reg: 注册: - + Size: 大小: + + OpenRGBVisualMapTab + + Form + 表单 + + + Tab 1 + 选项卡 1 + + + Tab 2 + 选项卡 2 + + OpenRGBYeelightSettingsEntryUi - + Yeelight settings entry Yeelight设置条目 - + IP: - + ? - + Music Mode: 音乐模式: - + Override host IP: 覆盖主机 IP: - + Left blank for auto discovering host ip 留空用于自动发现主机 IP @@ -1171,22 +2426,22 @@ OpenRGBYeelightSettingsPageUi - + Yeelight settings page Yeelight设置页面 - + Add 添加 - + Remove 移除 - + Save 保存 @@ -1194,7 +2449,7 @@ OpenRGBZoneResizeDialogUi - + Resize Zone 调整区域大小 @@ -1202,41 +2457,372 @@ OpenRGBZonesBulkResizerUi - + Zones resizer 区域调整大小 - + <html><head/><body><p>One or more resizable zones have not been configured. Resizable zones are most commonly used for addressable RGB headers where the size of the connected device cannot be detected automatically.</p><p>Please enter the number of LEDs in each zone below.</p><p>For more information about calcuating the correct size, please check <a href="https://openrgb.org/resize"><span style=" text-decoration: underline; color:#0000ff;">this link.</span></a></p></body></html> style??? <html><head/><body><p>一个或多个可调整大小的区域尚未配置。 可调整大小的区域最常用于无法自动检测到所连接设备大小的可寻址 RGB 标头。</p><p>请在下面输入每个区域中的 LED 数量。</p><p>有关计算正确大小的详细信息,请查看<a href="https://openrgb.org/resize"><span 样式=" text-decoration: underline; color:#0000ff;">此链接。</span></a></p></body></html> - + Do not show again 不再显示 - + Save and close 保存并关闭 - + Ignore 忽视 + + PluginInfo + + Form + 表单 + + + Version: + 版本: + + + Build date: + 构建日期: + + + Git commit ID: + Git 提交 ID: + + + Git commit date: + Git 提交日期: + + + Git branch: + Git 分支: + + + Download lastest build + 下载最新版本 + + + Open plugin folder + 打开插件文件夹 + + + + RadialRainbow + + Form + 表单 + + + X position + X 位置 + + + Y position + Y 位置 + + + Shape + 形状 + + + + RotatingBeam + + Form + 表单 + + + Mode + 模式 + + + Thickness + 厚度 + + + + RotatingRainbow + + Form + 表单 + + + + SaveProfilePopup + + Form + 表单 + + + Save + 保存 + + + Cancel + 取消 + + + Load profile at startup + 启动时加载配置文件 + + + Profile name: + 配置文件名称: + + + + Sequence + + Form + 表单 + + + Colors + 颜色数 + + + + ShaderFileTabHeader + + Form + 表单 + + + + ShaderPassEditor + + Form + 表单 + + + The audio data will be automatically passed to this shader. Make sure to enabled "Use audio" in the effect page. + 音频数据将自动传递到此着色器。确保在效果页面中启用了“使用音频”。 + + + Choose texture + 选择纹理 + + + Open Image + 打开图像 + + + Image Files (*.png *.jpg *.bmp) + 图像文件 (*.png *.jpg *.bmp) + + + + Shaders + + Form + 表单 + + + Width + 宽度 + + + Decay + 衰变 + + + Amplitude + 波幅 + + + Device + 设备 + + + Average + 平均 + + + Height + 高度 + + + Show rendering + 显示渲染 + + + Use audio + 使用音频 + + + Edit shader + 编辑着色器 + + + Reset time + 复位时间 + + + Invert time + 反转时间 + + + + SmoothBlink + + Form + 表单 + + + Pulses (n) + 脉冲 (n) + + + Defaults + 默认 + + + Strength (%) + 强度(%) + + + Interval (s) + 间隔(秒) + + + Pulse duration (s) + 脉冲持续时间(秒) + + + Rendering + 渲染 + + + X position + X 位置 + + + Y position + Y 位置 + + + + Spiral + + Form + 表单 + + + + Stack + + Form + 表单 + + + Matrix zone direction + 矩阵区方向 + + + + Sunrise + + Form + 表单 + + + Motion + 运动 + + + Intensity + 剧烈程度 + + + Intensity speed + 剧烈强度速度 + + + Radius + 半径 + + + Grow speed + 扩张速度 + + + Run only once + 仅运行一次 + + + + Swap + + Form + 表单 + + + + SwirlCircles + + Form + 表单 + + + Radius + 半径 + + + + SwirlCirclesAudio + + Form + 表单 + + + Amplitude + 波幅 + + + Audio device + 音频设备 + + + Average + 均值 + + + Decay + 衰变 + + + Radius + 半径 + + + + TabHeader + + Form + 表单 + + TabLabelUi - + Tab Label 标签页标签 - + device name 设备名称 @@ -1244,22 +2830,19 @@ Ui::OpenRGBClientInfoPage - Connected Clients - 连接的客户端 + 连接的客户端 - Protocol Version - 协议版本 + 协议版本 - Save Connection - 保存连接 + 保存连接 - + Disconnect 断开 @@ -1267,107 +2850,107 @@ Ui::OpenRGBDevicePage - + Set individual LEDs to static colors. Safe for use with software-driven effects. 将单个 LED 设置为静态颜色。 可安全使用软件驱动效果。 - + Set individual LEDs to static colors. Not safe for use with software-driven effects. 将单个 LED 设置为静态颜色。 与软件驱动的效果一起使用不安全。 - + Sets the entire device or a zone to a single color. 将整个设备或区域设置为单一颜色。 - + Gradually fades between fully off and fully on. 在完全关闭和完全打开之间逐渐淡出。 - + Abruptly changes between fully off and fully on. 在完全关闭和完全打开之间突然变化。 - + Gradually cycles through the entire color spectrum. All lights on the device are the same color. 在整个色谱中逐渐循环。 设备上的所有指示灯都是相同的颜色。 - + Gradually cycles through the entire color spectrum. Produces a rainbow pattern that moves. 在整个色谱中逐渐循环。 生成移动的彩虹图案。 - + Flashes lights when keys or buttons are pressed. 按下按键或按钮时闪烁。 - + Entire Device 整个设备 - + Entire Zone 整个区域 - + Left - + Right - + Up - + Down - + Horizontal 水平 - + Vertical 垂直 - + Saved To Device 保存到设备 - + Save To Device 保存到设备 - + Saving Not Supported 不支持保存 - + All Zones 所有区域 - + Mode Specific 特定模式 @@ -1375,142 +2958,157 @@ Ui::OpenRGBDialog2 - + Show/Hide 显示/隐藏 - + Profiles 配置文件 - + Quick Colors 快速着色 - + Red 红色 - + Yellow 黄色 - + Green 绿色 - + Cyan 青色 - + Blue 蓝色 - + Magenta 品红 - + White - + Lights Off 关灯 - + Exit 退出 - + Plugins 插件 - + Software 软件 - + Supported Devices 兼容设备选择 - + General Settings 常规设置 - + E1.31 Devices E1.31 设备 - + + LIFX Devices + + + + Philips Hue Devices 飞利浦 Hue 设备 - + Philips Wiz Devices 飞利浦 Wiz 设备 - + OpenRGB QMK Protocol OpenRGB QMK 协议 - + Serial Devices 串行设备 - + Yeelight Devices Yeelight 设备 - + + Nanoleaf Devices + + + + + Elgato KeyLight Devices + + + + SMBus Tools SMBus 工具 - + SDK Client SDK 客户端 - + SDK Server SDK 服务器 - + Delete Profile 删除配置文件 - + Do you really want to delete this profile? 是否确定删除此配置文件? - + Log Console 日志控制台 @@ -1518,57 +3116,57 @@ Ui::OpenRGBE131SettingsEntry - + Single - + Linear 线 - + Matrix - + Horizontal Top Left 水平左上角 - + Horizontal Top Right 水平右上角 - + Horizontal Bottom Left 水平左下角 - + Horizontal Bottom Right 水平右下角 - + Vertical Top Left 竖直左上角 - + Vertical Top Right 竖直右上角 - + Vertical Bottom Left 竖直左下角 - + Vertical Bottom Right 竖直右下角 @@ -1576,32 +3174,36 @@ Ui::OpenRGBPluginsPage - + Install OpenRGB Plugin 安装 OpenRGB 插件 - Plugin files (*.dll; *.dylib; *.so; *.so.*) - 插件文件(*.dll; *.dylib; *.so; *.so.*) + 插件文件(*.dll; *.dylib; *.so; *.so.*) - + + Plugin files (*.dll *.dylib *.so *.so.*) + + + + Replace Plugin 替换插件 - + A plugin with this filename is already installed. Are you sure you want to replace this plugin? 已安装具有此文件名的插件。 您确定要替换此插件吗? - + Remove Plugin 移除插件 - + Are you sure you want to remove this plugin? 是否确定删除此插件? @@ -1609,40 +3211,48 @@ Ui::OpenRGBServerInfoPage - + Stopping... 停止... - + Online 在线 - + Offline 离线 - Client IP - 客户端 IP + 客户端 IP - Protocol Version - 协议版本 + 协议版本 - Client Name - 客户端名称 + 客户端名称 Ui::OpenRGBSettingsPage - + + + English - US + 中文 + + + + System Default + + + + A problem occurred enabling Start At Login. 启用“登录时启动”时出现问题。 @@ -1650,12 +3260,12 @@ Ui::OpenRGBYeelightSettingsEntry - + Choose an IP... 选择一个 IP... - + Choose the correct IP for the host 为主机选择正确的 IP @@ -1663,2296 +3273,211 @@ Ui::OpenRGBZonesBulkResizer - + Resize the zones 调整区域大小 - + Controller 控制器 - + Zone 区域 - + Size 大小 - Ambient + VirtualControllerTab - Form - 表单 + 表单 - - Select rectangle... - 选择矩形... + Register controller + 添加到控制器列表 - - Top - 顶部 + Infos + 信息 - - Width - 宽度 - - - - Left - - - - - Mode - 模式 - - - - Height - 高度 - - - - Screen - 屏幕 - - - - AudioParty - - - Form - 表单 - - - - Device - 设备 - - - - Amplitude - 波幅 - - - - Divisions - 分支数量 - - - - Effect threshold - 效果阈值 - - - - Zones - 区域 - - - - AudioSine - - - Form - 表单 - - - - Oscillation - 振荡 - - - - Color change speed - 颜色变换速度 - - - - Repeat - 重复 - - - - Colors - 颜色 - - - - Average - 均值 - - - - Background - 背景 - - - - Wave color - 波的颜色 - - - - Amplitude - 波幅 - - - - Glow - 亮度 - - - - Thickness - 厚度 - - - - Device - 设备 - - - - AudioStar - - - Form - 表单 - - - - Amplitude - 波幅 - - - - Device - 设备 - - - - Decay - 衰变 - - - - Edge beat - 边缘节拍 - - - - AudioVUMeter - - - Form - 表单 - - - - Audio device - 音频设备 - - - - Average size - 平均尺寸 - - - - Amplitude - 波幅 - - - - Color offset - 颜色偏移 - - - - Decay - 衰变 - - - - Color spread - 颜色跨度 - - - - AudioVisualizerUi - - - Amplitude (%) - 振幅(%) - - - - FFT Window Mode - #FFT窗口模式 - - - - Background Brightness - 背景亮度 - - - - Background Mode - 背景模式 - - - - Average Size - 平均尺寸 - - - - Foreground Mode - 前景模式 - - - - Decay (% per step) - 衰减(%) - - - - Single Color Mode - 单色模式 - - - - Normalization Offset - 正则化偏移 - - - - Average Mode - 平均模式 - - - - Normalization Scale - 正则化比例 - - - - Audio Device - 音频设备 - - - - Filter Constant - 过滤器常数 - - - - Animation Speed - 动画速度 - - - - Background Timeout - 背景等待延时 - - - - Reactive Background - 背景亮度映射音量 - - - - Silent Background - 背景在静音时打开 - - - - Visualization Preview - 可视化预览 - - - - Bloom - - - Form - 表单 - - - - BouncingBall - - - Form - 表单 - - - - Spectrum Velocity - 频谱速度 - - - - How fast the ball moves side to side - 小球左右移动速度 - - - - Defaults - 默认 - - - - Gravity - 重力 - - - - Ball Radius - 小球尺寸 - - - - - - 10 - - - - - Drop Height % - 跌落高度% - - - - 15 - - - - - 90 - - - - - Horizontal Velocity - 水平速度 - - - - BreathingCircle - - - Form - 表单 - - - - Bubbles - - - Form - 表单 - - - - Rarity - 稀有度 - - - - Bubbles thickness - 气泡厚度 - - - - Background - 背景 - - - - Max bubbles - 最大气泡数 - - - - Speed - 速度 - - - - Max expansion - 最大扩展度 - - - - Clock - - - Form - 表单 - - - - ColorPicker - - - Form - 表单 - - - - ColorWheelEffect - - - Form - 表单 - - - - X position - X位置 - - - - Direction - 方向 - - - - Y position - Y位置 - - - - Comet - - - Form - 表单 - - - - ControllerZoneList - - - Form - 表单 - - - - CrossingBeams - - - Form - 表单 - - - - Glow - 亮度 - - - - Horizontal speed - 水平速度 - - - - Vertical speed - 竖直速度 - - - - Thickness - 厚度 - - - - CustomBlink - - - Form - 表单 - - - - Remove selected - 删除所选内容 - - - - Current pattern: - 当前模式: - - - - Clear list - 清除列表 - - - - Add - 添加 - - - - - - - - - - Reset time - 复位时间 - - - - Interval - 间隔 - - - - CustomGradientWave - - - Form - 表单 - - - - Preset - 预设 - - - - Colors - 颜色数 - - - - Spread - 扩散 - - - - CustomMarquee - - - Form - 表单 - - - - Colors - 颜色数 - - - - DeviceList - - - Form - 表单 - - - - Select all - 全选 - - - - Deselect all - 取消全选 - - - - Controller - 控制器 - - - - Enable - 启用 - - - - ✓ - - - - - Reverse - 反向 - - - - ⇆ - - - - - DeviceListItem - - - Form - 表单 - - - - Enable - 启用 - - - - Reverse - 反向 - - - - TextLabel - 文本标签 - - - - This device doesn't have direct mode -Using an effect on a device WILL damage the flash or controller - 此设备没有直连模式 -在设备上使用灯效会损坏闪光灯或控制器 - - - - ⚠ - - - - - DoubleRotatingRainbow - - - Form - 表单 - - - - Frequency - 频率 - - - - EffectList - - - Form - 表单 - - - - Add to the effects list - 添加到灯效列表 - - - - + - - - - - Start/Stop all effects - 启动/停止所有效果 - - - - ⏯ - - - - - EffectTabHeader - - - Form - 表单 - - - - ● - - - - - EffectName - 效果名称 - - - - × - - - - - Fill - - - Form - 表单 - - - - FractalMotion - - - Form - 表单 - - - - Freq m1 - 频率 m1 - - - - Freq m12 - 频率 m12 - - - - Background color: - 背景颜色: - - - - Amplitude - 波幅 - - - - Freq m2 - 频率 m2 - - - - Freq m7 - 频率 m7 - - - - Freq m10 - 频率 m10 - - - - Freq m8 - 频率 m8 - - - - Freq m9 - 频率 m9 - - - - Freq m5 - 频率 m5 - - - - Defaults - 默认 - - - - Freq m4 - 频率 m4 - - - - Freq m3 - 频率 m3 - - - - Freq m6 - 频率 m6 - - - - Frequency - 频率 - - - - Freq m11 - 频率 m11 - - - - Thickness - 厚度 - - - - GLSLCodeEditor - - - Form - 表单 - - - - Style - 风格 - - - - #version - 版本 - - - - Tab 1 - 选项卡 1 - - - - Tab 2 - 选项卡 2 - - - - Apply - 应用 - - - - - - ? - - - - - 110 - - - - - GifPlayer - - - Form - 表单 - - - - Choose GIF file - 选择 GIF 文件 - - - - Open GIF file - 打开 GIF 文件 - - - - GIF Files (*.gif) - GIF 文件 (*.gif) - - - - Hypnotoad - - - Form - 表单 - - - - Spacing - 间距 - - - - Color rotation speed - 颜色旋转速度 - - - - Color rotation direction - 颜色旋转方向 - - - - X position - X 位置 - - - - Animation direction - 动画方向 - - - - Animation speed - 动画速度 - - - - Thickness - 厚度 - - - - Y position - Y 位置 - - - - LayerEntry - - - Form - 表单 - - - - X - - - - - LayerGroupEntry - - - Form - 表单 - - - - Add layer - 添加图层 - - - - Clear - 清除 - - - - Delete group - 删除组 - - - - Layers - - - Form - 表单 - - - - Add group - 添加组 - - - - Clear - 清除 - - - - Lightning - - - Form - 表单 - - - - Mode - 模式 - - - - LivePreviewController - - - Form - 表单 - - - - Reverse - 反向 - - - - Brightness - 亮度 - - - - Custom height - 自定义高度 - - - - Custom width - 自定义宽度 - - - - Scale content - 缩放内容 - - - - Marquee - - - Form - 表单 - - - - Mask - - - Form - 表单 - - - - x - - - - - width - 宽度 - - - - height - 高度 - - - - Invert colors - 颜色反转 - - - - y - - - - - Mosaic - - - Form - 表单 - - - - MotionPoint - - - Form - 表单 - - - - Background color: - 背景颜色: - - - - MotionPoints - - - Form - 表单 - - - - MovingPanes - - - Form - 表单 - - - - NewShaderPassTabHeader - - - Form - 表单 - - - - + - - - - - NoiseMap - - - Form - 表单 - - - - Amplitude - 波幅 - - - - Defaults - 默认 - - - - Colors - 颜色数 - - - - Octaves - 八度? - Octaves - - - - Persistence - 持久度 - - - - Lacunarity - 真空度 - - - - Frequency - 频率 - - - - Motion - 运动 - - - - Motion speed - 运动速度 - - - - OpenRGBEffectPage - - - Form - 表单 - - - - EffectName - 效果名称 - - - - EffectDescription - 效果说明 - - - - Random - 随机 - - - - First color - 初始颜色 - - - - Slider2Label - 滑块2标签 - - - - Speed - 速度 - - - - Brightness - 亮度 - - - - FPS: - - - - - 1 - - - - - Status: - 状态: - - - - Stopped - 停止 - - - - - - - - - - Start - 开始 - - - - Stop - 停止 - - - - Auto Start - 自动启动 - - - - Preview - 预览 - - - - Save to file - 保存到文件 - - - - ✔ - - - - - Manually edit - 手动编辑 - - - - ✍ - - - - - Load from file - 从文件加载 - - - - ⬇ - - - - - OpenRGBEffectTab - - - Form - 表单 - - - - ? - - - - - Save as profile - 另存为配置文件 - - - - Load profile - 加载配置文件 - - - - Delete profile - 删除配置文件 - - - - PluginInfo - - - Form - 表单 - - - - Version: - 版本: - - - - VERSION_STRING - - - - - Build date: - 构建日期: - - - - BUILDDATE_STRING - - - - - Git commit ID: - Git 提交 ID: - - - - GIT_COMMIT_ID - - - - - Git commit date: - Git 提交日期: - - - - GIT_COMMIT_DATE - - - - - Git branch: - Git 分支: - - - - GIT_BRANCH - - - - - Download lastest build - 下载最新版本 - - - - Open plugin folder - 打开插件文件夹 - - - - RadialRainbow - - - Form - 表单 - - - - X position - X 位置 - - - - Y position - Y 位置 - - - - Shape - 形状 - - - - RotatingBeam - - - Form - 表单 - - - - Mode - 模式 - - - - Thickness - 厚度 - - - - RotatingRainbow - - - Form - 表单 - - - - SaveProfilePopup - - - Form - 表单 - - - Save - 保存 + 保存 - - Cancel - 取消 + Load + 加载 - - Load profile at startup - 启动时加载配置文件 - - - - Profile name: - 配置文件名称: - - - - Sequence - - - Form - 表单 - - - - Colors - 颜色数 - - - - ShaderFileTabHeader - - - Form - 表单 - - - - X - - - - - ShaderPassEditor - - - Form - 表单 - - - - The audio data will be automatically passed to this shader. Make sure to enabled "Use audio" in the effect page. - 音频数据将自动传递到此着色器。确保在效果页面中启用了“使用音频”。 - - - - Choose texture - 选择纹理 - - - - Open Image - 打开图像 - - - - Image Files (*.png *.jpg *.bmp) - 图像文件 (*.png *.jpg *.bmp) - - - - Shaders - - - Form - 表单 - - - - Width - 宽度 - - - - Decay - 衰变 - - - - Amplitude - 波幅 - - - - Device - 设备 - - - - Average - 平均 - - - - Height - 高度 - - - - Show rendering - 显示渲染 - - - - Use audio - 使用音频 - - - - Edit shader - 编辑着色器 - - - - Reset time - 复位时间 - - - - Invert time - 反转时间 - - - - SmoothBlink - - - Form - 表单 - - - - Pulses (n) - 脉冲 (n) - - - - Defaults - 默认 - - - - Strength (%) - 强度(%) - - - - Interval (s) - 间隔(秒) - - - - Pulse duration (s) - 脉冲持续时间(秒) - - - - Rendering - 渲染 - - - - X position - X 位置 - - - - Y position - Y 位置 - - - - Spiral - - - Form - 表单 - - - - Stack - - - Form - 表单 - - - - Matrix zone direction - 矩阵区方向 - - - - Sunrise - - - Form - 表单 - - - - Motion - 运动 - - - - Intensity - 剧烈程度 - - - - Intensity speed - 剧烈强度速度 - - - - Radius - 半径 - - - - Grow speed - 扩张速度 - - - - Run only once - 仅运行一次 - - - - Swap - - - Form - 表单 - - - - SwirlCircles - - - Form - 表单 - - - - Radius - 半径 - - - - SwirlCirclesAudio - - - Form - 表单 - - - - Amplitude - 波幅 - - - - Audio device - 音频设备 - - - - Average - 均值 - - - - Decay - 衰变 - - - - Radius - 半径 + Clear + 清除 Wavy - Will affect how many waves you will see - 将影响你看到多少波 + 将影响你看到多少波 - Wave frequency - 波频 + 波频 - Will affect the wave speed (left to right) - 会影响波速(从左到右) + 会影响波速(从左到右) - Wave speed - 波速 + 波速 - Will affect the wave duration - 会影响波的持续时间 + 会影响波的持续时间 - Oscillation speed - 振荡速度 - - - - ZigZag - - - Form - 表单 - - - - ZoneListItem - - - Form - 表单 - - - - TextLabel - 文本标签 - - - - Enable - 启用 - - - - Reverse - 反向 - - - - BackgroundApplier - - - Form - 表单 - - - - Add background - 添加背景 - - - - Custom - 自定义 - - - - X offset (%) - X 偏移量 (%) - - - - Add color - 添加颜色 - - - - Y offset (%) - Y 偏移量 (%) - - - - Load - 加载 - - - - Save - 保存 - - - - Rotate (°) - 旋转(°) - - - - Brightness - 亮度 - - - - File - 文件 - - - - Choose image file - 选择图像文件 - - - - Open Image - 打开图像 - - - - Image Files (*.png *.jpg *.bmp) - 图像文件(*.png *.jpg *.bmp) - - - - ColorPicker - - - Form - 表单 - - - - ColorStop - - - Form - 表单 - - - - GridOptions - - - Form - 表单 - - - - Auto register - 自动注册 - - - - Height - 高度 - - - - Unregister member controllers - 注销成员控制器 - - - - Live preview - 实时预览 - - - - Show bounds - 显示边界 - - - - Auto load - 自动加载 - - - - Grid options - 网格选项 - - - - Show grid - 显示网格 - - - - Width - 宽度 - - - - Auto resize - 自动调整大小 - - - - ItemOptions - - - Form - 表单 - - - - Item options - 项目选项 - - - - x - x - - - - y - y - - - - Reverse - 反向 - - - - Shape - 形状 - - - - Led spacing - LED间距 - - - - Edit shape - 编辑形状 - - - - Identify - 亮绿灯标识 - - - - OpenRGBVisualMapTab - - - Form - 表单 - - - - Tab 1 - 选项卡 1 - - - - Tab 2 - 选项卡 2 - - - - PluginInfo - - - Form - 表单 - - - - Version: - 版本: - - - - VERSION_STRING - 不翻 - - - - - Build date: - 构建日期: - - - - BUILDDATE_STRING - 不翻 - - - - - Git commit ID: - - - - - GIT_COMMIT_ID - 不翻 - - - - - Git commit date: - Git commit 日期: - - - - GIT_COMMIT_DATE - 不翻 - - - - - Git branch: - Git 分支: - - - - GIT_BRANCH - 不翻 - - - - - Download lastest build - 下载最新版本 - - - - Open plugin folder - 打开插件文件夹 - - - - TabHeader - - - Form - 表单 - - - - VirtualControllerTab - - - Form - 表单 - - - - Register controller - 添加到控制器列表 - - - - Infos - 信息 - - - - Save - 保存 - - - - Load - 加载 - - - - Clear - 清除 + 振荡速度 WidgetEditor - Form - 表单 + 表单 - Width - 宽度 + 宽度 - Height - 高度 + 高度 - LEDS - 数量 + 数量 - Undo - 撤消 + 撤消 - Rotate - 旋转 + 旋转 - H-Flip - 左右镜像 + 左右镜像 - V-Flip - 上下镜像 + 上下镜像 - H-Line - 从左到右 + 从左到右 - V-Line - 从上到下 + 从上到下 - Square - 正方形 + 正方形 - Circle - 圆形 + 圆形 - ZigZag - 之字形 + 之字形 - Sawtooth - 锯齿形 + 锯齿形 - Grow - 扩大间距 + 扩大间距 - Shrink - 缩小间距 + 缩小间距 - Auto resize - 自动调整大小 + 自动调整大小 - Copy shape - 复制形状 + 复制形状 - Identify - 识别 + 识别 - Auto identify - 自动识别 + 自动识别 - Reset - 重置 + 重置 - Cancel - 取消 + 取消 - Save - 保存 + 保存 - ZigZag size - 之字形尺寸 + 之字形尺寸 - - Enter a value - 输入数值 + 输入数值 - Diagonal size - 对角线尺寸 + 对角线尺寸 + + + + ZigZag + + Form + 表单 + + + + ZoneListItem + + Form + 表单 + + + TextLabel + 文本标签 + + + Enable + 启用 + + + Reverse + 反向 diff --git a/qt/i18n/OpenRGB_zh_TW.ts b/qt/i18n/OpenRGB_zh_TW.ts index f56b1040..6240a79d 100644 --- a/qt/i18n/OpenRGB_zh_TW.ts +++ b/qt/i18n/OpenRGB_zh_TW.ts @@ -1,61 +1,1125 @@ - + + + Ambient + + Form + 表單 + + + Select rectangle... + 選擇矩形... + + + Top + 頂部 + + + Width + 寬度 + + + Left + + + + Mode + 模式 + + + Height + 高度 + + + Screen + 螢幕 + + + + AudioParty + + Form + 表單 + + + Device + 設備 + + + Amplitude + 波幅 + + + Divisions + 分支數量 + + + Effect threshold + 效果閾值 + + + Zones + 區域 + + + + AudioSine + + Form + 表單 + + + Oscillation + 振盪 + + + Color change speed + 顏色變換速度 + + + Repeat + 重複 + + + Colors + 顏色 + + + Average + 均值 + + + Background + 背景 + + + Wave color + 波的顏色 + + + Amplitude + 波幅 + + + Glow + 亮度 + + + Thickness + 厚度 + + + Device + 設備 + + + + AudioStar + + Form + 表單 + + + Amplitude + 波幅 + + + Device + 設備 + + + Decay + 衰變 + + + Edge beat + 邊緣節拍 + + + + AudioVUMeter + + Form + 表單 + + + Audio device + 音訊設備 + + + Average size + 平均尺寸 + + + Amplitude + 波幅 + + + Color offset + 顏色偏移 + + + Decay + 衰變 + + + Color spread + 顏色跨度 + + + + AudioVisualizerUi + + Amplitude (%) + 振幅(%) + + + FFT Window Mode + #FFT窗口模式 + + + Background Brightness + 背景亮度 + + + Background Mode + 背景模式 + + + Average Size + 平均尺寸 + + + Foreground Mode + 前景模式 + + + Decay (% per step) + 衰減(%) + + + Single Color Mode + 單色模式 + + + Normalization Offset + 正則化偏移 + + + Average Mode + 平均模式 + + + Normalization Scale + 正則化比例 + + + Audio Device + 音訊設備 + + + Filter Constant + 過濾器常數 + + + Animation Speed + 動畫速度 + + + Background Timeout + 背景等待延時 + + + Reactive Background + 背景亮度映射音量 + + + Silent Background + 背景在靜音時打開 + + + Visualization Preview + 可視化預覽 + + + + BackgroundApplier + + Form + 表單 + + + Add background + 添加背景 + + + Custom + 自訂 + + + X offset (%) + X 偏移量 (%) + + + Add color + 添加顏色 + + + Y offset (%) + Y 偏移量 (%) + + + Load + 載入 + + + Save + 保存 + + + Rotate (°) + 旋轉(°) + + + Brightness + 亮度 + + + File + 文件 + + + Choose image file + 選擇圖像文件 + + + Open Image + 打開圖像 + + + Image Files (*.png *.jpg *.bmp) + 圖像文件(*.png *.jpg *.bmp) + + + + Bloom + + Form + 表單 + + + + BouncingBall + + Form + 表單 + + + Spectrum Velocity + 頻譜速度 + + + How fast the ball moves side to side + 小球左右移動速度 + + + Defaults + 默認 + + + Gravity + 重力 + + + Ball Radius + 小球尺寸 + + + Drop Height % + 跌落高度% + + + Horizontal Velocity + 水平速度 + + + + BreathingCircle + + Form + 表單 + + + + Bubbles + + Form + 表單 + + + Rarity + 稀有度 + + + Bubbles thickness + 氣泡厚度 + + + Background + 背景 + + + Max bubbles + 最大氣泡數 + + + Speed + 速度 + + + Max expansion + 最大擴展度 + + + + Clock + + Form + 表單 + + + + ColorPicker + + Form + 表單 + + + + ColorStop + + Form + 表單 + + + + ColorWheelEffect + + Form + 表單 + + + X position + X位置 + + + Direction + 方向 + + + Y position + Y位置 + + + + Comet + + Form + 表單 + + + + ControllerZoneList + + Form + 表單 + + + + CrossingBeams + + Form + 表單 + + + Glow + 亮度 + + + Horizontal speed + 水平速度 + + + Vertical speed + 豎直速度 + + + Thickness + 厚度 + + + + CustomBlink + + Form + 表單 + + + Remove selected + 刪除所選內容 + + + Current pattern: + 當前模式: + + + Clear list + 清除列表 + + + Add + 添加 + + + Reset time + 復位時間 + + + Interval + 間隔 + + + + CustomGradientWave + + Form + 表單 + + + Preset + 預設 + + + Colors + 顏色數 + + + Spread + 擴散 + + + + CustomMarquee + + Form + 表單 + + + Colors + 顏色數 + + DetectorTableModel - + Name 名稱 - + Enabled 啟用 + + DeviceList + + Form + 表單 + + + Select all + 全選 + + + Deselect all + 取消全選 + + + Controller + 控制器 + + + Enable + 啟用 + + + Reverse + 反向 + + + + DeviceListItem + + Form + 表單 + + + Enable + 啟用 + + + Reverse + 反向 + + + TextLabel + 文本標籤 + + + This device doesn't have direct mode +Using an effect on a device WILL damage the flash or controller + 此設備沒有直連模式 +在設備上使用燈效會損壞閃光燈或控制器 + + + + DoubleRotatingRainbow + + Form + 表單 + + + Frequency + 頻率 + + + + EffectList + + Form + 表單 + + + Add to the effects list + 添加到燈效列表 + + + Start/Stop all effects + 啟動/停止所有效果 + + + + EffectTabHeader + + Form + 表單 + + + EffectName + 效果名稱 + + + + Fill + + Form + 表單 + + + + FractalMotion + + Form + 表單 + + + Freq m1 + 頻率 m1 + + + Freq m12 + 頻率 m12 + + + Background color: + 背景顏色: + + + Amplitude + 波幅 + + + Freq m2 + 頻率 m2 + + + Freq m7 + 頻率 m7 + + + Freq m10 + 頻率 m10 + + + Freq m8 + 頻率 m8 + + + Freq m9 + 頻率 m9 + + + Freq m5 + 頻率 m5 + + + Defaults + 默認 + + + Freq m4 + 頻率 m4 + + + Freq m3 + 頻率 m3 + + + Freq m6 + 頻率 m6 + + + Frequency + 頻率 + + + Freq m11 + 頻率 m11 + + + Thickness + 厚度 + + + + GLSLCodeEditor + + Form + 表單 + + + Style + 風格 + + + #version + 版本 + + + Tab 1 + 選項卡 1 + + + Tab 2 + 選項卡 2 + + + Apply + 應用 + + + + GifPlayer + + Form + 表單 + + + Choose GIF file + 選擇 GIF 文件 + + + Open GIF file + 打開 GIF 文件 + + + GIF Files (*.gif) + GIF 文件 (*.gif) + + + + GridOptions + + Form + 表單 + + + Auto register + 自動註冊 + + + Height + 高度 + + + Unregister member controllers + 註銷成員控制器 + + + Live preview + 即時預覽 + + + Show bounds + 顯示邊界 + + + Auto load + 自動載入 + + + Grid options + 網格選項 + + + Show grid + 顯示網格 + + + Width + 寬度 + + + Auto resize + 自動調整大小 + + + + Hypnotoad + + Form + 表單 + + + Spacing + 間距 + + + Color rotation speed + 顏色旋轉速度 + + + Color rotation direction + 顏色旋轉方向 + + + X position + X 位置 + + + Animation direction + 動畫方向 + + + Animation speed + 動畫速度 + + + Thickness + 厚度 + + + Y position + Y 位置 + + + + ItemOptions + + Form + 表單 + + + Item options + 項目選項 + + + x + x + + + y + y + + + Reverse + 反向 + + + Shape + 形狀 + + + Led spacing + LED間距 + + + Edit shape + 編輯形狀 + + + Identify + 亮綠燈標識 + + + + LayerEntry + + Form + 表單 + + + + LayerGroupEntry + + Form + 表單 + + + Add layer + 添加圖層 + + + Clear + 清除 + + + Delete group + 刪除組 + + + + Layers + + Form + 表單 + + + Add group + 添加組 + + + Clear + 清除 + + + + Lightning + + Form + 表單 + + + Mode + 模式 + + + + LivePreviewController + + Form + 表單 + + + Reverse + 反向 + + + Brightness + 亮度 + + + Custom height + 自訂高度 + + + Custom width + 自訂寬度 + + + Scale content + 縮放內容 + + + + Marquee + + Form + 表單 + + + + Mask + + Form + 表單 + + + width + 寬度 + + + height + 高度 + + + Invert colors + 顏色反轉 + + + + Mosaic + + Form + 表單 + + + + MotionPoint + + Form + 表單 + + + Background color: + 背景顏色: + + + + MotionPoints + + Form + 表單 + + + + MovingPanes + + Form + 表單 + + + + NewShaderPassTabHeader + + Form + 表單 + + + + NoiseMap + + Form + 表單 + + + Amplitude + 波幅 + + + Defaults + 默認 + + + Colors + 顏色數 + + + Octaves + 八度? + Octaves + + + Persistence + 持久度 + + + Lacunarity + 真空度 + + + Frequency + 頻率 + + + Motion + 運動 + + + Motion speed + 運動速度 + + OpenRGBClientInfoPageUi - + Client info page 用戶端訊息頁面 - + Port: 埠: - + Connect 連接 - + IP: + + + Connected Clients + 連接的用戶端 + + + + Protocol Version + 協議版本 + + + + Save Connection + 保存連接 + OpenRGBConsolePageUi - + Log console page 日誌控制台頁面 - + Log level 日誌級別 - + Refresh logs 刷新日誌 - + Clear log 清除日誌 @@ -63,42 +1127,42 @@ OpenRGBDeviceInfoPageUi - + Device info page 設備訊息頁面 - + Name: 名稱: - + Vendor: 供應商: - + Type: 類型: - + Description: 描述: - + Version: 版本: - + Location: 位置: - + Serial: 序號: @@ -106,117 +1170,117 @@ OpenRGBDevicePageUi - + Device page 設備頁面 - + G: 綠(G): - + H: 色調(H): - + Speed: 速度: - + Random 隨機 - + B: 藍(B): - + LED: - + Mode-Specific 特定模式 - + R: 紅(R): - + Dir: - + S: 飽和度(S): - + Select All 全選 - + Per-LED 單色 - + Zone: 區域: - + <html><head/><body><p align="justify">Sets all devices to<br/><b>Static</b> mode and<br/>applies the selected color.</p></body></html> <html><head/><body><p對齊="justify">所有設備都設置為<br/><b>靜態</b>模式和<br/>應用所選顏色。</p></body></html> - + Apply All Devices 應用所有設備 - + Colors: 顏色: - + V: 明度(V): - + Apply Colors To Selection 將顏色應用於所選內容 - + Resize 調整 - + Mode: 模式: - + Brightness: 亮度: - + Save To Device 保存到設備 @@ -224,69 +1288,69 @@ OpenRGBDialog2Ui - + OpenRGB OpenRGB(漢化:畫板當吃生菜、綠鯉驢與魚) - + Devices 設備 - + Information 訊息 - + Settings 設置 - + Toggle LED View 開關 LED 視圖 - + Rescan Devices 重新掃描設備 - - - + + + Save Profile 保存配置文件 - + Delete Profile 刪除配置文件 - + Load Profile 載入配置文件 - + OpenRGB is detecting devices... OpenRGB 正在檢測設備... - + Cancel 取消 - + Save Profile As... 保存配置文件為... - + Save Profile with custom name 使用自訂名稱保存配置文件 @@ -294,62 +1358,62 @@ OpenRGBDialogUi - + OpenRGB OpenRGB - + Device 設備 - + Red 紅色 - + Green 綠色 - + Blue 藍色 - + Mode 模式 - + Set All 全部設置 - + Set Device 設置設備 - + Zone 區域 - + Set Zone 設置區域 - + Set LED 設置LED - + LED LED @@ -357,67 +1421,67 @@ OpenRGBE131SettingsEntryUi - + E131 settings entry E131 設置條目 - + Start Channel: 啟動頻道: - + Number of LEDs: LED數量: - + Start Universe: 開啟Universe: - + Name: 名稱: - + Matrix Order: 矩陣順序: - + Matrix Height: 矩陣高度: - + Matrix Width: 矩陣寬度: - + Type: 類型: - + IP (Unicast): - + Universe Size: Universe大小: - + Keepalive Time: 保持活動時間: - + RGB Order: RGB順序: @@ -425,58 +1489,189 @@ OpenRGBE131SettingsPageUi - + E131 settings page E131 設置頁面 - + Add 添加 - + Remove 移除 - + Save 保存 + + OpenRGBEffectPage + + Form + 表單 + + + EffectName + 效果名稱 + + + EffectDescription + 效果說明 + + + Random + 隨機 + + + First color + 初始顏色 + + + Slider2Label + 滑塊2標籤 + + + Speed + 速度 + + + Brightness + 亮度 + + + Status: + 狀態: + + + Stopped + 停止 + + + Start + 開始 + + + Stop + 停止 + + + Auto Start + 自動啟動 + + + Preview + 預覽 + + + Save to file + 保存到文件 + + + Manually edit + 手動編輯 + + + Load from file + 從文件載入 + + + + OpenRGBEffectTab + + Form + 表單 + + + Save as profile + 另存為配置文件 + + + Load profile + 載入配置文件 + + + Delete profile + 刪除配置文件 + + + + OpenRGBElgatoKeyLightSettingsEntryUi + + + Dialog + + + + + IP: + + + + + OpenRGBElgatoKeyLightSettingsPageUi + + + Dialog + + + + + Add + 添加 + + + + Remove + 移除 + + + + Save + 保存 + + OpenRGBLIFXSettingsEntryUi - + Form 表單 - + IP: + + + Name + 名稱 + OpenRGBLIFXSettingsPageUi - + Form 表單 - + Add 添加 - + Remove 移除 - + Save 保存 @@ -484,32 +1679,32 @@ OpenRGBNanoleafSettingsEntryUi - + Form 表單 - + IP: - + Port: 埠: - + Auth Key: 身份驗證金鑰: - + Unpair 取消配對 - + Pair 配對 @@ -517,17 +1712,17 @@ OpenRGBNanoleafSettingsPageUi - + Form 表單 - + Scan 掃描 - + To pair, hold the on-off button down for 5-7 seconds until the LED starts flashing in a pattern, then click the "Pair" button within 30 seconds. 配對時,請按住開關按鈕 5-7 秒鐘,直到 LED 開始以某種模式閃爍,然後在 30 秒內點按“配對”按鈕。 @@ -535,42 +1730,42 @@ OpenRGBPhilipsHueSettingsEntryUi - + Form 表單 - + Entertainment Mode: 娛樂模式: - + Auto Connect Group: 自動連接: - + IP: - + Client Key: 用戶端金鑰: - + Username: 使用者名稱: - + MAC: - + Unpair Bridge 未配對橋 @@ -578,27 +1773,27 @@ OpenRGBPhilipsHueSettingsPageUi - + Philips Hue settings page 飛利浦 Hue 設置頁面 - + Remove 移除 - + Add 添加 - + Save 保存 - + After adding a Hue entry and saving, restart OpenRGB and press the Sync button on your Hue bridge to pair it. 添加 Hue 條目並保存後,重新啟動 OpenRGB,然後按 Hue 網橋上的“同步”按鈕進行配對。 @@ -606,12 +1801,12 @@ OpenRGBPhilipsWizSettingsEntryUi - + Philips WIZ settings entry 飛利浦 WIZ 設置條目 - + IP: @@ -619,22 +1814,22 @@ OpenRGBPhilipsWizSettingsPageUi - + Philips WIZ settings page 飛利浦 WIZ 設置頁面 - + Add 添加 - + Remove 移除 - + Save 保存 @@ -642,7 +1837,7 @@ OpenRGBPluginContainerUi - + Plugin container 插件容器 @@ -650,47 +1845,47 @@ OpenRGBPluginsEntryUi - + Plugins entry 插件條目 - + Version: 版本: - + Name: 名稱: - + Description: 描述: - + URL: - + Path: 路徑: - + Enabled 啟用 - + Commit: 提交: - + Icon 圖示 @@ -698,30 +1893,35 @@ OpenRGBPluginsPageUi - + Plugins page 插件頁面 - + Install Plugin 安裝插件 - + Remove Plugin 移除插件 + + + <html><head/><body>Looking for plugins? See the official list at <a href="https://openrgb.org/plugins.html">OpenRGB.org</a></body></html> + + OpenRGBProfileSaveDialogUi - + Profile Name 配置檔案名稱 - + New Profile Name: 新配置檔案名稱: @@ -729,22 +1929,22 @@ OpenRGBQMKORGBSettingsEntryUi - + QMK settings entry QMK 設置條目 - + Name: 名稱: - + USB PID: - + USB VID: @@ -752,22 +1952,22 @@ OpenRGBQMKORGBSettingsPageUi - + QMK Settings page QMK 設置頁面 - + Add 添加 - + Remove 移除 - + Save 保存 @@ -775,32 +1975,32 @@ OpenRGBSerialSettingsEntryUi - + Serial settings entry 串列設置條目 - + Baud: Baud: - + Name: 名稱: - + Number of LEDs: LED數量: - + Port: 埠: - + Protocol: 協議: @@ -808,22 +2008,22 @@ OpenRGBSerialSettingsPageUi - + Serial settings page 串列設置頁面 - + Add 添加 - + Remove 移除 - + Save 保存 @@ -831,37 +2031,57 @@ OpenRGBServerInfoPageUi - + Server info page 伺服器訊息頁面 - + Stop Server 中止伺服器 - + Server Port: 伺服器埠: - + + Client IP + 用戶端 IP + + + + Protocol Version + 協議版本 + + + + Client Name + 用戶端名稱 + + + Start Server 啟動伺服器 - + + Server Host: + + + + Server Status: 伺服器狀態: - + Offline 離線 - + Connected Clients: 連接的用戶端: @@ -869,117 +2089,137 @@ OpenRGBSettingsPageUi - + Settings page 軟體設置 - + Minimize On Close 關閉窗口時最小化 - + 90000 - + Start Server 啟動伺服器 - + Enable Log Console (restart required) 啟用日誌控制台(需要重新啟動) - + Custom Arguments 自訂參數 - + Save Geometry On Close 關閉時保存幾何圖形 - + Load Window Geometry 載入窗口幾何圖形 - + Start Client 啟動用戶端 - + Start At Login Settings: 從登錄設置開始: - + Log Manager Settings: 日誌管理器設置: - + Theme (restart required) 主題(需要重新啟動) - + Start at Login Status 從登錄狀態開始 - + + Set Profile on Exit + + + + + Shared SMBus Access (restart required) + + + + + Set Server Host + + + + Set Server Port 設置伺服器埠 - + + Language + + + + Load Profile 載入配置文件 - + Drivers Settings 驅動程序設定 - + Run zone checks on rescan 重新掃描時運行區域檢查 - + User Interface Settings: 用戶界面設置: - + Start At Login 登錄時開啟 - + Start Minimized 開啟時最小化 - + AMD SMBus: Reduce CPU Usage (restart required) AMD SMBus:降低 CPU 使用率(需要重新啟動) - + Greyscale Tray Icon 灰度托盤圖示 - + Open Settings Folder 打開設置文件夾 @@ -987,52 +2227,52 @@ OpenRGBSoftwareInfoPageUi - + Software info page 軟體訊息頁面 - + Build Date: 構建日期: - + Git Commit ID: Git Commit ID: - + Git Commit Date: Git Commit 日期: - + Git Branch: Git Branch: - + Version: 版本: - + Gitlab page Gitlab 頁面 - + Website 網頁 - + <a href="https://openrgb.org">https://openrgb.org</a> - + <a href="https://gitlab.com/CalcProgrammer1/OpenRGB">https://gitlab.com/CalcProgrammer1/OpenRGB</a> @@ -1040,22 +2280,22 @@ OpenRGBSupportedDevicesPageUi - + Supported devices 相容設備選擇 - + Filter: 過濾: - + Enable/Disable all 全部啟用/禁用 - + Apply changes 應用更改 @@ -1063,107 +2303,122 @@ OpenRGBSystemInfoPageUi - + System info page 系統訊息頁面 - + SMBus Adapters: SMBus 適配器: - + Address: 地址: - + Read Device 讀取設備 - + SMBus Dumper: - - - + + + 0x - + SMBus Detector: SMBus 檢測器: - + Detection Mode: 檢測模式: - + Detect Devices 檢測設備 - + Dump Device 轉儲設備 - + SMBus Reader: SMBus 讀卡器: - + Addr: 地 址: - + Reg: 註冊: - + Size: 大小: + + OpenRGBVisualMapTab + + Form + 表單 + + + Tab 1 + 選項卡 1 + + + Tab 2 + 選項卡 2 + + OpenRGBYeelightSettingsEntryUi - + Yeelight settings entry Yeelight設置條目 - + IP: - + ? - + Music Mode: 音樂模式: - + Override host IP: 覆蓋主機 IP: - + Left blank for auto discovering host ip 留空用於自動發現主機 IP @@ -1171,22 +2426,22 @@ OpenRGBYeelightSettingsPageUi - + Yeelight settings page Yeelight設置頁面 - + Add 添加 - + Remove 移除 - + Save 保存 @@ -1194,7 +2449,7 @@ OpenRGBZoneResizeDialogUi - + Resize Zone 調整區域大小 @@ -1202,41 +2457,372 @@ OpenRGBZonesBulkResizerUi - + Zones resizer 區域調整大小 - + <html><head/><body><p>One or more resizable zones have not been configured. Resizable zones are most commonly used for addressable RGB headers where the size of the connected device cannot be detected automatically.</p><p>Please enter the number of LEDs in each zone below.</p><p>For more information about calcuating the correct size, please check <a href="https://openrgb.org/resize"><span style=" text-decoration: underline; color:#0000ff;">this link.</span></a></p></body></html> style??? <html><head/><body><p>一個或多個可調整大小的區域尚未配置。 可調整大小的區域最常用於無法自動檢測到所連接設備大小的可定址 RGB 標頭。</p><p>請在下面輸入每個區域中的 LED 數量。</p><p>有關計算正確大小的詳細訊息,請查看<a href="https://openrgb.org/resize"><span 樣式=" text-decoration: underline; color:#0000ff;">此連結。</span></a></p></body></html> - + Do not show again 不再顯示 - + Save and close 保存並關閉 - + Ignore 忽視 + + PluginInfo + + Form + 表單 + + + Version: + 版本: + + + Build date: + 構建日期: + + + Git commit ID: + Git 提交 ID: + + + Git commit date: + Git 提交日期: + + + Git branch: + Git 分支: + + + Download lastest build + 下載最新版本 + + + Open plugin folder + 打開插件文件夾 + + + + RadialRainbow + + Form + 表單 + + + X position + X 位置 + + + Y position + Y 位置 + + + Shape + 形狀 + + + + RotatingBeam + + Form + 表單 + + + Mode + 模式 + + + Thickness + 厚度 + + + + RotatingRainbow + + Form + 表單 + + + + SaveProfilePopup + + Form + 表單 + + + Save + 保存 + + + Cancel + 取消 + + + Load profile at startup + 啟動時載入配置文件 + + + Profile name: + 配置檔案名稱: + + + + Sequence + + Form + 表單 + + + Colors + 顏色數 + + + + ShaderFileTabHeader + + Form + 表單 + + + + ShaderPassEditor + + Form + 表單 + + + The audio data will be automatically passed to this shader. Make sure to enabled "Use audio" in the effect page. + 音訊數據將自動傳遞到此著色器。確保在效果頁面中啟用了“使用音訊”。 + + + Choose texture + 選擇紋理 + + + Open Image + 打開圖像 + + + Image Files (*.png *.jpg *.bmp) + 圖像文件 (*.png *.jpg *.bmp) + + + + Shaders + + Form + 表單 + + + Width + 寬度 + + + Decay + 衰變 + + + Amplitude + 波幅 + + + Device + 設備 + + + Average + 平均 + + + Height + 高度 + + + Show rendering + 顯示渲染 + + + Use audio + 使用音訊 + + + Edit shader + 編輯著色器 + + + Reset time + 復位時間 + + + Invert time + 反轉時間 + + + + SmoothBlink + + Form + 表單 + + + Pulses (n) + 脈衝 (n) + + + Defaults + 默認 + + + Strength (%) + 強度(%) + + + Interval (s) + 間隔(秒) + + + Pulse duration (s) + 脈衝持續時間(秒) + + + Rendering + 渲染 + + + X position + X 位置 + + + Y position + Y 位置 + + + + Spiral + + Form + 表單 + + + + Stack + + Form + 表單 + + + Matrix zone direction + 矩陣區方向 + + + + Sunrise + + Form + 表單 + + + Motion + 運動 + + + Intensity + 劇烈程度 + + + Intensity speed + 劇烈強度速度 + + + Radius + 半徑 + + + Grow speed + 擴張速度 + + + Run only once + 僅運行一次 + + + + Swap + + Form + 表單 + + + + SwirlCircles + + Form + 表單 + + + Radius + 半徑 + + + + SwirlCirclesAudio + + Form + 表單 + + + Amplitude + 波幅 + + + Audio device + 音訊設備 + + + Average + 均值 + + + Decay + 衰變 + + + Radius + 半徑 + + + + TabHeader + + Form + 表單 + + TabLabelUi - + Tab Label 標籤頁標籤 - + device name 設備名稱 @@ -1244,22 +2830,19 @@ Ui::OpenRGBClientInfoPage - Connected Clients - 連接的用戶端 + 連接的用戶端 - Protocol Version - 協議版本 + 協議版本 - Save Connection - 保存連接 + 保存連接 - + Disconnect 斷開 @@ -1267,107 +2850,107 @@ Ui::OpenRGBDevicePage - + Set individual LEDs to static colors. Safe for use with software-driven effects. 將單個 LED 設置為靜態顏色。 可安全使用軟體驅動效果。 - + Set individual LEDs to static colors. Not safe for use with software-driven effects. 將單個 LED 設置為靜態顏色。 與軟體驅動的效果一起使用不安全。 - + Sets the entire device or a zone to a single color. 將整個設備或區域設置為單一顏色。 - + Gradually fades between fully off and fully on. 在完全關閉和完全打開之間逐漸淡出。 - + Abruptly changes between fully off and fully on. 在完全關閉和完全打開之間突然變化。 - + Gradually cycles through the entire color spectrum. All lights on the device are the same color. 在整個色譜中逐漸循環。 設備上的所有指示燈都是相同的顏色。 - + Gradually cycles through the entire color spectrum. Produces a rainbow pattern that moves. 在整個色譜中逐漸循環。 生成移動的彩虹圖案。 - + Flashes lights when keys or buttons are pressed. 按下按鍵或按鈕時閃爍。 - + Entire Device 整個設備 - + Entire Zone 整個區域 - + Left - + Right - + Up - + Down - + Horizontal 水平 - + Vertical 垂直 - + Saved To Device 保存到設備 - + Save To Device 保存到設備 - + Saving Not Supported 不支持保存 - + All Zones 所有區域 - + Mode Specific 特定模式 @@ -1375,142 +2958,157 @@ Ui::OpenRGBDialog2 - + Show/Hide 顯示/隱藏 - + Profiles 配置文件 - + Quick Colors 快速著色 - + Red 紅色 - + Yellow 黃色 - + Green 綠色 - + Cyan 青色 - + Blue 藍色 - + Magenta 品紅 - + White - + Lights Off 關燈 - + Exit 退出 - + Plugins 插件 - + Software 軟體 - + Supported Devices 相容設備選擇 - + General Settings 常規設置 - + E1.31 Devices E1.31 設備 - + + LIFX Devices + + + + Philips Hue Devices 飛利浦 Hue 設備 - + Philips Wiz Devices 飛利浦 Wiz 設備 - + OpenRGB QMK Protocol OpenRGB QMK 協議 - + Serial Devices 串列設備 - + Yeelight Devices Yeelight 設備 - + + Nanoleaf Devices + + + + + Elgato KeyLight Devices + + + + SMBus Tools SMBus 工具 - + SDK Client SDK 用戶端 - + SDK Server SDK 伺服器 - + Delete Profile 刪除配置文件 - + Do you really want to delete this profile? 是否確定刪除此配置文件? - + Log Console 日誌控制台 @@ -1518,57 +3116,57 @@ Ui::OpenRGBE131SettingsEntry - + Single - + Linear - + Matrix - + Horizontal Top Left 水平左上角 - + Horizontal Top Right 水平右上角 - + Horizontal Bottom Left 水平左下角 - + Horizontal Bottom Right 水平右下角 - + Vertical Top Left 豎直左上角 - + Vertical Top Right 豎直右上角 - + Vertical Bottom Left 豎直左下角 - + Vertical Bottom Right 豎直右下角 @@ -1576,32 +3174,36 @@ Ui::OpenRGBPluginsPage - + Install OpenRGB Plugin 安裝 OpenRGB 插件 - Plugin files (*.dll; *.dylib; *.so; *.so.*) - 插件文件(*.dll; *.dylib; *.so; *.so.*) + 插件文件(*.dll; *.dylib; *.so; *.so.*) - + + Plugin files (*.dll *.dylib *.so *.so.*) + + + + Replace Plugin 替換插件 - + A plugin with this filename is already installed. Are you sure you want to replace this plugin? 已安裝具有此檔案名的插件。 您確定要替換此插件嗎? - + Remove Plugin 移除插件 - + Are you sure you want to remove this plugin? 是否確定刪除此插件? @@ -1609,40 +3211,48 @@ Ui::OpenRGBServerInfoPage - + Stopping... 停止... - + Online 在線 - + Offline 離線 - Client IP - 用戶端 IP + 用戶端 IP - Protocol Version - 協議版本 + 協議版本 - Client Name - 用戶端名稱 + 用戶端名稱 Ui::OpenRGBSettingsPage - + + + English - US + + + + + System Default + + + + A problem occurred enabling Start At Login. 啟用“登錄時啟動”時出現問題。 @@ -1650,12 +3260,12 @@ Ui::OpenRGBYeelightSettingsEntry - + Choose an IP... 選擇一個 IP... - + Choose the correct IP for the host 為主機選擇正確的 IP @@ -1663,2296 +3273,211 @@ Ui::OpenRGBZonesBulkResizer - + Resize the zones 調整區域大小 - + Controller 控制器 - + Zone 區域 - + Size 大小 - Ambient + VirtualControllerTab - Form - 表單 + 表單 - - Select rectangle... - 選擇矩形... + Register controller + 添加到控制器列表 - - Top - 頂部 + Infos + 訊息 - - Width - 寬度 - - - - Left - - - - - Mode - 模式 - - - - Height - 高度 - - - - Screen - 螢幕 - - - - AudioParty - - - Form - 表單 - - - - Device - 設備 - - - - Amplitude - 波幅 - - - - Divisions - 分支數量 - - - - Effect threshold - 效果閾值 - - - - Zones - 區域 - - - - AudioSine - - - Form - 表單 - - - - Oscillation - 振盪 - - - - Color change speed - 顏色變換速度 - - - - Repeat - 重複 - - - - Colors - 顏色 - - - - Average - 均值 - - - - Background - 背景 - - - - Wave color - 波的顏色 - - - - Amplitude - 波幅 - - - - Glow - 亮度 - - - - Thickness - 厚度 - - - - Device - 設備 - - - - AudioStar - - - Form - 表單 - - - - Amplitude - 波幅 - - - - Device - 設備 - - - - Decay - 衰變 - - - - Edge beat - 邊緣節拍 - - - - AudioVUMeter - - - Form - 表單 - - - - Audio device - 音訊設備 - - - - Average size - 平均尺寸 - - - - Amplitude - 波幅 - - - - Color offset - 顏色偏移 - - - - Decay - 衰變 - - - - Color spread - 顏色跨度 - - - - AudioVisualizerUi - - - Amplitude (%) - 振幅(%) - - - - FFT Window Mode - #FFT窗口模式 - - - - Background Brightness - 背景亮度 - - - - Background Mode - 背景模式 - - - - Average Size - 平均尺寸 - - - - Foreground Mode - 前景模式 - - - - Decay (% per step) - 衰減(%) - - - - Single Color Mode - 單色模式 - - - - Normalization Offset - 正則化偏移 - - - - Average Mode - 平均模式 - - - - Normalization Scale - 正則化比例 - - - - Audio Device - 音訊設備 - - - - Filter Constant - 過濾器常數 - - - - Animation Speed - 動畫速度 - - - - Background Timeout - 背景等待延時 - - - - Reactive Background - 背景亮度映射音量 - - - - Silent Background - 背景在靜音時打開 - - - - Visualization Preview - 可視化預覽 - - - - Bloom - - - Form - 表單 - - - - BouncingBall - - - Form - 表單 - - - - Spectrum Velocity - 頻譜速度 - - - - How fast the ball moves side to side - 小球左右移動速度 - - - - Defaults - 默認 - - - - Gravity - 重力 - - - - Ball Radius - 小球尺寸 - - - - - - 10 - - - - - Drop Height % - 跌落高度% - - - - 15 - - - - - 90 - - - - - Horizontal Velocity - 水平速度 - - - - BreathingCircle - - - Form - 表單 - - - - Bubbles - - - Form - 表單 - - - - Rarity - 稀有度 - - - - Bubbles thickness - 氣泡厚度 - - - - Background - 背景 - - - - Max bubbles - 最大氣泡數 - - - - Speed - 速度 - - - - Max expansion - 最大擴展度 - - - - Clock - - - Form - 表單 - - - - ColorPicker - - - Form - 表單 - - - - ColorWheelEffect - - - Form - 表單 - - - - X position - X位置 - - - - Direction - 方向 - - - - Y position - Y位置 - - - - Comet - - - Form - 表單 - - - - ControllerZoneList - - - Form - 表單 - - - - CrossingBeams - - - Form - 表單 - - - - Glow - 亮度 - - - - Horizontal speed - 水平速度 - - - - Vertical speed - 豎直速度 - - - - Thickness - 厚度 - - - - CustomBlink - - - Form - 表單 - - - - Remove selected - 刪除所選內容 - - - - Current pattern: - 當前模式: - - - - Clear list - 清除列表 - - - - Add - 添加 - - - - - - - - - - Reset time - 復位時間 - - - - Interval - 間隔 - - - - CustomGradientWave - - - Form - 表單 - - - - Preset - 預設 - - - - Colors - 顏色數 - - - - Spread - 擴散 - - - - CustomMarquee - - - Form - 表單 - - - - Colors - 顏色數 - - - - DeviceList - - - Form - 表單 - - - - Select all - 全選 - - - - Deselect all - 取消全選 - - - - Controller - 控制器 - - - - Enable - 啟用 - - - - ✓ - - - - - Reverse - 反向 - - - - ⇆ - - - - - DeviceListItem - - - Form - 表單 - - - - Enable - 啟用 - - - - Reverse - 反向 - - - - TextLabel - 文本標籤 - - - - This device doesn't have direct mode -Using an effect on a device WILL damage the flash or controller - 此設備沒有直連模式 -在設備上使用燈效會損壞閃光燈或控制器 - - - - ⚠ - - - - - DoubleRotatingRainbow - - - Form - 表單 - - - - Frequency - 頻率 - - - - EffectList - - - Form - 表單 - - - - Add to the effects list - 添加到燈效列表 - - - - + - - - - - Start/Stop all effects - 啟動/停止所有效果 - - - - ⏯ - - - - - EffectTabHeader - - - Form - 表單 - - - - ● - - - - - EffectName - 效果名稱 - - - - × - - - - - Fill - - - Form - 表單 - - - - FractalMotion - - - Form - 表單 - - - - Freq m1 - 頻率 m1 - - - - Freq m12 - 頻率 m12 - - - - Background color: - 背景顏色: - - - - Amplitude - 波幅 - - - - Freq m2 - 頻率 m2 - - - - Freq m7 - 頻率 m7 - - - - Freq m10 - 頻率 m10 - - - - Freq m8 - 頻率 m8 - - - - Freq m9 - 頻率 m9 - - - - Freq m5 - 頻率 m5 - - - - Defaults - 默認 - - - - Freq m4 - 頻率 m4 - - - - Freq m3 - 頻率 m3 - - - - Freq m6 - 頻率 m6 - - - - Frequency - 頻率 - - - - Freq m11 - 頻率 m11 - - - - Thickness - 厚度 - - - - GLSLCodeEditor - - - Form - 表單 - - - - Style - 風格 - - - - #version - 版本 - - - - Tab 1 - 選項卡 1 - - - - Tab 2 - 選項卡 2 - - - - Apply - 應用 - - - - - - ? - - - - - 110 - - - - - GifPlayer - - - Form - 表單 - - - - Choose GIF file - 選擇 GIF 文件 - - - - Open GIF file - 打開 GIF 文件 - - - - GIF Files (*.gif) - GIF 文件 (*.gif) - - - - Hypnotoad - - - Form - 表單 - - - - Spacing - 間距 - - - - Color rotation speed - 顏色旋轉速度 - - - - Color rotation direction - 顏色旋轉方向 - - - - X position - X 位置 - - - - Animation direction - 動畫方向 - - - - Animation speed - 動畫速度 - - - - Thickness - 厚度 - - - - Y position - Y 位置 - - - - LayerEntry - - - Form - 表單 - - - - X - - - - - LayerGroupEntry - - - Form - 表單 - - - - Add layer - 添加圖層 - - - - Clear - 清除 - - - - Delete group - 刪除組 - - - - Layers - - - Form - 表單 - - - - Add group - 添加組 - - - - Clear - 清除 - - - - Lightning - - - Form - 表單 - - - - Mode - 模式 - - - - LivePreviewController - - - Form - 表單 - - - - Reverse - 反向 - - - - Brightness - 亮度 - - - - Custom height - 自訂高度 - - - - Custom width - 自訂寬度 - - - - Scale content - 縮放內容 - - - - Marquee - - - Form - 表單 - - - - Mask - - - Form - 表單 - - - - x - - - - - width - 寬度 - - - - height - 高度 - - - - Invert colors - 顏色反轉 - - - - y - - - - - Mosaic - - - Form - 表單 - - - - MotionPoint - - - Form - 表單 - - - - Background color: - 背景顏色: - - - - MotionPoints - - - Form - 表單 - - - - MovingPanes - - - Form - 表單 - - - - NewShaderPassTabHeader - - - Form - 表單 - - - - + - - - - - NoiseMap - - - Form - 表單 - - - - Amplitude - 波幅 - - - - Defaults - 默認 - - - - Colors - 顏色數 - - - - Octaves - 八度? - Octaves - - - - Persistence - 持久度 - - - - Lacunarity - 真空度 - - - - Frequency - 頻率 - - - - Motion - 運動 - - - - Motion speed - 運動速度 - - - - OpenRGBEffectPage - - - Form - 表單 - - - - EffectName - 效果名稱 - - - - EffectDescription - 效果說明 - - - - Random - 隨機 - - - - First color - 初始顏色 - - - - Slider2Label - 滑塊2標籤 - - - - Speed - 速度 - - - - Brightness - 亮度 - - - - FPS: - - - - - 1 - - - - - Status: - 狀態: - - - - Stopped - 停止 - - - - - - - - - - Start - 開始 - - - - Stop - 停止 - - - - Auto Start - 自動啟動 - - - - Preview - 預覽 - - - - Save to file - 保存到文件 - - - - ✔ - - - - - Manually edit - 手動編輯 - - - - ✍ - - - - - Load from file - 從文件載入 - - - - ⬇ - - - - - OpenRGBEffectTab - - - Form - 表單 - - - - ? - - - - - Save as profile - 另存為配置文件 - - - - Load profile - 載入配置文件 - - - - Delete profile - 刪除配置文件 - - - - PluginInfo - - - Form - 表單 - - - - Version: - 版本: - - - - VERSION_STRING - - - - - Build date: - 構建日期: - - - - BUILDDATE_STRING - - - - - Git commit ID: - Git 提交 ID: - - - - GIT_COMMIT_ID - - - - - Git commit date: - Git 提交日期: - - - - GIT_COMMIT_DATE - - - - - Git branch: - Git 分支: - - - - GIT_BRANCH - - - - - Download lastest build - 下載最新版本 - - - - Open plugin folder - 打開插件文件夾 - - - - RadialRainbow - - - Form - 表單 - - - - X position - X 位置 - - - - Y position - Y 位置 - - - - Shape - 形狀 - - - - RotatingBeam - - - Form - 表單 - - - - Mode - 模式 - - - - Thickness - 厚度 - - - - RotatingRainbow - - - Form - 表單 - - - - SaveProfilePopup - - - Form - 表單 - - - Save - 保存 + 保存 - - Cancel - 取消 + Load + 載入 - - Load profile at startup - 啟動時載入配置文件 - - - - Profile name: - 配置檔案名稱: - - - - Sequence - - - Form - 表單 - - - - Colors - 顏色數 - - - - ShaderFileTabHeader - - - Form - 表單 - - - - X - - - - - ShaderPassEditor - - - Form - 表單 - - - - The audio data will be automatically passed to this shader. Make sure to enabled "Use audio" in the effect page. - 音訊數據將自動傳遞到此著色器。確保在效果頁面中啟用了“使用音訊”。 - - - - Choose texture - 選擇紋理 - - - - Open Image - 打開圖像 - - - - Image Files (*.png *.jpg *.bmp) - 圖像文件 (*.png *.jpg *.bmp) - - - - Shaders - - - Form - 表單 - - - - Width - 寬度 - - - - Decay - 衰變 - - - - Amplitude - 波幅 - - - - Device - 設備 - - - - Average - 平均 - - - - Height - 高度 - - - - Show rendering - 顯示渲染 - - - - Use audio - 使用音訊 - - - - Edit shader - 編輯著色器 - - - - Reset time - 復位時間 - - - - Invert time - 反轉時間 - - - - SmoothBlink - - - Form - 表單 - - - - Pulses (n) - 脈衝 (n) - - - - Defaults - 默認 - - - - Strength (%) - 強度(%) - - - - Interval (s) - 間隔(秒) - - - - Pulse duration (s) - 脈衝持續時間(秒) - - - - Rendering - 渲染 - - - - X position - X 位置 - - - - Y position - Y 位置 - - - - Spiral - - - Form - 表單 - - - - Stack - - - Form - 表單 - - - - Matrix zone direction - 矩陣區方向 - - - - Sunrise - - - Form - 表單 - - - - Motion - 運動 - - - - Intensity - 劇烈程度 - - - - Intensity speed - 劇烈強度速度 - - - - Radius - 半徑 - - - - Grow speed - 擴張速度 - - - - Run only once - 僅運行一次 - - - - Swap - - - Form - 表單 - - - - SwirlCircles - - - Form - 表單 - - - - Radius - 半徑 - - - - SwirlCirclesAudio - - - Form - 表單 - - - - Amplitude - 波幅 - - - - Audio device - 音訊設備 - - - - Average - 均值 - - - - Decay - 衰變 - - - - Radius - 半徑 + Clear + 清除 Wavy - Will affect how many waves you will see - 將影響你看到多少波 + 將影響你看到多少波 - Wave frequency - 波頻 + 波頻 - Will affect the wave speed (left to right) - 會影響波速(從左到右) + 會影響波速(從左到右) - Wave speed - 波速 + 波速 - Will affect the wave duration - 會影響波的持續時間 + 會影響波的持續時間 - Oscillation speed - 振盪速度 - - - - ZigZag - - - Form - 表單 - - - - ZoneListItem - - - Form - 表單 - - - - TextLabel - 文本標籤 - - - - Enable - 啟用 - - - - Reverse - 反向 - - - - BackgroundApplier - - - Form - 表單 - - - - Add background - 添加背景 - - - - Custom - 自訂 - - - - X offset (%) - X 偏移量 (%) - - - - Add color - 添加顏色 - - - - Y offset (%) - Y 偏移量 (%) - - - - Load - 載入 - - - - Save - 保存 - - - - Rotate (°) - 旋轉(°) - - - - Brightness - 亮度 - - - - File - 文件 - - - - Choose image file - 選擇圖像文件 - - - - Open Image - 打開圖像 - - - - Image Files (*.png *.jpg *.bmp) - 圖像文件(*.png *.jpg *.bmp) - - - - ColorPicker - - - Form - 表單 - - - - ColorStop - - - Form - 表單 - - - - GridOptions - - - Form - 表單 - - - - Auto register - 自動註冊 - - - - Height - 高度 - - - - Unregister member controllers - 註銷成員控制器 - - - - Live preview - 即時預覽 - - - - Show bounds - 顯示邊界 - - - - Auto load - 自動載入 - - - - Grid options - 網格選項 - - - - Show grid - 顯示網格 - - - - Width - 寬度 - - - - Auto resize - 自動調整大小 - - - - ItemOptions - - - Form - 表單 - - - - Item options - 項目選項 - - - - x - x - - - - y - y - - - - Reverse - 反向 - - - - Shape - 形狀 - - - - Led spacing - LED間距 - - - - Edit shape - 編輯形狀 - - - - Identify - 亮綠燈標識 - - - - OpenRGBVisualMapTab - - - Form - 表單 - - - - Tab 1 - 選項卡 1 - - - - Tab 2 - 選項卡 2 - - - - PluginInfo - - - Form - 表單 - - - - Version: - 版本: - - - - VERSION_STRING - 不翻 - - - - - Build date: - 構建日期: - - - - BUILDDATE_STRING - 不翻 - - - - - Git commit ID: - - - - - GIT_COMMIT_ID - 不翻 - - - - - Git commit date: - Git commit 日期: - - - - GIT_COMMIT_DATE - 不翻 - - - - - Git branch: - Git 分支: - - - - GIT_BRANCH - 不翻 - - - - - Download lastest build - 下載最新版本 - - - - Open plugin folder - 打開插件文件夾 - - - - TabHeader - - - Form - 表單 - - - - VirtualControllerTab - - - Form - 表單 - - - - Register controller - 添加到控制器列表 - - - - Infos - 訊息 - - - - Save - 保存 - - - - Load - 載入 - - - - Clear - 清除 + 振盪速度 WidgetEditor - Form - 表單 + 表單 - Width - 寬度 + 寬度 - Height - 高度 + 高度 - LEDS - 數量 + 數量 - Undo - 撤消 + 撤消 - Rotate - 旋轉 + 旋轉 - H-Flip - 左右鏡像 + 左右鏡像 - V-Flip - 上下鏡像 + 上下鏡像 - H-Line - 從左到右 + 從左到右 - V-Line - 從上到下 + 從上到下 - Square - 正方形 + 正方形 - Circle - 圓形 + 圓形 - ZigZag - 之字形 + 之字形 - Sawtooth - 鋸齒形 + 鋸齒形 - Grow - 擴大間距 + 擴大間距 - Shrink - 縮小間距 + 縮小間距 - Auto resize - 自動調整大小 + 自動調整大小 - Copy shape - 複製形狀 + 複製形狀 - Identify - 識別 + 識別 - Auto identify - 自動識別 + 自動識別 - Reset - 重設 + 重設 - Cancel - 取消 + 取消 - Save - 保存 + 保存 - ZigZag size - 之字形尺寸 + 之字形尺寸 - - Enter a value - 輸入數值 + 輸入數值 - Diagonal size - 對角線尺寸 + 對角線尺寸 + + + + ZigZag + + Form + 表單 + + + + ZoneListItem + + Form + 表單 + + + TextLabel + 文本標籤 + + + Enable + 啟用 + + + Reverse + 反向