<?xml version="1.0" encoding="utf-8"?>
<xliff xmlns="urn:oasis:names:tc:xliff:document:1.2" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="1.2" xsi:schemaLocation="urn:oasis:names:tc:xliff:document:1.2 xliff-core-1.2-transitional.xsd">
  <file datatype="xml" source-language="en" target-language="zh-Hans" original="../PlatformResources.resx">
    <body>
      <trans-unit id="AbortForMaxFailedTestsCapabilityNotAvailable">
        <source>The current test framework does not implement 'IGracefulStopTestExecutionCapability' which is required for '--maximum-failed-tests' feature.</source>
        <target state="translated">当前测试框架未实现 “--maximum-failed-tests” 功能所需的 “IGracefulStopTestExecutionCapability”。</target>
        <note>{Locked="IGracefulStopTestExecutionCapability"}{Locked="--maximum-failed-tests"}</note>
      </trans-unit>
      <trans-unit id="AbortForMaxFailedTestsDescription">
        <source>Extension used to support '--maximum-failed-tests'. When a given failures threshold is reached, the test run will be aborted.</source>
        <target state="translated">用于支持 “--maximum-failed-tests” 的扩展。达到给定失败阈值时，将中止测试运行。</target>
        <note>{Locked="--maximum-failed-tests"}</note>
      </trans-unit>
      <trans-unit id="Aborted">
        <source>Aborted</source>
        <target state="translated">已中止</target>
        <note />
      </trans-unit>
      <trans-unit id="ArtifactPostProcessingDispatcherCommandLineDescription">
        <source>Internal command line for artifact post-processing.</source>
        <target state="translated">用于工件后处理的内部命令行。</target>
        <note />
      </trans-unit>
      <trans-unit id="ArtifactPostProcessingDispatcherDescription">
        <source>Dispatches artifact post-processing jobs selected by dotnet test.</source>
        <target state="translated">调度由 dotnet test 选择的工件后处理作业。</target>
        <note>Do not localize command name {Locked="dotnet test"}.</note>
      </trans-unit>
      <trans-unit id="ArtifactPostProcessingDispatcherDisplayName">
        <source>Artifact post-processing dispatcher</source>
        <target state="translated">工件后处理调度程序</target>
        <note />
      </trans-unit>
      <trans-unit id="ArtifactPostProcessingDispatcherInvalidProcessorOutput">
        <source>The processed artifact must be an existing file under the output directory and cannot overwrite an input artifact.</source>
        <target state="translated">处理后的工件必须是输出目录下的现有文件，且不能覆盖输入项目。</target>
        <note />
      </trans-unit>
      <trans-unit id="ArtifactPostProcessingDispatcherManifestNotFound">
        <source>The artifact post-processing manifest does not exist.</source>
        <target state="translated">工件后处理清单不存在。</target>
        <note />
      </trans-unit>
      <trans-unit id="ArtifactPostProcessingDispatcherManifestOptionDescription">
        <source>Path to the artifact post-processing manifest.</source>
        <target state="translated">工件后处理清单的路径。</target>
        <note />
      </trans-unit>
      <trans-unit id="ArtifactPostProcessingDispatcherProcessorConflict">
        <source>Multiple artifact post-processors match '{0}'. The first registered processor, '{1}', will be used.</source>
        <target state="translated">多个工件后处理器与“{0}”匹配。将使用第一个注册的处理器“{1}”。</target>
        <note>{0} is an artifact kind or file extension. {1} is an extension UID.</note>
      </trans-unit>
      <trans-unit id="ArtifactPostProcessingDispatcherProcessorFailed">
        <source>Artifact post-processor '{0}' failed: {1}</source>
        <target state="translated">工件后处理器“{0}”失败: {1}</target>
        <note>{0} is the processor UID. {1} is the exception message.</note>
      </trans-unit>
      <trans-unit id="ArtifactPostProcessingDispatcherRequiresPipe">
        <source>The artifact post-processing dispatcher requires a dotnet test pipe.</source>
        <target state="translated">工件后处理调度程序需要 dotnet test 管道。</target>
        <note>Do not localize command name {Locked="dotnet test"}.</note>
      </trans-unit>
      <trans-unit id="ArtifactPostProcessingManifestInputMissingPath">
        <source>Artifact post-processing manifest input {0} does not have a path.</source>
        <target state="translated">工件后处理清单输入 {0} 没有路径。</target>
        <note>{0} is the zero-based input index.</note>
      </trans-unit>
      <trans-unit id="ArtifactPostProcessingManifestInputsMustBeArray">
        <source>The artifact post-processing manifest inputs property must be an array.</source>
        <target state="translated">工件后处理清单的 inputs 属性必须为数组。</target>
        <note>Do not localize property name {Locked="inputs"}.</note>
      </trans-unit>
      <trans-unit id="ArtifactPostProcessingManifestInvalid">
        <source>The artifact post-processing manifest must have schemaVersion 1 and an outputDirectory.</source>
        <target state="translated">工件后处理清单必须具有 schemaVersion 1 和 outputDirectory。</target>
        <note>Do not localize property names {Locked="schemaVersion"}{Locked="outputDirectory"}.</note>
      </trans-unit>
      <trans-unit id="ArtifactPostProcessingManifestReadError">
        <source>Cannot read the artifact post-processing manifest: {0}</source>
        <target state="translated">无法读取工件后处理清单: {0}</target>
        <note>{0} is the exception message.</note>
      </trans-unit>
      <trans-unit id="ArtifactPostProcessorCapabilityContainsSeparator">
        <source>Artifact post-processor '{0}' declares capability '{1}', which cannot contain the semicolon separator.</source>
        <target state="translated">工件后处理器“{0}”声明了功能“{1}”，该功能不能包含分号分隔符。</target>
        <note>{0} is the processor UID. {1} is an artifact kind or file extension.</note>
      </trans-unit>
      <trans-unit id="ArtifactPostProcessorCapabilityInvalid">
        <source>Artifact post-processor '{0}' declares invalid capability '{1}'. Kinds cannot be blank, and fallback extensions must be lowercase and start with a dot.</source>
        <target state="translated">工件后处理器“{0}”声明了无效的功能“{1}”。种类不能为空，回退扩展名必须小写并以点开头。</target>
        <note>{0} is the processor UID. {1} is an artifact kind or file extension.</note>
      </trans-unit>
      <trans-unit id="CancellingTestSession">
        <source>Canceling the test session...</source>
        <target state="translated">正在取消测试会话...</target>
        <note />
      </trans-unit>
      <trans-unit id="BrowserPlatformNotSupportedOnOlderFrameworks">
        <source>Browser platform is only supported on .NET 7.0 or greater.</source>
        <target state="translated">仅 .NET 7.0 或更高版本支持浏览器平台。</target>
        <note>{Locked=".NET 7.0"}</note>
      </trans-unit>
      <trans-unit id="CannotCreateTestExecutionFilterErrorMessage">
        <source>Failed to create a test execution filter</source>
        <target state="translated">未能创建测试执行筛选</target>
        <note />
      </trans-unit>
      <trans-unit id="CannotCreateUniqueLogFileErrorMessage">
        <source>Failed to create the diagnostic log file '{0}' after {1} attempts. Last error: {2}</source>
        <target state="translated">未能在 {1} 次尝试后创建诊断日志文件“{0}”。上次错误: {2}</target>
        <note>{0} is the full path of the last log file that was tried. {1} is the number of attempts that were made. {2} is the error message of the last failed attempt.</note>
      </trans-unit>
      <trans-unit id="CannotRemoveEnvironmentVariableAtThisStageErrorMessage">
        <source>Cannot remove environment variables at this stage</source>
        <target state="translated">在此阶段无法移除环境变量</target>
        <note />
      </trans-unit>
      <trans-unit id="CannotRemoveEnvironmentVariableItIsLockedErrorMessage">
        <source>Extension '{0}' tried to remove environment variable '{1}' but it was locked by extension '{2}'</source>
        <target state="translated">扩展 '{0}' 尝试删除环境变量 '{1}'，但已由扩展 '{2}' 锁定</target>
        <note>{0} is the extension display name. {1} is the environment variable name. {2} is the display name of the extension that locked the environment variable.</note>
      </trans-unit>
      <trans-unit id="CannotSetEnvironmentVariableAtThisStageErrorMessage">
        <source>Cannot set environment variables at this stage</source>
        <target state="translated">在此阶段无法设置环境变量</target>
        <note />
      </trans-unit>
      <trans-unit id="CannotSetEnvironmentVariableItIsLockedErrorMessage">
        <source>Extension '{0}' tried to set environment variable '{1}' but it was locked by extension '{2}'</source>
        <target state="translated">扩展 '{0}' 尝试设置环境变量 '{1}'，但已由扩展 '{2}' 锁定</target>
        <note>{0} is the extension display name. {1} is the environment variable name. {2} is the display name of the extension that locked the environment variable.</note>
      </trans-unit>
      <trans-unit id="CannotStartProcessErrorMessage">
        <source>Cannot start process '{0}'</source>
        <target state="translated">无法启动流程 '{0}'</target>
        <note>{0} is the process file name.</note>
      </trans-unit>
      <trans-unit id="CommandLineInvalidArgumentsForOption">
        <source>Option '--{0}' has invalid arguments: {1}</source>
        <target state="translated">选项“--{0}”具有无效参数: {1}</target>
        <note>{0} is the option name without the leading dashes. {1} is the invalid argument value or validation error.</note>
      </trans-unit>
      <trans-unit id="CommandLineInvalidArityErrorMessage">
        <source>Invalid arity, maximum must be greater than minimum</source>
        <target state="translated">arity 无效，最大值必须大于最小值</target>
        <note />
      </trans-unit>
      <trans-unit id="CommandLineInvalidConfiguration">
        <source>Invalid configuration for provider '{0}' (UID: {1}). Error: {2}</source>
        <target state="translated">提供程序“{0}”的配置无效 (UID: {1})。错误: {2}</target>
        <note>{0} is the provider display name. {1} is the provider UID. {2} is the configuration error message.</note>
      </trans-unit>
      <trans-unit id="CommandLineInvalidOptionName">
        <source>Invalid option name '{0}', it must contain only letter and '-' (e.g. my-option)</source>
        <target state="translated">选项名称 '{0}' 无效，必须仅包含字母和“-” (例如 my-option)</target>
        <note>{0} is the invalid option name. {Locked="-"}{Locked="my-option"}</note>
      </trans-unit>
      <trans-unit id="CommandLineOptionExpectsAtLeastArguments">
        <source>Option '--{0}' from provider '{1}' (UID: {2}) expects at least {3} arguments</source>
        <target state="translated">提供程序“{1}” (UID: {2}) 中的选项“--{0}”应需要至少 {3} 个参数</target>
        <note>{0} is the option name without the leading dashes. {1} is the provider display name. {2} is the provider UID. {3} is the minimum number of expected arguments.</note>
      </trans-unit>
      <trans-unit id="CommandLineOptionExpectsAtMostArguments">
        <source>Option '--{0}' from provider '{1}' (UID: {2}) expects at most {3} arguments</source>
        <target state="translated">提供程序“{1}” (UID: {2}) 中的选项“--{0}”应最多需要 {3} 个参数</target>
        <note>{0} is the option name without the leading dashes. {1} is the provider display name. {2} is the provider UID. {3} is the maximum number of expected arguments.</note>
      </trans-unit>
      <trans-unit id="CommandLineOptionExpectsNoArguments">
        <source>Option '--{0}' from provider '{1}' (UID: {2}) expects no arguments</source>
        <target state="translated">提供程序“{1}”(UID: {2}) 中的选项“--{0}”不需要任何参数</target>
        <note>{0} is the option name without the leading dashes. {1} is the provider display name. {2} is the provider UID.</note>
      </trans-unit>
      <trans-unit id="CommandLineOptionIsDeclaredByMultipleProviders">
        <source>Option '--{0}' is declared by multiple providers: '{1}'</source>
        <target state="translated">选项“--{0}”已由多个提供程序声明:“{1}”</target>
        <note>{0} is the option name without the leading dashes. {1} is the list of provider display names.</note>
      </trans-unit>
      <trans-unit id="CommandLineOptionIsDeclaredByMultipleProvidersWorkaround">
        <source>You can fix the previous option clash by overriding the option name using the configuration file</source>
        <target state="translated">可以通过使用配置文件替代选项名称来修复上一个选项冲突</target>
        <note />
      </trans-unit>
      <trans-unit id="CommandLineOptionIsReserved">
        <source>Option '--{0}' is reserved and cannot be used by providers: '{1}'</source>
        <target state="translated">选项“--{0}”是保留的，提供程序不能使用:“{1}”</target>
        <note>{0} is the option name without the leading dashes. {1} is the list of provider display names.</note>
      </trans-unit>
      <trans-unit id="CommandLineOptionIsUsingReservedPrefix">
        <source>Option `--{0}` from provider '{1}' (UID: {2}) is using the reserved prefix '--internal'</source>
        <target state="translated">来自提供程序“{1}” (UID: {2}) 的选项“--{0}”正在使用保留前缀“--internal”</target>
        <note>{0} is the option name without the leading dashes. {1} is the provider display name. {2} is the provider UID. {Locked="--internal"}</note>
      </trans-unit>
      <trans-unit id="CommandLineOptionsNotReady">
        <source>The ICommandLineOptions has not been built yet.</source>
        <target state="translated">ICommandLineOptions 尚未生成。</target>
        <note>{Locked="ICommandLineOptions"}</note>
      </trans-unit>
      <trans-unit id="CommandLineParserFailedToReadResponseFile">
        <source>Failed to read response file '{0}'. {1}.</source>
        <target state="translated">无法读取响应文件“{0}”。{1}</target>
        <note>{0} is the response file path. {1} is the full exception detail (ToString), not just the exception message.</note>
      </trans-unit>
      <trans-unit id="CommandLineParserResponseFileNotFound">
        <source>The response file '{0}' was not found</source>
        <target state="translated">找不到响应文件“{0}”</target>
        <note>{0} is the response file path.</note>
      </trans-unit>
      <trans-unit id="CommandLineParserUnclosedQuoteInCommandLine">
        <source>Unclosed quote in command line</source>
        <target state="translated">命令行中存在未闭合的引号</target>
        <note />
      </trans-unit>
      <trans-unit id="CommandLineParserUnclosedQuoteInResponseFile">
        <source>Unclosed quote in response file at line {0}</source>
        <target state="translated">响应文件的第 {0} 行存在未闭合的引号</target>
        <note>{0} is the line number in the response file.</note>
      </trans-unit>
      <trans-unit id="CommandLineParserUnexpectedArgument">
        <source>Unexpected argument {0}</source>
        <target state="translated">意外的参数 {0}</target>
        <note>{0} is the unexpected command-line argument.</note>
      </trans-unit>
      <trans-unit id="CommandLineParserUnexpectedSingleQuoteInArgument">
        <source>Unexpected single quote in argument: {0}</source>
        <target state="translated">参数中出现意外的单引号: {0}</target>
        <note>{0} is the command-line argument containing the unexpected single quote.</note>
      </trans-unit>
      <trans-unit id="CommandLineParserUnexpectedSingleQuoteInArgumentForOption">
        <source>Unexpected single quote in argument: {0} for option '--{1}'</source>
        <target state="translated">选项“--{1}”的参数 {0} 中出现意外的单引号</target>
        <note>{0} is the command-line argument containing the unexpected single quote. {1} is the option name without the leading dashes.</note>
      </trans-unit>
      <trans-unit id="CommandLineUnknownOption">
        <source>Unknown option '--{0}'</source>
        <target state="translated">未知选项:“--{0}”</target>
        <note>{0} is the unknown option name without the leading dashes.</note>
      </trans-unit>
      <trans-unit id="CommandLineValidationCommandLine">
        <source>Command line: {0}</source>
        <target state="translated">命令行: {0}</target>
        <note>{0} is the command line used to run the application.</note>
      </trans-unit>
      <trans-unit id="CompositeExtensionFactoryInstantiationFailedErrorMessage">
        <source>Failed to create an instance of composite extension '{0}'. See the inner exception for details.</source>
        <target state="translated">未能创建复合扩展 "{0}" 的实例。请参见内部异常了解详细信息。</target>
        <note>{0} is the extension type name.</note>
      </trans-unit>
      <trans-unit id="CompositeExtensionFactoryReturnedNullInstanceErrorMessage">
        <source>The factory for composite extension '{0}' returned a null instance.</source>
        <target state="translated">复合扩展 "{0}" 的工厂返回了一个 null 实例。</target>
        <note>{0} is the extension type name.</note>
      </trans-unit>
      <trans-unit id="CompositeServiceFactoryInstanceAlreadyRegistered">
        <source>The same instance of 'CompositeExtensionFactory' is already registered</source>
        <target state="translated">"CompositeExtensionFactory" 的同一实例已注册</target>
        <note>{Locked="CompositeExtensionFactory"}</note>
      </trans-unit>
      <trans-unit id="CompositeTestExecutionFilterCannotContainNull">
        <source>A composite test execution filter cannot contain a null child filter.</source>
        <target state="translated">复合测试执行筛选器不能包含 null 子筛选器。</target>
        <note />
      </trans-unit>
      <trans-unit id="CompositeTestExecutionFilterRequiresTwoFilters">
        <source>A composite test execution filter requires at least two child filters.</source>
        <target state="translated">复合测试执行筛选器至少需要两个子筛选器。</target>
        <note />
      </trans-unit>
      <trans-unit id="ConfigurationFileNotFound">
        <source>The configuration file '{0}' specified with '--config-file' could not be found.</source>
        <target state="translated">找不到使用 ‘--config-file’ 指定的配置文件“{0}”。</target>
        <note>{0} is the configuration file path. {Locked="--config-file"}</note>
      </trans-unit>
      <trans-unit id="ConfigurationManagerCannotFindDefaultJsonConfigurationErrorMessage">
        <source>Could not find the default json configuration</source>
        <target state="translated">找不到默认 json 配置</target>
        <note />
      </trans-unit>
      <trans-unit id="ConnectingToClientHost">
        <source>Connecting to client host '{0}' port '{1}'</source>
        <target state="translated">正在连接到客户端主机“{0}”的端口“{1}”</target>
        <note>{0} is the client host name. {1} is the client port.</note>
      </trans-unit>
      <trans-unit id="ConsoleTestExecutionFilterFactoryDescription">
        <source>Creates the right test execution filter for console mode</source>
        <target state="translated">为主机模式创建正确的测试执行筛选</target>
        <note />
      </trans-unit>
      <trans-unit id="ConsoleTestExecutionFilterFactoryDisplayName">
        <source>Console test execution filter factory</source>
        <target state="translated">主机测试执行筛选工厂</target>
        <note />
      </trans-unit>
      <trans-unit id="CouldNotFindDirectoryErrorMessage">
        <source>Could not find directory '{0}'</source>
        <target state="translated">找不到目录“{0}”</target>
        <note>{0} is the directory path.</note>
      </trans-unit>
      <trans-unit id="DeprecatedEnvironmentVariableWarning">
        <source>Warning: The environment variable '{0}' is deprecated and will be removed in a future major version. Use '{1}' instead.</source>
        <target state="translated">警告: 环境变量“{0}”已弃用，将在未来的主要版本中移除。请改用“{1}”。</target>
        <note>{0} is the deprecated environment variable name. {1} is the replacement environment variable name.</note>
      </trans-unit>
      <trans-unit id="DiagnosticFileLevelWithAsyncFlush">
        <source>Diagnostic file (level '{0}' with async flush): {1}</source>
        <target state="translated">诊断文件(具有异步刷新的级别“{0}”): {1}</target>
        <note>{0} is the diagnostic log level, such as verbose. {1} is the path to the diagnostic log file.</note>
      </trans-unit>
      <trans-unit id="DiagnosticFileLevelWithFlush">
        <source>Diagnostic file (level '{0}' with sync flush): {1}</source>
        <target state="translated">诊断文件(具有同步刷新的级别“{0}”): {1}</target>
        <note>{0} is the diagnostic log level, such as verbose. {1} is the path to the diagnostic log file.</note>
      </trans-unit>
      <trans-unit id="DiscoveredTestsInAssembly">
        <source>Discovered {0} test(s) in assembly</source>
        <target state="translated">在程序集中发现了 {0} 个测试</target>
        <note>{0} is the number of discovered tests. The sentence is followed by the assembly path.</note>
      </trans-unit>
      <trans-unit id="DiscoveringTestsFrom">
        <source>Discovering tests from</source>
        <target state="translated">正在发现以下位置中的测试</target>
        <note />
      </trans-unit>
      <trans-unit id="DynamicExtensionAssemblyLoadFailedErrorMessage">
        <source>The assembly '{0}' of the extension '{1}' declared in the extension manifest '{2}' could not be loaded.</source>
        <target state="new">The assembly '{0}' of the extension '{1}' declared in the extension manifest '{2}' could not be loaded.</target>
        <note>{0} is the resolved assembly path. {1} is the extension display name. {2} is the manifest file path.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionAssemblyNotFoundErrorMessage">
        <source>The assembly '{0}' of the extension '{1}' declared in the extension manifest '{2}' was not found.</source>
        <target state="new">The assembly '{0}' of the extension '{1}' declared in the extension manifest '{2}' was not found.</target>
        <note>{0} is the resolved assembly path. {1} is the extension display name. {2} is the manifest file path.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionCannotRegisterTestFrameworkErrorMessage">
        <source>The extension '{0}' declared in the extension manifest '{1}' tried to register a test framework. Dynamically loaded extensions must not replace the test framework, because that would silently change which tests run and what results they report.</source>
        <target state="new">The extension '{0}' declared in the extension manifest '{1}' tried to register a test framework. Dynamically loaded extensions must not replace the test framework, because that would silently change which tests run and what results they report.</target>
        <note>{0} is the extension display name. {1} is the manifest file path.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionDuplicateIdConflictErrorMessage">
        <source>The extension id '{0}' is declared twice with different content: '{1}' in the extension manifest '{2}' and '{3}' in the extension manifest '{4}'. Ids must identify the same extension, otherwise one declaration would silently replace the other.</source>
        <target state="new">The extension id '{0}' is declared twice with different content: '{1}' in the extension manifest '{2}' and '{3}' in the extension manifest '{4}'. Ids must identify the same extension, otherwise one declaration would silently replace the other.</target>
        <note>{0} is the extension id. {1} and {3} are 'assembly path' plus 'type full name' descriptions of the conflicting declarations. {2} and {4} are manifest file paths.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionHookFailedErrorMessage">
        <source>The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' failed.</source>
        <target state="new">The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' failed.</target>
        <note>{0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionHookMustNotBeAsyncVoidErrorMessage">
        <source>The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous.</source>
        <target state="new">The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' is declared 'async void'. The platform invokes the hook synchronously, so it would return at its first await: anything it registers after that point would race the test application's own setup, and any failure would be lost. Make the hook synchronous.</target>
        <note>{0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {Locked="'async void'"}</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionHookMustReturnVoidErrorMessage">
        <source>The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost.</source>
        <target state="new">The '{0}.{1}' extension hook from the assembly '{2}' declared in the extension manifest '{3}' returns '{4}' but must return 'void'. The platform invokes the hook synchronously, so a return value is never observed; a returned task in particular would never be awaited, and its registrations and failures would be lost.</target>
        <note>{0} is the full type name. {1} is the hook method name. {2} is the resolved assembly path. {3} is the manifest file path. {4} is the actual return type name. {Locked="'void'"}</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionHookNotFoundErrorMessage">
        <source>The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'.</source>
        <target state="new">The type '{0}' in the assembly '{1}' declared in the extension manifest '{2}' does not expose a 'public static void' method named '{3}' taking an 'ITestApplicationBuilder' and a 'string[]'.</target>
        <note>{0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path. {3} is the expected method name. {Locked="'public static void'"}{Locked="'ITestApplicationBuilder'"}{Locked="'string[]'"}</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestDirectoryNotReadableErrorMessage">
        <source>The directory '{0}' could not be searched for extension manifests, so the platform cannot tell whether any extension had to be loaded. Remove '{1}' from the command line to skip extension manifest discovery.</source>
        <target state="new">The directory '{0}' could not be searched for extension manifests, so the platform cannot tell whether any extension had to be loaded. Remove '{1}' from the command line to skip extension manifest discovery.</target>
        <note>{0} is the directory path. {1} is the command line option that enables the feature.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestDuplicatePropertyErrorMessage">
        <source>The extension manifest '{0}' is invalid: the '{1}' property is declared more than once, so one of the declarations would be discarded.</source>
        <target state="new">The extension manifest '{0}' is invalid: the '{1}' property is declared more than once, so one of the declarations would be discarded.</target>
        <note>{0} is the manifest file path. {1} is the name of the duplicated JSON property.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestEntryDuplicatePropertyErrorMessage">
        <source>The extension manifest '{0}' is invalid: the extension at index {1} declares the '{2}' property more than once, so one of the declarations would be discarded.</source>
        <target state="new">The extension manifest '{0}' is invalid: the extension at index {1} declares the '{2}' property more than once, so one of the declarations would be discarded.</target>
        <note>{0} is the manifest file path. {1} is the zero-based index of the extension. {2} is the name of the duplicated JSON property.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestEntryInvalidAssemblyPathErrorMessage">
        <source>The extension manifest '{0}' is invalid: the assembly path '{2}' of the extension at index {1} is not a valid path.</source>
        <target state="new">The extension manifest '{0}' is invalid: the assembly path '{2}' of the extension at index {1} is not a valid path.</target>
        <note>{0} is the manifest file path. {1} is the zero-based index of the extension. {2} is the invalid assembly path.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestEntryMissingPropertyErrorMessage">
        <source>The extension manifest '{0}' is invalid: the extension at index {1} is missing the required '{2}' property, or its value is empty.</source>
        <target state="new">The extension manifest '{0}' is invalid: the extension at index {1} is missing the required '{2}' property, or its value is empty.</target>
        <note>{0} is the manifest file path. {1} is the zero-based index of the extension. {2} is the name of the missing JSON property.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestEntryNotObjectErrorMessage">
        <source>The extension manifest '{0}' is invalid: the element at index {1} of '{2}' must be a JSON object.</source>
        <target state="new">The extension manifest '{0}' is invalid: the element at index {1} of '{2}' must be a JSON object.</target>
        <note>{0} is the manifest file path. {1} is the zero-based index of the element. {2} is the name of the JSON array property.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestEntryPropertyNotBooleanErrorMessage">
        <source>The extension manifest '{0}' is invalid: the '{2}' property of the extension at index {1} must be a JSON boolean.</source>
        <target state="new">The extension manifest '{0}' is invalid: the '{2}' property of the extension at index {1} must be a JSON boolean.</target>
        <note>{0} is the manifest file path. {1} is the zero-based index of the extension. {2} is the name of the JSON property.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestEntryPropertyNotStringErrorMessage">
        <source>The extension manifest '{0}' is invalid: the '{2}' property of the extension at index {1} must be a JSON string.</source>
        <target state="new">The extension manifest '{0}' is invalid: the '{2}' property of the extension at index {1} must be a JSON string.</target>
        <note>{0} is the manifest file path. {1} is the zero-based index of the extension. {2} is the name of the JSON property.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestExtensionsPropertyNotArrayErrorMessage">
        <source>The extension manifest '{0}' is invalid: the '{1}' property must be a JSON array.</source>
        <target state="new">The extension manifest '{0}' is invalid: the '{1}' property must be a JSON array.</target>
        <note>{0} is the manifest file path. {1} is the name of the JSON property that has the wrong type.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestInvalidJsonErrorMessage">
        <source>The extension manifest '{0}' is not valid JSON. {1}</source>
        <target state="new">The extension manifest '{0}' is not valid JSON. {1}</target>
        <note>{0} is the manifest file path. {1} is the underlying JSON parser error message.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestMissingExtensionsPropertyErrorMessage">
        <source>The extension manifest '{0}' is invalid: the required '{1}' property is missing.</source>
        <target state="new">The extension manifest '{0}' is invalid: the required '{1}' property is missing.</target>
        <note>{0} is the manifest file path. {1} is the name of the missing JSON property.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestReadFailedErrorMessage">
        <source>The extension manifest '{0}' could not be read.</source>
        <target state="new">The extension manifest '{0}' could not be read.</target>
        <note>{0} is the manifest file path.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestRootNotObjectErrorMessage">
        <source>The extension manifest '{0}' is invalid: the top-level JSON element must be an object but '{1}' was found.</source>
        <target state="new">The extension manifest '{0}' is invalid: the top-level JSON element must be an object but '{1}' was found.</target>
        <note>{0} is the manifest file path. {1} is the JSON value kind that was found.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionManifestTrailingContentErrorMessage">
        <source>Unexpected content after the top-level JSON object.</source>
        <target state="new">Unexpected content after the top-level JSON object.</target>
        <note>Used as the parser-error detail when a manifest contains text after its closing brace.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionTypeNotFoundErrorMessage">
        <source>The type '{0}' was not found in the assembly '{1}' declared in the extension manifest '{2}'.</source>
        <target state="new">The type '{0}' was not found in the assembly '{1}' declared in the extension manifest '{2}'.</target>
        <note>{0} is the full type name. {1} is the resolved assembly path. {2} is the manifest file path.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionsLoadedEntry">
        <source>  {0} -&gt; {1} ({2}), declared in {3}</source>
        <target state="new">  {0} -&gt; {1} ({2}), declared in {3}</target>
        <note>{0} is the extension display name. {1} is the resolved assembly path. {2} is the full type name of the hook. {3} is the manifest file path.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionsLoadedHeader">
        <source>Dynamically loaded test platform extensions ({0}):</source>
        <target state="new">Dynamically loaded test platform extensions ({0}):</target>
        <note>{0} is the number of extensions that were loaded.</note>
      </trans-unit>
      <trans-unit id="DynamicExtensionsNotSupportedOnCurrentRuntimeErrorMessage">
        <source>The extension manifest '{0}' declares extensions to load, but the current runtime does not support loading assemblies dynamically (for example when published with native AOT). Set the '{1}' property of each extension to 'false', remove the manifest, or remove '{2}' from the command line.</source>
        <target state="new">The extension manifest '{0}' declares extensions to load, but the current runtime does not support loading assemblies dynamically (for example when published with native AOT). Set the '{1}' property of each extension to 'false', remove the manifest, or remove '{2}' from the command line.</target>
        <note>{0} is the manifest file path. {1} is the name of the JSON property that disables an extension. {2} is the command line option that enables the feature. {Locked="'false'"}</note>
      </trans-unit>
      <trans-unit id="EnvironmentVariableProviderFailedWithError">
        <source>Provider '{0}' (UID: {1}) failed with error: {2}</source>
        <target state="translated">提供程序 '{0}' (UID: {1}) 失败，出现错误: {2}</target>
        <note>{0} is the provider display name. {1} is the provider UID. {2} is the error message.</note>
      </trans-unit>
      <trans-unit id="ExceptionDuringCancellationWarningMessage">
        <source>Exception during the cancellation of request id '{0}'</source>
        <target state="translated">取消请求 ID 期间出现异常 '{0}'</target>
        <note>{0} is the request id.</note>
      </trans-unit>
      <trans-unit id="ExitCode">
        <source>Exit code</source>
        <target state="translated">退出代码</target>
        <note />
      </trans-unit>
      <trans-unit id="ExtensionDoesNotImplementGivenInterfaceErrorMessage">
        <source>Extension of type '{0}' is not implementing the required '{1}' interface</source>
        <target state="translated">类型“{0}”的扩展未实现所需的“{1}”接口</target>
        <note>{0} is the extension type name. {1} is the required interface type name.</note>
      </trans-unit>
      <trans-unit id="ExtensionWithSameUidAlreadyRegisteredErrorMessage">
        <source>Extensions with the same UID '{0}' have already been registered. Registered extensions are of types: {1}</source>
        <target state="translated">已注册具有相同 UID“{0}”的扩展。已注册的扩展类型如下: {1}</target>
        <note>{0} is the duplicate extension UID. {1} is the list of registered extension type names.</note>
      </trans-unit>
      <trans-unit id="Failed">
        <source>Failed</source>
        <target state="translated">失败</target>
        <note />
      </trans-unit>
      <trans-unit id="FailedLowercase">
        <source>failed</source>
        <target state="translated">失败</target>
        <note />
      </trans-unit>
      <trans-unit id="FailedToWriteLogToChannelErrorMessage">
        <source>Failed to write the log to the channel. Missed log content:
{0}</source>
        <target state="translated">无法将日志写入通道。遗漏的日志内容: 
{0}</target>
        <note>{0} is the log content that could not be written.</note>
      </trans-unit>
      <trans-unit id="FailedWithErrors">
        <source>failed with {0} error(s)</source>
        <target state="translated">失败并出现 {0} 个错误</target>
        <note>{0} is the number of errors.</note>
      </trans-unit>
      <trans-unit id="FailedWithErrorsAndWarnings">
        <source>failed with {0} error(s) and {1} warning(s)</source>
        <target state="translated">失败，出现 {0} 错误和 {1} 警告</target>
        <note>{0} is the number of errors. {1} is the number of warnings.</note>
      </trans-unit>
      <trans-unit id="FailedWithWarnings">
        <source>failed with {0} warning(s)</source>
        <target state="translated">失败，出现 {0} 警告</target>
        <note>{0} is the number of warnings.</note>
      </trans-unit>
      <trans-unit id="FinishedTestSession">
        <source>Finished test session.</source>
        <target state="translated">已完成测试会话。</target>
        <note />
      </trans-unit>
      <trans-unit id="FromFile">
        <source>from</source>
        <target state="translated">从</target>
        <note>from followed by a file name to point to the file from which test is originating</note>
      </trans-unit>
      <trans-unit id="GlobalValidationOfTestHostEnvironmentVariablesFailedErrorMessage">
        <source>The following 'ITestHostEnvironmentVariableProvider' providers rejected the final environment variables setup:</source>
        <target state="translated">以下 'ITestHostEnvironmentVariableProvider' 提供程序拒绝了最终的环境变量设置:</target>
        <note>{Locked="ITestHostEnvironmentVariableProvider"}</note>
      </trans-unit>
      <trans-unit id="HelpApplicationUsage">
        <source>Usage {0} [option providers] [extension option providers]</source>
        <target state="translated">使用情况 {0} [选项提供程序] [扩展选项提供程序]</target>
        <note>{0} is the application name used in the usage line.</note>
      </trans-unit>
      <trans-unit id="HelpExecuteTestApplication">
        <source>Execute a .NET Test Application.</source>
        <target state="translated">执行 .NET 测试应用。</target>
        <note>{Locked=".NET"}</note>
      </trans-unit>
      <trans-unit id="HelpExtensionOptions">
        <source>Extension options:</source>
        <target state="translated">扩展选项:</target>
        <note />
      </trans-unit>
      <trans-unit id="HelpNoExtensionRegistered">
        <source>    No extension registered.</source>
        <target state="translated">    未注册任何扩展。</target>
        <note />
      </trans-unit>
      <trans-unit id="HelpOptions">
        <source>Options:</source>
        <target state="translated">选项:</target>
        <note />
      </trans-unit>
      <trans-unit id="HelpTestApplicationRunner">
        <source>&lt;test application runner&gt;</source>
        <target state="translated">&lt;test application runner&gt;</target>
        <note>{Locked="&lt;test application runner&gt;"}</note>
      </trans-unit>
      <trans-unit id="InternalLoopAsyncDidNotExitSuccessfullyErrorMessage">
        <source>Method '{0}' did not exit successfully</source>
        <target state="translated">方法“{0}”未成功退出</target>
        <note>{0} is the method name.</note>
      </trans-unit>
      <trans-unit id="InvalidCommandLineArguments">
        <source>Invalid command line arguments:</source>
        <target state="translated">无效的命令行参数:</target>
        <note />
      </trans-unit>
      <trans-unit id="JsonCommandLineOptionIsBootstrapOnlyErrorMessage">
        <source>The option '--{0}' is read during platform bootstrap (before the testconfig.json file is loaded) and must therefore be passed on the command line rather than declared under 'commandLineOptions' in testconfig.json.</source>
        <target state="translated">系统会在平台启动时(在加载 testconfig.json 文件前)读取选项“--{0}”，因此必须通过命令行传递，而不能在 testconfig.json 的 "commandLineOptions" 下声明。</target>
        <note>{0} is the bare bootstrap-only option name without the leading "--" (e.g. config-file, diagnostic, diagnostic-verbosity); the "--" prefix is already in the format string. {Locked="--"}{Locked="commandLineOptions"}{Locked="testconfig.json"}</note>
      </trans-unit>
      <trans-unit id="JsonCommandLineOptionsEntryMustBeScalarOrArrayErrorMessage">
        <source>The entry '{0}' under section '{1}' in the testconfig.json file ('{2}') must be either a scalar value (string, number, boolean) or an array of scalar values. Nested objects are not supported.</source>
        <target state="translated">testconfig.json 文件(“{2}”)中节“{1}”下的条目“{0}”必须为标量值(字符串、数字、布尔)或标量值数组。不支持嵌套对象。</target>
        <note>{0} is the entry name relative to the section (e.g. an option name like 'timeout' or an indexed key like 'timeout:0'). {1} is the section name (commandLineOptions). {2} is the path to the testconfig.json file. {Locked="testconfig.json"}{Locked="commandLineOptions"}{Locked="timeout"}{Locked="timeout:0"}</note>
      </trans-unit>
      <trans-unit id="JsonCommandLineOptionsValidationErrorPrefix">
        <source>In testconfig.json under 'commandLineOptions': {0}</source>
        <target state="translated">在 testconfig.json 的 'commandLineOptions' 下: {0}</target>
        <note>{0} is the underlying validation error message (unknown option, arity mismatch, invalid arguments...). {Locked="testconfig.json"}{Locked="commandLineOptions"}</note>
      </trans-unit>
      <trans-unit id="JsonConfigurationFileParserDuplicateKeyErrorMessage">
        <source>A duplicate key '{0}' was found</source>
        <target state="translated">发现重复的键“{0}”</target>
        <note>{0} is the duplicate JSON key.</note>
      </trans-unit>
      <trans-unit id="JsonConfigurationFileParserTopLevelElementIsNotAnObjectErrorMessage">
        <source>Top-level JSON element must be an object. Instead, '{0}' was found</source>
        <target state="translated">顶级 JSON 元素必须是对象。但是找到了“{0}”</target>
        <note>{0} is the JSON value kind that was found.</note>
      </trans-unit>
      <trans-unit id="JsonConfigurationFileParserUnsupportedTokenErrorMessage">
        <source>Unsupported JSON token '{0}' was found</source>
        <target state="translated">找到不受支持的 JSON 令牌“{0}”</target>
        <note>{0} is the unsupported JSON token type.</note>
      </trans-unit>
      <trans-unit id="JsonConfigurationSectionEntryMustBeScalarErrorMessage">
        <source>The entry '{0}' under section '{1}' in the testconfig.json file ('{2}') must be a scalar string value. Nested objects and arrays are not supported.</source>
        <target state="translated">testconfig.json 文件(“{2}”)中节“{1}”下的条目“{0}”必须是标量字符串值。不支持嵌套对象和数组。</target>
        <note>{0} is the full dotted/colon-separated key. {1} is the section name. {2} is the path to the testconfig.json file. {Locked="testconfig.json"}</note>
      </trans-unit>
      <trans-unit id="JsonConfigurationSectionMustBeAnObjectErrorMessage">
        <source>The '{0}' section in the testconfig.json file ('{1}') must be a JSON object.</source>
        <target state="translated">testconfig.json 文件(“{1}”)中的“{0}”节必须是 JSON 对象。</target>
        <note>{0} is the section name (e.g. environmentVariables). {1} is the path to the testconfig.json file. {Locked="testconfig.json"}{Locked="environmentVariables"}</note>
      </trans-unit>
      <trans-unit id="JsonRpcTcpServerDescription">
        <source>JsonRpc server implementation based on the test platform protocol specification.</source>
        <target state="translated">基于测试平台协议规范的 JsonRpc 服务器实现。</target>
        <note>{Locked="JsonRpc"}</note>
      </trans-unit>
      <trans-unit id="JsonRpcTcpServerToSingleClientDescription">
        <source>JsonRpc server to client handshake, implementation based on the test platform protocol specification.</source>
        <target state="translated">基于测试平台协议规范的 JsonRpc 服务器到客户端握手实现。</target>
        <note>{Locked="JsonRpc"}</note>
      </trans-unit>
      <trans-unit id="LoggerFactoryNotReady">
        <source>The ILoggerFactory has not been built yet.</source>
        <target state="translated">尚未生成 ILoggerFactory。</target>
        <note>{Locked="ILoggerFactory"}</note>
      </trans-unit>
      <trans-unit id="MaxFailedTestsMustBePositive">
        <source>The option '--maximum-failed-tests' must be a positive integer. The value '{0}' is not valid.</source>
        <target state="translated">选项 “--maximum-failed-tests” 必须是正整数。值 '{0}' 无效。</target>
        <note>{0} is the invalid option value. {Locked="--maximum-failed-tests"}</note>
      </trans-unit>
      <trans-unit id="MessageBusNotReady">
        <source>The message bus has not been built yet or is no more usable at this stage.</source>
        <target state="translated">消息总线尚未生成或在此阶段不再可用。</target>
        <note />
      </trans-unit>
      <trans-unit id="MissingClientPortFoJsonRpc">
        <source>Expected --client-port when jsonRpc protocol is used.</source>
        <target state="translated">使用 jsonRpc 协议时应为 --client-port。</target>
        <note>{Locked="--client-port"}{Locked="jsonRpc"}</note>
      </trans-unit>
      <trans-unit id="ActiveTestsRunning_MoreTestsCount">
        <source>and {0} more</source>
        <target state="translated">和其他 {0} 项</target>
        <note>{0} is the number of additional active tests.</note>
      </trans-unit>
      <trans-unit id="ActiveTestsRunning_FullTestsCount">
        <source>{0} tests running</source>
        <target state="translated">正在运行 {0} 测试</target>
        <note>{0} is the number of currently running tests.</note>
      </trans-unit>
      <trans-unit id="NamedPipeDirectoryNotWritableErrorMessage">
        <source>The named pipe directory '{0}' does not exist or is not writable: {1}. Set the '{2}' environment variable to an existing writable directory, or unset it to fall back to the default temporary directory.</source>
        <target state="translated">命名管道目录“{0}”不存在或不可写入: {1}。将“{2}”环境变量设置为现有可写入目录，或取消设置它以回退到默认临时目录。</target>
        <note>{0} is the directory path, {1} is the underlying error message, {2} is the environment variable name. Do not translate the environment variable name.</note>
      </trans-unit>
      <trans-unit id="NamedPipePathTooLongErrorMessage">
        <source>The named pipe path '{0}' is {1} bytes long, which exceeds the maximum of {2} bytes allowed for a Unix domain socket. Use a shorter directory by setting the '{3}' environment variable, or by setting 'TMPDIR' when '{3}' is not set.</source>
        <target state="translated">命名管道路径“{0}”的长度为 {1} 字节，这超过了 Unix 域套接字允许的最大字节数 {2}。通过设置“{3}”环境变量，或在未设置“{3}”时设置 'TMPDIR' 来使用较短的目录。</target>
        <note>{0} is the full pipe path, {1} is its length in bytes, {2} is the maximum allowed length in bytes, {3} is the environment variable name. Do not translate 'TMPDIR' or the environment variable name.</note>
      </trans-unit>
      <trans-unit id="NotAvailable">
        <source>Not available</source>
        <target state="translated">不可用</target>
        <note />
      </trans-unit>
      <trans-unit id="NotFound">
        <source>Not found</source>
        <target state="translated">未找到</target>
        <note />
      </trans-unit>
      <trans-unit id="OnlyOneFilterSupported">
        <source>Passing both '--treenode-filter' and '--filter-uid' is unsupported.</source>
        <target state="translated">不支持同时传递“--treenode-filter”和“--filter-uid”。</target>
        <note>{Locked="--treenode-filter"}{Locked="--filter-uid"}</note>
      </trans-unit>
      <trans-unit id="OnlyOneTestHostLauncherSupported">
        <source>Only one test host launcher can be registered.</source>
        <target state="translated">只能注册一个测试主机启动器。</target>
        <note />
      </trans-unit>
      <trans-unit id="Passed">
        <source>Passed</source>
        <target state="translated">已通过</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineClientHostOptionDescription">
        <source>Specify the hostname of the client.</source>
        <target state="translated">指定客户端的主机名。</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineClientPortOptionDescription">
        <source>Specify the port of the client.</source>
        <target state="translated">指定客户端的端口。</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineConfigFileOptionDescription">
        <source>Specifies a testconfig.json file.</source>
        <target state="translated">指定 testconfig.json 文件。</target>
        <note>{Locked="testconfig.json"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDebugAttachOptionDescription">
        <source>Allows to pause execution in order to attach to the process for debug purposes.</source>
        <target state="translated">允许暂停执行，以便附加到进程以进行调试。</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineDiagnosticFileLoggerSynchronousWriteOptionDescription">
        <source>Force the built-in file logger to write the log synchronously.
Useful for scenario where you don't want to lose any log (i.e. in case of crash).
Note that this is slowing down the test execution.</source>
        <target state="translated">强制内置文件记录器同步写入日志。
适用于不想丢失任何日志的情况(即在故障的情况下)。
请注意，这会减慢测试的执行速度。</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineDiagnosticOptionDescription">
        <source>Enable the diagnostic logging. The default log level is 'Trace'.
The file will be written in the output directory with the name log_[yyMMddHHmmssfff].diag</source>
        <target state="translated">启用诊断日志记录。默认日志级别为 "Trace"。
文件将写入输出目录，名称为 log_[yyMMddHHmmssfff].diag</target>
        <note>{Locked="Trace"}{Locked="log_[yyMMddHHmmssfff].diag"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDiagnosticOptionExpectsSingleArgumentErrorMessage">
        <source>'--diagnostic-verbosity' expects a single level argument ('Trace', 'Debug', 'Information', 'Warning', 'Error', or 'Critical')</source>
        <target state="translated">'--diagnostic-verbosity' 应有单一级别参数 ('Trace', 'Debug', 'Information', 'Warning', 'Error', 或 'Critical')</target>
        <note>{Locked="--diagnostic-verbosity"}{Locked="Trace"}{Locked="Debug"}{Locked="Information"}{Locked="Warning"}{Locked="Error"}{Locked="Critical"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDiagnosticOptionIsMissing">
        <source>'--{0}' requires '--diagnostic' to be provided</source>
        <target state="translated">“--{0}”需要提供“--diagnostic”</target>
        <note>{0} is the option name without the leading dashes. {Locked="--diagnostic"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDiagnosticOutputDirectoryOptionDescription">
        <source>Output directory of the diagnostic logging.
If not specified the file will be generated inside the default 'TestResults' directory.</source>
        <target state="translated">诊断日志记录的输出目录。
如果未指定，则会在默认的 "TestResults" 目录中生成该文件。</target>
        <note>{Locked="TestResults"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDiagnosticOutputFilePrefixOptionDescription">
        <source>Prefix for the log file name that will replace '[log]_.'</source>
        <target state="translated">将替换“[log]_.”的日志文件名的前缀</target>
        <note>{Locked="[log]_."}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDiagnosticVerbosityOptionDescription">
        <source>Define the level of the verbosity for the --diagnostic.
The available values are 'Trace', 'Debug', 'Information', 'Warning', 'Error', and 'Critical'.</source>
        <target state="translated">定义 --diagnostic 的详细程度。
可用值为 "Trace"、"Debug"、"Information"、"Warning"、"Error" 和 "Critical"。</target>
        <note>{Locked="--diagnostic"}{Locked="Trace"}{Locked="Debug"}{Locked="Information"}{Locked="Warning"}{Locked="Error"}{Locked="Critical"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDiscoverTestsInvalidArgument">
        <source>'--list-tests' received unexpected value '{0}'. Supported values are: {1}.</source>
        <target state="translated">"--list-tests" 收到意外值 "{0}"。支持的值为: {1}。</target>
        <note>{0} is the unexpected option value. {1} is the comma-separated list of supported values. {Locked="--list-tests"}{Locked="text"}{Locked="json"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDiscoverTestsOptionDescription">
        <source>List available tests.
Optionally accepts 'text' (the default human-readable output) or 'json' to print the discovered tests as a JSON document on standard output.</source>
        <target state="translated">列出可用的测试。
(可选)接受 "text"(默认的人类可读输出)或 "json"，以便将发现的测试作为 JSON 文档打印到标准输出。</target>
        <note>{Locked="text"}{Locked="json"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDotnetTestCliRequiresPipe">
        <source>'--server {0}' requires '--{1}' to be specified.</source>
        <target state="translated">“--server {0}”需要指定“--{1}”。</target>
        <note>{0} is the server protocol value. {1} is the required option name without the leading dashes. {Locked="--server"}{Locked="dotnettestcli"}{Locked="dotnet-test-pipe"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDotnetTestCliRequiresTransport">
        <source>'--server dotnettestcli' requires either '--dotnet-test-pipe' or '--dotnet-test-transport http'.</source>
        <target state="translated">"--server dotnettestcli" 需要 "--dotnet-test-pipe" 或 "--dotnet-test-transport http"。</target>
        <note>{Locked="--server dotnettestcli"}{Locked="--dotnet-test-pipe"}{Locked="--dotnet-test-transport http"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDotnetTestHttpEndpointInvalid">
        <source>'--dotnet-test-http-endpoint' requires an absolute HTTPS URL, or an HTTP loopback URL, without user information, query, or fragment.</source>
        <target state="translated">"--dotnet-test-http-endpoint" 需要一个绝对 HTTPS URL，或一个 HTTP 回环 URL，且不能包含用户信息、查询或片段。</target>
        <note>{Locked="--dotnet-test-http-endpoint"}{Locked="HTTP"}{Locked="HTTPS"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDotnetTestHttpEndpointOptionDescription">
        <source>Specifies the authenticated HTTP endpoint for the dotnet test protocol.</source>
        <target state="translated">为 dotnet test 协议指定经过身份验证的 HTTP 终结点。</target>
        <note>{Locked="HTTP"}{Locked="dotnet test"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDotnetTestHttpOptionsRequireTransport">
        <source>The dotnet test HTTP endpoint and token options require '--dotnet-test-transport http'.</source>
        <target state="translated">dotnet test HTTP 终结点和令牌选项需要使用 "--dotnet-test-transport http"。</target>
        <note>{Locked="dotnet test"}{Locked="HTTP"}{Locked="--dotnet-test-transport http"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDotnetTestHttpRequiresEndpointAndToken">
        <source>'--dotnet-test-transport http' requires both '--dotnet-test-http-endpoint' and '--dotnet-test-http-token'.</source>
        <target state="translated">"--dotnet-test-transport http" 需要同时指定 "--dotnet-test-http-endpoint" 和 "--dotnet-test-http-token"。</target>
        <note>{Locked="--dotnet-test-transport http"}{Locked="--dotnet-test-http-endpoint"}{Locked="--dotnet-test-http-token"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDotnetTestHttpTokenInvalid">
        <source>'--dotnet-test-http-token' requires a non-empty valid bearer token without whitespace or control characters.</source>
        <target state="translated">"--dotnet-test-http-token" 需要一个非空的有效持有者令牌，且不能包含空白字符或控制字符。</target>
        <note>{Locked="--dotnet-test-http-token"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDotnetTestHttpTokenOptionDescription">
        <source>Specifies the per-run HTTP bearer token for the dotnet test protocol.</source>
        <target state="translated">指定 dotnet test 协议每次运行的 HTTP 持有者令牌。</target>
        <note>{Locked="HTTP"}{Locked="dotnet test"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDotnetTestPipe">
        <source>dotnet test pipe.</source>
        <target state="translated">dotnet test 管道。</target>
        <note>{Locked="dotnet test"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDotnetTestTransportConflict">
        <source>The dotnet test named-pipe and HTTP transports cannot be selected together.</source>
        <target state="translated">不能同时选择 dotnet test 命名管道和 HTTP 传输。</target>
        <note>{Locked="dotnet test"}{Locked="HTTP"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDotnetTestTransportInvalid">
        <source>'--dotnet-test-transport' received unexpected value '{0}'. Supported values are: {1}.</source>
        <target state="translated">"--dotnet-test-transport" 收到意外值“{0}”。支持的值为: {1}。</target>
        <note>{0} is the unexpected transport value. {1} is the comma-separated list of supported transport values. {Locked="--dotnet-test-transport"}{Locked="pipe"}{Locked="http"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineDotnetTestTransportOptionDescription">
        <source>Selects the pre-launch transport for the dotnet test protocol.</source>
        <target state="translated">为 dotnet test 协议选择预启动传输。</target>
        <note>{Locked="dotnet test"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineEnableDynamicExtensionsOptionDescription">
        <source>Enable loading test platform extensions declared by '*.testingplatformextensions.json' manifests found next to the test application. Disabled by default.</source>
        <target state="new">Enable loading test platform extensions declared by '*.testingplatformextensions.json' manifests found next to the test application. Disabled by default.</target>
        <note>{Locked="'*.testingplatformextensions.json'"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineExitOnProcessExitInvalidDependentProcess">
        <source>Invalid PID '{0}'
{1}</source>
        <target state="translated">无效的 PID“{0}”
{1}</target>
        <note>{0} is the invalid process ID. {1} is the exception message.</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineExitOnProcessExitNotSupportedInBrowser">
        <source>The '--exit-on-process-exit' option is not supported in browser environments.</source>
        <target state="translated">浏览器环境不支持‘--exit-on-process-exit’选项。</target>
        <note>{Locked="--exit-on-process-exit"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineExitOnProcessExitOptionDescription">
        <source>Exit the test process if dependent process exits. PID must be provided.</source>
        <target state="translated">如果从属进程退出，则退出测试进程。必须提供 PID。</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineExitOnProcessExitSingleArgument">
        <source>'--{0}' expects a single int PID argument</source>
        <target state="translated">“--{0}”需要单个 int PID 参数</target>
        <note>{0} is the option name without the leading dashes.</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineFilterUidOptionDescription">
        <source>Provides a list of test node UIDs to filter by.</source>
        <target state="translated">提供用作筛选依据的测试节点 UID 列表。</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineHelpOptionDescription">
        <source>Show the command line help.</source>
        <target state="translated">显示命令行帮助。</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineIgnoreExitCodeOptionDescription">
        <source>Do not report a non-successful exit value for the specified exit codes.
For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases.
For more information about exit codes, see https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes.</source>
        <target state="new">Do not report a non-successful exit value for the specified exit codes.
For example, '--ignore-exit-code 8;9' ignores exit codes 8 and 9 and returns 0 in those cases.
For more information about exit codes, see https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes.</target>
        <note>{Locked="'--ignore-exit-code 8;9'"} {Locked="https://learn.microsoft.com/dotnet/core/testing/microsoft-testing-platform-troubleshooting#exit-codes"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineInfoOptionDescription">
        <source>Display .NET test application information.</source>
        <target state="translated">显示 .NET 测试应用程序信息。</target>
        <note>{Locked=".NET"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineMaxFailedTestsOptionDescription">
        <source>Specifies a maximum number of test failures that, when exceeded, will abort the test run.</source>
        <target state="translated">指定超过测试失败数后将中止测试运行的最大数目。</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineMinimumExpectedTestsIncompatibleDiscoverTests">
        <source>'--list-tests' and '--minimum-expected-tests' are incompatible options</source>
        <target state="translated">“--list-tests”和“--minimum-expected-tests”是不兼容的选项</target>
        <note>{Locked="--list-tests"}{Locked="--minimum-expected-tests"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineMinimumExpectedTestsOptionDescription">
        <source>Specifies the minimum number of tests that are expected to run.</source>
        <target state="translated">指定预期运行的最小测试数。</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineMinimumExpectedTestsOptionSingleArgument">
        <source>'--minimum-expected-tests' expects a single non-zero positive integer value
(e.g. '--minimum-expected-tests 10')</source>
        <target state="translated">"--minimum-expected-tests" 应有单个非零正整数值
(例如 "--minimum-expected-tests 10")</target>
        <note>{Locked="--minimum-expected-tests"}{Locked="--minimum-expected-tests 10"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineNoBannerOptionDescription">
        <source>Do not display the startup banner, the copyright message or the telemetry banner.</source>
        <target state="translated">请勿显示启动横幅、版权信息或遥测横幅。</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLinePipeTransportNotSupportedOnBrowser">
        <source>The dotnet test named-pipe transport is not supported on browser-wasm. Use '--dotnet-test-transport http'.</source>
        <target state="translated">browser-wasm 上不支持 dotnet test 命名管道传输。请使用 "--dotnet-test-transport http"。</target>
        <note>{Locked="dotnet test"}{Locked="browser-wasm"}{Locked="--dotnet-test-transport http"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLinePipeTransportNotSupportedOnWasi">
        <source>The dotnet test named-pipe transport is not supported on wasi-wasm. Use '--dotnet-test-transport http'.</source>
        <target state="translated">wasi-wasm 上不支持 dotnet test 命名管道传输。请使用 "--dotnet-test-transport http"。</target>
        <note>{Locked="dotnet test"}{Locked="wasi-wasm"}{Locked="--dotnet-test-transport http"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLinePortOptionDescription">
        <source>Specify the port of the server.</source>
        <target state="translated">指定服务器的端口。</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLinePortOptionSingleArgument">
        <source>'--{0}' expects a single valid port as argument</source>
        <target state="translated">“--{0}”应有单一有效端口作为参数</target>
        <note>{0} is the option name without the leading dashes.</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineProviderDescription">
        <source>Microsoft Testing Platform command line provider</source>
        <target state="translated">Microsoft 测试平台命令行提供程序</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineProviderDisplayName">
        <source>Platform command line provider</source>
        <target state="translated">平台命令行提供程序</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineResultDirectoryOptionDescription">
        <source>The directory where the test results are going to be placed.
If the specified directory doesn't exist, it's created.
The default is TestResults in the directory that contains the test application.</source>
        <target state="translated">将要放置测试结果的目录。
如果指定的目录不存在，则创建该目录。
默认值是包含测试应用程序的目录中的 TestResults。</target>
        <note>{Locked="TestResults"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineServerInvalidArgument">
        <source>'--server' received unexpected value '{0}'. Supported values are: {1}.</source>
        <target state="translated">"--server" 收到意外值“{0}”。支持的值为: {1}。</target>
        <note>{0} is the unexpected protocol value. {1} is the comma-separated list of supported protocol values. {Locked="--server"}{Locked="jsonrpc"}{Locked="dotnettestcli"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineServerOptionDescription">
        <source>Enable the server mode.</source>
        <target state="translated">启用服务器模式。</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineSkipBuildersNumberCheckOptionDescription">
        <source>For testing purposes</source>
        <target state="translated">用于测试目的</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineTestHostControllerPIDOptionDescription">
        <source>Eventual parent test host controller PID.</source>
        <target state="translated">最终父测试主机控制器 PID。</target>
        <note />
      </trans-unit>
      <trans-unit id="PlatformCommandLineTimeoutArgumentErrorMessage">
        <source>'timeout' option should have one argument as a time value with an explicit unit suffix and a positive numeric value within the supported range (up to ~49.7 days). Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'.</source>
        <target state="new">'timeout' option should have one argument as a time value with an explicit unit suffix and a positive numeric value within the supported range (up to ~49.7 days). Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'.</target>
        <note>{Locked="'timeout'"}{Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineTimeoutOptionDescription">
        <source>A global test execution timeout.
Takes one argument as a time value with an explicit unit suffix. Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'.</source>
        <target state="new">A global test execution timeout.
Takes one argument as a time value with an explicit unit suffix. Accepted suffixes are 'ms'/'mil(s)'/'millisecond(s)', 's'/'sec(s)'/'second(s)', 'm'/'min(s)'/'minute(s)', 'h'/'hour(s)', and 'd'/'day(s)', e.g. '500ms', '5400s', '90m', '1.5h', '1d'.</target>
        <note>{Locked="'ms'"}{Locked="'mil(s)'"}{Locked="'millisecond(s)'"}{Locked="'s'"}{Locked="'sec(s)'"}{Locked="'second(s)'"}{Locked="'m'"}{Locked="'min(s)'"}{Locked="'minute(s)'"}{Locked="'h'"}{Locked="'hour(s)'"}{Locked="'d'"}{Locked="'day(s)'"}{Locked="'500ms'"}{Locked="'5400s'"}{Locked="'90m'"}{Locked="'1.5h'"}{Locked="'1d'"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineZeroTestsPolicyInvalidArgument">
        <source>Invalid value '{0}' for '--zero-tests-policy'. Valid values are {1}.</source>
        <target state="translated">"--zero-tests-policy" 的值“{0}”无效。有效值为 {1}。</target>
        <note>{Locked="--zero-tests-policy"}</note>
      </trans-unit>
      <trans-unit id="PlatformCommandLineZeroTestsPolicyOptionDescription">
        <source>Specifies how a run that executed no tests is treated.
Valid values are 'allow-skipped' (the default) which counts skipped tests as run, so only a run where no test was found at all fails with exit code 8, and 'strict' which treats skipped tests as not run, so a run where every test was skipped (or no test was found) fails with exit code 8.</source>
        <target state="translated">指定如何处理未执行任何测试的运行。
有效值为 "allow-skipped" (默认值) 和 "strict"。前者将跳过的测试计为已运行，因此只有完全找不到任何测试的运行才会以退出代码 8 失败；后者将跳过的测试视为未运行，因此如果每个测试都被跳过(或找不到任何测试)，运行将以退出代码 8 失败。</target>
        <note>{Locked="strict"}{Locked="allow-skipped"}</note>
      </trans-unit>
      <trans-unit id="PressCtrlCAgainToForceExit">
        <source>Press Ctrl+C again to force exit.</source>
        <target state="translated">再次按 Ctrl+C 强制退出。</target>
        <note>{Locked="Ctrl+C"}</note>
      </trans-unit>
      <trans-unit id="ProcessHasNotYetExitedErrorMessage">
        <source>Process should have exited before we can determine this value</source>
        <target state="translated">在我们确定此值之前，流程应该已退出</target>
        <note />
      </trans-unit>
      <trans-unit id="ReachedMaxFailedTestsMessage">
        <source>Test session is aborting due to reaching failures ('{0}') specified by the '--maximum-failed-tests' option.</source>
        <target state="translated">由于达到“--maximum-failed-tests”选项指定的失败 ('{0}')，测试会话正在中止。</target>
        <note>{0} is the number of max failed tests. {Locked="--maximum-failed-tests"}</note>
      </trans-unit>
      <trans-unit id="RetryFailedAfterTriesErrorMessage">
        <source>Retry failed after {0} times</source>
        <target state="translated">{0} 次之后重试失败</target>
        <note>{0} is the retry count.</note>
      </trans-unit>
      <trans-unit id="RunningTestsFrom">
        <source>Running tests from</source>
        <target state="translated">正在从以下位置运行测试</target>
        <note />
      </trans-unit>
      <trans-unit id="ServerLogMessageDescription">
        <source>This data represents a server log message</source>
        <target state="translated">此数据表示服务器日志消息</target>
        <note />
      </trans-unit>
      <trans-unit id="ServerLogMessageDisplayName">
        <source>Server log message</source>
        <target state="translated">服务器日志消息</target>
        <note />
      </trans-unit>
      <trans-unit id="ServerTestExecutionFilterFactoryDescription">
        <source>Creates the right test execution filter for server mode</source>
        <target state="translated">为服务器模式创建正确的测试执行筛选</target>
        <note />
      </trans-unit>
      <trans-unit id="ServerTestExecutionFilterFactoryDisplayName">
        <source>Server test execution filter factory</source>
        <target state="translated">服务器测试执行筛选工厂</target>
        <note />
      </trans-unit>
      <trans-unit id="ServerTestHostDescription">
        <source>The 'ITestHost' implementation used when running server mode.</source>
        <target state="translated">运行服务器模式时使用的 “ITestHost” 实现。</target>
        <note>{Locked="ITestHost"}</note>
      </trans-unit>
      <trans-unit id="ServerTestHostDisplayName">
        <source>Server mode test host</source>
        <target state="translated">服务器模式测试主机</target>
        <note />
      </trans-unit>
      <trans-unit id="ServiceProviderCannotFindServiceErrorMessage">
        <source>Cannot find service of type '{0}'</source>
        <target state="translated">找不到“{0}”类型的服务</target>
        <note>{0} is the requested service type name.</note>
      </trans-unit>
      <trans-unit id="ServiceProviderServiceAlreadyRegistered">
        <source>Instance of type '{0}' is already registered</source>
        <target state="translated">已注册类型“{0}”的实例</target>
        <note>{0} is the already registered service type name.</note>
      </trans-unit>
      <trans-unit id="ServiceProviderShouldNotRegisterTestFramework">
        <source>Instances of type 'ITestFramework' should not be registered through the service provider but through 'ITestApplicationBuilder.RegisterTestFramework'</source>
        <target state="translated">不应通过服务提供商注册类型为“ITestFramework”的实例，而应通过“ITestApplicationBuilder.RegisterTestFramework”进行注册</target>
        <note>{Locked="ITestFramework"}{Locked="ITestApplicationBuilder.RegisterTestFramework"}</note>
      </trans-unit>
      <trans-unit id="ShutdownProgressStillWaitingPrefix">
        <source>Still waiting for: </source>
        <target state="translated">仍在等待:</target>
        <note>Prefix for the message that lists extensions that have not yet completed their shutdown work. Each entry is formatted as "{DisplayName} ({Phase}, {Seconds}s)" and entries are separated by "; ". {Locked="{DisplayName} ({Phase}, {Seconds}s)"}{Locked="; "}</note>
      </trans-unit>
      <trans-unit id="Skipped">
        <source>Skipped</source>
        <target state="translated">已跳过</target>
        <note />
      </trans-unit>
      <trans-unit id="SkippedLowercase">
        <source>skipped</source>
        <target state="translated">已跳过</target>
        <note />
      </trans-unit>
      <trans-unit id="StackTrace">
        <source>Stack Trace</source>
        <target state="translated">堆栈跟踪</target>
        <note />
      </trans-unit>
      <trans-unit id="StartingTestSession">
        <source>Starting test session.</source>
        <target state="translated">正在启动测试会话。</target>
        <note />
      </trans-unit>
      <trans-unit id="StartingTestSessionWithLogFilePath">
        <source>Starting test session. The log file path is '{0}'.</source>
        <target state="translated">正在启动测试会话。日志文件路径 '{0}'。</target>
        <note>{0} is the log file path.</note>
      </trans-unit>
      <trans-unit id="SucceededLowercase">
        <source>succeeded</source>
        <target state="translated">成功</target>
        <note />
      </trans-unit>
      <trans-unit id="SyncFlushNotSupportedInBrowserErrorMessage">
        <source>Synchronous flush is not supported in browser environments.</source>
        <target state="translated">浏览器环境不支持同步刷新。</target>
        <note />
      </trans-unit>
      <trans-unit id="TEstExecutionFilterFactoryFactoryAlreadySetErrorMessage">
        <source>An 'ITestExecutionFilterFactory' factory is already set</source>
        <target state="translated">已设置“ITestExecutionFilterFactory”工厂</target>
        <note>{Locked="ITestExecutionFilterFactory"}</note>
      </trans-unit>
      <trans-unit id="TelemetryNotice">
        <source>Telemetry
---------
Microsoft Testing Platform collects usage data in order to help us improve your experience. The data is collected by Microsoft and are not shared with anyone.
You can opt-out of telemetry by setting the TESTINGPLATFORM_TELEMETRY_OPTOUT or DOTNET_CLI_TELEMETRY_OPTOUT environment variable to '1' or 'true' using your favorite shell.

Read more about Microsoft Testing Platform telemetry: https://aka.ms/testingplatform/telemetry</source>
        <target state="translated">遥测
---------
Microsoft 测试平台会收集使用数据，帮助我们改善体验。该数据由 Microsoft 收集，不会与任何人共享。
可通过使用喜欢的 shell 将 TESTINGPLATFORM_TELEMETRY_OPTOUT 或 DOTNET_CLI_TELEMETRY_OPTOUT 环境变量设置为 '1' 或 'true' 来选择退出遥测。

阅读有关 Microsoft 测试平台遥测功能的详细信息: https://aka.ms/testingplatform/telemetry</target>
        <note>{Locked="TESTINGPLATFORM_TELEMETRY_OPTOUT"}{Locked="DOTNET_CLI_TELEMETRY_OPTOUT"}{Locked="1"}{Locked="true"}{Locked="https://aka.ms/testingplatform/telemetry"}</note>
      </trans-unit>
      <trans-unit id="TelemetryProviderAlreadySetErrorMessage">
        <source>Telemetry provider is already set</source>
        <target state="translated">已设置遥测提供程序</target>
        <note />
      </trans-unit>
      <trans-unit id="TerminalNoProgressDeprecatedWarning">
        <source>warning: --no-progress is deprecated; use --progress off instead.</source>
        <target state="translated">警告: --no-progress 已弃用；请改用 --progress off。</target>
        <note>{Locked="--no-progress"}{Locked="--progress off"}</note>
      </trans-unit>
      <trans-unit id="TestAdapterInvokerFactoryAlreadySetErrorMessage">
        <source>An 'ITestFrameworkInvoker' factory is already set</source>
        <target state="translated">已设置“ITestFrameworkInvoker”工厂</target>
        <note>{Locked="ITestFrameworkInvoker"}</note>
      </trans-unit>
      <trans-unit id="TestApplicationBuilderApplicationAlreadyRegistered">
        <source>The application has already been built</source>
        <target state="translated">已生成应用程序</target>
        <note />
      </trans-unit>
      <trans-unit id="TestApplicationBuilderFrameworkAdapterFactoryAlreadyRegisteredErrorMessage">
        <source>The test framework adapter factory has already been registered</source>
        <target state="translated">已注册测试框架适配器工厂</target>
        <note />
      </trans-unit>
      <trans-unit id="TestApplicationBuilderTestFrameworkCapabilitiesAlreadyRegistered">
        <source>The test framework capabilities factory has already been registered</source>
        <target state="translated">已注册测试框架功能工厂</target>
        <note />
      </trans-unit>
      <trans-unit id="TestApplicationBuilderTestFrameworkNotRegistered">
        <source>The test framework adapter has not been registered. Use 'ITestApplicationBuilder.RegisterTestFramework' to register it</source>
        <target state="translated">尚未注册测试框架适配器。使用“ITestApplicationBuilder.RegisterTestFramework”注册它</target>
        <note>{Locked="ITestApplicationBuilder.RegisterTestFramework"}</note>
      </trans-unit>
      <trans-unit id="TestApplicationResultDescription">
        <source>Determine the result of the test application execution</source>
        <target state="translated">确定测试应用程序执行的结果</target>
        <note />
      </trans-unit>
      <trans-unit id="TestApplicationResultDisplayName">
        <source>Test application result</source>
        <target state="translated">测试应用程序结果</target>
        <note />
      </trans-unit>
      <trans-unit id="TestApplicationVSTestModeTooManyBuilders">
        <source>VSTest mode only supports a single TestApplicationBuilder per process</source>
        <target state="translated">VSTest 模式仅支持每个进程一个 TestApplicationBuilder</target>
        <note>{Locked="VSTest"}{Locked="TestApplicationBuilder"}</note>
      </trans-unit>
      <trans-unit id="TestConfigurationEnvironmentVariableInvalidNameErrorMessage">
        <source>Environment variable name '{0}' declared in the 'environmentVariables' section of the testconfig.json file is invalid. Names must not contain '=' or null characters.</source>
        <target state="translated">在 testconfig.json 文件的 'environmentVariables' 节中声明的环境变量名称“{0}”无效。名称不得包含 '=' 或 null 字符。</target>
        <note>{0} is the invalid environment variable name. {Locked="environmentVariables"}{Locked="testconfig.json"}{Locked="="}</note>
      </trans-unit>
      <trans-unit id="TestConfigurationEnvironmentVariableNameCannotBeEmptyErrorMessage">
        <source>Environment variable names declared in the 'environmentVariables' section of the testconfig.json file must not be empty.</source>
        <target state="translated">在 testconfig.json 文件的 'environmentVariables' 节中声明的环境变量名称不得为空。</target>
        <note>{Locked="environmentVariables"}{Locked="testconfig.json"}</note>
      </trans-unit>
      <trans-unit id="TestConfigurationEnvironmentVariableProviderDescription">
        <source>Applies environment variables declared in the 'environmentVariables' section of the testconfig.json file to the test host child process.</source>
        <target state="translated">将 testconfig.json 文件 'environmentVariables' 节中声明的环境变量应用于测试主机子进程。</target>
        <note>{Locked="environmentVariables"}{Locked="testconfig.json"}</note>
      </trans-unit>
      <trans-unit id="TestConfigurationEnvironmentVariableProviderDisplayName">
        <source>testconfig.json environment variables provider</source>
        <target state="translated">testconfig.json 环境变量提供程序</target>
        <note>{Locked="testconfig.json"}</note>
      </trans-unit>
      <trans-unit id="TestDiscoverySummary">
        <source>Test discovery summary: found {0} test(s) in {1} assemblies.</source>
        <target state="translated">测试发现摘要: 在 {1} 个程序集中找到 {0} 个测试。</target>
        <note>{0} is the number of discovered tests. {1} is the count of assemblies.</note>
      </trans-unit>
      <trans-unit id="TestExecutionFilterProviderNotSupportedForServer">
        <source>Test execution filter provider '{0}' returned filter type '{1}' for a JSON-RPC server request. Provider constraints are not applied to server requests; return null when TestExecutionFilterContext.Origin is Server.</source>
        <target state="translated">测试执行筛选器提供程序“{0}”为 JSON-RPC 服务器请求返回了筛选器类型“{1}”。提供程序约束不适用于服务器请求；当 TestExecutionFilterContext.Origin 为 Server 时返回 null。</target>
        <note>{0} is the provider UID. {1} is the filter type. {Locked="JSON-RPC"}{Locked="null"}{Locked="TestExecutionFilterContext.Origin"}{Locked="Server"}</note>
      </trans-unit>
      <trans-unit id="TestFrameworkProxyApiShouldNotBeCalled">
        <source>Method '{0}' should not have been called on this proxy object</source>
        <target state="translated">不应对此代理对象调用方法 '{0}'</target>
        <note>{0} is the method name.</note>
      </trans-unit>
      <trans-unit id="TestHostAdapterInvokerFailedTestSessionErrorMessage">
        <source>Test adapter test session failure</source>
        <target state="translated">测试适配器测试会话失败</target>
        <note />
      </trans-unit>
      <trans-unit id="TestHostControllerConnectionInvalidAuthorizedSecurityIdentityErrorMessage">
        <source>The test host launcher '{0}' (UID: {1}) asked to authorize the security identity '{2}' on the test host controller connection, but only the identity of a single sandboxed application (on Windows, a security identifier of the form 'S-1-15-2-...') can be authorized. Users, groups and the catch-all '{3}' security identifier are never granted access.</source>
        <target state="new">The test host launcher '{0}' (UID: {1}) asked to authorize the security identity '{2}' on the test host controller connection, but only the identity of a single sandboxed application (on Windows, a security identifier of the form 'S-1-15-2-...') can be authorized. Users, groups and the catch-all '{3}' security identifier are never granted access.</target>
        <note>{0} is the launcher display name, {1} is the launcher unique identifier, {2} is the rejected security identity, {3} is the well-known 'ALL APPLICATION PACKAGES' security identifier. {Locked="'S-1-15-2-...'"}</note>
      </trans-unit>
      <trans-unit id="TestHostControllerProcessRestartNotSupportedOnWebAssembly">
        <source>Test host controller extensions that require process restart are not supported on browser/WebAssembly platforms.</source>
        <target state="translated">浏览器/WebAssembly 平台不支持需要重启进程的测试主机控制器扩展。</target>
        <note>{Locked="WebAssembly"}</note>
      </trans-unit>
      <trans-unit id="TestProcessDidNotExitGracefullyErrorMessage">
        <source>Test application process didn't exit gracefully, exit code is '{0}'</source>
        <target state="translated">测试应用程序流程未正常退出，退出代码为“{0}”</target>
        <note>{0} is the process exit code.</note>
      </trans-unit>
      <trans-unit id="TimeoutAcquiringSemaphoreErrorMessage">
        <source>Failed to acquire semaphore before timeout of '{0}' seconds</source>
        <target state="translated">在“{0}”秒超时之前获取信号灯失败</target>
        <note>{0} is the timeout in seconds.</note>
      </trans-unit>
      <trans-unit id="TimeoutFlushingLogsErrorMessage">
        <source>Failed to flush logs to log file '{0}' before the timeout of '{1}' seconds. The log file may be incomplete.</source>
        <target state="translated">未能在 {1} 秒(超时)内为日志文件 "{0}" 刷新日志。日志文件可能不完整。</target>
        <note>{0} is the log file path. {1} is the timeout in seconds.</note>
      </trans-unit>
      <trans-unit id="Total">
        <source>Total</source>
        <target state="translated">总计</target>
        <note />
      </trans-unit>
      <trans-unit id="TreeNodeFilterCannotContainSlashCharacterErrorMessage">
        <source>A filter '{0}' should not contain a '/' character</source>
        <target state="translated">筛选“{0}”不应包含“/”字符</target>
        <note>{0} is the filter expression string. {Locked="/"}</note>
      </trans-unit>
      <trans-unit id="TreeNodeFilterDescription">
        <source>Use a tree filter to filter down the tests to execute</source>
        <target state="translated">使用树筛选器筛选要执行的测试</target>
        <note />
      </trans-unit>
      <trans-unit id="TreeNodeFilterEscapeCharacterShouldNotBeLastErrorMessage">
        <source>An escape character should not terminate the filter string '{0}'</source>
        <target state="translated">转义字符不应终止筛选字符串“{0}”</target>
        <note>{0} is the filter expression string.</note>
      </trans-unit>
      <trans-unit id="TreeNodeFilterOnlyLastLevelCanContainMutiLevelWildcardErrorMessage">
        <source>Only the final filter path can contain '**' wildcard</source>
        <target state="translated">只有最终筛选路径可以包含“**”通配符</target>
        <note>{Locked="**"}</note>
      </trans-unit>
      <trans-unit id="TreeNodeFilterOperatorNotAllowedErrorMessage">
        <source>Unexpected operator '&amp;' or '|' within filter expression '{0}'</source>
        <target state="translated">筛选表达式“{0}”中出现意外的运算符“&amp;”或“|”</target>
        <note>{0} is the filter expression string. {Locked="&amp;"}{Locked="|"}</note>
      </trans-unit>
      <trans-unit id="TreeNodeFilterPathShouldStartWithSlashErrorMessage">
        <source>Invalid node path, expected root as first character '{0}'</source>
        <target state="translated">无效节点路径，应将根作为第一个字符“{0}”</target>
        <note>{0} is the first character found in the invalid node path.</note>
      </trans-unit>
      <trans-unit id="TreeNodeFilterUnbalancedFilterErrorMessage">
        <source>Filter expression '{0}' contains an unbalanced number of '{1}' '{2}' operators</source>
        <target state="translated">筛选表达式“{0}”包含数量不平衡的“{1}”“{2}”运算符</target>
        <note>{0} is the filter expression string. {1} and {2} are () or [] operator pairs. {Locked="()"}{Locked="[]"}</note>
      </trans-unit>
      <trans-unit id="TreeNodeFilterUnexpectedSlashOperatorErrorMessage">
        <source>Filter contains an unexpected '/' operator inside a parenthesized expression</source>
        <target state="translated">筛选在带圆括号的表达式中包含意外“/”运算符</target>
        <note>{Locked="/"}</note>
      </trans-unit>
      <trans-unit id="TreeNodeFilterUnexpectedSlashOperatorInPathSegmentErrorMessage">
        <source>Filter contains an unexpected '/' operator inside a parenthesized expression. Filter: '{0}'. To combine alternatives for one path segment, use syntax like '/A/B/C/(X|Y)'.</source>
        <target state="translated">筛选器在括号表达式中包含意外的 "/" 运算符。筛选器:“{0}”。要将某个路径段的替代项组合在一起，请使用类似 "/A/B/C/(X|Y)" 的语法。</target>
        <note>{0} is the filter expression string. Diagnostic thrown by the TreeNodeFilter parser when a '/' is encountered inside a parenthesized alternative such as '/A/(B/C)'. {Locked="/"}{Locked="/A/B/C/(X|Y)"}{Locked="/A/(B/C)"}</note>
      </trans-unit>
      <trans-unit id="UnexpectedCallTelemetryIsDisabledErrorMessage">
        <source>Unexpected telemetry call, the telemetry is disabled.</source>
        <target state="translated">意外的遥测调用，遥测功能已被禁用。</target>
        <note />
      </trans-unit>
      <trans-unit id="UnexpectedExceptionInFileLoggerErrorMessage">
        <source>An unexpected exception occurred in the 'FileLogger' write loop for log file '{0}'. The log file may be incomplete.
{1}</source>
        <target state="translated">日志文件 "{0}" 的 "FileLogger" 写入循环中出现意外异常。日志文件可能不完整。
{1}</target>
        <note>{0} is the log file path. {1} is the exception ToString output. {Locked="FileLogger"}</note>
      </trans-unit>
      <trans-unit id="UnobservedTaskExceptionWarningMessage">
        <source>[ServerTestHost.OnTaskSchedulerUnobservedTaskException] Unhandled exception: {0}</source>
        <target state="translated">[ServerTestHost.OnTaskSchedulerUnobservedTaskException] 未经处理的异常： {0}</target>
        <note>{0} is the exception that was unhandled/unobserved. {Locked="ServerTestHost.OnTaskSchedulerUnobservedTaskException"}</note>
      </trans-unit>
      <trans-unit id="UnsupportedProviderTestExecutionFilter">
        <source>Test execution filter provider '{0}' returned unsupported filter type '{1}'. Providers can return only NopFilter, TestNodeUidListFilter, TreeNodeFilter, or an And CompositeTestExecutionFilter.</source>
        <target state="translated">测试执行筛选器提供程序“{0}”返回了不受支持的筛选器类型“{1}”。提供程序只能返回 NopFilter、TestNodeUidListFilter、TreeNodeFilter 或 And CompositeTestExecutionFilter。</target>
        <note>{0} is the provider UID. {1} is the unsupported filter type. {Locked="NopFilter"}{Locked="TestNodeUidListFilter"}{Locked="TreeNodeFilter"}{Locked="And"}{Locked="CompositeTestExecutionFilter"}</note>
      </trans-unit>
      <trans-unit id="UnsupportedRequestTestExecutionFilter">
        <source>The request contains unsupported test execution filter type '{0}'.</source>
        <target state="translated">请求包含不受支持的测试执行筛选器类型“{0}”。</target>
        <note>{0} is the unsupported filter type.</note>
      </trans-unit>
      <trans-unit id="UnsupportedTestExecutionFilterOperator">
        <source>Only the And test execution filter operator is supported.</source>
        <target state="translated">仅支持 And 测试执行筛选器运算符。</target>
        <note>{Locked="And"}</note>
      </trans-unit>
      <trans-unit id="UnsupportedTestExecutionFilterOperatorValue">
        <source>Test execution filter operator '{0}' is not supported. Only And is supported.</source>
        <target state="translated">不支持测试执行筛选器运算符“{0}”。仅支持 And。</target>
        <note>{0} is the unsupported operator value. {Locked="And"}</note>
      </trans-unit>
      <trans-unit id="WaitDebuggerAttachNotSupportedInBrowserErrorMessage">
        <source>Waiting for debugger to attach (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) is not supported in browser environments.</source>
        <target state="translated">浏览器环境不支持等待调试器附加(TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1)。</target>
        <note>{Locked="TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1"}</note>
      </trans-unit>
      <trans-unit id="WaitDebuggerAttachNotSupportedInWasiErrorMessage">
        <source>Waiting for debugger to attach (TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1) is not supported on wasi.</source>
        <target state="translated">wasi 不支持等待调试程序附加(TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1)。</target>
        <note>{Locked="TESTINGPLATFORM_WAIT_ATTACH_DEBUGGER=1"}{Locked="wasi"}</note>
      </trans-unit>
      <trans-unit id="ZeroTestsRan">
        <source>Zero tests ran</source>
        <target state="translated">运行了零个测试</target>
        <note />
      </trans-unit>
      <trans-unit id="TotalLowercase">
        <source>total</source>
        <target state="translated">总计</target>
        <note />
      </trans-unit>
      <trans-unit id="ChatClientProviderAlreadyRegistered">
        <source>A chat client provider has already been registered.</source>
        <target state="translated">聊天客户端提供程序已被注册。</target>
        <note />
      </trans-unit>
    </body>
  </file>
</xliff>