/*
  Strings for the Tulsi Xcode project generator.
*/

/* Error to show when tulsi_supported_targets_aspect produced data that could not be parsed. The artifact filename is in %1$@, additional information is in %2$@. */
"BazelAspectSupportedTargetParsingFailed" = "Failed to parse information about supported target in '%1$@'. This is a Tulsi or Bazel bug, please report. Debug info: %2$@";

/* Error to show as an alert when the output generated by an aspect failed in some way. Details about the failure are available in the message log. */
"BazelAspectParsingFailedNotification" = "Failed to retrieve information about one or more targets. See the message log for details.";

/* Error to show when the bazel binary cannot be found at the previously saved location %1$@. */
"BazelBinaryNotFound" = "Bazel could not be found at \"%1$@\". Please update the path in the project file.";

/* Message to show when the bazel bin symlink name was not able to be extracted from the workspace. */
"BazelBinSymlinkNameNotFound" = "Was not able to extract the bazel bin symlink name from the workspace. This is a Tulsi or Bazel bug, please report.";

/* Error message for when a Bazel extractor did not complete successfully. Details are logged separately. */
"BazelInfoExtractionFailed" = "Failed to retrieve information about the Bazel workspace. This usually means that the contents of a BUILD file are incorrect or flags are missing. Read the message log carefully for details.";

/* Bazel response XML element %1$@ should have a valid string value but does not. */
"BazelResponseLabelAttributeInvalid" = "Bazel query returned an invalid, non-string convertible list element '%1$@'. This may be a Bazel bug or a BUILD file issue.";

/* Bazel response XML element %1$@ was found but was missing an attribute named %2$@. */
"BazelResponseMissingRequiredAttribute" = "Missing expected attribute named '%12@' on element '%1$@'. This is a Tulsi or Bazel bug, please report.";

/* General error to show when the XML parser returns something other than an NSXMLElement. This should never happen in practice. */
"BazelResponseXMLNonElementType" = "Non element unexpectedly returned for query. This is a Tulsi bug, please report.";

/* Extractor Bazel output failed to be parsed as XML with error %1$@. This may be a Bazel bug or a bad BUILD file. */
"BazelResponseXMLParsingFailed" = "Bazel response XML parsing failed with error '%1$@'. This may be a Bazel bug or a BUILD file issue.";

/* Extracting path info from bazel failed. The exit code is %1$d. */
"BazelWorkspaceInfoQueryFailed" = "Failed to query information about the Bazel workspace. Bazel exited with code %1$d";

/* Bazel 'buildfiles' query failed to extract information. */
"BazelBuildfilesQueryFailed" = "Failed to query information about build files for this Bazel workspace. Skylark files and some BUILD files may be omitted from the project.";

/* Error when parsing a Bazel Build Event for BEP when running Bazel. */
"BazelParseBuildEventFailed" = "Failed to parse a Bazel Build Event. This may be a Tulsi bug, please report. Additional Context: %1$@";

/* Failed to copy an important file resource, the resulting project will most likely be broken. A bug should be reported. */
"CopyingResourceFailed" = "Failed to copy project resource '%1$@' to '%2$@'. The generated project will probably malfunction, please report. Error: %3$@";

/* Failed to create folders for generated artifacts %1$@. The generated Xcode project may need to be reloaded after the first build. */
"CreatingGeneratedArtifactFoldersFailed" = "Failed to pre-create folders for generated artifacts. The generated project may need to be reloaded manually after the first build. Failed paths: %1$@";

/* Provides general information about a Bazel command; a more detailed error may be reported elsewhere. The Bazel command is %1$@, exit code is %2$d, stderr %3$@. */
"DebugInfoForBazelCommand" = "Bazel command info:\n%1$@\nExited with code %2$d\n\n%3$@";

/* Failed to create an important directory. The resulting project will most likely be broken. A bug should be reported. */
"DirectoryCreationFailed" = "Failed to create directory '%1$@'. The generated project will probably malfunction, please report. Error: %2$@";

/* Message to show when the execution root was not able to be extracted from the workspace. */
"ExecutionRootNotFound" = "Was not able to extract the execution root from the workspace. This is a Tulsi or Bazel bug, please report.";

/* Failed to readString from FileLineReader when handling the BEP file. */
"FileLineReaderReadStringFailed" = "Failed to readString from the BEP JSON file. This is a Tulsi or Bazel bug, please report.";

/* Failed to find a watchOS application extension with the given name. The project will not be able to launch the watch app. */
"FindingWatchExtensionFailed" = "Failed to find watchOS extension '%1$@'. The generated project will not able to run the watch app.";

/* Warning to show when a user has selected an XCTest (%2$@) but not its host application (%1$@), resulting in an automated target generation which may have issues. */
"GeneratingTestHost" = "Generating target for test host '%1$@' needed by '%2$@'. Generated targets will not include sources and will use project default options to build.";

/* Message to show when loading a .xccurrentversion file fails. */
"LoadingXCCurrentVersionFailed" = "Failed to determine the current version for a versioned group %1$@. The generated project may malfunction. Error: %2$@";

/* Warning to show when a user has selected an XCTest but not its host application. */
"MissingTestHost" = "Failed to link test target '%1$@' to its host, '%2$@'. This test will not be runnable in the generated Xcode project.";

/* Warning to show when a RuleEntry does not have a DeploymentTarget to be used by the indexer. */
"NoDeploymentTarget" = "Rule Entry for %1$@ has no DeploymentTarget set. Defaulting to iOS 9. This is an unexpected problem and should be reported as a Tulsi bug.";

/* Warning shown when none of the tests of a test suite %1$@ were able to be resolved. */
"TestSuiteHasNoValidTests" = "Failed to resolve any tests for test_suite '%1$@', no scheme will be generated.";

/* Warning shown when a non XCTest %1$@ is included in a test suite %2$@ and will be ignored. */
"TestSuiteIncludesNonXCTest" = "test_suite '%2$@' includes non-xctest '%1$@'. Xcode test schemes cannot include targets of this type so it will be ignored when running the suite.";

/* Warning shown when the test host for a test %1$@ inside test suite %2$@ could not be found. The test will be ignored, but this state is unexpected and should be reported. */
"TestSuiteTestHostResolutionFailed" = "Failed to resolve host for test '%1$@', it will be ignored in test_suite '%2$@'. This is an unexpected problem and should be reported as a Tulsi bug.";

/* Warning shown when a test_suite %1$@ refers to a test label %2$@ that was not resolved and will be ignored */
"TestSuiteUsesUnresolvedTarget" = "Test suite '%1$@' refers to test '%2$@' which failed to load. The test will be ignored when running the suite.";

/* Failure to look up a Bazel target that was expected to be present. The target label is %1$@ */
"UnknownTargetRule" = "Failed to load information for Bazel target '%1$@'. This may be a Bazel bug or a BUILD file issue.";

/* Warning shown when generation of an Xcode scheme failed for build target %1$@ */
"XCSchemeGenerationFailed" = "Failed to resolve target '%1$@', skipping scheme generation.";

/* Warning shown when generating an Xcode schema for target %1$@ which uses unsupported legacy ios_extension rule */
"LegacyIOSExtensionNotSupported" = "iOS extension %1$@ is using legacy packaging rules which is not supported. Please migrate to the new rules.";
