Files
gcs-nf/Plugins/opmap/MAP_zh_CN.ts
T
hm e7cf44504c feat: Service Registry + Bridge 解耦架构 + 全工程代码清理
## 架构升级:Service Registry + Bridge 模式

- 新增 PluginSDK/IPluginServices.h:10 个纯虚服务接口(IDataProvider/ILinkProvider/...)
- 新增 MavLinkServiceBridge:单 QObject 实现全部服务,隔离 MavLinkNode 依赖
- 升级 PluginManifest:支持 plugin.json 的 provides/consumes 声明式依赖
- 实现 ExtensionHost::autoWire():元对象自省自动连接信号槽
- 集成到 AppController:initModules() 中创建桥接器并注册到 ServiceRegistry
- CockpitPlugin 演示服务发现:initialize() 中通过 PluginContext 查找服务

## 代码清理

- Plugins/opmap:~280 行死代码(waypointsetting 100行注释块/tilematrix 54行/等27个文件)
- Plugins/MavLinkNode:~200 行 GBK 乱码注释翻译为 UTF-8 + 12 行注释死代码
- Plugins/ToolsUI:~222 行死代码(ECU.cpp 82行/INS.cpp 113行/Parse/ToolsUI 等)
- StatusUI/Setting/MissionUI:~65 行注释死代码
- Cockpit/leftladder.cpp:10 处 GBK 乱码翻译为中文
- 清理头文件注释掉的 #include(19 处)、空 if-else 分支、注释变量声明

## 编译验证

- [100%] Built target GCS 零错误
- 运行时 timeout 3s 正常退出,无崩溃
2026-06-01 09:46:36 +08:00

442 lines
15 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE TS>
<TS version="2.1" language="zh_CN">
<context>
<name>MapRipForm</name>
<message>
<location filename="mapwidget/mapripform.ui" line="14"/>
<source>MapRipper</source>
<translation>地图缓存</translation>
</message>
<message>
<location filename="mapwidget/mapripform.ui" line="39"/>
<source>Currently ripping from:</source>
<translation>当前缓存:</translation>
</message>
<message>
<location filename="mapwidget/mapripform.ui" line="52"/>
<source>Downloading tile</source>
<translation>下载图片</translation>
</message>
<message>
<location filename="mapwidget/mapripform.ui" line="65"/>
<source>Cancel</source>
<translation>取消</translation>
</message>
<message>
<location filename="mapwidget/mapripform.cpp" line="49"/>
<source>Currently ripping from:%1 at Zoom level %2</source>
<translation>正在从%1缓存,等级%2</translation>
</message>
<message>
<location filename="mapwidget/mapripform.cpp" line="53"/>
<source>Downloading tile %1 of %2</source>
<translation>正在下载图片 %1,总数%2</translation>
</message>
</context>
<context>
<name>mapcontrol::AltitudeItem</name>
<message>
<location filename="mapwidget/AltitudeItem.cpp" line="139"/>
<source>mission</source>
<translation>航线</translation>
</message>
<message>
<location filename="mapwidget/AltitudeItem.cpp" line="144"/>
<source>terrain</source>
<translation>地形</translation>
</message>
</context>
<context>
<name>mapcontrol::MapRipper</name>
<message>
<location filename="mapwidget/mapripper.cpp" line="41"/>
<location filename="mapwidget/mapripper.cpp" line="43"/>
<source>No valid selection</source>
<translation>无效选择</translation>
</message>
<message>
<location filename="mapwidget/mapripper.cpp" line="41"/>
<source>This pre-caches map data.
Please first select the area of the map to rip with &lt;COMMAND&gt;+Left mouse click</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mapwidget/mapripper.cpp" line="43"/>
<source>This pre-caches map data.
Please first select the area of the map to rip with &lt;CTRL&gt;+Left mouse click</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mapwidget/mapripper.cpp" line="54"/>
<source>Continue Ripping at zoom level %1?</source>
<translation>继续缓存,等级%1?</translation>
</message>
</context>
<context>
<name>mapcontrol::OPMapWidget</name>
<message>
<location filename="mapwidget/opmapwidget.cpp" line="208"/>
<source>.plan</source>
<translation type="unfinished"></translation>
</message>
<message>
<location filename="mapwidget/opmapwidget.cpp" line="1810"/>
<source>start rip map</source>
<translation>开始缓存地图</translation>
</message>
<message>
<location filename="mapwidget/opmapwidget.cpp" line="1816"/>
<source>stop rip map</source>
<translation>停止缓存地图</translation>
</message>
<message>
<location filename="mapwidget/opmapwidget.cpp" line="2637"/>
<source>Load Geo Fence File :%1</source>
<translation>导入围栏文件:%1</translation>
</message>
<message>
<location filename="mapwidget/opmapwidget.cpp" line="2489"/>
<location filename="mapwidget/opmapwidget.cpp" line="2728"/>
<source>Load Mission File:Group %1,%2</source>
<translation>导入航线文件:第%1组航线,%2</translation>
</message>
<message>
<location filename="mapwidget/opmapwidget.cpp" line="2957"/>
<source>Save Fence File:%1</source>
<translation>保存围栏文件:%1</translation>
</message>
<message>
<location filename="mapwidget/opmapwidget.cpp" line="2878"/>
<location filename="mapwidget/opmapwidget.cpp" line="3043"/>
<source>Save Mission File:Group %1,%2</source>
<translation>保存航线文件:第%1组航线,%2</translation>
</message>
<message>
<location filename="mapwidget/opmapwidget.cpp" line="790"/>
<source>zom:%1
lat:%2
lng:%3</source>
<translation>等级:%1
纬度:%2
经度:%3</translation>
</message>
<message>
<location filename="mapwidget/opmapwidget.cpp" line="3254"/>
<source>please load fence first</source>
<translation>请先导入围栏</translation>
</message>
<message>
<location filename="mapwidget/opmapwidget.cpp" line="3259"/>
<source>start upload fence,total:%1</source>
<translation>开始上传围栏,总数%1</translation>
</message>
<message>
<location filename="mapwidget/opmapwidget.cpp" line="3297"/>
<source>please load mission first</source>
<translation>请先导入航线</translation>
</message>
<message>
<location filename="mapwidget/opmapwidget.cpp" line="3302"/>
<source>start upload mission %1,total %2</source>
<translation>开始上传航线%1,总数%2</translation>
</message>
<message>
<location filename="mapwidget/opmapwidget.cpp" line="3533"/>
<source>upload Mission</source>
<translation>上传航点</translation>
</message>
<message>
<location filename="mapwidget/opmapwidget.cpp" line="3540"/>
<source>upload fail %1</source>
<translation>上传失败 %1</translation>
</message>
<message>
<location filename="mapwidget/opmapwidget.cpp" line="3568"/>
<source>recieve fence polygon inclusion: %1</source>
<translation>接收到多边形安控区 %1</translation>
</message>
<message>
<location filename="mapwidget/opmapwidget.cpp" line="3616"/>
<source>recieve fence polygon exclusion: %1</source>
<translation>接收到多边形禁飞区 %1</translation>
</message>
<message>
<location filename="mapwidget/opmapwidget.cpp" line="3666"/>
<source>recieve fence circle inclusion: %1</source>
<translation>接收到圆形安控区 %1</translation>
</message>
<message>
<location filename="mapwidget/opmapwidget.cpp" line="3680"/>
<source>recieve fence circle exclusion: %1</source>
<translation>接收到圆形禁飞区 %1</translation>
</message>
<message>
<source>fence</source>
<translation type="vanished">围栏</translation>
</message>
<message>
<location filename="mapwidget/opmapwidget.cpp" line="3699"/>
<source>recieve way point group:%1 seq:%2</source>
<translation>收到航点:第%1组,第%2点</translation>
</message>
</context>
<context>
<name>mapcontrol::TrailItem</name>
<message>
<location filename="mapwidget/trailitem.cpp" line="35"/>
<source>Position:</source>
<translation>位置:</translation>
</message>
<message>
<location filename="mapwidget/trailitem.cpp" line="35"/>
<source>Altitude:</source>
<translation>海拔:</translation>
</message>
<message>
<location filename="mapwidget/trailitem.cpp" line="35"/>
<source>Time:</source>
<translation>时间:</translation>
</message>
</context>
<context>
<name>mapcontrol::UAVItem</name>
<message>
<location filename="mapwidget/uavitem.cpp" line="195"/>
<location filename="mapwidget/uavitem.cpp" line="199"/>
<location filename="mapwidget/uavitem.cpp" line="203"/>
<source>Speed: %1m/s
Ma:%2</source>
<translation>表速:%1m/s
马赫:%2</translation>
</message>
<message>
<location filename="mapwidget/uavitem.cpp" line="208"/>
<source>Height: %1m
%2</source>
<translation>高度:%1m
%2</translation>
</message>
</context>
<context>
<name>mapcontrol::WayPointItem</name>
<message>
<source>waypoint </source>
<translation type="vanished">航点 </translation>
</message>
<message>
<location filename="mapwidget/waypointitem.cpp" line="425"/>
<source>return </source>
<translation>返航 </translation>
</message>
<message>
<location filename="mapwidget/waypointitem.cpp" line="428"/>
<source>landing </source>
<translation>降落 </translation>
</message>
<message>
<location filename="mapwidget/waypointitem.cpp" line="431"/>
<source>takeoff </source>
<translation>起飞 </translation>
</message>
<message>
<location filename="mapwidget/waypointitem.cpp" line="434"/>
<source>unknow </source>
<translation>未知类型 </translation>
</message>
<message>
<location filename="mapwidget/waypointitem.cpp" line="442"/>
<source>hold
</source>
<translation>保持
</translation>
</message>
<message>
<location filename="mapwidget/waypointitem.cpp" line="446"/>
<source>cas
</source>
<translation>表速
</translation>
</message>
<message>
<location filename="mapwidget/waypointitem.cpp" line="449"/>
<location filename="mapwidget/waypointitem.cpp" line="460"/>
<location filename="mapwidget/waypointitem.cpp" line="471"/>
<location filename="mapwidget/waypointitem.cpp" line="482"/>
<location filename="mapwidget/waypointitem.cpp" line="493"/>
<source>Ma: %1</source>
<translation>马赫:%1</translation>
</message>
<message>
<location filename="mapwidget/waypointitem.cpp" line="457"/>
<source>Vz
</source>
<translation>快升
</translation>
</message>
<message>
<location filename="mapwidget/waypointitem.cpp" line="468"/>
<source>onAB
</source>
<translation>开加力
</translation>
</message>
<message>
<location filename="mapwidget/waypointitem.cpp" line="479"/>
<source>offAB
</source>
<translation>关加力
</translation>
</message>
<message>
<location filename="mapwidget/waypointitem.cpp" line="490"/>
<source>unknow
</source>
<translation>未知指令
</translation>
</message>
<message>
<location filename="mapwidget/waypointitem.cpp" line="504"/>
<source>
</source>
<translation>
</translation>
</message>
<message>
<location filename="mapwidget/waypointitem.cpp" line="453"/>
<location filename="mapwidget/waypointitem.cpp" line="464"/>
<location filename="mapwidget/waypointitem.cpp" line="475"/>
<location filename="mapwidget/waypointitem.cpp" line="486"/>
<location filename="mapwidget/waypointitem.cpp" line="497"/>
<source>Speed: %1m/s</source>
<translation>速度:%1m/s</translation>
</message>
<message>
<location filename="mapwidget/waypointitem.cpp" line="507"/>
<source>Height: %1m
%2</source>
<translation>高度:%1m
%2</translation>
</message>
</context>
<context>
<name>mapcontrol::WayPointSetting</name>
<message>
<source>Load</source>
<translation type="vanished">打开</translation>
</message>
<message>
<source>Save</source>
<translation type="vanished">保存</translation>
</message>
<message>
<source>Upload</source>
<translation type="vanished">上传</translation>
</message>
<message>
<source>Download</source>
<translation type="vanished">下载</translation>
</message>
<message>
<source>insert</source>
<translation type="vanished">插入</translation>
</message>
<message>
<source>delete</source>
<translation type="vanished">删除</translation>
</message>
<message>
<source>last</source>
<translation type="vanished">上一个</translation>
</message>
<message>
<source>next</source>
<translation type="vanished">下一个</translation>
</message>
<message>
<source>ruler</source>
<translation type="vanished">测量</translation>
</message>
<message>
<source>table</source>
<translation type="vanished">航线</translation>
</message>
<message>
<source>Group</source>
<translation type="vanished">组别</translation>
</message>
<message>
<location filename="mapwidget/waypointsetting.cpp" line="138"/>
<location filename="mapwidget/waypointsetting.cpp" line="141"/>
<location filename="mapwidget/waypointsetting.cpp" line="149"/>
<source>AirCraft</source>
<translation>飞机信息</translation>
</message>
<message>
<location filename="mapwidget/waypointsetting.cpp" line="143"/>
<source>Show
AirCraft</source>
<oldsource>ShowAirCraft</oldsource>
<translation>显示
飞机信息</translation>
</message>
<message>
<location filename="mapwidget/waypointsetting.cpp" line="145"/>
<source>show UAV Tip</source>
<translation>显示无人机标签</translation>
</message>
<message>
<location filename="mapwidget/waypointsetting.cpp" line="151"/>
<source>hide UAV Tip</source>
<translation>隐藏无人机标签</translation>
</message>
<message>
<location filename="mapwidget/waypointsetting.cpp" line="159"/>
<location filename="mapwidget/waypointsetting.cpp" line="162"/>
<location filename="mapwidget/waypointsetting.cpp" line="170"/>
<source>Tip</source>
<translation>航点信息</translation>
</message>
<message>
<location filename="mapwidget/waypointsetting.cpp" line="164"/>
<source>Show
Tip</source>
<oldsource>ShowTip</oldsource>
<translation>显示
航点信息</translation>
</message>
<message>
<location filename="mapwidget/waypointsetting.cpp" line="166"/>
<source>show mission Tip</source>
<translation>显示任务标签</translation>
</message>
<message>
<location filename="mapwidget/waypointsetting.cpp" line="172"/>
<source>hide mission Tip</source>
<translation>隐藏任务标签</translation>
</message>
<message>
<location filename="mapwidget/waypointsetting.cpp" line="179"/>
<location filename="mapwidget/waypointsetting.cpp" line="312"/>
<source>Measure</source>
<translation>测量</translation>
</message>
<message>
<location filename="mapwidget/waypointsetting.cpp" line="190"/>
<source>Table</source>
<translation>航线</translation>
</message>
<message>
<source>Selete Way Point File...</source>
<translation type="vanished">选择一个航线文件...</translation>
</message>
<message>
<location filename="mapwidget/waypointsetting.cpp" line="308"/>
<source>Measuring</source>
<translation>测量中</translation>
</message>
</context>
</TS>