bump version to 2.5.1 and improve translation

This commit is contained in:
fujr 2024-11-21 13:20:23 +08:00
parent 2c02c38d6c
commit acc974daa1
8 changed files with 781 additions and 273 deletions

View File

@ -6,7 +6,7 @@ include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-qmodem
LUCI_TITLE:=LuCI support for QWRT Modem
LUCI_PKGARCH:=all
PKG_VERSION:=2.5.0
PKG_VERSION:=2.5.1
PKG_LICENSE:=GPLv3
PKG_LINCESE_FILES:=LICENSE
PKG_MAINTAINER:=Tom <fjrcn@outlook.com>

View File

@ -59,7 +59,7 @@ end
default_metric = s:option(Value, "default_metric", translate("Default Metric"))
default_metric.rmempty = true
default_metric.description = translate("After setting this option, the first module loaded into this slot will automatically be assigned this default metric.")
default_metric.description = translate("The first module loaded into this slot will automatically be assigned this default metric.")
default_metric.datatype = "range(1, 255)"
pwr_gpio = s:option(Value, "gpio", translate("Power GPIO"))

View File

@ -60,11 +60,12 @@
return fieldset;
}
createInput(name,value){
createInput(name,value,hint){
var input = document.createElement('input');
input.type = "text";
input.name = name;
input.value = value;
input.placeholder = hint;
return input;
}
@ -130,14 +131,98 @@
datalist.appendChild(option);
}
// 返回包含输入框和 datalist 的文档片段
var fragment = document.createDocumentFragment();
fragment.appendChild(input);
fragment.appendChild(datalist);
return { input, datalist }; // 返回包含输入框和 datalist 的对象
}
createDroplistWithInput(name, hint, dict) {
var input = this.createInput("","",hint);
var selector = this.createDroplist(dict);
var prevous_selected = "";
input.style.display = "none";
// add event to selector
selector.addEventListener('change', function(event) {
if (event.target.value.length == 0){
input.style.display = "";
selector.style.display = "none";
input.value = prevous_selected;
input.focus();
}
else {
input.style.display = "none";
selector.style.display = "";
prevous_selected = event.target.value;
}
});
// add event listener to seletor : right click or long press or double click: show input
selector.addEventListener('contextmenu', function(event) {
event.preventDefault();
input.style.display = "";
selector.style.display = "none";
input.value = prevous_selected;
input.focus();
});
// add event listener to seletor : hover: show tooltip
selector.addEventListener('mouseover', function(event) {
selector.title = "<%:Double Click or Right Click to Edit%>";
});
selector.addEventListener('dblclick', function(event) {
input.style.display = "";
selector.style.display = "none";
input.value = prevous_selected;
input.focus();
});
// add event listener to input : hover: show tooltip
input.addEventListener('mouseover', function(event) {
input.title = "<%:Lost focus to save%>";
});
input.addEventListener('blur', function(event) {
if (event.target.value.length > 0) {
//clear user input option
for (let option of selector.options) {
if (option.type == "userInput") {
selector.removeChild(option);
}
}
for (let option of selector.options) {
if (option.value == event.target.value) {
selector.value = event.target.value;
selector.dispatchEvent(new Event('change'));
return;
}
}
var option = document.createElement('option');
option.value = event.target.value;
option.innerHTML = event.target.value;
option.type = "userInput";
selector.appendChild(option);
selector.value = event.target.value;
selector.dispatchEvent(new Event('change'));
}
else {
if (prevous_selected){
selector.value = prevous_selected;
selector.dispatchEvent(new Event('change'));
}
else{
//select first not null option
for (let option of selector.options) {
if (option.value.length > 0) {
selector.value = option.value;
selector.dispatchEvent(new Event('change'));
return;
}
}
selector.dispatchEvent(new Event('change'));
}
}
})
return { input, selector };
}
createTD(innerHTML){
var td = document.createElement('td');
td.classList.add("cbi-section-table-cell");
@ -166,6 +251,13 @@
return tr;
}
createDescription(innerHTML){
var div = document.createElement('div');
div.classList.add("cbi-section-descr");
div.innerHTML = innerHTML;
return div;
}
createTRHeader(){
var tr = document.createElement('div');
tr.classList.add("tr");
@ -920,7 +1012,7 @@
}
this.set_config(JSON.stringify(payload));
//append input to textarea
this.textarea.value += "INPUT>> " + this.at_input + "\n";
this.textarea.value += this.at_port + " >> " + this.at_input + "\n";
});
this.clear_btn = this.createBTN("<%:Clear%>",() => {
this.textarea.value = "";
@ -929,57 +1021,97 @@
this.cmd_prompt.value = "";
this.at_port_selector.value = "";
});
//this.at_port_selector = this.createDroplist();
var { input, datalist } = this.createInputWithDatalist("select_port","<%:Select Port%>" );
this.at_port_selector=input;
this.at_port_selector_datalist = datalist;
var { input, datalist } = this.createInputWithDatalist("cmd_prompt","<%:Input AT Command%>" );
//this.cmd_prompt = this.createDroplist();
this.cmd_prompt = input;
this.cmd_prompt_datalist = datalist;
this.fieldset.appendChild(this.at_port_selector);
this.fieldset.appendChild(this.at_port_selector_datalist);
//add br
this.fieldset.appendChild(document.createElement("br"));
this.fieldset.appendChild(this.cmd_prompt);
this.fieldset.appendChild(this.cmd_prompt_datalist);
this.fieldset.appendChild(document.createElement("br"));
this.fieldset.appendChild(this.at_btn);
this.fieldset.appendChild(this.clear_input_btn);
this.fieldset.appendChild(this.textarea);
this.fieldset.appendChild(this.clear_btn);
this.at_port_selector.addEventListener('change',(event) => {
this.at_port = event.target.value;
var { input , selector } = this.createDroplistWithInput("at_port_selector","<%:Select Port%>" );
selector.addEventListener("change",(event) => {
this.at_port = event.target.value;
});
this.cmd_prompt.addEventListener('change',(event) => {
this.at_port_selector = selector;
this.at_port_input = input;
var { input , selector } = this.createDroplistWithInput("cmd_prompt","<%:Input AT Command%>" );
selector.addEventListener('change',(event) => {
this.at_input = event.target.value;
});
this.cmd_prompt = input;
this.cmd_prompt_selector = selector;
var table = this.createTable();
this.fieldset.appendChild(table);
var tr,td_l,td_r;
tr = this.createTR();
td_l = this.createTD("<%:AT Port%>:");
td_r = this.createTD();
td_r.appendChild(this.at_port_selector);
td_r.appendChild(this.at_port_input);
tr.appendChild(td_l);
tr.appendChild(td_r);
table.appendChild(tr);
tr = this.createTR();
td_l = this.createTD("<%:AT Command%>:");
td_r = this.createTD();
td_r.appendChild(this.cmd_prompt_selector);
td_r.appendChild(this.cmd_prompt);
tr.appendChild(td_l);
tr.appendChild(td_r);
table.appendChild(tr);
tr = this.createTR();
td_l = this.createTD();
td_l.appendChild(this.at_btn);
tr.appendChild(td_l);
table.appendChild(tr);
this.fieldset.appendChild(table);
this.fieldset.appendChild(this.textarea);
this.fieldset.appendChild(this.clear_btn);
}
cb_get(){
//clear ports
while (this.at_port_selector_datalist.firstChild) {
this.at_port_selector_datalist.removeChild(this.at_port_selector_datalist.firstChild);
while (this.at_port_selector.firstChild) {
this.at_port_selector.removeChild(this.at_port_selector.firstChild);
}
//clear cmds
while (this.cmd_prompt_selector.firstChild) {
this.cmd_prompt_selector.removeChild(this.cmd_prompt_selector.firstChild);
}
//empty option
var empty_option1=document.createElement("option");
empty_option1.value = "";
empty_option1.innerHTML = "<%:-- custom ---%>";
var empty_option2=document.createElement("option");
empty_option2.value = "";
empty_option2.innerHTML = "<%:-- custom ---%>";
this.cmd_prompt_selector.appendChild(empty_option1);
this.at_port_selector.appendChild(empty_option2);
var ports=this.config.ports;
var other_ttys=this.config.other_ttys;
var valid_ports=this.config.valid_ports;
var using_port=this.config.using_port;
var cmds = this.config.cmds;
for (let port of ports) {
//append empty option to at_port_selector
for (let port of other_ttys) {
let select;
let displayport = port;
if (valid_ports.includes(port) == false) {
displayport += "<%:(invalid)%>";
if (ports.includes(port) == false) {
displayport += "<%:(Not belong to this modem)%>";
}
else{
displayport += "<%:(valid)%>";
}
if (port == using_port) {
displayport += "<%:(using)%>";
select = true;
if (valid_ports.includes(port) == false) {
displayport += "<%:(invalid)%>";
}
else{
displayport += "<%:(valid)%>";
}
if (port == using_port) {
displayport += "<%:(using)%>";
select = true;
}
}
var option = document.createElement('option');
option.value = port;
option.innerHTML = displayport;
@ -987,18 +1119,19 @@
option.selected = true;
this.at_port = port;
}
this.at_port_selector_datalist.appendChild(option);
}
//clear cmds
while (this.cmd_prompt_datalist.firstChild) {
this.cmd_prompt_datalist.removeChild(this.cmd_prompt_datalist.firstChild);
this.at_port_selector.appendChild(option);
}
for (let cmd of cmds) {
var option = document.createElement('option');
option.value = cmd.value;
option.innerHTML = cmd.name;
this.cmd_prompt_datalist.appendChild(option);
this.cmd_prompt_selector.appendChild(option);
}
this.cmd_prompt_selector.dispatchEvent(new Event('change'));
this.at_port_selector.dispatchEvent(new Event('change'));
}
@ -1011,7 +1144,7 @@
cb_set(){
//append response to textarea
this.textarea.value += this.config.res + "<<END\n";
this.textarea.value += this.config.res + "<<EOF\n";
}

View File

@ -1,263 +1,542 @@
msgid "Modem Information"
msgstr "Информация о модеме"
#controller/qmodem.lua
msgid "QModem"
msgstr ""
msgid "QModem Information"
msgstr ""
msgid "Dial Overview"
msgstr "Обзор набора"
msgstr ""
msgid "Modem Debug"
msgstr "Отладка модема"
msgid "Advance Modem Settings"
msgstr ""
msgid "QModem Setting"
msgstr ""
msgid "Mwan Config"
msgstr "Настройка Mwan"
# model/cbi/dial_config.lua
msgid "Modem Configuration"
msgstr ""
msgid "TTL Config"
msgstr "Настройка TTL"
msgid "General Settings"
msgstr ""
msgid "Plugin Config"
msgstr "Настройка плагина"
msgid "Advanced Settings"
msgstr ""
msgid "Modem Name"
msgstr "Название модема"
msgid "Base Information"
msgstr "Основная информация"
msgid "Производитель"
msgstr "Производитель"
msgid "Ревизия"
msgstr "Ревизия"
msgid "Enable Dial"
msgstr ""
msgid "Modem Alias"
msgstr ""
msgid "AT Port"
msgstr "AT Порт"
msgstr ""
msgid "SMS AT Port"
msgstr ""
msgid "RA Master"
msgstr ""
msgid "Caution: Enabling this option will make it the IPV6 RA Master, and only one interface can be configured as such."
msgstr ""
msgid "Extend Prefix"
msgstr ""
msgid "Once checking, the prefix will be apply to lan zone"
msgstr ""
msgid "PDP Type"
msgstr ""
msgid "Auto Choose"
msgstr ""
msgid "China Mobile"
msgstr ""
msgid "China Unicom"
msgstr ""
msigd "China Telecom"
msgstr ""
msgid "China Broadcast"
msgstr ""
msgid "Skytone"
msgstr ""
msgid "Authentication Type"
msgstr ""
msgid "None"
msgstr ""
msgid "PAP"
msgstr ""
msgid "CHAP"
msgstr ""
msgid "PAP/CHAP (both)"
msgstr ""
msgid "PAP/CHAP Username"
msgstr ""
msgid "PAP/CHAP Password"
msgstr ""
msgid "PIN Code"
msgstr ""
msgid "If the PIN code is not set, leave it blank."
msgstr ""
msgid "If solt 2 config is not set,will use slot 1 config."
msgstr ""
msgid "The metric value is used to determine the priority of the route. The smaller the value, the higher the priority. Cannot duplicate."
msgstr ""
#odel/cbi/dial_overview.lua
msgid "Dial Overview"
msgstr ""
msgid "Global Config"
msgstr ""
msgid "Enable Dial"
msgstr ""
msgid "(Global)"
msgstr ""
msgid "Restart Dial Service"
msgstr ""
msgid "Config List"
msgstr ""
msgid "Modem Model"
msgstr ""
msgid "Modem Alias"
msgstr ""
msgid "Modem Status"
msgstr ""
msgid "Remove Modem"
msgstr ""
# model/cbi/settings.lua
msgid "QModem Settings"
msgstr ""
msgid "Modem Probe setting"
msgstr ""
msgid "Block Auto Probe/Remove"
msgstr ""
msgid "If enabled, the modem auto scan will be blocked."
msgstr ""
msgid "Enable PCIE Scan"
msgstr ""
msgid "Once enabled, the PCIe ports will be scanned on every boot."
msgstr ""
msgid "Enable USB Scan"
msgstr ""
msgid "Once enabled, the USB ports will be scanned on every boot."
msgstr ""
msgid "Try Preset USB Port"
msgstr ""
msgid "Attempt to use pre-configured USB settings from the cpe vendor."
msgstr ""
msgid "Try Preset PCIE Port"
msgstr ""
msgid "Attempt to use pre-configured PCIE settings from the cpe vendor."
msgstr ""
msgid "Scan ALL Manually"
msgstr ""
msgid "Scan PCIE Manually"
msgstr ""
msgid "Scan USB Manually"
msgstr ""
msgid "Modem Slot Config List"
msgstr ""
msgid "Slot Type"
msgstr ""
msgid "Slot Path"
msgstr ""
msgid "Config Name"
msgstr ""
# model/cbi/slot_config.lua
msgid "Slot Configuration"
msgstr ""
msgid "Slot Type"
msgstr ""
msgid "Slot ID"
msgstr ""
msgid "SIM LED"
msgstr ""
msgid "NET LED"
msgstr ""
msgid "Enable 5G Ethernet"
msgstr ""
msgid "For 5G modules using the Ethernet PHY connection, please specify the network interface name. (e.g., eth0, eth1)"
msgstr ""
msgid "Associated USB"
msgstr ""
msgid "For M.2 slots with both PCIe and USB support, specify the associated USB port (for ttyUSB access)"
msgstr ""
# view/qmodem/dial_overview.htm
msgid "Connected"
msgstr ""
msgid "Disconnected"
msgstr ""
msgid "Unknown"
msgstr ""
msgid "Download"
msgstr ""
msgid "Clear"
msgstr ""
msgid "Modem Status"
msgstr ""
msgid "Modem Log"
msgstr ""
# view/qmodem/modem_debug.htm
msgid "Lock Band"
msgstr ""
msgid "Select All"
msgstr ""
msgid "Submit"
msgstr ""
msgid "Rat Prefer"
msgstr ""
msgid "Current Mode"
msgstr ""
msgid "Setting"
msgstr ""
msgid "Dial Mode"
msgstr ""
msgid "Neighbor Cell"
msgstr ""
msgid "Lock Cell Setting"
msgstr ""
msgid "RAT"
msgstr ""
msgid "PCI"
msgstr ""
msgid "ARFCN"
msgstr ""
msgid "TAC"
msgstr ""
msgid "Band"
msgstr ""
msgid "SCS"
msgstr ""
msgid "Status"
msgstr ""
msgid "Copy"
msgstr ""
msgid "Set IMEI"
msgstr ""
msgid "Modem Name"
msgstr ""
msgid "Warning!"
msgstr ""
# root/usr/share/qmodem/fibocom.sh
msgid "Voltage"
msgstr ""
msgid "Temperature"
msgstr "Температура"
msgstr ""
msgid "Manufacturer"
msgstr ""
msgid "SIM Status"
msgstr ""
msgid "Internet Service Provider"
msgstr ""
msgid "SIM Slot"
msgstr ""
msgid "SIM Number"
msgstr ""
msgid "International Mobile Equipment Identity"
msgstr ""
msgid "International Mobile Subscriber Identity"
msgstr ""
msgid "Integrate Circuit Card Identity"
msgstr ""
msgid "Network Type"
msgstr ""
msgid "Channel Quality Indicator for Uplink"
msgstr ""
msgid "Channel Quality Indicator for Downlink"
msgstr ""
msgid "Access Maximum Bit Rate for Uplink"
msgstr ""
msgid "Access Maximum Bit Rate for Downlink"
msgstr ""
msgid "Transmit Rate"
msgstr ""
msgid "Receive Rate"
msgstr ""
msgid "Voltage"
msgstr "Напряжение"
msgid "Network Mode"
msgstr ""
msgid "Mobile Country Code"
msgstr ""
msgid "Mobile Network Code"
msgstr ""
msgid "Duplex Mode"
msgstr ""
msgid "Physical Cell ID"
msgstr ""
msgid "Tracking area code of cell servedby neighbor Enb"
msgstr ""
msgid "Absolute Radio-Frequency Channel Number"
msgstr ""
msgid "Band"
msgstr ""
msgid "Reference Signal Received Power"
msgstr ""
msgid "Reference Signal Received Quality"
msgstr ""
msgid "Signal to Interference plus Noise Ratio Bandwidth"
msgstr ""
msgid "Received Signal Level"
msgstr ""
msgid "SCS"
msgstr ""
msgid "Serving Cell Receive Level"
msgstr ""
msgid "E-UTRA Absolute Radio Frequency Channel Number"
msgstr ""
msgid "Freq band indicator"
msgstr ""
msgid "UL Bandwidth"
msgstr ""
msgid "DL Bandwidth"
msgstr ""
msgid "Received Signal Strength Indicator"
msgstr ""
msgid "Radio Signal Strength Noise Ratio"
msgstr ""
msgid "Channel Quality Indicator"
msgstr ""
msgid "TX Power"
msgstr ""
msgid "ocation Area Code"
msgstr ""
msgid "Speech Code"
msgstr ""
msgid "Ec/No"
msgstr ""
msgid "Ec/Io"
msgstr ""
msgid "Spreading Factor"
msgstr ""
msgid "Compression Mode"
msgstr ""
msgid "RxLev"
msgstr ""
# root/usr/share/qmodem/generic.sh
msgid " "SIM Error,Error code:"
msgstr ""
msgid "warning"
msgstr ""
msgid "Connect Status"
msgstr "Статус подключения"
msgid "Yes"
msgstr "Да"
msgid "SIM Information"
msgstr "Информация о SIM"
msgid "SIM Status"
msgstr "Статус SIM"
msgid "ready"
msgstr "готово"
msgid "Internet Service Provider"
msgstr "Интернет-провайдер"
msgid "SIM Slot"
msgstr "Слот SIM"
msgid "International Mobile Equipment Identity"
msgstr "Международный идентификатор мобильного оборудования"
msgid "Международный идентификатор абонента мобильной связи"
msgstr "Международный идентификатор абонента мобильной связи"
msgid "Integrate Circuit Card Identity"
msgstr "Идентификатор интегральной схемы карты"
msgid "Network Information"
msgstr "Информация о сети"
msgid "Network Type"
msgstr "Тип сети"
msgid "TDD NR5G"
msgstr "TDD NR5G"
msgid "Channel Quality Indicator for Uplink"
msgstr "Индикатор качества канала для передачи"
msgid "Channel Quality Indicator for Downlink"
msgstr "Индикатор качества канала для приема"
msgid "Access Maximum Bit Rate for Uplink"
msgstr "Максимальная скорость передачи данных для передачи"
msgid "Access Maximum Bit Rate for Downlink"
msgstr "Максимальная скорость передачи данных для приема"
msgid "Transmit Rate"
msgstr "Скорость передачи"
msgid "Receive Rate"
msgstr "Скорость приема"
msgstr ""
msgid "Cell Information"
msgstr "Информация о ячейке"
msgstr ""
msgid "Режим сети"
msgstr "Режим сети"
msgid "Base Information"
msgstr ""
msgid "Network Information"
msgstr ""
msgid "Мобильный код страны"
msgstr "Мобильный код страны"
msgid "SIM Information"
msgstr ""
# modem_state
msgid "ENABLED"
msgstr ""
msgid "Мобильный код сети"
msgstr "Мобильный код сети"
msgid "DISABLED"
msgstr ""
msgid "TTL Config"
msgstr ""
msgid "Duplex Mode"
msgstr "Режим дуплекса"
msgid "Default Alias"
msgstr ""
msgid "TDD"
msgstr "TDD"
msgid "After setting this option, the first module loaded into this slot will automatically be assigned this default alias."
msgstr ""
msgid "ID ячейки"
msgstr "ID ячейки"
msgid "Modem"
msgstr ""
msgid "Physical Cell ID"
msgstr "Физический ID ячейки"
msgid "Reboot Modem"
msgstr ""
msgid "Tracking area code of cell servedby neighbor Enb"
msgstr "Код зоны отслеживания ячейки, обслуживаемой соседним Enb"
msgid "Soft Reboot"
msgstr ""
msgid "Hard Reboot"
msgstr ""
msgid "Absolute Radio-Frequency Channel Number"
msgstr "Абсолютный номер радиочастотного канала"
msgid "Power GPIO"
msgstr ""
msgid "GPIO Down Value"
msgstr ""
msgid "Диапазон"
msgstr "Диапазон"
msgid "GPIO Up Value"
msgstr ""
msgid "DL Bandwidth"
msgstr "Ширина полосы пропускания DL"
msgid "Default Metric"
msgstr ""
msgid "AT Debug"
msgstr ""
msgid "Reference Signal Received Power"
msgstr "Мощность принятого опорного сигнала"
msgid "(using)"
msgstr ""
msgid "Reference Signal Received Quality"
msgstr "Качество принятого опорного сигнала"
msgid "(valid)"
msgstr ""
msgid "Signal to Interference plus Noise Ratio Bandwidth"
msgstr "Отношение сигнал/шум плюс полоса пропускания помех"
msgid "(invalid)"
msgstr ""
msgid "Serving Cell Receive Level"
msgstr "Уровень приема обслуживающей ячейки"
msgid "(Not belong to this modem)"
msgstr ""
msgid "Check and add modem dialing configurations"
msgstr "Проверьте и добавьте конфигурации набора модема"
msgid "Send"
msgstr ""
msgid "Global Config"
msgstr "Глобальная конфигурация"
msgid "Clear"
msgstr ""
msgid "Enable Dial"
msgstr "Включить набор"
msgid "Select Port"
msgstr ""
msgid "Enable dial configurations"
msgstr "Включить конфигурации набора"
msgid "Input AT Command"
msgstr ""
msgid "Reload Dial Configurations"
msgstr "Перезагрузить конфигурации набора"
msgid "AT Command"
msgstr ""
msgid "Manually Reload dial configurations When the dial configuration fails to take effect"
msgstr "Вручную перезагрузите конфигурации набора, когда конфигурация набора не вступает в силу"
msgid "Double Click or Right Click to Edit"
msgstr ""
msgid "Config List"
msgstr "Список конфигураций"
msgid "enable_dial"
msgstr "включить_набор"
msgid "Remarks"
msgstr "Замечания"
msgid "Mobile Network"
msgstr "Мобильная сеть"
msgid "Dial Tool"
msgstr "Инструмент набора"
msgid "Тип PDP"
msgstr "Тип PDP"
msgid "Network Bridge"
msgstr "Сетевой мост"
msgid "Auto Choose"
msgstr "Автовыбор"
msgid "Modem Name"
msgstr "Название модема"
msgid "Dial Mode"
msgstr "Режим набора"
msgid "Rat Prefer"
msgstr "Предпочтительный Rat"
msgid "Set IMEI"
msgstr "Установить IMEI"
msgid "Neighbor Cell"
msgstr "Соседняя ячейка"
msgid "Lock Band"
msgstr "Заблокировать диапазон"
msgid "Dial Mode"
msgstr "Режим набора"
msgid "Current Mode"
msgstr "Текущий режим"
msgid "Plugin Config"
msgstr "Настройка плагина"
msgid "Check and modify the plugin configuration"
msgstr "Проверьте и измените конфигурацию плагина"
msgid "Global Config"
msgstr "Глобальная конфигурация"
msgid "Modem Scan"
msgstr "Сканирование модема"
msgid "The automatic configuration modem is triggered only at modem startup, otherwise, manual scanning is necessary"
msgstr "Автоматическая конфигурация модема запускается только при запуске модема, в противном случае необходимо ручное сканирование"
msgid "Manual Configuration"
msgstr "Ручная конфигурация"
msgid "Enable the manual configuration of modem information (After enable, the automatic scanning and configuration function for modem information will be disabled)"
msgstr "Включите ручную конфигурацию информации о модеме (после включения функция автоматического сканирования и конфигурации информации о модеме будет отключена)"
msgid "Modem Config"
msgstr "Конфигурация модема"
msgid "Удалить"
msgstr "Удалить"
msgid "Сеть"
msgstr "Сеть"
msgid "Modem Name"
msgstr "Название модема"
msgid "AT Port"
msgstr "AT Порт"
msgid "Lost focus to save"
msgstr ""

View File

@ -483,3 +483,60 @@ msgstr ""
msgid "Modem"
msgstr ""
msgid "Reboot Modem"
msgstr ""
msgid "Soft Reboot"
msgstr ""
msgid "Hard Reboot"
msgstr ""
msgid "Power GPIO"
msgstr ""
msgid "GPIO Down Value"
msgstr ""
msgid "GPIO Up Value"
msgstr ""
msgid "Default Metric"
msgstr ""
msgid "AT Debug"
msgstr ""
msgid "(using)"
msgstr ""
msgid "(valid)"
msgstr ""
msgid "(invalid)"
msgstr ""
msgid "(Not belong to this modem)"
msgstr ""
msgid "Send"
msgstr ""
msgid "Clear"
msgstr ""
msgid "Select Port"
msgstr ""
msgid "Input AT Command"
msgstr ""
msgid "AT Command"
msgstr ""
msgid "Double Click or Right Click to Edit"
msgstr ""
msgid "Lost focus to save"
msgstr ""

View File

@ -219,6 +219,9 @@ msgstr "关联的USB"
msgid "For M.2 slots with both PCIe and USB support, specify the associated USB port (for ttyUSB access)"
msgstr "如果M.2接口同时提供pcie和usb请关联usb用于使用usb tty接口"
msgid "The first module loaded into this slot will automatically be assigned this default metric."
msgstr "该插槽加载的第一个模块将会自动分配该默认的跃点。"
# view/qmodem/dial_overview.htm
msgid "Connected"
msgstr "已连接"
@ -511,11 +514,14 @@ msgstr "AT 调试"
msgid "(using)"
msgstr "(使用中)"
msgid "valid"
msgstr "有效"
msgid "(valid)"
msgstr "(有效)"
msgid "invalid"
msgstr "无效"
msgid "(invalid)"
msgstr "(无效)"
msgid "(Not belong to this modem)"
msgstr "(不属于此模组)"
msgid "Send"
msgstr "发送"
@ -528,3 +534,12 @@ msgstr "选择端口"
msgid "Input AT Command"
msgstr "输入AT命令"
msgid "AT Command"
msgstr "AT 命令"
msgid "Double Click or Right Click to Edit"
msgstr "双击或右键编辑"
msgid "Lost focus to save"
msgstr "失去焦点保存"

View File

@ -219,6 +219,9 @@ msgstr "关联的USB"
msgid "For M.2 slots with both PCIe and USB support, specify the associated USB port (for ttyUSB access)"
msgstr "如果M.2接口同时提供pcie和usb请关联usb用于使用usb tty接口"
msgid "The first module loaded into this slot will automatically be assigned this default metric."
msgstr "该插槽加载的第一个模块将会自动分配该默认的跃点。"
# view/qmodem/dial_overview.htm
msgid "Connected"
msgstr "已连接"
@ -511,11 +514,14 @@ msgstr "AT 调试"
msgid "(using)"
msgstr "(使用中)"
msgid "valid"
msgstr "有效"
msgid "(valid)"
msgstr "(有效)"
msgid "invalid"
msgstr "无效"
msgid "(invalid)"
msgstr "(无效)"
msgid "(Not belong to this modem)"
msgstr "(不属于此模组)"
msgid "Send"
msgstr "发送"
@ -528,3 +534,12 @@ msgstr "选择端口"
msgid "Input AT Command"
msgstr "输入AT命令"
msgid "AT Command"
msgstr "AT 命令"
msgid "Double Click or Right Click to Edit"
msgstr "双击或右键编辑"
msgid "Lost focus to save"
msgstr "失去焦点保存"

View File

@ -64,6 +64,15 @@ get_sms(){
get_at_cfg(){
json_add_object at_cfg
duns=$(ls /dev/mhi_DUN*)
ttys=$(ls /dev/ttyUSB*)
ttyacms=$(ls /dev/ttyACM*)
all_ttys="$duns $ttys $ttyacms"
json_add_array other_ttys
for tty in $all_ttys; do
[ -n "$tty" ] && json_add_string "" "$tty"
done
json_close_array
json_add_array ports
ports=$(uci get qmodem.$config_section.ports)
for port in $ports; do