将Feature/XP.Common和Feature/XP.Hardware分支合并至Develop/XP.forHardwareAndCommon,完善XPapp注册和相关硬件类库通用类库功能。

This commit is contained in:
QI Mingxuan
2026-04-16 17:31:13 +08:00
parent 6ec4c3ddaa
commit 2bd6e566c3
581 changed files with 74600 additions and 222 deletions
File diff suppressed because it is too large Load Diff
+378
View File
@@ -0,0 +1,378 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="App_Title" xml:space="preserve">
<value>XplorePlane X-Ray Inspection System</value>
</data>
<data name="Menu_File" xml:space="preserve">
<value>File</value>
</data>
<data name="Menu_Settings" xml:space="preserve">
<value>Settings</value>
</data>
<data name="Button_OK" xml:space="preserve">
<value>OK</value>
</data>
<data name="Button_Cancel" xml:space="preserve">
<value>Cancel</value>
</data>
<data name="Language_ZhCN" xml:space="preserve">
<value>Simplified Chinese</value>
</data>
<data name="Language_ZhTW" xml:space="preserve">
<value>Traditional Chinese</value>
</data>
<data name="Language_EnUS" xml:space="preserve">
<value>English</value>
</data>
<data name="Settings_Language" xml:space="preserve">
<value>Language Settings</value>
</data>
<data name="Settings_Language_Description" xml:space="preserve">
<value>Select your preferred display language</value>
</data>
<data name="Settings_Language_RestartNotice" xml:space="preserve">
<value>Language changes will take effect on the next application startup.</value>
</data>
<data name="Button_Apply" xml:space="preserve">
<value>Apply</value>
</data>
<data name="Button_Close" xml:space="preserve">
<value>Close</value>
</data>
<data name="Button_Save" xml:space="preserve">
<value>Save</value>
</data>
<data name="Button_Delete" xml:space="preserve">
<value>Delete</value>
</data>
<data name="Button_Edit" xml:space="preserve">
<value>Edit</value>
</data>
<data name="Button_Add" xml:space="preserve">
<value>Add</value>
</data>
<data name="Button_Refresh" xml:space="preserve">
<value>Refresh</value>
</data>
<data name="Button_Search" xml:space="preserve">
<value>Search</value>
</data>
<data name="Button_Reset" xml:space="preserve">
<value>Reset</value>
</data>
<data name="Status_Ready" xml:space="preserve">
<value>Ready</value>
</data>
<data name="Status_Loading" xml:space="preserve">
<value>Loading...</value>
</data>
<data name="Status_Saving" xml:space="preserve">
<value>Saving...</value>
</data>
<data name="Status_Processing" xml:space="preserve">
<value>Processing...</value>
</data>
<data name="Status_Success" xml:space="preserve">
<value>Success</value>
</data>
<data name="Status_Failed" xml:space="preserve">
<value>Failed</value>
</data>
<data name="Status_Error" xml:space="preserve">
<value>Error</value>
</data>
<data name="Status_Warning" xml:space="preserve">
<value>Warning</value>
</data>
<data name="Status_Connected" xml:space="preserve">
<value>Connected</value>
</data>
<data name="Status_Disconnected" xml:space="preserve">
<value>Disconnected</value>
</data>
<data name="Welcome_Message" xml:space="preserve">
<value>Welcome to XplorePlane X-Ray Inspection System</value>
</data>
<data name="Message_OperationSuccess" xml:space="preserve">
<value>Operation completed successfully</value>
</data>
<data name="Message_OperationFailed" xml:space="preserve">
<value>Operation failed</value>
</data>
<data name="Message_ConfirmDelete" xml:space="preserve">
<value>Are you sure you want to delete?</value>
</data>
<data name="Message_UnsavedChanges" xml:space="preserve">
<value>There are unsaved changes. Do you want to save?</value>
</data>
<data name="Message_InvalidInput" xml:space="preserve">
<value>Invalid input. Please check and try again</value>
</data>
<data name="Message_ConnectionLost" xml:space="preserve">
<value>Connection lost</value>
</data>
<data name="Message_RestartRequired" xml:space="preserve">
<value>Language setting saved. Please restart the application to apply the new language.</value>
</data>
<data name="Menu_View" xml:space="preserve">
<value>View</value>
</data>
<data name="Menu_Tools" xml:space="preserve">
<value>Tools</value>
</data>
<data name="Menu_Help" xml:space="preserve">
<value>Help</value>
</data>
<data name="Menu_Exit" xml:space="preserve">
<value>Exit</value>
</data>
<data name="Menu_About" xml:space="preserve">
<value>About</value>
</data>
<data name="Dialog_Confirmation" xml:space="preserve">
<value>Confirmation</value>
</data>
<data name="Dialog_Information" xml:space="preserve">
<value>Information</value>
</data>
<data name="Dialog_Warning" xml:space="preserve">
<value>Warning</value>
</data>
<data name="Dialog_Error" xml:space="preserve">
<value>Error</value>
</data>
<data name="Dialog_Notice" xml:space="preserve">
<value>Notice</value>
</data>
<data name="Settings_Language_SavedRestartRequired" xml:space="preserve">
<value>Language setting saved. Please restart the application to apply the new language.</value>
</data>
<data name="Settings_Language_SwitchFailed" xml:space="preserve">
<value>Failed to switch language: {0}</value>
</data>
<data name="Scan_Text_ScanMode" xml:space="preserve">
<value>Scan Mode:</value>
<comment>Scan - Scan mode label</comment>
</data>
<data name="Scan_Text_FrameMerge" xml:space="preserve">
<value>Frame Merge:</value>
<comment>Scan - Frame merge label</comment>
</data>
<data name="Scan_Text_Nums" xml:space="preserve">
<value>Acquisition Count:</value>
<comment>Scan - Acquisition count label</comment>
</data>
<data name="Scan_Text_Angles" xml:space="preserve">
<value>Rotation Angle:</value>
<comment>Scan - Rotation angle label</comment>
</data>
<data name="Scan_Text_Progress" xml:space="preserve">
<value>Progress:</value>
<comment>Scan - Acquisition progress label</comment>
</data>
<data name="Scan_Button_Start" xml:space="preserve">
<value>Start</value>
<comment>Scan - Start acquisition button</comment>
</data>
<data name="Scan_Button_Stop" xml:space="preserve">
<value>Stop</value>
<comment>Scan - Stop acquisition button</comment>
</data>
<data name="LogViewer_StatusTotal" xml:space="preserve">
<value>Total {0} logs</value>
<comment>LogViewer - Status bar total count</comment>
</data>
<data name="LogViewer_StatusFiltered" xml:space="preserve">
<value>Total {0} logs, {1} after filtering</value>
<comment>LogViewer - Status bar filtered count</comment>
</data>
<data name="LogViewer_Title" xml:space="preserve">
<value>Real-Time Log Viewer</value>
<comment>LogViewer - Window title</comment>
</data>
<data name="LogViewer_AutoScroll" xml:space="preserve">
<value>Auto Scroll</value>
<comment>LogViewer - Auto-scroll button</comment>
</data>
<data name="LogViewer_ClearLog" xml:space="preserve">
<value>Clear Log</value>
<comment>LogViewer - Clear log button</comment>
</data>
<data name="LogViewer_Filter" xml:space="preserve">
<value>Filter:</value>
<comment>LogViewer - Filter label</comment>
</data>
<data name="LogViewer_FilterWatermark" xml:space="preserve">
<value>Enter keyword to filter logs...</value>
<comment>LogViewer - Filter watermark</comment>
</data>
<data name="LogViewer_LevelFilter" xml:space="preserve">
<value>Level Filter:</value>
<comment>LogViewer - Level filter label</comment>
</data>
<data name="LogViewer_ColTime" xml:space="preserve">
<value>Time</value>
<comment>LogViewer - Time column header</comment>
</data>
<data name="LogViewer_ColLevel" xml:space="preserve">
<value>Level</value>
<comment>LogViewer - Level column header</comment>
</data>
<data name="LogViewer_ColSource" xml:space="preserve">
<value>Source</value>
<comment>LogViewer - Source column header</comment>
</data>
<data name="LogViewer_ColMessage" xml:space="preserve">
<value>Message</value>
<comment>LogViewer - Message column header</comment>
</data>
<data name="LogViewer_MaxLines" xml:space="preserve">
<value>Max Lines:</value>
<comment>LogViewer - Max lines label</comment>
</data>
<data name="PdfViewer_Title" xml:space="preserve">
<value>PDF Viewer</value>
<comment>PdfViewer - Window title</comment>
</data>
<data name="PdfViewer_TitleWithFile" xml:space="preserve">
<value>PDF Viewer - {0}</value>
<comment>PdfViewer - Window title with file name</comment>
</data>
<data name="PdfViewer_LoadSuccess" xml:space="preserve">
<value>PDF loaded: {0} ({1} pages)</value>
<comment>PdfViewer - Load success log</comment>
</data>
<data name="PdfViewer_LoadFailed" xml:space="preserve">
<value>PDF file load failed</value>
<comment>PdfViewer - Load failed log</comment>
</data>
<data name="PdfViewer_PrintSuccess" xml:space="preserve">
<value>Print job submitted: {0} → {1}</value>
<comment>PdfViewer - Print success log</comment>
</data>
<data name="PdfViewer_PrintFailed" xml:space="preserve">
<value>Print failed</value>
<comment>PdfViewer - Print failed log</comment>
</data>
<data name="PdfViewer_PrinterNotFound" xml:space="preserve">
<value>Printer not found: {0}</value>
<comment>PdfViewer - Printer not found</comment>
</data>
</root>
+378
View File
@@ -0,0 +1,378 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="App_Title" xml:space="preserve">
<value>XplorePlane X射线检测系统</value>
</data>
<data name="Menu_File" xml:space="preserve">
<value>文件</value>
</data>
<data name="Menu_Settings" xml:space="preserve">
<value>设置</value>
</data>
<data name="Button_OK" xml:space="preserve">
<value>确定</value>
</data>
<data name="Button_Cancel" xml:space="preserve">
<value>取消</value>
</data>
<data name="Language_ZhCN" xml:space="preserve">
<value>简体中文</value>
</data>
<data name="Language_ZhTW" xml:space="preserve">
<value>繁體中文</value>
</data>
<data name="Language_EnUS" xml:space="preserve">
<value>English</value>
</data>
<data name="Settings_Language" xml:space="preserve">
<value>语言设置</value>
</data>
<data name="Settings_Language_Description" xml:space="preserve">
<value>选择您偏好的显示语言</value>
</data>
<data name="Settings_Language_RestartNotice" xml:space="preserve">
<value>语言切换将在下次启动应用程序时生效。</value>
</data>
<data name="Button_Apply" xml:space="preserve">
<value>应用</value>
</data>
<data name="Button_Close" xml:space="preserve">
<value>关闭</value>
</data>
<data name="Button_Save" xml:space="preserve">
<value>保存</value>
</data>
<data name="Button_Delete" xml:space="preserve">
<value>删除</value>
</data>
<data name="Button_Edit" xml:space="preserve">
<value>编辑</value>
</data>
<data name="Button_Add" xml:space="preserve">
<value>添加</value>
</data>
<data name="Button_Refresh" xml:space="preserve">
<value>刷新</value>
</data>
<data name="Button_Search" xml:space="preserve">
<value>搜索</value>
</data>
<data name="Button_Reset" xml:space="preserve">
<value>重置</value>
</data>
<data name="Status_Ready" xml:space="preserve">
<value>就绪</value>
</data>
<data name="Status_Loading" xml:space="preserve">
<value>加载中...</value>
</data>
<data name="Status_Saving" xml:space="preserve">
<value>保存中...</value>
</data>
<data name="Status_Processing" xml:space="preserve">
<value>处理中...</value>
</data>
<data name="Status_Success" xml:space="preserve">
<value>成功</value>
</data>
<data name="Status_Failed" xml:space="preserve">
<value>失败</value>
</data>
<data name="Status_Error" xml:space="preserve">
<value>错误</value>
</data>
<data name="Status_Warning" xml:space="preserve">
<value>警告</value>
</data>
<data name="Status_Connected" xml:space="preserve">
<value>已连接</value>
</data>
<data name="Status_Disconnected" xml:space="preserve">
<value>已断开</value>
</data>
<data name="Welcome_Message" xml:space="preserve">
<value>欢迎使用 XplorePlane X射线检测系统</value>
</data>
<data name="Message_OperationSuccess" xml:space="preserve">
<value>操作成功完成</value>
</data>
<data name="Message_OperationFailed" xml:space="preserve">
<value>操作失败</value>
</data>
<data name="Message_ConfirmDelete" xml:space="preserve">
<value>确定要删除吗?</value>
</data>
<data name="Message_UnsavedChanges" xml:space="preserve">
<value>有未保存的更改,是否保存?</value>
</data>
<data name="Message_InvalidInput" xml:space="preserve">
<value>输入无效,请检查后重试</value>
</data>
<data name="Message_ConnectionLost" xml:space="preserve">
<value>连接已断开</value>
</data>
<data name="Message_RestartRequired" xml:space="preserve">
<value>语言设置已保存,请重启应用程序以应用新语言。</value>
</data>
<data name="Menu_View" xml:space="preserve">
<value>视图</value>
</data>
<data name="Menu_Tools" xml:space="preserve">
<value>工具</value>
</data>
<data name="Menu_Help" xml:space="preserve">
<value>帮助</value>
</data>
<data name="Menu_Exit" xml:space="preserve">
<value>退出</value>
</data>
<data name="Menu_About" xml:space="preserve">
<value>关于</value>
</data>
<data name="Dialog_Confirmation" xml:space="preserve">
<value>确认</value>
</data>
<data name="Dialog_Information" xml:space="preserve">
<value>信息</value>
</data>
<data name="Dialog_Warning" xml:space="preserve">
<value>警告</value>
</data>
<data name="Dialog_Error" xml:space="preserve">
<value>错误</value>
</data>
<data name="Dialog_Notice" xml:space="preserve">
<value>提示</value>
</data>
<data name="Settings_Language_SavedRestartRequired" xml:space="preserve">
<value>语言设置已保存,请重启应用程序以应用新语言。</value>
</data>
<data name="Settings_Language_SwitchFailed" xml:space="preserve">
<value>语言切换失败:{0}</value>
</data>
<data name="Scan_Text_ScanMode" xml:space="preserve">
<value>采集模式:</value>
<comment>Scan - 采集模式标签 | Scan mode label</comment>
</data>
<data name="Scan_Text_FrameMerge" xml:space="preserve">
<value>帧合并:</value>
<comment>Scan - 帧合并标签 | Frame merge label</comment>
</data>
<data name="Scan_Text_Nums" xml:space="preserve">
<value>采集张数:</value>
<comment>Scan - 采集张数标签 | Acquisition count label</comment>
</data>
<data name="Scan_Text_Angles" xml:space="preserve">
<value>旋转角度:</value>
<comment>Scan - 旋转角度标签 | Rotation angle label</comment>
</data>
<data name="Scan_Text_Progress" xml:space="preserve">
<value>采集进度:</value>
<comment>Scan - 采集进度标签 | Acquisition progress label</comment>
</data>
<data name="Scan_Button_Start" xml:space="preserve">
<value>开始采集</value>
<comment>Scan - 开始采集按钮 | Start acquisition button</comment>
</data>
<data name="Scan_Button_Stop" xml:space="preserve">
<value>停止采集</value>
<comment>Scan - 停止采集按钮 | Stop acquisition button</comment>
</data>
<data name="LogViewer_StatusTotal" xml:space="preserve">
<value>共 {0} 条日志</value>
<comment>LogViewer - 状态栏总数 | Status bar total count</comment>
</data>
<data name="LogViewer_StatusFiltered" xml:space="preserve">
<value>共 {0} 条日志,过滤后 {1} 条</value>
<comment>LogViewer - 状态栏过滤后 | Status bar filtered count</comment>
</data>
<data name="LogViewer_Title" xml:space="preserve">
<value>实时日志查看器</value>
<comment>LogViewer - 窗口标题 | Window title</comment>
</data>
<data name="LogViewer_AutoScroll" xml:space="preserve">
<value>自动滚动</value>
<comment>LogViewer - 自动滚动按钮 | Auto-scroll button</comment>
</data>
<data name="LogViewer_ClearLog" xml:space="preserve">
<value>清空日志</value>
<comment>LogViewer - 清空日志按钮 | Clear log button</comment>
</data>
<data name="LogViewer_Filter" xml:space="preserve">
<value>过滤:</value>
<comment>LogViewer - 过滤标签 | Filter label</comment>
</data>
<data name="LogViewer_FilterWatermark" xml:space="preserve">
<value>输入关键词过滤日志...</value>
<comment>LogViewer - 过滤水印 | Filter watermark</comment>
</data>
<data name="LogViewer_LevelFilter" xml:space="preserve">
<value>级别筛选:</value>
<comment>LogViewer - 级别筛选标签 | Level filter label</comment>
</data>
<data name="LogViewer_ColTime" xml:space="preserve">
<value>时间</value>
<comment>LogViewer - 时间列头 | Time column header</comment>
</data>
<data name="LogViewer_ColLevel" xml:space="preserve">
<value>级别</value>
<comment>LogViewer - 级别列头 | Level column header</comment>
</data>
<data name="LogViewer_ColSource" xml:space="preserve">
<value>来源</value>
<comment>LogViewer - 来源列头 | Source column header</comment>
</data>
<data name="LogViewer_ColMessage" xml:space="preserve">
<value>消息</value>
<comment>LogViewer - 消息列头 | Message column header</comment>
</data>
<data name="LogViewer_MaxLines" xml:space="preserve">
<value>最大行数:</value>
<comment>LogViewer - 最大行数标签 | Max lines label</comment>
</data>
<data name="PdfViewer_Title" xml:space="preserve">
<value>PDF 阅读器</value>
<comment>PdfViewer - 窗口标题 | Window title</comment>
</data>
<data name="PdfViewer_TitleWithFile" xml:space="preserve">
<value>PDF 阅读器 - {0}</value>
<comment>PdfViewer - 带文件名的窗口标题 | Window title with file name</comment>
</data>
<data name="PdfViewer_LoadSuccess" xml:space="preserve">
<value>PDF 文件加载成功:{0}{1} 页)</value>
<comment>PdfViewer - 加载成功日志 | Load success log</comment>
</data>
<data name="PdfViewer_LoadFailed" xml:space="preserve">
<value>PDF 文件加载失败</value>
<comment>PdfViewer - 加载失败日志 | Load failed log</comment>
</data>
<data name="PdfViewer_PrintSuccess" xml:space="preserve">
<value>打印任务已提交:{0} → {1}</value>
<comment>PdfViewer - 打印成功日志 | Print success log</comment>
</data>
<data name="PdfViewer_PrintFailed" xml:space="preserve">
<value>打印失败</value>
<comment>PdfViewer - 打印失败日志 | Print failed log</comment>
</data>
<data name="PdfViewer_PrinterNotFound" xml:space="preserve">
<value>打印机未找到:{0}</value>
<comment>PdfViewer - 打印机未找到 | Printer not found</comment>
</data>
</root>
+378
View File
@@ -0,0 +1,378 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="App_Title" xml:space="preserve">
<value>XplorePlane X射线检测系统</value>
</data>
<data name="Menu_File" xml:space="preserve">
<value>文件</value>
</data>
<data name="Menu_Settings" xml:space="preserve">
<value>设置</value>
</data>
<data name="Button_OK" xml:space="preserve">
<value>确定</value>
</data>
<data name="Button_Cancel" xml:space="preserve">
<value>取消</value>
</data>
<data name="Language_ZhCN" xml:space="preserve">
<value>简体中文</value>
</data>
<data name="Language_ZhTW" xml:space="preserve">
<value>繁體中文</value>
</data>
<data name="Language_EnUS" xml:space="preserve">
<value>English</value>
</data>
<data name="Settings_Language" xml:space="preserve">
<value>语言设置</value>
</data>
<data name="Settings_Language_Description" xml:space="preserve">
<value>选择您偏好的显示语言</value>
</data>
<data name="Settings_Language_RestartNotice" xml:space="preserve">
<value>语言切换将在下次启动应用程序时生效。</value>
</data>
<data name="Button_Apply" xml:space="preserve">
<value>应用</value>
</data>
<data name="Button_Close" xml:space="preserve">
<value>关闭</value>
</data>
<data name="Button_Save" xml:space="preserve">
<value>保存</value>
</data>
<data name="Button_Delete" xml:space="preserve">
<value>删除</value>
</data>
<data name="Button_Edit" xml:space="preserve">
<value>编辑</value>
</data>
<data name="Button_Add" xml:space="preserve">
<value>添加</value>
</data>
<data name="Button_Refresh" xml:space="preserve">
<value>刷新</value>
</data>
<data name="Button_Search" xml:space="preserve">
<value>搜索</value>
</data>
<data name="Button_Reset" xml:space="preserve">
<value>重置</value>
</data>
<data name="Status_Ready" xml:space="preserve">
<value>就绪</value>
</data>
<data name="Status_Loading" xml:space="preserve">
<value>加载中...</value>
</data>
<data name="Status_Saving" xml:space="preserve">
<value>保存中...</value>
</data>
<data name="Status_Processing" xml:space="preserve">
<value>处理中...</value>
</data>
<data name="Status_Success" xml:space="preserve">
<value>成功</value>
</data>
<data name="Status_Failed" xml:space="preserve">
<value>失败</value>
</data>
<data name="Status_Error" xml:space="preserve">
<value>错误</value>
</data>
<data name="Status_Warning" xml:space="preserve">
<value>警告</value>
</data>
<data name="Status_Connected" xml:space="preserve">
<value>已连接</value>
</data>
<data name="Status_Disconnected" xml:space="preserve">
<value>已断开</value>
</data>
<data name="Welcome_Message" xml:space="preserve">
<value>欢迎使用 XplorePlane X射线检测系统</value>
</data>
<data name="Message_OperationSuccess" xml:space="preserve">
<value>操作成功完成</value>
</data>
<data name="Message_OperationFailed" xml:space="preserve">
<value>操作失败</value>
</data>
<data name="Message_ConfirmDelete" xml:space="preserve">
<value>确定要删除吗?</value>
</data>
<data name="Message_UnsavedChanges" xml:space="preserve">
<value>有未保存的更改,是否保存?</value>
</data>
<data name="Message_InvalidInput" xml:space="preserve">
<value>输入无效,请检查后重试</value>
</data>
<data name="Message_ConnectionLost" xml:space="preserve">
<value>连接已断开</value>
</data>
<data name="Message_RestartRequired" xml:space="preserve">
<value>语言设置已保存,请重启应用程序以应用新语言。</value>
</data>
<data name="Menu_View" xml:space="preserve">
<value>视图</value>
</data>
<data name="Menu_Tools" xml:space="preserve">
<value>工具</value>
</data>
<data name="Menu_Help" xml:space="preserve">
<value>帮助</value>
</data>
<data name="Menu_Exit" xml:space="preserve">
<value>退出</value>
</data>
<data name="Menu_About" xml:space="preserve">
<value>关于</value>
</data>
<data name="Dialog_Confirmation" xml:space="preserve">
<value>确认</value>
</data>
<data name="Dialog_Information" xml:space="preserve">
<value>信息</value>
</data>
<data name="Dialog_Warning" xml:space="preserve">
<value>警告</value>
</data>
<data name="Dialog_Error" xml:space="preserve">
<value>错误</value>
</data>
<data name="Dialog_Notice" xml:space="preserve">
<value>提示</value>
</data>
<data name="Settings_Language_SavedRestartRequired" xml:space="preserve">
<value>语言设置已保存,请重启应用程序以应用新语言。</value>
</data>
<data name="Settings_Language_SwitchFailed" xml:space="preserve">
<value>语言切换失败:{0}</value>
</data>
<data name="Scan_Text_ScanMode" xml:space="preserve">
<value>采集模式:</value>
<comment>Scan - 采集模式标签 | Scan mode label</comment>
</data>
<data name="Scan_Text_FrameMerge" xml:space="preserve">
<value>帧合并:</value>
<comment>Scan - 帧合并标签 | Frame merge label</comment>
</data>
<data name="Scan_Text_Nums" xml:space="preserve">
<value>采集张数:</value>
<comment>Scan - 采集张数标签 | Acquisition count label</comment>
</data>
<data name="Scan_Text_Angles" xml:space="preserve">
<value>旋转角度:</value>
<comment>Scan - 旋转角度标签 | Rotation angle label</comment>
</data>
<data name="Scan_Text_Progress" xml:space="preserve">
<value>采集进度:</value>
<comment>Scan - 采集进度标签 | Acquisition progress label</comment>
</data>
<data name="Scan_Button_Start" xml:space="preserve">
<value>开始采集</value>
<comment>Scan - 开始采集按钮 | Start acquisition button</comment>
</data>
<data name="Scan_Button_Stop" xml:space="preserve">
<value>停止采集</value>
<comment>Scan - 停止采集按钮 | Stop acquisition button</comment>
</data>
<data name="LogViewer_StatusTotal" xml:space="preserve">
<value>共 {0} 条日志</value>
<comment>LogViewer - 状态栏总数 | Status bar total count</comment>
</data>
<data name="LogViewer_StatusFiltered" xml:space="preserve">
<value>共 {0} 条日志,过滤后 {1} 条</value>
<comment>LogViewer - 状态栏过滤后 | Status bar filtered count</comment>
</data>
<data name="LogViewer_Title" xml:space="preserve">
<value>实时日志查看器</value>
<comment>LogViewer - 窗口标题 | Window title</comment>
</data>
<data name="LogViewer_AutoScroll" xml:space="preserve">
<value>自动滚动</value>
<comment>LogViewer - 自动滚动按钮 | Auto-scroll button</comment>
</data>
<data name="LogViewer_ClearLog" xml:space="preserve">
<value>清空日志</value>
<comment>LogViewer - 清空日志按钮 | Clear log button</comment>
</data>
<data name="LogViewer_Filter" xml:space="preserve">
<value>过滤:</value>
<comment>LogViewer - 过滤标签 | Filter label</comment>
</data>
<data name="LogViewer_FilterWatermark" xml:space="preserve">
<value>输入关键词过滤日志...</value>
<comment>LogViewer - 过滤水印 | Filter watermark</comment>
</data>
<data name="LogViewer_LevelFilter" xml:space="preserve">
<value>级别筛选:</value>
<comment>LogViewer - 级别筛选标签 | Level filter label</comment>
</data>
<data name="LogViewer_ColTime" xml:space="preserve">
<value>时间</value>
<comment>LogViewer - 时间列头 | Time column header</comment>
</data>
<data name="LogViewer_ColLevel" xml:space="preserve">
<value>级别</value>
<comment>LogViewer - 级别列头 | Level column header</comment>
</data>
<data name="LogViewer_ColSource" xml:space="preserve">
<value>来源</value>
<comment>LogViewer - 来源列头 | Source column header</comment>
</data>
<data name="LogViewer_ColMessage" xml:space="preserve">
<value>消息</value>
<comment>LogViewer - 消息列头 | Message column header</comment>
</data>
<data name="LogViewer_MaxLines" xml:space="preserve">
<value>最大行数:</value>
<comment>LogViewer - 最大行数标签 | Max lines label</comment>
</data>
<data name="PdfViewer_Title" xml:space="preserve">
<value>PDF 阅读器</value>
<comment>PdfViewer - 窗口标题 | Window title</comment>
</data>
<data name="PdfViewer_TitleWithFile" xml:space="preserve">
<value>PDF 阅读器 - {0}</value>
<comment>PdfViewer - 带文件名的窗口标题 | Window title with file name</comment>
</data>
<data name="PdfViewer_LoadSuccess" xml:space="preserve">
<value>PDF 文件加载成功:{0}{1} 页)</value>
<comment>PdfViewer - 加载成功日志 | Load success log</comment>
</data>
<data name="PdfViewer_LoadFailed" xml:space="preserve">
<value>PDF 文件加载失败</value>
<comment>PdfViewer - 加载失败日志 | Load failed log</comment>
</data>
<data name="PdfViewer_PrintSuccess" xml:space="preserve">
<value>打印任务已提交:{0} → {1}</value>
<comment>PdfViewer - 打印成功日志 | Print success log</comment>
</data>
<data name="PdfViewer_PrintFailed" xml:space="preserve">
<value>打印失败</value>
<comment>PdfViewer - 打印失败日志 | Print failed log</comment>
</data>
<data name="PdfViewer_PrinterNotFound" xml:space="preserve">
<value>打印机未找到:{0}</value>
<comment>PdfViewer - 打印机未找到 | Printer not found</comment>
</data>
</root>
+378
View File
@@ -0,0 +1,378 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="App_Title" xml:space="preserve">
<value>XplorePlane X射線檢測系統</value>
</data>
<data name="Menu_File" xml:space="preserve">
<value>檔案</value>
</data>
<data name="Menu_Settings" xml:space="preserve">
<value>設定</value>
</data>
<data name="Button_OK" xml:space="preserve">
<value>確定</value>
</data>
<data name="Button_Cancel" xml:space="preserve">
<value>取消</value>
</data>
<data name="Language_ZhCN" xml:space="preserve">
<value>簡體中文</value>
</data>
<data name="Language_ZhTW" xml:space="preserve">
<value>繁體中文</value>
</data>
<data name="Language_EnUS" xml:space="preserve">
<value>English</value>
</data>
<data name="Settings_Language" xml:space="preserve">
<value>語言設定</value>
</data>
<data name="Settings_Language_Description" xml:space="preserve">
<value>選擇您偏好的顯示語言</value>
</data>
<data name="Settings_Language_RestartNotice" xml:space="preserve">
<value>語言切換將在下次啟動應用程式時生效。</value>
</data>
<data name="Button_Apply" xml:space="preserve">
<value>套用</value>
</data>
<data name="Button_Close" xml:space="preserve">
<value>關閉</value>
</data>
<data name="Button_Save" xml:space="preserve">
<value>儲存</value>
</data>
<data name="Button_Delete" xml:space="preserve">
<value>刪除</value>
</data>
<data name="Button_Edit" xml:space="preserve">
<value>編輯</value>
</data>
<data name="Button_Add" xml:space="preserve">
<value>新增</value>
</data>
<data name="Button_Refresh" xml:space="preserve">
<value>重新整理</value>
</data>
<data name="Button_Search" xml:space="preserve">
<value>搜尋</value>
</data>
<data name="Button_Reset" xml:space="preserve">
<value>重設</value>
</data>
<data name="Status_Ready" xml:space="preserve">
<value>就緒</value>
</data>
<data name="Status_Loading" xml:space="preserve">
<value>載入中...</value>
</data>
<data name="Status_Saving" xml:space="preserve">
<value>儲存中...</value>
</data>
<data name="Status_Processing" xml:space="preserve">
<value>處理中...</value>
</data>
<data name="Status_Success" xml:space="preserve">
<value>成功</value>
</data>
<data name="Status_Failed" xml:space="preserve">
<value>失敗</value>
</data>
<data name="Status_Error" xml:space="preserve">
<value>錯誤</value>
</data>
<data name="Status_Warning" xml:space="preserve">
<value>警告</value>
</data>
<data name="Status_Connected" xml:space="preserve">
<value>已連線</value>
</data>
<data name="Status_Disconnected" xml:space="preserve">
<value>已中斷連線</value>
</data>
<data name="Welcome_Message" xml:space="preserve">
<value>歡迎使用 XplorePlane X射線檢測系統</value>
</data>
<data name="Message_OperationSuccess" xml:space="preserve">
<value>操作成功完成</value>
</data>
<data name="Message_OperationFailed" xml:space="preserve">
<value>操作失敗</value>
</data>
<data name="Message_ConfirmDelete" xml:space="preserve">
<value>確定要刪除嗎?</value>
</data>
<data name="Message_UnsavedChanges" xml:space="preserve">
<value>有未儲存的變更,是否儲存?</value>
</data>
<data name="Message_InvalidInput" xml:space="preserve">
<value>輸入無效,請檢查後重試</value>
</data>
<data name="Message_ConnectionLost" xml:space="preserve">
<value>連線已中斷</value>
</data>
<data name="Message_RestartRequired" xml:space="preserve">
<value>語言設定已儲存,請重新啟動應用程式以套用新語言。</value>
</data>
<data name="Menu_View" xml:space="preserve">
<value>檢視</value>
</data>
<data name="Menu_Tools" xml:space="preserve">
<value>工具</value>
</data>
<data name="Menu_Help" xml:space="preserve">
<value>說明</value>
</data>
<data name="Menu_Exit" xml:space="preserve">
<value>結束</value>
</data>
<data name="Menu_About" xml:space="preserve">
<value>關於</value>
</data>
<data name="Dialog_Confirmation" xml:space="preserve">
<value>確認</value>
</data>
<data name="Dialog_Information" xml:space="preserve">
<value>資訊</value>
</data>
<data name="Dialog_Warning" xml:space="preserve">
<value>警告</value>
</data>
<data name="Dialog_Error" xml:space="preserve">
<value>錯誤</value>
</data>
<data name="Dialog_Notice" xml:space="preserve">
<value>提示</value>
</data>
<data name="Settings_Language_SavedRestartRequired" xml:space="preserve">
<value>語言設定已儲存,請重新啟動應用程式以套用新語言。</value>
</data>
<data name="Settings_Language_SwitchFailed" xml:space="preserve">
<value>語言切換失敗:{0}</value>
</data>
<data name="Scan_Text_ScanMode" xml:space="preserve">
<value>採集模式:</value>
<comment>Scan - 採集模式標籤 | Scan mode label</comment>
</data>
<data name="Scan_Text_FrameMerge" xml:space="preserve">
<value>幀合併:</value>
<comment>Scan - 幀合併標籤 | Frame merge label</comment>
</data>
<data name="Scan_Text_Nums" xml:space="preserve">
<value>採集張數:</value>
<comment>Scan - 採集張數標籤 | Acquisition count label</comment>
</data>
<data name="Scan_Text_Angles" xml:space="preserve">
<value>旋轉角度:</value>
<comment>Scan - 旋轉角度標籤 | Rotation angle label</comment>
</data>
<data name="Scan_Text_Progress" xml:space="preserve">
<value>採集進度:</value>
<comment>Scan - 採集進度標籤 | Acquisition progress label</comment>
</data>
<data name="Scan_Button_Start" xml:space="preserve">
<value>開始採集</value>
<comment>Scan - 開始採集按鈕 | Start acquisition button</comment>
</data>
<data name="Scan_Button_Stop" xml:space="preserve">
<value>停止採集</value>
<comment>Scan - 停止採集按鈕 | Stop acquisition button</comment>
</data>
<data name="LogViewer_StatusTotal" xml:space="preserve">
<value>共 {0} 筆日誌</value>
<comment>LogViewer - 狀態列總數 | Status bar total count</comment>
</data>
<data name="LogViewer_StatusFiltered" xml:space="preserve">
<value>共 {0} 筆日誌,篩選後 {1} 筆</value>
<comment>LogViewer - 狀態列篩選後 | Status bar filtered count</comment>
</data>
<data name="LogViewer_Title" xml:space="preserve">
<value>即時日誌檢視器</value>
<comment>LogViewer - 視窗標題 | Window title</comment>
</data>
<data name="LogViewer_AutoScroll" xml:space="preserve">
<value>自動捲動</value>
<comment>LogViewer - 自動捲動按鈕 | Auto-scroll button</comment>
</data>
<data name="LogViewer_ClearLog" xml:space="preserve">
<value>清空日誌</value>
<comment>LogViewer - 清空日誌按鈕 | Clear log button</comment>
</data>
<data name="LogViewer_Filter" xml:space="preserve">
<value>篩選:</value>
<comment>LogViewer - 篩選標籤 | Filter label</comment>
</data>
<data name="LogViewer_FilterWatermark" xml:space="preserve">
<value>輸入關鍵詞篩選日誌...</value>
<comment>LogViewer - 篩選浮水印 | Filter watermark</comment>
</data>
<data name="LogViewer_LevelFilter" xml:space="preserve">
<value>級別篩選:</value>
<comment>LogViewer - 級別篩選標籤 | Level filter label</comment>
</data>
<data name="LogViewer_ColTime" xml:space="preserve">
<value>時間</value>
<comment>LogViewer - 時間欄頭 | Time column header</comment>
</data>
<data name="LogViewer_ColLevel" xml:space="preserve">
<value>級別</value>
<comment>LogViewer - 級別欄頭 | Level column header</comment>
</data>
<data name="LogViewer_ColSource" xml:space="preserve">
<value>來源</value>
<comment>LogViewer - 來源欄頭 | Source column header</comment>
</data>
<data name="LogViewer_ColMessage" xml:space="preserve">
<value>訊息</value>
<comment>LogViewer - 訊息欄頭 | Message column header</comment>
</data>
<data name="LogViewer_MaxLines" xml:space="preserve">
<value>最大行數:</value>
<comment>LogViewer - 最大行數標籤 | Max lines label</comment>
</data>
<data name="PdfViewer_Title" xml:space="preserve">
<value>PDF 閱讀器</value>
<comment>PdfViewer - 視窗標題 | Window title</comment>
</data>
<data name="PdfViewer_TitleWithFile" xml:space="preserve">
<value>PDF 閱讀器 - {0}</value>
<comment>PdfViewer - 帶檔案名稱的視窗標題 | Window title with file name</comment>
</data>
<data name="PdfViewer_LoadSuccess" xml:space="preserve">
<value>PDF 檔案載入成功:{0}{1} 頁)</value>
<comment>PdfViewer - 載入成功日誌 | Load success log</comment>
</data>
<data name="PdfViewer_LoadFailed" xml:space="preserve">
<value>PDF 檔案載入失敗</value>
<comment>PdfViewer - 載入失敗日誌 | Load failed log</comment>
</data>
<data name="PdfViewer_PrintSuccess" xml:space="preserve">
<value>列印任務已提交:{0} → {1}</value>
<comment>PdfViewer - 列印成功日誌 | Print success log</comment>
</data>
<data name="PdfViewer_PrintFailed" xml:space="preserve">
<value>列印失敗</value>
<comment>PdfViewer - 列印失敗日誌 | Print failed log</comment>
</data>
<data name="PdfViewer_PrinterNotFound" xml:space="preserve">
<value>印表機未找到:{0}</value>
<comment>PdfViewer - 印表機未找到 | Printer not found</comment>
</data>
</root>