Skip to content

Commit cdc50e9

Browse files
committed
refactor(i18n): remove fuzzy translations and harden behavior
- split logic into three focused functions: - validate_and_get_tools(...) — validate inputs and determine msgmerge/msgattrib paths - run_msgmerge(...) — run msgmerge and surface stderr on failure - run_msgattrib(...) — run msgattrib into a temp file and atomically replace .po - use pathlib for paths, tempfile.mkstemp + os.replace for safe atomic swaps - use shutil.which for POSIX tool discovery and explicit Windows fallback paths - capture subprocess stderr and log failures; use logging.exception for tracebacks - return non-zero exit codes on failures and expose CLI params (--pot-file, --locale-root) - narrow exception handlers when cleaning temp files to OSError (fix pylint W0718)
1 parent c226be4 commit cdc50e9

File tree

7 files changed

+234
-72
lines changed

7 files changed

+234
-72
lines changed

ardupilot_methodic_configurator/locale/de/LC_MESSAGES/ardupilot_methodic_configurator.po

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -2641,15 +2641,18 @@ msgstr "Der Wert für {param_name} muss eine endliche Zahl sein."
26412641

26422642
#: ardupilot_methodic_configurator/data_model_ardupilot_parameter.py:279
26432643
msgid "The value for {param_name} ({value}) should be smaller than {max_val}\n"
2644-
msgstr "Der Wert für {param_name} ({value}) sollte kleiner als {max_val} sein\n"
2644+
msgstr ""
2645+
"Der Wert für {param_name} ({value}) sollte kleiner als {max_val} sein\n"
26452646

26462647
#: ardupilot_methodic_configurator/data_model_ardupilot_parameter.py:288
26472648
msgid "The value for {param_name} ({value}) should be greater than {min_val}\n"
26482649
msgstr "Der Wert für {param_name} ({value}) sollte größer als {min_val} sein\n"
26492650

26502651
#: ardupilot_methodic_configurator/data_model_ardupilot_parameter.py:327
26512652
msgid "This parameter is forced or derived and cannot be changed."
2652-
msgstr "Dieser Parameter ist erzwungen oder abgeleitet und kann nicht geändert werden."
2653+
msgstr ""
2654+
"Dieser Parameter ist erzwungen oder abgeleitet und kann nicht geändert "
2655+
"werden."
26532656

26542657
#: ardupilot_methodic_configurator/data_model_ardupilot_parameter.py:330
26552658
msgid "Parameter value must be provided as a string."
@@ -2665,7 +2668,8 @@ msgstr "Der angegebene Wert für {param_name} würde den Parameter nicht ändern
26652668

26662669
#: ardupilot_methodic_configurator/data_model_ardupilot_parameter.py:354
26672670
msgid "The value for {param_name} must be an integer for bitmask parameters."
2668-
msgstr "Der Wert für {param_name} muss eine Ganzzahl für Bitmasken-Parameter sein."
2671+
msgstr ""
2672+
"Der Wert für {param_name} muss eine Ganzzahl für Bitmasken-Parameter sein."
26692673

26702674
#: ardupilot_methodic_configurator/data_model_ardupilot_parameter.py:363
26712675
msgid "The value for {param_name} contains unknown bit(s)."
@@ -2674,7 +2678,9 @@ msgstr "Der Wert für {param_name} enthält unbekannte Bit(s)."
26742678
#: ardupilot_methodic_configurator/data_model_ardupilot_parameter.py:367
26752679
msgid ""
26762680
"The provided bitmask value for {param_name} would not change the parameter."
2677-
msgstr "Der angegebene Bitmasken-Wert für {param_name} würde den Parameter nicht ändern."
2681+
msgstr ""
2682+
"Der angegebene Bitmasken-Wert für {param_name} würde den Parameter nicht "
2683+
"ändern."
26782684

26792685
#: ardupilot_methodic_configurator/data_model_ardupilot_parameter.py:379
26802686
msgid "The value for {param_name} must be a number."
@@ -2684,7 +2690,9 @@ msgstr "Der Wert für {param_name} muss eine Zahl sein."
26842690
msgid ""
26852691
"The provided numeric value for {param_name} is within tolerance and would "
26862692
"not change the parameter."
2687-
msgstr "Der angegebene numerische Wert für {param_name} liegt innerhalb der Toleranz und würde den Parameter nicht ändern."
2693+
msgstr ""
2694+
"Der angegebene numerische Wert für {param_name} liegt innerhalb der Toleranz "
2695+
"und würde den Parameter nicht ändern."
26882696

26892697
#: ardupilot_methodic_configurator/data_model_motor_test.py:76
26902698
msgid "Flight controller connection required for motor testing"
@@ -5135,7 +5143,9 @@ msgstr "Fehler beim Abrufen der geprüften Schlüssel für {param_name}: %s"
51355143

51365144
#: ardupilot_methodic_configurator/frontend_tkinter_parameter_editor_table.py:552
51375145
msgid "Could not get {param_name} checked keys. Please try again."
5138-
msgstr "Geprüfte Schlüssel für {param_name} konnten nicht abgerufen werden. Bitte versuchen Sie es erneut."
5146+
msgstr ""
5147+
"Geprüfte Schlüssel für {param_name} konnten nicht abgerufen werden. Bitte "
5148+
"versuchen Sie es erneut."
51395149

51405150
#: ardupilot_methodic_configurator/frontend_tkinter_parameter_editor_table.py:563
51415151
msgid "Could not set bitmask value for %s: %s"
@@ -5157,7 +5167,9 @@ msgstr "Ungültiger Bitmasken-Wert"
51575167
msgid ""
51585168
"The new value '{new_value_str}' is not a valid integer for the {param.name} "
51595169
"bitmask."
5160-
msgstr "Der neue Wert '{new_value_str}' ist keine gültige Ganzzahl für die {param.name} Bitmaske."
5170+
msgstr ""
5171+
"Der neue Wert '{new_value_str}' ist keine gültige Ganzzahl für die {param."
5172+
"name} Bitmaske."
51615173

51625174
#: ardupilot_methodic_configurator/frontend_tkinter_parameter_editor_table.py:668
51635175
msgid "When selected upload {param_name} new value to the flight controller"
@@ -5167,7 +5179,9 @@ msgstr "Bei Auswahl neuen Wert {param_name} auf den Flugcontroller hochladen"
51675179
msgid ""
51685180
"Parameter %s change reason changed from %s to %s, will later ask if should "
51695181
"be saved to file."
5170-
msgstr "Grund für Parameteränderung %s hat sich von %s zu %s geändert, wird später fragen, ob in Datei gespeichert werden soll."
5182+
msgstr ""
5183+
"Grund für Parameteränderung %s hat sich von %s zu %s geändert, wird später "
5184+
"fragen, ob in Datei gespeichert werden soll."
51715185

51725186
#: ardupilot_methodic_configurator/frontend_tkinter_parameter_editor_table.py:705
51735187
msgid "Are you sure you want to delete the {param_name} parameter?"

ardupilot_methodic_configurator/locale/it/LC_MESSAGES/ardupilot_methodic_configurator.po

Lines changed: 19 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2655,11 +2655,13 @@ msgstr "Il valore per {param_name} deve essere un numero finito."
26552655

26562656
#: ardupilot_methodic_configurator/data_model_ardupilot_parameter.py:279
26572657
msgid "The value for {param_name} ({value}) should be smaller than {max_val}\n"
2658-
msgstr "Il valore per {param_name} ({value}) dovrebbe essere minore di {max_val}\n"
2658+
msgstr ""
2659+
"Il valore per {param_name} ({value}) dovrebbe essere minore di {max_val}\n"
26592660

26602661
#: ardupilot_methodic_configurator/data_model_ardupilot_parameter.py:288
26612662
msgid "The value for {param_name} ({value}) should be greater than {min_val}\n"
2662-
msgstr "Il valore per {param_name} ({value}) dovrebbe essere maggiore di {min_val}\n"
2663+
msgstr ""
2664+
"Il valore per {param_name} ({value}) dovrebbe essere maggiore di {min_val}\n"
26632665

26642666
#: ardupilot_methodic_configurator/data_model_ardupilot_parameter.py:327
26652667
msgid "This parameter is forced or derived and cannot be changed."
@@ -2679,7 +2681,9 @@ msgstr "Il valore fornito per {param_name} non modificherebbe il parametro."
26792681

26802682
#: ardupilot_methodic_configurator/data_model_ardupilot_parameter.py:354
26812683
msgid "The value for {param_name} must be an integer for bitmask parameters."
2682-
msgstr "Il valore per {param_name} deve essere un numero intero per i parametri di bitmask."
2684+
msgstr ""
2685+
"Il valore per {param_name} deve essere un numero intero per i parametri di "
2686+
"bitmask."
26832687

26842688
#: ardupilot_methodic_configurator/data_model_ardupilot_parameter.py:363
26852689
msgid "The value for {param_name} contains unknown bit(s)."
@@ -2688,7 +2692,9 @@ msgstr "Il valore per {param_name} contiene bit sconosciuti."
26882692
#: ardupilot_methodic_configurator/data_model_ardupilot_parameter.py:367
26892693
msgid ""
26902694
"The provided bitmask value for {param_name} would not change the parameter."
2691-
msgstr "Il valore di bitmask fornito per {param_name} non modificherebbe il parametro."
2695+
msgstr ""
2696+
"Il valore di bitmask fornito per {param_name} non modificherebbe il "
2697+
"parametro."
26922698

26932699
#: ardupilot_methodic_configurator/data_model_ardupilot_parameter.py:379
26942700
msgid "The value for {param_name} must be a number."
@@ -2698,7 +2704,9 @@ msgstr "Il valore per {param_name} deve essere un numero."
26982704
msgid ""
26992705
"The provided numeric value for {param_name} is within tolerance and would "
27002706
"not change the parameter."
2701-
msgstr "Il valore numerico fornito per {param_name} è entro la tolleranza e non modificherebbe il parametro."
2707+
msgstr ""
2708+
"Il valore numerico fornito per {param_name} è entro la tolleranza e non "
2709+
"modificherebbe il parametro."
27022710

27032711
#: ardupilot_methodic_configurator/data_model_motor_test.py:76
27042712
msgid "Flight controller connection required for motor testing"
@@ -5169,7 +5177,9 @@ msgstr "Valore Bitmask Non Valido"
51695177
msgid ""
51705178
"The new value '{new_value_str}' is not a valid integer for the {param.name} "
51715179
"bitmask."
5172-
msgstr "Il nuovo valore '{new_value_str}' non è un numero intero valido per la bitmask {param.name}."
5180+
msgstr ""
5181+
"Il nuovo valore '{new_value_str}' non è un numero intero valido per la "
5182+
"bitmask {param.name}."
51735183

51745184
#: ardupilot_methodic_configurator/frontend_tkinter_parameter_editor_table.py:668
51755185
msgid "When selected upload {param_name} new value to the flight controller"
@@ -5181,7 +5191,9 @@ msgstr ""
51815191
msgid ""
51825192
"Parameter %s change reason changed from %s to %s, will later ask if should "
51835193
"be saved to file."
5184-
msgstr "Il motivo di modifica del parametro %s è cambiato da %s a %s, verrà chiesto in seguito se salvare nel file."
5194+
msgstr ""
5195+
"Il motivo di modifica del parametro %s è cambiato da %s a %s, verrà chiesto "
5196+
"in seguito se salvare nel file."
51855197

51865198
#: ardupilot_methodic_configurator/frontend_tkinter_parameter_editor_table.py:705
51875199
msgid "Are you sure you want to delete the {param_name} parameter?"

ardupilot_methodic_configurator/locale/ja/LC_MESSAGES/ardupilot_methodic_configurator.po

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2541,7 +2541,8 @@ msgstr "{param_name}に提供された値はパラメータを変更しません
25412541

25422542
#: ardupilot_methodic_configurator/data_model_ardupilot_parameter.py:354
25432543
msgid "The value for {param_name} must be an integer for bitmask parameters."
2544-
msgstr "{param_name}の値はビットマスクパラメータの場合は整数である必要があります。"
2544+
msgstr ""
2545+
"{param_name}の値はビットマスクパラメータの場合は整数である必要があります。"
25452546

25462547
#: ardupilot_methodic_configurator/data_model_ardupilot_parameter.py:363
25472548
msgid "The value for {param_name} contains unknown bit(s)."
@@ -2560,7 +2561,8 @@ msgstr "{param_name}の値は数値である必要があります。"
25602561
msgid ""
25612562
"The provided numeric value for {param_name} is within tolerance and would "
25622563
"not change the parameter."
2563-
msgstr "{param_name}に提供された数値は許容範囲内でありパラメータを変更しません。"
2564+
msgstr ""
2565+
"{param_name}に提供された数値は許容範囲内でありパラメータを変更しません。"
25642566

25652567
#: ardupilot_methodic_configurator/data_model_motor_test.py:76
25662568
msgid "Flight controller connection required for motor testing"
@@ -4942,7 +4944,8 @@ msgstr "{param_name}のチェック済みキーの取得エラー: %s"
49424944

49434945
#: ardupilot_methodic_configurator/frontend_tkinter_parameter_editor_table.py:552
49444946
msgid "Could not get {param_name} checked keys. Please try again."
4945-
msgstr "{param_name}のチェック済みキーを取得できませんでした。再試行してください。"
4947+
msgstr ""
4948+
"{param_name}のチェック済みキーを取得できませんでした。再試行してください。"
49464949

49474950
#: ardupilot_methodic_configurator/frontend_tkinter_parameter_editor_table.py:563
49484951
msgid "Could not set bitmask value for %s: %s"
@@ -4964,7 +4967,9 @@ msgstr "無効なビットマスク値"
49644967
msgid ""
49654968
"The new value '{new_value_str}' is not a valid integer for the {param.name} "
49664969
"bitmask."
4967-
msgstr "新しい値'{new_value_str}'は{param.name}ビットマスクの有効な整数ではありません。"
4970+
msgstr ""
4971+
"新しい値'{new_value_str}'は{param.name}ビットマスクの有効な整数ではありませ"
4972+
"ん。"
49684973

49694974
#: ardupilot_methodic_configurator/frontend_tkinter_parameter_editor_table.py:668
49704975
msgid "When selected upload {param_name} new value to the flight controller"
@@ -4974,7 +4979,9 @@ msgstr "選択時、{param_name}の新しい値をフライトコントローラ
49744979
msgid ""
49754980
"Parameter %s change reason changed from %s to %s, will later ask if should "
49764981
"be saved to file."
4977-
msgstr "パラメータ%sの変更理由が%sから%sに変更されました。後でファイルに保存するかどうか確認します。"
4982+
msgstr ""
4983+
"パラメータ%sの変更理由が%sから%sに変更されました。後でファイルに保存するかど"
4984+
"うか確認します。"
49784985

49794986
#: ardupilot_methodic_configurator/frontend_tkinter_parameter_editor_table.py:705
49804987
msgid "Are you sure you want to delete the {param_name} parameter?"

ardupilot_methodic_configurator/locale/pt/LC_MESSAGES/ardupilot_methodic_configurator.po

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2639,7 +2639,9 @@ msgstr "O valor fornecido para {param_name} não mudaria o parâmetro."
26392639

26402640
#: ardupilot_methodic_configurator/data_model_ardupilot_parameter.py:354
26412641
msgid "The value for {param_name} must be an integer for bitmask parameters."
2642-
msgstr "O valor para {param_name} deve ser um número inteiro para parâmetros de máscara de bits."
2642+
msgstr ""
2643+
"O valor para {param_name} deve ser um número inteiro para parâmetros de "
2644+
"máscara de bits."
26432645

26442646
#: ardupilot_methodic_configurator/data_model_ardupilot_parameter.py:363
26452647
msgid "The value for {param_name} contains unknown bit(s)."
@@ -2648,7 +2650,9 @@ msgstr "O valor para {param_name} contém bit(s) desconhecido(s)."
26482650
#: ardupilot_methodic_configurator/data_model_ardupilot_parameter.py:367
26492651
msgid ""
26502652
"The provided bitmask value for {param_name} would not change the parameter."
2651-
msgstr "O valor de máscara de bits fornecido para {param_name} não mudaria o parâmetro."
2653+
msgstr ""
2654+
"O valor de máscara de bits fornecido para {param_name} não mudaria o "
2655+
"parâmetro."
26522656

26532657
#: ardupilot_methodic_configurator/data_model_ardupilot_parameter.py:379
26542658
msgid "The value for {param_name} must be a number."
@@ -2658,7 +2662,9 @@ msgstr "O valor para {param_name} deve ser um número."
26582662
msgid ""
26592663
"The provided numeric value for {param_name} is within tolerance and would "
26602664
"not change the parameter."
2661-
msgstr "O valor numérico fornecido para {param_name} está dentro da tolerância e não mudaria o parâmetro."
2665+
msgstr ""
2666+
"O valor numérico fornecido para {param_name} está dentro da tolerância e não "
2667+
"mudaria o parâmetro."
26622668

26632669
#: ardupilot_methodic_configurator/data_model_motor_test.py:76
26642670
msgid "Flight controller connection required for motor testing"
@@ -5097,7 +5103,9 @@ msgstr "Erro ao obter chaves verificadas de {param_name}: %s"
50975103

50985104
#: ardupilot_methodic_configurator/frontend_tkinter_parameter_editor_table.py:552
50995105
msgid "Could not get {param_name} checked keys. Please try again."
5100-
msgstr "Não foi possível obter chaves verificadas de {param_name}. Por favor, tente novamente."
5106+
msgstr ""
5107+
"Não foi possível obter chaves verificadas de {param_name}. Por favor, tente "
5108+
"novamente."
51015109

51025110
#: ardupilot_methodic_configurator/frontend_tkinter_parameter_editor_table.py:563
51035111
msgid "Could not set bitmask value for %s: %s"
@@ -5119,7 +5127,9 @@ msgstr "Valor de Máscara de Bits Inválido"
51195127
msgid ""
51205128
"The new value '{new_value_str}' is not a valid integer for the {param.name} "
51215129
"bitmask."
5122-
msgstr "O novo valor '{new_value_str}' não é um número inteiro válido para a máscara de bits {param.name}."
5130+
msgstr ""
5131+
"O novo valor '{new_value_str}' não é um número inteiro válido para a máscara "
5132+
"de bits {param.name}."
51235133

51245134
#: ardupilot_methodic_configurator/frontend_tkinter_parameter_editor_table.py:668
51255135
msgid "When selected upload {param_name} new value to the flight controller"
@@ -5130,7 +5140,9 @@ msgstr ""
51305140
msgid ""
51315141
"Parameter %s change reason changed from %s to %s, will later ask if should "
51325142
"be saved to file."
5133-
msgstr "Razão de alteração do parâmetro %s mudou de %s para %s, será perguntado mais tarde se deve ser guardado no ficheiro."
5143+
msgstr ""
5144+
"Razão de alteração do parâmetro %s mudou de %s para %s, será perguntado mais "
5145+
"tarde se deve ser guardado no ficheiro."
51345146

51355147
#: ardupilot_methodic_configurator/frontend_tkinter_parameter_editor_table.py:705
51365148
msgid "Are you sure you want to delete the {param_name} parameter?"

ardupilot_methodic_configurator/locale/zh_CN/LC_MESSAGES/ardupilot_methodic_configurator.po

Lines changed: 7 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
msgid ""
66
msgstr ""
77
"Project-Id-Version: 0.9.17\n"
8-
"POT-Creation-Date: 2025-08-16 13:39+0200\n"
8+
"POT-Creation-Date: 2025-08-17 13:27+0200\n"
99
"PO-Revision-Date: 2024-12-02 13:37+0100\n"
1010
"Last-Translator: Dr.-Ing. Amilcar do Carmo Lucas <[email protected]>\n"
1111
"Language-Team: \n"
@@ -170,9 +170,8 @@ msgid "New vehicle directory does not exist: {new_vehicle_dir}"
170170
msgstr "新飞行器目录不存在:{new_vehicle_dir}"
171171

172172
#: ardupilot_methodic_configurator/backend_filesystem.py:598
173-
#, fuzzy
174173
msgid "Error copying template files to new vehicle directory: {_e}"
175-
msgstr "将模板文件复制到新飞行器目录时出错:{_e}"
174+
msgstr "将模板文件复制到新车辆目录时出错:{_e}"
176175

177176
#: ardupilot_methodic_configurator/backend_filesystem.py:618
178177
msgid "Parameter %s not found in the current parameter file"
@@ -316,14 +315,11 @@ msgstr ""
316315
"参数 '{parameter}' 无法计算:未找到 'fc_parameters',是否已连接飞控?"
317316

318317
#: ardupilot_methodic_configurator/backend_filesystem_configuration_steps.py:179
319-
#, fuzzy
320318
msgid ""
321319
"In file '{self.configuration_steps_filename}': '{filename}' {parameter_type} "
322320
"parameter '{parameter}' could not be computed, no documentation metadata "
323321
"available for it"
324-
msgstr ""
325-
"在文件'{self.configuration_steps_filename}'中:'{filename}'的{parameter_type}"
326-
"参数'{parameter}'无法计算,没有可用的文档元数据"
322+
msgstr "在文件'{self.configuration_steps_filename}'中:'{filename}' 的 {parameter_type} 参数 '{parameter}' 无法计算,因为没有可用的文档元数据"
327323

328324
#: ardupilot_methodic_configurator/backend_filesystem_configuration_steps.py:195
329325
msgid ""
@@ -443,9 +439,8 @@ msgid "The path '{site_config_directory}' is not a directory."
443439
msgstr "路径 '{site_config_directory}' 不是一个目录。"
444440

445441
#: ardupilot_methodic_configurator/backend_filesystem_program_settings.py:263
446-
#, fuzzy
447442
msgid "site_directory: %s"
448-
msgstr "站點目錄:%s"
443+
msgstr "站点目录: %s"
449444

450445
#: ardupilot_methodic_configurator/backend_filesystem_program_settings.py:300
451446
#: ardupilot_methodic_configurator/backend_filesystem_program_settings.py:337
@@ -617,9 +612,8 @@ msgid "ChibiOS version mismatch: %s (BANNER) != % s (AUTOPILOT_VERSION)"
617612
msgstr "ChibiOS版本不匹配:%s (BANNER) != %s (AUTOPILOT_VERSION)"
618613

619614
#: ardupilot_methodic_configurator/backend_flightcontroller.py:375
620-
#, fuzzy
621615
msgid "FC firmware type mismatch: %s (BANNER) != %s (AUTOPILOT_VERSION)"
622-
msgstr "FC 固件類型不匹配:%s (BANNER) != %s (AUTOPILOT_VERSION)"
616+
msgstr "FC 固件类型不匹配:%s (BANNER) != %s (AUTOPILOT_VERSION)"
623617

624618
#: ardupilot_methodic_configurator/backend_flightcontroller.py:394
625619
msgid "Testing active, will load all parameters from the %s file"
@@ -2843,13 +2837,10 @@ msgstr ""
28432837
"型號"
28442838

28452839
#: ardupilot_methodic_configurator/data_model_template_overview.py:49
2846-
#, fuzzy
28472840
msgid ""
28482841
"GNSS\n"
28492842
"Connection"
2850-
msgstr ""
2851-
"GNSS\n"
2852-
"連接"
2843+
msgstr "GNSS\n连接"
28532844

28542845
#: ardupilot_methodic_configurator/data_model_vehicle_components_base.py:158
28552846
msgid "Invalid datatype '%s' for path %s"
@@ -3185,21 +3176,14 @@ msgid "Validation failed. Please correct the errors before saving."
31853176
msgstr "验证失败。请在保存前更正错误。"
31863177

31873178
#: ardupilot_methodic_configurator/frontend_tkinter_component_editor_base.py:530
3188-
#, fuzzy
31893179
msgid ""
31903180
"ArduPilot Methodic Configurator only operates correctly if all component "
31913181
"properties are correct. ArduPilot parameter values depend on the components "
31923182
"used and their connections.\n"
31933183
"\n"
31943184
" Have you used the scrollbar on the right side of the window and entered the "
31953185
"correct values for all components?"
3196-
msgstr ""
3197-
"ArduPilot 方法配置器僅在所有組件屬性正確的情況下才能正常運行。ArduPilot 參數"
3198-
"值取決於所使用的組件及其連接。\n"
3199-
"\n"
3200-
"您是否使用了窗口右側的滾動條並為所有組件輸入了正確的值?只有当所有组件属性正"
3201-
"确时,ArduPilot调参助手才能正常工作。参数值取决于使用的组件及其连接。请确保使"
3202-
"用了窗口右侧的滚动条并输入了所有组件的正确值"
3186+
msgstr "ArduPilot Methodic Configurator 仅在所有组件属性正确时才能正常运行。ArduPilot 的参数值取决于所使用的组件及其连接。\n\n您是否已使用窗口右侧的滚动条并为所有组件输入了正确的值?"
32033187

32043188
#: ardupilot_methodic_configurator/frontend_tkinter_component_editor_base.py:536
32053189
msgid "Confirm that all component properties are correct"

0 commit comments

Comments
 (0)