L-Super / FlowD

An efficient multi-threaded download manager
MIT License
8 stars 1 forks source link

[FEATURE]: use Qt linguist for translation #5

Open nepvibes opened 2 months ago

nepvibes commented 2 months ago

Feature Description 【特性详细描述】

The current default language is set to Chinese. To make our application more accessible to a wider audience, we should include a translation system and set English as the default language. We can use Qt Linguist to create .ts files for translations using lupdate.

QTranslator translator; if (translator.load(QLocale(), "FlowD", "_", ":/translations")) { app.installTranslator(&translator); }

For making strings translatable, we can use the tr function. Here’s an example:

void DownloadItemWidget::onBtnSuspendClicked(bool checked) { if (checked) { ui->btnSuspend->setText(tr("Continue")); /* When the button is checked, change the text to "Continue" TODO: Add logic to resume the download */ } else { ui->btnSuspend->setText(tr("Pause")); /* When the button is unchecked, change the text to "Pause" TODO: Add logic to pause the download */ } }

This setup will ensure that our application supports multiple languages, with English as the default. The lupdate tool will help generate the .ts files needed for translation.

ProgramCX commented 2 months ago

Feature Description 【特性详细描述】

The current default language is set to Chinese. To make our application more accessible to a wider audience, we should include a translation system and set English as the default language. We can use Qt Linguist to create .ts files for translations using lupdate.

QTranslator translator; if (translator.load(QLocale(), "FlowD", "_", ":/translations")) { app.installTranslator(&translator); }

For making strings translatable, we can use the tr function. Here’s an example:

void DownloadItemWidget::onBtnSuspendClicked(bool checked) { if (checked) { ui->btnSuspend->setText(tr("Continue")); /* When the button is checked, change the text to "Continue" TODO: Add logic to resume the download */ } else { ui->btnSuspend->setText(tr("Pause")); /* When the button is unchecked, change the text to "Pause" TODO: Add logic to pause the download */ } }

This setup will ensure that our application supports multiple languages, with English as the default. The lupdate tool will help generate the .ts files needed for translation.

Thank you for your suggestions. We will change the default language of the UI and code comments to English, utilize the QObject::tr() function, and add support for other languages in the near future.