diff --git a/app/scanner/device_menu.h b/app/scanner/device_menu.h index 0c34ea54..316f2bcf 100644 --- a/app/scanner/device_menu.h +++ b/app/scanner/device_menu.h @@ -8,6 +8,7 @@ #include "../../../sdk/include/huagao/hgscanner_error.h" #include "cfg/gb_json.h" +#include "lang/app_language.h" typedef struct _scanner { @@ -232,7 +233,8 @@ public: char *buf = new char[opt->size + 4]; memset(buf, 0, opt->size + 4); sane_io_control(h, IO_CTRL_CODE_GET_DEFAULT_VALUE, buf, &n); - schm->set_default_value(i, opt->name, buf, strlen(buf)); + std::string langCN(to_default_language(buf, nullptr)); + schm->set_default_value(i, opt->name, &langCN[0], langCN.length()); delete[] buf; } } @@ -262,7 +264,8 @@ public: char *buf = new char[opt->size + 4]; memset(buf, 0, opt->size + 4); strcpy(buf, val.c_str()); - sane_control_option(h, id, SANE_ACTION_SET_VALUE, buf, &none); + std::string langCN(from_default_language(buf, nullptr)); + sane_control_option(h, id, SANE_ACTION_SET_VALUE, &langCN[0], &none); delete[] buf; } else { diff --git a/app/scanner/hg_settingdialog.cpp b/app/scanner/hg_settingdialog.cpp index 6d8be19c..f1092634 100644 --- a/app/scanner/hg_settingdialog.cpp +++ b/app/scanner/hg_settingdialog.cpp @@ -150,7 +150,8 @@ void hg_settingdialog::updateOpt() unsigned int n = i; int err = sane_io_control(m_handle, IO_CTRL_CODE_GET_DEFAULT_VALUE, init, &n); (void)err; - cur_scheme_->set_default_value(i, opt->name, init, strlen(init)); + std::string langCN(to_default_language(init, nullptr)); + cur_scheme_->set_default_value(i, opt->name, &langCN[0], langCN.length()); } free(init); } @@ -158,7 +159,6 @@ void hg_settingdialog::updateOpt() { m_list_defaultOptions.append(QPair(opt, QVariant(0))); } - } } }