mirror of
https://github.com/Syping/dtranslatebot.git
synced 2026-04-21 14:40:41 +02:00
user_interface: add get_translator() and get_translator_name() functions
- CMakeLists.txt: upgrade cmake_policy to version 4.3 - README.md: add missing WITH_GUI flag and recommend DeepL
This commit is contained in:
parent
2d3f3cc365
commit
823a60d64d
4 changed files with 23 additions and 10 deletions
|
|
@ -17,7 +17,7 @@
|
|||
****************************************************************************]]
|
||||
|
||||
cmake_minimum_required(VERSION 3.16)
|
||||
cmake_policy(VERSION 3.16...3.27)
|
||||
cmake_policy(VERSION 3.16...4.3)
|
||||
project(dtranslatebot VERSION 0.4.0 LANGUAGES CXX)
|
||||
include(GNUInstallDirs)
|
||||
|
||||
|
|
|
|||
|
|
@ -8,14 +8,14 @@ Open Source Discord Translation Bot
|
|||
#### Build Dependencies
|
||||
- CMake 3.16 or newer
|
||||
- Compiler with C++17 Support
|
||||
- curl
|
||||
- [D++: A C++ Discord API Library for Bots](https://dpp.dev/)
|
||||
- [libcurl](https://curl.se/libcurl)
|
||||
|
||||
#### Supported Translation Engines
|
||||
- [LibreTranslate](https://libretranslate.com/) (Default)
|
||||
- [DeepL](https://deepl.com/) (Recommended)
|
||||
- [Lingva Translate](https://lingva.ml/)
|
||||
- [Mozhi](https://codeberg.org/aryak/mozhi)
|
||||
- [DeepL](https://deepl.com/)
|
||||
|
||||
#### Build dtranslatebot
|
||||
|
||||
|
|
@ -29,4 +29,5 @@ sudo cmake --install dtranslatebot-build
|
|||
##### Optional CMake flags
|
||||
`-DWITH_BOOST=TRUE`
|
||||
`-DWITH_DPP_STATIC_BUNDLE=TRUE`
|
||||
`-DWITH_GUI=TRUE`
|
||||
`-DWITH_SYSTEMD=TRUE`
|
||||
|
|
|
|||
|
|
@ -31,8 +31,6 @@
|
|||
#include "user_interface.h"
|
||||
using namespace bot::gui;
|
||||
|
||||
const char* translators[] = {"stub", "libretranslate", "lingvatranslate", "mozhi", "deepl"};
|
||||
|
||||
user_interface::user_interface()
|
||||
{
|
||||
set_title("dtranslatebot");
|
||||
|
|
@ -60,7 +58,8 @@ user_interface::user_interface()
|
|||
auto translator_label = Gtk::make_managed<Gtk::Label>("Translator:");
|
||||
translator_box->append(*translator_label);
|
||||
|
||||
auto translator_list = Gtk::StringList::create({"Stub", "LibreTranslate", "Lingva Translate", "Mozhi", "DeepL"});
|
||||
auto translator_vector = get_translator();
|
||||
auto translator_list = Gtk::StringList::create(translator_vector);
|
||||
m_translator_dropdown = Gtk::make_managed<Gtk::DropDown>(translator_list);
|
||||
m_translator_dropdown->property_selected().signal_changed().connect(sigc::mem_fun(*this, &user_interface::on_translator_dropdown_changed));
|
||||
translator_box->append(*m_translator_dropdown);
|
||||
|
|
@ -107,8 +106,8 @@ user_interface::user_interface()
|
|||
m_token_entry->set_text(token);
|
||||
|
||||
const std::string translator = m_user_config.get_translator();
|
||||
for (guint i = 0; i < sizeof(translators); i++) {
|
||||
if (translators[i] != translator)
|
||||
for (guint i = 0; i < translator_vector.size(); i++) {
|
||||
if (get_translator_name(i) != translator)
|
||||
continue;
|
||||
m_translator_dropdown->set_selected(i);
|
||||
break;
|
||||
|
|
@ -122,6 +121,17 @@ user_interface::user_interface()
|
|||
set_child(*vertical_box);
|
||||
}
|
||||
|
||||
std::vector<Glib::ustring> user_interface::get_translator() {
|
||||
return {"Stub", "DeepL", "Mozhi", "LibreTranslate", "Lingva Translate"};
|
||||
}
|
||||
|
||||
const char* user_interface::get_translator_name(guint translator_id) {
|
||||
const char* translators[] = {"stub", "deepl", "mozhi", "libretranslate", "lingvatranslate"};
|
||||
if (translator_id < 0 || translator_id >= sizeof(translators))
|
||||
return "";
|
||||
return translators[translator_id];
|
||||
}
|
||||
|
||||
void user_interface::log_append(const std::string &message, const std::string &type, bool is_error) {
|
||||
const std::lock_guard<std::mutex> guard(m_log_buffer_mutex);
|
||||
m_log_buffer.append("\n[" + type + "] " + message);
|
||||
|
|
@ -135,7 +145,7 @@ void user_interface::log_scroll_down() {
|
|||
|
||||
void user_interface::run() {
|
||||
const std::string token = m_token_entry->get_text();
|
||||
const std::string translator = translators[m_translator_dropdown->get_selected()];
|
||||
const std::string translator = get_translator_name(m_translator_dropdown->get_selected());
|
||||
m_user_config.set_token(token);
|
||||
m_user_config.set_translator(translator);
|
||||
m_user_config.save();
|
||||
|
|
@ -199,7 +209,7 @@ void user_interface::on_token_entry_changed() {
|
|||
}
|
||||
|
||||
void user_interface::on_translator_configure_pressed() {
|
||||
translator_dialog::configure(*this, translators[m_translator_dropdown->get_selected()], m_user_config);
|
||||
translator_dialog::configure(*this, get_translator_name(m_translator_dropdown->get_selected()), m_user_config);
|
||||
}
|
||||
|
||||
void user_interface::on_translator_dropdown_changed() {
|
||||
|
|
|
|||
|
|
@ -31,6 +31,8 @@ namespace bot {
|
|||
class user_interface : public Gtk::Window {
|
||||
public:
|
||||
explicit user_interface();
|
||||
std::vector<Glib::ustring> get_translator();
|
||||
const char* get_translator_name(guint translator_id);
|
||||
void log_append(const std::string &message, const std::string &type = "Log", bool is_error = false);
|
||||
void log_scroll_down();
|
||||
void run();
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue