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

/* Error when unable to resolve which RuleEntry is a dep of another based on DeploymentTargets. The target label is in %1$@. */
"AmbiguousRuleEntryReference" = "Unable to resolve proper configuration for target %1$@. Do you have a root-level library target set as a build target? Please check your Tulsi Config settings to make sure that no library targets are selected.";

/* 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 '%2$@' 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$@";

/* Warning when a failure occurred while attempting to bootstrap the user's LLDBInit file. */
"BootstrapLLDBInitFailed" = "Failed to bootstrap LLDBInit file, bootstrapping script returned error code %1$d, %2$@.";

/* Warning when a failure occurred while cleaning dSYMs in the SQLite store used by the DBGShellCommands script. */
"CleanCachedDsymsFailed" = "Failed to clean cache of dSYMs, clean script returned error code %1$d, %2$@.";

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

/* A RuleEntry that depends on another did not have a DeploymentTarget set. The RuleEntry's label is %1$@, the dep's label is in %2$@. */
"DependentRuleEntryHasNoDeploymentTarget" = "Error resolving RuleEntry dep. Target %1$@ depends on %2$@ yet it does not have a DeploymentTarget set. Please report this as a Tulsi bug.";

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

/* We have multiple identical RuleEntries, meaning they have the same BuildLabel and Deployment Target. The RuleEntry's label is %1$@, the DeploymentTarget is in %2$@. */
"DuplicateRuleEntries" = "Multiple entries were found for target %1$@ with a deployment target of %2$@. This may be due to building this target at the top-level as well as a transitive dep of a different top-level target. You may experience some issues with this target in the generated Xcode project. This may be hard to debug, please report.";

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

/* Message to show when unable to extract the default swift version from xcrun. */
"ExtractingDefaultSwiftVersionFailed" = "Unable to extract default swift version from xcrun. Defaulting to swift version %1$@. Additional error context: %2$@.";

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

/* Message to show when we are not able to generate the Python script containing the project's Bazel build settings. */
"GeneratingBazelBuildSettingsFailed" = "Could not generate a script that contains the build settings for the project. This is a Tulsi bug, please report. Additional error context: %1$@";

/* 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 when multiple bundled targets have different minimum OS versions. Platform type in %1$@, context in %2$@. */
"MultiMinOSVersions" = "[ACTION REQUIRED] You have multiple top-level %1$@ bundle targets (e.g. applications or tests) with different minimum %1$@ versions.\nWe advise you to use a single minimum OS version for these targets in order to save Bazel analysis time and Xcode indexing time. You can fix this by setting a single `minimum_os_version` attribute on all of the targets mentioned below:\n------------------------\n%2$@\n------------------------";

/* Warning to show when a RuleEntry does not have a DeploymentTarget to be used by the indexer. */
"NoDeploymentTarget" = "Target %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.";

/* Warning when updating the user's DBGShellCommands script in ~/Library/Application Support/Tulsi failed. */
"UpdatingDBGShellCommandsFailed" = "Failed to update the DBGShellCommands script used to locate dSYM bundles: received error '%1$@'.";

/* Warning shown when failing to update the tulsi-workspace symlink to the Bazel execution root. tulsi-workspace path is in %1$@, additional error context in %2$@. */
"UpdatingTulsiWorkspaceSymlinkFailed" = "Failed to update the %1$@ symlink to the Bazel execution root. Additional context: %2$@";
