es-es/strings.psd1

# Archivo de cadenas en español para DevDirManager
# Estas cadenas son utilizadas por Write-PSFMessage, Stop-PSFFunction y los bloques de script de validación de PSFramework
@{
    # Import-DevDirectoryList
    'ImportDevDirectoryList.Start'                       = "Iniciando Import-DevDirectoryList desde la ruta: '{0}', Formato: '{1}'"
    'ImportDevDirectoryList.ConfigurationFormatExplicit' = "Usando formato explícitamente especificado: '{0}'"
    'ImportDevDirectoryList.ConfigurationFormatDefault'  = "Usando formato predeterminado desde la configuración: '{0}'"
    'ImportDevDirectoryList.FileNotFound'                = "El archivo de lista de repositorios especificado '{0}' no existe."
    'ImportDevDirectoryList.FileNotFoundWarning'         = "Archivo de importación no encontrado: '{0}'"
    'ImportDevDirectoryList.Import'                      = "Leyendo lista de repositorios desde: '{0}'"
    'ImportDevDirectoryList.InferFormatFailed'           = "No se puede inferir el formato de importación de la ruta '{0}'. Especifique el parámetro Format."
    'ImportDevDirectoryList.FormatResolved'              = "Formato de importación resuelto: '{0}'"
    'ImportDevDirectoryList.DeserializationStart'        = "Iniciando deserialización desde formato {0}"
    'ImportDevDirectoryList.DeserializationCSV'          = "Usando Import-Csv para deserialización CSV"
    'ImportDevDirectoryList.TypeConversionCSV'           = "{0} objetos importados desde CSV, realizando conversiones de tipo"
    'ImportDevDirectoryList.StatusDateParsed'            = "StatusDate analizado con éxito: '{0}'"
    'ImportDevDirectoryList.CompleteCSV'                 = "{0} repositorios importados con éxito desde archivo CSV"
    'ImportDevDirectoryList.DeserializationJSON'         = "Usando ConvertFrom-Json para deserialización JSON"
    'ImportDevDirectoryList.EmptyJSON'                   = "El archivo JSON está vacío o solo contiene espacios en blanco"
    'ImportDevDirectoryList.TypeConversionJSON'          = "{0} objetos importados desde JSON, agregando información de tipo"
    'ImportDevDirectoryList.CompleteJSON'                = "{0} repositorios importados con éxito desde archivo JSON"
    'ImportDevDirectoryList.DeserializationXML'          = "Usando Import-Clixml para deserialización XML"
    'ImportDevDirectoryList.TypeConversionXML'           = "{0} objetos importados desde XML, agregando información de tipo"
    'ImportDevDirectoryList.CompleteXML'                 = "{0} repositorios importados con éxito desde archivo XML"

    # Export-DevDirectoryList
    'ExportDevDirectoryList.Start'                       = "Iniciando Export-DevDirectoryList a la ruta: '{0}', Formato: '{1}'"
    'ExportDevDirectoryList.ConfigurationFormatExplicit' = "Usando formato explícitamente especificado: '{0}'"
    'ExportDevDirectoryList.ConfigurationFormatDefault'  = "Usando formato predeterminado desde la configuración: '{0}'"
    'ExportDevDirectoryList.CollectObject'               = "Recopilando objeto de repositorio en lista de exportación"
    'ExportDevDirectoryList.ProcessExport'               = "Procesando exportación de {0} objetos de repositorio"
    'ExportDevDirectoryList.NoRepositoryEntries'         = 'No se recibieron entradas de repositorio para exportar.'
    'ExportDevDirectoryList.FormatResolved'              = "Formato de exportación resuelto: '{0}'"
    'ExportDevDirectoryList.CreateOutputDirectory'       = "Creando directorio de salida: '{0}'"
    'ExportDevDirectoryList.ActionExport'                = 'Exportar lista de repositorios como {0}'
    'ExportDevDirectoryList.ExportCanceled'              = "Exportación cancelada por el usuario (WhatIf/Confirm)"
    'ExportDevDirectoryList.SerializationStart'          = "Serializando {0} repositorios a '{1}' en formato {2}"
    'ExportDevDirectoryList.SerializationCSV'            = "Usando Export-Csv para serialización CSV"
    'ExportDevDirectoryList.SerializationJSON'           = "Usando ConvertTo-Json con profundidad 5 para serialización JSON"
    'ExportDevDirectoryList.SerializationXML'            = "Usando Export-Clixml para serialización XML"
    'ExportDevDirectoryList.Complete'                    = "{0} repositorios exportados con éxito a '{1}' en formato {2}"

    # Get-DevDirectory
    'GetDevDirectory.Start'                              = "Iniciando Get-DevDirectory con RootPath: '{0}', SkipRemoteCheck: {1}"
    'GetDevDirectory.ConfigurationRemoteName'            = "Usando nombre remoto '{0}' desde la configuración"
    'GetDevDirectory.ScanStart'                          = "Escaneando árbol de directorios comenzando en: '{0}'"
    'GetDevDirectory.RepositoryFound'                    = "Repositorio encontrado en: '{0}'"
    'GetDevDirectory.RemoteCheckStart'                   = "Verificando accesibilidad del remoto: '{0}'"
    'GetDevDirectory.RemoteCheckResult'                  = "Accesibilidad del remoto para '{0}': {1}"
    'GetDevDirectory.RemoteCheckNoUrl'                   = "No se encontró URL remota para '{0}', marcando como inaccesible"
    'GetDevDirectory.DirectoryEnumerationFailed'         = 'Omitiendo directorio {0} debido a {1}.'
    'GetDevDirectory.ScanComplete'                       = "Escaneo de repositorios completado. {0} repositorios encontrados"

    # Restore-DevDirectory
    'RestoreDevDirectory.Start'                          = "Iniciando Restore-DevDirectory al destino: '{0}', Force: {1}, SkipExisting: {2}, ShowGitOutput: {3}"
    'RestoreDevDirectory.ConfigurationGitExe'            = "Usando ejecutable git: '{0}'"
    'RestoreDevDirectory.GitExeResolved'                 = "Ejecutable git resuelto a: '{0}'"
    'RestoreDevDirectory.GitExeNotFound'                 = "Ejecutable git no encontrado: '{0}'"
    'RestoreDevDirectory.GitExecutableMissing'           = "No se puede localizar el ejecutable git '{0}'. Asegúrese de que Git esté instalado y disponible en PATH."
    'RestoreDevDirectory.DestinationNormalized'          = "Ruta de destino normalizada: '{0}'"
    'RestoreDevDirectory.ProcessingRepositories'         = "Procesando {0} repositorios para restauración"
    'RestoreDevDirectory.MissingRemoteUrl'               = 'Omitiendo repositorio con RemoteUrl faltante: {0}.'
    'RestoreDevDirectory.MissingRelativePath'            = 'Omitiendo repositorio con RelativePath faltante para remoto {0}.'
    'RestoreDevDirectory.UnsafeRelativePath'             = "Omitiendo repositorio con ruta relativa no segura '{0}'."
    'RestoreDevDirectory.OutOfScopePath'                 = "Omitiendo repositorio con ruta fuera de alcance '{0}'."
    'RestoreDevDirectory.ExistingTargetVerbose'          = 'Omitiendo destino de repositorio existente {0}.'
    'RestoreDevDirectory.TargetExistsWarning'            = 'El directorio de destino {0} ya existe. Use -Force para sobrescribir o -SkipExisting para ignorar.'
    'RestoreDevDirectory.ActionClone'                    = 'Clonar repositorio desde {0}'
    'RestoreDevDirectory.CloneFailed'                    = "git clone para '{0}' falló con código de salida {1}."
    'RestoreDevDirectory.ConfigFailed'                   = "Error al establecer git config {0} a '{1}' para repositorio en {2}. Código de salida: {3}"
    'RestoreDevDirectory.InaccessibleRemoteSkipped'      = "Omitiendo repositorio '{0}' con remoto inaccesible: {1}"
    'RestoreDevDirectory.Complete'                       = "Operación de restauración completada. {0} repositorios procesados"

    # Sync-DevDirectoryList
    'SyncDevDirectoryList.Start'                         = "Iniciando Sync-DevDirectoryList con DirectoryPath: '{0}', RepositoryListPath: '{1}', Force: {2}, SkipExisting: {3}, ShowGitOutput: {4}"
    'SyncDevDirectoryList.ConfigurationRemoteName'       = "Usando nombre remoto '{0}' desde la configuración"
    'SyncDevDirectoryList.DirectoryNormalized'           = "Ruta de directorio normalizada: '{0}'"
    'SyncDevDirectoryList.SyncStart'                     = "Iniciando proceso de sincronización"
    'SyncDevDirectoryList.ImportingFromFile'             = "El archivo de lista de repositorios existe, importando entradas desde: '{0}'"
    'SyncDevDirectoryList.ActionCreateRootDirectory'     = 'Crear directorio raíz de repositorios'
    'SyncDevDirectoryList.ActionCloneFromList'           = 'Clonar {0} repositorio(s) desde la lista'
    'SyncDevDirectoryList.ActionCreateListDirectory'     = 'Crear directorio para archivo de lista de repositorios'
    'SyncDevDirectoryList.ActionUpdateListFile'          = 'Actualizar archivo de lista de repositorios'
    'SyncDevDirectoryList.ImportFailed'                  = 'No se puede importar lista de repositorios desde {0}: {1}'
    'SyncDevDirectoryList.UnsafeFileEntry'               = 'La entrada de lista de repositorios con ruta relativa no segura {0} ha sido omitida.'
    'SyncDevDirectoryList.UnsafeLocalEntry'              = 'Ignorando repositorio local con ruta relativa no segura {0}.'
    'SyncDevDirectoryList.RemoteUrlMismatch'             = 'Desajuste de URL remota para {0}. Manteniendo valor local {1} sobre valor de archivo {2}.'
    'SyncDevDirectoryList.MissingRemoteUrl'              = 'La entrada de lista de repositorios {0} carece de RemoteUrl y no puede ser clonada.'
    'SyncDevDirectoryList.MissingRootDirectory'          = 'El directorio raíz de repositorios {0} no existe; omitiendo operaciones de clonación.'
    'SyncDevDirectoryList.InaccessibleRemoteSkipped'     = "Omitiendo repositorio '{0}' con remoto inaccesible: {1}"
    'SyncDevDirectoryList.Complete'                      = "Sincronización completada. Recuento final de repositorios: {0}"

    # Publish-DevDirectoryList
    'PublishDevDirectoryList.Start'                      = "Iniciando Publish-DevDirectoryList con ParameterSet: '{0}', Public: {1}, GistId: '{2}'"
    'PublishDevDirectoryList.AuthenticationDecrypt'      = "Descifrando AccessToken para autenticación API de GitHub"
    'PublishDevDirectoryList.TokenEmpty'                 = 'El token de acceso proporcionado está vacío después de la conversión.'
    'PublishDevDirectoryList.TokenEmptyError'            = "AccessToken está vacío o es nulo"
    'PublishDevDirectoryList.ConfigurationApiUrl'        = "Punto final de API configurado: '{0}'"
    'PublishDevDirectoryList.CollectPipelineObject'      = "Recopilando objeto de repositorio desde pipeline"
    'PublishDevDirectoryList.NoPipelineData'             = 'No se recibieron metadatos de repositorio del pipeline.'
    'PublishDevDirectoryList.ConvertToJson'              = "Convirtiendo {0} objetos pipeline a JSON"
    'PublishDevDirectoryList.ReadFile'                   = "Leyendo lista de repositorios desde archivo: '{0}'"
    'PublishDevDirectoryList.FormatDetected'             = "Formato de archivo detectado: '{0}'"
    'PublishDevDirectoryList.ReadJsonDirect'             = "El archivo es JSON, leyendo directamente"
    'PublishDevDirectoryList.ConvertFormat'              = "Convirtiendo {0} a JSON"
    'PublishDevDirectoryList.EmptyContent'               = 'El contenido de la lista de repositorios está vacío. No se publicará nada.'
    'PublishDevDirectoryList.SearchGist'                 = "Buscando gist existente con descripción 'GitRepositoryList'"
    'PublishDevDirectoryList.GistFound'                  = "Gist existente encontrado con ID: '{0}'"
    'PublishDevDirectoryList.GistNotFound'               = "No se encontró gist existente, se creará uno nuevo"
    'PublishDevDirectoryList.QueryGistFailed'            = 'Error al consultar gists existentes: {0}'
    'PublishDevDirectoryList.UsingProvidedGistId'        = "Usando GistId proporcionado: '{0}'"
    'PublishDevDirectoryList.PublishCanceled'            = "Publicación cancelada por el usuario (WhatIf/Confirm)"
    'PublishDevDirectoryList.UpdatingGist'               = "Actualizando gist existente: '{0}'"
    'PublishDevDirectoryList.CreatingGist'               = "Creando nuevo gist"
    'PublishDevDirectoryList.Complete'                   = "Lista de repositorios publicada con éxito en gist. GistId: '{0}', URL: '{1}'"
    'PublishDevDirectoryList.CleanupTokens'              = "Limpiando tokens de autenticación"
    'PublishDevDirectoryList.ActionPublish'              = 'Publicar lista de repositorios DevDirManager en GitHub Gist'
    'PublishDevDirectoryList.TargetLabelCreate'          = 'Crear gist GitRepositoryList'
    'PublishDevDirectoryList.TargetLabelUpdate'          = 'Actualizar gist {0}'

    # Funciones internas - Get-DevDirectoryRemoteUrl
    'GetDevDirectoryRemoteUrl.Start'                     = "Extrayendo URL remota para '{0}' desde repositorio: '{1}'"
    'GetDevDirectoryRemoteUrl.ConfigPath'                = "Ruta de config git: '{0}'"
    'GetDevDirectoryRemoteUrl.ConfigMissing'             = 'No se encontró archivo .git\\config en {0}.'
    'GetDevDirectoryRemoteUrl.ConfigNotFound'            = "Archivo de config git no encontrado, devolviendo null"
    'GetDevDirectoryRemoteUrl.ReadingConfig'             = "Leyendo archivo de config git"
    'GetDevDirectoryRemoteUrl.SearchingSection'          = "Buscando patrón de sección: '{0}'"
    'GetDevDirectoryRemoteUrl.RemoteUrlFound'            = "URL remota para '{0}': '{1}'"
    'GetDevDirectoryRemoteUrl.RemoteNotFound'            = "Remoto '{0}' no encontrado o sin URL configurada"

    # Funciones internas - Get-DevDirectoryUserInfo
    'GetDevDirectoryUserInfo.Start'                      = "Extrayendo información de usuario desde repositorio: '{0}'"
    'GetDevDirectoryUserInfo.ConfigPath'                 = "Ruta de config git: '{0}'"
    'GetDevDirectoryUserInfo.ConfigMissing'              = 'No se encontró archivo .git\\config en {0}.'
    'GetDevDirectoryUserInfo.ConfigNotFound'             = "Archivo de config git no encontrado, devolviendo valores nulos"
    'GetDevDirectoryUserInfo.ReadingConfig'              = "Leyendo archivo de config git"
    'GetDevDirectoryUserInfo.SectionFound'               = "Sección [user] encontrada en config git"
    'GetDevDirectoryUserInfo.UserNameFound'              = "user.name encontrado: '{0}'"
    'GetDevDirectoryUserInfo.UserEmailFound'             = "user.email encontrado: '{0}'"
    'GetDevDirectoryUserInfo.Result'                     = "Información de usuario extraída - UserName: '{0}', UserEmail: '{1}'"

    # Funciones internas - Test-DevDirectoryRemoteAccessible
    'TestDevDirectoryRemoteAccessible.EmptyUrl'          = "La URL remota está vacía, marcando como inaccesible"
    'TestDevDirectoryRemoteAccessible.CheckingRemote'    = "Verificando accesibilidad del remoto: {0}"
    'TestDevDirectoryRemoteAccessible.Timeout'           = "Tiempo de espera de verificación del remoto agotado después de {0} segundos para: {1}"
    'TestDevDirectoryRemoteAccessible.Accessible'        = "El remoto es accesible: {0}"
    'TestDevDirectoryRemoteAccessible.NotAccessible'     = "El remoto no es accesible (código de salida {0}): {1}"
    'TestDevDirectoryRemoteAccessible.Error'             = "Error al verificar accesibilidad del remoto para {0} : {1}"

    # Funciones internas - ConvertTo-NormalizedRelativePath
    'ConvertToNormalizedRelativePath.Start'              = "Normalizando ruta relativa: '{0}'"
    'ConvertToNormalizedRelativePath.EmptyPath'          = "La ruta está vacía, es espacio en blanco o '.', devolviendo '.'"
    'ConvertToNormalizedRelativePath.AfterTrim'          = "Después de trim: '{0}'"
    'ConvertToNormalizedRelativePath.AfterCleanup'       = "Después de limpieza de barras: '{0}'"
    'ConvertToNormalizedRelativePath.BecameEmpty'        = "La ruta quedó vacía después de normalización, devolviendo '.'"
    'ConvertToNormalizedRelativePath.Result'             = "Ruta normalizada: '{0}' -> '{1}'"

    # Funciones internas - Add-RepositoryTypeName
    'AddRepositoryTypeName.Start'                        = "Agregando nombre de tipo DevDirManager.Repository al objeto"
    'AddRepositoryTypeName.Result'                       = "Nombre de tipo agregado al objeto"

    # Genéricos / Compartidos
    'RepositoryList.UsingDefaultFormat'                  = "Usando formato predeterminado configurado '{0}' para archivo '{1}'."
    'GetDevDirectoryStatusDate.GitFolderMissing'         = 'No se encontró carpeta .git en {0}.'
}