/*
  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.";

/* 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 look up a valid filesystem path for the external repository group given as %1$@. The project should work correctly, but any files inside of the cited group will be unavailable. */
"ExternalRepositoryResolutionFailed" = "Failed to resolve external repository reference '%1$@' to a full file path. The generated project may have broken file references inside of that group.";

/* 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.";

/* Message to show when the bundle identifier for watchOS app extension %1$@ could not be found and the resulting project will not be able to launch the watch app. */
"SettingWatchExtensionBundleIDFailed" = "Failed to extract bundle identifier for the extension of watchOS app '%1$@'. Xcode will not be able to launch the watch app on the simulator or devices.";

/* 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.";
