From 6cfebc757d86108e5693b6c44d2b748b57e214d1 Mon Sep 17 00:00:00 2001 From: mdaneri Date: Wed, 29 May 2024 23:15:41 -0700 Subject: [PATCH 01/67] first drop --- src/Locales/ar/Pode.psd1 | 24 ++++++++++++++++++++++++ src/Locales/de/Pode.psd1 | 24 ++++++++++++++++++++++++ src/Locales/en/Pode.psd1 | 24 ++++++++++++++++++++++++ src/Locales/es/Pode.psd1 | 24 ++++++++++++++++++++++++ src/Locales/fr/Pode.psd1 | 24 ++++++++++++++++++++++++ src/Locales/it/Pode.psd1 | 24 ++++++++++++++++++++++++ src/Locales/ja/Pode.psd1 | 24 ++++++++++++++++++++++++ src/Locales/zn/Pode.psd1 | 24 ++++++++++++++++++++++++ src/Pode.psm1 | 6 +++++- src/Private/Authentication.ps1 | 4 ++-- src/Private/AutoImport.ps1 | 4 ++-- src/Private/Context.ps1 | 4 ++-- src/Private/CronParser.ps1 | 20 ++++++++++---------- src/Private/Endpoints.ps1 | 4 ++-- src/Private/Gui.ps1 | 2 +- src/Private/Helpers.ps1 | 8 ++++---- 16 files changed, 220 insertions(+), 24 deletions(-) create mode 100644 src/Locales/ar/Pode.psd1 create mode 100644 src/Locales/de/Pode.psd1 create mode 100644 src/Locales/en/Pode.psd1 create mode 100644 src/Locales/es/Pode.psd1 create mode 100644 src/Locales/fr/Pode.psd1 create mode 100644 src/Locales/it/Pode.psd1 create mode 100644 src/Locales/ja/Pode.psd1 create mode 100644 src/Locales/zn/Pode.psd1 diff --git a/src/Locales/ar/Pode.psd1 b/src/Locales/ar/Pode.psd1 new file mode 100644 index 000000000..323254bb1 --- /dev/null +++ b/src/Locales/ar/Pode.psd1 @@ -0,0 +1,24 @@ +ConvertFrom-StringData -StringData @' +adModuleWindowsOnlyMessage = وحدة Active Directory متاحة فقط على نظام Windows +adModuleNotInstalledMessage = وحدة Active Directory غير مثبتة +secretManagementModuleNotInstalledMessage = وحدة Microsoft.PowerShell.SecretManagement غير مثبتة +secretVaultAlreadyRegisteredMessage = تم تسجيل خزنة سرية بالاسم '{0}' بالفعل أثناء الاستيراد التلقائي للخزن السرية +failedToOpenRunspacePoolMessage = فشل في فتح RunspacePool: {0} +cronExpressionInvalidMessage = يجب أن تتكون تعبير Cron فقط من 5 أجزاء: {0} +invalidAliasFoundMessage = تم العثور على اسم مستعار غير صالح {0}: {1} +invalidAtomCharacterMessage = حرف ذري غير صالح: {0} +minValueGreaterThanMaxMessage = يجب ألا تكون القيمة الدنيا لـ {0} أكبر من القيمة القصوى +minValueInvalidMessage = القيمة الدنيا '{0}' لـ {1} غير صالحة، يجب أن تكون أكبر من أو تساوي {2} +maxValueInvalidMessage = القيمة القصوى '{0}' لـ {1} غير صالحة، يجب أن تكون أقل من أو تساوي {2} +valueOutOfRangeMessage = القيمة '{0}' لـ {1} غير صالحة، يجب أن تكون بين {2} و {3} +daysInMonthExceededMessage = {0} يحتوي فقط على {1} أيام، ولكن تم توفير {2} +nextTriggerCalculationErrorMessage = يبدو أن هناك خطأ ما عند محاولة حساب تاريخ ووقت التشغيل التالي: {0} +incompatiblePodeDllMessage = تم تحميل إصدار غير متوافق موجود من Pode.DLL {0}. الإصدار {1} مطلوب. افتح جلسة Powershell/pwsh جديدة وحاول مرة أخرى. +endpointNotExistMessage = لا يوجد نقطة نهاية بالبروتوكول '{0}' والعنوان '{1}' أو العنوان المحلي '{2}' +endpointNameNotExistMessage = لا يوجد نقطة نهاية بالاسم '{0}' +failedToConnectToUrlMessage = فشل الاتصال بعنوان URL: {0} +failedToParseAddressMessage = فشل في تحليل '{0}' كعنوان IP/Host:Port صالح +invalidIpAddressMessage = عنوان IP المقدم غير صالح: {0} +invalidPortMessage = لا يمكن أن يكون المنفذ سالبًا: {0} +pathNotExistMessage = المسار غير موجود: {0} +'@ \ No newline at end of file diff --git a/src/Locales/de/Pode.psd1 b/src/Locales/de/Pode.psd1 new file mode 100644 index 000000000..0e38fb2a5 --- /dev/null +++ b/src/Locales/de/Pode.psd1 @@ -0,0 +1,24 @@ +ConvertFrom-StringData -StringData @' +adModuleWindowsOnlyMessage = Das Active Directory-Modul ist nur unter Windows verfügbar +adModuleNotInstalledMessage = Das Active Directory-Modul ist nicht installiert +secretManagementModuleNotInstalledMessage = Das Microsoft.PowerShell.SecretManagement-Modul ist nicht installiert +secretVaultAlreadyRegisteredMessage = Ein Secret Vault mit dem Namen '{0}' wurde bereits beim automatischen Importieren von Secret Vaults registriert +failedToOpenRunspacePoolMessage = Fehler beim Öffnen des RunspacePool: {0} +cronExpressionInvalidMessage = Cron-Ausdruck sollte nur aus 5 Teilen bestehen: {0} +invalidAliasFoundMessage = Ungültiger {0} Alias gefunden: {1} +invalidAtomCharacterMessage = Ungültiges Atomzeichen: {0} +minValueGreaterThanMaxMessage = Der Mindestwert für {0} sollte nicht größer als der Höchstwert sein +minValueInvalidMessage = Der Mindestwert '{0}' für {1} ist ungültig, sollte größer oder gleich {2} sein +maxValueInvalidMessage = Der Höchstwert '{0}' für {1} ist ungültig, sollte kleiner oder gleich {2} sein +valueOutOfRangeMessage = Der Wert '{0}' für {1} ist ungültig, sollte zwischen {2} und {3} liegen +daysInMonthExceededMessage = {0} hat nur {1} Tage, aber {2} wurde angegeben +nextTriggerCalculationErrorMessage = Es scheint, dass beim Versuch, das nächste Trigger-Datum und die nächste Uhrzeit zu berechnen, etwas schiefgelaufen ist: {0} +incompatiblePodeDllMessage = Eine vorhandene inkompatible Version von Pode.DLL {0} ist geladen. Version {1} wird benötigt. Öffnen Sie eine neue Powershell/pwsh-Sitzung und versuchen Sie es erneut. +endpointNotExistMessage = Ein Endpunkt mit dem Protokoll '{0}' und der Adresse '{1}' oder der lokalen Adresse '{2}' existiert nicht +endpointNameNotExistMessage = Ein Endpunkt mit dem Namen '{0}' existiert nicht +failedToConnectToUrlMessage = Fehler beim Verbinden mit der URL: {0} +failedToParseAddressMessage = Fehler beim Parsen von '{0}' als gültige IP/Host:Port-Adresse +invalidIpAddressMessage = Die angegebene IP-Adresse ist ungültig: {0} +invalidPortMessage = Der Port kann nicht negativ sein: {0} +pathNotExistMessage = Pfad existiert nicht: {0} +'@ \ No newline at end of file diff --git a/src/Locales/en/Pode.psd1 b/src/Locales/en/Pode.psd1 new file mode 100644 index 000000000..25956ad06 --- /dev/null +++ b/src/Locales/en/Pode.psd1 @@ -0,0 +1,24 @@ +ConvertFrom-StringData -StringData @' +adModuleWindowsOnlyMessage = Active Directory module only available on Windows +adModuleNotInstalledMessage = Active Directory module is not installed +secretManagementModuleNotInstalledMessage = Microsoft.PowerShell.SecretManagement module not installed +secretVaultAlreadyRegisteredMessage = A Secret Vault with the name '{0}' has already been registered while auto-importing Secret Vaults +failedToOpenRunspacePoolMessage = Failed to open RunspacePool: {0} +cronExpressionInvalidMessage = Cron expression should only consist of 5 parts: {0} +invalidAliasFoundMessage = Invalid {0} alias found: {1} +invalidAtomCharacterMessage = Invalid atom character: {0} +minValueGreaterThanMaxMessage = Min value for {0} should not be greater than the max value +minValueInvalidMessage = Min value '{0}' for {1} is invalid, should be greater than/equal to {2} +maxValueInvalidMessage = Max value '{0}' for {1} is invalid, should be less than/equal to {2} +valueOutOfRangeMessage = Value '{0}' for {1} is invalid, should be between {2} and {3} +daysInMonthExceededMessage = {0} only has {1} days, but {2} was supplied +nextTriggerCalculationErrorMessage = Looks like something went wrong trying to calculate the next trigger datetime: {0} +incompatiblePodeDllMessage = An existing incompatible Pode.DLL version {0} is loaded. Version {1} is required. Open a new Powershell/pwsh session and retry. +endpointNotExistMessage = Endpoint with protocol '{0}' and address '{1}' or local address '{2}' does not exist +endpointNameNotExistMessage = Endpoint with name '{0}' does not exist +failedToConnectToUrlMessage = Failed to connect to URL: {0} +failedToParseAddressMessage = Failed to parse '{0}' as a valid IP/Host:Port address +invalidIpAddressMessage = The IP address supplied is invalid: {0} +invalidPortMessage = The port cannot be negative: {0} +pathNotExistMessage = Path does not exist: {0} +'@ \ No newline at end of file diff --git a/src/Locales/es/Pode.psd1 b/src/Locales/es/Pode.psd1 new file mode 100644 index 000000000..67ac8cc3e --- /dev/null +++ b/src/Locales/es/Pode.psd1 @@ -0,0 +1,24 @@ +ConvertFrom-StringData -StringData @' +adModuleWindowsOnlyMessage = El módulo de Active Directory solo está disponible en Windows +adModuleNotInstalledMessage = El módulo de Active Directory no está instalado +secretManagementModuleNotInstalledMessage = El módulo Microsoft.PowerShell.SecretManagement no está instalado +secretVaultAlreadyRegisteredMessage = Ya se ha registrado un Bóveda Secreta con el nombre '{0}' al importar automáticamente Bóvedas Secretas +failedToOpenRunspacePoolMessage = Error al abrir RunspacePool: {0} +cronExpressionInvalidMessage = La expresión Cron solo debe consistir en 5 partes: {0} +invalidAliasFoundMessage = Se encontró un alias {0} no válido: {1} +invalidAtomCharacterMessage = Carácter atómico no válido: {0} +minValueGreaterThanMaxMessage = El valor mínimo para {0} no debe ser mayor que el valor máximo +minValueInvalidMessage = El valor mínimo '{0}' para {1} no es válido, debe ser mayor o igual a {2} +maxValueInvalidMessage = El valor máximo '{0}' para {1} no es válido, debe ser menor o igual a {2} +valueOutOfRangeMessage = El valor '{0}' para {1} no es válido, debe estar entre {2} y {3} +daysInMonthExceededMessage = {0} solo tiene {1} días, pero se suministró {2} +nextTriggerCalculationErrorMessage = Parece que algo salió mal al intentar calcular la siguiente fecha y hora del disparador: {0} +incompatiblePodeDllMessage = Se ha cargado una versión incompatible existente de Pode.DLL {0}. Se requiere la versión {1}. Abra una nueva sesión de Powershell/pwsh e intente de nuevo. +endpointNotExistMessage = No existe un punto de conexión con el protocolo '{0}' y la dirección '{1}' o la dirección local '{2}' +endpointNameNotExistMessage = No existe un punto de conexión con el nombre '{0}' +failedToConnectToUrlMessage = Error al conectar con la URL: {0} +failedToParseAddressMessage = Error al analizar '{0}' como una dirección IP/Host:Puerto válida +invalidIpAddressMessage = La dirección IP suministrada no es válida: {0} +invalidPortMessage = El puerto no puede ser negativo: {0} +pathNotExistMessage = La ruta no existe: {0} +'@ \ No newline at end of file diff --git a/src/Locales/fr/Pode.psd1 b/src/Locales/fr/Pode.psd1 new file mode 100644 index 000000000..f7c33aa37 --- /dev/null +++ b/src/Locales/fr/Pode.psd1 @@ -0,0 +1,24 @@ +ConvertFrom-StringData -StringData @' +adModuleWindowsOnlyMessage = Le module Active Directory est uniquement disponible sur Windows +adModuleNotInstalledMessage = Le module Active Directory n'est pas installé +secretManagementModuleNotInstalledMessage = Le module Microsoft.PowerShell.SecretManagement n'est pas installé +secretVaultAlreadyRegisteredMessage = Un coffre-fort secret avec le nom '{0}' a déjà été enregistré lors de l'importation automatique des coffres-forts secrets +failedToOpenRunspacePoolMessage = Échec de l'ouverture de RunspacePool : {0} +cronExpressionInvalidMessage = L'expression Cron doit uniquement comporter 5 parties : {0} +invalidAliasFoundMessage = Alias {0} non valide trouvé : {1} +invalidAtomCharacterMessage = Caractère atomique non valide : {0} +minValueGreaterThanMaxMessage = La valeur minimale pour {0} ne doit pas être supérieure à la valeur maximale +minValueInvalidMessage = La valeur minimale '{0}' pour {1} n'est pas valide, elle doit être supérieure ou égale à {2} +maxValueInvalidMessage = La valeur maximale '{0}' pour {1} n'est pas valide, elle doit être inférieure ou égale à {2} +valueOutOfRangeMessage = La valeur '{0}' pour {1} n'est pas valide, elle doit être comprise entre {2} et {3} +daysInMonthExceededMessage = {0} n'a que {1} jours, mais {2} a été fourni +nextTriggerCalculationErrorMessage = Il semble que quelque chose ait mal tourné lors de la tentative de calcul de la prochaine date et heure de déclenchement : {0} +incompatiblePodeDllMessage = Une version incompatible existante de Pode.DLL {0} est chargée. La version {1} est requise. Ouvrez une nouvelle session Powershell/pwsh et réessayez. +endpointNotExistMessage = Un point de terminaison avec le protocole '{0}' et l'adresse '{1}' ou l'adresse locale '{2}' n'existe pas +endpointNameNotExistMessage = Un point de terminaison avec le nom '{0}' n'existe pas +failedToConnectToUrlMessage = Échec de la connexion à l'URL : {0} +failedToParseAddressMessage = Échec de l'analyse de '{0}' en tant qu'adresse IP/Hôte:Port valide +invalidIpAddressMessage = L'adresse IP fournie n'est pas valide : {0} +invalidPortMessage = Le port ne peut pas être négatif : {0} +pathNotExistMessage = Le chemin n'existe pas : {0} +'@ \ No newline at end of file diff --git a/src/Locales/it/Pode.psd1 b/src/Locales/it/Pode.psd1 new file mode 100644 index 000000000..b542ea731 --- /dev/null +++ b/src/Locales/it/Pode.psd1 @@ -0,0 +1,24 @@ +ConvertFrom-StringData -StringData @' +adModuleWindowsOnlyMessage = Il modulo di Active Directory è disponibile solo su Windows +adModuleNotInstalledMessage = Il modulo di Active Directory non è installato +secretManagementModuleNotInstalledMessage = Il modulo Microsoft.PowerShell.SecretManagement non è installato +secretVaultAlreadyRegisteredMessage = Una Secret Vault con il nome '{0}' è già stata registrata durante l'importazione automatica delle Secret Vaults +failedToOpenRunspacePoolMessage = Errore nell'apertura di RunspacePool: {0} +cronExpressionInvalidMessage = L'espressione Cron deve consistere solo di 5 parti: {0} +invalidAliasFoundMessage = Alias {0} non valido trovato: {1} +invalidAtomCharacterMessage = Carattere atomico non valido: {0} +minValueGreaterThanMaxMessage = Il valore minimo per {0} non deve essere maggiore del valore massimo +minValueInvalidMessage = Il valore minimo '{0}' per {1} non è valido, deve essere maggiore o uguale a {2} +maxValueInvalidMessage = Il valore massimo '{0}' per {1} non è valido, deve essere minore o uguale a {2} +valueOutOfRangeMessage = Il valore '{0}' per {1} non è valido, deve essere compreso tra {2} e {3} +daysInMonthExceededMessage = {0} ha solo {1} giorni, ma è stato fornito {2} +nextTriggerCalculationErrorMessage = Sembra che qualcosa sia andato storto nel tentativo di calcolare la prossima data e ora del trigger: {0} +incompatiblePodeDllMessage = È stata caricata una versione incompatibile esistente di Pode.DLL {0}. È richiesta la versione {1}. Aprire una nuova sessione di Powershell/pwsh e riprovare. +endpointNotExistMessage = Non esiste un endpoint con il protocollo '{0}' e l'indirizzo '{1}' o l'indirizzo locale '{2}' +endpointNameNotExistMessage = Non esiste un endpoint con il nome '{0}' +failedToConnectToUrlMessage = Errore nella connessione all'URL: {0} +failedToParseAddressMessage = Errore nell'analisi di '{0}' come indirizzo IP/Host:Porto valido +invalidIpAddressMessage = L'indirizzo IP fornito non è valido: {0} +invalidPortMessage = La porta non può essere negativa: {0} +pathNotExistMessage = Il percorso non esiste: {0} +'@ \ No newline at end of file diff --git a/src/Locales/ja/Pode.psd1 b/src/Locales/ja/Pode.psd1 new file mode 100644 index 000000000..18b377c3b --- /dev/null +++ b/src/Locales/ja/Pode.psd1 @@ -0,0 +1,24 @@ +ConvertFrom-StringData -StringData @' +adModuleWindowsOnlyMessage = Active DirectoryモジュールはWindowsでのみ利用可能です +adModuleNotInstalledMessage = Active Directoryモジュールがインストールされていません +secretManagementModuleNotInstalledMessage = Microsoft.PowerShell.SecretManagementモジュールがインストールされていません +secretVaultAlreadyRegisteredMessage = シークレットボールト'{0}'は既に登録されています(シークレットボールトの自動インポート中) +failedToOpenRunspacePoolMessage = RunspacePoolのオープンに失敗しました: {0} +cronExpressionInvalidMessage = Cron式は5つの部分で構成される必要があります: {0} +invalidAliasFoundMessage = 無効な{0}エイリアスが見つかりました: {1} +invalidAtomCharacterMessage = 無効なアトム文字: {0} +minValueGreaterThanMaxMessage = {0}の最小値は最大値を超えることはできません +minValueInvalidMessage = {1}の最小値'{0}'は無効です。{2}以上でなければなりません +maxValueInvalidMessage = {1}の最大値'{0}'は無効です。{2}以下でなければなりません +valueOutOfRangeMessage = {1}の値'{0}'は無効です。{2}から{3}の間でなければなりません +daysInMonthExceededMessage = {0}は{1}日しかありませんが、{2}が指定されました +nextTriggerCalculationErrorMessage = 次のトリガー日時の計算中に問題が発生したようです: {0} +incompatiblePodeDllMessage = 既存の互換性のないPode.DLLバージョン{0}がロードされています。バージョン{1}が必要です。新しいPowershell/pwshセッションを開いて再試行してください。 +endpointNotExistMessage = プロトコル'{0}'とアドレス'{1}'またはローカルアドレス'{2}'のエンドポイントが存在しません +endpointNameNotExistMessage = 名前'{0}'のエンドポイントが存在しません +failedToConnectToUrlMessage = URLへの接続に失敗しました: {0} +failedToParseAddressMessage = '{0}'を有効なIP/ホスト:ポートアドレスとして解析できませんでした +invalidIpAddressMessage = 提供されたIPアドレスは無効です: {0} +invalidPortMessage = ポートは負であってはなりません: {0} +pathNotExistMessage = パスが存在しません: {0} +'@ \ No newline at end of file diff --git a/src/Locales/zn/Pode.psd1 b/src/Locales/zn/Pode.psd1 new file mode 100644 index 000000000..0e0c8729b --- /dev/null +++ b/src/Locales/zn/Pode.psd1 @@ -0,0 +1,24 @@ +ConvertFrom-StringData -StringData @' +adModuleWindowsOnlyMessage = Active Directory模块仅在Windows上可用 +adModuleNotInstalledMessage = Active Directory模块未安装 +secretManagementModuleNotInstalledMessage = Microsoft.PowerShell.SecretManagement模块未安装 +secretVaultAlreadyRegisteredMessage = 在自动导入秘密库时,名为'{0}'的秘密库已注册 +failedToOpenRunspacePoolMessage = 无法打开RunspacePool: {0} +cronExpressionInvalidMessage = Cron表达式应仅由5部分组成: {0} +invalidAliasFoundMessage = 找到无效的{0}别名:{1} +invalidAtomCharacterMessage = 无效的原子字符:{0} +minValueGreaterThanMaxMessage = {0}的最小值不应大于最大值 +minValueInvalidMessage = {1}的最小值'{0}'无效,应大于或等于{2} +maxValueInvalidMessage = {1}的最大值'{0}'无效,应小于或等于{2} +valueOutOfRangeMessage = {1}的值'{0}'无效,应介于{2}和{3}之间 +daysInMonthExceededMessage = {0}只有{1}天,但提供了{2} +nextTriggerCalculationErrorMessage = 计算下一个触发日期时间时似乎出了问题:{0} +incompatiblePodeDllMessage = 已加载现有的不兼容Pode.DLL版本{0}。需要版本{1}。请打开一个新的Powershell/pwsh会话并重试。 +endpointNotExistMessage = 协议为'{0}'且地址为'{1}'或本地地址为'{2}'的端点不存在 +endpointNameNotExistMessage = 名称为'{0}'的端点不存在 +failedToConnectToUrlMessage = 无法连接到URL: {0} +failedToParseAddressMessage = 无法将'{0}'解析为有效的IP/主机:端口地址 +invalidIpAddressMessage = 提供的IP地址无效:{0} +invalidPortMessage = 端口不能为负:{0} +pathNotExistMessage = 路径不存在:{0} +'@ \ No newline at end of file diff --git a/src/Pode.psm1 b/src/Pode.psm1 index 00a5be399..32d555b03 100644 --- a/src/Pode.psm1 +++ b/src/Pode.psm1 @@ -1,6 +1,9 @@ # root path $root = Split-Path -Parent -Path $MyInvocation.MyCommand.Path +# Import localized messages +Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $root -ChildPath 'Locales') + # load assemblies Add-Type -AssemblyName System.Web Add-Type -AssemblyName System.Net.Http @@ -17,7 +20,7 @@ if ($podeDll) { if ( $moduleManifest.ModuleVersion -ne '$version$') { $moduleVersion = ([version]::new($moduleManifest.ModuleVersion + '.0')) if ($podeDll.GetName().Version -ne $moduleVersion) { - throw "An existing incompatible Pode.DLL version $($podeDll.GetName().Version) is loaded. Version $moduleVersion is required. Open a new Powershell/pwsh session and retry." + throw ($msgTable.incompatiblePodeDllMessage -f $podeDll.GetName().Version, $moduleVersion) #"An existing incompatible Pode.DLL version $($podeDll.GetName().Version) is loaded. Version $moduleVersion is required. Open a new Powershell/pwsh session and retry." } } } @@ -33,6 +36,7 @@ else { } } + # load private functions Get-ChildItem "$($root)/Private/*.ps1" | ForEach-Object { . ([System.IO.Path]::GetFullPath($_)) } diff --git a/src/Private/Authentication.ps1 b/src/Private/Authentication.ps1 index 0656f4bf4..7bf7a6cdd 100644 --- a/src/Private/Authentication.ps1 +++ b/src/Private/Authentication.ps1 @@ -2194,11 +2194,11 @@ function Expand-PodeAuthMerge { function Import-PodeAuthADModule { if (!(Test-PodeIsWindows)) { - throw 'Active Directory module only available on Windows' + throw $msgTable.adModuleWindowsOnlyMessage #'Active Directory module only available on Windows' } if (!(Test-PodeModuleInstalled -Name ActiveDirectory)) { - throw 'Active Directory module is not installed' + throw $msgTable.adModuleNotInstalledMessage #'Active Directory module is not installed' } Import-Module -Name ActiveDirectory -Force -ErrorAction Stop diff --git a/src/Private/AutoImport.ps1 b/src/Private/AutoImport.ps1 index 6af105ab7..f196d577b 100644 --- a/src/Private/AutoImport.ps1 +++ b/src/Private/AutoImport.ps1 @@ -177,7 +177,7 @@ function Import-PodeSecretManagementVaultsIntoRegistry { # error if SecretManagement module not installed if (!(Test-PodeModuleInstalled -Name Microsoft.PowerShell.SecretManagement)) { - throw 'Microsoft.PowerShell.SecretManagement module not installed' + throw $msgTable.secretManagementModuleNotInstalledMessage #'Microsoft.PowerShell.SecretManagement module not installed' } # import the module @@ -195,7 +195,7 @@ function Import-PodeSecretManagementVaultsIntoRegistry { # is a vault with this name already registered? if (Test-PodeSecretVault -Name $vault.Name) { - throw "A Secret Vault with the name '$($vault.Name)' has already been registered while auto-importing Secret Vaults" + throw ($msgTable.secretVaultAlreadyRegisteredMessage -f $vault.Name) #"A Secret Vault with the name '$($vault.Name)' has already been registered while auto-importing Secret Vaults" } # register the vault diff --git a/src/Private/Context.ps1 b/src/Private/Context.ps1 index 457352788..0472e3eed 100644 --- a/src/Private/Context.ps1 +++ b/src/Private/Context.ps1 @@ -666,7 +666,7 @@ function Open-PodeRunspacePools { if ($item.Pool.RunspacePoolStateInfo.State -ieq 'broken') { $item.Pool.EndOpen($item.Result) | Out-Default - throw "Failed to open RunspacePool: $($key)" + throw ($msgTable.failedToOpenRunspacePoolMessage -f $key) #"Failed to open RunspacePool: $($key)" } } @@ -722,7 +722,7 @@ function Close-PodeRunspacePools { if ($item.Pool.RunspacePoolStateInfo.State -ieq 'broken') { $item.Pool.EndClose($item.Result) | Out-Default - throw "Failed to close RunspacePool: $($key)" + throw ($msgTable.failedToOpenRunspacePoolMessage -f $key) #"Failed to open RunspacePool: $($key)" } } diff --git a/src/Private/CronParser.ps1 b/src/Private/CronParser.ps1 index 55336397d..da231d4c5 100644 --- a/src/Private/CronParser.ps1 +++ b/src/Private/CronParser.ps1 @@ -109,7 +109,7 @@ function ConvertFrom-PodeCronExpression { # split and check atoms length $atoms = @($Expression -isplit '\s+') if ($atoms.Length -ne 5) { - throw "Cron expression should only consist of 5 parts: $($Expression)" + throw ($msgTable.cronExpressionInvalidMessage -f $Expression) #"Cron expression should only consist of 5 parts: $($Expression)" } # basic variables @@ -140,7 +140,7 @@ function ConvertFrom-PodeCronExpression { while ($_atom -imatch $aliasRgx) { $_alias = $_aliases[$Matches['tag']] if ($null -eq $_alias) { - throw "Invalid $($_field) alias found: $($Matches['tag'])" + throw ($msgTable.invalidAliasFoundMessage -f $_field, $Matches['tag']) #"Invalid $($_field) alias found: $($Matches['tag'])" } $_atom = $_atom -ireplace $Matches['tag'], $_alias @@ -150,7 +150,7 @@ function ConvertFrom-PodeCronExpression { # ensure atom is a valid value if (!($_atom -imatch '^[\d|/|*|\-|,r]+$')) { - throw "Invalid atom character: $($_atom)" + throw ($msgTable.invalidAtomCharacterMessage -f $_atom)#"Invalid atom character: $($_atom)" } # replace * with min/max constraint @@ -214,28 +214,28 @@ function ConvertFrom-PodeCronExpression { # error else { - throw "Invalid cron atom format found: $($_atom)" + throw ($msgTable.invalidAtomCharacterMessage -f $_atom)#"Invalid cron atom format found: $($_atom)" } # ensure cron expression values are valid if ($null -ne $_cronExp.Range) { if ($_cronExp.Range.Min -gt $_cronExp.Range.Max) { - throw "Min value for $($_field) should not be greater than the max value" + throw ($msgTable.minValueGreaterThanMaxMessage -f $_field) #"Min value for $($_field) should not be greater than the max value" } if ($_cronExp.Range.Min -lt $_constraint[0]) { - throw "Min value '$($_cronExp.Range.Min)' for $($_field) is invalid, should be greater than/equal to $($_constraint[0])" + throw ($msgTable.minValueInvalidMessage -f $_cronExp.Range.Min, $_field, $_constraint[0]) #"Min value '$($_cronExp.Range.Min)' for $($_field) is invalid, should be greater than/equal to $($_constraint[0])" } if ($_cronExp.Range.Max -gt $_constraint[1]) { - throw "Max value '$($_cronExp.Range.Max)' for $($_field) is invalid, should be less than/equal to $($_constraint[1])" + throw ($msgTable.maxValueInvalidMessage -f $_cronExp.Range.Max, $_field, $_constraint[1]) #"Max value '$($_cronExp.Range.Max)' for $($_field) is invalid, should be less than/equal to $($_constraint[1])" } } if ($null -ne $_cronExp.Values) { $_cronExp.Values | ForEach-Object { if ($_ -lt $_constraint[0] -or $_ -gt $_constraint[1]) { - throw "Value '$($_)' for $($_field) is invalid, should be between $($_constraint[0]) and $($_constraint[1])" + throw ($msgTable.valueOutOfRangeMessage -f $value, $_field, $_constraint[0], $_constraint[1]) #"Value '$($_)' for $($_field) is invalid, should be between $($_constraint[0]) and $($_constraint[1])" } } } @@ -250,7 +250,7 @@ function ConvertFrom-PodeCronExpression { foreach ($mon in $cron['Month'].Values) { foreach ($day in $cron['DayOfMonth'].Values) { if ($day -gt $constraints.DaysInMonths[$mon - 1]) { - throw "$($constraints.Months[$mon - 1]) only has $($constraints.DaysInMonths[$mon - 1]) days, but $($day) was supplied" + throw ($msgTable.daysInMonthExceededMessage -f $constraints.Months[$mon - 1], $constraints.DaysInMonths[$mon - 1], $day) #"$($constraints.Months[$mon - 1]) only has $($constraints.DaysInMonths[$mon - 1]) days, but $($day) was supplied" } } } @@ -518,7 +518,7 @@ function Get-PodeCronNextTrigger { # before we return, make sure the time is valid if (!(Test-PodeCronExpression -Expression $Expression -DateTime $NextTime)) { - throw "Looks like something went wrong trying to calculate the next trigger datetime: $($NextTime)" + throw ($msgTable.nextTriggerCalculationErrorMessage -f $NextTime) #"Looks like something went wrong trying to calculate the next trigger datetime: $($NextTime)" } # if before the start or after end then return null diff --git a/src/Private/Endpoints.ps1 b/src/Private/Endpoints.ps1 index 0e0f6c3c7..1cb70a5cc 100644 --- a/src/Private/Endpoints.ps1 +++ b/src/Private/Endpoints.ps1 @@ -282,7 +282,7 @@ function Find-PodeEndpointName { # error? if ($ThrowError) { - throw "Endpoint with protocol '$($Protocol)' and address '$($Address)' or local address '$($_localAddress)' does not exist" + throw ($msgTable.endpointNotExistMessage -f $Protocol, $Address, $_localAddress) #"Endpoint with protocol '$($Protocol)' and address '$($Address)' or local address '$($_localAddress)' does not exist" } return $null @@ -310,7 +310,7 @@ function Get-PodeEndpointByName { # error? if ($ThrowError) { - throw "Endpoint with name '$($Name)' does not exist" + throw ($msgTable.endpointNameNotExistMessage -f $Name) #"Endpoint with name '$($Name)' does not exist" } return $null diff --git a/src/Private/Gui.ps1 b/src/Private/Gui.ps1 index ec5592abf..10a32a695 100644 --- a/src/Private/Gui.ps1 +++ b/src/Private/Gui.ps1 @@ -41,7 +41,7 @@ function Start-PodeGuiRunspace { Start-Sleep -Milliseconds 200 } else { - throw "Failed to connect to URL: $($uri)" + throw ($msgTable.failedToConnectToUrlMessage -f $uri) #"Failed to connect to URL: $($uri)" } } } diff --git a/src/Private/Helpers.ps1 b/src/Private/Helpers.ps1 index d16ea4f92..71066827e 100644 --- a/src/Private/Helpers.ps1 +++ b/src/Private/Helpers.ps1 @@ -190,7 +190,7 @@ function Get-PodeEndpointInfo { # validate that we have a valid ip/host:port address if (!(($Address -imatch "^$($cmbdRgx)$") -or ($Address -imatch "^$($hostRgx)[\:]{0,1}") -or ($Address -imatch "[\:]{0,1}$($portRgx)$"))) { - throw "Failed to parse '$($Address)' as a valid IP/Host:Port address" + throw ($msgTable.failedToParseAddressMessage -f $Address)#"Failed to parse '$($Address)' as a valid IP/Host:Port address" } # grab the ip address/hostname @@ -201,7 +201,7 @@ function Get-PodeEndpointInfo { # ensure we have a valid ip address/hostname if (!(Test-PodeIPAddress -IP $_host)) { - throw "The IP address supplied is invalid: $($_host)" + throw ($msgTable.invalidIpAddressMessage -f $_host) #"The IP address supplied is invalid: $($_host)" } # grab the port @@ -212,7 +212,7 @@ function Get-PodeEndpointInfo { # ensure the port is valid if ($_port -lt 0) { - throw "The port cannot be negative: $($_port)" + throw ($msgTable.invalidPortMessage -f $_port)#"The port cannot be negative: $($_port)" } # return the info @@ -873,7 +873,7 @@ function New-PodePSDrive { # if the path supplied doesn't exist, error if (!(Test-Path $Path)) { - throw "Path does not exist: $($Path)" + throw ($msgTable.pathNotExistMessage -f $Path)#"Path does not exist: $($Path)" } # resolve the path From 8a0af281837edc25f58e78a5e91ba32910a8482c Mon Sep 17 00:00:00 2001 From: mdaneri Date: Wed, 29 May 2024 23:35:14 -0700 Subject: [PATCH 02/67] Pester tests fix --- tests/integration/Authentication.Tests.ps1 | 2 + tests/unit/Authentication.Tests.ps1 | 15 ++-- tests/unit/Context.Tests.ps1 | 1 + tests/unit/Cookies.Tests.ps1 | 1 + tests/unit/CronParser.Tests.ps1 | 1 + tests/unit/Cryptography.Tests.ps1 | 1 + tests/unit/Endware.Tests.ps1 | 1 + tests/unit/Flash.Tests.ps1 | 1 + tests/unit/Handlers.Tests.ps1 | 1 + tests/unit/Headers.Tests.ps1 | 1 + tests/unit/Helpers.Tests.ps1 | 5 +- tests/unit/Logging.Tests.ps1 | 1 + tests/unit/Mappers.Tests.ps1 | 5 +- tests/unit/Metrics.Tests.ps1 | 1 + tests/unit/Middleware.Tests.ps1 | 1 + tests/unit/NameGenerator.Tests.ps1 | 1 + tests/unit/OpenApi.Tests.ps1 | 1 + tests/unit/PrivateOpenApi.Tests.ps1 | 89 +++++++++++----------- tests/unit/Responses.Tests.ps1 | 1 + tests/unit/Routes.Tests.ps1 | 1 + tests/unit/Schedules.Tests.ps1 | 1 + tests/unit/Security.Tests.ps1 | 1 + tests/unit/Server.Tests.ps1 | 1 + tests/unit/Serverless.Tests.ps1 | 1 + tests/unit/Sessions.Tests.ps1 | 1 + tests/unit/State.Tests.ps1 | 1 + tests/unit/Timers.Tests.ps1 | 1 + 27 files changed, 83 insertions(+), 55 deletions(-) diff --git a/tests/integration/Authentication.Tests.ps1 b/tests/integration/Authentication.Tests.ps1 index 67344ad67..9ffc4cb4e 100644 --- a/tests/integration/Authentication.Tests.ps1 +++ b/tests/integration/Authentication.Tests.ps1 @@ -6,6 +6,8 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]integration', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } + Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' + } Describe 'Authentication Requests' { diff --git a/tests/unit/Authentication.Tests.ps1 b/tests/unit/Authentication.Tests.ps1 index d5f529726..5af266048 100644 --- a/tests/unit/Authentication.Tests.ps1 +++ b/tests/unit/Authentication.Tests.ps1 @@ -4,6 +4,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } + Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } $now = [datetime]::UtcNow @@ -148,15 +149,15 @@ Describe 'Test-PodeJwt' { } -Describe "Expand-PodeAuthMerge Tests" { +Describe 'Expand-PodeAuthMerge Tests' { BeforeAll { # Mock the $PodeContext variable $PodeContext = @{ Server = @{ Authentications = @{ Methods = @{ - BasicAuth = @{ Name = 'BasicAuth'; merged = $false } - ApiKeyAuth = @{ Name = 'ApiKeyAuth'; merged = $false } + BasicAuth = @{ Name = 'BasicAuth'; merged = $false } + ApiKeyAuth = @{ Name = 'ApiKeyAuth'; merged = $false } CustomMergedAuth = @{ Name = 'CustomMergedAuth'; merged = $true; Authentications = @('BasicAuth', 'ApiKeyAuth') } } } @@ -164,27 +165,27 @@ Describe "Expand-PodeAuthMerge Tests" { } } - It "Expands discrete authentication methods correctly" { + It 'Expands discrete authentication methods correctly' { $expandedAuthNames = Expand-PodeAuthMerge -Names @('BasicAuth', 'ApiKeyAuth') $expandedAuthNames | Should -Contain 'BasicAuth' $expandedAuthNames | Should -Contain 'ApiKeyAuth' $expandedAuthNames.Count | Should -Be 2 } - It "Expands merged authentication methods into individual components" { + It 'Expands merged authentication methods into individual components' { $expandedAuthNames = Expand-PodeAuthMerge -Names @('CustomMergedAuth') $expandedAuthNames | Should -Contain 'BasicAuth' $expandedAuthNames | Should -Contain 'ApiKeyAuth' $expandedAuthNames.Count | Should -Be 2 } - It "Handles anonymous access special case" { + It 'Handles anonymous access special case' { $expandedAuthNames = Expand-PodeAuthMerge -Names @('%_allowanon_%') $expandedAuthNames | Should -Contain '%_allowanon_%' $expandedAuthNames.Count | Should -Be 1 } - It "Handles empty and invalid inputs" { + It 'Handles empty and invalid inputs' { { Expand-PodeAuthMerge -Names @() } | Should -Throw { Expand-PodeAuthMerge -Names @('NonExistentAuth') } | Should -Throw } diff --git a/tests/unit/Context.Tests.ps1 b/tests/unit/Context.Tests.ps1 index dc89568b1..94cf871b0 100644 --- a/tests/unit/Context.Tests.ps1 +++ b/tests/unit/Context.Tests.ps1 @@ -4,6 +4,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } + Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' $PodeContext = @{ 'Server' = $null; } } diff --git a/tests/unit/Cookies.Tests.ps1 b/tests/unit/Cookies.Tests.ps1 index f9a992fd2..876aea138 100644 --- a/tests/unit/Cookies.Tests.ps1 +++ b/tests/unit/Cookies.Tests.ps1 @@ -4,6 +4,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } + Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'Test-PodeCookie' { It 'Returns true' { diff --git a/tests/unit/CronParser.Tests.ps1 b/tests/unit/CronParser.Tests.ps1 index b5d7454e4..7bb1c7920 100644 --- a/tests/unit/CronParser.Tests.ps1 +++ b/tests/unit/CronParser.Tests.ps1 @@ -4,6 +4,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } + Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'Get-PodeCronFields' { diff --git a/tests/unit/Cryptography.Tests.ps1 b/tests/unit/Cryptography.Tests.ps1 index 1345986c5..60d0a87ab 100644 --- a/tests/unit/Cryptography.Tests.ps1 +++ b/tests/unit/Cryptography.Tests.ps1 @@ -2,6 +2,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } + Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'Invoke-PodeHMACSHA256Hash' { diff --git a/tests/unit/Endware.Tests.ps1 b/tests/unit/Endware.Tests.ps1 index ba7458420..4a41c1581 100644 --- a/tests/unit/Endware.Tests.ps1 +++ b/tests/unit/Endware.Tests.ps1 @@ -2,6 +2,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } + Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'Invoke-PodeEndware' { diff --git a/tests/unit/Flash.Tests.ps1 b/tests/unit/Flash.Tests.ps1 index 98b613611..e75d741cc 100644 --- a/tests/unit/Flash.Tests.ps1 +++ b/tests/unit/Flash.Tests.ps1 @@ -5,6 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } + Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'Add-PodeFlashMessage' { diff --git a/tests/unit/Handlers.Tests.ps1 b/tests/unit/Handlers.Tests.ps1 index 02d4d4bc7..1895ee15f 100644 --- a/tests/unit/Handlers.Tests.ps1 +++ b/tests/unit/Handlers.Tests.ps1 @@ -5,6 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } + Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' $PodeContext = @{ 'Server' = $null; } } diff --git a/tests/unit/Headers.Tests.ps1 b/tests/unit/Headers.Tests.ps1 index 003671688..eccd1d30e 100644 --- a/tests/unit/Headers.Tests.ps1 +++ b/tests/unit/Headers.Tests.ps1 @@ -4,6 +4,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } + Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'Test-PodeHeader' { Context 'WebServer' { diff --git a/tests/unit/Helpers.Tests.ps1 b/tests/unit/Helpers.Tests.ps1 index d80e5c543..dd59ea60e 100644 --- a/tests/unit/Helpers.Tests.ps1 +++ b/tests/unit/Helpers.Tests.ps1 @@ -4,6 +4,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } + Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'Get-PodeType' { @@ -1725,13 +1726,13 @@ Describe 'ConvertTo-PodeYamlInternal Tests' { } It 'Converts arrays correctly' { - $result = ConvertTo-PodeYamlInternal -InputObject @('one', 'two', 'three') -NoNewLine + $result = ConvertTo-PodeYamlInternal -InputObject @('one', 'two', 'three') -NoNewLine $expected = (@' - one - two - three '@) - $result | Should -Be ($expected.Trim() -Replace "`r`n","`n") + $result | Should -Be ($expected.Trim() -Replace "`r`n", "`n") } It 'Converts hashtables correctly' { diff --git a/tests/unit/Logging.Tests.ps1 b/tests/unit/Logging.Tests.ps1 index 3d54a6a2a..74a28cec0 100644 --- a/tests/unit/Logging.Tests.ps1 +++ b/tests/unit/Logging.Tests.ps1 @@ -4,6 +4,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } + Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'Get-PodeLogger' { It 'Returns null as the logger does not exist' { diff --git a/tests/unit/Mappers.Tests.ps1 b/tests/unit/Mappers.Tests.ps1 index a8557fa3f..abb8dc845 100644 --- a/tests/unit/Mappers.Tests.ps1 +++ b/tests/unit/Mappers.Tests.ps1 @@ -4,6 +4,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } + Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'Get-PodeContentType' { Context 'No extension supplied' { @@ -1287,7 +1288,7 @@ Describe 'Get-PodeContentType' { '.z' = 'application/x-compress' '.zip' = 'application/zip' } } - It "Returns correct content type for <_>" -ForEach ($types.Keys) { + It 'Returns correct content type for <_>' -ForEach ($types.Keys) { Get-PodeContentType -Extension $_ | Should -Be $types[$_] } @@ -1456,7 +1457,7 @@ Describe 'Get-PodeStatusDescription' { '511' = 'Network Authentication Required' '526' = 'Invalid SSL Certificate' } } - It "Returns description for the <_> StatusCode" -ForEach ($codes.Keys) { + It 'Returns description for the <_> StatusCode' -ForEach ($codes.Keys) { Get-PodeStatusDescription -StatusCode $_ | Should -Be $codes[$_] } diff --git a/tests/unit/Metrics.Tests.ps1 b/tests/unit/Metrics.Tests.ps1 index 3430ac158..6ce9bd00c 100644 --- a/tests/unit/Metrics.Tests.ps1 +++ b/tests/unit/Metrics.Tests.ps1 @@ -4,6 +4,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } + Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' $PodeContext = @{ Metrics = @{ diff --git a/tests/unit/Middleware.Tests.ps1 b/tests/unit/Middleware.Tests.ps1 index f4b7034d9..c3ddd6b58 100644 --- a/tests/unit/Middleware.Tests.ps1 +++ b/tests/unit/Middleware.Tests.ps1 @@ -5,6 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } + Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'Get-PodeInbuiltMiddleware' { diff --git a/tests/unit/NameGenerator.Tests.ps1 b/tests/unit/NameGenerator.Tests.ps1 index 140bf974c..a3863037f 100644 --- a/tests/unit/NameGenerator.Tests.ps1 +++ b/tests/unit/NameGenerator.Tests.ps1 @@ -2,6 +2,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } + Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'Get-PodeRandomName' { diff --git a/tests/unit/OpenApi.Tests.ps1 b/tests/unit/OpenApi.Tests.ps1 index a9ceced07..b39f2008a 100644 --- a/tests/unit/OpenApi.Tests.ps1 +++ b/tests/unit/OpenApi.Tests.ps1 @@ -5,6 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } +Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture "en-us" -FileName "Pode" } Describe 'OpenApi' { diff --git a/tests/unit/PrivateOpenApi.Tests.ps1 b/tests/unit/PrivateOpenApi.Tests.ps1 index c9b1c4a89..e0f8e1bee 100644 --- a/tests/unit/PrivateOpenApi.Tests.ps1 +++ b/tests/unit/PrivateOpenApi.Tests.ps1 @@ -5,6 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } + Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'PrivateOpenApi' { @@ -13,11 +14,11 @@ Describe 'PrivateOpenApi' { function GetPodeContext { return @{ Server = @{ - Security = @{ + Security = @{ autoheaders = $false } - Authentications=@{} - OpenAPI = @{ + Authentications = @{} + OpenAPI = @{ SelectedDefinitionTag = 'default' Definitions = @{ default = Get-PodeOABaseObject @@ -287,32 +288,32 @@ Describe 'PrivateOpenApi' { } - Describe "Set-PodeOAAuth Tests" { + Describe 'Set-PodeOAAuth Tests' { BeforeAll { # Mock Test-PodeAuthExists to simulate authentication method existence Mock Test-PodeAuthExists { return $true } } - It "Applies multiple authentication methods to a route" { + It 'Applies multiple authentication methods to a route' { $route = @{ OpenApi = @{} } { Set-PodeOAAuth -Route @($route) -Name @('BasicAuth', 'ApiKeyAuth') } | Should -Not -Throw $route.OpenApi.Authentication.Count | Should -Be 2 } - It "Throws an exception for non-existent authentication method" { + It 'Throws an exception for non-existent authentication method' { Mock Test-PodeAuthExists { return $false } $route = @{ OpenApi = @{} } { Set-PodeOAAuth -Route @($route) -Name 'InvalidAuth' } | Should -Throw } - It "Allows anonymous access" { + It 'Allows anonymous access' { $route = @{ OpenApi = @{ Authentication = @{} } } { Set-PodeOAAuth -Route @($route) -Name 'BasicAuth' -AllowAnon } | Should -Not -Throw $route.OpenApi.Authentication.keys -contains '%_allowanon_%' | Should -Be $true $route.OpenApi.Authentication['%_allowanon_%'] | Should -BeNullOrEmpty } - It "Applies both authenticated and anonymous access to a route" { + It 'Applies both authenticated and anonymous access to a route' { $route = @{ OpenApi = @{} } { Set-PodeOAAuth -Route @($route) -Name @('BasicAuth') -AllowAnon } | Should -Not -Throw $route.OpenApi.Authentication.Count | Should -Be 2 @@ -321,8 +322,8 @@ Describe 'PrivateOpenApi' { } } - Describe "Get-PodeOABaseObject Tests" { - It "Returns the correct base OpenAPI object structure" { + Describe 'Get-PodeOABaseObject Tests' { + It 'Returns the correct base OpenAPI object structure' { $baseObject = Get-PodeOABaseObject $baseObject | Should -BeOfType [hashtable] @@ -335,20 +336,20 @@ Describe 'PrivateOpenApi' { } } - Describe "Initialize-PodeOpenApiTable Tests" { - It "Initializes OpenAPI table with default settings" { + Describe 'Initialize-PodeOpenApiTable Tests' { + It 'Initializes OpenAPI table with default settings' { $openApiTable = Initialize-PodeOpenApiTable $openApiTable | Should -BeOfType [hashtable] - $openApiTable.DefinitionTagSelectionStack -is [System.Collections.Generic.Stack[System.Object]] | Should -BeTrue - $openApiTable.DefaultDefinitionTag | Should -Be "default" - $openApiTable.SelectedDefinitionTag | Should -Be "default" + $openApiTable.DefinitionTagSelectionStack -is [System.Collections.Generic.Stack[System.Object]] | Should -BeTrue + $openApiTable.DefaultDefinitionTag | Should -Be 'default' + $openApiTable.SelectedDefinitionTag | Should -Be 'default' $openApiTable.Definitions | Should -BeOfType [hashtable] - $openApiTable.Definitions["default"] | Should -BeOfType [hashtable] + $openApiTable.Definitions['default'] | Should -BeOfType [hashtable] } - It "Initializes OpenAPI table with custom definition tag" { - $customTag = "api-v1" + It 'Initializes OpenAPI table with custom definition tag' { + $customTag = 'api-v1' $openApiTable = Initialize-PodeOpenApiTable -DefaultDefinitionTag $customTag $openApiTable.DefaultDefinitionTag | Should -Be $customTag @@ -358,7 +359,7 @@ Describe 'PrivateOpenApi' { } } - Describe "ConvertTo-PodeOASchemaObjectProperty Tests" { + Describe 'ConvertTo-PodeOASchemaObjectProperty Tests' { BeforeAll { # Mock ConvertTo-PodeOASchemaProperty to simulate its behavior Mock ConvertTo-PodeOASchemaProperty { return @{ type = $_.type; processed = $true } } @@ -366,57 +367,57 @@ Describe 'PrivateOpenApi' { It "Converts a list of properties excluding 'allOf', 'oneOf', 'anyOf'" { $properties = @( - @{ name = "prop1"; type = "string" }, - @{ name = "prop2"; type = "integer" }, - @{ name = "prop3"; type = "allOf" } + @{ name = 'prop1'; type = 'string' }, + @{ name = 'prop2'; type = 'integer' }, + @{ name = 'prop3'; type = 'allOf' } ) - $result = ConvertTo-PodeOASchemaObjectProperty -Properties $properties -DefinitionTag "myTag" + $result = ConvertTo-PodeOASchemaObjectProperty -Properties $properties -DefinitionTag 'myTag' $result.Count | Should -Be 2 - $result["prop1"].processed | Should -Be $true - $result["prop2"].processed | Should -Be $true - $result.ContainsKey("prop3") | Should -Be $false + $result['prop1'].processed | Should -Be $true + $result['prop2'].processed | Should -Be $true + $result.ContainsKey('prop3') | Should -Be $false } - It "Forms valid schema object for non-excluded properties" { + It 'Forms valid schema object for non-excluded properties' { $properties = @( - @{ name = "prop1"; type = "string" } + @{ name = 'prop1'; type = 'string' } ) - $result = ConvertTo-PodeOASchemaObjectProperty -Properties $properties -DefinitionTag "myTag" + $result = ConvertTo-PodeOASchemaObjectProperty -Properties $properties -DefinitionTag 'myTag' $result.Count | Should -Be 1 - $result["prop1"].type | Should -Be "string" - $result["prop1"].processed | Should -Be $true + $result['prop1'].type | Should -Be 'string' + $result['prop1'].processed | Should -Be $true } } - Describe "ConvertTo-PodeOAObjectSchema Tests" { + Describe 'ConvertTo-PodeOAObjectSchema Tests' { Mock ConvertTo-PodeOASchemaProperty { return @{ mockedResult = $true } } Mock Test-PodeOAComponentInternal { return $true } Mock Test-PodeOAVersion { param($Version) $Version -le 3.0 } - It "Converts valid content to schema object" { + It 'Converts valid content to schema object' { $content = @{ - "application/json" = @{ type = "String" } + 'application/json' = @{ type = 'String' } } - $result = ConvertTo-PodeOAObjectSchema -Content $content -DefinitionTag "myTag" + $result = ConvertTo-PodeOAObjectSchema -Content $content -DefinitionTag 'myTag' - $result.ContainsKey("application/json") | Should -Be $true - $result["application/json"].schema.type | Should -Be 'string' + $result.ContainsKey('application/json') | Should -Be $true + $result['application/json'].schema.type | Should -Be 'string' } - It "Handles array structures correctly" { + It 'Handles array structures correctly' { $content = @{ - "application/json" = @{ - __array = $true - __content = @{ type = "String" } + 'application/json' = @{ + __array = $true + __content = @{ type = 'String' } } } - $result = ConvertTo-PodeOAObjectSchema -Content $content -DefinitionTag "myTag" + $result = ConvertTo-PodeOAObjectSchema -Content $content -DefinitionTag 'myTag' - $result["application/json"].schema.type | Should -Be "array" - $result["application/json"].schema.Items.type | Should -Be 'string' + $result['application/json'].schema.type | Should -Be 'array' + $result['application/json'].schema.Items.type | Should -Be 'string' } } diff --git a/tests/unit/Responses.Tests.ps1 b/tests/unit/Responses.Tests.ps1 index 00e02dea4..9bd533b69 100644 --- a/tests/unit/Responses.Tests.ps1 +++ b/tests/unit/Responses.Tests.ps1 @@ -5,6 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } + Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture "en-us" -FileName "Pode" } diff --git a/tests/unit/Routes.Tests.ps1 b/tests/unit/Routes.Tests.ps1 index 88025a2f7..004f8d72a 100644 --- a/tests/unit/Routes.Tests.ps1 +++ b/tests/unit/Routes.Tests.ps1 @@ -5,6 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } + Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' $PodeContext = @{ 'Server' = $null; } } diff --git a/tests/unit/Schedules.Tests.ps1 b/tests/unit/Schedules.Tests.ps1 index 05e688db1..e1705db87 100644 --- a/tests/unit/Schedules.Tests.ps1 +++ b/tests/unit/Schedules.Tests.ps1 @@ -5,6 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } + Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'Find-PodeSchedule' { Context 'Invalid parameters supplied' { diff --git a/tests/unit/Security.Tests.ps1 b/tests/unit/Security.Tests.ps1 index 9862b9510..778c20e0f 100644 --- a/tests/unit/Security.Tests.ps1 +++ b/tests/unit/Security.Tests.ps1 @@ -5,6 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } + Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' $PodeContext = @{ 'Server' = $null; } } diff --git a/tests/unit/Server.Tests.ps1 b/tests/unit/Server.Tests.ps1 index ff9bd1327..052330a2d 100644 --- a/tests/unit/Server.Tests.ps1 +++ b/tests/unit/Server.Tests.ps1 @@ -5,6 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } + Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' $PodeContext = @{ diff --git a/tests/unit/Serverless.Tests.ps1 b/tests/unit/Serverless.Tests.ps1 index 6366d7895..a0f35b6fa 100644 --- a/tests/unit/Serverless.Tests.ps1 +++ b/tests/unit/Serverless.Tests.ps1 @@ -5,6 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } + Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'Start-PodeAzFuncServer' { BeforeAll { diff --git a/tests/unit/Sessions.Tests.ps1 b/tests/unit/Sessions.Tests.ps1 index 5b5deb390..6a6a81c01 100644 --- a/tests/unit/Sessions.Tests.ps1 +++ b/tests/unit/Sessions.Tests.ps1 @@ -5,6 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } + Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' $now = [datetime]::UtcNow } diff --git a/tests/unit/State.Tests.ps1 b/tests/unit/State.Tests.ps1 index b7feec3b5..ee9143505 100644 --- a/tests/unit/State.Tests.ps1 +++ b/tests/unit/State.Tests.ps1 @@ -5,6 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } + Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' $PodeContext = @{ 'Server' = $null; } } diff --git a/tests/unit/Timers.Tests.ps1 b/tests/unit/Timers.Tests.ps1 index c8b6e6076..3938dda18 100644 --- a/tests/unit/Timers.Tests.ps1 +++ b/tests/unit/Timers.Tests.ps1 @@ -5,6 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } + Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' $PodeContext = @{ 'Server' = $null; } } From 1d95dde358b12c8f5a9399b8c962541c637bcb9b Mon Sep 17 00:00:00 2001 From: mdaneri Date: Thu, 30 May 2024 14:31:17 -0700 Subject: [PATCH 03/67] 3rd drop fix build process add language test --- pode.build.ps1 | 4 +- src/Locales/ar/Pode.psd1 | 110 +++++++++++++++++++++++------- src/Locales/de/Pode.psd1 | 108 +++++++++++++++++++++++------ src/Locales/en/Pode.psd1 | 108 +++++++++++++++++++++++------ src/Locales/es/Pode.psd1 | 108 +++++++++++++++++++++++------ src/Locales/fr/Pode.psd1 | 108 +++++++++++++++++++++++------ src/Locales/it/Pode.psd1 | 110 +++++++++++++++++++++++------- src/Locales/ja/Pode.psd1 | 108 +++++++++++++++++++++++------ src/Locales/pl/Pode.psd1 | 88 ++++++++++++++++++++++++ src/Locales/pt/Pode.psd1 | 88 ++++++++++++++++++++++++ src/Locales/zn/Pode.psd1 | 108 +++++++++++++++++++++++------ src/Pode.Internal.psd1 | 1 + src/Pode.psm1 | 7 +- src/Private/Authentication.ps1 | 4 +- src/Private/AutoImport.ps1 | 4 +- src/Private/Context.ps1 | 4 +- src/Private/CronParser.ps1 | 20 +++--- src/Private/Cryptography.ps1 | 16 ++--- src/Private/Endpoints.ps1 | 4 +- src/Private/Gui.ps1 | 2 +- src/Private/Helpers.ps1 | 45 ++++++------ src/Private/Middleware.ps1 | 4 +- src/Private/OpenApi.ps1 | 34 ++++----- src/Private/Routes.ps1 | 10 +-- src/Private/ScopedVariables.ps1 | 4 +- src/Private/Secrets.ps1 | 12 ++-- src/Private/Security.ps1 | 20 +++--- src/Private/Server.ps1 | 2 +- src/Private/ServiceServer.ps1 | 2 +- src/Private/Sessions.ps1 | 4 +- src/Private/Setup.ps1 | 2 +- src/Private/SmtpServer.ps1 | 2 +- src/Private/Tasks.ps1 | 2 +- src/Private/Verbs.ps1 | 4 +- src/Public/Access.ps1 | 12 ++-- tests/unit/Helpers.Tests.ps1 | 2 +- tests/unit/Localization.Tests.ps1 | 37 ++++++++++ tests/unit/Mappers.Tests.ps1 | 2 +- tests/unit/Routes.Tests.ps1 | 2 +- 39 files changed, 1021 insertions(+), 291 deletions(-) create mode 100644 src/Locales/pl/Pode.psd1 create mode 100644 src/Locales/pt/Pode.psd1 create mode 100644 tests/unit/Localization.Tests.ps1 diff --git a/pode.build.ps1 b/pode.build.ps1 index 6fa324e7b..887192cef 100644 --- a/pode.build.ps1 +++ b/pode.build.ps1 @@ -427,7 +427,7 @@ Task Pack Build, { New-Item -Path $path -ItemType Directory -Force | Out-Null # which source folders do we need? create them and copy their contents - $folders = @('Private', 'Public', 'Misc', 'Libs') + $folders = @('Private', 'Public', 'Misc', 'Libs','Locales') $folders | ForEach-Object { New-Item -ItemType Directory -Path (Join-Path $path $_) -Force | Out-Null Copy-Item -Path "./src/$($_)/*" -Destination (Join-Path $path $_) -Force -Recurse | Out-Null @@ -652,7 +652,7 @@ Task Install-Module -If ($Version) Pack, { $path = './pkg' # copy over folders - $folders = @('Private', 'Public', 'Misc', 'Libs', 'licenses') + $folders = @('Private', 'Public', 'Misc', 'Libs', 'licenses','Locales') $folders | ForEach-Object { Copy-Item -Path (Join-Path -Path $path -ChildPath $_) -Destination $dest -Force -Recurse | Out-Null } diff --git a/src/Locales/ar/Pode.psd1 b/src/Locales/ar/Pode.psd1 index 323254bb1..ad6ea3766 100644 --- a/src/Locales/ar/Pode.psd1 +++ b/src/Locales/ar/Pode.psd1 @@ -1,24 +1,88 @@ ConvertFrom-StringData -StringData @' -adModuleWindowsOnlyMessage = وحدة Active Directory متاحة فقط على نظام Windows -adModuleNotInstalledMessage = وحدة Active Directory غير مثبتة -secretManagementModuleNotInstalledMessage = وحدة Microsoft.PowerShell.SecretManagement غير مثبتة -secretVaultAlreadyRegisteredMessage = تم تسجيل خزنة سرية بالاسم '{0}' بالفعل أثناء الاستيراد التلقائي للخزن السرية -failedToOpenRunspacePoolMessage = فشل في فتح RunspacePool: {0} -cronExpressionInvalidMessage = يجب أن تتكون تعبير Cron فقط من 5 أجزاء: {0} -invalidAliasFoundMessage = تم العثور على اسم مستعار غير صالح {0}: {1} -invalidAtomCharacterMessage = حرف ذري غير صالح: {0} -minValueGreaterThanMaxMessage = يجب ألا تكون القيمة الدنيا لـ {0} أكبر من القيمة القصوى -minValueInvalidMessage = القيمة الدنيا '{0}' لـ {1} غير صالحة، يجب أن تكون أكبر من أو تساوي {2} -maxValueInvalidMessage = القيمة القصوى '{0}' لـ {1} غير صالحة، يجب أن تكون أقل من أو تساوي {2} -valueOutOfRangeMessage = القيمة '{0}' لـ {1} غير صالحة، يجب أن تكون بين {2} و {3} -daysInMonthExceededMessage = {0} يحتوي فقط على {1} أيام، ولكن تم توفير {2} -nextTriggerCalculationErrorMessage = يبدو أن هناك خطأ ما عند محاولة حساب تاريخ ووقت التشغيل التالي: {0} -incompatiblePodeDllMessage = تم تحميل إصدار غير متوافق موجود من Pode.DLL {0}. الإصدار {1} مطلوب. افتح جلسة Powershell/pwsh جديدة وحاول مرة أخرى. -endpointNotExistMessage = لا يوجد نقطة نهاية بالبروتوكول '{0}' والعنوان '{1}' أو العنوان المحلي '{2}' -endpointNameNotExistMessage = لا يوجد نقطة نهاية بالاسم '{0}' -failedToConnectToUrlMessage = فشل الاتصال بعنوان URL: {0} -failedToParseAddressMessage = فشل في تحليل '{0}' كعنوان IP/Host:Port صالح -invalidIpAddressMessage = عنوان IP المقدم غير صالح: {0} -invalidPortMessage = لا يمكن أن يكون المنفذ سالبًا: {0} -pathNotExistMessage = المسار غير موجود: {0} -'@ \ No newline at end of file +adModuleWindowsOnlyExceptionMessage = وحدة Active Directory متاحة فقط على نظام Windows. +adModuleNotInstalledExceptionMessage = وحدة Active Directory غير مثبتة. +secretManagementModuleNotInstalledExceptionMessage = وحدة Microsoft.PowerShell.SecretManagement غير مثبتة. +secretVaultAlreadyRegisteredExceptionMessage = تم تسجيل خزنة سرية باسم '{0}' بالفعل أثناء استيراد الخزن السرية تلقائيًا. +failedToOpenRunspacePoolExceptionMessage = فشل في فتح RunspacePool: {0} +cronExpressionInvalidExceptionMessage = يجب أن تتكون تعبير Cron من 5 أجزاء فقط: {0} +invalidAliasFoundExceptionMessage = تم العثور على اسم مستعار غير صالح {0}: {1} +invalidAtomCharacterExceptionMessage = حرف الذرة غير صالح: {0} +minValueGreaterThanMaxExceptionMessage = يجب ألا تكون القيمة الدنيا {0} أكبر من القيمة القصوى. +minValueInvalidExceptionMessage = القيمة الدنيا '{0}' لـ {1} غير صالحة، يجب أن تكون أكبر من/أو تساوي {2} +maxValueInvalidExceptionMessage = القيمة القصوى '{0}' لـ {1} غير صالحة، يجب أن تكون أقل من/أو تساوي {2} +valueOutOfRangeExceptionMessage = القيمة '{0}' لـ {1} غير صالحة، يجب أن تكون بين {2} و {3} +daysInMonthExceededExceptionMessage = يحتوي {0} على {1} أيام فقط، ولكن تم توفير {2}. +nextTriggerCalculationErrorExceptionMessage = يبدو أن هناك خطأ ما أثناء محاولة حساب تاريخ المشغل التالي: {0} +incompatiblePodeDllExceptionMessage = يتم تحميل إصدار غير متوافق من Pode.DLL {0}. الإصدار {1} مطلوب. افتح جلسة Powershell/pwsh جديدة وأعد المحاولة. +endpointNotExistExceptionMessage = نقطة النهاية مع البروتوكول '{0}' والعنوان '{1}' أو العنوان المحلي '{2}' غير موجودة. +endpointNameNotExistExceptionMessage = نقطة النهاية بالاسم '{0}' غير موجودة. +failedToConnectToUrlExceptionMessage = فشل الاتصال بعنوان URL: {0} +failedToParseAddressExceptionMessage = فشل في تحليل '{0}' كعنوان IP/مضيف:منفذ صالح +invalidIpAddressExceptionMessage = عنوان IP المقدم غير صالح: {0} +invalidPortExceptionMessage = لا يمكن أن يكون المنفذ سالبًا: {0} +pathNotExistExceptionMessage = المسار غير موجود: {0} +noSecretForHmac256ExceptionMessage = لم يتم تقديم أي سر لتجزئة HMAC256. +noSecretForHmac384ExceptionMessage = لم يتم تقديم أي سر لتجزئة HMAC384. +noSecretForHmac512ExceptionMessage = لم يتم تقديم أي سر لتجزئة HMAC512. +noSecretForJwtSignatureExceptionMessage = لم يتم تقديم أي سر لتوقيع JWT. +noSecretExpectedForNoSignatureExceptionMessage = لم يكن من المتوقع تقديم أي سر لعدم وجود توقيع. +unsupportedJwtAlgorithmExceptionMessage = خوارزمية JWT غير مدعومة حاليًا: {0} +invalidBase64JwtExceptionMessage = تم العثور على قيمة مشفرة بتنسيق Base64 غير صالحة في JWT +invalidJsonJwtExceptionMessage = تم العثور على قيمة JSON غير صالحة في JWT +unsupportedFunctionInServerlessContextExceptionMessage = الدالة {0} غير مدعومة في سياق بدون خادم. +invalidPathWildcardOrDirectoryExceptionMessage = لا يمكن أن يكون المسار المقدم عبارة عن حرف بدل أو دليل: {0} +invalidExceptionTypeExceptionMessage = الاستثناء من نوع غير صالح، يجب أن يكون إما WebException أو HttpRequestException، ولكن تم الحصول عليه: {0} +pathToLoadNotFoundExceptionMessage = لم يتم العثور على المسار لتحميل {0}: {1} +singleValueForIntervalExceptionMessage = يمكنك تقديم قيمة {0} واحدة فقط عند استخدام الفواصل الزمنية. +scriptErrorExceptionMessage = خطأ '{0}' في البرنامج النصي {1} {2} (السطر {3}) الحرف {4} أثناء تنفيذ {5} على الكائن {6} 'الصنف: {7} الصنف الأساسي: {8} +noScriptBlockSuppliedExceptionMessage = لم يتم تقديم أي ScriptBlock. +iisAspnetcoreTokenMissingExceptionMessage = IIS ASPNETCORE_TOKEN مفقود. +invalidContentTypeForSchemaExceptionMessage = تم العثور على نوع محتوى غير صالح للمخطط: {0} +propertiesParameterWithoutNameExceptionMessage = لا يمكن استخدام معلمات الخصائص إذا لم يكن لدى الخاصية اسم. +multiTypePropertiesRequireOpenApi31ExceptionMessage = تتطلب خصائص الأنواع المتعددة إصدار OpenApi 3.1 أو أعلى. +openApiVersionPropertyMandatoryExceptionMessage = خاصية إصدار OpenApi إلزامية. +webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = ميزة Webhooks غير مدعومة في OpenAPI v3.0.x +authenticationMethodDoesNotExistExceptionMessage = طريقة المصادقة غير موجودة: {0} +unsupportedObjectExceptionMessage = الكائن غير مدعوم +validationOfAnyOfSchemaNotSupportedExceptionMessage = التحقق من مخطط يتضمن 'أي منها' غير مدعوم. +validationOfOneOfSchemaNotSupportedExceptionMessage = التحقق من مخطط يتضمن 'واحد منها' غير مدعوم. +cannotCreatePropertyWithoutTypeExceptionMessage = لا يمكن إنشاء الخاصية لأنه لم يتم تعريف نوع. +paramsNoAdditionalPropertiesExclusiveExceptionMessage = المعلمات -NoAdditionalProperties و -AdditionalProperties تتعارض مع بعضها البعض. +headerMustHaveNameInEncodingContextExceptionMessage = يجب أن يحتوي الرأس على اسم عند استخدامه في سياق الترميز. +descriptionRequiredExceptionMessage = الوصف مطلوب. +openApiDocumentNotCompliantExceptionMessage = مستند OpenAPI غير متوافق. +noComponentInDefinitionExceptionMessage = لا توجد مكون من نوع {0} باسم {1} متاح في تعريف {2}. +methodPathAlreadyDefinedExceptionMessage = [{0}] {1}: تم التعريف بالفعل. +methodPathAlreadyDefinedForUrlExceptionMessage = [{0}] {1}: تم التعريف بالفعل لـ {2} +invalidMiddlewareTypeExceptionMessage = أحد مكونات Middleware المقدمة من نوع غير صالح. كان المتوقع إما ScriptBlock أو Hashtable، ولكن تم الحصول عليه: {0} +hashtableMiddlewareNoLogicExceptionMessage = مكون Middleware من نوع Hashtable المقدم لا يحتوي على منطق معرف. +invalidLogicTypeInHashtableMiddlewareExceptionMessage = مكون Middleware من نوع Hashtable المقدم يحتوي على نوع منطق غير صالح. كان المتوقع ScriptBlock، ولكن تم الحصول عليه: {0} +scopedVariableAlreadyDefinedExceptionMessage = المتغير المحدد بالفعل معرف: {0} +valueForUsingVariableNotFoundExceptionMessage = لم يتم العثور على قيمة لـ `$using:{0}`. +unlockSecretRequiredExceptionMessage = خاصية 'UnlockSecret' مطلوبة عند استخدام Microsoft.PowerShell.SecretStore +unlockSecretButNoScriptBlockExceptionMessage = تم تقديم سر الفتح لنوع خزنة سرية مخصصة، ولكن لم يتم تقديم ScriptBlock الفتح. +noUnlockScriptBlockForVaultExceptionMessage = لم يتم تقديم ScriptBlock الفتح لفتح الخزنة '{0}' +noSetScriptBlockForVaultExceptionMessage = لم يتم تقديم ScriptBlock الإعداد لتحديث/إنشاء الأسرار في الخزنة '{0}' +noRemoveScriptBlockForVaultExceptionMessage = لم يتم تقديم ScriptBlock الإزالة لإزالة الأسرار من الخزنة '{0}' +invalidSecretValueTypeExceptionMessage = قيمة السر من نوع غير صالح. الأنواع المتوقعة: String، SecureString، HashTable، Byte[]، أو PSCredential. ولكن تم الحصول عليه: {0} +limitValueCannotBeZeroOrLessExceptionMessage = لا يمكن أن تكون القيمة الحدية 0 أو أقل لـ {0} +secondsValueCannotBeZeroOrLessExceptionMessage = لا يمكن أن تكون قيمة الثواني 0 أو أقل لـ {0} +failedToCreateOpenSslCertExceptionMessage = فشل في إنشاء شهادة openssl: {0} +certificateThumbprintsNameSupportedOnWindowsExceptionMessage = بصمات الإبهام/الاسم للشهادة مدعومة فقط على Windows. +noCertificateFoundExceptionMessage = لم يتم العثور على شهادة في {0}\{1} لـ '{2}' +runspacePoolFailedToLoadExceptionMessage = فشل تحميل RunspacePool لـ {0}. +noServiceHandlersDefinedExceptionMessage = لم يتم تعريف أي معالجات خدمة. +noSessionToSetOnResponseExceptionMessage = لا توجد جلسة متاحة لتعيينها على الاستجابة. +noSessionToCalculateDataHashExceptionMessage = لا توجد جلسة متاحة لحساب تجزئة البيانات. +moduleOrVersionNotFoundExceptionMessage = لم يتم العثور على الوحدة أو الإصدار على {0}: {1}@{2} +noSmtpHandlersDefinedExceptionMessage = لم يتم تعريف أي معالجات SMTP. +taskTimedOutExceptionMessage = انتهت المهلة الزمنية للمهمة بعد {0}ms. +verbAlreadyDefinedExceptionMessage = [الفعل] {0}: تم التعريف بالفعل +verbAlreadyDefinedForUrlExceptionMessage = [الفعل] {0}: تم التعريف بالفعل لـ {1} +pathOrScriptBlockRequiredExceptionMessage = مطلوب مسار أو ScriptBlock للحصول على قيم الوصول المخصصة. +accessMethodAlreadyDefinedExceptionMessage = طريقة الوصول معرفة بالفعل: {0} +accessMethodNotExistForMergingExceptionMessage = طريقة الوصول غير موجودة للدمج: {0} +routeAlreadyContainsCustomAccessExceptionMessage = المسار '[{0}] {1}' يحتوي بالفعل على وصول مخصص باسم '{2}' +accessMethodNotExistExceptionMessage = طريقة الوصول غير موجودة: {0} +pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = ميزة PathItems غير مدعومة في OpenAPI v3.0.x +'@ diff --git a/src/Locales/de/Pode.psd1 b/src/Locales/de/Pode.psd1 index 0e38fb2a5..5776e7c5b 100644 --- a/src/Locales/de/Pode.psd1 +++ b/src/Locales/de/Pode.psd1 @@ -1,24 +1,88 @@ ConvertFrom-StringData -StringData @' -adModuleWindowsOnlyMessage = Das Active Directory-Modul ist nur unter Windows verfügbar -adModuleNotInstalledMessage = Das Active Directory-Modul ist nicht installiert -secretManagementModuleNotInstalledMessage = Das Microsoft.PowerShell.SecretManagement-Modul ist nicht installiert -secretVaultAlreadyRegisteredMessage = Ein Secret Vault mit dem Namen '{0}' wurde bereits beim automatischen Importieren von Secret Vaults registriert -failedToOpenRunspacePoolMessage = Fehler beim Öffnen des RunspacePool: {0} -cronExpressionInvalidMessage = Cron-Ausdruck sollte nur aus 5 Teilen bestehen: {0} -invalidAliasFoundMessage = Ungültiger {0} Alias gefunden: {1} -invalidAtomCharacterMessage = Ungültiges Atomzeichen: {0} -minValueGreaterThanMaxMessage = Der Mindestwert für {0} sollte nicht größer als der Höchstwert sein -minValueInvalidMessage = Der Mindestwert '{0}' für {1} ist ungültig, sollte größer oder gleich {2} sein -maxValueInvalidMessage = Der Höchstwert '{0}' für {1} ist ungültig, sollte kleiner oder gleich {2} sein -valueOutOfRangeMessage = Der Wert '{0}' für {1} ist ungültig, sollte zwischen {2} und {3} liegen -daysInMonthExceededMessage = {0} hat nur {1} Tage, aber {2} wurde angegeben -nextTriggerCalculationErrorMessage = Es scheint, dass beim Versuch, das nächste Trigger-Datum und die nächste Uhrzeit zu berechnen, etwas schiefgelaufen ist: {0} -incompatiblePodeDllMessage = Eine vorhandene inkompatible Version von Pode.DLL {0} ist geladen. Version {1} wird benötigt. Öffnen Sie eine neue Powershell/pwsh-Sitzung und versuchen Sie es erneut. -endpointNotExistMessage = Ein Endpunkt mit dem Protokoll '{0}' und der Adresse '{1}' oder der lokalen Adresse '{2}' existiert nicht -endpointNameNotExistMessage = Ein Endpunkt mit dem Namen '{0}' existiert nicht -failedToConnectToUrlMessage = Fehler beim Verbinden mit der URL: {0} -failedToParseAddressMessage = Fehler beim Parsen von '{0}' als gültige IP/Host:Port-Adresse -invalidIpAddressMessage = Die angegebene IP-Adresse ist ungültig: {0} -invalidPortMessage = Der Port kann nicht negativ sein: {0} -pathNotExistMessage = Pfad existiert nicht: {0} +adModuleWindowsOnlyExceptionMessage = Active Directory-Modul nur unter Windows verfügbar. +adModuleNotInstalledExceptionMessage = Das Active Directory-Modul ist nicht installiert. +secretManagementModuleNotInstalledExceptionMessage = Das Modul Microsoft.PowerShell.SecretManagement ist nicht installiert. +secretVaultAlreadyRegisteredExceptionMessage = Ein Geheimtresor mit dem Namen '{0}' wurde bereits beim automatischen Importieren von Geheimtresoren registriert. +failedToOpenRunspacePoolExceptionMessage = Fehler beim Öffnen des Runspace-Pools: {0} +cronExpressionInvalidExceptionMessage = Die Cron-Ausdruck sollte nur aus 5 Teilen bestehen: {0} +invalidAliasFoundExceptionMessage = Ungültiges {0}-Alias gefunden: {1} +invalidAtomCharacterExceptionMessage = Ungültiges Atomzeichen: {0} +minValueGreaterThanMaxExceptionMessage = Der Mindestwert für {0} darf nicht größer als der Maximalwert sein. +minValueInvalidExceptionMessage = Der Mindestwert '{0}' für {1} ist ungültig, sollte größer oder gleich {2} sein +maxValueInvalidExceptionMessage = Der Maximalwert '{0}' für {1} ist ungültig, sollte kleiner oder gleich {2} sein +valueOutOfRangeExceptionMessage = Wert '{0}' für {1} ist ungültig, sollte zwischen {2} und {3} liegen +daysInMonthExceededExceptionMessage = {0} hat nur {1} Tage, aber {2} wurden angegeben +nextTriggerCalculationErrorExceptionMessage = Es scheint, als ob beim Berechnen des nächsten Trigger-Datums und der nächsten Triggerzeit etwas schief gelaufen wäre: {0} +incompatiblePodeDllExceptionMessage = Eine vorhandene inkompatible Pode.DLL-Version {0} ist geladen. Version {1} wird benötigt. Öffnen Sie eine neue PowerShell/pwsh-Sitzung und versuchen Sie es erneut. +endpointNotExistExceptionMessage = Der Endpunkt mit dem Protokoll '{0}' und der Adresse '{1}' oder der lokalen Adresse '{2}' existiert nicht +endpointNameNotExistExceptionMessage = Der Endpunkt mit dem Namen '{0}' existiert nicht +failedToConnectToUrlExceptionMessage = Verbindung mit der URL fehlgeschlagen: {0} +failedToParseAddressExceptionMessage = Konnte '{0}' nicht als gültige IP/Host:Port-Adresse analysieren +invalidIpAddressExceptionMessage = Die angegebene IP-Adresse ist ungültig: {0} +invalidPortExceptionMessage = Der Port kann nicht negativ sein: {0} +pathNotExistExceptionMessage = Pfad existiert nicht: {0} +noSecretForHmac256ExceptionMessage = Es wurde kein Geheimnis für den HMAC256-Hash angegeben. +noSecretForHmac384ExceptionMessage = Es wurde kein Geheimnis für den HMAC384-Hash angegeben. +noSecretForHmac512ExceptionMessage = Es wurde kein Geheimnis für den HMAC512-Hash angegeben. +noSecretForJwtSignatureExceptionMessage = Es wurde kein Geheimnis für die JWT-Signatur angegeben. +noSecretExpectedForNoSignatureExceptionMessage = Es wurde erwartet, dass kein Geheimnis für keine Signatur angegeben wird. +unsupportedJwtAlgorithmExceptionMessage = Der JWT-Algorithmus wird derzeit nicht unterstützt: {0} +invalidBase64JwtExceptionMessage = Ungültiger Base64-codierter Wert in JWT gefunden +invalidJsonJwtExceptionMessage = Ungültiger JSON-Wert in JWT gefunden +unsupportedFunctionInServerlessContextExceptionMessage = Die Funktion {0} wird in einem serverlosen Kontext nicht unterstützt. +invalidPathWildcardOrDirectoryExceptionMessage = Der angegebene Pfad darf kein Platzhalter oder Verzeichnis sein: {0} +invalidExceptionTypeExceptionMessage = Die Ausnahme hat einen ungültigen Typ. Er sollte entweder WebException oder HttpRequestException sein, aber es wurde {0} erhalten +pathToLoadNotFoundExceptionMessage = Pfad zum Laden von {0} nicht gefunden: {1} +singleValueForIntervalExceptionMessage = Sie können nur einen einzelnen {0}-Wert angeben, wenn Sie Intervalle verwenden. +scriptErrorExceptionMessage = Fehler '{0}' im Skript {1} {2} (Zeile {3}) Zeichen {4} beim Ausführen von {5} auf {6} Objekt '{7}' Klasse: {8} Basisklasse: {9} +noScriptBlockSuppliedExceptionMessage = Kein Skriptblock angegeben. +iisAspnetcoreTokenMissingExceptionMessage = Das IIS-ASPNETCORE_TOKEN fehlt. +invalidContentTypeForSchemaExceptionMessage = Ungültiger Inhaltstyp für Schema gefunden: {0} +propertiesParameterWithoutNameExceptionMessage = Die Eigenschaftsparameter können nicht verwendet werden, wenn die Eigenschaft keinen Namen hat. +multiTypePropertiesRequireOpenApi31ExceptionMessage = Mehrfachtyp-Eigenschaften erfordern OpenApi-Version 3.1 oder höher. +openApiVersionPropertyMandatoryExceptionMessage = Die Eigenschaft OpenApi-Version ist obligatorisch. +webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = Das Webhooks-Feature wird in OpenAPI v3.0.x nicht unterstützt. +authenticationMethodDoesNotExistExceptionMessage = Authentifizierungsmethode existiert nicht: {0} +unsupportedObjectExceptionMessage = Nicht unterstütztes Objekt +validationOfAnyOfSchemaNotSupportedExceptionMessage = Die Validierung eines Schemas, das 'anyof' enthält, wird nicht unterstützt. +validationOfOneOfSchemaNotSupportedExceptionMessage = Die Validierung eines Schemas, das 'oneof' enthält, wird nicht unterstützt. +cannotCreatePropertyWithoutTypeExceptionMessage = Die Eigenschaft kann nicht erstellt werden, weil kein Typ definiert ist. +paramsNoAdditionalPropertiesExclusiveExceptionMessage = Die Parameter -NoAdditionalProperties und -AdditionalProperties schließen sich gegenseitig aus. +headerMustHaveNameInEncodingContextExceptionMessage = Ein Header muss einen Namen haben, wenn er im Codierungskontext verwendet wird. +descriptionRequiredExceptionMessage = Eine Beschreibung ist erforderlich. +openApiDocumentNotCompliantExceptionMessage = Das OpenAPI-Dokument ist nicht konform. +noComponentInDefinitionExceptionMessage = Es ist keine Komponente des Typs {0} mit dem Namen {1} in der Definition {2} verfügbar. +methodPathAlreadyDefinedExceptionMessage = [{0}] {1}: Bereits definiert. +methodPathAlreadyDefinedForUrlExceptionMessage = [{0}] {1}: Bereits für {2} definiert. +invalidMiddlewareTypeExceptionMessage = Eines der angegebenen Middleware-Objekte ist ein ungültiger Typ. Erwartet wurde entweder ein ScriptBlock oder ein Hashtable, aber erhalten wurde: {0}. +hashtableMiddlewareNoLogicExceptionMessage = Eine angegebene Hashtable-Middleware enthält keine definierte Logik. +invalidLogicTypeInHashtableMiddlewareExceptionMessage = Eine angegebene Hashtable-Middleware enthält einen ungültigen Logik-Typ. Erwartet wurde ein ScriptBlock, aber erhalten wurde: {0}. +scopedVariableAlreadyDefinedExceptionMessage = Die Bereichsvariable ist bereits definiert: {0}. +valueForUsingVariableNotFoundExceptionMessage = Der Wert für `$using:{0}` konnte nicht gefunden werden. +unlockSecretRequiredExceptionMessage = Eine 'UnlockSecret'-Eigenschaft ist erforderlich, wenn Microsoft.PowerShell.SecretStore verwendet wird. +unlockSecretButNoScriptBlockExceptionMessage = Unlock secret für benutzerdefinierten Secret Vault-Typ angegeben, aber kein Unlock ScriptBlock bereitgestellt. +noUnlockScriptBlockForVaultExceptionMessage = Kein Unlock ScriptBlock für das Entsperren des Tresors '{0}' bereitgestellt. +noSetScriptBlockForVaultExceptionMessage = Kein Set ScriptBlock für das Aktualisieren/Erstellen von Geheimnissen im Tresor '{0}' bereitgestellt. +noRemoveScriptBlockForVaultExceptionMessage = Kein Remove ScriptBlock für das Entfernen von Geheimnissen im Tresor '{0}' bereitgestellt. +invalidSecretValueTypeExceptionMessage = Der Geheimniswert hat einen ungültigen Typ. Erwartete Typen: String, SecureString, HashTable, Byte[] oder PSCredential. Aber erhalten wurde: {0}. +limitValueCannotBeZeroOrLessExceptionMessage = Der Grenzwert darf für {0} nicht 0 oder weniger sein. +secondsValueCannotBeZeroOrLessExceptionMessage = Der Sekundenwert darf für {0} nicht 0 oder weniger sein. +failedToCreateOpenSslCertExceptionMessage = Erstellung des OpenSSL-Zertifikats fehlgeschlagen: {0}. +certificateThumbprintsNameSupportedOnWindowsExceptionMessage = Zertifikat-Thumbprints/Name werden nur unter Windows unterstützt. +noCertificateFoundExceptionMessage = Es wurde kein Zertifikat in {0}\{1} für '{2}' gefunden. +runspacePoolFailedToLoadExceptionMessage = {0} RunspacePool konnte nicht geladen werden. +noServiceHandlersDefinedExceptionMessage = Es wurden keine Service-Handler definiert. +noSessionToSetOnResponseExceptionMessage = Keine Sitzung verfügbar, die auf die Antwort gesetzt werden kann. +noSessionToCalculateDataHashExceptionMessage = Keine Sitzung verfügbar, um den Datenhash zu berechnen. +moduleOrVersionNotFoundExceptionMessage = Modul oder Version nicht gefunden auf {0}: {1}@{2} +noSmtpHandlersDefinedExceptionMessage = Es wurden keine SMTP-Handler definiert. +taskTimedOutExceptionMessage = Aufgabe ist nach {0}ms abgelaufen. +verbAlreadyDefinedExceptionMessage = [Verb] {0}: Bereits definiert. +verbAlreadyDefinedForUrlExceptionMessage = [Verb] {0}: Bereits für {1} definiert. +pathOrScriptBlockRequiredExceptionMessage = Ein Pfad oder ScriptBlock ist erforderlich, um die benutzerdefinierten Zugriffswerte zu beziehen. +accessMethodAlreadyDefinedExceptionMessage = Zugriffsmethode bereits definiert: {0}. +accessMethodNotExistForMergingExceptionMessage = Zugriffsmethode zum Zusammenführen nicht vorhanden: {0}. +routeAlreadyContainsCustomAccessExceptionMessage = Die Route '[{0}] {1}' enthält bereits einen benutzerdefinierten Zugriff mit dem Namen '{2}'. +accessMethodNotExistExceptionMessage = Zugriffsmethode nicht vorhanden: {0}. +pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = Das PathItems-Feature wird in OpenAPI v3.0.x nicht unterstützt. '@ \ No newline at end of file diff --git a/src/Locales/en/Pode.psd1 b/src/Locales/en/Pode.psd1 index 25956ad06..8acaf4230 100644 --- a/src/Locales/en/Pode.psd1 +++ b/src/Locales/en/Pode.psd1 @@ -1,24 +1,88 @@ ConvertFrom-StringData -StringData @' -adModuleWindowsOnlyMessage = Active Directory module only available on Windows -adModuleNotInstalledMessage = Active Directory module is not installed -secretManagementModuleNotInstalledMessage = Microsoft.PowerShell.SecretManagement module not installed -secretVaultAlreadyRegisteredMessage = A Secret Vault with the name '{0}' has already been registered while auto-importing Secret Vaults -failedToOpenRunspacePoolMessage = Failed to open RunspacePool: {0} -cronExpressionInvalidMessage = Cron expression should only consist of 5 parts: {0} -invalidAliasFoundMessage = Invalid {0} alias found: {1} -invalidAtomCharacterMessage = Invalid atom character: {0} -minValueGreaterThanMaxMessage = Min value for {0} should not be greater than the max value -minValueInvalidMessage = Min value '{0}' for {1} is invalid, should be greater than/equal to {2} -maxValueInvalidMessage = Max value '{0}' for {1} is invalid, should be less than/equal to {2} -valueOutOfRangeMessage = Value '{0}' for {1} is invalid, should be between {2} and {3} -daysInMonthExceededMessage = {0} only has {1} days, but {2} was supplied -nextTriggerCalculationErrorMessage = Looks like something went wrong trying to calculate the next trigger datetime: {0} -incompatiblePodeDllMessage = An existing incompatible Pode.DLL version {0} is loaded. Version {1} is required. Open a new Powershell/pwsh session and retry. -endpointNotExistMessage = Endpoint with protocol '{0}' and address '{1}' or local address '{2}' does not exist -endpointNameNotExistMessage = Endpoint with name '{0}' does not exist -failedToConnectToUrlMessage = Failed to connect to URL: {0} -failedToParseAddressMessage = Failed to parse '{0}' as a valid IP/Host:Port address -invalidIpAddressMessage = The IP address supplied is invalid: {0} -invalidPortMessage = The port cannot be negative: {0} -pathNotExistMessage = Path does not exist: {0} +adModuleWindowsOnlyExceptionMessage = Active Directory module only available on Windows. +adModuleNotInstalledExceptionMessage = Active Directory module is not installed. +secretManagementModuleNotInstalledExceptionMessage = Microsoft.PowerShell.SecretManagement module not installed. +secretVaultAlreadyRegisteredExceptionMessage = A Secret Vault with the name '{0}' has already been registered while auto-importing Secret Vaults. +failedToOpenRunspacePoolExceptionMessage = Failed to open RunspacePool: {0} +cronExpressionInvalidExceptionMessage = Cron expression should only consist of 5 parts: {0} +invalidAliasFoundExceptionMessage = Invalid {0} alias found: {1} +invalidAtomCharacterExceptionMessage = Invalid atom character: {0} +minValueGreaterThanMaxExceptionMessage = Min value for {0} should not be greater than the max value. +minValueInvalidExceptionMessage = Min value '{0}' for {1} is invalid, should be greater than/equal to {2} +maxValueInvalidExceptionMessage = Max value '{0}' for {1} is invalid, should be less than/equal to {2} +valueOutOfRangeExceptionMessage = Value '{0}' for {1} is invalid, should be between {2} and {3} +daysInMonthExceededExceptionMessage = {0} only has {1} days, but {2} was supplied. +nextTriggerCalculationErrorExceptionMessage = Looks like something went wrong trying to calculate the next trigger datetime: {0} +incompatiblePodeDllExceptionMessage = An existing incompatible Pode.DLL version {0} is loaded. Version {1} is required. Open a new Powershell/pwsh session and retry. +endpointNotExistExceptionMessage = Endpoint with protocol '{0}' and address '{1}' or local address '{2}' does not exist. +endpointNameNotExistExceptionMessage = Endpoint with name '{0}' does not exist. +failedToConnectToUrlExceptionMessage = Failed to connect to URL: {0} +failedToParseAddressExceptionMessage = Failed to parse '{0}' as a valid IP/Host:Port address +invalidIpAddressExceptionMessage = The IP address supplied is invalid: {0} +invalidPortExceptionMessage = The port cannot be negative: {0} +pathNotExistExceptionMessage = Path does not exist: {0} +noSecretForHmac256ExceptionMessage = No secret supplied for HMAC256 hash. +noSecretForHmac384ExceptionMessage = No secret supplied for HMAC384 hash. +noSecretForHmac512ExceptionMessage = No secret supplied for HMAC512 hash. +noSecretForJwtSignatureExceptionMessage = No secret supplied for JWT signature. +noSecretExpectedForNoSignatureExceptionMessage = Expected no secret to be supplied for no signature. +unsupportedJwtAlgorithmExceptionMessage = The JWT algorithm is not currently supported: {0} +invalidBase64JwtExceptionMessage = Invalid Base64 encoded value found in JWT +invalidJsonJwtExceptionMessage = Invalid JSON value found in JWT +unsupportedFunctionInServerlessContextExceptionMessage = The {0} function is not supported in a serverless context. +invalidPathWildcardOrDirectoryExceptionMessage = The Path supplied cannot be a wildcard or a directory: {0} +invalidExceptionTypeExceptionMessage = Exception is of an invalid type, should be either WebException or HttpRequestException, but got: {0} +pathToLoadNotFoundExceptionMessage = Path to load {0} not found: {1} +singleValueForIntervalExceptionMessage = You can only supply a single {0} value when using intervals. +scriptErrorExceptionMessage = Error '{0}' in script {1} {2} (line {3}) char {4} executing {5} on {6} object '{7}' Class: {8} BaseClass: {9} +noScriptBlockSuppliedExceptionMessage = No ScriptBlock supplied. +iisAspnetcoreTokenMissingExceptionMessage = IIS ASPNETCORE_TOKEN is missing. +invalidContentTypeForSchemaExceptionMessage = Invalid content-type found for schema: {0} +propertiesParameterWithoutNameExceptionMessage = The Properties parameters cannot be used if the Property has no name. +multiTypePropertiesRequireOpenApi31ExceptionMessage = Multi-type properties require OpenApi Version 3.1 or above. +openApiVersionPropertyMandatoryExceptionMessage = OpenApi Version property is mandatory. +webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = The Webhooks feature is not supported in OpenAPI v3.0.x +authenticationMethodDoesNotExistExceptionMessage = Authentication method does not exist: {0} +unsupportedObjectExceptionMessage = Unsupported object +validationOfAnyOfSchemaNotSupportedExceptionMessage = Validation of a schema that includes 'anyof' is not supported. +validationOfOneOfSchemaNotSupportedExceptionMessage = Validation of a schema that includes 'oneof' is not supported. +cannotCreatePropertyWithoutTypeExceptionMessage = Cannot create the property because no type is defined. +paramsNoAdditionalPropertiesExclusiveExceptionMessage = Params -NoAdditionalProperties and -AdditionalProperties are mutually exclusive. +headerMustHaveNameInEncodingContextExceptionMessage = Header must have a name when used in an encoding context. +descriptionRequiredExceptionMessage = A Description is required. +openApiDocumentNotCompliantExceptionMessage = OpenAPI document is not compliant. +noComponentInDefinitionExceptionMessage = No component of type {0} named {1} is available in the {2} definition. +methodPathAlreadyDefinedExceptionMessage = [{0}] {1}: Already defined. +methodPathAlreadyDefinedForUrlExceptionMessage = [{0}] {1}: Already defined for {2} +invalidMiddlewareTypeExceptionMessage = One of the Middlewares supplied is an invalid type. Expected either a ScriptBlock or Hashtable, but got: {0} +hashtableMiddlewareNoLogicExceptionMessage = A Hashtable Middleware supplied has no Logic defined. +invalidLogicTypeInHashtableMiddlewareExceptionMessage = A Hashtable Middleware supplied has an invalid Logic type. Expected ScriptBlock, but got: {0} +scopedVariableAlreadyDefinedExceptionMessage = Scoped Variable already defined: {0} +valueForUsingVariableNotFoundExceptionMessage = Value for `$using:{0}` could not be found. +unlockSecretRequiredExceptionMessage = An 'UnlockSecret' property is required when using Microsoft.PowerShell.SecretStore +unlockSecretButNoScriptBlockExceptionMessage = Unlock secret supplied for custom Secret Vault type, but not Unlock ScriptBlock supplied. +noUnlockScriptBlockForVaultExceptionMessage = No Unlock ScriptBlock supplied for unlocking the vault '{0}' +noSetScriptBlockForVaultExceptionMessage = No Set ScriptBlock supplied for updating/creating secrets in the vault '{0}' +noRemoveScriptBlockForVaultExceptionMessage = No Remove ScriptBlock supplied for removing secrets from the vault '{0}' +invalidSecretValueTypeExceptionMessage = Secret value is of an invalid type. Expected types: String, SecureString, HashTable, Byte[], or PSCredential. But got: {0} +limitValueCannotBeZeroOrLessExceptionMessage = Limit value cannot be 0 or less for {0} +secondsValueCannotBeZeroOrLessExceptionMessage = Seconds value cannot be 0 or less for {0} +failedToCreateOpenSslCertExceptionMessage = Failed to create openssl cert: {0} +certificateThumbprintsNameSupportedOnWindowsExceptionMessage = Certificate Thumbprints/Name are only supported on Windows. +noCertificateFoundExceptionMessage = No certificate could be found in {0}\{1} for '{2}' +runspacePoolFailedToLoadExceptionMessage = {0} RunspacePool failed to load. +noServiceHandlersDefinedExceptionMessage = No Service handlers have been defined. +noSessionToSetOnResponseExceptionMessage = There is no session available to set on the response. +noSessionToCalculateDataHashExceptionMessage = No session available to calculate data hash. +moduleOrVersionNotFoundExceptionMessage = Module or version not found on {0}: {1}@{2} +noSmtpHandlersDefinedExceptionMessage = No SMTP handlers have been defined. +taskTimedOutExceptionMessage = Task has timed out after {0}ms. +verbAlreadyDefinedExceptionMessage = [Verb] {0}: Already defined +verbAlreadyDefinedForUrlExceptionMessage = [Verb] {0}: Already defined for {1} +pathOrScriptBlockRequiredExceptionMessage = A Path or ScriptBlock is required for sourcing the Custom access values. +accessMethodAlreadyDefinedExceptionMessage = Access method already defined: {0} +accessMethodNotExistForMergingExceptionMessage = Access method does not exist for merging: {0} +routeAlreadyContainsCustomAccessExceptionMessage = Route '[{0}] {1}' already contains Custom Access with name '{2}' +accessMethodNotExistExceptionMessage = Access method does not exist: {0} +pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = The PathItems feature is not supported in OpenAPI v3.0.x '@ \ No newline at end of file diff --git a/src/Locales/es/Pode.psd1 b/src/Locales/es/Pode.psd1 index 67ac8cc3e..c670efd3e 100644 --- a/src/Locales/es/Pode.psd1 +++ b/src/Locales/es/Pode.psd1 @@ -1,24 +1,88 @@ ConvertFrom-StringData -StringData @' -adModuleWindowsOnlyMessage = El módulo de Active Directory solo está disponible en Windows -adModuleNotInstalledMessage = El módulo de Active Directory no está instalado -secretManagementModuleNotInstalledMessage = El módulo Microsoft.PowerShell.SecretManagement no está instalado -secretVaultAlreadyRegisteredMessage = Ya se ha registrado un Bóveda Secreta con el nombre '{0}' al importar automáticamente Bóvedas Secretas -failedToOpenRunspacePoolMessage = Error al abrir RunspacePool: {0} -cronExpressionInvalidMessage = La expresión Cron solo debe consistir en 5 partes: {0} -invalidAliasFoundMessage = Se encontró un alias {0} no válido: {1} -invalidAtomCharacterMessage = Carácter atómico no válido: {0} -minValueGreaterThanMaxMessage = El valor mínimo para {0} no debe ser mayor que el valor máximo -minValueInvalidMessage = El valor mínimo '{0}' para {1} no es válido, debe ser mayor o igual a {2} -maxValueInvalidMessage = El valor máximo '{0}' para {1} no es válido, debe ser menor o igual a {2} -valueOutOfRangeMessage = El valor '{0}' para {1} no es válido, debe estar entre {2} y {3} -daysInMonthExceededMessage = {0} solo tiene {1} días, pero se suministró {2} -nextTriggerCalculationErrorMessage = Parece que algo salió mal al intentar calcular la siguiente fecha y hora del disparador: {0} -incompatiblePodeDllMessage = Se ha cargado una versión incompatible existente de Pode.DLL {0}. Se requiere la versión {1}. Abra una nueva sesión de Powershell/pwsh e intente de nuevo. -endpointNotExistMessage = No existe un punto de conexión con el protocolo '{0}' y la dirección '{1}' o la dirección local '{2}' -endpointNameNotExistMessage = No existe un punto de conexión con el nombre '{0}' -failedToConnectToUrlMessage = Error al conectar con la URL: {0} -failedToParseAddressMessage = Error al analizar '{0}' como una dirección IP/Host:Puerto válida -invalidIpAddressMessage = La dirección IP suministrada no es válida: {0} -invalidPortMessage = El puerto no puede ser negativo: {0} -pathNotExistMessage = La ruta no existe: {0} +adModuleWindowsOnlyExceptionMessage = El módulo de Active Directory solo está disponible en Windows. +adModuleNotInstalledExceptionMessage = El módulo de Active Directory no está instalado. +secretManagementModuleNotInstalledExceptionMessage = El módulo Microsoft.PowerShell.SecretManagement no está instalado. +secretVaultAlreadyRegisteredExceptionMessage = Ya se ha registrado un Bóveda Secreta con el nombre '{0}' al importar automáticamente Bóvedas Secretas. +failedToOpenRunspacePoolExceptionMessage = Error al abrir RunspacePool: {0} +cronExpressionInvalidExceptionMessage = La expresión Cron solo debe consistir en 5 partes: {0} +invalidAliasFoundExceptionMessage = Se encontró un alias {0} no válido: {1} +invalidAtomCharacterExceptionMessage = Carácter atómico no válido: {0} +minValueGreaterThanMaxExceptionMessage = El valor mínimo para {0} no debe ser mayor que el valor máximo. +minValueInvalidExceptionMessage = El valor mínimo '{0}' para {1} no es válido, debe ser mayor o igual a {2} +maxValueInvalidExceptionMessage = El valor máximo '{0}' para {1} no es válido, debe ser menor o igual a {2} +valueOutOfRangeExceptionMessage = El valor '{0}' para {1} no es válido, debe estar entre {2} y {3} +daysInMonthExceededExceptionMessage = {0} solo tiene {1} días, pero se suministró {2}. +nextTriggerCalculationErrorExceptionMessage = Parece que algo salió mal al intentar calcular la siguiente fecha y hora del disparador: {0} +incompatiblePodeDllExceptionMessage = Se ha cargado una versión incompatible existente de Pode.DLL {0}. Se requiere la versión {1}. Abra una nueva sesión de Powershell/pwsh e intente de nuevo. +endpointNotExistExceptionMessage = No existe un punto de conexión con el protocolo '{0}' y la dirección '{1}' o la dirección local '{2}'. +endpointNameNotExistExceptionMessage = No existe un punto de conexión con el nombre '{0}'. +failedToConnectToUrlExceptionMessage = Error al conectar con la URL: {0} +failedToParseAddressExceptionMessage = Error al analizar '{0}' como una dirección IP/Host:Puerto válida +invalidIpAddressExceptionMessage = La dirección IP suministrada no es válida: {0} +invalidPortExceptionMessage = El puerto no puede ser negativo: {0} +pathNotExistExceptionMessage = La ruta no existe: {0} +noSecretForHmac256ExceptionMessage = No se suministró ningún secreto para el hash HMAC256. +noSecretForHmac384ExceptionMessage = No se suministró ningún secreto para el hash HMAC384. +noSecretForHmac512ExceptionMessage = No se suministró ningún secreto para el hash HMAC512. +noSecretForJwtSignatureExceptionMessage = No se suministró ningún secreto para la firma JWT. +noSecretExpectedForNoSignatureExceptionMessage = Se esperaba que no se suministrara ningún secreto para ninguna firma. +unsupportedJwtAlgorithmExceptionMessage = El algoritmo JWT actualmente no es compatible: {0} +invalidBase64JwtExceptionMessage = Valor Base64 no válido encontrado en JWT +invalidJsonJwtExceptionMessage = Valor JSON no válido encontrado en JWT +unsupportedFunctionInServerlessContextExceptionMessage = La función {0} no es compatible en un contexto sin servidor. +invalidPathWildcardOrDirectoryExceptionMessage = La ruta suministrada no puede ser un comodín o un directorio: {0} +invalidExceptionTypeExceptionMessage = La excepción es de un tipo no válido, debe ser WebException o HttpRequestException, pero se obtuvo: {0} +pathToLoadNotFoundExceptionMessage = No se encontró la ruta para cargar {0}: {1} +singleValueForIntervalExceptionMessage = Solo puede suministrar un único valor {0} cuando utiliza intervalos. +scriptErrorExceptionMessage = Error '{0}' en el script {1} {2} (línea {3}) carácter {4} al ejecutar {5} en el objeto {6} '{7}' Clase: {8} ClaseBase: {9} +noScriptBlockSuppliedExceptionMessage = No se suministró ningún ScriptBlock. +iisAspnetcoreTokenMissingExceptionMessage = Falta el token IIS ASPNETCORE_TOKEN. +invalidContentTypeForSchemaExceptionMessage = Tipo de contenido no válido encontrado para el esquema: {0} +propertiesParameterWithoutNameExceptionMessage = Los parámetros de propiedades no se pueden usar si la propiedad no tiene nombre. +multiTypePropertiesRequireOpenApi31ExceptionMessage = Las propiedades de tipo múltiple requieren OpenApi versión 3.1 o superior. +openApiVersionPropertyMandatoryExceptionMessage = La propiedad de versión OpenApi es obligatoria. +webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = La función de Webhooks no es compatible con OpenAPI v3.0.x +authenticationMethodDoesNotExistExceptionMessage = El método de autenticación no existe: {0} +unsupportedObjectExceptionMessage = Objeto no compatible +validationOfAnyOfSchemaNotSupportedExceptionMessage = La validación de un esquema que incluye 'anyof' no es compatible. +validationOfOneOfSchemaNotSupportedExceptionMessage = La validación de un esquema que incluye 'oneof' no es compatible. +cannotCreatePropertyWithoutTypeExceptionMessage = No se puede crear la propiedad porque no se ha definido ningún tipo. +paramsNoAdditionalPropertiesExclusiveExceptionMessage = Los parámetros -NoAdditionalProperties y -AdditionalProperties son mutuamente excluyentes. +headerMustHaveNameInEncodingContextExceptionMessage = El encabezado debe tener un nombre cuando se usa en un contexto de codificación. +descriptionRequiredExceptionMessage = Se requiere una descripción. +openApiDocumentNotCompliantExceptionMessage = El documento OpenAPI no cumple con las normas. +noComponentInDefinitionExceptionMessage = No hay componente del tipo {0} llamado {1} disponible en la definición de {2}. +methodPathAlreadyDefinedExceptionMessage = [{0}] {1}: Ya está definido. +methodPathAlreadyDefinedForUrlExceptionMessage = [{0}] {1}: Ya está definido para {2} +invalidMiddlewareTypeExceptionMessage = Uno de los Middlewares suministrados es de un tipo no válido. Se esperaba ScriptBlock o Hashtable, pero se obtuvo: {0} +hashtableMiddlewareNoLogicExceptionMessage = Un Middleware Hashtable suministrado no tiene lógica definida. +invalidLogicTypeInHashtableMiddlewareExceptionMessage = Un Middleware Hashtable suministrado tiene un tipo de lógica no válido. Se esperaba ScriptBlock, pero se obtuvo: {0} +scopedVariableAlreadyDefinedExceptionMessage = La variable con alcance ya está definida: {0} +valueForUsingVariableNotFoundExceptionMessage = No se pudo encontrar el valor para `$using:{0}`. +unlockSecretRequiredExceptionMessage = Se requiere una propiedad 'UnlockSecret' al usar Microsoft.PowerShell.SecretStore +unlockSecretButNoScriptBlockExceptionMessage = Se suministró un secreto de desbloqueo para el tipo de bóveda secreta personalizada, pero no se suministró ningún ScriptBlock de desbloqueo. +noUnlockScriptBlockForVaultExceptionMessage = No se suministró ningún ScriptBlock de desbloqueo para desbloquear la bóveda '{0}' +noSetScriptBlockForVaultExceptionMessage = No se suministró ningún ScriptBlock de configuración para actualizar/crear secretos en la bóveda '{0}' +noRemoveScriptBlockForVaultExceptionMessage = No se suministró ningún ScriptBlock de eliminación para eliminar secretos de la bóveda '{0}' +invalidSecretValueTypeExceptionMessage = El valor del secreto es de un tipo no válido. Tipos esperados: String, SecureString, HashTable, Byte[], o PSCredential. Pero se obtuvo: {0} +limitValueCannotBeZeroOrLessExceptionMessage = El valor del límite no puede ser 0 o menor para {0} +secondsValueCannotBeZeroOrLessExceptionMessage = El valor en segundos no puede ser 0 o menor para {0} +failedToCreateOpenSslCertExceptionMessage = Error al crear el certificado openssl: {0} +certificateThumbprintsNameSupportedOnWindowsExceptionMessage = Las huellas digitales/nombres de certificados solo son compatibles con Windows. +noCertificateFoundExceptionMessage = No se encontró ningún certificado en {0}\{1} para '{2}' +runspacePoolFailedToLoadExceptionMessage = {0} RunspacePool no se pudo cargar. +noServiceHandlersDefinedExceptionMessage = No se han definido controladores de servicio. +noSessionToSetOnResponseExceptionMessage = No hay ninguna sesión disponible para configurar en la respuesta. +noSessionToCalculateDataHashExceptionMessage = No hay ninguna sesión disponible para calcular el hash de datos. +moduleOrVersionNotFoundExceptionMessage = No se encontró el módulo o la versión en {0}: {1}@{2} +noSmtpHandlersDefinedExceptionMessage = No se han definido controladores SMTP. +taskTimedOutExceptionMessage = La tarea ha agotado el tiempo después de {0}ms. +verbAlreadyDefinedExceptionMessage = [Verbo] {0}: Ya está definido +verbAlreadyDefinedForUrlExceptionMessage = [Verbo] {0}: Ya está definido para {1} +pathOrScriptBlockRequiredExceptionMessage = Se requiere una ruta o un ScriptBlock para obtener los valores de acceso personalizados. +accessMethodAlreadyDefinedExceptionMessage = Método de acceso ya definido: {0} +accessMethodNotExistForMergingExceptionMessage = El método de acceso no existe para fusionarse: {0} +routeAlreadyContainsCustomAccessExceptionMessage = La ruta '[{0}] {1}' ya contiene acceso personalizado con el nombre '{2}' +accessMethodNotExistExceptionMessage = El método de acceso no existe: {0} +pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = La función de elementos de ruta no es compatible con OpenAPI v3.0.x '@ \ No newline at end of file diff --git a/src/Locales/fr/Pode.psd1 b/src/Locales/fr/Pode.psd1 index f7c33aa37..bc41e11a4 100644 --- a/src/Locales/fr/Pode.psd1 +++ b/src/Locales/fr/Pode.psd1 @@ -1,24 +1,88 @@ ConvertFrom-StringData -StringData @' -adModuleWindowsOnlyMessage = Le module Active Directory est uniquement disponible sur Windows -adModuleNotInstalledMessage = Le module Active Directory n'est pas installé -secretManagementModuleNotInstalledMessage = Le module Microsoft.PowerShell.SecretManagement n'est pas installé -secretVaultAlreadyRegisteredMessage = Un coffre-fort secret avec le nom '{0}' a déjà été enregistré lors de l'importation automatique des coffres-forts secrets -failedToOpenRunspacePoolMessage = Échec de l'ouverture de RunspacePool : {0} -cronExpressionInvalidMessage = L'expression Cron doit uniquement comporter 5 parties : {0} -invalidAliasFoundMessage = Alias {0} non valide trouvé : {1} -invalidAtomCharacterMessage = Caractère atomique non valide : {0} -minValueGreaterThanMaxMessage = La valeur minimale pour {0} ne doit pas être supérieure à la valeur maximale -minValueInvalidMessage = La valeur minimale '{0}' pour {1} n'est pas valide, elle doit être supérieure ou égale à {2} -maxValueInvalidMessage = La valeur maximale '{0}' pour {1} n'est pas valide, elle doit être inférieure ou égale à {2} -valueOutOfRangeMessage = La valeur '{0}' pour {1} n'est pas valide, elle doit être comprise entre {2} et {3} -daysInMonthExceededMessage = {0} n'a que {1} jours, mais {2} a été fourni -nextTriggerCalculationErrorMessage = Il semble que quelque chose ait mal tourné lors de la tentative de calcul de la prochaine date et heure de déclenchement : {0} -incompatiblePodeDllMessage = Une version incompatible existante de Pode.DLL {0} est chargée. La version {1} est requise. Ouvrez une nouvelle session Powershell/pwsh et réessayez. -endpointNotExistMessage = Un point de terminaison avec le protocole '{0}' et l'adresse '{1}' ou l'adresse locale '{2}' n'existe pas -endpointNameNotExistMessage = Un point de terminaison avec le nom '{0}' n'existe pas -failedToConnectToUrlMessage = Échec de la connexion à l'URL : {0} -failedToParseAddressMessage = Échec de l'analyse de '{0}' en tant qu'adresse IP/Hôte:Port valide -invalidIpAddressMessage = L'adresse IP fournie n'est pas valide : {0} -invalidPortMessage = Le port ne peut pas être négatif : {0} -pathNotExistMessage = Le chemin n'existe pas : {0} +adModuleWindowsOnlyExceptionMessage = Le module Active Directory est uniquement disponible sur Windows. +adModuleNotInstalledExceptionMessage = Le module Active Directory n'est pas installé. +secretManagementModuleNotInstalledExceptionMessage = Le module Microsoft.PowerShell.SecretManagement n'est pas installé. +secretVaultAlreadyRegisteredExceptionMessage = Un coffre-fort secret avec le nom '{0}' a déjà été enregistré lors de l'importation automatique des coffres-forts secrets. +failedToOpenRunspacePoolExceptionMessage = Échec de l'ouverture de RunspacePool : {0} +cronExpressionInvalidExceptionMessage = L'expression Cron doit uniquement comporter 5 parties : {0} +invalidAliasFoundExceptionMessage = Alias {0} non valide trouvé : {1} +invalidAtomCharacterExceptionMessage = Caractère atomique non valide : {0} +minValueGreaterThanMaxExceptionMessage = La valeur minimale pour {0} ne doit pas être supérieure à la valeur maximale. +minValueInvalidExceptionMessage = La valeur minimale '{0}' pour {1} n'est pas valide, elle doit être supérieure ou égale à {2} +maxValueInvalidExceptionMessage = La valeur maximale '{0}' pour {1} n'est pas valide, elle doit être inférieure ou égale à {2} +valueOutOfRangeExceptionMessage = La valeur '{0}' pour {1} n'est pas valide, elle doit être comprise entre {2} et {3} +daysInMonthExceededExceptionMessage = {0} n'a que {1} jours, mais {2} a été fourni. +nextTriggerCalculationErrorExceptionMessage = Il semble que quelque chose ait mal tourné lors de la tentative de calcul de la prochaine date et heure de déclenchement : {0} +incompatiblePodeDllExceptionMessage = Une version incompatible existante de Pode.DLL {0} est chargée. La version {1} est requise. Ouvrez une nouvelle session Powershell/pwsh et réessayez. +endpointNotExistExceptionMessage = Un point de terminaison avec le protocole '{0}' et l'adresse '{1}' ou l'adresse locale '{2}' n'existe pas. +endpointNameNotExistExceptionMessage = Un point de terminaison avec le nom '{0}' n'existe pas. +failedToConnectToUrlExceptionMessage = Échec de la connexion à l'URL : {0} +failedToParseAddressExceptionMessage = Échec de l'analyse de '{0}' en tant qu'adresse IP/Hôte:Port valide +invalidIpAddressExceptionMessage = L'adresse IP fournie n'est pas valide : {0} +invalidPortExceptionMessage = Le port ne peut pas être négatif : {0} +pathNotExistExceptionMessage = Le chemin n'existe pas : {0} +noSecretForHmac256ExceptionMessage = Aucun secret fourni pour le hachage HMAC256. +noSecretForHmac384ExceptionMessage = Aucun secret fourni pour le hachage HMAC384. +noSecretForHmac512ExceptionMessage = Aucun secret fourni pour le hachage HMAC512. +noSecretForJwtSignatureExceptionMessage = Aucun secret fourni pour la signature JWT. +noSecretExpectedForNoSignatureExceptionMessage = Aucun secret attendu pour aucune signature. +unsupportedJwtAlgorithmExceptionMessage = L'algorithme JWT n'est actuellement pas pris en charge : {0} +invalidBase64JwtExceptionMessage = Valeur encodée en Base64 non valide trouvée dans le JWT +invalidJsonJwtExceptionMessage = Valeur JSON non valide trouvée dans le JWT +unsupportedFunctionInServerlessContextExceptionMessage = La fonction {0} n'est pas prise en charge dans un contexte sans serveur. +invalidPathWildcardOrDirectoryExceptionMessage = Le chemin fourni ne peut pas être un caractère générique ou un répertoire : {0} +invalidExceptionTypeExceptionMessage = L'exception est d'un type non valide, doit être soit WebException soit HttpRequestException, mais a obtenu : {0} +pathToLoadNotFoundExceptionMessage = Chemin à charger {0} non trouvé : {1} +singleValueForIntervalExceptionMessage = Vous ne pouvez fournir qu'une seule valeur {0} lorsque vous utilisez des intervalles. +scriptErrorExceptionMessage = Erreur '{0}' dans le script {1} {2} (ligne {3}) char {4} en exécutant {5} sur l'objet {6} '{7}' Classe : {8} ClasseBase : {9} +noScriptBlockSuppliedExceptionMessage = Aucun ScriptBlock fourni. +iisAspnetcoreTokenMissingExceptionMessage = Le jeton IIS ASPNETCORE_TOKEN est manquant. +invalidContentTypeForSchemaExceptionMessage = Type de contenu non valide trouvé pour le schéma : {0} +propertiesParameterWithoutNameExceptionMessage = Les paramètres Properties ne peuvent pas être utilisés si la propriété n'a pas de nom. +multiTypePropertiesRequireOpenApi31ExceptionMessage = Les propriétés multi-types nécessitent OpenApi Version 3.1 ou supérieure. +openApiVersionPropertyMandatoryExceptionMessage = La propriété Version OpenApi est obligatoire. +webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = La fonction Webhooks n'est pas prise en charge dans OpenAPI v3.0.x +authenticationMethodDoesNotExistExceptionMessage = La méthode d'authentification n'existe pas : {0} +unsupportedObjectExceptionMessage = Objet non pris en charge +validationOfAnyOfSchemaNotSupportedExceptionMessage = La validation d'un schéma qui inclut 'anyof' n'est pas prise en charge. +validationOfOneOfSchemaNotSupportedExceptionMessage = La validation d'un schéma qui inclut 'oneof' n'est pas prise en charge. +cannotCreatePropertyWithoutTypeExceptionMessage = Impossible de créer la propriété car aucun type n'est défini. +paramsNoAdditionalPropertiesExclusiveExceptionMessage = Les paramètres -NoAdditionalProperties et -AdditionalProperties sont mutuellement exclusifs. +headerMustHaveNameInEncodingContextExceptionMessage = L'en-tête doit avoir un nom lorsqu'il est utilisé dans un contexte de codage. +descriptionRequiredExceptionMessage = Une description est requise. +openApiDocumentNotCompliantExceptionMessage = Le document OpenAPI n'est pas conforme. +noComponentInDefinitionExceptionMessage = Aucun composant du type {0} nommé {1} n'est disponible dans la définition {2}. +methodPathAlreadyDefinedExceptionMessage = [{0}] {1} : Déjà défini. +methodPathAlreadyDefinedForUrlExceptionMessage = [{0}] {1} : Déjà défini pour {2} +invalidMiddlewareTypeExceptionMessage = Un des Middlewares fournis est d'un type non valide. Attendu ScriptBlock ou Hashtable, mais a obtenu : {0} +hashtableMiddlewareNoLogicExceptionMessage = Un Middleware Hashtable fourni n'a aucune logique définie. +invalidLogicTypeInHashtableMiddlewareExceptionMessage = Un Middleware Hashtable fourni a un type de logique non valide. Attendu ScriptBlock, mais a obtenu : {0} +scopedVariableAlreadyDefinedExceptionMessage = La variable à portée est déjà définie : {0} +valueForUsingVariableNotFoundExceptionMessage = Valeur pour `$using:{0}` introuvable. +unlockSecretRequiredExceptionMessage = Une propriété 'UnlockSecret' est requise lors de l'utilisation de Microsoft.PowerShell.SecretStore +unlockSecretButNoScriptBlockExceptionMessage = Secret de déverrouillage fourni pour le type de coffre-fort personnalisé, mais aucun ScriptBlock de déverrouillage fourni. +noUnlockScriptBlockForVaultExceptionMessage = Aucun ScriptBlock de déverrouillage fourni pour déverrouiller le coffre '{0}' +noSetScriptBlockForVaultExceptionMessage = Aucun ScriptBlock de configuration fourni pour mettre à jour/créer des secrets dans le coffre '{0}' +noRemoveScriptBlockForVaultExceptionMessage = Aucun ScriptBlock de suppression fourni pour supprimer des secrets du coffre '{0}' +invalidSecretValueTypeExceptionMessage = La valeur du secret est d'un type non valide. Types attendus : String, SecureString, HashTable, Byte[], ou PSCredential. Mais a obtenu : {0} +limitValueCannotBeZeroOrLessExceptionMessage = La valeur de la limite ne peut pas être 0 ou inférieure pour {0} +secondsValueCannotBeZeroOrLessExceptionMessage = La valeur en secondes ne peut pas être 0 ou inférieure pour {0} +failedToCreateOpenSslCertExceptionMessage = Échec de la création du certificat openssl : {0} +certificateThumbprintsNameSupportedOnWindowsExceptionMessage = Les empreintes digitales/Noms de certificat ne sont pris en charge que sous Windows. +noCertificateFoundExceptionMessage = Aucun certificat n'a été trouvé dans {0}\{1} pour '{2}' +runspacePoolFailedToLoadExceptionMessage = {0} RunspacePool n'a pas pu être chargé. +noServiceHandlersDefinedExceptionMessage = Aucun gestionnaire de service défini. +noSessionToSetOnResponseExceptionMessage = Aucune session disponible pour être définie sur la réponse. +noSessionToCalculateDataHashExceptionMessage = Aucune session disponible pour calculer le hachage de données. +moduleOrVersionNotFoundExceptionMessage = Module ou version introuvable sur {0} : {1}@{2} +noSmtpHandlersDefinedExceptionMessage = Aucun gestionnaire SMTP défini. +taskTimedOutExceptionMessage = La tâche a expiré après {0}ms. +verbAlreadyDefinedExceptionMessage = [Verbe] {0} : Déjà défini +verbAlreadyDefinedForUrlExceptionMessage = [Verbe] {0} : Déjà défini pour {1} +pathOrScriptBlockRequiredExceptionMessage = Un chemin ou un ScriptBlock est requis pour obtenir les valeurs d'accès personnalisées. +accessMethodAlreadyDefinedExceptionMessage = Méthode d'accès déjà définie : {0} +accessMethodNotExistForMergingExceptionMessage = La méthode d'accès n'existe pas pour la fusion : {0} +routeAlreadyContainsCustomAccessExceptionMessage = La route '[{0}] {1}' contient déjà un accès personnalisé avec le nom '{2}' +accessMethodNotExistExceptionMessage = La méthode d'accès n'existe pas : {0} +pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = La fonction PathItems n'est pas prise en charge dans OpenAPI v3.0.x '@ \ No newline at end of file diff --git a/src/Locales/it/Pode.psd1 b/src/Locales/it/Pode.psd1 index b542ea731..b9b2418d4 100644 --- a/src/Locales/it/Pode.psd1 +++ b/src/Locales/it/Pode.psd1 @@ -1,24 +1,88 @@ ConvertFrom-StringData -StringData @' -adModuleWindowsOnlyMessage = Il modulo di Active Directory è disponibile solo su Windows -adModuleNotInstalledMessage = Il modulo di Active Directory non è installato -secretManagementModuleNotInstalledMessage = Il modulo Microsoft.PowerShell.SecretManagement non è installato -secretVaultAlreadyRegisteredMessage = Una Secret Vault con il nome '{0}' è già stata registrata durante l'importazione automatica delle Secret Vaults -failedToOpenRunspacePoolMessage = Errore nell'apertura di RunspacePool: {0} -cronExpressionInvalidMessage = L'espressione Cron deve consistere solo di 5 parti: {0} -invalidAliasFoundMessage = Alias {0} non valido trovato: {1} -invalidAtomCharacterMessage = Carattere atomico non valido: {0} -minValueGreaterThanMaxMessage = Il valore minimo per {0} non deve essere maggiore del valore massimo -minValueInvalidMessage = Il valore minimo '{0}' per {1} non è valido, deve essere maggiore o uguale a {2} -maxValueInvalidMessage = Il valore massimo '{0}' per {1} non è valido, deve essere minore o uguale a {2} -valueOutOfRangeMessage = Il valore '{0}' per {1} non è valido, deve essere compreso tra {2} e {3} -daysInMonthExceededMessage = {0} ha solo {1} giorni, ma è stato fornito {2} -nextTriggerCalculationErrorMessage = Sembra che qualcosa sia andato storto nel tentativo di calcolare la prossima data e ora del trigger: {0} -incompatiblePodeDllMessage = È stata caricata una versione incompatibile esistente di Pode.DLL {0}. È richiesta la versione {1}. Aprire una nuova sessione di Powershell/pwsh e riprovare. -endpointNotExistMessage = Non esiste un endpoint con il protocollo '{0}' e l'indirizzo '{1}' o l'indirizzo locale '{2}' -endpointNameNotExistMessage = Non esiste un endpoint con il nome '{0}' -failedToConnectToUrlMessage = Errore nella connessione all'URL: {0} -failedToParseAddressMessage = Errore nell'analisi di '{0}' come indirizzo IP/Host:Porto valido -invalidIpAddressMessage = L'indirizzo IP fornito non è valido: {0} -invalidPortMessage = La porta non può essere negativa: {0} -pathNotExistMessage = Il percorso non esiste: {0} -'@ \ No newline at end of file +adModuleWindowsOnlyExceptionMessage = Il modulo Active Directory è disponibile solo su Windows. +adModuleNotInstalledExceptionMessage = Il modulo Active Directory non è installato. +secretManagementModuleNotInstalledExceptionMessage = Il modulo Microsoft.PowerShell.SecretManagement non è installato. +secretVaultAlreadyRegisteredExceptionMessage = Una cassaforte segreta con il nome '{0}' è già stata registrata durante l'importazione automatica delle cassaforti segrete. +failedToOpenRunspacePoolExceptionMessage = Impossibile aprire RunspacePool: {0} +cronExpressionInvalidExceptionMessage = L'espressione Cron dovrebbe essere composta solo da 5 parti: {0} +invalidAliasFoundExceptionMessage = Alias {0} non valido trovato: {1} +invalidAtomCharacterExceptionMessage = Carattere atomo non valido: {0} +minValueGreaterThanMaxExceptionMessage = Il valore minimo per {0} non deve essere maggiore del valore massimo. +minValueInvalidExceptionMessage = Il valore minimo '{0}' per {1} non è valido, dovrebbe essere maggiore o uguale a {2} +maxValueInvalidExceptionMessage = Il valore massimo '{0}' per {1} non è valido, dovrebbe essere minore o uguale a {2} +valueOutOfRangeExceptionMessage = Il valore '{0}' per {1} non è valido, dovrebbe essere compreso tra {2} e {3} +daysInMonthExceededExceptionMessage = {0} ha solo {1} giorni, ma è stato fornito {2}. +nextTriggerCalculationErrorExceptionMessage = Sembra che ci sia stato un errore nel tentativo di calcolare la prossima data e ora del trigger: {0} +incompatiblePodeDllExceptionMessage = È caricata una versione incompatibile esistente di Pode.DLL {0}. È richiesta la versione {1}. Apri una nuova sessione Powershell/pwsh e riprova. +endpointNotExistExceptionMessage = Endpoint con protocollo '{0}' e indirizzo '{1}' o indirizzo locale '{2}' non esiste. +endpointNameNotExistExceptionMessage = Endpoint con nome '{0}' non esiste. +failedToConnectToUrlExceptionMessage = Impossibile connettersi all'URL: {0} +failedToParseAddressExceptionMessage = Impossibile analizzare '{0}' come indirizzo IP/Host:Port valido +invalidIpAddressExceptionMessage = L'indirizzo IP fornito non è valido: {0} +invalidPortExceptionMessage = La porta non può essere negativa: {0} +pathNotExistExceptionMessage = Il percorso non esiste: {0} +noSecretForHmac256ExceptionMessage = Nessun segreto fornito per l'hash HMAC256. +noSecretForHmac384ExceptionMessage = Nessun segreto fornito per l'hash HMAC384. +noSecretForHmac512ExceptionMessage = Nessun segreto fornito per l'hash HMAC512. +noSecretForJwtSignatureExceptionMessage = Nessun segreto fornito per la firma JWT. +noSecretExpectedForNoSignatureExceptionMessage = Non era previsto alcun segreto per nessuna firma. +unsupportedJwtAlgorithmExceptionMessage = L'algoritmo JWT non è attualmente supportato: {0} +invalidBase64JwtExceptionMessage = Valore codificato Base64 non valido trovato in JWT +invalidJsonJwtExceptionMessage = Valore JSON non valido trovato in JWT +unsupportedFunctionInServerlessContextExceptionMessage = La funzione {0} non è supportata in un contesto senza server. +invalidPathWildcardOrDirectoryExceptionMessage = Il percorso fornito non può essere un carattere jolly o una directory: {0} +invalidExceptionTypeExceptionMessage = L'eccezione è di un tipo non valido, dovrebbe essere WebException o HttpRequestException, ma è stato ottenuto: {0} +pathToLoadNotFoundExceptionMessage = Percorso per caricare {0} non trovato: {1} +singleValueForIntervalExceptionMessage = Puoi fornire solo un singolo valore {0} quando si utilizzano gli intervalli. +scriptErrorExceptionMessage = Errore '{0}' nello script {1} {2} (riga {3}) carattere {4} eseguendo {5} su {6} oggetto '{7}' Classe: {8} Classe di base: {9} +noScriptBlockSuppliedExceptionMessage = Nessun ScriptBlock fornito. +iisAspnetcoreTokenMissingExceptionMessage = IIS ASPNETCORE_TOKEN è mancante. +invalidContentTypeForSchemaExceptionMessage = Tipo di contenuto non valido trovato per lo schema: {0} +propertiesParameterWithoutNameExceptionMessage = I parametri Properties non possono essere utilizzati se la proprietà non ha un nome. +multiTypePropertiesRequireOpenApi31ExceptionMessage = Le proprietà multi-tipo richiedono OpenApi versione 3.1 o superiore. +openApiVersionPropertyMandatoryExceptionMessage = La proprietà della versione OpenApi è obbligatoria. +webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = La funzionalità Webhooks non è supportata in OpenAPI v3.0.x +authenticationMethodDoesNotExistExceptionMessage = Il metodo di autenticazione non esiste: {0} +unsupportedObjectExceptionMessage = Oggetto non supportato +validationOfAnyOfSchemaNotSupportedExceptionMessage = La validazione di uno schema che include 'anyof' non è supportata. +validationOfOneOfSchemaNotSupportedExceptionMessage = La validazione di uno schema che include 'oneof' non è supportata. +cannotCreatePropertyWithoutTypeExceptionMessage = Impossibile creare la proprietà perché non è definito alcun tipo. +paramsNoAdditionalPropertiesExclusiveExceptionMessage = I parametri -NoAdditionalProperties e -AdditionalProperties si escludono a vicenda. +headerMustHaveNameInEncodingContextExceptionMessage = L'intestazione deve avere un nome quando viene utilizzata in un contesto di codifica. +descriptionRequiredExceptionMessage = È necessaria una descrizione. +openApiDocumentNotCompliantExceptionMessage = Il documento OpenAPI non è conforme. +noComponentInDefinitionExceptionMessage = Nessun componente del tipo {0} chiamato {1} è disponibile nella definizione {2}. +methodPathAlreadyDefinedExceptionMessage = [{0}] {1}: Già definito. +methodPathAlreadyDefinedForUrlExceptionMessage = [{0}] {1}: Già definito per {2} +invalidMiddlewareTypeExceptionMessage = Uno dei Middleware forniti è di un tipo non valido. Previsto ScriptBlock o Hashtable, ma ottenuto: {0} +hashtableMiddlewareNoLogicExceptionMessage = Un Middleware di tipo Hashtable fornito non ha una logica definita. +invalidLogicTypeInHashtableMiddlewareExceptionMessage = Un Middleware di tipo Hashtable fornito ha un tipo di logica non valido. Previsto ScriptBlock, ma ottenuto: {0} +scopedVariableAlreadyDefinedExceptionMessage = Variabile con ambito già definita: {0} +valueForUsingVariableNotFoundExceptionMessage = Impossibile trovare il valore per `$using:{0}`. +unlockSecretRequiredExceptionMessage = È necessaria una proprietà 'UnlockSecret' quando si utilizza Microsoft.PowerShell.SecretStore +unlockSecretButNoScriptBlockExceptionMessage = Segreto di sblocco fornito per tipo di cassaforte segreta personalizzata, ma nessun ScriptBlock di sblocco fornito. +noUnlockScriptBlockForVaultExceptionMessage = Nessun ScriptBlock di sblocco fornito per sbloccare la cassaforte '{0}' +noSetScriptBlockForVaultExceptionMessage = Nessun ScriptBlock fornito per aggiornare/creare segreti nella cassaforte '{0}' +noRemoveScriptBlockForVaultExceptionMessage = Nessun ScriptBlock fornito per rimuovere segreti dalla cassaforte '{0}' +invalidSecretValueTypeExceptionMessage = Il valore segreto è di un tipo non valido. Tipi previsti: String, SecureString, HashTable, Byte[] o PSCredential. Ma ottenuto: {0} +limitValueCannotBeZeroOrLessExceptionMessage = Il valore limite non può essere 0 o inferiore per {0} +secondsValueCannotBeZeroOrLessExceptionMessage = Il valore dei secondi non può essere 0 o inferiore per {0} +failedToCreateOpenSslCertExceptionMessage = Impossibile creare il certificato openssl: {0} +certificateThumbprintsNameSupportedOnWindowsExceptionMessage = Impronte digitali/nome del certificato supportati solo su Windows. +noCertificateFoundExceptionMessage = Nessun certificato trovato in {0}\{1} per '{2}' +runspacePoolFailedToLoadExceptionMessage = Impossibile caricare RunspacePool per {0}. +noServiceHandlersDefinedExceptionMessage = Non sono stati definiti gestori di servizio. +noSessionToSetOnResponseExceptionMessage = Non c'è nessuna sessione disponibile da impostare sulla risposta. +noSessionToCalculateDataHashExceptionMessage = Nessuna sessione disponibile per calcolare l'hash dei dati. +moduleOrVersionNotFoundExceptionMessage = Modulo o versione non trovati su {0}: {1}@{2} +noSmtpHandlersDefinedExceptionMessage = Non sono stati definiti gestori SMTP. +taskTimedOutExceptionMessage = Il compito è scaduto dopo {0}ms. +verbAlreadyDefinedExceptionMessage = [Verbo] {0}: Già definito +verbAlreadyDefinedForUrlExceptionMessage = [Verbo] {0}: Già definito per {1} +pathOrScriptBlockRequiredExceptionMessage = È necessario un percorso o un ScriptBlock per ottenere i valori di accesso personalizzati. +accessMethodAlreadyDefinedExceptionMessage = Metodo di accesso già definito: {0} +accessMethodNotExistForMergingExceptionMessage = Il metodo di accesso non esiste per l'unione: {0} +routeAlreadyContainsCustomAccessExceptionMessage = Il percorso '[{0}] {1}' contiene già un accesso personalizzato con nome '{2}' +accessMethodNotExistExceptionMessage = Il metodo di accesso non esiste: {0} +pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = La funzionalità PathItems non è supportata in OpenAPI v3.0.x +'@ diff --git a/src/Locales/ja/Pode.psd1 b/src/Locales/ja/Pode.psd1 index 18b377c3b..6204b57b5 100644 --- a/src/Locales/ja/Pode.psd1 +++ b/src/Locales/ja/Pode.psd1 @@ -1,24 +1,88 @@ ConvertFrom-StringData -StringData @' -adModuleWindowsOnlyMessage = Active DirectoryモジュールはWindowsでのみ利用可能です -adModuleNotInstalledMessage = Active Directoryモジュールがインストールされていません -secretManagementModuleNotInstalledMessage = Microsoft.PowerShell.SecretManagementモジュールがインストールされていません -secretVaultAlreadyRegisteredMessage = シークレットボールト'{0}'は既に登録されています(シークレットボールトの自動インポート中) -failedToOpenRunspacePoolMessage = RunspacePoolのオープンに失敗しました: {0} -cronExpressionInvalidMessage = Cron式は5つの部分で構成される必要があります: {0} -invalidAliasFoundMessage = 無効な{0}エイリアスが見つかりました: {1} -invalidAtomCharacterMessage = 無効なアトム文字: {0} -minValueGreaterThanMaxMessage = {0}の最小値は最大値を超えることはできません -minValueInvalidMessage = {1}の最小値'{0}'は無効です。{2}以上でなければなりません -maxValueInvalidMessage = {1}の最大値'{0}'は無効です。{2}以下でなければなりません -valueOutOfRangeMessage = {1}の値'{0}'は無効です。{2}から{3}の間でなければなりません -daysInMonthExceededMessage = {0}は{1}日しかありませんが、{2}が指定されました -nextTriggerCalculationErrorMessage = 次のトリガー日時の計算中に問題が発生したようです: {0} -incompatiblePodeDllMessage = 既存の互換性のないPode.DLLバージョン{0}がロードされています。バージョン{1}が必要です。新しいPowershell/pwshセッションを開いて再試行してください。 -endpointNotExistMessage = プロトコル'{0}'とアドレス'{1}'またはローカルアドレス'{2}'のエンドポイントが存在しません -endpointNameNotExistMessage = 名前'{0}'のエンドポイントが存在しません -failedToConnectToUrlMessage = URLへの接続に失敗しました: {0} -failedToParseAddressMessage = '{0}'を有効なIP/ホスト:ポートアドレスとして解析できませんでした -invalidIpAddressMessage = 提供されたIPアドレスは無効です: {0} -invalidPortMessage = ポートは負であってはなりません: {0} -pathNotExistMessage = パスが存在しません: {0} +adModuleWindowsOnlyExceptionMessage = Active DirectoryモジュールはWindowsでのみ利用可能です。 +adModuleNotInstalledExceptionMessage = Active Directoryモジュールがインストールされていません。 +secretManagementModuleNotInstalledExceptionMessage = Microsoft.PowerShell.SecretManagementモジュールがインストールされていません。 +secretVaultAlreadyRegisteredExceptionMessage = シークレットボールト'{0}'は既に登録されています(シークレットボールトの自動インポート中)。 +failedToOpenRunspacePoolExceptionMessage = RunspacePoolのオープンに失敗しました: {0} +cronExpressionInvalidExceptionMessage = Cron式は5つの部分で構成される必要があります: {0} +invalidAliasFoundExceptionMessage = 無効な{0}エイリアスが見つかりました: {1} +invalidAtomCharacterExceptionMessage = 無効なアトム文字: {0} +minValueGreaterThanMaxExceptionMessage = {0}の最小値は最大値を超えることはできません。 +minValueInvalidExceptionMessage = {1}の最小値'{0}'は無効です。{2}以上でなければなりません。 +maxValueInvalidExceptionMessage = {1}の最大値'{0}'は無効です。{2}以下でなければなりません。 +valueOutOfRangeExceptionMessage = {1}の値'{0}'は無効です。{2}から{3}の間でなければなりません。 +daysInMonthExceededExceptionMessage = {0}は{1}日しかありませんが、{2}が指定されました。 +nextTriggerCalculationErrorExceptionMessage = 次のトリガー日時の計算中に問題が発生したようです: {0} +incompatiblePodeDllExceptionMessage = 既存の互換性のないPode.DLLバージョン{0}がロードされています。バージョン{1}が必要です。新しいPowerShell/pwshセッションを開いて再試行してください。 +endpointNotExistExceptionMessage = プロトコル'{0}'、アドレス'{1}'またはローカルアドレス'{2}'のエンドポイントが存在しません。 +endpointNameNotExistExceptionMessage = 名前'{0}'のエンドポイントが存在しません。 +failedToConnectToUrlExceptionMessage = URLへの接続に失敗しました: {0} +failedToParseAddressExceptionMessage = '{0}'を有効なIP/ホスト:ポートアドレスとして解析できませんでした。 +invalidIpAddressExceptionMessage = 提供されたIPアドレスは無効です: {0} +invalidPortExceptionMessage = ポートは負であってはなりません: {0} +pathNotExistExceptionMessage = パスが存在しません: {0} +noSecretForHmac256ExceptionMessage = HMAC256ハッシュに対する秘密が提供されていません。 +noSecretForHmac384ExceptionMessage = HMAC384ハッシュに対する秘密が提供されていません。 +noSecretForHmac512ExceptionMessage = HMAC512ハッシュに対する秘密が提供されていません。 +noSecretForJwtSignatureExceptionMessage = JWT署名に対する秘密が提供されていません。 +noSecretExpectedForNoSignatureExceptionMessage = 署名なしのための秘密が提供されることを期待していませんでした。 +unsupportedJwtAlgorithmExceptionMessage = 現在サポートされていないJWTアルゴリズムです: {0} +invalidBase64JwtExceptionMessage = JWTに無効なBase64エンコード値が見つかりました。 +invalidJsonJwtExceptionMessage = JWTに無効なJSON値が見つかりました。 +unsupportedFunctionInServerlessContextExceptionMessage = サーバーレスコンテキストではサポートされていない関数です: {0} +invalidPathWildcardOrDirectoryExceptionMessage = 指定されたパスはワイルドカードまたはディレクトリにすることはできません: {0} +invalidExceptionTypeExceptionMessage = 例外が無効な型です。WebExceptionまたはHttpRequestExceptionのいずれかである必要がありますが、次の型を取得しました: {0} +pathToLoadNotFoundExceptionMessage = 読み込むパス{0}が見つかりません: {1} +singleValueForIntervalExceptionMessage = インターバルを使用する場合、単一の{0}値しか指定できません。 +scriptErrorExceptionMessage = スクリプト{1} {2}(行{3})のエラー'{0}'(文字{4})が{6}オブジェクト'{7}'の{5}を実行中に発生しました クラス: {8} 基底クラス: {9} +noScriptBlockSuppliedExceptionMessage = ScriptBlockが提供されていません。 +iisAspnetcoreTokenMissingExceptionMessage = IIS ASPNETCORE_TOKENがありません。 +invalidContentTypeForSchemaExceptionMessage = スキーマに対して無効なコンテンツタイプが見つかりました: {0} +propertiesParameterWithoutNameExceptionMessage = プロパティに名前がない場合、プロパティパラメータは使用できません。 +multiTypePropertiesRequireOpenApi31ExceptionMessage = 複数タイプのプロパティはOpenApiバージョン3.1以上が必要です。 +openApiVersionPropertyMandatoryExceptionMessage = OpenApiバージョンプロパティは必須です。 +webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = Webhooks機能はOpenAPI v3.0.xではサポートされていません。 +authenticationMethodDoesNotExistExceptionMessage = 認証方法が存在しません: {0} +unsupportedObjectExceptionMessage = サポートされていないオブジェクトです。 +validationOfAnyOfSchemaNotSupportedExceptionMessage = 'anyof'を含むスキーマの検証はサポートされていません。 +validationOfOneOfSchemaNotSupportedExceptionMessage = 'oneof'を含むスキーマの検証はサポートされていません。 +cannotCreatePropertyWithoutTypeExceptionMessage = 型が定義されていないため、プロパティを作成できません。 +paramsNoAdditionalPropertiesExclusiveExceptionMessage = パラメータ -NoAdditionalPropertiesと-AdditionalPropertiesは相互に排他です。 +headerMustHaveNameInEncodingContextExceptionMessage = エンコーディングコンテキストで使用される場合、ヘッダーには名前が必要です。 +descriptionRequiredExceptionMessage = 説明が必要です。 +openApiDocumentNotCompliantExceptionMessage = OpenAPIドキュメントが準拠していません。 +noComponentInDefinitionExceptionMessage = {2}定義に{0}タイプの名前{1}コンポーネントが利用できません。 +methodPathAlreadyDefinedExceptionMessage = [{0}] {1}: 既に定義されています。 +methodPathAlreadyDefinedForUrlExceptionMessage = [{0}] {1}: {2}用に既に定義されています。 +invalidMiddlewareTypeExceptionMessage = 提供されたMiddlewaresの1つが無効な型です。ScriptBlockまたはHashtableのいずれかを期待しましたが、次を取得しました: {0} +hashtableMiddlewareNoLogicExceptionMessage = 提供されたHashtableミドルウェアにロジックが定義されていません。 +invalidLogicTypeInHashtableMiddlewareExceptionMessage = 提供されたHashtableミドルウェアに無効なロジック型があります。ScriptBlockを期待しましたが、次を取得しました: {0} +scopedVariableAlreadyDefinedExceptionMessage = スコープ付き変数が既に定義されています: {0} +valueForUsingVariableNotFoundExceptionMessage = `$using:{0}`の値が見つかりませんでした。 +unlockSecretRequiredExceptionMessage = Microsoft.PowerShell.SecretStoreを使用する場合、'UnlockSecret'プロパティが必要です。 +unlockSecretButNoScriptBlockExceptionMessage = カスタムシークレットボールトタイプに対してアンロックシークレットが提供されましたが、アンロックスクリプトブロックが提供されていません。 +noUnlockScriptBlockForVaultExceptionMessage = ボールト'{0}'のロック解除に必要なスクリプトブロックが提供されていません。 +noSetScriptBlockForVaultExceptionMessage = ボールト'{0}'のシークレットを更新/作成するためのスクリプトブロックが提供されていません。 +noRemoveScriptBlockForVaultExceptionMessage = ボールト'{0}'のシークレットを削除するためのスクリプトブロックが提供されていません。 +invalidSecretValueTypeExceptionMessage = シークレットの値が無効な型です。期待される型: String、SecureString、HashTable、Byte[]、またはPSCredential。しかし、次を取得しました: {0} +limitValueCannotBeZeroOrLessExceptionMessage = {0}の制限値は0またはそれ以下にすることはできません。 +secondsValueCannotBeZeroOrLessExceptionMessage = {0}の秒数値は0またはそれ以下にすることはできません。 +failedToCreateOpenSslCertExceptionMessage = OpenSSL証明書の作成に失敗しました: {0} +certificateThumbprintsNameSupportedOnWindowsExceptionMessage = Certificate Thumbprints/NameはWindowsでのみサポートされています。 +noCertificateFoundExceptionMessage = '{2}'用の{0}\{1}に証明書が見つかりませんでした。 +runspacePoolFailedToLoadExceptionMessage = {0} RunspacePoolの読み込みに失敗しました。 +noServiceHandlersDefinedExceptionMessage = サービスハンドラが定義されていません。 +noSessionToSetOnResponseExceptionMessage = レスポンスに設定するセッションがありません。 +noSessionToCalculateDataHashExceptionMessage = データハッシュを計算するセッションがありません。 +moduleOrVersionNotFoundExceptionMessage = {0}でモジュールまたはバージョンが見つかりません: {1}@{2} +noSmtpHandlersDefinedExceptionMessage = SMTPハンドラが定義されていません。 +taskTimedOutExceptionMessage = タスクが{0}ミリ秒後にタイムアウトしました。 +verbAlreadyDefinedExceptionMessage = [動詞] {0}: すでに定義されています +verbAlreadyDefinedForUrlExceptionMessage = [動詞] {0}: {1}にすでに定義されています +pathOrScriptBlockRequiredExceptionMessage = カスタムアクセス値のソース化には、パスまたはスクリプトブロックが必要です。 +accessMethodAlreadyDefinedExceptionMessage = アクセス方法はすでに定義されています: {0} +accessMethodNotExistForMergingExceptionMessage = マージするアクセス方法が存在しません: {0} +routeAlreadyContainsCustomAccessExceptionMessage = ルート '[{0}] {1}' はすでに名前 '{2}' のカスタムアクセスを含んでいます +accessMethodNotExistExceptionMessage = アクセス方法が存在しません: {0} +pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = PathItems機能はOpenAPI v3.0.xではサポートされていません。 '@ \ No newline at end of file diff --git a/src/Locales/pl/Pode.psd1 b/src/Locales/pl/Pode.psd1 new file mode 100644 index 000000000..3cb6a8034 --- /dev/null +++ b/src/Locales/pl/Pode.psd1 @@ -0,0 +1,88 @@ +ConvertFrom-StringData -StringData @' +adModuleWindowsOnlyExceptionMessage = Moduł Active Directory jest dostępny tylko w systemie Windows. +adModuleNotInstalledExceptionMessage = Moduł Active Directory nie jest zainstalowany. +secretManagementModuleNotInstalledExceptionMessage = Moduł Microsoft.PowerShell.SecretManagement nie jest zainstalowany. +secretVaultAlreadyRegisteredExceptionMessage = Skarbiec z nazwą '{0}' został już zarejestrowany podczas automatycznego importowania skarbców. +failedToOpenRunspacePoolExceptionMessage = Nie udało się otworzyć RunspacePool: {0} +cronExpressionInvalidExceptionMessage = Wyrażenie Cron powinno składać się tylko z 5 części: {0} +invalidAliasFoundExceptionMessage = Znaleziono nieprawidłowy alias {0}: {1} +invalidAtomCharacterExceptionMessage = Nieprawidłowy znak atomu: {0} +minValueGreaterThanMaxExceptionMessage = Minimalna wartość dla {0} nie powinna być większa od maksymalnej wartości. +minValueInvalidExceptionMessage = Minimalna wartość '{0}' dla {1} jest nieprawidłowa, powinna być większa lub równa {2} +maxValueInvalidExceptionMessage = Maksymalna wartość '{0}' dla {1} jest nieprawidłowa, powinna być mniejsza lub równa {2} +valueOutOfRangeExceptionMessage = Wartość '{0}' dla {1} jest nieprawidłowa, powinna być pomiędzy {2} a {3} +daysInMonthExceededExceptionMessage = {0} ma tylko {1} dni, ale podano {2}. +nextTriggerCalculationErrorExceptionMessage = Wygląda na to, że coś poszło nie tak przy próbie obliczenia następnej daty i godziny wyzwalacza: {0} +incompatiblePodeDllExceptionMessage = Istnieje niekompatybilna wersja Pode.DLL {0}. Wymagana wersja {1}. Otwórz nową sesję Powershell/pwsh i spróbuj ponownie. +endpointNotExistExceptionMessage = Punkt końcowy z protokołem '{0}' i adresem '{1}' lub adresem lokalnym '{2}' nie istnieje. +endpointNameNotExistExceptionMessage = Punkt końcowy o nazwie '{0}' nie istnieje. +failedToConnectToUrlExceptionMessage = Nie udało się połączyć z URL: {0} +failedToParseAddressExceptionMessage = Nie udało się przeanalizować '{0}' jako poprawnego adresu IP/Host:Port +invalidIpAddressExceptionMessage = Podany adres IP jest nieprawidłowy: {0} +invalidPortExceptionMessage = Port nie może być ujemny: {0} +pathNotExistExceptionMessage = Ścieżka nie istnieje: {0} +noSecretForHmac256ExceptionMessage = Nie podano tajemnicy dla haszowania HMAC256. +noSecretForHmac384ExceptionMessage = Nie podano tajemnicy dla haszowania HMAC384. +noSecretForHmac512ExceptionMessage = Nie podano tajemnicy dla haszowania HMAC512. +noSecretForJwtSignatureExceptionMessage = Nie podano tajemnicy dla podpisu JWT. +noSecretExpectedForNoSignatureExceptionMessage = Nie oczekiwano podania tajemnicy dla braku podpisu. +unsupportedJwtAlgorithmExceptionMessage = Algorytm JWT nie jest obecnie obsługiwany: {0} +invalidBase64JwtExceptionMessage = Nieprawidłowa wartość zakodowana w Base64 znaleziona w JWT +invalidJsonJwtExceptionMessage = Nieprawidłowa wartość JSON znaleziona w JWT +unsupportedFunctionInServerlessContextExceptionMessage = Funkcja {0} nie jest obsługiwana w kontekście bezserwerowym. +invalidPathWildcardOrDirectoryExceptionMessage = Podana ścieżka nie może być symbolem wieloznacznym ani katalogiem: {0} +invalidExceptionTypeExceptionMessage = Wyjątek jest nieprawidłowego typu, powinien być WebException lub HttpRequestException, ale otrzymano: {0} +pathToLoadNotFoundExceptionMessage = Ścieżka do załadowania {0} nie znaleziona: {1} +singleValueForIntervalExceptionMessage = Możesz podać tylko jedną wartość {0} podczas korzystania z interwałów. +scriptErrorExceptionMessage = Błąd '{0}' w skrypcie {1} {2} (linia {3}) znak {4} podczas wykonywania {5} na {6} obiekt '{7}' Klasa: {8} Klasa bazowa: {9} +noScriptBlockSuppliedExceptionMessage = Nie podano ScriptBlock. +iisAspnetcoreTokenMissingExceptionMessage = Brakujący IIS ASPNETCORE_TOKEN. +invalidContentTypeForSchemaExceptionMessage = Znaleziono nieprawidłowy typ zawartości dla schematu: {0} +propertiesParameterWithoutNameExceptionMessage = Parametry Properties nie mogą być używane, jeśli właściwość nie ma nazwy. +multiTypePropertiesRequireOpenApi31ExceptionMessage = Właściwości wielotypowe wymagają wersji OpenApi 3.1 lub wyższej. +openApiVersionPropertyMandatoryExceptionMessage = Właściwość wersji OpenApi jest obowiązkowa. +webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = Funkcja Webhooks nie jest obsługiwana w OpenAPI v3.0.x +pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = Funkcja PathItems nie jest obsługiwana w OpenAPI v3.0.x +authenticationMethodDoesNotExistExceptionMessage = Metoda uwierzytelniania nie istnieje: {0} +unsupportedObjectExceptionMessage = Obiekt nieobsługiwany +validationOfAnyOfSchemaNotSupportedExceptionMessage = Walidacja schematu, który zawiera 'anyof', nie jest obsługiwana. +validationOfOneOfSchemaNotSupportedExceptionMessage = Walidacja schematu, który zawiera 'oneof', nie jest obsługiwana. +cannotCreatePropertyWithoutTypeExceptionMessage = Nie można utworzyć właściwości, ponieważ nie zdefiniowano typu. +paramsNoAdditionalPropertiesExclusiveExceptionMessage = Parametry -NoAdditionalProperties i -AdditionalProperties wykluczają się wzajemnie. +headerMustHaveNameInEncodingContextExceptionMessage = Nagłówek musi mieć nazwę, gdy jest używany w kontekście kodowania. +descriptionRequiredExceptionMessage = Wymagany jest opis. +openApiDocumentNotCompliantExceptionMessage = Dokument OpenAPI nie jest zgodny. +noComponentInDefinitionExceptionMessage = Brak komponentu typu {0} o nazwie {1} dostępnego w definicji {2}. +methodPathAlreadyDefinedExceptionMessage = [{0}] {1}: Już zdefiniowane. +methodPathAlreadyDefinedForUrlExceptionMessage = [{0}] {1}: Już zdefiniowane dla {2} +invalidMiddlewareTypeExceptionMessage = Jeden z dostarczonych Middleware jest nieprawidłowego typu. Oczekiwano ScriptBlock lub Hashtable, ale otrzymano: {0} +hashtableMiddlewareNoLogicExceptionMessage = Dostarczone Middleware typu Hashtable nie ma zdefiniowanej logiki. +invalidLogicTypeInHashtableMiddlewareExceptionMessage = Dostarczone Middleware typu Hashtable ma nieprawidłowy typ logiki. Oczekiwano ScriptBlock, ale otrzymano: {0} +scopedVariableAlreadyDefinedExceptionMessage = Zmienna z zakresem już zdefiniowana: {0} +valueForUsingVariableNotFoundExceptionMessage = Nie można znaleźć wartości dla `$using:{0}`. +unlockSecretRequiredExceptionMessage = Właściwość 'UnlockSecret' jest wymagana przy używaniu Microsoft.PowerShell.SecretStore +unlockSecretButNoScriptBlockExceptionMessage = Podano tajemnicę odblokowania dla niestandardowego typu skarbca, ale nie podano ScriptBlock odblokowania. +noUnlockScriptBlockForVaultExceptionMessage = Nie podano ScriptBlock odblokowania dla odblokowania skarbca '{0}' +noSetScriptBlockForVaultExceptionMessage = Nie podano ScriptBlock dla aktualizacji/tworzenia tajemnic w skarbcu '{0}' +noRemoveScriptBlockForVaultExceptionMessage = Nie podano ScriptBlock dla usuwania tajemnic ze skarbca '{0}' +invalidSecretValueTypeExceptionMessage = Wartość tajemnicy jest nieprawidłowego typu. Oczekiwane typy: String, SecureString, HashTable, Byte[] lub PSCredential. Ale otrzymano: {0} +limitValueCannotBeZeroOrLessExceptionMessage = Wartość limitu nie może być 0 lub mniejsza dla {0} +secondsValueCannotBeZeroOrLessExceptionMessage = Wartość sekund nie może być 0 lub mniejsza dla {0} +failedToCreateOpenSslCertExceptionMessage = Nie udało się utworzyć certyfikatu openssl: {0} +certificateThumbprintsNameSupportedOnWindowsExceptionMessage = Odciski palców/nazwa certyfikatu są obsługiwane tylko w systemie Windows. +noCertificateFoundExceptionMessage = Nie znaleziono certyfikatu w {0}\{1} dla '{2}' +runspacePoolFailedToLoadExceptionMessage = {0} Nie udało się załadować RunspacePool. +noServiceHandlersDefinedExceptionMessage = Nie zdefiniowano żadnych obsługujących usług. +noSessionToSetOnResponseExceptionMessage = Brak dostępnej sesji do ustawienia odpowiedzi. +noSessionToCalculateDataHashExceptionMessage = Brak dostępnej sesji do obliczenia skrótu danych. +moduleOrVersionNotFoundExceptionMessage = Nie znaleziono modułu lub wersji na {0}: {1}@{2} +noSmtpHandlersDefinedExceptionMessage = Nie zdefiniowano żadnych obsługujących SMTP. +taskTimedOutExceptionMessage = Zadanie przekroczyło limit czasu po {0}ms. +verbAlreadyDefinedExceptionMessage = [Czasownik] {0}: Już zdefiniowane +verbAlreadyDefinedForUrlExceptionMessage = [Czasownik] {0}: Już zdefiniowane dla {1} +pathOrScriptBlockRequiredExceptionMessage = Ścieżka lub ScriptBlock są wymagane do pozyskiwania wartości dostępu niestandardowego. +accessMethodAlreadyDefinedExceptionMessage = Metoda dostępu już zdefiniowana: {0} +accessMethodNotExistForMergingExceptionMessage = Metoda dostępu nie istnieje do scalania: {0} +routeAlreadyContainsCustomAccessExceptionMessage = Trasa '[{0}] {1}' już zawiera dostęp niestandardowy z nazwą '{2}' +accessMethodNotExistExceptionMessage = Metoda dostępu nie istnieje: {0} +'@ diff --git a/src/Locales/pt/Pode.psd1 b/src/Locales/pt/Pode.psd1 new file mode 100644 index 000000000..02866c758 --- /dev/null +++ b/src/Locales/pt/Pode.psd1 @@ -0,0 +1,88 @@ +ConvertFrom-StringData -StringData @' +adModuleWindowsOnlyExceptionMessage = O módulo Active Directory está disponível apenas no Windows. +adModuleNotInstalledExceptionMessage = O módulo Active Directory não está instalado. +secretManagementModuleNotInstalledExceptionMessage = O módulo Microsoft.PowerShell.SecretManagement não está instalado. +secretVaultAlreadyRegisteredExceptionMessage = Um Cofre de Segredos com o nome '{0}' já foi registrado durante a importação automática de Cofres de Segredos. +failedToOpenRunspacePoolExceptionMessage = Falha ao abrir o RunspacePool: {0} +cronExpressionInvalidExceptionMessage = A expressão Cron deve consistir apenas em 5 partes: {0} +invalidAliasFoundExceptionMessage = Alias {0} inválido encontrado: {1} +invalidAtomCharacterExceptionMessage = Caractere atômico inválido: {0} +minValueGreaterThanMaxExceptionMessage = O valor mínimo para {0} não deve ser maior que o valor máximo. +minValueInvalidExceptionMessage = O valor mínimo '{0}' para {1} é inválido, deve ser maior ou igual a {2} +maxValueInvalidExceptionMessage = O valor máximo '{0}' para {1} é inválido, deve ser menor ou igual a {2} +valueOutOfRangeExceptionMessage = O valor '{0}' para {1} é inválido, deve estar entre {2} e {3} +daysInMonthExceededExceptionMessage = {0} tem apenas {1} dias, mas {2} foi fornecido. +nextTriggerCalculationErrorExceptionMessage = Parece que algo deu errado ao tentar calcular a próxima data e hora do gatilho: {0} +incompatiblePodeDllExceptionMessage = Uma versão incompatível existente do Pode.DLL {0} está carregada. É necessária a versão {1}. Abra uma nova sessão do Powershell/pwsh e tente novamente. +endpointNotExistExceptionMessage = O ponto de extremidade com o protocolo '{0}' e endereço '{1}' ou endereço local '{2}' não existe. +endpointNameNotExistExceptionMessage = O ponto de extremidade com o nome '{0}' não existe. +failedToConnectToUrlExceptionMessage = Falha ao conectar ao URL: {0} +failedToParseAddressExceptionMessage = Falha ao analisar '{0}' como um endereço IP/Host:Port válido +invalidIpAddressExceptionMessage = O endereço IP fornecido é inválido: {0} +invalidPortExceptionMessage = A porta não pode ser negativa: {0} +pathNotExistExceptionMessage = O caminho não existe: {0} +noSecretForHmac256ExceptionMessage = Nenhum segredo fornecido para o hash HMAC256. +noSecretForHmac384ExceptionMessage = Nenhum segredo fornecido para o hash HMAC384. +noSecretForHmac512ExceptionMessage = Nenhum segredo fornecido para o hash HMAC512. +noSecretForJwtSignatureExceptionMessage = Nenhum segredo fornecido para a assinatura JWT. +noSecretExpectedForNoSignatureExceptionMessage = Não era esperado nenhum segredo para nenhuma assinatura. +unsupportedJwtAlgorithmExceptionMessage = O algoritmo JWT não é atualmente suportado: {0} +invalidBase64JwtExceptionMessage = Valor codificado Base64 inválido encontrado no JWT +invalidJsonJwtExceptionMessage = Valor JSON inválido encontrado no JWT +unsupportedFunctionInServerlessContextExceptionMessage = A função {0} não é suportada em um contexto serverless. +invalidPathWildcardOrDirectoryExceptionMessage = O caminho fornecido não pode ser um curinga ou um diretório: {0} +invalidExceptionTypeExceptionMessage = A exceção é de um tipo inválido, deve ser WebException ou HttpRequestException, mas foi obtido: {0} +pathToLoadNotFoundExceptionMessage = Caminho para carregar {0} não encontrado: {1} +singleValueForIntervalExceptionMessage = Você pode fornecer apenas um único valor {0} ao usar intervalos. +scriptErrorExceptionMessage = Erro '{0}' no script {1} {2} (linha {3}) caractere {4} executando {5} em {6} objeto '{7}' Classe: {8} ClasseBase: {9} +noScriptBlockSuppliedExceptionMessage = Nenhum ScriptBlock fornecido. +iisAspnetcoreTokenMissingExceptionMessage = IIS ASPNETCORE_TOKEN está ausente. +invalidContentTypeForSchemaExceptionMessage = Tipo de conteúdo inválido encontrado para o esquema: {0} +propertiesParameterWithoutNameExceptionMessage = Os parâmetros Properties não podem ser usados se a propriedade não tiver um nome. +multiTypePropertiesRequireOpenApi31ExceptionMessage = Propriedades de múltiplos tipos requerem a versão 3.1 ou superior do OpenApi. +openApiVersionPropertyMandatoryExceptionMessage = A propriedade da versão do OpenApi é obrigatória. +webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = O recurso Webhooks não é suportado no OpenAPI v3.0.x +pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = O recurso PathItems não é suportado no OpenAPI v3.0.x +authenticationMethodDoesNotExistExceptionMessage = O método de autenticação não existe: {0} +unsupportedObjectExceptionMessage = Objeto não suportado +validationOfAnyOfSchemaNotSupportedExceptionMessage = A validação de um esquema que inclui 'anyof' não é suportada. +validationOfOneOfSchemaNotSupportedExceptionMessage = A validação de um esquema que inclui 'oneof' não é suportada. +cannotCreatePropertyWithoutTypeExceptionMessage = Não é possível criar a propriedade porque nenhum tipo é definido. +paramsNoAdditionalPropertiesExclusiveExceptionMessage = Os parâmetros -NoAdditionalProperties e -AdditionalProperties se excluem mutuamente. +headerMustHaveNameInEncodingContextExceptionMessage = O cabeçalho deve ter um nome quando usado em um contexto de codificação. +descriptionRequiredExceptionMessage = É necessária uma descrição. +openApiDocumentNotCompliantExceptionMessage = O documento OpenAPI não está em conformidade. +noComponentInDefinitionExceptionMessage = Nenhum componente do tipo {0} chamado {1} está disponível na definição {2}. +methodPathAlreadyDefinedExceptionMessage = [{0}] {1}: Já definido. +methodPathAlreadyDefinedForUrlExceptionMessage = [{0}] {1}: Já definido para {2} +invalidMiddlewareTypeExceptionMessage = Um dos Middlewares fornecidos é de um tipo inválido. Esperado ScriptBlock ou Hashtable, mas obtido: {0} +hashtableMiddlewareNoLogicExceptionMessage = Um Middleware do tipo Hashtable fornecido não tem lógica definida. +invalidLogicTypeInHashtableMiddlewareExceptionMessage = Um Middleware do tipo Hashtable fornecido tem um tipo de lógica inválido. Esperado ScriptBlock, mas obtido: {0} +scopedVariableAlreadyDefinedExceptionMessage = Variável de escopo já definida: {0} +valueForUsingVariableNotFoundExceptionMessage = Valor para `$using:{0}` não pôde ser encontrado. +unlockSecretRequiredExceptionMessage = É necessária uma propriedade 'UnlockSecret' ao usar Microsoft.PowerShell.SecretStore +unlockSecretButNoScriptBlockExceptionMessage = Segredo de desbloqueio fornecido para tipo de Cofre Secreto personalizado, mas nenhum ScriptBlock de desbloqueio fornecido. +noUnlockScriptBlockForVaultExceptionMessage = Nenhum ScriptBlock de desbloqueio fornecido para desbloquear o cofre '{0}' +noSetScriptBlockForVaultExceptionMessage = Nenhum ScriptBlock fornecido para atualizar/criar segredos no cofre '{0}' +noRemoveScriptBlockForVaultExceptionMessage = Nenhum ScriptBlock fornecido para remover segredos do cofre '{0}' +invalidSecretValueTypeExceptionMessage = O valor do segredo é de um tipo inválido. Tipos esperados: String, SecureString, HashTable, Byte[] ou PSCredential. Mas obtido: {0} +limitValueCannotBeZeroOrLessExceptionMessage = O valor limite não pode ser 0 ou inferior para {0} +secondsValueCannotBeZeroOrLessExceptionMessage = O valor dos segundos não pode ser 0 ou inferior para {0} +failedToCreateOpenSslCertExceptionMessage = Falha ao criar o certificado openssl: {0} +certificateThumbprintsNameSupportedOnWindowsExceptionMessage = Impressões digitais/nome do certificado são suportados apenas no Windows. +noCertificateFoundExceptionMessage = Nenhum certificado encontrado em {0}\{1} para '{2}' +runspacePoolFailedToLoadExceptionMessage = {0} Falha ao carregar RunspacePool. +noServiceHandlersDefinedExceptionMessage = Nenhum manipulador de serviço definido. +noSessionToSetOnResponseExceptionMessage = Não há sessão disponível para definir na resposta. +noSessionToCalculateDataHashExceptionMessage = Nenhuma sessão disponível para calcular o hash dos dados. +moduleOrVersionNotFoundExceptionMessage = Módulo ou versão não encontrada em {0}: {1}@{2} +noSmtpHandlersDefinedExceptionMessage = Nenhum manipulador SMTP definido. +taskTimedOutExceptionMessage = A tarefa expirou após {0}ms. +verbAlreadyDefinedExceptionMessage = [Verbo] {0}: Já definido +verbAlreadyDefinedForUrlExceptionMessage = [Verbo] {0}: Já definido para {1} +pathOrScriptBlockRequiredExceptionMessage = É necessário um Caminho ou ScriptBlock para obter os valores de acesso personalizados. +accessMethodAlreadyDefinedExceptionMessage = Método de acesso já definido: {0} +accessMethodNotExistForMergingExceptionMessage = O método de acesso não existe para a mesclagem: {0} +routeAlreadyContainsCustomAccessExceptionMessage = A rota '[{0}] {1}' já contém Acesso Personalizado com o nome '{2}' +accessMethodNotExistExceptionMessage = O método de acesso não existe: {0} +'@ diff --git a/src/Locales/zn/Pode.psd1 b/src/Locales/zn/Pode.psd1 index 0e0c8729b..c6ebfb915 100644 --- a/src/Locales/zn/Pode.psd1 +++ b/src/Locales/zn/Pode.psd1 @@ -1,24 +1,88 @@ ConvertFrom-StringData -StringData @' -adModuleWindowsOnlyMessage = Active Directory模块仅在Windows上可用 -adModuleNotInstalledMessage = Active Directory模块未安装 -secretManagementModuleNotInstalledMessage = Microsoft.PowerShell.SecretManagement模块未安装 -secretVaultAlreadyRegisteredMessage = 在自动导入秘密库时,名为'{0}'的秘密库已注册 -failedToOpenRunspacePoolMessage = 无法打开RunspacePool: {0} -cronExpressionInvalidMessage = Cron表达式应仅由5部分组成: {0} -invalidAliasFoundMessage = 找到无效的{0}别名:{1} -invalidAtomCharacterMessage = 无效的原子字符:{0} -minValueGreaterThanMaxMessage = {0}的最小值不应大于最大值 -minValueInvalidMessage = {1}的最小值'{0}'无效,应大于或等于{2} -maxValueInvalidMessage = {1}的最大值'{0}'无效,应小于或等于{2} -valueOutOfRangeMessage = {1}的值'{0}'无效,应介于{2}和{3}之间 -daysInMonthExceededMessage = {0}只有{1}天,但提供了{2} -nextTriggerCalculationErrorMessage = 计算下一个触发日期时间时似乎出了问题:{0} -incompatiblePodeDllMessage = 已加载现有的不兼容Pode.DLL版本{0}。需要版本{1}。请打开一个新的Powershell/pwsh会话并重试。 -endpointNotExistMessage = 协议为'{0}'且地址为'{1}'或本地地址为'{2}'的端点不存在 -endpointNameNotExistMessage = 名称为'{0}'的端点不存在 -failedToConnectToUrlMessage = 无法连接到URL: {0} -failedToParseAddressMessage = 无法将'{0}'解析为有效的IP/主机:端口地址 -invalidIpAddressMessage = 提供的IP地址无效:{0} -invalidPortMessage = 端口不能为负:{0} -pathNotExistMessage = 路径不存在:{0} +adModuleWindowsOnlyExceptionMessage = 仅支持 Windows 的 Active Directory 模块。 +adModuleNotInstalledExceptionMessage = 未安装 Active Directory 模块。 +secretManagementModuleNotInstalledExceptionMessage = 未安装 Microsoft.PowerShell.SecretManagement 模块。 +secretVaultAlreadyRegisteredExceptionMessage = 已经注册了名称为 '{0}' 的秘密保险库,同时正在自动导入秘密保险库。 +failedToOpenRunspacePoolExceptionMessage = 打开 RunspacePool 失败: {0} +cronExpressionInvalidExceptionMessage = Cron 表达式应仅包含 5 个部分: {0} +invalidAliasFoundExceptionMessage = 找到了无效的 {0} 别名: {1} +invalidAtomCharacterExceptionMessage = 无效的原子字符: {0} +minValueGreaterThanMaxExceptionMessage = {0} 的最小值不应大于最大值。 +minValueInvalidExceptionMessage = {1} 的最小值 '{0}' 无效,应大于或等于 {2} +maxValueInvalidExceptionMessage = {1} 的最大值 '{0}' 无效,应小于或等于 {2} +valueOutOfRangeExceptionMessage = {1} 的值 '{0}' 无效,应在 {2} 和 {3} 之间 +daysInMonthExceededExceptionMessage = {0} 仅有 {1} 天,但提供了 {2} 天。 +nextTriggerCalculationErrorExceptionMessage = 似乎在尝试计算下一个触发器日期时间时出现了问题: {0} +incompatiblePodeDllExceptionMessage = 已加载存在不兼容的 Pode.DLL 版本 {0}。需要版本 {1}。请打开新的 Powershell/pwsh 会话并重试。 +endpointNotExistExceptionMessage = 具有协议 '{0}' 和地址 '{1}' 或本地地址 '{2}' 的端点不存在。 +endpointNameNotExistExceptionMessage = 名为 '{0}' 的端点不存在。 +failedToConnectToUrlExceptionMessage = 连接到 URL 失败: {0} +failedToParseAddressExceptionMessage = 无法将 '{0}' 解析为有效的 IP/主机:端口地址 +invalidIpAddressExceptionMessage = 提供的 IP 地址无效: {0} +invalidPortExceptionMessage = 端口不能为负数: {0} +pathNotExistExceptionMessage = 路径不存在: {0} +noSecretForHmac256ExceptionMessage = 未提供 HMAC256 哈希的密钥。 +noSecretForHmac384ExceptionMessage = 未提供 HMAC384 哈希的密钥。 +noSecretForHmac512ExceptionMessage = 未提供 HMAC512 哈希的密钥。 +noSecretForJwtSignatureExceptionMessage = 未提供 JWT 签名的密钥。 +noSecretExpectedForNoSignatureExceptionMessage = 预期未提供签名的密钥。 +unsupportedJwtAlgorithmExceptionMessage = 当前不支持的 JWT 算法: {0} +invalidBase64JwtExceptionMessage = 在 JWT 中找到无效的 Base64 编码值 +invalidJsonJwtExceptionMessage = 在 JWT 中找到无效的 JSON 值 +unsupportedFunctionInServerlessContextExceptionMessage = 不支持在无服务器上下文中使用 {0} 函数。 +invalidPathWildcardOrDirectoryExceptionMessage = 提供的路径不能是通配符或目录: {0} +invalidExceptionTypeExceptionMessage = 异常类型无效,应为 WebException 或 HttpRequestException,但得到了: {0} +pathToLoadNotFoundExceptionMessage = 未找到要加载的路径 {0}: {1} +singleValueForIntervalExceptionMessage = 当使用间隔时,只能提供单个 {0} 值。 +scriptErrorExceptionMessage = 脚本 '{0}' 在 {1} {2} (第 {3} 行) 第 {4} 个字符处执行 {5} 对象 '{7}' 的错误。类: {8} 基类: {9} +noScriptBlockSuppliedExceptionMessage = 未提供脚本块。 +iisAspnetcoreTokenMissingExceptionMessage = 缺少 IIS ASPNETCORE_TOKEN。 +invalidContentTypeForSchemaExceptionMessage = 为模式找到的内容类型无效: {0} +propertiesParameterWithoutNameExceptionMessage = 如果属性没有名称,则不能使用 Properties 参数。 +multiTypePropertiesRequireOpenApi31ExceptionMessage = 多类型属性需要 OpenApi 版本 3.1 或更高版本。 +openApiVersionPropertyMandatoryExceptionMessage = OpenApi 版本属性是必需的。 +webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = 在 OpenAPI v3.0.x 中不支持 Webhooks 功能 +authenticationMethodDoesNotExistExceptionMessage = 认证方法不存在: {0} +unsupportedObjectExceptionMessage = 不支持的对象 +validationOfAnyOfSchemaNotSupportedExceptionMessage = 不支持包含 'anyof' 的模式的验证。 +validationOfOneOfSchemaNotSupportedExceptionMessage = 不支持包含 'oneof' 的模式的验证。 +cannotCreatePropertyWithoutTypeExceptionMessage = 无法创建属性,因为未定义类型。 +paramsNoAdditionalPropertiesExclusiveExceptionMessage = Params -NoAdditionalProperties 和 -AdditionalProperties 互斥。 +headerMustHaveNameInEncodingContextExceptionMessage = 在编码上下文中使用时,标头必须有名称。 +descriptionRequiredExceptionMessage = 描述是必需的。 +openApiDocumentNotCompliantExceptionMessage = OpenAPI 文档不符合规范。 +noComponentInDefinitionExceptionMessage = 定义中没有类型为 {0} 名称为 {1} 的组件。 +methodPathAlreadyDefinedExceptionMessage = [{0}] {1}: 已经定义。 +methodPathAlreadyDefinedForUrlExceptionMessage = [{0}] {1}: 已经为 {2} 定义。 +invalidMiddlewareTypeExceptionMessage = 提供的中间件之一是无效的类型。期望是 ScriptBlock 或 Hashtable,但得到了: {0} +hashtableMiddlewareNoLogicExceptionMessage = 提供的 Hashtable 中间件没有定义逻辑。 +invalidLogicTypeInHashtableMiddlewareExceptionMessage = 提供的 Hashtable 中间件具有无效的逻辑类型。期望是 ScriptBlock,但得到了: {0} +scopedVariableAlreadyDefinedExceptionMessage = 已经定义了作用域变量: {0} +valueForUsingVariableNotFoundExceptionMessage = 未找到 `$using:{0}` 的值。 +unlockSecretRequiredExceptionMessage = 使用 Microsoft.PowerShell.SecretStore 时需要 'UnlockSecret' 属性。 +unlockSecretButNoScriptBlockExceptionMessage = 为自定义秘密保险库类型提供了解锁密钥,但未提供解锁 ScriptBlock。 +noUnlockScriptBlockForVaultExceptionMessage = 未为解锁保险库 '{0}' 提供解锁 ScriptBlock。 +noSetScriptBlockForVaultExceptionMessage = 未为更新/创建保险库 '{0}' 中的秘密提供设置 ScriptBlock。 +noRemoveScriptBlockForVaultExceptionMessage = 未为从保险库 '{0}' 中删除秘密提供删除 ScriptBlock。 +invalidSecretValueTypeExceptionMessage = 密钥值是无效的类型。期望类型: 字符串、SecureString、HashTable、Byte[] 或 PSCredential。但得到了: {0} +limitValueCannotBeZeroOrLessExceptionMessage = {0} 的限制值不能为 0 或更小。 +secondsValueCannotBeZeroOrLessExceptionMessage = {0} 的秒数值不能为 0 或更小。 +failedToCreateOpenSslCertExceptionMessage = 创建 openssl 证书失败: {0} +certificateThumbprintsNameSupportedOnWindowsExceptionMessage = 证书指纹/名称仅在 Windows 上受支持。 +noCertificateFoundExceptionMessage = 在 {0}\{1} 中找不到证书 '{2}'。 +runspacePoolFailedToLoadExceptionMessage = {0} RunspacePool 加载失败。 +noServiceHandlersDefinedExceptionMessage = 未定义服务处理程序。 +noSessionToSetOnResponseExceptionMessage = 没有可用的会话来设置响应。 +noSessionToCalculateDataHashExceptionMessage = 没有可用的会话来计算数据哈希。 +moduleOrVersionNotFoundExceptionMessage = 在 {0} 上找不到模块或版本: {1}@{2} +noSmtpHandlersDefinedExceptionMessage = 未定义 SMTP 处理程序。 +taskTimedOutExceptionMessage = 任务在 {0} 毫秒后超时。 +verbAlreadyDefinedExceptionMessage = [Verb] {0}: 已经定义 +verbAlreadyDefinedForUrlExceptionMessage = [Verb] {0}: 已经为 {1} 定义 +pathOrScriptBlockRequiredExceptionMessage = 对于源自自定义访问值,需要路径或 ScriptBlock。 +accessMethodAlreadyDefinedExceptionMessage = 访问方法已经定义: {0} +accessMethodNotExistForMergingExceptionMessage = 合并时访问方法不存在: {0} +routeAlreadyContainsCustomAccessExceptionMessage = 路由 '[{0}] {1}' 已经包含名称为 '{2}' 的自定义访问。 +accessMethodNotExistExceptionMessage = 访问方法不存在: {0} +pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = 在 OpenAPI v3.0.x 中不支持 PathItems 功能。 '@ \ No newline at end of file diff --git a/src/Pode.Internal.psd1 b/src/Pode.Internal.psd1 index 2384bc7ea..d8b1b475b 100644 --- a/src/Pode.Internal.psd1 +++ b/src/Pode.Internal.psd1 @@ -21,4 +21,5 @@ # Minimum version of the Windows PowerShell engine required by this module PowerShellVersion = '5.1' + } \ No newline at end of file diff --git a/src/Pode.psm1 b/src/Pode.psm1 index 32d555b03..72e91050b 100644 --- a/src/Pode.psm1 +++ b/src/Pode.psm1 @@ -1,8 +1,9 @@ +[Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidGlobalVars', '')] +param() # root path $root = Split-Path -Parent -Path $MyInvocation.MyCommand.Path - # Import localized messages -Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $root -ChildPath 'Locales') +$global:msgTable = Import-LocalizedData -BaseDirectory (Join-Path -Path $root -ChildPath 'Locales') # load assemblies Add-Type -AssemblyName System.Web @@ -20,7 +21,7 @@ if ($podeDll) { if ( $moduleManifest.ModuleVersion -ne '$version$') { $moduleVersion = ([version]::new($moduleManifest.ModuleVersion + '.0')) if ($podeDll.GetName().Version -ne $moduleVersion) { - throw ($msgTable.incompatiblePodeDllMessage -f $podeDll.GetName().Version, $moduleVersion) #"An existing incompatible Pode.DLL version $($podeDll.GetName().Version) is loaded. Version $moduleVersion is required. Open a new Powershell/pwsh session and retry." + throw ($msgTable.incompatiblePodeDllExceptionMessage -f $podeDll.GetName().Version, $moduleVersion) #"An existing incompatible Pode.DLL version $($podeDll.GetName().Version) is loaded. Version $moduleVersion is required. Open a new Powershell/pwsh session and retry." } } } diff --git a/src/Private/Authentication.ps1 b/src/Private/Authentication.ps1 index 7bf7a6cdd..97a812b21 100644 --- a/src/Private/Authentication.ps1 +++ b/src/Private/Authentication.ps1 @@ -2194,11 +2194,11 @@ function Expand-PodeAuthMerge { function Import-PodeAuthADModule { if (!(Test-PodeIsWindows)) { - throw $msgTable.adModuleWindowsOnlyMessage #'Active Directory module only available on Windows' + throw $msgTable.adModuleWindowsOnlyExceptionMessage #'Active Directory module only available on Windows' } if (!(Test-PodeModuleInstalled -Name ActiveDirectory)) { - throw $msgTable.adModuleNotInstalledMessage #'Active Directory module is not installed' + throw $msgTable.adModuleNotInstalledExceptionMessage #'Active Directory module is not installed' } Import-Module -Name ActiveDirectory -Force -ErrorAction Stop diff --git a/src/Private/AutoImport.ps1 b/src/Private/AutoImport.ps1 index f196d577b..65f1f0b9e 100644 --- a/src/Private/AutoImport.ps1 +++ b/src/Private/AutoImport.ps1 @@ -177,7 +177,7 @@ function Import-PodeSecretManagementVaultsIntoRegistry { # error if SecretManagement module not installed if (!(Test-PodeModuleInstalled -Name Microsoft.PowerShell.SecretManagement)) { - throw $msgTable.secretManagementModuleNotInstalledMessage #'Microsoft.PowerShell.SecretManagement module not installed' + throw $msgTable.secretManagementModuleNotInstalledExceptionMessage #'Microsoft.PowerShell.SecretManagement module not installed' } # import the module @@ -195,7 +195,7 @@ function Import-PodeSecretManagementVaultsIntoRegistry { # is a vault with this name already registered? if (Test-PodeSecretVault -Name $vault.Name) { - throw ($msgTable.secretVaultAlreadyRegisteredMessage -f $vault.Name) #"A Secret Vault with the name '$($vault.Name)' has already been registered while auto-importing Secret Vaults" + throw ($msgTable.secretVaultAlreadyRegisteredExceptionMessage -f $vault.Name) #"A Secret Vault with the name '$($vault.Name)' has already been registered while auto-importing Secret Vaults" } # register the vault diff --git a/src/Private/Context.ps1 b/src/Private/Context.ps1 index 0472e3eed..b60e0629b 100644 --- a/src/Private/Context.ps1 +++ b/src/Private/Context.ps1 @@ -666,7 +666,7 @@ function Open-PodeRunspacePools { if ($item.Pool.RunspacePoolStateInfo.State -ieq 'broken') { $item.Pool.EndOpen($item.Result) | Out-Default - throw ($msgTable.failedToOpenRunspacePoolMessage -f $key) #"Failed to open RunspacePool: $($key)" + throw ($msgTable.failedToOpenRunspacePoolExceptionMessage -f $key) #"Failed to open RunspacePool: $($key)" } } @@ -722,7 +722,7 @@ function Close-PodeRunspacePools { if ($item.Pool.RunspacePoolStateInfo.State -ieq 'broken') { $item.Pool.EndClose($item.Result) | Out-Default - throw ($msgTable.failedToOpenRunspacePoolMessage -f $key) #"Failed to open RunspacePool: $($key)" + throw ($msgTable.failedToOpenRunspacePoolExceptionMessage -f $key) #"Failed to open RunspacePool: $($key)" } } diff --git a/src/Private/CronParser.ps1 b/src/Private/CronParser.ps1 index da231d4c5..d3358732a 100644 --- a/src/Private/CronParser.ps1 +++ b/src/Private/CronParser.ps1 @@ -109,7 +109,7 @@ function ConvertFrom-PodeCronExpression { # split and check atoms length $atoms = @($Expression -isplit '\s+') if ($atoms.Length -ne 5) { - throw ($msgTable.cronExpressionInvalidMessage -f $Expression) #"Cron expression should only consist of 5 parts: $($Expression)" + throw ($msgTable.cronExpressionInvalidExceptionMessage -f $Expression) #"Cron expression should only consist of 5 parts: $($Expression)" } # basic variables @@ -140,7 +140,7 @@ function ConvertFrom-PodeCronExpression { while ($_atom -imatch $aliasRgx) { $_alias = $_aliases[$Matches['tag']] if ($null -eq $_alias) { - throw ($msgTable.invalidAliasFoundMessage -f $_field, $Matches['tag']) #"Invalid $($_field) alias found: $($Matches['tag'])" + throw ($msgTable.invalidAliasFoundExceptionMessage -f $_field, $Matches['tag']) #"Invalid $($_field) alias found: $($Matches['tag'])" } $_atom = $_atom -ireplace $Matches['tag'], $_alias @@ -150,7 +150,7 @@ function ConvertFrom-PodeCronExpression { # ensure atom is a valid value if (!($_atom -imatch '^[\d|/|*|\-|,r]+$')) { - throw ($msgTable.invalidAtomCharacterMessage -f $_atom)#"Invalid atom character: $($_atom)" + throw ($msgTable.invalidAtomCharacterExceptionMessage -f $_atom)#"Invalid atom character: $($_atom)" } # replace * with min/max constraint @@ -214,28 +214,28 @@ function ConvertFrom-PodeCronExpression { # error else { - throw ($msgTable.invalidAtomCharacterMessage -f $_atom)#"Invalid cron atom format found: $($_atom)" + throw ($msgTable.invalidAtomCharacterExceptionMessage -f $_atom)#"Invalid cron atom format found: $($_atom)" } # ensure cron expression values are valid if ($null -ne $_cronExp.Range) { if ($_cronExp.Range.Min -gt $_cronExp.Range.Max) { - throw ($msgTable.minValueGreaterThanMaxMessage -f $_field) #"Min value for $($_field) should not be greater than the max value" + throw ($msgTable.minValueGreaterThanMaxExceptionMessage -f $_field) #"Min value for $($_field) should not be greater than the max value" } if ($_cronExp.Range.Min -lt $_constraint[0]) { - throw ($msgTable.minValueInvalidMessage -f $_cronExp.Range.Min, $_field, $_constraint[0]) #"Min value '$($_cronExp.Range.Min)' for $($_field) is invalid, should be greater than/equal to $($_constraint[0])" + throw ($msgTable.minValueInvalidExceptionMessage -f $_cronExp.Range.Min, $_field, $_constraint[0]) #"Min value '$($_cronExp.Range.Min)' for $($_field) is invalid, should be greater than/equal to $($_constraint[0])" } if ($_cronExp.Range.Max -gt $_constraint[1]) { - throw ($msgTable.maxValueInvalidMessage -f $_cronExp.Range.Max, $_field, $_constraint[1]) #"Max value '$($_cronExp.Range.Max)' for $($_field) is invalid, should be less than/equal to $($_constraint[1])" + throw ($msgTable.maxValueInvalidExceptionMessage -f $_cronExp.Range.Max, $_field, $_constraint[1]) #"Max value '$($_cronExp.Range.Max)' for $($_field) is invalid, should be less than/equal to $($_constraint[1])" } } if ($null -ne $_cronExp.Values) { $_cronExp.Values | ForEach-Object { if ($_ -lt $_constraint[0] -or $_ -gt $_constraint[1]) { - throw ($msgTable.valueOutOfRangeMessage -f $value, $_field, $_constraint[0], $_constraint[1]) #"Value '$($_)' for $($_field) is invalid, should be between $($_constraint[0]) and $($_constraint[1])" + throw ($msgTable.valueOutOfRangeExceptionMessage -f $value, $_field, $_constraint[0], $_constraint[1]) #"Value '$($_)' for $($_field) is invalid, should be between $($_constraint[0]) and $($_constraint[1])" } } } @@ -250,7 +250,7 @@ function ConvertFrom-PodeCronExpression { foreach ($mon in $cron['Month'].Values) { foreach ($day in $cron['DayOfMonth'].Values) { if ($day -gt $constraints.DaysInMonths[$mon - 1]) { - throw ($msgTable.daysInMonthExceededMessage -f $constraints.Months[$mon - 1], $constraints.DaysInMonths[$mon - 1], $day) #"$($constraints.Months[$mon - 1]) only has $($constraints.DaysInMonths[$mon - 1]) days, but $($day) was supplied" + throw ($msgTable.daysInMonthExceededExceptionMessage -f $constraints.Months[$mon - 1], $constraints.DaysInMonths[$mon - 1], $day) #"$($constraints.Months[$mon - 1]) only has $($constraints.DaysInMonths[$mon - 1]) days, but $($day) was supplied" } } } @@ -518,7 +518,7 @@ function Get-PodeCronNextTrigger { # before we return, make sure the time is valid if (!(Test-PodeCronExpression -Expression $Expression -DateTime $NextTime)) { - throw ($msgTable.nextTriggerCalculationErrorMessage -f $NextTime) #"Looks like something went wrong trying to calculate the next trigger datetime: $($NextTime)" + throw ($msgTable.nextTriggerCalculationErrorExceptionMessage -f $NextTime) #"Looks like something went wrong trying to calculate the next trigger datetime: $($NextTime)" } # if before the start or after end then return null diff --git a/src/Private/Cryptography.ps1 b/src/Private/Cryptography.ps1 index 76805e20a..c0f76de02 100644 --- a/src/Private/Cryptography.ps1 +++ b/src/Private/Cryptography.ps1 @@ -19,7 +19,7 @@ function Invoke-PodeHMACSHA256Hash { } if ($SecretBytes.Length -eq 0) { - throw 'No secret supplied for HMAC256 hash' + throw $msgTable.noSecretForHmac256ExceptionMessage #'No secret supplied for HMAC256 hash' } $crypto = [System.Security.Cryptography.HMACSHA256]::new($SecretBytes) @@ -47,7 +47,7 @@ function Invoke-PodeHMACSHA384Hash { } if ($SecretBytes.Length -eq 0) { - throw 'No secret supplied for HMAC384 hash' + throw $msgTable.noSecretForHmac384ExceptionMessage #'No secret supplied for HMAC384 hash' } $crypto = [System.Security.Cryptography.HMACSHA384]::new($SecretBytes) @@ -75,7 +75,7 @@ function Invoke-PodeHMACSHA512Hash { } if ($SecretBytes.Length -eq 0) { - throw 'No secret supplied for HMAC512 hash' + throw $msgTable.noSecretForHmac512ExceptionMessage #'No secret supplied for HMAC512 hash' } $crypto = [System.Security.Cryptography.HMACSHA512]::new($SecretBytes) @@ -304,11 +304,11 @@ function New-PodeJwtSignature { ) if (($Algorithm -ine 'none') -and (($null -eq $SecretBytes) -or ($SecretBytes.Length -eq 0))) { - throw 'No Secret supplied for JWT signature' + throw $msgTable.noSecretForJwtSignatureExceptionMessage #'No Secret supplied for JWT signature' } if (($Algorithm -ieq 'none') -and (($null -ne $secretBytes) -and ($SecretBytes.Length -gt 0))) { - throw 'Expected no secret to be supplied for no signature' + throw $msgTable.noSecretExpectedForNoSignatureExceptionMessage #'Expected no secret to be supplied for no signature' } $sig = $null @@ -334,7 +334,7 @@ function New-PodeJwtSignature { } default { - throw "The JWT algorithm is not currently supported: $($Algorithm)" + throw ($msgTable.unsupportedJwtAlgorithmExceptionMessage -f $Algorithm) #"The JWT algorithm is not currently supported: $($Algorithm)" } } @@ -393,7 +393,7 @@ function ConvertFrom-PodeJwtBase64Value { $Value = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Value)) } catch { - throw 'Invalid Base64 encoded value found in JWT' + throw $msgTable.invalidBase64JwtExceptionMessage #'Invalid Base64 encoded value found in JWT' } # return json @@ -401,6 +401,6 @@ function ConvertFrom-PodeJwtBase64Value { return ($Value | ConvertFrom-Json) } catch { - throw 'Invalid JSON value found in JWT' + throw $msgTable.invalidJsonJwtExceptionMessage #'Invalid JSON value found in JWT' } } \ No newline at end of file diff --git a/src/Private/Endpoints.ps1 b/src/Private/Endpoints.ps1 index 1cb70a5cc..86e34f436 100644 --- a/src/Private/Endpoints.ps1 +++ b/src/Private/Endpoints.ps1 @@ -282,7 +282,7 @@ function Find-PodeEndpointName { # error? if ($ThrowError) { - throw ($msgTable.endpointNotExistMessage -f $Protocol, $Address, $_localAddress) #"Endpoint with protocol '$($Protocol)' and address '$($Address)' or local address '$($_localAddress)' does not exist" + throw ($msgTable.endpointNotExistExceptionMessage -f $Protocol, $Address, $_localAddress) #"Endpoint with protocol '$($Protocol)' and address '$($Address)' or local address '$($_localAddress)' does not exist" } return $null @@ -310,7 +310,7 @@ function Get-PodeEndpointByName { # error? if ($ThrowError) { - throw ($msgTable.endpointNameNotExistMessage -f $Name) #"Endpoint with name '$($Name)' does not exist" + throw ($msgTable.endpointNameNotExistExceptionMessage -f $Name) #"Endpoint with name '$($Name)' does not exist" } return $null diff --git a/src/Private/Gui.ps1 b/src/Private/Gui.ps1 index 10a32a695..8372c273a 100644 --- a/src/Private/Gui.ps1 +++ b/src/Private/Gui.ps1 @@ -41,7 +41,7 @@ function Start-PodeGuiRunspace { Start-Sleep -Milliseconds 200 } else { - throw ($msgTable.failedToConnectToUrlMessage -f $uri) #"Failed to connect to URL: $($uri)" + throw ($msgTable.failedToConnectToUrlExceptionMessage -f $uri) #"Failed to connect to URL: $($uri)" } } } diff --git a/src/Private/Helpers.ps1 b/src/Private/Helpers.ps1 index 71066827e..f22920830 100644 --- a/src/Private/Helpers.ps1 +++ b/src/Private/Helpers.ps1 @@ -190,7 +190,7 @@ function Get-PodeEndpointInfo { # validate that we have a valid ip/host:port address if (!(($Address -imatch "^$($cmbdRgx)$") -or ($Address -imatch "^$($hostRgx)[\:]{0,1}") -or ($Address -imatch "[\:]{0,1}$($portRgx)$"))) { - throw ($msgTable.failedToParseAddressMessage -f $Address)#"Failed to parse '$($Address)' as a valid IP/Host:Port address" + throw ($msgTable.failedToParseAddressExceptionMessage -f $Address)#"Failed to parse '$($Address)' as a valid IP/Host:Port address" } # grab the ip address/hostname @@ -201,7 +201,7 @@ function Get-PodeEndpointInfo { # ensure we have a valid ip address/hostname if (!(Test-PodeIPAddress -IP $_host)) { - throw ($msgTable.invalidIpAddressMessage -f $_host) #"The IP address supplied is invalid: $($_host)" + throw ($msgTable.invalidIpAddressExceptionMessage -f $_host) #"The IP address supplied is invalid: $($_host)" } # grab the port @@ -212,7 +212,7 @@ function Get-PodeEndpointInfo { # ensure the port is valid if ($_port -lt 0) { - throw ($msgTable.invalidPortMessage -f $_port)#"The port cannot be negative: $($_port)" + throw ($msgTable.invalidPortExceptionMessage -f $_port)#"The port cannot be negative: $($_port)" } # return the info @@ -873,7 +873,7 @@ function New-PodePSDrive { # if the path supplied doesn't exist, error if (!(Test-Path $Path)) { - throw ($msgTable.pathNotExistMessage -f $Path)#"Path does not exist: $($Path)" + throw ($msgTable.pathNotExistExceptionMessage -f $Path)#"Path does not exist: $($Path)" } # resolve the path @@ -2333,7 +2333,7 @@ function Get-PodeRelativePath { # if flagged, test the path and throw error if it doesn't exist if ($TestPath -and !(Test-PodePath $Path -NoStatus)) { - throw "The path does not exist: $(Protect-PodeValue -Value $Path -Default $_rawPath)" + throw ($msgTable.pathNotExistExceptionMessage -f (Protect-PodeValue -Value $Path -Default $_rawPath))#"The path does not exist: $(Protect-PodeValue -Value $Path -Default $_rawPath)" } return $Path @@ -2379,7 +2379,7 @@ function Test-PodeIsServerless { ) if ($PodeContext.Server.IsServerless -and $ThrowError) { - throw "The $($FunctionName) function is not supported in a serverless context" + throw ($msgTable.unsupportedFunctionInServerlessContextExceptionMessage -f $FunctionName) #"The $($FunctionName) function is not supported in a serverless context" } if (!$ThrowError) { @@ -2502,24 +2502,25 @@ function Get-PodeHandler { function Convert-PodeFileToScriptBlock { param( [Parameter(Mandatory = $true)] + [Alias("FilePath")] [string] - $FilePath + $Path ) # resolve for relative path - $FilePath = Get-PodeRelativePath -Path $FilePath -JoinRoot + $Path = Get-PodeRelativePath -Path $Path -JoinRoot - # if file doesn't exist, error - if (!(Test-PodePath -Path $FilePath -NoStatus)) { - throw "The FilePath supplied does not exist: $($FilePath)" + # if Path doesn't exist, error + if (!(Test-PodePath -Path $Path -NoStatus)) { + throw ($msgTable.pathNotExistExceptionMessage -f $Path) # "The Path supplied does not exist: $($Path)" } # if the path is a wildcard or directory, error - if (!(Test-PodePathIsFile -Path $FilePath -FailOnWildcard)) { - throw "The FilePath supplied cannot be a wildcard or a directory: $($FilePath)" + if (!(Test-PodePathIsFile -Path $Path -FailOnWildcard)) { + throw ($msgTable.invalidPathWildcardOrDirectoryExceptionMessage -f $Path) # "The Path supplied cannot be a wildcard or a directory: $($Path)" } - return ([scriptblock](Use-PodeScript -Path $FilePath)) + return ([scriptblock](Use-PodeScript -Path $Path)) } function Convert-PodeQueryStringToHashTable { @@ -2597,15 +2598,16 @@ function Get-PodeDotSourcedFiles { function Get-PodeAstFromFile { param( [Parameter(Mandatory = $true)] + [Alias("FilePath")] [string] - $FilePath + $Path ) - if (!(Test-Path $FilePath)) { - throw "Path to script file does not exist: $($FilePath)" + if (!(Test-Path $Path)) { + throw ($msgTable.pathNotExistExceptionMessage -f $Path) # "The Path supplied does not exist: $($Path)" } - return [System.Management.Automation.Language.Parser]::ParseFile($FilePath, [ref]$null, [ref]$null) + return [System.Management.Automation.Language.Parser]::ParseFile($Path, [ref]$null, [ref]$null) } function Get-PodeFunctionsFromFile { @@ -2741,7 +2743,7 @@ function Use-PodeFolder { # fail if path not found if (!(Test-PodePath -Path $Path -NoStatus)) { - throw "Path to load $($DefaultPath) not found: $($Path)" + throw ($msgTable.pathToLoadNotFoundExceptionMessage -f $DefaultPath, $Path) #"Path to load $($DefaultPath) not found: $($Path)" } # get .ps1 files and load them @@ -2845,7 +2847,7 @@ function Set-PodeCronInterval { } if ($Value.Length -gt 1) { - throw "You can only supply a single $($Type) value when using intervals" + throw ($msgTable.singleValueForIntervalExceptionMessage -f $Type) #"You can only supply a single $($Type) value when using intervals" } if ($Value.Length -eq 1) { @@ -3313,7 +3315,8 @@ function ConvertTo-PodeYamlInternal { catch { $_ | Write-PodeErrorLog $_.Exception | Write-PodeErrorLog -CheckInnerException - throw "Error'$($_)' in script $($_.InvocationInfo.ScriptName) $($_.InvocationInfo.Line.Trim()) (line $($_.InvocationInfo.ScriptLineNumber)) char $($_.InvocationInfo.OffsetInLine) executing $($_.InvocationInfo.MyCommand) on $type object '$($InputObject)' Class: $($InputObject.GetType().Name) BaseClass: $($InputObject.GetType().BaseType.Name) " + throw ($msgTable.scriptErrorExceptionMessage -f $_, $_.InvocationInfo.ScriptName, $_.InvocationInfo.Line.Trim(), $_.InvocationInfo.ScriptLineNumber, $_.InvocationInfo.OffsetInLine, $_.InvocationInfo.MyCommand, $type, $InputObject, $InputObject.GetType().Name, $InputObject.GetType().BaseType.Name) + #"Error'$($_)' in script $($_.InvocationInfo.ScriptName) $($_.InvocationInfo.Line.Trim()) (line $($_.InvocationInfo.ScriptLineNumber)) char $($_.InvocationInfo.OffsetInLine) executing $($_.InvocationInfo.MyCommand) on $type object '$($InputObject)' Class: $($InputObject.GetType().Name) BaseClass: $($InputObject.GetType().BaseType.Name) " } } } \ No newline at end of file diff --git a/src/Private/Middleware.ps1 b/src/Private/Middleware.ps1 index 4f5d74599..8d621dcd1 100644 --- a/src/Private/Middleware.ps1 +++ b/src/Private/Middleware.ps1 @@ -78,7 +78,7 @@ function New-PodeMiddlewareInternal { ) if (Test-PodeIsEmpty $ScriptBlock) { - throw '[Middleware]: No ScriptBlock supplied' + throw $msgTable.noScriptBlockSuppliedExceptionMessage #'No ScriptBlock supplied' } # if route is empty, set it to root @@ -392,7 +392,7 @@ function Initialize-PodeIISMiddleware { # fail if no iis token - because there should be! if ([string]::IsNullOrWhiteSpace($PodeContext.Server.IIS.Token)) { - throw 'IIS ASPNETCORE_TOKEN is missing' + throw $msgTable.iisAspnetcoreTokenMissingExceptionMessage #'IIS ASPNETCORE_TOKEN is missing' } # add middleware to check every request has the token diff --git a/src/Private/OpenApi.ps1 b/src/Private/OpenApi.ps1 index c0c14be1b..d3e56cf8a 100644 --- a/src/Private/OpenApi.ps1 +++ b/src/Private/OpenApi.ps1 @@ -43,7 +43,7 @@ function ConvertTo-PodeOAObjectSchema { # Ensure all content types are valid MIME types foreach ($type in $Content.Keys) { if ($type -inotmatch '^(application|audio|image|message|model|multipart|text|video|\*)\/[\w\.\-\*]+(;[\s]*(charset|boundary)=[\w\.\-\*]+)*$|^"\*\/\*"$') { - throw "Invalid content-type found for schema: $($type)" + throw ($msgTable.invalidContentTypeForSchemaExceptionMessage -f $type) #"Invalid content-type found for schema: $($type)" } } # manage generic schema json conversion issue @@ -181,7 +181,7 @@ function ConvertTo-PodeOAObjectSchema { } } else { - Throw 'The Properties parameters cannot be used if the Property has no name' + Throw $msgTable.propertiesParameterWithoutNameExceptionMessage #'The Properties parameters cannot be used if the Property has no name' } } else { @@ -373,7 +373,7 @@ function ConvertTo-PodeOASchemaProperty { $schema = [ordered]@{ } if (Test-PodeOAVersion -Version 3.0 -DefinitionTag $DefinitionTag ) { if ($Property.type -is [string[]]) { - throw 'Multi type properties requeired OpenApi Version 3.1 or above' + throw $msgTable.multiTypePropertiesRequireOpenApi31ExceptionMessage#'Multi type properties requeired OpenApi Version 3.1 or above' } $schema['type'] = $Property.type.ToLower() } @@ -806,7 +806,7 @@ function Get-PodeOpenApiDefinitionInternal { $Definition = $PodeContext.Server.OpenAPI.Definitions[$DefinitionTag] if (!$Definition.Version) { - throw 'OpenApi openapi field is required' + throw $msgTable.openApiVersionPropertyMandatoryExceptionMessage#'OpenApi Version property is mandatory' } $localEndpoint = $null # set the openapi version @@ -862,7 +862,7 @@ function Get-PodeOpenApiDefinitionInternal { $def['paths'] = [ordered]@{} if ($Definition.webhooks.count -gt 0) { if (Test-PodeOAVersion -Version 3.0 -DefinitionTag $DefinitionTag) { - throw 'Feature webhooks is unsupported in OpenAPI v3.0.x' + throw $msgTable.webhooksFeatureNotSupportedInOpenApi30ExceptionMessage #'Webhooks feature is unsupported in OpenAPI v3.0.x' } else { $keys = [string[]]$Definition.webhooks.Keys @@ -909,7 +909,7 @@ function Get-PodeOpenApiDefinitionInternal { } if ($components.pathItems.count -gt 0) { if (Test-PodeOAVersion -Version 3.0 -DefinitionTag $DefinitionTag) { - throw 'Feature pathItems is unsupported in OpenAPI v3.0.x' + throw $msgTable.pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage #'Feature pathItems is unsupported in OpenAPI v3.0.x' } else { $keys = [string[]]$components.pathItems.Keys @@ -1313,7 +1313,7 @@ function Set-PodeOAAuth { # Validate the existence of specified authentication methods foreach ($n in @($Name)) { if (!(Test-PodeAuthExists -Name $n)) { - throw "Authentication method does not exist: $($n)" + throw ($msgTable.authenticationMethodDoesNotExistExceptionMessage -f $n) #"Authentication method does not exist: $($n)" } } } @@ -1380,7 +1380,7 @@ function Set-PodeOAGlobalAuth { # Check if the specified authentication method exists if (!(Test-PodeAuthExists -Name $Name)) { - throw "Authentication method does not exist: $($Name)" + throw ($msgTable.authenticationMethodDoesNotExistExceptionMessage -f $Name) #"Authentication method does not exist: $($Name)" } # Iterate over each definition tag to apply the authentication method @@ -1457,7 +1457,7 @@ function Resolve-PodeOAReference { $tmpProp += Resolve-PodeOAReference -DefinitionTag $DefinitionTag -ComponentSchema$comp } else { - throw 'Unsupported object' + throw $msgTable.unsupportedObjectExceptionMessage #'Unsupported object' } } } @@ -1472,10 +1472,10 @@ function Resolve-PodeOAReference { } elseif ($key -ieq 'oneof') { - throw 'Validation of schema with oneof is not supported' + throw $msgTable.validationOfOneOfSchemaNotSupportedExceptionMessage #'Validation of schema with oneof is not supported' } elseif ($key -ieq 'anyof') { - throw 'Validation of schema with anyof is not supported' + throw $msgTable.validationOfAnyOfSchemaNotSupportedExceptionMessage #'Validation of schema with anyof is not supported' } } elseif ($ComponentSchema.properties[$key].type -eq 'object') { @@ -1557,7 +1557,7 @@ function New-PodeOAPropertyInternal { $param.type = $Params.type } else { - throw 'Cannot create the property no type is defined' + throw $msgTable.cannotCreatePropertyWithoutTypeExceptionMessage #'Cannot create the property no type is defined' } } @@ -1639,7 +1639,7 @@ function New-PodeOAPropertyInternal { if ($Params.ExternalDocs) { $param.externalDocs = $Params.ExternalDocs } if ($Params.NoAdditionalProperties.IsPresent -and $Params.AdditionalProperties) { - throw 'Params -NoAdditionalProperties and -AdditionalProperties are mutually exclusive' + throw $msgTable.paramsNoAdditionalPropertiesExclusiveExceptionMessage #'Params -NoAdditionalProperties and -AdditionalProperties are mutually exclusive' } else { if ($Params.NoAdditionalProperties.IsPresent) { $param.additionalProperties = $false } @@ -1699,7 +1699,7 @@ function ConvertTo-PodeOAHeaderProperty { } } else { - throw 'Header requires a name when used in an encoding context' + throw $msgTable.headerMustHaveNameInEncodingContextExceptionMessage #'Header requires a name when used in an encoding context' } } @@ -1814,7 +1814,7 @@ function New-PodeOResponseInternal { $Description = Get-PodeStatusDescription -StatusCode $Params.StatusCode } else { - throw 'A Description is required' + throw $msgTable.descriptionRequiredExceptionMessage #'A Description is required' } } else { @@ -1984,7 +1984,7 @@ function Test-PodeOADefinitionInternal { } # Throw an error indicating non-compliance with OpenAPI standards - throw 'OpenAPI document compliance issues' + throw $msgTable.openApiDocumentNotCompliantExceptionMessage #'OpenAPI document compliance issues' } } @@ -2056,7 +2056,7 @@ function Test-PodeOAComponentInternal { if (!($PodeContext.Server.OpenAPI.Definitions[$tag].components[$field].keys -ccontains $Name)) { # If $Name is not found in the current $tag, return $false or throw an exception if ($ThrowException.IsPresent ) { - throw "No components of type $field named $Name are available in the $tag definition." + throw ($msgTable.noComponentInDefinitionExceptionMessage -f $field, $Name, $tag) #"No component of type $field named $Name is available in the $tag definition." } else { return $false diff --git a/src/Private/Routes.ps1 b/src/Private/Routes.ps1 index 301f45d90..37501e82c 100644 --- a/src/Private/Routes.ps1 +++ b/src/Private/Routes.ps1 @@ -504,10 +504,10 @@ function Test-PodeRouteInternal { } if ([string]::IsNullOrEmpty($_url)) { - throw "[$($Method)] $($Path): Already defined" + throw ($msgTable.methodPathAlreadyDefinedExceptionMessage -f $Method, $Path) #"[$($Method)] $($Path): Already defined" } - throw "[$($Method)] $($Path): Already defined for $($_url)" + throw ($msgTable.methodPathAlreadyDefinedForUrlExceptionMessage -f $Method, $Path, $_url) #"[$($Method)] $($Path): Already defined for $($_url)" } function Convert-PodeFunctionVerbToHttpMethod { @@ -652,17 +652,17 @@ function ConvertTo-PodeMiddleware { # check middleware is a type valid if (($mid -isnot [scriptblock]) -and ($mid -isnot [hashtable])) { - throw "One of the Middlewares supplied is an invalid type. Expected either a ScriptBlock or Hashtable, but got: $($mid.GetType().Name)" + throw ($msgTable.invalidMiddlewareTypeExceptionMessage -f $mid.GetType().Name)#"One of the Middlewares supplied is an invalid type. Expected either a ScriptBlock or Hashtable, but got: $($mid.GetType().Name)" } # if middleware is hashtable, ensure the keys are valid (logic is a scriptblock) if ($mid -is [hashtable]) { if ($null -eq $mid.Logic) { - throw 'A Hashtable Middleware supplied has no Logic defined' + throw $msgTable.hashtableMiddlewareNoLogicExceptionMessage#'A Hashtable Middleware supplied has no Logic defined' } if ($mid.Logic -isnot [scriptblock]) { - throw "A Hashtable Middleware supplied has an invalid Logic type. Expected ScriptBlock, but got: $($mid.Logic.GetType().Name)" + throw ($msgTable.invalidLogicTypeInHashtableMiddlewareExceptionMessage -f $mid.Logic.GetType().Name)#"A Hashtable Middleware supplied has an invalid Logic type. Expected ScriptBlock, but got: $($mid.Logic.GetType().Name)" } } } diff --git a/src/Private/ScopedVariables.ps1 b/src/Private/ScopedVariables.ps1 index 5fe266963..c0ee77e94 100644 --- a/src/Private/ScopedVariables.ps1 +++ b/src/Private/ScopedVariables.ps1 @@ -27,7 +27,7 @@ function Add-PodeScopedVariableInternal { # check if var already defined if (Test-PodeScopedVariable -Name $Name) { - throw "Scoped Variable already defined: $($Name)" + throw ($msgTable.scopedVariableAlreadyDefinedExceptionMessage -f $Name)#"Scoped Variable already defined: $($Name)" } # add scoped var definition @@ -169,7 +169,7 @@ function Find-PodeScopedVariableUsingVariableValues { } if ([string]::IsNullOrEmpty($value)) { - throw "Value for `$using:$($varName) could not be found" + throw ($msgTable.valueForUsingVariableNotFoundExceptionMessage -f $varName) #"Value for `$using:$($varName) could not be found" } # add to mapped diff --git a/src/Private/Secrets.ps1 b/src/Private/Secrets.ps1 index 744ddd31c..1f80e137f 100644 --- a/src/Private/Secrets.ps1 +++ b/src/Private/Secrets.ps1 @@ -45,7 +45,7 @@ function Register-PodeSecretManagementVault { # check if we have an unlock password for local secret store if ($isSecretStore) { if ([string]::IsNullOrEmpty($VaultConfig.Unlock.Secret)) { - throw 'An "-UnlockSecret" is required when using Microsoft.PowerShell.SecretStore' + throw $msgTable.unlockSecretRequiredExceptionMessage#'An "-UnlockSecret" is required when using Microsoft.PowerShell.SecretStore' } } @@ -145,7 +145,7 @@ function Register-PodeSecretCustomVault { # unlock secret with no script? if ($VaultConfig.Unlock.Enabled -and (Test-PodeIsEmpty $UnlockScriptBlock)) { - throw 'Unlock secret supplied for custom Secret Vault type, but not Unlock ScriptBlock supplied' + throw $msgTable.unlockSecretButNoScriptBlockExceptionMessage #'Unlock secret supplied for custom Secret Vault type, but not Unlock ScriptBlock supplied' } # all is good, so set the config @@ -195,7 +195,7 @@ function Unlock-PodeSecretCustomVault { # do we have an unlock scriptblock if ($null -eq $VaultConfig.Custom.Unlock) { - throw "No Unlock ScriptBlock supplied for unlocking the vault '$($VaultConfig.Name)'" + throw ($msgTable.noUnlockScriptBlockForVaultExceptionMessage -f $VaultConfig.Name) #"No Unlock ScriptBlock supplied for unlocking the vault '$($VaultConfig.Name)'" } # unlock the vault, and get back an expiry @@ -352,7 +352,7 @@ function Set-PodeSecretCustomKey { # do we have a set scriptblock? if ($null -eq $_vault.Custom.Set) { - throw "No Set ScriptBlock supplied for updating/creating secrets in the vault '$($_vault.Name)'" + throw ($msgTable.noSetScriptBlockForVaultExceptionMessage -f $_vault.Name) #"No Set ScriptBlock supplied for updating/creating secrets in the vault '$($_vault.Name)'" } # set the secret @@ -402,7 +402,7 @@ function Remove-PodeSecretCustomKey { # do we have a remove scriptblock? if ($null -eq $_vault.Custom.Remove) { - throw "No Remove ScriptBlock supplied for removing secrets from the vault '$($_vault.Name)'" + throw ($msgTable.noRemoveScriptBlockForVaultExceptionMessage -f $_vault.Name) #"No Remove ScriptBlock supplied for removing secrets from the vault '$($_vault.Name)'" } # remove the secret @@ -505,7 +505,7 @@ function Protect-PodeSecretValueType { ($Value -is [pscredential]) -or ($Value -is [System.Management.Automation.OrderedHashtable]) )) { - throw "Value to set secret to is of an invalid type. Expected either String, SecureString, HashTable, Byte[], or PSCredential. But got: $($Value.GetType().Name)" + throw ($msgTable.invalidSecretValueTypeExceptionMessage -f $Value.GetType().Name) #"Value to set secret to is of an invalid type. Expected either String, SecureString, HashTable, Byte[], or PSCredential. But got: $($Value.GetType().Name)" } return $Value diff --git a/src/Private/Security.ps1 b/src/Private/Security.ps1 index 559f672d0..f5691f6bb 100644 --- a/src/Private/Security.ps1 +++ b/src/Private/Security.ps1 @@ -348,11 +348,11 @@ function Add-PodeIPLimit { # ensure limit and seconds are non-zero and negative if ($Limit -le 0) { - throw "Limit value cannot be 0 or less for $($IP)" + throw ($msgTable.limitValueCannotBeZeroOrLessExceptionMessage -f $IP) #"Limit value cannot be 0 or less for $($IP)" } if ($Seconds -le 0) { - throw "Seconds value cannot be 0 or less for $($IP)" + throw ($msgTable.secondsValueCannotBeZeroOrLessExceptionMessage -f $IP) #"Seconds value cannot be 0 or less for $($IP)" } # get current rules @@ -426,11 +426,11 @@ function Add-PodeRouteLimit { # ensure limit and seconds are non-zero and negative if ($Limit -le 0) { - throw "Limit value cannot be 0 or less for $($IP)" + throw ($msgTable.limitValueCannotBeZeroOrLessExceptionMessage -f $IP) #"Limit value cannot be 0 or less for $($IP)" } if ($Seconds -le 0) { - throw "Seconds value cannot be 0 or less for $($IP)" + throw ($msgTable.secondsValueCannotBeZeroOrLessExceptionMessage -f $IP) #"Seconds value cannot be 0 or less for $($IP)" } # get current rules @@ -482,16 +482,16 @@ function Add-PodeEndpointLimit { # does the endpoint exist? $endpoint = Get-PodeEndpointByName -Name $EndpointName if ($null -eq $endpoint) { - throw "Endpoint not found: $($EndpointName)" + throw ($msgTable.endpointNameNotExistExceptionMessage -f $EndpointName) #"Endpoint not found: $($EndpointName)" } # ensure limit and seconds are non-zero and negative if ($Limit -le 0) { - throw "Limit value cannot be 0 or less for $($IP)" + throw ($msgTable.limitValueCannotBeZeroOrLessExceptionMessage -f $IP) #"Limit value cannot be 0 or less for $($IP)" } if ($Seconds -le 0) { - throw "Seconds value cannot be 0 or less for $($IP)" + throw ($msgTable.secondsValueCannotBeZeroOrLessExceptionMessage -f $IP) #"Seconds value cannot be 0 or less for $($IP)" } # get current rules @@ -816,7 +816,7 @@ function Get-PodeCertificateByPemFile { $result = openssl pkcs12 -inkey $keyPath -in $certPath -export -passin pass:$Password -password pass:$Password -out $tempFile if (!$?) { - throw "Failed to create openssl cert: $($result)" + throw ($msgTable.failedToCreateOpenSslCertExceptionMessage -f $result) #"Failed to create openssl cert: $($result)" } $cert = [X509Certificates.X509Certificate2]::new($tempFile, $Password) @@ -850,7 +850,7 @@ function Find-PodeCertificateInCertStore { # fail if not windows if (!(Test-PodeIsWindows)) { - throw 'Certificate Thumbprints/Name are only supported on Windows' + throw $msgTable.certificateThumbprintsNameSupportedOnWindowsExceptionMessage #'Certificate Thumbprints/Name are only supported on Windows' } # open the currentuser\my store @@ -870,7 +870,7 @@ function Find-PodeCertificateInCertStore { # fail if no cert found for query if (($null -eq $x509certs) -or ($x509certs.Count -eq 0)) { - throw "No certificate could be found in $($StoreLocation)\$($StoreName) for '$($Query)'" + throw ($msgTable.noCertificateFoundExceptionMessage -f $StoreLocation, $StoreName, $Query) # "No certificate could be found in $($StoreLocation)\$($StoreName) for '$($Query)'" } return ([X509Certificates.X509Certificate2]($x509certs[0])) diff --git a/src/Private/Server.ps1 b/src/Private/Server.ps1 index 367d065fd..bdad25560 100644 --- a/src/Private/Server.ps1 +++ b/src/Private/Server.ps1 @@ -136,7 +136,7 @@ function Start-PodeInternalServer { # errored? if ($PodeContext.RunspacePools[$pool].State -ieq 'error') { - throw "$($pool) RunspacePool failed to load" + throw ($msgTable.runspacePoolFailedToLoadExceptionMessage -f $pool) #"$($pool) RunspacePool failed to load" } } } diff --git a/src/Private/ServiceServer.ps1 b/src/Private/ServiceServer.ps1 index 9f39bb535..e1e66491e 100644 --- a/src/Private/ServiceServer.ps1 +++ b/src/Private/ServiceServer.ps1 @@ -1,7 +1,7 @@ function Start-PodeServiceServer { # ensure we have service handlers if (Test-PodeIsEmpty (Get-PodeHandler -Type Service)) { - throw 'No Service handlers have been defined' + throw $msgTable.noServiceHandlersDefinedExceptionMessage #'No Service handlers have been defined' } # state we're running diff --git a/src/Private/Sessions.ps1 b/src/Private/Sessions.ps1 index 35445d1cc..43074e223 100644 --- a/src/Private/Sessions.ps1 +++ b/src/Private/Sessions.ps1 @@ -40,7 +40,7 @@ function Get-PodeSessionFullId { function Set-PodeSession { if ($null -eq $WebEvent.Session) { - throw 'there is no session available to set on the response' + throw $msgTable.noSessionToSetOnResponseExceptionMessage #'there is no session available to set on the response' } # convert secret to strict mode @@ -137,7 +137,7 @@ function Revoke-PodeSession { function Set-PodeSessionDataHash { if ($null -eq $WebEvent.Session) { - throw 'No session available to calculate data hash' + throw $msgTable.noSessionToCalculateDataHashExceptionMessage #'No session available to calculate data hash' } if (($null -eq $WebEvent.Session.Data) -or ($WebEvent.Session.Data.Count -eq 0)) { diff --git a/src/Private/Setup.ps1 b/src/Private/Setup.ps1 index 340706864..9756736de 100644 --- a/src/Private/Setup.ps1 +++ b/src/Private/Setup.ps1 @@ -60,7 +60,7 @@ function Install-PodeLocalModules { } catch { Write-Host 'Failed' -ForegroundColor Red - throw "Module or version not found on $($_repository): $($_name)@$($_version)" + throw ($msgTable.moduleOrVersionNotFoundExceptionMessage -f $_repository, $_name, $_version) #"Module or version not found on $($_repository): $($_name)@$($_version)" } } } \ No newline at end of file diff --git a/src/Private/SmtpServer.ps1 b/src/Private/SmtpServer.ps1 index 603e08dff..e434504c1 100644 --- a/src/Private/SmtpServer.ps1 +++ b/src/Private/SmtpServer.ps1 @@ -3,7 +3,7 @@ using namespace Pode function Start-PodeSmtpServer { # ensure we have smtp handlers if (Test-PodeIsEmpty (Get-PodeHandler -Type Smtp)) { - throw 'No SMTP handlers have been defined' + throw $msgTable.noSmtpHandlersDefinedExceptionMessage #'No SMTP handlers have been defined' } # work out which endpoints to listen on diff --git a/src/Private/Tasks.ps1 b/src/Private/Tasks.ps1 index 1ab6ad6bb..88b4d090c 100644 --- a/src/Private/Tasks.ps1 +++ b/src/Private/Tasks.ps1 @@ -168,7 +168,7 @@ function Wait-PodeNetTaskInternal { # if the main task isnt complete, it timed out if (($null -ne $timeoutTask) -and (!$Task.IsCompleted)) { - throw [System.TimeoutException]::new("Task has timed out after $($Timeout)ms") + throw [System.TimeoutException]::new($msgTable.taskTimedOutExceptionMessage -f $Timeout) #"Task has timed out after $($Timeout)ms") } # only return a value if the result has one diff --git a/src/Private/Verbs.ps1 b/src/Private/Verbs.ps1 index 002e61571..7ace07a1d 100644 --- a/src/Private/Verbs.ps1 +++ b/src/Private/Verbs.ps1 @@ -117,9 +117,9 @@ function Test-PodeVerbAndError { } if ([string]::IsNullOrEmpty($_url)) { - throw "[Verb] $($Verb): Already defined" + throw ($msgTable.verbAlreadyDefinedExceptionMessage -f $Verb) #"[Verb] $($Verb): Already defined" } else { - throw "[Verb] $($Verb): Already defined for $($_url)" + throw ($msgTable.verbAlreadyDefinedForUrlExceptionMessage -f $Verb, $_url) # "[Verb] $($Verb): Already defined for $($_url)" } } \ No newline at end of file diff --git a/src/Public/Access.ps1 b/src/Public/Access.ps1 index 3e7a56ef5..4a949031b 100644 --- a/src/Public/Access.ps1 +++ b/src/Public/Access.ps1 @@ -69,7 +69,7 @@ function New-PodeAccessScheme { # for custom access a validator is mandatory if ($Custom) { if ([string]::IsNullOrWhiteSpace($Path) -and (Test-PodeIsEmpty $ScriptBlock)) { - throw 'A Path or ScriptBlock is required for sourcing the Custom access values' + throw $msgTable.pathOrScriptBlockRequiredExceptionMessage #'A Path or ScriptBlock is required for sourcing the Custom access values' } } @@ -174,7 +174,7 @@ function Add-PodeAccess { # check name unique if (Test-PodeAccessExists -Name $Name) { - throw "Access method already defined: $($Name)" + throw ($msgTable.accessMethodAlreadyDefinedExceptionMessage -f $Name) #"Access method already defined: $($Name)" } # parse using variables in validator scriptblock @@ -241,13 +241,13 @@ function Merge-PodeAccess { # ensure the name doesn't already exist if (Test-PodeAccessExists -Name $Name) { - throw "Access method already defined: $($Name)" + throw ($msgTable.accessMethodAlreadyDefinedExceptionMessage -f $Name) #"Access method already defined: $($Name)" } # ensure all the access methods exist foreach ($accName in $Access) { if (!(Test-PodeAccessExists -Name $accName)) { - throw "Access method does not exist for merging: $($accName)" + throw ($msgTable.accessMethodNotExistForMergingExceptionMessage -f $accName) #"Access method does not exist for merging: $($accName)" } } @@ -313,7 +313,7 @@ function Add-PodeAccessCustom { end { foreach ($r in $routes) { if ($r.AccessMeta.Custom.ContainsKey($Name)) { - throw "Route '[$($r.Method)] $($r.Path)' already contains Custom Access with name '$($Name)'" + throw ($msgTable.routeAlreadyContainsCustomAccessExceptionMessage -f $r.Method, $r.Path, $Name) #"Route '[$($r.Method)] $($r.Path)' already contains Custom Access with name '$($Name)'" } $r.AccessMeta.Custom[$Name] = $Value @@ -663,7 +663,7 @@ function Add-PodeAccessMiddleware { ) if (!(Test-PodeAccessExists -Name $Access)) { - throw "Access method does not exist: $($Access)" + throw ($msgTable.accessMethodNotExistExceptionMessage -f $Access) #"Access method does not exist: $($Access)" } Get-PodeAccessMiddlewareScript | diff --git a/tests/unit/Helpers.Tests.ps1 b/tests/unit/Helpers.Tests.ps1 index dd59ea60e..912cb97bb 100644 --- a/tests/unit/Helpers.Tests.ps1 +++ b/tests/unit/Helpers.Tests.ps1 @@ -1075,7 +1075,7 @@ Describe 'Get-PodeRelativePath' { It 'Throws error for path ot existing' { Mock Test-PodePath { return $false } - { Get-PodeRelativePath -Path './path' -TestPath } | Should -Throw -ExpectedMessage '*The path does not exist*' + { Get-PodeRelativePath -Path './path' -TestPath } | Should -Throw -ExpectedMessage ($msgTable.pathNotExistExceptionMessage -f './path') # '*The path does not exist*' } } diff --git a/tests/unit/Localization.Tests.ps1 b/tests/unit/Localization.Tests.ps1 new file mode 100644 index 000000000..6edc585f2 --- /dev/null +++ b/tests/unit/Localization.Tests.ps1 @@ -0,0 +1,37 @@ +# Save this script as Check-LocalizationKeys.Tests.ps1 +[Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidGlobalVars', '')] +param() + +Describe 'Localization Files Key Check' { + $path = $PSCommandPath + $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src' + # All language directories + $localizationDir = "$src/Locales" + + # Path to the English localization file + $englishFilePath = "$localizationDir/en/Pode.psd1" + $podeFileContent = Get-Content -Path $englishFilePath -Raw + # Execute the content and assign the result to a variable + $localizationMessages = Invoke-Expression $podeFileContent + $global:localizationKeys = $localizationMessages.Keys + # Discover all language directories + $languageDirs = Get-ChildItem -Path $localizationDir -Directory | Where-Object { $_.Name -ne 'en' } + + $languageDirs.foreach({ + Describe "Language $($_.Name) Test" { + # describe "Checking localization $($_.Name)" { + $filePath = "$($_.FullName)/Pode.psd1" + it 'Language resource file exist' { + Test-Path $filePath | Should -BeTrue + } + $podeFileContent = Get-Content -Path $filePath -Raw + $global:content = Invoke-Expression $podeFileContent + It -ForEach ($global:localizationKeys) -Name 'Resource File contain <_>' { + foreach ($key in $global:localizationKeys) { + #$global:content.Keys | Should -Contain $_ #-contains $_ | Should -BeTrue + $global:content.Keys -contains $_ | Should -BeTrue + } + } + } + }) +} diff --git a/tests/unit/Mappers.Tests.ps1 b/tests/unit/Mappers.Tests.ps1 index abb8dc845..e86bbe69d 100644 --- a/tests/unit/Mappers.Tests.ps1 +++ b/tests/unit/Mappers.Tests.ps1 @@ -1461,5 +1461,5 @@ Describe 'Get-PodeStatusDescription' { Get-PodeStatusDescription -StatusCode $_ | Should -Be $codes[$_] } - }#> + } } \ No newline at end of file diff --git a/tests/unit/Routes.Tests.ps1 b/tests/unit/Routes.Tests.ps1 index 004f8d72a..591b64342 100644 --- a/tests/unit/Routes.Tests.ps1 +++ b/tests/unit/Routes.Tests.ps1 @@ -619,7 +619,7 @@ Describe 'Add-PodePage' { It 'Throws error for invalid FilePath' { $PodeContext.Server = @{ 'Root' = $pwd } - { Add-PodePage -Name 'RickMorty' -FilePath './fake/path' } | Should -Throw -ExpectedMessage '*the path does not exist*' + { Add-PodePage -Name 'RickMorty' -FilePath './fake/path' } | Should -Throw -ExpectedMessage ($msgTable.pathNotExistExceptionMessage -f '*/fake/path') #'*the path does not exist*' } It 'Call Add-PodeRoute once for ScriptBlock page' { From eae6442ca19a452c74b64105119b446f8a13745e Mon Sep 17 00:00:00 2001 From: mdaneri Date: Thu, 30 May 2024 14:58:22 -0700 Subject: [PATCH 04/67] test fixed --- tests/unit/Localization.Tests.ps1 | 30 ++++++++++++++---------------- 1 file changed, 14 insertions(+), 16 deletions(-) diff --git a/tests/unit/Localization.Tests.ps1 b/tests/unit/Localization.Tests.ps1 index 6edc585f2..32a85f70d 100644 --- a/tests/unit/Localization.Tests.ps1 +++ b/tests/unit/Localization.Tests.ps1 @@ -17,21 +17,19 @@ Describe 'Localization Files Key Check' { # Discover all language directories $languageDirs = Get-ChildItem -Path $localizationDir -Directory | Where-Object { $_.Name -ne 'en' } - $languageDirs.foreach({ - Describe "Language $($_.Name) Test" { - # describe "Checking localization $($_.Name)" { - $filePath = "$($_.FullName)/Pode.psd1" - it 'Language resource file exist' { - Test-Path $filePath | Should -BeTrue - } - $podeFileContent = Get-Content -Path $filePath -Raw - $global:content = Invoke-Expression $podeFileContent - It -ForEach ($global:localizationKeys) -Name 'Resource File contain <_>' { - foreach ($key in $global:localizationKeys) { - #$global:content.Keys | Should -Contain $_ #-contains $_ | Should -BeTrue - $global:content.Keys -contains $_ | Should -BeTrue - } - } + Describe "Language [<_.Name>]" -ForEach ($languageDirs) { + it 'Language resource file exist' { + Test-Path -Path "$($_.FullName)/Pode.psd1" | Should -BeTrue + } + $podeFileContent = Get-Content -Path "$($_.FullName)/Pode.psd1" -Raw + $global:content = Invoke-Expression $podeFileContent + it 'Total number of keys equal to the [en]'{ + $global:content.Keys.Count | Should -be $global:localizationKeys.Count + } + It -ForEach ($global:localizationKeys) -Name 'Resource File contain <_>' { + foreach ($key in $global:localizationKeys) { + $global:content.Keys -contains $_ | Should -BeTrue } - }) + } + } } From 53688f07cc21edb42d1db89de12a304e3c9bbb43 Mon Sep 17 00:00:00 2001 From: mdaneri Date: Fri, 31 May 2024 15:30:14 -0700 Subject: [PATCH 05/67] Korean language Add Korean additional messages migrated added a new UICulture property to the module `Import-Module -Name "Pode" -ArgumentList @{UICulture ='ko-KR'}` failback to English if culture doesn't exist --- src/Locales/ar/Pode.psd1 | 32 ++++++++ src/Locales/de/Pode.psd1 | 33 +++++++- src/Locales/en/Pode.psd1 | 31 ++++++++ src/Locales/es/Pode.psd1 | 33 +++++++- src/Locales/fr/Pode.psd1 | 33 +++++++- src/Locales/it/Pode.psd1 | 32 ++++++++ src/Locales/ja/Pode.psd1 | 33 +++++++- src/Locales/kr/Pode.psd1 | 119 ++++++++++++++++++++++++++++ src/Locales/pl/Pode.psd1 | 33 +++++++- src/Locales/pt/Pode.psd1 | 33 +++++++- src/Locales/zn/Pode.psd1 | 33 +++++++- src/Pode.psm1 | 89 +++++++++++++++++---- src/Private/Helpers.ps1 | 2 +- src/Public/Authentication.ps1 | 88 ++++++++++---------- src/Public/AutoImport.ps1 | 2 +- src/Public/Events.ps1 | 4 +- tests/unit/Authentication.Tests.ps1 | 4 +- 17 files changed, 560 insertions(+), 74 deletions(-) create mode 100644 src/Locales/kr/Pode.psd1 diff --git a/src/Locales/ar/Pode.psd1 b/src/Locales/ar/Pode.psd1 index ad6ea3766..840103194 100644 --- a/src/Locales/ar/Pode.psd1 +++ b/src/Locales/ar/Pode.psd1 @@ -85,4 +85,36 @@ accessMethodNotExistForMergingExceptionMessage = طريقة الوصول غير routeAlreadyContainsCustomAccessExceptionMessage = المسار '[{0}] {1}' يحتوي بالفعل على وصول مخصص باسم '{2}' accessMethodNotExistExceptionMessage = طريقة الوصول غير موجودة: {0} pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = ميزة PathItems غير مدعومة في OpenAPI v3.0.x +nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = مطلوب ScriptBlock غير فارغ لخطة المصادقة المخصصة. +oauth2InnerSchemeInvalidExceptionMessage = يمكن أن تكون OAuth2 InnerScheme إما مصادقة Basic أو Form فقط، ولكن تم الحصول على: {0} +sessionsRequiredForOAuth2WithPKCEExceptionMessage = تتطلب OAuth2 مع PKCE جلسات. +oauth2ClientSecretRequiredExceptionMessage = تتطلب OAuth2 سر العميل عند عدم استخدام PKCE. +authMethodAlreadyDefinedExceptionMessage = طريقة المصادقة محددة بالفعل: {0} +invalidSchemeForAuthValidatorExceptionMessage = تتطلب الخطة '{0}' المقدمة لمحقق المصادقة '{1}' ScriptBlock صالح. +sessionsRequiredForSessionPersistentAuthExceptionMessage = تتطلب المصادقة المستمرة للجلسة جلسات. +oauth2RequiresAuthorizeUrlExceptionMessage = تتطلب OAuth2 توفير عنوان URL للتفويض. +authMethodNotExistForMergingExceptionMessage = طريقة المصادقة غير موجودة للدمج: {0} +mergeDefaultAuthNotInListExceptionMessage = المصادقة MergeDefault '{0}' غير موجودة في قائمة المصادقة المقدمة. +defaultAuthNotInListExceptionMessage = المصادقة الافتراضية '{0}' غير موجودة في قائمة المصادقة المقدمة. +scriptBlockRequiredForMergingUsersExceptionMessage = مطلوب ScriptBlock لدمج عدة مستخدمين مصادق عليهم في كائن واحد عندما تكون Valid هي All. +noDomainServerNameForWindowsAdAuthExceptionMessage = لم يتم توفير اسم خادم المجال لمصادقة Windows AD. +sessionsNotConfiguredExceptionMessage = لم يتم تكوين الجلسات. +windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = دعم المصادقة المحلية لـ Windows هو فقط لنظام Windows. +iisAuthSupportIsForWindowsOnlyExceptionMessage = دعم مصادقة IIS هو فقط لنظام Windows. +noAlgorithmInJwtHeaderExceptionMessage = لم يتم توفير أي خوارزمية في رأس JWT. +invalidJwtSuppliedExceptionMessage = JWT المقدم غير صالح. +invalidJwtHeaderAlgorithmSuppliedExceptionMessage = خوارزمية رأس JWT المقدمة غير صالحة. +noJwtSignatureForAlgorithmExceptionMessage = لم يتم توفير توقيع JWT لـ {0}. +expectedNoJwtSignatureSuppliedExceptionMessage = لم يكن من المتوقع توفير توقيع JWT. +invalidJwtSignatureSuppliedExceptionMessage = توقيع JWT المقدم غير صالح. +jwtExpiredExceptionMessage = انتهت صلاحية JWT. +jwtNotYetValidExceptionMessage = JWT غير صالح للاستخدام بعد. +snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = Snapins مدعومة فقط في Windows PowerShell. +userFileDoesNotExistExceptionMessage = ملف المستخدم غير موجود: {0} +schemeRequiresValidScriptBlockExceptionMessage = تتطلب الخطة المقدمة لمحقق المصادقة '{0}' ScriptBlock صالح. +oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = مزود OAuth2 لا يدعم نوع الاستجابة 'code'. +oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = مزود OAuth2 لا يدعم نوع المنحة 'password' المطلوبة لاستخدام InnerScheme. +eventAlreadyRegisteredExceptionMessage = الحدث {0} مسجل بالفعل: {1} +noEventRegisteredExceptionMessage = لا يوجد حدث {0} مسجل: {1} '@ + diff --git a/src/Locales/de/Pode.psd1 b/src/Locales/de/Pode.psd1 index 5776e7c5b..ab5cca0e3 100644 --- a/src/Locales/de/Pode.psd1 +++ b/src/Locales/de/Pode.psd1 @@ -85,4 +85,35 @@ accessMethodNotExistForMergingExceptionMessage = Zugriffsmethode zum Zusammenfü routeAlreadyContainsCustomAccessExceptionMessage = Die Route '[{0}] {1}' enthält bereits einen benutzerdefinierten Zugriff mit dem Namen '{2}'. accessMethodNotExistExceptionMessage = Zugriffsmethode nicht vorhanden: {0}. pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = Das PathItems-Feature wird in OpenAPI v3.0.x nicht unterstützt. -'@ \ No newline at end of file +nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = Ein nicht leerer ScriptBlock ist für das benutzerdefinierte Authentifizierungsschema erforderlich. +oauth2InnerSchemeInvalidExceptionMessage = OAuth2 InnerScheme kann nur entweder Basic oder Form-Authentifizierung sein, aber erhalten: {0} +sessionsRequiredForOAuth2WithPKCEExceptionMessage = Sitzungen sind erforderlich, um OAuth2 mit PKCE zu verwenden. +oauth2ClientSecretRequiredExceptionMessage = OAuth2 erfordert ein Client Secret, wenn PKCE nicht verwendet wird. +authMethodAlreadyDefinedExceptionMessage = Authentifizierungsmethode bereits definiert: {0} +invalidSchemeForAuthValidatorExceptionMessage = Das bereitgestellte '{0}'-Schema für den Authentifizierungsvalidator '{1}' erfordert einen gültigen ScriptBlock. +sessionsRequiredForSessionPersistentAuthExceptionMessage = Sitzungen sind erforderlich, um die sitzungsbeständige Authentifizierung zu verwenden. +oauth2RequiresAuthorizeUrlExceptionMessage = OAuth2 erfordert die Angabe einer Autorisierungs-URL. +authMethodNotExistForMergingExceptionMessage = Die Authentifizierungsmethode existiert nicht zum Zusammenführen: {0} +mergeDefaultAuthNotInListExceptionMessage = Die MergeDefault-Authentifizierung '{0}' befindet sich nicht in der angegebenen Authentifizierungsliste. +defaultAuthNotInListExceptionMessage = Die Standardauthentifizierung '{0}' befindet sich nicht in der angegebenen Authentifizierungsliste. +scriptBlockRequiredForMergingUsersExceptionMessage = Ein ScriptBlock ist erforderlich, um mehrere authentifizierte Benutzer zu einem Objekt zusammenzuführen, wenn Valid All ist. +noDomainServerNameForWindowsAdAuthExceptionMessage = Es wurde kein Domänenservername für die Windows-AD-Authentifizierung angegeben. +sessionsNotConfiguredExceptionMessage = Sitzungen wurden nicht konfiguriert. +windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = Die Unterstützung der lokalen Windows-Authentifizierung gilt nur für Windows. +iisAuthSupportIsForWindowsOnlyExceptionMessage = Die IIS-Authentifizierungsunterstützung gilt nur für Windows. +noAlgorithmInJwtHeaderExceptionMessage = Kein Algorithmus im JWT-Header angegeben. +invalidJwtSuppliedExceptionMessage = Ungültiger JWT angegeben. +invalidJwtHeaderAlgorithmSuppliedExceptionMessage = Ungültiger JWT-Header-Algorithmus angegeben. +noJwtSignatureForAlgorithmExceptionMessage = Keine JWT-Signatur für {0} angegeben. +expectedNoJwtSignatureSuppliedExceptionMessage = Es wurde keine JWT-Signatur erwartet. +invalidJwtSignatureSuppliedExceptionMessage = Ungültige JWT-Signatur angegeben. +jwtExpiredExceptionMessage = Der JWT ist abgelaufen. +jwtNotYetValidExceptionMessage = Der JWT ist noch nicht gültig. +snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = Snapins werden nur in Windows PowerShell unterstützt. +userFileDoesNotExistExceptionMessage = Die Benutzerdaten-Datei existiert nicht: {0} +schemeRequiresValidScriptBlockExceptionMessage = Das bereitgestellte Schema für den Authentifizierungsvalidator '{0}' erfordert einen gültigen ScriptBlock. +oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = Der OAuth2-Anbieter unterstützt den 'code'-Antworttyp nicht. +oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = Der OAuth2-Anbieter unterstützt den für die Verwendung eines InnerScheme erforderlichen 'password'-Grant-Typ nicht. +eventAlreadyRegisteredExceptionMessage = Ereignis {0} bereits registriert: {1} +noEventRegisteredExceptionMessage = Kein Ereignis {0} registriert: {1} +'@ diff --git a/src/Locales/en/Pode.psd1 b/src/Locales/en/Pode.psd1 index 8acaf4230..d2df449f0 100644 --- a/src/Locales/en/Pode.psd1 +++ b/src/Locales/en/Pode.psd1 @@ -85,4 +85,35 @@ accessMethodNotExistForMergingExceptionMessage = Access method does not exist fo routeAlreadyContainsCustomAccessExceptionMessage = Route '[{0}] {1}' already contains Custom Access with name '{2}' accessMethodNotExistExceptionMessage = Access method does not exist: {0} pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = The PathItems feature is not supported in OpenAPI v3.0.x +nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = A non-empty ScriptBlock is required for the Custom authentication scheme. +oauth2InnerSchemeInvalidExceptionMessage = OAuth2 InnerScheme can only be one of either Basic or Form authentication, but got: {0} +sessionsRequiredForOAuth2WithPKCEExceptionMessage = Sessions are required to use OAuth2 with PKCE +oauth2ClientSecretRequiredExceptionMessage = OAuth2 requires a Client Secret when not using PKCE. +authMethodAlreadyDefinedExceptionMessage = Authentication method already defined: {0} +invalidSchemeForAuthValidatorExceptionMessage = The supplied '{0}' Scheme for the '{1}' authentication validator requires a valid ScriptBlock. +sessionsRequiredForSessionPersistentAuthExceptionMessage = Sessions are required to use session persistent authentication. +oauth2RequiresAuthorizeUrlExceptionMessage = OAuth2 requires an Authorize URL to be supplied +authMethodNotExistForMergingExceptionMessage = Authentication method does not exist for merging: {0} +mergeDefaultAuthNotInListExceptionMessage = The MergeDefault Authentication '{0}' is not in the Authentication list supplied. +defaultAuthNotInListExceptionMessage = The Default Authentication '{0}' is not in the Authentication list supplied. +scriptBlockRequiredForMergingUsersExceptionMessage = A Scriptblock for merging multiple authenticated users into 1 object is required When Valid is All. +noDomainServerNameForWindowsAdAuthExceptionMessage = No domain server name has been supplied for Windows AD authentication +sessionsNotConfiguredExceptionMessage = Sessions have not been configured. +windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = Windows Local Authentication support is for Windows only. +iisAuthSupportIsForWindowsOnlyExceptionMessage = IIS Authentication support is for Windows only. +noAlgorithmInJwtHeaderExceptionMessage = No algorithm supplied in JWT Header. +invalidJwtSuppliedExceptionMessage = Invalid JWT supplied. +invalidJwtHeaderAlgorithmSuppliedExceptionMessage = Invalid JWT header algorithm supplied. +noJwtSignatureForAlgorithmExceptionMessage = No JWT signature supplied for {0}. +expectedNoJwtSignatureSuppliedExceptionMessage = Expected no JWT signature to be supplied. +invalidJwtSignatureSuppliedExceptionMessage = Invalid JWT signature supplied. +jwtExpiredExceptionMessage = The JWT has expired. +jwtNotYetValidExceptionMessage = The JWT is not yet valid for use. +snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = Snapins are only supported on Windows PowerShell. +userFileDoesNotExistExceptionMessage = The user file does not exist: {0} +schemeRequiresValidScriptBlockExceptionMessage = The supplied scheme for the '{0}' authentication validator requires a valid ScriptBlock. +oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = The OAuth2 provider does not support the 'code' response_type. +oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = The OAuth2 provider does not support the 'password' grant_type required by using an InnerScheme. +eventAlreadyRegisteredExceptionMessage = {0} event already registered: {1} +noEventRegisteredExceptionMessage = No {0} event registered: {1} '@ \ No newline at end of file diff --git a/src/Locales/es/Pode.psd1 b/src/Locales/es/Pode.psd1 index c670efd3e..237fec72f 100644 --- a/src/Locales/es/Pode.psd1 +++ b/src/Locales/es/Pode.psd1 @@ -85,4 +85,35 @@ accessMethodNotExistForMergingExceptionMessage = El método de acceso no existe routeAlreadyContainsCustomAccessExceptionMessage = La ruta '[{0}] {1}' ya contiene acceso personalizado con el nombre '{2}' accessMethodNotExistExceptionMessage = El método de acceso no existe: {0} pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = La función de elementos de ruta no es compatible con OpenAPI v3.0.x -'@ \ No newline at end of file +nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = Se requiere un ScriptBlock no vacío para el esquema de autenticación personalizado. +oauth2InnerSchemeInvalidExceptionMessage = OAuth2 InnerScheme solo puede ser Basic o Form, pero se obtuvo: {0} +sessionsRequiredForOAuth2WithPKCEExceptionMessage = Se requieren sesiones para usar OAuth2 con PKCE. +oauth2ClientSecretRequiredExceptionMessage = OAuth2 requiere un Client Secret cuando no se usa PKCE. +authMethodAlreadyDefinedExceptionMessage = Método de autenticación ya definido: {0} +invalidSchemeForAuthValidatorExceptionMessage = El esquema '{0}' proporcionado para el validador de autenticación '{1}' requiere un ScriptBlock válido. +sessionsRequiredForSessionPersistentAuthExceptionMessage = Se requieren sesiones para usar la autenticación persistente de sesión. +oauth2RequiresAuthorizeUrlExceptionMessage = OAuth2 requiere que se proporcione una URL de autorización. +authMethodNotExistForMergingExceptionMessage = El método de autenticación no existe para la fusión: {0} +mergeDefaultAuthNotInListExceptionMessage = La autenticación MergeDefault '{0}' no está en la lista de autenticación proporcionada. +defaultAuthNotInListExceptionMessage = La autenticación predeterminada '{0}' no está en la lista de autenticación proporcionada. +scriptBlockRequiredForMergingUsersExceptionMessage = Se requiere un ScriptBlock para fusionar múltiples usuarios autenticados en un solo objeto cuando Valid es All. +noDomainServerNameForWindowsAdAuthExceptionMessage = No se ha proporcionado un nombre de servidor de dominio para la autenticación AD de Windows. +sessionsNotConfiguredExceptionMessage = Las sesiones no se han configurado. +windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = El soporte de autenticación local de Windows es solo para Windows. +iisAuthSupportIsForWindowsOnlyExceptionMessage = El soporte de autenticación IIS es solo para Windows. +noAlgorithmInJwtHeaderExceptionMessage = No se proporcionó un algoritmo en el encabezado JWT. +invalidJwtSuppliedExceptionMessage = JWT proporcionado no válido. +invalidJwtHeaderAlgorithmSuppliedExceptionMessage = Algoritmo del encabezado JWT proporcionado no válido. +noJwtSignatureForAlgorithmExceptionMessage = No se proporcionó una firma JWT para {0}. +expectedNoJwtSignatureSuppliedExceptionMessage = No se esperaba que se proporcionara una firma JWT. +invalidJwtSignatureSuppliedExceptionMessage = Firma JWT proporcionada no válida. +jwtExpiredExceptionMessage = El JWT ha expirado. +jwtNotYetValidExceptionMessage = El JWT aún no es válido. +snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = Los Snapins solo son compatibles con Windows PowerShell. +userFileDoesNotExistExceptionMessage = El archivo de usuario no existe: {0} +schemeRequiresValidScriptBlockExceptionMessage = El esquema proporcionado para el validador de autenticación '{0}' requiere un ScriptBlock válido. +oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = El proveedor de OAuth2 no admite el tipo de respuesta 'code'. +oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = El proveedor de OAuth2 no admite el tipo de concesión 'password' requerido al usar un InnerScheme. +eventAlreadyRegisteredExceptionMessage = Evento {0} ya registrado: {1} +noEventRegisteredExceptionMessage = No hay evento {0} registrado: {1} +'@ diff --git a/src/Locales/fr/Pode.psd1 b/src/Locales/fr/Pode.psd1 index bc41e11a4..b3da880c2 100644 --- a/src/Locales/fr/Pode.psd1 +++ b/src/Locales/fr/Pode.psd1 @@ -85,4 +85,35 @@ accessMethodNotExistForMergingExceptionMessage = La méthode d'accès n'existe p routeAlreadyContainsCustomAccessExceptionMessage = La route '[{0}] {1}' contient déjà un accès personnalisé avec le nom '{2}' accessMethodNotExistExceptionMessage = La méthode d'accès n'existe pas : {0} pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = La fonction PathItems n'est pas prise en charge dans OpenAPI v3.0.x -'@ \ No newline at end of file +nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = Un ScriptBlock non vide est requis pour le schéma d'authentification personnalisé. +oauth2InnerSchemeInvalidExceptionMessage = Le OAuth2 InnerScheme ne peut être que Basic ou Form, mais obtenu : {0} +sessionsRequiredForOAuth2WithPKCEExceptionMessage = Des sessions sont nécessaires pour utiliser OAuth2 avec PKCE. +oauth2ClientSecretRequiredExceptionMessage = OAuth2 nécessite un Client Secret lorsque PKCE n'est pas utilisé. +authMethodAlreadyDefinedExceptionMessage = Méthode d'authentification déjà définie : {0} +invalidSchemeForAuthValidatorExceptionMessage = Le schéma '{0}' fourni pour le validateur d'authentification '{1}' nécessite un ScriptBlock valide. +sessionsRequiredForSessionPersistentAuthExceptionMessage = Des sessions sont nécessaires pour utiliser l'authentification persistante par session. +oauth2RequiresAuthorizeUrlExceptionMessage = OAuth2 nécessite une URL d'autorisation. +authMethodNotExistForMergingExceptionMessage = La méthode d'authentification n'existe pas pour la fusion : {0} +mergeDefaultAuthNotInListExceptionMessage = L'authentification MergeDefault '{0}' n'est pas dans la liste d'authentification fournie. +defaultAuthNotInListExceptionMessage = L'authentification par défaut '{0}' n'est pas dans la liste d'authentification fournie. +scriptBlockRequiredForMergingUsersExceptionMessage = Un ScriptBlock est requis pour fusionner plusieurs utilisateurs authentifiés en un seul objet lorsque Valid est All. +noDomainServerNameForWindowsAdAuthExceptionMessage = Aucun nom de serveur de domaine n'a été fourni pour l'authentification Windows AD. +sessionsNotConfiguredExceptionMessage = Les sessions n'ont pas été configurées. +windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = Le support de l'authentification locale Windows est uniquement pour Windows. +iisAuthSupportIsForWindowsOnlyExceptionMessage = Le support de l'authentification IIS est uniquement pour Windows. +noAlgorithmInJwtHeaderExceptionMessage = Aucun algorithme fourni dans l'en-tête JWT. +invalidJwtSuppliedExceptionMessage = JWT fourni invalide. +invalidJwtHeaderAlgorithmSuppliedExceptionMessage = Algorithme de l'en-tête JWT fourni invalide. +noJwtSignatureForAlgorithmExceptionMessage = Aucune signature JWT fournie pour {0}. +expectedNoJwtSignatureSuppliedExceptionMessage = Aucune signature JWT n'était attendue. +invalidJwtSignatureSuppliedExceptionMessage = Signature JWT fournie invalide. +jwtExpiredExceptionMessage = Le JWT a expiré. +jwtNotYetValidExceptionMessage = Le JWT n'est pas encore valide pour une utilisation. +snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = Les Snapins sont uniquement pris en charge sur Windows PowerShell. +userFileDoesNotExistExceptionMessage = Le fichier utilisateur n'existe pas : {0} +schemeRequiresValidScriptBlockExceptionMessage = Le schéma fourni pour le validateur d'authentification '{0}' nécessite un ScriptBlock valide. +oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = Le fournisseur OAuth2 ne supporte pas le type de réponse 'code'. +oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = Le fournisseur OAuth2 ne supporte pas le type de subvention 'password' requis par l'utilisation d'un InnerScheme. +eventAlreadyRegisteredExceptionMessage = Événement {0} déjà enregistré : {1} +noEventRegisteredExceptionMessage = Aucun événement {0} enregistré : {1} +'@ diff --git a/src/Locales/it/Pode.psd1 b/src/Locales/it/Pode.psd1 index b9b2418d4..32ecfe5ff 100644 --- a/src/Locales/it/Pode.psd1 +++ b/src/Locales/it/Pode.psd1 @@ -85,4 +85,36 @@ accessMethodNotExistForMergingExceptionMessage = Il metodo di accesso non esiste routeAlreadyContainsCustomAccessExceptionMessage = Il percorso '[{0}] {1}' contiene già un accesso personalizzato con nome '{2}' accessMethodNotExistExceptionMessage = Il metodo di accesso non esiste: {0} pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = La funzionalità PathItems non è supportata in OpenAPI v3.0.x +nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = È richiesto uno ScriptBlock non vuoto per lo schema di autenticazione personalizzato. +oauth2InnerSchemeInvalidExceptionMessage = OAuth2 InnerScheme può essere solo uno tra Basic o Form, ma è stato ottenuto: {0} +sessionsRequiredForOAuth2WithPKCEExceptionMessage = Sono necessarie sessioni per utilizzare OAuth2 con PKCE +oauth2ClientSecretRequiredExceptionMessage = OAuth2 richiede un Client Secret quando non si utilizza PKCE. +authMethodAlreadyDefinedExceptionMessage = Metodo di autenticazione già definito: {0} +invalidSchemeForAuthValidatorExceptionMessage = Lo schema '{0}' fornito per il validatore di autenticazione '{1}' richiede uno ScriptBlock valido. +sessionsRequiredForSessionPersistentAuthExceptionMessage = Sono necessarie sessioni per utilizzare l'autenticazione persistente della sessione. +oauth2RequiresAuthorizeUrlExceptionMessage = OAuth2 richiede che venga fornita un'URL di autorizzazione +authMethodNotExistForMergingExceptionMessage = Il metodo di autenticazione non esiste per la fusione: {0} +mergeDefaultAuthNotInListExceptionMessage = L'autenticazione MergeDefault '{0}' non è nella lista di autenticazione fornita. +defaultAuthNotInListExceptionMessage = L'autenticazione predefinita '{0}' non è nella lista di autenticazione fornita. +scriptBlockRequiredForMergingUsersExceptionMessage = È richiesto uno ScriptBlock per unire più utenti autenticati in un unico oggetto quando Valid è All. +noDomainServerNameForWindowsAdAuthExceptionMessage = Non è stato fornito alcun nome di server di dominio per l'autenticazione AD di Windows +sessionsNotConfiguredExceptionMessage = Le sessioni non sono state configurate. +windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = Il supporto per l'autenticazione locale di Windows è solo per Windows. +iisAuthSupportIsForWindowsOnlyExceptionMessage = Il supporto per l'autenticazione IIS è solo per Windows. +noAlgorithmInJwtHeaderExceptionMessage = Nessun algoritmo fornito nell'header JWT. +invalidJwtSuppliedExceptionMessage = JWT fornito non valido. +invalidJwtHeaderAlgorithmSuppliedExceptionMessage = Algoritmo dell'header JWT fornito non valido. +noJwtSignatureForAlgorithmExceptionMessage = Nessuna firma JWT fornita per {0}. +expectedNoJwtSignatureSuppliedExceptionMessage = Si prevedeva che non fosse fornita alcuna firma JWT. +invalidJwtSignatureSuppliedExceptionMessage = Firma JWT fornita non valida. +jwtExpiredExceptionMessage = JWT è scaduto. +jwtNotYetValidExceptionMessage = JWT non è ancora valido per l'uso. +snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = Gli Snapin sono supportati solo su Windows PowerShell. +userFileDoesNotExistExceptionMessage = Il file utente non esiste: {0} +schemeRequiresValidScriptBlockExceptionMessage = Lo schema fornito per il validatore di autenticazione '{0}' richiede uno ScriptBlock valido. +oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = Il provider OAuth2 non supporta il tipo di risposta 'code'. +oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = Il provider OAuth2 non supporta il tipo di concessione 'password' richiesto dall'utilizzo di un InnerScheme. +eventAlreadyRegisteredExceptionMessage = Evento {0} già registrato: {1} +noEventRegisteredExceptionMessage = Nessun evento {0} registrato: {1} '@ + diff --git a/src/Locales/ja/Pode.psd1 b/src/Locales/ja/Pode.psd1 index 6204b57b5..fb35ec625 100644 --- a/src/Locales/ja/Pode.psd1 +++ b/src/Locales/ja/Pode.psd1 @@ -85,4 +85,35 @@ accessMethodNotExistForMergingExceptionMessage = マージするアクセス方 routeAlreadyContainsCustomAccessExceptionMessage = ルート '[{0}] {1}' はすでに名前 '{2}' のカスタムアクセスを含んでいます accessMethodNotExistExceptionMessage = アクセス方法が存在しません: {0} pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = PathItems機能はOpenAPI v3.0.xではサポートされていません。 -'@ \ No newline at end of file +nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = カスタム認証スキームには空でないScriptBlockが必要です。 +oauth2InnerSchemeInvalidExceptionMessage = OAuth2 InnerSchemeはBasicまたはFormのいずれかでなければなりませんが、取得したのは:{0} +sessionsRequiredForOAuth2WithPKCEExceptionMessage = PKCEを使用するOAuth2にはセッションが必要です。 +oauth2ClientSecretRequiredExceptionMessage = PKCEを使用しない場合、OAuth2にはクライアントシークレットが必要です。 +authMethodAlreadyDefinedExceptionMessage = 認証方法はすでに定義されています:{0} +invalidSchemeForAuthValidatorExceptionMessage = '{1}'認証バリデーターのために提供された'{0}'スキームには有効なScriptBlockが必要です。 +sessionsRequiredForSessionPersistentAuthExceptionMessage = セッション持続認証を使用するにはセッションが必要です。 +oauth2RequiresAuthorizeUrlExceptionMessage = OAuth2には認可URLの提供が必要です。 +authMethodNotExistForMergingExceptionMessage = マージするための認証方法は存在しません:{0} +mergeDefaultAuthNotInListExceptionMessage = MergeDefault認証'{0}'は提供された認証リストにありません。 +defaultAuthNotInListExceptionMessage = デフォルト認証'{0}'は提供された認証リストにありません。 +scriptBlockRequiredForMergingUsersExceptionMessage = ValidがAllの場合、複数の認証済みユーザーを1つのオブジェクトにマージするためのScriptBlockが必要です。 +noDomainServerNameForWindowsAdAuthExceptionMessage = Windows AD認証用のドメインサーバー名が提供されていません。 +sessionsNotConfiguredExceptionMessage = セッションが構成されていません。 +windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = Windowsローカル認証のサポートはWindowsのみです。 +iisAuthSupportIsForWindowsOnlyExceptionMessage = IIS認証のサポートはWindowsのみです。 +noAlgorithmInJwtHeaderExceptionMessage = JWTヘッダーにアルゴリズムが提供されていません。 +invalidJwtSuppliedExceptionMessage = 無効なJWTが提供されました。 +invalidJwtHeaderAlgorithmSuppliedExceptionMessage = 無効なJWTヘッダーアルゴリズムが提供されました。 +noJwtSignatureForAlgorithmExceptionMessage = {0}のためのJWT署名が提供されていません。 +expectedNoJwtSignatureSuppliedExceptionMessage = 提供されるべきではないJWT署名が予期されました。 +invalidJwtSignatureSuppliedExceptionMessage = 無効なJWT署名が提供されました。 +jwtExpiredExceptionMessage = JWTの有効期限が切れています。 +jwtNotYetValidExceptionMessage = JWTはまだ有効ではありません。 +snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = SnapinsはWindows PowerShellのみでサポートされています。 +userFileDoesNotExistExceptionMessage = ユーザーファイルが存在しません:{0} +schemeRequiresValidScriptBlockExceptionMessage = '{0}'認証バリデーターのために提供されたスキームには有効なScriptBlockが必要です。 +oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = OAuth2プロバイダーは'code' response_typeをサポートしていません。 +oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = OAuth2プロバイダーはInnerSchemeを使用するために必要な'password' grant_typeをサポートしていません。 +eventAlreadyRegisteredExceptionMessage = {0}イベントはすでに登録されています:{1} +noEventRegisteredExceptionMessage = 登録された{0}イベントはありません:{1} +'@ diff --git a/src/Locales/kr/Pode.psd1 b/src/Locales/kr/Pode.psd1 new file mode 100644 index 000000000..f78551e2c --- /dev/null +++ b/src/Locales/kr/Pode.psd1 @@ -0,0 +1,119 @@ +ConvertFrom-StringData -StringData @' +adModuleWindowsOnlyExceptionMessage = Active Directory 모듈은 Windows에서만 사용할 수 있습니다. +adModuleNotInstalledExceptionMessage = Active Directory 모듈이 설치되지 않았습니다. +secretManagementModuleNotInstalledExceptionMessage = Microsoft.PowerShell.SecretManagement 모듈이 설치되지 않았습니다. +secretVaultAlreadyRegisteredExceptionMessage = 이름이 '{0}'인 비밀 금고가 이미 자동으로 가져오는 동안 등록되었습니다. +failedToOpenRunspacePoolExceptionMessage = RunspacePool을 여는 데 실패했습니다: {0} +cronExpressionInvalidExceptionMessage = Cron 표현식은 5개의 부분으로만 구성되어야 합니다: {0} +invalidAliasFoundExceptionMessage = 잘못된 {0} 별칭이 발견되었습니다: {1} +invalidAtomCharacterExceptionMessage = 잘못된 원자 문자: {0} +minValueGreaterThanMaxExceptionMessage = {0}의 최소 값은 최대 값보다 클 수 없습니다. +minValueInvalidExceptionMessage = {1}의 최소 값 '{0}'이(가) 유효하지 않습니다. {2} 이상이어야 합니다. +maxValueInvalidExceptionMessage = {1}의 최대 값 '{0}'이(가) 유효하지 않습니다. {2} 이하여야 합니다. +valueOutOfRangeExceptionMessage = {1}의 값 '{0}'이(가) 유효하지 않습니다. {2}와 {3} 사이여야 합니다. +daysInMonthExceededExceptionMessage = {0}에는 {1}일밖에 없지만 {2}일이 제공되었습니다. +nextTriggerCalculationErrorExceptionMessage = 다음 트리거 날짜 및 시간을 계산하는 중에 문제가 발생한 것 같습니다: {0} +incompatiblePodeDllExceptionMessage = 기존의 호환되지 않는 Pode.DLL 버전 {0}이 로드되었습니다. 버전 {1}이 필요합니다. 새로운 Powershell/pwsh 세션을 열고 다시 시도하세요. +endpointNotExistExceptionMessage = 프로토콜 '{0}' 및 주소 '{1}' 또는 로컬 주소 '{2}'가 있는 엔드포인트가 존재하지 않습니다. +endpointNameNotExistExceptionMessage = 이름이 '{0}'인 엔드포인트가 존재하지 않습니다. +failedToConnectToUrlExceptionMessage = URL에 연결하지 못했습니다: {0} +failedToParseAddressExceptionMessage = '{0}'을(를) 유효한 IP/호스트:포트 주소로 구문 분석하지 못했습니다. +invalidIpAddressExceptionMessage = 제공된 IP 주소가 유효하지 않습니다: {0} +invalidPortExceptionMessage = 포트는 음수일 수 없습니다: {0} +pathNotExistExceptionMessage = 경로가 존재하지 않습니다: {0} +noSecretForHmac256ExceptionMessage = HMAC256 해시를 위한 비밀이 제공되지 않았습니다. +noSecretForHmac384ExceptionMessage = HMAC384 해시를 위한 비밀이 제공되지 않았습니다. +noSecretForHmac512ExceptionMessage = HMAC512 해시를 위한 비밀이 제공되지 않았습니다. +noSecretForJwtSignatureExceptionMessage = JWT 서명을 위한 비밀이 제공되지 않았습니다. +noSecretExpectedForNoSignatureExceptionMessage = 서명이 없는 경우 비밀이 제공되지 않아야 합니다. +unsupportedJwtAlgorithmExceptionMessage = JWT 알고리즘은 현재 지원되지 않습니다: {0} +invalidBase64JwtExceptionMessage = JWT에서 잘못된 Base64 인코딩 값이 발견되었습니다. +invalidJsonJwtExceptionMessage = JWT에서 잘못된 JSON 값이 발견되었습니다. +unsupportedFunctionInServerlessContextExceptionMessage = {0} 함수는 서버리스 컨텍스트에서 지원되지 않습니다. +invalidPathWildcardOrDirectoryExceptionMessage = 제공된 경로는 와일드카드 또는 디렉터리가 될 수 없습니다: {0} +invalidExceptionTypeExceptionMessage = 예외가 잘못된 유형입니다. WebException 또는 HttpRequestException이어야 하지만, 얻은 것은: {0} +pathToLoadNotFoundExceptionMessage = 로드할 경로 {0}을(를) 찾을 수 없습니다: {1} +singleValueForIntervalExceptionMessage = 간격을 사용할 때는 단일 {0} 값을 제공할 수 있습니다. +scriptErrorExceptionMessage = 스크립트 {1} {2} (라인 {3}) 문자 {4}에서 {5}을(를) 실행하는 중에 스크립트 {0} 오류가 발생했습니다. 개체 '{7}' 클래스: {8} 기본 클래스: {9} +noScriptBlockSuppliedExceptionMessage = ScriptBlock이 제공되지 않았습니다. +iisAspnetcoreTokenMissingExceptionMessage = IIS ASPNETCORE_TOKEN이 누락되었습니다. +invalidContentTypeForSchemaExceptionMessage = 스키마에 대해 잘못된 콘텐츠 유형이 발견되었습니다: {0} +propertiesParameterWithoutNameExceptionMessage = 속성에 이름이 없으면 Properties 매개변수를 사용할 수 없습니다. +multiTypePropertiesRequireOpenApi31ExceptionMessage = 다중 유형 속성은 OpenApi 버전 3.1 이상이 필요합니다. +openApiVersionPropertyMandatoryExceptionMessage = OpenApi 버전 속성은 필수입니다. +webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = Webhooks 기능은 OpenAPI v3.0.x에서 지원되지 않습니다. +authenticationMethodDoesNotExistExceptionMessage = 인증 방법이 존재하지 않습니다: {0} +unsupportedObjectExceptionMessage = 지원되지 않는 개체 +validationOfAnyOfSchemaNotSupportedExceptionMessage = 'anyof'을 포함하는 스키마의 유효성 검사는 지원되지 않습니다. +validationOfOneOfSchemaNotSupportedExceptionMessage = 'oneof'을 포함하는 스키마의 유효성 검사는 지원되지 않습니다. +cannotCreatePropertyWithoutTypeExceptionMessage = 유형이 정의되지 않았기 때문에 속성을 생성할 수 없습니다. +paramsNoAdditionalPropertiesExclusiveExceptionMessage = Params -NoAdditionalProperties와 -AdditionalProperties는 서로 배타적입니다. +headerMustHaveNameInEncodingContextExceptionMessage = 인코딩 컨텍스트에서 사용될 때 헤더는 이름이 있어야 합니다. +descriptionRequiredExceptionMessage = 설명이 필요합니다. +openApiDocumentNotCompliantExceptionMessage = OpenAPI 문서는 준수하지 않습니다. +noComponentInDefinitionExceptionMessage = {2} 정의에서 {0} 유형의 {1} 이름의 구성 요소가 없습니다. +methodPathAlreadyDefinedExceptionMessage = [{0}] {1}: 이미 정의되었습니다. +methodPathAlreadyDefinedForUrlExceptionMessage = [{0}] {1}: {2}에 대해 이미 정의되었습니다. +invalidMiddlewareTypeExceptionMessage = 제공된 미들웨어 중 하나가 잘못된 유형입니다. 예상된 유형은 ScriptBlock 또는 Hashtable이지만, 얻은 것은: {0} +hashtableMiddlewareNoLogicExceptionMessage = 제공된 Hashtable 미들웨어에는 정의된 논리가 없습니다. +invalidLogicTypeInHashtableMiddlewareExceptionMessage = 제공된 Hashtable 미들웨어에 잘못된 논리 유형이 있습니다. 예상된 유형은 ScriptBlock이지만, 얻은 것은: {0} +scopedVariableAlreadyDefinedExceptionMessage = 범위 지정 변수가 이미 정의되었습니다: {0} +valueForUsingVariableNotFoundExceptionMessage = `$using:{0}`에 대한 값을 찾을 수 없습니다. +unlockSecretRequiredExceptionMessage = Microsoft.PowerShell.SecretStore를 사용할 때 'UnlockSecret' 속성이 필요합니다. +unlockSecretButNoScriptBlockExceptionMessage = 사용자 정의 비밀 금고 유형에 대해 제공된 Unlock 비밀이지만, Unlock ScriptBlock이 제공되지 않았습니다. +noUnlockScriptBlockForVaultExceptionMessage = 금고 '{0}'을(를) 해제하는 Unlock ScriptBlock이 제공되지 않았습니다. +noSetScriptBlockForVaultExceptionMessage = 금고 '{0}'에서 비밀을 업데이트/생성하기 위한 Set ScriptBlock이 제공되지 않았습니다. +noRemoveScriptBlockForVaultExceptionMessage = 금고 '{0}'에서 비밀을 제거하기 위한 Remove ScriptBlock이 제공되지 않았습니다. +invalidSecretValueTypeExceptionMessage = 비밀 값이 잘못된 유형입니다. 예상되는 유형: String, SecureString, HashTable, Byte[] 또는 PSCredential. 그러나 얻은 것은: {0} +limitValueCannotBeZeroOrLessExceptionMessage = {0}에 대한 제한 값은 0 이하일 수 없습니다. +secondsValueCannotBeZeroOrLessExceptionMessage = {0}에 대한 초 값은 0 이하일 수 없습니다. +failedToCreateOpenSslCertExceptionMessage = openssl 인증서 생성 실패: {0} +certificateThumbprintsNameSupportedOnWindowsExceptionMessage = 인증서 지문/이름은 Windows에서만 지원됩니다. +noCertificateFoundExceptionMessage = '{2}'에 대한 {0}\{1}에서 인증서를 찾을 수 없습니다. +runspacePoolFailedToLoadExceptionMessage = {0} RunspacePool 로드 실패. +noServiceHandlersDefinedExceptionMessage = 정의된 서비스 핸들러가 없습니다. +noSessionToSetOnResponseExceptionMessage = 응답에 설정할 세션이 없습니다. +noSessionToCalculateDataHashExceptionMessage = 데이터 해시를 계산할 세션이 없습니다. +moduleOrVersionNotFoundExceptionMessage = {0}에서 모듈 또는 버전을 찾을 수 없습니다: {1}@{2} +noSmtpHandlersDefinedExceptionMessage = 정의된 SMTP 핸들러가 없습니다. +taskTimedOutExceptionMessage = 작업이 {0}ms 후에 시간 초과되었습니다. +verbAlreadyDefinedExceptionMessage = [동사] {0}: 이미 정의되었습니다. +verbAlreadyDefinedForUrlExceptionMessage = [동사] {0}: {1}에 대해 이미 정의되었습니다. +pathOrScriptBlockRequiredExceptionMessage = 사용자 지정 액세스 값을 소싱하기 위해 경로 또는 ScriptBlock이 필요합니다. +accessMethodAlreadyDefinedExceptionMessage = 액세스 방법이 이미 정의되었습니다: {0} +accessMethodNotExistForMergingExceptionMessage = 병합을 위한 액세스 방법이 존재하지 않습니다: {0} +routeAlreadyContainsCustomAccessExceptionMessage = 경로 '[{0}] {1}'에 '{2}' 이름의 사용자 지정 액세스가 이미 포함되어 있습니다. +accessMethodNotExistExceptionMessage = 액세스 방법이 존재하지 않습니다: {0} +pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = PathItems 기능은 OpenAPI v3.0.x에서 지원되지 않습니다. +nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = 사용자 정의 인증 스킴에는 비어 있지 않은 ScriptBlock이 필요합니다. +oauth2InnerSchemeInvalidExceptionMessage = OAuth2 InnerScheme은 Basic 또는 Form 인증 중 하나여야 합니다, 그러나 받은 값: {0} +sessionsRequiredForOAuth2WithPKCEExceptionMessage = PKCE를 사용하는 OAuth2에는 세션이 필요합니다. +oauth2ClientSecretRequiredExceptionMessage = PKCE를 사용하지 않을 때 OAuth2에는 클라이언트 비밀이 필요합니다. +authMethodAlreadyDefinedExceptionMessage = 인증 방법이 이미 정의되었습니다: {0} +invalidSchemeForAuthValidatorExceptionMessage = '{1}' 인증 검증기에 제공된 '{0}' 스킴에는 유효한 ScriptBlock이 필요합니다. +sessionsRequiredForSessionPersistentAuthExceptionMessage = 세션 지속 인증을 사용하려면 세션이 필요합니다. +oauth2RequiresAuthorizeUrlExceptionMessage = OAuth2에는 권한 부여 URL이 필요합니다. +authMethodNotExistForMergingExceptionMessage = 병합을 위한 인증 방법이 존재하지 않습니다: {0} +mergeDefaultAuthNotInListExceptionMessage = 병합 기본 인증 '{0}'이(가) 제공된 인증 목록에 없습니다. +defaultAuthNotInListExceptionMessage = 기본 인증 '{0}'이(가) 제공된 인증 목록에 없습니다. +scriptBlockRequiredForMergingUsersExceptionMessage = Valid가 All일 때 여러 인증된 사용자를 하나의 객체로 병합하려면 ScriptBlock이 필요합니다. +noDomainServerNameForWindowsAdAuthExceptionMessage = Windows AD 인증을 위한 도메인 서버 이름이 제공되지 않았습니다. +sessionsNotConfiguredExceptionMessage = 세션이 구성되지 않았습니다. +windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = Windows 로컬 인증 지원은 Windows 전용입니다. +iisAuthSupportIsForWindowsOnlyExceptionMessage = IIS 인증 지원은 Windows 전용입니다. +noAlgorithmInJwtHeaderExceptionMessage = JWT 헤더에 제공된 알고리즘이 없습니다. +invalidJwtSuppliedExceptionMessage = 제공된 JWT가 유효하지 않습니다. +invalidJwtHeaderAlgorithmSuppliedExceptionMessage = 제공된 JWT 헤더 알고리즘이 유효하지 않습니다. +noJwtSignatureForAlgorithmExceptionMessage = {0}에 대한 JWT 서명이 제공되지 않았습니다. +expectedNoJwtSignatureSuppliedExceptionMessage = JWT 서명이 제공되지 않을 것으로 예상되었습니다. +invalidJwtSignatureSuppliedExceptionMessage = 제공된 JWT 서명이 유효하지 않습니다. +jwtExpiredExceptionMessage = JWT가 만료되었습니다. +jwtNotYetValidExceptionMessage = JWT가 아직 유효하지 않습니다. +snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = Snapins는 Windows PowerShell에서만 지원됩니다. +userFileDoesNotExistExceptionMessage = 사용자 파일이 존재하지 않습니다: {0} +schemeRequiresValidScriptBlockExceptionMessage = '{0}' 인증 검증기에 제공된 스킴에는 유효한 ScriptBlock이 필요합니다. +oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = OAuth2 공급자는 'code' 응답 유형을 지원하지 않습니다. +oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = OAuth2 공급자는 InnerScheme을 사용하는 데 필요한 'password' 부여 유형을 지원하지 않습니다. +eventAlreadyRegisteredExceptionMessage = {0} 이벤트가 이미 등록되었습니다: {1} +noEventRegisteredExceptionMessage = 등록된 {0} 이벤트가 없습니다: {1} +'@ diff --git a/src/Locales/pl/Pode.psd1 b/src/Locales/pl/Pode.psd1 index 3cb6a8034..3ff8acb85 100644 --- a/src/Locales/pl/Pode.psd1 +++ b/src/Locales/pl/Pode.psd1 @@ -42,7 +42,6 @@ propertiesParameterWithoutNameExceptionMessage = Parametry Properties nie mogą multiTypePropertiesRequireOpenApi31ExceptionMessage = Właściwości wielotypowe wymagają wersji OpenApi 3.1 lub wyższej. openApiVersionPropertyMandatoryExceptionMessage = Właściwość wersji OpenApi jest obowiązkowa. webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = Funkcja Webhooks nie jest obsługiwana w OpenAPI v3.0.x -pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = Funkcja PathItems nie jest obsługiwana w OpenAPI v3.0.x authenticationMethodDoesNotExistExceptionMessage = Metoda uwierzytelniania nie istnieje: {0} unsupportedObjectExceptionMessage = Obiekt nieobsługiwany validationOfAnyOfSchemaNotSupportedExceptionMessage = Walidacja schematu, który zawiera 'anyof', nie jest obsługiwana. @@ -85,4 +84,36 @@ accessMethodAlreadyDefinedExceptionMessage = Metoda dostępu już zdefiniowana: accessMethodNotExistForMergingExceptionMessage = Metoda dostępu nie istnieje do scalania: {0} routeAlreadyContainsCustomAccessExceptionMessage = Trasa '[{0}] {1}' już zawiera dostęp niestandardowy z nazwą '{2}' accessMethodNotExistExceptionMessage = Metoda dostępu nie istnieje: {0} +pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = Funkcja PathItems nie jest obsługiwana w OpenAPI v3.0.x +nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = Dla niestandardowego schematu uwierzytelniania wymagany jest niepusty ScriptBlock. +oauth2InnerSchemeInvalidExceptionMessage = OAuth2 InnerScheme może być tylko jednym z dwóch: Basic lub Form, ale otrzymano: {0} +sessionsRequiredForOAuth2WithPKCEExceptionMessage = Sesje są wymagane do używania OAuth2 z PKCE +oauth2ClientSecretRequiredExceptionMessage = OAuth2 wymaga tajemnicy klienta, gdy nie używa się PKCE. +authMethodAlreadyDefinedExceptionMessage = Metoda uwierzytelniania już zdefiniowana: {0} +invalidSchemeForAuthValidatorExceptionMessage = Dostarczony schemat '{0}' dla walidatora uwierzytelniania '{1}' wymaga ważnego ScriptBlock. +sessionsRequiredForSessionPersistentAuthExceptionMessage = Sesje są wymagane do używania trwałego uwierzytelniania sesji. +oauth2RequiresAuthorizeUrlExceptionMessage = OAuth2 wymaga podania URL autoryzacji +authMethodNotExistForMergingExceptionMessage = Metoda uwierzytelniania nie istnieje dla scalania: {0} +mergeDefaultAuthNotInListExceptionMessage = Uwierzytelnianie MergeDefault '{0}' nie znajduje się na dostarczonej liście uwierzytelniania. +defaultAuthNotInListExceptionMessage = Domyślne uwierzytelnianie '{0}' nie znajduje się na dostarczonej liście uwierzytelniania. +scriptBlockRequiredForMergingUsersExceptionMessage = Wymagany jest ScriptBlock do scalania wielu uwierzytelnionych użytkowników w jeden obiekt, gdy opcja Valid to All. +noDomainServerNameForWindowsAdAuthExceptionMessage = Nie podano nazwy serwera domeny dla uwierzytelniania Windows AD +sessionsNotConfiguredExceptionMessage = Sesje nie zostały skonfigurowane. +windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = Wsparcie lokalnego uwierzytelniania Windows jest tylko dla Windows. +iisAuthSupportIsForWindowsOnlyExceptionMessage = Wsparcie uwierzytelniania IIS jest tylko dla Windows. +noAlgorithmInJwtHeaderExceptionMessage = Brak dostarczonego algorytmu w nagłówku JWT. +invalidJwtSuppliedExceptionMessage = Dostarczono nieprawidłowy JWT. +invalidJwtHeaderAlgorithmSuppliedExceptionMessage = Dostarczono nieprawidłowy algorytm nagłówka JWT. +noJwtSignatureForAlgorithmExceptionMessage = Nie dostarczono podpisu JWT dla {0}. +expectedNoJwtSignatureSuppliedExceptionMessage = Oczekiwano, że nie zostanie dostarczony żaden podpis JWT. +invalidJwtSignatureSuppliedExceptionMessage = Dostarczono nieprawidłowy podpis JWT. +jwtExpiredExceptionMessage = JWT wygasł. +jwtNotYetValidExceptionMessage = JWT jeszcze nie jest ważny. +snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = Snapiny są obsługiwane tylko w Windows PowerShell. +userFileDoesNotExistExceptionMessage = Plik użytkownika nie istnieje: {0} +schemeRequiresValidScriptBlockExceptionMessage = Dostarczony schemat dla walidatora uwierzytelniania '{0}' wymaga ważnego ScriptBlock. +oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = Dostawca OAuth2 nie obsługuje typu odpowiedzi 'code'. +oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = Dostawca OAuth2 nie obsługuje typu 'password' wymaganego przez InnerScheme. +eventAlreadyRegisteredExceptionMessage = Wydarzenie {0} już zarejestrowane: {1} +noEventRegisteredExceptionMessage = Brak zarejestrowanego wydarzenia {0}: {1} '@ diff --git a/src/Locales/pt/Pode.psd1 b/src/Locales/pt/Pode.psd1 index 02866c758..280644726 100644 --- a/src/Locales/pt/Pode.psd1 +++ b/src/Locales/pt/Pode.psd1 @@ -42,7 +42,6 @@ propertiesParameterWithoutNameExceptionMessage = Os parâmetros Properties não multiTypePropertiesRequireOpenApi31ExceptionMessage = Propriedades de múltiplos tipos requerem a versão 3.1 ou superior do OpenApi. openApiVersionPropertyMandatoryExceptionMessage = A propriedade da versão do OpenApi é obrigatória. webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = O recurso Webhooks não é suportado no OpenAPI v3.0.x -pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = O recurso PathItems não é suportado no OpenAPI v3.0.x authenticationMethodDoesNotExistExceptionMessage = O método de autenticação não existe: {0} unsupportedObjectExceptionMessage = Objeto não suportado validationOfAnyOfSchemaNotSupportedExceptionMessage = A validação de um esquema que inclui 'anyof' não é suportada. @@ -85,4 +84,36 @@ accessMethodAlreadyDefinedExceptionMessage = Método de acesso já definido: {0} accessMethodNotExistForMergingExceptionMessage = O método de acesso não existe para a mesclagem: {0} routeAlreadyContainsCustomAccessExceptionMessage = A rota '[{0}] {1}' já contém Acesso Personalizado com o nome '{2}' accessMethodNotExistExceptionMessage = O método de acesso não existe: {0} +pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = O recurso PathItems não é suportado no OpenAPI v3.0.x +nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = É necessário um ScriptBlock não vazio para o esquema de autenticação personalizado. +oauth2InnerSchemeInvalidExceptionMessage = O OAuth2 InnerScheme só pode ser um de autenticação Basic ou Form, mas foi obtido: {0} +sessionsRequiredForOAuth2WithPKCEExceptionMessage = Sessões são necessárias para usar OAuth2 com PKCE +oauth2ClientSecretRequiredExceptionMessage = OAuth2 requer um Client Secret quando não se usa PKCE. +authMethodAlreadyDefinedExceptionMessage = Método de autenticação já definido: {0} +invalidSchemeForAuthValidatorExceptionMessage = O esquema '{0}' fornecido para o validador de autenticação '{1}' requer um ScriptBlock válido. +sessionsRequiredForSessionPersistentAuthExceptionMessage = Sessões são necessárias para usar a autenticação persistente por sessão. +oauth2RequiresAuthorizeUrlExceptionMessage = OAuth2 requer que seja fornecida uma URL de Autorização +authMethodNotExistForMergingExceptionMessage = O método de autenticação não existe para mesclagem: {0} +mergeDefaultAuthNotInListExceptionMessage = A Autenticação MergeDefault '{0}' não está na lista de Autenticação fornecida. +defaultAuthNotInListExceptionMessage = A Autenticação Default '{0}' não está na lista de Autenticação fornecida. +scriptBlockRequiredForMergingUsersExceptionMessage = É necessário um ScriptBlock para mesclar vários usuários autenticados em 1 objeto quando Valid é All. +noDomainServerNameForWindowsAdAuthExceptionMessage = Nenhum nome de servidor de domínio foi fornecido para a autenticação AD do Windows +sessionsNotConfiguredExceptionMessage = As sessões não foram configuradas. +windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = O suporte à Autenticação Local do Windows é apenas para Windows. +iisAuthSupportIsForWindowsOnlyExceptionMessage = O suporte à Autenticação IIS é apenas para Windows. +noAlgorithmInJwtHeaderExceptionMessage = Nenhum algoritmo fornecido no Cabeçalho JWT. +invalidJwtSuppliedExceptionMessage = JWT fornecido inválido. +invalidJwtHeaderAlgorithmSuppliedExceptionMessage = Algoritmo de cabeçalho JWT fornecido inválido. +noJwtSignatureForAlgorithmExceptionMessage = Nenhuma assinatura JWT fornecida para {0}. +expectedNoJwtSignatureSuppliedExceptionMessage = Esperava-se que nenhuma assinatura JWT fosse fornecida. +invalidJwtSignatureSuppliedExceptionMessage = Assinatura JWT fornecida inválida. +jwtExpiredExceptionMessage = O JWT expirou. +jwtNotYetValidExceptionMessage = O JWT ainda não é válido para uso. +snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = Os Snapins são suportados apenas no Windows PowerShell. +userFileDoesNotExistExceptionMessage = O arquivo do usuário não existe: {0} +schemeRequiresValidScriptBlockExceptionMessage = O esquema fornecido para o validador de autenticação '{0}' requer um ScriptBlock válido. +oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = O provedor OAuth2 não suporta o response_type 'code'. +oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = O provedor OAuth2 não suporta o grant_type 'password' necessário ao usar um InnerScheme. +eventAlreadyRegisteredExceptionMessage = Evento {0} já registrado: {1} +noEventRegisteredExceptionMessage = Nenhum evento {0} registrado: {1} '@ diff --git a/src/Locales/zn/Pode.psd1 b/src/Locales/zn/Pode.psd1 index c6ebfb915..26456390f 100644 --- a/src/Locales/zn/Pode.psd1 +++ b/src/Locales/zn/Pode.psd1 @@ -85,4 +85,35 @@ accessMethodNotExistForMergingExceptionMessage = 合并时访问方法不存在: routeAlreadyContainsCustomAccessExceptionMessage = 路由 '[{0}] {1}' 已经包含名称为 '{2}' 的自定义访问。 accessMethodNotExistExceptionMessage = 访问方法不存在: {0} pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = 在 OpenAPI v3.0.x 中不支持 PathItems 功能。 -'@ \ No newline at end of file +nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = 自定义身份验证方案需要一个非空的 ScriptBlock。 +oauth2InnerSchemeInvalidExceptionMessage = OAuth2 InnerScheme 只能是 Basic 或 Form 身份验证,但得到:{0} +sessionsRequiredForOAuth2WithPKCEExceptionMessage = 使用 PKCE 时需要会话来使用 OAuth2 +oauth2ClientSecretRequiredExceptionMessage = 不使用 PKCE 时,OAuth2 需要一个客户端密钥。 +authMethodAlreadyDefinedExceptionMessage = 身份验证方法已定义:{0} +invalidSchemeForAuthValidatorExceptionMessage = 提供的 '{0}' 方案用于 '{1}' 身份验证验证器,需要一个有效的 ScriptBlock。 +sessionsRequiredForSessionPersistentAuthExceptionMessage = 使用会话持久性身份验证需要会话。 +oauth2RequiresAuthorizeUrlExceptionMessage = OAuth2 需要提供授权 URL +authMethodNotExistForMergingExceptionMessage = 合并时身份验证方法不存在:{0} +mergeDefaultAuthNotInListExceptionMessage = MergeDefault 身份验证 '{0}' 不在提供的身份验证列表中。 +defaultAuthNotInListExceptionMessage = 默认身份验证 '{0}' 不在提供的身份验证列表中。 +scriptBlockRequiredForMergingUsersExceptionMessage = 当 Valid 是 All 时,需要一个 ScriptBlock 来将多个经过身份验证的用户合并为一个对象。 +noDomainServerNameForWindowsAdAuthExceptionMessage = 没有为 Windows AD 身份验证提供域服务器名称 +sessionsNotConfiguredExceptionMessage = 会话尚未配置。 +windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = Windows 本地身份验证支持仅适用于 Windows。 +iisAuthSupportIsForWindowsOnlyExceptionMessage = IIS 身份验证支持仅适用于 Windows。 +noAlgorithmInJwtHeaderExceptionMessage = JWT 头中未提供算法。 +invalidJwtSuppliedExceptionMessage = 提供的 JWT 无效。 +invalidJwtHeaderAlgorithmSuppliedExceptionMessage = 提供的 JWT 头算法无效。 +noJwtSignatureForAlgorithmExceptionMessage = 没有为 {0} 提供 JWT 签名。 +expectedNoJwtSignatureSuppliedExceptionMessage = 预期不提供 JWT 签名。 +invalidJwtSignatureSuppliedExceptionMessage = 提供的 JWT 签名无效。 +jwtExpiredExceptionMessage = JWT 已过期。 +jwtNotYetValidExceptionMessage = JWT 尚未有效。 +snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = Snapins 仅支持 Windows PowerShell。 +userFileDoesNotExistExceptionMessage = 用户文件不存在:{0} +schemeRequiresValidScriptBlockExceptionMessage = 提供的方案用于 '{0}' 身份验证验证器,需要一个有效的 ScriptBlock。 +oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = OAuth2 提供程序不支持 'code' response_type。 +oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = OAuth2 提供程序不支持使用 InnerScheme 所需的 'password' grant_type。 +eventAlreadyRegisteredExceptionMessage = {0} 事件已注册:{1} +noEventRegisteredExceptionMessage = 没有注册的 {0} 事件:{1} +'@ diff --git a/src/Pode.psm1 b/src/Pode.psm1 index 72e91050b..ad21d2e0f 100644 --- a/src/Pode.psm1 +++ b/src/Pode.psm1 @@ -1,19 +1,69 @@ -[Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidGlobalVars', '')] -param() +<# +.SYNOPSIS + Pode PowerShell Module + +.DESCRIPTION + This module sets up the Pode environment, including + localization and loading necessary assemblies and functions. + +.PARAMETER UICulture + Specifies the culture to be used for localization. + +.EXAMPLE + Import-Module -Name "Pode" -ArgumentList @{ UICulture = 'ko-KR' } + Sets the culture to Korean. + +.EXAMPLE + Import-Module -Name "Pode" + Uses the default culture. + +.EXAMPLE + Import-Module -Name "Pode" -ArgumentList 'it-SM' + Uses the Italian San Marino region culture. + +.NOTES + This is the entry point for the Pode module. +#> + +param( + [string]$UICulture +) + # root path $root = Split-Path -Parent -Path $MyInvocation.MyCommand.Path # Import localized messages -$global:msgTable = Import-LocalizedData -BaseDirectory (Join-Path -Path $root -ChildPath 'Locales') +if ([string]::IsNullOrEmpty($UICulture)) { + $UICulture = $PsUICulture +} -# load assemblies -Add-Type -AssemblyName System.Web -Add-Type -AssemblyName System.Net.Http +#Culture list available here https://azuliadesigns.com/c-sharp-tutorials/list-net-culture-country-codes/ +Import-LocalizedData -BindingVariable tmpMsgtable -BaseDirectory (Join-Path -Path $root -ChildPath 'Locales') -UICulture $UICulture -ErrorAction:SilentlyContinue +if ($null -eq $tmpMsgtable) { + try { + Import-LocalizedData -BindingVariable tmpMsgtable -BaseDirectory (Join-Path -Path $root -ChildPath 'Locales') -UICulture 'en' -ErrorAction:Stop + } + catch { + throw + } +} + +try { + # Create the global msgTable read-only variable + New-Variable -Name 'msgTable' -Value $tmpMsgtable -Scope Global -Option ReadOnly -Force + + # load assemblies + Add-Type -AssemblyName System.Web -ErrorAction Stop + Add-Type -AssemblyName System.Net.Http -ErrorAction Stop -# Construct the path to the module manifest (.psd1 file) -$moduleManifestPath = Join-Path -Path $root -ChildPath 'Pode.psd1' + # Construct the path to the module manifest (.psd1 file) + $moduleManifestPath = Join-Path -Path $root -ChildPath 'Pode.psd1' -# Import the module manifest to access its properties -$moduleManifest = Import-PowerShellDataFile -Path $moduleManifestPath + # Import the module manifest to access its properties + $moduleManifest = Import-PowerShellDataFile -Path $moduleManifestPath -ErrorAction Stop +} +catch { + throw +} $podeDll = [AppDomain]::CurrentDomain.GetAssemblies() | Where-Object { $_.GetName().Name -eq 'Pode' } @@ -26,14 +76,19 @@ if ($podeDll) { } } else { - if ($PSVersionTable.PSVersion -ge [version]'7.4.0') { - Add-Type -LiteralPath "$($root)/Libs/net8.0/Pode.dll" -ErrorAction Stop - } - elseif ($PSVersionTable.PSVersion -ge [version]'7.2.0') { - Add-Type -LiteralPath "$($root)/Libs/net6.0/Pode.dll" -ErrorAction Stop + try { + if ($PSVersionTable.PSVersion -ge [version]'7.4.0') { + Add-Type -LiteralPath "$($root)/Libs/net8.0/Pode.dll" -ErrorAction Stop + } + elseif ($PSVersionTable.PSVersion -ge [version]'7.2.0') { + Add-Type -LiteralPath "$($root)/Libs/net6.0/Pode.dll" -ErrorAction Stop + } + else { + Add-Type -LiteralPath "$($root)/Libs/netstandard2.0/Pode.dll" -ErrorAction Stop + } } - else { - Add-Type -LiteralPath "$($root)/Libs/netstandard2.0/Pode.dll" -ErrorAction Stop + catch { + throw } } diff --git a/src/Private/Helpers.ps1 b/src/Private/Helpers.ps1 index f22920830..e05e45835 100644 --- a/src/Private/Helpers.ps1 +++ b/src/Private/Helpers.ps1 @@ -2709,7 +2709,7 @@ function Read-PodeWebExceptionDetails { } default { - throw "Exception is of an invalid type, should be either WebException or HttpRequestException, but got: $($_.Exception.GetType().Name)" + throw ($msgTable.invalidExceptionTypeExceptionMessage -f ($_.Exception.GetType().Name))#"Exception is of an invalid type, should be either WebException or HttpRequestException, but got: $($_.Exception.GetType().Name)" } } diff --git a/src/Public/Authentication.ps1 b/src/Public/Authentication.ps1 index 8fbbd5e5c..681809522 100644 --- a/src/Public/Authentication.ps1 +++ b/src/Public/Authentication.ps1 @@ -159,7 +159,7 @@ function New-PodeAuthScheme { [Parameter(Mandatory = $true, ParameterSetName = 'Custom')] [ValidateScript({ if (Test-PodeIsEmpty $_) { - throw 'A non-empty ScriptBlock is required for the Custom authentication scheme' + throw $msgTable.nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage #'A non-empty ScriptBlock is required for the Custom authentication scheme' } return $true @@ -408,19 +408,19 @@ function New-PodeAuthScheme { 'oauth2' { if (($null -ne $InnerScheme) -and ($InnerScheme.Name -inotin @('basic', 'form'))) { - throw "OAuth2 InnerScheme can only be one of either Basic or Form authentication, but got: $($InnerScheme.Name)" + throw ($msgTable.oauth2InnerSchemeInvalidExceptionMessage -f $InnerScheme.Name) #"OAuth2 InnerScheme can only be one of either Basic or Form authentication, but got: $($InnerScheme.Name)" } if (($null -eq $InnerScheme) -and [string]::IsNullOrWhiteSpace($AuthoriseUrl)) { - throw 'OAuth2 requires an Authorise URL to be supplied' + throw $msgTable.oauth2RequiresAuthorizeUrlExceptionMessage #'OAuth2 requires an Authorise URL to be supplied' } if ($UsePKCE -and !(Test-PodeSessionsEnabled)) { - throw 'Sessions are required to use OAuth2 with PKCE' + throw $msgTable.sessionsRequiredForOAuth2WithPKCEExceptionMessage #'Sessions are required to use OAuth2 with PKCE' } if (!$UsePKCE -and [string]::IsNullOrEmpty($ClientSecret)) { - throw 'OAuth2 requires a Client Secret when not using PKCE' + throw $msgTable.oauth2ClientSecretRequiredExceptionMessage #'OAuth2 requires a Client Secret when not using PKCE' } return @{ Name = 'OAuth2' @@ -717,7 +717,7 @@ function Add-PodeAuth { [Parameter(Mandatory = $true)] [ValidateScript({ if (Test-PodeIsEmpty $_) { - throw 'A non-empty ScriptBlock is required for the authentication method' + throw $msgTable.nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage #'A non-empty ScriptBlock is required for the authentication method' } return $true @@ -750,17 +750,17 @@ function Add-PodeAuth { # ensure the name doesn't already exist if (Test-PodeAuthExists -Name $Name) { - throw "Authentication method already defined: $($Name)" + throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) # "Authentication method already defined: $($Name)" } # ensure the Scheme contains a scriptblock if (Test-PodeIsEmpty $Scheme.ScriptBlock) { - throw "The supplied '$($Scheme.Name)' Scheme for the '$($Name)' authentication validator requires a valid ScriptBlock" + throw ($msgTable.schemeRequiresValidScriptBlockExceptionMessage -f $Name) # "The supplied '$($Scheme.Name)' Scheme for the '$($Name)' authentication validator requires a valid ScriptBlock" } # if we're using sessions, ensure sessions have been setup if (!$Sessionless -and !(Test-PodeSessionsEnabled)) { - throw 'Sessions are required to use session persistent authentication' + throw $msgTable.sessionsRequiredForSessionPersistentAuthExceptionMessage # 'Sessions are required to use session persistent authentication' } # check for scoped vars @@ -902,24 +902,24 @@ function Merge-PodeAuth { # ensure the name doesn't already exist if (Test-PodeAuthExists -Name $Name) { - throw "Authentication method already defined: $($Name)" + throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) # "Authentication method already defined: $($Name)" } # ensure all the auth methods exist foreach ($authName in $Authentication) { if (!(Test-PodeAuthExists -Name $authName)) { - throw "Authentication method does not exist for merging: $($authName)" + throw ($msgTable.authMethodNotExistForMergingExceptionMessage -f $authName) #"Authentication method does not exist for merging: $($authName)" } } # ensure the merge default is in the auth list if (![string]::IsNullOrEmpty($MergeDefault) -and ($MergeDefault -inotin @($Authentication))) { - throw "the MergeDefault Authentication '$($MergeDefault)' is not in the Authentication list supplied" + throw ($msgTable.mergeDefaultAuthNotInListExceptionMessage -f $MergeDefault) # "the MergeDefault Authentication '$($MergeDefault)' is not in the Authentication list supplied" } # ensure the default is in the auth list if (![string]::IsNullOrEmpty($Default) -and ($Default -inotin @($Authentication))) { - throw "the Default Authentication '$($Default)' is not in the Authentication list supplied" + throw ($msgTable.defaultAuthNotInListExceptionMessage -f $Default) # "the Default Authentication '$($Default)' is not in the Authentication list supplied" } # set default @@ -937,7 +937,7 @@ function Merge-PodeAuth { # if we're using sessions, ensure sessions have been setup if (!$Sessionless -and !(Test-PodeSessionsEnabled)) { - throw 'Sessions are required to use session persistent authentication' + throw $msgTable.sessionsRequiredForSessionPersistentAuthExceptionMessage #'Sessions are required to use session persistent authentication' } # check failure url from default @@ -963,7 +963,7 @@ function Merge-PodeAuth { # deal with using vars in scriptblock if (($Valid -ieq 'all') -and [string]::IsNullOrEmpty($MergeDefault)) { if ($null -eq $ScriptBlock) { - throw 'A Scriptblock for merging multiple authenticated users into 1 object is required When Valid is All' + throw $msgTable.scriptBlockRequiredForMergingUsersExceptionMessage # 'A Scriptblock for merging multiple authenticated users into 1 object is required When Valid is All' } $ScriptBlock, $usingVars = Convert-PodeScopedVariables -ScriptBlock $ScriptBlock -PSSession $PSCmdlet.SessionState @@ -1028,7 +1028,7 @@ function Get-PodeAuth { # ensure the name exists if (!(Test-PodeAuthExists -Name $Name)) { - throw "Authentication method not defined: $($Name)" + throw ($msgTable.authenticationMethodDoesNotExistExceptionMessage -f $Name) # "Authentication method not defined: $($Name)" } # get auth method @@ -1264,17 +1264,17 @@ function Add-PodeAuthWindowsAd { # ensure the name doesn't already exist if (Test-PodeAuthExists -Name $Name) { - throw "Windows AD Authentication method already defined: $($Name)" + throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) # "Windows AD Authentication method already defined: $($Name)" } # ensure the Scheme contains a scriptblock if (Test-PodeIsEmpty $Scheme.ScriptBlock) { - throw "The supplied Scheme for the '$($Name)' Windows AD authentication validator requires a valid ScriptBlock" + throw ($msgTable.schemeRequiresValidScriptBlockExceptionMessage -f $Name) # "The supplied Scheme for the '$($Name)' Windows AD authentication validator requires a valid ScriptBlock" } # if we're using sessions, ensure sessions have been setup if (!$Sessionless -and !(Test-PodeSessionsEnabled)) { - throw 'Sessions are required to use session persistent authentication' + throw $msgTable.sessionsRequiredForSessionPersistentAuthExceptionMessage #'Sessions are required to use session persistent authentication' } # if AD module set, ensure we're on windows and the module is available, then import/export it @@ -1287,7 +1287,7 @@ function Add-PodeAuthWindowsAd { $Fqdn = Get-PodeAuthDomainName if ([string]::IsNullOrWhiteSpace($Fqdn)) { - throw 'No domain server name has been supplied for Windows AD authentication' + throw $msgTable.noDomainServerNameForWindowsAdAuthExceptionMessage #'No domain server name has been supplied for Windows AD authentication' } } @@ -1400,12 +1400,12 @@ function Add-PodeAuthSession { # if sessions haven't been setup, error if (!(Test-PodeSessionsEnabled)) { - throw 'Sessions have not been configured' + throw $msgTable.sessionsNotConfiguredExceptionMessage #'Sessions have not been configured' } # ensure the name doesn't already exist if (Test-PodeAuthExists -Name $Name) { - throw "Authentication method already defined: $($Name)" + throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) # "Authentication method already defined: $($Name)" } # if we have a scriptblock, deal with using vars @@ -1559,7 +1559,7 @@ function Add-PodeAuthMiddleware { $DefinitionTag = Test-PodeOADefinitionTag -Tag $OADefinitionTag if (!(Test-PodeAuthExists -Name $Authentication)) { - throw "Authentication method does not exist: $($Authentication)" + throw ($msgTable.authenticationMethodDoesNotExistExceptionMessage -f $Authentication) # "Authentication method does not exist: $($Authentication)" } Get-PodeAuthMiddlewareScript | @@ -1685,12 +1685,12 @@ function Add-PodeAuthIIS { # ensure we're on Windows! if (!(Test-PodeIsWindows)) { - throw 'IIS Authentication support is for Windows only' + throw $msgTable.iisAuthSupportIsForWindowsOnlyExceptionMessage # 'IIS Authentication support is for Windows only' } # ensure the name doesn't already exist if (Test-PodeAuthExists -Name $Name) { - throw "IIS Authentication method already defined: $($Name)" + throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) # "IIS Authentication method already defined: $($Name)" } # if AD module set, ensure we're on windows and the module is available, then import/export it @@ -1848,17 +1848,17 @@ function Add-PodeAuthUserFile { # ensure the name doesn't already exist if (Test-PodeAuthExists -Name $Name) { - throw "User File Authentication method already defined: $($Name)" + throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) # "User File Authentication method already defined: $($Name)" } # ensure the Scheme contains a scriptblock if (Test-PodeIsEmpty $Scheme.ScriptBlock) { - throw "The supplied Scheme for the '$($Name)' User File authentication validator requires a valid ScriptBlock" + throw ($msgTable.schemeRequiresValidScriptBlockExceptionMessage -f $Name) #"The supplied Scheme for the '$($Name)' User File authentication validator requires a valid ScriptBlock" } # if we're using sessions, ensure sessions have been setup if (!$Sessionless -and !(Test-PodeSessionsEnabled)) { - throw 'Sessions are required to use session persistent authentication' + throw $msgTable.sessionsRequiredForSessionPersistentAuthExceptionMessage #'Sessions are required to use session persistent authentication' } # set the file path if not passed @@ -1871,7 +1871,7 @@ function Add-PodeAuthUserFile { # ensure the user file exists if (!(Test-PodePath -Path $FilePath -NoStatus -FailOnDirectory)) { - throw "The user file does not exist: $($FilePath)" + throw ($msgTable.userFileDoesNotExistExceptionMessage -f $FilePath) # "The user file does not exist: $($FilePath)" } # if we have a scriptblock, deal with using vars @@ -2006,22 +2006,22 @@ function Add-PodeAuthWindowsLocal { # ensure we're on Windows! if (!(Test-PodeIsWindows)) { - throw 'Windows Local Authentication support is for Windows only' + throw $msgTable.windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage #'Windows Local Authentication support is for Windows only' } # ensure the name doesn't already exist if (Test-PodeAuthExists -Name $Name) { - throw "Windows Local Authentication method already defined: $($Name)" + throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) # "Windows Local Authentication method already defined: $($Name)" } # ensure the Scheme contains a scriptblock if (Test-PodeIsEmpty $Scheme.ScriptBlock) { - throw "The supplied Scheme for the '$($Name)' Windows Local authentication validator requires a valid ScriptBlock" + throw ($msgTable.schemeRequiresValidScriptBlockExceptionMessage -f $Name) # "The supplied Scheme for the '$($Name)' Windows Local authentication validator requires a valid ScriptBlock" } # if we're using sessions, ensure sessions have been setup if (!$Sessionless -and !(Test-PodeSessionsEnabled)) { - throw 'Sessions are required to use session persistent authentication' + throw $msgTable.sessionsRequiredForSessionPersistentAuthExceptionMessage #'Sessions are required to use session persistent authentication' } # if we have a scriptblock, deal with using vars @@ -2097,7 +2097,7 @@ function ConvertTo-PodeJwt { # validate header if ([string]::IsNullOrWhiteSpace($Header.alg)) { - throw 'No algorithm supplied in JWT Header' + throw $msgTable.noAlgorithmInJwtHeaderExceptionMessage #'No algorithm supplied in JWT Header' } # convert the header @@ -2161,13 +2161,13 @@ function ConvertFrom-PodeJwt { # check number of parts (should be 3) if ($parts.Length -ne 3) { - throw 'Invalid JWT supplied' + throw $msgTable.invalidJwtSuppliedExceptionMessage #'Invalid JWT supplied' } # convert to header $header = ConvertFrom-PodeJwtBase64Value -Value $parts[0] if ([string]::IsNullOrWhiteSpace($header.alg)) { - throw 'Invalid JWT header algorithm supplied' + throw $msgTable.invalidJwtHeaderAlgorithmSuppliedExceptionMessage # Invalid JWT header algorithm supplied' } # convert to payload @@ -2184,15 +2184,15 @@ function ConvertFrom-PodeJwt { $isNoneAlg = ($header.alg -ieq 'none') if ([string]::IsNullOrWhiteSpace($signature) -and !$isNoneAlg) { - throw "No JWT signature supplied for $($header.alg)" + throw ($msgTable.noJwtSignatureForAlgorithmExceptionMessage -f $header.alg) # "No JWT signature supplied for $($header.alg)" } if (![string]::IsNullOrWhiteSpace($signature) -and $isNoneAlg) { - throw 'Expected no JWT signature to be supplied' + throw $msgTable.expectedNoJwtSignatureSuppliedExceptionMessage # 'Expected no JWT signature to be supplied' } if ($isNoneAlg -and ($null -ne $Secret) -and ($Secret.Length -gt 0)) { - throw "Expected a signed JWT, 'none' algorithm is not allowed" + throw $msgTable.expectedNoJwtSignatureSuppliedExceptionMessage # 'Expected no JWT signature to be supplied' } if ($isNoneAlg) { @@ -2208,7 +2208,7 @@ function ConvertFrom-PodeJwt { $sig = New-PodeJwtSignature -Algorithm $header.alg -Token $sig -SecretBytes $Secret if ($sig -ne $parts[2]) { - throw 'Invalid JWT signature supplied' + throw $msgTable.invalidJwtSignatureSuppliedExceptionMessage # 'Invalid JWT signature supplied' } # it's valid return the payload! @@ -2247,14 +2247,14 @@ function Test-PodeJwt { # validate expiry if (![string]::IsNullOrWhiteSpace($Payload.exp)) { if ($now -gt $unixStart.AddSeconds($Payload.exp)) { - throw 'The JWT has expired' + throw $msgTable.jwtExpiredExceptionMessage # 'The JWT has expired' } } # validate not-before if (![string]::IsNullOrWhiteSpace($Payload.nbf)) { if ($now -lt $unixStart.AddSeconds($Payload.nbf)) { - throw 'The JWT is not yet valid for use' + throw $msgTable.jwtNotYetValidExceptionMessage #'The JWT is not yet valid for use' } } } @@ -2367,12 +2367,12 @@ function ConvertFrom-PodeOIDCDiscovery { # check it supports the code response_type if ($config.response_types_supported -inotcontains 'code') { - throw "The OAuth2 provider does not support the 'code' response_type" + throw $msgTable.oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage # "The OAuth2 provider does not support the 'code' response_type" } # can we have an InnerScheme? if (($null -ne $InnerScheme) -and ($config.grant_types_supported -inotcontains 'password')) { - throw "The OAuth2 provider does not support the 'password' grant_type required by using an InnerScheme" + throw $msgTable.oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage # "The OAuth2 provider does not support the 'password' grant_type required by using an InnerScheme" } # scopes diff --git a/src/Public/AutoImport.ps1 b/src/Public/AutoImport.ps1 index 4421700c1..fb9c21b0e 100644 --- a/src/Public/AutoImport.ps1 +++ b/src/Public/AutoImport.ps1 @@ -46,7 +46,7 @@ function Export-PodeSnapin { # if non-windows or core, fail if ((Test-PodeIsPSCore) -or (Test-PodeIsUnix)) { - throw 'Snapins are only supported on Windows PowerShell' + throw $msgTable.snapinsSupportedOnWindowsPowershellOnlyExceptionMessage # 'Snapins are only supported on Windows PowerShell' } $PodeContext.Server.AutoImport.Snapins.ExportList += @($Name) diff --git a/src/Public/Events.ps1 b/src/Public/Events.ps1 index fe03becab..6d509e92c 100644 --- a/src/Public/Events.ps1 +++ b/src/Public/Events.ps1 @@ -43,7 +43,7 @@ function Register-PodeEvent { # error if already registered if (Test-PodeEvent -Type $Type -Name $Name) { - throw "$($Type) event already registered: $($Name)" + throw ($msgTable.eventAlreadyRegisteredExceptionMessage -f $Type, $Name) # "$($Type) event already registered: $($Name)" } # check for scoped vars @@ -89,7 +89,7 @@ function Unregister-PodeEvent { # error if not registered if (!(Test-PodeEvent -Type $Type -Name $Name)) { - throw "No $($Type) event registered: $($Name)" + throw ($msgTable.noEventRegisteredExceptionMessage -f $Type, $Name) # "No $($Type) event registered: $($Name)" } # remove event diff --git a/tests/unit/Authentication.Tests.ps1 b/tests/unit/Authentication.Tests.ps1 index 5af266048..298d9b9ff 100644 --- a/tests/unit/Authentication.Tests.ps1 +++ b/tests/unit/Authentication.Tests.ps1 @@ -139,12 +139,12 @@ Describe 'Test-PodeJwt' { It 'Throws exception - the JWT has expired' { # "exp" (Expiration Time) Claim - { Test-PodeJwt @{exp = 1 } } | Should -Throw -ExceptionType ([System.Exception]) -ExpectedMessage 'The JWT has expired' + { Test-PodeJwt @{exp = 1 } } | Should -Throw -ExceptionType ([System.Exception]) -ExpectedMessage $msgTable.jwtExpiredExceptionMessage } It 'Throws exception - the JWT is not yet valid for use' { # "nbf" (Not Before) Claim - { Test-PodeJwt @{nbf = 99999999999 } } | Should -Throw -ExceptionType ([System.Exception]) -ExpectedMessage 'The JWT is not yet valid for use' + { Test-PodeJwt @{nbf = 99999999999 } } | Should -Throw -ExceptionType ([System.Exception]) -ExpectedMessage $msgTable.jwtNotYetValidExceptionMessage } } From 472a8a52270a1875b61e520820c10781fa04e6b1 Mon Sep 17 00:00:00 2001 From: mdaneri Date: Sat, 1 Jun 2024 11:23:24 -0700 Subject: [PATCH 06/67] Additional messages --- src/Locales/ar/Pode.psd1 | 53 +++++++++++++- src/Locales/de/Pode.psd1 | 52 ++++++++++++- src/Locales/en/Pode.psd1 | 52 ++++++++++++- src/Locales/es/Pode.psd1 | 52 ++++++++++++- src/Locales/fr/Pode.psd1 | 52 ++++++++++++- src/Locales/it/Pode.psd1 | 53 +++++++++++++- src/Locales/ja/Pode.psd1 | 52 ++++++++++++- src/Locales/kr/Pode.psd1 | 52 ++++++++++++- src/Locales/pl/Pode.psd1 | 52 ++++++++++++- src/Locales/pt/Pode.psd1 | 52 ++++++++++++- src/Locales/zn/Pode.psd1 | 60 +++++++++++++-- src/Private/Authentication.ps1 | 6 +- src/Private/AutoImport.ps1 | 3 +- src/Private/Cryptography.ps1 | 21 ++++-- src/Private/Middleware.ps1 | 6 +- src/Private/OpenApi.ps1 | 39 ++++++---- src/Private/Routes.ps1 | 6 +- src/Private/Secrets.ps1 | 6 +- src/Private/Security.ps1 | 3 +- src/Private/ServiceServer.ps1 | 3 +- src/Private/Sessions.ps1 | 6 +- src/Private/SmtpServer.ps1 | 3 +- src/Public/Access.ps1 | 3 +- src/Public/Authentication.ps1 | 117 ++++++++++++++++++++---------- src/Public/AutoImport.ps1 | 3 +- src/Public/Core.ps1 | 24 ++++-- src/Public/Flash.ps1 | 18 +++-- src/Public/Logging.ps1 | 21 ++++-- src/Public/Middleware.ps1 | 12 ++- src/Public/OAComponents.ps1 | 9 ++- src/Public/OAProperties.ps1 | 21 ++++-- src/Public/Responses.ps1 | 3 +- src/Public/Routes.ps1 | 39 ++++++---- src/Public/SSE.ps1 | 9 ++- src/Public/Sessions.ps1 | 27 ++++--- src/Public/State.ps1 | 21 ++++-- src/Public/Tasks.ps1 | 3 +- src/Public/Threading.ps1 | 15 ++-- src/Public/Utilities.ps1 | 12 ++- tests/unit/Helpers.Tests.ps1 | 6 +- tests/unit/Localization.Tests.ps1 | 4 +- tests/unit/OpenApi.Tests.ps1 | 4 +- tests/unit/Routes.Tests.ps1 | 2 +- tests/unit/Security.Tests.ps1 | 2 +- tests/unit/Sessions.Tests.ps1 | 6 +- tests/unit/State.Tests.ps1 | 12 +-- 46 files changed, 878 insertions(+), 199 deletions(-) diff --git a/src/Locales/ar/Pode.psd1 b/src/Locales/ar/Pode.psd1 index 840103194..93b0e07c5 100644 --- a/src/Locales/ar/Pode.psd1 +++ b/src/Locales/ar/Pode.psd1 @@ -58,7 +58,7 @@ invalidMiddlewareTypeExceptionMessage = أحد مكونات Middleware المق hashtableMiddlewareNoLogicExceptionMessage = مكون Middleware من نوع Hashtable المقدم لا يحتوي على منطق معرف. invalidLogicTypeInHashtableMiddlewareExceptionMessage = مكون Middleware من نوع Hashtable المقدم يحتوي على نوع منطق غير صالح. كان المتوقع ScriptBlock، ولكن تم الحصول عليه: {0} scopedVariableAlreadyDefinedExceptionMessage = المتغير المحدد بالفعل معرف: {0} -valueForUsingVariableNotFoundExceptionMessage = لم يتم العثور على قيمة لـ `$using:{0}`. +valueForUsingVariableNotFoundExceptionMessage = لم يتم العثور على قيمة لـ '$using:{0}'. unlockSecretRequiredExceptionMessage = خاصية 'UnlockSecret' مطلوبة عند استخدام Microsoft.PowerShell.SecretStore unlockSecretButNoScriptBlockExceptionMessage = تم تقديم سر الفتح لنوع خزنة سرية مخصصة، ولكن لم يتم تقديم ScriptBlock الفتح. noUnlockScriptBlockForVaultExceptionMessage = لم يتم تقديم ScriptBlock الفتح لفتح الخزنة '{0}' @@ -116,5 +116,52 @@ oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = مزود OAuth2 oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = مزود OAuth2 لا يدعم نوع المنحة 'password' المطلوبة لاستخدام InnerScheme. eventAlreadyRegisteredExceptionMessage = الحدث {0} مسجل بالفعل: {1} noEventRegisteredExceptionMessage = لا يوجد حدث {0} مسجل: {1} -'@ - +sessionsRequiredForFlashMessagesExceptionMessage = الجلسات مطلوبة لاستخدام رسائل الفلاش. +eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = تسجيل عارض الأحداث مدعوم فقط على Windows. +nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = مطلوب ScriptBlock غير فارغ لطريقة إخراج السجل المخصصة. +requestLoggingAlreadyEnabledExceptionMessage = تم تمكين تسجيل الطلبات بالفعل. +outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = طريقة الإخراج المقدمة لتسجيل الطلبات تتطلب ScriptBlock صالح. +errorLoggingAlreadyEnabledExceptionMessage = تم تمكين تسجيل الأخطاء بالفعل. +nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = مطلوب ScriptBlock غير فارغ لطريقة التسجيل. +csrfMiddlewareNotInitializedExceptionMessage = لم يتم تهيئة CSRF Middleware. +sessionsRequiredForCsrfExceptionMessage = الجلسات مطلوبة لاستخدام CSRF إلا إذا كنت ترغب في استخدام ملفات تعريف الارتباط. +middlewareNoLogicSuppliedExceptionMessage = [Middleware]: لم يتم توفير أي منطق في ScriptBlock. +parameterHasNoNameExceptionMessage = لا يحتوي المعامل على اسم. يرجى إعطاء هذا المكون اسمًا باستخدام معامل 'Name'. +reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = ميزة المكون القابل لإعادة الاستخدام 'pathItems' غير متوفرة في OpenAPI v3.0. +noPropertiesMutuallyExclusiveExceptionMessage = المعامل 'NoProperties' يتعارض مع 'Properties' و 'MinProperties' و 'MaxProperties'. +discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = يمكن استخدام المعامل 'DiscriminatorMapping' فقط عندما تكون خاصية 'DiscriminatorProperty' موجودة. +discriminatorIncompatibleWithAllOfExceptionMessage = المعامل 'Discriminator' غير متوافق مع 'allOf'. +typeCanOnlyBeAssociatedWithObjectExceptionMessage = النوع {0} يمكن ربطه فقط بجسم. +showPodeGuiOnlyAvailableOnWindowsExceptionMessage = Show-PodeGui متاح حاليًا فقط لـ Windows PowerShell و PowerShell 7+ على Windows. +nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = مطلوب اسم لنقطة النهاية إذا تم توفير معامل RedirectTo. +clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = الشهادات العميلة مدعومة فقط على نقاط النهاية HTTPS. +explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = وضع TLS الصريح مدعوم فقط على نقاط النهاية SMTPS و TCPS. +acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = رسالة الإقرار مدعومة فقط على نقاط النهاية SMTP و TCP. +crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = فحص نهاية الرسالة CRLF مدعوم فقط على نقاط النهاية TCP. +mustBeRunningWithAdminPrivilegesExceptionMessage = يجب التشغيل بامتيازات المسؤول للاستماع إلى العناوين غير المحلية. +certificateSuppliedForNonHttpsWssEndpointExceptionMessage = تم توفير شهادة لنقطة نهاية غير HTTPS/WSS. +websocketsNotConfiguredForSignalMessagesExceptionMessage = لم يتم تهيئة WebSockets لإرسال رسائل الإشارة. +noPathSuppliedForRouteExceptionMessage = لم يتم توفير مسار للطريق. +accessRequiresAuthenticationOnRoutesExceptionMessage = يتطلب الوصول توفير المصادقة على الطرق. +accessMethodDoesNotExistExceptionMessage = طريقة الوصول غير موجودة: {0}. +routeParameterNeedsValidScriptblockExceptionMessage = المعامل Route يتطلب ScriptBlock صالح وغير فارغ. +noCommandsSuppliedToConvertToRoutesExceptionMessage = لم يتم توفير أي أوامر لتحويلها إلى طرق. +nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = مطلوب ScriptBlock غير فارغ لإنشاء مسار الصفحة. +sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = يمكن تكوين SSE فقط على الطلبات التي تحتوي على قيمة رأس Accept النص/تيار الأحداث. +sseConnectionNameRequiredExceptionMessage = مطلوب اسم اتصال SSE، إما من -Name أو $WebEvent.Sse.Name +sseFailedToBroadcastExceptionMessage = فشل بث SSE بسبب مستوى البث SSE المحدد لـ {0}: {1} +podeNotInitializedExceptionMessage = لم يتم تهيئة Pode. +invalidTaskTypeExceptionMessage = نوع المهمة غير صالح، المتوقع إما [System.Threading.Tasks.Task] أو [hashtable]. +cannotLockValueTypeExceptionMessage = لا يمكن قفل [ValueTypes]. +cannotLockNullObjectExceptionMessage = لا يمكن قفل كائن فارغ. +failedToAcquireLockExceptionMessage = فشل في الحصول على قفل على الكائن. +cannotUnlockValueTypeExceptionMessage = لا يمكن فتح [ValueTypes]. +cannotUnlockNullObjectExceptionMessage = لا يمكن فتح كائن فارغ. +sessionMiddlewareAlreadyInitializedExceptionMessage = تم تهيئة Session Middleware بالفعل. +customSessionStorageMethodNotImplementedExceptionMessage = تخزين الجلسة المخصص لا ينفذ الطريقة المطلوبة '{0}()'. +secretRequiredForCustomSessionStorageExceptionMessage = مطلوب سر عند استخدام تخزين الجلسة المخصص. +noSessionAvailableToSaveExceptionMessage = لا توجد جلسة متاحة للحفظ. +cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = لا يمكن توفير فترة زمنية عندما يكون المعامل 'Every' مضبوطًا على None. +cannotSupplyIntervalForQuarterExceptionMessage = لا يمكن توفير قيمة الفاصل الزمني لكل ربع. +cannotSupplyIntervalForYearExceptionMessage = لا يمكن توفير قيمة الفاصل الزمني لكل سنة. +'@ \ No newline at end of file diff --git a/src/Locales/de/Pode.psd1 b/src/Locales/de/Pode.psd1 index ab5cca0e3..7f6fa0086 100644 --- a/src/Locales/de/Pode.psd1 +++ b/src/Locales/de/Pode.psd1 @@ -58,7 +58,7 @@ invalidMiddlewareTypeExceptionMessage = Eines der angegebenen Middleware-Objekte hashtableMiddlewareNoLogicExceptionMessage = Eine angegebene Hashtable-Middleware enthält keine definierte Logik. invalidLogicTypeInHashtableMiddlewareExceptionMessage = Eine angegebene Hashtable-Middleware enthält einen ungültigen Logik-Typ. Erwartet wurde ein ScriptBlock, aber erhalten wurde: {0}. scopedVariableAlreadyDefinedExceptionMessage = Die Bereichsvariable ist bereits definiert: {0}. -valueForUsingVariableNotFoundExceptionMessage = Der Wert für `$using:{0}` konnte nicht gefunden werden. +valueForUsingVariableNotFoundExceptionMessage = Der Wert für '$using:{0}' konnte nicht gefunden werden. unlockSecretRequiredExceptionMessage = Eine 'UnlockSecret'-Eigenschaft ist erforderlich, wenn Microsoft.PowerShell.SecretStore verwendet wird. unlockSecretButNoScriptBlockExceptionMessage = Unlock secret für benutzerdefinierten Secret Vault-Typ angegeben, aber kein Unlock ScriptBlock bereitgestellt. noUnlockScriptBlockForVaultExceptionMessage = Kein Unlock ScriptBlock für das Entsperren des Tresors '{0}' bereitgestellt. @@ -116,4 +116,52 @@ oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = Der OAuth2-Anbiet oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = Der OAuth2-Anbieter unterstützt den für die Verwendung eines InnerScheme erforderlichen 'password'-Grant-Typ nicht. eventAlreadyRegisteredExceptionMessage = Ereignis {0} bereits registriert: {1} noEventRegisteredExceptionMessage = Kein Ereignis {0} registriert: {1} -'@ +sessionsRequiredForFlashMessagesExceptionMessage = Sitzungen sind erforderlich, um Flash-Nachrichten zu verwenden. +eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = Das Protokollieren im Ereignisanzeige wird nur auf Windows unterstützt. +nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = Ein nicht leerer ScriptBlock ist für die benutzerdefinierte Protokollierungsmethode erforderlich. +requestLoggingAlreadyEnabledExceptionMessage = Die Anforderungsprotokollierung wurde bereits aktiviert. +outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = Die angegebene Ausgabemethode für die Anforderungsprotokollierung erfordert einen gültigen ScriptBlock. +errorLoggingAlreadyEnabledExceptionMessage = Die Fehlerprotokollierung wurde bereits aktiviert. +nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = Ein nicht leerer ScriptBlock ist für die Protokollierungsmethode erforderlich. +csrfMiddlewareNotInitializedExceptionMessage = CSRF Middleware wurde nicht initialisiert. +sessionsRequiredForCsrfExceptionMessage = Sitzungen sind erforderlich, um CSRF zu verwenden, es sei denn, Sie möchten Cookies verwenden. +middlewareNoLogicSuppliedExceptionMessage = [Middleware]: Kein Logik-ScriptBlock bereitgestellt. +parameterHasNoNameExceptionMessage = Der Parameter hat keinen Namen. Bitte geben Sie dieser Komponente einen Namen mit dem 'Name'-Parameter. +reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = Die wiederverwendbare Komponente 'pathItems' ist in OpenAPI v3.0 nicht verfügbar. +noPropertiesMutuallyExclusiveExceptionMessage = Der Parameter 'NoProperties' schließt 'Properties', 'MinProperties' und 'MaxProperties' gegenseitig aus. +discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = Der Parameter 'DiscriminatorMapping' kann nur verwendet werden, wenn 'DiscriminatorProperty' vorhanden ist. +discriminatorIncompatibleWithAllOfExceptionMessage = Der Parameter 'Discriminator' ist nicht mit 'allOf' kompatibel. +typeCanOnlyBeAssociatedWithObjectExceptionMessage = Der Typ {0} kann nur einem Objekt zugeordnet werden. +showPodeGuiOnlyAvailableOnWindowsExceptionMessage = Show-PodeGui ist derzeit nur für Windows PowerShell und PowerShell 7+ unter Windows verfügbar. +nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = Ein Name ist für den Endpunkt erforderlich, wenn der RedirectTo-Parameter angegeben ist. +clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = Clientzertifikate werden nur auf HTTPS-Endpunkten unterstützt. +explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = Der explizite TLS-Modus wird nur auf SMTPS- und TCPS-Endpunkten unterstützt. +acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = Die Bestätigungsnachricht wird nur auf SMTP- und TCP-Endpunkten unterstützt. +crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = Die CRLF-Nachrichtenendprüfung wird nur auf TCP-Endpunkten unterstützt. +mustBeRunningWithAdminPrivilegesExceptionMessage = Muss mit Administratorrechten ausgeführt werden, um auf Nicht-Localhost-Adressen zu lauschen. +certificateSuppliedForNonHttpsWssEndpointExceptionMessage = Zertifikat für Nicht-HTTPS/WSS-Endpunkt bereitgestellt. +websocketsNotConfiguredForSignalMessagesExceptionMessage = WebSockets wurden nicht konfiguriert, um Signalnachrichten zu senden. +noPathSuppliedForRouteExceptionMessage = Kein Pfad für die Route bereitgestellt. +accessRequiresAuthenticationOnRoutesExceptionMessage = Der Zugriff erfordert eine Authentifizierung auf den Routen. +accessMethodDoesNotExistExceptionMessage = Zugriffsmethode existiert nicht: {0}. +routeParameterNeedsValidScriptblockExceptionMessage = Der Route-Parameter benötigt einen gültigen, nicht leeren ScriptBlock. +noCommandsSuppliedToConvertToRoutesExceptionMessage = Keine Befehle zur Umwandlung in Routen bereitgestellt. +nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = Ein nicht leerer ScriptBlock ist erforderlich, um eine Seitenroute zu erstellen. +sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSE kann nur auf Anfragen mit einem Accept-Header-Wert von text/event-stream konfiguriert werden. +sseConnectionNameRequiredExceptionMessage = Ein SSE-Verbindungsname ist erforderlich, entweder von -Name oder $WebEvent.Sse.Name +sseFailedToBroadcastExceptionMessage = SSE konnte aufgrund des definierten SSE-Broadcast-Levels für {0}: {1} nicht übertragen werden. +podeNotInitializedExceptionMessage = Pode wurde nicht initialisiert. +invalidTaskTypeExceptionMessage = Aufgabentyp ist ungültig, erwartet entweder [System.Threading.Tasks.Task] oder [hashtable] +cannotLockValueTypeExceptionMessage = Kann [ValueTypes] nicht sperren. +cannotLockNullObjectExceptionMessage = Kann ein null-Objekt nicht sperren. +failedToAcquireLockExceptionMessage = Sperre des Objekts konnte nicht erworben werden. +cannotUnlockValueTypeExceptionMessage = Kann [ValueTypes] nicht entsperren. +cannotUnlockNullObjectExceptionMessage = Kann ein null-Objekt nicht entsperren. +sessionMiddlewareAlreadyInitializedExceptionMessage = Session Middleware wurde bereits initialisiert. +customSessionStorageMethodNotImplementedExceptionMessage = Der benutzerdefinierte Sitzungspeicher implementiert die erforderliche Methode '{0}()' nicht. +secretRequiredForCustomSessionStorageExceptionMessage = Ein Geheimnis ist erforderlich, wenn benutzerdefinierter Sitzungspeicher verwendet wird. +noSessionAvailableToSaveExceptionMessage = Keine Sitzung verfügbar zum Speichern. +cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = Ein Intervall kann nicht angegeben werden, wenn der Parameter 'Every' auf None gesetzt ist. +cannotSupplyIntervalForQuarterExceptionMessage = Ein Intervallwert kann nicht für jedes Quartal angegeben werden. +cannotSupplyIntervalForYearExceptionMessage = Ein Intervallwert kann nicht für jedes Jahr angegeben werden. +'@ \ No newline at end of file diff --git a/src/Locales/en/Pode.psd1 b/src/Locales/en/Pode.psd1 index d2df449f0..1e1785393 100644 --- a/src/Locales/en/Pode.psd1 +++ b/src/Locales/en/Pode.psd1 @@ -47,7 +47,7 @@ unsupportedObjectExceptionMessage = Unsupported object validationOfAnyOfSchemaNotSupportedExceptionMessage = Validation of a schema that includes 'anyof' is not supported. validationOfOneOfSchemaNotSupportedExceptionMessage = Validation of a schema that includes 'oneof' is not supported. cannotCreatePropertyWithoutTypeExceptionMessage = Cannot create the property because no type is defined. -paramsNoAdditionalPropertiesExclusiveExceptionMessage = Params -NoAdditionalProperties and -AdditionalProperties are mutually exclusive. +paramsNoAdditionalPropertiesExclusiveExceptionMessage = Params 'NoAdditionalProperties' and 'AdditionalProperties' are mutually exclusive. headerMustHaveNameInEncodingContextExceptionMessage = Header must have a name when used in an encoding context. descriptionRequiredExceptionMessage = A Description is required. openApiDocumentNotCompliantExceptionMessage = OpenAPI document is not compliant. @@ -58,7 +58,7 @@ invalidMiddlewareTypeExceptionMessage = One of the Middlewares supplied is an in hashtableMiddlewareNoLogicExceptionMessage = A Hashtable Middleware supplied has no Logic defined. invalidLogicTypeInHashtableMiddlewareExceptionMessage = A Hashtable Middleware supplied has an invalid Logic type. Expected ScriptBlock, but got: {0} scopedVariableAlreadyDefinedExceptionMessage = Scoped Variable already defined: {0} -valueForUsingVariableNotFoundExceptionMessage = Value for `$using:{0}` could not be found. +valueForUsingVariableNotFoundExceptionMessage = Value for '$using:{0}' could not be found. unlockSecretRequiredExceptionMessage = An 'UnlockSecret' property is required when using Microsoft.PowerShell.SecretStore unlockSecretButNoScriptBlockExceptionMessage = Unlock secret supplied for custom Secret Vault type, but not Unlock ScriptBlock supplied. noUnlockScriptBlockForVaultExceptionMessage = No Unlock ScriptBlock supplied for unlocking the vault '{0}' @@ -116,4 +116,52 @@ oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = The OAuth2 provid oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = The OAuth2 provider does not support the 'password' grant_type required by using an InnerScheme. eventAlreadyRegisteredExceptionMessage = {0} event already registered: {1} noEventRegisteredExceptionMessage = No {0} event registered: {1} +sessionsRequiredForFlashMessagesExceptionMessage = Sessions are required to use Flash messages. +eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = Event Viewer logging only supported on Windows. +nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = A non-empty ScriptBlock is required for the Custom logging output method. +requestLoggingAlreadyEnabledExceptionMessage = Request Logging has already been enabled. +outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = The supplied output Method for Request Logging requires a valid ScriptBlock. +errorLoggingAlreadyEnabledExceptionMessage = Error Logging has already been enabled. +nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = A non-empty ScriptBlock is required for the logging method. +csrfMiddlewareNotInitializedExceptionMessage = CSRF Middleware has not been initialized. +sessionsRequiredForCsrfExceptionMessage = Sessions are required to use CSRF unless you want to use cookies. +middlewareNoLogicSuppliedExceptionMessage = [Middleware]: No logic supplied in ScriptBlock. +parameterHasNoNameExceptionMessage = The Parameter has no name. Please give this component a name using the 'Name' parameter. +reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = The 'pathItems' reusable component feature is not available in OpenAPI v3.0. +noPropertiesMutuallyExclusiveExceptionMessage = The parameter 'NoProperties' is mutually exclusive with 'Properties', 'MinProperties' and 'MaxProperties' +discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = The parameter 'DiscriminatorMapping' can only be used when 'DiscriminatorProperty' is present. +discriminatorIncompatibleWithAllOfExceptionMessage = The parameter 'Discriminator' is incompatible with 'allOf'. +typeCanOnlyBeAssociatedWithObjectExceptionMessage = Type {0} can only be associated with an Object. +showPodeGuiOnlyAvailableOnWindowsExceptionMessage = Show-PodeGui is currently only available for Windows PowerShell and PowerShell 7+ on Windows. +nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = A Name is required for the endpoint if the RedirectTo parameter is supplied. +clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = Client certificates are only supported on HTTPS endpoints. +explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = The Explicit TLS mode is only supported on SMTPS and TCPS endpoints. +acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = The Acknowledge message is only supported on SMTP and TCP endpoints. +crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = The CRLF message end check is only supported on TCP endpoints. +mustBeRunningWithAdminPrivilegesExceptionMessage = Must be running with administrator privileges to listen on non-localhost addresses. +certificateSuppliedForNonHttpsWssEndpointExceptionMessage = Certificate supplied for non-HTTPS/WSS endpoint. +websocketsNotConfiguredForSignalMessagesExceptionMessage = WebSockets have not been configured to send signal messages. +noPathSuppliedForRouteExceptionMessage = No Path supplied for the Route. +accessRequiresAuthenticationOnRoutesExceptionMessage = Access requires Authentication to be supplied on Routes. +accessMethodDoesNotExistExceptionMessage = Access method does not exist: {0}. +routeParameterNeedsValidScriptblockExceptionMessage = The Route parameter needs a valid, not empty, scriptblock. +noCommandsSuppliedToConvertToRoutesExceptionMessage = No commands supplied to convert to Routes. +nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = A non-empty ScriptBlock is required to create a Page Route. +sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSE can only be configured on requests with an Accept header value of text/event-stream +sseConnectionNameRequiredExceptionMessage = An SSE connection Name is required, either from -Name or $WebEvent.Sse.Name +sseFailedToBroadcastExceptionMessage = SSE failed to broadcast due to defined SSE broadcast level for {0}: {1} +podeNotInitializedExceptionMessage = Pode has not been initialized. +invalidTaskTypeExceptionMessage = Task type is invalid, expected either [System.Threading.Tasks.Task] or [hashtable] +cannotLockValueTypeExceptionMessage = Cannot lock a [ValueTypes] +cannotLockNullObjectExceptionMessage = Cannot lock an object that is null. +failedToAcquireLockExceptionMessage = Failed to acquire a lock on the object. +cannotUnlockValueTypeExceptionMessage = Cannot unlock a [ValueTypes] +cannotUnlockNullObjectExceptionMessage = Cannot unlock an object that is null. +sessionMiddlewareAlreadyInitializedExceptionMessage = Session Middleware has already been initialized. +customSessionStorageMethodNotImplementedExceptionMessage = The custom session storage does not implement the required '{0}()' method. +secretRequiredForCustomSessionStorageExceptionMessage = A Secret is required when using custom session storage. +noSessionAvailableToSaveExceptionMessage = There is no session available to save. +cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = Cannot supply an interval when the parameter 'Every' is set to None. +cannotSupplyIntervalForQuarterExceptionMessage = Cannot supply interval value for every quarter. +cannotSupplyIntervalForYearExceptionMessage = Cannot supply interval value for every year. '@ \ No newline at end of file diff --git a/src/Locales/es/Pode.psd1 b/src/Locales/es/Pode.psd1 index 237fec72f..5468df945 100644 --- a/src/Locales/es/Pode.psd1 +++ b/src/Locales/es/Pode.psd1 @@ -58,7 +58,7 @@ invalidMiddlewareTypeExceptionMessage = Uno de los Middlewares suministrados es hashtableMiddlewareNoLogicExceptionMessage = Un Middleware Hashtable suministrado no tiene lógica definida. invalidLogicTypeInHashtableMiddlewareExceptionMessage = Un Middleware Hashtable suministrado tiene un tipo de lógica no válido. Se esperaba ScriptBlock, pero se obtuvo: {0} scopedVariableAlreadyDefinedExceptionMessage = La variable con alcance ya está definida: {0} -valueForUsingVariableNotFoundExceptionMessage = No se pudo encontrar el valor para `$using:{0}`. +valueForUsingVariableNotFoundExceptionMessage = No se pudo encontrar el valor para '$using:{0}'. unlockSecretRequiredExceptionMessage = Se requiere una propiedad 'UnlockSecret' al usar Microsoft.PowerShell.SecretStore unlockSecretButNoScriptBlockExceptionMessage = Se suministró un secreto de desbloqueo para el tipo de bóveda secreta personalizada, pero no se suministró ningún ScriptBlock de desbloqueo. noUnlockScriptBlockForVaultExceptionMessage = No se suministró ningún ScriptBlock de desbloqueo para desbloquear la bóveda '{0}' @@ -116,4 +116,52 @@ oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = El proveedor de O oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = El proveedor de OAuth2 no admite el tipo de concesión 'password' requerido al usar un InnerScheme. eventAlreadyRegisteredExceptionMessage = Evento {0} ya registrado: {1} noEventRegisteredExceptionMessage = No hay evento {0} registrado: {1} -'@ +sessionsRequiredForFlashMessagesExceptionMessage = Se requieren sesiones para usar mensajes Flash. +eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = El registro en el Visor de Eventos solo se admite en Windows. +nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = Se requiere un ScriptBlock no vacío para el método de salida de registro personalizado. +requestLoggingAlreadyEnabledExceptionMessage = El registro de solicitudes ya está habilitado. +outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = El método de salida proporcionado para el registro de solicitudes requiere un ScriptBlock válido. +errorLoggingAlreadyEnabledExceptionMessage = El registro de errores ya está habilitado. +nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = Se requiere un ScriptBlock no vacío para el método de registro. +csrfMiddlewareNotInitializedExceptionMessage = El Middleware CSRF no se ha inicializado. +sessionsRequiredForCsrfExceptionMessage = Se requieren sesiones para usar CSRF a menos que desee usar cookies. +middlewareNoLogicSuppliedExceptionMessage = [Middleware]: No se suministró lógica en el ScriptBlock. +parameterHasNoNameExceptionMessage = El parámetro no tiene nombre. Asigne un nombre a este componente usando el parámetro 'Name'. +reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = La característica del componente reutilizable 'pathItems' no está disponible en OpenAPI v3.0. +noPropertiesMutuallyExclusiveExceptionMessage = El parámetro 'NoProperties' es mutuamente excluyente con 'Properties', 'MinProperties' y 'MaxProperties'. +discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = El parámetro 'DiscriminatorMapping' solo se puede usar cuando está presente la propiedad 'DiscriminatorProperty'. +discriminatorIncompatibleWithAllOfExceptionMessage = El parámetro 'Discriminator' es incompatible con 'allOf'. +typeCanOnlyBeAssociatedWithObjectExceptionMessage = El tipo {0} solo se puede asociar con un Objeto. +showPodeGuiOnlyAvailableOnWindowsExceptionMessage = Show-PodeGui actualmente solo está disponible para Windows PowerShell y PowerShell 7+ en Windows. +nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = Se requiere un nombre para el endpoint si se proporciona el parámetro RedirectTo. +clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = Los certificados de cliente solo son compatibles con endpoints HTTPS. +explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = El modo TLS explícito solo es compatible con endpoints SMTPS y TCPS. +acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = El mensaje de reconocimiento solo es compatible con endpoints SMTP y TCP. +crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = La verificación de final de mensaje CRLF solo es compatible con endpoints TCP. +mustBeRunningWithAdminPrivilegesExceptionMessage = Debe estar ejecutándose con privilegios de administrador para escuchar en direcciones que no sean localhost. +certificateSuppliedForNonHttpsWssEndpointExceptionMessage = Certificado proporcionado para un endpoint que no es HTTPS/WSS. +websocketsNotConfiguredForSignalMessagesExceptionMessage = WebSockets no están configurados para enviar mensajes de señal. +noPathSuppliedForRouteExceptionMessage = No se proporcionó una ruta para la Ruta. +accessRequiresAuthenticationOnRoutesExceptionMessage = El acceso requiere autenticación en las rutas. +accessMethodDoesNotExistExceptionMessage = El método de acceso no existe: {0}. +routeParameterNeedsValidScriptblockExceptionMessage = El parámetro Route necesita un ScriptBlock válido y no vacío. +noCommandsSuppliedToConvertToRoutesExceptionMessage = No se proporcionaron comandos para convertir a Rutas. +nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = Se requiere un ScriptBlock no vacío para crear una Ruta de Página. +sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSE solo se puede configurar en solicitudes con un valor de encabezado Accept de text/event-stream. +sseConnectionNameRequiredExceptionMessage = Se requiere un nombre de conexión SSE, ya sea de -Name o $WebEvent.Sse.Name. +sseFailedToBroadcastExceptionMessage = SSE no pudo transmitir debido al nivel de transmisión SSE definido para {0}: {1}. +podeNotInitializedExceptionMessage = Pode no se ha inicializado. +invalidTaskTypeExceptionMessage = El tipo de tarea no es válido, se esperaba [System.Threading.Tasks.Task] o [hashtable]. +cannotLockValueTypeExceptionMessage = No se puede bloquear un [ValueTypes]. +cannotLockNullObjectExceptionMessage = No se puede bloquear un objeto nulo. +failedToAcquireLockExceptionMessage = No se pudo adquirir un bloqueo en el objeto. +cannotUnlockValueTypeExceptionMessage = No se puede desbloquear un [ValueTypes]. +cannotUnlockNullObjectExceptionMessage = No se puede desbloquear un objeto nulo. +sessionMiddlewareAlreadyInitializedExceptionMessage = El Middleware de Sesión ya se ha inicializado. +customSessionStorageMethodNotImplementedExceptionMessage = El almacenamiento de sesión personalizado no implementa el método requerido '{0}()'. +secretRequiredForCustomSessionStorageExceptionMessage = Se requiere un secreto cuando se utiliza el almacenamiento de sesión personalizado. +noSessionAvailableToSaveExceptionMessage = No hay sesión disponible para guardar. +cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = No se puede proporcionar un intervalo cuando el parámetro 'Every' está configurado en None. +cannotSupplyIntervalForQuarterExceptionMessage = No se puede proporcionar un valor de intervalo para cada trimestre. +cannotSupplyIntervalForYearExceptionMessage = No se puede proporcionar un valor de intervalo para cada año. +'@ \ No newline at end of file diff --git a/src/Locales/fr/Pode.psd1 b/src/Locales/fr/Pode.psd1 index b3da880c2..8e620534e 100644 --- a/src/Locales/fr/Pode.psd1 +++ b/src/Locales/fr/Pode.psd1 @@ -58,7 +58,7 @@ invalidMiddlewareTypeExceptionMessage = Un des Middlewares fournis est d'un type hashtableMiddlewareNoLogicExceptionMessage = Un Middleware Hashtable fourni n'a aucune logique définie. invalidLogicTypeInHashtableMiddlewareExceptionMessage = Un Middleware Hashtable fourni a un type de logique non valide. Attendu ScriptBlock, mais a obtenu : {0} scopedVariableAlreadyDefinedExceptionMessage = La variable à portée est déjà définie : {0} -valueForUsingVariableNotFoundExceptionMessage = Valeur pour `$using:{0}` introuvable. +valueForUsingVariableNotFoundExceptionMessage = Valeur pour '$using:{0}' introuvable. unlockSecretRequiredExceptionMessage = Une propriété 'UnlockSecret' est requise lors de l'utilisation de Microsoft.PowerShell.SecretStore unlockSecretButNoScriptBlockExceptionMessage = Secret de déverrouillage fourni pour le type de coffre-fort personnalisé, mais aucun ScriptBlock de déverrouillage fourni. noUnlockScriptBlockForVaultExceptionMessage = Aucun ScriptBlock de déverrouillage fourni pour déverrouiller le coffre '{0}' @@ -116,4 +116,52 @@ oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = Le fournisseur OA oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = Le fournisseur OAuth2 ne supporte pas le type de subvention 'password' requis par l'utilisation d'un InnerScheme. eventAlreadyRegisteredExceptionMessage = Événement {0} déjà enregistré : {1} noEventRegisteredExceptionMessage = Aucun événement {0} enregistré : {1} -'@ +sessionsRequiredForFlashMessagesExceptionMessage = Des sessions sont nécessaires pour utiliser les messages Flash. +eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = La journalisation dans le Visualisateur d'événements n'est prise en charge que sous Windows. +nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = Un ScriptBlock non vide est requis pour la méthode de journalisation personnalisée. +requestLoggingAlreadyEnabledExceptionMessage = La journalisation des requêtes est déjà activée. +outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = La méthode de sortie fournie pour la journalisation des requêtes nécessite un ScriptBlock valide. +errorLoggingAlreadyEnabledExceptionMessage = La journalisation des erreurs est déjà activée. +nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = Un ScriptBlock non vide est requis pour la méthode de journalisation. +csrfMiddlewareNotInitializedExceptionMessage = Le Middleware CSRF n'a pas été initialisé. +sessionsRequiredForCsrfExceptionMessage = Des sessions sont nécessaires pour utiliser CSRF sauf si vous souhaitez utiliser des cookies. +middlewareNoLogicSuppliedExceptionMessage = [Middleware] : Aucune logique fournie dans le ScriptBlock. +parameterHasNoNameExceptionMessage = Le paramètre n'a pas de nom. Veuillez donner un nom à ce composant en utilisant le paramètre 'Name'. +reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = La fonctionnalité du composant réutilisable 'pathItems' n'est pas disponible dans OpenAPI v3.0. +noPropertiesMutuallyExclusiveExceptionMessage = Le paramètre 'NoProperties' est mutuellement exclusif avec 'Properties', 'MinProperties' et 'MaxProperties'. +discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = Le paramètre 'DiscriminatorMapping' ne peut être utilisé que lorsque 'DiscriminatorProperty' est présent. +discriminatorIncompatibleWithAllOfExceptionMessage = Le paramètre 'Discriminator' est incompatible avec 'allOf'. +typeCanOnlyBeAssociatedWithObjectExceptionMessage = Le type {0} ne peut être associé qu'à un Objet. +showPodeGuiOnlyAvailableOnWindowsExceptionMessage = Show-PodeGui est actuellement disponible uniquement pour Windows PowerShell et PowerShell 7+ sur Windows. +nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = Un nom est requis pour le point de terminaison si le paramètre RedirectTo est fourni. +clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = Les certificats client ne sont pris en charge que sur les points de terminaison HTTPS. +explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = Le mode TLS explicite n'est pris en charge que sur les points de terminaison SMTPS et TCPS. +acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = Le message de reconnaissance n'est pris en charge que sur les points de terminaison SMTP et TCP. +crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = La vérification de fin de message CRLF n'est prise en charge que sur les points de terminaison TCP. +mustBeRunningWithAdminPrivilegesExceptionMessage = Doit être exécuté avec des privilèges administratifs pour écouter sur des adresses autres que localhost. +certificateSuppliedForNonHttpsWssEndpointExceptionMessage = Certificat fourni pour un point de terminaison non HTTPS/WSS. +websocketsNotConfiguredForSignalMessagesExceptionMessage = Les WebSockets ne sont pas configurés pour envoyer des messages de signal. +noPathSuppliedForRouteExceptionMessage = Aucun chemin fourni pour la route. +accessRequiresAuthenticationOnRoutesExceptionMessage = L'accès nécessite une authentification sur les routes. +accessMethodDoesNotExistExceptionMessage = La méthode d'accès n'existe pas : {0}. +routeParameterNeedsValidScriptblockExceptionMessage = Le paramètre de la route nécessite un ScriptBlock valide et non vide. +noCommandsSuppliedToConvertToRoutesExceptionMessage = Aucune commande fournie pour convertir en routes. +nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = Un ScriptBlock non vide est requis pour créer une route de page. +sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSE ne peut être configuré que sur les requêtes avec une valeur d'en-tête Accept de text/event-stream. +sseConnectionNameRequiredExceptionMessage = Un nom de connexion SSE est requis, soit de -Name soit de $WebEvent.Sse.Name. +sseFailedToBroadcastExceptionMessage = SSE a échoué à diffuser en raison du niveau de diffusion SSE défini pour {0} : {1}. +podeNotInitializedExceptionMessage = Pode n'a pas été initialisé. +invalidTaskTypeExceptionMessage = Le type de tâche n'est pas valide, attendu [System.Threading.Tasks.Task] ou [hashtable]. +cannotLockValueTypeExceptionMessage = Impossible de verrouiller un [ValueTypes]. +cannotLockNullObjectExceptionMessage = Impossible de verrouiller un objet nul. +failedToAcquireLockExceptionMessage = Impossible d'acquérir un verrou sur l'objet. +cannotUnlockValueTypeExceptionMessage = Impossible de déverrouiller un [ValueTypes]. +cannotUnlockNullObjectExceptionMessage = Impossible de déverrouiller un objet nul. +sessionMiddlewareAlreadyInitializedExceptionMessage = Le Middleware de session a déjà été initialisé. +customSessionStorageMethodNotImplementedExceptionMessage = Le stockage de session personnalisé n'implémente pas la méthode requise '{0}()'. +secretRequiredForCustomSessionStorageExceptionMessage = Un secret est requis lors de l'utilisation d'un stockage de session personnalisé. +noSessionAvailableToSaveExceptionMessage = Aucune session disponible pour sauvegarder. +cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = Impossible de fournir un intervalle lorsque le paramètre 'Every' est défini sur None. +cannotSupplyIntervalForQuarterExceptionMessage = Impossible de fournir une valeur d'intervalle pour chaque trimestre. +cannotSupplyIntervalForYearExceptionMessage = Impossible de fournir une valeur d'intervalle pour chaque année. +'@ \ No newline at end of file diff --git a/src/Locales/it/Pode.psd1 b/src/Locales/it/Pode.psd1 index 32ecfe5ff..8d7c8ab58 100644 --- a/src/Locales/it/Pode.psd1 +++ b/src/Locales/it/Pode.psd1 @@ -58,7 +58,7 @@ invalidMiddlewareTypeExceptionMessage = Uno dei Middleware forniti è di un tipo hashtableMiddlewareNoLogicExceptionMessage = Un Middleware di tipo Hashtable fornito non ha una logica definita. invalidLogicTypeInHashtableMiddlewareExceptionMessage = Un Middleware di tipo Hashtable fornito ha un tipo di logica non valido. Previsto ScriptBlock, ma ottenuto: {0} scopedVariableAlreadyDefinedExceptionMessage = Variabile con ambito già definita: {0} -valueForUsingVariableNotFoundExceptionMessage = Impossibile trovare il valore per `$using:{0}`. +valueForUsingVariableNotFoundExceptionMessage = Impossibile trovare il valore per '$using:{0}'. unlockSecretRequiredExceptionMessage = È necessaria una proprietà 'UnlockSecret' quando si utilizza Microsoft.PowerShell.SecretStore unlockSecretButNoScriptBlockExceptionMessage = Segreto di sblocco fornito per tipo di cassaforte segreta personalizzata, ma nessun ScriptBlock di sblocco fornito. noUnlockScriptBlockForVaultExceptionMessage = Nessun ScriptBlock di sblocco fornito per sbloccare la cassaforte '{0}' @@ -116,5 +116,52 @@ oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = Il provider OAuth oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = Il provider OAuth2 non supporta il tipo di concessione 'password' richiesto dall'utilizzo di un InnerScheme. eventAlreadyRegisteredExceptionMessage = Evento {0} già registrato: {1} noEventRegisteredExceptionMessage = Nessun evento {0} registrato: {1} -'@ - +sessionsRequiredForFlashMessagesExceptionMessage = Le sessioni sono necessarie per utilizzare i messaggi Flash. +eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = La registrazione nel Visualizzatore eventi è supportata solo su Windows. +nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = È richiesto uno ScriptBlock non vuoto per il metodo di registrazione personalizzato. +requestLoggingAlreadyEnabledExceptionMessage = La registrazione delle richieste è già abilitata. +outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = Il metodo di output fornito per la registrazione delle richieste richiede uno ScriptBlock valido. +errorLoggingAlreadyEnabledExceptionMessage = La registrazione degli errori è già abilitata. +nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = È richiesto uno ScriptBlock non vuoto per il metodo di registrazione. +csrfMiddlewareNotInitializedExceptionMessage = Il Middleware CSRF non è stato inizializzato. +sessionsRequiredForCsrfExceptionMessage = Le sessioni sono necessarie per utilizzare CSRF a meno che non si vogliano usare i cookie. +middlewareNoLogicSuppliedExceptionMessage = [Middleware]: Nessuna logica fornita nello ScriptBlock. +parameterHasNoNameExceptionMessage = Il parametro non ha un nome. Assegna un nome a questo componente usando il parametro 'Name'. +reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = La funzione del componente riutilizzabile 'pathItems' non è disponibile in OpenAPI v3.0. +noPropertiesMutuallyExclusiveExceptionMessage = Il parametro 'NoProperties' è mutuamente esclusivo con 'Properties', 'MinProperties' e 'MaxProperties'. +discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = Il parametro 'DiscriminatorMapping' può essere utilizzato solo quando è presente 'DiscriminatorProperty'. +discriminatorIncompatibleWithAllOfExceptionMessage = Il parametro 'Discriminator' è incompatibile con 'allOf'. +typeCanOnlyBeAssociatedWithObjectExceptionMessage = Il tipo {0} può essere associato solo a un oggetto. +showPodeGuiOnlyAvailableOnWindowsExceptionMessage = Show-PodeGui è attualmente disponibile solo per Windows PowerShell e PowerShell 7+ su Windows. +nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = È richiesto un nome per l'endpoint se viene fornito il parametro RedirectTo. +clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = I certificati client sono supportati solo sugli endpoint HTTPS. +explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = La modalità TLS esplicita è supportata solo sugli endpoint SMTPS e TCPS. +acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = Il messaggio di conferma è supportato solo sugli endpoint SMTP e TCP. +crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = Il controllo di fine messaggio CRLF è supportato solo sugli endpoint TCP. +mustBeRunningWithAdminPrivilegesExceptionMessage = Deve essere eseguito con privilegi di amministratore per ascoltare gli indirizzi non locali. +certificateSuppliedForNonHttpsWssEndpointExceptionMessage = Certificato fornito per un endpoint non HTTPS/WSS. +websocketsNotConfiguredForSignalMessagesExceptionMessage = I WebSockets non sono configurati per inviare messaggi di segnale. +noPathSuppliedForRouteExceptionMessage = Nessun percorso fornito per la rotta. +accessRequiresAuthenticationOnRoutesExceptionMessage = L'accesso richiede l'autenticazione sulle rotte. +accessMethodDoesNotExistExceptionMessage = Il metodo di accesso non esiste: {0}. +routeParameterNeedsValidScriptblockExceptionMessage = Il parametro della rotta richiede uno ScriptBlock valido e non vuoto. +noCommandsSuppliedToConvertToRoutesExceptionMessage = Nessun comando fornito per convertirlo in rotte. +nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = È richiesto uno ScriptBlock non vuoto per creare una rotta di pagina. +sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSE può essere configurato solo su richieste con un valore di intestazione Accept di text/event-stream. +sseConnectionNameRequiredExceptionMessage = È richiesto un nome di connessione SSE, sia da -Name che da $WebEvent.Sse.Name. +sseFailedToBroadcastExceptionMessage = SSE non è riuscito a trasmettere a causa del livello di trasmissione SSE definito per {0}: {1}. +podeNotInitializedExceptionMessage = Pode non è stato inizializzato. +invalidTaskTypeExceptionMessage = Il tipo di attività non è valido, previsto [System.Threading.Tasks.Task] o [hashtable]. +cannotLockValueTypeExceptionMessage = Non è possibile bloccare un [ValueTypes]. +cannotLockNullObjectExceptionMessage = Non è possibile bloccare un oggetto nullo. +failedToAcquireLockExceptionMessage = Impossibile acquisire un blocco sull'oggetto. +cannotUnlockValueTypeExceptionMessage = Non è possibile sbloccare un [ValueTypes]. +cannotUnlockNullObjectExceptionMessage = Non è possibile sbloccare un oggetto nullo. +sessionMiddlewareAlreadyInitializedExceptionMessage = Il Middleware della sessione è già stato inizializzato. +customSessionStorageMethodNotImplementedExceptionMessage = L'archiviazione delle sessioni personalizzata non implementa il metodo richiesto '{0}()'. +secretRequiredForCustomSessionStorageExceptionMessage = È necessario un segreto quando si utilizza l'archiviazione delle sessioni personalizzata. +noSessionAvailableToSaveExceptionMessage = Nessuna sessione disponibile per il salvataggio. +cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = Impossibile fornire un intervallo quando il parametro 'Every' è impostato su None. +cannotSupplyIntervalForQuarterExceptionMessage = Impossibile fornire un valore di intervallo per ogni trimestre. +cannotSupplyIntervalForYearExceptionMessage = Impossibile fornire un valore di intervallo per ogni anno. +'@ \ No newline at end of file diff --git a/src/Locales/ja/Pode.psd1 b/src/Locales/ja/Pode.psd1 index fb35ec625..ef6a43934 100644 --- a/src/Locales/ja/Pode.psd1 +++ b/src/Locales/ja/Pode.psd1 @@ -58,7 +58,7 @@ invalidMiddlewareTypeExceptionMessage = 提供されたMiddlewaresの1つが無 hashtableMiddlewareNoLogicExceptionMessage = 提供されたHashtableミドルウェアにロジックが定義されていません。 invalidLogicTypeInHashtableMiddlewareExceptionMessage = 提供されたHashtableミドルウェアに無効なロジック型があります。ScriptBlockを期待しましたが、次を取得しました: {0} scopedVariableAlreadyDefinedExceptionMessage = スコープ付き変数が既に定義されています: {0} -valueForUsingVariableNotFoundExceptionMessage = `$using:{0}`の値が見つかりませんでした。 +valueForUsingVariableNotFoundExceptionMessage = '$using:{0}'の値が見つかりませんでした。 unlockSecretRequiredExceptionMessage = Microsoft.PowerShell.SecretStoreを使用する場合、'UnlockSecret'プロパティが必要です。 unlockSecretButNoScriptBlockExceptionMessage = カスタムシークレットボールトタイプに対してアンロックシークレットが提供されましたが、アンロックスクリプトブロックが提供されていません。 noUnlockScriptBlockForVaultExceptionMessage = ボールト'{0}'のロック解除に必要なスクリプトブロックが提供されていません。 @@ -86,7 +86,7 @@ routeAlreadyContainsCustomAccessExceptionMessage = ルート '[{0}] {1}' はす accessMethodNotExistExceptionMessage = アクセス方法が存在しません: {0} pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = PathItems機能はOpenAPI v3.0.xではサポートされていません。 nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = カスタム認証スキームには空でないScriptBlockが必要です。 -oauth2InnerSchemeInvalidExceptionMessage = OAuth2 InnerSchemeはBasicまたはFormのいずれかでなければなりませんが、取得したのは:{0} +oauth2InnerSchemeInvalidExceptionMessage = OAuth2 InnerSchemeはBasicまたはFormのいずれかでなければなりませんが、取得したのは: {0} sessionsRequiredForOAuth2WithPKCEExceptionMessage = PKCEを使用するOAuth2にはセッションが必要です。 oauth2ClientSecretRequiredExceptionMessage = PKCEを使用しない場合、OAuth2にはクライアントシークレットが必要です。 authMethodAlreadyDefinedExceptionMessage = 認証方法はすでに定義されています:{0} @@ -116,4 +116,52 @@ oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = OAuth2プロバ oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = OAuth2プロバイダーはInnerSchemeを使用するために必要な'password' grant_typeをサポートしていません。 eventAlreadyRegisteredExceptionMessage = {0}イベントはすでに登録されています:{1} noEventRegisteredExceptionMessage = 登録された{0}イベントはありません:{1} +sessionsRequiredForFlashMessagesExceptionMessage = フラッシュメッセージを使用するにはセッションが必要です。 +eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = イベントビューアーロギングはWindowsでのみサポートされています。 +nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = カスタムロギング出力メソッドには空でないScriptBlockが必要です。 +requestLoggingAlreadyEnabledExceptionMessage = リクエストロギングは既に有効になっています。 +outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = リクエストロギングのために提供された出力メソッドには有効なScriptBlockが必要です。 +errorLoggingAlreadyEnabledExceptionMessage = エラーロギングは既に有効になっています。 +nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = ロギングメソッドには空でないScriptBlockが必要です。 +csrfMiddlewareNotInitializedExceptionMessage = CSRFミドルウェアが初期化されていません。 +sessionsRequiredForCsrfExceptionMessage = クッキーを使用しない場合は、CSRFを使用するためにセッションが必要です。 +middlewareNoLogicSuppliedExceptionMessage = [ミドルウェア]: ScriptBlockにロジックが提供されていません。 +parameterHasNoNameExceptionMessage = パラメーターに名前がありません。このコンポーネントに'Name'パラメーターを使用して名前を付けてください。 +reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = OpenAPI v3.0では再利用可能なコンポーネント機能'pathItems'は使用できません。 +noPropertiesMutuallyExclusiveExceptionMessage = パラメーター'NoProperties'は'Properties'、'MinProperties'、および'MaxProperties'と相互排他的です。 +discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = パラメーター'DiscriminatorMapping'は'DiscriminatorProperty'が存在する場合にのみ使用できます。 +discriminatorIncompatibleWithAllOfExceptionMessage = パラメーター'Discriminator'は'allOf'と互換性がありません。 +typeCanOnlyBeAssociatedWithObjectExceptionMessage = タイプ{0}はオブジェクトにのみ関連付けることができます。 +showPodeGuiOnlyAvailableOnWindowsExceptionMessage = Show-PodeGuiは現在、Windows PowerShellおよびWindows上のPowerShell 7+でのみ利用可能です。 +nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = RedirectToパラメーターが提供されている場合、エンドポイントには名前が必要です。 +clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = クライアント証明書はHTTPSエンドポイントでのみサポートされています。 +explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = 明示的なTLSモードはSMTPSおよびTCPSエンドポイントでのみサポートされています。 +acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = 確認メッセージはSMTPおよびTCPエンドポイントでのみサポートされています。 +crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = CRLFメッセージ終了チェックはTCPエンドポイントでのみサポートされています。 +mustBeRunningWithAdminPrivilegesExceptionMessage = ローカルホスト以外のアドレスでリッスンするには管理者権限で実行する必要があります。 +certificateSuppliedForNonHttpsWssEndpointExceptionMessage = HTTPS/WSS以外のエンドポイントに提供された証明書。 +websocketsNotConfiguredForSignalMessagesExceptionMessage = WebSocketsはシグナルメッセージを送信するように構成されていません。 +noPathSuppliedForRouteExceptionMessage = ルートのパスが提供されていません。 +accessRequiresAuthenticationOnRoutesExceptionMessage = アクセスにはルート上の認証が必要です。 +accessMethodDoesNotExistExceptionMessage = アクセスメソッドが存在しません:{0}。 +routeParameterNeedsValidScriptblockExceptionMessage = ルートパラメーターには有効で空でないScriptBlockが必要です。 +noCommandsSuppliedToConvertToRoutesExceptionMessage = ルートに変換するためのコマンドが提供されていません。 +nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = ページルートを作成するには空でないScriptBlockが必要です。 +sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSEはAcceptヘッダー値がtext/event-streamのリクエストでのみ構成できます。 +sseConnectionNameRequiredExceptionMessage = -Nameまたは$WebEvent.Sse.NameからSSE接続名が必要です。 +sseFailedToBroadcastExceptionMessage = {0}のSSEブロードキャストレベルが定義されているため、SSEのブロードキャストに失敗しました: {1} +podeNotInitializedExceptionMessage = Podeが初期化されていません。 +invalidTaskTypeExceptionMessage = タスクタイプが無効です。予期されるタイプ:[System.Threading.Tasks.Task]または[hashtable] +cannotLockValueTypeExceptionMessage = [ValueTypes]をロックできません。 +cannotLockNullObjectExceptionMessage = nullオブジェクトをロックできません。 +failedToAcquireLockExceptionMessage = オブジェクトのロックを取得できませんでした。 +cannotUnlockValueTypeExceptionMessage = [ValueTypes]のロックを解除できません。 +cannotUnlockNullObjectExceptionMessage = nullオブジェクトのロックを解除できません。 +sessionMiddlewareAlreadyInitializedExceptionMessage = セッションミドルウェアは既に初期化されています。 +customSessionStorageMethodNotImplementedExceptionMessage = カスタムセッションストレージは必要なメソッド'{0}()'を実装していません。 +secretRequiredForCustomSessionStorageExceptionMessage = カスタムセッションストレージを使用する場合、シークレットが必要です。 +noSessionAvailableToSaveExceptionMessage = 保存するためのセッションが利用できません。 +cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = パラメーター'Every'がNoneに設定されている場合、間隔を提供できません。 +cannotSupplyIntervalForQuarterExceptionMessage = 四半期ごとの間隔値を提供できません。 +cannotSupplyIntervalForYearExceptionMessage = 毎年の間隔値を提供できません。 '@ diff --git a/src/Locales/kr/Pode.psd1 b/src/Locales/kr/Pode.psd1 index f78551e2c..d75ec5c19 100644 --- a/src/Locales/kr/Pode.psd1 +++ b/src/Locales/kr/Pode.psd1 @@ -58,7 +58,7 @@ invalidMiddlewareTypeExceptionMessage = 제공된 미들웨어 중 하나가 잘 hashtableMiddlewareNoLogicExceptionMessage = 제공된 Hashtable 미들웨어에는 정의된 논리가 없습니다. invalidLogicTypeInHashtableMiddlewareExceptionMessage = 제공된 Hashtable 미들웨어에 잘못된 논리 유형이 있습니다. 예상된 유형은 ScriptBlock이지만, 얻은 것은: {0} scopedVariableAlreadyDefinedExceptionMessage = 범위 지정 변수가 이미 정의되었습니다: {0} -valueForUsingVariableNotFoundExceptionMessage = `$using:{0}`에 대한 값을 찾을 수 없습니다. +valueForUsingVariableNotFoundExceptionMessage = '$using:{0}'에 대한 값을 찾을 수 없습니다. unlockSecretRequiredExceptionMessage = Microsoft.PowerShell.SecretStore를 사용할 때 'UnlockSecret' 속성이 필요합니다. unlockSecretButNoScriptBlockExceptionMessage = 사용자 정의 비밀 금고 유형에 대해 제공된 Unlock 비밀이지만, Unlock ScriptBlock이 제공되지 않았습니다. noUnlockScriptBlockForVaultExceptionMessage = 금고 '{0}'을(를) 해제하는 Unlock ScriptBlock이 제공되지 않았습니다. @@ -116,4 +116,52 @@ oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = OAuth2 공급자 oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = OAuth2 공급자는 InnerScheme을 사용하는 데 필요한 'password' 부여 유형을 지원하지 않습니다. eventAlreadyRegisteredExceptionMessage = {0} 이벤트가 이미 등록되었습니다: {1} noEventRegisteredExceptionMessage = 등록된 {0} 이벤트가 없습니다: {1} -'@ +sessionsRequiredForFlashMessagesExceptionMessage = 플래시 메시지를 사용하려면 세션이 필요합니다. +eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = 이벤트 뷰어 로깅은 Windows에서만 지원됩니다. +nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = 사용자 정의 로깅 출력 방법에는 비어 있지 않은 ScriptBlock이 필요합니다. +requestLoggingAlreadyEnabledExceptionMessage = 요청 로깅이 이미 활성화되었습니다. +outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = 요청 로깅에 제공된 출력 방법에는 유효한 ScriptBlock이 필요합니다. +errorLoggingAlreadyEnabledExceptionMessage = 오류 로깅이 이미 활성화되었습니다. +nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = 로깅 방법에는 비어 있지 않은 ScriptBlock이 필요합니다. +csrfMiddlewareNotInitializedExceptionMessage = CSRF 미들웨어가 초기화되지 않았습니다. +sessionsRequiredForCsrfExceptionMessage = 쿠키를 사용하지 않으려면 CSRF 사용을 위해 세션이 필요합니다. +middlewareNoLogicSuppliedExceptionMessage = [미들웨어]: ScriptBlock에 로직이 제공되지 않았습니다. +parameterHasNoNameExceptionMessage = 매개변수에 이름이 없습니다. 'Name' 매개변수를 사용하여 이 구성 요소에 이름을 지정하십시오. +reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = OpenAPI v3.0에서는 재사용 가능한 구성 요소 기능 'pathItems'를 사용할 수 없습니다. +noPropertiesMutuallyExclusiveExceptionMessage = 매개변수 'NoProperties'는 'Properties', 'MinProperties' 및 'MaxProperties'와 상호 배타적입니다. +discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = 매개변수 'DiscriminatorMapping'은 'DiscriminatorProperty'가 있을 때만 사용할 수 있습니다. +discriminatorIncompatibleWithAllOfExceptionMessage = 매개변수 'Discriminator'는 'allOf'와 호환되지 않습니다. +typeCanOnlyBeAssociatedWithObjectExceptionMessage = 유형 {0}는 객체와만 연관될 수 있습니다. +showPodeGuiOnlyAvailableOnWindowsExceptionMessage = Show-PodeGui는 현재 Windows PowerShell 및 Windows의 PowerShell 7+에서만 사용할 수 있습니다. +nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = RedirectTo 매개변수가 제공된 경우 엔드포인트에 이름이 필요합니다. +clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = 클라이언트 인증서는 HTTPS 엔드포인트에서만 지원됩니다. +explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = 명시적 TLS 모드는 SMTPS 및 TCPS 엔드포인트에서만 지원됩니다. +acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = 확인 메시지는 SMTP 및 TCP 엔드포인트에서만 지원됩니다. +crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = CRLF 메시지 끝 검사는 TCP 엔드포인트에서만 지원됩니다. +mustBeRunningWithAdminPrivilegesExceptionMessage = 관리자 권한으로 실행되어야 비로소 로컬호스트 주소가 아닌 주소를 청취할 수 있습니다. +certificateSuppliedForNonHttpsWssEndpointExceptionMessage = HTTPS/WSS가 아닌 엔드포인트에 제공된 인증서입니다. +websocketsNotConfiguredForSignalMessagesExceptionMessage = WebSockets가 신호 메시지를 보내도록 구성되지 않았습니다. +noPathSuppliedForRouteExceptionMessage = 경로에 대해 제공된 경로가 없습니다. +accessRequiresAuthenticationOnRoutesExceptionMessage = 경로에 대한 접근은 인증이 필요합니다. +accessMethodDoesNotExistExceptionMessage = 접근 방법이 존재하지 않습니다: {0}. +routeParameterNeedsValidScriptblockExceptionMessage = 경로 매개변수에는 유효하고 비어 있지 않은 ScriptBlock이 필요합니다. +noCommandsSuppliedToConvertToRoutesExceptionMessage = 경로로 변환할 명령이 제공되지 않았습니다. +nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = 페이지 경로를 생성하려면 비어 있지 않은 ScriptBlock이 필요합니다. +sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSE는 Accept 헤더 값이 text/event-stream인 요청에서만 구성할 수 있습니다. +sseConnectionNameRequiredExceptionMessage = -Name 또는 $WebEvent.Sse.Name에서 SSE 연결 이름이 필요합니다. +sseFailedToBroadcastExceptionMessage = {0}에 대해 정의된 SSE 브로드캐스트 수준으로 인해 SSE 브로드캐스트에 실패했습니다: {1} +podeNotInitializedExceptionMessage = Pode가 초기화되지 않았습니다. +invalidTaskTypeExceptionMessage = 작업 유형이 유효하지 않습니다. 예상된 유형: [System.Threading.Tasks.Task] 또는 [hashtable] +cannotLockValueTypeExceptionMessage = [ValueTypes]를 잠글 수 없습니다. +cannotLockNullObjectExceptionMessage = null 개체를 잠글 수 없습니다. +failedToAcquireLockExceptionMessage = 개체에 대한 잠금을 획득하지 못했습니다. +cannotUnlockValueTypeExceptionMessage = [ValueTypes]를 잠금 해제할 수 없습니다. +cannotUnlockNullObjectExceptionMessage = null 개체를 잠금 해제할 수 없습니다. +sessionMiddlewareAlreadyInitializedExceptionMessage = 세션 미들웨어가 이미 초기화되었습니다. +customSessionStorageMethodNotImplementedExceptionMessage = 사용자 정의 세션 저장소가 필요한 메서드 '{0}()'를 구현하지 않았습니다. +secretRequiredForCustomSessionStorageExceptionMessage = 사용자 정의 세션 저장소를 사용할 때는 비밀이 필요합니다. +noSessionAvailableToSaveExceptionMessage = 저장할 수 있는 세션이 없습니다. +cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = 매개변수 'Every'가 None으로 설정된 경우 간격을 제공할 수 없습니다. +cannotSupplyIntervalForQuarterExceptionMessage = 분기별 간격 값을 제공할 수 없습니다. +cannotSupplyIntervalForYearExceptionMessage = 매년 간격 값을 제공할 수 없습니다. +'@ \ No newline at end of file diff --git a/src/Locales/pl/Pode.psd1 b/src/Locales/pl/Pode.psd1 index 3ff8acb85..08b432c82 100644 --- a/src/Locales/pl/Pode.psd1 +++ b/src/Locales/pl/Pode.psd1 @@ -58,7 +58,7 @@ invalidMiddlewareTypeExceptionMessage = Jeden z dostarczonych Middleware jest ni hashtableMiddlewareNoLogicExceptionMessage = Dostarczone Middleware typu Hashtable nie ma zdefiniowanej logiki. invalidLogicTypeInHashtableMiddlewareExceptionMessage = Dostarczone Middleware typu Hashtable ma nieprawidłowy typ logiki. Oczekiwano ScriptBlock, ale otrzymano: {0} scopedVariableAlreadyDefinedExceptionMessage = Zmienna z zakresem już zdefiniowana: {0} -valueForUsingVariableNotFoundExceptionMessage = Nie można znaleźć wartości dla `$using:{0}`. +valueForUsingVariableNotFoundExceptionMessage = Nie można znaleźć wartości dla '$using:{0}'. unlockSecretRequiredExceptionMessage = Właściwość 'UnlockSecret' jest wymagana przy używaniu Microsoft.PowerShell.SecretStore unlockSecretButNoScriptBlockExceptionMessage = Podano tajemnicę odblokowania dla niestandardowego typu skarbca, ale nie podano ScriptBlock odblokowania. noUnlockScriptBlockForVaultExceptionMessage = Nie podano ScriptBlock odblokowania dla odblokowania skarbca '{0}' @@ -116,4 +116,52 @@ oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = Dostawca OAuth2 n oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = Dostawca OAuth2 nie obsługuje typu 'password' wymaganego przez InnerScheme. eventAlreadyRegisteredExceptionMessage = Wydarzenie {0} już zarejestrowane: {1} noEventRegisteredExceptionMessage = Brak zarejestrowanego wydarzenia {0}: {1} -'@ +sessionsRequiredForFlashMessagesExceptionMessage = Sesje są wymagane do używania wiadomości Flash. +eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = Rejestrowanie w Podglądzie zdarzeń jest obsługiwane tylko w systemie Windows. +nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = Metoda niestandardowego rejestrowania wymaga niepustego ScriptBlock. +requestLoggingAlreadyEnabledExceptionMessage = Rejestrowanie żądań jest już włączone. +outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = Podana metoda wyjściowa do rejestrowania żądań wymaga prawidłowego ScriptBlock. +errorLoggingAlreadyEnabledExceptionMessage = Rejestrowanie błędów jest już włączone. +nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = Metoda rejestrowania wymaga niepustego ScriptBlock. +csrfMiddlewareNotInitializedExceptionMessage = Middleware CSRF nie został zainicjowany. +sessionsRequiredForCsrfExceptionMessage = Sesje są wymagane do używania CSRF, chyba że chcesz używać ciasteczek. +middlewareNoLogicSuppliedExceptionMessage = [Middleware]: Nie dostarczono logiki w ScriptBlock. +parameterHasNoNameExceptionMessage = Parametr nie ma nazwy. Proszę nadać tej części nazwę za pomocą parametru 'Name'. +reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = Funkcja wielokrotnego użytku 'pathItems' nie jest dostępna w OpenAPI v3.0. +noPropertiesMutuallyExclusiveExceptionMessage = Parametr 'NoProperties' jest wzajemnie wykluczający się z 'Properties', 'MinProperties' i 'MaxProperties'. +discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = Parametr 'DiscriminatorMapping' może być używany tylko wtedy, gdy jest obecna właściwość 'DiscriminatorProperty'. +discriminatorIncompatibleWithAllOfExceptionMessage = Parametr 'Discriminator' jest niezgodny z 'allOf'. +typeCanOnlyBeAssociatedWithObjectExceptionMessage = Typ {0} może być powiązany tylko z obiektem. +showPodeGuiOnlyAvailableOnWindowsExceptionMessage = Show-PodeGui jest obecnie dostępne tylko dla Windows PowerShell i PowerShell 7+ w Windows. +nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = Nazwa jest wymagana dla punktu końcowego, jeśli podano parametr RedirectTo. +clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = Certyfikaty klienta są obsługiwane tylko na punktach końcowych HTTPS. +explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = Tryb TLS Explicity jest obsługiwany tylko na punktach końcowych SMTPS i TCPS. +acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = Komunikat potwierdzenia jest obsługiwany tylko na punktach końcowych SMTP i TCP. +crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = Sprawdzanie końca wiadomości CRLF jest obsługiwane tylko na punktach końcowych TCP. +mustBeRunningWithAdminPrivilegesExceptionMessage = Musisz mieć uprawnienia administratora, aby nasłuchiwać na adresach innych niż localhost. +certificateSuppliedForNonHttpsWssEndpointExceptionMessage = Certyfikat dostarczony dla punktu końcowego innego niż HTTPS/WSS. +websocketsNotConfiguredForSignalMessagesExceptionMessage = WebSockets nie zostały skonfigurowane do wysyłania wiadomości sygnałowych. +noPathSuppliedForRouteExceptionMessage = Nie podano ścieżki dla trasy. +accessRequiresAuthenticationOnRoutesExceptionMessage = Dostęp wymaga uwierzytelnienia na trasach. +accessMethodDoesNotExistExceptionMessage = Metoda dostępu nie istnieje: {0}. +routeParameterNeedsValidScriptblockExceptionMessage = Parametr trasy wymaga prawidłowego, niepustego ScriptBlock. +noCommandsSuppliedToConvertToRoutesExceptionMessage = Nie dostarczono żadnych poleceń do konwersji na trasy. +nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = Aby utworzyć trasę strony, wymagany jest niepusty ScriptBlock. +sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSE można skonfigurować tylko na żądaniach z wartością nagłówka Accept równą text/event-stream. +sseConnectionNameRequiredExceptionMessage = Wymagana jest nazwa połączenia SSE, z -Name lub $WebEvent.Sse.Name. +sseFailedToBroadcastExceptionMessage = SSE nie udało się przesłać z powodu zdefiniowanego poziomu przesyłania SSE dla {0}: {1} +podeNotInitializedExceptionMessage = Pode nie został zainicjowany. +invalidTaskTypeExceptionMessage = Typ zadania jest nieprawidłowy, oczekiwano [System.Threading.Tasks.Task] lub [hashtable] +cannotLockValueTypeExceptionMessage = Nie można zablokować [ValueTypes]. +cannotLockNullObjectExceptionMessage = Nie można zablokować pustego obiektu. +failedToAcquireLockExceptionMessage = Nie udało się uzyskać blokady na obiekcie. +cannotUnlockValueTypeExceptionMessage = Nie można odblokować [ValueTypes]. +cannotUnlockNullObjectExceptionMessage = Nie można odblokować pustego obiektu. +sessionMiddlewareAlreadyInitializedExceptionMessage = Middleware sesji został już zainicjowany. +customSessionStorageMethodNotImplementedExceptionMessage = Niestandardowe przechowywanie sesji nie implementuje wymaganego ''{0}()'' sposobu. +secretRequiredForCustomSessionStorageExceptionMessage = Podczas korzystania z niestandardowego przechowywania sesji wymagany jest sekret. +noSessionAvailableToSaveExceptionMessage = Brak dostępnej sesji do zapisania. +cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = Nie można dostarczyć interwału, gdy parametr 'Every' jest ustawiony na None. +cannotSupplyIntervalForQuarterExceptionMessage = Nie można dostarczyć wartości interwału dla każdego kwartału. +cannotSupplyIntervalForYearExceptionMessage = Nie można dostarczyć wartości interwału dla każdego roku. +'@ \ No newline at end of file diff --git a/src/Locales/pt/Pode.psd1 b/src/Locales/pt/Pode.psd1 index 280644726..9f1e5f315 100644 --- a/src/Locales/pt/Pode.psd1 +++ b/src/Locales/pt/Pode.psd1 @@ -58,7 +58,7 @@ invalidMiddlewareTypeExceptionMessage = Um dos Middlewares fornecidos é de um t hashtableMiddlewareNoLogicExceptionMessage = Um Middleware do tipo Hashtable fornecido não tem lógica definida. invalidLogicTypeInHashtableMiddlewareExceptionMessage = Um Middleware do tipo Hashtable fornecido tem um tipo de lógica inválido. Esperado ScriptBlock, mas obtido: {0} scopedVariableAlreadyDefinedExceptionMessage = Variável de escopo já definida: {0} -valueForUsingVariableNotFoundExceptionMessage = Valor para `$using:{0}` não pôde ser encontrado. +valueForUsingVariableNotFoundExceptionMessage = Valor para '$using:{0}' não pôde ser encontrado. unlockSecretRequiredExceptionMessage = É necessária uma propriedade 'UnlockSecret' ao usar Microsoft.PowerShell.SecretStore unlockSecretButNoScriptBlockExceptionMessage = Segredo de desbloqueio fornecido para tipo de Cofre Secreto personalizado, mas nenhum ScriptBlock de desbloqueio fornecido. noUnlockScriptBlockForVaultExceptionMessage = Nenhum ScriptBlock de desbloqueio fornecido para desbloquear o cofre '{0}' @@ -116,4 +116,52 @@ oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = O provedor OAuth2 oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = O provedor OAuth2 não suporta o grant_type 'password' necessário ao usar um InnerScheme. eventAlreadyRegisteredExceptionMessage = Evento {0} já registrado: {1} noEventRegisteredExceptionMessage = Nenhum evento {0} registrado: {1} -'@ +sessionsRequiredForFlashMessagesExceptionMessage = Sessões são necessárias para usar mensagens Flash. +eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = O registro no Visualizador de Eventos é suportado apenas no Windows. +nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = Um ScriptBlock não vazio é necessário para o método de registro personalizado. +requestLoggingAlreadyEnabledExceptionMessage = O registro de solicitações já está habilitado. +outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = O método de saída fornecido para o registro de solicitações requer um ScriptBlock válido. +errorLoggingAlreadyEnabledExceptionMessage = O registro de erros já está habilitado. +nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = Um ScriptBlock não vazio é necessário para o método de registro. +csrfMiddlewareNotInitializedExceptionMessage = O Middleware CSRF não foi inicializado. +sessionsRequiredForCsrfExceptionMessage = Sessões são necessárias para usar CSRF, a menos que você queira usar cookies. +middlewareNoLogicSuppliedExceptionMessage = [Middleware]: Nenhuma lógica fornecida no ScriptBlock. +parameterHasNoNameExceptionMessage = O parâmetro não tem nome. Dê um nome a este componente usando o parâmetro 'Name'. +reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = O recurso de componente reutilizável 'pathItems' não está disponível no OpenAPI v3.0. +noPropertiesMutuallyExclusiveExceptionMessage = O parâmetro 'NoProperties' é mutuamente exclusivo com 'Properties', 'MinProperties' e 'MaxProperties'. +discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = O parâmetro 'DiscriminatorMapping' só pode ser usado quando 'DiscriminatorProperty' está presente. +discriminatorIncompatibleWithAllOfExceptionMessage = O parâmetro 'Discriminator' é incompatível com 'allOf'. +typeCanOnlyBeAssociatedWithObjectExceptionMessage = O tipo {0} só pode ser associado a um Objeto. +showPodeGuiOnlyAvailableOnWindowsExceptionMessage = Show-PodeGui está atualmente disponível apenas para Windows PowerShell e PowerShell 7+ no Windows. +nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = Um nome é necessário para o endpoint se o parâmetro RedirectTo for fornecido. +clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = Certificados de cliente são suportados apenas em endpoints HTTPS. +explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = O modo TLS explícito é suportado apenas em endpoints SMTPS e TCPS. +acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = A mensagem de reconhecimento é suportada apenas em endpoints SMTP e TCP. +crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = A verificação de fim de mensagem CRLF é suportada apenas em endpoints TCP. +mustBeRunningWithAdminPrivilegesExceptionMessage = Deve estar sendo executado com privilégios de administrador para escutar endereços que não sejam localhost. +certificateSuppliedForNonHttpsWssEndpointExceptionMessage = Certificado fornecido para endpoint que não é HTTPS/WSS. +websocketsNotConfiguredForSignalMessagesExceptionMessage = WebSockets não estão configurados para enviar mensagens de sinal. +noPathSuppliedForRouteExceptionMessage = Nenhum caminho fornecido para a Rota. +accessRequiresAuthenticationOnRoutesExceptionMessage = O acesso requer autenticação nas rotas. +accessMethodDoesNotExistExceptionMessage = O método de acesso não existe: {0}. +routeParameterNeedsValidScriptblockExceptionMessage = O parâmetro da Rota precisa de um ScriptBlock válido e não vazio. +noCommandsSuppliedToConvertToRoutesExceptionMessage = Nenhum comando fornecido para converter em Rotas. +nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = Um ScriptBlock não vazio é necessário para criar uma Rota de Página. +sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSE só pode ser configurado em solicitações com um valor de cabeçalho Accept de text/event-stream. +sseConnectionNameRequiredExceptionMessage = Um nome de conexão SSE é necessário, seja de -Name ou $WebEvent.Sse.Name. +sseFailedToBroadcastExceptionMessage = SSE falhou em transmitir devido ao nível de transmissão SSE definido para {0}: {1}. +podeNotInitializedExceptionMessage = Pode não foi inicializado. +invalidTaskTypeExceptionMessage = O tipo de tarefa é inválido, esperado [System.Threading.Tasks.Task] ou [hashtable]. +cannotLockValueTypeExceptionMessage = Não é possível bloquear um [ValueTypes]. +cannotLockNullObjectExceptionMessage = Não é possível bloquear um objeto nulo. +failedToAcquireLockExceptionMessage = Falha ao adquirir um bloqueio no objeto. +cannotUnlockValueTypeExceptionMessage = Não é possível desbloquear um [ValueTypes]. +cannotUnlockNullObjectExceptionMessage = Não é possível desbloquear um objeto nulo. +sessionMiddlewareAlreadyInitializedExceptionMessage = O Middleware de Sessão já foi inicializado. +customSessionStorageMethodNotImplementedExceptionMessage = O armazenamento de sessão personalizado não implementa o método requerido '{0}()'. +secretRequiredForCustomSessionStorageExceptionMessage = Um segredo é necessário ao usar armazenamento de sessão personalizado. +noSessionAvailableToSaveExceptionMessage = Não há sessão disponível para salvar. +cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = Não é possível fornecer um intervalo quando o parâmetro 'Every' está definido como None. +cannotSupplyIntervalForQuarterExceptionMessage = Não é possível fornecer um valor de intervalo para cada trimestre. +cannotSupplyIntervalForYearExceptionMessage = Não é possível fornecer um valor de intervalo para cada ano. +'@ \ No newline at end of file diff --git a/src/Locales/zn/Pode.psd1 b/src/Locales/zn/Pode.psd1 index 26456390f..8d22b0ab4 100644 --- a/src/Locales/zn/Pode.psd1 +++ b/src/Locales/zn/Pode.psd1 @@ -31,7 +31,7 @@ invalidBase64JwtExceptionMessage = 在 JWT 中找到无效的 Base64 编码值 invalidJsonJwtExceptionMessage = 在 JWT 中找到无效的 JSON 值 unsupportedFunctionInServerlessContextExceptionMessage = 不支持在无服务器上下文中使用 {0} 函数。 invalidPathWildcardOrDirectoryExceptionMessage = 提供的路径不能是通配符或目录: {0} -invalidExceptionTypeExceptionMessage = 异常类型无效,应为 WebException 或 HttpRequestException,但得到了: {0} +invalidExceptionTypeExceptionMessage = 异常类型无效,应为 WebException 或 HttpRequestException, 但得到了: {0} pathToLoadNotFoundExceptionMessage = 未找到要加载的路径 {0}: {1} singleValueForIntervalExceptionMessage = 当使用间隔时,只能提供单个 {0} 值。 scriptErrorExceptionMessage = 脚本 '{0}' 在 {1} {2} (第 {3} 行) 第 {4} 个字符处执行 {5} 对象 '{7}' 的错误。类: {8} 基类: {9} @@ -54,11 +54,11 @@ openApiDocumentNotCompliantExceptionMessage = OpenAPI 文档不符合规范。 noComponentInDefinitionExceptionMessage = 定义中没有类型为 {0} 名称为 {1} 的组件。 methodPathAlreadyDefinedExceptionMessage = [{0}] {1}: 已经定义。 methodPathAlreadyDefinedForUrlExceptionMessage = [{0}] {1}: 已经为 {2} 定义。 -invalidMiddlewareTypeExceptionMessage = 提供的中间件之一是无效的类型。期望是 ScriptBlock 或 Hashtable,但得到了: {0} +invalidMiddlewareTypeExceptionMessage = 提供的中间件之一是无效的类型。期望是 ScriptBlock 或 Hashtable, 但得到了: {0} hashtableMiddlewareNoLogicExceptionMessage = 提供的 Hashtable 中间件没有定义逻辑。 -invalidLogicTypeInHashtableMiddlewareExceptionMessage = 提供的 Hashtable 中间件具有无效的逻辑类型。期望是 ScriptBlock,但得到了: {0} +invalidLogicTypeInHashtableMiddlewareExceptionMessage = 提供的 Hashtable 中间件具有无效的逻辑类型。期望是 ScriptBlockm, 但得到了: {0} scopedVariableAlreadyDefinedExceptionMessage = 已经定义了作用域变量: {0} -valueForUsingVariableNotFoundExceptionMessage = 未找到 `$using:{0}` 的值。 +valueForUsingVariableNotFoundExceptionMessage = 未找到 '$using:{0}' 的值。 unlockSecretRequiredExceptionMessage = 使用 Microsoft.PowerShell.SecretStore 时需要 'UnlockSecret' 属性。 unlockSecretButNoScriptBlockExceptionMessage = 为自定义秘密保险库类型提供了解锁密钥,但未提供解锁 ScriptBlock。 noUnlockScriptBlockForVaultExceptionMessage = 未为解锁保险库 '{0}' 提供解锁 ScriptBlock。 @@ -88,7 +88,7 @@ pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = 在 OpenAPI v3.0.x 中 nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = 自定义身份验证方案需要一个非空的 ScriptBlock。 oauth2InnerSchemeInvalidExceptionMessage = OAuth2 InnerScheme 只能是 Basic 或 Form 身份验证,但得到:{0} sessionsRequiredForOAuth2WithPKCEExceptionMessage = 使用 PKCE 时需要会话来使用 OAuth2 -oauth2ClientSecretRequiredExceptionMessage = 不使用 PKCE 时,OAuth2 需要一个客户端密钥。 +oauth2ClientSecretRequiredExceptionMessage = 不使用 PKCE 时, OAuth2 需要一个客户端密钥。 authMethodAlreadyDefinedExceptionMessage = 身份验证方法已定义:{0} invalidSchemeForAuthValidatorExceptionMessage = 提供的 '{0}' 方案用于 '{1}' 身份验证验证器,需要一个有效的 ScriptBlock。 sessionsRequiredForSessionPersistentAuthExceptionMessage = 使用会话持久性身份验证需要会话。 @@ -116,4 +116,52 @@ oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = OAuth2 提供程 oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = OAuth2 提供程序不支持使用 InnerScheme 所需的 'password' grant_type。 eventAlreadyRegisteredExceptionMessage = {0} 事件已注册:{1} noEventRegisteredExceptionMessage = 没有注册的 {0} 事件:{1} -'@ +sessionsRequiredForFlashMessagesExceptionMessage = 使用闪存消息需要会话。 +eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = 事件查看器日志记录仅支持Windows。 +nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = 自定义日志输出方法需要非空的ScriptBlock。 +requestLoggingAlreadyEnabledExceptionMessage = 请求日志记录已启用。 +outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = 请求日志记录提供的输出方法需要有效的ScriptBlock。 +errorLoggingAlreadyEnabledExceptionMessage = 错误日志记录已启用。 +nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = 日志记录方法需要非空的ScriptBlock。 +csrfMiddlewareNotInitializedExceptionMessage = CSRF中间件未初始化。 +sessionsRequiredForCsrfExceptionMessage = 使用CSRF需要会话, 除非您想使用Cookie。 +middlewareNoLogicSuppliedExceptionMessage = [中间件]: ScriptBlock中未提供逻辑。 +parameterHasNoNameExceptionMessage = 参数没有名称。请使用'Name'参数为此组件命名。 +reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = OpenAPI v3.0中不支持可重用组件功能'pathItems'。 +noPropertiesMutuallyExclusiveExceptionMessage = 参数'NoProperties'与'Properties'、'MinProperties'和'MaxProperties'互斥。 +discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = 参数'DiscriminatorMapping'只能在存在'DiscriminatorProperty'时使用。 +discriminatorIncompatibleWithAllOfExceptionMessage = 参数'Discriminator'与'allOf'不兼容。 +typeCanOnlyBeAssociatedWithObjectExceptionMessage = 类型{0}只能与对象关联。 +showPodeGuiOnlyAvailableOnWindowsExceptionMessage = Show-PodeGui目前仅适用于Windows PowerShell和Windows上的PowerShell 7+。 +nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = 如果提供了RedirectTo参数, 则需要为端点指定名称。 +clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = 客户端证书仅支持HTTPS端点。 +explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = 显式TLS模式仅支持SMTPS和TCPS端点。 +acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = 确认消息仅支持SMTP和TCP端点。 +crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = CRLF消息结束检查仅支持TCP端点。 +mustBeRunningWithAdminPrivilegesExceptionMessage = 必须以管理员权限运行才能监听非本地主机地址。 +certificateSuppliedForNonHttpsWssEndpointExceptionMessage = 为非HTTPS/WSS端点提供的证书。 +websocketsNotConfiguredForSignalMessagesExceptionMessage = WebSockets未配置为发送信号消息。 +noPathSuppliedForRouteExceptionMessage = 未为路由提供路径。 +accessRequiresAuthenticationOnRoutesExceptionMessage = 访问需要在路由上进行身份验证。 +accessMethodDoesNotExistExceptionMessage = 访问方法不存在:{0}。 +routeParameterNeedsValidScriptblockExceptionMessage = 路由参数需要有效且非空的ScriptBlock。 +noCommandsSuppliedToConvertToRoutesExceptionMessage = 未提供要转换为路由的命令。 +nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = 创建页面路由需要非空的ScriptBlock。 +sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSE只能在Accept标头值为text/event-stream的请求上配置。 +sseConnectionNameRequiredExceptionMessage = 需要SSE连接名称, 可以从-Name或$WebEvent.Sse.Name获取。 +sseFailedToBroadcastExceptionMessage = 由于为{0}定义的SSE广播级别, SSE广播失败: {1} +podeNotInitializedExceptionMessage = Pode未初始化。 +invalidTaskTypeExceptionMessage = 任务类型无效,预期类型为[System.Threading.Tasks.Task]或[hashtable]。 +cannotLockValueTypeExceptionMessage = 无法锁定[ValueTypes]。 +cannotLockNullObjectExceptionMessage = 无法锁定空对象。 +failedToAcquireLockExceptionMessage = 未能获取对象的锁。 +cannotUnlockValueTypeExceptionMessage = 无法解锁[ValueTypes]。 +cannotUnlockNullObjectExceptionMessage = 无法解锁空对象。 +sessionMiddlewareAlreadyInitializedExceptionMessage = 会话中间件已初始化。 +customSessionStorageMethodNotImplementedExceptionMessage = 自定义会话存储未实现所需的方法'{0}()'。 +secretRequiredForCustomSessionStorageExceptionMessage = 使用自定义会话存储时需要一个密钥。 +noSessionAvailableToSaveExceptionMessage = 没有可保存的会话。 +cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = 当参数'Every'设置为None时, 无法提供间隔。 +cannotSupplyIntervalForQuarterExceptionMessage = 无法为每季度提供间隔值。 +cannotSupplyIntervalForYearExceptionMessage = 无法为每年提供间隔值。 +'@ \ No newline at end of file diff --git a/src/Private/Authentication.ps1 b/src/Private/Authentication.ps1 index 97a812b21..6acaa91c4 100644 --- a/src/Private/Authentication.ps1 +++ b/src/Private/Authentication.ps1 @@ -2194,11 +2194,13 @@ function Expand-PodeAuthMerge { function Import-PodeAuthADModule { if (!(Test-PodeIsWindows)) { - throw $msgTable.adModuleWindowsOnlyExceptionMessage #'Active Directory module only available on Windows' + # Active Directory module only available on Windows + throw $msgTable.adModuleWindowsOnlyExceptionMessage } if (!(Test-PodeModuleInstalled -Name ActiveDirectory)) { - throw $msgTable.adModuleNotInstalledExceptionMessage #'Active Directory module is not installed' + # Active Directory module is not installed + throw $msgTable.adModuleNotInstalledExceptionMessage } Import-Module -Name ActiveDirectory -Force -ErrorAction Stop diff --git a/src/Private/AutoImport.ps1 b/src/Private/AutoImport.ps1 index 65f1f0b9e..3bf5f0828 100644 --- a/src/Private/AutoImport.ps1 +++ b/src/Private/AutoImport.ps1 @@ -177,7 +177,8 @@ function Import-PodeSecretManagementVaultsIntoRegistry { # error if SecretManagement module not installed if (!(Test-PodeModuleInstalled -Name Microsoft.PowerShell.SecretManagement)) { - throw $msgTable.secretManagementModuleNotInstalledExceptionMessage #'Microsoft.PowerShell.SecretManagement module not installed' + # Microsoft.PowerShell.SecretManagement module not installed + throw $msgTable.secretManagementModuleNotInstalledExceptionMessage } # import the module diff --git a/src/Private/Cryptography.ps1 b/src/Private/Cryptography.ps1 index c0f76de02..d77012fe2 100644 --- a/src/Private/Cryptography.ps1 +++ b/src/Private/Cryptography.ps1 @@ -19,7 +19,8 @@ function Invoke-PodeHMACSHA256Hash { } if ($SecretBytes.Length -eq 0) { - throw $msgTable.noSecretForHmac256ExceptionMessage #'No secret supplied for HMAC256 hash' + # No secret supplied for HMAC256 hash + throw $msgTable.noSecretForHmac256ExceptionMessage } $crypto = [System.Security.Cryptography.HMACSHA256]::new($SecretBytes) @@ -47,7 +48,8 @@ function Invoke-PodeHMACSHA384Hash { } if ($SecretBytes.Length -eq 0) { - throw $msgTable.noSecretForHmac384ExceptionMessage #'No secret supplied for HMAC384 hash' + # No secret supplied for HMAC384 hash + throw $msgTable.noSecretForHmac384ExceptionMessage } $crypto = [System.Security.Cryptography.HMACSHA384]::new($SecretBytes) @@ -75,7 +77,8 @@ function Invoke-PodeHMACSHA512Hash { } if ($SecretBytes.Length -eq 0) { - throw $msgTable.noSecretForHmac512ExceptionMessage #'No secret supplied for HMAC512 hash' + # No secret supplied for HMAC512 hash + throw $msgTable.noSecretForHmac512ExceptionMessage } $crypto = [System.Security.Cryptography.HMACSHA512]::new($SecretBytes) @@ -304,11 +307,13 @@ function New-PodeJwtSignature { ) if (($Algorithm -ine 'none') -and (($null -eq $SecretBytes) -or ($SecretBytes.Length -eq 0))) { - throw $msgTable.noSecretForJwtSignatureExceptionMessage #'No Secret supplied for JWT signature' + # No secret supplied for JWT signature + throw $msgTable.noSecretForJwtSignatureExceptionMessage } if (($Algorithm -ieq 'none') -and (($null -ne $secretBytes) -and ($SecretBytes.Length -gt 0))) { - throw $msgTable.noSecretExpectedForNoSignatureExceptionMessage #'Expected no secret to be supplied for no signature' + # Expected no secret to be supplied for no signature + throw $msgTable.noSecretExpectedForNoSignatureExceptionMessage } $sig = $null @@ -393,7 +398,8 @@ function ConvertFrom-PodeJwtBase64Value { $Value = [System.Text.Encoding]::UTF8.GetString([System.Convert]::FromBase64String($Value)) } catch { - throw $msgTable.invalidBase64JwtExceptionMessage #'Invalid Base64 encoded value found in JWT' + # Invalid Base64 encoded value found in JWT + throw $msgTable.invalidBase64JwtExceptionMessage } # return json @@ -401,6 +407,7 @@ function ConvertFrom-PodeJwtBase64Value { return ($Value | ConvertFrom-Json) } catch { - throw $msgTable.invalidJsonJwtExceptionMessage #'Invalid JSON value found in JWT' + # Invalid JSON value found in JWT + throw $msgTable.invalidJsonJwtExceptionMessage } } \ No newline at end of file diff --git a/src/Private/Middleware.ps1 b/src/Private/Middleware.ps1 index 8d621dcd1..182f38339 100644 --- a/src/Private/Middleware.ps1 +++ b/src/Private/Middleware.ps1 @@ -78,7 +78,8 @@ function New-PodeMiddlewareInternal { ) if (Test-PodeIsEmpty $ScriptBlock) { - throw $msgTable.noScriptBlockSuppliedExceptionMessage #'No ScriptBlock supplied' + # No ScriptBlock supplied + throw $msgTable.noScriptBlockSuppliedExceptionMessage } # if route is empty, set it to root @@ -392,7 +393,8 @@ function Initialize-PodeIISMiddleware { # fail if no iis token - because there should be! if ([string]::IsNullOrWhiteSpace($PodeContext.Server.IIS.Token)) { - throw $msgTable.iisAspnetcoreTokenMissingExceptionMessage #'IIS ASPNETCORE_TOKEN is missing' + # IIS ASPNETCORE_TOKEN is missing + throw $msgTable.iisAspnetcoreTokenMissingExceptionMessage } # add middleware to check every request has the token diff --git a/src/Private/OpenApi.ps1 b/src/Private/OpenApi.ps1 index d3e56cf8a..69c708a92 100644 --- a/src/Private/OpenApi.ps1 +++ b/src/Private/OpenApi.ps1 @@ -181,7 +181,8 @@ function ConvertTo-PodeOAObjectSchema { } } else { - Throw $msgTable.propertiesParameterWithoutNameExceptionMessage #'The Properties parameters cannot be used if the Property has no name' + # The Properties parameters cannot be used if the Property has no name + Throw $msgTable.propertiesParameterWithoutNameExceptionMessage } } else { @@ -373,7 +374,8 @@ function ConvertTo-PodeOASchemaProperty { $schema = [ordered]@{ } if (Test-PodeOAVersion -Version 3.0 -DefinitionTag $DefinitionTag ) { if ($Property.type -is [string[]]) { - throw $msgTable.multiTypePropertiesRequireOpenApi31ExceptionMessage#'Multi type properties requeired OpenApi Version 3.1 or above' + # Multi type properties requeired OpenApi Version 3.1 or above + throw $msgTable.multiTypePropertiesRequireOpenApi31ExceptionMessage } $schema['type'] = $Property.type.ToLower() } @@ -806,7 +808,8 @@ function Get-PodeOpenApiDefinitionInternal { $Definition = $PodeContext.Server.OpenAPI.Definitions[$DefinitionTag] if (!$Definition.Version) { - throw $msgTable.openApiVersionPropertyMandatoryExceptionMessage#'OpenApi Version property is mandatory' + # OpenApi Version property is mandatory + throw $msgTable.openApiVersionPropertyMandatoryExceptionMessage } $localEndpoint = $null # set the openapi version @@ -862,7 +865,8 @@ function Get-PodeOpenApiDefinitionInternal { $def['paths'] = [ordered]@{} if ($Definition.webhooks.count -gt 0) { if (Test-PodeOAVersion -Version 3.0 -DefinitionTag $DefinitionTag) { - throw $msgTable.webhooksFeatureNotSupportedInOpenApi30ExceptionMessage #'Webhooks feature is unsupported in OpenAPI v3.0.x' + # Webhooks feature is unsupported in OpenAPI v3.0.x + throw $msgTable.webhooksFeatureNotSupportedInOpenApi30ExceptionMessage } else { $keys = [string[]]$Definition.webhooks.Keys @@ -909,7 +913,8 @@ function Get-PodeOpenApiDefinitionInternal { } if ($components.pathItems.count -gt 0) { if (Test-PodeOAVersion -Version 3.0 -DefinitionTag $DefinitionTag) { - throw $msgTable.pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage #'Feature pathItems is unsupported in OpenAPI v3.0.x' + # Feature pathItems is unsupported in OpenAPI v3.0.x + throw $msgTable.pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage } else { $keys = [string[]]$components.pathItems.Keys @@ -1457,7 +1462,8 @@ function Resolve-PodeOAReference { $tmpProp += Resolve-PodeOAReference -DefinitionTag $DefinitionTag -ComponentSchema$comp } else { - throw $msgTable.unsupportedObjectExceptionMessage #'Unsupported object' + # Unsupported object + throw $msgTable.unsupportedObjectExceptionMessage } } } @@ -1472,10 +1478,12 @@ function Resolve-PodeOAReference { } elseif ($key -ieq 'oneof') { - throw $msgTable.validationOfOneOfSchemaNotSupportedExceptionMessage #'Validation of schema with oneof is not supported' + # Validation of schema with oneof is not supported + throw $msgTable.validationOfOneOfSchemaNotSupportedExceptionMessage } elseif ($key -ieq 'anyof') { - throw $msgTable.validationOfAnyOfSchemaNotSupportedExceptionMessage #'Validation of schema with anyof is not supported' + # Validation of schema with anyof is not supported + throw $msgTable.validationOfAnyOfSchemaNotSupportedExceptionMessage } } elseif ($ComponentSchema.properties[$key].type -eq 'object') { @@ -1557,7 +1565,8 @@ function New-PodeOAPropertyInternal { $param.type = $Params.type } else { - throw $msgTable.cannotCreatePropertyWithoutTypeExceptionMessage #'Cannot create the property no type is defined' + # Cannot create the property no type is defined + throw $msgTable.cannotCreatePropertyWithoutTypeExceptionMessage } } @@ -1639,7 +1648,8 @@ function New-PodeOAPropertyInternal { if ($Params.ExternalDocs) { $param.externalDocs = $Params.ExternalDocs } if ($Params.NoAdditionalProperties.IsPresent -and $Params.AdditionalProperties) { - throw $msgTable.paramsNoAdditionalPropertiesExclusiveExceptionMessage #'Params -NoAdditionalProperties and -AdditionalProperties are mutually exclusive' + # Params -NoAdditionalProperties and -AdditionalProperties are mutually exclusive + throw $msgTable.paramsNoAdditionalPropertiesExclusiveExceptionMessage } else { if ($Params.NoAdditionalProperties.IsPresent) { $param.additionalProperties = $false } @@ -1699,7 +1709,8 @@ function ConvertTo-PodeOAHeaderProperty { } } else { - throw $msgTable.headerMustHaveNameInEncodingContextExceptionMessage #'Header requires a name when used in an encoding context' + # Header requires a name when used in an encoding context + throw $msgTable.headerMustHaveNameInEncodingContextExceptionMessage } } @@ -1814,7 +1825,8 @@ function New-PodeOResponseInternal { $Description = Get-PodeStatusDescription -StatusCode $Params.StatusCode } else { - throw $msgTable.descriptionRequiredExceptionMessage #'A Description is required' + # A Description is required + throw $msgTable.descriptionRequiredExceptionMessage } } else { @@ -1984,7 +1996,8 @@ function Test-PodeOADefinitionInternal { } # Throw an error indicating non-compliance with OpenAPI standards - throw $msgTable.openApiDocumentNotCompliantExceptionMessage #'OpenAPI document compliance issues' + # OpenAPI document compliance issues + throw $msgTable.openApiDocumentNotCompliantExceptionMessage } } diff --git a/src/Private/Routes.ps1 b/src/Private/Routes.ps1 index 37501e82c..af7008fde 100644 --- a/src/Private/Routes.ps1 +++ b/src/Private/Routes.ps1 @@ -658,11 +658,13 @@ function ConvertTo-PodeMiddleware { # if middleware is hashtable, ensure the keys are valid (logic is a scriptblock) if ($mid -is [hashtable]) { if ($null -eq $mid.Logic) { - throw $msgTable.hashtableMiddlewareNoLogicExceptionMessage#'A Hashtable Middleware supplied has no Logic defined' + # A Hashtable Middleware supplied has no Logic defined + throw $msgTable.hashtableMiddlewareNoLogicExceptionMessage } if ($mid.Logic -isnot [scriptblock]) { - throw ($msgTable.invalidLogicTypeInHashtableMiddlewareExceptionMessage -f $mid.Logic.GetType().Name)#"A Hashtable Middleware supplied has an invalid Logic type. Expected ScriptBlock, but got: $($mid.Logic.GetType().Name)" + # A Hashtable Middleware supplied has an invalid Logic type. Expected ScriptBlock, but got: {0} + throw ($msgTable.invalidLogicTypeInHashtableMiddlewareExceptionMessage -f $mid.Logic.GetType().Name) } } } diff --git a/src/Private/Secrets.ps1 b/src/Private/Secrets.ps1 index 1f80e137f..7fa49851c 100644 --- a/src/Private/Secrets.ps1 +++ b/src/Private/Secrets.ps1 @@ -45,7 +45,8 @@ function Register-PodeSecretManagementVault { # check if we have an unlock password for local secret store if ($isSecretStore) { if ([string]::IsNullOrEmpty($VaultConfig.Unlock.Secret)) { - throw $msgTable.unlockSecretRequiredExceptionMessage#'An "-UnlockSecret" is required when using Microsoft.PowerShell.SecretStore' + # An 'UnlockSecret' is required when using Microsoft.PowerShell.SecretStore + throw $msgTable.unlockSecretRequiredExceptionMessage } } @@ -145,7 +146,8 @@ function Register-PodeSecretCustomVault { # unlock secret with no script? if ($VaultConfig.Unlock.Enabled -and (Test-PodeIsEmpty $UnlockScriptBlock)) { - throw $msgTable.unlockSecretButNoScriptBlockExceptionMessage #'Unlock secret supplied for custom Secret Vault type, but not Unlock ScriptBlock supplied' + # Unlock secret supplied for custom Secret Vault type, but not Unlock ScriptBlock supplied + throw $msgTable.unlockSecretButNoScriptBlockExceptionMessage } # all is good, so set the config diff --git a/src/Private/Security.ps1 b/src/Private/Security.ps1 index f5691f6bb..bd74f585d 100644 --- a/src/Private/Security.ps1 +++ b/src/Private/Security.ps1 @@ -850,7 +850,8 @@ function Find-PodeCertificateInCertStore { # fail if not windows if (!(Test-PodeIsWindows)) { - throw $msgTable.certificateThumbprintsNameSupportedOnWindowsExceptionMessage #'Certificate Thumbprints/Name are only supported on Windows' + # Certificate Thumbprints/Name are only supported on Windows + throw $msgTable.certificateThumbprintsNameSupportedOnWindowsExceptionMessage } # open the currentuser\my store diff --git a/src/Private/ServiceServer.ps1 b/src/Private/ServiceServer.ps1 index e1e66491e..d0058d83c 100644 --- a/src/Private/ServiceServer.ps1 +++ b/src/Private/ServiceServer.ps1 @@ -1,7 +1,8 @@ function Start-PodeServiceServer { # ensure we have service handlers if (Test-PodeIsEmpty (Get-PodeHandler -Type Service)) { - throw $msgTable.noServiceHandlersDefinedExceptionMessage #'No Service handlers have been defined' + # No Service handlers have been defined + throw $msgTable.noServiceHandlersDefinedExceptionMessage } # state we're running diff --git a/src/Private/Sessions.ps1 b/src/Private/Sessions.ps1 index 43074e223..496ed1820 100644 --- a/src/Private/Sessions.ps1 +++ b/src/Private/Sessions.ps1 @@ -40,7 +40,8 @@ function Get-PodeSessionFullId { function Set-PodeSession { if ($null -eq $WebEvent.Session) { - throw $msgTable.noSessionToSetOnResponseExceptionMessage #'there is no session available to set on the response' + # There is no session available to set on the response + throw $msgTable.noSessionToSetOnResponseExceptionMessage } # convert secret to strict mode @@ -137,7 +138,8 @@ function Revoke-PodeSession { function Set-PodeSessionDataHash { if ($null -eq $WebEvent.Session) { - throw $msgTable.noSessionToCalculateDataHashExceptionMessage #'No session available to calculate data hash' + # No session available to calculate data hash + throw $msgTable.noSessionToCalculateDataHashExceptionMessage } if (($null -eq $WebEvent.Session.Data) -or ($WebEvent.Session.Data.Count -eq 0)) { diff --git a/src/Private/SmtpServer.ps1 b/src/Private/SmtpServer.ps1 index e434504c1..43f7d702b 100644 --- a/src/Private/SmtpServer.ps1 +++ b/src/Private/SmtpServer.ps1 @@ -3,7 +3,8 @@ using namespace Pode function Start-PodeSmtpServer { # ensure we have smtp handlers if (Test-PodeIsEmpty (Get-PodeHandler -Type Smtp)) { - throw $msgTable.noSmtpHandlersDefinedExceptionMessage #'No SMTP handlers have been defined' + # No SMTP handlers have been defined + throw $msgTable.noSmtpHandlersDefinedExceptionMessage } # work out which endpoints to listen on diff --git a/src/Public/Access.ps1 b/src/Public/Access.ps1 index 4a949031b..2e942aa29 100644 --- a/src/Public/Access.ps1 +++ b/src/Public/Access.ps1 @@ -69,7 +69,8 @@ function New-PodeAccessScheme { # for custom access a validator is mandatory if ($Custom) { if ([string]::IsNullOrWhiteSpace($Path) -and (Test-PodeIsEmpty $ScriptBlock)) { - throw $msgTable.pathOrScriptBlockRequiredExceptionMessage #'A Path or ScriptBlock is required for sourcing the Custom access values' + # A Path or ScriptBlock is required for sourcing the Custom access values + throw $msgTable.pathOrScriptBlockRequiredExceptionMessage } } diff --git a/src/Public/Authentication.ps1 b/src/Public/Authentication.ps1 index 681809522..fdfa0f8af 100644 --- a/src/Public/Authentication.ps1 +++ b/src/Public/Authentication.ps1 @@ -159,7 +159,8 @@ function New-PodeAuthScheme { [Parameter(Mandatory = $true, ParameterSetName = 'Custom')] [ValidateScript({ if (Test-PodeIsEmpty $_) { - throw $msgTable.nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage #'A non-empty ScriptBlock is required for the Custom authentication scheme' + # A non-empty ScriptBlock is required for the Custom authentication scheme + throw $msgTable.nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage } return $true @@ -408,19 +409,23 @@ function New-PodeAuthScheme { 'oauth2' { if (($null -ne $InnerScheme) -and ($InnerScheme.Name -inotin @('basic', 'form'))) { - throw ($msgTable.oauth2InnerSchemeInvalidExceptionMessage -f $InnerScheme.Name) #"OAuth2 InnerScheme can only be one of either Basic or Form authentication, but got: $($InnerScheme.Name)" + # OAuth2 InnerScheme can only be one of either Basic or Form authentication, but got: {0} + throw ($msgTable.oauth2InnerSchemeInvalidExceptionMessage -f $InnerScheme.Name) } if (($null -eq $InnerScheme) -and [string]::IsNullOrWhiteSpace($AuthoriseUrl)) { - throw $msgTable.oauth2RequiresAuthorizeUrlExceptionMessage #'OAuth2 requires an Authorise URL to be supplied' + #OAuth2 requires an Authorise URL to be supplied + throw $msgTable.oauth2RequiresAuthorizeUrlExceptionMessage } if ($UsePKCE -and !(Test-PodeSessionsEnabled)) { - throw $msgTable.sessionsRequiredForOAuth2WithPKCEExceptionMessage #'Sessions are required to use OAuth2 with PKCE' + # Sessions are required to use OAuth2 with PKCE + throw $msgTable.sessionsRequiredForOAuth2WithPKCEExceptionMessage } if (!$UsePKCE -and [string]::IsNullOrEmpty($ClientSecret)) { - throw $msgTable.oauth2ClientSecretRequiredExceptionMessage #'OAuth2 requires a Client Secret when not using PKCE' + # OAuth2 requires a Client Secret when not using PKCE + throw $msgTable.oauth2ClientSecretRequiredExceptionMessage } return @{ Name = 'OAuth2' @@ -717,7 +722,8 @@ function Add-PodeAuth { [Parameter(Mandatory = $true)] [ValidateScript({ if (Test-PodeIsEmpty $_) { - throw $msgTable.nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage #'A non-empty ScriptBlock is required for the authentication method' + # A non-empty ScriptBlock is required for the authentication method + throw $msgTable.nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage } return $true @@ -750,17 +756,20 @@ function Add-PodeAuth { # ensure the name doesn't already exist if (Test-PodeAuthExists -Name $Name) { - throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) # "Authentication method already defined: $($Name)" + # Authentication method already defined: {0} + throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) } # ensure the Scheme contains a scriptblock if (Test-PodeIsEmpty $Scheme.ScriptBlock) { - throw ($msgTable.schemeRequiresValidScriptBlockExceptionMessage -f $Name) # "The supplied '$($Scheme.Name)' Scheme for the '$($Name)' authentication validator requires a valid ScriptBlock" + # The supplied scheme for the '{0}' authentication validator requires a valid ScriptBlock + throw ($msgTable.schemeRequiresValidScriptBlockExceptionMessage -f $Name) } # if we're using sessions, ensure sessions have been setup if (!$Sessionless -and !(Test-PodeSessionsEnabled)) { - throw $msgTable.sessionsRequiredForSessionPersistentAuthExceptionMessage # 'Sessions are required to use session persistent authentication' + # Sessions are required to use session persistent authentication + throw $msgTable.sessionsRequiredForSessionPersistentAuthExceptionMessage } # check for scoped vars @@ -902,7 +911,8 @@ function Merge-PodeAuth { # ensure the name doesn't already exist if (Test-PodeAuthExists -Name $Name) { - throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) # "Authentication method already defined: $($Name)" + # Authentication method already defined: { 0 } + throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) } # ensure all the auth methods exist @@ -937,7 +947,8 @@ function Merge-PodeAuth { # if we're using sessions, ensure sessions have been setup if (!$Sessionless -and !(Test-PodeSessionsEnabled)) { - throw $msgTable.sessionsRequiredForSessionPersistentAuthExceptionMessage #'Sessions are required to use session persistent authentication' + # Sessions are required to use session persistent authentication + throw $msgTable.sessionsRequiredForSessionPersistentAuthExceptionMessage } # check failure url from default @@ -963,7 +974,8 @@ function Merge-PodeAuth { # deal with using vars in scriptblock if (($Valid -ieq 'all') -and [string]::IsNullOrEmpty($MergeDefault)) { if ($null -eq $ScriptBlock) { - throw $msgTable.scriptBlockRequiredForMergingUsersExceptionMessage # 'A Scriptblock for merging multiple authenticated users into 1 object is required When Valid is All' + # A Scriptblock for merging multiple authenticated users into 1 object is required When Valid is All + throw $msgTable.scriptBlockRequiredForMergingUsersExceptionMessage } $ScriptBlock, $usingVars = Convert-PodeScopedVariables -ScriptBlock $ScriptBlock -PSSession $PSCmdlet.SessionState @@ -1264,17 +1276,20 @@ function Add-PodeAuthWindowsAd { # ensure the name doesn't already exist if (Test-PodeAuthExists -Name $Name) { - throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) # "Windows AD Authentication method already defined: $($Name)" + # Authentication method already defined: {0} + throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) } # ensure the Scheme contains a scriptblock if (Test-PodeIsEmpty $Scheme.ScriptBlock) { - throw ($msgTable.schemeRequiresValidScriptBlockExceptionMessage -f $Name) # "The supplied Scheme for the '$($Name)' Windows AD authentication validator requires a valid ScriptBlock" + # The supplied Scheme for the '$($Name)' Windows AD authentication validator requires a valid ScriptBlock + throw ($msgTable.schemeRequiresValidScriptBlockExceptionMessage -f $Name) } # if we're using sessions, ensure sessions have been setup if (!$Sessionless -and !(Test-PodeSessionsEnabled)) { - throw $msgTable.sessionsRequiredForSessionPersistentAuthExceptionMessage #'Sessions are required to use session persistent authentication' + # Sessions are required to use session persistent authentication + throw $msgTable.sessionsRequiredForSessionPersistentAuthExceptionMessage } # if AD module set, ensure we're on windows and the module is available, then import/export it @@ -1287,7 +1302,8 @@ function Add-PodeAuthWindowsAd { $Fqdn = Get-PodeAuthDomainName if ([string]::IsNullOrWhiteSpace($Fqdn)) { - throw $msgTable.noDomainServerNameForWindowsAdAuthExceptionMessage #'No domain server name has been supplied for Windows AD authentication' + # No domain server name has been supplied for Windows AD authentication + throw $msgTable.noDomainServerNameForWindowsAdAuthExceptionMessage } } @@ -1400,12 +1416,14 @@ function Add-PodeAuthSession { # if sessions haven't been setup, error if (!(Test-PodeSessionsEnabled)) { - throw $msgTable.sessionsNotConfiguredExceptionMessage #'Sessions have not been configured' + # Sessions have not been configured + throw $msgTable.sessionsNotConfiguredExceptionMessage } # ensure the name doesn't already exist if (Test-PodeAuthExists -Name $Name) { - throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) # "Authentication method already defined: $($Name)" + # Authentication method already defined: { 0 } + throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) } # if we have a scriptblock, deal with using vars @@ -1685,12 +1703,14 @@ function Add-PodeAuthIIS { # ensure we're on Windows! if (!(Test-PodeIsWindows)) { - throw $msgTable.iisAuthSupportIsForWindowsOnlyExceptionMessage # 'IIS Authentication support is for Windows only' + # IIS Authentication support is for Windows only + throw $msgTable.iisAuthSupportIsForWindowsOnlyExceptionMessage } # ensure the name doesn't already exist if (Test-PodeAuthExists -Name $Name) { - throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) # "IIS Authentication method already defined: $($Name)" + # Authentication method already defined: {0} + throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) } # if AD module set, ensure we're on windows and the module is available, then import/export it @@ -1848,17 +1868,20 @@ function Add-PodeAuthUserFile { # ensure the name doesn't already exist if (Test-PodeAuthExists -Name $Name) { - throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) # "User File Authentication method already defined: $($Name)" + # Authentication method already defined: {0} + throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) } # ensure the Scheme contains a scriptblock if (Test-PodeIsEmpty $Scheme.ScriptBlock) { - throw ($msgTable.schemeRequiresValidScriptBlockExceptionMessage -f $Name) #"The supplied Scheme for the '$($Name)' User File authentication validator requires a valid ScriptBlock" + # The supplied scheme for the '{0}' authentication validator requires a valid ScriptBlock. + throw ($msgTable.schemeRequiresValidScriptBlockExceptionMessage -f $Name) } # if we're using sessions, ensure sessions have been setup if (!$Sessionless -and !(Test-PodeSessionsEnabled)) { - throw $msgTable.sessionsRequiredForSessionPersistentAuthExceptionMessage #'Sessions are required to use session persistent authentication' + # Sessions are required to use session persistent authentication + throw $msgTable.sessionsRequiredForSessionPersistentAuthExceptionMessage } # set the file path if not passed @@ -1871,7 +1894,8 @@ function Add-PodeAuthUserFile { # ensure the user file exists if (!(Test-PodePath -Path $FilePath -NoStatus -FailOnDirectory)) { - throw ($msgTable.userFileDoesNotExistExceptionMessage -f $FilePath) # "The user file does not exist: $($FilePath)" + # The user file does not exist: {0} + throw ($msgTable.userFileDoesNotExistExceptionMessage -f $FilePath) } # if we have a scriptblock, deal with using vars @@ -2006,22 +2030,26 @@ function Add-PodeAuthWindowsLocal { # ensure we're on Windows! if (!(Test-PodeIsWindows)) { - throw $msgTable.windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage #'Windows Local Authentication support is for Windows only' + # Windows Local Authentication support is for Windows only + throw $msgTable.windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage } # ensure the name doesn't already exist if (Test-PodeAuthExists -Name $Name) { - throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) # "Windows Local Authentication method already defined: $($Name)" + # Authentication method already defined: {0} + throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) } # ensure the Scheme contains a scriptblock if (Test-PodeIsEmpty $Scheme.ScriptBlock) { - throw ($msgTable.schemeRequiresValidScriptBlockExceptionMessage -f $Name) # "The supplied Scheme for the '$($Name)' Windows Local authentication validator requires a valid ScriptBlock" + # The supplied scheme for the '{0}' authentication validator requires a valid ScriptBlock. + throw ($msgTable.schemeRequiresValidScriptBlockExceptionMessage -f $Name) } # if we're using sessions, ensure sessions have been setup if (!$Sessionless -and !(Test-PodeSessionsEnabled)) { - throw $msgTable.sessionsRequiredForSessionPersistentAuthExceptionMessage #'Sessions are required to use session persistent authentication' + # Sessions are required to use session persistent authentication + throw $msgTable.sessionsRequiredForSessionPersistentAuthExceptionMessage } # if we have a scriptblock, deal with using vars @@ -2097,7 +2125,8 @@ function ConvertTo-PodeJwt { # validate header if ([string]::IsNullOrWhiteSpace($Header.alg)) { - throw $msgTable.noAlgorithmInJwtHeaderExceptionMessage #'No algorithm supplied in JWT Header' + # No algorithm supplied in JWT Header + throw $msgTable.noAlgorithmInJwtHeaderExceptionMessage } # convert the header @@ -2161,13 +2190,15 @@ function ConvertFrom-PodeJwt { # check number of parts (should be 3) if ($parts.Length -ne 3) { - throw $msgTable.invalidJwtSuppliedExceptionMessage #'Invalid JWT supplied' + # Invalid JWT supplied + throw $msgTable.invalidJwtSuppliedExceptionMessage } # convert to header $header = ConvertFrom-PodeJwtBase64Value -Value $parts[0] if ([string]::IsNullOrWhiteSpace($header.alg)) { - throw $msgTable.invalidJwtHeaderAlgorithmSuppliedExceptionMessage # Invalid JWT header algorithm supplied' + # Invalid JWT header algorithm supplied + throw $msgTable.invalidJwtHeaderAlgorithmSuppliedExceptionMessage } # convert to payload @@ -2184,15 +2215,18 @@ function ConvertFrom-PodeJwt { $isNoneAlg = ($header.alg -ieq 'none') if ([string]::IsNullOrWhiteSpace($signature) -and !$isNoneAlg) { - throw ($msgTable.noJwtSignatureForAlgorithmExceptionMessage -f $header.alg) # "No JWT signature supplied for $($header.alg)" + # No JWT signature supplied for {0} + throw ($msgTable.noJwtSignatureForAlgorithmExceptionMessage -f $header.alg) } if (![string]::IsNullOrWhiteSpace($signature) -and $isNoneAlg) { - throw $msgTable.expectedNoJwtSignatureSuppliedExceptionMessage # 'Expected no JWT signature to be supplied' + # Expected no JWT signature to be supplied + throw $msgTable.expectedNoJwtSignatureSuppliedExceptionMessage } if ($isNoneAlg -and ($null -ne $Secret) -and ($Secret.Length -gt 0)) { - throw $msgTable.expectedNoJwtSignatureSuppliedExceptionMessage # 'Expected no JWT signature to be supplied' + # Expected no JWT signature to be supplied + throw $msgTable.expectedNoJwtSignatureSuppliedExceptionMessage } if ($isNoneAlg) { @@ -2208,7 +2242,8 @@ function ConvertFrom-PodeJwt { $sig = New-PodeJwtSignature -Algorithm $header.alg -Token $sig -SecretBytes $Secret if ($sig -ne $parts[2]) { - throw $msgTable.invalidJwtSignatureSuppliedExceptionMessage # 'Invalid JWT signature supplied' + # Invalid JWT signature supplied + throw $msgTable.invalidJwtSignatureSuppliedExceptionMessage } # it's valid return the payload! @@ -2247,14 +2282,16 @@ function Test-PodeJwt { # validate expiry if (![string]::IsNullOrWhiteSpace($Payload.exp)) { if ($now -gt $unixStart.AddSeconds($Payload.exp)) { - throw $msgTable.jwtExpiredExceptionMessage # 'The JWT has expired' + # The JWT has expired + throw $msgTable.jwtExpiredExceptionMessage } } # validate not-before if (![string]::IsNullOrWhiteSpace($Payload.nbf)) { if ($now -lt $unixStart.AddSeconds($Payload.nbf)) { - throw $msgTable.jwtNotYetValidExceptionMessage #'The JWT is not yet valid for use' + # The JWT is not yet valid for use + throw $msgTable.jwtNotYetValidExceptionMessage } } } @@ -2367,12 +2404,14 @@ function ConvertFrom-PodeOIDCDiscovery { # check it supports the code response_type if ($config.response_types_supported -inotcontains 'code') { - throw $msgTable.oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage # "The OAuth2 provider does not support the 'code' response_type" + # The OAuth2 provider does not support the 'code' response_type + throw $msgTable.oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage } # can we have an InnerScheme? if (($null -ne $InnerScheme) -and ($config.grant_types_supported -inotcontains 'password')) { - throw $msgTable.oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage # "The OAuth2 provider does not support the 'password' grant_type required by using an InnerScheme" + # The OAuth2 provider does not support the 'password' grant_type required by using an InnerScheme + throw $msgTable.oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage } # scopes diff --git a/src/Public/AutoImport.ps1 b/src/Public/AutoImport.ps1 index fb9c21b0e..ee8c965f5 100644 --- a/src/Public/AutoImport.ps1 +++ b/src/Public/AutoImport.ps1 @@ -46,7 +46,8 @@ function Export-PodeSnapin { # if non-windows or core, fail if ((Test-PodeIsPSCore) -or (Test-PodeIsUnix)) { - throw $msgTable.snapinsSupportedOnWindowsPowershellOnlyExceptionMessage # 'Snapins are only supported on Windows PowerShell' + # Snapins are only supported on Windows PowerShell + throw $msgTable.snapinsSupportedOnWindowsPowershellOnlyExceptionMessage } $PodeContext.Server.AutoImport.Snapins.ExportList += @($Name) diff --git a/src/Public/Core.ps1 b/src/Public/Core.ps1 index 0b121bd25..3c99f339e 100644 --- a/src/Public/Core.ps1 +++ b/src/Public/Core.ps1 @@ -642,7 +642,8 @@ function Show-PodeGui { # only valid for Windows PowerShell if ((Test-PodeIsPSCore) -and ($PSVersionTable.PSVersion.Major -eq 6)) { - throw 'Show-PodeGui is currently only available for Windows PowerShell, and PowerShell 7+ on Windows' + # Show-PodeGui is currently only available for Windows PowerShell and PowerShell 7+ on Windows + throw $msgTable.showPodeGuiOnlyAvailableOnWindowsExceptionMessage } # enable the gui and set general settings @@ -902,7 +903,8 @@ function Add-PodeEndpoint { # if RedirectTo is supplied, then a Name is mandatory if (![string]::IsNullOrWhiteSpace($RedirectTo) -and [string]::IsNullOrWhiteSpace($Name)) { - throw 'A Name is required for the endpoint if the RedirectTo parameter is supplied' + # A Name is required for the endpoint if the RedirectTo parameter is supplied + throw $msgTable.nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage } # get the type of endpoint @@ -953,22 +955,26 @@ function Add-PodeEndpoint { # protocol must be https for client certs, or hosted behind a proxy like iis if (($Protocol -ine 'https') -and !(Test-PodeIsHosted) -and $AllowClientCertificate) { - throw 'Client certificates are only supported on HTTPS endpoints' + # Client certificates are only supported on HTTPS endpoints + throw $msgTable.clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage } # explicit tls is only supported for smtp/tcp if (($type -inotin @('smtp', 'tcp')) -and ($TlsMode -ieq 'explicit')) { - throw 'The Explicit TLS mode is only supported on SMTPS and TCPS endpoints' + # The Explicit TLS mode is only supported on SMTPS and TCPS endpoints + throw $msgTable.explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage } # ack message is only for smtp/tcp if (($type -inotin @('smtp', 'tcp')) -and ![string]::IsNullOrEmpty($Acknowledge)) { - throw 'The Acknowledge message is only supported on SMTP and TCP endpoints' + # The Acknowledge message is only supported on SMTP and TCP endpoints + throw $msgTable.acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage } # crlf message end is only for tcp if (($type -ine 'tcp') -and $CRLFMessageEnd) { - throw 'The CRLF message end check is only supported on TCP endpoints' + # The CRLF message end check is only supported on TCP endpoints + throw $msgTable.crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage } # new endpoint object @@ -1041,7 +1047,8 @@ function Add-PodeEndpoint { # if the address is non-local, then check admin privileges if (!$Force -and !(Test-PodeIPAddressLocal -IP $obj.Address) -and !(Test-PodeIsAdminUser)) { - throw 'Must be running with administrator priviledges to listen on non-localhost addresses' + # Must be running with administrator privileges to listen on non-localhost addresses + throw $msgTable.mustBeRunningWithAdminPrivilegesExceptionMessage } # has this endpoint been added before? (for http/https we can just not add it again) @@ -1053,7 +1060,8 @@ function Add-PodeEndpoint { if (!(Test-PodeIsHosted) -and ($PSCmdlet.ParameterSetName -ilike 'cert*')) { # fail if protocol is not https if (@('https', 'wss', 'smtps', 'tcps') -inotcontains $Protocol) { - throw 'Certificate supplied for non-HTTPS/WSS endpoint' + # Certificate supplied for non-HTTPS/WSS endpoint + throw $msgTable.certificateSuppliedForNonHttpsWssEndpointExceptionMessage } switch ($PSCmdlet.ParameterSetName.ToLowerInvariant()) { diff --git a/src/Public/Flash.ps1 b/src/Public/Flash.ps1 index ca005ea8c..4d704e74b 100644 --- a/src/Public/Flash.ps1 +++ b/src/Public/Flash.ps1 @@ -29,7 +29,8 @@ function Add-PodeFlashMessage { # if sessions haven't been setup, error if (!(Test-PodeSessionsEnabled)) { - throw 'Sessions are required to use Flash messages' + # Sessions are required to use Flash messages + throw $msgTable.sessionsRequiredForFlashMessagesExceptionMessage } # append the message against the key @@ -61,7 +62,8 @@ function Clear-PodeFlashMessages { # if sessions haven't been setup, error if (!(Test-PodeSessionsEnabled)) { - throw 'Sessions are required to use Flash messages' + # Sessions are required to use Flash messages + throw $msgTable.sessionsRequiredForFlashMessagesExceptionMessage } # clear all keys @@ -95,7 +97,8 @@ function Get-PodeFlashMessage { # if sessions haven't been setup, error if (!(Test-PodeSessionsEnabled)) { - throw 'Sessions are required to use Flash messages' + # Sessions are required to use Flash messages + throw $msgTable.sessionsRequiredForFlashMessagesExceptionMessage } # retrieve messages from session, then delete it @@ -130,7 +133,8 @@ function Get-PodeFlashMessageNames { # if sessions haven't been setup, error if (!(Test-PodeSessionsEnabled)) { - throw 'Sessions are required to use Flash messages' + # Sessions are required to use Flash messages + throw $msgTable.sessionsRequiredForFlashMessagesExceptionMessage } # return list of all current keys @@ -164,7 +168,8 @@ function Remove-PodeFlashMessage { # if sessions haven't been setup, error if (!(Test-PodeSessionsEnabled)) { - throw 'Sessions are required to use Flash messages' + # Sessions are required to use Flash messages + throw $msgTable.sessionsRequiredForFlashMessagesExceptionMessage } # remove key from flash messages @@ -197,7 +202,8 @@ function Test-PodeFlashMessage { # if sessions haven't been setup, error if (!(Test-PodeSessionsEnabled)) { - throw 'Sessions are required to use Flash messages' + # Sessions are required to use Flash messages + throw $msgTable.sessionsRequiredForFlashMessagesExceptionMessage } # return if a key exists as a flash message diff --git a/src/Public/Logging.ps1 b/src/Public/Logging.ps1 index 801002f7b..28b7ad9fb 100644 --- a/src/Public/Logging.ps1 +++ b/src/Public/Logging.ps1 @@ -132,7 +132,8 @@ function New-PodeLoggingMethod { [Parameter(Mandatory = $true, ParameterSetName = 'Custom')] [ValidateScript({ if (Test-PodeIsEmpty $_) { - throw 'A non-empty ScriptBlock is required for the Custom logging output method' + # A non-empty ScriptBlock is required for the Custom logging output method + throw $msgTable.nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage } return $true @@ -187,7 +188,8 @@ function New-PodeLoggingMethod { 'eventviewer' { # only windows if (!(Test-PodeIsWindows)) { - throw 'Event Viewer logging only supported on Windows' + # Event Viewer logging only supported on Windows + throw $msgTable.eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage } # create source @@ -260,12 +262,14 @@ function Enable-PodeRequestLogging { # error if it's already enabled if ($PodeContext.Server.Logging.Types.Contains($name)) { - throw 'Request Logging has already been enabled' + # Request Logging has already been enabled + throw $msgTable.requestLoggingAlreadyEnabledExceptionMessage } # ensure the Method contains a scriptblock if (Test-PodeIsEmpty $Method.ScriptBlock) { - throw 'The supplied output Method for Request Logging requires a valid ScriptBlock' + # The supplied output Method for Request Logging requires a valid ScriptBlock + throw $msgTable.outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage } # username property @@ -343,12 +347,14 @@ function Enable-PodeErrorLogging { # error if it's already enabled if ($PodeContext.Server.Logging.Types.Contains($name)) { - throw 'Error Logging has already been enabled' + # Error Logging has already been enabled + throw $msgTable.requestLoggingAlreadyEnabledExceptionMessage } # ensure the Method contains a scriptblock if (Test-PodeIsEmpty $Method.ScriptBlock) { - throw 'The supplied output Method for Error Logging requires a valid ScriptBlock' + # The supplied output Method for Error Logging requires a valid ScriptBlock + throw $msgTable.outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage } # all errors? @@ -420,7 +426,8 @@ function Add-PodeLogger { [Parameter(Mandatory = $true)] [ValidateScript({ if (Test-PodeIsEmpty $_) { - throw 'A non-empty ScriptBlock is required for the logging method' + # A non-empty ScriptBlock is required for the logging method + throw $msgTable.nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage } return $true diff --git a/src/Public/Middleware.ps1 b/src/Public/Middleware.ps1 index 6ee06f80f..aa496fe5d 100644 --- a/src/Public/Middleware.ps1 +++ b/src/Public/Middleware.ps1 @@ -142,7 +142,8 @@ function New-PodeCsrfToken { # fail if the csrf logic hasn't been initialised if (!(Test-PodeCsrfConfigured)) { - throw 'CSRF Middleware has not been initialised' + # CSRF Middleware has not been initialized + throw $msgTable.csrfMiddlewareNotInitializedExceptionMessage } # generate a new secret and salt @@ -171,7 +172,8 @@ function Get-PodeCsrfMiddleware { # fail if the csrf logic hasn't been initialised if (!(Test-PodeCsrfConfigured)) { - throw 'CSRF Middleware has not been initialised' + # CSRF Middleware has not been initialized + throw $msgTable.csrfMiddlewareNotInitializedExceptionMessage } # return scriptblock for the csrf route middleware to test tokens @@ -239,7 +241,8 @@ function Initialize-PodeCsrf { # if sessions haven't been setup and we're not using cookies, error if (!$UseCookies -and !(Test-PodeSessionsEnabled)) { - throw 'Sessions are required to use CSRF unless you want to use cookies' + # Sessions are required to use CSRF unless you want to use cookies + throw $msgTable.sessionsRequiredForCsrfExceptionMessage } # if we're using cookies, ensure a global secret exists @@ -476,7 +479,8 @@ function Add-PodeMiddleware { # ensure we have a script to run if (Test-PodeIsEmpty $InputObject.Logic) { - throw '[Middleware]: No logic supplied in ScriptBlock' + # [Middleware]: No logic supplied in ScriptBlock + throw $msgTable.middlewareNoLogicSuppliedExceptionMessage } # set name, and override route/args diff --git a/src/Public/OAComponents.ps1 b/src/Public/OAComponents.ps1 index 6a9cf4f62..736ba9cf1 100644 --- a/src/Public/OAComponents.ps1 +++ b/src/Public/OAComponents.ps1 @@ -356,6 +356,7 @@ You can use this tag to reference the specific API documentation, schema, or ver .EXAMPLE New-PodeOAIntProperty -Name 'userId' | ConvertTo-PodeOAParameter -In Query | Add-PodeOAComponentParameter -Name 'UserIdParam' #> + function Add-PodeOAComponentParameter { [CmdletBinding()] param( @@ -371,7 +372,7 @@ function Add-PodeOAComponentParameter { [string[]] $DefinitionTag ) - + $DefinitionTag = Test-PodeOADefinitionTag -Tag $DefinitionTag foreach ($tag in $DefinitionTag) { @@ -380,7 +381,8 @@ function Add-PodeOAComponentParameter { $Name = $Parameter.name } else { - throw 'The Parameter has no name. Please provide a name to this component using -Name property' + # The Parameter has no name. Please provide a name to this component using the `Name` parameter + throw $msgTable.parameterHasNoNameExceptionMessage } } $PodeContext.Server.OpenAPI.Definitions[$tag].components.parameters[$Name] = $Parameter @@ -741,7 +743,8 @@ function Add-PodeOAComponentPathItem { } foreach ($tag in $DefinitionTag) { if (Test-PodeOAVersion -Version 3.0 -DefinitionTag $tag ) { - throw 'The feature reusable component pathItems is not available in OpenAPI v3.0.x' + # The 'pathItems' reusable component feature is not available in OpenAPI v3.0. + throw $msgTable.reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage } #add the default OpenApi responses if ( $PodeContext.Server.OpenAPI.Definitions[$tag].hiddenComponents.defaultResponses) { diff --git a/src/Public/OAProperties.ps1 b/src/Public/OAProperties.ps1 index 06f65e502..31691d016 100644 --- a/src/Public/OAProperties.ps1 +++ b/src/Public/OAProperties.ps1 @@ -349,7 +349,8 @@ function New-PodeOAMultiTypeProperty { if ($type -contains 'object') { if ($NoProperties) { if ($Properties -or $MinProperties -or $MaxProperties) { - throw '-NoProperties is not compatible with -Properties, -MinProperties and -MaxProperties' + # The parameter 'NoProperties' is mutually exclusive with 'Properties', 'MinProperties' and 'MaxProperties' + throw $msgTable.noPropertiesMutuallyExclusiveExceptionMessage } $param.properties = @($null) } @@ -368,7 +369,8 @@ function New-PodeOAMultiTypeProperty { } } elseif ($DiscriminatorMapping) { - throw 'Parameter -DiscriminatorMapping requires the -DiscriminatorProperty parameters' + # The parameter 'DiscriminatorMapping' can only be used when 'DiscriminatorProperty' is present + throw $msgTable.discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage } } if ($type -contains 'boolean') { @@ -1645,7 +1647,8 @@ function New-PodeOAObjectProperty { $param = New-PodeOAPropertyInternal -type 'object' -Params $PSBoundParameters if ($NoProperties) { if ($Properties -or $MinProperties -or $MaxProperties) { - throw '-NoProperties is not compatible with -Properties, -MinProperties and -MaxProperties' + # The parameter `NoProperties` is mutually exclusive with `Properties`, `MinProperties` and `MaxProperties` + throw $msgTable.noPropertiesMutuallyExclusiveExceptionMessage } $param.properties = @($null) $PropertiesFromPipeline = $false @@ -1667,7 +1670,8 @@ function New-PodeOAObjectProperty { } } elseif ($DiscriminatorMapping) { - throw 'Parameter -DiscriminatorMapping requires the -DiscriminatorProperty parameters' + # The parameter 'DiscriminatorMapping' can only be used when 'DiscriminatorProperty' is present + throw $msgTable.discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage } $collectedInput = [System.Collections.Generic.List[hashtable]]::new() } @@ -1794,7 +1798,8 @@ function Merge-PodeOAProperty { } if ($DiscriminatorProperty) { if ($type.ToLower() -eq 'allof' ) { - throw 'Discriminator parameter is not compatible with allOf' + # The parameter 'Discriminator' is incompatible with `allOf` + throw $msgTable.discriminatorIncompatibleWithAllOfExceptionMessage } $param.discriminator = @{ 'propertyName' = $DiscriminatorProperty @@ -1804,14 +1809,16 @@ function Merge-PodeOAProperty { } } elseif ($DiscriminatorMapping) { - throw 'Parameter -DiscriminatorMapping requires the -DiscriminatorProperty parameters' + # The parameter 'DiscriminatorMapping' can only be used when 'DiscriminatorProperty' is present + throw $msgTable.discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage } } process { if ($ParamsList) { if ($ParamsList.type -ine 'object' -and !$ParamsList.object) { - throw "Only properties of type Object can be associated with $type" + # {0} can only be associated with an Object + throw ($msgTable.typeCanOnlyBeAssociatedWithObjectExceptionMessage -f $type) } $param.schemas += $ParamsList } diff --git a/src/Public/Responses.ps1 b/src/Public/Responses.ps1 index e64eb7e55..2d5ac7735 100644 --- a/src/Public/Responses.ps1 +++ b/src/Public/Responses.ps1 @@ -1566,7 +1566,8 @@ function Send-PodeSignal { ) # error if not configured if (!$PodeContext.Server.Signals.Enabled) { - throw 'WebSockets have not been configured to send signal messages' + # WebSockets have not been configured to send signal messages + throw $msgTable.websocketsNotConfiguredForSignalMessagesExceptionMessage } # do nothing if no value diff --git a/src/Public/Routes.ps1 b/src/Public/Routes.ps1 index 716d56b97..105a68274 100644 --- a/src/Public/Routes.ps1 +++ b/src/Public/Routes.ps1 @@ -284,7 +284,8 @@ function Add-PodeRoute { # split route on '?' for query $Path = Split-PodeRouteQuery -Path $Path if ([string]::IsNullOrWhiteSpace($Path)) { - throw 'No Path supplied for Route' + # No Path supplied for the Route + throw $msgTable.noPathSuppliedForRouteExceptionMessage } # ensure the route has appropriate slashes @@ -319,11 +320,13 @@ function Add-PodeRoute { # if an access name was supplied, setup access as middleware first to it's after auth middleware if (![string]::IsNullOrWhiteSpace($Access)) { if ([string]::IsNullOrWhiteSpace($Authentication)) { - throw 'Access requires Authentication to be supplied on Routes' + # Access requires Authentication to be supplied on Routes + throw $msgTable.accessRequiresAuthenticationOnRoutesExceptionMessage } if (!(Test-PodeAccessExists -Name $Access)) { - throw "Access method does not exist: $($Access)" + # Access method does not exist + throw ($msgTable.accessMethodDoesNotExistExceptionMessage -f $Access) } $options = @{ @@ -336,7 +339,8 @@ function Add-PodeRoute { # if an auth name was supplied, setup the auth as the first middleware if (![string]::IsNullOrWhiteSpace($Authentication)) { if (!(Test-PodeAuthExists -Name $Authentication)) { - throw "Authentication method does not exist: $($Authentication)" + # Authentication method does not exist + throw ($msgTable.authenticationMethodDoesNotExistExceptionMessage -f $Authentication) } $options = @{ @@ -791,11 +795,13 @@ function Add-PodeStaticRoute { # if an access name was supplied, setup access as middleware first to it's after auth middleware if (![string]::IsNullOrWhiteSpace($Access)) { if ([string]::IsNullOrWhiteSpace($Authentication)) { - throw 'Access requires Authentication to be supplied on Static Routes' + # Access requires Authentication to be supplied on Routes + throw $msgTable.accessRequiresAuthenticationOnRoutesExceptionMessage } if (!(Test-PodeAccessExists -Name $Access)) { - throw "Access method does not exist: $($Access)" + # Access method does not exist + throw ($msgTable.accessMethodDoesNotExistExceptionMessage -f $Access) } $options = @{ @@ -1168,7 +1174,8 @@ function Add-PodeRouteGroup { ) if (Test-PodeIsEmpty $Routes) { - throw 'No scriptblock for -Routes passed' + # The Route parameter needs a valid, not empty, scriptblock + throw $msgTable.routeParameterNeedsValidScriptblockExceptionMessage } if ($Path -eq '/') { @@ -1425,7 +1432,8 @@ function Add-PodeStaticRouteGroup { ) if (Test-PodeIsEmpty $Routes) { - throw 'No scriptblock for -Routes passed' + # The Route parameter needs a valid, not empty, scriptblock + throw $msgTable.routeParameterNeedsValidScriptblockExceptionMessage } if ($Path -eq '/') { @@ -1592,7 +1600,8 @@ function Add-PodeSignalRouteGroup { ) if (Test-PodeIsEmpty $Routes) { - throw 'No scriptblock for -Routes passed' + # The Route parameter needs a valid, not empty, scriptblock + throw $msgTable.routeParameterNeedsValidScriptblockExceptionMessage } if ($Path -eq '/') { @@ -2012,7 +2021,8 @@ function ConvertTo-PodeRoute { # if there are no commands, fail if (Test-PodeIsEmpty $Commands) { - throw 'No commands supplied to convert to Routes' + # No commands supplied to convert to Routes + throw $msgTable.noCommandsSuppliedToConvertToRoutesExceptionMessage } # trim end trailing slashes from the path @@ -2257,7 +2267,8 @@ function Add-PodePage { switch ($PSCmdlet.ParameterSetName.ToLowerInvariant()) { 'scriptblock' { if (Test-PodeIsEmpty $ScriptBlock) { - throw 'A non-empty ScriptBlock is required to created a Page Route' + # A non-empty ScriptBlock is required to create a Page Route + throw $msgTable.nonEmptyScriptBlockRequiredForPageRouteExceptionMessage } $arg = @($ScriptBlock, $Data) @@ -2651,7 +2662,8 @@ function Test-PodeRoute { # split route on '?' for query $Path = Split-PodeRouteQuery -Path $Path if ([string]::IsNullOrWhiteSpace($Path)) { - throw 'No Path supplied for testing Route' + # No Path supplied for the Route + throw $msgTable.noPathSuppliedForRouteExceptionMessage } # ensure the route has appropriate slashes @@ -2704,7 +2716,8 @@ function Test-PodeStaticRoute { # split route on '?' for query $Path = Split-PodeRouteQuery -Path $Path if ([string]::IsNullOrWhiteSpace($Path)) { - throw 'No Path supplied for testing Static Route' + # No Path supplied for the Route + throw $msgTable.noPathSuppliedForRouteExceptionMessage } # ensure the route has appropriate slashes diff --git a/src/Public/SSE.ps1 b/src/Public/SSE.ps1 index c3203e8a4..bb07456c1 100644 --- a/src/Public/SSE.ps1 +++ b/src/Public/SSE.ps1 @@ -78,7 +78,8 @@ function ConvertTo-PodeSseConnection { # check Accept header - unless forcing if (!$Force -and ((Get-PodeHeader -Name 'Accept') -ine 'text/event-stream')) { - throw 'SSE can only be configured on requests with an Accept header value of text/event-stream' + # SSE can only be configured on requests with an Accept header value of text/event-stream + throw $msgTable.sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage } # check for default scope, and set @@ -264,12 +265,14 @@ function Send-PodeSseEvent { # error if no name if ([string]::IsNullOrEmpty($Name)) { - throw 'An SSE connection Name is required, either from -Name or $WebEvent.Sse.Name' + # An SSE connection Name is required, either from -Name or $WebEvent.Sse.Name + throw $msgTable.sseConnectionNameRequiredExceptionMessage } # check if broadcast level if (!(Test-PodeSseBroadcastLevel -Name $Name -Group $Group -ClientId $ClientId)) { - throw "SSE failed to broadcast due to defined SSE broadcast level for $($Name): $(Get-PodeSseBroadcastLevel -Name $Name)" + # SSE failed to broadcast due to defined SSE broadcast level + throw ($msgTable.sseFailedToBroadcastExceptionMessage -f $Name, (Get-PodeSseBroadcastLevel -Name $Name)) } # send event diff --git a/src/Public/Sessions.ps1 b/src/Public/Sessions.ps1 index 55b3991e3..93f0971d0 100644 --- a/src/Public/Sessions.ps1 +++ b/src/Public/Sessions.ps1 @@ -108,7 +108,8 @@ function Enable-PodeSessionMiddleware { # check that session logic hasn't already been initialised if (Test-PodeSessionsEnabled) { - throw 'Session Middleware has already been intialised' + # Session Middleware has already been initialized + throw $msgTable.sessionMiddlewareAlreadyInitializedExceptionMessage } # ensure the override store has the required methods @@ -116,7 +117,8 @@ function Enable-PodeSessionMiddleware { $members = @($Storage | Get-Member | Select-Object -ExpandProperty Name) @('delete', 'get', 'set') | ForEach-Object { if ($members -inotcontains $_) { - throw "Custom session storage does not implement the required '$($_)()' method" + # The custom session storage does not implement the required '{0}()' method + throw ($msgTable.customSessionStorageMethodNotImplementedExceptionMessage -f $_) } } } @@ -124,7 +126,8 @@ function Enable-PodeSessionMiddleware { # verify the secret, set to guid if not supplied, or error if none and we have a storage if ([string]::IsNullOrEmpty($Secret)) { if (!(Test-PodeIsEmpty $Storage)) { - throw 'A Secret is required when using custom session storage' + # A Secret is required when using custom session storage + throw $msgTable.secretRequiredForCustomSessionStorageExceptionMessage } $Secret = Get-PodeServerDefaultSecret @@ -178,7 +181,8 @@ function Remove-PodeSession { # if sessions haven't been setup, error if (!(Test-PodeSessionsEnabled)) { - throw 'Sessions have not been configured' + # The sessions have not been configured + throw $msgTable.sessionsNotConfiguredExceptionMessage } # do nothing if session is null @@ -212,12 +216,14 @@ function Save-PodeSession { # if sessions haven't been setup, error if (!(Test-PodeSessionsEnabled)) { - throw 'Sessions have not been configured' + # The sessions have not been configured + throw $msgTable.sessionsNotConfiguredExceptionMessage } # error if session is null if ($null -eq $WebEvent.Session) { - throw 'There is no session available to save' + # There is no session available to save + throw $msgTable.noSessionAvailableToSaveExceptionMessage } # if auth is in use, then assign to session store @@ -306,12 +312,14 @@ function Reset-PodeSessionExpiry { # if sessions haven't been setup, error if (!(Test-PodeSessionsEnabled)) { - throw 'Sessions have not been configured' + # The sessions have not been configured + throw $msgTable.sessionsNotConfiguredExceptionMessage } # error if session is null if ($null -eq $WebEvent.Session) { - throw 'There is no session available to save' + # There is no session available to save + throw $msgTable.noSessionAvailableToSaveExceptionMessage } # temporarily set this session to auto-extend @@ -354,7 +362,8 @@ function Get-PodeSessionExpiry { # error if session is null if ($null -eq $WebEvent.Session) { - throw 'There is no session available to save' + # There is no session available to save + throw $msgTable.noSessionAvailableToSaveExceptionMessage } # default min date diff --git a/src/Public/State.ps1 b/src/Public/State.ps1 index 34d8519bb..944ce3161 100644 --- a/src/Public/State.ps1 +++ b/src/Public/State.ps1 @@ -38,7 +38,8 @@ function Set-PodeState { ) if ($null -eq $PodeContext.Server.State) { - throw 'Pode has not been initialised' + # Pode has not been initialized + throw $msgTable.podeNotInitializedExceptionMessage } if ($null -eq $Scope) { @@ -81,7 +82,8 @@ function Get-PodeState { ) if ($null -eq $PodeContext.Server.State) { - throw 'Pode has not been initialised' + # Pode has not been initialized + throw $msgTable.podeNotInitializedExceptionMessage } if ($WithScope) { @@ -124,7 +126,8 @@ function Get-PodeStateNames { ) if ($null -eq $PodeContext.Server.State) { - throw 'Pode has not been initialised' + # Pode has not been initialized + throw $msgTable.podeNotInitializedExceptionMessage } if ($null -eq $Scope) { @@ -176,7 +179,8 @@ function Remove-PodeState { ) if ($null -eq $PodeContext.Server.State) { - throw 'Pode has not been initialised' + # Pode has not been initialized + throw $msgTable.podeNotInitializedExceptionMessage } $value = $PodeContext.Server.State[$Name].Value @@ -247,7 +251,8 @@ function Save-PodeState { # error if attempting to use outside of the pode server if ($null -eq $PodeContext.Server.State) { - throw 'Pode has not been initialised' + # Pode has not been initialized + throw $msgTable.podeNotInitializedExceptionMessage } # get the full path to save the state @@ -341,7 +346,8 @@ function Restore-PodeState { # error if attempting to use outside of the pode server if ($null -eq $PodeContext.Server.State) { - throw 'Pode has not been initialised' + # Pode has not been initialized + throw $msgTable.podeNotInitializedExceptionMessage } # get the full path to the state @@ -415,7 +421,8 @@ function Test-PodeState { ) if ($null -eq $PodeContext.Server.State) { - throw 'Pode has not been initialised' + # Pode has not been initialized + throw $msgTable.podeNotInitializedExceptionMessage } return $PodeContext.Server.State.ContainsKey($Name) diff --git a/src/Public/Tasks.ps1 b/src/Public/Tasks.ps1 index d4f47573c..e430b1b0b 100644 --- a/src/Public/Tasks.ps1 +++ b/src/Public/Tasks.ps1 @@ -425,5 +425,6 @@ function Wait-PodeTask { return (Wait-PodeTaskInternal -Task $Task -Timeout $Timeout) } - throw 'Task type is invalid, expected either [System.Threading.Tasks.Task] or [hashtable]' + # Task type is invalid, expected either [System.Threading.Tasks.Task] or [hashtable] + throw $msgTable.invalidTaskTypeExceptionMessage } \ No newline at end of file diff --git a/src/Public/Threading.ps1 b/src/Public/Threading.ps1 index a8249d15e..972ac4f42 100644 --- a/src/Public/Threading.ps1 +++ b/src/Public/Threading.ps1 @@ -246,12 +246,14 @@ function Enter-PodeLockable { # check if value type and throw if ($Object -is [valuetype]) { - throw 'Cannot lock value types' + # Cannot lock a [ValueTypes] + throw $msgTable.cannotLockValueTypeExceptionMessage } # check if null and throw if ($null -eq $Object) { - throw 'Cannot lock a null object' + # Cannot lock an object that is null + throw $msgTable.cannotLockNullObjectExceptionMessage } # check if the global lockable is locked @@ -263,7 +265,8 @@ function Enter-PodeLockable { $locked = $false [System.Threading.Monitor]::TryEnter($Object.SyncRoot, $Timeout, [ref]$locked) if (!$locked) { - throw 'Failed to acquire lock on object' + # Failed to acquire a lock on the object + throw $msgTable.failedToAcquireLockExceptionMessage } } @@ -310,12 +313,14 @@ function Exit-PodeLockable { # check if value type and throw if ($Object -is [valuetype]) { - throw 'Cannot unlock value types' + # Cannot unlock a [ValueTypes] + throw $msgTable.cannotUnlockValueTypeExceptionMessage } # check if null and throw if ($null -eq $Object) { - throw 'Cannot unlock a null object' + # Cannot unlock an object that is null + throw $msgTable.cannotUnlockNullObjectExceptionMessage } if ([System.Threading.Monitor]::IsEntered($Object.SyncRoot)) { diff --git a/src/Public/Utilities.ps1 b/src/Public/Utilities.ps1 index d73fa132f..2d02ab16a 100644 --- a/src/Public/Utilities.ps1 +++ b/src/Public/Utilities.ps1 @@ -384,7 +384,8 @@ function Import-PodeSnapin { # if non-windows or core, fail if ((Test-PodeIsPSCore) -or (Test-PodeIsUnix)) { - throw 'Snapins are only supported on Windows PowerShell' + # Snapins are only supported on Windows PowerShell + throw $msgTable.snapinsSupportedOnWindowsPowershellOnlyExceptionMessage } # import the snap-in @@ -1056,7 +1057,8 @@ function New-PodeCron { # cant have None and Interval if (($Every -ieq 'none') -and ($Interval -gt 0)) { - throw 'Cannot supply an interval when -Every is set to None' + # Cannot supply an interval when the parameter `Every` is set to None + throw $msgTable.cannotSupplyIntervalWhenEveryIsNoneExceptionMessage } # base cron @@ -1156,7 +1158,8 @@ function New-PodeCron { $cron.Month = '1,4,7,10' if ($Interval -gt 0) { - throw 'Cannot supply interval value for every quarter' + # Cannot supply interval value for every quarter + throw $msgTable.cannotSupplyIntervalForQuarterExceptionMessage } } @@ -1167,7 +1170,8 @@ function New-PodeCron { $cron.Month = '1' if ($Interval -gt 0) { - throw 'Cannot supply interval value for every year' + # Cannot supply interval value for every year + throw $msgTable.cannotSupplyIntervalForYearExceptionMessage } } } diff --git a/tests/unit/Helpers.Tests.ps1 b/tests/unit/Helpers.Tests.ps1 index 912cb97bb..23378c533 100644 --- a/tests/unit/Helpers.Tests.ps1 +++ b/tests/unit/Helpers.Tests.ps1 @@ -1704,15 +1704,15 @@ Describe 'New-PodeCron' { } It 'Throws an error when using Interval without Every' { - { New-PodeCron -Interval 3 } | Should -Throw -ExpectedMessage '*Cannot supply an interval*' + { New-PodeCron -Interval 3 } | Should -Throw -ExpectedMessage $msgTable.cannotSupplyIntervalWhenEveryIsNoneExceptionMessage #'*Cannot supply an interval*' } It 'Throws an error when using Interval for Every Quarter' { - { New-PodeCron -Every Quarter -Interval 3 } | Should -Throw -ExpectedMessage 'Cannot supply interval value for every quarter' + { New-PodeCron -Every Quarter -Interval 3 } | Should -Throw -ExpectedMessage $msgTable.cannotSupplyIntervalForQuarterExceptionMessage #Cannot supply interval value for every quarter. } It 'Throws an error when using Interval for Every Year' { - { New-PodeCron -Every Year -Interval 3 } | Should -Throw -ExpectedMessage 'Cannot supply interval value for every year' + { New-PodeCron -Every Year -Interval 3 } | Should -Throw -ExpectedMessage $msgTable.cannotSupplyIntervalForYearExceptionMessage #'Cannot supply interval value for every year' } } diff --git a/tests/unit/Localization.Tests.ps1 b/tests/unit/Localization.Tests.ps1 index 32a85f70d..8ab0b9baf 100644 --- a/tests/unit/Localization.Tests.ps1 +++ b/tests/unit/Localization.Tests.ps1 @@ -17,13 +17,13 @@ Describe 'Localization Files Key Check' { # Discover all language directories $languageDirs = Get-ChildItem -Path $localizationDir -Directory | Where-Object { $_.Name -ne 'en' } - Describe "Language [<_.Name>]" -ForEach ($languageDirs) { + Describe 'Language [<_.Name>]' -ForEach ($languageDirs) { it 'Language resource file exist' { Test-Path -Path "$($_.FullName)/Pode.psd1" | Should -BeTrue } $podeFileContent = Get-Content -Path "$($_.FullName)/Pode.psd1" -Raw $global:content = Invoke-Expression $podeFileContent - it 'Total number of keys equal to the [en]'{ + it 'Total number of keys equal to the [en]' { $global:content.Keys.Count | Should -be $global:localizationKeys.Count } It -ForEach ($global:localizationKeys) -Name 'Resource File contain <_>' { diff --git a/tests/unit/OpenApi.Tests.ps1 b/tests/unit/OpenApi.Tests.ps1 index b39f2008a..3ef7b27ed 100644 --- a/tests/unit/OpenApi.Tests.ps1 +++ b/tests/unit/OpenApi.Tests.ps1 @@ -2086,7 +2086,7 @@ Describe 'OpenApi' { { Merge-PodeOAProperty -Type AllOf -DiscriminatorProperty 'name' -ObjectDefinitions @('Pet', (New-PodeOAObjectProperty -Properties @((New-PodeOAIntProperty -Name 'id'), (New-PodeOAStringProperty -Name 'name'))) - ) } | Should -Throw -ExpectedMessage 'Discriminator parameter is not compatible with allOf' + ) } | Should -Throw -ExpectedMessage $msgTable.discriminatorIncompatibleWithAllOfExceptionMessage #'Discriminator parameter is not compatible with allOf' } #Should -Throw -ExpectedMessage 'Discriminator parameter is not compatible with allOf' @@ -2277,7 +2277,7 @@ Describe 'OpenApi' { it 'throw error' { { Add-PodeOAComponentParameter -Parameter ( New-PodeOAIntProperty -Name 'petId' -Format Int64 -Description 'ID of the pet' | New-PodeOAObjectProperty ) } | - Should -Throw -ExpectedMessage 'The Parameter has no name. Please provide a name to this component using -Name property' + Should -Throw -ExpectedMessage $msgTable.parameterHasNoNameExceptionMessage # The Parameter has no name. Please give this component a name using the 'Name' parameter. } } Context 'ConvertTo-PodeOAParameter' { diff --git a/tests/unit/Routes.Tests.ps1 b/tests/unit/Routes.Tests.ps1 index 591b64342..ab74a7624 100644 --- a/tests/unit/Routes.Tests.ps1 +++ b/tests/unit/Routes.Tests.ps1 @@ -585,7 +585,7 @@ Describe 'ConvertTo-PodeRoute' { } It 'Throws error for no commands' { - { ConvertTo-PodeRoute } | Should -Throw -ExpectedMessage 'No commands supplied to convert to Routes' + { ConvertTo-PodeRoute } | Should -Throw -ExpectedMessage $msgTable.noCommandsSuppliedToConvertToRoutesExceptionMessage # No commands supplied to convert to Routes. } It 'Calls Add-PodeRoute twice for commands' { diff --git a/tests/unit/Security.Tests.ps1 b/tests/unit/Security.Tests.ps1 index 778c20e0f..4fc896dda 100644 --- a/tests/unit/Security.Tests.ps1 +++ b/tests/unit/Security.Tests.ps1 @@ -581,7 +581,7 @@ Describe 'New-PodeCsrfToken' { } } - { New-PodeCsrfToken } | Should -Throw -ExpectedMessage '*not been initialised*' + { New-PodeCsrfToken } | Should -Throw -ExpectedMessage $msgTable.csrfMiddlewareNotInitializedExceptionMessage #CSRF Middleware has not been initialized. } diff --git a/tests/unit/Sessions.Tests.ps1 b/tests/unit/Sessions.Tests.ps1 index 6a6a81c01..31dddb372 100644 --- a/tests/unit/Sessions.Tests.ps1 +++ b/tests/unit/Sessions.Tests.ps1 @@ -259,7 +259,7 @@ Describe 'Set-PodeSession' { Describe 'Remove-PodeSession' { It 'Throws an error if sessions are not configured' { Mock Test-PodeSessionsEnabled { return $false } - { Remove-PodeSession } | Should -Throw 'Sessions have not been configured' + { Remove-PodeSession } | Should -Throw $msgTable.sessionsNotConfiguredExceptionMessage # Sessions have not been configured. } It 'Does nothing if there is no session' { @@ -286,13 +286,13 @@ Describe 'Remove-PodeSession' { Describe 'Save-PodeSession' { It 'Throws an error if sessions are not configured' { Mock Test-PodeSessionsEnabled { return $false } - { Save-PodeSession } | Should -Throw 'Sessions have not been configured' + { Save-PodeSession } | Should -Throw $msgTable.sessionsNotConfiguredExceptionMessage # Sessions have not been configured. } It 'Throws error if there is no session' { Mock Test-PodeSessionsEnabled { return $true } $WebEvent = @{} - { Save-PodeSession } | Should -Throw -ExpectedMessage 'There is no session available to save' + { Save-PodeSession } | Should -Throw -ExpectedMessage $msgTable.noSessionAvailableToSaveExceptionMessage # There is no session available to save. } It 'Call saves the session' { diff --git a/tests/unit/State.Tests.ps1 b/tests/unit/State.Tests.ps1 index ee9143505..700b74d19 100644 --- a/tests/unit/State.Tests.ps1 +++ b/tests/unit/State.Tests.ps1 @@ -13,7 +13,7 @@ BeforeAll { Describe 'Set-PodeState' { It 'Throws error when not initialised' { $PodeContext.Server = @{ 'State' = $null } - { Set-PodeState -Name 'test' } | Should -Throw -ExpectedMessage 'Pode has not been initialised' + { Set-PodeState -Name 'test' } | Should -Throw -ExpectedMessage $msgTable.podeNotInitializedExceptionMessage # Pode has not been initialized. } It 'Sets and returns an object' { @@ -29,7 +29,7 @@ Describe 'Set-PodeState' { Describe 'Get-PodeState' { It 'Throws error when not initialised' { $PodeContext.Server = @{ 'State' = $null } - { Get-PodeState -Name 'test' } | Should -Throw -ExpectedMessage 'Pode has not been initialised' + { Get-PodeState -Name 'test' } | Should -Throw -ExpectedMessage $msgTable.podeNotInitializedExceptionMessage # Pode has not been initialized. } It 'Gets an object from the state' { @@ -42,7 +42,7 @@ Describe 'Get-PodeState' { Describe 'Remove-PodeState' { It 'Throws error when not initialised' { $PodeContext.Server = @{ 'State' = $null } - { Remove-PodeState -Name 'test' } | Should -Throw -ExpectedMessage 'Pode has not been initialised' + { Remove-PodeState -Name 'test' } | Should -Throw -ExpectedMessage $msgTable.podeNotInitializedExceptionMessage # Pode has not been initialized. } It 'Removes an object from the state' { @@ -56,7 +56,7 @@ Describe 'Remove-PodeState' { Describe 'Save-PodeState' { It 'Throws error when not initialised' { $PodeContext.Server = @{ 'State' = $null } - { Save-PodeState -Path 'some/path' } | Should -Throw -ExpectedMessage 'Pode has not been initialised' + { Save-PodeState -Path 'some/path' } | Should -Throw -ExpectedMessage $msgTable.podeNotInitializedExceptionMessage # Pode has not been initialized. } It 'Saves the state to file' { @@ -96,7 +96,7 @@ Describe 'Save-PodeState' { Describe 'Restore-PodeState' { It 'Throws error when not initialised' { $PodeContext.Server = @{ 'State' = $null } - { Restore-PodeState -Path 'some/path' } | Should -Throw -ExpectedMessage 'Pode has not been initialised' + { Restore-PodeState -Path 'some/path' } | Should -Throw -ExpectedMessage $msgTable.podeNotInitializedExceptionMessage # Pode has not been initialized. } It 'Restores the state from file' { @@ -113,7 +113,7 @@ Describe 'Restore-PodeState' { Describe 'Test-PodeState' { It 'Throws error when not initialised' { $PodeContext.Server = @{ 'State' = $null } - { Test-PodeState -Name 'test' } | Should -Throw -ExpectedMessage 'Pode has not been initialised' + { Test-PodeState -Name 'test' } | Should -Throw -ExpectedMessage $msgTable.podeNotInitializedExceptionMessage # Pode has not been initialized. } It 'Returns true for an object being in the state' { From 417df7b8c89e8e6e6ffddb972910d04949d05d18 Mon Sep 17 00:00:00 2001 From: mdaneri Date: Sat, 1 Jun 2024 21:27:11 -0700 Subject: [PATCH 07/67] change variable name to PodeLocal Add PodeLocal to runspaces --- examples/PetStore/Petstore-openApi.ps1 | 2 + .../tools/ChocolateyInstall_template.ps1 | 2 +- src/Locales/ar/Pode.psd1 | 18 +++- src/Locales/de/Pode.psd1 | 18 +++- src/Locales/en/Pode.psd1 | 16 +++- src/Locales/es/Pode.psd1 | 18 +++- src/Locales/fr/Pode.psd1 | 18 +++- src/Locales/it/Pode.psd1 | 18 +++- src/Locales/ja/Pode.psd1 | 17 +++- src/Locales/kr/Pode.psd1 | 18 +++- src/Locales/pl/Pode.psd1 | 18 +++- src/Locales/pt/Pode.psd1 | 18 +++- src/Locales/zn/Pode.psd1 | 18 +++- src/Pode.psm1 | 11 +-- src/Private/Authentication.ps1 | 4 +- src/Private/AutoImport.ps1 | 5 +- src/Private/Context.ps1 | 5 +- src/Private/CronParser.ps1 | 20 ++--- src/Private/Cryptography.ps1 | 16 ++-- src/Private/Endpoints.ps1 | 4 +- src/Private/Gui.ps1 | 2 +- src/Private/Helpers.ps1 | 26 +++--- src/Private/Middleware.ps1 | 4 +- src/Private/OpenApi.ps1 | 34 +++---- src/Private/Routes.ps1 | 10 +-- src/Private/ScopedVariables.ps1 | 4 +- src/Private/Secrets.ps1 | 12 +-- src/Private/Security.ps1 | 20 ++--- src/Private/Server.ps1 | 2 +- src/Private/ServiceServer.ps1 | 2 +- src/Private/Sessions.ps1 | 4 +- src/Private/Setup.ps1 | 2 +- src/Private/SmtpServer.ps1 | 2 +- src/Private/Tasks.ps1 | 2 +- src/Private/Verbs.ps1 | 4 +- src/Public/Access.ps1 | 12 +-- src/Public/Authentication.ps1 | 88 +++++++++---------- src/Public/AutoImport.ps1 | 2 +- src/Public/Core.ps1 | 16 ++-- src/Public/Events.ps1 | 4 +- src/Public/Flash.ps1 | 12 +-- src/Public/Logging.ps1 | 14 +-- src/Public/Middleware.ps1 | 8 +- src/Public/OAComponents.ps1 | 4 +- src/Public/OAProperties.ps1 | 14 +-- src/Public/OpenApi.ps1 | 6 +- src/Public/Responses.ps1 | 2 +- src/Public/Routes.ps1 | 26 +++--- src/Public/SSE.ps1 | 6 +- src/Public/Secrets.ps1 | 28 +++--- src/Public/Security.ps1 | 12 ++- src/Public/Sessions.ps1 | 18 ++-- src/Public/State.ps1 | 14 +-- src/Public/Tasks.ps1 | 2 +- src/Public/Threading.ps1 | 10 +-- src/Public/Utilities.ps1 | 8 +- src/Public/WebSockets.ps1 | 13 ++- tests/integration/Authentication.Tests.ps1 | 2 +- tests/unit/Authentication.Tests.ps1 | 6 +- tests/unit/Context.Tests.ps1 | 2 +- tests/unit/Cookies.Tests.ps1 | 2 +- tests/unit/CronParser.Tests.ps1 | 2 +- tests/unit/Cryptography.Tests.ps1 | 2 +- tests/unit/Endware.Tests.ps1 | 2 +- tests/unit/Flash.Tests.ps1 | 2 +- tests/unit/Handlers.Tests.ps1 | 2 +- tests/unit/Headers.Tests.ps1 | 2 +- tests/unit/Helpers.Tests.ps1 | 10 +-- tests/unit/Logging.Tests.ps1 | 2 +- tests/unit/Mappers.Tests.ps1 | 2 +- tests/unit/Metrics.Tests.ps1 | 2 +- tests/unit/Middleware.Tests.ps1 | 2 +- tests/unit/NameGenerator.Tests.ps1 | 2 +- tests/unit/OpenApi.Tests.ps1 | 6 +- tests/unit/PrivateOpenApi.Tests.ps1 | 2 +- tests/unit/Responses.Tests.ps1 | 2 +- tests/unit/Routes.Tests.ps1 | 6 +- tests/unit/Schedules.Tests.ps1 | 2 +- tests/unit/Security.Tests.ps1 | 4 +- tests/unit/Server.Tests.ps1 | 2 +- tests/unit/Serverless.Tests.ps1 | 2 +- tests/unit/Sessions.Tests.ps1 | 8 +- tests/unit/State.Tests.ps1 | 14 +-- tests/unit/Timers.Tests.ps1 | 2 +- 84 files changed, 493 insertions(+), 314 deletions(-) diff --git a/examples/PetStore/Petstore-openApi.ps1 b/examples/PetStore/Petstore-openApi.ps1 index dafd4dfd3..d8ff6dd2c 100644 --- a/examples/PetStore/Petstore-openApi.ps1 +++ b/examples/PetStore/Petstore-openApi.ps1 @@ -4,12 +4,14 @@ param ( ) $petStorePath = Split-Path -Parent -Path $MyInvocation.MyCommand.Path $podePath = Split-Path -Parent -Path (Split-Path -Parent -Path $petStorePath) +try{ if (Test-Path -Path "$($podePath)/src/Pode.psm1" -PathType Leaf) { Import-Module "$($podePath)/src/Pode.psm1" -Force -ErrorAction Stop } else { Import-Module -Name 'Pode' } +}catch {throw } function Write-ObjectContent { param ( [Parameter(Mandatory = $true, ValueFromPipeline = $true)] diff --git a/packers/choco/tools/ChocolateyInstall_template.ps1 b/packers/choco/tools/ChocolateyInstall_template.ps1 index d3d6dc08e..e2553172c 100644 --- a/packers/choco/tools/ChocolateyInstall_template.ps1 +++ b/packers/choco/tools/ChocolateyInstall_template.ps1 @@ -24,7 +24,7 @@ function Install-PodeModule($path, $version) { Push-Location (Join-Path $toolsDir 'src') # which folders do we need? - $folders = @('Private', 'Public', 'Misc', 'Libs', 'licenses') + $folders = @('Private', 'Public', 'Misc', 'Libs', 'licenses','Locales') $folders | ForEach-Object { New-Item -ItemType Directory -Path (Join-Path $path $_) -Force | Out-Null Copy-Item -Path "./$($_)/*" -Destination (Join-Path $path $_) -Force -Recurse | Out-Null diff --git a/src/Locales/ar/Pode.psd1 b/src/Locales/ar/Pode.psd1 index 93b0e07c5..9265d9588 100644 --- a/src/Locales/ar/Pode.psd1 +++ b/src/Locales/ar/Pode.psd1 @@ -2,7 +2,7 @@ ConvertFrom-StringData -StringData @' adModuleWindowsOnlyExceptionMessage = وحدة Active Directory متاحة فقط على نظام Windows. adModuleNotInstalledExceptionMessage = وحدة Active Directory غير مثبتة. secretManagementModuleNotInstalledExceptionMessage = وحدة Microsoft.PowerShell.SecretManagement غير مثبتة. -secretVaultAlreadyRegisteredExceptionMessage = تم تسجيل خزنة سرية باسم '{0}' بالفعل أثناء استيراد الخزن السرية تلقائيًا. +secretVaultAlreadyRegisteredAutoImportExceptionMessage = تم تسجيل خزنة سرية باسم '{0}' بالفعل أثناء استيراد الخزن السرية تلقائيًا. failedToOpenRunspacePoolExceptionMessage = فشل في فتح RunspacePool: {0} cronExpressionInvalidExceptionMessage = يجب أن تتكون تعبير Cron من 5 أجزاء فقط: {0} invalidAliasFoundExceptionMessage = تم العثور على اسم مستعار غير صالح {0}: {1} @@ -164,4 +164,18 @@ noSessionAvailableToSaveExceptionMessage = لا توجد جلسة متاحة ل cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = لا يمكن توفير فترة زمنية عندما يكون المعامل 'Every' مضبوطًا على None. cannotSupplyIntervalForQuarterExceptionMessage = لا يمكن توفير قيمة الفاصل الزمني لكل ربع. cannotSupplyIntervalForYearExceptionMessage = لا يمكن توفير قيمة الفاصل الزمني لكل سنة. -'@ \ No newline at end of file +secretVaultAlreadyRegisteredExceptionMessage = تم تسجيل مخزن الأسرار بالاسم '{0}' بالفعل{1}. +secretVaultUnlockExpiryDateInPastExceptionMessage = تاريخ انتهاء صلاحية فتح مخزن الأسرار في الماضي (UTC): {0} +secretAlreadyMountedExceptionMessage = تم تثبيت سر بالاسم '{0}' بالفعل. +noSecretVaultRegisteredExceptionMessage = لم يتم تسجيل مخزن أسرار بالاسم '{0}'. +noAdditionalPropertiesMutuallyExclusiveExceptionMessage = المعاملات 'NoAdditionalProperties' و 'AdditionalProperties' متعارضة. +credentialsPassedWildcardForHeadersLiteralExceptionMessage = عند تمرير بيانات الاعتماد، سيتم اعتبار العلامة * للعنوان كـ سلسلة نصية حرفية وليس كعلامة. +wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = العلامة * للعنوان غير متوافقة مع مفتاح AutoHeaders. +wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = العلامة * للطرق غير متوافقة مع مفتاح AutoMethods. +invalidAccessControlMaxAgeDurationExceptionMessage = مدة Access-Control-Max-Age غير صالحة المقدمة: {0}. يجب أن تكون أكبر من 0. +noNameForWebSocketDisconnectExceptionMessage = لا يوجد اسم لفصل WebSocket من المزود. +noNameForWebSocketRemoveExceptionMessage = لا يوجد اسم لإزالة WebSocket من المزود. +noNameForWebSocketSendMessageExceptionMessage = لا يوجد اسم لإرسال رسالة إلى WebSocket المزود. +noSecretNamedMountedExceptionMessage = لم يتم تثبيت أي سر بالاسم '{0}'. +noNameForWebSocketResetExceptionMessage = لا يوجد اسم لإعادة تعيين WebSocket من المزود. +'@ diff --git a/src/Locales/de/Pode.psd1 b/src/Locales/de/Pode.psd1 index 7f6fa0086..4ef2490a8 100644 --- a/src/Locales/de/Pode.psd1 +++ b/src/Locales/de/Pode.psd1 @@ -2,7 +2,7 @@ ConvertFrom-StringData -StringData @' adModuleWindowsOnlyExceptionMessage = Active Directory-Modul nur unter Windows verfügbar. adModuleNotInstalledExceptionMessage = Das Active Directory-Modul ist nicht installiert. secretManagementModuleNotInstalledExceptionMessage = Das Modul Microsoft.PowerShell.SecretManagement ist nicht installiert. -secretVaultAlreadyRegisteredExceptionMessage = Ein Geheimtresor mit dem Namen '{0}' wurde bereits beim automatischen Importieren von Geheimtresoren registriert. +secretVaultAlreadyRegisteredAutoImportExceptionMessage = Ein Geheimtresor mit dem Namen '{0}' wurde bereits beim automatischen Importieren von Geheimtresoren registriert. failedToOpenRunspacePoolExceptionMessage = Fehler beim Öffnen des Runspace-Pools: {0} cronExpressionInvalidExceptionMessage = Die Cron-Ausdruck sollte nur aus 5 Teilen bestehen: {0} invalidAliasFoundExceptionMessage = Ungültiges {0}-Alias gefunden: {1} @@ -164,4 +164,18 @@ noSessionAvailableToSaveExceptionMessage = Keine Sitzung verfügbar zum Speicher cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = Ein Intervall kann nicht angegeben werden, wenn der Parameter 'Every' auf None gesetzt ist. cannotSupplyIntervalForQuarterExceptionMessage = Ein Intervallwert kann nicht für jedes Quartal angegeben werden. cannotSupplyIntervalForYearExceptionMessage = Ein Intervallwert kann nicht für jedes Jahr angegeben werden. -'@ \ No newline at end of file +secretVaultAlreadyRegisteredExceptionMessage = Ein Geheimnis-Tresor mit dem Namen '{0}' wurde bereits registriert{1}. +secretVaultUnlockExpiryDateInPastExceptionMessage = Das Ablaufdatum zum Entsperren des Geheimnis-Tresors liegt in der Vergangenheit (UTC): {0} +secretAlreadyMountedExceptionMessage = Ein Geheimnis mit dem Namen '{0}' wurde bereits eingebunden. +noSecretVaultRegisteredExceptionMessage = Kein Geheimnis-Tresor mit dem Namen '{0}' wurde registriert. +noAdditionalPropertiesMutuallyExclusiveExceptionMessage = Die Parameter 'NoAdditionalProperties' und 'AdditionalProperties' schließen sich gegenseitig aus. +credentialsPassedWildcardForHeadersLiteralExceptionMessage = Wenn Anmeldeinformationen übergeben werden, wird das *-Wildcard für Header als Literalzeichenfolge und nicht als Platzhalter verwendet. +wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = Das *-Wildcard für Header ist nicht mit dem AutoHeaders-Schalter kompatibel. +wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = Das *-Wildcard für Methoden ist nicht mit dem AutoMethods-Schalter kompatibel. +invalidAccessControlMaxAgeDurationExceptionMessage = Ungültige Access-Control-Max-Age-Dauer angegeben: {0}. Sollte größer als 0 sein. +noNameForWebSocketDisconnectExceptionMessage = Kein Name für die Trennung vom WebSocket angegeben. +noNameForWebSocketRemoveExceptionMessage = Kein Name für das Entfernen des WebSocket angegeben. +noNameForWebSocketSendMessageExceptionMessage = Kein Name für das Senden einer Nachricht an den WebSocket angegeben. +noSecretNamedMountedExceptionMessage = Kein Geheimnis mit dem Namen '{0}' wurde eingebunden. +noNameForWebSocketResetExceptionMessage = Kein Name für das Zurücksetzen des WebSocket angegeben. +'@ diff --git a/src/Locales/en/Pode.psd1 b/src/Locales/en/Pode.psd1 index 1e1785393..68307fa13 100644 --- a/src/Locales/en/Pode.psd1 +++ b/src/Locales/en/Pode.psd1 @@ -2,7 +2,7 @@ ConvertFrom-StringData -StringData @' adModuleWindowsOnlyExceptionMessage = Active Directory module only available on Windows. adModuleNotInstalledExceptionMessage = Active Directory module is not installed. secretManagementModuleNotInstalledExceptionMessage = Microsoft.PowerShell.SecretManagement module not installed. -secretVaultAlreadyRegisteredExceptionMessage = A Secret Vault with the name '{0}' has already been registered while auto-importing Secret Vaults. +secretVaultAlreadyRegisteredAutoImportExceptionMessage = A Secret Vault with the name '{0}' has already been registered while auto-importing Secret Vaults. failedToOpenRunspacePoolExceptionMessage = Failed to open RunspacePool: {0} cronExpressionInvalidExceptionMessage = Cron expression should only consist of 5 parts: {0} invalidAliasFoundExceptionMessage = Invalid {0} alias found: {1} @@ -164,4 +164,18 @@ noSessionAvailableToSaveExceptionMessage = There is no session available to save cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = Cannot supply an interval when the parameter 'Every' is set to None. cannotSupplyIntervalForQuarterExceptionMessage = Cannot supply interval value for every quarter. cannotSupplyIntervalForYearExceptionMessage = Cannot supply interval value for every year. +secretVaultAlreadyRegisteredExceptionMessage = A Secret Vault with the name '{0}' has already been registered{1}. +secretVaultUnlockExpiryDateInPastExceptionMessage = Secret Vault unlock expiry date is in the past (UTC): {0} +secretAlreadyMountedExceptionMessage = A Secret with the name '{0}' has already been mounted +noSecretVaultRegisteredExceptionMessage = No Secret Vault with the name '{0}' has been registered +noAdditionalPropertiesMutuallyExclusiveExceptionMessage = Parameters 'NoAdditionalProperties' and 'AdditionalProperties' are mutually exclusive. +credentialsPassedWildcardForHeadersLiteralExceptionMessage = When Credentials is passed, The * wildcard for Headers will be taken as a literal string and not a wildcard. +wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = The * wildcard for Headers is incompatible with the AutoHeaders switch. +wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = The * wildcard for Methods is incompatible with the AutoMethods switch. +invalidAccessControlMaxAgeDurationExceptionMessage = Invalid Access-Control-Max-Age duration supplied: {0}. Should be greater than 0. +noNameForWebSocketDisconnectExceptionMessage = No Name for a WebSocket to disconnect from supplied. +noNameForWebSocketRemoveExceptionMessage = No Name for a WebSocket to remove supplied. +noNameForWebSocketSendMessageExceptionMessage = No Name for a WebSocket to send message to supplied. +noSecretNamedMountedExceptionMessage = No Secret named '{0}' has been mounted. +noNameForWebSocketResetExceptionMessage = No Name for a WebSocket to reset supplied. '@ \ No newline at end of file diff --git a/src/Locales/es/Pode.psd1 b/src/Locales/es/Pode.psd1 index 5468df945..4524bc327 100644 --- a/src/Locales/es/Pode.psd1 +++ b/src/Locales/es/Pode.psd1 @@ -2,7 +2,7 @@ ConvertFrom-StringData -StringData @' adModuleWindowsOnlyExceptionMessage = El módulo de Active Directory solo está disponible en Windows. adModuleNotInstalledExceptionMessage = El módulo de Active Directory no está instalado. secretManagementModuleNotInstalledExceptionMessage = El módulo Microsoft.PowerShell.SecretManagement no está instalado. -secretVaultAlreadyRegisteredExceptionMessage = Ya se ha registrado un Bóveda Secreta con el nombre '{0}' al importar automáticamente Bóvedas Secretas. +secretVaultAlreadyRegisteredAutoImportExceptionMessage = Ya se ha registrado un Bóveda Secreta con el nombre '{0}' al importar automáticamente Bóvedas Secretas. failedToOpenRunspacePoolExceptionMessage = Error al abrir RunspacePool: {0} cronExpressionInvalidExceptionMessage = La expresión Cron solo debe consistir en 5 partes: {0} invalidAliasFoundExceptionMessage = Se encontró un alias {0} no válido: {1} @@ -164,4 +164,18 @@ noSessionAvailableToSaveExceptionMessage = No hay sesión disponible para guarda cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = No se puede proporcionar un intervalo cuando el parámetro 'Every' está configurado en None. cannotSupplyIntervalForQuarterExceptionMessage = No se puede proporcionar un valor de intervalo para cada trimestre. cannotSupplyIntervalForYearExceptionMessage = No se puede proporcionar un valor de intervalo para cada año. -'@ \ No newline at end of file +secretVaultAlreadyRegisteredExceptionMessage = Un Cofre de Secretos con el nombre '{0}' ya ha sido registrado{1}. +secretVaultUnlockExpiryDateInPastExceptionMessage = La fecha de expiración para desbloquear el Cofre de Secretos está en el pasado (UTC): {0} +secretAlreadyMountedExceptionMessage = Un Secreto con el nombre '{0}' ya ha sido montado. +noSecretVaultRegisteredExceptionMessage = No se ha registrado ningún Cofre de Secretos con el nombre '{0}'. +noAdditionalPropertiesMutuallyExclusiveExceptionMessage = Los parámetros 'NoAdditionalProperties' y 'AdditionalProperties' son mutuamente excluyentes. +credentialsPassedWildcardForHeadersLiteralExceptionMessage = Cuando se pasan las Credenciales, el comodín * para los Encabezados se tomará como una cadena literal y no como un comodín. +wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = El comodín * para los Encabezados es incompatible con el interruptor AutoHeaders. +wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = El comodín * para los Métodos es incompatible con el interruptor AutoMethods. +invalidAccessControlMaxAgeDurationExceptionMessage = Duración inválida para Access-Control-Max-Age proporcionada: {0}. Debe ser mayor que 0. +noNameForWebSocketDisconnectExceptionMessage = No se proporcionó ningún nombre para desconectar el WebSocket. +noNameForWebSocketRemoveExceptionMessage = No se proporcionó ningún nombre para eliminar el WebSocket. +noNameForWebSocketSendMessageExceptionMessage = No se proporcionó ningún nombre para enviar un mensaje al WebSocket. +noSecretNamedMountedExceptionMessage = No se ha montado ningún Secreto con el nombre '{0}'. +noNameForWebSocketResetExceptionMessage = No se proporcionó ningún nombre para restablecer el WebSocket. +'@ diff --git a/src/Locales/fr/Pode.psd1 b/src/Locales/fr/Pode.psd1 index 8e620534e..c231b7891 100644 --- a/src/Locales/fr/Pode.psd1 +++ b/src/Locales/fr/Pode.psd1 @@ -2,7 +2,7 @@ ConvertFrom-StringData -StringData @' adModuleWindowsOnlyExceptionMessage = Le module Active Directory est uniquement disponible sur Windows. adModuleNotInstalledExceptionMessage = Le module Active Directory n'est pas installé. secretManagementModuleNotInstalledExceptionMessage = Le module Microsoft.PowerShell.SecretManagement n'est pas installé. -secretVaultAlreadyRegisteredExceptionMessage = Un coffre-fort secret avec le nom '{0}' a déjà été enregistré lors de l'importation automatique des coffres-forts secrets. +secretVaultAlreadyRegisteredAutoImportExceptionMessage = Un coffre-fort secret avec le nom '{0}' a déjà été enregistré lors de l'importation automatique des coffres-forts secrets. failedToOpenRunspacePoolExceptionMessage = Échec de l'ouverture de RunspacePool : {0} cronExpressionInvalidExceptionMessage = L'expression Cron doit uniquement comporter 5 parties : {0} invalidAliasFoundExceptionMessage = Alias {0} non valide trouvé : {1} @@ -164,4 +164,18 @@ noSessionAvailableToSaveExceptionMessage = Aucune session disponible pour sauveg cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = Impossible de fournir un intervalle lorsque le paramètre 'Every' est défini sur None. cannotSupplyIntervalForQuarterExceptionMessage = Impossible de fournir une valeur d'intervalle pour chaque trimestre. cannotSupplyIntervalForYearExceptionMessage = Impossible de fournir une valeur d'intervalle pour chaque année. -'@ \ No newline at end of file +secretVaultAlreadyRegisteredExceptionMessage = Un Coffre-Fort de Secrets avec le nom '{0}' a déjà été enregistré{1}. +secretVaultUnlockExpiryDateInPastExceptionMessage = La date d'expiration du déverrouillage du Coffre-Fort de Secrets est dans le passé (UTC) : {0} +secretAlreadyMountedExceptionMessage = Un Secret avec le nom '{0}' a déjà été monté. +noSecretVaultRegisteredExceptionMessage = Aucun Coffre-Fort de Secrets avec le nom '{0}' n'a été enregistré. +noAdditionalPropertiesMutuallyExclusiveExceptionMessage = Les paramètres 'NoAdditionalProperties' et 'AdditionalProperties' sont mutuellement exclusifs. +credentialsPassedWildcardForHeadersLiteralExceptionMessage = Lorsque des Identifiants sont passés, le caractère générique * pour les En-têtes sera pris comme une chaîne littérale et non comme un caractère générique. +wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = Le caractère générique * pour les En-têtes est incompatible avec le commutateur AutoHeaders. +wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = Le caractère générique * pour les Méthodes est incompatible avec le commutateur AutoMethods. +invalidAccessControlMaxAgeDurationExceptionMessage = Durée Access-Control-Max-Age invalide fournie : {0}. Doit être supérieure à 0. +noNameForWebSocketDisconnectExceptionMessage = Aucun Nom fourni pour déconnecter le WebSocket. +noNameForWebSocketRemoveExceptionMessage = Aucun Nom fourni pour supprimer le WebSocket. +noNameForWebSocketSendMessageExceptionMessage = Aucun Nom fourni pour envoyer un message au WebSocket. +noSecretNamedMountedExceptionMessage = Aucun Secret nommé '{0}' n'a été monté. +noNameForWebSocketResetExceptionMessage = Aucun Nom fourni pour réinitialiser le WebSocket. +'@ diff --git a/src/Locales/it/Pode.psd1 b/src/Locales/it/Pode.psd1 index 8d7c8ab58..87316e090 100644 --- a/src/Locales/it/Pode.psd1 +++ b/src/Locales/it/Pode.psd1 @@ -2,7 +2,7 @@ ConvertFrom-StringData -StringData @' adModuleWindowsOnlyExceptionMessage = Il modulo Active Directory è disponibile solo su Windows. adModuleNotInstalledExceptionMessage = Il modulo Active Directory non è installato. secretManagementModuleNotInstalledExceptionMessage = Il modulo Microsoft.PowerShell.SecretManagement non è installato. -secretVaultAlreadyRegisteredExceptionMessage = Una cassaforte segreta con il nome '{0}' è già stata registrata durante l'importazione automatica delle cassaforti segrete. +secretVaultAlreadyRegisteredAutoImportExceptionMessage = Una cassaforte segreta con il nome '{0}' è già stata registrata durante l'importazione automatica delle cassaforti segrete. failedToOpenRunspacePoolExceptionMessage = Impossibile aprire RunspacePool: {0} cronExpressionInvalidExceptionMessage = L'espressione Cron dovrebbe essere composta solo da 5 parti: {0} invalidAliasFoundExceptionMessage = Alias {0} non valido trovato: {1} @@ -164,4 +164,18 @@ noSessionAvailableToSaveExceptionMessage = Nessuna sessione disponibile per il s cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = Impossibile fornire un intervallo quando il parametro 'Every' è impostato su None. cannotSupplyIntervalForQuarterExceptionMessage = Impossibile fornire un valore di intervallo per ogni trimestre. cannotSupplyIntervalForYearExceptionMessage = Impossibile fornire un valore di intervallo per ogni anno. -'@ \ No newline at end of file +secretVaultAlreadyRegisteredExceptionMessage = Un Vault dei Segreti con il nome '{0}' è già stato registrato{1}. +secretVaultUnlockExpiryDateInPastExceptionMessage = La data di scadenza per sbloccare il Vault dei Segreti è nel passato (UTC): {0} +secretAlreadyMountedExceptionMessage = Un Segreto con il nome '{0}' è già stato montato. +noSecretVaultRegisteredExceptionMessage = Nessun Vault dei Segreti con il nome '{0}' è stato registrato. +noAdditionalPropertiesMutuallyExclusiveExceptionMessage = I parametri 'NoAdditionalProperties' e 'AdditionalProperties' sono mutuamente esclusivi. +credentialsPassedWildcardForHeadersLiteralExceptionMessage = Quando vengono passate le Credenziali, il carattere jolly * per le Intestazioni sarà considerato come una stringa letterale e non come un carattere jolly. +wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = Il carattere jolly * per le Intestazioni è incompatibile con l'opzione AutoHeaders. +wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = Il carattere jolly * per i Metodi è incompatibile con l'opzione AutoMethods. +invalidAccessControlMaxAgeDurationExceptionMessage = Durata non valida fornita per Access-Control-Max-Age: {0}. Deve essere maggiore di 0. +noNameForWebSocketDisconnectExceptionMessage = Nessun nome fornito per disconnettere il WebSocket. +noNameForWebSocketRemoveExceptionMessage = Nessun nome fornito per rimuovere il WebSocket. +noNameForWebSocketSendMessageExceptionMessage = Nessun nome fornito per inviare un messaggio al WebSocket. +noSecretNamedMountedExceptionMessage = Nessun Segreto con il nome '{0}' è stato montato. +noNameForWebSocketResetExceptionMessage = Nessun nome fornito per reimpostare il WebSocket. +'@ diff --git a/src/Locales/ja/Pode.psd1 b/src/Locales/ja/Pode.psd1 index ef6a43934..d5dc10f5b 100644 --- a/src/Locales/ja/Pode.psd1 +++ b/src/Locales/ja/Pode.psd1 @@ -2,7 +2,7 @@ ConvertFrom-StringData -StringData @' adModuleWindowsOnlyExceptionMessage = Active DirectoryモジュールはWindowsでのみ利用可能です。 adModuleNotInstalledExceptionMessage = Active Directoryモジュールがインストールされていません。 secretManagementModuleNotInstalledExceptionMessage = Microsoft.PowerShell.SecretManagementモジュールがインストールされていません。 -secretVaultAlreadyRegisteredExceptionMessage = シークレットボールト'{0}'は既に登録されています(シークレットボールトの自動インポート中)。 +secretVaultAlreadyRegisteredAutoImportExceptionMessage = シークレットボールト'{0}'は既に登録されています(シークレットボールトの自動インポート中)。 failedToOpenRunspacePoolExceptionMessage = RunspacePoolのオープンに失敗しました: {0} cronExpressionInvalidExceptionMessage = Cron式は5つの部分で構成される必要があります: {0} invalidAliasFoundExceptionMessage = 無効な{0}エイリアスが見つかりました: {1} @@ -164,4 +164,19 @@ noSessionAvailableToSaveExceptionMessage = 保存するためのセッション cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = パラメーター'Every'がNoneに設定されている場合、間隔を提供できません。 cannotSupplyIntervalForQuarterExceptionMessage = 四半期ごとの間隔値を提供できません。 cannotSupplyIntervalForYearExceptionMessage = 毎年の間隔値を提供できません。 +secretVaultAlreadyRegisteredExceptionMessage = 名前 '{0}' のシークレットボールトは既に登録されています{1}。 +secretVaultUnlockExpiryDateInPastExceptionMessage = シークレットボールトのアンロック有効期限が過去に設定されています (UTC) :{0} +secretAlreadyMountedExceptionMessage = 名前 '{0}' のシークレットは既にマウントされています。 +noSecretVaultRegisteredExceptionMessage = 名前 '{0}' のシークレットボールトは登録されていません。 +noAdditionalPropertiesMutuallyExclusiveExceptionMessage = パラメータ 'NoAdditionalProperties' と 'AdditionalProperties' は相互に排他的です。 +credentialsPassedWildcardForHeadersLiteralExceptionMessage = 資格情報が渡されると、ヘッダーのワイルドカード * はワイルドカードとしてではなく、リテラル文字列として解釈されます。 +wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = ヘッダーのワイルドカード * は AutoHeaders スイッチと互換性がありません。 +wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = メソッドのワイルドカード * は AutoMethods スイッチと互換性がありません。 +invalidAccessControlMaxAgeDurationExceptionMessage = 無効な Access-Control-Max-Age 期間が提供されました:{0}。0 より大きくする必要があります。 +noNameForWebSocketDisconnectExceptionMessage = 切断する WebSocket の名前が指定されていません。 +noNameForWebSocketRemoveExceptionMessage = 削除する WebSocket の名前が指定されていません。 +noNameForWebSocketSendMessageExceptionMessage = メッセージを送信する WebSocket の名前が指定されていません。 +noSecretNamedMountedExceptionMessage = 名前 '{0}' のシークレットはマウントされていません。 +noNameForWebSocketResetExceptionMessage = リセットする WebSocket の名前が指定されていません。 '@ + diff --git a/src/Locales/kr/Pode.psd1 b/src/Locales/kr/Pode.psd1 index d75ec5c19..da743cbf7 100644 --- a/src/Locales/kr/Pode.psd1 +++ b/src/Locales/kr/Pode.psd1 @@ -2,7 +2,7 @@ ConvertFrom-StringData -StringData @' adModuleWindowsOnlyExceptionMessage = Active Directory 모듈은 Windows에서만 사용할 수 있습니다. adModuleNotInstalledExceptionMessage = Active Directory 모듈이 설치되지 않았습니다. secretManagementModuleNotInstalledExceptionMessage = Microsoft.PowerShell.SecretManagement 모듈이 설치되지 않았습니다. -secretVaultAlreadyRegisteredExceptionMessage = 이름이 '{0}'인 비밀 금고가 이미 자동으로 가져오는 동안 등록되었습니다. +secretVaultAlreadyRegisteredAutoImportExceptionMessage = 이름이 '{0}'인 비밀 금고가 이미 자동으로 가져오는 동안 등록되었습니다. failedToOpenRunspacePoolExceptionMessage = RunspacePool을 여는 데 실패했습니다: {0} cronExpressionInvalidExceptionMessage = Cron 표현식은 5개의 부분으로만 구성되어야 합니다: {0} invalidAliasFoundExceptionMessage = 잘못된 {0} 별칭이 발견되었습니다: {1} @@ -164,4 +164,18 @@ noSessionAvailableToSaveExceptionMessage = 저장할 수 있는 세션이 없습 cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = 매개변수 'Every'가 None으로 설정된 경우 간격을 제공할 수 없습니다. cannotSupplyIntervalForQuarterExceptionMessage = 분기별 간격 값을 제공할 수 없습니다. cannotSupplyIntervalForYearExceptionMessage = 매년 간격 값을 제공할 수 없습니다. -'@ \ No newline at end of file +secretVaultAlreadyRegisteredExceptionMessage = 이름이 '{0}'인 시크릿 금고가 이미 등록되었습니다{1}. +secretVaultUnlockExpiryDateInPastExceptionMessage = 시크릿 금고의 잠금 해제 만료 날짜가 과거입니다 (UTC): {0} +secretAlreadyMountedExceptionMessage = 이름이 '{0}'인 시크릿이 이미 마운트되었습니다. +noSecretVaultRegisteredExceptionMessage = 이름이 '{0}'인 시크릿 금고가 등록되지 않았습니다. +noAdditionalPropertiesMutuallyExclusiveExceptionMessage = 'NoAdditionalProperties' 및 'AdditionalProperties' 매개변수는 상호 배타적입니다. +credentialsPassedWildcardForHeadersLiteralExceptionMessage = 자격 증명이 전달되면, 헤더에 대한 * 와일드카드는 와일드카드가 아닌 리터럴 문자열로 취급됩니다. +wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = 헤더에 대한 * 와일드카드는 AutoHeaders 스위치와 호환되지 않습니다. +wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = 메서드에 대한 * 와일드카드는 AutoMethods 스위치와 호환되지 않습니다. +invalidAccessControlMaxAgeDurationExceptionMessage = 잘못된 Access-Control-Max-Age 기간이 제공되었습니다: {0}. 0보다 커야 합니다. +noNameForWebSocketDisconnectExceptionMessage = 연결을 끊을 WebSocket의 이름이 제공되지 않았습니다. +noNameForWebSocketRemoveExceptionMessage = 제거할 WebSocket의 이름이 제공되지 않았습니다. +noNameForWebSocketSendMessageExceptionMessage = 메시지를 보낼 WebSocket의 이름이 제공되지 않았습니다. +noSecretNamedMountedExceptionMessage = 이름이 '{0}'인 시크릿이 마운트되지 않았습니다. +noNameForWebSocketResetExceptionMessage = 재설정할 WebSocket의 이름이 제공되지 않았습니다. +'@ diff --git a/src/Locales/pl/Pode.psd1 b/src/Locales/pl/Pode.psd1 index 08b432c82..6c14ac170 100644 --- a/src/Locales/pl/Pode.psd1 +++ b/src/Locales/pl/Pode.psd1 @@ -2,7 +2,7 @@ ConvertFrom-StringData -StringData @' adModuleWindowsOnlyExceptionMessage = Moduł Active Directory jest dostępny tylko w systemie Windows. adModuleNotInstalledExceptionMessage = Moduł Active Directory nie jest zainstalowany. secretManagementModuleNotInstalledExceptionMessage = Moduł Microsoft.PowerShell.SecretManagement nie jest zainstalowany. -secretVaultAlreadyRegisteredExceptionMessage = Skarbiec z nazwą '{0}' został już zarejestrowany podczas automatycznego importowania skarbców. +secretVaultAlreadyRegisteredAutoImportExceptionMessage = Skarbiec z nazwą '{0}' został już zarejestrowany podczas automatycznego importowania skarbców. failedToOpenRunspacePoolExceptionMessage = Nie udało się otworzyć RunspacePool: {0} cronExpressionInvalidExceptionMessage = Wyrażenie Cron powinno składać się tylko z 5 części: {0} invalidAliasFoundExceptionMessage = Znaleziono nieprawidłowy alias {0}: {1} @@ -164,4 +164,18 @@ noSessionAvailableToSaveExceptionMessage = Brak dostępnej sesji do zapisania. cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = Nie można dostarczyć interwału, gdy parametr 'Every' jest ustawiony na None. cannotSupplyIntervalForQuarterExceptionMessage = Nie można dostarczyć wartości interwału dla każdego kwartału. cannotSupplyIntervalForYearExceptionMessage = Nie można dostarczyć wartości interwału dla każdego roku. -'@ \ No newline at end of file +secretVaultAlreadyRegisteredExceptionMessage = Skarbiec tajemnic o nazwie '{0}' został już zarejestrowany{1}. +secretVaultUnlockExpiryDateInPastExceptionMessage = Data wygaśnięcia odblokowania Skarbca tajemnic jest w przeszłości (UTC): {0} +secretAlreadyMountedExceptionMessage = Tajemnica o nazwie '{0}' została już zamontowana. +noSecretVaultRegisteredExceptionMessage = Skarbiec tajemnic o nazwie '{0}' nie został zarejestrowany. +noAdditionalPropertiesMutuallyExclusiveExceptionMessage = Parametry 'NoAdditionalProperties' i 'AdditionalProperties' wykluczają się wzajemnie. +credentialsPassedWildcardForHeadersLiteralExceptionMessage = Gdy przekazywane są dane uwierzytelniające, symbol wieloznaczny * dla nagłówków będzie traktowany jako dosłowny ciąg znaków, a nie symbol wieloznaczny. +wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = Symbol wieloznaczny * dla nagłówków jest niezgodny z przełącznikiem AutoHeaders. +wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = Symbol wieloznaczny * dla metod jest niezgodny z przełącznikiem AutoMethods. +invalidAccessControlMaxAgeDurationExceptionMessage = Podano nieprawidłowy czas trwania Access-Control-Max-Age: {0}. Powinien być większy niż 0. +noNameForWebSocketDisconnectExceptionMessage = Nie podano nazwy dla rozłączenia WebSocket. +noNameForWebSocketRemoveExceptionMessage = Nie podano nazwy dla usunięcia WebSocket. +noNameForWebSocketSendMessageExceptionMessage = Nie podano nazwy dla wysłania wiadomości do WebSocket. +noSecretNamedMountedExceptionMessage = Nie zamontowano tajemnicy o nazwie '{0}'. +noNameForWebSocketResetExceptionMessage = Nie podano nazwy dla resetowania WebSocket. +'@ diff --git a/src/Locales/pt/Pode.psd1 b/src/Locales/pt/Pode.psd1 index 9f1e5f315..48f00bae8 100644 --- a/src/Locales/pt/Pode.psd1 +++ b/src/Locales/pt/Pode.psd1 @@ -2,7 +2,7 @@ ConvertFrom-StringData -StringData @' adModuleWindowsOnlyExceptionMessage = O módulo Active Directory está disponível apenas no Windows. adModuleNotInstalledExceptionMessage = O módulo Active Directory não está instalado. secretManagementModuleNotInstalledExceptionMessage = O módulo Microsoft.PowerShell.SecretManagement não está instalado. -secretVaultAlreadyRegisteredExceptionMessage = Um Cofre de Segredos com o nome '{0}' já foi registrado durante a importação automática de Cofres de Segredos. +secretVaultAlreadyRegisteredAutoImportExceptionMessage = Um Cofre de Segredos com o nome '{0}' já foi registrado durante a importação automática de Cofres de Segredos. failedToOpenRunspacePoolExceptionMessage = Falha ao abrir o RunspacePool: {0} cronExpressionInvalidExceptionMessage = A expressão Cron deve consistir apenas em 5 partes: {0} invalidAliasFoundExceptionMessage = Alias {0} inválido encontrado: {1} @@ -164,4 +164,18 @@ noSessionAvailableToSaveExceptionMessage = Não há sessão disponível para sal cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = Não é possível fornecer um intervalo quando o parâmetro 'Every' está definido como None. cannotSupplyIntervalForQuarterExceptionMessage = Não é possível fornecer um valor de intervalo para cada trimestre. cannotSupplyIntervalForYearExceptionMessage = Não é possível fornecer um valor de intervalo para cada ano. -'@ \ No newline at end of file +secretVaultAlreadyRegisteredExceptionMessage = Um Cofre de Segredos com o nome '{0}' já foi registrado{1}. +secretVaultUnlockExpiryDateInPastExceptionMessage = A data de expiração de desbloqueio do Cofre de Segredos está no passado (UTC): {0} +secretAlreadyMountedExceptionMessage = Um Segredo com o nome '{0}' já foi montado. +noSecretVaultRegisteredExceptionMessage = Nenhum Cofre de Segredos com o nome '{0}' foi registrado. +noAdditionalPropertiesMutuallyExclusiveExceptionMessage = Os parâmetros 'NoAdditionalProperties' e 'AdditionalProperties' são mutuamente exclusivos. +credentialsPassedWildcardForHeadersLiteralExceptionMessage = Quando as Credenciais são passadas, o caractere curinga * para os Cabeçalhos será interpretado como uma string literal e não como um caractere curinga. +wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = O caractere curinga * para os Cabeçalhos é incompatível com a chave AutoHeaders. +wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = O caractere curinga * para os Métodos é incompatível com a chave AutoMethods. +invalidAccessControlMaxAgeDurationExceptionMessage = Duração inválida fornecida para Access-Control-Max-Age: {0}. Deve ser maior que 0. +noNameForWebSocketDisconnectExceptionMessage = Nenhum nome fornecido para desconectar do WebSocket. +noNameForWebSocketRemoveExceptionMessage = Nenhum nome fornecido para remover o WebSocket. +noNameForWebSocketSendMessageExceptionMessage = Nenhum nome fornecido para enviar mensagem ao WebSocket. +noSecretNamedMountedExceptionMessage = Nenhum Segredo com o nome '{0}' foi montado. +noNameForWebSocketResetExceptionMessage = Nenhum nome fornecido para redefinir o WebSocket. +'@ diff --git a/src/Locales/zn/Pode.psd1 b/src/Locales/zn/Pode.psd1 index 8d22b0ab4..24551f086 100644 --- a/src/Locales/zn/Pode.psd1 +++ b/src/Locales/zn/Pode.psd1 @@ -2,7 +2,7 @@ ConvertFrom-StringData -StringData @' adModuleWindowsOnlyExceptionMessage = 仅支持 Windows 的 Active Directory 模块。 adModuleNotInstalledExceptionMessage = 未安装 Active Directory 模块。 secretManagementModuleNotInstalledExceptionMessage = 未安装 Microsoft.PowerShell.SecretManagement 模块。 -secretVaultAlreadyRegisteredExceptionMessage = 已经注册了名称为 '{0}' 的秘密保险库,同时正在自动导入秘密保险库。 +secretVaultAlreadyRegisteredAutoImportExceptionMessage = 已经注册了名称为 '{0}' 的秘密保险库,同时正在自动导入秘密保险库。 failedToOpenRunspacePoolExceptionMessage = 打开 RunspacePool 失败: {0} cronExpressionInvalidExceptionMessage = Cron 表达式应仅包含 5 个部分: {0} invalidAliasFoundExceptionMessage = 找到了无效的 {0} 别名: {1} @@ -164,4 +164,18 @@ noSessionAvailableToSaveExceptionMessage = 没有可保存的会话。 cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = 当参数'Every'设置为None时, 无法提供间隔。 cannotSupplyIntervalForQuarterExceptionMessage = 无法为每季度提供间隔值。 cannotSupplyIntervalForYearExceptionMessage = 无法为每年提供间隔值。 -'@ \ No newline at end of file +secretVaultAlreadyRegisteredExceptionMessage = 名为“{0}”的秘密保险库已注册{1}。 +secretVaultUnlockExpiryDateInPastExceptionMessage = 秘密保险库的解锁到期日期已过 (UTC) :{0} +secretAlreadyMountedExceptionMessage = 名为“{0}”的秘密已挂载。 +noSecretVaultRegisteredExceptionMessage = 没有注册名为“{0}”的秘密保险库。 +noAdditionalPropertiesMutuallyExclusiveExceptionMessage = 参数 'NoAdditionalProperties' 和 'AdditionalProperties' 是互斥的。 +credentialsPassedWildcardForHeadersLiteralExceptionMessage = 传递凭据时,标头的通配符 * 将被视为文字字符串,而不是通配符。 +wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = 标头的通配符 * 与 AutoHeaders 开关不兼容。 +wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = 方法的通配符 * 与 AutoMethods 开关不兼容。 +invalidAccessControlMaxAgeDurationExceptionMessage = 提供的 Access-Control-Max-Age 时长无效:{0}。应大于 0。 +noNameForWebSocketDisconnectExceptionMessage = 没有提供断开连接的 WebSocket 的名称。 +noNameForWebSocketRemoveExceptionMessage = 没有提供要删除的 WebSocket 的名称。 +noNameForWebSocketSendMessageExceptionMessage = 没有提供要发送消息的 WebSocket 的名称。 +noSecretNamedMountedExceptionMessage = 没有挂载名为“{0}”的秘密。 +noNameForWebSocketResetExceptionMessage = 没有提供要重置的 WebSocket 的名称。 +'@ diff --git a/src/Pode.psm1 b/src/Pode.psm1 index ad21d2e0f..bf3f6fd54 100644 --- a/src/Pode.psm1 +++ b/src/Pode.psm1 @@ -37,10 +37,10 @@ if ([string]::IsNullOrEmpty($UICulture)) { } #Culture list available here https://azuliadesigns.com/c-sharp-tutorials/list-net-culture-country-codes/ -Import-LocalizedData -BindingVariable tmpMsgtable -BaseDirectory (Join-Path -Path $root -ChildPath 'Locales') -UICulture $UICulture -ErrorAction:SilentlyContinue -if ($null -eq $tmpMsgtable) { +Import-LocalizedData -BindingVariable tmpPodeLocale -BaseDirectory (Join-Path -Path $root -ChildPath 'Locales') -UICulture $UICulture -ErrorAction:SilentlyContinue +if ($null -eq $tmpPodeLocale) { try { - Import-LocalizedData -BindingVariable tmpMsgtable -BaseDirectory (Join-Path -Path $root -ChildPath 'Locales') -UICulture 'en' -ErrorAction:Stop + Import-LocalizedData -BindingVariable tmpPodeLocale -BaseDirectory (Join-Path -Path $root -ChildPath 'Locales') -UICulture 'en' -ErrorAction:Stop } catch { throw @@ -49,7 +49,7 @@ if ($null -eq $tmpMsgtable) { try { # Create the global msgTable read-only variable - New-Variable -Name 'msgTable' -Value $tmpMsgtable -Scope Global -Option ReadOnly -Force + New-Variable -Name 'PodeLocale' -Value $tmpMsgtable -Scope Global -Option ReadOnly -Force # load assemblies Add-Type -AssemblyName System.Web -ErrorAction Stop @@ -71,7 +71,8 @@ if ($podeDll) { if ( $moduleManifest.ModuleVersion -ne '$version$') { $moduleVersion = ([version]::new($moduleManifest.ModuleVersion + '.0')) if ($podeDll.GetName().Version -ne $moduleVersion) { - throw ($msgTable.incompatiblePodeDllExceptionMessage -f $podeDll.GetName().Version, $moduleVersion) #"An existing incompatible Pode.DLL version $($podeDll.GetName().Version) is loaded. Version $moduleVersion is required. Open a new Powershell/pwsh session and retry." + # An existing incompatible Pode.DLL version {0} is loaded. Version {1} is required. Open a new Powershell/pwsh session and retry. + throw ($PodeLocale.incompatiblePodeDllExceptionMessage -f $podeDll.GetName().Version, $moduleVersion) } } } diff --git a/src/Private/Authentication.ps1 b/src/Private/Authentication.ps1 index 6acaa91c4..6b82e6a6c 100644 --- a/src/Private/Authentication.ps1 +++ b/src/Private/Authentication.ps1 @@ -2195,12 +2195,12 @@ function Expand-PodeAuthMerge { function Import-PodeAuthADModule { if (!(Test-PodeIsWindows)) { # Active Directory module only available on Windows - throw $msgTable.adModuleWindowsOnlyExceptionMessage + throw $PodeLocale.adModuleWindowsOnlyExceptionMessage } if (!(Test-PodeModuleInstalled -Name ActiveDirectory)) { # Active Directory module is not installed - throw $msgTable.adModuleNotInstalledExceptionMessage + throw $PodeLocale.adModuleNotInstalledExceptionMessage } Import-Module -Name ActiveDirectory -Force -ErrorAction Stop diff --git a/src/Private/AutoImport.ps1 b/src/Private/AutoImport.ps1 index 3bf5f0828..e3ec5ac5f 100644 --- a/src/Private/AutoImport.ps1 +++ b/src/Private/AutoImport.ps1 @@ -178,7 +178,7 @@ function Import-PodeSecretManagementVaultsIntoRegistry { # error if SecretManagement module not installed if (!(Test-PodeModuleInstalled -Name Microsoft.PowerShell.SecretManagement)) { # Microsoft.PowerShell.SecretManagement module not installed - throw $msgTable.secretManagementModuleNotInstalledExceptionMessage + throw $PodeLocale.secretManagementModuleNotInstalledExceptionMessage } # import the module @@ -196,7 +196,8 @@ function Import-PodeSecretManagementVaultsIntoRegistry { # is a vault with this name already registered? if (Test-PodeSecretVault -Name $vault.Name) { - throw ($msgTable.secretVaultAlreadyRegisteredExceptionMessage -f $vault.Name) #"A Secret Vault with the name '$($vault.Name)' has already been registered while auto-importing Secret Vaults" + throw ($PodeLocale.secretVaultAlreadyRegisteredExceptionMessage -f $vault.Name) + #"A Secret Vault with the name '$($vault.Name)' has already been registered while auto-importing Secret Vaults" } # register the vault diff --git a/src/Private/Context.ps1 b/src/Private/Context.ps1 index b60e0629b..af03fcf86 100644 --- a/src/Private/Context.ps1 +++ b/src/Private/Context.ps1 @@ -493,6 +493,7 @@ function New-PodeRunspaceState { $session = New-PodeStateContext -Context $PodeContext $variables = @( + (New-Object System.Management.Automation.Runspaces.SessionStateVariableEntry -ArgumentList 'PodeLocale', $PodeLocale, $null), (New-Object System.Management.Automation.Runspaces.SessionStateVariableEntry -ArgumentList 'PodeContext', $session, $null), (New-Object System.Management.Automation.Runspaces.SessionStateVariableEntry -ArgumentList 'Console', $Host, $null), (New-Object System.Management.Automation.Runspaces.SessionStateVariableEntry -ArgumentList 'PODE_SCOPE_RUNSPACE', $true, $null) @@ -666,7 +667,7 @@ function Open-PodeRunspacePools { if ($item.Pool.RunspacePoolStateInfo.State -ieq 'broken') { $item.Pool.EndOpen($item.Result) | Out-Default - throw ($msgTable.failedToOpenRunspacePoolExceptionMessage -f $key) #"Failed to open RunspacePool: $($key)" + throw ($PodeLocale.failedToOpenRunspacePoolExceptionMessage -f $key) #"Failed to open RunspacePool: $($key)" } } @@ -722,7 +723,7 @@ function Close-PodeRunspacePools { if ($item.Pool.RunspacePoolStateInfo.State -ieq 'broken') { $item.Pool.EndClose($item.Result) | Out-Default - throw ($msgTable.failedToOpenRunspacePoolExceptionMessage -f $key) #"Failed to open RunspacePool: $($key)" + throw ($PodeLocale.failedToOpenRunspacePoolExceptionMessage -f $key) #"Failed to open RunspacePool: $($key)" } } diff --git a/src/Private/CronParser.ps1 b/src/Private/CronParser.ps1 index d3358732a..f21f4cd8a 100644 --- a/src/Private/CronParser.ps1 +++ b/src/Private/CronParser.ps1 @@ -109,7 +109,7 @@ function ConvertFrom-PodeCronExpression { # split and check atoms length $atoms = @($Expression -isplit '\s+') if ($atoms.Length -ne 5) { - throw ($msgTable.cronExpressionInvalidExceptionMessage -f $Expression) #"Cron expression should only consist of 5 parts: $($Expression)" + throw ($PodeLocale.cronExpressionInvalidExceptionMessage -f $Expression) #"Cron expression should only consist of 5 parts: $($Expression)" } # basic variables @@ -140,7 +140,7 @@ function ConvertFrom-PodeCronExpression { while ($_atom -imatch $aliasRgx) { $_alias = $_aliases[$Matches['tag']] if ($null -eq $_alias) { - throw ($msgTable.invalidAliasFoundExceptionMessage -f $_field, $Matches['tag']) #"Invalid $($_field) alias found: $($Matches['tag'])" + throw ($PodeLocale.invalidAliasFoundExceptionMessage -f $_field, $Matches['tag']) #"Invalid $($_field) alias found: $($Matches['tag'])" } $_atom = $_atom -ireplace $Matches['tag'], $_alias @@ -150,7 +150,7 @@ function ConvertFrom-PodeCronExpression { # ensure atom is a valid value if (!($_atom -imatch '^[\d|/|*|\-|,r]+$')) { - throw ($msgTable.invalidAtomCharacterExceptionMessage -f $_atom)#"Invalid atom character: $($_atom)" + throw ($PodeLocale.invalidAtomCharacterExceptionMessage -f $_atom)#"Invalid atom character: $($_atom)" } # replace * with min/max constraint @@ -214,28 +214,28 @@ function ConvertFrom-PodeCronExpression { # error else { - throw ($msgTable.invalidAtomCharacterExceptionMessage -f $_atom)#"Invalid cron atom format found: $($_atom)" + throw ($PodeLocale.invalidAtomCharacterExceptionMessage -f $_atom)#"Invalid cron atom format found: $($_atom)" } # ensure cron expression values are valid if ($null -ne $_cronExp.Range) { if ($_cronExp.Range.Min -gt $_cronExp.Range.Max) { - throw ($msgTable.minValueGreaterThanMaxExceptionMessage -f $_field) #"Min value for $($_field) should not be greater than the max value" + throw ($PodeLocale.minValueGreaterThanMaxExceptionMessage -f $_field) #"Min value for $($_field) should not be greater than the max value" } if ($_cronExp.Range.Min -lt $_constraint[0]) { - throw ($msgTable.minValueInvalidExceptionMessage -f $_cronExp.Range.Min, $_field, $_constraint[0]) #"Min value '$($_cronExp.Range.Min)' for $($_field) is invalid, should be greater than/equal to $($_constraint[0])" + throw ($PodeLocale.minValueInvalidExceptionMessage -f $_cronExp.Range.Min, $_field, $_constraint[0]) #"Min value '$($_cronExp.Range.Min)' for $($_field) is invalid, should be greater than/equal to $($_constraint[0])" } if ($_cronExp.Range.Max -gt $_constraint[1]) { - throw ($msgTable.maxValueInvalidExceptionMessage -f $_cronExp.Range.Max, $_field, $_constraint[1]) #"Max value '$($_cronExp.Range.Max)' for $($_field) is invalid, should be less than/equal to $($_constraint[1])" + throw ($PodeLocale.maxValueInvalidExceptionMessage -f $_cronExp.Range.Max, $_field, $_constraint[1]) #"Max value '$($_cronExp.Range.Max)' for $($_field) is invalid, should be less than/equal to $($_constraint[1])" } } if ($null -ne $_cronExp.Values) { $_cronExp.Values | ForEach-Object { if ($_ -lt $_constraint[0] -or $_ -gt $_constraint[1]) { - throw ($msgTable.valueOutOfRangeExceptionMessage -f $value, $_field, $_constraint[0], $_constraint[1]) #"Value '$($_)' for $($_field) is invalid, should be between $($_constraint[0]) and $($_constraint[1])" + throw ($PodeLocale.valueOutOfRangeExceptionMessage -f $value, $_field, $_constraint[0], $_constraint[1]) #"Value '$($_)' for $($_field) is invalid, should be between $($_constraint[0]) and $($_constraint[1])" } } } @@ -250,7 +250,7 @@ function ConvertFrom-PodeCronExpression { foreach ($mon in $cron['Month'].Values) { foreach ($day in $cron['DayOfMonth'].Values) { if ($day -gt $constraints.DaysInMonths[$mon - 1]) { - throw ($msgTable.daysInMonthExceededExceptionMessage -f $constraints.Months[$mon - 1], $constraints.DaysInMonths[$mon - 1], $day) #"$($constraints.Months[$mon - 1]) only has $($constraints.DaysInMonths[$mon - 1]) days, but $($day) was supplied" + throw ($PodeLocale.daysInMonthExceededExceptionMessage -f $constraints.Months[$mon - 1], $constraints.DaysInMonths[$mon - 1], $day) #"$($constraints.Months[$mon - 1]) only has $($constraints.DaysInMonths[$mon - 1]) days, but $($day) was supplied" } } } @@ -518,7 +518,7 @@ function Get-PodeCronNextTrigger { # before we return, make sure the time is valid if (!(Test-PodeCronExpression -Expression $Expression -DateTime $NextTime)) { - throw ($msgTable.nextTriggerCalculationErrorExceptionMessage -f $NextTime) #"Looks like something went wrong trying to calculate the next trigger datetime: $($NextTime)" + throw ($PodeLocale.nextTriggerCalculationErrorExceptionMessage -f $NextTime) #"Looks like something went wrong trying to calculate the next trigger datetime: $($NextTime)" } # if before the start or after end then return null diff --git a/src/Private/Cryptography.ps1 b/src/Private/Cryptography.ps1 index d77012fe2..b295335a7 100644 --- a/src/Private/Cryptography.ps1 +++ b/src/Private/Cryptography.ps1 @@ -20,7 +20,7 @@ function Invoke-PodeHMACSHA256Hash { if ($SecretBytes.Length -eq 0) { # No secret supplied for HMAC256 hash - throw $msgTable.noSecretForHmac256ExceptionMessage + throw $PodeLocale.noSecretForHmac256ExceptionMessage } $crypto = [System.Security.Cryptography.HMACSHA256]::new($SecretBytes) @@ -49,7 +49,7 @@ function Invoke-PodeHMACSHA384Hash { if ($SecretBytes.Length -eq 0) { # No secret supplied for HMAC384 hash - throw $msgTable.noSecretForHmac384ExceptionMessage + throw $PodeLocale.noSecretForHmac384ExceptionMessage } $crypto = [System.Security.Cryptography.HMACSHA384]::new($SecretBytes) @@ -78,7 +78,7 @@ function Invoke-PodeHMACSHA512Hash { if ($SecretBytes.Length -eq 0) { # No secret supplied for HMAC512 hash - throw $msgTable.noSecretForHmac512ExceptionMessage + throw $PodeLocale.noSecretForHmac512ExceptionMessage } $crypto = [System.Security.Cryptography.HMACSHA512]::new($SecretBytes) @@ -308,12 +308,12 @@ function New-PodeJwtSignature { if (($Algorithm -ine 'none') -and (($null -eq $SecretBytes) -or ($SecretBytes.Length -eq 0))) { # No secret supplied for JWT signature - throw $msgTable.noSecretForJwtSignatureExceptionMessage + throw $PodeLocale.noSecretForJwtSignatureExceptionMessage } if (($Algorithm -ieq 'none') -and (($null -ne $secretBytes) -and ($SecretBytes.Length -gt 0))) { # Expected no secret to be supplied for no signature - throw $msgTable.noSecretExpectedForNoSignatureExceptionMessage + throw $PodeLocale.noSecretExpectedForNoSignatureExceptionMessage } $sig = $null @@ -339,7 +339,7 @@ function New-PodeJwtSignature { } default { - throw ($msgTable.unsupportedJwtAlgorithmExceptionMessage -f $Algorithm) #"The JWT algorithm is not currently supported: $($Algorithm)" + throw ($PodeLocale.unsupportedJwtAlgorithmExceptionMessage -f $Algorithm) #"The JWT algorithm is not currently supported: $($Algorithm)" } } @@ -399,7 +399,7 @@ function ConvertFrom-PodeJwtBase64Value { } catch { # Invalid Base64 encoded value found in JWT - throw $msgTable.invalidBase64JwtExceptionMessage + throw $PodeLocale.invalidBase64JwtExceptionMessage } # return json @@ -408,6 +408,6 @@ function ConvertFrom-PodeJwtBase64Value { } catch { # Invalid JSON value found in JWT - throw $msgTable.invalidJsonJwtExceptionMessage + throw $PodeLocale.invalidJsonJwtExceptionMessage } } \ No newline at end of file diff --git a/src/Private/Endpoints.ps1 b/src/Private/Endpoints.ps1 index 86e34f436..0414817ab 100644 --- a/src/Private/Endpoints.ps1 +++ b/src/Private/Endpoints.ps1 @@ -282,7 +282,7 @@ function Find-PodeEndpointName { # error? if ($ThrowError) { - throw ($msgTable.endpointNotExistExceptionMessage -f $Protocol, $Address, $_localAddress) #"Endpoint with protocol '$($Protocol)' and address '$($Address)' or local address '$($_localAddress)' does not exist" + throw ($PodeLocale.endpointNotExistExceptionMessage -f $Protocol, $Address, $_localAddress) #"Endpoint with protocol '$($Protocol)' and address '$($Address)' or local address '$($_localAddress)' does not exist" } return $null @@ -310,7 +310,7 @@ function Get-PodeEndpointByName { # error? if ($ThrowError) { - throw ($msgTable.endpointNameNotExistExceptionMessage -f $Name) #"Endpoint with name '$($Name)' does not exist" + throw ($PodeLocale.endpointNameNotExistExceptionMessage -f $Name) #"Endpoint with name '$($Name)' does not exist" } return $null diff --git a/src/Private/Gui.ps1 b/src/Private/Gui.ps1 index 8372c273a..38265052c 100644 --- a/src/Private/Gui.ps1 +++ b/src/Private/Gui.ps1 @@ -41,7 +41,7 @@ function Start-PodeGuiRunspace { Start-Sleep -Milliseconds 200 } else { - throw ($msgTable.failedToConnectToUrlExceptionMessage -f $uri) #"Failed to connect to URL: $($uri)" + throw ($PodeLocale.failedToConnectToUrlExceptionMessage -f $uri) #"Failed to connect to URL: $($uri)" } } } diff --git a/src/Private/Helpers.ps1 b/src/Private/Helpers.ps1 index e05e45835..73d5d5843 100644 --- a/src/Private/Helpers.ps1 +++ b/src/Private/Helpers.ps1 @@ -190,7 +190,7 @@ function Get-PodeEndpointInfo { # validate that we have a valid ip/host:port address if (!(($Address -imatch "^$($cmbdRgx)$") -or ($Address -imatch "^$($hostRgx)[\:]{0,1}") -or ($Address -imatch "[\:]{0,1}$($portRgx)$"))) { - throw ($msgTable.failedToParseAddressExceptionMessage -f $Address)#"Failed to parse '$($Address)' as a valid IP/Host:Port address" + throw ($PodeLocale.failedToParseAddressExceptionMessage -f $Address)#"Failed to parse '$($Address)' as a valid IP/Host:Port address" } # grab the ip address/hostname @@ -201,7 +201,7 @@ function Get-PodeEndpointInfo { # ensure we have a valid ip address/hostname if (!(Test-PodeIPAddress -IP $_host)) { - throw ($msgTable.invalidIpAddressExceptionMessage -f $_host) #"The IP address supplied is invalid: $($_host)" + throw ($PodeLocale.invalidIpAddressExceptionMessage -f $_host) #"The IP address supplied is invalid: $($_host)" } # grab the port @@ -212,7 +212,7 @@ function Get-PodeEndpointInfo { # ensure the port is valid if ($_port -lt 0) { - throw ($msgTable.invalidPortExceptionMessage -f $_port)#"The port cannot be negative: $($_port)" + throw ($PodeLocale.invalidPortExceptionMessage -f $_port)#"The port cannot be negative: $($_port)" } # return the info @@ -873,7 +873,7 @@ function New-PodePSDrive { # if the path supplied doesn't exist, error if (!(Test-Path $Path)) { - throw ($msgTable.pathNotExistExceptionMessage -f $Path)#"Path does not exist: $($Path)" + throw ($PodeLocale.pathNotExistExceptionMessage -f $Path)#"Path does not exist: $($Path)" } # resolve the path @@ -2333,7 +2333,7 @@ function Get-PodeRelativePath { # if flagged, test the path and throw error if it doesn't exist if ($TestPath -and !(Test-PodePath $Path -NoStatus)) { - throw ($msgTable.pathNotExistExceptionMessage -f (Protect-PodeValue -Value $Path -Default $_rawPath))#"The path does not exist: $(Protect-PodeValue -Value $Path -Default $_rawPath)" + throw ($PodeLocale.pathNotExistExceptionMessage -f (Protect-PodeValue -Value $Path -Default $_rawPath))#"The path does not exist: $(Protect-PodeValue -Value $Path -Default $_rawPath)" } return $Path @@ -2379,7 +2379,7 @@ function Test-PodeIsServerless { ) if ($PodeContext.Server.IsServerless -and $ThrowError) { - throw ($msgTable.unsupportedFunctionInServerlessContextExceptionMessage -f $FunctionName) #"The $($FunctionName) function is not supported in a serverless context" + throw ($PodeLocale.unsupportedFunctionInServerlessContextExceptionMessage -f $FunctionName) #"The $($FunctionName) function is not supported in a serverless context" } if (!$ThrowError) { @@ -2512,12 +2512,12 @@ function Convert-PodeFileToScriptBlock { # if Path doesn't exist, error if (!(Test-PodePath -Path $Path -NoStatus)) { - throw ($msgTable.pathNotExistExceptionMessage -f $Path) # "The Path supplied does not exist: $($Path)" + throw ($PodeLocale.pathNotExistExceptionMessage -f $Path) # "The Path supplied does not exist: $($Path)" } # if the path is a wildcard or directory, error if (!(Test-PodePathIsFile -Path $Path -FailOnWildcard)) { - throw ($msgTable.invalidPathWildcardOrDirectoryExceptionMessage -f $Path) # "The Path supplied cannot be a wildcard or a directory: $($Path)" + throw ($PodeLocale.invalidPathWildcardOrDirectoryExceptionMessage -f $Path) # "The Path supplied cannot be a wildcard or a directory: $($Path)" } return ([scriptblock](Use-PodeScript -Path $Path)) @@ -2604,7 +2604,7 @@ function Get-PodeAstFromFile { ) if (!(Test-Path $Path)) { - throw ($msgTable.pathNotExistExceptionMessage -f $Path) # "The Path supplied does not exist: $($Path)" + throw ($PodeLocale.pathNotExistExceptionMessage -f $Path) # "The Path supplied does not exist: $($Path)" } return [System.Management.Automation.Language.Parser]::ParseFile($Path, [ref]$null, [ref]$null) @@ -2709,7 +2709,7 @@ function Read-PodeWebExceptionDetails { } default { - throw ($msgTable.invalidExceptionTypeExceptionMessage -f ($_.Exception.GetType().Name))#"Exception is of an invalid type, should be either WebException or HttpRequestException, but got: $($_.Exception.GetType().Name)" + throw ($PodeLocale.invalidExceptionTypeExceptionMessage -f ($_.Exception.GetType().Name))#"Exception is of an invalid type, should be either WebException or HttpRequestException, but got: $($_.Exception.GetType().Name)" } } @@ -2743,7 +2743,7 @@ function Use-PodeFolder { # fail if path not found if (!(Test-PodePath -Path $Path -NoStatus)) { - throw ($msgTable.pathToLoadNotFoundExceptionMessage -f $DefaultPath, $Path) #"Path to load $($DefaultPath) not found: $($Path)" + throw ($PodeLocale.pathToLoadNotFoundExceptionMessage -f $DefaultPath, $Path) #"Path to load $($DefaultPath) not found: $($Path)" } # get .ps1 files and load them @@ -2847,7 +2847,7 @@ function Set-PodeCronInterval { } if ($Value.Length -gt 1) { - throw ($msgTable.singleValueForIntervalExceptionMessage -f $Type) #"You can only supply a single $($Type) value when using intervals" + throw ($PodeLocale.singleValueForIntervalExceptionMessage -f $Type) #"You can only supply a single $($Type) value when using intervals" } if ($Value.Length -eq 1) { @@ -3315,7 +3315,7 @@ function ConvertTo-PodeYamlInternal { catch { $_ | Write-PodeErrorLog $_.Exception | Write-PodeErrorLog -CheckInnerException - throw ($msgTable.scriptErrorExceptionMessage -f $_, $_.InvocationInfo.ScriptName, $_.InvocationInfo.Line.Trim(), $_.InvocationInfo.ScriptLineNumber, $_.InvocationInfo.OffsetInLine, $_.InvocationInfo.MyCommand, $type, $InputObject, $InputObject.GetType().Name, $InputObject.GetType().BaseType.Name) + throw ($PodeLocale.scriptErrorExceptionMessage -f $_, $_.InvocationInfo.ScriptName, $_.InvocationInfo.Line.Trim(), $_.InvocationInfo.ScriptLineNumber, $_.InvocationInfo.OffsetInLine, $_.InvocationInfo.MyCommand, $type, $InputObject, $InputObject.GetType().Name, $InputObject.GetType().BaseType.Name) #"Error'$($_)' in script $($_.InvocationInfo.ScriptName) $($_.InvocationInfo.Line.Trim()) (line $($_.InvocationInfo.ScriptLineNumber)) char $($_.InvocationInfo.OffsetInLine) executing $($_.InvocationInfo.MyCommand) on $type object '$($InputObject)' Class: $($InputObject.GetType().Name) BaseClass: $($InputObject.GetType().BaseType.Name) " } } diff --git a/src/Private/Middleware.ps1 b/src/Private/Middleware.ps1 index 182f38339..99cdbb445 100644 --- a/src/Private/Middleware.ps1 +++ b/src/Private/Middleware.ps1 @@ -79,7 +79,7 @@ function New-PodeMiddlewareInternal { if (Test-PodeIsEmpty $ScriptBlock) { # No ScriptBlock supplied - throw $msgTable.noScriptBlockSuppliedExceptionMessage + throw $PodeLocale.noScriptBlockSuppliedExceptionMessage } # if route is empty, set it to root @@ -394,7 +394,7 @@ function Initialize-PodeIISMiddleware { # fail if no iis token - because there should be! if ([string]::IsNullOrWhiteSpace($PodeContext.Server.IIS.Token)) { # IIS ASPNETCORE_TOKEN is missing - throw $msgTable.iisAspnetcoreTokenMissingExceptionMessage + throw $PodeLocale.iisAspnetcoreTokenMissingExceptionMessage } # add middleware to check every request has the token diff --git a/src/Private/OpenApi.ps1 b/src/Private/OpenApi.ps1 index 69c708a92..5b5b8db02 100644 --- a/src/Private/OpenApi.ps1 +++ b/src/Private/OpenApi.ps1 @@ -43,7 +43,7 @@ function ConvertTo-PodeOAObjectSchema { # Ensure all content types are valid MIME types foreach ($type in $Content.Keys) { if ($type -inotmatch '^(application|audio|image|message|model|multipart|text|video|\*)\/[\w\.\-\*]+(;[\s]*(charset|boundary)=[\w\.\-\*]+)*$|^"\*\/\*"$') { - throw ($msgTable.invalidContentTypeForSchemaExceptionMessage -f $type) #"Invalid content-type found for schema: $($type)" + throw ($PodeLocale.invalidContentTypeForSchemaExceptionMessage -f $type) #"Invalid content-type found for schema: $($type)" } } # manage generic schema json conversion issue @@ -182,7 +182,7 @@ function ConvertTo-PodeOAObjectSchema { } else { # The Properties parameters cannot be used if the Property has no name - Throw $msgTable.propertiesParameterWithoutNameExceptionMessage + Throw $PodeLocale.propertiesParameterWithoutNameExceptionMessage } } else { @@ -375,7 +375,7 @@ function ConvertTo-PodeOASchemaProperty { if (Test-PodeOAVersion -Version 3.0 -DefinitionTag $DefinitionTag ) { if ($Property.type -is [string[]]) { # Multi type properties requeired OpenApi Version 3.1 or above - throw $msgTable.multiTypePropertiesRequireOpenApi31ExceptionMessage + throw $PodeLocale.multiTypePropertiesRequireOpenApi31ExceptionMessage } $schema['type'] = $Property.type.ToLower() } @@ -809,7 +809,7 @@ function Get-PodeOpenApiDefinitionInternal { if (!$Definition.Version) { # OpenApi Version property is mandatory - throw $msgTable.openApiVersionPropertyMandatoryExceptionMessage + throw $PodeLocale.openApiVersionPropertyMandatoryExceptionMessage } $localEndpoint = $null # set the openapi version @@ -866,7 +866,7 @@ function Get-PodeOpenApiDefinitionInternal { if ($Definition.webhooks.count -gt 0) { if (Test-PodeOAVersion -Version 3.0 -DefinitionTag $DefinitionTag) { # Webhooks feature is unsupported in OpenAPI v3.0.x - throw $msgTable.webhooksFeatureNotSupportedInOpenApi30ExceptionMessage + throw $PodeLocale.webhooksFeatureNotSupportedInOpenApi30ExceptionMessage } else { $keys = [string[]]$Definition.webhooks.Keys @@ -914,7 +914,7 @@ function Get-PodeOpenApiDefinitionInternal { if ($components.pathItems.count -gt 0) { if (Test-PodeOAVersion -Version 3.0 -DefinitionTag $DefinitionTag) { # Feature pathItems is unsupported in OpenAPI v3.0.x - throw $msgTable.pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage + throw $PodeLocale.pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage } else { $keys = [string[]]$components.pathItems.Keys @@ -1318,7 +1318,7 @@ function Set-PodeOAAuth { # Validate the existence of specified authentication methods foreach ($n in @($Name)) { if (!(Test-PodeAuthExists -Name $n)) { - throw ($msgTable.authenticationMethodDoesNotExistExceptionMessage -f $n) #"Authentication method does not exist: $($n)" + throw ($PodeLocale.authenticationMethodDoesNotExistExceptionMessage -f $n) #"Authentication method does not exist: $($n)" } } } @@ -1385,7 +1385,7 @@ function Set-PodeOAGlobalAuth { # Check if the specified authentication method exists if (!(Test-PodeAuthExists -Name $Name)) { - throw ($msgTable.authenticationMethodDoesNotExistExceptionMessage -f $Name) #"Authentication method does not exist: $($Name)" + throw ($PodeLocale.authenticationMethodDoesNotExistExceptionMessage -f $Name) #"Authentication method does not exist: $($Name)" } # Iterate over each definition tag to apply the authentication method @@ -1463,7 +1463,7 @@ function Resolve-PodeOAReference { } else { # Unsupported object - throw $msgTable.unsupportedObjectExceptionMessage + throw $PodeLocale.unsupportedObjectExceptionMessage } } } @@ -1479,11 +1479,11 @@ function Resolve-PodeOAReference { } elseif ($key -ieq 'oneof') { # Validation of schema with oneof is not supported - throw $msgTable.validationOfOneOfSchemaNotSupportedExceptionMessage + throw $PodeLocale.validationOfOneOfSchemaNotSupportedExceptionMessage } elseif ($key -ieq 'anyof') { # Validation of schema with anyof is not supported - throw $msgTable.validationOfAnyOfSchemaNotSupportedExceptionMessage + throw $PodeLocale.validationOfAnyOfSchemaNotSupportedExceptionMessage } } elseif ($ComponentSchema.properties[$key].type -eq 'object') { @@ -1566,7 +1566,7 @@ function New-PodeOAPropertyInternal { } else { # Cannot create the property no type is defined - throw $msgTable.cannotCreatePropertyWithoutTypeExceptionMessage + throw $PodeLocale.cannotCreatePropertyWithoutTypeExceptionMessage } } @@ -1649,7 +1649,7 @@ function New-PodeOAPropertyInternal { if ($Params.NoAdditionalProperties.IsPresent -and $Params.AdditionalProperties) { # Params -NoAdditionalProperties and -AdditionalProperties are mutually exclusive - throw $msgTable.paramsNoAdditionalPropertiesExclusiveExceptionMessage + throw $PodeLocale.paramsNoAdditionalPropertiesExclusiveExceptionMessage } else { if ($Params.NoAdditionalProperties.IsPresent) { $param.additionalProperties = $false } @@ -1710,7 +1710,7 @@ function ConvertTo-PodeOAHeaderProperty { } else { # Header requires a name when used in an encoding context - throw $msgTable.headerMustHaveNameInEncodingContextExceptionMessage + throw $PodeLocale.headerMustHaveNameInEncodingContextExceptionMessage } } @@ -1826,7 +1826,7 @@ function New-PodeOResponseInternal { } else { # A Description is required - throw $msgTable.descriptionRequiredExceptionMessage + throw $PodeLocale.descriptionRequiredExceptionMessage } } else { @@ -1997,7 +1997,7 @@ function Test-PodeOADefinitionInternal { # Throw an error indicating non-compliance with OpenAPI standards # OpenAPI document compliance issues - throw $msgTable.openApiDocumentNotCompliantExceptionMessage + throw $PodeLocale.openApiDocumentNotCompliantExceptionMessage } } @@ -2069,7 +2069,7 @@ function Test-PodeOAComponentInternal { if (!($PodeContext.Server.OpenAPI.Definitions[$tag].components[$field].keys -ccontains $Name)) { # If $Name is not found in the current $tag, return $false or throw an exception if ($ThrowException.IsPresent ) { - throw ($msgTable.noComponentInDefinitionExceptionMessage -f $field, $Name, $tag) #"No component of type $field named $Name is available in the $tag definition." + throw ($PodeLocale.noComponentInDefinitionExceptionMessage -f $field, $Name, $tag) #"No component of type $field named $Name is available in the $tag definition." } else { return $false diff --git a/src/Private/Routes.ps1 b/src/Private/Routes.ps1 index af7008fde..73605d0bb 100644 --- a/src/Private/Routes.ps1 +++ b/src/Private/Routes.ps1 @@ -504,10 +504,10 @@ function Test-PodeRouteInternal { } if ([string]::IsNullOrEmpty($_url)) { - throw ($msgTable.methodPathAlreadyDefinedExceptionMessage -f $Method, $Path) #"[$($Method)] $($Path): Already defined" + throw ($PodeLocale.methodPathAlreadyDefinedExceptionMessage -f $Method, $Path) #"[$($Method)] $($Path): Already defined" } - throw ($msgTable.methodPathAlreadyDefinedForUrlExceptionMessage -f $Method, $Path, $_url) #"[$($Method)] $($Path): Already defined for $($_url)" + throw ($PodeLocale.methodPathAlreadyDefinedForUrlExceptionMessage -f $Method, $Path, $_url) #"[$($Method)] $($Path): Already defined for $($_url)" } function Convert-PodeFunctionVerbToHttpMethod { @@ -652,19 +652,19 @@ function ConvertTo-PodeMiddleware { # check middleware is a type valid if (($mid -isnot [scriptblock]) -and ($mid -isnot [hashtable])) { - throw ($msgTable.invalidMiddlewareTypeExceptionMessage -f $mid.GetType().Name)#"One of the Middlewares supplied is an invalid type. Expected either a ScriptBlock or Hashtable, but got: $($mid.GetType().Name)" + throw ($PodeLocale.invalidMiddlewareTypeExceptionMessage -f $mid.GetType().Name)#"One of the Middlewares supplied is an invalid type. Expected either a ScriptBlock or Hashtable, but got: $($mid.GetType().Name)" } # if middleware is hashtable, ensure the keys are valid (logic is a scriptblock) if ($mid -is [hashtable]) { if ($null -eq $mid.Logic) { # A Hashtable Middleware supplied has no Logic defined - throw $msgTable.hashtableMiddlewareNoLogicExceptionMessage + throw $PodeLocale.hashtableMiddlewareNoLogicExceptionMessage } if ($mid.Logic -isnot [scriptblock]) { # A Hashtable Middleware supplied has an invalid Logic type. Expected ScriptBlock, but got: {0} - throw ($msgTable.invalidLogicTypeInHashtableMiddlewareExceptionMessage -f $mid.Logic.GetType().Name) + throw ($PodeLocale.invalidLogicTypeInHashtableMiddlewareExceptionMessage -f $mid.Logic.GetType().Name) } } } diff --git a/src/Private/ScopedVariables.ps1 b/src/Private/ScopedVariables.ps1 index c0ee77e94..9fc37ba81 100644 --- a/src/Private/ScopedVariables.ps1 +++ b/src/Private/ScopedVariables.ps1 @@ -27,7 +27,7 @@ function Add-PodeScopedVariableInternal { # check if var already defined if (Test-PodeScopedVariable -Name $Name) { - throw ($msgTable.scopedVariableAlreadyDefinedExceptionMessage -f $Name)#"Scoped Variable already defined: $($Name)" + throw ($PodeLocale.scopedVariableAlreadyDefinedExceptionMessage -f $Name)#"Scoped Variable already defined: $($Name)" } # add scoped var definition @@ -169,7 +169,7 @@ function Find-PodeScopedVariableUsingVariableValues { } if ([string]::IsNullOrEmpty($value)) { - throw ($msgTable.valueForUsingVariableNotFoundExceptionMessage -f $varName) #"Value for `$using:$($varName) could not be found" + throw ($PodeLocale.valueForUsingVariableNotFoundExceptionMessage -f $varName) #"Value for `$using:$($varName) could not be found" } # add to mapped diff --git a/src/Private/Secrets.ps1 b/src/Private/Secrets.ps1 index 7fa49851c..1be53e74f 100644 --- a/src/Private/Secrets.ps1 +++ b/src/Private/Secrets.ps1 @@ -46,7 +46,7 @@ function Register-PodeSecretManagementVault { if ($isSecretStore) { if ([string]::IsNullOrEmpty($VaultConfig.Unlock.Secret)) { # An 'UnlockSecret' is required when using Microsoft.PowerShell.SecretStore - throw $msgTable.unlockSecretRequiredExceptionMessage + throw $PodeLocale.unlockSecretRequiredExceptionMessage } } @@ -147,7 +147,7 @@ function Register-PodeSecretCustomVault { # unlock secret with no script? if ($VaultConfig.Unlock.Enabled -and (Test-PodeIsEmpty $UnlockScriptBlock)) { # Unlock secret supplied for custom Secret Vault type, but not Unlock ScriptBlock supplied - throw $msgTable.unlockSecretButNoScriptBlockExceptionMessage + throw $PodeLocale.unlockSecretButNoScriptBlockExceptionMessage } # all is good, so set the config @@ -197,7 +197,7 @@ function Unlock-PodeSecretCustomVault { # do we have an unlock scriptblock if ($null -eq $VaultConfig.Custom.Unlock) { - throw ($msgTable.noUnlockScriptBlockForVaultExceptionMessage -f $VaultConfig.Name) #"No Unlock ScriptBlock supplied for unlocking the vault '$($VaultConfig.Name)'" + throw ($PodeLocale.noUnlockScriptBlockForVaultExceptionMessage -f $VaultConfig.Name) #"No Unlock ScriptBlock supplied for unlocking the vault '$($VaultConfig.Name)'" } # unlock the vault, and get back an expiry @@ -354,7 +354,7 @@ function Set-PodeSecretCustomKey { # do we have a set scriptblock? if ($null -eq $_vault.Custom.Set) { - throw ($msgTable.noSetScriptBlockForVaultExceptionMessage -f $_vault.Name) #"No Set ScriptBlock supplied for updating/creating secrets in the vault '$($_vault.Name)'" + throw ($PodeLocale.noSetScriptBlockForVaultExceptionMessage -f $_vault.Name) #"No Set ScriptBlock supplied for updating/creating secrets in the vault '$($_vault.Name)'" } # set the secret @@ -404,7 +404,7 @@ function Remove-PodeSecretCustomKey { # do we have a remove scriptblock? if ($null -eq $_vault.Custom.Remove) { - throw ($msgTable.noRemoveScriptBlockForVaultExceptionMessage -f $_vault.Name) #"No Remove ScriptBlock supplied for removing secrets from the vault '$($_vault.Name)'" + throw ($PodeLocale.noRemoveScriptBlockForVaultExceptionMessage -f $_vault.Name) #"No Remove ScriptBlock supplied for removing secrets from the vault '$($_vault.Name)'" } # remove the secret @@ -507,7 +507,7 @@ function Protect-PodeSecretValueType { ($Value -is [pscredential]) -or ($Value -is [System.Management.Automation.OrderedHashtable]) )) { - throw ($msgTable.invalidSecretValueTypeExceptionMessage -f $Value.GetType().Name) #"Value to set secret to is of an invalid type. Expected either String, SecureString, HashTable, Byte[], or PSCredential. But got: $($Value.GetType().Name)" + throw ($PodeLocale.invalidSecretValueTypeExceptionMessage -f $Value.GetType().Name) #"Value to set secret to is of an invalid type. Expected either String, SecureString, HashTable, Byte[], or PSCredential. But got: $($Value.GetType().Name)" } return $Value diff --git a/src/Private/Security.ps1 b/src/Private/Security.ps1 index bd74f585d..12b8f37e3 100644 --- a/src/Private/Security.ps1 +++ b/src/Private/Security.ps1 @@ -348,11 +348,11 @@ function Add-PodeIPLimit { # ensure limit and seconds are non-zero and negative if ($Limit -le 0) { - throw ($msgTable.limitValueCannotBeZeroOrLessExceptionMessage -f $IP) #"Limit value cannot be 0 or less for $($IP)" + throw ($PodeLocale.limitValueCannotBeZeroOrLessExceptionMessage -f $IP) #"Limit value cannot be 0 or less for $($IP)" } if ($Seconds -le 0) { - throw ($msgTable.secondsValueCannotBeZeroOrLessExceptionMessage -f $IP) #"Seconds value cannot be 0 or less for $($IP)" + throw ($PodeLocale.secondsValueCannotBeZeroOrLessExceptionMessage -f $IP) #"Seconds value cannot be 0 or less for $($IP)" } # get current rules @@ -426,11 +426,11 @@ function Add-PodeRouteLimit { # ensure limit and seconds are non-zero and negative if ($Limit -le 0) { - throw ($msgTable.limitValueCannotBeZeroOrLessExceptionMessage -f $IP) #"Limit value cannot be 0 or less for $($IP)" + throw ($PodeLocale.limitValueCannotBeZeroOrLessExceptionMessage -f $IP) #"Limit value cannot be 0 or less for $($IP)" } if ($Seconds -le 0) { - throw ($msgTable.secondsValueCannotBeZeroOrLessExceptionMessage -f $IP) #"Seconds value cannot be 0 or less for $($IP)" + throw ($PodeLocale.secondsValueCannotBeZeroOrLessExceptionMessage -f $IP) #"Seconds value cannot be 0 or less for $($IP)" } # get current rules @@ -482,16 +482,16 @@ function Add-PodeEndpointLimit { # does the endpoint exist? $endpoint = Get-PodeEndpointByName -Name $EndpointName if ($null -eq $endpoint) { - throw ($msgTable.endpointNameNotExistExceptionMessage -f $EndpointName) #"Endpoint not found: $($EndpointName)" + throw ($PodeLocale.endpointNameNotExistExceptionMessage -f $EndpointName) #"Endpoint not found: $($EndpointName)" } # ensure limit and seconds are non-zero and negative if ($Limit -le 0) { - throw ($msgTable.limitValueCannotBeZeroOrLessExceptionMessage -f $IP) #"Limit value cannot be 0 or less for $($IP)" + throw ($PodeLocale.limitValueCannotBeZeroOrLessExceptionMessage -f $IP) #"Limit value cannot be 0 or less for $($IP)" } if ($Seconds -le 0) { - throw ($msgTable.secondsValueCannotBeZeroOrLessExceptionMessage -f $IP) #"Seconds value cannot be 0 or less for $($IP)" + throw ($PodeLocale.secondsValueCannotBeZeroOrLessExceptionMessage -f $IP) #"Seconds value cannot be 0 or less for $($IP)" } # get current rules @@ -816,7 +816,7 @@ function Get-PodeCertificateByPemFile { $result = openssl pkcs12 -inkey $keyPath -in $certPath -export -passin pass:$Password -password pass:$Password -out $tempFile if (!$?) { - throw ($msgTable.failedToCreateOpenSslCertExceptionMessage -f $result) #"Failed to create openssl cert: $($result)" + throw ($PodeLocale.failedToCreateOpenSslCertExceptionMessage -f $result) #"Failed to create openssl cert: $($result)" } $cert = [X509Certificates.X509Certificate2]::new($tempFile, $Password) @@ -851,7 +851,7 @@ function Find-PodeCertificateInCertStore { # fail if not windows if (!(Test-PodeIsWindows)) { # Certificate Thumbprints/Name are only supported on Windows - throw $msgTable.certificateThumbprintsNameSupportedOnWindowsExceptionMessage + throw $PodeLocale.certificateThumbprintsNameSupportedOnWindowsExceptionMessage } # open the currentuser\my store @@ -871,7 +871,7 @@ function Find-PodeCertificateInCertStore { # fail if no cert found for query if (($null -eq $x509certs) -or ($x509certs.Count -eq 0)) { - throw ($msgTable.noCertificateFoundExceptionMessage -f $StoreLocation, $StoreName, $Query) # "No certificate could be found in $($StoreLocation)\$($StoreName) for '$($Query)'" + throw ($PodeLocale.noCertificateFoundExceptionMessage -f $StoreLocation, $StoreName, $Query) # "No certificate could be found in $($StoreLocation)\$($StoreName) for '$($Query)'" } return ([X509Certificates.X509Certificate2]($x509certs[0])) diff --git a/src/Private/Server.ps1 b/src/Private/Server.ps1 index bdad25560..64bc085b3 100644 --- a/src/Private/Server.ps1 +++ b/src/Private/Server.ps1 @@ -136,7 +136,7 @@ function Start-PodeInternalServer { # errored? if ($PodeContext.RunspacePools[$pool].State -ieq 'error') { - throw ($msgTable.runspacePoolFailedToLoadExceptionMessage -f $pool) #"$($pool) RunspacePool failed to load" + throw ($PodeLocale.runspacePoolFailedToLoadExceptionMessage -f $pool) #"$($pool) RunspacePool failed to load" } } } diff --git a/src/Private/ServiceServer.ps1 b/src/Private/ServiceServer.ps1 index d0058d83c..892aa526a 100644 --- a/src/Private/ServiceServer.ps1 +++ b/src/Private/ServiceServer.ps1 @@ -2,7 +2,7 @@ function Start-PodeServiceServer { # ensure we have service handlers if (Test-PodeIsEmpty (Get-PodeHandler -Type Service)) { # No Service handlers have been defined - throw $msgTable.noServiceHandlersDefinedExceptionMessage + throw $PodeLocale.noServiceHandlersDefinedExceptionMessage } # state we're running diff --git a/src/Private/Sessions.ps1 b/src/Private/Sessions.ps1 index 496ed1820..1a5215f0d 100644 --- a/src/Private/Sessions.ps1 +++ b/src/Private/Sessions.ps1 @@ -41,7 +41,7 @@ function Get-PodeSessionFullId { function Set-PodeSession { if ($null -eq $WebEvent.Session) { # There is no session available to set on the response - throw $msgTable.noSessionToSetOnResponseExceptionMessage + throw $PodeLocale.noSessionToSetOnResponseExceptionMessage } # convert secret to strict mode @@ -139,7 +139,7 @@ function Revoke-PodeSession { function Set-PodeSessionDataHash { if ($null -eq $WebEvent.Session) { # No session available to calculate data hash - throw $msgTable.noSessionToCalculateDataHashExceptionMessage + throw $PodeLocale.noSessionToCalculateDataHashExceptionMessage } if (($null -eq $WebEvent.Session.Data) -or ($WebEvent.Session.Data.Count -eq 0)) { diff --git a/src/Private/Setup.ps1 b/src/Private/Setup.ps1 index 9756736de..256f92a20 100644 --- a/src/Private/Setup.ps1 +++ b/src/Private/Setup.ps1 @@ -60,7 +60,7 @@ function Install-PodeLocalModules { } catch { Write-Host 'Failed' -ForegroundColor Red - throw ($msgTable.moduleOrVersionNotFoundExceptionMessage -f $_repository, $_name, $_version) #"Module or version not found on $($_repository): $($_name)@$($_version)" + throw ($PodeLocale.moduleOrVersionNotFoundExceptionMessage -f $_repository, $_name, $_version) #"Module or version not found on $($_repository): $($_name)@$($_version)" } } } \ No newline at end of file diff --git a/src/Private/SmtpServer.ps1 b/src/Private/SmtpServer.ps1 index 43f7d702b..315eaef37 100644 --- a/src/Private/SmtpServer.ps1 +++ b/src/Private/SmtpServer.ps1 @@ -4,7 +4,7 @@ function Start-PodeSmtpServer { # ensure we have smtp handlers if (Test-PodeIsEmpty (Get-PodeHandler -Type Smtp)) { # No SMTP handlers have been defined - throw $msgTable.noSmtpHandlersDefinedExceptionMessage + throw $PodeLocale.noSmtpHandlersDefinedExceptionMessage } # work out which endpoints to listen on diff --git a/src/Private/Tasks.ps1 b/src/Private/Tasks.ps1 index 88b4d090c..1a4c1f7d2 100644 --- a/src/Private/Tasks.ps1 +++ b/src/Private/Tasks.ps1 @@ -168,7 +168,7 @@ function Wait-PodeNetTaskInternal { # if the main task isnt complete, it timed out if (($null -ne $timeoutTask) -and (!$Task.IsCompleted)) { - throw [System.TimeoutException]::new($msgTable.taskTimedOutExceptionMessage -f $Timeout) #"Task has timed out after $($Timeout)ms") + throw [System.TimeoutException]::new($PodeLocale.taskTimedOutExceptionMessage -f $Timeout) #"Task has timed out after $($Timeout)ms") } # only return a value if the result has one diff --git a/src/Private/Verbs.ps1 b/src/Private/Verbs.ps1 index 7ace07a1d..67095e0ee 100644 --- a/src/Private/Verbs.ps1 +++ b/src/Private/Verbs.ps1 @@ -117,9 +117,9 @@ function Test-PodeVerbAndError { } if ([string]::IsNullOrEmpty($_url)) { - throw ($msgTable.verbAlreadyDefinedExceptionMessage -f $Verb) #"[Verb] $($Verb): Already defined" + throw ($PodeLocale.verbAlreadyDefinedExceptionMessage -f $Verb) #"[Verb] $($Verb): Already defined" } else { - throw ($msgTable.verbAlreadyDefinedForUrlExceptionMessage -f $Verb, $_url) # "[Verb] $($Verb): Already defined for $($_url)" + throw ($PodeLocale.verbAlreadyDefinedForUrlExceptionMessage -f $Verb, $_url) # "[Verb] $($Verb): Already defined for $($_url)" } } \ No newline at end of file diff --git a/src/Public/Access.ps1 b/src/Public/Access.ps1 index 2e942aa29..c6394f7b4 100644 --- a/src/Public/Access.ps1 +++ b/src/Public/Access.ps1 @@ -70,7 +70,7 @@ function New-PodeAccessScheme { if ($Custom) { if ([string]::IsNullOrWhiteSpace($Path) -and (Test-PodeIsEmpty $ScriptBlock)) { # A Path or ScriptBlock is required for sourcing the Custom access values - throw $msgTable.pathOrScriptBlockRequiredExceptionMessage + throw $PodeLocale.pathOrScriptBlockRequiredExceptionMessage } } @@ -175,7 +175,7 @@ function Add-PodeAccess { # check name unique if (Test-PodeAccessExists -Name $Name) { - throw ($msgTable.accessMethodAlreadyDefinedExceptionMessage -f $Name) #"Access method already defined: $($Name)" + throw ($PodeLocale.accessMethodAlreadyDefinedExceptionMessage -f $Name) #"Access method already defined: $($Name)" } # parse using variables in validator scriptblock @@ -242,13 +242,13 @@ function Merge-PodeAccess { # ensure the name doesn't already exist if (Test-PodeAccessExists -Name $Name) { - throw ($msgTable.accessMethodAlreadyDefinedExceptionMessage -f $Name) #"Access method already defined: $($Name)" + throw ($PodeLocale.accessMethodAlreadyDefinedExceptionMessage -f $Name) #"Access method already defined: $($Name)" } # ensure all the access methods exist foreach ($accName in $Access) { if (!(Test-PodeAccessExists -Name $accName)) { - throw ($msgTable.accessMethodNotExistForMergingExceptionMessage -f $accName) #"Access method does not exist for merging: $($accName)" + throw ($PodeLocale.accessMethodNotExistForMergingExceptionMessage -f $accName) #"Access method does not exist for merging: $($accName)" } } @@ -314,7 +314,7 @@ function Add-PodeAccessCustom { end { foreach ($r in $routes) { if ($r.AccessMeta.Custom.ContainsKey($Name)) { - throw ($msgTable.routeAlreadyContainsCustomAccessExceptionMessage -f $r.Method, $r.Path, $Name) #"Route '[$($r.Method)] $($r.Path)' already contains Custom Access with name '$($Name)'" + throw ($PodeLocale.routeAlreadyContainsCustomAccessExceptionMessage -f $r.Method, $r.Path, $Name) #"Route '[$($r.Method)] $($r.Path)' already contains Custom Access with name '$($Name)'" } $r.AccessMeta.Custom[$Name] = $Value @@ -664,7 +664,7 @@ function Add-PodeAccessMiddleware { ) if (!(Test-PodeAccessExists -Name $Access)) { - throw ($msgTable.accessMethodNotExistExceptionMessage -f $Access) #"Access method does not exist: $($Access)" + throw ($PodeLocale.accessMethodNotExistExceptionMessage -f $Access) #"Access method does not exist: $($Access)" } Get-PodeAccessMiddlewareScript | diff --git a/src/Public/Authentication.ps1 b/src/Public/Authentication.ps1 index fdfa0f8af..8c2759031 100644 --- a/src/Public/Authentication.ps1 +++ b/src/Public/Authentication.ps1 @@ -160,7 +160,7 @@ function New-PodeAuthScheme { [ValidateScript({ if (Test-PodeIsEmpty $_) { # A non-empty ScriptBlock is required for the Custom authentication scheme - throw $msgTable.nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage + throw $PodeLocale.nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage } return $true @@ -410,22 +410,22 @@ function New-PodeAuthScheme { 'oauth2' { if (($null -ne $InnerScheme) -and ($InnerScheme.Name -inotin @('basic', 'form'))) { # OAuth2 InnerScheme can only be one of either Basic or Form authentication, but got: {0} - throw ($msgTable.oauth2InnerSchemeInvalidExceptionMessage -f $InnerScheme.Name) + throw ($PodeLocale.oauth2InnerSchemeInvalidExceptionMessage -f $InnerScheme.Name) } if (($null -eq $InnerScheme) -and [string]::IsNullOrWhiteSpace($AuthoriseUrl)) { #OAuth2 requires an Authorise URL to be supplied - throw $msgTable.oauth2RequiresAuthorizeUrlExceptionMessage + throw $PodeLocale.oauth2RequiresAuthorizeUrlExceptionMessage } if ($UsePKCE -and !(Test-PodeSessionsEnabled)) { # Sessions are required to use OAuth2 with PKCE - throw $msgTable.sessionsRequiredForOAuth2WithPKCEExceptionMessage + throw $PodeLocale.sessionsRequiredForOAuth2WithPKCEExceptionMessage } if (!$UsePKCE -and [string]::IsNullOrEmpty($ClientSecret)) { # OAuth2 requires a Client Secret when not using PKCE - throw $msgTable.oauth2ClientSecretRequiredExceptionMessage + throw $PodeLocale.oauth2ClientSecretRequiredExceptionMessage } return @{ Name = 'OAuth2' @@ -723,7 +723,7 @@ function Add-PodeAuth { [ValidateScript({ if (Test-PodeIsEmpty $_) { # A non-empty ScriptBlock is required for the authentication method - throw $msgTable.nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage + throw $PodeLocale.nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage } return $true @@ -757,19 +757,19 @@ function Add-PodeAuth { # ensure the name doesn't already exist if (Test-PodeAuthExists -Name $Name) { # Authentication method already defined: {0} - throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) + throw ($PodeLocale.authMethodAlreadyDefinedExceptionMessage -f $Name) } # ensure the Scheme contains a scriptblock if (Test-PodeIsEmpty $Scheme.ScriptBlock) { # The supplied scheme for the '{0}' authentication validator requires a valid ScriptBlock - throw ($msgTable.schemeRequiresValidScriptBlockExceptionMessage -f $Name) + throw ($PodeLocale.schemeRequiresValidScriptBlockExceptionMessage -f $Name) } # if we're using sessions, ensure sessions have been setup if (!$Sessionless -and !(Test-PodeSessionsEnabled)) { # Sessions are required to use session persistent authentication - throw $msgTable.sessionsRequiredForSessionPersistentAuthExceptionMessage + throw $PodeLocale.sessionsRequiredForSessionPersistentAuthExceptionMessage } # check for scoped vars @@ -912,24 +912,24 @@ function Merge-PodeAuth { # ensure the name doesn't already exist if (Test-PodeAuthExists -Name $Name) { # Authentication method already defined: { 0 } - throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) + throw ($PodeLocale.authMethodAlreadyDefinedExceptionMessage -f $Name) } # ensure all the auth methods exist foreach ($authName in $Authentication) { if (!(Test-PodeAuthExists -Name $authName)) { - throw ($msgTable.authMethodNotExistForMergingExceptionMessage -f $authName) #"Authentication method does not exist for merging: $($authName)" + throw ($PodeLocale.authMethodNotExistForMergingExceptionMessage -f $authName) #"Authentication method does not exist for merging: $($authName)" } } # ensure the merge default is in the auth list if (![string]::IsNullOrEmpty($MergeDefault) -and ($MergeDefault -inotin @($Authentication))) { - throw ($msgTable.mergeDefaultAuthNotInListExceptionMessage -f $MergeDefault) # "the MergeDefault Authentication '$($MergeDefault)' is not in the Authentication list supplied" + throw ($PodeLocale.mergeDefaultAuthNotInListExceptionMessage -f $MergeDefault) # "the MergeDefault Authentication '$($MergeDefault)' is not in the Authentication list supplied" } # ensure the default is in the auth list if (![string]::IsNullOrEmpty($Default) -and ($Default -inotin @($Authentication))) { - throw ($msgTable.defaultAuthNotInListExceptionMessage -f $Default) # "the Default Authentication '$($Default)' is not in the Authentication list supplied" + throw ($PodeLocale.defaultAuthNotInListExceptionMessage -f $Default) # "the Default Authentication '$($Default)' is not in the Authentication list supplied" } # set default @@ -948,7 +948,7 @@ function Merge-PodeAuth { # if we're using sessions, ensure sessions have been setup if (!$Sessionless -and !(Test-PodeSessionsEnabled)) { # Sessions are required to use session persistent authentication - throw $msgTable.sessionsRequiredForSessionPersistentAuthExceptionMessage + throw $PodeLocale.sessionsRequiredForSessionPersistentAuthExceptionMessage } # check failure url from default @@ -975,7 +975,7 @@ function Merge-PodeAuth { if (($Valid -ieq 'all') -and [string]::IsNullOrEmpty($MergeDefault)) { if ($null -eq $ScriptBlock) { # A Scriptblock for merging multiple authenticated users into 1 object is required When Valid is All - throw $msgTable.scriptBlockRequiredForMergingUsersExceptionMessage + throw $PodeLocale.scriptBlockRequiredForMergingUsersExceptionMessage } $ScriptBlock, $usingVars = Convert-PodeScopedVariables -ScriptBlock $ScriptBlock -PSSession $PSCmdlet.SessionState @@ -1040,7 +1040,7 @@ function Get-PodeAuth { # ensure the name exists if (!(Test-PodeAuthExists -Name $Name)) { - throw ($msgTable.authenticationMethodDoesNotExistExceptionMessage -f $Name) # "Authentication method not defined: $($Name)" + throw ($PodeLocale.authenticationMethodDoesNotExistExceptionMessage -f $Name) # "Authentication method not defined: $($Name)" } # get auth method @@ -1277,19 +1277,19 @@ function Add-PodeAuthWindowsAd { # ensure the name doesn't already exist if (Test-PodeAuthExists -Name $Name) { # Authentication method already defined: {0} - throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) + throw ($PodeLocale.authMethodAlreadyDefinedExceptionMessage -f $Name) } # ensure the Scheme contains a scriptblock if (Test-PodeIsEmpty $Scheme.ScriptBlock) { # The supplied Scheme for the '$($Name)' Windows AD authentication validator requires a valid ScriptBlock - throw ($msgTable.schemeRequiresValidScriptBlockExceptionMessage -f $Name) + throw ($PodeLocale.schemeRequiresValidScriptBlockExceptionMessage -f $Name) } # if we're using sessions, ensure sessions have been setup if (!$Sessionless -and !(Test-PodeSessionsEnabled)) { # Sessions are required to use session persistent authentication - throw $msgTable.sessionsRequiredForSessionPersistentAuthExceptionMessage + throw $PodeLocale.sessionsRequiredForSessionPersistentAuthExceptionMessage } # if AD module set, ensure we're on windows and the module is available, then import/export it @@ -1303,7 +1303,7 @@ function Add-PodeAuthWindowsAd { if ([string]::IsNullOrWhiteSpace($Fqdn)) { # No domain server name has been supplied for Windows AD authentication - throw $msgTable.noDomainServerNameForWindowsAdAuthExceptionMessage + throw $PodeLocale.noDomainServerNameForWindowsAdAuthExceptionMessage } } @@ -1417,13 +1417,13 @@ function Add-PodeAuthSession { # if sessions haven't been setup, error if (!(Test-PodeSessionsEnabled)) { # Sessions have not been configured - throw $msgTable.sessionsNotConfiguredExceptionMessage + throw $PodeLocale.sessionsNotConfiguredExceptionMessage } # ensure the name doesn't already exist if (Test-PodeAuthExists -Name $Name) { # Authentication method already defined: { 0 } - throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) + throw ($PodeLocale.authMethodAlreadyDefinedExceptionMessage -f $Name) } # if we have a scriptblock, deal with using vars @@ -1577,7 +1577,7 @@ function Add-PodeAuthMiddleware { $DefinitionTag = Test-PodeOADefinitionTag -Tag $OADefinitionTag if (!(Test-PodeAuthExists -Name $Authentication)) { - throw ($msgTable.authenticationMethodDoesNotExistExceptionMessage -f $Authentication) # "Authentication method does not exist: $($Authentication)" + throw ($PodeLocale.authenticationMethodDoesNotExistExceptionMessage -f $Authentication) # "Authentication method does not exist: $($Authentication)" } Get-PodeAuthMiddlewareScript | @@ -1704,13 +1704,13 @@ function Add-PodeAuthIIS { # ensure we're on Windows! if (!(Test-PodeIsWindows)) { # IIS Authentication support is for Windows only - throw $msgTable.iisAuthSupportIsForWindowsOnlyExceptionMessage + throw $PodeLocale.iisAuthSupportIsForWindowsOnlyExceptionMessage } # ensure the name doesn't already exist if (Test-PodeAuthExists -Name $Name) { # Authentication method already defined: {0} - throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) + throw ($PodeLocale.authMethodAlreadyDefinedExceptionMessage -f $Name) } # if AD module set, ensure we're on windows and the module is available, then import/export it @@ -1869,19 +1869,19 @@ function Add-PodeAuthUserFile { # ensure the name doesn't already exist if (Test-PodeAuthExists -Name $Name) { # Authentication method already defined: {0} - throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) + throw ($PodeLocale.authMethodAlreadyDefinedExceptionMessage -f $Name) } # ensure the Scheme contains a scriptblock if (Test-PodeIsEmpty $Scheme.ScriptBlock) { # The supplied scheme for the '{0}' authentication validator requires a valid ScriptBlock. - throw ($msgTable.schemeRequiresValidScriptBlockExceptionMessage -f $Name) + throw ($PodeLocale.schemeRequiresValidScriptBlockExceptionMessage -f $Name) } # if we're using sessions, ensure sessions have been setup if (!$Sessionless -and !(Test-PodeSessionsEnabled)) { # Sessions are required to use session persistent authentication - throw $msgTable.sessionsRequiredForSessionPersistentAuthExceptionMessage + throw $PodeLocale.sessionsRequiredForSessionPersistentAuthExceptionMessage } # set the file path if not passed @@ -1895,7 +1895,7 @@ function Add-PodeAuthUserFile { # ensure the user file exists if (!(Test-PodePath -Path $FilePath -NoStatus -FailOnDirectory)) { # The user file does not exist: {0} - throw ($msgTable.userFileDoesNotExistExceptionMessage -f $FilePath) + throw ($PodeLocale.userFileDoesNotExistExceptionMessage -f $FilePath) } # if we have a scriptblock, deal with using vars @@ -2031,25 +2031,25 @@ function Add-PodeAuthWindowsLocal { # ensure we're on Windows! if (!(Test-PodeIsWindows)) { # Windows Local Authentication support is for Windows only - throw $msgTable.windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage + throw $PodeLocale.windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage } # ensure the name doesn't already exist if (Test-PodeAuthExists -Name $Name) { # Authentication method already defined: {0} - throw ($msgTable.authMethodAlreadyDefinedExceptionMessage -f $Name) + throw ($PodeLocale.authMethodAlreadyDefinedExceptionMessage -f $Name) } # ensure the Scheme contains a scriptblock if (Test-PodeIsEmpty $Scheme.ScriptBlock) { # The supplied scheme for the '{0}' authentication validator requires a valid ScriptBlock. - throw ($msgTable.schemeRequiresValidScriptBlockExceptionMessage -f $Name) + throw ($PodeLocale.schemeRequiresValidScriptBlockExceptionMessage -f $Name) } # if we're using sessions, ensure sessions have been setup if (!$Sessionless -and !(Test-PodeSessionsEnabled)) { # Sessions are required to use session persistent authentication - throw $msgTable.sessionsRequiredForSessionPersistentAuthExceptionMessage + throw $PodeLocale.sessionsRequiredForSessionPersistentAuthExceptionMessage } # if we have a scriptblock, deal with using vars @@ -2126,7 +2126,7 @@ function ConvertTo-PodeJwt { # validate header if ([string]::IsNullOrWhiteSpace($Header.alg)) { # No algorithm supplied in JWT Header - throw $msgTable.noAlgorithmInJwtHeaderExceptionMessage + throw $PodeLocale.noAlgorithmInJwtHeaderExceptionMessage } # convert the header @@ -2191,14 +2191,14 @@ function ConvertFrom-PodeJwt { # check number of parts (should be 3) if ($parts.Length -ne 3) { # Invalid JWT supplied - throw $msgTable.invalidJwtSuppliedExceptionMessage + throw $PodeLocale.invalidJwtSuppliedExceptionMessage } # convert to header $header = ConvertFrom-PodeJwtBase64Value -Value $parts[0] if ([string]::IsNullOrWhiteSpace($header.alg)) { # Invalid JWT header algorithm supplied - throw $msgTable.invalidJwtHeaderAlgorithmSuppliedExceptionMessage + throw $PodeLocale.invalidJwtHeaderAlgorithmSuppliedExceptionMessage } # convert to payload @@ -2216,17 +2216,17 @@ function ConvertFrom-PodeJwt { if ([string]::IsNullOrWhiteSpace($signature) -and !$isNoneAlg) { # No JWT signature supplied for {0} - throw ($msgTable.noJwtSignatureForAlgorithmExceptionMessage -f $header.alg) + throw ($PodeLocale.noJwtSignatureForAlgorithmExceptionMessage -f $header.alg) } if (![string]::IsNullOrWhiteSpace($signature) -and $isNoneAlg) { # Expected no JWT signature to be supplied - throw $msgTable.expectedNoJwtSignatureSuppliedExceptionMessage + throw $PodeLocale.expectedNoJwtSignatureSuppliedExceptionMessage } if ($isNoneAlg -and ($null -ne $Secret) -and ($Secret.Length -gt 0)) { # Expected no JWT signature to be supplied - throw $msgTable.expectedNoJwtSignatureSuppliedExceptionMessage + throw $PodeLocale.expectedNoJwtSignatureSuppliedExceptionMessage } if ($isNoneAlg) { @@ -2243,7 +2243,7 @@ function ConvertFrom-PodeJwt { if ($sig -ne $parts[2]) { # Invalid JWT signature supplied - throw $msgTable.invalidJwtSignatureSuppliedExceptionMessage + throw $PodeLocale.invalidJwtSignatureSuppliedExceptionMessage } # it's valid return the payload! @@ -2283,7 +2283,7 @@ function Test-PodeJwt { if (![string]::IsNullOrWhiteSpace($Payload.exp)) { if ($now -gt $unixStart.AddSeconds($Payload.exp)) { # The JWT has expired - throw $msgTable.jwtExpiredExceptionMessage + throw $PodeLocale.jwtExpiredExceptionMessage } } @@ -2291,7 +2291,7 @@ function Test-PodeJwt { if (![string]::IsNullOrWhiteSpace($Payload.nbf)) { if ($now -lt $unixStart.AddSeconds($Payload.nbf)) { # The JWT is not yet valid for use - throw $msgTable.jwtNotYetValidExceptionMessage + throw $PodeLocale.jwtNotYetValidExceptionMessage } } } @@ -2405,13 +2405,13 @@ function ConvertFrom-PodeOIDCDiscovery { # check it supports the code response_type if ($config.response_types_supported -inotcontains 'code') { # The OAuth2 provider does not support the 'code' response_type - throw $msgTable.oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage + throw $PodeLocale.oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage } # can we have an InnerScheme? if (($null -ne $InnerScheme) -and ($config.grant_types_supported -inotcontains 'password')) { # The OAuth2 provider does not support the 'password' grant_type required by using an InnerScheme - throw $msgTable.oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage + throw $PodeLocale.oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage } # scopes diff --git a/src/Public/AutoImport.ps1 b/src/Public/AutoImport.ps1 index ee8c965f5..86bb129c7 100644 --- a/src/Public/AutoImport.ps1 +++ b/src/Public/AutoImport.ps1 @@ -47,7 +47,7 @@ function Export-PodeSnapin { # if non-windows or core, fail if ((Test-PodeIsPSCore) -or (Test-PodeIsUnix)) { # Snapins are only supported on Windows PowerShell - throw $msgTable.snapinsSupportedOnWindowsPowershellOnlyExceptionMessage + throw $PodeLocale.snapinsSupportedOnWindowsPowershellOnlyExceptionMessage } $PodeContext.Server.AutoImport.Snapins.ExportList += @($Name) diff --git a/src/Public/Core.ps1 b/src/Public/Core.ps1 index 3c99f339e..304b3f6f4 100644 --- a/src/Public/Core.ps1 +++ b/src/Public/Core.ps1 @@ -643,7 +643,7 @@ function Show-PodeGui { # only valid for Windows PowerShell if ((Test-PodeIsPSCore) -and ($PSVersionTable.PSVersion.Major -eq 6)) { # Show-PodeGui is currently only available for Windows PowerShell and PowerShell 7+ on Windows - throw $msgTable.showPodeGuiOnlyAvailableOnWindowsExceptionMessage + throw $PodeLocale.showPodeGuiOnlyAvailableOnWindowsExceptionMessage } # enable the gui and set general settings @@ -904,7 +904,7 @@ function Add-PodeEndpoint { # if RedirectTo is supplied, then a Name is mandatory if (![string]::IsNullOrWhiteSpace($RedirectTo) -and [string]::IsNullOrWhiteSpace($Name)) { # A Name is required for the endpoint if the RedirectTo parameter is supplied - throw $msgTable.nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage + throw $PodeLocale.nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage } # get the type of endpoint @@ -956,25 +956,25 @@ function Add-PodeEndpoint { # protocol must be https for client certs, or hosted behind a proxy like iis if (($Protocol -ine 'https') -and !(Test-PodeIsHosted) -and $AllowClientCertificate) { # Client certificates are only supported on HTTPS endpoints - throw $msgTable.clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage + throw $PodeLocale.clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage } # explicit tls is only supported for smtp/tcp if (($type -inotin @('smtp', 'tcp')) -and ($TlsMode -ieq 'explicit')) { # The Explicit TLS mode is only supported on SMTPS and TCPS endpoints - throw $msgTable.explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage + throw $PodeLocale.explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage } # ack message is only for smtp/tcp if (($type -inotin @('smtp', 'tcp')) -and ![string]::IsNullOrEmpty($Acknowledge)) { # The Acknowledge message is only supported on SMTP and TCP endpoints - throw $msgTable.acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage + throw $PodeLocale.acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage } # crlf message end is only for tcp if (($type -ine 'tcp') -and $CRLFMessageEnd) { # The CRLF message end check is only supported on TCP endpoints - throw $msgTable.crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage + throw $PodeLocale.crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage } # new endpoint object @@ -1048,7 +1048,7 @@ function Add-PodeEndpoint { # if the address is non-local, then check admin privileges if (!$Force -and !(Test-PodeIPAddressLocal -IP $obj.Address) -and !(Test-PodeIsAdminUser)) { # Must be running with administrator privileges to listen on non-localhost addresses - throw $msgTable.mustBeRunningWithAdminPrivilegesExceptionMessage + throw $PodeLocale.mustBeRunningWithAdminPrivilegesExceptionMessage } # has this endpoint been added before? (for http/https we can just not add it again) @@ -1061,7 +1061,7 @@ function Add-PodeEndpoint { # fail if protocol is not https if (@('https', 'wss', 'smtps', 'tcps') -inotcontains $Protocol) { # Certificate supplied for non-HTTPS/WSS endpoint - throw $msgTable.certificateSuppliedForNonHttpsWssEndpointExceptionMessage + throw $PodeLocale.certificateSuppliedForNonHttpsWssEndpointExceptionMessage } switch ($PSCmdlet.ParameterSetName.ToLowerInvariant()) { diff --git a/src/Public/Events.ps1 b/src/Public/Events.ps1 index 6d509e92c..9d129667c 100644 --- a/src/Public/Events.ps1 +++ b/src/Public/Events.ps1 @@ -43,7 +43,7 @@ function Register-PodeEvent { # error if already registered if (Test-PodeEvent -Type $Type -Name $Name) { - throw ($msgTable.eventAlreadyRegisteredExceptionMessage -f $Type, $Name) # "$($Type) event already registered: $($Name)" + throw ($PodeLocale.eventAlreadyRegisteredExceptionMessage -f $Type, $Name) # "$($Type) event already registered: $($Name)" } # check for scoped vars @@ -89,7 +89,7 @@ function Unregister-PodeEvent { # error if not registered if (!(Test-PodeEvent -Type $Type -Name $Name)) { - throw ($msgTable.noEventRegisteredExceptionMessage -f $Type, $Name) # "No $($Type) event registered: $($Name)" + throw ($PodeLocale.noEventRegisteredExceptionMessage -f $Type, $Name) # "No $($Type) event registered: $($Name)" } # remove event diff --git a/src/Public/Flash.ps1 b/src/Public/Flash.ps1 index 4d704e74b..3176381e8 100644 --- a/src/Public/Flash.ps1 +++ b/src/Public/Flash.ps1 @@ -30,7 +30,7 @@ function Add-PodeFlashMessage { # if sessions haven't been setup, error if (!(Test-PodeSessionsEnabled)) { # Sessions are required to use Flash messages - throw $msgTable.sessionsRequiredForFlashMessagesExceptionMessage + throw $PodeLocale.sessionsRequiredForFlashMessagesExceptionMessage } # append the message against the key @@ -63,7 +63,7 @@ function Clear-PodeFlashMessages { # if sessions haven't been setup, error if (!(Test-PodeSessionsEnabled)) { # Sessions are required to use Flash messages - throw $msgTable.sessionsRequiredForFlashMessagesExceptionMessage + throw $PodeLocale.sessionsRequiredForFlashMessagesExceptionMessage } # clear all keys @@ -98,7 +98,7 @@ function Get-PodeFlashMessage { # if sessions haven't been setup, error if (!(Test-PodeSessionsEnabled)) { # Sessions are required to use Flash messages - throw $msgTable.sessionsRequiredForFlashMessagesExceptionMessage + throw $PodeLocale.sessionsRequiredForFlashMessagesExceptionMessage } # retrieve messages from session, then delete it @@ -134,7 +134,7 @@ function Get-PodeFlashMessageNames { # if sessions haven't been setup, error if (!(Test-PodeSessionsEnabled)) { # Sessions are required to use Flash messages - throw $msgTable.sessionsRequiredForFlashMessagesExceptionMessage + throw $PodeLocale.sessionsRequiredForFlashMessagesExceptionMessage } # return list of all current keys @@ -169,7 +169,7 @@ function Remove-PodeFlashMessage { # if sessions haven't been setup, error if (!(Test-PodeSessionsEnabled)) { # Sessions are required to use Flash messages - throw $msgTable.sessionsRequiredForFlashMessagesExceptionMessage + throw $PodeLocale.sessionsRequiredForFlashMessagesExceptionMessage } # remove key from flash messages @@ -203,7 +203,7 @@ function Test-PodeFlashMessage { # if sessions haven't been setup, error if (!(Test-PodeSessionsEnabled)) { # Sessions are required to use Flash messages - throw $msgTable.sessionsRequiredForFlashMessagesExceptionMessage + throw $PodeLocale.sessionsRequiredForFlashMessagesExceptionMessage } # return if a key exists as a flash message diff --git a/src/Public/Logging.ps1 b/src/Public/Logging.ps1 index 28b7ad9fb..34bd8ae56 100644 --- a/src/Public/Logging.ps1 +++ b/src/Public/Logging.ps1 @@ -133,7 +133,7 @@ function New-PodeLoggingMethod { [ValidateScript({ if (Test-PodeIsEmpty $_) { # A non-empty ScriptBlock is required for the Custom logging output method - throw $msgTable.nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage + throw $PodeLocale.nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage } return $true @@ -189,7 +189,7 @@ function New-PodeLoggingMethod { # only windows if (!(Test-PodeIsWindows)) { # Event Viewer logging only supported on Windows - throw $msgTable.eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage + throw $PodeLocale.eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage } # create source @@ -263,13 +263,13 @@ function Enable-PodeRequestLogging { # error if it's already enabled if ($PodeContext.Server.Logging.Types.Contains($name)) { # Request Logging has already been enabled - throw $msgTable.requestLoggingAlreadyEnabledExceptionMessage + throw $PodeLocale.requestLoggingAlreadyEnabledExceptionMessage } # ensure the Method contains a scriptblock if (Test-PodeIsEmpty $Method.ScriptBlock) { # The supplied output Method for Request Logging requires a valid ScriptBlock - throw $msgTable.outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage + throw $PodeLocale.outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage } # username property @@ -348,13 +348,13 @@ function Enable-PodeErrorLogging { # error if it's already enabled if ($PodeContext.Server.Logging.Types.Contains($name)) { # Error Logging has already been enabled - throw $msgTable.requestLoggingAlreadyEnabledExceptionMessage + throw $PodeLocale.requestLoggingAlreadyEnabledExceptionMessage } # ensure the Method contains a scriptblock if (Test-PodeIsEmpty $Method.ScriptBlock) { # The supplied output Method for Error Logging requires a valid ScriptBlock - throw $msgTable.outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage + throw $PodeLocale.outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage } # all errors? @@ -427,7 +427,7 @@ function Add-PodeLogger { [ValidateScript({ if (Test-PodeIsEmpty $_) { # A non-empty ScriptBlock is required for the logging method - throw $msgTable.nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage + throw $PodeLocale.nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage } return $true diff --git a/src/Public/Middleware.ps1 b/src/Public/Middleware.ps1 index aa496fe5d..6d36795ad 100644 --- a/src/Public/Middleware.ps1 +++ b/src/Public/Middleware.ps1 @@ -143,7 +143,7 @@ function New-PodeCsrfToken { # fail if the csrf logic hasn't been initialised if (!(Test-PodeCsrfConfigured)) { # CSRF Middleware has not been initialized - throw $msgTable.csrfMiddlewareNotInitializedExceptionMessage + throw $PodeLocale.csrfMiddlewareNotInitializedExceptionMessage } # generate a new secret and salt @@ -173,7 +173,7 @@ function Get-PodeCsrfMiddleware { # fail if the csrf logic hasn't been initialised if (!(Test-PodeCsrfConfigured)) { # CSRF Middleware has not been initialized - throw $msgTable.csrfMiddlewareNotInitializedExceptionMessage + throw $PodeLocale.csrfMiddlewareNotInitializedExceptionMessage } # return scriptblock for the csrf route middleware to test tokens @@ -242,7 +242,7 @@ function Initialize-PodeCsrf { # if sessions haven't been setup and we're not using cookies, error if (!$UseCookies -and !(Test-PodeSessionsEnabled)) { # Sessions are required to use CSRF unless you want to use cookies - throw $msgTable.sessionsRequiredForCsrfExceptionMessage + throw $PodeLocale.sessionsRequiredForCsrfExceptionMessage } # if we're using cookies, ensure a global secret exists @@ -480,7 +480,7 @@ function Add-PodeMiddleware { # ensure we have a script to run if (Test-PodeIsEmpty $InputObject.Logic) { # [Middleware]: No logic supplied in ScriptBlock - throw $msgTable.middlewareNoLogicSuppliedExceptionMessage + throw $PodeLocale.middlewareNoLogicSuppliedExceptionMessage } # set name, and override route/args diff --git a/src/Public/OAComponents.ps1 b/src/Public/OAComponents.ps1 index 736ba9cf1..a1e70f158 100644 --- a/src/Public/OAComponents.ps1 +++ b/src/Public/OAComponents.ps1 @@ -382,7 +382,7 @@ function Add-PodeOAComponentParameter { } else { # The Parameter has no name. Please provide a name to this component using the `Name` parameter - throw $msgTable.parameterHasNoNameExceptionMessage + throw $PodeLocale.parameterHasNoNameExceptionMessage } } $PodeContext.Server.OpenAPI.Definitions[$tag].components.parameters[$Name] = $Parameter @@ -744,7 +744,7 @@ function Add-PodeOAComponentPathItem { foreach ($tag in $DefinitionTag) { if (Test-PodeOAVersion -Version 3.0 -DefinitionTag $tag ) { # The 'pathItems' reusable component feature is not available in OpenAPI v3.0. - throw $msgTable.reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage + throw $PodeLocale.reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage } #add the default OpenApi responses if ( $PodeContext.Server.OpenAPI.Definitions[$tag].hiddenComponents.defaultResponses) { diff --git a/src/Public/OAProperties.ps1 b/src/Public/OAProperties.ps1 index 31691d016..64d458ab7 100644 --- a/src/Public/OAProperties.ps1 +++ b/src/Public/OAProperties.ps1 @@ -350,7 +350,7 @@ function New-PodeOAMultiTypeProperty { if ($NoProperties) { if ($Properties -or $MinProperties -or $MaxProperties) { # The parameter 'NoProperties' is mutually exclusive with 'Properties', 'MinProperties' and 'MaxProperties' - throw $msgTable.noPropertiesMutuallyExclusiveExceptionMessage + throw $PodeLocale.noPropertiesMutuallyExclusiveExceptionMessage } $param.properties = @($null) } @@ -370,7 +370,7 @@ function New-PodeOAMultiTypeProperty { } elseif ($DiscriminatorMapping) { # The parameter 'DiscriminatorMapping' can only be used when 'DiscriminatorProperty' is present - throw $msgTable.discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage + throw $PodeLocale.discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage } } if ($type -contains 'boolean') { @@ -1648,7 +1648,7 @@ function New-PodeOAObjectProperty { if ($NoProperties) { if ($Properties -or $MinProperties -or $MaxProperties) { # The parameter `NoProperties` is mutually exclusive with `Properties`, `MinProperties` and `MaxProperties` - throw $msgTable.noPropertiesMutuallyExclusiveExceptionMessage + throw $PodeLocale.noPropertiesMutuallyExclusiveExceptionMessage } $param.properties = @($null) $PropertiesFromPipeline = $false @@ -1671,7 +1671,7 @@ function New-PodeOAObjectProperty { } elseif ($DiscriminatorMapping) { # The parameter 'DiscriminatorMapping' can only be used when 'DiscriminatorProperty' is present - throw $msgTable.discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage + throw $PodeLocale.discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage } $collectedInput = [System.Collections.Generic.List[hashtable]]::new() } @@ -1799,7 +1799,7 @@ function Merge-PodeOAProperty { if ($DiscriminatorProperty) { if ($type.ToLower() -eq 'allof' ) { # The parameter 'Discriminator' is incompatible with `allOf` - throw $msgTable.discriminatorIncompatibleWithAllOfExceptionMessage + throw $PodeLocale.discriminatorIncompatibleWithAllOfExceptionMessage } $param.discriminator = @{ 'propertyName' = $DiscriminatorProperty @@ -1810,7 +1810,7 @@ function Merge-PodeOAProperty { } elseif ($DiscriminatorMapping) { # The parameter 'DiscriminatorMapping' can only be used when 'DiscriminatorProperty' is present - throw $msgTable.discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage + throw $PodeLocale.discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage } } @@ -1818,7 +1818,7 @@ function Merge-PodeOAProperty { if ($ParamsList) { if ($ParamsList.type -ine 'object' -and !$ParamsList.object) { # {0} can only be associated with an Object - throw ($msgTable.typeCanOnlyBeAssociatedWithObjectExceptionMessage -f $type) + throw ($PodeLocale.typeCanOnlyBeAssociatedWithObjectExceptionMessage -f $type) } $param.schemas += $ParamsList } diff --git a/src/Public/OpenApi.ps1 b/src/Public/OpenApi.ps1 index 70c13b7f1..290d4388e 100644 --- a/src/Public/OpenApi.ps1 +++ b/src/Public/OpenApi.ps1 @@ -3293,7 +3293,8 @@ function Add-PodeOAWebhook { } foreach ($tag in $DefinitionTag) { if (Test-PodeOAVersion -Version 3.0 -DefinitionTag $tag ) { - throw 'The feature reusable component webhook is not available in OpenAPI v3.0.x' + # The Webhooks feature is not supported in OpenAPI v3.0.x + throw $PodeLocal.webhooksFeatureNotSupportedInOpenApi30ExceptionMessage } $PodeContext.Server.OpenAPI.Definitions[$tag].webhooks[$Name] = $refRoute } @@ -3350,7 +3351,8 @@ function Select-PodeOADefinition { ) if (Test-PodeIsEmpty $Scriptblock) { - throw 'No scriptblock for -Scriptblock passed' + # No ScriptBlock supplied + throw $PodeLocal.noScriptBlockSuppliedExceptionMessage } if (Test-PodeIsEmpty -Value $Tag) { $Tag = $PodeContext.Server.OpenAPI.DefaultDefinitionTag diff --git a/src/Public/Responses.ps1 b/src/Public/Responses.ps1 index 2d5ac7735..867456b13 100644 --- a/src/Public/Responses.ps1 +++ b/src/Public/Responses.ps1 @@ -1567,7 +1567,7 @@ function Send-PodeSignal { # error if not configured if (!$PodeContext.Server.Signals.Enabled) { # WebSockets have not been configured to send signal messages - throw $msgTable.websocketsNotConfiguredForSignalMessagesExceptionMessage + throw $PodeLocale.websocketsNotConfiguredForSignalMessagesExceptionMessage } # do nothing if no value diff --git a/src/Public/Routes.ps1 b/src/Public/Routes.ps1 index 105a68274..36d69848d 100644 --- a/src/Public/Routes.ps1 +++ b/src/Public/Routes.ps1 @@ -285,7 +285,7 @@ function Add-PodeRoute { $Path = Split-PodeRouteQuery -Path $Path if ([string]::IsNullOrWhiteSpace($Path)) { # No Path supplied for the Route - throw $msgTable.noPathSuppliedForRouteExceptionMessage + throw $PodeLocale.noPathSuppliedForRouteExceptionMessage } # ensure the route has appropriate slashes @@ -321,12 +321,12 @@ function Add-PodeRoute { if (![string]::IsNullOrWhiteSpace($Access)) { if ([string]::IsNullOrWhiteSpace($Authentication)) { # Access requires Authentication to be supplied on Routes - throw $msgTable.accessRequiresAuthenticationOnRoutesExceptionMessage + throw $PodeLocale.accessRequiresAuthenticationOnRoutesExceptionMessage } if (!(Test-PodeAccessExists -Name $Access)) { # Access method does not exist - throw ($msgTable.accessMethodDoesNotExistExceptionMessage -f $Access) + throw ($PodeLocale.accessMethodDoesNotExistExceptionMessage -f $Access) } $options = @{ @@ -340,7 +340,7 @@ function Add-PodeRoute { if (![string]::IsNullOrWhiteSpace($Authentication)) { if (!(Test-PodeAuthExists -Name $Authentication)) { # Authentication method does not exist - throw ($msgTable.authenticationMethodDoesNotExistExceptionMessage -f $Authentication) + throw ($PodeLocale.authenticationMethodDoesNotExistExceptionMessage -f $Authentication) } $options = @{ @@ -796,12 +796,12 @@ function Add-PodeStaticRoute { if (![string]::IsNullOrWhiteSpace($Access)) { if ([string]::IsNullOrWhiteSpace($Authentication)) { # Access requires Authentication to be supplied on Routes - throw $msgTable.accessRequiresAuthenticationOnRoutesExceptionMessage + throw $PodeLocale.accessRequiresAuthenticationOnRoutesExceptionMessage } if (!(Test-PodeAccessExists -Name $Access)) { # Access method does not exist - throw ($msgTable.accessMethodDoesNotExistExceptionMessage -f $Access) + throw ($PodeLocale.accessMethodDoesNotExistExceptionMessage -f $Access) } $options = @{ @@ -1175,7 +1175,7 @@ function Add-PodeRouteGroup { if (Test-PodeIsEmpty $Routes) { # The Route parameter needs a valid, not empty, scriptblock - throw $msgTable.routeParameterNeedsValidScriptblockExceptionMessage + throw $PodeLocale.routeParameterNeedsValidScriptblockExceptionMessage } if ($Path -eq '/') { @@ -1433,7 +1433,7 @@ function Add-PodeStaticRouteGroup { if (Test-PodeIsEmpty $Routes) { # The Route parameter needs a valid, not empty, scriptblock - throw $msgTable.routeParameterNeedsValidScriptblockExceptionMessage + throw $PodeLocale.routeParameterNeedsValidScriptblockExceptionMessage } if ($Path -eq '/') { @@ -1601,7 +1601,7 @@ function Add-PodeSignalRouteGroup { if (Test-PodeIsEmpty $Routes) { # The Route parameter needs a valid, not empty, scriptblock - throw $msgTable.routeParameterNeedsValidScriptblockExceptionMessage + throw $PodeLocale.routeParameterNeedsValidScriptblockExceptionMessage } if ($Path -eq '/') { @@ -2022,7 +2022,7 @@ function ConvertTo-PodeRoute { # if there are no commands, fail if (Test-PodeIsEmpty $Commands) { # No commands supplied to convert to Routes - throw $msgTable.noCommandsSuppliedToConvertToRoutesExceptionMessage + throw $PodeLocale.noCommandsSuppliedToConvertToRoutesExceptionMessage } # trim end trailing slashes from the path @@ -2268,7 +2268,7 @@ function Add-PodePage { 'scriptblock' { if (Test-PodeIsEmpty $ScriptBlock) { # A non-empty ScriptBlock is required to create a Page Route - throw $msgTable.nonEmptyScriptBlockRequiredForPageRouteExceptionMessage + throw $PodeLocale.nonEmptyScriptBlockRequiredForPageRouteExceptionMessage } $arg = @($ScriptBlock, $Data) @@ -2663,7 +2663,7 @@ function Test-PodeRoute { $Path = Split-PodeRouteQuery -Path $Path if ([string]::IsNullOrWhiteSpace($Path)) { # No Path supplied for the Route - throw $msgTable.noPathSuppliedForRouteExceptionMessage + throw $PodeLocale.noPathSuppliedForRouteExceptionMessage } # ensure the route has appropriate slashes @@ -2717,7 +2717,7 @@ function Test-PodeStaticRoute { $Path = Split-PodeRouteQuery -Path $Path if ([string]::IsNullOrWhiteSpace($Path)) { # No Path supplied for the Route - throw $msgTable.noPathSuppliedForRouteExceptionMessage + throw $PodeLocale.noPathSuppliedForRouteExceptionMessage } # ensure the route has appropriate slashes diff --git a/src/Public/SSE.ps1 b/src/Public/SSE.ps1 index bb07456c1..0ea8aa559 100644 --- a/src/Public/SSE.ps1 +++ b/src/Public/SSE.ps1 @@ -79,7 +79,7 @@ function ConvertTo-PodeSseConnection { # check Accept header - unless forcing if (!$Force -and ((Get-PodeHeader -Name 'Accept') -ine 'text/event-stream')) { # SSE can only be configured on requests with an Accept header value of text/event-stream - throw $msgTable.sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage + throw $PodeLocale.sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage } # check for default scope, and set @@ -266,13 +266,13 @@ function Send-PodeSseEvent { # error if no name if ([string]::IsNullOrEmpty($Name)) { # An SSE connection Name is required, either from -Name or $WebEvent.Sse.Name - throw $msgTable.sseConnectionNameRequiredExceptionMessage + throw $PodeLocale.sseConnectionNameRequiredExceptionMessage } # check if broadcast level if (!(Test-PodeSseBroadcastLevel -Name $Name -Group $Group -ClientId $ClientId)) { # SSE failed to broadcast due to defined SSE broadcast level - throw ($msgTable.sseFailedToBroadcastExceptionMessage -f $Name, (Get-PodeSseBroadcastLevel -Name $Name)) + throw ($PodeLocale.sseFailedToBroadcastExceptionMessage -f $Name, (Get-PodeSseBroadcastLevel -Name $Name)) } # send event diff --git a/src/Public/Secrets.ps1 b/src/Public/Secrets.ps1 index 82360ab50..d4588e8bf 100644 --- a/src/Public/Secrets.ps1 +++ b/src/Public/Secrets.ps1 @@ -130,8 +130,8 @@ function Register-PodeSecretVault { if ($PodeContext.Server.Secrets.Vaults[$Name].AutoImported) { $autoImported = ' from auto-importing' } - - throw "A Secret Vault with the name '$($Name)' has already been registered$($autoImported)" + # A Secret Vault with the name {0} has already been registered{1} + throw ($PodeLocal.secretVaultAlreadyRegisteredAutoImportExceptionMessage -f $Name, $autoImported) } # base vault config @@ -261,7 +261,8 @@ function Unlock-PodeSecretVault { # has the vault been registered? if (!(Test-PodeSecretVault -Name $Name)) { - throw "No Secret Vault with the name '$($Name)' has been registered" + # No Secret Vault with the name has been registered + throw ($PodeLocal.noSecretVaultRegisteredExceptionMessage -f $Vault) } # get vault @@ -290,7 +291,8 @@ function Unlock-PodeSecretVault { if ($null -ne $expiry) { $expiry = ([datetime]$expiry).ToUniversalTime() if ($expiry -le [datetime]::UtcNow) { - throw "Secret Vault unlock expiry date is in the past (UTC): $($expiry)" + # Secret Vault unlock expiry date is in the past (UTC) + throw ($PodeLocal.secretVaultUnlockExpiryDateInPastExceptionMessage -f $expiry) } $vault.Unlock.Expiry = $expiry @@ -435,17 +437,20 @@ function Mount-PodeSecret { # has the secret been mounted already? if (Test-PodeSecret -Name $Name) { - throw "A Secret with the name '$($Name)' has already been mounted" + # A Secret with the name has already been mounted + throw ($PodeLocal.secretAlreadyMountedExceptionMessage -f $Name) } # does the vault exist? if (!(Test-PodeSecretVault -Name $Vault)) { - throw "No Secret Vault with the name '$($Vault)' has been registered" + # No Secret Vault with the name has been registered + throw ($PodeLocal.noSecretVaultRegisteredExceptionMessage -f $Vault) } # check properties if (!(Test-PodeIsEmpty $Property) -and !(Test-PodeIsEmpty $ExpandProperty)) { - throw 'You can only provide one of either Property or ExpandPropery, but not both' + # Parameters 'NoAdditionalProperties' and 'AdditionalProperties' are mutually exclusive + throw $PodeLocal.noAdditionalPropertiesMutuallyExclusiveExceptionMessage } # which cache value? @@ -508,7 +513,8 @@ function Dismount-PodeSecret { # do nothing if the secret hasn't been mounted, unless Remove is specified if (!(Test-PodeSecret -Name $Name)) { if ($Remove) { - throw "No Secret with the name '$($Name)' has been mounted to be removed from a Secret Vault" + # No Secret named has been mounted + throw ($PodeLocal.noSecretNamedMountedExceptionMessage -f $Name) } return @@ -550,7 +556,8 @@ function Get-PodeSecret { # has the secret been mounted? if (!(Test-PodeSecret -Name $Name)) { - throw "No Secret with the name '$($Name)' has been mounted" + # No Secret named has been mounted + throw ($PodeLocal.noSecretNamedMountedExceptionMessage -f $Name) } # get the secret and vault @@ -664,7 +671,8 @@ function Update-PodeSecret { # has the secret been mounted? if (!(Test-PodeSecret -Name $Name)) { - throw "No Secret with the name '$($Name)' has been mounted" + # No Secret named has been mounted + throw ($PodeLocal.noSecretNamedMountedExceptionMessage -f $Name) } # make sure the value type is correct diff --git a/src/Public/Security.ps1 b/src/Public/Security.ps1 index 3b360f8af..3d7f1ecd4 100644 --- a/src/Public/Security.ps1 +++ b/src/Public/Security.ps1 @@ -1453,7 +1453,8 @@ function Set-PodeSecurityAccessControl { if (![string]::IsNullOrWhiteSpace($Headers) -or $AuthorizationHeader -or $CrossDomainXhrRequests) { if ($Headers -icontains '*') { if ($Credentials) { - throw 'The * wildcard for Headers, when Credentials is passed, will be taken as a literal string and not a wildcard' + # When Credentials is passed, The * wildcard for Headers will be taken as a literal string and not a wildcard + throw $PodeLocal.credentialsPassedWildcardForHeadersLiteralExceptionMessage } $Headers = @('*') @@ -1478,7 +1479,8 @@ function Set-PodeSecurityAccessControl { if ($AutoHeaders) { if ($Headers -icontains '*') { - throw 'The * wildcard for Headers, is not comptatibile with the AutoHeaders switch' + # The * wildcard for Headers is incompatible with the AutoHeaders switch + throw $PodeLocal.wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage } Add-PodeSecurityHeader -Name 'Access-Control-Allow-Headers' -Value 'content-type' -Append @@ -1487,7 +1489,8 @@ function Set-PodeSecurityAccessControl { if ($AutoMethods) { if ($Methods -icontains '*') { - throw 'The * wildcard for Methods, is not comptatibile with the AutoMethods switch' + # The * wildcard for Methods is incompatible with the AutoMethods switch + throw $PodeLocal.wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage } if ($WithOptions) { Add-PodeSecurityHeader -Name 'Access-Control-Allow-Methods' -Value 'Options' -Append @@ -1497,7 +1500,8 @@ function Set-PodeSecurityAccessControl { # duration if ($Duration -le 0) { - throw "Invalid Access-Control-Max-Age duration supplied: $($Duration). Should be greater than 0" + # Invalid Access-Control-Max-Age duration supplied + throw ($PodeLocal.invalidAccessControlMaxAgeDurationExceptionMessage -f $Duration) } Add-PodeSecurityHeader -Name 'Access-Control-Max-Age' -Value $Duration diff --git a/src/Public/Sessions.ps1 b/src/Public/Sessions.ps1 index 93f0971d0..0585ea366 100644 --- a/src/Public/Sessions.ps1 +++ b/src/Public/Sessions.ps1 @@ -109,7 +109,7 @@ function Enable-PodeSessionMiddleware { # check that session logic hasn't already been initialised if (Test-PodeSessionsEnabled) { # Session Middleware has already been initialized - throw $msgTable.sessionMiddlewareAlreadyInitializedExceptionMessage + throw $PodeLocale.sessionMiddlewareAlreadyInitializedExceptionMessage } # ensure the override store has the required methods @@ -118,7 +118,7 @@ function Enable-PodeSessionMiddleware { @('delete', 'get', 'set') | ForEach-Object { if ($members -inotcontains $_) { # The custom session storage does not implement the required '{0}()' method - throw ($msgTable.customSessionStorageMethodNotImplementedExceptionMessage -f $_) + throw ($PodeLocale.customSessionStorageMethodNotImplementedExceptionMessage -f $_) } } } @@ -127,7 +127,7 @@ function Enable-PodeSessionMiddleware { if ([string]::IsNullOrEmpty($Secret)) { if (!(Test-PodeIsEmpty $Storage)) { # A Secret is required when using custom session storage - throw $msgTable.secretRequiredForCustomSessionStorageExceptionMessage + throw $PodeLocale.secretRequiredForCustomSessionStorageExceptionMessage } $Secret = Get-PodeServerDefaultSecret @@ -182,7 +182,7 @@ function Remove-PodeSession { # if sessions haven't been setup, error if (!(Test-PodeSessionsEnabled)) { # The sessions have not been configured - throw $msgTable.sessionsNotConfiguredExceptionMessage + throw $PodeLocale.sessionsNotConfiguredExceptionMessage } # do nothing if session is null @@ -217,13 +217,13 @@ function Save-PodeSession { # if sessions haven't been setup, error if (!(Test-PodeSessionsEnabled)) { # The sessions have not been configured - throw $msgTable.sessionsNotConfiguredExceptionMessage + throw $PodeLocale.sessionsNotConfiguredExceptionMessage } # error if session is null if ($null -eq $WebEvent.Session) { # There is no session available to save - throw $msgTable.noSessionAvailableToSaveExceptionMessage + throw $PodeLocale.noSessionAvailableToSaveExceptionMessage } # if auth is in use, then assign to session store @@ -313,13 +313,13 @@ function Reset-PodeSessionExpiry { # if sessions haven't been setup, error if (!(Test-PodeSessionsEnabled)) { # The sessions have not been configured - throw $msgTable.sessionsNotConfiguredExceptionMessage + throw $PodeLocale.sessionsNotConfiguredExceptionMessage } # error if session is null if ($null -eq $WebEvent.Session) { # There is no session available to save - throw $msgTable.noSessionAvailableToSaveExceptionMessage + throw $PodeLocale.noSessionAvailableToSaveExceptionMessage } # temporarily set this session to auto-extend @@ -363,7 +363,7 @@ function Get-PodeSessionExpiry { # error if session is null if ($null -eq $WebEvent.Session) { # There is no session available to save - throw $msgTable.noSessionAvailableToSaveExceptionMessage + throw $PodeLocale.noSessionAvailableToSaveExceptionMessage } # default min date diff --git a/src/Public/State.ps1 b/src/Public/State.ps1 index 944ce3161..c78aad7eb 100644 --- a/src/Public/State.ps1 +++ b/src/Public/State.ps1 @@ -39,7 +39,7 @@ function Set-PodeState { if ($null -eq $PodeContext.Server.State) { # Pode has not been initialized - throw $msgTable.podeNotInitializedExceptionMessage + throw $PodeLocale.podeNotInitializedExceptionMessage } if ($null -eq $Scope) { @@ -83,7 +83,7 @@ function Get-PodeState { if ($null -eq $PodeContext.Server.State) { # Pode has not been initialized - throw $msgTable.podeNotInitializedExceptionMessage + throw $PodeLocale.podeNotInitializedExceptionMessage } if ($WithScope) { @@ -127,7 +127,7 @@ function Get-PodeStateNames { if ($null -eq $PodeContext.Server.State) { # Pode has not been initialized - throw $msgTable.podeNotInitializedExceptionMessage + throw $PodeLocale.podeNotInitializedExceptionMessage } if ($null -eq $Scope) { @@ -180,7 +180,7 @@ function Remove-PodeState { if ($null -eq $PodeContext.Server.State) { # Pode has not been initialized - throw $msgTable.podeNotInitializedExceptionMessage + throw $PodeLocale.podeNotInitializedExceptionMessage } $value = $PodeContext.Server.State[$Name].Value @@ -252,7 +252,7 @@ function Save-PodeState { # error if attempting to use outside of the pode server if ($null -eq $PodeContext.Server.State) { # Pode has not been initialized - throw $msgTable.podeNotInitializedExceptionMessage + throw $PodeLocale.podeNotInitializedExceptionMessage } # get the full path to save the state @@ -347,7 +347,7 @@ function Restore-PodeState { # error if attempting to use outside of the pode server if ($null -eq $PodeContext.Server.State) { # Pode has not been initialized - throw $msgTable.podeNotInitializedExceptionMessage + throw $PodeLocale.podeNotInitializedExceptionMessage } # get the full path to the state @@ -422,7 +422,7 @@ function Test-PodeState { if ($null -eq $PodeContext.Server.State) { # Pode has not been initialized - throw $msgTable.podeNotInitializedExceptionMessage + throw $PodeLocale.podeNotInitializedExceptionMessage } return $PodeContext.Server.State.ContainsKey($Name) diff --git a/src/Public/Tasks.ps1 b/src/Public/Tasks.ps1 index e430b1b0b..e8ac3e70c 100644 --- a/src/Public/Tasks.ps1 +++ b/src/Public/Tasks.ps1 @@ -426,5 +426,5 @@ function Wait-PodeTask { } # Task type is invalid, expected either [System.Threading.Tasks.Task] or [hashtable] - throw $msgTable.invalidTaskTypeExceptionMessage + throw $PodeLocale.invalidTaskTypeExceptionMessage } \ No newline at end of file diff --git a/src/Public/Threading.ps1 b/src/Public/Threading.ps1 index 972ac4f42..5cb4779df 100644 --- a/src/Public/Threading.ps1 +++ b/src/Public/Threading.ps1 @@ -247,13 +247,13 @@ function Enter-PodeLockable { # check if value type and throw if ($Object -is [valuetype]) { # Cannot lock a [ValueTypes] - throw $msgTable.cannotLockValueTypeExceptionMessage + throw $PodeLocale.cannotLockValueTypeExceptionMessage } # check if null and throw if ($null -eq $Object) { # Cannot lock an object that is null - throw $msgTable.cannotLockNullObjectExceptionMessage + throw $PodeLocale.cannotLockNullObjectExceptionMessage } # check if the global lockable is locked @@ -266,7 +266,7 @@ function Enter-PodeLockable { [System.Threading.Monitor]::TryEnter($Object.SyncRoot, $Timeout, [ref]$locked) if (!$locked) { # Failed to acquire a lock on the object - throw $msgTable.failedToAcquireLockExceptionMessage + throw $PodeLocale.failedToAcquireLockExceptionMessage } } @@ -314,13 +314,13 @@ function Exit-PodeLockable { # check if value type and throw if ($Object -is [valuetype]) { # Cannot unlock a [ValueTypes] - throw $msgTable.cannotUnlockValueTypeExceptionMessage + throw $PodeLocale.cannotUnlockValueTypeExceptionMessage } # check if null and throw if ($null -eq $Object) { # Cannot unlock an object that is null - throw $msgTable.cannotUnlockNullObjectExceptionMessage + throw $PodeLocale.cannotUnlockNullObjectExceptionMessage } if ([System.Threading.Monitor]::IsEntered($Object.SyncRoot)) { diff --git a/src/Public/Utilities.ps1 b/src/Public/Utilities.ps1 index 2d02ab16a..5657caad1 100644 --- a/src/Public/Utilities.ps1 +++ b/src/Public/Utilities.ps1 @@ -385,7 +385,7 @@ function Import-PodeSnapin { # if non-windows or core, fail if ((Test-PodeIsPSCore) -or (Test-PodeIsUnix)) { # Snapins are only supported on Windows PowerShell - throw $msgTable.snapinsSupportedOnWindowsPowershellOnlyExceptionMessage + throw $PodeLocale.snapinsSupportedOnWindowsPowershellOnlyExceptionMessage } # import the snap-in @@ -1058,7 +1058,7 @@ function New-PodeCron { # cant have None and Interval if (($Every -ieq 'none') -and ($Interval -gt 0)) { # Cannot supply an interval when the parameter `Every` is set to None - throw $msgTable.cannotSupplyIntervalWhenEveryIsNoneExceptionMessage + throw $PodeLocale.cannotSupplyIntervalWhenEveryIsNoneExceptionMessage } # base cron @@ -1159,7 +1159,7 @@ function New-PodeCron { if ($Interval -gt 0) { # Cannot supply interval value for every quarter - throw $msgTable.cannotSupplyIntervalForQuarterExceptionMessage + throw $PodeLocale.cannotSupplyIntervalForQuarterExceptionMessage } } @@ -1171,7 +1171,7 @@ function New-PodeCron { if ($Interval -gt 0) { # Cannot supply interval value for every year - throw $msgTable.cannotSupplyIntervalForYearExceptionMessage + throw $PodeLocale.cannotSupplyIntervalForYearExceptionMessage } } } diff --git a/src/Public/WebSockets.ps1 b/src/Public/WebSockets.ps1 index 5d2cbd21d..3b6eab478 100644 --- a/src/Public/WebSockets.ps1 +++ b/src/Public/WebSockets.ps1 @@ -170,7 +170,8 @@ function Disconnect-PodeWebSocket { } if ([string]::IsNullOrWhiteSpace($Name)) { - throw 'No Name for a WebSocket to disconnect from supplied' + # No Name for a WebSocket to disconnect from supplied + throw $PodeLocal.noNameForWebSocketDisconnectExceptionMessage } if (Test-PodeWebSocket -Name $Name) { @@ -204,7 +205,9 @@ function Remove-PodeWebSocket { } if ([string]::IsNullOrWhiteSpace($Name)) { - throw 'No Name for a WebSocket to remove supplied' + # No Name for a WebSocket to remove supplied + throw $PodeLocal.noNameForWebSocketRemoveExceptionMessage + } $PodeContext.Server.WebSockets.Receiver.RemoveWebSocket($Name) @@ -260,7 +263,8 @@ function Send-PodeWebSocket { # do we have a name? if ([string]::IsNullOrWhiteSpace($Name)) { - throw 'No Name for a WebSocket to send message to supplied' + # No Name for a WebSocket to send message to supplied + throw $PodeLocal.noNameForWebSocketSendMessageExceptionMessage } # do the socket exist? @@ -315,7 +319,8 @@ function Reset-PodeWebSocket { } if ([string]::IsNullOrWhiteSpace($Name)) { - throw 'No Name for a WebSocket to reset supplied' + # No Name for a WebSocket to reset supplied + throw $PodeLocal.noNameForWebSocketResetExceptionMessage } if (Test-PodeWebSocket -Name $Name) { diff --git a/tests/integration/Authentication.Tests.ps1 b/tests/integration/Authentication.Tests.ps1 index 9ffc4cb4e..527d7e288 100644 --- a/tests/integration/Authentication.Tests.ps1 +++ b/tests/integration/Authentication.Tests.ps1 @@ -6,7 +6,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]integration', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } - Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' + Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } diff --git a/tests/unit/Authentication.Tests.ps1 b/tests/unit/Authentication.Tests.ps1 index 298d9b9ff..9678402ba 100644 --- a/tests/unit/Authentication.Tests.ps1 +++ b/tests/unit/Authentication.Tests.ps1 @@ -4,7 +4,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } - Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' + Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } $now = [datetime]::UtcNow @@ -139,12 +139,12 @@ Describe 'Test-PodeJwt' { It 'Throws exception - the JWT has expired' { # "exp" (Expiration Time) Claim - { Test-PodeJwt @{exp = 1 } } | Should -Throw -ExceptionType ([System.Exception]) -ExpectedMessage $msgTable.jwtExpiredExceptionMessage + { Test-PodeJwt @{exp = 1 } } | Should -Throw -ExceptionType ([System.Exception]) -ExpectedMessage $PodeLocale.jwtExpiredExceptionMessage } It 'Throws exception - the JWT is not yet valid for use' { # "nbf" (Not Before) Claim - { Test-PodeJwt @{nbf = 99999999999 } } | Should -Throw -ExceptionType ([System.Exception]) -ExpectedMessage $msgTable.jwtNotYetValidExceptionMessage + { Test-PodeJwt @{nbf = 99999999999 } } | Should -Throw -ExceptionType ([System.Exception]) -ExpectedMessage $PodeLocale.jwtNotYetValidExceptionMessage } } diff --git a/tests/unit/Context.Tests.ps1 b/tests/unit/Context.Tests.ps1 index 94cf871b0..9d7afd22b 100644 --- a/tests/unit/Context.Tests.ps1 +++ b/tests/unit/Context.Tests.ps1 @@ -4,7 +4,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } - Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' + Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' $PodeContext = @{ 'Server' = $null; } } diff --git a/tests/unit/Cookies.Tests.ps1 b/tests/unit/Cookies.Tests.ps1 index 876aea138..25860de41 100644 --- a/tests/unit/Cookies.Tests.ps1 +++ b/tests/unit/Cookies.Tests.ps1 @@ -4,7 +4,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } - Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' + Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'Test-PodeCookie' { It 'Returns true' { diff --git a/tests/unit/CronParser.Tests.ps1 b/tests/unit/CronParser.Tests.ps1 index 7bb1c7920..d37e852cb 100644 --- a/tests/unit/CronParser.Tests.ps1 +++ b/tests/unit/CronParser.Tests.ps1 @@ -4,7 +4,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } - Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' + Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'Get-PodeCronFields' { diff --git a/tests/unit/Cryptography.Tests.ps1 b/tests/unit/Cryptography.Tests.ps1 index 60d0a87ab..959031183 100644 --- a/tests/unit/Cryptography.Tests.ps1 +++ b/tests/unit/Cryptography.Tests.ps1 @@ -2,7 +2,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } - Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' + Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'Invoke-PodeHMACSHA256Hash' { diff --git a/tests/unit/Endware.Tests.ps1 b/tests/unit/Endware.Tests.ps1 index 4a41c1581..d20ee0f04 100644 --- a/tests/unit/Endware.Tests.ps1 +++ b/tests/unit/Endware.Tests.ps1 @@ -2,7 +2,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } - Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' + Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'Invoke-PodeEndware' { diff --git a/tests/unit/Flash.Tests.ps1 b/tests/unit/Flash.Tests.ps1 index e75d741cc..3c1baff68 100644 --- a/tests/unit/Flash.Tests.ps1 +++ b/tests/unit/Flash.Tests.ps1 @@ -5,7 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } - Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' + Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'Add-PodeFlashMessage' { diff --git a/tests/unit/Handlers.Tests.ps1 b/tests/unit/Handlers.Tests.ps1 index 1895ee15f..5270ecc4f 100644 --- a/tests/unit/Handlers.Tests.ps1 +++ b/tests/unit/Handlers.Tests.ps1 @@ -5,7 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } - Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' + Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' $PodeContext = @{ 'Server' = $null; } } diff --git a/tests/unit/Headers.Tests.ps1 b/tests/unit/Headers.Tests.ps1 index eccd1d30e..d0158b6f7 100644 --- a/tests/unit/Headers.Tests.ps1 +++ b/tests/unit/Headers.Tests.ps1 @@ -4,7 +4,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } - Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' + Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'Test-PodeHeader' { Context 'WebServer' { diff --git a/tests/unit/Helpers.Tests.ps1 b/tests/unit/Helpers.Tests.ps1 index 23378c533..e4b1fc473 100644 --- a/tests/unit/Helpers.Tests.ps1 +++ b/tests/unit/Helpers.Tests.ps1 @@ -4,7 +4,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } - Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' + Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'Get-PodeType' { @@ -1075,7 +1075,7 @@ Describe 'Get-PodeRelativePath' { It 'Throws error for path ot existing' { Mock Test-PodePath { return $false } - { Get-PodeRelativePath -Path './path' -TestPath } | Should -Throw -ExpectedMessage ($msgTable.pathNotExistExceptionMessage -f './path') # '*The path does not exist*' + { Get-PodeRelativePath -Path './path' -TestPath } | Should -Throw -ExpectedMessage ($PodeLocale.pathNotExistExceptionMessage -f './path') # '*The path does not exist*' } } @@ -1704,15 +1704,15 @@ Describe 'New-PodeCron' { } It 'Throws an error when using Interval without Every' { - { New-PodeCron -Interval 3 } | Should -Throw -ExpectedMessage $msgTable.cannotSupplyIntervalWhenEveryIsNoneExceptionMessage #'*Cannot supply an interval*' + { New-PodeCron -Interval 3 } | Should -Throw -ExpectedMessage $PodeLocale.cannotSupplyIntervalWhenEveryIsNoneExceptionMessage #'*Cannot supply an interval*' } It 'Throws an error when using Interval for Every Quarter' { - { New-PodeCron -Every Quarter -Interval 3 } | Should -Throw -ExpectedMessage $msgTable.cannotSupplyIntervalForQuarterExceptionMessage #Cannot supply interval value for every quarter. + { New-PodeCron -Every Quarter -Interval 3 } | Should -Throw -ExpectedMessage $PodeLocale.cannotSupplyIntervalForQuarterExceptionMessage #Cannot supply interval value for every quarter. } It 'Throws an error when using Interval for Every Year' { - { New-PodeCron -Every Year -Interval 3 } | Should -Throw -ExpectedMessage $msgTable.cannotSupplyIntervalForYearExceptionMessage #'Cannot supply interval value for every year' + { New-PodeCron -Every Year -Interval 3 } | Should -Throw -ExpectedMessage $PodeLocale.cannotSupplyIntervalForYearExceptionMessage #'Cannot supply interval value for every year' } } diff --git a/tests/unit/Logging.Tests.ps1 b/tests/unit/Logging.Tests.ps1 index 74a28cec0..f84cd87f9 100644 --- a/tests/unit/Logging.Tests.ps1 +++ b/tests/unit/Logging.Tests.ps1 @@ -4,7 +4,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } - Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' + Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'Get-PodeLogger' { It 'Returns null as the logger does not exist' { diff --git a/tests/unit/Mappers.Tests.ps1 b/tests/unit/Mappers.Tests.ps1 index e86bbe69d..fb18d6700 100644 --- a/tests/unit/Mappers.Tests.ps1 +++ b/tests/unit/Mappers.Tests.ps1 @@ -4,7 +4,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } - Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' + Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'Get-PodeContentType' { Context 'No extension supplied' { diff --git a/tests/unit/Metrics.Tests.ps1 b/tests/unit/Metrics.Tests.ps1 index 6ce9bd00c..d5d2321a5 100644 --- a/tests/unit/Metrics.Tests.ps1 +++ b/tests/unit/Metrics.Tests.ps1 @@ -4,7 +4,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } - Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' + Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' $PodeContext = @{ Metrics = @{ diff --git a/tests/unit/Middleware.Tests.ps1 b/tests/unit/Middleware.Tests.ps1 index c3ddd6b58..ef168eefe 100644 --- a/tests/unit/Middleware.Tests.ps1 +++ b/tests/unit/Middleware.Tests.ps1 @@ -5,7 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } - Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' + Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'Get-PodeInbuiltMiddleware' { diff --git a/tests/unit/NameGenerator.Tests.ps1 b/tests/unit/NameGenerator.Tests.ps1 index a3863037f..4a2f05d70 100644 --- a/tests/unit/NameGenerator.Tests.ps1 +++ b/tests/unit/NameGenerator.Tests.ps1 @@ -2,7 +2,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } - Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' + Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'Get-PodeRandomName' { diff --git a/tests/unit/OpenApi.Tests.ps1 b/tests/unit/OpenApi.Tests.ps1 index 3ef7b27ed..d0d2fbfec 100644 --- a/tests/unit/OpenApi.Tests.ps1 +++ b/tests/unit/OpenApi.Tests.ps1 @@ -5,7 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } -Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture "en-us" -FileName "Pode" +Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture "en-us" -FileName "Pode" } Describe 'OpenApi' { @@ -2086,7 +2086,7 @@ Describe 'OpenApi' { { Merge-PodeOAProperty -Type AllOf -DiscriminatorProperty 'name' -ObjectDefinitions @('Pet', (New-PodeOAObjectProperty -Properties @((New-PodeOAIntProperty -Name 'id'), (New-PodeOAStringProperty -Name 'name'))) - ) } | Should -Throw -ExpectedMessage $msgTable.discriminatorIncompatibleWithAllOfExceptionMessage #'Discriminator parameter is not compatible with allOf' + ) } | Should -Throw -ExpectedMessage $PodeLocale.discriminatorIncompatibleWithAllOfExceptionMessage #'Discriminator parameter is not compatible with allOf' } #Should -Throw -ExpectedMessage 'Discriminator parameter is not compatible with allOf' @@ -2277,7 +2277,7 @@ Describe 'OpenApi' { it 'throw error' { { Add-PodeOAComponentParameter -Parameter ( New-PodeOAIntProperty -Name 'petId' -Format Int64 -Description 'ID of the pet' | New-PodeOAObjectProperty ) } | - Should -Throw -ExpectedMessage $msgTable.parameterHasNoNameExceptionMessage # The Parameter has no name. Please give this component a name using the 'Name' parameter. + Should -Throw -ExpectedMessage $PodeLocale.parameterHasNoNameExceptionMessage # The Parameter has no name. Please give this component a name using the 'Name' parameter. } } Context 'ConvertTo-PodeOAParameter' { diff --git a/tests/unit/PrivateOpenApi.Tests.ps1 b/tests/unit/PrivateOpenApi.Tests.ps1 index e0f8e1bee..23e76485d 100644 --- a/tests/unit/PrivateOpenApi.Tests.ps1 +++ b/tests/unit/PrivateOpenApi.Tests.ps1 @@ -5,7 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } - Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' + Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'PrivateOpenApi' { diff --git a/tests/unit/Responses.Tests.ps1 b/tests/unit/Responses.Tests.ps1 index 9bd533b69..73c28e745 100644 --- a/tests/unit/Responses.Tests.ps1 +++ b/tests/unit/Responses.Tests.ps1 @@ -5,7 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } - Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture "en-us" -FileName "Pode" + Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture "en-us" -FileName "Pode" } diff --git a/tests/unit/Routes.Tests.ps1 b/tests/unit/Routes.Tests.ps1 index ab74a7624..9638596af 100644 --- a/tests/unit/Routes.Tests.ps1 +++ b/tests/unit/Routes.Tests.ps1 @@ -5,7 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } - Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' + Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' $PodeContext = @{ 'Server' = $null; } } @@ -585,7 +585,7 @@ Describe 'ConvertTo-PodeRoute' { } It 'Throws error for no commands' { - { ConvertTo-PodeRoute } | Should -Throw -ExpectedMessage $msgTable.noCommandsSuppliedToConvertToRoutesExceptionMessage # No commands supplied to convert to Routes. + { ConvertTo-PodeRoute } | Should -Throw -ExpectedMessage $PodeLocale.noCommandsSuppliedToConvertToRoutesExceptionMessage # No commands supplied to convert to Routes. } It 'Calls Add-PodeRoute twice for commands' { @@ -619,7 +619,7 @@ Describe 'Add-PodePage' { It 'Throws error for invalid FilePath' { $PodeContext.Server = @{ 'Root' = $pwd } - { Add-PodePage -Name 'RickMorty' -FilePath './fake/path' } | Should -Throw -ExpectedMessage ($msgTable.pathNotExistExceptionMessage -f '*/fake/path') #'*the path does not exist*' + { Add-PodePage -Name 'RickMorty' -FilePath './fake/path' } | Should -Throw -ExpectedMessage ($PodeLocale.pathNotExistExceptionMessage -f '*/fake/path') #'*the path does not exist*' } It 'Call Add-PodeRoute once for ScriptBlock page' { diff --git a/tests/unit/Schedules.Tests.ps1 b/tests/unit/Schedules.Tests.ps1 index e1705db87..10a62e722 100644 --- a/tests/unit/Schedules.Tests.ps1 +++ b/tests/unit/Schedules.Tests.ps1 @@ -5,7 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } - Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' + Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'Find-PodeSchedule' { Context 'Invalid parameters supplied' { diff --git a/tests/unit/Security.Tests.ps1 b/tests/unit/Security.Tests.ps1 index 4fc896dda..39512002b 100644 --- a/tests/unit/Security.Tests.ps1 +++ b/tests/unit/Security.Tests.ps1 @@ -5,7 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } - Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' + Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' $PodeContext = @{ 'Server' = $null; } } @@ -581,7 +581,7 @@ Describe 'New-PodeCsrfToken' { } } - { New-PodeCsrfToken } | Should -Throw -ExpectedMessage $msgTable.csrfMiddlewareNotInitializedExceptionMessage #CSRF Middleware has not been initialized. + { New-PodeCsrfToken } | Should -Throw -ExpectedMessage $PodeLocale.csrfMiddlewareNotInitializedExceptionMessage #CSRF Middleware has not been initialized. } diff --git a/tests/unit/Server.Tests.ps1 b/tests/unit/Server.Tests.ps1 index 052330a2d..49f091587 100644 --- a/tests/unit/Server.Tests.ps1 +++ b/tests/unit/Server.Tests.ps1 @@ -5,7 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } - Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' + Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' $PodeContext = @{ diff --git a/tests/unit/Serverless.Tests.ps1 b/tests/unit/Serverless.Tests.ps1 index a0f35b6fa..4dc4c8e50 100644 --- a/tests/unit/Serverless.Tests.ps1 +++ b/tests/unit/Serverless.Tests.ps1 @@ -5,7 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } - Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' + Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'Start-PodeAzFuncServer' { BeforeAll { diff --git a/tests/unit/Sessions.Tests.ps1 b/tests/unit/Sessions.Tests.ps1 index 31dddb372..76e405e60 100644 --- a/tests/unit/Sessions.Tests.ps1 +++ b/tests/unit/Sessions.Tests.ps1 @@ -5,7 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } - Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' + Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' $now = [datetime]::UtcNow } @@ -259,7 +259,7 @@ Describe 'Set-PodeSession' { Describe 'Remove-PodeSession' { It 'Throws an error if sessions are not configured' { Mock Test-PodeSessionsEnabled { return $false } - { Remove-PodeSession } | Should -Throw $msgTable.sessionsNotConfiguredExceptionMessage # Sessions have not been configured. + { Remove-PodeSession } | Should -Throw $PodeLocale.sessionsNotConfiguredExceptionMessage # Sessions have not been configured. } It 'Does nothing if there is no session' { @@ -286,13 +286,13 @@ Describe 'Remove-PodeSession' { Describe 'Save-PodeSession' { It 'Throws an error if sessions are not configured' { Mock Test-PodeSessionsEnabled { return $false } - { Save-PodeSession } | Should -Throw $msgTable.sessionsNotConfiguredExceptionMessage # Sessions have not been configured. + { Save-PodeSession } | Should -Throw $PodeLocale.sessionsNotConfiguredExceptionMessage # Sessions have not been configured. } It 'Throws error if there is no session' { Mock Test-PodeSessionsEnabled { return $true } $WebEvent = @{} - { Save-PodeSession } | Should -Throw -ExpectedMessage $msgTable.noSessionAvailableToSaveExceptionMessage # There is no session available to save. + { Save-PodeSession } | Should -Throw -ExpectedMessage $PodeLocale.noSessionAvailableToSaveExceptionMessage # There is no session available to save. } It 'Call saves the session' { diff --git a/tests/unit/State.Tests.ps1 b/tests/unit/State.Tests.ps1 index 700b74d19..8a3192b19 100644 --- a/tests/unit/State.Tests.ps1 +++ b/tests/unit/State.Tests.ps1 @@ -5,7 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } - Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' + Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' $PodeContext = @{ 'Server' = $null; } } @@ -13,7 +13,7 @@ BeforeAll { Describe 'Set-PodeState' { It 'Throws error when not initialised' { $PodeContext.Server = @{ 'State' = $null } - { Set-PodeState -Name 'test' } | Should -Throw -ExpectedMessage $msgTable.podeNotInitializedExceptionMessage # Pode has not been initialized. + { Set-PodeState -Name 'test' } | Should -Throw -ExpectedMessage $PodeLocale.podeNotInitializedExceptionMessage # Pode has not been initialized. } It 'Sets and returns an object' { @@ -29,7 +29,7 @@ Describe 'Set-PodeState' { Describe 'Get-PodeState' { It 'Throws error when not initialised' { $PodeContext.Server = @{ 'State' = $null } - { Get-PodeState -Name 'test' } | Should -Throw -ExpectedMessage $msgTable.podeNotInitializedExceptionMessage # Pode has not been initialized. + { Get-PodeState -Name 'test' } | Should -Throw -ExpectedMessage $PodeLocale.podeNotInitializedExceptionMessage # Pode has not been initialized. } It 'Gets an object from the state' { @@ -42,7 +42,7 @@ Describe 'Get-PodeState' { Describe 'Remove-PodeState' { It 'Throws error when not initialised' { $PodeContext.Server = @{ 'State' = $null } - { Remove-PodeState -Name 'test' } | Should -Throw -ExpectedMessage $msgTable.podeNotInitializedExceptionMessage # Pode has not been initialized. + { Remove-PodeState -Name 'test' } | Should -Throw -ExpectedMessage $PodeLocale.podeNotInitializedExceptionMessage # Pode has not been initialized. } It 'Removes an object from the state' { @@ -56,7 +56,7 @@ Describe 'Remove-PodeState' { Describe 'Save-PodeState' { It 'Throws error when not initialised' { $PodeContext.Server = @{ 'State' = $null } - { Save-PodeState -Path 'some/path' } | Should -Throw -ExpectedMessage $msgTable.podeNotInitializedExceptionMessage # Pode has not been initialized. + { Save-PodeState -Path 'some/path' } | Should -Throw -ExpectedMessage $PodeLocale.podeNotInitializedExceptionMessage # Pode has not been initialized. } It 'Saves the state to file' { @@ -96,7 +96,7 @@ Describe 'Save-PodeState' { Describe 'Restore-PodeState' { It 'Throws error when not initialised' { $PodeContext.Server = @{ 'State' = $null } - { Restore-PodeState -Path 'some/path' } | Should -Throw -ExpectedMessage $msgTable.podeNotInitializedExceptionMessage # Pode has not been initialized. + { Restore-PodeState -Path 'some/path' } | Should -Throw -ExpectedMessage $PodeLocale.podeNotInitializedExceptionMessage # Pode has not been initialized. } It 'Restores the state from file' { @@ -113,7 +113,7 @@ Describe 'Restore-PodeState' { Describe 'Test-PodeState' { It 'Throws error when not initialised' { $PodeContext.Server = @{ 'State' = $null } - { Test-PodeState -Name 'test' } | Should -Throw -ExpectedMessage $msgTable.podeNotInitializedExceptionMessage # Pode has not been initialized. + { Test-PodeState -Name 'test' } | Should -Throw -ExpectedMessage $PodeLocale.podeNotInitializedExceptionMessage # Pode has not been initialized. } It 'Returns true for an object being in the state' { diff --git a/tests/unit/Timers.Tests.ps1 b/tests/unit/Timers.Tests.ps1 index 3938dda18..9e5567f5b 100644 --- a/tests/unit/Timers.Tests.ps1 +++ b/tests/unit/Timers.Tests.ps1 @@ -5,7 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } - Import-LocalizedData -BindingVariable msgTable -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' + Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' $PodeContext = @{ 'Server' = $null; } } From 40a05f7ab5f560f85deb460ed36ce6b3cc2ab507 Mon Sep 17 00:00:00 2001 From: mdaneri Date: Sat, 1 Jun 2024 22:17:22 -0700 Subject: [PATCH 08/67] fix a message --- src/Public/Secrets.ps1 | 3 +-- tests/integration/Authentication.Tests.ps1 | 8 -------- 2 files changed, 1 insertion(+), 10 deletions(-) diff --git a/src/Public/Secrets.ps1 b/src/Public/Secrets.ps1 index d4588e8bf..9425ae00b 100644 --- a/src/Public/Secrets.ps1 +++ b/src/Public/Secrets.ps1 @@ -449,8 +449,7 @@ function Mount-PodeSecret { # check properties if (!(Test-PodeIsEmpty $Property) -and !(Test-PodeIsEmpty $ExpandProperty)) { - # Parameters 'NoAdditionalProperties' and 'AdditionalProperties' are mutually exclusive - throw $PodeLocal.noAdditionalPropertiesMutuallyExclusiveExceptionMessage + throw 'You can only provide one of either Property or ExpandPropery, but not both' } # which cache value? diff --git a/tests/integration/Authentication.Tests.ps1 b/tests/integration/Authentication.Tests.ps1 index 527d7e288..c924f0445 100644 --- a/tests/integration/Authentication.Tests.ps1 +++ b/tests/integration/Authentication.Tests.ps1 @@ -2,14 +2,6 @@ [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseUsingScopeModifierInNewRunspaces', '')] param() -BeforeAll { - $path = $PSCommandPath - $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]integration', '/src/' - Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } - Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' - -} - Describe 'Authentication Requests' { BeforeAll { From 0b43794200e7facae7cbc39203cbdd6fd4e3b161 Mon Sep 17 00:00:00 2001 From: mdaneri Date: Sun, 2 Jun 2024 06:12:55 -0700 Subject: [PATCH 09/67] Update Pode.psm1 fix the tmpPodeLocale variable name --- src/Pode.psm1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Pode.psm1 b/src/Pode.psm1 index bf3f6fd54..7b19597a3 100644 --- a/src/Pode.psm1 +++ b/src/Pode.psm1 @@ -49,7 +49,7 @@ if ($null -eq $tmpPodeLocale) { try { # Create the global msgTable read-only variable - New-Variable -Name 'PodeLocale' -Value $tmpMsgtable -Scope Global -Option ReadOnly -Force + New-Variable -Name 'PodeLocale' -Value $tmpPodeLocale -Scope Global -Option ReadOnly -Force # load assemblies Add-Type -AssemblyName System.Web -ErrorAction Stop From 578f25bc981fd1ba4a44b9a240787e73f5461225 Mon Sep 17 00:00:00 2001 From: mdaneri Date: Sun, 2 Jun 2024 09:09:44 -0700 Subject: [PATCH 10/67] Add new test and PodeLocale entries --- src/Locales/ar/Pode.psd1 | 42 +++++++++- src/Locales/de/Pode.psd1 | 44 +++++++++- src/Locales/en/Pode.psd1 | 44 ++++++++-- src/Locales/es/Pode.psd1 | 42 +++++++++- src/Locales/fr/Pode.psd1 | 42 +++++++++- src/Locales/it/Pode.psd1 | 42 +++++++++- src/Locales/ja/Pode.psd1 | 43 ++++++++-- src/Locales/kr/Pode.psd1 | 42 +++++++++- src/Locales/pl/Pode.psd1 | 42 +++++++++- src/Locales/pt/Pode.psd1 | 42 +++++++++- src/Locales/zn/Pode.psd1 | 42 +++++++++- src/Private/OpenApi.ps1 | 4 +- src/Public/Core.ps1 | 3 +- src/Public/FileWatchers.ps1 | 3 +- src/Public/OAProperties.ps1 | 9 +- src/Public/OpenApi.ps1 | 134 +++++++++++++++++++++--------- src/Public/ScopedVariables.ps1 | 3 +- src/Public/Secrets.ps1 | 28 ++++--- src/Public/Security.ps1 | 11 +-- src/Public/Sessions.ps1 | 3 +- src/Public/Tasks.ps1 | 16 ++-- src/Public/Utilities.ps1 | 9 +- src/Public/Verbs.ps1 | 3 +- src/Public/WebSockets.ps1 | 21 +++-- tests/unit/Localization.Tests.ps1 | 41 ++++++++- tests/unit/OpenApi.Tests.ps1 | 7 +- 26 files changed, 626 insertions(+), 136 deletions(-) diff --git a/src/Locales/ar/Pode.psd1 b/src/Locales/ar/Pode.psd1 index 9265d9588..9e4d9e05c 100644 --- a/src/Locales/ar/Pode.psd1 +++ b/src/Locales/ar/Pode.psd1 @@ -37,7 +37,6 @@ singleValueForIntervalExceptionMessage = يمكنك تقديم قيمة {0} وا scriptErrorExceptionMessage = خطأ '{0}' في البرنامج النصي {1} {2} (السطر {3}) الحرف {4} أثناء تنفيذ {5} على الكائن {6} 'الصنف: {7} الصنف الأساسي: {8} noScriptBlockSuppliedExceptionMessage = لم يتم تقديم أي ScriptBlock. iisAspnetcoreTokenMissingExceptionMessage = IIS ASPNETCORE_TOKEN مفقود. -invalidContentTypeForSchemaExceptionMessage = تم العثور على نوع محتوى غير صالح للمخطط: {0} propertiesParameterWithoutNameExceptionMessage = لا يمكن استخدام معلمات الخصائص إذا لم يكن لدى الخاصية اسم. multiTypePropertiesRequireOpenApi31ExceptionMessage = تتطلب خصائص الأنواع المتعددة إصدار OpenApi 3.1 أو أعلى. openApiVersionPropertyMandatoryExceptionMessage = خاصية إصدار OpenApi إلزامية. @@ -47,7 +46,6 @@ unsupportedObjectExceptionMessage = الكائن غير مدعوم validationOfAnyOfSchemaNotSupportedExceptionMessage = التحقق من مخطط يتضمن 'أي منها' غير مدعوم. validationOfOneOfSchemaNotSupportedExceptionMessage = التحقق من مخطط يتضمن 'واحد منها' غير مدعوم. cannotCreatePropertyWithoutTypeExceptionMessage = لا يمكن إنشاء الخاصية لأنه لم يتم تعريف نوع. -paramsNoAdditionalPropertiesExclusiveExceptionMessage = المعلمات -NoAdditionalProperties و -AdditionalProperties تتعارض مع بعضها البعض. headerMustHaveNameInEncodingContextExceptionMessage = يجب أن يحتوي الرأس على اسم عند استخدامه في سياق الترميز. descriptionRequiredExceptionMessage = الوصف مطلوب. openApiDocumentNotCompliantExceptionMessage = مستند OpenAPI غير متوافق. @@ -167,8 +165,6 @@ cannotSupplyIntervalForYearExceptionMessage = لا يمكن توفير قيمة secretVaultAlreadyRegisteredExceptionMessage = تم تسجيل مخزن الأسرار بالاسم '{0}' بالفعل{1}. secretVaultUnlockExpiryDateInPastExceptionMessage = تاريخ انتهاء صلاحية فتح مخزن الأسرار في الماضي (UTC): {0} secretAlreadyMountedExceptionMessage = تم تثبيت سر بالاسم '{0}' بالفعل. -noSecretVaultRegisteredExceptionMessage = لم يتم تسجيل مخزن أسرار بالاسم '{0}'. -noAdditionalPropertiesMutuallyExclusiveExceptionMessage = المعاملات 'NoAdditionalProperties' و 'AdditionalProperties' متعارضة. credentialsPassedWildcardForHeadersLiteralExceptionMessage = عند تمرير بيانات الاعتماد، سيتم اعتبار العلامة * للعنوان كـ سلسلة نصية حرفية وليس كعلامة. wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = العلامة * للعنوان غير متوافقة مع مفتاح AutoHeaders. wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = العلامة * للطرق غير متوافقة مع مفتاح AutoMethods. @@ -178,4 +174,42 @@ noNameForWebSocketRemoveExceptionMessage = لا يوجد اسم لإزالة Web noNameForWebSocketSendMessageExceptionMessage = لا يوجد اسم لإرسال رسالة إلى WebSocket المزود. noSecretNamedMountedExceptionMessage = لم يتم تثبيت أي سر بالاسم '{0}'. noNameForWebSocketResetExceptionMessage = لا يوجد اسم لإعادة تعيين WebSocket من المزود. +schemaValidationRequiresPowerShell610ExceptionMessage = يتطلب التحقق من صحة المخطط إصدار PowerShell 6.1.0 أو أحدث. +routeParameterCannotBeNullExceptionMessage = لا يمكن أن يكون المعامل 'Route' فارغًا. +encodingAttributeOnlyAppliesToMultipartExceptionMessage = ينطبق سمة الترميز فقط على نصوص الطلبات multipart و application/x-www-form-urlencoded. +testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = يجب تمكين 'Test-PodeOAComponentSchema' باستخدام 'Enable-PodeOpenApi -EnableSchemaValidation' +openApiComponentSchemaDoesNotExistExceptionMessage = مخطط مكون OpenApi {0} غير موجود. +openApiParameterRequiresNameExceptionMessage = يتطلب معلمة OpenApi اسمًا محددًا. +openApiLicenseObjectRequiresNameExceptionMessage = يتطلب كائن OpenAPI 'license' الخاصية 'name'. استخدم المعامل -LicenseName. +parametersValueOrExternalValueMandatoryExceptionMessage = المعاملات 'Value' أو 'ExternalValue' إلزامية. +parametersMutuallyExclusiveExceptionMessage = المعاملات '{0}' و '{1}' متعارضة. +maximumConcurrentWebSocketThreadsInvalidExceptionMessage = يجب أن يكون الحد الأقصى لمؤشرات ترابط WebSocket المتزامنة >=1، ولكن تم الحصول عليه: {0} +maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = لا يمكن أن يكون الحد الأقصى لمؤشرات ترابط WebSocket المتزامنة أقل من الحد الأدنى {0}، ولكن تم الحصول عليه: {1} +alreadyConnectedToWebSocketExceptionMessage = متصل بالفعل بـ WebSocket بالاسم '{0}' +failedToConnectToWebSocketExceptionMessage = فشل الاتصال بـ WebSocket: {0} +verbNoLogicPassedExceptionMessage = [الفعل] {0}: لم يتم تمرير أي منطق +scriptPathDoesNotExistExceptionMessage = مسار البرنامج النصي غير موجود: {0} +failedToImportModuleExceptionMessage = فشل في استيراد الوحدة: {0} +modulePathDoesNotExistExceptionMessage = مسار الوحدة غير موجود: {0} +defaultValueNotBooleanOrEnumExceptionMessage = القيمة الافتراضية ليست من نوع boolean وليست جزءًا من التعداد. +propertiesTypeObjectAssociationExceptionMessage = يمكن ربط خصائص النوع Object فقط بـ {0}. +invalidContentTypeForSchemaExceptionMessage = 'content-type' غير صالح في المخطط: {0} +openApiRequestStyleInvalidForParameterExceptionMessage = لا يمكن أن يكون نمط الطلب OpenApi {0} لمعلمة {1}. +pathParameterRequiresRequiredSwitchExceptionMessage = إذا كانت موقع المعلمة هو 'Path'، فإن المعلمة التبديل 'Required' إلزامية. +operationIdMustBeUniqueForArrayExceptionMessage = يجب أن يكون OperationID: {0} فريدًا ولا يمكن تطبيقه على مصفوفة. +operationIdMustBeUniqueExceptionMessage = يجب أن يكون OperationID: {0} فريدًا. +noOpenApiUrlSuppliedExceptionMessage = لم يتم توفير عنوان URL OpenAPI لـ {0}. +noTitleSuppliedForPageExceptionMessage = لم يتم توفير عنوان للصفحة {0}. +noRoutePathSuppliedForPageExceptionMessage = لم يتم توفير مسار للصفحة {0}. +swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = هذا الإصدار من Swagger-Editor لا يدعم OpenAPI 3.1 +rapidPdfDoesNotSupportOpenApi31ExceptionMessage = أداة الوثائق RapidPdf لا تدعم OpenAPI 3.1 +definitionTagNotDefinedExceptionMessage = لم يتم تعريف علامة التعريف {0}. +scopedVariableNotFoundExceptionMessage = لم يتم العثور على المتغير المحدد: {0} +noSecretVaultRegisteredExceptionMessage = لم يتم تسجيل خزينة سرية بالاسم '{0}'. +invalidStrictTransportSecurityDurationExceptionMessage = تم توفير مدة Strict-Transport-Security غير صالحة: {0}. يجب أن تكون أكبر من 0. +durationMustBeZeroOrGreaterExceptionMessage = يجب أن تكون المدة 0 أو أكبر، ولكن تم الحصول عليها: {0}s +taskAlreadyDefinedExceptionMessage = [المهمة] {0}: المهمة معرفة بالفعل. +maximumConcurrentTasksInvalidExceptionMessage = يجب أن يكون الحد الأقصى للمهام المتزامنة >=1، ولكن تم الحصول عليه: {0} +maximumConcurrentTasksLessThanMinimumExceptionMessage = لا يمكن أن يكون الحد الأقصى للمهام المتزامنة أقل من الحد الأدنى {0}، ولكن تم الحصول عليه: {1} +taskDoesNotExistExceptionMessage = المهمة '{0}' غير موجودة. '@ diff --git a/src/Locales/de/Pode.psd1 b/src/Locales/de/Pode.psd1 index 4ef2490a8..553f86447 100644 --- a/src/Locales/de/Pode.psd1 +++ b/src/Locales/de/Pode.psd1 @@ -37,7 +37,6 @@ singleValueForIntervalExceptionMessage = Sie können nur einen einzelnen {0}-Wer scriptErrorExceptionMessage = Fehler '{0}' im Skript {1} {2} (Zeile {3}) Zeichen {4} beim Ausführen von {5} auf {6} Objekt '{7}' Klasse: {8} Basisklasse: {9} noScriptBlockSuppliedExceptionMessage = Kein Skriptblock angegeben. iisAspnetcoreTokenMissingExceptionMessage = Das IIS-ASPNETCORE_TOKEN fehlt. -invalidContentTypeForSchemaExceptionMessage = Ungültiger Inhaltstyp für Schema gefunden: {0} propertiesParameterWithoutNameExceptionMessage = Die Eigenschaftsparameter können nicht verwendet werden, wenn die Eigenschaft keinen Namen hat. multiTypePropertiesRequireOpenApi31ExceptionMessage = Mehrfachtyp-Eigenschaften erfordern OpenApi-Version 3.1 oder höher. openApiVersionPropertyMandatoryExceptionMessage = Die Eigenschaft OpenApi-Version ist obligatorisch. @@ -47,7 +46,6 @@ unsupportedObjectExceptionMessage = Nicht unterstütztes Objekt validationOfAnyOfSchemaNotSupportedExceptionMessage = Die Validierung eines Schemas, das 'anyof' enthält, wird nicht unterstützt. validationOfOneOfSchemaNotSupportedExceptionMessage = Die Validierung eines Schemas, das 'oneof' enthält, wird nicht unterstützt. cannotCreatePropertyWithoutTypeExceptionMessage = Die Eigenschaft kann nicht erstellt werden, weil kein Typ definiert ist. -paramsNoAdditionalPropertiesExclusiveExceptionMessage = Die Parameter -NoAdditionalProperties und -AdditionalProperties schließen sich gegenseitig aus. headerMustHaveNameInEncodingContextExceptionMessage = Ein Header muss einen Namen haben, wenn er im Codierungskontext verwendet wird. descriptionRequiredExceptionMessage = Eine Beschreibung ist erforderlich. openApiDocumentNotCompliantExceptionMessage = Das OpenAPI-Dokument ist nicht konform. @@ -167,8 +165,6 @@ cannotSupplyIntervalForYearExceptionMessage = Ein Intervallwert kann nicht für secretVaultAlreadyRegisteredExceptionMessage = Ein Geheimnis-Tresor mit dem Namen '{0}' wurde bereits registriert{1}. secretVaultUnlockExpiryDateInPastExceptionMessage = Das Ablaufdatum zum Entsperren des Geheimnis-Tresors liegt in der Vergangenheit (UTC): {0} secretAlreadyMountedExceptionMessage = Ein Geheimnis mit dem Namen '{0}' wurde bereits eingebunden. -noSecretVaultRegisteredExceptionMessage = Kein Geheimnis-Tresor mit dem Namen '{0}' wurde registriert. -noAdditionalPropertiesMutuallyExclusiveExceptionMessage = Die Parameter 'NoAdditionalProperties' und 'AdditionalProperties' schließen sich gegenseitig aus. credentialsPassedWildcardForHeadersLiteralExceptionMessage = Wenn Anmeldeinformationen übergeben werden, wird das *-Wildcard für Header als Literalzeichenfolge und nicht als Platzhalter verwendet. wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = Das *-Wildcard für Header ist nicht mit dem AutoHeaders-Schalter kompatibel. wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = Das *-Wildcard für Methoden ist nicht mit dem AutoMethods-Schalter kompatibel. @@ -178,4 +174,44 @@ noNameForWebSocketRemoveExceptionMessage = Kein Name für das Entfernen des WebS noNameForWebSocketSendMessageExceptionMessage = Kein Name für das Senden einer Nachricht an den WebSocket angegeben. noSecretNamedMountedExceptionMessage = Kein Geheimnis mit dem Namen '{0}' wurde eingebunden. noNameForWebSocketResetExceptionMessage = Kein Name für das Zurücksetzen des WebSocket angegeben. +schemaValidationRequiresPowerShell610ExceptionMessage = Die Schema-Validierung erfordert PowerShell Version 6.1.0 oder höher. +routeParameterCannotBeNullExceptionMessage = Der Parameter 'Route' darf nicht null sein. +encodingAttributeOnlyAppliesToMultipartExceptionMessage = Das Encoding-Attribut gilt nur für multipart und application/x-www-form-urlencoded Anfragekörper. +testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = 'Test-PodeOAComponentSchema' muss mit 'Enable-PodeOpenApi -EnableSchemaValidation' aktiviert werden. +openApiComponentSchemaDoesNotExistExceptionMessage = Das OpenApi-Komponentenschema {0} existiert nicht. +openApiParameterRequiresNameExceptionMessage = Der OpenApi-Parameter erfordert einen angegebenen Namen. +openApiLicenseObjectRequiresNameExceptionMessage = Das OpenAPI-Objekt 'license' erfordert die Eigenschaft 'name'. Verwenden Sie den Parameter -LicenseName. +parametersValueOrExternalValueMandatoryExceptionMessage = Die Parameter 'Value' oder 'ExternalValue' sind obligatorisch. +parametersMutuallyExclusiveExceptionMessage = Die Parameter '{0}' und '{1}' schließen sich gegenseitig aus. +maximumConcurrentWebSocketThreadsInvalidExceptionMessage = Die maximale Anzahl gleichzeitiger WebSocket-Threads muss >=1 sein, aber erhalten: {0} +maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = Die maximale Anzahl gleichzeitiger WebSocket-Threads darf nicht kleiner als das Minimum von {0} sein, aber erhalten: {1} +alreadyConnectedToWebSocketExceptionMessage = Bereits mit dem WebSocket mit dem Namen '{0}' verbunden +failedToConnectToWebSocketExceptionMessage = Verbindung zum WebSocket fehlgeschlagen: {0} +verbNoLogicPassedExceptionMessage = [Verb] {0}: Keine Logik übergeben +scriptPathDoesNotExistExceptionMessage = Der Skriptpfad existiert nicht: {0} +failedToImportModuleExceptionMessage = Modulimport fehlgeschlagen: {0} +modulePathDoesNotExistExceptionMessage = Der Modulpfad existiert nicht: {0} +defaultValueNotBooleanOrEnumExceptionMessage = Der Standardwert ist kein Boolean und gehört nicht zum Enum. +propertiesTypeObjectAssociationExceptionMessage = Nur Eigenschaften vom Typ Object können mit {0} verknüpft werden. +invalidContentTypeForSchemaExceptionMessage = Ungültiger 'content-type' im Schema gefunden: {0} +openApiRequestStyleInvalidForParameterExceptionMessage = Der OpenApi-Anfragestil kann für einen {1}-Parameter nicht {0} sein. +pathParameterRequiresRequiredSwitchExceptionMessage = Wenn der Parameterstandort 'Path' ist, ist der Schalterparameter 'Required' erforderlich. +operationIdMustBeUniqueForArrayExceptionMessage = OperationID: {0} muss eindeutig sein und kann nicht auf ein Array angewendet werden. +operationIdMustBeUniqueExceptionMessage = OperationID: {0} muss eindeutig sein. +noOpenApiUrlSuppliedExceptionMessage = Keine OpenAPI-URL für {0} angegeben. +noTitleSuppliedForPageExceptionMessage = Kein Titel für die Seite {0} angegeben. +noRoutePathSuppliedForPageExceptionMessage = Kein Routenpfad für die Seite {0} angegeben. +swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = Diese Version des Swagger-Editors unterstützt OpenAPI 3.1 nicht. +rapidPdfDoesNotSupportOpenApi31ExceptionMessage = Das Dokumentationstool RapidPdf unterstützt OpenAPI 3.1 nicht. +definitionTagNotDefinedExceptionMessage = Definitionstag {0} ist nicht definiert. +scopedVariableNotFoundExceptionMessage = Bereichsvariable nicht gefunden: {0} +noSecretVaultRegisteredExceptionMessage = Kein Geheimnistresor mit dem Namen '{0}' registriert. +invalidStrictTransportSecurityDurationExceptionMessage = Ungültige Strict-Transport-Security-Dauer angegeben: {0}. Sie sollte größer als 0 sein. +durationMustBeZeroOrGreaterExceptionMessage = Die Dauer muss 0 oder größer sein, aber erhalten: {0}s +taskAlreadyDefinedExceptionMessage = [Aufgabe] {0}: Aufgabe bereits definiert. +maximumConcurrentTasksInvalidExceptionMessage = Die maximale Anzahl gleichzeitiger Aufgaben muss >=1 sein, aber erhalten: {0} +maximumConcurrentTasksLessThanMinimumExceptionMessage = Die maximale Anzahl gleichzeitiger Aufgaben darf nicht kleiner als das Minimum von {0} sein, aber erhalten: {1} +taskDoesNotExistExceptionMessage = Aufgabe '{0}' existiert nicht. '@ + + diff --git a/src/Locales/en/Pode.psd1 b/src/Locales/en/Pode.psd1 index 68307fa13..3b6924a07 100644 --- a/src/Locales/en/Pode.psd1 +++ b/src/Locales/en/Pode.psd1 @@ -37,7 +37,6 @@ singleValueForIntervalExceptionMessage = You can only supply a single {0} value scriptErrorExceptionMessage = Error '{0}' in script {1} {2} (line {3}) char {4} executing {5} on {6} object '{7}' Class: {8} BaseClass: {9} noScriptBlockSuppliedExceptionMessage = No ScriptBlock supplied. iisAspnetcoreTokenMissingExceptionMessage = IIS ASPNETCORE_TOKEN is missing. -invalidContentTypeForSchemaExceptionMessage = Invalid content-type found for schema: {0} propertiesParameterWithoutNameExceptionMessage = The Properties parameters cannot be used if the Property has no name. multiTypePropertiesRequireOpenApi31ExceptionMessage = Multi-type properties require OpenApi Version 3.1 or above. openApiVersionPropertyMandatoryExceptionMessage = OpenApi Version property is mandatory. @@ -47,7 +46,6 @@ unsupportedObjectExceptionMessage = Unsupported object validationOfAnyOfSchemaNotSupportedExceptionMessage = Validation of a schema that includes 'anyof' is not supported. validationOfOneOfSchemaNotSupportedExceptionMessage = Validation of a schema that includes 'oneof' is not supported. cannotCreatePropertyWithoutTypeExceptionMessage = Cannot create the property because no type is defined. -paramsNoAdditionalPropertiesExclusiveExceptionMessage = Params 'NoAdditionalProperties' and 'AdditionalProperties' are mutually exclusive. headerMustHaveNameInEncodingContextExceptionMessage = Header must have a name when used in an encoding context. descriptionRequiredExceptionMessage = A Description is required. openApiDocumentNotCompliantExceptionMessage = OpenAPI document is not compliant. @@ -166,9 +164,7 @@ cannotSupplyIntervalForQuarterExceptionMessage = Cannot supply interval value fo cannotSupplyIntervalForYearExceptionMessage = Cannot supply interval value for every year. secretVaultAlreadyRegisteredExceptionMessage = A Secret Vault with the name '{0}' has already been registered{1}. secretVaultUnlockExpiryDateInPastExceptionMessage = Secret Vault unlock expiry date is in the past (UTC): {0} -secretAlreadyMountedExceptionMessage = A Secret with the name '{0}' has already been mounted -noSecretVaultRegisteredExceptionMessage = No Secret Vault with the name '{0}' has been registered -noAdditionalPropertiesMutuallyExclusiveExceptionMessage = Parameters 'NoAdditionalProperties' and 'AdditionalProperties' are mutually exclusive. +secretAlreadyMountedExceptionMessage = A Secret with the name '{0}' has already been mounted. credentialsPassedWildcardForHeadersLiteralExceptionMessage = When Credentials is passed, The * wildcard for Headers will be taken as a literal string and not a wildcard. wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = The * wildcard for Headers is incompatible with the AutoHeaders switch. wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = The * wildcard for Methods is incompatible with the AutoMethods switch. @@ -178,4 +174,42 @@ noNameForWebSocketRemoveExceptionMessage = No Name for a WebSocket to remove sup noNameForWebSocketSendMessageExceptionMessage = No Name for a WebSocket to send message to supplied. noSecretNamedMountedExceptionMessage = No Secret named '{0}' has been mounted. noNameForWebSocketResetExceptionMessage = No Name for a WebSocket to reset supplied. +schemaValidationRequiresPowerShell610ExceptionMessage = Schema validation required PowerShell version 6.1.0 or greater. +routeParameterCannotBeNullExceptionMessage = The parameter 'Route' cannot be null. +encodingAttributeOnlyAppliesToMultipartExceptionMessage = The encoding attribute only applies to multipart and application/x-www-form-urlencoded request bodies. +testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = 'Test-PodeOAComponentchema' need to be enabled using 'Enable-PodeOpenApi -EnableSchemaValidation' +openApiComponentSchemaDoesNotExistExceptionMessage = The OpenApi component schema {0} doesn't exist. +openApiParameterRequiresNameExceptionMessage = The OpenApi parameter requires a name to be specified. +openApiLicenseObjectRequiresNameExceptionMessage = The OpenAPI object 'license' required the property 'name'. Use -LicenseName parameter. +parametersValueOrExternalValueMandatoryExceptionMessage = Parameters 'Value' or 'ExternalValue' are mandatory +parametersMutuallyExclusiveExceptionMessage = Parameters '{0}' and '{1}' are mutually exclusive. +maximumConcurrentWebSocketThreadsInvalidExceptionMessage = Maximum concurrent WebSocket threads must be >=1 but got: {0} +maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = Maximum concurrent WebSocket threads cannot be less than the minimum of {0} but got: {1} +alreadyConnectedToWebSocketExceptionMessage = Already connected to websocket with name '{0}' +failedToConnectToWebSocketExceptionMessage = Failed to connect to websocket: {0} +verbNoLogicPassedExceptionMessage = [Verb] {0}: No logic passed +scriptPathDoesNotExistExceptionMessage = The script path does not exist: {0} +failedToImportModuleExceptionMessage = Failed to import module: {0} +modulePathDoesNotExistExceptionMessage = The module path does not exist: {0} +defaultValueNotBooleanOrEnumExceptionMessage = The default value is not a boolean and is not part of the enum. +propertiesTypeObjectAssociationExceptionMessage = Only properties of type Object can be associated with {0}. +invalidContentTypeForSchemaExceptionMessage = Invalid 'content-type' found for schema: {0} +openApiRequestStyleInvalidForParameterExceptionMessage = OpenApi request Style cannot be {0} for a {1} parameter. +pathParameterRequiresRequiredSwitchExceptionMessage = If the parameter location is 'Path', the switch parameter 'Required' is mandatory. +operationIdMustBeUniqueForArrayExceptionMessage = OperationID: {0} has to be unique and cannot be applied to an array. +operationIdMustBeUniqueExceptionMessage = OperationID: {0} has to be unique. +noOpenApiUrlSuppliedExceptionMessage = No OpenAPI URL supplied for {0}. +noTitleSuppliedForPageExceptionMessage = No title supplied for {0} page. +noRoutePathSuppliedForPageExceptionMessage = No route path supplied for {0} page. +swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = This version on Swagger-Editor doesn't support OpenAPI 3.1 +rapidPdfDoesNotSupportOpenApi31ExceptionMessage = The Document tool RapidPdf doesn't support OpenAPI 3.1 +definitionTagNotDefinedExceptionMessage = DefinitionTag {0} does not exist. +scopedVariableNotFoundExceptionMessage = Scoped Variable not found: {0} +noSecretVaultRegisteredExceptionMessage = No Secret Vault with the name '{0}' has been registered. +invalidStrictTransportSecurityDurationExceptionMessage = Invalid Strict-Transport-Security duration supplied: {0}. It should be greater than 0. +durationMustBeZeroOrGreaterExceptionMessage = Duration must be 0 or greater, but got: {0}s +taskAlreadyDefinedExceptionMessage = [Task] {0}: Task already defined. +maximumConcurrentTasksInvalidExceptionMessage = Maximum concurrent tasks must be >=1 but got: {0} +maximumConcurrentTasksLessThanMinimumExceptionMessage = Maximum concurrent tasks cannot be less than the minimum of {0} but got: {1} +taskDoesNotExistExceptionMessage = Task '{0}' does not exist. '@ \ No newline at end of file diff --git a/src/Locales/es/Pode.psd1 b/src/Locales/es/Pode.psd1 index 4524bc327..1569a419c 100644 --- a/src/Locales/es/Pode.psd1 +++ b/src/Locales/es/Pode.psd1 @@ -37,7 +37,6 @@ singleValueForIntervalExceptionMessage = Solo puede suministrar un único valor scriptErrorExceptionMessage = Error '{0}' en el script {1} {2} (línea {3}) carácter {4} al ejecutar {5} en el objeto {6} '{7}' Clase: {8} ClaseBase: {9} noScriptBlockSuppliedExceptionMessage = No se suministró ningún ScriptBlock. iisAspnetcoreTokenMissingExceptionMessage = Falta el token IIS ASPNETCORE_TOKEN. -invalidContentTypeForSchemaExceptionMessage = Tipo de contenido no válido encontrado para el esquema: {0} propertiesParameterWithoutNameExceptionMessage = Los parámetros de propiedades no se pueden usar si la propiedad no tiene nombre. multiTypePropertiesRequireOpenApi31ExceptionMessage = Las propiedades de tipo múltiple requieren OpenApi versión 3.1 o superior. openApiVersionPropertyMandatoryExceptionMessage = La propiedad de versión OpenApi es obligatoria. @@ -47,7 +46,6 @@ unsupportedObjectExceptionMessage = Objeto no compatible validationOfAnyOfSchemaNotSupportedExceptionMessage = La validación de un esquema que incluye 'anyof' no es compatible. validationOfOneOfSchemaNotSupportedExceptionMessage = La validación de un esquema que incluye 'oneof' no es compatible. cannotCreatePropertyWithoutTypeExceptionMessage = No se puede crear la propiedad porque no se ha definido ningún tipo. -paramsNoAdditionalPropertiesExclusiveExceptionMessage = Los parámetros -NoAdditionalProperties y -AdditionalProperties son mutuamente excluyentes. headerMustHaveNameInEncodingContextExceptionMessage = El encabezado debe tener un nombre cuando se usa en un contexto de codificación. descriptionRequiredExceptionMessage = Se requiere una descripción. openApiDocumentNotCompliantExceptionMessage = El documento OpenAPI no cumple con las normas. @@ -167,8 +165,6 @@ cannotSupplyIntervalForYearExceptionMessage = No se puede proporcionar un valor secretVaultAlreadyRegisteredExceptionMessage = Un Cofre de Secretos con el nombre '{0}' ya ha sido registrado{1}. secretVaultUnlockExpiryDateInPastExceptionMessage = La fecha de expiración para desbloquear el Cofre de Secretos está en el pasado (UTC): {0} secretAlreadyMountedExceptionMessage = Un Secreto con el nombre '{0}' ya ha sido montado. -noSecretVaultRegisteredExceptionMessage = No se ha registrado ningún Cofre de Secretos con el nombre '{0}'. -noAdditionalPropertiesMutuallyExclusiveExceptionMessage = Los parámetros 'NoAdditionalProperties' y 'AdditionalProperties' son mutuamente excluyentes. credentialsPassedWildcardForHeadersLiteralExceptionMessage = Cuando se pasan las Credenciales, el comodín * para los Encabezados se tomará como una cadena literal y no como un comodín. wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = El comodín * para los Encabezados es incompatible con el interruptor AutoHeaders. wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = El comodín * para los Métodos es incompatible con el interruptor AutoMethods. @@ -178,4 +174,42 @@ noNameForWebSocketRemoveExceptionMessage = No se proporcionó ningún nombre par noNameForWebSocketSendMessageExceptionMessage = No se proporcionó ningún nombre para enviar un mensaje al WebSocket. noSecretNamedMountedExceptionMessage = No se ha montado ningún Secreto con el nombre '{0}'. noNameForWebSocketResetExceptionMessage = No se proporcionó ningún nombre para restablecer el WebSocket. +schemaValidationRequiresPowerShell610ExceptionMessage = La validación del esquema requiere PowerShell versión 6.1.0 o superior. +routeParameterCannotBeNullExceptionMessage = El parámetro 'Route' no puede ser nulo. +encodingAttributeOnlyAppliesToMultipartExceptionMessage = El atributo de codificación solo se aplica a cuerpos de solicitud multipart y application/x-www-form-urlencoded. +testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = 'Test-PodeOAComponentSchema' necesita ser habilitado usando 'Enable-PodeOpenApi -EnableSchemaValidation' +openApiComponentSchemaDoesNotExistExceptionMessage = El esquema del componente OpenApi {0} no existe. +openApiParameterRequiresNameExceptionMessage = El parámetro OpenApi requiere un nombre especificado. +openApiLicenseObjectRequiresNameExceptionMessage = El objeto OpenAPI 'license' requiere la propiedad 'name'. Use el parámetro -LicenseName. +parametersValueOrExternalValueMandatoryExceptionMessage = Los parámetros 'Value' o 'ExternalValue' son obligatorios. +parametersMutuallyExclusiveExceptionMessage = Los parámetros '{0}' y '{1}' son mutuamente excluyentes. +maximumConcurrentWebSocketThreadsInvalidExceptionMessage = El número máximo de hilos concurrentes de WebSocket debe ser >=1, pero se obtuvo: {0} +maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = El número máximo de hilos concurrentes de WebSocket no puede ser menor que el mínimo de {0}, pero se obtuvo: {1} +alreadyConnectedToWebSocketExceptionMessage = Ya conectado al WebSocket con el nombre '{0}' +failedToConnectToWebSocketExceptionMessage = Error al conectar con el WebSocket: {0} +verbNoLogicPassedExceptionMessage = [Verbo] {0}: No se pasó ninguna lógica +scriptPathDoesNotExistExceptionMessage = La ruta del script no existe: {0} +failedToImportModuleExceptionMessage = Error al importar el módulo: {0} +modulePathDoesNotExistExceptionMessage = La ruta del módulo no existe: {0} +defaultValueNotBooleanOrEnumExceptionMessage = El valor predeterminado no es un booleano y no forma parte del enum. +propertiesTypeObjectAssociationExceptionMessage = Solo las propiedades de tipo Objeto pueden estar asociadas con {0}. +invalidContentTypeForSchemaExceptionMessage = 'content-type' inválido encontrado para el esquema: {0} +openApiRequestStyleInvalidForParameterExceptionMessage = El estilo de la solicitud OpenApi no puede ser {0} para un parámetro {1}. +pathParameterRequiresRequiredSwitchExceptionMessage = Si la ubicación del parámetro es 'Path', el parámetro switch 'Required' es obligatorio. +operationIdMustBeUniqueForArrayExceptionMessage = OperationID: {0} debe ser único y no puede aplicarse a un array. +operationIdMustBeUniqueExceptionMessage = OperationID: {0} debe ser único. +noOpenApiUrlSuppliedExceptionMessage = No se proporcionó URL de OpenAPI para {0}. +noTitleSuppliedForPageExceptionMessage = No se proporcionó título para la página {0}. +noRoutePathSuppliedForPageExceptionMessage = No se proporcionó ruta de acceso para la página {0}. +swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = Esta versión de Swagger-Editor no admite OpenAPI 3.1 +rapidPdfDoesNotSupportOpenApi31ExceptionMessage = La herramienta de documentación RapidPdf no admite OpenAPI 3.1 +definitionTagNotDefinedExceptionMessage = La etiqueta de definición {0} no está definida. +scopedVariableNotFoundExceptionMessage = Variable de alcance no encontrada: {0} +noSecretVaultRegisteredExceptionMessage = No se ha registrado un Cofre de Secretos con el nombre '{0}'. +invalidStrictTransportSecurityDurationExceptionMessage = Duración de Strict-Transport-Security no válida proporcionada: {0}. Debe ser mayor que 0. +durationMustBeZeroOrGreaterExceptionMessage = La duración debe ser igual o mayor a 0, pero se obtuvo: {0}s +taskAlreadyDefinedExceptionMessage = [Tarea] {0}: Tarea ya definida. +maximumConcurrentTasksInvalidExceptionMessage = El número máximo de tareas concurrentes debe ser >=1, pero se obtuvo: {0} +maximumConcurrentTasksLessThanMinimumExceptionMessage = El número máximo de tareas concurrentes no puede ser menor que el mínimo de {0}, pero se obtuvo: {1} +taskDoesNotExistExceptionMessage = La tarea '{0}' no existe. '@ diff --git a/src/Locales/fr/Pode.psd1 b/src/Locales/fr/Pode.psd1 index c231b7891..7dd7e8a5e 100644 --- a/src/Locales/fr/Pode.psd1 +++ b/src/Locales/fr/Pode.psd1 @@ -37,7 +37,6 @@ singleValueForIntervalExceptionMessage = Vous ne pouvez fournir qu'une seule val scriptErrorExceptionMessage = Erreur '{0}' dans le script {1} {2} (ligne {3}) char {4} en exécutant {5} sur l'objet {6} '{7}' Classe : {8} ClasseBase : {9} noScriptBlockSuppliedExceptionMessage = Aucun ScriptBlock fourni. iisAspnetcoreTokenMissingExceptionMessage = Le jeton IIS ASPNETCORE_TOKEN est manquant. -invalidContentTypeForSchemaExceptionMessage = Type de contenu non valide trouvé pour le schéma : {0} propertiesParameterWithoutNameExceptionMessage = Les paramètres Properties ne peuvent pas être utilisés si la propriété n'a pas de nom. multiTypePropertiesRequireOpenApi31ExceptionMessage = Les propriétés multi-types nécessitent OpenApi Version 3.1 ou supérieure. openApiVersionPropertyMandatoryExceptionMessage = La propriété Version OpenApi est obligatoire. @@ -47,7 +46,6 @@ unsupportedObjectExceptionMessage = Objet non pris en charge validationOfAnyOfSchemaNotSupportedExceptionMessage = La validation d'un schéma qui inclut 'anyof' n'est pas prise en charge. validationOfOneOfSchemaNotSupportedExceptionMessage = La validation d'un schéma qui inclut 'oneof' n'est pas prise en charge. cannotCreatePropertyWithoutTypeExceptionMessage = Impossible de créer la propriété car aucun type n'est défini. -paramsNoAdditionalPropertiesExclusiveExceptionMessage = Les paramètres -NoAdditionalProperties et -AdditionalProperties sont mutuellement exclusifs. headerMustHaveNameInEncodingContextExceptionMessage = L'en-tête doit avoir un nom lorsqu'il est utilisé dans un contexte de codage. descriptionRequiredExceptionMessage = Une description est requise. openApiDocumentNotCompliantExceptionMessage = Le document OpenAPI n'est pas conforme. @@ -167,8 +165,6 @@ cannotSupplyIntervalForYearExceptionMessage = Impossible de fournir une valeur d secretVaultAlreadyRegisteredExceptionMessage = Un Coffre-Fort de Secrets avec le nom '{0}' a déjà été enregistré{1}. secretVaultUnlockExpiryDateInPastExceptionMessage = La date d'expiration du déverrouillage du Coffre-Fort de Secrets est dans le passé (UTC) : {0} secretAlreadyMountedExceptionMessage = Un Secret avec le nom '{0}' a déjà été monté. -noSecretVaultRegisteredExceptionMessage = Aucun Coffre-Fort de Secrets avec le nom '{0}' n'a été enregistré. -noAdditionalPropertiesMutuallyExclusiveExceptionMessage = Les paramètres 'NoAdditionalProperties' et 'AdditionalProperties' sont mutuellement exclusifs. credentialsPassedWildcardForHeadersLiteralExceptionMessage = Lorsque des Identifiants sont passés, le caractère générique * pour les En-têtes sera pris comme une chaîne littérale et non comme un caractère générique. wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = Le caractère générique * pour les En-têtes est incompatible avec le commutateur AutoHeaders. wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = Le caractère générique * pour les Méthodes est incompatible avec le commutateur AutoMethods. @@ -178,4 +174,42 @@ noNameForWebSocketRemoveExceptionMessage = Aucun Nom fourni pour supprimer le We noNameForWebSocketSendMessageExceptionMessage = Aucun Nom fourni pour envoyer un message au WebSocket. noSecretNamedMountedExceptionMessage = Aucun Secret nommé '{0}' n'a été monté. noNameForWebSocketResetExceptionMessage = Aucun Nom fourni pour réinitialiser le WebSocket. +schemaValidationRequiresPowerShell610ExceptionMessage = La validation du schéma nécessite PowerShell version 6.1.0 ou supérieure. +routeParameterCannotBeNullExceptionMessage = Le paramètre 'Route' ne peut pas être nul. +encodingAttributeOnlyAppliesToMultipartExceptionMessage = L'attribut d'encodage s'applique uniquement aux corps de requête multipart et application/x-www-form-urlencoded. +testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = 'Test-PodeOAComponentSchema' doit être activé en utilisant 'Enable-PodeOpenApi -EnableSchemaValidation' +openApiComponentSchemaDoesNotExistExceptionMessage = Le schéma du composant OpenApi {0} n'existe pas. +openApiParameterRequiresNameExceptionMessage = Le paramètre OpenApi nécessite un nom spécifié. +openApiLicenseObjectRequiresNameExceptionMessage = L'objet OpenAPI 'license' nécessite la propriété 'name'. Utilisez le paramètre -LicenseName. +parametersValueOrExternalValueMandatoryExceptionMessage = Les paramètres 'Value' ou 'ExternalValue' sont obligatoires. +parametersMutuallyExclusiveExceptionMessage = Les paramètres '{0}' et '{1}' sont mutuellement exclusifs. +maximumConcurrentWebSocketThreadsInvalidExceptionMessage = Le nombre maximum de threads WebSocket simultanés doit être >=1, mais a obtenu : {0} +maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = Le nombre maximum de threads WebSocket simultanés ne peut pas être inférieur au minimum de {0}, mais a obtenu : {1} +alreadyConnectedToWebSocketExceptionMessage = Déjà connecté au WebSocket avec le nom '{0}' +failedToConnectToWebSocketExceptionMessage = Échec de la connexion au WebSocket : {0} +verbNoLogicPassedExceptionMessage = [Verbe] {0} : Aucune logique transmise +scriptPathDoesNotExistExceptionMessage = Le chemin du script n'existe pas : {0} +failedToImportModuleExceptionMessage = Échec de l'importation du module : {0} +modulePathDoesNotExistExceptionMessage = Le chemin du module n'existe pas : {0} +defaultValueNotBooleanOrEnumExceptionMessage = La valeur par défaut n'est pas un booléen et ne fait pas partie de l'énumération. +propertiesTypeObjectAssociationExceptionMessage = Seules les propriétés de type Objet peuvent être associées à {0}. +invalidContentTypeForSchemaExceptionMessage = 'content-type' invalide trouvé pour le schéma : {0} +openApiRequestStyleInvalidForParameterExceptionMessage = Le style de la requête OpenApi ne peut pas être {0} pour un paramètre {1}. +pathParameterRequiresRequiredSwitchExceptionMessage = Si l'emplacement du paramètre est 'Path', le paramètre switch 'Required' est obligatoire. +operationIdMustBeUniqueForArrayExceptionMessage = OperationID : {0} doit être unique et ne peut pas être appliqué à un tableau. +operationIdMustBeUniqueExceptionMessage = OperationID : {0} doit être unique. +noOpenApiUrlSuppliedExceptionMessage = Aucune URL OpenAPI fournie pour {0}. +noTitleSuppliedForPageExceptionMessage = Aucun titre fourni pour la page {0}. +noRoutePathSuppliedForPageExceptionMessage = Aucun chemin de route fourni pour la page {0}. +swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = Cette version de Swagger-Editor ne prend pas en charge OpenAPI 3.1 +rapidPdfDoesNotSupportOpenApi31ExceptionMessage = L'outil de documentation RapidPdf ne prend pas en charge OpenAPI 3.1 +definitionTagNotDefinedExceptionMessage = Tag de définition {0} non défini. +scopedVariableNotFoundExceptionMessage = Variable d'étendue non trouvée : {0} +noSecretVaultRegisteredExceptionMessage = Aucun coffre-fort de secrets enregistré sous le nom '{0}'. +invalidStrictTransportSecurityDurationExceptionMessage = Durée Strict-Transport-Security invalide fournie : {0}. Doit être supérieure à 0. +durationMustBeZeroOrGreaterExceptionMessage = La durée doit être égale ou supérieure à 0, mais a obtenu : {0}s +taskAlreadyDefinedExceptionMessage = [Tâche] {0} : Tâche déjà définie. +maximumConcurrentTasksInvalidExceptionMessage = Le nombre maximum de tâches simultanées doit être >=1, mais a obtenu : {0} +maximumConcurrentTasksLessThanMinimumExceptionMessage = Le nombre maximum de tâches simultanées ne peut pas être inférieur au minimum de {0}, mais a obtenu : {1} +taskDoesNotExistExceptionMessage = La tâche '{0}' n'existe pas. '@ diff --git a/src/Locales/it/Pode.psd1 b/src/Locales/it/Pode.psd1 index 87316e090..ea28f0900 100644 --- a/src/Locales/it/Pode.psd1 +++ b/src/Locales/it/Pode.psd1 @@ -37,7 +37,6 @@ singleValueForIntervalExceptionMessage = Puoi fornire solo un singolo valore {0} scriptErrorExceptionMessage = Errore '{0}' nello script {1} {2} (riga {3}) carattere {4} eseguendo {5} su {6} oggetto '{7}' Classe: {8} Classe di base: {9} noScriptBlockSuppliedExceptionMessage = Nessun ScriptBlock fornito. iisAspnetcoreTokenMissingExceptionMessage = IIS ASPNETCORE_TOKEN è mancante. -invalidContentTypeForSchemaExceptionMessage = Tipo di contenuto non valido trovato per lo schema: {0} propertiesParameterWithoutNameExceptionMessage = I parametri Properties non possono essere utilizzati se la proprietà non ha un nome. multiTypePropertiesRequireOpenApi31ExceptionMessage = Le proprietà multi-tipo richiedono OpenApi versione 3.1 o superiore. openApiVersionPropertyMandatoryExceptionMessage = La proprietà della versione OpenApi è obbligatoria. @@ -47,7 +46,6 @@ unsupportedObjectExceptionMessage = Oggetto non supportato validationOfAnyOfSchemaNotSupportedExceptionMessage = La validazione di uno schema che include 'anyof' non è supportata. validationOfOneOfSchemaNotSupportedExceptionMessage = La validazione di uno schema che include 'oneof' non è supportata. cannotCreatePropertyWithoutTypeExceptionMessage = Impossibile creare la proprietà perché non è definito alcun tipo. -paramsNoAdditionalPropertiesExclusiveExceptionMessage = I parametri -NoAdditionalProperties e -AdditionalProperties si escludono a vicenda. headerMustHaveNameInEncodingContextExceptionMessage = L'intestazione deve avere un nome quando viene utilizzata in un contesto di codifica. descriptionRequiredExceptionMessage = È necessaria una descrizione. openApiDocumentNotCompliantExceptionMessage = Il documento OpenAPI non è conforme. @@ -167,8 +165,6 @@ cannotSupplyIntervalForYearExceptionMessage = Impossibile fornire un valore di i secretVaultAlreadyRegisteredExceptionMessage = Un Vault dei Segreti con il nome '{0}' è già stato registrato{1}. secretVaultUnlockExpiryDateInPastExceptionMessage = La data di scadenza per sbloccare il Vault dei Segreti è nel passato (UTC): {0} secretAlreadyMountedExceptionMessage = Un Segreto con il nome '{0}' è già stato montato. -noSecretVaultRegisteredExceptionMessage = Nessun Vault dei Segreti con il nome '{0}' è stato registrato. -noAdditionalPropertiesMutuallyExclusiveExceptionMessage = I parametri 'NoAdditionalProperties' e 'AdditionalProperties' sono mutuamente esclusivi. credentialsPassedWildcardForHeadersLiteralExceptionMessage = Quando vengono passate le Credenziali, il carattere jolly * per le Intestazioni sarà considerato come una stringa letterale e non come un carattere jolly. wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = Il carattere jolly * per le Intestazioni è incompatibile con l'opzione AutoHeaders. wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = Il carattere jolly * per i Metodi è incompatibile con l'opzione AutoMethods. @@ -178,4 +174,42 @@ noNameForWebSocketRemoveExceptionMessage = Nessun nome fornito per rimuovere il noNameForWebSocketSendMessageExceptionMessage = Nessun nome fornito per inviare un messaggio al WebSocket. noSecretNamedMountedExceptionMessage = Nessun Segreto con il nome '{0}' è stato montato. noNameForWebSocketResetExceptionMessage = Nessun nome fornito per reimpostare il WebSocket. +schemaValidationRequiresPowerShell610ExceptionMessage = La convalida dello schema richiede PowerShell versione 6.1.0 o superiore. +routeParameterCannotBeNullExceptionMessage = Il parametro 'Route' non può essere null. +encodingAttributeOnlyAppliesToMultipartExceptionMessage = L'attributo di codifica si applica solo ai corpi delle richieste multipart e application/x-www-form-urlencoded. +testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = 'Test-PodeOAComponentSchema' deve essere abilitato utilizzando 'Enable-PodeOpenApi -EnableSchemaValidation' +openApiComponentSchemaDoesNotExistExceptionMessage = Lo schema del componente OpenApi {0} non esiste. +openApiParameterRequiresNameExceptionMessage = Il parametro OpenApi richiede un nome specificato. +openApiLicenseObjectRequiresNameExceptionMessage = L'oggetto OpenAPI 'license' richiede la proprietà 'name'. Utilizzare il parametro -LicenseName. +parametersValueOrExternalValueMandatoryExceptionMessage = I parametri 'Value' o 'ExternalValue' sono obbligatori. +parametersMutuallyExclusiveExceptionMessage = I parametri '{0}' e '{1}' sono mutuamente esclusivi. +maximumConcurrentWebSocketThreadsInvalidExceptionMessage = Il numero massimo di thread WebSocket simultanei deve essere >=1, ma è stato ottenuto: {0} +maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = Il numero massimo di thread WebSocket simultanei non può essere inferiore al minimo di {0}, ma è stato ottenuto: {1} +alreadyConnectedToWebSocketExceptionMessage = Già connesso al WebSocket con il nome '{0}' +failedToConnectToWebSocketExceptionMessage = Connessione al WebSocket non riuscita: {0} +verbNoLogicPassedExceptionMessage = [Verbo] {0}: Nessuna logica passata +scriptPathDoesNotExistExceptionMessage = Il percorso dello script non esiste: {0} +failedToImportModuleExceptionMessage = Importazione del modulo non riuscita: {0} +modulePathDoesNotExistExceptionMessage = Il percorso del modulo non esiste: {0} +defaultValueNotBooleanOrEnumExceptionMessage = Il valore predefinito non è un booleano e non fa parte dell'enum. +propertiesTypeObjectAssociationExceptionMessage = Solo le proprietà di tipo Oggetto possono essere associate a {0}. +invalidContentTypeForSchemaExceptionMessage = 'content-type' non valido trovato per lo schema: {0} +openApiRequestStyleInvalidForParameterExceptionMessage = Lo stile della richiesta OpenApi non può essere {0} per un parametro {1}. +pathParameterRequiresRequiredSwitchExceptionMessage = Se la posizione del parametro è 'Path', il parametro switch 'Required' è obbligatorio. +operationIdMustBeUniqueForArrayExceptionMessage = OperationID: {0} deve essere univoco e non può essere applicato a una matrice. +operationIdMustBeUniqueExceptionMessage = OperationID: {0} deve essere univoco. +noOpenApiUrlSuppliedExceptionMessage = Nessun URL OpenAPI fornito per {0}. +noTitleSuppliedForPageExceptionMessage = Nessun titolo fornito per la pagina {0}. +noRoutePathSuppliedForPageExceptionMessage = Nessun percorso di rotta fornito per la pagina {0}. +swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = Questa versione di Swagger-Editor non supporta OpenAPI 3.1 +rapidPdfDoesNotSupportOpenApi31ExceptionMessage = Lo strumento di documentazione RapidPdf non supporta OpenAPI 3.1 +definitionTagNotDefinedExceptionMessage = Tag di definizione {0} non definito. +scopedVariableNotFoundExceptionMessage = Variabile di ambito non trovata: {0} +noSecretVaultRegisteredExceptionMessage = Nessun Vault dei Segreti con il nome '{0}' è stato registrato. +invalidStrictTransportSecurityDurationExceptionMessage = Durata Strict-Transport-Security non valida fornita: {0}. Deve essere maggiore di 0. +durationMustBeZeroOrGreaterExceptionMessage = La durata deve essere 0 o superiore, ma è stato ottenuto: {0}s +taskAlreadyDefinedExceptionMessage = [Attività] {0}: Attività già definita. +maximumConcurrentTasksInvalidExceptionMessage = Il numero massimo di attività simultanee deve essere >=1, ma è stato ottenuto: {0} +maximumConcurrentTasksLessThanMinimumExceptionMessage = Il numero massimo di attività simultanee non può essere inferiore al minimo di {0}, ma è stato ottenuto: {1} +taskDoesNotExistExceptionMessage = L'attività '{0}' non esiste. '@ diff --git a/src/Locales/ja/Pode.psd1 b/src/Locales/ja/Pode.psd1 index d5dc10f5b..ca3ca814d 100644 --- a/src/Locales/ja/Pode.psd1 +++ b/src/Locales/ja/Pode.psd1 @@ -37,7 +37,6 @@ singleValueForIntervalExceptionMessage = インターバルを使用する場合 scriptErrorExceptionMessage = スクリプト{1} {2}(行{3})のエラー'{0}'(文字{4})が{6}オブジェクト'{7}'の{5}を実行中に発生しました クラス: {8} 基底クラス: {9} noScriptBlockSuppliedExceptionMessage = ScriptBlockが提供されていません。 iisAspnetcoreTokenMissingExceptionMessage = IIS ASPNETCORE_TOKENがありません。 -invalidContentTypeForSchemaExceptionMessage = スキーマに対して無効なコンテンツタイプが見つかりました: {0} propertiesParameterWithoutNameExceptionMessage = プロパティに名前がない場合、プロパティパラメータは使用できません。 multiTypePropertiesRequireOpenApi31ExceptionMessage = 複数タイプのプロパティはOpenApiバージョン3.1以上が必要です。 openApiVersionPropertyMandatoryExceptionMessage = OpenApiバージョンプロパティは必須です。 @@ -47,7 +46,6 @@ unsupportedObjectExceptionMessage = サポートされていないオブジェ validationOfAnyOfSchemaNotSupportedExceptionMessage = 'anyof'を含むスキーマの検証はサポートされていません。 validationOfOneOfSchemaNotSupportedExceptionMessage = 'oneof'を含むスキーマの検証はサポートされていません。 cannotCreatePropertyWithoutTypeExceptionMessage = 型が定義されていないため、プロパティを作成できません。 -paramsNoAdditionalPropertiesExclusiveExceptionMessage = パラメータ -NoAdditionalPropertiesと-AdditionalPropertiesは相互に排他です。 headerMustHaveNameInEncodingContextExceptionMessage = エンコーディングコンテキストで使用される場合、ヘッダーには名前が必要です。 descriptionRequiredExceptionMessage = 説明が必要です。 openApiDocumentNotCompliantExceptionMessage = OpenAPIドキュメントが準拠していません。 @@ -167,8 +165,6 @@ cannotSupplyIntervalForYearExceptionMessage = 毎年の間隔値を提供でき secretVaultAlreadyRegisteredExceptionMessage = 名前 '{0}' のシークレットボールトは既に登録されています{1}。 secretVaultUnlockExpiryDateInPastExceptionMessage = シークレットボールトのアンロック有効期限が過去に設定されています (UTC) :{0} secretAlreadyMountedExceptionMessage = 名前 '{0}' のシークレットは既にマウントされています。 -noSecretVaultRegisteredExceptionMessage = 名前 '{0}' のシークレットボールトは登録されていません。 -noAdditionalPropertiesMutuallyExclusiveExceptionMessage = パラメータ 'NoAdditionalProperties' と 'AdditionalProperties' は相互に排他的です。 credentialsPassedWildcardForHeadersLiteralExceptionMessage = 資格情報が渡されると、ヘッダーのワイルドカード * はワイルドカードとしてではなく、リテラル文字列として解釈されます。 wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = ヘッダーのワイルドカード * は AutoHeaders スイッチと互換性がありません。 wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = メソッドのワイルドカード * は AutoMethods スイッチと互換性がありません。 @@ -178,5 +174,42 @@ noNameForWebSocketRemoveExceptionMessage = 削除する WebSocket の名前が noNameForWebSocketSendMessageExceptionMessage = メッセージを送信する WebSocket の名前が指定されていません。 noSecretNamedMountedExceptionMessage = 名前 '{0}' のシークレットはマウントされていません。 noNameForWebSocketResetExceptionMessage = リセットする WebSocket の名前が指定されていません。 +schemaValidationRequiresPowerShell610ExceptionMessage = スキーマ検証には PowerShell バージョン 6.1.0 以上が必要です。 +routeParameterCannotBeNullExceptionMessage = パラメータ 'Route' は null ではいけません。 +encodingAttributeOnlyAppliesToMultipartExceptionMessage = エンコーディング属性は、multipart および application/x-www-form-urlencoded リクエストボディにのみ適用されます。 +testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = 'Test-PodeOAComponentSchema' は 'Enable-PodeOpenApi -EnableSchemaValidation' を使用して有効にする必要があります。 +openApiComponentSchemaDoesNotExistExceptionMessage = OpenApi コンポーネントスキーマ {0} は存在しません。 +openApiParameterRequiresNameExceptionMessage = OpenApi パラメータには名前が必要です。 +openApiLicenseObjectRequiresNameExceptionMessage = OpenAPI オブジェクト 'license' には 'name' プロパティが必要です。-LicenseName パラメータを使用してください。 +parametersValueOrExternalValueMandatoryExceptionMessage = パラメータ 'Value' または 'ExternalValue' は必須です。 +parametersMutuallyExclusiveExceptionMessage = パラメータ '{0}' と '{1}' は互いに排他的です。 +maximumConcurrentWebSocketThreadsInvalidExceptionMessage = 最大同時 WebSocket スレッド数は >=1 でなければなりませんが、取得した値は: {0} +maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = 最大同時 WebSocket スレッド数は最小値 {0} より小さくてはいけませんが、取得した値は: {1} +alreadyConnectedToWebSocketExceptionMessage = 名前 '{0}' の WebSocket に既に接続されています +failedToConnectToWebSocketExceptionMessage = WebSocket への接続に失敗しました: {0} +verbNoLogicPassedExceptionMessage = [動詞] {0}: ロジックが渡されていません +scriptPathDoesNotExistExceptionMessage = スクリプトパスが存在しません: {0} +failedToImportModuleExceptionMessage = モジュールのインポートに失敗しました: {0} +modulePathDoesNotExistExceptionMessage = モジュールパスが存在しません: {0} +defaultValueNotBooleanOrEnumExceptionMessage = デフォルト値は boolean ではなく、enum に含まれていません。 +propertiesTypeObjectAssociationExceptionMessage = Object 型のプロパティのみが {0} と関連付けられます。 +invalidContentTypeForSchemaExceptionMessage = スキーマの 'content-type' が無効です: {0} +openApiRequestStyleInvalidForParameterExceptionMessage = OpenApi リクエストのスタイルは {1} パラメータに対して {0} であってはなりません。 +pathParameterRequiresRequiredSwitchExceptionMessage = パラメータの場所が 'Path' の場合、スイッチパラメータ 'Required' は必須です。 +operationIdMustBeUniqueForArrayExceptionMessage = OperationID: {0} は一意でなければならず、配列に適用できません。 +operationIdMustBeUniqueExceptionMessage = OperationID: {0} は一意でなければなりません。 +noOpenApiUrlSuppliedExceptionMessage = {0} 用の OpenAPI URL が提供されていません。 +noTitleSuppliedForPageExceptionMessage = {0} ページのタイトルが提供されていません。 +noRoutePathSuppliedForPageExceptionMessage = {0} ページのルートパスが提供されていません。 +swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = このバージョンの Swagger-Editor は OpenAPI 3.1 をサポートしていません +rapidPdfDoesNotSupportOpenApi31ExceptionMessage = ドキュメントツール RapidPdf は OpenAPI 3.1 をサポートしていません +definitionTagNotDefinedExceptionMessage = 定義タグ {0} が定義されていません。 +scopedVariableNotFoundExceptionMessage = スコープ変数が見つかりません: {0} +noSecretVaultRegisteredExceptionMessage = 名前 '{0}' のシークレットボールトは登録されていません。 +invalidStrictTransportSecurityDurationExceptionMessage = 無効な Strict-Transport-Security 期間が指定されました: {0}。0 より大きい必要があります。 +durationMustBeZeroOrGreaterExceptionMessage = 期間は 0 以上でなければなりませんが、取得した値は: {0}s +taskAlreadyDefinedExceptionMessage = [タスク] {0}: タスクは既に定義されています。 +maximumConcurrentTasksInvalidExceptionMessage = 最大同時タスク数は >=1 でなければなりませんが、取得した値は: {0} +maximumConcurrentTasksLessThanMinimumExceptionMessage = 最大同時タスク数は最小値 {0} より少なくてはいけませんが、取得した値は: {1} +taskDoesNotExistExceptionMessage = タスク '{0}' は存在しません。 '@ - diff --git a/src/Locales/kr/Pode.psd1 b/src/Locales/kr/Pode.psd1 index da743cbf7..b97c3b476 100644 --- a/src/Locales/kr/Pode.psd1 +++ b/src/Locales/kr/Pode.psd1 @@ -37,7 +37,6 @@ singleValueForIntervalExceptionMessage = 간격을 사용할 때는 단일 {0} scriptErrorExceptionMessage = 스크립트 {1} {2} (라인 {3}) 문자 {4}에서 {5}을(를) 실행하는 중에 스크립트 {0} 오류가 발생했습니다. 개체 '{7}' 클래스: {8} 기본 클래스: {9} noScriptBlockSuppliedExceptionMessage = ScriptBlock이 제공되지 않았습니다. iisAspnetcoreTokenMissingExceptionMessage = IIS ASPNETCORE_TOKEN이 누락되었습니다. -invalidContentTypeForSchemaExceptionMessage = 스키마에 대해 잘못된 콘텐츠 유형이 발견되었습니다: {0} propertiesParameterWithoutNameExceptionMessage = 속성에 이름이 없으면 Properties 매개변수를 사용할 수 없습니다. multiTypePropertiesRequireOpenApi31ExceptionMessage = 다중 유형 속성은 OpenApi 버전 3.1 이상이 필요합니다. openApiVersionPropertyMandatoryExceptionMessage = OpenApi 버전 속성은 필수입니다. @@ -47,7 +46,6 @@ unsupportedObjectExceptionMessage = 지원되지 않는 개체 validationOfAnyOfSchemaNotSupportedExceptionMessage = 'anyof'을 포함하는 스키마의 유효성 검사는 지원되지 않습니다. validationOfOneOfSchemaNotSupportedExceptionMessage = 'oneof'을 포함하는 스키마의 유효성 검사는 지원되지 않습니다. cannotCreatePropertyWithoutTypeExceptionMessage = 유형이 정의되지 않았기 때문에 속성을 생성할 수 없습니다. -paramsNoAdditionalPropertiesExclusiveExceptionMessage = Params -NoAdditionalProperties와 -AdditionalProperties는 서로 배타적입니다. headerMustHaveNameInEncodingContextExceptionMessage = 인코딩 컨텍스트에서 사용될 때 헤더는 이름이 있어야 합니다. descriptionRequiredExceptionMessage = 설명이 필요합니다. openApiDocumentNotCompliantExceptionMessage = OpenAPI 문서는 준수하지 않습니다. @@ -167,8 +165,6 @@ cannotSupplyIntervalForYearExceptionMessage = 매년 간격 값을 제공할 수 secretVaultAlreadyRegisteredExceptionMessage = 이름이 '{0}'인 시크릿 금고가 이미 등록되었습니다{1}. secretVaultUnlockExpiryDateInPastExceptionMessage = 시크릿 금고의 잠금 해제 만료 날짜가 과거입니다 (UTC): {0} secretAlreadyMountedExceptionMessage = 이름이 '{0}'인 시크릿이 이미 마운트되었습니다. -noSecretVaultRegisteredExceptionMessage = 이름이 '{0}'인 시크릿 금고가 등록되지 않았습니다. -noAdditionalPropertiesMutuallyExclusiveExceptionMessage = 'NoAdditionalProperties' 및 'AdditionalProperties' 매개변수는 상호 배타적입니다. credentialsPassedWildcardForHeadersLiteralExceptionMessage = 자격 증명이 전달되면, 헤더에 대한 * 와일드카드는 와일드카드가 아닌 리터럴 문자열로 취급됩니다. wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = 헤더에 대한 * 와일드카드는 AutoHeaders 스위치와 호환되지 않습니다. wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = 메서드에 대한 * 와일드카드는 AutoMethods 스위치와 호환되지 않습니다. @@ -178,4 +174,42 @@ noNameForWebSocketRemoveExceptionMessage = 제거할 WebSocket의 이름이 제 noNameForWebSocketSendMessageExceptionMessage = 메시지를 보낼 WebSocket의 이름이 제공되지 않았습니다. noSecretNamedMountedExceptionMessage = 이름이 '{0}'인 시크릿이 마운트되지 않았습니다. noNameForWebSocketResetExceptionMessage = 재설정할 WebSocket의 이름이 제공되지 않았습니다. +schemaValidationRequiresPowerShell610ExceptionMessage = 스키마 유효성 검사는 PowerShell 버전 6.1.0 이상이 필요합니다. +routeParameterCannotBeNullExceptionMessage = 'Route' 매개변수는 null일 수 없습니다. +encodingAttributeOnlyAppliesToMultipartExceptionMessage = 인코딩 속성은 multipart 및 application/x-www-form-urlencoded 요청 본문에만 적용됩니다. +testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = 'Test-PodeOAComponentSchema'는 'Enable-PodeOpenApi -EnableSchemaValidation'을 사용하여 활성화해야 합니다. +openApiComponentSchemaDoesNotExistExceptionMessage = OpenApi 구성 요소 스키마 {0}이(가) 존재하지 않습니다. +openApiParameterRequiresNameExceptionMessage = OpenApi 매개변수에는 이름이 필요합니다. +openApiLicenseObjectRequiresNameExceptionMessage = OpenAPI 객체 'license'는 'name' 속성이 필요합니다. -LicenseName 매개변수를 사용하십시오. +parametersValueOrExternalValueMandatoryExceptionMessage = 매개변수 'Value' 또는 'ExternalValue'는 필수입니다. +parametersMutuallyExclusiveExceptionMessage = 매개변수 '{0}'와(과) '{1}'는 상호 배타적입니다. +maximumConcurrentWebSocketThreadsInvalidExceptionMessage = 최대 동시 WebSocket 스레드는 >=1이어야 하지만 받은 값: {0} +maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = 최대 동시 WebSocket 스레드는 최소값 {0}보다 작을 수 없지만 받은 값: {1} +alreadyConnectedToWebSocketExceptionMessage = 이름이 '{0}'인 WebSocket에 이미 연결되어 있습니다. +failedToConnectToWebSocketExceptionMessage = WebSocket에 연결하지 못했습니다: {0} +verbNoLogicPassedExceptionMessage = [동사] {0}: 전달된 로직 없음 +scriptPathDoesNotExistExceptionMessage = 스크립트 경로가 존재하지 않습니다: {0} +failedToImportModuleExceptionMessage = 모듈을 가져오지 못했습니다: {0} +modulePathDoesNotExistExceptionMessage = 모듈 경로가 존재하지 않습니다: {0} +defaultValueNotBooleanOrEnumExceptionMessage = 기본값이 boolean이 아니며 enum에 속하지 않습니다. +propertiesTypeObjectAssociationExceptionMessage = Object 유형의 속성만 {0}와(과) 연결될 수 있습니다. +invalidContentTypeForSchemaExceptionMessage = 스키마에 대해 잘못된 'content-type'이 발견되었습니다: {0} +openApiRequestStyleInvalidForParameterExceptionMessage = OpenApi 요청 스타일은 {1} 매개변수에 대해 {0}일 수 없습니다. +pathParameterRequiresRequiredSwitchExceptionMessage = 매개변수 위치가 'Path'인 경우 'Required' 스위치 매개변수가 필수입니다. +operationIdMustBeUniqueForArrayExceptionMessage = OperationID: {0}은(는) 고유해야 하며 배열에 적용될 수 없습니다. +operationIdMustBeUniqueExceptionMessage = OperationID: {0}은(는) 고유해야 합니다. +noOpenApiUrlSuppliedExceptionMessage = {0}에 대한 OpenAPI URL이 제공되지 않았습니다. +noTitleSuppliedForPageExceptionMessage = {0} 페이지에 대한 제목이 제공되지 않았습니다. +noRoutePathSuppliedForPageExceptionMessage = {0} 페이지에 대한 경로가 제공되지 않았습니다. +swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = 이 버전의 Swagger-Editor는 OpenAPI 3.1을 지원하지 않습니다. +rapidPdfDoesNotSupportOpenApi31ExceptionMessage = 문서 도구 RapidPdf는 OpenAPI 3.1을 지원하지 않습니다. +definitionTagNotDefinedExceptionMessage = 정의 태그 {0}이(가) 정의되지 않았습니다. +scopedVariableNotFoundExceptionMessage = 범위 변수 {0}을(를) 찾을 수 없습니다. +noSecretVaultRegisteredExceptionMessage = 이름이 '{0}'인 비밀 금고가 등록되지 않았습니다. +invalidStrictTransportSecurityDurationExceptionMessage = 잘못된 Strict-Transport-Security 기간이 제공되었습니다: {0}. 0보다 커야 합니다. +durationMustBeZeroOrGreaterExceptionMessage = 기간은 0 이상이어야 하지만 받은 값: {0}s +taskAlreadyDefinedExceptionMessage = [작업] {0}: 작업이 이미 정의되었습니다. +maximumConcurrentTasksInvalidExceptionMessage = 최대 동시 작업 수는 >=1이어야 하지만 받은 값: {0} +maximumConcurrentTasksLessThanMinimumExceptionMessage = 최대 동시 작업 수는 최소값 {0}보다 작을 수 없지만 받은 값: {1} +taskDoesNotExistExceptionMessage = 작업 '{0}'이(가) 존재하지 않습니다. '@ diff --git a/src/Locales/pl/Pode.psd1 b/src/Locales/pl/Pode.psd1 index 6c14ac170..ebd68c5f2 100644 --- a/src/Locales/pl/Pode.psd1 +++ b/src/Locales/pl/Pode.psd1 @@ -37,7 +37,6 @@ singleValueForIntervalExceptionMessage = Możesz podać tylko jedną wartość { scriptErrorExceptionMessage = Błąd '{0}' w skrypcie {1} {2} (linia {3}) znak {4} podczas wykonywania {5} na {6} obiekt '{7}' Klasa: {8} Klasa bazowa: {9} noScriptBlockSuppliedExceptionMessage = Nie podano ScriptBlock. iisAspnetcoreTokenMissingExceptionMessage = Brakujący IIS ASPNETCORE_TOKEN. -invalidContentTypeForSchemaExceptionMessage = Znaleziono nieprawidłowy typ zawartości dla schematu: {0} propertiesParameterWithoutNameExceptionMessage = Parametry Properties nie mogą być używane, jeśli właściwość nie ma nazwy. multiTypePropertiesRequireOpenApi31ExceptionMessage = Właściwości wielotypowe wymagają wersji OpenApi 3.1 lub wyższej. openApiVersionPropertyMandatoryExceptionMessage = Właściwość wersji OpenApi jest obowiązkowa. @@ -47,7 +46,6 @@ unsupportedObjectExceptionMessage = Obiekt nieobsługiwany validationOfAnyOfSchemaNotSupportedExceptionMessage = Walidacja schematu, który zawiera 'anyof', nie jest obsługiwana. validationOfOneOfSchemaNotSupportedExceptionMessage = Walidacja schematu, który zawiera 'oneof', nie jest obsługiwana. cannotCreatePropertyWithoutTypeExceptionMessage = Nie można utworzyć właściwości, ponieważ nie zdefiniowano typu. -paramsNoAdditionalPropertiesExclusiveExceptionMessage = Parametry -NoAdditionalProperties i -AdditionalProperties wykluczają się wzajemnie. headerMustHaveNameInEncodingContextExceptionMessage = Nagłówek musi mieć nazwę, gdy jest używany w kontekście kodowania. descriptionRequiredExceptionMessage = Wymagany jest opis. openApiDocumentNotCompliantExceptionMessage = Dokument OpenAPI nie jest zgodny. @@ -167,8 +165,6 @@ cannotSupplyIntervalForYearExceptionMessage = Nie można dostarczyć wartości i secretVaultAlreadyRegisteredExceptionMessage = Skarbiec tajemnic o nazwie '{0}' został już zarejestrowany{1}. secretVaultUnlockExpiryDateInPastExceptionMessage = Data wygaśnięcia odblokowania Skarbca tajemnic jest w przeszłości (UTC): {0} secretAlreadyMountedExceptionMessage = Tajemnica o nazwie '{0}' została już zamontowana. -noSecretVaultRegisteredExceptionMessage = Skarbiec tajemnic o nazwie '{0}' nie został zarejestrowany. -noAdditionalPropertiesMutuallyExclusiveExceptionMessage = Parametry 'NoAdditionalProperties' i 'AdditionalProperties' wykluczają się wzajemnie. credentialsPassedWildcardForHeadersLiteralExceptionMessage = Gdy przekazywane są dane uwierzytelniające, symbol wieloznaczny * dla nagłówków będzie traktowany jako dosłowny ciąg znaków, a nie symbol wieloznaczny. wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = Symbol wieloznaczny * dla nagłówków jest niezgodny z przełącznikiem AutoHeaders. wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = Symbol wieloznaczny * dla metod jest niezgodny z przełącznikiem AutoMethods. @@ -178,4 +174,42 @@ noNameForWebSocketRemoveExceptionMessage = Nie podano nazwy dla usunięcia WebSo noNameForWebSocketSendMessageExceptionMessage = Nie podano nazwy dla wysłania wiadomości do WebSocket. noSecretNamedMountedExceptionMessage = Nie zamontowano tajemnicy o nazwie '{0}'. noNameForWebSocketResetExceptionMessage = Nie podano nazwy dla resetowania WebSocket. +schemaValidationRequiresPowerShell610ExceptionMessage = Walidacja schematu wymaga wersji PowerShell 6.1.0 lub nowszej. +routeParameterCannotBeNullExceptionMessage = Parametr 'Route' nie może być pusty. +encodingAttributeOnlyAppliesToMultipartExceptionMessage = Atrybut kodowania dotyczy tylko ciał żądania typu multipart i application/x-www-form-urlencoded. +testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = 'Test-PodeOAComponentSchema' musi być włączony przy użyciu 'Enable-PodeOpenApi -EnableSchemaValidation' +openApiComponentSchemaDoesNotExistExceptionMessage = Schemat komponentu OpenApi {0} nie istnieje. +openApiParameterRequiresNameExceptionMessage = Parametr OpenApi wymaga podania nazwy. +openApiLicenseObjectRequiresNameExceptionMessage = Obiekt OpenAPI 'license' wymaga właściwości 'name'. Użyj parametru -LicenseName. +parametersValueOrExternalValueMandatoryExceptionMessage = Parametry 'Value' lub 'ExternalValue' są obowiązkowe. +parametersMutuallyExclusiveExceptionMessage = Parametry '{0}' i '{1}' są wzajemnie wykluczające się. +maximumConcurrentWebSocketThreadsInvalidExceptionMessage = Maksymalna liczba jednoczesnych wątków WebSocket musi wynosić >=1, ale otrzymano: {0} +maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = Maksymalna liczba jednoczesnych wątków WebSocket nie może być mniejsza niż minimum {0}, ale otrzymano: {1} +alreadyConnectedToWebSocketExceptionMessage = Już połączono z WebSocket o nazwie '{0}' +failedToConnectToWebSocketExceptionMessage = Nie udało się połączyć z WebSocket: {0} +verbNoLogicPassedExceptionMessage = [Czasownik] {0}: Nie przekazano logiki +scriptPathDoesNotExistExceptionMessage = Ścieżka skryptu nie istnieje: {0} +failedToImportModuleExceptionMessage = Nie udało się zaimportować modułu: {0} +modulePathDoesNotExistExceptionMessage = Ścieżka modułu nie istnieje: {0} +defaultValueNotBooleanOrEnumExceptionMessage = Wartość domyślna nie jest typu boolean i nie należy do enum. +propertiesTypeObjectAssociationExceptionMessage = Tylko właściwości typu Object mogą być powiązane z {0}. +invalidContentTypeForSchemaExceptionMessage = Nieprawidłowy 'content-type' znaleziony w schemacie: {0} +openApiRequestStyleInvalidForParameterExceptionMessage = Styl żądania OpenApi nie może być {0} dla parametru {1}. +pathParameterRequiresRequiredSwitchExceptionMessage = Jeśli lokalizacja parametru to 'Path', przełącznik 'Required' jest obowiązkowy. +operationIdMustBeUniqueForArrayExceptionMessage = OperationID: {0} musi być unikalny i nie może być zastosowany do tablicy. +operationIdMustBeUniqueExceptionMessage = OperationID: {0} musi być unikalny. +noOpenApiUrlSuppliedExceptionMessage = Nie dostarczono adresu URL OpenAPI dla {0}. +noTitleSuppliedForPageExceptionMessage = Nie dostarczono tytułu dla strony {0}. +noRoutePathSuppliedForPageExceptionMessage = Nie dostarczono ścieżki trasy dla strony {0}. +swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = Ta wersja Swagger-Editor nie obsługuje OpenAPI 3.1 +rapidPdfDoesNotSupportOpenApi31ExceptionMessage = Narzędzie do dokumentów RapidPdf nie obsługuje OpenAPI 3.1 +definitionTagNotDefinedExceptionMessage = Etykieta definicji {0} nie jest zdefiniowana. +scopedVariableNotFoundExceptionMessage = Nie znaleziono zmiennej zakresu: {0} +noSecretVaultRegisteredExceptionMessage = Nie zarejestrowano Skarbca Tajemnic o nazwie '{0}'. +invalidStrictTransportSecurityDurationExceptionMessage = Nieprawidłowy czas trwania Strict-Transport-Security: {0}. Powinien być większy niż 0. +durationMustBeZeroOrGreaterExceptionMessage = Czas trwania musi wynosić 0 lub więcej, ale otrzymano: {0}s +taskAlreadyDefinedExceptionMessage = [Zadanie] {0}: Zadanie już zdefiniowane. +maximumConcurrentTasksInvalidExceptionMessage = Maksymalna liczba jednoczesnych zadań musi wynosić >=1, ale otrzymano: {0} +maximumConcurrentTasksLessThanMinimumExceptionMessage = Maksymalna liczba jednoczesnych zadań nie może być mniejsza niż minimum {0}, ale otrzymano: {1} +taskDoesNotExistExceptionMessage = Zadanie '{0}' nie istnieje. '@ diff --git a/src/Locales/pt/Pode.psd1 b/src/Locales/pt/Pode.psd1 index 48f00bae8..6e3852ce3 100644 --- a/src/Locales/pt/Pode.psd1 +++ b/src/Locales/pt/Pode.psd1 @@ -37,7 +37,6 @@ singleValueForIntervalExceptionMessage = Você pode fornecer apenas um único va scriptErrorExceptionMessage = Erro '{0}' no script {1} {2} (linha {3}) caractere {4} executando {5} em {6} objeto '{7}' Classe: {8} ClasseBase: {9} noScriptBlockSuppliedExceptionMessage = Nenhum ScriptBlock fornecido. iisAspnetcoreTokenMissingExceptionMessage = IIS ASPNETCORE_TOKEN está ausente. -invalidContentTypeForSchemaExceptionMessage = Tipo de conteúdo inválido encontrado para o esquema: {0} propertiesParameterWithoutNameExceptionMessage = Os parâmetros Properties não podem ser usados se a propriedade não tiver um nome. multiTypePropertiesRequireOpenApi31ExceptionMessage = Propriedades de múltiplos tipos requerem a versão 3.1 ou superior do OpenApi. openApiVersionPropertyMandatoryExceptionMessage = A propriedade da versão do OpenApi é obrigatória. @@ -47,7 +46,6 @@ unsupportedObjectExceptionMessage = Objeto não suportado validationOfAnyOfSchemaNotSupportedExceptionMessage = A validação de um esquema que inclui 'anyof' não é suportada. validationOfOneOfSchemaNotSupportedExceptionMessage = A validação de um esquema que inclui 'oneof' não é suportada. cannotCreatePropertyWithoutTypeExceptionMessage = Não é possível criar a propriedade porque nenhum tipo é definido. -paramsNoAdditionalPropertiesExclusiveExceptionMessage = Os parâmetros -NoAdditionalProperties e -AdditionalProperties se excluem mutuamente. headerMustHaveNameInEncodingContextExceptionMessage = O cabeçalho deve ter um nome quando usado em um contexto de codificação. descriptionRequiredExceptionMessage = É necessária uma descrição. openApiDocumentNotCompliantExceptionMessage = O documento OpenAPI não está em conformidade. @@ -167,8 +165,6 @@ cannotSupplyIntervalForYearExceptionMessage = Não é possível fornecer um valo secretVaultAlreadyRegisteredExceptionMessage = Um Cofre de Segredos com o nome '{0}' já foi registrado{1}. secretVaultUnlockExpiryDateInPastExceptionMessage = A data de expiração de desbloqueio do Cofre de Segredos está no passado (UTC): {0} secretAlreadyMountedExceptionMessage = Um Segredo com o nome '{0}' já foi montado. -noSecretVaultRegisteredExceptionMessage = Nenhum Cofre de Segredos com o nome '{0}' foi registrado. -noAdditionalPropertiesMutuallyExclusiveExceptionMessage = Os parâmetros 'NoAdditionalProperties' e 'AdditionalProperties' são mutuamente exclusivos. credentialsPassedWildcardForHeadersLiteralExceptionMessage = Quando as Credenciais são passadas, o caractere curinga * para os Cabeçalhos será interpretado como uma string literal e não como um caractere curinga. wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = O caractere curinga * para os Cabeçalhos é incompatível com a chave AutoHeaders. wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = O caractere curinga * para os Métodos é incompatível com a chave AutoMethods. @@ -178,4 +174,42 @@ noNameForWebSocketRemoveExceptionMessage = Nenhum nome fornecido para remover o noNameForWebSocketSendMessageExceptionMessage = Nenhum nome fornecido para enviar mensagem ao WebSocket. noSecretNamedMountedExceptionMessage = Nenhum Segredo com o nome '{0}' foi montado. noNameForWebSocketResetExceptionMessage = Nenhum nome fornecido para redefinir o WebSocket. +schemaValidationRequiresPowerShell610ExceptionMessage = A validação do esquema requer a versão 6.1.0 ou superior do PowerShell. +routeParameterCannotBeNullExceptionMessage = O parâmetro 'Route' não pode ser nulo. +encodingAttributeOnlyAppliesToMultipartExceptionMessage = O atributo de codificação só se aplica a corpos de solicitação multipart e application/x-www-form-urlencoded. +testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = 'Test-PodeOAComponentSchema' precisa ser habilitado usando 'Enable-PodeOpenApi -EnableSchemaValidation' +openApiComponentSchemaDoesNotExistExceptionMessage = O esquema do componente OpenApi {0} não existe. +openApiParameterRequiresNameExceptionMessage = O parâmetro OpenApi requer um nome especificado. +openApiLicenseObjectRequiresNameExceptionMessage = O objeto OpenAPI 'license' requer a propriedade 'name'. Use o parâmetro -LicenseName. +parametersValueOrExternalValueMandatoryExceptionMessage = Os parâmetros 'Value' ou 'ExternalValue' são obrigatórios. +parametersMutuallyExclusiveExceptionMessage = Os parâmetros '{0}' e '{1}' são mutuamente exclusivos. +maximumConcurrentWebSocketThreadsInvalidExceptionMessage = O número máximo de threads concorrentes do WebSocket deve ser >=1, mas foi obtido: {0} +maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = O número máximo de threads concorrentes do WebSocket não pode ser menor que o mínimo de {0}, mas foi obtido: {1} +alreadyConnectedToWebSocketExceptionMessage = Já conectado ao websocket com o nome '{0}' +failedToConnectToWebSocketExceptionMessage = Falha ao conectar ao websocket: {0} +verbNoLogicPassedExceptionMessage = [Verbo] {0}: Nenhuma lógica passada +scriptPathDoesNotExistExceptionMessage = O caminho do script não existe: {0} +failedToImportModuleExceptionMessage = Falha ao importar módulo: {0} +modulePathDoesNotExistExceptionMessage = O caminho do módulo não existe: {0} +defaultValueNotBooleanOrEnumExceptionMessage = O valor padrão não é booleano e não faz parte do enum. +propertiesTypeObjectAssociationExceptionMessage = Apenas propriedades do tipo Objeto podem ser associadas com {0}. +invalidContentTypeForSchemaExceptionMessage = 'content-type' inválido encontrado para o esquema: {0} +openApiRequestStyleInvalidForParameterExceptionMessage = O estilo da solicitação OpenApi não pode ser {0} para um parâmetro {1}. +pathParameterRequiresRequiredSwitchExceptionMessage = Se a localização do parâmetro for 'Path', o parâmetro de switch 'Required' é obrigatório. +operationIdMustBeUniqueForArrayExceptionMessage = OperationID: {0} deve ser único e não pode ser aplicado a uma matriz. +operationIdMustBeUniqueExceptionMessage = OperationID: {0} deve ser único. +noOpenApiUrlSuppliedExceptionMessage = Nenhuma URL do OpenAPI fornecida para {0}. +noTitleSuppliedForPageExceptionMessage = Nenhum título fornecido para a página {0}. +noRoutePathSuppliedForPageExceptionMessage = Nenhum caminho de rota fornecido para a página {0}. +swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = Esta versão do Swagger-Editor não suporta OpenAPI 3.1 +rapidPdfDoesNotSupportOpenApi31ExceptionMessage = A ferramenta de documentos RapidPdf não suporta OpenAPI 3.1 +definitionTagNotDefinedExceptionMessage = A tag de definição {0} não existe. +scopedVariableNotFoundExceptionMessage = Variável de escopo não encontrada: {0} +noSecretVaultRegisteredExceptionMessage = Nenhum Cofre de Segredos com o nome '{0}' foi registrado. +invalidStrictTransportSecurityDurationExceptionMessage = Duração inválida fornecida para Strict-Transport-Security: {0}. Deve ser maior que 0. +durationMustBeZeroOrGreaterExceptionMessage = A duração deve ser 0 ou maior, mas foi obtido: {0}s +taskAlreadyDefinedExceptionMessage = [Tarefa] {0}: Tarefa já definida. +maximumConcurrentTasksInvalidExceptionMessage = O número máximo de tarefas concorrentes deve ser >=1, mas foi obtido: {0} +maximumConcurrentTasksLessThanMinimumExceptionMessage = O número máximo de tarefas concorrentes não pode ser menor que o mínimo de {0}, mas foi obtido: {1} +taskDoesNotExistExceptionMessage = A tarefa '{0}' não existe. '@ diff --git a/src/Locales/zn/Pode.psd1 b/src/Locales/zn/Pode.psd1 index 24551f086..31a057dcd 100644 --- a/src/Locales/zn/Pode.psd1 +++ b/src/Locales/zn/Pode.psd1 @@ -37,7 +37,6 @@ singleValueForIntervalExceptionMessage = 当使用间隔时,只能提供单个 scriptErrorExceptionMessage = 脚本 '{0}' 在 {1} {2} (第 {3} 行) 第 {4} 个字符处执行 {5} 对象 '{7}' 的错误。类: {8} 基类: {9} noScriptBlockSuppliedExceptionMessage = 未提供脚本块。 iisAspnetcoreTokenMissingExceptionMessage = 缺少 IIS ASPNETCORE_TOKEN。 -invalidContentTypeForSchemaExceptionMessage = 为模式找到的内容类型无效: {0} propertiesParameterWithoutNameExceptionMessage = 如果属性没有名称,则不能使用 Properties 参数。 multiTypePropertiesRequireOpenApi31ExceptionMessage = 多类型属性需要 OpenApi 版本 3.1 或更高版本。 openApiVersionPropertyMandatoryExceptionMessage = OpenApi 版本属性是必需的。 @@ -47,7 +46,6 @@ unsupportedObjectExceptionMessage = 不支持的对象 validationOfAnyOfSchemaNotSupportedExceptionMessage = 不支持包含 'anyof' 的模式的验证。 validationOfOneOfSchemaNotSupportedExceptionMessage = 不支持包含 'oneof' 的模式的验证。 cannotCreatePropertyWithoutTypeExceptionMessage = 无法创建属性,因为未定义类型。 -paramsNoAdditionalPropertiesExclusiveExceptionMessage = Params -NoAdditionalProperties 和 -AdditionalProperties 互斥。 headerMustHaveNameInEncodingContextExceptionMessage = 在编码上下文中使用时,标头必须有名称。 descriptionRequiredExceptionMessage = 描述是必需的。 openApiDocumentNotCompliantExceptionMessage = OpenAPI 文档不符合规范。 @@ -167,8 +165,6 @@ cannotSupplyIntervalForYearExceptionMessage = 无法为每年提供间隔值。 secretVaultAlreadyRegisteredExceptionMessage = 名为“{0}”的秘密保险库已注册{1}。 secretVaultUnlockExpiryDateInPastExceptionMessage = 秘密保险库的解锁到期日期已过 (UTC) :{0} secretAlreadyMountedExceptionMessage = 名为“{0}”的秘密已挂载。 -noSecretVaultRegisteredExceptionMessage = 没有注册名为“{0}”的秘密保险库。 -noAdditionalPropertiesMutuallyExclusiveExceptionMessage = 参数 'NoAdditionalProperties' 和 'AdditionalProperties' 是互斥的。 credentialsPassedWildcardForHeadersLiteralExceptionMessage = 传递凭据时,标头的通配符 * 将被视为文字字符串,而不是通配符。 wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = 标头的通配符 * 与 AutoHeaders 开关不兼容。 wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = 方法的通配符 * 与 AutoMethods 开关不兼容。 @@ -178,4 +174,42 @@ noNameForWebSocketRemoveExceptionMessage = 没有提供要删除的 WebSocket noNameForWebSocketSendMessageExceptionMessage = 没有提供要发送消息的 WebSocket 的名称。 noSecretNamedMountedExceptionMessage = 没有挂载名为“{0}”的秘密。 noNameForWebSocketResetExceptionMessage = 没有提供要重置的 WebSocket 的名称。 +schemaValidationRequiresPowerShell610ExceptionMessage = 架构验证需要 PowerShell 版本 6.1.0 或更高版本。 +routeParameterCannotBeNullExceptionMessage = 参数 'Route' 不能为空。 +encodingAttributeOnlyAppliesToMultipartExceptionMessage = 编码属性仅适用于 multipart 和 application/x-www-form-urlencoded 请求体。 +testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = 必须使用 'Enable-PodeOpenApi -EnableSchemaValidation' 启用 'Test-PodeOAComponentSchema'。 +openApiComponentSchemaDoesNotExistExceptionMessage = OpenApi 组件架构 {0} 不存在。 +openApiParameterRequiresNameExceptionMessage = OpenApi 参数需要指定名称。 +openApiLicenseObjectRequiresNameExceptionMessage = OpenAPI 对象 'license' 需要属性 'name'。请使用 -LicenseName 参数。 +parametersValueOrExternalValueMandatoryExceptionMessage = 参数 'Value' 或 'ExternalValue' 是必需的。 +parametersMutuallyExclusiveExceptionMessage = 参数 '{0}' 和 '{1}' 是互斥的。 +maximumConcurrentWebSocketThreadsInvalidExceptionMessage = 最大并发 WebSocket 线程数必须 >=1, 但获得: {0} +maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = 最大并发 WebSocket 线程数不能小于最小值 {0},但获得: {1} +alreadyConnectedToWebSocketExceptionMessage = 已连接到名为 '{0}' 的 WebSocket +failedToConnectToWebSocketExceptionMessage = 连接到 WebSocket 失败: {0} +verbNoLogicPassedExceptionMessage = [动词] {0}: 未传递逻辑 +scriptPathDoesNotExistExceptionMessage = 脚本路径不存在: {0} +failedToImportModuleExceptionMessage = 导入模块失败: {0} +modulePathDoesNotExistExceptionMessage = 模块路径不存在: {0} +defaultValueNotBooleanOrEnumExceptionMessage = 默认值不是布尔值且不属于枚举。 +propertiesTypeObjectAssociationExceptionMessage = 只有 Object 类型的属性可以与 {0} 关联。 +invalidContentTypeForSchemaExceptionMessage = 架构中发现无效的 'content-type': {0} +openApiRequestStyleInvalidForParameterExceptionMessage = OpenApi 请求样式不能为 {0},适用于 {1} 参数。 +pathParameterRequiresRequiredSwitchExceptionMessage = 如果参数位置是 'Path',则 'Required' 开关参数是必需的。 +operationIdMustBeUniqueForArrayExceptionMessage = 操作ID: {0} 必须唯一,不能应用于数组。 +operationIdMustBeUniqueExceptionMessage = 操作ID: {0} 必须唯一。 +noOpenApiUrlSuppliedExceptionMessage = 未提供 {0} 的 OpenAPI URL。 +noTitleSuppliedForPageExceptionMessage = 未提供 {0} 页面的标题。 +noRoutePathSuppliedForPageExceptionMessage = 未提供 {0} 页面的路由路径。 +swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = 此版本的 Swagger-Editor 不支持 OpenAPI 3.1 +rapidPdfDoesNotSupportOpenApi31ExceptionMessage = 文档工具 RapidPdf 不支持 OpenAPI 3.1 +definitionTagNotDefinedExceptionMessage = 定义标签 {0} 未定义。 +scopedVariableNotFoundExceptionMessage = 未找到范围变量: {0} +noSecretVaultRegisteredExceptionMessage = 未注册名为 '{0}' 的秘密保险库。 +invalidStrictTransportSecurityDurationExceptionMessage = 提供的严格传输安全持续时间无效: {0}。应大于 0。 +durationMustBeZeroOrGreaterExceptionMessage = 持续时间必须为 0 或更大,但获得: {0}s +taskAlreadyDefinedExceptionMessage = [任务] {0}: 任务已定义。 +maximumConcurrentTasksInvalidExceptionMessage = 最大并发任务数必须 >=1,但获得: {0} +maximumConcurrentTasksLessThanMinimumExceptionMessage = 最大并发任务数不能小于最小值 {0},但获得: {1} +taskDoesNotExistExceptionMessage = 任务 '{0}' 不存在。 '@ diff --git a/src/Private/OpenApi.ps1 b/src/Private/OpenApi.ps1 index 5b5b8db02..26a1c976b 100644 --- a/src/Private/OpenApi.ps1 +++ b/src/Private/OpenApi.ps1 @@ -1648,8 +1648,8 @@ function New-PodeOAPropertyInternal { if ($Params.ExternalDocs) { $param.externalDocs = $Params.ExternalDocs } if ($Params.NoAdditionalProperties.IsPresent -and $Params.AdditionalProperties) { - # Params -NoAdditionalProperties and -AdditionalProperties are mutually exclusive - throw $PodeLocale.paramsNoAdditionalPropertiesExclusiveExceptionMessage + # Parameters 'NoAdditionalProperties' and 'AdditionalProperties' are mutually exclusive + throw ($PodeLocale.parametersMutuallyExclusiveExceptionMessage -f 'NoAdditionalProperties', 'AdditionalProperties') } else { if ($Params.NoAdditionalProperties.IsPresent) { $param.additionalProperties = $false } diff --git a/src/Public/Core.ps1 b/src/Public/Core.ps1 index 304b3f6f4..6d05729d6 100644 --- a/src/Public/Core.ps1 +++ b/src/Public/Core.ps1 @@ -679,7 +679,8 @@ function Show-PodeGui { if (![string]::IsNullOrWhiteSpace($EndpointName)) { if (!$PodeContext.Server.Endpoints.ContainsKey($EndpointName)) { - throw "Endpoint with name '$($EndpointName)' does not exist" + # Endpoint with name '$EndpointName' does not exist. + throw ($PodeLocale.endpointNameNotExistExceptionMessage -f $EndpointName) } $PodeContext.Server.Gui.Endpoint = $PodeContext.Server.Endpoints[$EndpointName] diff --git a/src/Public/FileWatchers.ps1 b/src/Public/FileWatchers.ps1 index cce9fbd28..142919244 100644 --- a/src/Public/FileWatchers.ps1 +++ b/src/Public/FileWatchers.ps1 @@ -137,7 +137,8 @@ function Add-PodeFileWatcher { # test path to make sure it exists if (!(Test-PodePath $Path -NoStatus)) { - throw "The path does not exist: $($Path)" + # Path does not exist + throw ($PodeLocale.pathNotExistExceptionMessage -f $Path) } # test if we have the file watcher already diff --git a/src/Public/OAProperties.ps1 b/src/Public/OAProperties.ps1 index 64d458ab7..1abd4bd04 100644 --- a/src/Public/OAProperties.ps1 +++ b/src/Public/OAProperties.ps1 @@ -379,7 +379,8 @@ function New-PodeOAMultiTypeProperty { $param.default = $Default } else { - throw "The default value is not a boolean and it's not part of the enum" + # The default value is not a boolean and is not part of the enum + throw $PodeLocale.defaultValueNotBooleanOrEnumExceptionMessage } } } @@ -1398,7 +1399,8 @@ function New-PodeOABoolProperty { $param.default = $Default } else { - throw "The default value is not a boolean and it's not part of the enum" + # The default value is not a boolean and is not part of the enum + throw $PodeLocale.defaultValueNotBooleanOrEnumExceptionMessage } } @@ -1791,7 +1793,8 @@ function Merge-PodeOAProperty { foreach ($schema in $ObjectDefinitions) { if ($schema -is [System.Object[]] -or ($schema -is [hashtable] -and (($schema.type -ine 'object') -and !$schema.object))) { - throw "Only properties of type Object can be associated with $($param.type)" + # Only properties of type Object can be associated with $param.type + throw ($PodeLocale.propertiesTypeObjectAssociationExceptionMessage -f $param.type) } $param.schemas += $schema } diff --git a/src/Public/OpenApi.ps1 b/src/Public/OpenApi.ps1 index 290d4388e..9d8aecacc 100644 --- a/src/Public/OpenApi.ps1 +++ b/src/Public/OpenApi.ps1 @@ -224,7 +224,8 @@ function Enable-PodeOpenApi { $PodeContext.Server.OpenAPI.Definitions[$DefinitionTag].hiddenComponents.schemaValidation = $EnableSchemaValidation.IsPresent } else { - throw 'Schema validation required Powershell version 6.1.0 or greater' + # Schema validation required PowerShell version 6.1.0 or greater + throw $PodeLocale.schemaValidationRequiresPowerShell610ExceptionMessage } } @@ -613,7 +614,10 @@ function Add-PodeOAResponse { $DefinitionTag ) - if ($null -eq $Route) { throw 'Add-PodeOAResponse - The parameter -Route cannot be NULL.' } + if ($null -eq $Route) { + # The parameter 'Route' cannot be null + throw $PodeLocale.routeParameterCannotBeNullExceptionMessage + } $DefinitionTag = Test-PodeOADefinitionTag -Tag $DefinitionTag # override status code with default @@ -686,7 +690,10 @@ function Remove-PodeOAResponse { $PassThru ) - if ($null -eq $Route) { throw 'The parameter -Route cannot be NULL.' } + if ($null -eq $Route) { + # The parameter 'Route' cannot be null + throw $PodeLocale.routeParameterCannotBeNullExceptionMessage + } # override status code with default $code = "$($StatusCode)" @@ -747,7 +754,10 @@ function Set-PodeOARequest { $PassThru ) - if ($null -eq $Route) { throw 'Set-PodeOARequest - The parameter -Route cannot be NULL.' } + if ($null -eq $Route) { + # The parameter 'Route' cannot be null + throw $PodeLocale.routeParameterCannotBeNullExceptionMessage + } foreach ($r in @($Route)) { @@ -868,7 +878,8 @@ function New-PodeOARequestBody { $DefinitionTag = Test-PodeOADefinitionTag -Tag $DefinitionTag if ($Example -and $Examples) { - throw 'Parameter -Examples and -Example are mutually exclusive' + # Parameters 'Examples' and 'Example' are mutually exclusive + throw ($PodeLocale.parametersMutuallyExclusiveExceptionMessage -f 'Example', 'Examples') } $result = @{} foreach ($tag in $DefinitionTag) { @@ -923,7 +934,8 @@ function New-PodeOARequestBody { $param.Content.$($Content.keys[0]).encoding = $r } else { - throw 'The encoding attribute is only applicable to multipart and application/x-www-form-urlencoded request bodies.' + # The encoding attribute only applies to multipart and application/x-www-form-urlencoded request bodies + throw $PodeLocale.encodingAttributeOnlyAppliesToMultipartExceptionMessage } } $result[$tag] = $param @@ -974,7 +986,8 @@ function Test-PodeOAJsonSchemaCompliance { ) if ($DefinitionTag) { if (! ($PodeContext.Server.OpenApi.Definitions.Keys -ccontains $DefinitionTag)) { - throw "DefinitionTag $DefinitionTag is not defined" + # DefinitionTag does not exist. + throw ($PodeLocale.definitionTagNotDefinedExceptionMessage -f $DefinitionTag) } } else { @@ -986,10 +999,12 @@ function Test-PodeOAJsonSchemaCompliance { } if (!$PodeContext.Server.OpenAPI.Definitions[$DefinitionTag].hiddenComponents.schemaValidation) { - throw 'Test-PodeOAComponentchema need to be enabled using `Enable-PodeOpenApi -EnableSchemaValidation` ' + # 'Test-PodeOAComponentchema' need to be enabled using 'Enable-PodeOpenApi -EnableSchemaValidation' + throw $PodeLocale.testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage } if (!(Test-PodeOAComponentSchemaJson -Name $SchemaReference -DefinitionTag $DefinitionTag)) { - throw "The OpenApi component schema in Json doesn't exist: $SchemaReference" + # The OpenApi component schema doesn't exist + throw ($PodeLocale.openApiComponentSchemaDoesNotExistExceptionMessage -f $SchemaReference) } if ($PodeContext.Server.OpenAPI.Definitions[$DefinitionTag].hiddenComponents.schemaJson[$SchemaReference].available) { [string[]] $message = @() @@ -1215,7 +1230,8 @@ function ConvertTo-PodeOAParameter { if ($ContentType ) { # ensure all content types are valid if ($ContentType -inotmatch '^[\w-]+\/[\w\.\+-]+$') { - throw "Invalid content-type found for schema: $($type)" + # Invalid 'content-type' found for schema: $type + throw ($PodeLocale.invalidContentTypeForSchemaExceptionMessage -f $type) } $prop.content = [ordered]@{ $ContentType = [ordered]@{ @@ -1239,25 +1255,29 @@ function ConvertTo-PodeOAParameter { switch ($in.ToLower()) { 'path' { if (@('Simple', 'Label', 'Matrix' ) -inotcontains $Style) { - throw "OpenApi request Style cannot be $Style for a $in parameter" + # OpenApi request Style cannot be $Style for a $in parameter + throw ($PodeLocale.openApiRequestStyleInvalidForParameterExceptionMessage -f $Style, $in) } break } 'query' { if (@('Form', 'SpaceDelimited', 'PipeDelimited', 'DeepObject' ) -inotcontains $Style) { - throw "OpenApi request Style cannot be $Style for a $in parameter" + # OpenApi request Style cannot be $Style for a $in parameter + throw ($PodeLocale.openApiRequestStyleInvalidForParameterExceptionMessage -f $Style, $in) } break } 'header' { if (@('Simple' ) -inotcontains $Style) { - throw "OpenApi request Style cannot be $Style for a $in parameter" + # OpenApi request Style cannot be $Style for a $in parameter + throw ($PodeLocale.openApiRequestStyleInvalidForParameterExceptionMessage -f $Style, $in) } break } 'cookie' { if (@('Form' ) -inotcontains $Style) { - throw "OpenApi request Style cannot be $Style for a $in parameter" + # OpenApi request Style cannot be $Style for a $in parameter + throw ($PodeLocale.openApiRequestStyleInvalidForParameterExceptionMessage -f $Style, $in) } break } @@ -1298,7 +1318,8 @@ function ConvertTo-PodeOAParameter { $Name = $Property.name } else { - throw 'Parameter requires a Name' + # The OpenApi parameter requires a name to be specified + throw $PodeLocale.openApiParameterRequiresNameExceptionMessage } } if ($In -ieq 'Header' -and $PodeContext.Server.Security.autoHeaders -and $Name ) { @@ -1328,7 +1349,8 @@ function ConvertTo-PodeOAParameter { } if ($ContentType) { if ($ContentType -inotmatch '^[\w-]+\/[\w\.\+-]+$') { - throw "Invalid content-type found for schema: $($type)" + # Invalid 'content-type' found for schema: $type + throw ($PodeLocale.invalidContentTypeForSchemaExceptionMessage -f $type) } $prop.content = [ordered]@{ $ContentType = [ordered] @{ @@ -1341,7 +1363,8 @@ function ConvertTo-PodeOAParameter { } if ($Example -and $Examples) { - throw '-Example and -Examples are mutually exclusive' + # Parameters 'Examples' and 'Example' are mutually exclusive + throw ($PodeLocale.parametersMutuallyExclusiveExceptionMessage -f 'Examples' , 'Example' ) } if ($AllowEmptyValue.IsPresent ) { $prop['allowEmptyValue'] = $AllowEmptyValue.IsPresent @@ -1373,25 +1396,29 @@ function ConvertTo-PodeOAParameter { switch ($in.ToLower()) { 'path' { if (@('Simple', 'Label', 'Matrix' ) -inotcontains $Style) { - throw "OpenApi request Style cannot be $Style for a $in parameter" + # OpenApi request Style cannot be $Style for a $in parameter + throw ($PodeLocale.openApiRequestStyleInvalidForParameterExceptionMessage -f $Style, $in) } break } 'query' { if (@('Form', 'SpaceDelimited', 'PipeDelimited', 'DeepObject' ) -inotcontains $Style) { - throw "OpenApi request Style cannot be $Style for a $in parameter" + # OpenApi request Style cannot be $Style for a $in parameter + throw ($PodeLocale.openApiRequestStyleInvalidForParameterExceptionMessage -f $Style, $in) } break } 'header' { if (@('Simple' ) -inotcontains $Style) { - throw "OpenApi request Style cannot be $Style for a $in parameter" + # OpenApi request Style cannot be $Style for a $in parameter + throw ($PodeLocale.openApiRequestStyleInvalidForParameterExceptionMessage -f $Style, $in) } break } 'cookie' { if (@('Form' ) -inotcontains $Style) { - throw "OpenApi request Style cannot be $Style for a $in parameter" + # OpenApi request Style cannot be $Style for a $in parameter + throw ($PodeLocale.openApiRequestStyleInvalidForParameterExceptionMessage -f $Style, $in) } break } @@ -1438,7 +1465,8 @@ function ConvertTo-PodeOAParameter { } if ($In -ieq 'Path' -and !$prop.required ) { - Throw "If the parameter location is 'Path', the switch parameter `-Required` is required" + # If the parameter location is 'Path', the switch parameter 'Required' is mandatory + throw $PodeLocale.pathParameterRequiresRequiredSwitchExceptionMessage } return $prop @@ -1518,7 +1546,10 @@ function Set-PodeOARouteInfo { $DefinitionTag ) - if ($null -eq $Route) { throw 'Set-PodeOARouteInfo - The parameter -Route cannot be NULL.' } + if ($null -eq $Route) { + # The parameter 'Route' cannot be null + throw $PodeLocale.routeParameterCannotBeNullExceptionMessage + } $DefinitionTag = Test-PodeOADefinitionTag -Tag $DefinitionTag @@ -1534,11 +1565,13 @@ function Set-PodeOARouteInfo { } if ($OperationId) { if ($Route.Count -gt 1) { - throw "OperationID:$OperationId has to be unique and cannot be applied to an array." + # OperationID:$OperationId has to be unique and cannot be applied to an array + throw ($PodeLocale.operationIdMustBeUniqueForArrayExceptionMessage -f $OperationId) } foreach ($tag in $DefinitionTag) { if ($PodeContext.Server.OpenAPI.Definitions[$tag].hiddenComponents.operationId -ccontains $OperationId) { - throw "OperationID:$OperationId has to be unique." + # OperationID:$OperationId has to be unique + throw ($PodeLocale.operationIdMustBeUniqueExceptionMessage -f $OperationId) } $PodeContext.Server.OpenAPI.Definitions[$tag].hiddenComponents.operationId += $OperationId } @@ -1708,23 +1741,28 @@ function Enable-PodeOAViewer { # error if there's no OpenAPI URL $OpenApiUrl = Protect-PodeValue -Value $OpenApiUrl -Default $PodeContext.Server.OpenAPI.Definitions[$DefinitionTag].Path if ([string]::IsNullOrWhiteSpace($OpenApiUrl)) { - throw "No OpenAPI URL supplied for $($Type)" + # No OpenAPI URL supplied for $Type + throw ($PodeLocale.noOpenApiUrlSuppliedExceptionMessage -f $Type) + } # fail if no title $Title = Protect-PodeValue -Value $Title -Default $PodeContext.Server.OpenAPI.Definitions[$DefinitionTag].info.Title if ([string]::IsNullOrWhiteSpace($Title)) { - throw "No title supplied for $($Type) page" + # No title supplied for $Type page + throw ($PodeLocale.noTitleSuppliedForPageExceptionMessage -f $Type) } if ($Editor.IsPresent) { # set a default path $Path = Protect-PodeValue -Value $Path -Default '/editor' if ([string]::IsNullOrWhiteSpace($Title)) { - throw "No route path supplied for $($Type) page" + # No route path supplied for $Type page + throw ($PodeLocale.noRoutePathSuppliedForPageExceptionMessage -f $Type) } if (Test-PodeOAVersion -Version 3.1 -DefinitionTag $DefinitionTag) { - throw "This version on Swagger-Editor doesn't support OpenAPI 3.1" + # This version on Swagger-Editor doesn't support OpenAPI 3.1 + throw $PodeLocale.swaggerEditorDoesNotSupportOpenApi31ExceptionMessage } # setup meta info $meta = @{ @@ -1756,7 +1794,8 @@ function Enable-PodeOAViewer { # set a default path $Path = Protect-PodeValue -Value $Path -Default '/bookmarks' if ([string]::IsNullOrWhiteSpace($Title)) { - throw "No route path supplied for $($Type) page" + # No route path supplied for $Type page + throw ($PodeLocale.noRoutePathSuppliedForPageExceptionMessage -f $Type) } # setup meta info $meta = @{ @@ -1797,12 +1836,14 @@ function Enable-PodeOAViewer { } else { if ($Type -ieq 'RapiPdf' -and (Test-PodeOAVersion -Version 3.1 -DefinitionTag $DefinitionTag)) { - throw "The Document tool RapidPdf doesn't support OpenAPI 3.1" + # The Document tool RapidPdf doesn't support OpenAPI 3.1 + throw $PodeLocale.rapidPdfDoesNotSupportOpenApi31ExceptionMessage } # set a default path $Path = Protect-PodeValue -Value $Path -Default "/$($Type.ToLowerInvariant())" if ([string]::IsNullOrWhiteSpace($Title)) { - throw "No route path supplied for $($Type) page" + # No route path supplied for $Type page + throw ($PodeLocale.noRoutePathSuppliedForPageExceptionMessage -f $Type) } # setup meta info $meta = @{ @@ -2106,7 +2147,8 @@ function Add-PodeOAInfo { $Info.license.url = $LicenseUrl } else { - throw 'The OpenAPI property license.name is required. Use -LicenseName' + # The OpenAPI object 'license' required the property 'name'. Use -LicenseName parameter. + throw $PodeLocale.openApiLicenseObjectRequiresNameExceptionMessage } } @@ -2261,7 +2303,8 @@ function New-PodeOAExample { } else { if ( $ExternalValue -and $Value) { - throw '-Value or -ExternalValue are mutually exclusive' + # Parameters 'ExternalValue' and 'Value' are mutually exclusive + throw ($PodeLocale.parametersMutuallyExclusiveExceptionMessage -f 'ExternalValue', 'Value') } $Example = [ordered]@{ } if ($Summary) { @@ -2277,7 +2320,8 @@ function New-PodeOAExample { $Example.externalValue = $ExternalValue } else { - throw '-Value or -ExternalValue are mandatory' + # Parameters 'Value' or 'ExternalValue' are mandatory + throw $PodeLocale.parametersValueOrExternalValueMandatoryExceptionMessage } } $param = [ordered]@{} @@ -2529,7 +2573,10 @@ function Add-PodeOACallBack { $DefinitionTag ) - if ($null -eq $Route) { throw 'Add-PodeOACallBack - The parameter -Route cannot be NULL.' } + if ($null -eq $Route) { + # The parameter 'Route' cannot be null + throw $PodeLocale.routeParameterCannotBeNullExceptionMessage + } $DefinitionTag = Test-PodeOADefinitionTag -Tag $DefinitionTag @@ -2834,7 +2881,8 @@ function New-PodeOAContentMediaType { $props = [ordered]@{} foreach ($media in $MediaType) { if ($media -inotmatch '^(application|audio|image|message|model|multipart|text|video|\*)\/[\w\.\-\*]+(;[\s]*(charset|boundary)=[\w\.\-\*]+)*$') { - throw "Invalid content-type found for schema: $($media)" + # Invalid 'content-type' found for schema: $media + throw ($PodeLocale.invalidContentTypeForSchemaExceptionMessage -f $media) } if ($Upload.IsPresent) { if ( $media -ieq 'multipart/form-data' -and $Content) { @@ -3150,7 +3198,10 @@ function Add-PodeOAExternalRoute { } 'pipeline' { - if ($null -eq $Route) { throw 'Add-PodeOAExternalRoute - The parameter -Route cannot be NULL.' } + if ($null -eq $Route) { + # The parameter 'Route' cannot be null + throw $PodeLocale.routeParameterCannotBeNullExceptionMessage + } foreach ($r in @($Route)) { $r.OpenApi.Servers = $Servers } @@ -3294,7 +3345,7 @@ function Add-PodeOAWebhook { foreach ($tag in $DefinitionTag) { if (Test-PodeOAVersion -Version 3.0 -DefinitionTag $tag ) { # The Webhooks feature is not supported in OpenAPI v3.0.x - throw $PodeLocal.webhooksFeatureNotSupportedInOpenApi30ExceptionMessage + throw $PodeLocale.webhooksFeatureNotSupportedInOpenApi30ExceptionMessage } $PodeContext.Server.OpenAPI.Definitions[$tag].webhooks[$Name] = $refRoute } @@ -3352,7 +3403,7 @@ function Select-PodeOADefinition { if (Test-PodeIsEmpty $Scriptblock) { # No ScriptBlock supplied - throw $PodeLocal.noScriptBlockSuppliedExceptionMessage + throw $PodeLocale.noScriptBlockSuppliedExceptionMessage } if (Test-PodeIsEmpty -Value $Tag) { $Tag = $PodeContext.Server.OpenAPI.DefaultDefinitionTag @@ -3403,7 +3454,8 @@ function Test-PodeOADefinitionTag { if ($Tag -and $Tag.Count -gt 0) { foreach ($t in $Tag) { if (! ($PodeContext.Server.OpenApi.Definitions.Keys -ccontains $t)) { - throw "DefinitionTag $t is not defined" + # DefinitionTag does not exist. + throw ($PodeLocale.definitionTagNotDefinedExceptionMessage -f $t) } } return $Tag diff --git a/src/Public/ScopedVariables.ps1 b/src/Public/ScopedVariables.ps1 index 35ade7d2a..413999128 100644 --- a/src/Public/ScopedVariables.ps1 +++ b/src/Public/ScopedVariables.ps1 @@ -116,7 +116,8 @@ function Convert-PodeScopedVariable { # check if scoped var defined if (!(Test-PodeScopedVariable -Name $Name)) { - throw "Scoped Variable not found: $($Name)" + # Scoped Variable not found + throw ($PodeLocale.scopedVariableNotFoundExceptionMessage -f $Name) } # get the scoped var metadata diff --git a/src/Public/Secrets.ps1 b/src/Public/Secrets.ps1 index 9425ae00b..ac87f3fa3 100644 --- a/src/Public/Secrets.ps1 +++ b/src/Public/Secrets.ps1 @@ -131,7 +131,7 @@ function Register-PodeSecretVault { $autoImported = ' from auto-importing' } # A Secret Vault with the name {0} has already been registered{1} - throw ($PodeLocal.secretVaultAlreadyRegisteredAutoImportExceptionMessage -f $Name, $autoImported) + throw ($PodeLocale.secretVaultAlreadyRegisteredAutoImportExceptionMessage -f $Name, $autoImported) } # base vault config @@ -262,7 +262,7 @@ function Unlock-PodeSecretVault { # has the vault been registered? if (!(Test-PodeSecretVault -Name $Name)) { # No Secret Vault with the name has been registered - throw ($PodeLocal.noSecretVaultRegisteredExceptionMessage -f $Vault) + throw ($PodeLocale.noSecretVaultRegisteredExceptionMessage -f $Vault) } # get vault @@ -292,7 +292,7 @@ function Unlock-PodeSecretVault { $expiry = ([datetime]$expiry).ToUniversalTime() if ($expiry -le [datetime]::UtcNow) { # Secret Vault unlock expiry date is in the past (UTC) - throw ($PodeLocal.secretVaultUnlockExpiryDateInPastExceptionMessage -f $expiry) + throw ($PodeLocale.secretVaultUnlockExpiryDateInPastExceptionMessage -f $expiry) } $vault.Unlock.Expiry = $expiry @@ -438,18 +438,19 @@ function Mount-PodeSecret { # has the secret been mounted already? if (Test-PodeSecret -Name $Name) { # A Secret with the name has already been mounted - throw ($PodeLocal.secretAlreadyMountedExceptionMessage -f $Name) + throw ($PodeLocale.secretAlreadyMountedExceptionMessage -f $Name) } # does the vault exist? if (!(Test-PodeSecretVault -Name $Vault)) { # No Secret Vault with the name has been registered - throw ($PodeLocal.noSecretVaultRegisteredExceptionMessage -f $Vault) + throw ($PodeLocale.noSecretVaultRegisteredExceptionMessage -f $Vault) } # check properties if (!(Test-PodeIsEmpty $Property) -and !(Test-PodeIsEmpty $ExpandProperty)) { - throw 'You can only provide one of either Property or ExpandPropery, but not both' + # Parameters 'Property' and 'ExpandPropery' are mutually exclusive + throw ($PodeLocale.parametersMutuallyExclusiveExceptionMessage -f 'Property' , 'ExpandPropery') } # which cache value? @@ -513,7 +514,7 @@ function Dismount-PodeSecret { if (!(Test-PodeSecret -Name $Name)) { if ($Remove) { # No Secret named has been mounted - throw ($PodeLocal.noSecretNamedMountedExceptionMessage -f $Name) + throw ($PodeLocale.noSecretNamedMountedExceptionMessage -f $Name) } return @@ -556,7 +557,7 @@ function Get-PodeSecret { # has the secret been mounted? if (!(Test-PodeSecret -Name $Name)) { # No Secret named has been mounted - throw ($PodeLocal.noSecretNamedMountedExceptionMessage -f $Name) + throw ($PodeLocale.noSecretNamedMountedExceptionMessage -f $Name) } # get the secret and vault @@ -671,7 +672,7 @@ function Update-PodeSecret { # has the secret been mounted? if (!(Test-PodeSecret -Name $Name)) { # No Secret named has been mounted - throw ($PodeLocal.noSecretNamedMountedExceptionMessage -f $Name) + throw ($PodeLocale.noSecretNamedMountedExceptionMessage -f $Name) } # make sure the value type is correct @@ -745,7 +746,8 @@ function Remove-PodeSecret { # has the vault been registered? if (!(Test-PodeSecretVault -Name $Vault)) { - throw "No Secret Vault with the name '$($Vault)' has been registered" + # No Secret Vault with the name has been registered + throw ($PodeLocale.noSecretVaultRegisteredExceptionMessage -f $Vault) } # remove the secret depending on vault type @@ -817,7 +819,8 @@ function Read-PodeSecret { # has the vault been registered? if (!(Test-PodeSecretVault -Name $Vault)) { - throw "No Secret Vault with the name '$($Vault)' has been registered" + # No Secret Vault with the name has been registered + throw ($PodeLocale.noSecretVaultRegisteredExceptionMessage -f $Vault) } # fetch the secret depending on vault type @@ -902,7 +905,8 @@ function Set-PodeSecret { # has the vault been registered? if (!(Test-PodeSecretVault -Name $Vault)) { - throw "No Secret Vault with the name '$($Vault)' has been registered" + # No Secret Vault with the name has been registered + throw ($PodeLocale.noSecretVaultRegisteredExceptionMessage -f $Vault) } # make sure the value type is correct diff --git a/src/Public/Security.ps1 b/src/Public/Security.ps1 index 3d7f1ecd4..18aa8eae7 100644 --- a/src/Public/Security.ps1 +++ b/src/Public/Security.ps1 @@ -1258,7 +1258,8 @@ function Set-PodeSecurityStrictTransportSecurity { ) if ($Duration -le 0) { - throw "Invalid Strict-Transport-Security duration supplied: $($Duration). Should be greater than 0" + # Invalid Strict-Transport-Security duration supplied + throw ($PodeLocale.invalidStrictTransportSecurityDurationExceptionMessage -f $Duration) } $value = "max-age=$($Duration)" @@ -1454,7 +1455,7 @@ function Set-PodeSecurityAccessControl { if ($Headers -icontains '*') { if ($Credentials) { # When Credentials is passed, The * wildcard for Headers will be taken as a literal string and not a wildcard - throw $PodeLocal.credentialsPassedWildcardForHeadersLiteralExceptionMessage + throw $PodeLocale.credentialsPassedWildcardForHeadersLiteralExceptionMessage } $Headers = @('*') @@ -1480,7 +1481,7 @@ function Set-PodeSecurityAccessControl { if ($AutoHeaders) { if ($Headers -icontains '*') { # The * wildcard for Headers is incompatible with the AutoHeaders switch - throw $PodeLocal.wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage + throw $PodeLocale.wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage } Add-PodeSecurityHeader -Name 'Access-Control-Allow-Headers' -Value 'content-type' -Append @@ -1490,7 +1491,7 @@ function Set-PodeSecurityAccessControl { if ($AutoMethods) { if ($Methods -icontains '*') { # The * wildcard for Methods is incompatible with the AutoMethods switch - throw $PodeLocal.wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage + throw $PodeLocale.wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage } if ($WithOptions) { Add-PodeSecurityHeader -Name 'Access-Control-Allow-Methods' -Value 'Options' -Append @@ -1501,7 +1502,7 @@ function Set-PodeSecurityAccessControl { # duration if ($Duration -le 0) { # Invalid Access-Control-Max-Age duration supplied - throw ($PodeLocal.invalidAccessControlMaxAgeDurationExceptionMessage -f $Duration) + throw ($PodeLocale.invalidAccessControlMaxAgeDurationExceptionMessage -f $Duration) } Add-PodeSecurityHeader -Name 'Access-Control-Max-Age' -Value $Duration diff --git a/src/Public/Sessions.ps1 b/src/Public/Sessions.ps1 index 0585ea366..a04b4c106 100644 --- a/src/Public/Sessions.ps1 +++ b/src/Public/Sessions.ps1 @@ -66,7 +66,8 @@ function Enable-PodeSessionMiddleware { [Parameter()] [ValidateScript({ if ($_ -lt 0) { - throw "Duration must be 0 or greater, but got: $($_)s" + # Duration must be 0 or greater, but got + throw ($PodeLocale.durationMustBeZeroOrGreaterExceptionMessage -f $_) } return $true diff --git a/src/Public/Tasks.ps1 b/src/Public/Tasks.ps1 index e8ac3e70c..8d5900cfc 100644 --- a/src/Public/Tasks.ps1 +++ b/src/Public/Tasks.ps1 @@ -44,7 +44,8 @@ function Add-PodeTask { ) # ensure the task doesn't already exist if ($PodeContext.Tasks.Items.ContainsKey($Name)) { - throw "[Task] $($Name): Task already defined" + # [Task] Task already defined + throw ($PodeLocale.taskAlreadyDefinedExceptionMessage -f $Name) } # if we have a file path supplied, load that path as a scriptblock @@ -88,7 +89,9 @@ function Set-PodeTaskConcurrency { # error if <=0 if ($Maximum -le 0) { - throw "Maximum concurrent tasks must be >=1 but got: $($Maximum)" + # Maximum concurrent tasks must be >=1 but got + throw ($PodeLocale.maximumConcurrentTasksInvalidExceptionMessage -f $Maximum) + } # ensure max > min @@ -98,7 +101,8 @@ function Set-PodeTaskConcurrency { } if ($_min -gt $Maximum) { - throw "Maximum concurrent tasks cannot be less than the minimum of $($_min) but got: $($Maximum)" + # Maximum concurrent tasks cannot be less than the minimum of $_min but got $Maximum + throw ($PodeLocale.maximumConcurrentTasksLessThanMinimumExceptionMessage -f $_min, $Maximum) } # set the max tasks @@ -157,7 +161,8 @@ function Invoke-PodeTask { # ensure the task exists if (!$PodeContext.Tasks.Items.ContainsKey($Name)) { - throw "Task '$($Name)' does not exist" + # Task does not exist + throw ($PodeLocale.taskDoesNotExistExceptionMessage -f $Name) } # run task logic @@ -250,7 +255,8 @@ function Edit-PodeTask { # ensure the task exists if (!$PodeContext.Tasks.Items.ContainsKey($Name)) { - throw "Task '$($Name)' does not exist" + # Task does not exist + throw ($PodeLocale.taskDoesNotExistExceptionMessage -f $Name) } $_task = $PodeContext.Tasks.Items[$Name] diff --git a/src/Public/Utilities.ps1 b/src/Public/Utilities.ps1 index 5657caad1..c89fda2d5 100644 --- a/src/Public/Utilities.ps1 +++ b/src/Public/Utilities.ps1 @@ -192,7 +192,8 @@ function Use-PodeScript { # check if the path exists if (!(Test-PodePath $_path -NoStatus)) { - throw "The script path does not exist: $(Protect-PodeValue -Value $_path -Default $Path)" + # The script path does not exist + throw ($PodeLocale.scriptPathDoesNotExistExceptionMessage -f (Protect-PodeValue -Value $_path -Default 'DefaultPath')) } # dot-source the script @@ -350,12 +351,14 @@ function Import-PodeModule { # if it's still empty, error if ([string]::IsNullOrWhiteSpace($Path)) { - throw "Failed to import module: $(Protect-PodeValue -Value $Path -Default $Name)" + # Failed to import module + throw ($PodeLocale.failedToImportModuleExceptionMessage -f (Protect-PodeValue -Value $Path -Default $Name)) } # check if the path exists if (!(Test-PodePath $Path -NoStatus)) { - throw "The module path does not exist: $(Protect-PodeValue -Value $Path -Default $Name)" + # The module path does not exist + throw ($PodeLocale.modulePathDoesNotExistExceptionMessage -f (Protect-PodeValue -Value $Path -Default $Name)) } $null = Import-Module $Path -Force -DisableNameChecking -Scope Global -ErrorAction Stop diff --git a/src/Public/Verbs.ps1 b/src/Public/Verbs.ps1 index 63cd58b9c..762d971d5 100644 --- a/src/Public/Verbs.ps1 +++ b/src/Public/Verbs.ps1 @@ -82,7 +82,8 @@ function Add-PodeVerb { # if scriptblock and file path are all null/empty, error if ((Test-PodeIsEmpty $ScriptBlock) -and (Test-PodeIsEmpty $FilePath) -and !$Close -and !$UpgradeToSsl) { - throw "[Verb] $($Verb): No logic passed" + # [Verb] Verb: No logic passed + throw ($PodeLocale.verbNoLogicPassedExceptionMessage -f $Verb) } # if we have a file path supplied, load that path as a scriptblock diff --git a/src/Public/WebSockets.ps1 b/src/Public/WebSockets.ps1 index 3b6eab478..0fcf5f3d7 100644 --- a/src/Public/WebSockets.ps1 +++ b/src/Public/WebSockets.ps1 @@ -23,7 +23,9 @@ function Set-PodeWebSocketConcurrency { # error if <=0 if ($Maximum -le 0) { - throw "Maximum concurrent WebSocket threads must be >=1 but got: $($Maximum)" + # Maximum concurrent WebSocket threads must be >=1 but got + throw ($PodeLocale.maximumConcurrentWebSocketThreadsInvalidExceptionMessage -f $Maximum) + } # add 1, for the waiting script @@ -36,7 +38,8 @@ function Set-PodeWebSocketConcurrency { } if ($_min -gt $Maximum) { - throw "Maximum concurrent WebSocket threads cannot be less than the minimum of $($_min) but got: $($Maximum)" + # Maximum concurrent WebSocket threads cannot be less than the minimum of $_min but got $Maximum + throw ($PodeLocale.maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage -f $_min, $Maximum) } # set the max tasks @@ -116,7 +119,8 @@ function Connect-PodeWebSocket { # fail if already exists if (Test-PodeWebSocket -Name $Name) { - throw "Already connected to websocket with name '$($Name)'" + # Already connected to websocket with name + throw ($PodeLocale.alreadyConnectedToWebSocketExceptionMessage -f $Name) } # if we have a file path supplied, load that path as a scriptblock @@ -132,7 +136,8 @@ function Connect-PodeWebSocket { $PodeContext.Server.WebSockets.Receiver.ConnectWebSocket($Name, $Url, $ContentType) } catch { - throw "Failed to connect to websocket: $($_.Exception.Message)" + # Failed to connect to websocket + throw ($PodeLocale.failedToConnectToWebSocketExceptionMessage -f $ErrorMessage) } $PodeContext.Server.WebSockets.Connections[$Name] = @{ @@ -171,7 +176,7 @@ function Disconnect-PodeWebSocket { if ([string]::IsNullOrWhiteSpace($Name)) { # No Name for a WebSocket to disconnect from supplied - throw $PodeLocal.noNameForWebSocketDisconnectExceptionMessage + throw $PodeLocale.noNameForWebSocketDisconnectExceptionMessage } if (Test-PodeWebSocket -Name $Name) { @@ -206,7 +211,7 @@ function Remove-PodeWebSocket { if ([string]::IsNullOrWhiteSpace($Name)) { # No Name for a WebSocket to remove supplied - throw $PodeLocal.noNameForWebSocketRemoveExceptionMessage + throw $PodeLocale.noNameForWebSocketRemoveExceptionMessage } @@ -264,7 +269,7 @@ function Send-PodeWebSocket { # do we have a name? if ([string]::IsNullOrWhiteSpace($Name)) { # No Name for a WebSocket to send message to supplied - throw $PodeLocal.noNameForWebSocketSendMessageExceptionMessage + throw $PodeLocale.noNameForWebSocketSendMessageExceptionMessage } # do the socket exist? @@ -320,7 +325,7 @@ function Reset-PodeWebSocket { if ([string]::IsNullOrWhiteSpace($Name)) { # No Name for a WebSocket to reset supplied - throw $PodeLocal.noNameForWebSocketResetExceptionMessage + throw $PodeLocale.noNameForWebSocketResetExceptionMessage } if (Test-PodeWebSocket -Name $Name) { diff --git a/tests/unit/Localization.Tests.ps1 b/tests/unit/Localization.Tests.ps1 index 8ab0b9baf..5c178e8c4 100644 --- a/tests/unit/Localization.Tests.ps1 +++ b/tests/unit/Localization.Tests.ps1 @@ -2,7 +2,30 @@ [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidGlobalVars', '')] param() -Describe 'Localization Files Key Check' { +Describe 'Localization Check' { + + + # Function to extract hashtable keys from a file + function Export-KeysFromFile { + param ( + [string]$filePath + ) + + $content = Get-Content -Path $filePath -Raw + $keys = @() + $regex = '\$PodeLocale\["([^"]+)"\]|\$PodeLocale\.([a-zA-Z_][a-zA-Z0-9_]*)' + foreach ($match in [regex]::Matches($content, $regex)) { + if ($match.Groups[1].Value) { + $keys += $match.Groups[1].Value + } + elseif ($match.Groups[2].Value) { + $keys += $match.Groups[2].Value + } + } + return $keys + } + + $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src' # All language directories @@ -17,13 +40,25 @@ Describe 'Localization Files Key Check' { # Discover all language directories $languageDirs = Get-ChildItem -Path $localizationDir -Directory | Where-Object { $_.Name -ne 'en' } - Describe 'Language [<_.Name>]' -ForEach ($languageDirs) { + + # Get all source code files recursively from the specified directory + $sourceFiles = Get-ChildItem -Path $src -Recurse -Include *.ps1, *.psm1 + + Describe 'Verify Invalid Hashtable Keys in [<_.Name>]' -ForEach ($sourceFiles) { + $keysInFile = Export-KeysFromFile -filePath $_.FullName + It "should find the key '[<_>]' in the hashtable" -ForEach ($keysInFile) { + $global:localizationKeys -contains $_ | Should -BeTrue + } + } + + + Describe 'Verifying Language [<_.Name>]' -ForEach ($languageDirs) { it 'Language resource file exist' { Test-Path -Path "$($_.FullName)/Pode.psd1" | Should -BeTrue } $podeFileContent = Get-Content -Path "$($_.FullName)/Pode.psd1" -Raw $global:content = Invoke-Expression $podeFileContent - it 'Total number of keys equal to the [en]' { + it 'Number of entry equal to the [en]' { $global:content.Keys.Count | Should -be $global:localizationKeys.Count } It -ForEach ($global:localizationKeys) -Name 'Resource File contain <_>' { diff --git a/tests/unit/OpenApi.Tests.ps1 b/tests/unit/OpenApi.Tests.ps1 index d0d2fbfec..777367ecf 100644 --- a/tests/unit/OpenApi.Tests.ps1 +++ b/tests/unit/OpenApi.Tests.ps1 @@ -5,7 +5,7 @@ BeforeAll { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src/' Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } -Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture "en-us" -FileName "Pode" + Import-LocalizedData -BindingVariable PodeLocale -BaseDirectory (Join-Path -Path $src -ChildPath 'Locales') -UICulture 'en-us' -FileName 'Pode' } Describe 'OpenApi' { @@ -2094,7 +2094,7 @@ Describe 'OpenApi' { It 'AllOf and ObjectDefinitions not an object' { { Merge-PodeOAProperty -Type AllOf -DiscriminatorProperty 'name' -ObjectDefinitions @('Pet', ((New-PodeOAIntProperty -Name 'id'), (New-PodeOAStringProperty -Name 'name')) - ) } | Should -Throw -ExpectedMessage 'Only properties of type Object can be associated with allof' + ) } | Should -Throw -ExpectedMessage ($PodeLocale.propertiesTypeObjectAssociationExceptionMessage -f 'allOf') # Only properties of type Object can be associated with allOf } } @@ -2409,7 +2409,8 @@ Describe 'OpenApi' { } It 'Path - ContentSchema - Exception -Required' { - { ConvertTo-PodeOAParameter -In Path -Description 'Feline description' -ContentType 'application/json' -Schema 'Cat' } | Should -Throw -ExpectedMessage '*the switch parameter `-Required*' + { ConvertTo-PodeOAParameter -In Path -Description 'Feline description' -ContentType 'application/json' -Schema 'Cat' } | + Should -Throw -ExpectedMessage $PodeLocale.pathParameterRequiresRequiredSwitchExceptionMessage # If the parameter location is 'Path', the switch parameter 'Required' is mandatory } } } From 04e151bfbf54ac1db99c39262adfa4992b259b29 Mon Sep 17 00:00:00 2001 From: mdaneri Date: Sun, 2 Jun 2024 09:21:23 -0700 Subject: [PATCH 11/67] Update Authentication.Tests.ps1 --- tests/integration/Authentication.Tests.ps1 | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/tests/integration/Authentication.Tests.ps1 b/tests/integration/Authentication.Tests.ps1 index c924f0445..67f4147c3 100644 --- a/tests/integration/Authentication.Tests.ps1 +++ b/tests/integration/Authentication.Tests.ps1 @@ -1,7 +1,11 @@ [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseDeclaredVarsMoreThanAssignments', '')] [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseUsingScopeModifierInNewRunspaces', '')] param() - +BeforeAll { + $path = $PSCommandPath + $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]integration', '/src/' + Get-ChildItem "$($src)/*.ps1" -Recurse | Resolve-Path | ForEach-Object { . $_ } +} Describe 'Authentication Requests' { BeforeAll { From 14da0d5976d58d9cbb32ca3a8117c47f1637e1ff Mon Sep 17 00:00:00 2001 From: mdaneri Date: Sun, 2 Jun 2024 21:01:49 -0700 Subject: [PATCH 12/67] additional messages --- src/Locales/ar/Pode.psd1 | 13 ++++++++++++- src/Locales/de/Pode.psd1 | 15 ++++++++++++--- src/Locales/en/Pode.psd1 | 11 +++++++++++ src/Locales/es/Pode.psd1 | 13 ++++++++++++- src/Locales/fr/Pode.psd1 | 13 ++++++++++++- src/Locales/it/Pode.psd1 | 13 ++++++++++++- src/Locales/ja/Pode.psd1 | 13 ++++++++++++- src/Locales/kr/Pode.psd1 | 13 ++++++++++++- src/Locales/pl/Pode.psd1 | 11 +++++++++++ src/Locales/pt/Pode.psd1 | 13 ++++++++++++- src/Locales/zn/Pode.psd1 | 13 ++++++++++++- src/Pode.psm1 | 2 +- src/Public/Caching.ps1 | 18 ++++++++++++------ src/Public/Core.ps1 | 18 ++++++++++++------ tests/unit/Localization.Tests.ps1 | 2 +- 15 files changed, 156 insertions(+), 25 deletions(-) diff --git a/src/Locales/ar/Pode.psd1 b/src/Locales/ar/Pode.psd1 index 9e4d9e05c..52c18f946 100644 --- a/src/Locales/ar/Pode.psd1 +++ b/src/Locales/ar/Pode.psd1 @@ -212,4 +212,15 @@ taskAlreadyDefinedExceptionMessage = [المهمة] {0}: المهمة معرفة maximumConcurrentTasksInvalidExceptionMessage = يجب أن يكون الحد الأقصى للمهام المتزامنة >=1، ولكن تم الحصول عليه: {0} maximumConcurrentTasksLessThanMinimumExceptionMessage = لا يمكن أن يكون الحد الأقصى للمهام المتزامنة أقل من الحد الأدنى {0}، ولكن تم الحصول عليه: {1} taskDoesNotExistExceptionMessage = المهمة '{0}' غير موجودة. -'@ +cacheStorageNotFoundForRetrieveExceptionMessage = لم يتم العثور على مخزن ذاكرة التخزين المؤقت بالاسم '{0}' عند محاولة استرجاع العنصر المخزن مؤقتًا '{1}' +cacheStorageNotFoundForSetExceptionMessage = لم يتم العثور على مخزن ذاكرة التخزين المؤقت بالاسم '{0}' عند محاولة تعيين العنصر المخزن مؤقتًا '{1}' +cacheStorageNotFoundForExistsExceptionMessage = لم يتم العثور على مخزن ذاكرة التخزين المؤقت بالاسم '{0}' عند محاولة التحقق مما إذا كان العنصر المخزن مؤقتًا '{1}' موجودًا. +cacheStorageNotFoundForRemoveExceptionMessage = لم يتم العثور على مخزن ذاكرة التخزين المؤقت بالاسم '{0}' عند محاولة إزالة العنصر المخزن مؤقتًا '{1}' +cacheStorageNotFoundForClearExceptionMessage = لم يتم العثور على مخزن ذاكرة التخزين المؤقت بالاسم '{0}' عند محاولة مسح الذاكرة المؤقتة. +cacheStorageAlreadyExistsExceptionMessage = مخزن ذاكرة التخزين المؤقت بالاسم '{0}' موجود بالفعل. +pathToIconForGuiDoesNotExistExceptionMessage = المسار إلى الأيقونة للواجهة الرسومية غير موجود: {0} +invalidHostnameSuppliedExceptionMessage = اسم المضيف المقدم غير صالح: {0} +endpointAlreadyDefinedExceptionMessage = تم تعريف نقطة نهاية باسم '{0}' بالفعل. +certificateExpiredExceptionMessage = الشهادة '{0}' منتهية الصلاحية: {1} +endpointNotDefinedForRedirectingExceptionMessage = لم يتم تعريف نقطة نهاية باسم '{0}' لإعادة التوجيه. +'@ \ No newline at end of file diff --git a/src/Locales/de/Pode.psd1 b/src/Locales/de/Pode.psd1 index 553f86447..9432c4d0a 100644 --- a/src/Locales/de/Pode.psd1 +++ b/src/Locales/de/Pode.psd1 @@ -212,6 +212,15 @@ taskAlreadyDefinedExceptionMessage = [Aufgabe] {0}: Aufgabe bereits definiert. maximumConcurrentTasksInvalidExceptionMessage = Die maximale Anzahl gleichzeitiger Aufgaben muss >=1 sein, aber erhalten: {0} maximumConcurrentTasksLessThanMinimumExceptionMessage = Die maximale Anzahl gleichzeitiger Aufgaben darf nicht kleiner als das Minimum von {0} sein, aber erhalten: {1} taskDoesNotExistExceptionMessage = Aufgabe '{0}' existiert nicht. -'@ - - +cacheStorageNotFoundForRetrieveExceptionMessage = Der Cache-Speicher mit dem Namen '{0}' wurde nicht gefunden, als versucht wurde, das zwischengespeicherte Element '{1}' abzurufen. +cacheStorageNotFoundForSetExceptionMessage = Der Cache-Speicher mit dem Namen '{0}' wurde nicht gefunden, als versucht wurde, das zwischengespeicherte Element '{1}' zu setzen. +cacheStorageNotFoundForExistsExceptionMessage = Der Cache-Speicher mit dem Namen '{0}' wurde nicht gefunden, als versucht wurde zu überprüfen, ob das zwischengespeicherte Element '{1}' existiert. +cacheStorageNotFoundForRemoveExceptionMessage = Der Cache-Speicher mit dem Namen '{0}' wurde nicht gefunden, als versucht wurde, das zwischengespeicherte Element '{1}' zu entfernen. +cacheStorageNotFoundForClearExceptionMessage = Der Cache-Speicher mit dem Namen '{0}' wurde nicht gefunden, als versucht wurde, den Cache zu leeren. +cacheStorageAlreadyExistsExceptionMessage = Ein Cache-Speicher mit dem Namen '{0}' existiert bereits. +pathToIconForGuiDoesNotExistExceptionMessage = Der Pfad zum Symbol für die GUI existiert nicht: {0} +invalidHostnameSuppliedExceptionMessage = Der angegebene Hostname ist ungültig: {0} +endpointAlreadyDefinedExceptionMessage = Ein Endpunkt mit dem Namen '{0}' wurde bereits definiert. +certificateExpiredExceptionMessage = Das Zertifikat '{0}' ist abgelaufen: {1} +endpointNotDefinedForRedirectingExceptionMessage = Ein Endpunkt mit dem Namen '{0}' wurde nicht für die Weiterleitung definiert. +'@ \ No newline at end of file diff --git a/src/Locales/en/Pode.psd1 b/src/Locales/en/Pode.psd1 index 3b6924a07..be481da96 100644 --- a/src/Locales/en/Pode.psd1 +++ b/src/Locales/en/Pode.psd1 @@ -212,4 +212,15 @@ taskAlreadyDefinedExceptionMessage = [Task] {0}: Task already defined. maximumConcurrentTasksInvalidExceptionMessage = Maximum concurrent tasks must be >=1 but got: {0} maximumConcurrentTasksLessThanMinimumExceptionMessage = Maximum concurrent tasks cannot be less than the minimum of {0} but got: {1} taskDoesNotExistExceptionMessage = Task '{0}' does not exist. +cacheStorageNotFoundForRetrieveExceptionMessage = Cache storage with name '{0}' not found when attempting to retrieve cached item '{1}' +cacheStorageNotFoundForSetExceptionMessage = Cache storage with name '{0}' not found when attempting to set cached item '{1}' +cacheStorageNotFoundForExistsExceptionMessage = Cache storage with name '{0}' not found when attempting to check if cached item '{1}' exists. +cacheStorageNotFoundForRemoveExceptionMessage = Cache storage with name '{0}' not found when attempting to remove cached item '{1}' +cacheStorageNotFoundForClearExceptionMessage = Cache storage with name '{0}' not found when attempting to clear the cache. +cacheStorageAlreadyExistsExceptionMessage = Cache Storage with name '{0}' already exists. +pathToIconForGuiDoesNotExistExceptionMessage = Path to the icon for GUI does not exist: {0} +invalidHostnameSuppliedExceptionMessage = Invalid hostname supplied: {0} +endpointAlreadyDefinedExceptionMessage = An endpoint named '{0}' has already been defined. +certificateExpiredExceptionMessage = The certificate '{0}' has expired: {1} +endpointNotDefinedForRedirectingExceptionMessage = An endpoint named '{0}' has not been defined for redirecting. '@ \ No newline at end of file diff --git a/src/Locales/es/Pode.psd1 b/src/Locales/es/Pode.psd1 index 1569a419c..55c93fcb9 100644 --- a/src/Locales/es/Pode.psd1 +++ b/src/Locales/es/Pode.psd1 @@ -212,4 +212,15 @@ taskAlreadyDefinedExceptionMessage = [Tarea] {0}: Tarea ya definida. maximumConcurrentTasksInvalidExceptionMessage = El número máximo de tareas concurrentes debe ser >=1, pero se obtuvo: {0} maximumConcurrentTasksLessThanMinimumExceptionMessage = El número máximo de tareas concurrentes no puede ser menor que el mínimo de {0}, pero se obtuvo: {1} taskDoesNotExistExceptionMessage = La tarea '{0}' no existe. -'@ +cacheStorageNotFoundForRetrieveExceptionMessage = No se encontró el almacenamiento en caché con el nombre '{0}' al intentar recuperar el elemento en caché '{1}'. +cacheStorageNotFoundForSetExceptionMessage = No se encontró el almacenamiento en caché con el nombre '{0}' al intentar establecer el elemento en caché '{1}'. +cacheStorageNotFoundForExistsExceptionMessage = No se encontró el almacenamiento en caché con el nombre '{0}' al intentar comprobar si el elemento en caché '{1}' existe. +cacheStorageNotFoundForRemoveExceptionMessage = No se encontró el almacenamiento en caché con el nombre '{0}' al intentar eliminar el elemento en caché '{1}'. +cacheStorageNotFoundForClearExceptionMessage = No se encontró el almacenamiento en caché con el nombre '{0}' al intentar vaciar la caché. +cacheStorageAlreadyExistsExceptionMessage = Ya existe un almacenamiento en caché con el nombre '{0}'. +pathToIconForGuiDoesNotExistExceptionMessage = La ruta del icono para la GUI no existe: {0} +invalidHostnameSuppliedExceptionMessage = Nombre de host no válido proporcionado: {0} +endpointAlreadyDefinedExceptionMessage = Ya se ha definido un punto de conexión llamado '{0}'. +certificateExpiredExceptionMessage = El certificado '{0}' ha expirado: {1} +endpointNotDefinedForRedirectingExceptionMessage = No se ha definido un punto de conexión llamado '{0}' para la redirección. +'@ \ No newline at end of file diff --git a/src/Locales/fr/Pode.psd1 b/src/Locales/fr/Pode.psd1 index 7dd7e8a5e..543933edb 100644 --- a/src/Locales/fr/Pode.psd1 +++ b/src/Locales/fr/Pode.psd1 @@ -212,4 +212,15 @@ taskAlreadyDefinedExceptionMessage = [Tâche] {0} : Tâche déjà définie. maximumConcurrentTasksInvalidExceptionMessage = Le nombre maximum de tâches simultanées doit être >=1, mais a obtenu : {0} maximumConcurrentTasksLessThanMinimumExceptionMessage = Le nombre maximum de tâches simultanées ne peut pas être inférieur au minimum de {0}, mais a obtenu : {1} taskDoesNotExistExceptionMessage = La tâche '{0}' n'existe pas. -'@ +cacheStorageNotFoundForRetrieveExceptionMessage = Le stockage de cache nommé '{0}' est introuvable lors de la tentative de récupération de l'élément mis en cache '{1}'. +cacheStorageNotFoundForSetExceptionMessage = Le stockage de cache nommé '{0}' est introuvable lors de la tentative de définition de l'élément mis en cache '{1}'. +cacheStorageNotFoundForExistsExceptionMessage = Le stockage de cache nommé '{0}' est introuvable lors de la tentative de vérification de l'existence de l'élément mis en cache '{1}'. +cacheStorageNotFoundForRemoveExceptionMessage = Le stockage de cache nommé '{0}' est introuvable lors de la tentative de suppression de l'élément mis en cache '{1}'. +cacheStorageNotFoundForClearExceptionMessage = Le stockage de cache nommé '{0}' est introuvable lors de la tentative de vider le cache. +cacheStorageAlreadyExistsExceptionMessage = Un stockage de cache nommé '{0}' existe déjà. +pathToIconForGuiDoesNotExistExceptionMessage = Le chemin vers l'icône pour l'interface graphique n'existe pas: {0} +invalidHostnameSuppliedExceptionMessage = Nom d'hôte fourni invalide: {0} +endpointAlreadyDefinedExceptionMessage = Un point de terminaison nommé '{0}' a déjà été défini. +certificateExpiredExceptionMessage = Le certificat '{0}' a expiré: {1} +endpointNotDefinedForRedirectingExceptionMessage = Un point de terminaison nommé '{0}' n'a pas été défini pour la redirection. +'@ \ No newline at end of file diff --git a/src/Locales/it/Pode.psd1 b/src/Locales/it/Pode.psd1 index ea28f0900..dde46a290 100644 --- a/src/Locales/it/Pode.psd1 +++ b/src/Locales/it/Pode.psd1 @@ -212,4 +212,15 @@ taskAlreadyDefinedExceptionMessage = [Attività] {0}: Attività già definita. maximumConcurrentTasksInvalidExceptionMessage = Il numero massimo di attività simultanee deve essere >=1, ma è stato ottenuto: {0} maximumConcurrentTasksLessThanMinimumExceptionMessage = Il numero massimo di attività simultanee non può essere inferiore al minimo di {0}, ma è stato ottenuto: {1} taskDoesNotExistExceptionMessage = L'attività '{0}' non esiste. -'@ +cacheStorageNotFoundForRetrieveExceptionMessage = Memoria cache con nome '{0}' non trovata durante il tentativo di recuperare l'elemento memorizzato nella cache '{1}'. +cacheStorageNotFoundForSetExceptionMessage = Memoria cache con nome '{0}' non trovata durante il tentativo di impostare l'elemento memorizzato nella cache '{1}'. +cacheStorageNotFoundForExistsExceptionMessage = Memoria cache con nome '{0}' non trovata durante il tentativo di verificare se l'elemento memorizzato nella cache '{1}' esiste. +cacheStorageNotFoundForRemoveExceptionMessage = Memoria cache con nome '{0}' non trovata durante il tentativo di rimuovere l'elemento memorizzato nella cache '{1}'. +cacheStorageNotFoundForClearExceptionMessage = Memoria cache con nome '{0}' non trovata durante il tentativo di cancellare la cache. +cacheStorageAlreadyExistsExceptionMessage = Memoria cache con nome '{0}' esiste già. +pathToIconForGuiDoesNotExistExceptionMessage = Il percorso dell'icona per la GUI non esiste: {0} +invalidHostnameSuppliedExceptionMessage = Nome host fornito non valido: {0} +endpointAlreadyDefinedExceptionMessage = Un endpoint denominato '{0}' è già stato definito. +certificateExpiredExceptionMessage = Il certificato '{0}' è scaduto: {1} +endpointNotDefinedForRedirectingExceptionMessage = Non è stato definito un endpoint denominato '{0}' per il reindirizzamento. +'@ \ No newline at end of file diff --git a/src/Locales/ja/Pode.psd1 b/src/Locales/ja/Pode.psd1 index ca3ca814d..394da2111 100644 --- a/src/Locales/ja/Pode.psd1 +++ b/src/Locales/ja/Pode.psd1 @@ -212,4 +212,15 @@ taskAlreadyDefinedExceptionMessage = [タスク] {0}: タスクは既に定義 maximumConcurrentTasksInvalidExceptionMessage = 最大同時タスク数は >=1 でなければなりませんが、取得した値は: {0} maximumConcurrentTasksLessThanMinimumExceptionMessage = 最大同時タスク数は最小値 {0} より少なくてはいけませんが、取得した値は: {1} taskDoesNotExistExceptionMessage = タスク '{0}' は存在しません。 -'@ +cacheStorageNotFoundForRetrieveExceptionMessage = キャッシュされたアイテム '{1}' を取得しようとしたときに、名前 '{0}' のキャッシュストレージが見つかりません。 +cacheStorageNotFoundForSetExceptionMessage = キャッシュされたアイテム '{1}' を設定しようとしたときに、名前 '{0}' のキャッシュストレージが見つかりません。 +cacheStorageNotFoundForExistsExceptionMessage = キャッシュされたアイテム '{1}' が存在するかどうかを確認しようとしたときに、名前 '{0}' のキャッシュストレージが見つかりません。 +cacheStorageNotFoundForRemoveExceptionMessage = キャッシュされたアイテム '{1}' を削除しようとしたときに、名前 '{0}' のキャッシュストレージが見つかりません。 +cacheStorageNotFoundForClearExceptionMessage = キャッシュをクリアしようとしたときに、名前 '{0}' のキャッシュストレージが見つかりません。 +cacheStorageAlreadyExistsExceptionMessage = 名前 '{0}' のキャッシュストレージは既に存在します。 +pathToIconForGuiDoesNotExistExceptionMessage = GUI用アイコンのパスが存在しません: {0} +invalidHostnameSuppliedExceptionMessage = 無効なホスト名が指定されました: {0} +endpointAlreadyDefinedExceptionMessage = 名前 '{0}' のエンドポイントは既に定義されています。 +certificateExpiredExceptionMessage = 証明書 '{0}' の有効期限が切れています: {1} +endpointNotDefinedForRedirectingExceptionMessage = リダイレクトのために名前 '{0}' のエンドポイントが定義されていません。 +'@ \ No newline at end of file diff --git a/src/Locales/kr/Pode.psd1 b/src/Locales/kr/Pode.psd1 index b97c3b476..65d83d1f6 100644 --- a/src/Locales/kr/Pode.psd1 +++ b/src/Locales/kr/Pode.psd1 @@ -212,4 +212,15 @@ taskAlreadyDefinedExceptionMessage = [작업] {0}: 작업이 이미 정의되었 maximumConcurrentTasksInvalidExceptionMessage = 최대 동시 작업 수는 >=1이어야 하지만 받은 값: {0} maximumConcurrentTasksLessThanMinimumExceptionMessage = 최대 동시 작업 수는 최소값 {0}보다 작을 수 없지만 받은 값: {1} taskDoesNotExistExceptionMessage = 작업 '{0}'이(가) 존재하지 않습니다. -'@ +cacheStorageNotFoundForRetrieveExceptionMessage = 캐시된 항목 '{1}'을(를) 검색하려고 할 때 이름이 '{0}'인 캐시 스토리지를 찾을 수 없습니다. +cacheStorageNotFoundForSetExceptionMessage = 캐시된 항목 '{1}'을(를) 설정하려고 할 때 이름이 '{0}'인 캐시 스토리지를 찾을 수 없습니다. +cacheStorageNotFoundForExistsExceptionMessage = 캐시된 항목 '{1}'이(가) 존재하는지 확인하려고 할 때 이름이 '{0}'인 캐시 스토리지를 찾을 수 없습니다. +cacheStorageNotFoundForRemoveExceptionMessage = 캐시된 항목 '{1}'을(를) 제거하려고 할 때 이름이 '{0}'인 캐시 스토리지를 찾을 수 없습니다. +cacheStorageNotFoundForClearExceptionMessage = 캐시를 지우려고 할 때 이름이 '{0}'인 캐시 스토리지를 찾을 수 없습니다. +cacheStorageAlreadyExistsExceptionMessage = 이름이 '{0}'인 캐시 스토리지가 이미 존재합니다. +pathToIconForGuiDoesNotExistExceptionMessage = GUI용 아이콘의 경로가 존재하지 않습니다: {0} +invalidHostnameSuppliedExceptionMessage = 제공된 호스트 이름이 잘못되었습니다: {0} +endpointAlreadyDefinedExceptionMessage = 이름이 '{0}'인 엔드포인트가 이미 정의되어 있습니다. +certificateExpiredExceptionMessage = 인증서 '{0}'이(가) 만료되었습니다: {1} +endpointNotDefinedForRedirectingExceptionMessage = 리디렉션을 위해 이름이 '{0}'인 엔드포인트가 정의되지 않았습니다. +'@ \ No newline at end of file diff --git a/src/Locales/pl/Pode.psd1 b/src/Locales/pl/Pode.psd1 index ebd68c5f2..5d3590ab8 100644 --- a/src/Locales/pl/Pode.psd1 +++ b/src/Locales/pl/Pode.psd1 @@ -212,4 +212,15 @@ taskAlreadyDefinedExceptionMessage = [Zadanie] {0}: Zadanie już zdefiniowane. maximumConcurrentTasksInvalidExceptionMessage = Maksymalna liczba jednoczesnych zadań musi wynosić >=1, ale otrzymano: {0} maximumConcurrentTasksLessThanMinimumExceptionMessage = Maksymalna liczba jednoczesnych zadań nie może być mniejsza niż minimum {0}, ale otrzymano: {1} taskDoesNotExistExceptionMessage = Zadanie '{0}' nie istnieje. +cacheStorageNotFoundForRetrieveExceptionMessage = Nie znaleziono magazynu pamięci podręcznej o nazwie '{0}' podczas próby pobrania elementu z pamięci podręcznej '{1}'. +cacheStorageNotFoundForSetExceptionMessage = Nie znaleziono magazynu pamięci podręcznej o nazwie '{0}' podczas próby ustawienia elementu w pamięci podręcznej '{1}'. +cacheStorageNotFoundForExistsExceptionMessage = Nie znaleziono magazynu pamięci podręcznej o nazwie '{0}' podczas próby sprawdzenia, czy element w pamięci podręcznej '{1}' istnieje. +cacheStorageNotFoundForRemoveExceptionMessage = Nie znaleziono magazynu pamięci podręcznej o nazwie '{0}' podczas próby usunięcia elementu z pamięci podręcznej '{1}'. +cacheStorageNotFoundForClearExceptionMessage = Nie znaleziono magazynu pamięci podręcznej o nazwie '{0}' podczas próby wyczyszczenia pamięci podręcznej. +cacheStorageAlreadyExistsExceptionMessage = Magazyn pamięci podręcznej o nazwie '{0}' już istnieje. +pathToIconForGuiDoesNotExistExceptionMessage = Ścieżka do ikony dla GUI nie istnieje: {0} +invalidHostnameSuppliedExceptionMessage = Podano nieprawidłową nazwę hosta: {0} +endpointAlreadyDefinedExceptionMessage = Punkt końcowy o nazwie '{0}' został już zdefiniowany. +certificateExpiredExceptionMessage = Certyfikat '{0}' wygasł: {1} +endpointNotDefinedForRedirectingExceptionMessage = Nie zdefiniowano punktu końcowego o nazwie '{0}' do przekierowania. '@ diff --git a/src/Locales/pt/Pode.psd1 b/src/Locales/pt/Pode.psd1 index 6e3852ce3..f781c1db9 100644 --- a/src/Locales/pt/Pode.psd1 +++ b/src/Locales/pt/Pode.psd1 @@ -212,4 +212,15 @@ taskAlreadyDefinedExceptionMessage = [Tarefa] {0}: Tarefa já definida. maximumConcurrentTasksInvalidExceptionMessage = O número máximo de tarefas concorrentes deve ser >=1, mas foi obtido: {0} maximumConcurrentTasksLessThanMinimumExceptionMessage = O número máximo de tarefas concorrentes não pode ser menor que o mínimo de {0}, mas foi obtido: {1} taskDoesNotExistExceptionMessage = A tarefa '{0}' não existe. -'@ +cacheStorageNotFoundForRetrieveExceptionMessage = Armazenamento em cache com o nome '{0}' não encontrado ao tentar recuperar o item em cache '{1}'. +cacheStorageNotFoundForSetExceptionMessage = Armazenamento em cache com o nome '{0}' não encontrado ao tentar definir o item em cache '{1}'. +cacheStorageNotFoundForExistsExceptionMessage = Armazenamento em cache com o nome '{0}' não encontrado ao tentar verificar se o item em cache '{1}' existe. +cacheStorageNotFoundForRemoveExceptionMessage = Armazenamento em cache com o nome '{0}' não encontrado ao tentar remover o item em cache '{1}'. +cacheStorageNotFoundForClearExceptionMessage = Armazenamento em cache com o nome '{0}' não encontrado ao tentar limpar o cache. +cacheStorageAlreadyExistsExceptionMessage = Armazenamento em cache com o nome '{0}' já existe. +pathToIconForGuiDoesNotExistExceptionMessage = O caminho para o ícone da interface gráfica não existe: {0} +invalidHostnameSuppliedExceptionMessage = Nome de host fornecido inválido: {0} +endpointAlreadyDefinedExceptionMessage = Um ponto de extremidade chamado '{0}' já foi definido. +certificateExpiredExceptionMessage = O certificado '{0}' expirou: {1} +endpointNotDefinedForRedirectingExceptionMessage = Não foi definido um ponto de extremidade chamado '{0}' para redirecionamento. +'@ \ No newline at end of file diff --git a/src/Locales/zn/Pode.psd1 b/src/Locales/zn/Pode.psd1 index 31a057dcd..fb65c72fe 100644 --- a/src/Locales/zn/Pode.psd1 +++ b/src/Locales/zn/Pode.psd1 @@ -212,4 +212,15 @@ taskAlreadyDefinedExceptionMessage = [任务] {0}: 任务已定义。 maximumConcurrentTasksInvalidExceptionMessage = 最大并发任务数必须 >=1,但获得: {0} maximumConcurrentTasksLessThanMinimumExceptionMessage = 最大并发任务数不能小于最小值 {0},但获得: {1} taskDoesNotExistExceptionMessage = 任务 '{0}' 不存在。 -'@ +cacheStorageNotFoundForRetrieveExceptionMessage = 尝试检索缓存项 '{1}' 时,找不到名为 '{0}' 的缓存存储。 +cacheStorageNotFoundForSetExceptionMessage = 尝试设置缓存项 '{1}' 时,找不到名为 '{0}' 的缓存存储。 +cacheStorageNotFoundForExistsExceptionMessage = 尝试检查缓存项 '{1}' 是否存在时,找不到名为 '{0}' 的缓存存储。 +cacheStorageNotFoundForRemoveExceptionMessage = 尝试删除缓存项 '{1}' 时,找不到名为 '{0}' 的缓存存储。 +cacheStorageNotFoundForClearExceptionMessage = 尝试清除缓存时,找不到名为 '{0}' 的缓存存储。 +cacheStorageAlreadyExistsExceptionMessage = 名为 '{0}' 的缓存存储已存在。 +pathToIconForGuiDoesNotExistExceptionMessage = GUI 图标的路径不存在: {0} +invalidHostnameSuppliedExceptionMessage = 提供的主机名无效: {0} +endpointAlreadyDefinedExceptionMessage = 名为 '{0}' 的端点已定义。 +certificateExpiredExceptionMessage = 证书 '{0}' 已过期: {1} +endpointNotDefinedForRedirectingExceptionMessage = 未定义用于重定向的名为 '{0}' 的端点。 +'@ \ No newline at end of file diff --git a/src/Pode.psm1 b/src/Pode.psm1 index 7b19597a3..b5dd14e84 100644 --- a/src/Pode.psm1 +++ b/src/Pode.psm1 @@ -49,7 +49,7 @@ if ($null -eq $tmpPodeLocale) { try { # Create the global msgTable read-only variable - New-Variable -Name 'PodeLocale' -Value $tmpPodeLocale -Scope Global -Option ReadOnly -Force + New-Variable -Name 'PodeLocale' -Value $tmpPodeLocale -Scope script -Option ReadOnly -Force -Description "Localization HashTable" # load assemblies Add-Type -AssemblyName System.Web -ErrorAction Stop diff --git a/src/Public/Caching.ps1 b/src/Public/Caching.ps1 index 30fff5c41..acddbfde1 100644 --- a/src/Public/Caching.ps1 +++ b/src/Public/Caching.ps1 @@ -57,7 +57,8 @@ function Get-PodeCache { } # storage not found! - throw "Cache storage with name '$($Storage)' not found when attempting to retrieve cached item '$($Key)'" + # Cache storage with name not found when attempting to retrieve cached item + throw ($PodeLocale.cacheStorageNotFoundForRetrieveExceptionMessage -f $Storage, $Key) } <# @@ -139,7 +140,8 @@ function Set-PodeCache { # storage not found! else { - throw "Cache storage with name '$($Storage)' not found when attempting to set cached item '$($Key)'" + # Cache storage with name not found when attempting to set cached item + throw ($PodeLocale.cacheStorageNotFoundForSetExceptionMessage -f $Storage, $Key) } } @@ -190,7 +192,8 @@ function Test-PodeCache { } # storage not found! - throw "Cache storage with name '$($Storage)' not found when attempting to check if cached item '$($Key)' exists" + # Cache storage with name not found when attempting to check if cached item exists + throw ($PodeLocale.cacheStorageNotFoundForExistsExceptionMessage -f $Storage, $Key) } <# @@ -241,7 +244,8 @@ function Remove-PodeCache { # storage not found! else { - throw "Cache storage with name '$($Storage)' not found when attempting to remove cached item '$($Key)'" + # Cache storage with name not found when attempting to remove cached item + throw ($PodeLocale.cacheStorageNotFoundForRemoveExceptionMessage -f $Storage, $Key) } } @@ -286,7 +290,8 @@ function Clear-PodeCache { # storage not found! else { - throw "Cache storage with name '$($Storage)' not found when attempting to clear cached" + # Cache storage with name not found when attempting to clear the cache + throw ($PodeLocale.cacheStorageNotFoundForClearExceptionMessage -f $Storage) } } @@ -355,7 +360,8 @@ function Add-PodeCacheStorage { # test if storage already exists if (Test-PodeCacheStorage -Name $Name) { - throw "Cache Storage with name '$($Name) already exists" + # Cache Storage with name already exists + throw ($PodeLocale.cacheStorageAlreadyExistsExceptionMessage -f $Name) } # add cache storage diff --git a/src/Public/Core.ps1 b/src/Public/Core.ps1 index c09fb3c43..3d7f274c6 100644 --- a/src/Public/Core.ps1 +++ b/src/Public/Core.ps1 @@ -658,7 +658,8 @@ function Show-PodeGui { if (![string]::IsNullOrWhiteSpace($Icon)) { $PodeContext.Server.Gui.Icon = Get-PodeRelativePath -Path $Icon -JoinRoot -Resolve if (!(Test-Path $PodeContext.Server.Gui.Icon)) { - throw "Path to icon for GUI does not exist: $($PodeContext.Server.Gui.Icon)" + # Path to icon for GUI does not exist + throw ($PodeLocale.pathToIconForGuiDoesNotExistExceptionMessage -f $PodeContext.Server.Gui.Icon) } } @@ -931,7 +932,8 @@ function Add-PodeEndpoint { # parse the endpoint for host/port info if (![string]::IsNullOrWhiteSpace($Hostname) -and !(Test-PodeHostname -Hostname $Hostname)) { - throw "Invalid hostname supplied: $($Hostname)" + # Invalid hostname supplied + throw ($PodeLocale.invalidHostnameSuppliedExceptionMessage -f $Hostname) } if ((Test-PodeHostname -Hostname $Address) -and ($Address -inotin @('localhost', 'all'))) { @@ -951,7 +953,8 @@ function Add-PodeEndpoint { } if ($PodeContext.Server.Endpoints.ContainsKey($Name)) { - throw "An endpoint with the name '$($Name)' has already been defined" + # An endpoint named has already been defined + throw ($PodeLocale.endpointAlreadyDefinedExceptionMessage -f $Name) } # protocol must be https for client certs, or hosted behind a proxy like iis @@ -1085,7 +1088,8 @@ function Add-PodeEndpoint { # fail if the cert is expired if ($obj.Certificate.Raw.NotAfter -lt [datetime]::Now) { - throw "The certificate '$($obj.Certificate.Raw.Subject)' has expired: $($obj.Certificate.Raw.NotAfter)" + # The certificate has expired + throw ($PodeLocale.certificateExpiredExceptionMessage -f $obj.Certificate.Raw.Subject, $obj.Certificate.Raw.NotAfter) } } @@ -1111,7 +1115,8 @@ function Add-PodeEndpoint { # ensure the name exists if (Test-PodeIsEmpty $redir_endpoint) { - throw "An endpoint with the name '$($RedirectTo)' has not been defined for redirecting" + # An endpoint named has not been defined for redirecting + throw ($PodeLocale.endpointNotDefinedForRedirectingExceptionMessage -f $RedirectTo) } # build the redirect route @@ -1319,7 +1324,8 @@ function Set-PodeDefaultFolder { $PodeContext.Server.DefaultFolders[$Type] = $Path } else { - throw "Folder $Path doesn't exist" + # Path does not exist + throw ($PodeLocale.pathNotExistExceptionMessage -f $Path) } } diff --git a/tests/unit/Localization.Tests.ps1 b/tests/unit/Localization.Tests.ps1 index 5c178e8c4..0c44f77b1 100644 --- a/tests/unit/Localization.Tests.ps1 +++ b/tests/unit/Localization.Tests.ps1 @@ -1,5 +1,5 @@ -# Save this script as Check-LocalizationKeys.Tests.ps1 [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidGlobalVars', '')] +[Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingInvokeExpression', '')] param() Describe 'Localization Check' { From 3eb155e0baf4d0097a08645496966a0f1f0cf13c Mon Sep 17 00:00:00 2001 From: mdaneri Date: Mon, 3 Jun 2024 20:23:05 -0700 Subject: [PATCH 13/67] additional messages --- src/Locales/ar/Pode.psd1 | 15 ++++++++++++++- src/Locales/de/Pode.psd1 | 15 ++++++++++++++- src/Locales/en/Pode.psd1 | 13 +++++++++++++ src/Locales/es/Pode.psd1 | 15 ++++++++++++++- src/Locales/fr/Pode.psd1 | 15 ++++++++++++++- src/Locales/it/Pode.psd1 | 15 ++++++++++++++- src/Locales/ja/Pode.psd1 | 15 ++++++++++++++- src/Locales/kr/Pode.psd1 | 15 ++++++++++++++- src/Locales/pl/Pode.psd1 | 15 ++++++++++++++- src/Locales/pt/Pode.psd1 | 15 ++++++++++++++- src/Locales/zn/Pode.psd1 | 15 ++++++++++++++- src/Public/FileWatchers.ps1 | 3 ++- src/Public/Handlers.ps1 | 3 ++- src/Public/Logging.ps1 | 12 ++++++++---- src/Public/Middleware.ps1 | 10 +++++++--- src/Public/Responses.ps1 | 12 ++++++++---- tests/unit/Middleware.Tests.ps1 | 2 +- 17 files changed, 181 insertions(+), 24 deletions(-) diff --git a/src/Locales/ar/Pode.psd1 b/src/Locales/ar/Pode.psd1 index 52c18f946..f6c69780f 100644 --- a/src/Locales/ar/Pode.psd1 +++ b/src/Locales/ar/Pode.psd1 @@ -223,4 +223,17 @@ invalidHostnameSuppliedExceptionMessage = اسم المضيف المقدم غي endpointAlreadyDefinedExceptionMessage = تم تعريف نقطة نهاية باسم '{0}' بالفعل. certificateExpiredExceptionMessage = الشهادة '{0}' منتهية الصلاحية: {1} endpointNotDefinedForRedirectingExceptionMessage = لم يتم تعريف نقطة نهاية باسم '{0}' لإعادة التوجيه. -'@ \ No newline at end of file +fileWatcherAlreadyDefinedExceptionMessage = تم تعريف مراقب الملفات باسم '{0}' بالفعل. +handlerAlreadyDefinedExceptionMessage = [{0}] {1}: تم تعريف المعالج بالفعل. +maxDaysInvalidExceptionMessage = يجب أن يكون MaxDays 0 أو أكبر، ولكن تم الحصول على: {0} +maxSizeInvalidExceptionMessage = يجب أن يكون MaxSize 0 أو أكبر، ولكن تم الحصول على: {0} +loggingMethodAlreadyDefinedExceptionMessage = تم تعريف طريقة التسجيل بالفعل: {0} +loggingMethodRequiresValidScriptBlockExceptionMessage = تتطلب طريقة الإخراج المقدمة لطريقة التسجيل '{0}' ScriptBlock صالح. +csrfCookieRequiresSecretExceptionMessage = عند استخدام ملفات تعريف الارتباط لـ CSRF، يكون السر مطلوبًا. يمكنك تقديم سر أو تعيين السر العالمي لملف تعريف الارتباط - (Set-PodeCookieSecret '' -Global) +bodyParserAlreadyDefinedForContentTypeExceptionMessage = تم تعريف محلل الجسم لنوع المحتوى {0} بالفعل. +middlewareAlreadyDefinedExceptionMessage = [Middleware] {0}: تم تعريف الوسيط بالفعل. +parameterNotSuppliedInRequestExceptionMessage = لم يتم توفير معلمة باسم '{0}' في الطلب أو لا توجد بيانات متاحة. +noDataForFileUploadedExceptionMessage = لا توجد بيانات للملف '{0}' الذي تم تحميله في الطلب. +viewsFolderNameAlreadyExistsExceptionMessage = اسم مجلد العرض موجود بالفعل: {0} +viewsPathDoesNotExistExceptionMessage = مسار العرض غير موجود: {0} +'@ diff --git a/src/Locales/de/Pode.psd1 b/src/Locales/de/Pode.psd1 index 9432c4d0a..35843ca23 100644 --- a/src/Locales/de/Pode.psd1 +++ b/src/Locales/de/Pode.psd1 @@ -223,4 +223,17 @@ invalidHostnameSuppliedExceptionMessage = Der angegebene Hostname ist ungültig: endpointAlreadyDefinedExceptionMessage = Ein Endpunkt mit dem Namen '{0}' wurde bereits definiert. certificateExpiredExceptionMessage = Das Zertifikat '{0}' ist abgelaufen: {1} endpointNotDefinedForRedirectingExceptionMessage = Ein Endpunkt mit dem Namen '{0}' wurde nicht für die Weiterleitung definiert. -'@ \ No newline at end of file +fileWatcherAlreadyDefinedExceptionMessage = Ein Dateiwächter mit dem Namen '{0}' wurde bereits definiert. +handlerAlreadyDefinedExceptionMessage = [{0}] {1}: Handler bereits definiert. +maxDaysInvalidExceptionMessage = MaxDays muss 0 oder größer sein, aber erhalten: {0} +maxSizeInvalidExceptionMessage = MaxSize muss 0 oder größer sein, aber erhalten: {0} +loggingMethodAlreadyDefinedExceptionMessage = Logging-Methode bereits definiert: {0} +loggingMethodRequiresValidScriptBlockExceptionMessage = Die angegebene Ausgabemethode für die Logging-Methode '{0}' erfordert einen gültigen ScriptBlock. +csrfCookieRequiresSecretExceptionMessage = Beim Verwenden von Cookies für CSRF ist ein Geheimnis erforderlich. Sie können ein Geheimnis angeben oder das globale Cookie-Geheimnis festlegen - (Set-PodeCookieSecret '' -Global) +bodyParserAlreadyDefinedForContentTypeExceptionMessage = Für den Inhaltstyp {0} ist bereits ein Body-Parser definiert. +middlewareAlreadyDefinedExceptionMessage = [Middleware] {0}: Middleware bereits definiert. +parameterNotSuppliedInRequestExceptionMessage = Ein Parameter namens '{0}' wurde in der Anfrage nicht angegeben oder es sind keine Daten verfügbar. +noDataForFileUploadedExceptionMessage = Keine Daten für die Datei '{0}' wurden in der Anfrage hochgeladen. +viewsFolderNameAlreadyExistsExceptionMessage = Der Name des Ansichtsordners existiert bereits: {0} +viewsPathDoesNotExistExceptionMessage = Der Ansichtsordnerpfad existiert nicht: {0} +'@ diff --git a/src/Locales/en/Pode.psd1 b/src/Locales/en/Pode.psd1 index be481da96..39cc9e07c 100644 --- a/src/Locales/en/Pode.psd1 +++ b/src/Locales/en/Pode.psd1 @@ -223,4 +223,17 @@ invalidHostnameSuppliedExceptionMessage = Invalid hostname supplied: {0} endpointAlreadyDefinedExceptionMessage = An endpoint named '{0}' has already been defined. certificateExpiredExceptionMessage = The certificate '{0}' has expired: {1} endpointNotDefinedForRedirectingExceptionMessage = An endpoint named '{0}' has not been defined for redirecting. +fileWatcherAlreadyDefinedExceptionMessage = A File Watcher named '{0}' has already been defined. +handlerAlreadyDefinedExceptionMessage = [{0}] {1}: Handler already defined. +maxDaysInvalidExceptionMessage = MaxDays must be 0 or greater, but got: {0} +maxSizeInvalidExceptionMessage = MaxSize must be 0 or greater, but got: {0} +loggingMethodAlreadyDefinedExceptionMessage = Logging method already defined: {0} +loggingMethodRequiresValidScriptBlockExceptionMessage = The supplied output Method for the '{0}' Logging method requires a valid ScriptBlock. +csrfCookieRequiresSecretExceptionMessage = When using cookies for CSRF, a Secret is required. You can either supply a Secret or set the Cookie global secret - (Set-PodeCookieSecret '' -Global) +bodyParserAlreadyDefinedForContentTypeExceptionMessage = A body-parser is already defined for the {0} content-type. +middlewareAlreadyDefinedExceptionMessage = [Middleware] {0}: Middleware already defined. +parameterNotSuppliedInRequestExceptionMessage = A parameter called '{0}' was not supplied in the request or has no data available. +noDataForFileUploadedExceptionMessage = No data for file '{0}' was uploaded in the request. +viewsFolderNameAlreadyExistsExceptionMessage = The Views folder name already exists: {0} +viewsPathDoesNotExistExceptionMessage = The Views path does not exist: {0} '@ \ No newline at end of file diff --git a/src/Locales/es/Pode.psd1 b/src/Locales/es/Pode.psd1 index 55c93fcb9..8750ddca8 100644 --- a/src/Locales/es/Pode.psd1 +++ b/src/Locales/es/Pode.psd1 @@ -223,4 +223,17 @@ invalidHostnameSuppliedExceptionMessage = Nombre de host no válido proporcionad endpointAlreadyDefinedExceptionMessage = Ya se ha definido un punto de conexión llamado '{0}'. certificateExpiredExceptionMessage = El certificado '{0}' ha expirado: {1} endpointNotDefinedForRedirectingExceptionMessage = No se ha definido un punto de conexión llamado '{0}' para la redirección. -'@ \ No newline at end of file +fileWatcherAlreadyDefinedExceptionMessage = Un Observador de Archivos llamado '{0}' ya ha sido definido. +handlerAlreadyDefinedExceptionMessage = [{0}] {1}: Manejador ya definido. +maxDaysInvalidExceptionMessage = MaxDays debe ser igual o mayor que 0, pero se obtuvo: {0} +maxSizeInvalidExceptionMessage = MaxSize debe ser igual o mayor que 0, pero se obtuvo: {0} +loggingMethodAlreadyDefinedExceptionMessage = Método de registro ya definido: {0} +loggingMethodRequiresValidScriptBlockExceptionMessage = El método de salida proporcionado para el método de registro '{0}' requiere un ScriptBlock válido. +csrfCookieRequiresSecretExceptionMessage = Al usar cookies para CSRF, se requiere un Secreto. Puedes proporcionar un Secreto o establecer el secreto global de la Cookie - (Set-PodeCookieSecret '' -Global) +bodyParserAlreadyDefinedForContentTypeExceptionMessage = Un analizador de cuerpo ya está definido para el tipo de contenido {0}. +middlewareAlreadyDefinedExceptionMessage = [Middleware] {0}: Middleware ya definido. +parameterNotSuppliedInRequestExceptionMessage = No se ha proporcionado un parámetro llamado '{0}' en la solicitud o no hay datos disponibles. +noDataForFileUploadedExceptionMessage = No se han subido datos para el archivo '{0}' en la solicitud. +viewsFolderNameAlreadyExistsExceptionMessage = El nombre de la carpeta Views ya existe: {0} +viewsPathDoesNotExistExceptionMessage = La ruta de las Views no existe: {0} +'@ diff --git a/src/Locales/fr/Pode.psd1 b/src/Locales/fr/Pode.psd1 index 543933edb..f57a8c05a 100644 --- a/src/Locales/fr/Pode.psd1 +++ b/src/Locales/fr/Pode.psd1 @@ -223,4 +223,17 @@ invalidHostnameSuppliedExceptionMessage = Nom d'hôte fourni invalide: {0} endpointAlreadyDefinedExceptionMessage = Un point de terminaison nommé '{0}' a déjà été défini. certificateExpiredExceptionMessage = Le certificat '{0}' a expiré: {1} endpointNotDefinedForRedirectingExceptionMessage = Un point de terminaison nommé '{0}' n'a pas été défini pour la redirection. -'@ \ No newline at end of file +fileWatcherAlreadyDefinedExceptionMessage = Un Observateur de fichiers nommé '{0}' a déjà été défini. +handlerAlreadyDefinedExceptionMessage = [{0}] {1}: Handler déjà défini. +maxDaysInvalidExceptionMessage = MaxDays doit être égal ou supérieur à 0, mais a obtenu: {0} +maxSizeInvalidExceptionMessage = MaxSize doit être égal ou supérieur à 0, mais a obtenu: {0} +loggingMethodAlreadyDefinedExceptionMessage = Méthode de journalisation déjà définie: {0} +loggingMethodRequiresValidScriptBlockExceptionMessage = La méthode de sortie fournie pour la méthode de journalisation '{0}' nécessite un ScriptBlock valide. +csrfCookieRequiresSecretExceptionMessage = Lors de l'utilisation de cookies pour CSRF, un Secret est requis. Vous pouvez soit fournir un Secret, soit définir le Secret global du Cookie - (Set-PodeCookieSecret '' -Global) +bodyParserAlreadyDefinedForContentTypeExceptionMessage = Un analyseur de corps est déjà défini pour le type de contenu {0}. +middlewareAlreadyDefinedExceptionMessage = [Middleware] {0}: Middleware déjà défini. +parameterNotSuppliedInRequestExceptionMessage = Un paramètre nommé '{0}' n'a pas été fourni dans la demande ou aucune donnée n'est disponible. +noDataForFileUploadedExceptionMessage = Aucune donnée pour le fichier '{0}' n'a été téléchargée dans la demande. +viewsFolderNameAlreadyExistsExceptionMessage = Le nom du dossier Views existe déjà: {0} +viewsPathDoesNotExistExceptionMessage = Le chemin des Views n'existe pas: {0} +'@ diff --git a/src/Locales/it/Pode.psd1 b/src/Locales/it/Pode.psd1 index dde46a290..492704735 100644 --- a/src/Locales/it/Pode.psd1 +++ b/src/Locales/it/Pode.psd1 @@ -223,4 +223,17 @@ invalidHostnameSuppliedExceptionMessage = Nome host fornito non valido: {0} endpointAlreadyDefinedExceptionMessage = Un endpoint denominato '{0}' è già stato definito. certificateExpiredExceptionMessage = Il certificato '{0}' è scaduto: {1} endpointNotDefinedForRedirectingExceptionMessage = Non è stato definito un endpoint denominato '{0}' per il reindirizzamento. -'@ \ No newline at end of file +fileWatcherAlreadyDefinedExceptionMessage = Un File Watcher con il nome '{0}' è già stato definito. +handlerAlreadyDefinedExceptionMessage = [{0}] {1}: Handler già definito. +maxDaysInvalidExceptionMessage = MaxDays deve essere 0 o superiore, ma è stato ottenuto: {0} +maxSizeInvalidExceptionMessage = MaxSize deve essere 0 o superiore, ma è stato ottenuto: {0} +loggingMethodAlreadyDefinedExceptionMessage = Metodo di registrazione già definito: {0} +loggingMethodRequiresValidScriptBlockExceptionMessage = Il metodo di output fornito per il metodo di registrazione '{0}' richiede un ScriptBlock valido. +csrfCookieRequiresSecretExceptionMessage = Quando si usano i cookie per CSRF, è necessario un Segreto. Puoi fornire un Segreto o impostare il segreto globale del Cookie - (Set-PodeCookieSecret '' -Global) +bodyParserAlreadyDefinedForContentTypeExceptionMessage = Un body-parser è già definito per il tipo di contenuto {0}. +middlewareAlreadyDefinedExceptionMessage = [Middleware] {0}: Middleware già definito. +parameterNotSuppliedInRequestExceptionMessage = Un parametro chiamato '{0}' non è stato fornito nella richiesta o non ci sono dati disponibili. +noDataForFileUploadedExceptionMessage = Nessun dato per il file '{0}' è stato caricato nella richiesta. +viewsFolderNameAlreadyExistsExceptionMessage = Il nome della cartella Views esiste già: {0} +viewsPathDoesNotExistExceptionMessage = Il percorso delle Views non esiste: {0} +'@ diff --git a/src/Locales/ja/Pode.psd1 b/src/Locales/ja/Pode.psd1 index 394da2111..67eb0b99a 100644 --- a/src/Locales/ja/Pode.psd1 +++ b/src/Locales/ja/Pode.psd1 @@ -223,4 +223,17 @@ invalidHostnameSuppliedExceptionMessage = 無効なホスト名が指定され endpointAlreadyDefinedExceptionMessage = 名前 '{0}' のエンドポイントは既に定義されています。 certificateExpiredExceptionMessage = 証明書 '{0}' の有効期限が切れています: {1} endpointNotDefinedForRedirectingExceptionMessage = リダイレクトのために名前 '{0}' のエンドポイントが定義されていません。 -'@ \ No newline at end of file +fileWatcherAlreadyDefinedExceptionMessage = 名前 '{0}' のファイルウォッチャーは既に定義されています。 +handlerAlreadyDefinedExceptionMessage = [{0}] {1}: ハンドラは既に定義されています。 +maxDaysInvalidExceptionMessage = MaxDaysは0以上でなければなりませんが、受け取った値は: {0} +maxSizeInvalidExceptionMessage = MaxSizeは0以上でなければなりませんが、受け取った値は: {0} +loggingMethodAlreadyDefinedExceptionMessage = ログ記録方法は既に定義されています: {0} +loggingMethodRequiresValidScriptBlockExceptionMessage = '{0}' ログ記録方法のために提供された出力方法は、有効なScriptBlockが必要です。 +csrfCookieRequiresSecretExceptionMessage = CSRFのためにクッキーを使用する場合、秘密が必要です。秘密を提供するか、クッキーのグローバル秘密を設定してください - (Set-PodeCookieSecret '' -Global) +bodyParserAlreadyDefinedForContentTypeExceptionMessage = {0} コンテンツタイプ用のボディパーサーは既に定義されています。 +middlewareAlreadyDefinedExceptionMessage = [Middleware] {0}: ミドルウェアは既に定義されています。 +parameterNotSuppliedInRequestExceptionMessage = リクエストに '{0}' という名前のパラメータが提供されていないか、データがありません。 +noDataForFileUploadedExceptionMessage = リクエストでアップロードされたファイル '{0}' のデータがありません。 +viewsFolderNameAlreadyExistsExceptionMessage = ビューのフォルダ名は既に存在します: {0} +viewsPathDoesNotExistExceptionMessage = ビューのパスが存在しません: {0} +'@ diff --git a/src/Locales/kr/Pode.psd1 b/src/Locales/kr/Pode.psd1 index 65d83d1f6..8061338e5 100644 --- a/src/Locales/kr/Pode.psd1 +++ b/src/Locales/kr/Pode.psd1 @@ -223,4 +223,17 @@ invalidHostnameSuppliedExceptionMessage = 제공된 호스트 이름이 잘못 endpointAlreadyDefinedExceptionMessage = 이름이 '{0}'인 엔드포인트가 이미 정의되어 있습니다. certificateExpiredExceptionMessage = 인증서 '{0}'이(가) 만료되었습니다: {1} endpointNotDefinedForRedirectingExceptionMessage = 리디렉션을 위해 이름이 '{0}'인 엔드포인트가 정의되지 않았습니다. -'@ \ No newline at end of file +fileWatcherAlreadyDefinedExceptionMessage = '{0}'라는 이름의 파일 감시자가 이미 정의되었습니다. +handlerAlreadyDefinedExceptionMessage = [{0}] {1}: 핸들러가 이미 정의되었습니다. +maxDaysInvalidExceptionMessage = MaxDays는 0 이상이어야 하지만, 받은 값: {0} +maxSizeInvalidExceptionMessage = MaxSize는 0 이상이어야 하지만, 받은 값: {0} +loggingMethodAlreadyDefinedExceptionMessage = 로깅 방법이 이미 정의되었습니다: {0} +loggingMethodRequiresValidScriptBlockExceptionMessage = '{0}' 로깅 방법에 대한 제공된 출력 방법은 유효한 ScriptBlock이 필요합니다. +csrfCookieRequiresSecretExceptionMessage = CSRF에 대해 쿠키를 사용할 때, 비밀이 필요합니다. 비밀을 제공하거나 전역 비밀 쿠키를 설정하십시오 - (Set-PodeCookieSecret '' -Global) +bodyParserAlreadyDefinedForContentTypeExceptionMessage = {0} 콘텐츠 유형에 대한 바디 파서가 이미 정의되어 있습니다. +middlewareAlreadyDefinedExceptionMessage = [Middleware] {0}: 미들웨어가 이미 정의되었습니다. +parameterNotSuppliedInRequestExceptionMessage = 요청에 '{0}'라는 이름의 매개변수가 제공되지 않았거나 데이터가 없습니다. +noDataForFileUploadedExceptionMessage = 요청에서 업로드된 파일 '{0}'에 대한 데이터가 없습니다. +viewsFolderNameAlreadyExistsExceptionMessage = 뷰 폴더 이름이 이미 존재합니다: {0} +viewsPathDoesNotExistExceptionMessage = 뷰 경로가 존재하지 않습니다: {0} +'@ diff --git a/src/Locales/pl/Pode.psd1 b/src/Locales/pl/Pode.psd1 index 5d3590ab8..ab898006d 100644 --- a/src/Locales/pl/Pode.psd1 +++ b/src/Locales/pl/Pode.psd1 @@ -223,4 +223,17 @@ invalidHostnameSuppliedExceptionMessage = Podano nieprawidłową nazwę hosta: { endpointAlreadyDefinedExceptionMessage = Punkt końcowy o nazwie '{0}' został już zdefiniowany. certificateExpiredExceptionMessage = Certyfikat '{0}' wygasł: {1} endpointNotDefinedForRedirectingExceptionMessage = Nie zdefiniowano punktu końcowego o nazwie '{0}' do przekierowania. -'@ +fileWatcherAlreadyDefinedExceptionMessage = Obserwator plików o nazwie '{0}' został już zdefiniowany. +handlerAlreadyDefinedExceptionMessage = [{0}] {1}: Handler już zdefiniowany. +maxDaysInvalidExceptionMessage = MaxDays musi wynosić 0 lub więcej, ale otrzymano: {0} +maxSizeInvalidExceptionMessage = MaxSize musi wynosić 0 lub więcej, ale otrzymano: {0} +loggingMethodAlreadyDefinedExceptionMessage = Metoda logowania już zdefiniowana: {0} +loggingMethodRequiresValidScriptBlockExceptionMessage = Dostarczona metoda wyjściowa dla metody logowania '{0}' wymaga poprawnego ScriptBlock. +csrfCookieRequiresSecretExceptionMessage = Podczas używania ciasteczek do CSRF, wymagany jest Sekret. Możesz dostarczyć Sekret lub ustawić globalny sekret dla ciasteczek - (Set-PodeCookieSecret '' -Global) +bodyParserAlreadyDefinedForContentTypeExceptionMessage = Parser treści dla typu zawartości {0} jest już zdefiniowany. +middlewareAlreadyDefinedExceptionMessage = [Middleware] {0}: Middleware już zdefiniowany. +parameterNotSuppliedInRequestExceptionMessage = Parametr o nazwie '{0}' nie został dostarczony w żądaniu lub nie ma dostępnych danych. +noDataForFileUploadedExceptionMessage = Brak danych dla pliku '{0}' przesłanego w żądaniu. +viewsFolderNameAlreadyExistsExceptionMessage = Nazwa folderu Widoków już istnieje: {0} +viewsPathDoesNotExistExceptionMessage = Ścieżka do Widoków nie istnieje: {0} +'@ \ No newline at end of file diff --git a/src/Locales/pt/Pode.psd1 b/src/Locales/pt/Pode.psd1 index f781c1db9..1337c0229 100644 --- a/src/Locales/pt/Pode.psd1 +++ b/src/Locales/pt/Pode.psd1 @@ -223,4 +223,17 @@ invalidHostnameSuppliedExceptionMessage = Nome de host fornecido inválido: {0} endpointAlreadyDefinedExceptionMessage = Um ponto de extremidade chamado '{0}' já foi definido. certificateExpiredExceptionMessage = O certificado '{0}' expirou: {1} endpointNotDefinedForRedirectingExceptionMessage = Não foi definido um ponto de extremidade chamado '{0}' para redirecionamento. -'@ \ No newline at end of file +fileWatcherAlreadyDefinedExceptionMessage = Um Observador de Arquivos chamado '{0}' já foi definido. +handlerAlreadyDefinedExceptionMessage = [{0}] {1}: Manipulador já definido. +maxDaysInvalidExceptionMessage = MaxDays deve ser igual ou maior que 0, mas foi obtido: {0} +maxSizeInvalidExceptionMessage = MaxSize deve ser igual ou maior que 0, mas foi obtido: {0} +loggingMethodAlreadyDefinedExceptionMessage = Método de registro já definido: {0} +loggingMethodRequiresValidScriptBlockExceptionMessage = O método de saída fornecido para o método de registro '{0}' requer um ScriptBlock válido. +csrfCookieRequiresSecretExceptionMessage = Ao usar cookies para CSRF, é necessário um Segredo. Você pode fornecer um Segredo ou definir o segredo global do Cookie - (Set-PodeCookieSecret '' -Global) +bodyParserAlreadyDefinedForContentTypeExceptionMessage = Um body-parser já está definido para o tipo de conteúdo {0}. +middlewareAlreadyDefinedExceptionMessage = [Middleware] {0}: Middleware já definido. +parameterNotSuppliedInRequestExceptionMessage = Um parâmetro chamado '{0}' não foi fornecido na solicitação ou não há dados disponíveis. +noDataForFileUploadedExceptionMessage = Nenhum dado para o arquivo '{0}' foi enviado na solicitação. +viewsFolderNameAlreadyExistsExceptionMessage = O nome da pasta Views já existe: {0} +viewsPathDoesNotExistExceptionMessage = O caminho das Views não existe: {0} +'@ diff --git a/src/Locales/zn/Pode.psd1 b/src/Locales/zn/Pode.psd1 index fb65c72fe..11f737bea 100644 --- a/src/Locales/zn/Pode.psd1 +++ b/src/Locales/zn/Pode.psd1 @@ -223,4 +223,17 @@ invalidHostnameSuppliedExceptionMessage = 提供的主机名无效: {0} endpointAlreadyDefinedExceptionMessage = 名为 '{0}' 的端点已定义。 certificateExpiredExceptionMessage = 证书 '{0}' 已过期: {1} endpointNotDefinedForRedirectingExceptionMessage = 未定义用于重定向的名为 '{0}' 的端点。 -'@ \ No newline at end of file +fileWatcherAlreadyDefinedExceptionMessage = 名为 '{0}' 的文件监视器已定义。 +handlerAlreadyDefinedExceptionMessage = [{0}] {1}: 处理程序已定义。 +maxDaysInvalidExceptionMessage = MaxDays 必须大于或等于 0,但得到: {0} +maxSizeInvalidExceptionMessage = MaxSize 必须大于或等于 0,但得到: {0} +loggingMethodAlreadyDefinedExceptionMessage = 日志记录方法已定义: {0} +loggingMethodRequiresValidScriptBlockExceptionMessage = 为 '{0}' 日志记录方法提供的输出方法需要有效的 ScriptBlock。 +csrfCookieRequiresSecretExceptionMessage = 使用 CSRF 的 Cookie 时,需要一个密钥。您可以提供一个密钥或设置全局 Cookie 密钥 - (Set-PodeCookieSecret '' -Global) +bodyParserAlreadyDefinedForContentTypeExceptionMessage = 已为 {0} 内容类型定义了一个 body-parser。 +middlewareAlreadyDefinedExceptionMessage = [Middleware] {0}: 中间件已定义。 +parameterNotSuppliedInRequestExceptionMessage = 请求中未提供名为 '{0}' 的参数或没有可用数据。 +noDataForFileUploadedExceptionMessage = 请求中未上传文件 '{0}' 的数据。 +viewsFolderNameAlreadyExistsExceptionMessage = 视图文件夹名称已存在: {0} +viewsPathDoesNotExistExceptionMessage = 视图路径不存在: {0} +'@ diff --git a/src/Public/FileWatchers.ps1 b/src/Public/FileWatchers.ps1 index 027fbfb6a..8b4a4aeca 100644 --- a/src/Public/FileWatchers.ps1 +++ b/src/Public/FileWatchers.ps1 @@ -143,7 +143,8 @@ function Add-PodeFileWatcher { # test if we have the file watcher already if (Test-PodeFileWatcher -Name $Name) { - throw "A File Watcher with the name '$($Name)' has already been defined" + # A File Watcher named has already been defined + throw ($PodeLocale.fileWatcherAlreadyDefinedExceptionMessage -f $Name) } # if we have a file path supplied, load that path as a scriptblock diff --git a/src/Public/Handlers.ps1 b/src/Public/Handlers.ps1 index eb418f2f0..59c31ba58 100644 --- a/src/Public/Handlers.ps1 +++ b/src/Public/Handlers.ps1 @@ -59,7 +59,8 @@ function Add-PodeHandler { # ensure handler isn't already set if ($PodeContext.Server.Handlers[$Type].ContainsKey($Name)) { - throw "[$($Type)] $($Name): Handler already defined" + # [Type] Name: Handler already defined + throw ($PodeLocale.handlerAlreadyDefinedExceptionMessage -f $Type, $Name) } # if we have a file path supplied, load that path as a scriptblock diff --git a/src/Public/Logging.ps1 b/src/Public/Logging.ps1 index 65f4cb739..9420fe53a 100644 --- a/src/Public/Logging.ps1 +++ b/src/Public/Logging.ps1 @@ -106,7 +106,8 @@ function New-PodeLoggingMethod { [Parameter(ParameterSetName = 'File')] [ValidateScript({ if ($_ -lt 0) { - throw "MaxDays must be 0 or greater, but got: $($_)s" + # MaxDays must be 0 or greater, but got + throw ($PodeLocale.maxDaysInvalidExceptionMessage -f $MaxDays) } return $true @@ -117,7 +118,8 @@ function New-PodeLoggingMethod { [Parameter(ParameterSetName = 'File')] [ValidateScript({ if ($_ -lt 0) { - throw "MaxSize must be 0 or greater, but got: $($_)s" + # MaxSize must be 0 or greater, but got + throw ($PodeLocale.maxSizeInvalidExceptionMessage -f $MaxSize) } return $true @@ -442,12 +444,14 @@ function Add-PodeLogger { # ensure the name doesn't already exist if ($PodeContext.Server.Logging.Types.ContainsKey($Name)) { - throw "Logging method already defined: $($Name)" + # Logging method already defined + throw ($PodeLocale.loggingMethodAlreadyDefinedExceptionMessage -f $Name) } # ensure the Method contains a scriptblock if (Test-PodeIsEmpty $Method.ScriptBlock) { - throw "The supplied output Method for the '$($Name)' Logging method requires a valid ScriptBlock" + # The supplied output Method for the Logging method requires a valid ScriptBlock + throw ($PodeLocale.loggingMethodRequiresValidScriptBlockExceptionMessage -f $Name) } # check for scoped vars diff --git a/src/Public/Middleware.ps1 b/src/Public/Middleware.ps1 index 6d36795ad..0cb9f3c30 100644 --- a/src/Public/Middleware.ps1 +++ b/src/Public/Middleware.ps1 @@ -250,7 +250,8 @@ function Initialize-PodeCsrf { $Secret = (Protect-PodeValue -Value $Secret -Default (Get-PodeCookieSecret -Global)) if (Test-PodeIsEmpty $Secret) { - throw "When using cookies for CSRF, a Secret is required. You can either supply a Secret, or set the Cookie global secret - (Set-PodeCookieSecret '' -Global)" + # When using cookies for CSRF, a Secret is required + throw $PodeLocale.csrfCookieRequiresSecretExceptionMessage } } @@ -361,7 +362,8 @@ function Add-PodeBodyParser { # if a parser for the type already exists, fail if ($PodeContext.Server.BodyParsers.ContainsKey($ContentType)) { - throw "There is already a body parser defined for the $($ContentType) content-type" + # A body-parser is already defined for the content-type + throw ($PodeLocale.bodyParserAlreadyDefinedForContentTypeExceptionMessage -f $ContentType) } # check for scoped vars @@ -460,7 +462,9 @@ function Add-PodeMiddleware { # ensure name doesn't already exist if (($PodeContext.Server.Middleware | Where-Object { $_.Name -ieq $Name } | Measure-Object).Count -gt 0) { - throw "[Middleware] $($Name): Middleware already defined" + # [Middleware] Name: Middleware already defined + throw ($PodeLocale.middlewareAlreadyDefinedExceptionMessage -f $Name) + } # if it's a script - call New-PodeMiddleware diff --git a/src/Public/Responses.ps1 b/src/Public/Responses.ps1 index 46b55ad1e..1a577b9ff 100644 --- a/src/Public/Responses.ps1 +++ b/src/Public/Responses.ps1 @@ -1297,7 +1297,8 @@ function Save-PodeRequestFile { # ensure the parameter name exists in data if (!(Test-PodeRequestFile -Key $Key)) { - throw "A parameter called '$($Key)' was not supplied in the request, or has no data available" + # A parameter called was not supplied in the request or has no data available + throw ($PodeLocale.parameterNotSuppliedInRequestExceptionMessage -f $Key) } # get the file names @@ -1313,7 +1314,8 @@ function Save-PodeRequestFile { # ensure the file data exists foreach ($file in $files) { if (!$WebEvent.Files.ContainsKey($file)) { - throw "No data for file '$($file)' was uploaded in the request" + # No data for file was uploaded in the request + throw ($PodeLocale.noDataForFileUploadedExceptionMessage -f $file) } } @@ -1639,13 +1641,15 @@ function Add-PodeViewFolder { # ensure the folder doesn't already exist if ($PodeContext.Server.Views.ContainsKey($Name)) { - throw "The Views folder name already exists: $($Name)" + # The Views folder name already exists + throw ($PodeLocale.viewsFolderNameAlreadyExistsExceptionMessage -f $Name) } # ensure the path exists at server root $Source = Get-PodeRelativePath -Path $Source -JoinRoot if (!(Test-PodePath -Path $Source -NoStatus)) { - throw "The Views path does not exist: $($Source)" + # The Views path does not exist + throw ($PodeLocale.viewsPathDoesNotExistExceptionMessage -f $Source) } # setup a temp drive for the path diff --git a/tests/unit/Middleware.Tests.ps1 b/tests/unit/Middleware.Tests.ps1 index ef168eefe..85e8cca5f 100644 --- a/tests/unit/Middleware.Tests.ps1 +++ b/tests/unit/Middleware.Tests.ps1 @@ -902,7 +902,7 @@ Describe 'Add-PodeBodyParser' { It 'Fails because a script is already defined' { $PodeContext = @{ 'Server' = @{ 'BodyParsers' = @{} } } { Add-PodeBodyParser -ContentType 'text/xml' -ScriptBlock {} } | Should -Not -Throw - { Add-PodeBodyParser -ContentType 'text/xml' -ScriptBlock {} } | Should -Throw -ExpectedMessage '*already a body parser*' + { Add-PodeBodyParser -ContentType 'text/xml' -ScriptBlock {} } | Should -Throw -ExpectedMessage ($PodeLocale.bodyParserAlreadyDefinedForContentTypeExceptionMessage -f 'text/xml') # A body-parser is already defined for the {0} content-type. } It 'Fails on an invalid content-type' { From 4dc45a5ce230fee3da29e05f8b8d57c6724a5ccb Mon Sep 17 00:00:00 2001 From: mdaneri Date: Tue, 4 Jun 2024 10:02:12 -0700 Subject: [PATCH 14/67] Improve Module import and added documentation regarding localization --- docs/Tutorials/Basics.md | 44 ++++++++++-- examples/FileBrowser/FileBrowser.ps1 | 19 ++--- src/Locales/{kr => ko}/Pode.psd1 | 0 src/Pode.psm1 | 104 +++++++++++++++------------ tests/unit/Middleware.Tests.ps1 | 1 + 5 files changed, 110 insertions(+), 58 deletions(-) rename src/Locales/{kr => ko}/Pode.psd1 (100%) diff --git a/docs/Tutorials/Basics.md b/docs/Tutorials/Basics.md index 482ba68ae..e35bf2217 100644 --- a/docs/Tutorials/Basics.md +++ b/docs/Tutorials/Basics.md @@ -1,15 +1,25 @@ # Basics +!!! Warning +It’s important to note that you can initiate only one server per PowerShell instance. This means that within a single PowerShell or pwsh session, you can only run one server at a time. If you need to run multiple servers, you’ll need to start additional PowerShell or pwsh instances. Each instance of PowerShell or pwsh can then run its own server. This is a fundamental aspect of how Pode operates. Please keep this in mind when designing your scripts and infrastructure. -!!! warning - You can only start one server in your script - -Although not required, it is recommended to import the Pode module using a maximum version, to avoid any breaking changes from new major versions: +While it’s not mandatory, we strongly recommend importing the Pode module with a specified maximum version. This practice helps to prevent potential issues arising from breaking changes introduced in new major versions: ```powershell Import-Module -Name Pode -MaximumVersion 2.99.99 ``` +To further enhance the robustness of your code, consider wrapping the import statement within a try/catch block. This way, if the module fails to load, your script won’t proceed, preventing possible errors or unexpected behavior: + +```powershell +try { + Import-Module -Name Pode -MaximumVersion 2.99.99 +} catch { + Write-Error "Failed to load the Pode module" + throw +} +``` + The script for your server should be set in the [`Start-PodeServer`](../../Functions/Core/Start-PodeServer) function, via the `-ScriptBlock` parameter. The following example will listen over HTTP on port 8080, and expose a simple HTML page of running processes at `http://localhost:8080/processes`: ```powershell @@ -72,3 +82,29 @@ PS> Start-PodeServer -FilePath './File.ps1' !!! tip Normally when you restart your Pode server any changes to the main scriptblock don't reflect. However, if you reference a file instead, then restarting the server will reload the scriptblock from that file - so any changes will reflect. + +## Localization + +Pode has built-in support for internationalization (i18n). + +You can enforce a specific localization when importing the Pode module by using the UICulture argument. This argument accepts a culture code, which specifies the language and regional settings to use. + +Here’s an example of how to enforce Korean localization: + +```powershell +Import-Module -Name Pode -ArgumentList @{ UICulture = 'ko-KR' } +``` + +In this example, 'ko-KR' is the culture code for Korean as used in South Korea. You can replace 'ko-KR' with the culture code for any other language or region. + +As an alternative to specifying the UICulture when importing the Pode module, you can also change the UICulture within the PowerShell environment itself. + +This can be done using the following command: + +```powershell +[System.Threading.Thread]::CurrentThread.CurrentUICulture = 'ko-KR' +``` + +This command changes the UICulture for the current PowerShell session to Korean as used in South Korea. + +Please note that this change is temporary and will only affect the current session. If you open a new PowerShell session, it will use the default UICulture. \ No newline at end of file diff --git a/examples/FileBrowser/FileBrowser.ps1 b/examples/FileBrowser/FileBrowser.ps1 index ab94f1977..03a1cd929 100644 --- a/examples/FileBrowser/FileBrowser.ps1 +++ b/examples/FileBrowser/FileBrowser.ps1 @@ -1,11 +1,14 @@ -$FileBrowserPath = Split-Path -Parent -Path $MyInvocation.MyCommand.Path -$podePath = Split-Path -Parent -Path (Split-Path -Parent -Path $FileBrowserPath) -if (Test-Path -Path "$($podePath)/src/Pode.psm1" -PathType Leaf) { - Import-Module "$($podePath)/src/Pode.psm1" -Force -ErrorAction Stop -} -else { - Import-Module -Name 'Pode' -} + try { + $FileBrowserPath = Split-Path -Parent -Path $MyInvocation.MyCommand.Path + $podePath = Split-Path -Parent -Path (Split-Path -Parent -Path $FileBrowserPath) + if (Test-Path -Path "$($podePath)/src/Pode.psm1" -PathType Leaf) { + Import-Module "$($podePath)/src/Pode.psm1" -Force -ErrorAction Stop + } + else { + Import-Module -Name 'Pode' -ErrorAction Stop + } + } + catch { throw } $directoryPath = $podePath # Start Pode server diff --git a/src/Locales/kr/Pode.psd1 b/src/Locales/ko/Pode.psd1 similarity index 100% rename from src/Locales/kr/Pode.psd1 rename to src/Locales/ko/Pode.psd1 diff --git a/src/Pode.psm1 b/src/Pode.psm1 index b5dd14e84..1142e5353 100644 --- a/src/Pode.psm1 +++ b/src/Pode.psm1 @@ -21,8 +21,19 @@ Import-Module -Name "Pode" -ArgumentList 'it-SM' Uses the Italian San Marino region culture. -.NOTES +.EXAMPLE + try { + Import-Module -Name Pode -MaximumVersion 2.99.99 + } catch { + Write-Error "Failed to load the Pode module" + throw + } + The import statement is within a try/catch block. + This way, if the module fails to load, your script won’t proceed, preventing possible errors or unexpected behavior. + + .NOTES This is the entry point for the Pode module. + #> param( @@ -31,25 +42,30 @@ param( # root path $root = Split-Path -Parent -Path $MyInvocation.MyCommand.Path +$localesPath = (Join-Path -Path $root -ChildPath 'Locales') + # Import localized messages if ([string]::IsNullOrEmpty($UICulture)) { $UICulture = $PsUICulture } -#Culture list available here https://azuliadesigns.com/c-sharp-tutorials/list-net-culture-country-codes/ -Import-LocalizedData -BindingVariable tmpPodeLocale -BaseDirectory (Join-Path -Path $root -ChildPath 'Locales') -UICulture $UICulture -ErrorAction:SilentlyContinue -if ($null -eq $tmpPodeLocale) { +try { try { - Import-LocalizedData -BindingVariable tmpPodeLocale -BaseDirectory (Join-Path -Path $root -ChildPath 'Locales') -UICulture 'en' -ErrorAction:Stop + #The list of all available supported culture is available here https://azuliadesigns.com/c-sharp-tutorials/list-net-culture-country-codes/ + + # ErrorAction:SilentlyContinue is not sufficient to avoid Import-LocalizedData to generate an exception when the Culture file is not the right format + Import-LocalizedData -BindingVariable tmpPodeLocale -BaseDirectory $localesPath -UICulture $UICulture -ErrorAction:SilentlyContinue + if ($null -eq $tmpPodeLocale) { + $UICulture = 'en' + Import-LocalizedData -BindingVariable tmpPodeLocale -BaseDirectory $localesPath -UICulture $UICulture -ErrorAction:Stop + } } catch { - throw + throw "Failed to Import Localized Data $(Join-Path -Path $localesPath -ChildPath $UICulture -AdditionalChildPath 'Pode.psd1') $_" } -} -try { # Create the global msgTable read-only variable - New-Variable -Name 'PodeLocale' -Value $tmpPodeLocale -Scope script -Option ReadOnly -Force -Description "Localization HashTable" + New-Variable -Name 'PodeLocale' -Value $tmpPodeLocale -Scope script -Option ReadOnly -Force -Description 'Localization HashTable' # load assemblies Add-Type -AssemblyName System.Web -ErrorAction Stop @@ -60,24 +76,20 @@ try { # Import the module manifest to access its properties $moduleManifest = Import-PowerShellDataFile -Path $moduleManifestPath -ErrorAction Stop -} -catch { - throw -} -$podeDll = [AppDomain]::CurrentDomain.GetAssemblies() | Where-Object { $_.GetName().Name -eq 'Pode' } -if ($podeDll) { - if ( $moduleManifest.ModuleVersion -ne '$version$') { - $moduleVersion = ([version]::new($moduleManifest.ModuleVersion + '.0')) - if ($podeDll.GetName().Version -ne $moduleVersion) { - # An existing incompatible Pode.DLL version {0} is loaded. Version {1} is required. Open a new Powershell/pwsh session and retry. - throw ($PodeLocale.incompatiblePodeDllExceptionMessage -f $podeDll.GetName().Version, $moduleVersion) + $podeDll = [AppDomain]::CurrentDomain.GetAssemblies() | Where-Object { $_.GetName().Name -eq 'Pode' } + + if ($podeDll) { + if ( $moduleManifest.ModuleVersion -ne '$version$') { + $moduleVersion = ([version]::new($moduleManifest.ModuleVersion + '.0')) + if ($podeDll.GetName().Version -ne $moduleVersion) { + # An existing incompatible Pode.DLL version {0} is loaded. Version {1} is required. Open a new Powershell/pwsh session and retry. + throw ($PodeLocale.incompatiblePodeDllExceptionMessage -f $podeDll.GetName().Version, $moduleVersion) + } } } -} -else { - try { + else { if ($PSVersionTable.PSVersion -ge [version]'7.4.0') { Add-Type -LiteralPath "$($root)/Libs/net8.0/Pode.dll" -ErrorAction Stop } @@ -88,33 +100,33 @@ else { Add-Type -LiteralPath "$($root)/Libs/netstandard2.0/Pode.dll" -ErrorAction Stop } } - catch { - throw - } -} - -# load private functions -Get-ChildItem "$($root)/Private/*.ps1" | ForEach-Object { . ([System.IO.Path]::GetFullPath($_)) } + # load private functions + Get-ChildItem "$($root)/Private/*.ps1" | ForEach-Object { . ([System.IO.Path]::GetFullPath($_)) } -# only import public functions -$sysfuncs = Get-ChildItem Function: + # only import public functions + $sysfuncs = Get-ChildItem Function: -# only import public alias -$sysaliases = Get-ChildItem Alias: + # only import public alias + $sysaliases = Get-ChildItem Alias: -# load public functions -Get-ChildItem "$($root)/Public/*.ps1" | ForEach-Object { . ([System.IO.Path]::GetFullPath($_)) } + # load public functions + Get-ChildItem "$($root)/Public/*.ps1" | ForEach-Object { . ([System.IO.Path]::GetFullPath($_)) } -# get functions from memory and compare to existing to find new functions added -$funcs = Get-ChildItem Function: | Where-Object { $sysfuncs -notcontains $_ } -$aliases = Get-ChildItem Alias: | Where-Object { $sysaliases -notcontains $_ } -# export the module's public functions -if ($funcs) { - if ($aliases) { - Export-ModuleMember -Function ($funcs.Name) -Alias $aliases.Name - } - else { - Export-ModuleMember -Function ($funcs.Name) + # get functions from memory and compare to existing to find new functions added + $funcs = Get-ChildItem Function: | Where-Object { $sysfuncs -notcontains $_ } + $aliases = Get-ChildItem Alias: | Where-Object { $sysaliases -notcontains $_ } + # export the module's public functions + if ($funcs) { + if ($aliases) { + Export-ModuleMember -Function ($funcs.Name) -Alias $aliases.Name + } + else { + Export-ModuleMember -Function ($funcs.Name) + } } } +catch { + throw "Failed to load the Pode module. $_" +} + diff --git a/tests/unit/Middleware.Tests.ps1 b/tests/unit/Middleware.Tests.ps1 index 85e8cca5f..7a96151ca 100644 --- a/tests/unit/Middleware.Tests.ps1 +++ b/tests/unit/Middleware.Tests.ps1 @@ -1,4 +1,5 @@ [Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSUseDeclaredVarsMoreThanAssignments', '')] +[Diagnostics.CodeAnalysis.SuppressMessageAttribute('PSAvoidUsingWriteHost', '')] param() BeforeAll { From 2d12ce6d6e7243b832183dc5b8c775003704033f Mon Sep 17 00:00:00 2001 From: mdaneri Date: Wed, 5 Jun 2024 09:23:32 -0700 Subject: [PATCH 15/67] Additional Messages --- src/Locales/ar/Pode.psd1 | 20 +++++++++++++++++++- src/Locales/de/Pode.psd1 | 20 +++++++++++++++++++- src/Locales/en/Pode.psd1 | 18 ++++++++++++++++++ src/Locales/es/Pode.psd1 | 18 ++++++++++++++++++ src/Locales/fr/Pode.psd1 | 20 +++++++++++++++++++- src/Locales/it/Pode.psd1 | 20 +++++++++++++++++++- src/Locales/ja/Pode.psd1 | 20 +++++++++++++++++++- src/Locales/ko/Pode.psd1 | 20 +++++++++++++++++++- src/Locales/pl/Pode.psd1 | 18 ++++++++++++++++++ src/Locales/pt/Pode.psd1 | 18 ++++++++++++++++++ src/Locales/zn/Pode.psd1 | 20 +++++++++++++++++++- src/Public/Responses.ps1 | 3 ++- src/Public/Schedules.ps1 | 33 ++++++++++++++++++++++----------- src/Public/Threading.ps1 | 24 ++++++++++++++++-------- src/Public/Timers.ps1 | 18 ++++++++++++------ tests/unit/Responses.Tests.ps1 | 2 +- tests/unit/Schedules.Tests.ps1 | 3 ++- tests/unit/Timers.Tests.ps1 | 6 ++++-- 18 files changed, 264 insertions(+), 37 deletions(-) diff --git a/src/Locales/ar/Pode.psd1 b/src/Locales/ar/Pode.psd1 index f6c69780f..860c0f7c3 100644 --- a/src/Locales/ar/Pode.psd1 +++ b/src/Locales/ar/Pode.psd1 @@ -236,4 +236,22 @@ parameterNotSuppliedInRequestExceptionMessage = لم يتم توفير معلم noDataForFileUploadedExceptionMessage = لا توجد بيانات للملف '{0}' الذي تم تحميله في الطلب. viewsFolderNameAlreadyExistsExceptionMessage = اسم مجلد العرض موجود بالفعل: {0} viewsPathDoesNotExistExceptionMessage = مسار العرض غير موجود: {0} -'@ +timerAlreadyDefinedExceptionMessage = [المؤقت] {0}: المؤقت معرف بالفعل. +timerParameterMustBeGreaterThanZeroExceptionMessage = [المؤقت] {0}: {1} يجب أن يكون أكبر من 0. +timerDoesNotExistExceptionMessage = المؤقت '{0}' غير موجود. +mutexAlreadyExistsExceptionMessage = يوجد بالفعل Mutex بالاسم التالي: {0} +noMutexFoundExceptionMessage = لم يتم العثور على Mutex باسم '{0}' +failedToAcquireMutexOwnershipExceptionMessage = فشل في الحصول على ملكية Mutex. اسم Mutex: {0} +semaphoreAlreadyExistsExceptionMessage = يوجد بالفعل Semaphore بالاسم التالي: {0} +failedToAcquireSemaphoreOwnershipExceptionMessage = فشل في الحصول على ملكية Semaphore. اسم Semaphore: {0} +scheduleAlreadyDefinedExceptionMessage = [الجدول الزمني] {0}: الجدول الزمني معرف بالفعل. +scheduleCannotHaveNegativeLimitExceptionMessage = [الجدول الزمني] {0}: لا يمكن أن يكون له حد سلبي. +scheduleEndTimeMustBeInFutureExceptionMessage = [الجدول الزمني] {0}: يجب أن تكون قيمة EndTime في المستقبل. +scheduleStartTimeAfterEndTimeExceptionMessage = [الجدول الزمني] {0}: لا يمكن أن يكون 'StartTime' بعد 'EndTime' +maximumConcurrentSchedulesInvalidExceptionMessage = يجب أن تكون الجداول الزمنية المتزامنة القصوى >=1 ولكن تم الحصول على: {0} +maximumConcurrentSchedulesLessThanMinimumExceptionMessage = لا يمكن أن تكون الجداول الزمنية المتزامنة القصوى أقل من الحد الأدنى {0} ولكن تم الحصول على: {1} +scheduleDoesNotExistExceptionMessage = الجدول الزمني '{0}' غير موجود. +suppliedDateBeforeScheduleStartTimeExceptionMessage = التاريخ المقدم قبل وقت بدء الجدول الزمني في {0} +suppliedDateAfterScheduleEndTimeExceptionMessage = التاريخ المقدم بعد وقت انتهاء الجدول الزمني في {0} +noSemaphoreFoundExceptionMessage = لم يتم العثور على Semaphore باسم '{0}' +'@ \ No newline at end of file diff --git a/src/Locales/de/Pode.psd1 b/src/Locales/de/Pode.psd1 index 35843ca23..f5ef28281 100644 --- a/src/Locales/de/Pode.psd1 +++ b/src/Locales/de/Pode.psd1 @@ -236,4 +236,22 @@ parameterNotSuppliedInRequestExceptionMessage = Ein Parameter namens '{0}' wurde noDataForFileUploadedExceptionMessage = Keine Daten für die Datei '{0}' wurden in der Anfrage hochgeladen. viewsFolderNameAlreadyExistsExceptionMessage = Der Name des Ansichtsordners existiert bereits: {0} viewsPathDoesNotExistExceptionMessage = Der Ansichtsordnerpfad existiert nicht: {0} -'@ +timerAlreadyDefinedExceptionMessage = [Timer] {0}: Timer bereits definiert. +timerParameterMustBeGreaterThanZeroExceptionMessage = [Timer] {0}: {1} muss größer als 0 sein. +timerDoesNotExistExceptionMessage = Timer '{0}' existiert nicht. +mutexAlreadyExistsExceptionMessage = Ein Mutex mit folgendem Namen existiert bereits: {0} +noMutexFoundExceptionMessage = Kein Mutex mit dem Namen '{0}' gefunden. +failedToAcquireMutexOwnershipExceptionMessage = Fehler beim Erwerb des Mutex-Besitzes. Mutex-Name: {0} +semaphoreAlreadyExistsExceptionMessage = Ein Semaphor mit folgendem Namen existiert bereits: {0} +failedToAcquireSemaphoreOwnershipExceptionMessage = Fehler beim Erwerb des Semaphor-Besitzes. Semaphor-Name: {0} +scheduleAlreadyDefinedExceptionMessage = [Zeitplan] {0}: Zeitplan bereits definiert. +scheduleCannotHaveNegativeLimitExceptionMessage = [Zeitplan] {0}: Kann kein negatives Limit haben. +scheduleEndTimeMustBeInFutureExceptionMessage = [Zeitplan] {0}: Der Wert für EndTime muss in der Zukunft liegen. +scheduleStartTimeAfterEndTimeExceptionMessage = [Zeitplan] {0}: StartTime kann nicht nach EndTime liegen. +maximumConcurrentSchedulesInvalidExceptionMessage = Maximale gleichzeitige Zeitpläne müssen >=1 sein, aber erhalten: {0} +maximumConcurrentSchedulesLessThanMinimumExceptionMessage = Maximale gleichzeitige Zeitpläne dürfen nicht kleiner als das Minimum von {0} sein, aber erhalten: {1} +scheduleDoesNotExistExceptionMessage = Zeitplan '{0}' existiert nicht. +suppliedDateBeforeScheduleStartTimeExceptionMessage = Das angegebene Datum liegt vor der Startzeit des Zeitplans bei {0} +suppliedDateAfterScheduleEndTimeExceptionMessage = Das angegebene Datum liegt nach der Endzeit des Zeitplans bei {0} +noSemaphoreFoundExceptionMessage = Kein Semaphor mit dem Namen '{0}' gefunden. +'@ \ No newline at end of file diff --git a/src/Locales/en/Pode.psd1 b/src/Locales/en/Pode.psd1 index 39cc9e07c..75b0e7d63 100644 --- a/src/Locales/en/Pode.psd1 +++ b/src/Locales/en/Pode.psd1 @@ -236,4 +236,22 @@ parameterNotSuppliedInRequestExceptionMessage = A parameter called '{0}' was not noDataForFileUploadedExceptionMessage = No data for file '{0}' was uploaded in the request. viewsFolderNameAlreadyExistsExceptionMessage = The Views folder name already exists: {0} viewsPathDoesNotExistExceptionMessage = The Views path does not exist: {0} +timerAlreadyDefinedExceptionMessage = [Timer] {0}: Timer already defined. +timerParameterMustBeGreaterThanZeroExceptionMessage = [Timer] {0}: {1} must be greater than 0. +timerDoesNotExistExceptionMessage = Timer '{0}' does not exist. +mutexAlreadyExistsExceptionMessage = A mutex with the following name already exists: {0} +noMutexFoundExceptionMessage = No mutex found called '{0}' +failedToAcquireMutexOwnershipExceptionMessage = Failed to acquire mutex ownership. Mutex name: {0} +semaphoreAlreadyExistsExceptionMessage = A semaphore with the following name already exists: {0} +failedToAcquireSemaphoreOwnershipExceptionMessage = Failed to acquire semaphore ownership. Semaphore name: {0} +scheduleAlreadyDefinedExceptionMessage = [Schedule] {0}: Schedule already defined. +scheduleCannotHaveNegativeLimitExceptionMessage = [Schedule] {0}: Cannot have a negative limit. +scheduleEndTimeMustBeInFutureExceptionMessage = [Schedule] {0}: The EndTime value must be in the future. +scheduleStartTimeAfterEndTimeExceptionMessage = [Schedule] {0}: Cannot have a StartTime after the EndTime +maximumConcurrentSchedulesInvalidExceptionMessage = Maximum concurrent schedules must be >=1 but got: {0} +maximumConcurrentSchedulesLessThanMinimumExceptionMessage = Maximum concurrent schedules cannot be less than the minimum of {0} but got: {1} +scheduleDoesNotExistExceptionMessage = Schedule '{0}' does not exist. +suppliedDateBeforeScheduleStartTimeExceptionMessage = Supplied date is before the start time of the schedule at {0} +suppliedDateAfterScheduleEndTimeExceptionMessage = Supplied date is after the end time of the schedule at {0} +noSemaphoreFoundExceptionMessage = No semaphore found called '{0}' '@ \ No newline at end of file diff --git a/src/Locales/es/Pode.psd1 b/src/Locales/es/Pode.psd1 index 8750ddca8..c35c47a85 100644 --- a/src/Locales/es/Pode.psd1 +++ b/src/Locales/es/Pode.psd1 @@ -236,4 +236,22 @@ parameterNotSuppliedInRequestExceptionMessage = No se ha proporcionado un parám noDataForFileUploadedExceptionMessage = No se han subido datos para el archivo '{0}' en la solicitud. viewsFolderNameAlreadyExistsExceptionMessage = El nombre de la carpeta Views ya existe: {0} viewsPathDoesNotExistExceptionMessage = La ruta de las Views no existe: {0} +timerAlreadyDefinedExceptionMessage = [Temporizador] {0}: Temporizador ya definido. +timerParameterMustBeGreaterThanZeroExceptionMessage = [Temporizador] {0}: {1} debe ser mayor que 0. +timerDoesNotExistExceptionMessage = El temporizador '{0}' no existe. +mutexAlreadyExistsExceptionMessage = Ya existe un mutex con el siguiente nombre: {0} +noMutexFoundExceptionMessage = No se encontró ningún mutex llamado '{0}' +failedToAcquireMutexOwnershipExceptionMessage = No se pudo adquirir la propiedad del mutex. Nombre del mutex: {0} +semaphoreAlreadyExistsExceptionMessage = Ya existe un semáforo con el siguiente nombre: {0} +failedToAcquireSemaphoreOwnershipExceptionMessage = No se pudo adquirir la propiedad del semáforo. Nombre del semáforo: {0} +scheduleAlreadyDefinedExceptionMessage = [Horario] {0}: Horario ya definido. +scheduleCannotHaveNegativeLimitExceptionMessage = [Horario] {0}: No puede tener un límite negativo. +scheduleEndTimeMustBeInFutureExceptionMessage = [Horario] {0}: El valor de EndTime debe estar en el futuro. +scheduleStartTimeAfterEndTimeExceptionMessage = [Horario] {0}: No puede tener un 'StartTime' después del 'EndTime' +maximumConcurrentSchedulesInvalidExceptionMessage = Los horarios simultáneos máximos deben ser >=1 pero se obtuvo: {0} +maximumConcurrentSchedulesLessThanMinimumExceptionMessage = Los horarios simultáneos máximos no pueden ser inferiores al mínimo de {0} pero se obtuvo: {1} +scheduleDoesNotExistExceptionMessage = El horario '{0}' no existe. +suppliedDateBeforeScheduleStartTimeExceptionMessage = La fecha proporcionada es anterior a la hora de inicio del horario en {0} +suppliedDateAfterScheduleEndTimeExceptionMessage = La fecha proporcionada es posterior a la hora de finalización del horario en {0} +noSemaphoreFoundExceptionMessage = No se encontró ningún semáforo llamado '{0}' '@ diff --git a/src/Locales/fr/Pode.psd1 b/src/Locales/fr/Pode.psd1 index f57a8c05a..deb46d92d 100644 --- a/src/Locales/fr/Pode.psd1 +++ b/src/Locales/fr/Pode.psd1 @@ -236,4 +236,22 @@ parameterNotSuppliedInRequestExceptionMessage = Un paramètre nommé '{0}' n'a p noDataForFileUploadedExceptionMessage = Aucune donnée pour le fichier '{0}' n'a été téléchargée dans la demande. viewsFolderNameAlreadyExistsExceptionMessage = Le nom du dossier Views existe déjà: {0} viewsPathDoesNotExistExceptionMessage = Le chemin des Views n'existe pas: {0} -'@ +timerAlreadyDefinedExceptionMessage = [Minuteur] {0}: Minuteur déjà défini. +timerParameterMustBeGreaterThanZeroExceptionMessage = [Minuteur] {0}: {1} doit être supérieur à 0. +timerDoesNotExistExceptionMessage = Minuteur '{0}' n'existe pas. +mutexAlreadyExistsExceptionMessage = Un mutex avec le nom suivant existe déjà: {0} +noMutexFoundExceptionMessage = Aucun mutex trouvé appelé '{0}' +failedToAcquireMutexOwnershipExceptionMessage = Échec de l'acquisition de la propriété du mutex. Nom du mutex: {0} +semaphoreAlreadyExistsExceptionMessage = Un sémaphore avec le nom suivant existe déjà: {0} +failedToAcquireSemaphoreOwnershipExceptionMessage = Échec de l'acquisition de la propriété du sémaphore. Nom du sémaphore: {0} +scheduleAlreadyDefinedExceptionMessage = [Calendrier] {0}: Calendrier déjà défini. +scheduleCannotHaveNegativeLimitExceptionMessage = [Calendrier] {0}: Ne peut pas avoir de limite négative. +scheduleEndTimeMustBeInFutureExceptionMessage = [Calendrier] {0}: La valeur de EndTime doit être dans le futur. +scheduleStartTimeAfterEndTimeExceptionMessage = [Calendrier] {0}: Ne peut pas avoir un 'StartTime' après 'EndTime' +maximumConcurrentSchedulesInvalidExceptionMessage = Les calendriers simultanés maximum doivent être >=1 mais obtenu: {0} +maximumConcurrentSchedulesLessThanMinimumExceptionMessage = Les calendriers simultanés maximum ne peuvent pas être inférieurs au minimum de {0} mais obtenu: {1} +scheduleDoesNotExistExceptionMessage = Le calendrier '{0}' n'existe pas. +suppliedDateBeforeScheduleStartTimeExceptionMessage = La date fournie est antérieure à l'heure de début du calendrier à {0} +suppliedDateAfterScheduleEndTimeExceptionMessage = La date fournie est postérieure à l'heure de fin du calendrier à {0} +noSemaphoreFoundExceptionMessage = Aucun sémaphore trouvé appelé '{0}' +'@ \ No newline at end of file diff --git a/src/Locales/it/Pode.psd1 b/src/Locales/it/Pode.psd1 index 492704735..6f73d09c9 100644 --- a/src/Locales/it/Pode.psd1 +++ b/src/Locales/it/Pode.psd1 @@ -236,4 +236,22 @@ parameterNotSuppliedInRequestExceptionMessage = Un parametro chiamato '{0}' non noDataForFileUploadedExceptionMessage = Nessun dato per il file '{0}' è stato caricato nella richiesta. viewsFolderNameAlreadyExistsExceptionMessage = Il nome della cartella Views esiste già: {0} viewsPathDoesNotExistExceptionMessage = Il percorso delle Views non esiste: {0} -'@ +timerAlreadyDefinedExceptionMessage = [Timer] {0}: Timer già definito. +timerParameterMustBeGreaterThanZeroExceptionMessage = [Timer] {0}: {1} deve essere maggiore di 0. +timerDoesNotExistExceptionMessage = Timer '{0}' non esiste. +mutexAlreadyExistsExceptionMessage = Un mutex con il seguente nome esiste già: {0} +noMutexFoundExceptionMessage = Nessun mutex trovato chiamato '{0}' +failedToAcquireMutexOwnershipExceptionMessage = Impossibile acquisire la proprietà del mutex. Nome del mutex: {0} +semaphoreAlreadyExistsExceptionMessage = Un semaforo con il seguente nome esiste già: {0} +failedToAcquireSemaphoreOwnershipExceptionMessage = Impossibile acquisire la proprietà del semaforo. Nome del semaforo: {0} +scheduleAlreadyDefinedExceptionMessage = [Pianificazione] {0}: Pianificazione già definita. +scheduleCannotHaveNegativeLimitExceptionMessage = [Pianificazione] {0}: Non può avere un limite negativo. +scheduleEndTimeMustBeInFutureExceptionMessage = [Pianificazione] {0}: Il valore di EndTime deve essere nel futuro. +scheduleStartTimeAfterEndTimeExceptionMessage = [Pianificazione] {0}: Non può avere un 'StartTime' dopo 'EndTime' +maximumConcurrentSchedulesInvalidExceptionMessage = I programmi concorrenti massimi devono essere >=1 ma ottenuto: {0} +maximumConcurrentSchedulesLessThanMinimumExceptionMessage = I programmi concorrenti massimi non possono essere inferiori al minimo di {0} ma ottenuto: {1} +scheduleDoesNotExistExceptionMessage = Il programma '{0}' non esiste. +suppliedDateBeforeScheduleStartTimeExceptionMessage = La data fornita è precedente all'ora di inizio del programma a {0} +suppliedDateAfterScheduleEndTimeExceptionMessage = La data fornita è successiva all'ora di fine del programma a {0} +noSemaphoreFoundExceptionMessage = Nessun semaforo trovato chiamato '{0}' +'@ \ No newline at end of file diff --git a/src/Locales/ja/Pode.psd1 b/src/Locales/ja/Pode.psd1 index 67eb0b99a..7d3d73bf3 100644 --- a/src/Locales/ja/Pode.psd1 +++ b/src/Locales/ja/Pode.psd1 @@ -236,4 +236,22 @@ parameterNotSuppliedInRequestExceptionMessage = リクエストに '{0}' とい noDataForFileUploadedExceptionMessage = リクエストでアップロードされたファイル '{0}' のデータがありません。 viewsFolderNameAlreadyExistsExceptionMessage = ビューのフォルダ名は既に存在します: {0} viewsPathDoesNotExistExceptionMessage = ビューのパスが存在しません: {0} -'@ +timerAlreadyDefinedExceptionMessage = [タイマー] {0}: タイマーはすでに定義されています。 +timerParameterMustBeGreaterThanZeroExceptionMessage = [タイマー] {0}: {1} は 0 より大きくなければなりません。 +timerDoesNotExistExceptionMessage = タイマー '{0}' は存在しません。 +mutexAlreadyExistsExceptionMessage = 次の名前のミューテックスはすでに存在します: {0} +noMutexFoundExceptionMessage = 名前 '{0}' のミューテックスが見つかりません +failedToAcquireMutexOwnershipExceptionMessage = ミューテックスの所有権を取得できませんでした。ミューテックス名: {0} +semaphoreAlreadyExistsExceptionMessage = 次の名前のセマフォはすでに存在します: {0} +failedToAcquireSemaphoreOwnershipExceptionMessage = セマフォの所有権を取得できませんでした。セマフォ名: {0} +scheduleAlreadyDefinedExceptionMessage = [スケジュール] {0}: スケジュールはすでに定義されています。 +scheduleCannotHaveNegativeLimitExceptionMessage = [スケジュール] {0}: 負の制限を持つことはできません。 +scheduleEndTimeMustBeInFutureExceptionMessage = [スケジュール] {0}: EndTime 値は未来に設定する必要があります。 +scheduleStartTimeAfterEndTimeExceptionMessage = [スケジュール] {0}: 'StartTime' が 'EndTime' の後であることはできません +maximumConcurrentSchedulesInvalidExceptionMessage = 最大同時スケジュール数は 1 以上でなければなりませんが、受け取った値: {0} +maximumConcurrentSchedulesLessThanMinimumExceptionMessage = 最大同時スケジュール数は最小 {0} 未満にすることはできませんが、受け取った値: {1} +scheduleDoesNotExistExceptionMessage = スケジュール '{0}' は存在しません。 +suppliedDateBeforeScheduleStartTimeExceptionMessage = 提供された日付はスケジュールの開始時間 {0} より前です +suppliedDateAfterScheduleEndTimeExceptionMessage = 提供された日付はスケジュールの終了時間 {0} の後です +noSemaphoreFoundExceptionMessage = 名前 '{0}' のセマフォが見つかりません +'@ \ No newline at end of file diff --git a/src/Locales/ko/Pode.psd1 b/src/Locales/ko/Pode.psd1 index 8061338e5..99b918e4a 100644 --- a/src/Locales/ko/Pode.psd1 +++ b/src/Locales/ko/Pode.psd1 @@ -236,4 +236,22 @@ parameterNotSuppliedInRequestExceptionMessage = 요청에 '{0}'라는 이름의 noDataForFileUploadedExceptionMessage = 요청에서 업로드된 파일 '{0}'에 대한 데이터가 없습니다. viewsFolderNameAlreadyExistsExceptionMessage = 뷰 폴더 이름이 이미 존재합니다: {0} viewsPathDoesNotExistExceptionMessage = 뷰 경로가 존재하지 않습니다: {0} -'@ +timerAlreadyDefinedExceptionMessage = [타이머] {0}: 타이머가 이미 정의되어 있습니다. +timerParameterMustBeGreaterThanZeroExceptionMessage = [타이머] {0}: {1}은(는) 0보다 커야 합니다. +timerDoesNotExistExceptionMessage = 타이머 '{0}'이(가) 존재하지 않습니다. +mutexAlreadyExistsExceptionMessage = 이름이 '{0}'인 뮤텍스가 이미 존재합니다. +noMutexFoundExceptionMessage = 이름이 '{0}'인 뮤텍스를 찾을 수 없습니다. +failedToAcquireMutexOwnershipExceptionMessage = 뮤텍스 소유권을 획득하지 못했습니다. 뮤텍스 이름: {0} +semaphoreAlreadyExistsExceptionMessage = 이름이 '{0}'인 세마포어가 이미 존재합니다. +failedToAcquireSemaphoreOwnershipExceptionMessage = 세마포어 소유권을 획득하지 못했습니다. 세마포어 이름: {0} +scheduleAlreadyDefinedExceptionMessage = [스케줄] {0}: 스케줄이 이미 정의되어 있습니다. +scheduleCannotHaveNegativeLimitExceptionMessage = [스케줄] {0}: 음수 한도를 가질 수 없습니다. +scheduleEndTimeMustBeInFutureExceptionMessage = [스케줄] {0}: 종료 시간 값은 미래에 있어야 합니다. +scheduleStartTimeAfterEndTimeExceptionMessage = [스케줄] {0}: 'StartTime'이 'EndTime' 이후일 수 없습니다. +maximumConcurrentSchedulesInvalidExceptionMessage = 최대 동시 스케줄 수는 1 이상이어야 하지만 받은 값: {0} +maximumConcurrentSchedulesLessThanMinimumExceptionMessage = 최대 동시 스케줄 수는 최소 {0}보다 작을 수 없지만 받은 값: {1} +scheduleDoesNotExistExceptionMessage = 스케줄 '{0}'이(가) 존재하지 않습니다. +suppliedDateBeforeScheduleStartTimeExceptionMessage = 제공된 날짜가 스케줄 시작 시간 {0} 이전입니다. +suppliedDateAfterScheduleEndTimeExceptionMessage = 제공된 날짜가 스케줄 종료 시간 {0} 이후입니다. +noSemaphoreFoundExceptionMessage = 이름이 '{0}'인 세마포어를 찾을 수 없습니다. +'@ \ No newline at end of file diff --git a/src/Locales/pl/Pode.psd1 b/src/Locales/pl/Pode.psd1 index ab898006d..74ce29cfb 100644 --- a/src/Locales/pl/Pode.psd1 +++ b/src/Locales/pl/Pode.psd1 @@ -236,4 +236,22 @@ parameterNotSuppliedInRequestExceptionMessage = Parametr o nazwie '{0}' nie zost noDataForFileUploadedExceptionMessage = Brak danych dla pliku '{0}' przesłanego w żądaniu. viewsFolderNameAlreadyExistsExceptionMessage = Nazwa folderu Widoków już istnieje: {0} viewsPathDoesNotExistExceptionMessage = Ścieżka do Widoków nie istnieje: {0} +timerAlreadyDefinedExceptionMessage = [Timer] {0}: Timer już zdefiniowany. +timerParameterMustBeGreaterThanZeroExceptionMessage = [Timer] {0}: {1} musi być większy od 0. +timerDoesNotExistExceptionMessage = Timer '{0}' nie istnieje. +mutexAlreadyExistsExceptionMessage = Muteks o nazwie '{0}' już istnieje. +noMutexFoundExceptionMessage = Nie znaleziono muteksu o nazwie '{0}'. +failedToAcquireMutexOwnershipExceptionMessage = Nie udało się przejąć własności muteksu. Nazwa muteksu: {0} +semaphoreAlreadyExistsExceptionMessage = Semafor o nazwie '{0}' już istnieje. +failedToAcquireSemaphoreOwnershipExceptionMessage = Nie udało się przejąć własności semaforu. Nazwa semaforu: {0} +scheduleAlreadyDefinedExceptionMessage = [Harmonogram] {0}: Harmonogram już zdefiniowany. +scheduleCannotHaveNegativeLimitExceptionMessage = [Harmonogram] {0}: Nie może mieć ujemnego limitu. +scheduleEndTimeMustBeInFutureExceptionMessage = [Harmonogram] {0}: Wartość EndTime musi być w przyszłości. +scheduleStartTimeAfterEndTimeExceptionMessage = [Harmonogram] {0}: Nie może mieć 'StartTime' po 'EndTime'. +maximumConcurrentSchedulesInvalidExceptionMessage = Maksymalna liczba równoczesnych harmonogramów musi wynosić >=1, ale otrzymano: {0} +maximumConcurrentSchedulesLessThanMinimumExceptionMessage = Maksymalna liczba równoczesnych harmonogramów nie może być mniejsza niż minimalna liczba {0}, ale otrzymano: {1} +scheduleDoesNotExistExceptionMessage = Harmonogram '{0}' nie istnieje. +suppliedDateBeforeScheduleStartTimeExceptionMessage = Podana data jest wcześniejsza niż czas rozpoczęcia harmonogramu o {0} +suppliedDateAfterScheduleEndTimeExceptionMessage = Podana data jest późniejsza niż czas zakończenia harmonogramu o {0} +noSemaphoreFoundExceptionMessage = Nie znaleziono semaforu o nazwie '{0}' '@ \ No newline at end of file diff --git a/src/Locales/pt/Pode.psd1 b/src/Locales/pt/Pode.psd1 index 1337c0229..2d85dcd3e 100644 --- a/src/Locales/pt/Pode.psd1 +++ b/src/Locales/pt/Pode.psd1 @@ -236,4 +236,22 @@ parameterNotSuppliedInRequestExceptionMessage = Um parâmetro chamado '{0}' não noDataForFileUploadedExceptionMessage = Nenhum dado para o arquivo '{0}' foi enviado na solicitação. viewsFolderNameAlreadyExistsExceptionMessage = O nome da pasta Views já existe: {0} viewsPathDoesNotExistExceptionMessage = O caminho das Views não existe: {0} +timerAlreadyDefinedExceptionMessage = [Temporizador] {0}: Temporizador já definido. +timerParameterMustBeGreaterThanZeroExceptionMessage = [Temporizador] {0}: {1} deve ser maior que 0. +timerDoesNotExistExceptionMessage = O temporizador '{0}' não existe. +mutexAlreadyExistsExceptionMessage = Já existe um mutex com o seguinte nome: {0} +noMutexFoundExceptionMessage = Nenhum mutex encontrado chamado '{0}' +failedToAcquireMutexOwnershipExceptionMessage = Falha ao adquirir a propriedade do mutex. Nome do mutex: {0} +semaphoreAlreadyExistsExceptionMessage = Já existe um semáforo com o seguinte nome: {0} +failedToAcquireSemaphoreOwnershipExceptionMessage = Falha ao adquirir a propriedade do semáforo. Nome do semáforo: {0} +scheduleAlreadyDefinedExceptionMessage = [Agenda] {0}: Agenda já definida. +scheduleCannotHaveNegativeLimitExceptionMessage = [Agenda] {0}: Não pode ter um limite negativo. +scheduleEndTimeMustBeInFutureExceptionMessage = [Agenda] {0}: O valor de EndTime deve estar no futuro. +scheduleStartTimeAfterEndTimeExceptionMessage = [Agenda] {0}: Não pode ter um 'StartTime' após o 'EndTime' +maximumConcurrentSchedulesInvalidExceptionMessage = As agendas simultâneas máximas devem ser >=1, mas obtidas: {0} +maximumConcurrentSchedulesLessThanMinimumExceptionMessage = As agendas simultâneas máximas não podem ser inferiores ao mínimo de {0}, mas obtidas: {1} +scheduleDoesNotExistExceptionMessage = A agenda '{0}' não existe. +suppliedDateBeforeScheduleStartTimeExceptionMessage = A data fornecida é anterior ao horário de início da agenda em {0} +suppliedDateAfterScheduleEndTimeExceptionMessage = A data fornecida é posterior ao horário de término da agenda em {0} +noSemaphoreFoundExceptionMessage = Nenhum semáforo encontrado chamado '{0}' '@ diff --git a/src/Locales/zn/Pode.psd1 b/src/Locales/zn/Pode.psd1 index 11f737bea..b97c1e808 100644 --- a/src/Locales/zn/Pode.psd1 +++ b/src/Locales/zn/Pode.psd1 @@ -236,4 +236,22 @@ parameterNotSuppliedInRequestExceptionMessage = 请求中未提供名为 '{0}' noDataForFileUploadedExceptionMessage = 请求中未上传文件 '{0}' 的数据。 viewsFolderNameAlreadyExistsExceptionMessage = 视图文件夹名称已存在: {0} viewsPathDoesNotExistExceptionMessage = 视图路径不存在: {0} -'@ +timerAlreadyDefinedExceptionMessage = [计时器] {0}: 计时器已定义。 +timerParameterMustBeGreaterThanZeroExceptionMessage = [计时器] {0}: {1} 必须大于 0。 +timerDoesNotExistExceptionMessage = 计时器 '{0}' 不存在。 +mutexAlreadyExistsExceptionMessage = 名为 '{0}' 的互斥量已存在。 +noMutexFoundExceptionMessage = 找不到名为 '{0}' 的互斥量 +failedToAcquireMutexOwnershipExceptionMessage = 未能获得互斥量的所有权。互斥量名称: {0} +semaphoreAlreadyExistsExceptionMessage = 名为 '{0}' 的信号量已存在。 +failedToAcquireSemaphoreOwnershipExceptionMessage = 未能获得信号量的所有权。信号量名称: {0} +scheduleAlreadyDefinedExceptionMessage = [计划] {0}: 计划已定义。 +scheduleCannotHaveNegativeLimitExceptionMessage = [计划] {0}: 不能有负数限制。 +scheduleEndTimeMustBeInFutureExceptionMessage = [计划] {0}: EndTime 值必须在将来。 +scheduleStartTimeAfterEndTimeExceptionMessage = [计划] {0}: 'StartTime' 不能在 'EndTime' 之后 +maximumConcurrentSchedulesInvalidExceptionMessage = 最大并发计划数必须 >=1,但得到: {0} +maximumConcurrentSchedulesLessThanMinimumExceptionMessage = 最大并发计划数不能小于最小值 {0},但得到: {1} +scheduleDoesNotExistExceptionMessage = 计划 '{0}' 不存在。 +suppliedDateBeforeScheduleStartTimeExceptionMessage = 提供的日期早于计划的开始时间 {0} +suppliedDateAfterScheduleEndTimeExceptionMessage = 提供的日期晚于计划的结束时间 {0} +noSemaphoreFoundExceptionMessage = 找不到名为 '{0}' 的信号量 +'@ \ No newline at end of file diff --git a/src/Public/Responses.ps1 b/src/Public/Responses.ps1 index 1a577b9ff..3d7cf7576 100644 --- a/src/Public/Responses.ps1 +++ b/src/Public/Responses.ps1 @@ -1502,7 +1502,8 @@ function Use-PodePartialView { # test the file path, and set status accordingly if (!(Test-PodePath $Path -NoStatus)) { - throw "File not found at path: $($Path)" + # The Views path does not exist + throw ($PodeLocale.viewsPathDoesNotExistExceptionMessage -f $Path) } # run any engine logic diff --git a/src/Public/Schedules.ps1 b/src/Public/Schedules.ps1 index 28eaa7d74..2b74cb538 100644 --- a/src/Public/Schedules.ps1 +++ b/src/Public/Schedules.ps1 @@ -88,21 +88,25 @@ function Add-PodeSchedule { # ensure the schedule doesn't already exist if ($PodeContext.Schedules.Items.ContainsKey($Name)) { - throw "[Schedule] $($Name): Schedule already defined" + # [Schedule] Name: Schedule already defined + throw ($PodeLocale.scheduleAlreadyDefinedExceptionMessage -f $Name) } # ensure the limit is valid if ($Limit -lt 0) { - throw "[Schedule] $($Name): Cannot have a negative limit" + # [Schedule] Name: Cannot have a negative limit + throw ($PodeLocale.scheduleCannotHaveNegativeLimitExceptionMessage -f $Name) } # ensure the start/end dates are valid if (($null -ne $EndTime) -and ($EndTime -lt [DateTime]::Now)) { - throw "[Schedule] $($Name): The EndTime value must be in the future" + # [Schedule] Name: The EndTime value must be in the future + throw ($PodeLocale.scheduleEndTimeMustBeInFutureExceptionMessage -f $Name) } if (($null -ne $StartTime) -and ($null -ne $EndTime) -and ($EndTime -le $StartTime)) { - throw "[Schedule] $($Name): Cannot have a StartTime after the EndTime" + # [Schedule] Name: Cannot have a 'StartTime' after the 'EndTime' + throw ($PodeLocale.scheduleStartTimeAfterEndTimeExceptionMessage -f $Name) } # if we have a file path supplied, load that path as a scriptblock @@ -159,7 +163,8 @@ function Set-PodeScheduleConcurrency { # error if <=0 if ($Maximum -le 0) { - throw "Maximum concurrent schedules must be >=1 but got: $($Maximum)" + # Maximum concurrent schedules must be >=1 but got + throw ($PodeLocale.maximumConcurrentSchedulesInvalidExceptionMessage -f $Maximum) } # ensure max > min @@ -169,7 +174,8 @@ function Set-PodeScheduleConcurrency { } if ($_min -gt $Maximum) { - throw "Maximum concurrent schedules cannot be less than the minimum of $($_min) but got: $($Maximum)" + # Maximum concurrent schedules cannot be less than the minimum of $_min but got $Maximum + throw ($PodeLocale.maximumConcurrentSchedulesLessThanMinimumExceptionMessage -f $_min, $Maximum) } # set the max schedules @@ -209,7 +215,8 @@ function Invoke-PodeSchedule { # ensure the schedule exists if (!$PodeContext.Schedules.Items.ContainsKey($Name)) { - throw "Schedule '$($Name)' does not exist" + # Schedule 'Name' does not exist + throw ($PodeLocale.scheduleDoesNotExistExceptionMessage -f $Name) } # run schedule logic @@ -304,7 +311,8 @@ function Edit-PodeSchedule { # ensure the schedule exists if (!$PodeContext.Schedules.Items.ContainsKey($Name)) { - throw "Schedule '$($Name)' does not exist" + # Schedule 'Name' does not exist + throw ($PodeLocale.scheduleDoesNotExistExceptionMessage -f $Name) } $_schedule = $PodeContext.Schedules.Items[$Name] @@ -487,18 +495,21 @@ function Get-PodeScheduleNextTrigger { # ensure the schedule exists if (!$PodeContext.Schedules.Items.ContainsKey($Name)) { - throw "Schedule '$($Name)' does not exist" + # Schedule 'Name' does not exist + throw ($PodeLocale.scheduleDoesNotExistExceptionMessage -f $Name) } $_schedule = $PodeContext.Schedules.Items[$Name] # ensure date is after start/before end if (($null -ne $DateTime) -and ($null -ne $_schedule.StartTime) -and ($DateTime -lt $_schedule.StartTime)) { - throw "Supplied date is before the start time of the schedule at $($_schedule.StartTime)" + # Supplied date is before the start time of the schedule at $_schedule.StartTime + throw ($PodeLocale.suppliedDateBeforeScheduleStartTimeExceptionMessage -f $_schedule.StartTime) } if (($null -ne $DateTime) -and ($null -ne $_schedule.EndTime) -and ($DateTime -gt $_schedule.EndTime)) { - throw "Supplied date is after the end time of the schedule at $($_schedule.EndTime)" + # Supplied date is after the end time of the schedule at $_schedule.EndTime + throw ($PodeLocale.suppliedDateAfterScheduleEndTimeExceptionMessage -f $_schedule.EndTime) } # get the next trigger diff --git a/src/Public/Threading.ps1 b/src/Public/Threading.ps1 index 5cb4779df..015b03e50 100644 --- a/src/Public/Threading.ps1 +++ b/src/Public/Threading.ps1 @@ -391,7 +391,8 @@ function New-PodeMutex { ) if (Test-PodeMutex -Name $Name) { - throw "A mutex with the following name already exists: $($Name)" + # A mutex with the following name already exists + throw ($PodeLocale.mutexAlreadyExistsExceptionMessage -f $Name) } $mutex = $null @@ -579,11 +580,13 @@ function Enter-PodeMutex { $mutex = Get-PodeMutex -Name $Name if ($null -eq $mutex) { - throw "No mutex found called '$($Name)'" + # No mutex found called 'Name' + throw ($PodeLocale.noMutexFoundExceptionMessage -f $Name) } if (!$mutex.WaitOne($Timeout)) { - throw "Failed to acquire mutex ownership. Mutex name: $($Name)" + # Failed to acquire mutex ownership. Mutex name: Name + throw ($PodeLocale.failedToAcquireMutexOwnershipExceptionMessage -f $Name) } } @@ -610,7 +613,8 @@ function Exit-PodeMutex { $mutex = Get-PodeMutex -Name $Name if ($null -eq $mutex) { - throw "No mutex found called '$($Name)'" + # No mutex found called 'Name' + throw ($PodeLocale.noMutexFoundExceptionMessage -f $Name) } $mutex.ReleaseMutex() @@ -685,7 +689,8 @@ function New-PodeSemaphore { ) if (Test-PodeSemaphore -Name $Name) { - throw "A semaphore with the following name already exists: $($Name)" + # A semaphore with the following name already exists + throw ($PodeLocale.semaphoreAlreadyExistsExceptionMessage -f $Name) } if ($Count -le 0) { @@ -877,11 +882,13 @@ function Enter-PodeSemaphore { $semaphore = Get-PodeSemaphore -Name $Name if ($null -eq $semaphore) { - throw "No semaphore found called '$($Name)'" + # No semaphore found called 'Name' + throw ($PodeLocale.noSemaphoreFoundExceptionMessage -f $Name) } if (!$semaphore.WaitOne($Timeout)) { - throw "Failed to acquire semaphore ownership. Semaphore name: $($Name)" + # Failed to acquire semaphore ownership. Semaphore name: Name + throw ($PodeLocale.failedToAcquireSemaphoreOwnershipExceptionMessage -f $Name) } } @@ -915,7 +922,8 @@ function Exit-PodeSemaphore { $semaphore = Get-PodeSemaphore -Name $Name if ($null -eq $semaphore) { - throw "No semaphore found called '$($Name)'" + # No semaphore found called 'Name' + throw ($PodeLocale.noSemaphoreFoundExceptionMessage -f $Name) } if ($ReleaseCount -lt 1) { diff --git a/src/Public/Timers.ps1 b/src/Public/Timers.ps1 index 84ef29dd7..8042bca71 100644 --- a/src/Public/Timers.ps1 +++ b/src/Public/Timers.ps1 @@ -81,22 +81,26 @@ function Add-PodeTimer { # ensure the timer doesn't already exist if ($PodeContext.Timers.Items.ContainsKey($Name)) { - throw "[Timer] $($Name): Timer already defined" + # [Timer] Name: Timer already defined + throw ($PodeLocale.timerAlreadyDefinedExceptionMessage -f $Name) } # is the interval valid? if ($Interval -le 0) { - throw "[Timer] $($Name): Interval must be greater than 0" + # [Timer] Name: parameter must be greater than 0 + throw ($PodeLocale.timerParameterMustBeGreaterThanZeroExceptionMessage -f $Name, 'Interval') } # is the limit valid? if ($Limit -lt 0) { - throw "[Timer] $($Name): Cannot have a negative limit" + # [Timer] Name: parameter must be greater than 0 + throw ($PodeLocale.timerParameterMustBeGreaterThanZeroExceptionMessage -f $Name, 'Limit') } # is the skip valid? if ($Skip -lt 0) { - throw "[Timer] $($Name): Cannot have a negative skip value" + # [Timer] Name: parameter must be greater than 0 + throw ($PodeLocale.timerParameterMustBeGreaterThanZeroExceptionMessage -f $Name, 'Skip') } # if we have a file path supplied, load that path as a scriptblock @@ -162,7 +166,8 @@ function Invoke-PodeTimer { # ensure the timer exists if (!$PodeContext.Timers.Items.ContainsKey($Name)) { - throw "Timer '$($Name)' does not exist" + # Timer 'Name' does not exist + throw ($PodeLocale.timerDoesNotExistExceptionMessage -f $Name) } # run timer logic @@ -254,7 +259,8 @@ function Edit-PodeTimer { # ensure the timer exists if (!$PodeContext.Timers.Items.ContainsKey($Name)) { - throw "Timer '$($Name)' does not exist" + # Timer 'Name' does not exist + throw ($PodeLocale.timerDoesNotExistExceptionMessage -f $Name) } $_timer = $PodeContext.Timers.Items[$Name] diff --git a/tests/unit/Responses.Tests.ps1 b/tests/unit/Responses.Tests.ps1 index 73c28e745..5394a7909 100644 --- a/tests/unit/Responses.Tests.ps1 +++ b/tests/unit/Responses.Tests.ps1 @@ -398,7 +398,7 @@ Describe 'Use-PodePartialView' { It 'Throws an error for a path that does not exist' { Mock Test-PodePath { return $false } - { Use-PodePartialView -Path 'sub-view.pode' } | Should -Throw -ExpectedMessage '*File not found*' + { Use-PodePartialView -Path 'sub-view.pode' } | Should -Throw -ExpectedMessage ($PodeLocale.viewsPathDoesNotExistExceptionMessage -f '*' ) # The Views path does not exist: sub-view.pode' } diff --git a/tests/unit/Schedules.Tests.ps1 b/tests/unit/Schedules.Tests.ps1 index da3a07cd6..0fabd47e4 100644 --- a/tests/unit/Schedules.Tests.ps1 +++ b/tests/unit/Schedules.Tests.ps1 @@ -53,7 +53,8 @@ Describe 'Add-PodeSchedule' { $PodeContext = @{ 'Schedules' = @{ Items = @{} }; } $start = ([DateTime]::Now.AddHours(3)) $end = ([DateTime]::Now.AddHours(1)) - { Add-PodeSchedule -Name 'test' -Cron '@hourly' -ScriptBlock {} -StartTime $start -EndTime $end } | Should -Throw -ExpectedMessage '*starttime after the endtime*' + $expectedMessage = ($PodeLocale.scheduleStartTimeAfterEndTimeExceptionMessage -f 'test') -replace '\[', '`[' -replace '\]', '`]' + { Add-PodeSchedule -Name 'test' -Cron '@hourly' -ScriptBlock {} -StartTime $start -EndTime $end } | Should -Throw -ExpectedMessage $expectedMessage # [Schedule] {0}: Cannot have a 'StartTime' after the 'EndTime' } It 'Adds new schedule supplying everything' { diff --git a/tests/unit/Timers.Tests.ps1 b/tests/unit/Timers.Tests.ps1 index 9e5567f5b..4926f36ca 100644 --- a/tests/unit/Timers.Tests.ps1 +++ b/tests/unit/Timers.Tests.ps1 @@ -55,12 +55,14 @@ Describe 'Add-PodeTimer' { It 'Throws error because limit is negative' { $PodeContext = @{ 'Timers' = @{ Items = @{} }; } - { Add-PodeTimer -Name 'test' -Interval 1 -ScriptBlock {} -Limit -1 } | Should -Throw -ExpectedMessage '*negative limit*' + $expectedMessage = ($PodeLocale.timerParameterMustBeGreaterThanZeroExceptionMessage -f 'test', 'Limit') -replace '\[', '`[' -replace '\]', '`]' + { Add-PodeTimer -Name 'test' -Interval 1 -ScriptBlock {} -Limit -1 } | Should -Throw -ExpectedMessage $expectedMessage #[Timer] {0}: {1} must be greater than 0. } It 'Throws error because skip is negative' { $PodeContext = @{ 'Timers' = @{ Items = @{} }; } - { Add-PodeTimer -Name 'test' -Interval 1 -ScriptBlock {} -Skip -1 } | Should -Throw -ExpectedMessage '*negative skip*' + $expectedMessage = ($PodeLocale.timerParameterMustBeGreaterThanZeroExceptionMessage -f 'test', 'skip') -replace '\[', '`[' -replace '\]', '`]' + { Add-PodeTimer -Name 'test' -Interval 1 -ScriptBlock {} -Skip -1 } | Should -Throw -ExpectedMessage $expectedMessage #[Timer] {0}: {1} must be greater than 0. } It 'Adds new timer to session with no limit' { From e91ddc411ee3c85e6594115b53870e2bbb6c35cb Mon Sep 17 00:00:00 2001 From: mdaneri Date: Wed, 5 Jun 2024 10:09:57 -0700 Subject: [PATCH 16/67] final exception messages --- src/Locales/ar/Pode.psd1 | 6 ++++++ src/Locales/de/Pode.psd1 | 6 ++++++ src/Locales/en/Pode.psd1 | 6 ++++++ src/Locales/es/Pode.psd1 | 10 ++++++++-- src/Locales/fr/Pode.psd1 | 6 ++++++ src/Locales/it/Pode.psd1 | 6 ++++++ src/Locales/ja/Pode.psd1 | 8 +++++++- src/Locales/ko/Pode.psd1 | 6 ++++++ src/Locales/pl/Pode.psd1 | 6 ++++++ src/Locales/pt/Pode.psd1 | 8 +++++++- src/Locales/zn/Pode.psd1 | 6 ++++++ src/Public/Routes.ps1 | 24 ++++++++++++++---------- 12 files changed, 84 insertions(+), 14 deletions(-) diff --git a/src/Locales/ar/Pode.psd1 b/src/Locales/ar/Pode.psd1 index 860c0f7c3..091cfccd7 100644 --- a/src/Locales/ar/Pode.psd1 +++ b/src/Locales/ar/Pode.psd1 @@ -254,4 +254,10 @@ scheduleDoesNotExistExceptionMessage = الجدول الزمني '{0}' غير م suppliedDateBeforeScheduleStartTimeExceptionMessage = التاريخ المقدم قبل وقت بدء الجدول الزمني في {0} suppliedDateAfterScheduleEndTimeExceptionMessage = التاريخ المقدم بعد وقت انتهاء الجدول الزمني في {0} noSemaphoreFoundExceptionMessage = لم يتم العثور على Semaphore باسم '{0}' +noLogicPassedForRouteExceptionMessage = لم يتم تمرير منطق للمسار: {0} +noPathSuppliedForStaticRouteExceptionMessage = [{0}]: لم يتم توفير مسار للمسار الثابت. +sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: مسار المصدر المقدم للمسار الثابت غير موجود: {2} +noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: لم يتم تمرير منطق. +moduleDoesNotContainFunctionExceptionMessage = الوحدة {0} لا تحتوي على الوظيفة {1} لتحويلها إلى مسار. +pageNameShouldBeAlphaNumericExceptionMessage = يجب أن يكون اسم الصفحة قيمة أبجدية رقمية صالحة: {0} '@ \ No newline at end of file diff --git a/src/Locales/de/Pode.psd1 b/src/Locales/de/Pode.psd1 index f5ef28281..f1faf5562 100644 --- a/src/Locales/de/Pode.psd1 +++ b/src/Locales/de/Pode.psd1 @@ -254,4 +254,10 @@ scheduleDoesNotExistExceptionMessage = Zeitplan '{0}' existiert nicht. suppliedDateBeforeScheduleStartTimeExceptionMessage = Das angegebene Datum liegt vor der Startzeit des Zeitplans bei {0} suppliedDateAfterScheduleEndTimeExceptionMessage = Das angegebene Datum liegt nach der Endzeit des Zeitplans bei {0} noSemaphoreFoundExceptionMessage = Kein Semaphor mit dem Namen '{0}' gefunden. +noLogicPassedForRouteExceptionMessage = Keine Logik für Route übergeben: {0} +noPathSuppliedForStaticRouteExceptionMessage = [{0}]: Kein Pfad für statische Route angegeben. +sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: Der angegebene Quellpfad für die statische Route existiert nicht: {2} +noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: Keine Logik übergeben. +moduleDoesNotContainFunctionExceptionMessage = Modul {0} enthält keine Funktion {1} zur Umwandlung in eine Route. +pageNameShouldBeAlphaNumericExceptionMessage = Der Seitenname sollte einen gültigen alphanumerischen Wert haben: {0} '@ \ No newline at end of file diff --git a/src/Locales/en/Pode.psd1 b/src/Locales/en/Pode.psd1 index 75b0e7d63..13867bbb5 100644 --- a/src/Locales/en/Pode.psd1 +++ b/src/Locales/en/Pode.psd1 @@ -254,4 +254,10 @@ scheduleDoesNotExistExceptionMessage = Schedule '{0}' does not exist. suppliedDateBeforeScheduleStartTimeExceptionMessage = Supplied date is before the start time of the schedule at {0} suppliedDateAfterScheduleEndTimeExceptionMessage = Supplied date is after the end time of the schedule at {0} noSemaphoreFoundExceptionMessage = No semaphore found called '{0}' +noLogicPassedForRouteExceptionMessage = No logic passed for Route: {0} +noPathSuppliedForStaticRouteExceptionMessage = [{0}]: No Path supplied for Static Route. +sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: The Source path supplied for Static Route does not exist: {2} +noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: No logic passed. +moduleDoesNotContainFunctionExceptionMessage = Module {0} does not contain function {1} to convert to a Route. +pageNameShouldBeAlphaNumericExceptionMessage = The Page name should be a valid AlphaNumeric value: {0} '@ \ No newline at end of file diff --git a/src/Locales/es/Pode.psd1 b/src/Locales/es/Pode.psd1 index c35c47a85..771006059 100644 --- a/src/Locales/es/Pode.psd1 +++ b/src/Locales/es/Pode.psd1 @@ -253,5 +253,11 @@ maximumConcurrentSchedulesLessThanMinimumExceptionMessage = Los horarios simult scheduleDoesNotExistExceptionMessage = El horario '{0}' no existe. suppliedDateBeforeScheduleStartTimeExceptionMessage = La fecha proporcionada es anterior a la hora de inicio del horario en {0} suppliedDateAfterScheduleEndTimeExceptionMessage = La fecha proporcionada es posterior a la hora de finalización del horario en {0} -noSemaphoreFoundExceptionMessage = No se encontró ningún semáforo llamado '{0}' -'@ +noSemaphoreFoundExceptionMessage = No se encontró ningún semáforo llamado '{0}' +noLogicPassedForRouteExceptionMessage = No se pasó lógica para la Ruta: {0} +noPathSuppliedForStaticRouteExceptionMessage = [{0}]: No se proporcionó una ruta para la Ruta estática. +sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: La ruta de origen proporcionada para la Ruta estática no existe: {2} +noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: No se pasó lógica. +moduleDoesNotContainFunctionExceptionMessage = El módulo {0} no contiene la función {1} para convertir en una Ruta. +pageNameShouldBeAlphaNumericExceptionMessage = El nombre de la página debe ser un valor alfanumérico válido: {0} +'@ \ No newline at end of file diff --git a/src/Locales/fr/Pode.psd1 b/src/Locales/fr/Pode.psd1 index deb46d92d..d1576c63c 100644 --- a/src/Locales/fr/Pode.psd1 +++ b/src/Locales/fr/Pode.psd1 @@ -254,4 +254,10 @@ scheduleDoesNotExistExceptionMessage = Le calendrier '{0}' n'existe pas. suppliedDateBeforeScheduleStartTimeExceptionMessage = La date fournie est antérieure à l'heure de début du calendrier à {0} suppliedDateAfterScheduleEndTimeExceptionMessage = La date fournie est postérieure à l'heure de fin du calendrier à {0} noSemaphoreFoundExceptionMessage = Aucun sémaphore trouvé appelé '{0}' +noLogicPassedForRouteExceptionMessage = Aucune logique passée pour la Route: {0} +noPathSuppliedForStaticRouteExceptionMessage = [{0}]: Aucun chemin fourni pour la Route statique. +sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: Le chemin source fourni pour la Route statique n'existe pas: {2} +noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: Aucune logique passée. +moduleDoesNotContainFunctionExceptionMessage = Le module {0} ne contient pas la fonction {1} à convertir en une Route. +pageNameShouldBeAlphaNumericExceptionMessage = Le nom de la page doit être une valeur alphanumérique valide: {0} '@ \ No newline at end of file diff --git a/src/Locales/it/Pode.psd1 b/src/Locales/it/Pode.psd1 index 6f73d09c9..4340db63e 100644 --- a/src/Locales/it/Pode.psd1 +++ b/src/Locales/it/Pode.psd1 @@ -254,4 +254,10 @@ scheduleDoesNotExistExceptionMessage = Il programma '{0}' non esiste. suppliedDateBeforeScheduleStartTimeExceptionMessage = La data fornita è precedente all'ora di inizio del programma a {0} suppliedDateAfterScheduleEndTimeExceptionMessage = La data fornita è successiva all'ora di fine del programma a {0} noSemaphoreFoundExceptionMessage = Nessun semaforo trovato chiamato '{0}' +noLogicPassedForRouteExceptionMessage = Nessuna logica passata per la rotta: {0} +noPathSuppliedForStaticRouteExceptionMessage = [{0}]: Nessun percorso fornito per la rotta statica. +sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: Il percorso sorgente fornito per la rotta statica non esiste: {2} +noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: Nessuna logica passata. +moduleDoesNotContainFunctionExceptionMessage = Il modulo {0} non contiene la funzione {1} da convertire in una rotta. +pageNameShouldBeAlphaNumericExceptionMessage = Il nome della pagina dovrebbe essere un valore alfanumerico valido: {0} '@ \ No newline at end of file diff --git a/src/Locales/ja/Pode.psd1 b/src/Locales/ja/Pode.psd1 index 7d3d73bf3..911b60557 100644 --- a/src/Locales/ja/Pode.psd1 +++ b/src/Locales/ja/Pode.psd1 @@ -253,5 +253,11 @@ maximumConcurrentSchedulesLessThanMinimumExceptionMessage = 最大同時スケ scheduleDoesNotExistExceptionMessage = スケジュール '{0}' は存在しません。 suppliedDateBeforeScheduleStartTimeExceptionMessage = 提供された日付はスケジュールの開始時間 {0} より前です suppliedDateAfterScheduleEndTimeExceptionMessage = 提供された日付はスケジュールの終了時間 {0} の後です -noSemaphoreFoundExceptionMessage = 名前 '{0}' のセマフォが見つかりません +noSemaphoreFoundExceptionMessage = 名前 '{0}' のセマフォが見つかりません +noLogicPassedForRouteExceptionMessage = ルートに対してロジックが渡されませんでした: {0} +noPathSuppliedForStaticRouteExceptionMessage = [{0}]: 静的ルートに対して提供されたパスがありません。 +sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: 静的ルートに対して提供されたソースパスが存在しません: {2} +noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: ロジックが渡されませんでした。 +moduleDoesNotContainFunctionExceptionMessage = モジュール {0} にはルートに変換する関数 {1} が含まれていません。 +pageNameShouldBeAlphaNumericExceptionMessage = ページ名は有効な英数字である必要があります: {0} '@ \ No newline at end of file diff --git a/src/Locales/ko/Pode.psd1 b/src/Locales/ko/Pode.psd1 index 99b918e4a..22afef2b5 100644 --- a/src/Locales/ko/Pode.psd1 +++ b/src/Locales/ko/Pode.psd1 @@ -254,4 +254,10 @@ scheduleDoesNotExistExceptionMessage = 스케줄 '{0}'이(가) 존재하지 않 suppliedDateBeforeScheduleStartTimeExceptionMessage = 제공된 날짜가 스케줄 시작 시간 {0} 이전입니다. suppliedDateAfterScheduleEndTimeExceptionMessage = 제공된 날짜가 스케줄 종료 시간 {0} 이후입니다. noSemaphoreFoundExceptionMessage = 이름이 '{0}'인 세마포어를 찾을 수 없습니다. +noLogicPassedForRouteExceptionMessage = 경로에 대한 논리가 전달되지 않았습니다: {0} +noPathSuppliedForStaticRouteExceptionMessage = [{0}]: 정적 경로에 대한 경로가 제공되지 않았습니다. +sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: 정적 경로에 대한 제공된 소스 경로가 존재하지 않습니다: {2} +noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: 논리가 전달되지 않았습니다. +moduleDoesNotContainFunctionExceptionMessage = 모듈 {0}에 경로로 변환할 함수 {1}이(가) 포함되어 있지 않습니다. +pageNameShouldBeAlphaNumericExceptionMessage = 페이지 이름은 유효한 알파벳 숫자 값이어야 합니다: {0} '@ \ No newline at end of file diff --git a/src/Locales/pl/Pode.psd1 b/src/Locales/pl/Pode.psd1 index 74ce29cfb..fa7fe75b6 100644 --- a/src/Locales/pl/Pode.psd1 +++ b/src/Locales/pl/Pode.psd1 @@ -254,4 +254,10 @@ scheduleDoesNotExistExceptionMessage = Harmonogram '{0}' nie istnieje. suppliedDateBeforeScheduleStartTimeExceptionMessage = Podana data jest wcześniejsza niż czas rozpoczęcia harmonogramu o {0} suppliedDateAfterScheduleEndTimeExceptionMessage = Podana data jest późniejsza niż czas zakończenia harmonogramu o {0} noSemaphoreFoundExceptionMessage = Nie znaleziono semaforu o nazwie '{0}' +noLogicPassedForRouteExceptionMessage = Brak logiki przekazanej dla trasy: {0} +noPathSuppliedForStaticRouteExceptionMessage = [{0}]: Brak dostarczonej ścieżki dla trasy statycznej. +sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: Dostarczona ścieżka źródłowa dla trasy statycznej nie istnieje: {2} +noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: Brak logiki przekazanej. +moduleDoesNotContainFunctionExceptionMessage = Moduł {0} nie zawiera funkcji {1} do konwersji na trasę. +pageNameShouldBeAlphaNumericExceptionMessage = Nazwa strony powinna być poprawną wartością alfanumeryczną: {0} '@ \ No newline at end of file diff --git a/src/Locales/pt/Pode.psd1 b/src/Locales/pt/Pode.psd1 index 2d85dcd3e..9180d3c8a 100644 --- a/src/Locales/pt/Pode.psd1 +++ b/src/Locales/pt/Pode.psd1 @@ -254,4 +254,10 @@ scheduleDoesNotExistExceptionMessage = A agenda '{0}' não existe. suppliedDateBeforeScheduleStartTimeExceptionMessage = A data fornecida é anterior ao horário de início da agenda em {0} suppliedDateAfterScheduleEndTimeExceptionMessage = A data fornecida é posterior ao horário de término da agenda em {0} noSemaphoreFoundExceptionMessage = Nenhum semáforo encontrado chamado '{0}' -'@ +noLogicPassedForRouteExceptionMessage = Nenhuma lógica passada para a Rota: {0} +noPathSuppliedForStaticRouteExceptionMessage = [{0}]: Nenhum caminho fornecido para a Rota Estática. +sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: O caminho de origem fornecido para a Rota Estática não existe: {2} +noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: Nenhuma lógica passada. +moduleDoesNotContainFunctionExceptionMessage = O módulo {0} não contém a função {1} para converter em uma Rota. +pageNameShouldBeAlphaNumericExceptionMessage = O nome da página deve ser um valor alfanumérico válido: {0} +'@ \ No newline at end of file diff --git a/src/Locales/zn/Pode.psd1 b/src/Locales/zn/Pode.psd1 index b97c1e808..90d6727e1 100644 --- a/src/Locales/zn/Pode.psd1 +++ b/src/Locales/zn/Pode.psd1 @@ -254,4 +254,10 @@ scheduleDoesNotExistExceptionMessage = 计划 '{0}' 不存在。 suppliedDateBeforeScheduleStartTimeExceptionMessage = 提供的日期早于计划的开始时间 {0} suppliedDateAfterScheduleEndTimeExceptionMessage = 提供的日期晚于计划的结束时间 {0} noSemaphoreFoundExceptionMessage = 找不到名为 '{0}' 的信号量 +noLogicPassedForRouteExceptionMessage = 没有为路径传递逻辑: {0} +noPathSuppliedForStaticRouteExceptionMessage = [{0}]: 没有为静态路径提供路径。 +sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: 为静态路径提供的源路径不存在: {2} +noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: 没有传递逻辑。 +moduleDoesNotContainFunctionExceptionMessage = 模块 {0} 不包含要转换为路径的函数 {1}。 +pageNameShouldBeAlphaNumericExceptionMessage = 页面名称应为有效的字母数字值: {0} '@ \ No newline at end of file diff --git a/src/Public/Routes.ps1 b/src/Public/Routes.ps1 index a3452f838..1d93990ae 100644 --- a/src/Public/Routes.ps1 +++ b/src/Public/Routes.ps1 @@ -303,7 +303,8 @@ function Add-PodeRoute { # if middleware, scriptblock and file path are all null/empty, error if ((Test-PodeIsEmpty $Middleware) -and (Test-PodeIsEmpty $ScriptBlock) -and (Test-PodeIsEmpty $FilePath) -and (Test-PodeIsEmpty $Authentication)) { - throw "No logic passed for Route: $($Path)" + # [Method] Path: No logic passed + throw ($PodeLocale.noLogicPassedForMethodRouteExceptionMessage -f $Method, $Path) } # if we have a file path supplied, load that path as a scriptblock @@ -734,7 +735,8 @@ function Add-PodeStaticRoute { # split route on '?' for query $Path = Split-PodeRouteQuery -Path $Path if ([string]::IsNullOrWhiteSpace($Path)) { - throw "[$($Method)]: No Path supplied for Static Route" + # No Path supplied for the Route. + throw $PodeLocale.noPathSuppliedForRouteExceptionMessage } # ensure the route has appropriate slashes @@ -774,7 +776,8 @@ function Add-PodeStaticRoute { # if static, ensure the path exists at server root $Source = Get-PodeRelativePath -Path $Source -JoinRoot if (!(Test-PodePath -Path $Source -NoStatus)) { - throw "[$($Method))] $($Path): The Source path supplied for Static Route does not exist: $($Source)" + # [Method)] Path: The Source path supplied for Static Route does not exist + throw ($PodeLocale.sourcePathDoesNotExistForStaticRouteExceptionMessage -f $Method, $Path, $Source) } # setup a temp drive for the path @@ -814,7 +817,8 @@ function Add-PodeStaticRoute { # if an auth name was supplied, setup the auth as the first middleware if (![string]::IsNullOrWhiteSpace($Authentication)) { if (!(Test-PodeAuthExists -Name $Authentication)) { - throw "Authentication method does not exist: $($Authentication)" + # Authentication method does not exist + throw $PodeLocale.authenticationMethodDoesNotExistExceptionMessage } $options = @{ @@ -1007,7 +1011,8 @@ function Add-PodeSignalRoute { # if scriptblock and file path are all null/empty, error if ((Test-PodeIsEmpty $ScriptBlock) -and (Test-PodeIsEmpty $FilePath)) { - throw "[$($Method)] $($Path): No logic passed" + # [Method] Path: No logic passed + throw ($PodeLocale.noLogicPassedForMethodRouteExceptionMessage -f $Method, $Path) } # if we have a file path supplied, load that path as a scriptblock @@ -1677,9 +1682,6 @@ function Remove-PodeRoute { # split route on '?' for query $Path = Split-PodeRouteQuery -Path $Path - if ([string]::IsNullOrWhiteSpace($Path)) { - throw "[$($Method)]: No Route path supplied for removing a Route" - } # ensure the route has appropriate slashes and replace parameters $Path = Update-PodeRouteSlash -Path $Path @@ -2013,7 +2015,8 @@ function ConvertTo-PodeRoute { Write-Verbose "Validating supplied commands against module's exported commands" foreach ($cmd in $Commands) { if ($ModuleCommands -inotcontains $cmd) { - throw "Module $($Module) does not contain function $($cmd) to convert to a Route" + # Module Module does not contain function cmd to convert to a Route + throw ($PodeLocale.moduleDoesNotContainFunctionExceptionMessage -f $Module, $cmd) } } } @@ -2256,7 +2259,8 @@ function Add-PodePage { # ensure the name is a valid alphanumeric if ($Name -inotmatch '^[a-z0-9\-_]+$') { - throw "The Page name should be a valid AlphaNumeric value: $($Name)" + # The Page name should be a valid AlphaNumeric value + throw ($PodeLocale.pageNameShouldBeAlphaNumericExceptionMessage -f $Name) } # trim end trailing slashes from the path From e9898b7be5fde6ed8775f5dda9293022e91abacd Mon Sep 17 00:00:00 2001 From: mdaneri Date: Wed, 5 Jun 2024 21:53:19 -0700 Subject: [PATCH 17/67] Last messages --- docs/Tutorials/Basics.md | 6 +++--- examples/FileBrowser/FileBrowser.ps1 | 2 +- src/Locales/ar/Pode.psd1 | 21 +++++++++++++++++++++ src/Locales/de/Pode.psd1 | 21 +++++++++++++++++++++ src/Locales/en/Pode.psd1 | 21 +++++++++++++++++++++ src/Locales/es/Pode.psd1 | 23 ++++++++++++++++++++++- src/Locales/fr/Pode.psd1 | 21 +++++++++++++++++++++ src/Locales/it/Pode.psd1 | 21 +++++++++++++++++++++ src/Locales/ja/Pode.psd1 | 23 ++++++++++++++++++++++- src/Locales/ko/Pode.psd1 | 21 +++++++++++++++++++++ src/Locales/pl/Pode.psd1 | 21 +++++++++++++++++++++ src/Locales/pt/Pode.psd1 | 21 +++++++++++++++++++++ src/Locales/zn/Pode.psd1 | 21 +++++++++++++++++++++ src/Private/FileMonitor.ps1 | 3 ++- src/Private/Gui.ps1 | 6 ++++-- src/Private/Helpers.ps1 | 12 +++++++----- src/Private/OpenApi.ps1 | 18 ++++++++++++------ src/Private/Server.ps1 | 23 +++++++++++++++-------- src/Private/ServiceServer.ps1 | 3 ++- src/Public/Core.ps1 | 8 +++++--- src/Public/OpenApi.ps1 | 3 ++- 21 files changed, 286 insertions(+), 33 deletions(-) diff --git a/docs/Tutorials/Basics.md b/docs/Tutorials/Basics.md index e35bf2217..ac8094b76 100644 --- a/docs/Tutorials/Basics.md +++ b/docs/Tutorials/Basics.md @@ -83,7 +83,7 @@ PS> Start-PodeServer -FilePath './File.ps1' !!! tip Normally when you restart your Pode server any changes to the main scriptblock don't reflect. However, if you reference a file instead, then restarting the server will reload the scriptblock from that file - so any changes will reflect. -## Localization +## Internationalization Pode has built-in support for internationalization (i18n). @@ -92,7 +92,7 @@ You can enforce a specific localization when importing the Pode module by using Here’s an example of how to enforce Korean localization: ```powershell -Import-Module -Name Pode -ArgumentList @{ UICulture = 'ko-KR' } +Import-Module -Name Pode -ArgumentList 'ko-KR' ``` In this example, 'ko-KR' is the culture code for Korean as used in South Korea. You can replace 'ko-KR' with the culture code for any other language or region. @@ -105,6 +105,6 @@ This can be done using the following command: [System.Threading.Thread]::CurrentThread.CurrentUICulture = 'ko-KR' ``` -This command changes the UICulture for the current PowerShell session to Korean as used in South Korea. +This command changes the UICulture for the current PowerShell session to Korean as used in South Korea. Please note that this change is temporary and will only affect the current session. If you open a new PowerShell session, it will use the default UICulture. \ No newline at end of file diff --git a/examples/FileBrowser/FileBrowser.ps1 b/examples/FileBrowser/FileBrowser.ps1 index 03a1cd929..b38befb8f 100644 --- a/examples/FileBrowser/FileBrowser.ps1 +++ b/examples/FileBrowser/FileBrowser.ps1 @@ -2,7 +2,7 @@ $FileBrowserPath = Split-Path -Parent -Path $MyInvocation.MyCommand.Path $podePath = Split-Path -Parent -Path (Split-Path -Parent -Path $FileBrowserPath) if (Test-Path -Path "$($podePath)/src/Pode.psm1" -PathType Leaf) { - Import-Module "$($podePath)/src/Pode.psm1" -Force -ErrorAction Stop + Import-Module "$($podePath)/src/Pode.psm1" -Force -ErrorAction Stop -ArgumentList 'ja' } else { Import-Module -Name 'Pode' -ErrorAction Stop diff --git a/src/Locales/ar/Pode.psd1 b/src/Locales/ar/Pode.psd1 index 091cfccd7..0940a3697 100644 --- a/src/Locales/ar/Pode.psd1 +++ b/src/Locales/ar/Pode.psd1 @@ -260,4 +260,25 @@ sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: مسار ال noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: لم يتم تمرير منطق. moduleDoesNotContainFunctionExceptionMessage = الوحدة {0} لا تحتوي على الوظيفة {1} لتحويلها إلى مسار. pageNameShouldBeAlphaNumericExceptionMessage = يجب أن يكون اسم الصفحة قيمة أبجدية رقمية صالحة: {0} +filesHaveChangedMessage = تم تغيير الملفات التالية: +multipleEndpointsForGuiMessage = تم تعريف نقاط نهاية متعددة، سيتم استخدام الأولى فقط للواجهة الرسومية. +openingGuiMessage = جارٍ فتح الواجهة الرسومية. +listeningOnEndpointsMessage = الاستماع على {0} نقطة(نقاط) النهاية التالية [{1} خيط(خيوط)]: +specificationMessage = مواصفات +documentationMessage = توثيق +restartingServerMessage = إعادة تشغيل الخادم... +doneMessage = تم +deprecatedTitleVersionDescriptionWarningMessage = تحذير: العنوان، الإصدار والوصف في 'Enable-PodeOpenApi' مهمل. يرجى استخدام 'Add-PodeOAInfo' بدلاً من ذلك. +undefinedOpenApiReferencesMessage = مراجع OpenAPI غير معرّفة: +definitionTagMessage = تعريف {0}: +openApiGenerationDocumentErrorMessage = خطأ في مستند إنشاء OpenAPI: +infoTitleMandatoryMessage = info.title إلزامي. +infoVersionMandatoryMessage = info.version إلزامي. +missingComponentsMessage = المكون (المكونات) المفقود +openApiInfoMessage = معلومات OpenAPI: +serverLoopingMessage = تكرار الخادم كل {0} ثانية +iisShutdownMessage = (إيقاف تشغيل IIS) +terminatingMessage = إنهاء... +eolPowerShellWarningMessage = [تحذير] لم يتم اختبار Pode {0} على PowerShell {1}، حيث أنه نهاية العمر. +untestedPowerShellVersionWarningMessage = [تحذير] لم يتم اختبار Pode {0} على PowerShell {1}، حيث لم يكن متاحًا عند إصدار Pode. '@ \ No newline at end of file diff --git a/src/Locales/de/Pode.psd1 b/src/Locales/de/Pode.psd1 index f1faf5562..dcfd18c46 100644 --- a/src/Locales/de/Pode.psd1 +++ b/src/Locales/de/Pode.psd1 @@ -260,4 +260,25 @@ sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: Der angegeben noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: Keine Logik übergeben. moduleDoesNotContainFunctionExceptionMessage = Modul {0} enthält keine Funktion {1} zur Umwandlung in eine Route. pageNameShouldBeAlphaNumericExceptionMessage = Der Seitenname sollte einen gültigen alphanumerischen Wert haben: {0} +filesHaveChangedMessage = Die folgenden Dateien wurden geändert: +multipleEndpointsForGuiMessage = Mehrere Endpunkte definiert, es wird nur der erste für die GUI verwendet. +openingGuiMessage = Die GUI wird geöffnet. +listeningOnEndpointsMessage = Lauschen auf den folgenden {0} Endpunkt(en) [{1} Thread(s)]: +specificationMessage = Spezifikation +documentationMessage = Dokumentation +restartingServerMessage = Server wird neu gestartet... +doneMessage = Fertig +deprecatedTitleVersionDescriptionWarningMessage = WARNUNG: Titel, Version und Beschreibung in 'Enable-PodeOpenApi' sind veraltet. Bitte verwenden Sie stattdessen 'Add-PodeOAInfo'. +undefinedOpenApiReferencesMessage = Nicht definierte OpenAPI-Referenzen: +definitionTagMessage = Definition {0}: +openApiGenerationDocumentErrorMessage = Fehler beim Generieren des OpenAPI-Dokuments: +infoTitleMandatoryMessage = info.title ist obligatorisch. +infoVersionMandatoryMessage = info.version ist obligatorisch. +missingComponentsMessage = Fehlende Komponente(n) +openApiInfoMessage = OpenAPI-Informationen: +serverLoopingMessage = Server-Schleife alle {0} Sekunden +iisShutdownMessage = (IIS Herunterfahren) +terminatingMessage = Beenden... +eolPowerShellWarningMessage = [WARNUNG] Pode {0} wurde nicht auf PowerShell {1} getestet, da es das Ende des Lebenszyklus erreicht hat. +untestedPowerShellVersionWarningMessage = [WARNUNG] Pode {0} wurde nicht auf PowerShell {1} getestet, da diese Version bei der Veröffentlichung von Pode nicht verfügbar war. '@ \ No newline at end of file diff --git a/src/Locales/en/Pode.psd1 b/src/Locales/en/Pode.psd1 index 13867bbb5..80ded57b6 100644 --- a/src/Locales/en/Pode.psd1 +++ b/src/Locales/en/Pode.psd1 @@ -260,4 +260,25 @@ sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: The Source pa noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: No logic passed. moduleDoesNotContainFunctionExceptionMessage = Module {0} does not contain function {1} to convert to a Route. pageNameShouldBeAlphaNumericExceptionMessage = The Page name should be a valid AlphaNumeric value: {0} +filesHaveChangedMessage = The following files have changed: +multipleEndpointsForGuiMessage = Multiple endpoints defined, only the first will be used for the GUI. +openingGuiMessage = Opening the GUI. +listeningOnEndpointsMessage = Listening on the following {0} endpoint(s) [{1} thread(s)]: +specificationMessage = Specification +documentationMessage = Documentation +restartingServerMessage = Restarting server... +doneMessage = Done +deprecatedTitleVersionDescriptionWarningMessage = WARNING: Title, Version, and Description on 'Enable-PodeOpenApi' are deprecated. Please use 'Add-PodeOAInfo' instead. +undefinedOpenApiReferencesMessage = Undefined OpenAPI References: +definitionTagMessage = Definition {0}: +openApiGenerationDocumentErrorMessage = OpenAPI generation document error: +infoTitleMandatoryMessage = info.title is mandatory. +infoVersionMandatoryMessage = info.version is mandatory. +missingComponentsMessage = Missing component(s) +openApiInfoMessage = OpenAPI Info: +serverLoopingMessage = Server looping every {0}secs +iisShutdownMessage = (IIS Shutdown) +terminatingMessage = Terminating... +eolPowerShellWarningMessage = [WARNING] Pode {0} has not been tested on PowerShell {1}, as it is EOL. +untestedPowerShellVersionWarningMessage = [WARNING] Pode {0} has not been tested on PowerShell {1}, as it was not available when Pode was released. '@ \ No newline at end of file diff --git a/src/Locales/es/Pode.psd1 b/src/Locales/es/Pode.psd1 index 771006059..70b79a29a 100644 --- a/src/Locales/es/Pode.psd1 +++ b/src/Locales/es/Pode.psd1 @@ -253,11 +253,32 @@ maximumConcurrentSchedulesLessThanMinimumExceptionMessage = Los horarios simult scheduleDoesNotExistExceptionMessage = El horario '{0}' no existe. suppliedDateBeforeScheduleStartTimeExceptionMessage = La fecha proporcionada es anterior a la hora de inicio del horario en {0} suppliedDateAfterScheduleEndTimeExceptionMessage = La fecha proporcionada es posterior a la hora de finalización del horario en {0} -noSemaphoreFoundExceptionMessage = No se encontró ningún semáforo llamado '{0}' +noSemaphoreFoundExceptionMessage = No se encontró ningún semáforo llamado '{0}' noLogicPassedForRouteExceptionMessage = No se pasó lógica para la Ruta: {0} noPathSuppliedForStaticRouteExceptionMessage = [{0}]: No se proporcionó una ruta para la Ruta estática. sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: La ruta de origen proporcionada para la Ruta estática no existe: {2} noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: No se pasó lógica. moduleDoesNotContainFunctionExceptionMessage = El módulo {0} no contiene la función {1} para convertir en una Ruta. pageNameShouldBeAlphaNumericExceptionMessage = El nombre de la página debe ser un valor alfanumérico válido: {0} +filesHaveChangedMessage = Los siguientes archivos han cambiado: +multipleEndpointsForGuiMessage = Se han definido múltiples puntos de conexión, solo se usará el primero para la GUI. +openingGuiMessage = Abriendo la GUI. +listeningOnEndpointsMessage = Escuchando en los siguientes {0} punto(s) de conexión [{1} hilo(s)]: +specificationMessage = Especificación +documentationMessage = Documentación +restartingServerMessage = Reiniciando el servidor... +doneMessage = Hecho +deprecatedTitleVersionDescriptionWarningMessage = ADVERTENCIA: Título, Versión y Descripción en 'Enable-PodeOpenApi' están obsoletos. Utilice 'Add-PodeOAInfo' en su lugar. +undefinedOpenApiReferencesMessage = Referencias OpenAPI indefinidas: +definitionTagMessage = Definición {0}: +openApiGenerationDocumentErrorMessage = Error en el documento de generación de OpenAPI: +infoTitleMandatoryMessage = info.title es obligatorio. +infoVersionMandatoryMessage = info.version es obligatorio. +missingComponentsMessage = Componente(s) faltante(s) +openApiInfoMessage = Información OpenAPI: +serverLoopingMessage = Bucle del servidor cada {0} segundos +iisShutdownMessage = (Apagado de IIS) +terminatingMessage = Terminando... +eolPowerShellWarningMessage = [ADVERTENCIA] Pode {0} no se ha probado en PowerShell {1}, ya que está en fin de vida. +untestedPowerShellVersionWarningMessage = [ADVERTENCIA] Pode {0} no se ha probado en PowerShell {1}, ya que no estaba disponible cuando se lanzó Pode. '@ \ No newline at end of file diff --git a/src/Locales/fr/Pode.psd1 b/src/Locales/fr/Pode.psd1 index d1576c63c..b9dddc8e3 100644 --- a/src/Locales/fr/Pode.psd1 +++ b/src/Locales/fr/Pode.psd1 @@ -260,4 +260,25 @@ sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: Le chemin sou noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: Aucune logique passée. moduleDoesNotContainFunctionExceptionMessage = Le module {0} ne contient pas la fonction {1} à convertir en une Route. pageNameShouldBeAlphaNumericExceptionMessage = Le nom de la page doit être une valeur alphanumérique valide: {0} +filesHaveChangedMessage = Les fichiers suivants ont été modifiés : +multipleEndpointsForGuiMessage = Plusieurs points de terminaison définis, seul le premier sera utilisé pour l'interface graphique. +openingGuiMessage = Ouverture de l'interface graphique. +listeningOnEndpointsMessage = Écoute sur les {0} point(s) de terminaison suivant(s) [{1} thread(s)] : +specificationMessage = Spécification +documentationMessage = Documentation +restartingServerMessage = Redémarrage du serveur... +doneMessage = Terminé +deprecatedTitleVersionDescriptionWarningMessage = AVERTISSEMENT : Titre, Version et Description sur 'Enable-PodeOpenApi' sont obsolètes. Veuillez utiliser 'Add-PodeOAInfo' à la place. +undefinedOpenApiReferencesMessage = Références OpenAPI non définies : +definitionTagMessage = Définition {0} : +openApiGenerationDocumentErrorMessage = Erreur de génération du document OpenAPI : +infoTitleMandatoryMessage = info.title est obligatoire. +infoVersionMandatoryMessage = info.version est obligatoire. +missingComponentsMessage = Composant(s) manquant(s) +openApiInfoMessage = Informations OpenAPI : +serverLoopingMessage = Boucle du serveur toutes les {0} secondes +iisShutdownMessage = (Arrêt de l'IIS) +terminatingMessage = Terminaison... +eolPowerShellWarningMessage = [AVERTISSEMENT] Pode {0} n'a pas été testé sur PowerShell {1}, car il est en fin de vie. +untestedPowerShellVersionWarningMessage = [AVERTISSEMENT] Pode {0} n'a pas été testé sur PowerShell {1}, car il n'était pas disponible lors de la sortie de Pode. '@ \ No newline at end of file diff --git a/src/Locales/it/Pode.psd1 b/src/Locales/it/Pode.psd1 index 4340db63e..231ededb4 100644 --- a/src/Locales/it/Pode.psd1 +++ b/src/Locales/it/Pode.psd1 @@ -260,4 +260,25 @@ sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: Il percorso s noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: Nessuna logica passata. moduleDoesNotContainFunctionExceptionMessage = Il modulo {0} non contiene la funzione {1} da convertire in una rotta. pageNameShouldBeAlphaNumericExceptionMessage = Il nome della pagina dovrebbe essere un valore alfanumerico valido: {0} +filesHaveChangedMessage = I seguenti file sono stati modificati: +multipleEndpointsForGuiMessage = Sono stati definiti più endpoint, solo il primo sarà utilizzato per la GUI. +openingGuiMessage = Apertura della GUI. +listeningOnEndpointsMessage = In ascolto sui seguenti {0} endpoint [{1} thread]: +specificationMessage = Specifica +documentationMessage = Documentazione +restartingServerMessage = Riavvio del server... +doneMessage = Fatto +deprecatedTitleVersionDescriptionWarningMessage = AVVERTENZA: Titolo, Versione e Descrizione su 'Enable-PodeOpenApi' sono deprecati. Si prega di utilizzare 'Add-PodeOAInfo' invece. +undefinedOpenApiReferencesMessage = Riferimenti OpenAPI non definiti: +definitionTagMessage = Definizione {0}: +openApiGenerationDocumentErrorMessage = Errore nella generazione del documento OpenAPI: +infoTitleMandatoryMessage = info.title è obbligatorio. +infoVersionMandatoryMessage = info.version è obbligatorio. +missingComponentsMessage = Componenti mancanti +openApiInfoMessage = Informazioni OpenAPI: +serverLoopingMessage = Ciclo del server ogni {0} secondi +iisShutdownMessage = (Chiusura IIS) +terminatingMessage = Terminazione... +eolPowerShellWarningMessage = [AVVERTENZA] Pode {0} non è stato testato su PowerShell {1}, poiché è EOL. +untestedPowerShellVersionWarningMessage = [AVVERTENZA] Pode {0} non è stato testato su PowerShell {1}, poiché non era disponibile quando Pode è stato rilasciato. '@ \ No newline at end of file diff --git a/src/Locales/ja/Pode.psd1 b/src/Locales/ja/Pode.psd1 index 911b60557..793ec1b8c 100644 --- a/src/Locales/ja/Pode.psd1 +++ b/src/Locales/ja/Pode.psd1 @@ -253,11 +253,32 @@ maximumConcurrentSchedulesLessThanMinimumExceptionMessage = 最大同時スケ scheduleDoesNotExistExceptionMessage = スケジュール '{0}' は存在しません。 suppliedDateBeforeScheduleStartTimeExceptionMessage = 提供された日付はスケジュールの開始時間 {0} より前です suppliedDateAfterScheduleEndTimeExceptionMessage = 提供された日付はスケジュールの終了時間 {0} の後です -noSemaphoreFoundExceptionMessage = 名前 '{0}' のセマフォが見つかりません +noSemaphoreFoundExceptionMessage = 名前 '{0}' のセマフォが見つかりません noLogicPassedForRouteExceptionMessage = ルートに対してロジックが渡されませんでした: {0} noPathSuppliedForStaticRouteExceptionMessage = [{0}]: 静的ルートに対して提供されたパスがありません。 sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: 静的ルートに対して提供されたソースパスが存在しません: {2} noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: ロジックが渡されませんでした。 moduleDoesNotContainFunctionExceptionMessage = モジュール {0} にはルートに変換する関数 {1} が含まれていません。 pageNameShouldBeAlphaNumericExceptionMessage = ページ名は有効な英数字である必要があります: {0} +filesHaveChangedMessage = 次のファイルが変更されました: +multipleEndpointsForGuiMessage = 複数のエンドポイントが定義されていますが、GUIには最初のエンドポイントのみが使用されます。 +openingGuiMessage = GUIを開いています。 +listeningOnEndpointsMessage = 次の {0} エンドポイントでリッスンしています [{1} スレッド]: +specificationMessage = 仕様 +documentationMessage = ドキュメント +restartingServerMessage = サーバーを再起動しています... +doneMessage = 完了 +deprecatedTitleVersionDescriptionWarningMessage = 警告: 'Enable-PodeOpenApi' のタイトル、バージョン、および説明は非推奨です。代わりに 'Add-PodeOAInfo' を使用してください。 +undefinedOpenApiReferencesMessage = 未定義のOpenAPI参照: +definitionTagMessage = 定義 {0}: +openApiGenerationDocumentErrorMessage = OpenAPI生成ドキュメントエラー: +infoTitleMandatoryMessage = info.title は必須です。 +infoVersionMandatoryMessage = info.version は必須です。 +missingComponentsMessage = 欠落しているコンポーネント +openApiInfoMessage = OpenAPI情報: +serverLoopingMessage = サーバーループ間隔 {0}秒 +iisShutdownMessage = (IIS シャットダウン) +terminatingMessage = 終了中... +eolPowerShellWarningMessage = [警告] Pode {0} は、EOLであるPowerShell {1} でテストされていません。 +untestedPowerShellVersionWarningMessage = [警告] Pode {0} はリリース時に利用可能でなかったため、PowerShell {1} でテストされていません。 '@ \ No newline at end of file diff --git a/src/Locales/ko/Pode.psd1 b/src/Locales/ko/Pode.psd1 index 22afef2b5..cc040056e 100644 --- a/src/Locales/ko/Pode.psd1 +++ b/src/Locales/ko/Pode.psd1 @@ -260,4 +260,25 @@ sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: 정적 경로 noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: 논리가 전달되지 않았습니다. moduleDoesNotContainFunctionExceptionMessage = 모듈 {0}에 경로로 변환할 함수 {1}이(가) 포함되어 있지 않습니다. pageNameShouldBeAlphaNumericExceptionMessage = 페이지 이름은 유효한 알파벳 숫자 값이어야 합니다: {0} +filesHaveChangedMessage = 다음 파일이 변경되었습니다: +multipleEndpointsForGuiMessage = 여러 엔드포인트가 정의되었으며, GUI에는 첫 번째만 사용됩니다. +openingGuiMessage = GUI 열기. +listeningOnEndpointsMessage = 다음 {0} 엔드포인트에서 수신 중 [{1} 스레드]: +specificationMessage = 사양 +documentationMessage = 문서 +restartingServerMessage = 서버를 재시작 중... +doneMessage = 완료 +deprecatedTitleVersionDescriptionWarningMessage = 경고: 'Enable-PodeOpenApi'의 제목, 버전 및 설명이 더 이상 사용되지 않습니다. 대신 'Add-PodeOAInfo'를 사용하십시오. +undefinedOpenApiReferencesMessage = 정의되지 않은 OpenAPI 참조: +definitionTagMessage = 정의 {0}: +openApiGenerationDocumentErrorMessage = OpenAPI 생성 문서 오류: +infoTitleMandatoryMessage = info.title은 필수 항목입니다. +infoVersionMandatoryMessage = info.version은 필수 항목입니다. +missingComponentsMessage = 누락된 구성 요소 +openApiInfoMessage = OpenAPI 정보: +serverLoopingMessage = 서버 루핑 간격 {0}초 +iisShutdownMessage = (IIS 종료) +terminatingMessage = 종료 중... +eolPowerShellWarningMessage = [경고] Pode {0}은 EOL 상태인 PowerShell {1}에서 테스트되지 않았습니다. +untestedPowerShellVersionWarningMessage = [경고] Pode {0}은 출시 당시 사용 가능하지 않았기 때문에 PowerShell {1}에서 테스트되지 않았습니다. '@ \ No newline at end of file diff --git a/src/Locales/pl/Pode.psd1 b/src/Locales/pl/Pode.psd1 index fa7fe75b6..63e256b1c 100644 --- a/src/Locales/pl/Pode.psd1 +++ b/src/Locales/pl/Pode.psd1 @@ -260,4 +260,25 @@ sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: Dostarczona noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: Brak logiki przekazanej. moduleDoesNotContainFunctionExceptionMessage = Moduł {0} nie zawiera funkcji {1} do konwersji na trasę. pageNameShouldBeAlphaNumericExceptionMessage = Nazwa strony powinna być poprawną wartością alfanumeryczną: {0} +filesHaveChangedMessage = Następujące pliki zostały zmienione: +multipleEndpointsForGuiMessage = Zdefiniowano wiele punktów końcowych, tylko pierwszy będzie używany dla GUI. +openingGuiMessage = Otwieranie GUI. +listeningOnEndpointsMessage = Nasłuchiwanie na następujących {0} punktach końcowych [{1} wątków]: +specificationMessage = Specyfikacja +documentationMessage = Dokumentacja +restartingServerMessage = Restartowanie serwera... +doneMessage = Gotowe +deprecatedTitleVersionDescriptionWarningMessage = OSTRZEŻENIE: Tytuł, Wersja i Opis w 'Enable-PodeOpenApi' są przestarzałe. Proszę użyć 'Add-PodeOAInfo' zamiast tego. +undefinedOpenApiReferencesMessage = Niezdefiniowane odwołania OpenAPI: +definitionTagMessage = Definicja {0}: +openApiGenerationDocumentErrorMessage = Błąd generowania dokumentu OpenAPI: +infoTitleMandatoryMessage = info.title jest obowiązkowe. +infoVersionMandatoryMessage = info.version jest obowiązkowe. +missingComponentsMessage = Brakujące komponenty +openApiInfoMessage = Informacje OpenAPI: +serverLoopingMessage = Pętla serwera co {0} sekund +iisShutdownMessage = (Zamykanie IIS) +terminatingMessage = Kończenie... +eolPowerShellWarningMessage = [OSTRZEŻENIE] Pode {0} nie był testowany na PowerShell {1}, ponieważ jest to wersja EOL. +untestedPowerShellVersionWarningMessage = [OSTRZEŻENIE] Pode {0} nie był testowany na PowerShell {1}, ponieważ nie był dostępny, gdy Pode został wydany. '@ \ No newline at end of file diff --git a/src/Locales/pt/Pode.psd1 b/src/Locales/pt/Pode.psd1 index 9180d3c8a..4f5a79219 100644 --- a/src/Locales/pt/Pode.psd1 +++ b/src/Locales/pt/Pode.psd1 @@ -260,4 +260,25 @@ sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: O caminho de noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: Nenhuma lógica passada. moduleDoesNotContainFunctionExceptionMessage = O módulo {0} não contém a função {1} para converter em uma Rota. pageNameShouldBeAlphaNumericExceptionMessage = O nome da página deve ser um valor alfanumérico válido: {0} +filesHaveChangedMessage = Os seguintes arquivos foram alterados: +multipleEndpointsForGuiMessage = Múltiplos endpoints definidos, apenas o primeiro será usado para a GUI. +openingGuiMessage = Abrindo a GUI. +listeningOnEndpointsMessage = Ouvindo nos seguintes {0} endpoint(s) [{1} thread(s)]: +specificationMessage = Especificação +documentationMessage = Documentação +restartingServerMessage = Reiniciando o servidor... +doneMessage = Concluído +deprecatedTitleVersionDescriptionWarningMessage = AVISO: Título, Versão e Descrição em 'Enable-PodeOpenApi' estão obsoletos. Utilize 'Add-PodeOAInfo' em vez disso. +undefinedOpenApiReferencesMessage = Referências OpenAPI indefinidas: +definitionTagMessage = Definição {0}: +openApiGenerationDocumentErrorMessage = Erro no documento de geração do OpenAPI: +infoTitleMandatoryMessage = info.title é obrigatório. +infoVersionMandatoryMessage = info.version é obrigatório. +missingComponentsMessage = Componente(s) ausente(s) +openApiInfoMessage = Informações OpenAPI: +serverLoopingMessage = Looping do servidor a cada {0} segundos +iisShutdownMessage = (Desligamento do IIS) +terminatingMessage = Terminando... +eolPowerShellWarningMessage = [AVISO] Pode {0} não foi testado no PowerShell {1}, pois está em EOL. +untestedPowerShellVersionWarningMessage = [AVISO] Pode {0} não foi testado no PowerShell {1}, pois não estava disponível quando o Pode foi lançado. '@ \ No newline at end of file diff --git a/src/Locales/zn/Pode.psd1 b/src/Locales/zn/Pode.psd1 index 90d6727e1..b51b5f4fa 100644 --- a/src/Locales/zn/Pode.psd1 +++ b/src/Locales/zn/Pode.psd1 @@ -260,4 +260,25 @@ sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: 为静态路 noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: 没有传递逻辑。 moduleDoesNotContainFunctionExceptionMessage = 模块 {0} 不包含要转换为路径的函数 {1}。 pageNameShouldBeAlphaNumericExceptionMessage = 页面名称应为有效的字母数字值: {0} +filesHaveChangedMessage = 以下文件已更改: +multipleEndpointsForGuiMessage = 定义了多个端点,仅第一个将用于 GUI。 +openingGuiMessage = 正在打开 GUI。 +listeningOnEndpointsMessage = 正在监听以下 {0} 个端点 [{1} 个线程]: +specificationMessage = 规格 +documentationMessage = 文档 +restartingServerMessage = 正在重启服务器... +doneMessage = 完成 +deprecatedTitleVersionDescriptionWarningMessage = 警告: 'Enable-PodeOpenApi' 的标题、版本和描述已被弃用。请改用 'Add-PodeOAInfo'。 +undefinedOpenApiReferencesMessage = 未定义的 OpenAPI 引用: +definitionTagMessage = 定义 {0}: +openApiGenerationDocumentErrorMessage = OpenAPI 生成文档错误: +infoTitleMandatoryMessage = info.title 是必填项。 +infoVersionMandatoryMessage = info.version 是必填项。 +missingComponentsMessage = 缺少的组件 +openApiInfoMessage = OpenAPI 信息: +serverLoopingMessage = 服务器每 {0} 秒循环一次 +iisShutdownMessage = (IIS 关闭) +terminatingMessage = 正在终止... +eolPowerShellWarningMessage = [警告] Pode {0} 未在 PowerShell {1} 上测试,因为它已达到 EOL。 +untestedPowerShellVersionWarningMessage = [警告] Pode {0} 未在 PowerShell {1} 上测试,因为 Pode 发布时该版本不可用。 '@ \ No newline at end of file diff --git a/src/Private/FileMonitor.ps1 b/src/Private/FileMonitor.ps1 index 1415b567a..7ebfcdc9d 100644 --- a/src/Private/FileMonitor.ps1 +++ b/src/Private/FileMonitor.ps1 @@ -68,7 +68,8 @@ function Start-PodeFileMonitor { # if enabled, show the files that triggered the restart if ($Event.MessageData.FileSettings.ShowFiles) { if (!$Event.MessageData.Quiet) { - Write-PodeHost 'The following files have changed:' -ForegroundColor Magenta + # The following files have changed + Write-PodeHost $PodeLocale.filesHaveChangedMessage -ForegroundColor Magenta foreach ($file in $Event.MessageData.FileSettings.Files) { Write-PodeHost "> $($file)" -ForegroundColor Magenta diff --git a/src/Private/Gui.ps1 b/src/Private/Gui.ps1 index 38265052c..30ecd0d45 100644 --- a/src/Private/Gui.ps1 +++ b/src/Private/Gui.ps1 @@ -16,7 +16,8 @@ function Start-PodeGuiRunspace { # if there are multiple endpoints, flag warning we're only using the first - unless explicitly set if ($null -eq $PodeContext.Server.Gui.Endpoint) { if ($PodeContext.Server.Endpoints.Values.Count -gt 1) { - Write-PodeHost 'Multiple endpoints defined, only the first will be used for the GUI' -ForegroundColor Yellow + # Multiple endpoints defined, only the first will be used for the GUI + Write-PodeHost $PodeLocale.multipleEndpointsForGuiMessage -ForegroundColor Yellow } } @@ -120,7 +121,8 @@ function Start-PodeGuiRunspace { } # display the form - Write-PodeHost 'Opening GUI' -ForegroundColor Yellow + # Opening the GUI + Write-PodeHost $PodeLocale.openingGuiMessage -ForegroundColor Yellow $null = $form.ShowDialog() Start-Sleep -Seconds 1 } diff --git a/src/Private/Helpers.ps1 b/src/Private/Helpers.ps1 index 8b45d1b85..af33276a4 100644 --- a/src/Private/Helpers.ps1 +++ b/src/Private/Helpers.ps1 @@ -879,7 +879,7 @@ function Close-PodeServerInternal { Remove-PodePSDrive if ($ShowDoneMessage -and ($PodeContext.Server.Types.Length -gt 0) -and !$PodeContext.Server.IsServerless) { - Write-PodeHost ' Done' -ForegroundColor Green + Write-PodeHost $PodeLocale.doneMessage -ForegroundColor Green } } @@ -2979,7 +2979,7 @@ function Get-PodeHandler { function Convert-PodeFileToScriptBlock { param( [Parameter(Mandatory = $true)] - [Alias("FilePath")] + [Alias('FilePath')] [string] $Path ) @@ -3027,7 +3027,7 @@ function Convert-PodeQueryStringToHashTable { function Get-PodeAstFromFile { param( [Parameter(Mandatory = $true)] - [Alias("FilePath")] + [Alias('FilePath')] [string] $Path ) @@ -3606,14 +3606,16 @@ function Test-PodeVersionPwshEOL { $isEol = "$($psVersion.Major).$($psVersion.Minor)" -in $eolVersions if ($isEol) { - Write-PodeHost "[WARNING] Pode $(Get-PodeVersion) has not been tested on PowerShell $($PSVersionTable.PSVersion), as it is EOL." -ForegroundColor Yellow + # [WARNING] Pode version has not been tested on PowerShell version, as it is EOL + Write-PodeHost ($PodeLocale.eolPowerShellWarningMessage -f $PodeVersion, $PSVersion) -ForegroundColor Yellow } $SupportedVersions = $moduleManifest.PrivateData.PwshVersions.Supported -split ',' $isSupported = "$($psVersion.Major).$($psVersion.Minor)" -in $SupportedVersions if ((! $isSupported) -and (! $isEol) -and $ReportUntested) { - Write-PodeHost "[WARNING] Pode $(Get-PodeVersion) has not been tested on PowerShell $($PSVersionTable.PSVersion), as it was not available when Pode was released." -ForegroundColor Yellow + # [WARNING] Pode version has not been tested on PowerShell version, as it was not available when Pode was released + Write-PodeHost ($PodeLocale.untestedPowerShellVersionWarningMessage -f $PodeVersion, $PSVersion) -ForegroundColor Yellow } return @{ diff --git a/src/Private/OpenApi.ps1 b/src/Private/OpenApi.ps1 index 1447db4c5..00c4be6a1 100644 --- a/src/Private/OpenApi.ps1 +++ b/src/Private/OpenApi.ps1 @@ -2038,31 +2038,37 @@ function Test-PodeOADefinitionInternal { # Check if the validation result indicates issues if (! $definitionIssues.valid) { # Print a header for undefined OpenAPI references - Write-PodeHost 'Undefined OpenAPI References :' -ForegroundColor Red + # Undefined OpenAPI References + Write-PodeHost $PodeLocale.undefinedOpenApiReferencesMessage -ForegroundColor Red # Iterate over each issue found in the definitions foreach ($tag in $definitionIssues.issues.keys) { - Write-PodeHost "Definition $tag :" -ForegroundColor Red + # Definition tag + Write-PodeHost ($PodeLocale.definitionTagMessage -f $tag) -ForegroundColor Red # Check and display issues related to OpenAPI document generation error if ($definitionIssues.issues[$tag].definition ) { - Write-PodeHost ' OpenAPI generation document error: ' -ForegroundColor Red + # OpenAPI generation document error + Write-PodeHost $PodeLocale.openApiGenerationDocumentErrorMessage -ForegroundColor Red Write-PodeHost " $($definitionIssues.issues[$tag].definition)" -ForegroundColor Red } # Check for missing mandatory 'title' field if ($definitionIssues.issues[$tag].title ) { - Write-PodeHost ' info.title is mandatory' -ForegroundColor Red + # info.title is mandatory + Write-PodeHost $PodeLocale.infoTitleMandatoryMessage -ForegroundColor Red } # Check for missing mandatory 'version' field if ($definitionIssues.issues[$tag].version ) { - Write-PodeHost ' info.version is mandatory' -ForegroundColor Red + # info.version is mandatory + Write-PodeHost $PodeLocale.infoVersionMandatoryMessage -ForegroundColor Red } # Check for missing components and list them if ($definitionIssues.issues[$tag].components ) { - Write-PodeHost ' Missing component(s)' -ForegroundColor Red + # Missing component(s) + Write-PodeHost $PodeLocale.missingComponentsMessage -ForegroundColor Red foreach ($key in $definitionIssues.issues[$tag].components.keys) { $occurences = $definitionIssues.issues[$tag].components[$key] # Adjust occurrence count based on schema validation setting diff --git a/src/Private/Server.ps1 b/src/Private/Server.ps1 index 60631c411..82a971288 100644 --- a/src/Private/Server.ps1 +++ b/src/Private/Server.ps1 @@ -149,7 +149,9 @@ function Start-PodeInternalServer { # state what endpoints are being listened on if ($endpoints.Length -gt 0) { - Write-PodeHost "Listening on the following $($endpoints.Length) endpoint(s) [$($PodeContext.Threads.General) thread(s)]:" -ForegroundColor Yellow + + # Listening on the following $endpoints.Length endpoint(s) [$PodeContext.Threads.General thread(s)] + Write-PodeHost ($PodeLocale.listeningOnEndpointsMessage -f $endpoints.Length, $PodeContext.Threads.General) -ForegroundColor Yellow $endpoints | ForEach-Object { $flags = @() if ($_.DualMode) { @@ -171,28 +173,32 @@ function Start-PodeInternalServer { if ( $bookmarks) { Write-PodeHost if (!$OpenAPIHeader) { - Write-PodeHost 'OpenAPI Info:' -ForegroundColor Yellow + # OpenAPI Info + Write-PodeHost $PodeLocale.openApiInfoMessage -ForegroundColor Yellow $OpenAPIHeader = $true } Write-PodeHost " '$key':" -ForegroundColor Yellow if ($bookmarks.route.count -gt 1 -or $bookmarks.route.Endpoint.Name) { - Write-PodeHost ' - Specification:' -ForegroundColor Yellow + # Specification + Write-PodeHost " - $($PodeLocale.specificationMessage):" -ForegroundColor Yellow foreach ($endpoint in $bookmarks.route.Endpoint) { Write-PodeHost " . $($endpoint.Protocol)://$($endpoint.Address)$($bookmarks.openApiUrl)" -ForegroundColor Yellow } - Write-PodeHost ' - Documentation:' -ForegroundColor Yellow + # Documentation + Write-PodeHost " - $($PodeLocale.documentationMessage):" -ForegroundColor Yellow foreach ($endpoint in $bookmarks.route.Endpoint) { Write-PodeHost " . $($endpoint.Protocol)://$($endpoint.Address)$($bookmarks.path)" -ForegroundColor Yellow } } else { - Write-PodeHost ' - Specification:' -ForegroundColor Yellow + # Specification + Write-PodeHost " - $($PodeLocale.specificationMessage):" -ForegroundColor Yellow $endpoints | ForEach-Object { $url = [System.Uri]::new( [System.Uri]::new($_.Url), $bookmarks.openApiUrl) Write-PodeHost " . $url" -ForegroundColor Yellow } - Write-PodeHost ' - Documentation:' -ForegroundColor Yellow + Write-PodeHost " - $($PodeLocale.documentationMessage):" -ForegroundColor Yellow $endpoints | ForEach-Object { $url = [System.Uri]::new( [System.Uri]::new($_.Url), $bookmarks.path) Write-PodeHost " . $url" -ForegroundColor Yellow @@ -211,7 +217,8 @@ function Start-PodeInternalServer { function Restart-PodeInternalServer { try { # inform restart - Write-PodeHost 'Restarting server...' -NoNewline -ForegroundColor Cyan + # Restarting server... + Write-PodeHost $PodeLocale.restartingServerMessage -NoNewline -ForegroundColor Cyan # run restart event hooks Invoke-PodeEvent -Type Restart @@ -333,7 +340,7 @@ function Restart-PodeInternalServer { $PodeContext.Server.Configuration = Open-PodeConfiguration -Context $PodeContext # done message - Write-PodeHost ' Done' -ForegroundColor Green + Write-PodeHost $PodeLocale.doneMessage -ForegroundColor Green # restart the server $PodeContext.Metrics.Server.RestartCount++ diff --git a/src/Private/ServiceServer.ps1 b/src/Private/ServiceServer.ps1 index 15dfe32ea..629de4484 100644 --- a/src/Private/ServiceServer.ps1 +++ b/src/Private/ServiceServer.ps1 @@ -6,7 +6,8 @@ function Start-PodeServiceServer { } # state we're running - Write-PodeHost "Server looping every $($PodeContext.Server.Interval)secs" -ForegroundColor Yellow + # Server looping every $PodeContext.Server.Interval secs + Write-PodeHost ($PodeLocale.serverLoopingMessage -f $PodeContext.Server.Interval) -ForegroundColor Yellow # script for the looping server $serverScript = { diff --git a/src/Public/Core.ps1 b/src/Public/Core.ps1 index 3d7f274c6..fec879baa 100644 --- a/src/Public/Core.ps1 +++ b/src/Public/Core.ps1 @@ -207,10 +207,12 @@ function Start-PodeServer { } if ($PodeContext.Server.IsIIS -and $PodeContext.Server.IIS.Shutdown) { - Write-PodeHost '(IIS Shutdown) ' -NoNewline -ForegroundColor Yellow + # (IIS Shutdown) + Write-PodeHost $PodeLocale.iisShutdownMessage -NoNewline -ForegroundColor Yellow + Write-PodeHost ' ' -NoNewline } - - Write-PodeHost 'Terminating...' -NoNewline -ForegroundColor Yellow + # Terminating... + Write-PodeHost $PodeLocale.terminatingMessage -NoNewline -ForegroundColor Yellow Invoke-PodeEvent -Type Terminate $PodeContext.Tokens.Cancellation.Cancel() } diff --git a/src/Public/OpenApi.ps1 b/src/Public/OpenApi.ps1 index d69a926c2..e5a386caa 100644 --- a/src/Public/OpenApi.ps1 +++ b/src/Public/OpenApi.ps1 @@ -181,7 +181,8 @@ function Enable-PodeOpenApi { if (! $Version) { $Version = '0.0.0' } - Write-PodeHost -ForegroundColor Yellow "WARNING: Title, Version, and Description on 'Enable-PodeOpenApi' are deprecated. Please use 'Add-PodeOAInfo' instead." + # WARNING: Title, Version, and Description on 'Enable-PodeOpenApi' are deprecated. Please use 'Add-PodeOAInfo' instead + Write-PodeHost $PodeLocale.deprecatedTitleVersionDescriptionWarningMessage -ForegroundColor Yellow } if ( $DefinitionTag -ine $PodeContext.Server.OpenAPI.DefaultDefinitionTag ) { $PodeContext.Server.OpenAPI.Definitions[$DefinitionTag] = Get-PodeOABaseObject From 9671aefa19211ca31728f59303994b1cb5a2b798 Mon Sep 17 00:00:00 2001 From: mdaneri Date: Thu, 6 Jun 2024 08:49:05 -0700 Subject: [PATCH 18/67] fix Locales escaping $ --- Convert-HashtableToPsd1.ps1 | 39 ++++++++++++++++++++++++++++ examples/FileBrowser/FileBrowser.ps1 | 2 +- src/Locales/ar/Pode.psd1 | 4 +-- src/Locales/de/Pode.psd1 | 4 +-- src/Locales/en/Pode.psd1 | 4 +-- src/Locales/es/Pode.psd1 | 4 +-- src/Locales/fr/Pode.psd1 | 4 +-- src/Locales/it/Pode.psd1 | 4 +-- src/Locales/ja/Pode.psd1 | 4 +-- src/Locales/ko/Pode.psd1 | 4 +-- src/Locales/pl/Pode.psd1 | 4 +-- src/Locales/pt/Pode.psd1 | 4 +-- src/Locales/zn/Pode.psd1 | 4 +-- 13 files changed, 62 insertions(+), 23 deletions(-) create mode 100644 Convert-HashtableToPsd1.ps1 diff --git a/Convert-HashtableToPsd1.ps1 b/Convert-HashtableToPsd1.ps1 new file mode 100644 index 000000000..1fab320b2 --- /dev/null +++ b/Convert-HashtableToPsd1.ps1 @@ -0,0 +1,39 @@ + +param ( + [Parameter(Mandatory = $false)] + [string]$Path = 'c:\Users\m_dan\Documents\GitHub\Pode\src\Locales\en\Pode.psd1 ' +) +$PodeFileContent = Get-content $Path -raw +$value = Invoke-Expression $podeFileContent + + +function Convert-HashTable { + param ( + [Parameter(Mandatory = $true)] + [hashtable]$hashtable + ) + + + $sb = New-Object System.Text.StringBuilder + $sb.AppendLine('@{') + + foreach ($key in $hashtable.Keys) { + $value = $hashtable[$key] + + if ($value -is [hashtable]) { + $nestedPsd1 = Convert-HashTable -hashtable $value + $sb.AppendLine(" $key = $nestedPsd1") | Out-Null + } + else { + $sb.AppendLine(" $key = `"$($value -replace '$','`$')`"") | Out-Null + } + } + + $sb.AppendLine('}') + return $sb.ToString() +} + + +$sb = Convert-HashTable -hashtable $value +Move-Item -path $Path -destination "$Path.old" +Set-Content -Path $Path -Value $sb \ No newline at end of file diff --git a/examples/FileBrowser/FileBrowser.ps1 b/examples/FileBrowser/FileBrowser.ps1 index b38befb8f..56564f805 100644 --- a/examples/FileBrowser/FileBrowser.ps1 +++ b/examples/FileBrowser/FileBrowser.ps1 @@ -2,7 +2,7 @@ $FileBrowserPath = Split-Path -Parent -Path $MyInvocation.MyCommand.Path $podePath = Split-Path -Parent -Path (Split-Path -Parent -Path $FileBrowserPath) if (Test-Path -Path "$($podePath)/src/Pode.psm1" -PathType Leaf) { - Import-Module "$($podePath)/src/Pode.psm1" -Force -ErrorAction Stop -ArgumentList 'ja' + Import-Module "$($podePath)/src/Pode.psm1" -Force -ErrorAction Stop #-ArgumentList 'ja' } else { Import-Module -Name 'Pode' -ErrorAction Stop diff --git a/src/Locales/ar/Pode.psd1 b/src/Locales/ar/Pode.psd1 index 0940a3697..773cdc984 100644 --- a/src/Locales/ar/Pode.psd1 +++ b/src/Locales/ar/Pode.psd1 @@ -56,7 +56,7 @@ invalidMiddlewareTypeExceptionMessage = أحد مكونات Middleware المق hashtableMiddlewareNoLogicExceptionMessage = مكون Middleware من نوع Hashtable المقدم لا يحتوي على منطق معرف. invalidLogicTypeInHashtableMiddlewareExceptionMessage = مكون Middleware من نوع Hashtable المقدم يحتوي على نوع منطق غير صالح. كان المتوقع ScriptBlock، ولكن تم الحصول عليه: {0} scopedVariableAlreadyDefinedExceptionMessage = المتغير المحدد بالفعل معرف: {0} -valueForUsingVariableNotFoundExceptionMessage = لم يتم العثور على قيمة لـ '$using:{0}'. +valueForUsingVariableNotFoundExceptionMessage = لم يتم العثور على قيمة لـ '`$using:{0}'. unlockSecretRequiredExceptionMessage = خاصية 'UnlockSecret' مطلوبة عند استخدام Microsoft.PowerShell.SecretStore unlockSecretButNoScriptBlockExceptionMessage = تم تقديم سر الفتح لنوع خزنة سرية مخصصة، ولكن لم يتم تقديم ScriptBlock الفتح. noUnlockScriptBlockForVaultExceptionMessage = لم يتم تقديم ScriptBlock الفتح لفتح الخزنة '{0}' @@ -146,7 +146,7 @@ routeParameterNeedsValidScriptblockExceptionMessage = المعامل Route يت noCommandsSuppliedToConvertToRoutesExceptionMessage = لم يتم توفير أي أوامر لتحويلها إلى طرق. nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = مطلوب ScriptBlock غير فارغ لإنشاء مسار الصفحة. sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = يمكن تكوين SSE فقط على الطلبات التي تحتوي على قيمة رأس Accept النص/تيار الأحداث. -sseConnectionNameRequiredExceptionMessage = مطلوب اسم اتصال SSE، إما من -Name أو $WebEvent.Sse.Name +sseConnectionNameRequiredExceptionMessage = مطلوب اسم اتصال SSE، إما من -Name أو `$WebEvent.Sse.Name sseFailedToBroadcastExceptionMessage = فشل بث SSE بسبب مستوى البث SSE المحدد لـ {0}: {1} podeNotInitializedExceptionMessage = لم يتم تهيئة Pode. invalidTaskTypeExceptionMessage = نوع المهمة غير صالح، المتوقع إما [System.Threading.Tasks.Task] أو [hashtable]. diff --git a/src/Locales/de/Pode.psd1 b/src/Locales/de/Pode.psd1 index dcfd18c46..a94c6c673 100644 --- a/src/Locales/de/Pode.psd1 +++ b/src/Locales/de/Pode.psd1 @@ -56,7 +56,7 @@ invalidMiddlewareTypeExceptionMessage = Eines der angegebenen Middleware-Objekte hashtableMiddlewareNoLogicExceptionMessage = Eine angegebene Hashtable-Middleware enthält keine definierte Logik. invalidLogicTypeInHashtableMiddlewareExceptionMessage = Eine angegebene Hashtable-Middleware enthält einen ungültigen Logik-Typ. Erwartet wurde ein ScriptBlock, aber erhalten wurde: {0}. scopedVariableAlreadyDefinedExceptionMessage = Die Bereichsvariable ist bereits definiert: {0}. -valueForUsingVariableNotFoundExceptionMessage = Der Wert für '$using:{0}' konnte nicht gefunden werden. +valueForUsingVariableNotFoundExceptionMessage = Der Wert für '`$using:{0}' konnte nicht gefunden werden. unlockSecretRequiredExceptionMessage = Eine 'UnlockSecret'-Eigenschaft ist erforderlich, wenn Microsoft.PowerShell.SecretStore verwendet wird. unlockSecretButNoScriptBlockExceptionMessage = Unlock secret für benutzerdefinierten Secret Vault-Typ angegeben, aber kein Unlock ScriptBlock bereitgestellt. noUnlockScriptBlockForVaultExceptionMessage = Kein Unlock ScriptBlock für das Entsperren des Tresors '{0}' bereitgestellt. @@ -146,7 +146,7 @@ routeParameterNeedsValidScriptblockExceptionMessage = Der Route-Parameter benöt noCommandsSuppliedToConvertToRoutesExceptionMessage = Keine Befehle zur Umwandlung in Routen bereitgestellt. nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = Ein nicht leerer ScriptBlock ist erforderlich, um eine Seitenroute zu erstellen. sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSE kann nur auf Anfragen mit einem Accept-Header-Wert von text/event-stream konfiguriert werden. -sseConnectionNameRequiredExceptionMessage = Ein SSE-Verbindungsname ist erforderlich, entweder von -Name oder $WebEvent.Sse.Name +sseConnectionNameRequiredExceptionMessage = Ein SSE-Verbindungsname ist erforderlich, entweder von -Name oder ``$WebEvent.Sse.Namee sseFailedToBroadcastExceptionMessage = SSE konnte aufgrund des definierten SSE-Broadcast-Levels für {0}: {1} nicht übertragen werden. podeNotInitializedExceptionMessage = Pode wurde nicht initialisiert. invalidTaskTypeExceptionMessage = Aufgabentyp ist ungültig, erwartet entweder [System.Threading.Tasks.Task] oder [hashtable] diff --git a/src/Locales/en/Pode.psd1 b/src/Locales/en/Pode.psd1 index 80ded57b6..841fdd8f3 100644 --- a/src/Locales/en/Pode.psd1 +++ b/src/Locales/en/Pode.psd1 @@ -56,7 +56,7 @@ invalidMiddlewareTypeExceptionMessage = One of the Middlewares supplied is an in hashtableMiddlewareNoLogicExceptionMessage = A Hashtable Middleware supplied has no Logic defined. invalidLogicTypeInHashtableMiddlewareExceptionMessage = A Hashtable Middleware supplied has an invalid Logic type. Expected ScriptBlock, but got: {0} scopedVariableAlreadyDefinedExceptionMessage = Scoped Variable already defined: {0} -valueForUsingVariableNotFoundExceptionMessage = Value for '$using:{0}' could not be found. +valueForUsingVariableNotFoundExceptionMessage = Value for '`$using:{0}' could not be found. unlockSecretRequiredExceptionMessage = An 'UnlockSecret' property is required when using Microsoft.PowerShell.SecretStore unlockSecretButNoScriptBlockExceptionMessage = Unlock secret supplied for custom Secret Vault type, but not Unlock ScriptBlock supplied. noUnlockScriptBlockForVaultExceptionMessage = No Unlock ScriptBlock supplied for unlocking the vault '{0}' @@ -146,7 +146,7 @@ routeParameterNeedsValidScriptblockExceptionMessage = The Route parameter needs noCommandsSuppliedToConvertToRoutesExceptionMessage = No commands supplied to convert to Routes. nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = A non-empty ScriptBlock is required to create a Page Route. sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSE can only be configured on requests with an Accept header value of text/event-stream -sseConnectionNameRequiredExceptionMessage = An SSE connection Name is required, either from -Name or $WebEvent.Sse.Name +sseConnectionNameRequiredExceptionMessage = An SSE connection Name is required, either from -Name or `$WebEvent.Sse.Name sseFailedToBroadcastExceptionMessage = SSE failed to broadcast due to defined SSE broadcast level for {0}: {1} podeNotInitializedExceptionMessage = Pode has not been initialized. invalidTaskTypeExceptionMessage = Task type is invalid, expected either [System.Threading.Tasks.Task] or [hashtable] diff --git a/src/Locales/es/Pode.psd1 b/src/Locales/es/Pode.psd1 index 70b79a29a..2f3513626 100644 --- a/src/Locales/es/Pode.psd1 +++ b/src/Locales/es/Pode.psd1 @@ -56,7 +56,7 @@ invalidMiddlewareTypeExceptionMessage = Uno de los Middlewares suministrados es hashtableMiddlewareNoLogicExceptionMessage = Un Middleware Hashtable suministrado no tiene lógica definida. invalidLogicTypeInHashtableMiddlewareExceptionMessage = Un Middleware Hashtable suministrado tiene un tipo de lógica no válido. Se esperaba ScriptBlock, pero se obtuvo: {0} scopedVariableAlreadyDefinedExceptionMessage = La variable con alcance ya está definida: {0} -valueForUsingVariableNotFoundExceptionMessage = No se pudo encontrar el valor para '$using:{0}'. +valueForUsingVariableNotFoundExceptionMessage = No se pudo encontrar el valor para '`$using:{0}'. unlockSecretRequiredExceptionMessage = Se requiere una propiedad 'UnlockSecret' al usar Microsoft.PowerShell.SecretStore unlockSecretButNoScriptBlockExceptionMessage = Se suministró un secreto de desbloqueo para el tipo de bóveda secreta personalizada, pero no se suministró ningún ScriptBlock de desbloqueo. noUnlockScriptBlockForVaultExceptionMessage = No se suministró ningún ScriptBlock de desbloqueo para desbloquear la bóveda '{0}' @@ -146,7 +146,7 @@ routeParameterNeedsValidScriptblockExceptionMessage = El parámetro Route necesi noCommandsSuppliedToConvertToRoutesExceptionMessage = No se proporcionaron comandos para convertir a Rutas. nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = Se requiere un ScriptBlock no vacío para crear una Ruta de Página. sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSE solo se puede configurar en solicitudes con un valor de encabezado Accept de text/event-stream. -sseConnectionNameRequiredExceptionMessage = Se requiere un nombre de conexión SSE, ya sea de -Name o $WebEvent.Sse.Name. +sseConnectionNameRequiredExceptionMessage = Se requiere un nombre de conexión SSE, ya sea de -Name o $`$WebEvent.Sse.Name sseFailedToBroadcastExceptionMessage = SSE no pudo transmitir debido al nivel de transmisión SSE definido para {0}: {1}. podeNotInitializedExceptionMessage = Pode no se ha inicializado. invalidTaskTypeExceptionMessage = El tipo de tarea no es válido, se esperaba [System.Threading.Tasks.Task] o [hashtable]. diff --git a/src/Locales/fr/Pode.psd1 b/src/Locales/fr/Pode.psd1 index b9dddc8e3..c6c9ebb43 100644 --- a/src/Locales/fr/Pode.psd1 +++ b/src/Locales/fr/Pode.psd1 @@ -56,7 +56,7 @@ invalidMiddlewareTypeExceptionMessage = Un des Middlewares fournis est d'un type hashtableMiddlewareNoLogicExceptionMessage = Un Middleware Hashtable fourni n'a aucune logique définie. invalidLogicTypeInHashtableMiddlewareExceptionMessage = Un Middleware Hashtable fourni a un type de logique non valide. Attendu ScriptBlock, mais a obtenu : {0} scopedVariableAlreadyDefinedExceptionMessage = La variable à portée est déjà définie : {0} -valueForUsingVariableNotFoundExceptionMessage = Valeur pour '$using:{0}' introuvable. +valueForUsingVariableNotFoundExceptionMessage = Valeur pour '`$using:{0}' introuvable. unlockSecretRequiredExceptionMessage = Une propriété 'UnlockSecret' est requise lors de l'utilisation de Microsoft.PowerShell.SecretStore unlockSecretButNoScriptBlockExceptionMessage = Secret de déverrouillage fourni pour le type de coffre-fort personnalisé, mais aucun ScriptBlock de déverrouillage fourni. noUnlockScriptBlockForVaultExceptionMessage = Aucun ScriptBlock de déverrouillage fourni pour déverrouiller le coffre '{0}' @@ -146,7 +146,7 @@ routeParameterNeedsValidScriptblockExceptionMessage = Le paramètre de la route noCommandsSuppliedToConvertToRoutesExceptionMessage = Aucune commande fournie pour convertir en routes. nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = Un ScriptBlock non vide est requis pour créer une route de page. sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSE ne peut être configuré que sur les requêtes avec une valeur d'en-tête Accept de text/event-stream. -sseConnectionNameRequiredExceptionMessage = Un nom de connexion SSE est requis, soit de -Name soit de $WebEvent.Sse.Name. +sseConnectionNameRequiredExceptionMessage = Un nom de connexion SSE est requis, soit de -Name soit de $`$WebEvent.Sse.Name sseFailedToBroadcastExceptionMessage = SSE a échoué à diffuser en raison du niveau de diffusion SSE défini pour {0} : {1}. podeNotInitializedExceptionMessage = Pode n'a pas été initialisé. invalidTaskTypeExceptionMessage = Le type de tâche n'est pas valide, attendu [System.Threading.Tasks.Task] ou [hashtable]. diff --git a/src/Locales/it/Pode.psd1 b/src/Locales/it/Pode.psd1 index 231ededb4..da2d67c0a 100644 --- a/src/Locales/it/Pode.psd1 +++ b/src/Locales/it/Pode.psd1 @@ -56,7 +56,7 @@ invalidMiddlewareTypeExceptionMessage = Uno dei Middleware forniti è di un tipo hashtableMiddlewareNoLogicExceptionMessage = Un Middleware di tipo Hashtable fornito non ha una logica definita. invalidLogicTypeInHashtableMiddlewareExceptionMessage = Un Middleware di tipo Hashtable fornito ha un tipo di logica non valido. Previsto ScriptBlock, ma ottenuto: {0} scopedVariableAlreadyDefinedExceptionMessage = Variabile con ambito già definita: {0} -valueForUsingVariableNotFoundExceptionMessage = Impossibile trovare il valore per '$using:{0}'. +valueForUsingVariableNotFoundExceptionMessage = Impossibile trovare il valore per '`$using:{0}'. unlockSecretRequiredExceptionMessage = È necessaria una proprietà 'UnlockSecret' quando si utilizza Microsoft.PowerShell.SecretStore unlockSecretButNoScriptBlockExceptionMessage = Segreto di sblocco fornito per tipo di cassaforte segreta personalizzata, ma nessun ScriptBlock di sblocco fornito. noUnlockScriptBlockForVaultExceptionMessage = Nessun ScriptBlock di sblocco fornito per sbloccare la cassaforte '{0}' @@ -146,7 +146,7 @@ routeParameterNeedsValidScriptblockExceptionMessage = Il parametro della rotta r noCommandsSuppliedToConvertToRoutesExceptionMessage = Nessun comando fornito per convertirlo in rotte. nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = È richiesto uno ScriptBlock non vuoto per creare una rotta di pagina. sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSE può essere configurato solo su richieste con un valore di intestazione Accept di text/event-stream. -sseConnectionNameRequiredExceptionMessage = È richiesto un nome di connessione SSE, sia da -Name che da $WebEvent.Sse.Name. +sseConnectionNameRequiredExceptionMessage = È richiesto un nome di connessione SSE, sia da -Name che da $`$WebEvent.Sse.Name sseFailedToBroadcastExceptionMessage = SSE non è riuscito a trasmettere a causa del livello di trasmissione SSE definito per {0}: {1}. podeNotInitializedExceptionMessage = Pode non è stato inizializzato. invalidTaskTypeExceptionMessage = Il tipo di attività non è valido, previsto [System.Threading.Tasks.Task] o [hashtable]. diff --git a/src/Locales/ja/Pode.psd1 b/src/Locales/ja/Pode.psd1 index 793ec1b8c..f84068e7a 100644 --- a/src/Locales/ja/Pode.psd1 +++ b/src/Locales/ja/Pode.psd1 @@ -56,7 +56,7 @@ invalidMiddlewareTypeExceptionMessage = 提供されたMiddlewaresの1つが無 hashtableMiddlewareNoLogicExceptionMessage = 提供されたHashtableミドルウェアにロジックが定義されていません。 invalidLogicTypeInHashtableMiddlewareExceptionMessage = 提供されたHashtableミドルウェアに無効なロジック型があります。ScriptBlockを期待しましたが、次を取得しました: {0} scopedVariableAlreadyDefinedExceptionMessage = スコープ付き変数が既に定義されています: {0} -valueForUsingVariableNotFoundExceptionMessage = '$using:{0}'の値が見つかりませんでした。 +valueForUsingVariableNotFoundExceptionMessage = '`$using:{0}'の値が見つかりませんでした。 unlockSecretRequiredExceptionMessage = Microsoft.PowerShell.SecretStoreを使用する場合、'UnlockSecret'プロパティが必要です。 unlockSecretButNoScriptBlockExceptionMessage = カスタムシークレットボールトタイプに対してアンロックシークレットが提供されましたが、アンロックスクリプトブロックが提供されていません。 noUnlockScriptBlockForVaultExceptionMessage = ボールト'{0}'のロック解除に必要なスクリプトブロックが提供されていません。 @@ -146,7 +146,7 @@ routeParameterNeedsValidScriptblockExceptionMessage = ルートパラメータ noCommandsSuppliedToConvertToRoutesExceptionMessage = ルートに変換するためのコマンドが提供されていません。 nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = ページルートを作成するには空でないScriptBlockが必要です。 sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSEはAcceptヘッダー値がtext/event-streamのリクエストでのみ構成できます。 -sseConnectionNameRequiredExceptionMessage = -Nameまたは$WebEvent.Sse.NameからSSE接続名が必要です。 +sseConnectionNameRequiredExceptionMessage = -Nameまたは`$WebEvent.Sse.NameからSSE接続名が必要です。 sseFailedToBroadcastExceptionMessage = {0}のSSEブロードキャストレベルが定義されているため、SSEのブロードキャストに失敗しました: {1} podeNotInitializedExceptionMessage = Podeが初期化されていません。 invalidTaskTypeExceptionMessage = タスクタイプが無効です。予期されるタイプ:[System.Threading.Tasks.Task]または[hashtable] diff --git a/src/Locales/ko/Pode.psd1 b/src/Locales/ko/Pode.psd1 index cc040056e..5e0cd3176 100644 --- a/src/Locales/ko/Pode.psd1 +++ b/src/Locales/ko/Pode.psd1 @@ -56,7 +56,7 @@ invalidMiddlewareTypeExceptionMessage = 제공된 미들웨어 중 하나가 잘 hashtableMiddlewareNoLogicExceptionMessage = 제공된 Hashtable 미들웨어에는 정의된 논리가 없습니다. invalidLogicTypeInHashtableMiddlewareExceptionMessage = 제공된 Hashtable 미들웨어에 잘못된 논리 유형이 있습니다. 예상된 유형은 ScriptBlock이지만, 얻은 것은: {0} scopedVariableAlreadyDefinedExceptionMessage = 범위 지정 변수가 이미 정의되었습니다: {0} -valueForUsingVariableNotFoundExceptionMessage = '$using:{0}'에 대한 값을 찾을 수 없습니다. +valueForUsingVariableNotFoundExceptionMessage = '`$using:{0}'에 대한 값을 찾을 수 없습니다. unlockSecretRequiredExceptionMessage = Microsoft.PowerShell.SecretStore를 사용할 때 'UnlockSecret' 속성이 필요합니다. unlockSecretButNoScriptBlockExceptionMessage = 사용자 정의 비밀 금고 유형에 대해 제공된 Unlock 비밀이지만, Unlock ScriptBlock이 제공되지 않았습니다. noUnlockScriptBlockForVaultExceptionMessage = 금고 '{0}'을(를) 해제하는 Unlock ScriptBlock이 제공되지 않았습니다. @@ -146,7 +146,7 @@ routeParameterNeedsValidScriptblockExceptionMessage = 경로 매개변수에는 noCommandsSuppliedToConvertToRoutesExceptionMessage = 경로로 변환할 명령이 제공되지 않았습니다. nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = 페이지 경로를 생성하려면 비어 있지 않은 ScriptBlock이 필요합니다. sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSE는 Accept 헤더 값이 text/event-stream인 요청에서만 구성할 수 있습니다. -sseConnectionNameRequiredExceptionMessage = -Name 또는 $WebEvent.Sse.Name에서 SSE 연결 이름이 필요합니다. +sseConnectionNameRequiredExceptionMessage = -Name 또는 `$WebEvent.Sse.Name에서 SSE 연결 이름이 필요합니다. sseFailedToBroadcastExceptionMessage = {0}에 대해 정의된 SSE 브로드캐스트 수준으로 인해 SSE 브로드캐스트에 실패했습니다: {1} podeNotInitializedExceptionMessage = Pode가 초기화되지 않았습니다. invalidTaskTypeExceptionMessage = 작업 유형이 유효하지 않습니다. 예상된 유형: [System.Threading.Tasks.Task] 또는 [hashtable] diff --git a/src/Locales/pl/Pode.psd1 b/src/Locales/pl/Pode.psd1 index 63e256b1c..33279d7cd 100644 --- a/src/Locales/pl/Pode.psd1 +++ b/src/Locales/pl/Pode.psd1 @@ -56,7 +56,7 @@ invalidMiddlewareTypeExceptionMessage = Jeden z dostarczonych Middleware jest ni hashtableMiddlewareNoLogicExceptionMessage = Dostarczone Middleware typu Hashtable nie ma zdefiniowanej logiki. invalidLogicTypeInHashtableMiddlewareExceptionMessage = Dostarczone Middleware typu Hashtable ma nieprawidłowy typ logiki. Oczekiwano ScriptBlock, ale otrzymano: {0} scopedVariableAlreadyDefinedExceptionMessage = Zmienna z zakresem już zdefiniowana: {0} -valueForUsingVariableNotFoundExceptionMessage = Nie można znaleźć wartości dla '$using:{0}'. +valueForUsingVariableNotFoundExceptionMessage = Nie można znaleźć wartości dla '`$using:{0}'. unlockSecretRequiredExceptionMessage = Właściwość 'UnlockSecret' jest wymagana przy używaniu Microsoft.PowerShell.SecretStore unlockSecretButNoScriptBlockExceptionMessage = Podano tajemnicę odblokowania dla niestandardowego typu skarbca, ale nie podano ScriptBlock odblokowania. noUnlockScriptBlockForVaultExceptionMessage = Nie podano ScriptBlock odblokowania dla odblokowania skarbca '{0}' @@ -146,7 +146,7 @@ routeParameterNeedsValidScriptblockExceptionMessage = Parametr trasy wymaga praw noCommandsSuppliedToConvertToRoutesExceptionMessage = Nie dostarczono żadnych poleceń do konwersji na trasy. nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = Aby utworzyć trasę strony, wymagany jest niepusty ScriptBlock. sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSE można skonfigurować tylko na żądaniach z wartością nagłówka Accept równą text/event-stream. -sseConnectionNameRequiredExceptionMessage = Wymagana jest nazwa połączenia SSE, z -Name lub $WebEvent.Sse.Name. +sseConnectionNameRequiredExceptionMessage = Wymagana jest nazwa połączenia SSE, z -Name lub $`$WebEvent.Sse.Name sseFailedToBroadcastExceptionMessage = SSE nie udało się przesłać z powodu zdefiniowanego poziomu przesyłania SSE dla {0}: {1} podeNotInitializedExceptionMessage = Pode nie został zainicjowany. invalidTaskTypeExceptionMessage = Typ zadania jest nieprawidłowy, oczekiwano [System.Threading.Tasks.Task] lub [hashtable] diff --git a/src/Locales/pt/Pode.psd1 b/src/Locales/pt/Pode.psd1 index 4f5a79219..1d3967d70 100644 --- a/src/Locales/pt/Pode.psd1 +++ b/src/Locales/pt/Pode.psd1 @@ -56,7 +56,7 @@ invalidMiddlewareTypeExceptionMessage = Um dos Middlewares fornecidos é de um t hashtableMiddlewareNoLogicExceptionMessage = Um Middleware do tipo Hashtable fornecido não tem lógica definida. invalidLogicTypeInHashtableMiddlewareExceptionMessage = Um Middleware do tipo Hashtable fornecido tem um tipo de lógica inválido. Esperado ScriptBlock, mas obtido: {0} scopedVariableAlreadyDefinedExceptionMessage = Variável de escopo já definida: {0} -valueForUsingVariableNotFoundExceptionMessage = Valor para '$using:{0}' não pôde ser encontrado. +valueForUsingVariableNotFoundExceptionMessage = Valor para '`$using:{0}' não pôde ser encontrado. unlockSecretRequiredExceptionMessage = É necessária uma propriedade 'UnlockSecret' ao usar Microsoft.PowerShell.SecretStore unlockSecretButNoScriptBlockExceptionMessage = Segredo de desbloqueio fornecido para tipo de Cofre Secreto personalizado, mas nenhum ScriptBlock de desbloqueio fornecido. noUnlockScriptBlockForVaultExceptionMessage = Nenhum ScriptBlock de desbloqueio fornecido para desbloquear o cofre '{0}' @@ -146,7 +146,7 @@ routeParameterNeedsValidScriptblockExceptionMessage = O parâmetro da Rota preci noCommandsSuppliedToConvertToRoutesExceptionMessage = Nenhum comando fornecido para converter em Rotas. nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = Um ScriptBlock não vazio é necessário para criar uma Rota de Página. sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSE só pode ser configurado em solicitações com um valor de cabeçalho Accept de text/event-stream. -sseConnectionNameRequiredExceptionMessage = Um nome de conexão SSE é necessário, seja de -Name ou $WebEvent.Sse.Name. +sseConnectionNameRequiredExceptionMessage = Um nome de conexão SSE é necessário, seja de -Name ou `$WebEvent.Sse.Name. sseFailedToBroadcastExceptionMessage = SSE falhou em transmitir devido ao nível de transmissão SSE definido para {0}: {1}. podeNotInitializedExceptionMessage = Pode não foi inicializado. invalidTaskTypeExceptionMessage = O tipo de tarefa é inválido, esperado [System.Threading.Tasks.Task] ou [hashtable]. diff --git a/src/Locales/zn/Pode.psd1 b/src/Locales/zn/Pode.psd1 index b51b5f4fa..77cc0d6aa 100644 --- a/src/Locales/zn/Pode.psd1 +++ b/src/Locales/zn/Pode.psd1 @@ -56,7 +56,7 @@ invalidMiddlewareTypeExceptionMessage = 提供的中间件之一是无效的类 hashtableMiddlewareNoLogicExceptionMessage = 提供的 Hashtable 中间件没有定义逻辑。 invalidLogicTypeInHashtableMiddlewareExceptionMessage = 提供的 Hashtable 中间件具有无效的逻辑类型。期望是 ScriptBlockm, 但得到了: {0} scopedVariableAlreadyDefinedExceptionMessage = 已经定义了作用域变量: {0} -valueForUsingVariableNotFoundExceptionMessage = 未找到 '$using:{0}' 的值。 +valueForUsingVariableNotFoundExceptionMessage = 未找到 '`$using:{0}' 的值。 unlockSecretRequiredExceptionMessage = 使用 Microsoft.PowerShell.SecretStore 时需要 'UnlockSecret' 属性。 unlockSecretButNoScriptBlockExceptionMessage = 为自定义秘密保险库类型提供了解锁密钥,但未提供解锁 ScriptBlock。 noUnlockScriptBlockForVaultExceptionMessage = 未为解锁保险库 '{0}' 提供解锁 ScriptBlock。 @@ -146,7 +146,7 @@ routeParameterNeedsValidScriptblockExceptionMessage = 路由参数需要有效 noCommandsSuppliedToConvertToRoutesExceptionMessage = 未提供要转换为路由的命令。 nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = 创建页面路由需要非空的ScriptBlock。 sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSE只能在Accept标头值为text/event-stream的请求上配置。 -sseConnectionNameRequiredExceptionMessage = 需要SSE连接名称, 可以从-Name或$WebEvent.Sse.Name获取。 +sseConnectionNameRequiredExceptionMessage = 需要SSE连接名称, 可以从-Name或`$WebEvent.Sse.Name获取。 sseFailedToBroadcastExceptionMessage = 由于为{0}定义的SSE广播级别, SSE广播失败: {1} podeNotInitializedExceptionMessage = Pode未初始化。 invalidTaskTypeExceptionMessage = 任务类型无效,预期类型为[System.Threading.Tasks.Task]或[hashtable]。 From 3bd305ee7daba1fbc5770f82973e33f5e3aaacb8 Mon Sep 17 00:00:00 2001 From: mdaneri Date: Thu, 6 Jun 2024 11:17:25 -0700 Subject: [PATCH 19/67] conversion of Locales to hashtable --- Convert-HashtableToPsd1.ps1 | 32 +- src/Locales/ar/Pode.psd1 | 569 +++++++++++++++--------------- src/Locales/de/Pode.psd1 | 569 +++++++++++++++--------------- src/Locales/en/Pode.psd1 | 569 +++++++++++++++--------------- src/Locales/es/Pode.psd1 | 569 +++++++++++++++--------------- src/Locales/fr/Pode.psd1 | 569 +++++++++++++++--------------- src/Locales/it/Pode.psd1 | 569 +++++++++++++++--------------- src/Locales/ja/Pode.psd1 | 569 +++++++++++++++--------------- src/Locales/ko/Pode.psd1 | 569 +++++++++++++++--------------- src/Locales/pl/Pode.psd1 | 569 +++++++++++++++--------------- src/Locales/pt/Pode.psd1 | 569 +++++++++++++++--------------- src/Locales/zn/Pode.psd1 | 569 +++++++++++++++--------------- tests/unit/Localization.Tests.ps1 | 13 +- 13 files changed, 3156 insertions(+), 3148 deletions(-) diff --git a/Convert-HashtableToPsd1.ps1 b/Convert-HashtableToPsd1.ps1 index 1fab320b2..138dcddda 100644 --- a/Convert-HashtableToPsd1.ps1 +++ b/Convert-HashtableToPsd1.ps1 @@ -1,10 +1,9 @@ param ( [Parameter(Mandatory = $false)] - [string]$Path = 'c:\Users\m_dan\Documents\GitHub\Pode\src\Locales\en\Pode.psd1 ' + [string]$Path = 'c:\Users\m_dan\Documents\GitHub\Pode\src\Locales' ) -$PodeFileContent = Get-content $Path -raw -$value = Invoke-Expression $podeFileContent + function Convert-HashTable { @@ -15,25 +14,26 @@ function Convert-HashTable { $sb = New-Object System.Text.StringBuilder - $sb.AppendLine('@{') + $sb.AppendLine('@{') | Out-Null foreach ($key in $hashtable.Keys) { $value = $hashtable[$key] - - if ($value -is [hashtable]) { - $nestedPsd1 = Convert-HashTable -hashtable $value - $sb.AppendLine(" $key = $nestedPsd1") | Out-Null - } - else { - $sb.AppendLine(" $key = `"$($value -replace '$','`$')`"") | Out-Null - } + $sb.AppendLine(" $key = `"$value`"") | Out-Null } - $sb.AppendLine('}') + $sb.AppendLine('}') | Out-Null return $sb.ToString() } +$languageDirs = Get-ChildItem -Path $Path -Directory +foreach ($item in $languageDirs) { + $fullName = Join-Path -Path $item.FullName -ChildPath 'Pode.psd1' + + $PodeFileContent = Get-content $fullName -raw + $value = Invoke-Expression $podeFileContent + -$sb = Convert-HashTable -hashtable $value -Move-Item -path $Path -destination "$Path.old" -Set-Content -Path $Path -Value $sb \ No newline at end of file + $result = Convert-HashTable -hashtable $value + Move-Item -path $fullName -destination "$fullName.old" + Set-Content -Path $fullName -Value $result +} \ No newline at end of file diff --git a/src/Locales/ar/Pode.psd1 b/src/Locales/ar/Pode.psd1 index 773cdc984..f5246baee 100644 --- a/src/Locales/ar/Pode.psd1 +++ b/src/Locales/ar/Pode.psd1 @@ -1,284 +1,285 @@ -ConvertFrom-StringData -StringData @' -adModuleWindowsOnlyExceptionMessage = وحدة Active Directory متاحة فقط على نظام Windows. -adModuleNotInstalledExceptionMessage = وحدة Active Directory غير مثبتة. -secretManagementModuleNotInstalledExceptionMessage = وحدة Microsoft.PowerShell.SecretManagement غير مثبتة. -secretVaultAlreadyRegisteredAutoImportExceptionMessage = تم تسجيل خزنة سرية باسم '{0}' بالفعل أثناء استيراد الخزن السرية تلقائيًا. -failedToOpenRunspacePoolExceptionMessage = فشل في فتح RunspacePool: {0} -cronExpressionInvalidExceptionMessage = يجب أن تتكون تعبير Cron من 5 أجزاء فقط: {0} -invalidAliasFoundExceptionMessage = تم العثور على اسم مستعار غير صالح {0}: {1} -invalidAtomCharacterExceptionMessage = حرف الذرة غير صالح: {0} -minValueGreaterThanMaxExceptionMessage = يجب ألا تكون القيمة الدنيا {0} أكبر من القيمة القصوى. -minValueInvalidExceptionMessage = القيمة الدنيا '{0}' لـ {1} غير صالحة، يجب أن تكون أكبر من/أو تساوي {2} -maxValueInvalidExceptionMessage = القيمة القصوى '{0}' لـ {1} غير صالحة، يجب أن تكون أقل من/أو تساوي {2} -valueOutOfRangeExceptionMessage = القيمة '{0}' لـ {1} غير صالحة، يجب أن تكون بين {2} و {3} -daysInMonthExceededExceptionMessage = يحتوي {0} على {1} أيام فقط، ولكن تم توفير {2}. -nextTriggerCalculationErrorExceptionMessage = يبدو أن هناك خطأ ما أثناء محاولة حساب تاريخ المشغل التالي: {0} -incompatiblePodeDllExceptionMessage = يتم تحميل إصدار غير متوافق من Pode.DLL {0}. الإصدار {1} مطلوب. افتح جلسة Powershell/pwsh جديدة وأعد المحاولة. -endpointNotExistExceptionMessage = نقطة النهاية مع البروتوكول '{0}' والعنوان '{1}' أو العنوان المحلي '{2}' غير موجودة. -endpointNameNotExistExceptionMessage = نقطة النهاية بالاسم '{0}' غير موجودة. -failedToConnectToUrlExceptionMessage = فشل الاتصال بعنوان URL: {0} -failedToParseAddressExceptionMessage = فشل في تحليل '{0}' كعنوان IP/مضيف:منفذ صالح -invalidIpAddressExceptionMessage = عنوان IP المقدم غير صالح: {0} -invalidPortExceptionMessage = لا يمكن أن يكون المنفذ سالبًا: {0} -pathNotExistExceptionMessage = المسار غير موجود: {0} -noSecretForHmac256ExceptionMessage = لم يتم تقديم أي سر لتجزئة HMAC256. -noSecretForHmac384ExceptionMessage = لم يتم تقديم أي سر لتجزئة HMAC384. -noSecretForHmac512ExceptionMessage = لم يتم تقديم أي سر لتجزئة HMAC512. -noSecretForJwtSignatureExceptionMessage = لم يتم تقديم أي سر لتوقيع JWT. -noSecretExpectedForNoSignatureExceptionMessage = لم يكن من المتوقع تقديم أي سر لعدم وجود توقيع. -unsupportedJwtAlgorithmExceptionMessage = خوارزمية JWT غير مدعومة حاليًا: {0} -invalidBase64JwtExceptionMessage = تم العثور على قيمة مشفرة بتنسيق Base64 غير صالحة في JWT -invalidJsonJwtExceptionMessage = تم العثور على قيمة JSON غير صالحة في JWT -unsupportedFunctionInServerlessContextExceptionMessage = الدالة {0} غير مدعومة في سياق بدون خادم. -invalidPathWildcardOrDirectoryExceptionMessage = لا يمكن أن يكون المسار المقدم عبارة عن حرف بدل أو دليل: {0} -invalidExceptionTypeExceptionMessage = الاستثناء من نوع غير صالح، يجب أن يكون إما WebException أو HttpRequestException، ولكن تم الحصول عليه: {0} -pathToLoadNotFoundExceptionMessage = لم يتم العثور على المسار لتحميل {0}: {1} -singleValueForIntervalExceptionMessage = يمكنك تقديم قيمة {0} واحدة فقط عند استخدام الفواصل الزمنية. -scriptErrorExceptionMessage = خطأ '{0}' في البرنامج النصي {1} {2} (السطر {3}) الحرف {4} أثناء تنفيذ {5} على الكائن {6} 'الصنف: {7} الصنف الأساسي: {8} -noScriptBlockSuppliedExceptionMessage = لم يتم تقديم أي ScriptBlock. -iisAspnetcoreTokenMissingExceptionMessage = IIS ASPNETCORE_TOKEN مفقود. -propertiesParameterWithoutNameExceptionMessage = لا يمكن استخدام معلمات الخصائص إذا لم يكن لدى الخاصية اسم. -multiTypePropertiesRequireOpenApi31ExceptionMessage = تتطلب خصائص الأنواع المتعددة إصدار OpenApi 3.1 أو أعلى. -openApiVersionPropertyMandatoryExceptionMessage = خاصية إصدار OpenApi إلزامية. -webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = ميزة Webhooks غير مدعومة في OpenAPI v3.0.x -authenticationMethodDoesNotExistExceptionMessage = طريقة المصادقة غير موجودة: {0} -unsupportedObjectExceptionMessage = الكائن غير مدعوم -validationOfAnyOfSchemaNotSupportedExceptionMessage = التحقق من مخطط يتضمن 'أي منها' غير مدعوم. -validationOfOneOfSchemaNotSupportedExceptionMessage = التحقق من مخطط يتضمن 'واحد منها' غير مدعوم. -cannotCreatePropertyWithoutTypeExceptionMessage = لا يمكن إنشاء الخاصية لأنه لم يتم تعريف نوع. -headerMustHaveNameInEncodingContextExceptionMessage = يجب أن يحتوي الرأس على اسم عند استخدامه في سياق الترميز. -descriptionRequiredExceptionMessage = الوصف مطلوب. -openApiDocumentNotCompliantExceptionMessage = مستند OpenAPI غير متوافق. -noComponentInDefinitionExceptionMessage = لا توجد مكون من نوع {0} باسم {1} متاح في تعريف {2}. -methodPathAlreadyDefinedExceptionMessage = [{0}] {1}: تم التعريف بالفعل. -methodPathAlreadyDefinedForUrlExceptionMessage = [{0}] {1}: تم التعريف بالفعل لـ {2} -invalidMiddlewareTypeExceptionMessage = أحد مكونات Middleware المقدمة من نوع غير صالح. كان المتوقع إما ScriptBlock أو Hashtable، ولكن تم الحصول عليه: {0} -hashtableMiddlewareNoLogicExceptionMessage = مكون Middleware من نوع Hashtable المقدم لا يحتوي على منطق معرف. -invalidLogicTypeInHashtableMiddlewareExceptionMessage = مكون Middleware من نوع Hashtable المقدم يحتوي على نوع منطق غير صالح. كان المتوقع ScriptBlock، ولكن تم الحصول عليه: {0} -scopedVariableAlreadyDefinedExceptionMessage = المتغير المحدد بالفعل معرف: {0} -valueForUsingVariableNotFoundExceptionMessage = لم يتم العثور على قيمة لـ '`$using:{0}'. -unlockSecretRequiredExceptionMessage = خاصية 'UnlockSecret' مطلوبة عند استخدام Microsoft.PowerShell.SecretStore -unlockSecretButNoScriptBlockExceptionMessage = تم تقديم سر الفتح لنوع خزنة سرية مخصصة، ولكن لم يتم تقديم ScriptBlock الفتح. -noUnlockScriptBlockForVaultExceptionMessage = لم يتم تقديم ScriptBlock الفتح لفتح الخزنة '{0}' -noSetScriptBlockForVaultExceptionMessage = لم يتم تقديم ScriptBlock الإعداد لتحديث/إنشاء الأسرار في الخزنة '{0}' -noRemoveScriptBlockForVaultExceptionMessage = لم يتم تقديم ScriptBlock الإزالة لإزالة الأسرار من الخزنة '{0}' -invalidSecretValueTypeExceptionMessage = قيمة السر من نوع غير صالح. الأنواع المتوقعة: String، SecureString، HashTable، Byte[]، أو PSCredential. ولكن تم الحصول عليه: {0} -limitValueCannotBeZeroOrLessExceptionMessage = لا يمكن أن تكون القيمة الحدية 0 أو أقل لـ {0} -secondsValueCannotBeZeroOrLessExceptionMessage = لا يمكن أن تكون قيمة الثواني 0 أو أقل لـ {0} -failedToCreateOpenSslCertExceptionMessage = فشل في إنشاء شهادة openssl: {0} -certificateThumbprintsNameSupportedOnWindowsExceptionMessage = بصمات الإبهام/الاسم للشهادة مدعومة فقط على Windows. -noCertificateFoundExceptionMessage = لم يتم العثور على شهادة في {0}\{1} لـ '{2}' -runspacePoolFailedToLoadExceptionMessage = فشل تحميل RunspacePool لـ {0}. -noServiceHandlersDefinedExceptionMessage = لم يتم تعريف أي معالجات خدمة. -noSessionToSetOnResponseExceptionMessage = لا توجد جلسة متاحة لتعيينها على الاستجابة. -noSessionToCalculateDataHashExceptionMessage = لا توجد جلسة متاحة لحساب تجزئة البيانات. -moduleOrVersionNotFoundExceptionMessage = لم يتم العثور على الوحدة أو الإصدار على {0}: {1}@{2} -noSmtpHandlersDefinedExceptionMessage = لم يتم تعريف أي معالجات SMTP. -taskTimedOutExceptionMessage = انتهت المهلة الزمنية للمهمة بعد {0}ms. -verbAlreadyDefinedExceptionMessage = [الفعل] {0}: تم التعريف بالفعل -verbAlreadyDefinedForUrlExceptionMessage = [الفعل] {0}: تم التعريف بالفعل لـ {1} -pathOrScriptBlockRequiredExceptionMessage = مطلوب مسار أو ScriptBlock للحصول على قيم الوصول المخصصة. -accessMethodAlreadyDefinedExceptionMessage = طريقة الوصول معرفة بالفعل: {0} -accessMethodNotExistForMergingExceptionMessage = طريقة الوصول غير موجودة للدمج: {0} -routeAlreadyContainsCustomAccessExceptionMessage = المسار '[{0}] {1}' يحتوي بالفعل على وصول مخصص باسم '{2}' -accessMethodNotExistExceptionMessage = طريقة الوصول غير موجودة: {0} -pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = ميزة PathItems غير مدعومة في OpenAPI v3.0.x -nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = مطلوب ScriptBlock غير فارغ لخطة المصادقة المخصصة. -oauth2InnerSchemeInvalidExceptionMessage = يمكن أن تكون OAuth2 InnerScheme إما مصادقة Basic أو Form فقط، ولكن تم الحصول على: {0} -sessionsRequiredForOAuth2WithPKCEExceptionMessage = تتطلب OAuth2 مع PKCE جلسات. -oauth2ClientSecretRequiredExceptionMessage = تتطلب OAuth2 سر العميل عند عدم استخدام PKCE. -authMethodAlreadyDefinedExceptionMessage = طريقة المصادقة محددة بالفعل: {0} -invalidSchemeForAuthValidatorExceptionMessage = تتطلب الخطة '{0}' المقدمة لمحقق المصادقة '{1}' ScriptBlock صالح. -sessionsRequiredForSessionPersistentAuthExceptionMessage = تتطلب المصادقة المستمرة للجلسة جلسات. -oauth2RequiresAuthorizeUrlExceptionMessage = تتطلب OAuth2 توفير عنوان URL للتفويض. -authMethodNotExistForMergingExceptionMessage = طريقة المصادقة غير موجودة للدمج: {0} -mergeDefaultAuthNotInListExceptionMessage = المصادقة MergeDefault '{0}' غير موجودة في قائمة المصادقة المقدمة. -defaultAuthNotInListExceptionMessage = المصادقة الافتراضية '{0}' غير موجودة في قائمة المصادقة المقدمة. -scriptBlockRequiredForMergingUsersExceptionMessage = مطلوب ScriptBlock لدمج عدة مستخدمين مصادق عليهم في كائن واحد عندما تكون Valid هي All. -noDomainServerNameForWindowsAdAuthExceptionMessage = لم يتم توفير اسم خادم المجال لمصادقة Windows AD. -sessionsNotConfiguredExceptionMessage = لم يتم تكوين الجلسات. -windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = دعم المصادقة المحلية لـ Windows هو فقط لنظام Windows. -iisAuthSupportIsForWindowsOnlyExceptionMessage = دعم مصادقة IIS هو فقط لنظام Windows. -noAlgorithmInJwtHeaderExceptionMessage = لم يتم توفير أي خوارزمية في رأس JWT. -invalidJwtSuppliedExceptionMessage = JWT المقدم غير صالح. -invalidJwtHeaderAlgorithmSuppliedExceptionMessage = خوارزمية رأس JWT المقدمة غير صالحة. -noJwtSignatureForAlgorithmExceptionMessage = لم يتم توفير توقيع JWT لـ {0}. -expectedNoJwtSignatureSuppliedExceptionMessage = لم يكن من المتوقع توفير توقيع JWT. -invalidJwtSignatureSuppliedExceptionMessage = توقيع JWT المقدم غير صالح. -jwtExpiredExceptionMessage = انتهت صلاحية JWT. -jwtNotYetValidExceptionMessage = JWT غير صالح للاستخدام بعد. -snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = Snapins مدعومة فقط في Windows PowerShell. -userFileDoesNotExistExceptionMessage = ملف المستخدم غير موجود: {0} -schemeRequiresValidScriptBlockExceptionMessage = تتطلب الخطة المقدمة لمحقق المصادقة '{0}' ScriptBlock صالح. -oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = مزود OAuth2 لا يدعم نوع الاستجابة 'code'. -oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = مزود OAuth2 لا يدعم نوع المنحة 'password' المطلوبة لاستخدام InnerScheme. -eventAlreadyRegisteredExceptionMessage = الحدث {0} مسجل بالفعل: {1} -noEventRegisteredExceptionMessage = لا يوجد حدث {0} مسجل: {1} -sessionsRequiredForFlashMessagesExceptionMessage = الجلسات مطلوبة لاستخدام رسائل الفلاش. -eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = تسجيل عارض الأحداث مدعوم فقط على Windows. -nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = مطلوب ScriptBlock غير فارغ لطريقة إخراج السجل المخصصة. -requestLoggingAlreadyEnabledExceptionMessage = تم تمكين تسجيل الطلبات بالفعل. -outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = طريقة الإخراج المقدمة لتسجيل الطلبات تتطلب ScriptBlock صالح. -errorLoggingAlreadyEnabledExceptionMessage = تم تمكين تسجيل الأخطاء بالفعل. -nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = مطلوب ScriptBlock غير فارغ لطريقة التسجيل. -csrfMiddlewareNotInitializedExceptionMessage = لم يتم تهيئة CSRF Middleware. -sessionsRequiredForCsrfExceptionMessage = الجلسات مطلوبة لاستخدام CSRF إلا إذا كنت ترغب في استخدام ملفات تعريف الارتباط. -middlewareNoLogicSuppliedExceptionMessage = [Middleware]: لم يتم توفير أي منطق في ScriptBlock. -parameterHasNoNameExceptionMessage = لا يحتوي المعامل على اسم. يرجى إعطاء هذا المكون اسمًا باستخدام معامل 'Name'. -reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = ميزة المكون القابل لإعادة الاستخدام 'pathItems' غير متوفرة في OpenAPI v3.0. -noPropertiesMutuallyExclusiveExceptionMessage = المعامل 'NoProperties' يتعارض مع 'Properties' و 'MinProperties' و 'MaxProperties'. -discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = يمكن استخدام المعامل 'DiscriminatorMapping' فقط عندما تكون خاصية 'DiscriminatorProperty' موجودة. -discriminatorIncompatibleWithAllOfExceptionMessage = المعامل 'Discriminator' غير متوافق مع 'allOf'. -typeCanOnlyBeAssociatedWithObjectExceptionMessage = النوع {0} يمكن ربطه فقط بجسم. -showPodeGuiOnlyAvailableOnWindowsExceptionMessage = Show-PodeGui متاح حاليًا فقط لـ Windows PowerShell و PowerShell 7+ على Windows. -nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = مطلوب اسم لنقطة النهاية إذا تم توفير معامل RedirectTo. -clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = الشهادات العميلة مدعومة فقط على نقاط النهاية HTTPS. -explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = وضع TLS الصريح مدعوم فقط على نقاط النهاية SMTPS و TCPS. -acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = رسالة الإقرار مدعومة فقط على نقاط النهاية SMTP و TCP. -crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = فحص نهاية الرسالة CRLF مدعوم فقط على نقاط النهاية TCP. -mustBeRunningWithAdminPrivilegesExceptionMessage = يجب التشغيل بامتيازات المسؤول للاستماع إلى العناوين غير المحلية. -certificateSuppliedForNonHttpsWssEndpointExceptionMessage = تم توفير شهادة لنقطة نهاية غير HTTPS/WSS. -websocketsNotConfiguredForSignalMessagesExceptionMessage = لم يتم تهيئة WebSockets لإرسال رسائل الإشارة. -noPathSuppliedForRouteExceptionMessage = لم يتم توفير مسار للطريق. -accessRequiresAuthenticationOnRoutesExceptionMessage = يتطلب الوصول توفير المصادقة على الطرق. -accessMethodDoesNotExistExceptionMessage = طريقة الوصول غير موجودة: {0}. -routeParameterNeedsValidScriptblockExceptionMessage = المعامل Route يتطلب ScriptBlock صالح وغير فارغ. -noCommandsSuppliedToConvertToRoutesExceptionMessage = لم يتم توفير أي أوامر لتحويلها إلى طرق. -nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = مطلوب ScriptBlock غير فارغ لإنشاء مسار الصفحة. -sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = يمكن تكوين SSE فقط على الطلبات التي تحتوي على قيمة رأس Accept النص/تيار الأحداث. -sseConnectionNameRequiredExceptionMessage = مطلوب اسم اتصال SSE، إما من -Name أو `$WebEvent.Sse.Name -sseFailedToBroadcastExceptionMessage = فشل بث SSE بسبب مستوى البث SSE المحدد لـ {0}: {1} -podeNotInitializedExceptionMessage = لم يتم تهيئة Pode. -invalidTaskTypeExceptionMessage = نوع المهمة غير صالح، المتوقع إما [System.Threading.Tasks.Task] أو [hashtable]. -cannotLockValueTypeExceptionMessage = لا يمكن قفل [ValueTypes]. -cannotLockNullObjectExceptionMessage = لا يمكن قفل كائن فارغ. -failedToAcquireLockExceptionMessage = فشل في الحصول على قفل على الكائن. -cannotUnlockValueTypeExceptionMessage = لا يمكن فتح [ValueTypes]. -cannotUnlockNullObjectExceptionMessage = لا يمكن فتح كائن فارغ. -sessionMiddlewareAlreadyInitializedExceptionMessage = تم تهيئة Session Middleware بالفعل. -customSessionStorageMethodNotImplementedExceptionMessage = تخزين الجلسة المخصص لا ينفذ الطريقة المطلوبة '{0}()'. -secretRequiredForCustomSessionStorageExceptionMessage = مطلوب سر عند استخدام تخزين الجلسة المخصص. -noSessionAvailableToSaveExceptionMessage = لا توجد جلسة متاحة للحفظ. -cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = لا يمكن توفير فترة زمنية عندما يكون المعامل 'Every' مضبوطًا على None. -cannotSupplyIntervalForQuarterExceptionMessage = لا يمكن توفير قيمة الفاصل الزمني لكل ربع. -cannotSupplyIntervalForYearExceptionMessage = لا يمكن توفير قيمة الفاصل الزمني لكل سنة. -secretVaultAlreadyRegisteredExceptionMessage = تم تسجيل مخزن الأسرار بالاسم '{0}' بالفعل{1}. -secretVaultUnlockExpiryDateInPastExceptionMessage = تاريخ انتهاء صلاحية فتح مخزن الأسرار في الماضي (UTC): {0} -secretAlreadyMountedExceptionMessage = تم تثبيت سر بالاسم '{0}' بالفعل. -credentialsPassedWildcardForHeadersLiteralExceptionMessage = عند تمرير بيانات الاعتماد، سيتم اعتبار العلامة * للعنوان كـ سلسلة نصية حرفية وليس كعلامة. -wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = العلامة * للعنوان غير متوافقة مع مفتاح AutoHeaders. -wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = العلامة * للطرق غير متوافقة مع مفتاح AutoMethods. -invalidAccessControlMaxAgeDurationExceptionMessage = مدة Access-Control-Max-Age غير صالحة المقدمة: {0}. يجب أن تكون أكبر من 0. -noNameForWebSocketDisconnectExceptionMessage = لا يوجد اسم لفصل WebSocket من المزود. -noNameForWebSocketRemoveExceptionMessage = لا يوجد اسم لإزالة WebSocket من المزود. -noNameForWebSocketSendMessageExceptionMessage = لا يوجد اسم لإرسال رسالة إلى WebSocket المزود. -noSecretNamedMountedExceptionMessage = لم يتم تثبيت أي سر بالاسم '{0}'. -noNameForWebSocketResetExceptionMessage = لا يوجد اسم لإعادة تعيين WebSocket من المزود. -schemaValidationRequiresPowerShell610ExceptionMessage = يتطلب التحقق من صحة المخطط إصدار PowerShell 6.1.0 أو أحدث. -routeParameterCannotBeNullExceptionMessage = لا يمكن أن يكون المعامل 'Route' فارغًا. -encodingAttributeOnlyAppliesToMultipartExceptionMessage = ينطبق سمة الترميز فقط على نصوص الطلبات multipart و application/x-www-form-urlencoded. -testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = يجب تمكين 'Test-PodeOAComponentSchema' باستخدام 'Enable-PodeOpenApi -EnableSchemaValidation' -openApiComponentSchemaDoesNotExistExceptionMessage = مخطط مكون OpenApi {0} غير موجود. -openApiParameterRequiresNameExceptionMessage = يتطلب معلمة OpenApi اسمًا محددًا. -openApiLicenseObjectRequiresNameExceptionMessage = يتطلب كائن OpenAPI 'license' الخاصية 'name'. استخدم المعامل -LicenseName. -parametersValueOrExternalValueMandatoryExceptionMessage = المعاملات 'Value' أو 'ExternalValue' إلزامية. -parametersMutuallyExclusiveExceptionMessage = المعاملات '{0}' و '{1}' متعارضة. -maximumConcurrentWebSocketThreadsInvalidExceptionMessage = يجب أن يكون الحد الأقصى لمؤشرات ترابط WebSocket المتزامنة >=1، ولكن تم الحصول عليه: {0} -maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = لا يمكن أن يكون الحد الأقصى لمؤشرات ترابط WebSocket المتزامنة أقل من الحد الأدنى {0}، ولكن تم الحصول عليه: {1} -alreadyConnectedToWebSocketExceptionMessage = متصل بالفعل بـ WebSocket بالاسم '{0}' -failedToConnectToWebSocketExceptionMessage = فشل الاتصال بـ WebSocket: {0} -verbNoLogicPassedExceptionMessage = [الفعل] {0}: لم يتم تمرير أي منطق -scriptPathDoesNotExistExceptionMessage = مسار البرنامج النصي غير موجود: {0} -failedToImportModuleExceptionMessage = فشل في استيراد الوحدة: {0} -modulePathDoesNotExistExceptionMessage = مسار الوحدة غير موجود: {0} -defaultValueNotBooleanOrEnumExceptionMessage = القيمة الافتراضية ليست من نوع boolean وليست جزءًا من التعداد. -propertiesTypeObjectAssociationExceptionMessage = يمكن ربط خصائص النوع Object فقط بـ {0}. -invalidContentTypeForSchemaExceptionMessage = 'content-type' غير صالح في المخطط: {0} -openApiRequestStyleInvalidForParameterExceptionMessage = لا يمكن أن يكون نمط الطلب OpenApi {0} لمعلمة {1}. -pathParameterRequiresRequiredSwitchExceptionMessage = إذا كانت موقع المعلمة هو 'Path'، فإن المعلمة التبديل 'Required' إلزامية. -operationIdMustBeUniqueForArrayExceptionMessage = يجب أن يكون OperationID: {0} فريدًا ولا يمكن تطبيقه على مصفوفة. -operationIdMustBeUniqueExceptionMessage = يجب أن يكون OperationID: {0} فريدًا. -noOpenApiUrlSuppliedExceptionMessage = لم يتم توفير عنوان URL OpenAPI لـ {0}. -noTitleSuppliedForPageExceptionMessage = لم يتم توفير عنوان للصفحة {0}. -noRoutePathSuppliedForPageExceptionMessage = لم يتم توفير مسار للصفحة {0}. -swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = هذا الإصدار من Swagger-Editor لا يدعم OpenAPI 3.1 -rapidPdfDoesNotSupportOpenApi31ExceptionMessage = أداة الوثائق RapidPdf لا تدعم OpenAPI 3.1 -definitionTagNotDefinedExceptionMessage = لم يتم تعريف علامة التعريف {0}. -scopedVariableNotFoundExceptionMessage = لم يتم العثور على المتغير المحدد: {0} -noSecretVaultRegisteredExceptionMessage = لم يتم تسجيل خزينة سرية بالاسم '{0}'. -invalidStrictTransportSecurityDurationExceptionMessage = تم توفير مدة Strict-Transport-Security غير صالحة: {0}. يجب أن تكون أكبر من 0. -durationMustBeZeroOrGreaterExceptionMessage = يجب أن تكون المدة 0 أو أكبر، ولكن تم الحصول عليها: {0}s -taskAlreadyDefinedExceptionMessage = [المهمة] {0}: المهمة معرفة بالفعل. -maximumConcurrentTasksInvalidExceptionMessage = يجب أن يكون الحد الأقصى للمهام المتزامنة >=1، ولكن تم الحصول عليه: {0} -maximumConcurrentTasksLessThanMinimumExceptionMessage = لا يمكن أن يكون الحد الأقصى للمهام المتزامنة أقل من الحد الأدنى {0}، ولكن تم الحصول عليه: {1} -taskDoesNotExistExceptionMessage = المهمة '{0}' غير موجودة. -cacheStorageNotFoundForRetrieveExceptionMessage = لم يتم العثور على مخزن ذاكرة التخزين المؤقت بالاسم '{0}' عند محاولة استرجاع العنصر المخزن مؤقتًا '{1}' -cacheStorageNotFoundForSetExceptionMessage = لم يتم العثور على مخزن ذاكرة التخزين المؤقت بالاسم '{0}' عند محاولة تعيين العنصر المخزن مؤقتًا '{1}' -cacheStorageNotFoundForExistsExceptionMessage = لم يتم العثور على مخزن ذاكرة التخزين المؤقت بالاسم '{0}' عند محاولة التحقق مما إذا كان العنصر المخزن مؤقتًا '{1}' موجودًا. -cacheStorageNotFoundForRemoveExceptionMessage = لم يتم العثور على مخزن ذاكرة التخزين المؤقت بالاسم '{0}' عند محاولة إزالة العنصر المخزن مؤقتًا '{1}' -cacheStorageNotFoundForClearExceptionMessage = لم يتم العثور على مخزن ذاكرة التخزين المؤقت بالاسم '{0}' عند محاولة مسح الذاكرة المؤقتة. -cacheStorageAlreadyExistsExceptionMessage = مخزن ذاكرة التخزين المؤقت بالاسم '{0}' موجود بالفعل. -pathToIconForGuiDoesNotExistExceptionMessage = المسار إلى الأيقونة للواجهة الرسومية غير موجود: {0} -invalidHostnameSuppliedExceptionMessage = اسم المضيف المقدم غير صالح: {0} -endpointAlreadyDefinedExceptionMessage = تم تعريف نقطة نهاية باسم '{0}' بالفعل. -certificateExpiredExceptionMessage = الشهادة '{0}' منتهية الصلاحية: {1} -endpointNotDefinedForRedirectingExceptionMessage = لم يتم تعريف نقطة نهاية باسم '{0}' لإعادة التوجيه. -fileWatcherAlreadyDefinedExceptionMessage = تم تعريف مراقب الملفات باسم '{0}' بالفعل. -handlerAlreadyDefinedExceptionMessage = [{0}] {1}: تم تعريف المعالج بالفعل. -maxDaysInvalidExceptionMessage = يجب أن يكون MaxDays 0 أو أكبر، ولكن تم الحصول على: {0} -maxSizeInvalidExceptionMessage = يجب أن يكون MaxSize 0 أو أكبر، ولكن تم الحصول على: {0} -loggingMethodAlreadyDefinedExceptionMessage = تم تعريف طريقة التسجيل بالفعل: {0} -loggingMethodRequiresValidScriptBlockExceptionMessage = تتطلب طريقة الإخراج المقدمة لطريقة التسجيل '{0}' ScriptBlock صالح. -csrfCookieRequiresSecretExceptionMessage = عند استخدام ملفات تعريف الارتباط لـ CSRF، يكون السر مطلوبًا. يمكنك تقديم سر أو تعيين السر العالمي لملف تعريف الارتباط - (Set-PodeCookieSecret '' -Global) -bodyParserAlreadyDefinedForContentTypeExceptionMessage = تم تعريف محلل الجسم لنوع المحتوى {0} بالفعل. -middlewareAlreadyDefinedExceptionMessage = [Middleware] {0}: تم تعريف الوسيط بالفعل. -parameterNotSuppliedInRequestExceptionMessage = لم يتم توفير معلمة باسم '{0}' في الطلب أو لا توجد بيانات متاحة. -noDataForFileUploadedExceptionMessage = لا توجد بيانات للملف '{0}' الذي تم تحميله في الطلب. -viewsFolderNameAlreadyExistsExceptionMessage = اسم مجلد العرض موجود بالفعل: {0} -viewsPathDoesNotExistExceptionMessage = مسار العرض غير موجود: {0} -timerAlreadyDefinedExceptionMessage = [المؤقت] {0}: المؤقت معرف بالفعل. -timerParameterMustBeGreaterThanZeroExceptionMessage = [المؤقت] {0}: {1} يجب أن يكون أكبر من 0. -timerDoesNotExistExceptionMessage = المؤقت '{0}' غير موجود. -mutexAlreadyExistsExceptionMessage = يوجد بالفعل Mutex بالاسم التالي: {0} -noMutexFoundExceptionMessage = لم يتم العثور على Mutex باسم '{0}' -failedToAcquireMutexOwnershipExceptionMessage = فشل في الحصول على ملكية Mutex. اسم Mutex: {0} -semaphoreAlreadyExistsExceptionMessage = يوجد بالفعل Semaphore بالاسم التالي: {0} -failedToAcquireSemaphoreOwnershipExceptionMessage = فشل في الحصول على ملكية Semaphore. اسم Semaphore: {0} -scheduleAlreadyDefinedExceptionMessage = [الجدول الزمني] {0}: الجدول الزمني معرف بالفعل. -scheduleCannotHaveNegativeLimitExceptionMessage = [الجدول الزمني] {0}: لا يمكن أن يكون له حد سلبي. -scheduleEndTimeMustBeInFutureExceptionMessage = [الجدول الزمني] {0}: يجب أن تكون قيمة EndTime في المستقبل. -scheduleStartTimeAfterEndTimeExceptionMessage = [الجدول الزمني] {0}: لا يمكن أن يكون 'StartTime' بعد 'EndTime' -maximumConcurrentSchedulesInvalidExceptionMessage = يجب أن تكون الجداول الزمنية المتزامنة القصوى >=1 ولكن تم الحصول على: {0} -maximumConcurrentSchedulesLessThanMinimumExceptionMessage = لا يمكن أن تكون الجداول الزمنية المتزامنة القصوى أقل من الحد الأدنى {0} ولكن تم الحصول على: {1} -scheduleDoesNotExistExceptionMessage = الجدول الزمني '{0}' غير موجود. -suppliedDateBeforeScheduleStartTimeExceptionMessage = التاريخ المقدم قبل وقت بدء الجدول الزمني في {0} -suppliedDateAfterScheduleEndTimeExceptionMessage = التاريخ المقدم بعد وقت انتهاء الجدول الزمني في {0} -noSemaphoreFoundExceptionMessage = لم يتم العثور على Semaphore باسم '{0}' -noLogicPassedForRouteExceptionMessage = لم يتم تمرير منطق للمسار: {0} -noPathSuppliedForStaticRouteExceptionMessage = [{0}]: لم يتم توفير مسار للمسار الثابت. -sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: مسار المصدر المقدم للمسار الثابت غير موجود: {2} -noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: لم يتم تمرير منطق. -moduleDoesNotContainFunctionExceptionMessage = الوحدة {0} لا تحتوي على الوظيفة {1} لتحويلها إلى مسار. -pageNameShouldBeAlphaNumericExceptionMessage = يجب أن يكون اسم الصفحة قيمة أبجدية رقمية صالحة: {0} -filesHaveChangedMessage = تم تغيير الملفات التالية: -multipleEndpointsForGuiMessage = تم تعريف نقاط نهاية متعددة، سيتم استخدام الأولى فقط للواجهة الرسومية. -openingGuiMessage = جارٍ فتح الواجهة الرسومية. -listeningOnEndpointsMessage = الاستماع على {0} نقطة(نقاط) النهاية التالية [{1} خيط(خيوط)]: -specificationMessage = مواصفات -documentationMessage = توثيق -restartingServerMessage = إعادة تشغيل الخادم... -doneMessage = تم -deprecatedTitleVersionDescriptionWarningMessage = تحذير: العنوان، الإصدار والوصف في 'Enable-PodeOpenApi' مهمل. يرجى استخدام 'Add-PodeOAInfo' بدلاً من ذلك. -undefinedOpenApiReferencesMessage = مراجع OpenAPI غير معرّفة: -definitionTagMessage = تعريف {0}: -openApiGenerationDocumentErrorMessage = خطأ في مستند إنشاء OpenAPI: -infoTitleMandatoryMessage = info.title إلزامي. -infoVersionMandatoryMessage = info.version إلزامي. -missingComponentsMessage = المكون (المكونات) المفقود -openApiInfoMessage = معلومات OpenAPI: -serverLoopingMessage = تكرار الخادم كل {0} ثانية -iisShutdownMessage = (إيقاف تشغيل IIS) -terminatingMessage = إنهاء... -eolPowerShellWarningMessage = [تحذير] لم يتم اختبار Pode {0} على PowerShell {1}، حيث أنه نهاية العمر. -untestedPowerShellVersionWarningMessage = [تحذير] لم يتم اختبار Pode {0} على PowerShell {1}، حيث لم يكن متاحًا عند إصدار Pode. -'@ \ No newline at end of file +@{ + schemaValidationRequiresPowerShell610ExceptionMessage = 'يتطلب التحقق من صحة المخطط إصدار PowerShell 6.1.0 أو أحدث.' + pathOrScriptBlockRequiredExceptionMessage = 'مطلوب مسار أو ScriptBlock للحصول على قيم الوصول المخصصة.' + operationIdMustBeUniqueForArrayExceptionMessage = 'يجب أن يكون OperationID: {0} فريدًا ولا يمكن تطبيقه على مصفوفة.' + endpointNotDefinedForRedirectingExceptionMessage = "لم يتم تعريف نقطة نهاية باسم '{0}' لإعادة التوجيه." + filesHaveChangedMessage = 'تم تغيير الملفات التالية:' + iisAspnetcoreTokenMissingExceptionMessage = 'IIS ASPNETCORE_TOKEN مفقود.' + minValueGreaterThanMaxExceptionMessage = 'يجب ألا تكون القيمة الدنيا {0} أكبر من القيمة القصوى.' + noLogicPassedForRouteExceptionMessage = 'لم يتم تمرير منطق للمسار: {0}' + scriptPathDoesNotExistExceptionMessage = 'مسار البرنامج النصي غير موجود: {0}' + mutexAlreadyExistsExceptionMessage = 'يوجد بالفعل Mutex بالاسم التالي: {0}' + listeningOnEndpointsMessage = 'الاستماع على {0} نقطة(نقاط) النهاية التالية [{1} خيط(خيوط)]:' + unsupportedFunctionInServerlessContextExceptionMessage = 'الدالة {0} غير مدعومة في سياق بدون خادم.' + expectedNoJwtSignatureSuppliedExceptionMessage = 'لم يكن من المتوقع توفير توقيع JWT.' + secretAlreadyMountedExceptionMessage = "تم تثبيت سر بالاسم '{0}' بالفعل." + failedToAcquireLockExceptionMessage = 'فشل في الحصول على قفل على الكائن.' + noPathSuppliedForStaticRouteExceptionMessage = '[{0}]: لم يتم توفير مسار للمسار الثابت.' + invalidHostnameSuppliedExceptionMessage = 'اسم المضيف المقدم غير صالح: {0}' + authMethodAlreadyDefinedExceptionMessage = 'طريقة المصادقة محددة بالفعل: {0}' + csrfCookieRequiresSecretExceptionMessage = "عند استخدام ملفات تعريف الارتباط لـ CSRF، يكون السر مطلوبًا. يمكنك تقديم سر أو تعيين السر العالمي لملف تعريف الارتباط - (Set-PodeCookieSecret '' -Global)" + nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = 'مطلوب ScriptBlock غير فارغ لإنشاء مسار الصفحة.' + noPropertiesMutuallyExclusiveExceptionMessage = "المعامل 'NoProperties' يتعارض مع 'Properties' و 'MinProperties' و 'MaxProperties'." + incompatiblePodeDllExceptionMessage = 'يتم تحميل إصدار غير متوافق من Pode.DLL {0}. الإصدار {1} مطلوب. افتح جلسة Powershell/pwsh جديدة وأعد المحاولة.' + accessMethodDoesNotExistExceptionMessage = 'طريقة الوصول غير موجودة: {0}.' + scheduleAlreadyDefinedExceptionMessage = '[الجدول الزمني] {0}: الجدول الزمني معرف بالفعل.' + secondsValueCannotBeZeroOrLessExceptionMessage = 'لا يمكن أن تكون قيمة الثواني 0 أو أقل لـ {0}' + pathToLoadNotFoundExceptionMessage = 'لم يتم العثور على المسار لتحميل {0}: {1}' + failedToImportModuleExceptionMessage = 'فشل في استيراد الوحدة: {0}' + endpointNotExistExceptionMessage = "نقطة النهاية مع البروتوكول '{0}' والعنوان '{1}' أو العنوان المحلي '{2}' غير موجودة." + terminatingMessage = 'إنهاء...' + noCommandsSuppliedToConvertToRoutesExceptionMessage = 'لم يتم توفير أي أوامر لتحويلها إلى طرق.' + invalidTaskTypeExceptionMessage = 'نوع المهمة غير صالح، المتوقع إما [System.Threading.Tasks.Task] أو [hashtable].' + alreadyConnectedToWebSocketExceptionMessage = "متصل بالفعل بـ WebSocket بالاسم '{0}'" + crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = 'فحص نهاية الرسالة CRLF مدعوم فقط على نقاط النهاية TCP.' + testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = "يجب تمكين 'Test-PodeOAComponentSchema' باستخدام 'Enable-PodeOpenApi -EnableSchemaValidation'" + adModuleNotInstalledExceptionMessage = 'وحدة Active Directory غير مثبتة.' + cronExpressionInvalidExceptionMessage = 'يجب أن تتكون تعبير Cron من 5 أجزاء فقط: {0}' + noSessionToSetOnResponseExceptionMessage = 'لا توجد جلسة متاحة لتعيينها على الاستجابة.' + valueOutOfRangeExceptionMessage = "القيمة '{0}' لـ {1} غير صالحة، يجب أن تكون بين {2} و {3}" + loggingMethodAlreadyDefinedExceptionMessage = 'تم تعريف طريقة التسجيل بالفعل: {0}' + noSecretForHmac256ExceptionMessage = 'لم يتم تقديم أي سر لتجزئة HMAC256.' + eolPowerShellWarningMessage = '[تحذير] لم يتم اختبار Pode {0} على PowerShell {1}، حيث أنه نهاية العمر.' + runspacePoolFailedToLoadExceptionMessage = 'فشل تحميل RunspacePool لـ {0}.' + noEventRegisteredExceptionMessage = 'لا يوجد حدث {0} مسجل: {1}' + scheduleCannotHaveNegativeLimitExceptionMessage = '[الجدول الزمني] {0}: لا يمكن أن يكون له حد سلبي.' + openApiRequestStyleInvalidForParameterExceptionMessage = 'لا يمكن أن يكون نمط الطلب OpenApi {0} لمعلمة {1}.' + openApiDocumentNotCompliantExceptionMessage = 'مستند OpenAPI غير متوافق.' + taskDoesNotExistExceptionMessage = "المهمة '{0}' غير موجودة." + scopedVariableNotFoundExceptionMessage = 'لم يتم العثور على المتغير المحدد: {0}' + sessionsRequiredForCsrfExceptionMessage = 'الجلسات مطلوبة لاستخدام CSRF إلا إذا كنت ترغب في استخدام ملفات تعريف الارتباط.' + nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = 'مطلوب ScriptBlock غير فارغ لطريقة التسجيل.' + credentialsPassedWildcardForHeadersLiteralExceptionMessage = 'عند تمرير بيانات الاعتماد، سيتم اعتبار العلامة * للعنوان كـ سلسلة نصية حرفية وليس كعلامة.' + podeNotInitializedExceptionMessage = 'لم يتم تهيئة Pode.' + multipleEndpointsForGuiMessage = 'تم تعريف نقاط نهاية متعددة، سيتم استخدام الأولى فقط للواجهة الرسومية.' + operationIdMustBeUniqueExceptionMessage = 'يجب أن يكون OperationID: {0} فريدًا.' + invalidJsonJwtExceptionMessage = 'تم العثور على قيمة JSON غير صالحة في JWT' + noAlgorithmInJwtHeaderExceptionMessage = 'لم يتم توفير أي خوارزمية في رأس JWT.' + openApiVersionPropertyMandatoryExceptionMessage = 'خاصية إصدار OpenApi إلزامية.' + limitValueCannotBeZeroOrLessExceptionMessage = 'لا يمكن أن تكون القيمة الحدية 0 أو أقل لـ {0}' + timerDoesNotExistExceptionMessage = "المؤقت '{0}' غير موجود." + openApiGenerationDocumentErrorMessage = 'خطأ في مستند إنشاء OpenAPI:' + routeAlreadyContainsCustomAccessExceptionMessage = "المسار '[{0}] {1}' يحتوي بالفعل على وصول مخصص باسم '{2}'" + maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = 'لا يمكن أن يكون الحد الأقصى لمؤشرات ترابط WebSocket المتزامنة أقل من الحد الأدنى {0}، ولكن تم الحصول عليه: {1}' + middlewareAlreadyDefinedExceptionMessage = '[Middleware] {0}: تم تعريف الوسيط بالفعل.' + invalidAtomCharacterExceptionMessage = 'حرف الذرة غير صالح: {0}' + cacheStorageNotFoundForRetrieveExceptionMessage = "لم يتم العثور على مخزن ذاكرة التخزين المؤقت بالاسم '{0}' عند محاولة استرجاع العنصر المخزن مؤقتًا '{1}'" + headerMustHaveNameInEncodingContextExceptionMessage = 'يجب أن يحتوي الرأس على اسم عند استخدامه في سياق الترميز.' + moduleDoesNotContainFunctionExceptionMessage = 'الوحدة {0} لا تحتوي على الوظيفة {1} لتحويلها إلى مسار.' + pathToIconForGuiDoesNotExistExceptionMessage = 'المسار إلى الأيقونة للواجهة الرسومية غير موجود: {0}' + noTitleSuppliedForPageExceptionMessage = 'لم يتم توفير عنوان للصفحة {0}.' + certificateSuppliedForNonHttpsWssEndpointExceptionMessage = 'تم توفير شهادة لنقطة نهاية غير HTTPS/WSS.' + cannotLockNullObjectExceptionMessage = 'لا يمكن قفل كائن فارغ.' + showPodeGuiOnlyAvailableOnWindowsExceptionMessage = 'Show-PodeGui متاح حاليًا فقط لـ Windows PowerShell و PowerShell 7+ على Windows.' + unlockSecretButNoScriptBlockExceptionMessage = 'تم تقديم سر الفتح لنوع خزنة سرية مخصصة، ولكن لم يتم تقديم ScriptBlock الفتح.' + invalidIpAddressExceptionMessage = 'عنوان IP المقدم غير صالح: {0}' + maxDaysInvalidExceptionMessage = 'يجب أن يكون MaxDays 0 أو أكبر، ولكن تم الحصول على: {0}' + noRemoveScriptBlockForVaultExceptionMessage = "لم يتم تقديم ScriptBlock الإزالة لإزالة الأسرار من الخزنة '{0}'" + noSecretExpectedForNoSignatureExceptionMessage = 'لم يكن من المتوقع تقديم أي سر لعدم وجود توقيع.' + noCertificateFoundExceptionMessage = "لم يتم العثور على شهادة في {0}{1} لـ '{2}'" + minValueInvalidExceptionMessage = "القيمة الدنيا '{0}' لـ {1} غير صالحة، يجب أن تكون أكبر من/أو تساوي {2}" + accessRequiresAuthenticationOnRoutesExceptionMessage = 'يتطلب الوصول توفير المصادقة على الطرق.' + noSecretForHmac384ExceptionMessage = 'لم يتم تقديم أي سر لتجزئة HMAC384.' + windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = 'دعم المصادقة المحلية لـ Windows هو فقط لنظام Windows.' + definitionTagNotDefinedExceptionMessage = 'لم يتم تعريف علامة التعريف {0}.' + noComponentInDefinitionExceptionMessage = 'لا توجد مكون من نوع {0} باسم {1} متاح في تعريف {2}.' + noSmtpHandlersDefinedExceptionMessage = 'لم يتم تعريف أي معالجات SMTP.' + sessionMiddlewareAlreadyInitializedExceptionMessage = 'تم تهيئة Session Middleware بالفعل.' + reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = "ميزة المكون القابل لإعادة الاستخدام 'pathItems' غير متوفرة في OpenAPI v3.0." + wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = 'العلامة * للعنوان غير متوافقة مع مفتاح AutoHeaders.' + noDataForFileUploadedExceptionMessage = "لا توجد بيانات للملف '{0}' الذي تم تحميله في الطلب." + sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = 'يمكن تكوين SSE فقط على الطلبات التي تحتوي على قيمة رأس Accept النص/تيار الأحداث.' + noSessionAvailableToSaveExceptionMessage = 'لا توجد جلسة متاحة للحفظ.' + pathParameterRequiresRequiredSwitchExceptionMessage = "إذا كانت موقع المعلمة هو 'Path'، فإن المعلمة التبديل 'Required' إلزامية." + noOpenApiUrlSuppliedExceptionMessage = 'لم يتم توفير عنوان URL OpenAPI لـ {0}.' + maximumConcurrentSchedulesInvalidExceptionMessage = 'يجب أن تكون الجداول الزمنية المتزامنة القصوى >=1 ولكن تم الحصول على: {0}' + snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = 'Snapins مدعومة فقط في Windows PowerShell.' + eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = 'تسجيل عارض الأحداث مدعوم فقط على Windows.' + parametersMutuallyExclusiveExceptionMessage = "المعاملات '{0}' و '{1}' متعارضة." + pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = 'ميزة PathItems غير مدعومة في OpenAPI v3.0.x' + openApiParameterRequiresNameExceptionMessage = 'يتطلب معلمة OpenApi اسمًا محددًا.' + maximumConcurrentTasksLessThanMinimumExceptionMessage = 'لا يمكن أن يكون الحد الأقصى للمهام المتزامنة أقل من الحد الأدنى {0}، ولكن تم الحصول عليه: {1}' + noSemaphoreFoundExceptionMessage = "لم يتم العثور على Semaphore باسم '{0}'" + singleValueForIntervalExceptionMessage = 'يمكنك تقديم قيمة {0} واحدة فقط عند استخدام الفواصل الزمنية.' + jwtNotYetValidExceptionMessage = 'JWT غير صالح للاستخدام بعد.' + verbAlreadyDefinedForUrlExceptionMessage = '[الفعل] {0}: تم التعريف بالفعل لـ {1}' + noSecretNamedMountedExceptionMessage = "لم يتم تثبيت أي سر بالاسم '{0}'." + moduleOrVersionNotFoundExceptionMessage = 'لم يتم العثور على الوحدة أو الإصدار على {0}: {1}@{2}' + noScriptBlockSuppliedExceptionMessage = 'لم يتم تقديم أي ScriptBlock.' + noSecretVaultRegisteredExceptionMessage = "لم يتم تسجيل خزينة سرية بالاسم '{0}'." + nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = 'مطلوب اسم لنقطة النهاية إذا تم توفير معامل RedirectTo.' + openApiLicenseObjectRequiresNameExceptionMessage = "يتطلب كائن OpenAPI 'license' الخاصية 'name'. استخدم المعامل -LicenseName." + sourcePathDoesNotExistForStaticRouteExceptionMessage = '[{0})] {1}: مسار المصدر المقدم للمسار الثابت غير موجود: {2}' + noNameForWebSocketDisconnectExceptionMessage = 'لا يوجد اسم لفصل WebSocket من المزود.' + certificateExpiredExceptionMessage = "الشهادة '{0}' منتهية الصلاحية: {1}" + secretVaultUnlockExpiryDateInPastExceptionMessage = 'تاريخ انتهاء صلاحية فتح مخزن الأسرار في الماضي (UTC): {0}' + invalidExceptionTypeExceptionMessage = 'الاستثناء من نوع غير صالح، يجب أن يكون إما WebException أو HttpRequestException، ولكن تم الحصول عليه: {0}' + invalidSecretValueTypeExceptionMessage = 'قيمة السر من نوع غير صالح. الأنواع المتوقعة: String، SecureString، HashTable، Byte[]، أو PSCredential. ولكن تم الحصول عليه: {0}' + explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = 'وضع TLS الصريح مدعوم فقط على نقاط النهاية SMTPS و TCPS.' + discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = "يمكن استخدام المعامل 'DiscriminatorMapping' فقط عندما تكون خاصية 'DiscriminatorProperty' موجودة." + scriptErrorExceptionMessage = "خطأ '{0}' في البرنامج النصي {1} {2} (السطر {3}) الحرف {4} أثناء تنفيذ {5} على الكائن {6} 'الصنف: {7} الصنف الأساسي: {8}" + cannotSupplyIntervalForQuarterExceptionMessage = 'لا يمكن توفير قيمة الفاصل الزمني لكل ربع.' + scheduleEndTimeMustBeInFutureExceptionMessage = '[الجدول الزمني] {0}: يجب أن تكون قيمة EndTime في المستقبل.' + invalidJwtSignatureSuppliedExceptionMessage = 'توقيع JWT المقدم غير صالح.' + noSetScriptBlockForVaultExceptionMessage = "لم يتم تقديم ScriptBlock الإعداد لتحديث/إنشاء الأسرار في الخزنة '{0}'" + accessMethodNotExistForMergingExceptionMessage = 'طريقة الوصول غير موجودة للدمج: {0}' + defaultAuthNotInListExceptionMessage = "المصادقة الافتراضية '{0}' غير موجودة في قائمة المصادقة المقدمة." + parameterHasNoNameExceptionMessage = "لا يحتوي المعامل على اسم. يرجى إعطاء هذا المكون اسمًا باستخدام معامل 'Name'." + methodPathAlreadyDefinedForUrlExceptionMessage = '[{0}] {1}: تم التعريف بالفعل لـ {2}' + fileWatcherAlreadyDefinedExceptionMessage = "تم تعريف مراقب الملفات باسم '{0}' بالفعل." + noServiceHandlersDefinedExceptionMessage = 'لم يتم تعريف أي معالجات خدمة.' + secretRequiredForCustomSessionStorageExceptionMessage = 'مطلوب سر عند استخدام تخزين الجلسة المخصص.' + secretManagementModuleNotInstalledExceptionMessage = 'وحدة Microsoft.PowerShell.SecretManagement غير مثبتة.' + noPathSuppliedForRouteExceptionMessage = 'لم يتم توفير مسار للطريق.' + validationOfAnyOfSchemaNotSupportedExceptionMessage = "التحقق من مخطط يتضمن 'أي منها' غير مدعوم." + iisAuthSupportIsForWindowsOnlyExceptionMessage = 'دعم مصادقة IIS هو فقط لنظام Windows.' + oauth2InnerSchemeInvalidExceptionMessage = 'يمكن أن تكون OAuth2 InnerScheme إما مصادقة Basic أو Form فقط، ولكن تم الحصول على: {0}' + noRoutePathSuppliedForPageExceptionMessage = 'لم يتم توفير مسار للصفحة {0}.' + cacheStorageNotFoundForExistsExceptionMessage = "لم يتم العثور على مخزن ذاكرة التخزين المؤقت بالاسم '{0}' عند محاولة التحقق مما إذا كان العنصر المخزن مؤقتًا '{1}' موجودًا." + handlerAlreadyDefinedExceptionMessage = '[{0}] {1}: تم تعريف المعالج بالفعل.' + sessionsNotConfiguredExceptionMessage = 'لم يتم تكوين الجلسات.' + propertiesTypeObjectAssociationExceptionMessage = 'يمكن ربط خصائص النوع Object فقط بـ {0}.' + sessionsRequiredForSessionPersistentAuthExceptionMessage = 'تتطلب المصادقة المستمرة للجلسة جلسات.' + invalidPathWildcardOrDirectoryExceptionMessage = 'لا يمكن أن يكون المسار المقدم عبارة عن حرف بدل أو دليل: {0}' + accessMethodAlreadyDefinedExceptionMessage = 'طريقة الوصول معرفة بالفعل: {0}' + parametersValueOrExternalValueMandatoryExceptionMessage = "المعاملات 'Value' أو 'ExternalValue' إلزامية." + maximumConcurrentTasksInvalidExceptionMessage = 'يجب أن يكون الحد الأقصى للمهام المتزامنة >=1، ولكن تم الحصول عليه: {0}' + cannotCreatePropertyWithoutTypeExceptionMessage = 'لا يمكن إنشاء الخاصية لأنه لم يتم تعريف نوع.' + authMethodNotExistForMergingExceptionMessage = 'طريقة المصادقة غير موجودة للدمج: {0}' + maxValueInvalidExceptionMessage = "القيمة القصوى '{0}' لـ {1} غير صالحة، يجب أن تكون أقل من/أو تساوي {2}" + endpointAlreadyDefinedExceptionMessage = "تم تعريف نقطة نهاية باسم '{0}' بالفعل." + eventAlreadyRegisteredExceptionMessage = 'الحدث {0} مسجل بالفعل: {1}' + parameterNotSuppliedInRequestExceptionMessage = "لم يتم توفير معلمة باسم '{0}' في الطلب أو لا توجد بيانات متاحة." + cacheStorageNotFoundForSetExceptionMessage = "لم يتم العثور على مخزن ذاكرة التخزين المؤقت بالاسم '{0}' عند محاولة تعيين العنصر المخزن مؤقتًا '{1}'" + methodPathAlreadyDefinedExceptionMessage = '[{0}] {1}: تم التعريف بالفعل.' + errorLoggingAlreadyEnabledExceptionMessage = 'تم تمكين تسجيل الأخطاء بالفعل.' + valueForUsingVariableNotFoundExceptionMessage = "لم يتم العثور على قيمة لـ '`$using:{0}'." + rapidPdfDoesNotSupportOpenApi31ExceptionMessage = 'أداة الوثائق RapidPdf لا تدعم OpenAPI 3.1' + oauth2ClientSecretRequiredExceptionMessage = 'تتطلب OAuth2 سر العميل عند عدم استخدام PKCE.' + invalidBase64JwtExceptionMessage = 'تم العثور على قيمة مشفرة بتنسيق Base64 غير صالحة في JWT' + noSessionToCalculateDataHashExceptionMessage = 'لا توجد جلسة متاحة لحساب تجزئة البيانات.' + cacheStorageNotFoundForRemoveExceptionMessage = "لم يتم العثور على مخزن ذاكرة التخزين المؤقت بالاسم '{0}' عند محاولة إزالة العنصر المخزن مؤقتًا '{1}'" + csrfMiddlewareNotInitializedExceptionMessage = 'لم يتم تهيئة CSRF Middleware.' + infoTitleMandatoryMessage = 'info.title إلزامي.' + typeCanOnlyBeAssociatedWithObjectExceptionMessage = 'النوع {0} يمكن ربطه فقط بجسم.' + userFileDoesNotExistExceptionMessage = 'ملف المستخدم غير موجود: {0}' + routeParameterNeedsValidScriptblockExceptionMessage = 'المعامل Route يتطلب ScriptBlock صالح وغير فارغ.' + nextTriggerCalculationErrorExceptionMessage = 'يبدو أن هناك خطأ ما أثناء محاولة حساب تاريخ المشغل التالي: {0}' + cannotLockValueTypeExceptionMessage = 'لا يمكن قفل [ValueTypes].' + failedToCreateOpenSslCertExceptionMessage = 'فشل في إنشاء شهادة openssl: {0}' + jwtExpiredExceptionMessage = 'انتهت صلاحية JWT.' + openingGuiMessage = 'جارٍ فتح الواجهة الرسومية.' + multiTypePropertiesRequireOpenApi31ExceptionMessage = 'تتطلب خصائص الأنواع المتعددة إصدار OpenApi 3.1 أو أعلى.' + noNameForWebSocketRemoveExceptionMessage = 'لا يوجد اسم لإزالة WebSocket من المزود.' + maxSizeInvalidExceptionMessage = 'يجب أن يكون MaxSize 0 أو أكبر، ولكن تم الحصول على: {0}' + iisShutdownMessage = '(إيقاف تشغيل IIS)' + cannotUnlockValueTypeExceptionMessage = 'لا يمكن فتح [ValueTypes].' + noJwtSignatureForAlgorithmExceptionMessage = 'لم يتم توفير توقيع JWT لـ {0}.' + maximumConcurrentWebSocketThreadsInvalidExceptionMessage = 'يجب أن يكون الحد الأقصى لمؤشرات ترابط WebSocket المتزامنة >=1، ولكن تم الحصول عليه: {0}' + acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = 'رسالة الإقرار مدعومة فقط على نقاط النهاية SMTP و TCP.' + failedToConnectToUrlExceptionMessage = 'فشل الاتصال بعنوان URL: {0}' + failedToAcquireMutexOwnershipExceptionMessage = 'فشل في الحصول على ملكية Mutex. اسم Mutex: {0}' + sessionsRequiredForOAuth2WithPKCEExceptionMessage = 'تتطلب OAuth2 مع PKCE جلسات.' + failedToConnectToWebSocketExceptionMessage = 'فشل الاتصال بـ WebSocket: {0}' + unsupportedObjectExceptionMessage = 'الكائن غير مدعوم' + failedToParseAddressExceptionMessage = "فشل في تحليل '{0}' كعنوان IP/مضيف:منفذ صالح" + mustBeRunningWithAdminPrivilegesExceptionMessage = 'يجب التشغيل بامتيازات المسؤول للاستماع إلى العناوين غير المحلية.' + specificationMessage = 'مواصفات' + cacheStorageNotFoundForClearExceptionMessage = "لم يتم العثور على مخزن ذاكرة التخزين المؤقت بالاسم '{0}' عند محاولة مسح الذاكرة المؤقتة." + restartingServerMessage = 'إعادة تشغيل الخادم...' + cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = "لا يمكن توفير فترة زمنية عندما يكون المعامل 'Every' مضبوطًا على None." + unsupportedJwtAlgorithmExceptionMessage = 'خوارزمية JWT غير مدعومة حاليًا: {0}' + websocketsNotConfiguredForSignalMessagesExceptionMessage = 'لم يتم تهيئة WebSockets لإرسال رسائل الإشارة.' + invalidLogicTypeInHashtableMiddlewareExceptionMessage = 'مكون Middleware من نوع Hashtable المقدم يحتوي على نوع منطق غير صالح. كان المتوقع ScriptBlock، ولكن تم الحصول عليه: {0}' + maximumConcurrentSchedulesLessThanMinimumExceptionMessage = 'لا يمكن أن تكون الجداول الزمنية المتزامنة القصوى أقل من الحد الأدنى {0} ولكن تم الحصول على: {1}' + failedToAcquireSemaphoreOwnershipExceptionMessage = 'فشل في الحصول على ملكية Semaphore. اسم Semaphore: {0}' + propertiesParameterWithoutNameExceptionMessage = 'لا يمكن استخدام معلمات الخصائص إذا لم يكن لدى الخاصية اسم.' + customSessionStorageMethodNotImplementedExceptionMessage = "تخزين الجلسة المخصص لا ينفذ الطريقة المطلوبة '{0}()'." + authenticationMethodDoesNotExistExceptionMessage = 'طريقة المصادقة غير موجودة: {0}' + webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = 'ميزة Webhooks غير مدعومة في OpenAPI v3.0.x' + invalidContentTypeForSchemaExceptionMessage = "'content-type' غير صالح في المخطط: {0}" + noUnlockScriptBlockForVaultExceptionMessage = "لم يتم تقديم ScriptBlock الفتح لفتح الخزنة '{0}'" + definitionTagMessage = 'تعريف {0}:' + failedToOpenRunspacePoolExceptionMessage = 'فشل في فتح RunspacePool: {0}' + verbNoLogicPassedExceptionMessage = '[الفعل] {0}: لم يتم تمرير أي منطق' + noMutexFoundExceptionMessage = "لم يتم العثور على Mutex باسم '{0}'" + documentationMessage = 'توثيق' + timerAlreadyDefinedExceptionMessage = '[المؤقت] {0}: المؤقت معرف بالفعل.' + invalidPortExceptionMessage = 'لا يمكن أن يكون المنفذ سالبًا: {0}' + viewsFolderNameAlreadyExistsExceptionMessage = 'اسم مجلد العرض موجود بالفعل: {0}' + noNameForWebSocketResetExceptionMessage = 'لا يوجد اسم لإعادة تعيين WebSocket من المزود.' + mergeDefaultAuthNotInListExceptionMessage = "المصادقة MergeDefault '{0}' غير موجودة في قائمة المصادقة المقدمة." + descriptionRequiredExceptionMessage = 'الوصف مطلوب.' + pageNameShouldBeAlphaNumericExceptionMessage = 'يجب أن يكون اسم الصفحة قيمة أبجدية رقمية صالحة: {0}' + defaultValueNotBooleanOrEnumExceptionMessage = 'القيمة الافتراضية ليست من نوع boolean وليست جزءًا من التعداد.' + openApiComponentSchemaDoesNotExistExceptionMessage = 'مخطط مكون OpenApi {0} غير موجود.' + timerParameterMustBeGreaterThanZeroExceptionMessage = '[المؤقت] {0}: {1} يجب أن يكون أكبر من 0.' + taskTimedOutExceptionMessage = 'انتهت المهلة الزمنية للمهمة بعد {0}ms.' + scheduleStartTimeAfterEndTimeExceptionMessage = "[الجدول الزمني] {0}: لا يمكن أن يكون 'StartTime' بعد 'EndTime'" + infoVersionMandatoryMessage = 'info.version إلزامي.' + cannotUnlockNullObjectExceptionMessage = 'لا يمكن فتح كائن فارغ.' + nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = 'مطلوب ScriptBlock غير فارغ لخطة المصادقة المخصصة.' + validationOfOneOfSchemaNotSupportedExceptionMessage = "التحقق من مخطط يتضمن 'واحد منها' غير مدعوم." + routeParameterCannotBeNullExceptionMessage = "لا يمكن أن يكون المعامل 'Route' فارغًا." + cacheStorageAlreadyExistsExceptionMessage = "مخزن ذاكرة التخزين المؤقت بالاسم '{0}' موجود بالفعل." + loggingMethodRequiresValidScriptBlockExceptionMessage = "تتطلب طريقة الإخراج المقدمة لطريقة التسجيل '{0}' ScriptBlock صالح." + scopedVariableAlreadyDefinedExceptionMessage = 'المتغير المحدد بالفعل معرف: {0}' + oauth2RequiresAuthorizeUrlExceptionMessage = 'تتطلب OAuth2 توفير عنوان URL للتفويض.' + pathNotExistExceptionMessage = 'المسار غير موجود: {0}' + noDomainServerNameForWindowsAdAuthExceptionMessage = 'لم يتم توفير اسم خادم المجال لمصادقة Windows AD.' + suppliedDateAfterScheduleEndTimeExceptionMessage = 'التاريخ المقدم بعد وقت انتهاء الجدول الزمني في {0}' + wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = 'العلامة * للطرق غير متوافقة مع مفتاح AutoMethods.' + cannotSupplyIntervalForYearExceptionMessage = 'لا يمكن توفير قيمة الفاصل الزمني لكل سنة.' + missingComponentsMessage = 'المكون (المكونات) المفقود' + invalidStrictTransportSecurityDurationExceptionMessage = 'تم توفير مدة Strict-Transport-Security غير صالحة: {0}. يجب أن تكون أكبر من 0.' + noSecretForHmac512ExceptionMessage = 'لم يتم تقديم أي سر لتجزئة HMAC512.' + daysInMonthExceededExceptionMessage = 'يحتوي {0} على {1} أيام فقط، ولكن تم توفير {2}.' + nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = 'مطلوب ScriptBlock غير فارغ لطريقة إخراج السجل المخصصة.' + encodingAttributeOnlyAppliesToMultipartExceptionMessage = 'ينطبق سمة الترميز فقط على نصوص الطلبات multipart و application/x-www-form-urlencoded.' + suppliedDateBeforeScheduleStartTimeExceptionMessage = 'التاريخ المقدم قبل وقت بدء الجدول الزمني في {0}' + unlockSecretRequiredExceptionMessage = "خاصية 'UnlockSecret' مطلوبة عند استخدام Microsoft.PowerShell.SecretStore" + noLogicPassedForMethodRouteExceptionMessage = '[{0}] {1}: لم يتم تمرير منطق.' + bodyParserAlreadyDefinedForContentTypeExceptionMessage = 'تم تعريف محلل الجسم لنوع المحتوى {0} بالفعل.' + invalidJwtSuppliedExceptionMessage = 'JWT المقدم غير صالح.' + sessionsRequiredForFlashMessagesExceptionMessage = 'الجلسات مطلوبة لاستخدام رسائل الفلاش.' + outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = 'طريقة الإخراج المقدمة لتسجيل الطلبات تتطلب ScriptBlock صالح.' + semaphoreAlreadyExistsExceptionMessage = 'يوجد بالفعل Semaphore بالاسم التالي: {0}' + invalidJwtHeaderAlgorithmSuppliedExceptionMessage = 'خوارزمية رأس JWT المقدمة غير صالحة.' + oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = "مزود OAuth2 لا يدعم نوع المنحة 'password' المطلوبة لاستخدام InnerScheme." + invalidAliasFoundExceptionMessage = 'تم العثور على اسم مستعار غير صالح {0}: {1}' + scheduleDoesNotExistExceptionMessage = "الجدول الزمني '{0}' غير موجود." + accessMethodNotExistExceptionMessage = 'طريقة الوصول غير موجودة: {0}' + oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = "مزود OAuth2 لا يدعم نوع الاستجابة 'code'." + untestedPowerShellVersionWarningMessage = '[تحذير] لم يتم اختبار Pode {0} على PowerShell {1}، حيث لم يكن متاحًا عند إصدار Pode.' + secretVaultAlreadyRegisteredAutoImportExceptionMessage = "تم تسجيل خزنة سرية باسم '{0}' بالفعل أثناء استيراد الخزن السرية تلقائيًا." + schemeRequiresValidScriptBlockExceptionMessage = "تتطلب الخطة المقدمة لمحقق المصادقة '{0}' ScriptBlock صالح." + serverLoopingMessage = 'تكرار الخادم كل {0} ثانية' + certificateThumbprintsNameSupportedOnWindowsExceptionMessage = 'بصمات الإبهام/الاسم للشهادة مدعومة فقط على Windows.' + sseConnectionNameRequiredExceptionMessage = "مطلوب اسم اتصال SSE، إما من -Name أو `$WebEvent.Sse.Name" + invalidMiddlewareTypeExceptionMessage = 'أحد مكونات Middleware المقدمة من نوع غير صالح. كان المتوقع إما ScriptBlock أو Hashtable، ولكن تم الحصول عليه: {0}' + noSecretForJwtSignatureExceptionMessage = 'لم يتم تقديم أي سر لتوقيع JWT.' + modulePathDoesNotExistExceptionMessage = 'مسار الوحدة غير موجود: {0}' + taskAlreadyDefinedExceptionMessage = '[المهمة] {0}: المهمة معرفة بالفعل.' + verbAlreadyDefinedExceptionMessage = '[الفعل] {0}: تم التعريف بالفعل' + clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = 'الشهادات العميلة مدعومة فقط على نقاط النهاية HTTPS.' + endpointNameNotExistExceptionMessage = "نقطة النهاية بالاسم '{0}' غير موجودة." + middlewareNoLogicSuppliedExceptionMessage = '[Middleware]: لم يتم توفير أي منطق في ScriptBlock.' + scriptBlockRequiredForMergingUsersExceptionMessage = 'مطلوب ScriptBlock لدمج عدة مستخدمين مصادق عليهم في كائن واحد عندما تكون Valid هي All.' + secretVaultAlreadyRegisteredExceptionMessage = "تم تسجيل مخزن الأسرار بالاسم '{0}' بالفعل{1}." + deprecatedTitleVersionDescriptionWarningMessage = "تحذير: العنوان، الإصدار والوصف في 'Enable-PodeOpenApi' مهمل. يرجى استخدام 'Add-PodeOAInfo' بدلاً من ذلك." + undefinedOpenApiReferencesMessage = 'مراجع OpenAPI غير معرّفة:' + doneMessage = 'تم' + swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = 'هذا الإصدار من Swagger-Editor لا يدعم OpenAPI 3.1' + durationMustBeZeroOrGreaterExceptionMessage = 'يجب أن تكون المدة 0 أو أكبر، ولكن تم الحصول عليها: {0}s' + viewsPathDoesNotExistExceptionMessage = 'مسار العرض غير موجود: {0}' + discriminatorIncompatibleWithAllOfExceptionMessage = "المعامل 'Discriminator' غير متوافق مع 'allOf'." + noNameForWebSocketSendMessageExceptionMessage = 'لا يوجد اسم لإرسال رسالة إلى WebSocket المزود.' + hashtableMiddlewareNoLogicExceptionMessage = 'مكون Middleware من نوع Hashtable المقدم لا يحتوي على منطق معرف.' + openApiInfoMessage = 'معلومات OpenAPI:' + invalidSchemeForAuthValidatorExceptionMessage = "تتطلب الخطة '{0}' المقدمة لمحقق المصادقة '{1}' ScriptBlock صالح." + sseFailedToBroadcastExceptionMessage = 'فشل بث SSE بسبب مستوى البث SSE المحدد لـ {0}: {1}' + adModuleWindowsOnlyExceptionMessage = 'وحدة Active Directory متاحة فقط على نظام Windows.' + requestLoggingAlreadyEnabledExceptionMessage = 'تم تمكين تسجيل الطلبات بالفعل.' + invalidAccessControlMaxAgeDurationExceptionMessage = 'مدة Access-Control-Max-Age غير صالحة المقدمة: {0}. يجب أن تكون أكبر من 0.' +} + diff --git a/src/Locales/de/Pode.psd1 b/src/Locales/de/Pode.psd1 index a94c6c673..7e23337ee 100644 --- a/src/Locales/de/Pode.psd1 +++ b/src/Locales/de/Pode.psd1 @@ -1,284 +1,285 @@ -ConvertFrom-StringData -StringData @' -adModuleWindowsOnlyExceptionMessage = Active Directory-Modul nur unter Windows verfügbar. -adModuleNotInstalledExceptionMessage = Das Active Directory-Modul ist nicht installiert. -secretManagementModuleNotInstalledExceptionMessage = Das Modul Microsoft.PowerShell.SecretManagement ist nicht installiert. -secretVaultAlreadyRegisteredAutoImportExceptionMessage = Ein Geheimtresor mit dem Namen '{0}' wurde bereits beim automatischen Importieren von Geheimtresoren registriert. -failedToOpenRunspacePoolExceptionMessage = Fehler beim Öffnen des Runspace-Pools: {0} -cronExpressionInvalidExceptionMessage = Die Cron-Ausdruck sollte nur aus 5 Teilen bestehen: {0} -invalidAliasFoundExceptionMessage = Ungültiges {0}-Alias gefunden: {1} -invalidAtomCharacterExceptionMessage = Ungültiges Atomzeichen: {0} -minValueGreaterThanMaxExceptionMessage = Der Mindestwert für {0} darf nicht größer als der Maximalwert sein. -minValueInvalidExceptionMessage = Der Mindestwert '{0}' für {1} ist ungültig, sollte größer oder gleich {2} sein -maxValueInvalidExceptionMessage = Der Maximalwert '{0}' für {1} ist ungültig, sollte kleiner oder gleich {2} sein -valueOutOfRangeExceptionMessage = Wert '{0}' für {1} ist ungültig, sollte zwischen {2} und {3} liegen -daysInMonthExceededExceptionMessage = {0} hat nur {1} Tage, aber {2} wurden angegeben -nextTriggerCalculationErrorExceptionMessage = Es scheint, als ob beim Berechnen des nächsten Trigger-Datums und der nächsten Triggerzeit etwas schief gelaufen wäre: {0} -incompatiblePodeDllExceptionMessage = Eine vorhandene inkompatible Pode.DLL-Version {0} ist geladen. Version {1} wird benötigt. Öffnen Sie eine neue PowerShell/pwsh-Sitzung und versuchen Sie es erneut. -endpointNotExistExceptionMessage = Der Endpunkt mit dem Protokoll '{0}' und der Adresse '{1}' oder der lokalen Adresse '{2}' existiert nicht -endpointNameNotExistExceptionMessage = Der Endpunkt mit dem Namen '{0}' existiert nicht -failedToConnectToUrlExceptionMessage = Verbindung mit der URL fehlgeschlagen: {0} -failedToParseAddressExceptionMessage = Konnte '{0}' nicht als gültige IP/Host:Port-Adresse analysieren -invalidIpAddressExceptionMessage = Die angegebene IP-Adresse ist ungültig: {0} -invalidPortExceptionMessage = Der Port kann nicht negativ sein: {0} -pathNotExistExceptionMessage = Pfad existiert nicht: {0} -noSecretForHmac256ExceptionMessage = Es wurde kein Geheimnis für den HMAC256-Hash angegeben. -noSecretForHmac384ExceptionMessage = Es wurde kein Geheimnis für den HMAC384-Hash angegeben. -noSecretForHmac512ExceptionMessage = Es wurde kein Geheimnis für den HMAC512-Hash angegeben. -noSecretForJwtSignatureExceptionMessage = Es wurde kein Geheimnis für die JWT-Signatur angegeben. -noSecretExpectedForNoSignatureExceptionMessage = Es wurde erwartet, dass kein Geheimnis für keine Signatur angegeben wird. -unsupportedJwtAlgorithmExceptionMessage = Der JWT-Algorithmus wird derzeit nicht unterstützt: {0} -invalidBase64JwtExceptionMessage = Ungültiger Base64-codierter Wert in JWT gefunden -invalidJsonJwtExceptionMessage = Ungültiger JSON-Wert in JWT gefunden -unsupportedFunctionInServerlessContextExceptionMessage = Die Funktion {0} wird in einem serverlosen Kontext nicht unterstützt. -invalidPathWildcardOrDirectoryExceptionMessage = Der angegebene Pfad darf kein Platzhalter oder Verzeichnis sein: {0} -invalidExceptionTypeExceptionMessage = Die Ausnahme hat einen ungültigen Typ. Er sollte entweder WebException oder HttpRequestException sein, aber es wurde {0} erhalten -pathToLoadNotFoundExceptionMessage = Pfad zum Laden von {0} nicht gefunden: {1} -singleValueForIntervalExceptionMessage = Sie können nur einen einzelnen {0}-Wert angeben, wenn Sie Intervalle verwenden. -scriptErrorExceptionMessage = Fehler '{0}' im Skript {1} {2} (Zeile {3}) Zeichen {4} beim Ausführen von {5} auf {6} Objekt '{7}' Klasse: {8} Basisklasse: {9} -noScriptBlockSuppliedExceptionMessage = Kein Skriptblock angegeben. -iisAspnetcoreTokenMissingExceptionMessage = Das IIS-ASPNETCORE_TOKEN fehlt. -propertiesParameterWithoutNameExceptionMessage = Die Eigenschaftsparameter können nicht verwendet werden, wenn die Eigenschaft keinen Namen hat. -multiTypePropertiesRequireOpenApi31ExceptionMessage = Mehrfachtyp-Eigenschaften erfordern OpenApi-Version 3.1 oder höher. -openApiVersionPropertyMandatoryExceptionMessage = Die Eigenschaft OpenApi-Version ist obligatorisch. -webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = Das Webhooks-Feature wird in OpenAPI v3.0.x nicht unterstützt. -authenticationMethodDoesNotExistExceptionMessage = Authentifizierungsmethode existiert nicht: {0} -unsupportedObjectExceptionMessage = Nicht unterstütztes Objekt -validationOfAnyOfSchemaNotSupportedExceptionMessage = Die Validierung eines Schemas, das 'anyof' enthält, wird nicht unterstützt. -validationOfOneOfSchemaNotSupportedExceptionMessage = Die Validierung eines Schemas, das 'oneof' enthält, wird nicht unterstützt. -cannotCreatePropertyWithoutTypeExceptionMessage = Die Eigenschaft kann nicht erstellt werden, weil kein Typ definiert ist. -headerMustHaveNameInEncodingContextExceptionMessage = Ein Header muss einen Namen haben, wenn er im Codierungskontext verwendet wird. -descriptionRequiredExceptionMessage = Eine Beschreibung ist erforderlich. -openApiDocumentNotCompliantExceptionMessage = Das OpenAPI-Dokument ist nicht konform. -noComponentInDefinitionExceptionMessage = Es ist keine Komponente des Typs {0} mit dem Namen {1} in der Definition {2} verfügbar. -methodPathAlreadyDefinedExceptionMessage = [{0}] {1}: Bereits definiert. -methodPathAlreadyDefinedForUrlExceptionMessage = [{0}] {1}: Bereits für {2} definiert. -invalidMiddlewareTypeExceptionMessage = Eines der angegebenen Middleware-Objekte ist ein ungültiger Typ. Erwartet wurde entweder ein ScriptBlock oder ein Hashtable, aber erhalten wurde: {0}. -hashtableMiddlewareNoLogicExceptionMessage = Eine angegebene Hashtable-Middleware enthält keine definierte Logik. -invalidLogicTypeInHashtableMiddlewareExceptionMessage = Eine angegebene Hashtable-Middleware enthält einen ungültigen Logik-Typ. Erwartet wurde ein ScriptBlock, aber erhalten wurde: {0}. -scopedVariableAlreadyDefinedExceptionMessage = Die Bereichsvariable ist bereits definiert: {0}. -valueForUsingVariableNotFoundExceptionMessage = Der Wert für '`$using:{0}' konnte nicht gefunden werden. -unlockSecretRequiredExceptionMessage = Eine 'UnlockSecret'-Eigenschaft ist erforderlich, wenn Microsoft.PowerShell.SecretStore verwendet wird. -unlockSecretButNoScriptBlockExceptionMessage = Unlock secret für benutzerdefinierten Secret Vault-Typ angegeben, aber kein Unlock ScriptBlock bereitgestellt. -noUnlockScriptBlockForVaultExceptionMessage = Kein Unlock ScriptBlock für das Entsperren des Tresors '{0}' bereitgestellt. -noSetScriptBlockForVaultExceptionMessage = Kein Set ScriptBlock für das Aktualisieren/Erstellen von Geheimnissen im Tresor '{0}' bereitgestellt. -noRemoveScriptBlockForVaultExceptionMessage = Kein Remove ScriptBlock für das Entfernen von Geheimnissen im Tresor '{0}' bereitgestellt. -invalidSecretValueTypeExceptionMessage = Der Geheimniswert hat einen ungültigen Typ. Erwartete Typen: String, SecureString, HashTable, Byte[] oder PSCredential. Aber erhalten wurde: {0}. -limitValueCannotBeZeroOrLessExceptionMessage = Der Grenzwert darf für {0} nicht 0 oder weniger sein. -secondsValueCannotBeZeroOrLessExceptionMessage = Der Sekundenwert darf für {0} nicht 0 oder weniger sein. -failedToCreateOpenSslCertExceptionMessage = Erstellung des OpenSSL-Zertifikats fehlgeschlagen: {0}. -certificateThumbprintsNameSupportedOnWindowsExceptionMessage = Zertifikat-Thumbprints/Name werden nur unter Windows unterstützt. -noCertificateFoundExceptionMessage = Es wurde kein Zertifikat in {0}\{1} für '{2}' gefunden. -runspacePoolFailedToLoadExceptionMessage = {0} RunspacePool konnte nicht geladen werden. -noServiceHandlersDefinedExceptionMessage = Es wurden keine Service-Handler definiert. -noSessionToSetOnResponseExceptionMessage = Keine Sitzung verfügbar, die auf die Antwort gesetzt werden kann. -noSessionToCalculateDataHashExceptionMessage = Keine Sitzung verfügbar, um den Datenhash zu berechnen. -moduleOrVersionNotFoundExceptionMessage = Modul oder Version nicht gefunden auf {0}: {1}@{2} -noSmtpHandlersDefinedExceptionMessage = Es wurden keine SMTP-Handler definiert. -taskTimedOutExceptionMessage = Aufgabe ist nach {0}ms abgelaufen. -verbAlreadyDefinedExceptionMessage = [Verb] {0}: Bereits definiert. -verbAlreadyDefinedForUrlExceptionMessage = [Verb] {0}: Bereits für {1} definiert. -pathOrScriptBlockRequiredExceptionMessage = Ein Pfad oder ScriptBlock ist erforderlich, um die benutzerdefinierten Zugriffswerte zu beziehen. -accessMethodAlreadyDefinedExceptionMessage = Zugriffsmethode bereits definiert: {0}. -accessMethodNotExistForMergingExceptionMessage = Zugriffsmethode zum Zusammenführen nicht vorhanden: {0}. -routeAlreadyContainsCustomAccessExceptionMessage = Die Route '[{0}] {1}' enthält bereits einen benutzerdefinierten Zugriff mit dem Namen '{2}'. -accessMethodNotExistExceptionMessage = Zugriffsmethode nicht vorhanden: {0}. -pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = Das PathItems-Feature wird in OpenAPI v3.0.x nicht unterstützt. -nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = Ein nicht leerer ScriptBlock ist für das benutzerdefinierte Authentifizierungsschema erforderlich. -oauth2InnerSchemeInvalidExceptionMessage = OAuth2 InnerScheme kann nur entweder Basic oder Form-Authentifizierung sein, aber erhalten: {0} -sessionsRequiredForOAuth2WithPKCEExceptionMessage = Sitzungen sind erforderlich, um OAuth2 mit PKCE zu verwenden. -oauth2ClientSecretRequiredExceptionMessage = OAuth2 erfordert ein Client Secret, wenn PKCE nicht verwendet wird. -authMethodAlreadyDefinedExceptionMessage = Authentifizierungsmethode bereits definiert: {0} -invalidSchemeForAuthValidatorExceptionMessage = Das bereitgestellte '{0}'-Schema für den Authentifizierungsvalidator '{1}' erfordert einen gültigen ScriptBlock. -sessionsRequiredForSessionPersistentAuthExceptionMessage = Sitzungen sind erforderlich, um die sitzungsbeständige Authentifizierung zu verwenden. -oauth2RequiresAuthorizeUrlExceptionMessage = OAuth2 erfordert die Angabe einer Autorisierungs-URL. -authMethodNotExistForMergingExceptionMessage = Die Authentifizierungsmethode existiert nicht zum Zusammenführen: {0} -mergeDefaultAuthNotInListExceptionMessage = Die MergeDefault-Authentifizierung '{0}' befindet sich nicht in der angegebenen Authentifizierungsliste. -defaultAuthNotInListExceptionMessage = Die Standardauthentifizierung '{0}' befindet sich nicht in der angegebenen Authentifizierungsliste. -scriptBlockRequiredForMergingUsersExceptionMessage = Ein ScriptBlock ist erforderlich, um mehrere authentifizierte Benutzer zu einem Objekt zusammenzuführen, wenn Valid All ist. -noDomainServerNameForWindowsAdAuthExceptionMessage = Es wurde kein Domänenservername für die Windows-AD-Authentifizierung angegeben. -sessionsNotConfiguredExceptionMessage = Sitzungen wurden nicht konfiguriert. -windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = Die Unterstützung der lokalen Windows-Authentifizierung gilt nur für Windows. -iisAuthSupportIsForWindowsOnlyExceptionMessage = Die IIS-Authentifizierungsunterstützung gilt nur für Windows. -noAlgorithmInJwtHeaderExceptionMessage = Kein Algorithmus im JWT-Header angegeben. -invalidJwtSuppliedExceptionMessage = Ungültiger JWT angegeben. -invalidJwtHeaderAlgorithmSuppliedExceptionMessage = Ungültiger JWT-Header-Algorithmus angegeben. -noJwtSignatureForAlgorithmExceptionMessage = Keine JWT-Signatur für {0} angegeben. -expectedNoJwtSignatureSuppliedExceptionMessage = Es wurde keine JWT-Signatur erwartet. -invalidJwtSignatureSuppliedExceptionMessage = Ungültige JWT-Signatur angegeben. -jwtExpiredExceptionMessage = Der JWT ist abgelaufen. -jwtNotYetValidExceptionMessage = Der JWT ist noch nicht gültig. -snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = Snapins werden nur in Windows PowerShell unterstützt. -userFileDoesNotExistExceptionMessage = Die Benutzerdaten-Datei existiert nicht: {0} -schemeRequiresValidScriptBlockExceptionMessage = Das bereitgestellte Schema für den Authentifizierungsvalidator '{0}' erfordert einen gültigen ScriptBlock. -oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = Der OAuth2-Anbieter unterstützt den 'code'-Antworttyp nicht. -oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = Der OAuth2-Anbieter unterstützt den für die Verwendung eines InnerScheme erforderlichen 'password'-Grant-Typ nicht. -eventAlreadyRegisteredExceptionMessage = Ereignis {0} bereits registriert: {1} -noEventRegisteredExceptionMessage = Kein Ereignis {0} registriert: {1} -sessionsRequiredForFlashMessagesExceptionMessage = Sitzungen sind erforderlich, um Flash-Nachrichten zu verwenden. -eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = Das Protokollieren im Ereignisanzeige wird nur auf Windows unterstützt. -nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = Ein nicht leerer ScriptBlock ist für die benutzerdefinierte Protokollierungsmethode erforderlich. -requestLoggingAlreadyEnabledExceptionMessage = Die Anforderungsprotokollierung wurde bereits aktiviert. -outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = Die angegebene Ausgabemethode für die Anforderungsprotokollierung erfordert einen gültigen ScriptBlock. -errorLoggingAlreadyEnabledExceptionMessage = Die Fehlerprotokollierung wurde bereits aktiviert. -nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = Ein nicht leerer ScriptBlock ist für die Protokollierungsmethode erforderlich. -csrfMiddlewareNotInitializedExceptionMessage = CSRF Middleware wurde nicht initialisiert. -sessionsRequiredForCsrfExceptionMessage = Sitzungen sind erforderlich, um CSRF zu verwenden, es sei denn, Sie möchten Cookies verwenden. -middlewareNoLogicSuppliedExceptionMessage = [Middleware]: Kein Logik-ScriptBlock bereitgestellt. -parameterHasNoNameExceptionMessage = Der Parameter hat keinen Namen. Bitte geben Sie dieser Komponente einen Namen mit dem 'Name'-Parameter. -reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = Die wiederverwendbare Komponente 'pathItems' ist in OpenAPI v3.0 nicht verfügbar. -noPropertiesMutuallyExclusiveExceptionMessage = Der Parameter 'NoProperties' schließt 'Properties', 'MinProperties' und 'MaxProperties' gegenseitig aus. -discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = Der Parameter 'DiscriminatorMapping' kann nur verwendet werden, wenn 'DiscriminatorProperty' vorhanden ist. -discriminatorIncompatibleWithAllOfExceptionMessage = Der Parameter 'Discriminator' ist nicht mit 'allOf' kompatibel. -typeCanOnlyBeAssociatedWithObjectExceptionMessage = Der Typ {0} kann nur einem Objekt zugeordnet werden. -showPodeGuiOnlyAvailableOnWindowsExceptionMessage = Show-PodeGui ist derzeit nur für Windows PowerShell und PowerShell 7+ unter Windows verfügbar. -nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = Ein Name ist für den Endpunkt erforderlich, wenn der RedirectTo-Parameter angegeben ist. -clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = Clientzertifikate werden nur auf HTTPS-Endpunkten unterstützt. -explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = Der explizite TLS-Modus wird nur auf SMTPS- und TCPS-Endpunkten unterstützt. -acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = Die Bestätigungsnachricht wird nur auf SMTP- und TCP-Endpunkten unterstützt. -crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = Die CRLF-Nachrichtenendprüfung wird nur auf TCP-Endpunkten unterstützt. -mustBeRunningWithAdminPrivilegesExceptionMessage = Muss mit Administratorrechten ausgeführt werden, um auf Nicht-Localhost-Adressen zu lauschen. -certificateSuppliedForNonHttpsWssEndpointExceptionMessage = Zertifikat für Nicht-HTTPS/WSS-Endpunkt bereitgestellt. -websocketsNotConfiguredForSignalMessagesExceptionMessage = WebSockets wurden nicht konfiguriert, um Signalnachrichten zu senden. -noPathSuppliedForRouteExceptionMessage = Kein Pfad für die Route bereitgestellt. -accessRequiresAuthenticationOnRoutesExceptionMessage = Der Zugriff erfordert eine Authentifizierung auf den Routen. -accessMethodDoesNotExistExceptionMessage = Zugriffsmethode existiert nicht: {0}. -routeParameterNeedsValidScriptblockExceptionMessage = Der Route-Parameter benötigt einen gültigen, nicht leeren ScriptBlock. -noCommandsSuppliedToConvertToRoutesExceptionMessage = Keine Befehle zur Umwandlung in Routen bereitgestellt. -nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = Ein nicht leerer ScriptBlock ist erforderlich, um eine Seitenroute zu erstellen. -sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSE kann nur auf Anfragen mit einem Accept-Header-Wert von text/event-stream konfiguriert werden. -sseConnectionNameRequiredExceptionMessage = Ein SSE-Verbindungsname ist erforderlich, entweder von -Name oder ``$WebEvent.Sse.Namee -sseFailedToBroadcastExceptionMessage = SSE konnte aufgrund des definierten SSE-Broadcast-Levels für {0}: {1} nicht übertragen werden. -podeNotInitializedExceptionMessage = Pode wurde nicht initialisiert. -invalidTaskTypeExceptionMessage = Aufgabentyp ist ungültig, erwartet entweder [System.Threading.Tasks.Task] oder [hashtable] -cannotLockValueTypeExceptionMessage = Kann [ValueTypes] nicht sperren. -cannotLockNullObjectExceptionMessage = Kann ein null-Objekt nicht sperren. -failedToAcquireLockExceptionMessage = Sperre des Objekts konnte nicht erworben werden. -cannotUnlockValueTypeExceptionMessage = Kann [ValueTypes] nicht entsperren. -cannotUnlockNullObjectExceptionMessage = Kann ein null-Objekt nicht entsperren. -sessionMiddlewareAlreadyInitializedExceptionMessage = Session Middleware wurde bereits initialisiert. -customSessionStorageMethodNotImplementedExceptionMessage = Der benutzerdefinierte Sitzungspeicher implementiert die erforderliche Methode '{0}()' nicht. -secretRequiredForCustomSessionStorageExceptionMessage = Ein Geheimnis ist erforderlich, wenn benutzerdefinierter Sitzungspeicher verwendet wird. -noSessionAvailableToSaveExceptionMessage = Keine Sitzung verfügbar zum Speichern. -cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = Ein Intervall kann nicht angegeben werden, wenn der Parameter 'Every' auf None gesetzt ist. -cannotSupplyIntervalForQuarterExceptionMessage = Ein Intervallwert kann nicht für jedes Quartal angegeben werden. -cannotSupplyIntervalForYearExceptionMessage = Ein Intervallwert kann nicht für jedes Jahr angegeben werden. -secretVaultAlreadyRegisteredExceptionMessage = Ein Geheimnis-Tresor mit dem Namen '{0}' wurde bereits registriert{1}. -secretVaultUnlockExpiryDateInPastExceptionMessage = Das Ablaufdatum zum Entsperren des Geheimnis-Tresors liegt in der Vergangenheit (UTC): {0} -secretAlreadyMountedExceptionMessage = Ein Geheimnis mit dem Namen '{0}' wurde bereits eingebunden. -credentialsPassedWildcardForHeadersLiteralExceptionMessage = Wenn Anmeldeinformationen übergeben werden, wird das *-Wildcard für Header als Literalzeichenfolge und nicht als Platzhalter verwendet. -wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = Das *-Wildcard für Header ist nicht mit dem AutoHeaders-Schalter kompatibel. -wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = Das *-Wildcard für Methoden ist nicht mit dem AutoMethods-Schalter kompatibel. -invalidAccessControlMaxAgeDurationExceptionMessage = Ungültige Access-Control-Max-Age-Dauer angegeben: {0}. Sollte größer als 0 sein. -noNameForWebSocketDisconnectExceptionMessage = Kein Name für die Trennung vom WebSocket angegeben. -noNameForWebSocketRemoveExceptionMessage = Kein Name für das Entfernen des WebSocket angegeben. -noNameForWebSocketSendMessageExceptionMessage = Kein Name für das Senden einer Nachricht an den WebSocket angegeben. -noSecretNamedMountedExceptionMessage = Kein Geheimnis mit dem Namen '{0}' wurde eingebunden. -noNameForWebSocketResetExceptionMessage = Kein Name für das Zurücksetzen des WebSocket angegeben. -schemaValidationRequiresPowerShell610ExceptionMessage = Die Schema-Validierung erfordert PowerShell Version 6.1.0 oder höher. -routeParameterCannotBeNullExceptionMessage = Der Parameter 'Route' darf nicht null sein. -encodingAttributeOnlyAppliesToMultipartExceptionMessage = Das Encoding-Attribut gilt nur für multipart und application/x-www-form-urlencoded Anfragekörper. -testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = 'Test-PodeOAComponentSchema' muss mit 'Enable-PodeOpenApi -EnableSchemaValidation' aktiviert werden. -openApiComponentSchemaDoesNotExistExceptionMessage = Das OpenApi-Komponentenschema {0} existiert nicht. -openApiParameterRequiresNameExceptionMessage = Der OpenApi-Parameter erfordert einen angegebenen Namen. -openApiLicenseObjectRequiresNameExceptionMessage = Das OpenAPI-Objekt 'license' erfordert die Eigenschaft 'name'. Verwenden Sie den Parameter -LicenseName. -parametersValueOrExternalValueMandatoryExceptionMessage = Die Parameter 'Value' oder 'ExternalValue' sind obligatorisch. -parametersMutuallyExclusiveExceptionMessage = Die Parameter '{0}' und '{1}' schließen sich gegenseitig aus. -maximumConcurrentWebSocketThreadsInvalidExceptionMessage = Die maximale Anzahl gleichzeitiger WebSocket-Threads muss >=1 sein, aber erhalten: {0} -maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = Die maximale Anzahl gleichzeitiger WebSocket-Threads darf nicht kleiner als das Minimum von {0} sein, aber erhalten: {1} -alreadyConnectedToWebSocketExceptionMessage = Bereits mit dem WebSocket mit dem Namen '{0}' verbunden -failedToConnectToWebSocketExceptionMessage = Verbindung zum WebSocket fehlgeschlagen: {0} -verbNoLogicPassedExceptionMessage = [Verb] {0}: Keine Logik übergeben -scriptPathDoesNotExistExceptionMessage = Der Skriptpfad existiert nicht: {0} -failedToImportModuleExceptionMessage = Modulimport fehlgeschlagen: {0} -modulePathDoesNotExistExceptionMessage = Der Modulpfad existiert nicht: {0} -defaultValueNotBooleanOrEnumExceptionMessage = Der Standardwert ist kein Boolean und gehört nicht zum Enum. -propertiesTypeObjectAssociationExceptionMessage = Nur Eigenschaften vom Typ Object können mit {0} verknüpft werden. -invalidContentTypeForSchemaExceptionMessage = Ungültiger 'content-type' im Schema gefunden: {0} -openApiRequestStyleInvalidForParameterExceptionMessage = Der OpenApi-Anfragestil kann für einen {1}-Parameter nicht {0} sein. -pathParameterRequiresRequiredSwitchExceptionMessage = Wenn der Parameterstandort 'Path' ist, ist der Schalterparameter 'Required' erforderlich. -operationIdMustBeUniqueForArrayExceptionMessage = OperationID: {0} muss eindeutig sein und kann nicht auf ein Array angewendet werden. -operationIdMustBeUniqueExceptionMessage = OperationID: {0} muss eindeutig sein. -noOpenApiUrlSuppliedExceptionMessage = Keine OpenAPI-URL für {0} angegeben. -noTitleSuppliedForPageExceptionMessage = Kein Titel für die Seite {0} angegeben. -noRoutePathSuppliedForPageExceptionMessage = Kein Routenpfad für die Seite {0} angegeben. -swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = Diese Version des Swagger-Editors unterstützt OpenAPI 3.1 nicht. -rapidPdfDoesNotSupportOpenApi31ExceptionMessage = Das Dokumentationstool RapidPdf unterstützt OpenAPI 3.1 nicht. -definitionTagNotDefinedExceptionMessage = Definitionstag {0} ist nicht definiert. -scopedVariableNotFoundExceptionMessage = Bereichsvariable nicht gefunden: {0} -noSecretVaultRegisteredExceptionMessage = Kein Geheimnistresor mit dem Namen '{0}' registriert. -invalidStrictTransportSecurityDurationExceptionMessage = Ungültige Strict-Transport-Security-Dauer angegeben: {0}. Sie sollte größer als 0 sein. -durationMustBeZeroOrGreaterExceptionMessage = Die Dauer muss 0 oder größer sein, aber erhalten: {0}s -taskAlreadyDefinedExceptionMessage = [Aufgabe] {0}: Aufgabe bereits definiert. -maximumConcurrentTasksInvalidExceptionMessage = Die maximale Anzahl gleichzeitiger Aufgaben muss >=1 sein, aber erhalten: {0} -maximumConcurrentTasksLessThanMinimumExceptionMessage = Die maximale Anzahl gleichzeitiger Aufgaben darf nicht kleiner als das Minimum von {0} sein, aber erhalten: {1} -taskDoesNotExistExceptionMessage = Aufgabe '{0}' existiert nicht. -cacheStorageNotFoundForRetrieveExceptionMessage = Der Cache-Speicher mit dem Namen '{0}' wurde nicht gefunden, als versucht wurde, das zwischengespeicherte Element '{1}' abzurufen. -cacheStorageNotFoundForSetExceptionMessage = Der Cache-Speicher mit dem Namen '{0}' wurde nicht gefunden, als versucht wurde, das zwischengespeicherte Element '{1}' zu setzen. -cacheStorageNotFoundForExistsExceptionMessage = Der Cache-Speicher mit dem Namen '{0}' wurde nicht gefunden, als versucht wurde zu überprüfen, ob das zwischengespeicherte Element '{1}' existiert. -cacheStorageNotFoundForRemoveExceptionMessage = Der Cache-Speicher mit dem Namen '{0}' wurde nicht gefunden, als versucht wurde, das zwischengespeicherte Element '{1}' zu entfernen. -cacheStorageNotFoundForClearExceptionMessage = Der Cache-Speicher mit dem Namen '{0}' wurde nicht gefunden, als versucht wurde, den Cache zu leeren. -cacheStorageAlreadyExistsExceptionMessage = Ein Cache-Speicher mit dem Namen '{0}' existiert bereits. -pathToIconForGuiDoesNotExistExceptionMessage = Der Pfad zum Symbol für die GUI existiert nicht: {0} -invalidHostnameSuppliedExceptionMessage = Der angegebene Hostname ist ungültig: {0} -endpointAlreadyDefinedExceptionMessage = Ein Endpunkt mit dem Namen '{0}' wurde bereits definiert. -certificateExpiredExceptionMessage = Das Zertifikat '{0}' ist abgelaufen: {1} -endpointNotDefinedForRedirectingExceptionMessage = Ein Endpunkt mit dem Namen '{0}' wurde nicht für die Weiterleitung definiert. -fileWatcherAlreadyDefinedExceptionMessage = Ein Dateiwächter mit dem Namen '{0}' wurde bereits definiert. -handlerAlreadyDefinedExceptionMessage = [{0}] {1}: Handler bereits definiert. -maxDaysInvalidExceptionMessage = MaxDays muss 0 oder größer sein, aber erhalten: {0} -maxSizeInvalidExceptionMessage = MaxSize muss 0 oder größer sein, aber erhalten: {0} -loggingMethodAlreadyDefinedExceptionMessage = Logging-Methode bereits definiert: {0} -loggingMethodRequiresValidScriptBlockExceptionMessage = Die angegebene Ausgabemethode für die Logging-Methode '{0}' erfordert einen gültigen ScriptBlock. -csrfCookieRequiresSecretExceptionMessage = Beim Verwenden von Cookies für CSRF ist ein Geheimnis erforderlich. Sie können ein Geheimnis angeben oder das globale Cookie-Geheimnis festlegen - (Set-PodeCookieSecret '' -Global) -bodyParserAlreadyDefinedForContentTypeExceptionMessage = Für den Inhaltstyp {0} ist bereits ein Body-Parser definiert. -middlewareAlreadyDefinedExceptionMessage = [Middleware] {0}: Middleware bereits definiert. -parameterNotSuppliedInRequestExceptionMessage = Ein Parameter namens '{0}' wurde in der Anfrage nicht angegeben oder es sind keine Daten verfügbar. -noDataForFileUploadedExceptionMessage = Keine Daten für die Datei '{0}' wurden in der Anfrage hochgeladen. -viewsFolderNameAlreadyExistsExceptionMessage = Der Name des Ansichtsordners existiert bereits: {0} -viewsPathDoesNotExistExceptionMessage = Der Ansichtsordnerpfad existiert nicht: {0} -timerAlreadyDefinedExceptionMessage = [Timer] {0}: Timer bereits definiert. -timerParameterMustBeGreaterThanZeroExceptionMessage = [Timer] {0}: {1} muss größer als 0 sein. -timerDoesNotExistExceptionMessage = Timer '{0}' existiert nicht. -mutexAlreadyExistsExceptionMessage = Ein Mutex mit folgendem Namen existiert bereits: {0} -noMutexFoundExceptionMessage = Kein Mutex mit dem Namen '{0}' gefunden. -failedToAcquireMutexOwnershipExceptionMessage = Fehler beim Erwerb des Mutex-Besitzes. Mutex-Name: {0} -semaphoreAlreadyExistsExceptionMessage = Ein Semaphor mit folgendem Namen existiert bereits: {0} -failedToAcquireSemaphoreOwnershipExceptionMessage = Fehler beim Erwerb des Semaphor-Besitzes. Semaphor-Name: {0} -scheduleAlreadyDefinedExceptionMessage = [Zeitplan] {0}: Zeitplan bereits definiert. -scheduleCannotHaveNegativeLimitExceptionMessage = [Zeitplan] {0}: Kann kein negatives Limit haben. -scheduleEndTimeMustBeInFutureExceptionMessage = [Zeitplan] {0}: Der Wert für EndTime muss in der Zukunft liegen. -scheduleStartTimeAfterEndTimeExceptionMessage = [Zeitplan] {0}: StartTime kann nicht nach EndTime liegen. -maximumConcurrentSchedulesInvalidExceptionMessage = Maximale gleichzeitige Zeitpläne müssen >=1 sein, aber erhalten: {0} -maximumConcurrentSchedulesLessThanMinimumExceptionMessage = Maximale gleichzeitige Zeitpläne dürfen nicht kleiner als das Minimum von {0} sein, aber erhalten: {1} -scheduleDoesNotExistExceptionMessage = Zeitplan '{0}' existiert nicht. -suppliedDateBeforeScheduleStartTimeExceptionMessage = Das angegebene Datum liegt vor der Startzeit des Zeitplans bei {0} -suppliedDateAfterScheduleEndTimeExceptionMessage = Das angegebene Datum liegt nach der Endzeit des Zeitplans bei {0} -noSemaphoreFoundExceptionMessage = Kein Semaphor mit dem Namen '{0}' gefunden. -noLogicPassedForRouteExceptionMessage = Keine Logik für Route übergeben: {0} -noPathSuppliedForStaticRouteExceptionMessage = [{0}]: Kein Pfad für statische Route angegeben. -sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: Der angegebene Quellpfad für die statische Route existiert nicht: {2} -noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: Keine Logik übergeben. -moduleDoesNotContainFunctionExceptionMessage = Modul {0} enthält keine Funktion {1} zur Umwandlung in eine Route. -pageNameShouldBeAlphaNumericExceptionMessage = Der Seitenname sollte einen gültigen alphanumerischen Wert haben: {0} -filesHaveChangedMessage = Die folgenden Dateien wurden geändert: -multipleEndpointsForGuiMessage = Mehrere Endpunkte definiert, es wird nur der erste für die GUI verwendet. -openingGuiMessage = Die GUI wird geöffnet. -listeningOnEndpointsMessage = Lauschen auf den folgenden {0} Endpunkt(en) [{1} Thread(s)]: -specificationMessage = Spezifikation -documentationMessage = Dokumentation -restartingServerMessage = Server wird neu gestartet... -doneMessage = Fertig -deprecatedTitleVersionDescriptionWarningMessage = WARNUNG: Titel, Version und Beschreibung in 'Enable-PodeOpenApi' sind veraltet. Bitte verwenden Sie stattdessen 'Add-PodeOAInfo'. -undefinedOpenApiReferencesMessage = Nicht definierte OpenAPI-Referenzen: -definitionTagMessage = Definition {0}: -openApiGenerationDocumentErrorMessage = Fehler beim Generieren des OpenAPI-Dokuments: -infoTitleMandatoryMessage = info.title ist obligatorisch. -infoVersionMandatoryMessage = info.version ist obligatorisch. -missingComponentsMessage = Fehlende Komponente(n) -openApiInfoMessage = OpenAPI-Informationen: -serverLoopingMessage = Server-Schleife alle {0} Sekunden -iisShutdownMessage = (IIS Herunterfahren) -terminatingMessage = Beenden... -eolPowerShellWarningMessage = [WARNUNG] Pode {0} wurde nicht auf PowerShell {1} getestet, da es das Ende des Lebenszyklus erreicht hat. -untestedPowerShellVersionWarningMessage = [WARNUNG] Pode {0} wurde nicht auf PowerShell {1} getestet, da diese Version bei der Veröffentlichung von Pode nicht verfügbar war. -'@ \ No newline at end of file +@{ + schemaValidationRequiresPowerShell610ExceptionMessage = 'Die Schema-Validierung erfordert PowerShell Version 6.1.0 oder höher.' + pathOrScriptBlockRequiredExceptionMessage = 'Ein Pfad oder ScriptBlock ist erforderlich, um die benutzerdefinierten Zugriffswerte zu beziehen.' + operationIdMustBeUniqueForArrayExceptionMessage = 'OperationID: {0} muss eindeutig sein und kann nicht auf ein Array angewendet werden.' + endpointNotDefinedForRedirectingExceptionMessage = "Ein Endpunkt mit dem Namen '{0}' wurde nicht für die Weiterleitung definiert." + filesHaveChangedMessage = 'Die folgenden Dateien wurden geändert:' + iisAspnetcoreTokenMissingExceptionMessage = 'Das IIS-ASPNETCORE_TOKEN fehlt.' + minValueGreaterThanMaxExceptionMessage = 'Der Mindestwert für {0} darf nicht größer als der Maximalwert sein.' + noLogicPassedForRouteExceptionMessage = 'Keine Logik für Route übergeben: {0}' + scriptPathDoesNotExistExceptionMessage = 'Der Skriptpfad existiert nicht: {0}' + mutexAlreadyExistsExceptionMessage = 'Ein Mutex mit folgendem Namen existiert bereits: {0}' + listeningOnEndpointsMessage = 'Lauschen auf den folgenden {0} Endpunkt(en) [{1} Thread(s)]:' + unsupportedFunctionInServerlessContextExceptionMessage = 'Die Funktion {0} wird in einem serverlosen Kontext nicht unterstützt.' + expectedNoJwtSignatureSuppliedExceptionMessage = 'Es wurde keine JWT-Signatur erwartet.' + secretAlreadyMountedExceptionMessage = "Ein Geheimnis mit dem Namen '{0}' wurde bereits eingebunden." + failedToAcquireLockExceptionMessage = 'Sperre des Objekts konnte nicht erworben werden.' + noPathSuppliedForStaticRouteExceptionMessage = '[{0}]: Kein Pfad für statische Route angegeben.' + invalidHostnameSuppliedExceptionMessage = 'Der angegebene Hostname ist ungültig: {0}' + authMethodAlreadyDefinedExceptionMessage = 'Authentifizierungsmethode bereits definiert: {0}' + csrfCookieRequiresSecretExceptionMessage = "Beim Verwenden von Cookies für CSRF ist ein Geheimnis erforderlich. Sie können ein Geheimnis angeben oder das globale Cookie-Geheimnis festlegen - (Set-PodeCookieSecret '' -Global)" + nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = 'Ein nicht leerer ScriptBlock ist erforderlich, um eine Seitenroute zu erstellen.' + noPropertiesMutuallyExclusiveExceptionMessage = "Der Parameter 'NoProperties' schließt 'Properties', 'MinProperties' und 'MaxProperties' gegenseitig aus." + incompatiblePodeDllExceptionMessage = 'Eine vorhandene inkompatible Pode.DLL-Version {0} ist geladen. Version {1} wird benötigt. Öffnen Sie eine neue PowerShell/pwsh-Sitzung und versuchen Sie es erneut.' + accessMethodDoesNotExistExceptionMessage = 'Zugriffsmethode existiert nicht: {0}.' + scheduleAlreadyDefinedExceptionMessage = '[Zeitplan] {0}: Zeitplan bereits definiert.' + secondsValueCannotBeZeroOrLessExceptionMessage = 'Der Sekundenwert darf für {0} nicht 0 oder weniger sein.' + pathToLoadNotFoundExceptionMessage = 'Pfad zum Laden von {0} nicht gefunden: {1}' + failedToImportModuleExceptionMessage = 'Modulimport fehlgeschlagen: {0}' + endpointNotExistExceptionMessage = "Der Endpunkt mit dem Protokoll '{0}' und der Adresse '{1}' oder der lokalen Adresse '{2}' existiert nicht" + terminatingMessage = 'Beenden...' + noCommandsSuppliedToConvertToRoutesExceptionMessage = 'Keine Befehle zur Umwandlung in Routen bereitgestellt.' + invalidTaskTypeExceptionMessage = 'Aufgabentyp ist ungültig, erwartet entweder [System.Threading.Tasks.Task] oder [hashtable]' + alreadyConnectedToWebSocketExceptionMessage = "Bereits mit dem WebSocket mit dem Namen '{0}' verbunden" + crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = 'Die CRLF-Nachrichtenendprüfung wird nur auf TCP-Endpunkten unterstützt.' + testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = "'Test-PodeOAComponentSchema' muss mit 'Enable-PodeOpenApi -EnableSchemaValidation' aktiviert werden." + adModuleNotInstalledExceptionMessage = 'Das Active Directory-Modul ist nicht installiert.' + cronExpressionInvalidExceptionMessage = 'Die Cron-Ausdruck sollte nur aus 5 Teilen bestehen: {0}' + noSessionToSetOnResponseExceptionMessage = 'Keine Sitzung verfügbar, die auf die Antwort gesetzt werden kann.' + valueOutOfRangeExceptionMessage = "Wert '{0}' für {1} ist ungültig, sollte zwischen {2} und {3} liegen" + loggingMethodAlreadyDefinedExceptionMessage = 'Logging-Methode bereits definiert: {0}' + noSecretForHmac256ExceptionMessage = 'Es wurde kein Geheimnis für den HMAC256-Hash angegeben.' + eolPowerShellWarningMessage = '[WARNUNG] Pode {0} wurde nicht auf PowerShell {1} getestet, da es das Ende des Lebenszyklus erreicht hat.' + runspacePoolFailedToLoadExceptionMessage = '{0} RunspacePool konnte nicht geladen werden.' + noEventRegisteredExceptionMessage = 'Kein Ereignis {0} registriert: {1}' + scheduleCannotHaveNegativeLimitExceptionMessage = '[Zeitplan] {0}: Kann kein negatives Limit haben.' + openApiRequestStyleInvalidForParameterExceptionMessage = 'Der OpenApi-Anfragestil kann für einen {1}-Parameter nicht {0} sein.' + openApiDocumentNotCompliantExceptionMessage = 'Das OpenAPI-Dokument ist nicht konform.' + taskDoesNotExistExceptionMessage = "Aufgabe '{0}' existiert nicht." + scopedVariableNotFoundExceptionMessage = 'Bereichsvariable nicht gefunden: {0}' + sessionsRequiredForCsrfExceptionMessage = 'Sitzungen sind erforderlich, um CSRF zu verwenden, es sei denn, Sie möchten Cookies verwenden.' + nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = 'Ein nicht leerer ScriptBlock ist für die Protokollierungsmethode erforderlich.' + credentialsPassedWildcardForHeadersLiteralExceptionMessage = 'Wenn Anmeldeinformationen übergeben werden, wird das *-Wildcard für Header als Literalzeichenfolge und nicht als Platzhalter verwendet.' + podeNotInitializedExceptionMessage = 'Pode wurde nicht initialisiert.' + multipleEndpointsForGuiMessage = 'Mehrere Endpunkte definiert, es wird nur der erste für die GUI verwendet.' + operationIdMustBeUniqueExceptionMessage = 'OperationID: {0} muss eindeutig sein.' + invalidJsonJwtExceptionMessage = 'Ungültiger JSON-Wert in JWT gefunden' + noAlgorithmInJwtHeaderExceptionMessage = 'Kein Algorithmus im JWT-Header angegeben.' + openApiVersionPropertyMandatoryExceptionMessage = 'Die Eigenschaft OpenApi-Version ist obligatorisch.' + limitValueCannotBeZeroOrLessExceptionMessage = 'Der Grenzwert darf für {0} nicht 0 oder weniger sein.' + timerDoesNotExistExceptionMessage = "Timer '{0}' existiert nicht." + openApiGenerationDocumentErrorMessage = 'Fehler beim Generieren des OpenAPI-Dokuments:' + routeAlreadyContainsCustomAccessExceptionMessage = "Die Route '[{0}] {1}' enthält bereits einen benutzerdefinierten Zugriff mit dem Namen '{2}'." + maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = 'Die maximale Anzahl gleichzeitiger WebSocket-Threads darf nicht kleiner als das Minimum von {0} sein, aber erhalten: {1}' + middlewareAlreadyDefinedExceptionMessage = '[Middleware] {0}: Middleware bereits definiert.' + invalidAtomCharacterExceptionMessage = 'Ungültiges Atomzeichen: {0}' + cacheStorageNotFoundForRetrieveExceptionMessage = "Der Cache-Speicher mit dem Namen '{0}' wurde nicht gefunden, als versucht wurde, das zwischengespeicherte Element '{1}' abzurufen." + headerMustHaveNameInEncodingContextExceptionMessage = 'Ein Header muss einen Namen haben, wenn er im Codierungskontext verwendet wird.' + moduleDoesNotContainFunctionExceptionMessage = 'Modul {0} enthält keine Funktion {1} zur Umwandlung in eine Route.' + pathToIconForGuiDoesNotExistExceptionMessage = 'Der Pfad zum Symbol für die GUI existiert nicht: {0}' + noTitleSuppliedForPageExceptionMessage = 'Kein Titel für die Seite {0} angegeben.' + certificateSuppliedForNonHttpsWssEndpointExceptionMessage = 'Zertifikat für Nicht-HTTPS/WSS-Endpunkt bereitgestellt.' + cannotLockNullObjectExceptionMessage = 'Kann ein null-Objekt nicht sperren.' + showPodeGuiOnlyAvailableOnWindowsExceptionMessage = 'Show-PodeGui ist derzeit nur für Windows PowerShell und PowerShell 7+ unter Windows verfügbar.' + unlockSecretButNoScriptBlockExceptionMessage = 'Unlock secret für benutzerdefinierten Secret Vault-Typ angegeben, aber kein Unlock ScriptBlock bereitgestellt.' + invalidIpAddressExceptionMessage = 'Die angegebene IP-Adresse ist ungültig: {0}' + maxDaysInvalidExceptionMessage = 'MaxDays muss 0 oder größer sein, aber erhalten: {0}' + noRemoveScriptBlockForVaultExceptionMessage = "Kein Remove ScriptBlock für das Entfernen von Geheimnissen im Tresor '{0}' bereitgestellt." + noSecretExpectedForNoSignatureExceptionMessage = 'Es wurde erwartet, dass kein Geheimnis für keine Signatur angegeben wird.' + noCertificateFoundExceptionMessage = "Es wurde kein Zertifikat in {0}{1} für '{2}' gefunden." + minValueInvalidExceptionMessage = "Der Mindestwert '{0}' für {1} ist ungültig, sollte größer oder gleich {2} sein" + accessRequiresAuthenticationOnRoutesExceptionMessage = 'Der Zugriff erfordert eine Authentifizierung auf den Routen.' + noSecretForHmac384ExceptionMessage = 'Es wurde kein Geheimnis für den HMAC384-Hash angegeben.' + windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = 'Die Unterstützung der lokalen Windows-Authentifizierung gilt nur für Windows.' + definitionTagNotDefinedExceptionMessage = 'Definitionstag {0} ist nicht definiert.' + noComponentInDefinitionExceptionMessage = 'Es ist keine Komponente des Typs {0} mit dem Namen {1} in der Definition {2} verfügbar.' + noSmtpHandlersDefinedExceptionMessage = 'Es wurden keine SMTP-Handler definiert.' + sessionMiddlewareAlreadyInitializedExceptionMessage = 'Session Middleware wurde bereits initialisiert.' + reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = "Die wiederverwendbare Komponente 'pathItems' ist in OpenAPI v3.0 nicht verfügbar." + wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = 'Das *-Wildcard für Header ist nicht mit dem AutoHeaders-Schalter kompatibel.' + noDataForFileUploadedExceptionMessage = "Keine Daten für die Datei '{0}' wurden in der Anfrage hochgeladen." + sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = 'SSE kann nur auf Anfragen mit einem Accept-Header-Wert von text/event-stream konfiguriert werden.' + noSessionAvailableToSaveExceptionMessage = 'Keine Sitzung verfügbar zum Speichern.' + pathParameterRequiresRequiredSwitchExceptionMessage = "Wenn der Parameterstandort 'Path' ist, ist der Schalterparameter 'Required' erforderlich." + noOpenApiUrlSuppliedExceptionMessage = 'Keine OpenAPI-URL für {0} angegeben.' + maximumConcurrentSchedulesInvalidExceptionMessage = 'Maximale gleichzeitige Zeitpläne müssen >=1 sein, aber erhalten: {0}' + snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = 'Snapins werden nur in Windows PowerShell unterstützt.' + eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = 'Das Protokollieren im Ereignisanzeige wird nur auf Windows unterstützt.' + parametersMutuallyExclusiveExceptionMessage = "Die Parameter '{0}' und '{1}' schließen sich gegenseitig aus." + pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = 'Das PathItems-Feature wird in OpenAPI v3.0.x nicht unterstützt.' + openApiParameterRequiresNameExceptionMessage = 'Der OpenApi-Parameter erfordert einen angegebenen Namen.' + maximumConcurrentTasksLessThanMinimumExceptionMessage = 'Die maximale Anzahl gleichzeitiger Aufgaben darf nicht kleiner als das Minimum von {0} sein, aber erhalten: {1}' + noSemaphoreFoundExceptionMessage = "Kein Semaphor mit dem Namen '{0}' gefunden." + singleValueForIntervalExceptionMessage = 'Sie können nur einen einzelnen {0}-Wert angeben, wenn Sie Intervalle verwenden.' + jwtNotYetValidExceptionMessage = 'Der JWT ist noch nicht gültig.' + verbAlreadyDefinedForUrlExceptionMessage = '[Verb] {0}: Bereits für {1} definiert.' + noSecretNamedMountedExceptionMessage = "Kein Geheimnis mit dem Namen '{0}' wurde eingebunden." + moduleOrVersionNotFoundExceptionMessage = 'Modul oder Version nicht gefunden auf {0}: {1}@{2}' + noScriptBlockSuppliedExceptionMessage = 'Kein Skriptblock angegeben.' + noSecretVaultRegisteredExceptionMessage = "Kein Geheimnistresor mit dem Namen '{0}' registriert." + nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = 'Ein Name ist für den Endpunkt erforderlich, wenn der RedirectTo-Parameter angegeben ist.' + openApiLicenseObjectRequiresNameExceptionMessage = "Das OpenAPI-Objekt 'license' erfordert die Eigenschaft 'name'. Verwenden Sie den Parameter -LicenseName." + sourcePathDoesNotExistForStaticRouteExceptionMessage = '[{0})] {1}: Der angegebene Quellpfad für die statische Route existiert nicht: {2}' + noNameForWebSocketDisconnectExceptionMessage = 'Kein Name für die Trennung vom WebSocket angegeben.' + certificateExpiredExceptionMessage = "Das Zertifikat '{0}' ist abgelaufen: {1}" + secretVaultUnlockExpiryDateInPastExceptionMessage = 'Das Ablaufdatum zum Entsperren des Geheimnis-Tresors liegt in der Vergangenheit (UTC): {0}' + invalidExceptionTypeExceptionMessage = 'Die Ausnahme hat einen ungültigen Typ. Er sollte entweder WebException oder HttpRequestException sein, aber es wurde {0} erhalten' + invalidSecretValueTypeExceptionMessage = 'Der Geheimniswert hat einen ungültigen Typ. Erwartete Typen: String, SecureString, HashTable, Byte[] oder PSCredential. Aber erhalten wurde: {0}.' + explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = 'Der explizite TLS-Modus wird nur auf SMTPS- und TCPS-Endpunkten unterstützt.' + discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = "Der Parameter 'DiscriminatorMapping' kann nur verwendet werden, wenn 'DiscriminatorProperty' vorhanden ist." + scriptErrorExceptionMessage = "Fehler '{0}' im Skript {1} {2} (Zeile {3}) Zeichen {4} beim Ausführen von {5} auf {6} Objekt '{7}' Klasse: {8} Basisklasse: {9}" + cannotSupplyIntervalForQuarterExceptionMessage = 'Ein Intervallwert kann nicht für jedes Quartal angegeben werden.' + scheduleEndTimeMustBeInFutureExceptionMessage = '[Zeitplan] {0}: Der Wert für EndTime muss in der Zukunft liegen.' + invalidJwtSignatureSuppliedExceptionMessage = 'Ungültige JWT-Signatur angegeben.' + noSetScriptBlockForVaultExceptionMessage = "Kein Set ScriptBlock für das Aktualisieren/Erstellen von Geheimnissen im Tresor '{0}' bereitgestellt." + accessMethodNotExistForMergingExceptionMessage = 'Zugriffsmethode zum Zusammenführen nicht vorhanden: {0}.' + defaultAuthNotInListExceptionMessage = "Die Standardauthentifizierung '{0}' befindet sich nicht in der angegebenen Authentifizierungsliste." + parameterHasNoNameExceptionMessage = "Der Parameter hat keinen Namen. Bitte geben Sie dieser Komponente einen Namen mit dem 'Name'-Parameter." + methodPathAlreadyDefinedForUrlExceptionMessage = '[{0}] {1}: Bereits für {2} definiert.' + fileWatcherAlreadyDefinedExceptionMessage = "Ein Dateiwächter mit dem Namen '{0}' wurde bereits definiert." + noServiceHandlersDefinedExceptionMessage = 'Es wurden keine Service-Handler definiert.' + secretRequiredForCustomSessionStorageExceptionMessage = 'Ein Geheimnis ist erforderlich, wenn benutzerdefinierter Sitzungspeicher verwendet wird.' + secretManagementModuleNotInstalledExceptionMessage = 'Das Modul Microsoft.PowerShell.SecretManagement ist nicht installiert.' + noPathSuppliedForRouteExceptionMessage = 'Kein Pfad für die Route bereitgestellt.' + validationOfAnyOfSchemaNotSupportedExceptionMessage = "Die Validierung eines Schemas, das 'anyof' enthält, wird nicht unterstützt." + iisAuthSupportIsForWindowsOnlyExceptionMessage = 'Die IIS-Authentifizierungsunterstützung gilt nur für Windows.' + oauth2InnerSchemeInvalidExceptionMessage = 'OAuth2 InnerScheme kann nur entweder Basic oder Form-Authentifizierung sein, aber erhalten: {0}' + noRoutePathSuppliedForPageExceptionMessage = 'Kein Routenpfad für die Seite {0} angegeben.' + cacheStorageNotFoundForExistsExceptionMessage = "Der Cache-Speicher mit dem Namen '{0}' wurde nicht gefunden, als versucht wurde zu überprüfen, ob das zwischengespeicherte Element '{1}' existiert." + handlerAlreadyDefinedExceptionMessage = '[{0}] {1}: Handler bereits definiert.' + sessionsNotConfiguredExceptionMessage = 'Sitzungen wurden nicht konfiguriert.' + propertiesTypeObjectAssociationExceptionMessage = 'Nur Eigenschaften vom Typ Object können mit {0} verknüpft werden.' + sessionsRequiredForSessionPersistentAuthExceptionMessage = 'Sitzungen sind erforderlich, um die sitzungsbeständige Authentifizierung zu verwenden.' + invalidPathWildcardOrDirectoryExceptionMessage = 'Der angegebene Pfad darf kein Platzhalter oder Verzeichnis sein: {0}' + accessMethodAlreadyDefinedExceptionMessage = 'Zugriffsmethode bereits definiert: {0}.' + parametersValueOrExternalValueMandatoryExceptionMessage = "Die Parameter 'Value' oder 'ExternalValue' sind obligatorisch." + maximumConcurrentTasksInvalidExceptionMessage = 'Die maximale Anzahl gleichzeitiger Aufgaben muss >=1 sein, aber erhalten: {0}' + cannotCreatePropertyWithoutTypeExceptionMessage = 'Die Eigenschaft kann nicht erstellt werden, weil kein Typ definiert ist.' + authMethodNotExistForMergingExceptionMessage = 'Die Authentifizierungsmethode existiert nicht zum Zusammenführen: {0}' + maxValueInvalidExceptionMessage = "Der Maximalwert '{0}' für {1} ist ungültig, sollte kleiner oder gleich {2} sein" + endpointAlreadyDefinedExceptionMessage = "Ein Endpunkt mit dem Namen '{0}' wurde bereits definiert." + eventAlreadyRegisteredExceptionMessage = 'Ereignis {0} bereits registriert: {1}' + parameterNotSuppliedInRequestExceptionMessage = "Ein Parameter namens '{0}' wurde in der Anfrage nicht angegeben oder es sind keine Daten verfügbar." + cacheStorageNotFoundForSetExceptionMessage = "Der Cache-Speicher mit dem Namen '{0}' wurde nicht gefunden, als versucht wurde, das zwischengespeicherte Element '{1}' zu setzen." + methodPathAlreadyDefinedExceptionMessage = '[{0}] {1}: Bereits definiert.' + errorLoggingAlreadyEnabledExceptionMessage = 'Die Fehlerprotokollierung wurde bereits aktiviert.' + valueForUsingVariableNotFoundExceptionMessage = "Der Wert für '`$using:{0}' konnte nicht gefunden werden." + rapidPdfDoesNotSupportOpenApi31ExceptionMessage = 'Das Dokumentationstool RapidPdf unterstützt OpenAPI 3.1 nicht.' + oauth2ClientSecretRequiredExceptionMessage = 'OAuth2 erfordert ein Client Secret, wenn PKCE nicht verwendet wird.' + invalidBase64JwtExceptionMessage = 'Ungültiger Base64-codierter Wert in JWT gefunden' + noSessionToCalculateDataHashExceptionMessage = 'Keine Sitzung verfügbar, um den Datenhash zu berechnen.' + cacheStorageNotFoundForRemoveExceptionMessage = "Der Cache-Speicher mit dem Namen '{0}' wurde nicht gefunden, als versucht wurde, das zwischengespeicherte Element '{1}' zu entfernen." + csrfMiddlewareNotInitializedExceptionMessage = 'CSRF Middleware wurde nicht initialisiert.' + infoTitleMandatoryMessage = 'info.title ist obligatorisch.' + typeCanOnlyBeAssociatedWithObjectExceptionMessage = 'Der Typ {0} kann nur einem Objekt zugeordnet werden.' + userFileDoesNotExistExceptionMessage = 'Die Benutzerdaten-Datei existiert nicht: {0}' + routeParameterNeedsValidScriptblockExceptionMessage = 'Der Route-Parameter benötigt einen gültigen, nicht leeren ScriptBlock.' + nextTriggerCalculationErrorExceptionMessage = 'Es scheint, als ob beim Berechnen des nächsten Trigger-Datums und der nächsten Triggerzeit etwas schief gelaufen wäre: {0}' + cannotLockValueTypeExceptionMessage = 'Kann [ValueTypes] nicht sperren.' + failedToCreateOpenSslCertExceptionMessage = 'Erstellung des OpenSSL-Zertifikats fehlgeschlagen: {0}.' + jwtExpiredExceptionMessage = 'Der JWT ist abgelaufen.' + openingGuiMessage = 'Die GUI wird geöffnet.' + multiTypePropertiesRequireOpenApi31ExceptionMessage = 'Mehrfachtyp-Eigenschaften erfordern OpenApi-Version 3.1 oder höher.' + noNameForWebSocketRemoveExceptionMessage = 'Kein Name für das Entfernen des WebSocket angegeben.' + maxSizeInvalidExceptionMessage = 'MaxSize muss 0 oder größer sein, aber erhalten: {0}' + iisShutdownMessage = '(IIS Herunterfahren)' + cannotUnlockValueTypeExceptionMessage = 'Kann [ValueTypes] nicht entsperren.' + noJwtSignatureForAlgorithmExceptionMessage = 'Keine JWT-Signatur für {0} angegeben.' + maximumConcurrentWebSocketThreadsInvalidExceptionMessage = 'Die maximale Anzahl gleichzeitiger WebSocket-Threads muss >=1 sein, aber erhalten: {0}' + acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = 'Die Bestätigungsnachricht wird nur auf SMTP- und TCP-Endpunkten unterstützt.' + failedToConnectToUrlExceptionMessage = 'Verbindung mit der URL fehlgeschlagen: {0}' + failedToAcquireMutexOwnershipExceptionMessage = 'Fehler beim Erwerb des Mutex-Besitzes. Mutex-Name: {0}' + sessionsRequiredForOAuth2WithPKCEExceptionMessage = 'Sitzungen sind erforderlich, um OAuth2 mit PKCE zu verwenden.' + failedToConnectToWebSocketExceptionMessage = 'Verbindung zum WebSocket fehlgeschlagen: {0}' + unsupportedObjectExceptionMessage = 'Nicht unterstütztes Objekt' + failedToParseAddressExceptionMessage = "Konnte '{0}' nicht als gültige IP/Host:Port-Adresse analysieren" + mustBeRunningWithAdminPrivilegesExceptionMessage = 'Muss mit Administratorrechten ausgeführt werden, um auf Nicht-Localhost-Adressen zu lauschen.' + specificationMessage = 'Spezifikation' + cacheStorageNotFoundForClearExceptionMessage = "Der Cache-Speicher mit dem Namen '{0}' wurde nicht gefunden, als versucht wurde, den Cache zu leeren." + restartingServerMessage = 'Server wird neu gestartet...' + cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = "Ein Intervall kann nicht angegeben werden, wenn der Parameter 'Every' auf None gesetzt ist." + unsupportedJwtAlgorithmExceptionMessage = 'Der JWT-Algorithmus wird derzeit nicht unterstützt: {0}' + websocketsNotConfiguredForSignalMessagesExceptionMessage = 'WebSockets wurden nicht konfiguriert, um Signalnachrichten zu senden.' + invalidLogicTypeInHashtableMiddlewareExceptionMessage = 'Eine angegebene Hashtable-Middleware enthält einen ungültigen Logik-Typ. Erwartet wurde ein ScriptBlock, aber erhalten wurde: {0}.' + maximumConcurrentSchedulesLessThanMinimumExceptionMessage = 'Maximale gleichzeitige Zeitpläne dürfen nicht kleiner als das Minimum von {0} sein, aber erhalten: {1}' + failedToAcquireSemaphoreOwnershipExceptionMessage = 'Fehler beim Erwerb des Semaphor-Besitzes. Semaphor-Name: {0}' + propertiesParameterWithoutNameExceptionMessage = 'Die Eigenschaftsparameter können nicht verwendet werden, wenn die Eigenschaft keinen Namen hat.' + customSessionStorageMethodNotImplementedExceptionMessage = "Der benutzerdefinierte Sitzungspeicher implementiert die erforderliche Methode '{0}()' nicht." + authenticationMethodDoesNotExistExceptionMessage = 'Authentifizierungsmethode existiert nicht: {0}' + webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = 'Das Webhooks-Feature wird in OpenAPI v3.0.x nicht unterstützt.' + invalidContentTypeForSchemaExceptionMessage = "Ungültiger 'content-type' im Schema gefunden: {0}" + noUnlockScriptBlockForVaultExceptionMessage = "Kein Unlock ScriptBlock für das Entsperren des Tresors '{0}' bereitgestellt." + definitionTagMessage = 'Definition {0}:' + failedToOpenRunspacePoolExceptionMessage = 'Fehler beim Öffnen des Runspace-Pools: {0}' + verbNoLogicPassedExceptionMessage = '[Verb] {0}: Keine Logik übergeben' + noMutexFoundExceptionMessage = "Kein Mutex mit dem Namen '{0}' gefunden." + documentationMessage = 'Dokumentation' + timerAlreadyDefinedExceptionMessage = '[Timer] {0}: Timer bereits definiert.' + invalidPortExceptionMessage = 'Der Port kann nicht negativ sein: {0}' + viewsFolderNameAlreadyExistsExceptionMessage = 'Der Name des Ansichtsordners existiert bereits: {0}' + noNameForWebSocketResetExceptionMessage = 'Kein Name für das Zurücksetzen des WebSocket angegeben.' + mergeDefaultAuthNotInListExceptionMessage = "Die MergeDefault-Authentifizierung '{0}' befindet sich nicht in der angegebenen Authentifizierungsliste." + descriptionRequiredExceptionMessage = 'Eine Beschreibung ist erforderlich.' + pageNameShouldBeAlphaNumericExceptionMessage = 'Der Seitenname sollte einen gültigen alphanumerischen Wert haben: {0}' + defaultValueNotBooleanOrEnumExceptionMessage = 'Der Standardwert ist kein Boolean und gehört nicht zum Enum.' + openApiComponentSchemaDoesNotExistExceptionMessage = 'Das OpenApi-Komponentenschema {0} existiert nicht.' + timerParameterMustBeGreaterThanZeroExceptionMessage = '[Timer] {0}: {1} muss größer als 0 sein.' + taskTimedOutExceptionMessage = 'Aufgabe ist nach {0}ms abgelaufen.' + scheduleStartTimeAfterEndTimeExceptionMessage = '[Zeitplan] {0}: StartTime kann nicht nach EndTime liegen.' + infoVersionMandatoryMessage = 'info.version ist obligatorisch.' + cannotUnlockNullObjectExceptionMessage = 'Kann ein null-Objekt nicht entsperren.' + nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = 'Ein nicht leerer ScriptBlock ist für das benutzerdefinierte Authentifizierungsschema erforderlich.' + validationOfOneOfSchemaNotSupportedExceptionMessage = "Die Validierung eines Schemas, das 'oneof' enthält, wird nicht unterstützt." + routeParameterCannotBeNullExceptionMessage = "Der Parameter 'Route' darf nicht null sein." + cacheStorageAlreadyExistsExceptionMessage = "Ein Cache-Speicher mit dem Namen '{0}' existiert bereits." + loggingMethodRequiresValidScriptBlockExceptionMessage = "Die angegebene Ausgabemethode für die Logging-Methode '{0}' erfordert einen gültigen ScriptBlock." + scopedVariableAlreadyDefinedExceptionMessage = 'Die Bereichsvariable ist bereits definiert: {0}.' + oauth2RequiresAuthorizeUrlExceptionMessage = 'OAuth2 erfordert die Angabe einer Autorisierungs-URL.' + pathNotExistExceptionMessage = 'Pfad existiert nicht: {0}' + noDomainServerNameForWindowsAdAuthExceptionMessage = 'Es wurde kein Domänenservername für die Windows-AD-Authentifizierung angegeben.' + suppliedDateAfterScheduleEndTimeExceptionMessage = 'Das angegebene Datum liegt nach der Endzeit des Zeitplans bei {0}' + wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = 'Das *-Wildcard für Methoden ist nicht mit dem AutoMethods-Schalter kompatibel.' + cannotSupplyIntervalForYearExceptionMessage = 'Ein Intervallwert kann nicht für jedes Jahr angegeben werden.' + missingComponentsMessage = 'Fehlende Komponente(n)' + invalidStrictTransportSecurityDurationExceptionMessage = 'Ungültige Strict-Transport-Security-Dauer angegeben: {0}. Sie sollte größer als 0 sein.' + noSecretForHmac512ExceptionMessage = 'Es wurde kein Geheimnis für den HMAC512-Hash angegeben.' + daysInMonthExceededExceptionMessage = '{0} hat nur {1} Tage, aber {2} wurden angegeben' + nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = 'Ein nicht leerer ScriptBlock ist für die benutzerdefinierte Protokollierungsmethode erforderlich.' + encodingAttributeOnlyAppliesToMultipartExceptionMessage = 'Das Encoding-Attribut gilt nur für multipart und application/x-www-form-urlencoded Anfragekörper.' + suppliedDateBeforeScheduleStartTimeExceptionMessage = 'Das angegebene Datum liegt vor der Startzeit des Zeitplans bei {0}' + unlockSecretRequiredExceptionMessage = "Eine 'UnlockSecret'-Eigenschaft ist erforderlich, wenn Microsoft.PowerShell.SecretStore verwendet wird." + noLogicPassedForMethodRouteExceptionMessage = '[{0}] {1}: Keine Logik übergeben.' + bodyParserAlreadyDefinedForContentTypeExceptionMessage = 'Für den Inhaltstyp {0} ist bereits ein Body-Parser definiert.' + invalidJwtSuppliedExceptionMessage = 'Ungültiger JWT angegeben.' + sessionsRequiredForFlashMessagesExceptionMessage = 'Sitzungen sind erforderlich, um Flash-Nachrichten zu verwenden.' + outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = 'Die angegebene Ausgabemethode für die Anforderungsprotokollierung erfordert einen gültigen ScriptBlock.' + semaphoreAlreadyExistsExceptionMessage = 'Ein Semaphor mit folgendem Namen existiert bereits: {0}' + invalidJwtHeaderAlgorithmSuppliedExceptionMessage = 'Ungültiger JWT-Header-Algorithmus angegeben.' + oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = "Der OAuth2-Anbieter unterstützt den für die Verwendung eines InnerScheme erforderlichen 'password'-Grant-Typ nicht." + invalidAliasFoundExceptionMessage = 'Ungültiges {0}-Alias gefunden: {1}' + scheduleDoesNotExistExceptionMessage = "Zeitplan '{0}' existiert nicht." + accessMethodNotExistExceptionMessage = 'Zugriffsmethode nicht vorhanden: {0}.' + oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = "Der OAuth2-Anbieter unterstützt den 'code'-Antworttyp nicht." + untestedPowerShellVersionWarningMessage = '[WARNUNG] Pode {0} wurde nicht auf PowerShell {1} getestet, da diese Version bei der Veröffentlichung von Pode nicht verfügbar war.' + secretVaultAlreadyRegisteredAutoImportExceptionMessage = "Ein Geheimtresor mit dem Namen '{0}' wurde bereits beim automatischen Importieren von Geheimtresoren registriert." + schemeRequiresValidScriptBlockExceptionMessage = "Das bereitgestellte Schema für den Authentifizierungsvalidator '{0}' erfordert einen gültigen ScriptBlock." + serverLoopingMessage = 'Server-Schleife alle {0} Sekunden' + certificateThumbprintsNameSupportedOnWindowsExceptionMessage = 'Zertifikat-Thumbprints/Name werden nur unter Windows unterstützt.' + sseConnectionNameRequiredExceptionMessage = "Ein SSE-Verbindungsname ist erforderlich, entweder von -Name oder `$WebEvent.Sse.Namee" + invalidMiddlewareTypeExceptionMessage = 'Eines der angegebenen Middleware-Objekte ist ein ungültiger Typ. Erwartet wurde entweder ein ScriptBlock oder ein Hashtable, aber erhalten wurde: {0}.' + noSecretForJwtSignatureExceptionMessage = 'Es wurde kein Geheimnis für die JWT-Signatur angegeben.' + modulePathDoesNotExistExceptionMessage = 'Der Modulpfad existiert nicht: {0}' + taskAlreadyDefinedExceptionMessage = '[Aufgabe] {0}: Aufgabe bereits definiert.' + verbAlreadyDefinedExceptionMessage = '[Verb] {0}: Bereits definiert.' + clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = 'Clientzertifikate werden nur auf HTTPS-Endpunkten unterstützt.' + endpointNameNotExistExceptionMessage = "Der Endpunkt mit dem Namen '{0}' existiert nicht" + middlewareNoLogicSuppliedExceptionMessage = '[Middleware]: Kein Logik-ScriptBlock bereitgestellt.' + scriptBlockRequiredForMergingUsersExceptionMessage = 'Ein ScriptBlock ist erforderlich, um mehrere authentifizierte Benutzer zu einem Objekt zusammenzuführen, wenn Valid All ist.' + secretVaultAlreadyRegisteredExceptionMessage = "Ein Geheimnis-Tresor mit dem Namen '{0}' wurde bereits registriert{1}." + deprecatedTitleVersionDescriptionWarningMessage = "WARNUNG: Titel, Version und Beschreibung in 'Enable-PodeOpenApi' sind veraltet. Bitte verwenden Sie stattdessen 'Add-PodeOAInfo'." + undefinedOpenApiReferencesMessage = 'Nicht definierte OpenAPI-Referenzen:' + doneMessage = 'Fertig' + swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = 'Diese Version des Swagger-Editors unterstützt OpenAPI 3.1 nicht.' + durationMustBeZeroOrGreaterExceptionMessage = 'Die Dauer muss 0 oder größer sein, aber erhalten: {0}s' + viewsPathDoesNotExistExceptionMessage = 'Der Ansichtsordnerpfad existiert nicht: {0}' + discriminatorIncompatibleWithAllOfExceptionMessage = "Der Parameter 'Discriminator' ist nicht mit 'allOf' kompatibel." + noNameForWebSocketSendMessageExceptionMessage = 'Kein Name für das Senden einer Nachricht an den WebSocket angegeben.' + hashtableMiddlewareNoLogicExceptionMessage = 'Eine angegebene Hashtable-Middleware enthält keine definierte Logik.' + openApiInfoMessage = 'OpenAPI-Informationen:' + invalidSchemeForAuthValidatorExceptionMessage = "Das bereitgestellte '{0}'-Schema für den Authentifizierungsvalidator '{1}' erfordert einen gültigen ScriptBlock." + sseFailedToBroadcastExceptionMessage = 'SSE konnte aufgrund des definierten SSE-Broadcast-Levels für {0}: {1} nicht übertragen werden.' + adModuleWindowsOnlyExceptionMessage = 'Active Directory-Modul nur unter Windows verfügbar.' + requestLoggingAlreadyEnabledExceptionMessage = 'Die Anforderungsprotokollierung wurde bereits aktiviert.' + invalidAccessControlMaxAgeDurationExceptionMessage = 'Ungültige Access-Control-Max-Age-Dauer angegeben: {0}. Sollte größer als 0 sein.' +} + diff --git a/src/Locales/en/Pode.psd1 b/src/Locales/en/Pode.psd1 index 841fdd8f3..cccd55e58 100644 --- a/src/Locales/en/Pode.psd1 +++ b/src/Locales/en/Pode.psd1 @@ -1,284 +1,285 @@ -ConvertFrom-StringData -StringData @' -adModuleWindowsOnlyExceptionMessage = Active Directory module only available on Windows. -adModuleNotInstalledExceptionMessage = Active Directory module is not installed. -secretManagementModuleNotInstalledExceptionMessage = Microsoft.PowerShell.SecretManagement module not installed. -secretVaultAlreadyRegisteredAutoImportExceptionMessage = A Secret Vault with the name '{0}' has already been registered while auto-importing Secret Vaults. -failedToOpenRunspacePoolExceptionMessage = Failed to open RunspacePool: {0} -cronExpressionInvalidExceptionMessage = Cron expression should only consist of 5 parts: {0} -invalidAliasFoundExceptionMessage = Invalid {0} alias found: {1} -invalidAtomCharacterExceptionMessage = Invalid atom character: {0} -minValueGreaterThanMaxExceptionMessage = Min value for {0} should not be greater than the max value. -minValueInvalidExceptionMessage = Min value '{0}' for {1} is invalid, should be greater than/equal to {2} -maxValueInvalidExceptionMessage = Max value '{0}' for {1} is invalid, should be less than/equal to {2} -valueOutOfRangeExceptionMessage = Value '{0}' for {1} is invalid, should be between {2} and {3} -daysInMonthExceededExceptionMessage = {0} only has {1} days, but {2} was supplied. -nextTriggerCalculationErrorExceptionMessage = Looks like something went wrong trying to calculate the next trigger datetime: {0} -incompatiblePodeDllExceptionMessage = An existing incompatible Pode.DLL version {0} is loaded. Version {1} is required. Open a new Powershell/pwsh session and retry. -endpointNotExistExceptionMessage = Endpoint with protocol '{0}' and address '{1}' or local address '{2}' does not exist. -endpointNameNotExistExceptionMessage = Endpoint with name '{0}' does not exist. -failedToConnectToUrlExceptionMessage = Failed to connect to URL: {0} -failedToParseAddressExceptionMessage = Failed to parse '{0}' as a valid IP/Host:Port address -invalidIpAddressExceptionMessage = The IP address supplied is invalid: {0} -invalidPortExceptionMessage = The port cannot be negative: {0} -pathNotExistExceptionMessage = Path does not exist: {0} -noSecretForHmac256ExceptionMessage = No secret supplied for HMAC256 hash. -noSecretForHmac384ExceptionMessage = No secret supplied for HMAC384 hash. -noSecretForHmac512ExceptionMessage = No secret supplied for HMAC512 hash. -noSecretForJwtSignatureExceptionMessage = No secret supplied for JWT signature. -noSecretExpectedForNoSignatureExceptionMessage = Expected no secret to be supplied for no signature. -unsupportedJwtAlgorithmExceptionMessage = The JWT algorithm is not currently supported: {0} -invalidBase64JwtExceptionMessage = Invalid Base64 encoded value found in JWT -invalidJsonJwtExceptionMessage = Invalid JSON value found in JWT -unsupportedFunctionInServerlessContextExceptionMessage = The {0} function is not supported in a serverless context. -invalidPathWildcardOrDirectoryExceptionMessage = The Path supplied cannot be a wildcard or a directory: {0} -invalidExceptionTypeExceptionMessage = Exception is of an invalid type, should be either WebException or HttpRequestException, but got: {0} -pathToLoadNotFoundExceptionMessage = Path to load {0} not found: {1} -singleValueForIntervalExceptionMessage = You can only supply a single {0} value when using intervals. -scriptErrorExceptionMessage = Error '{0}' in script {1} {2} (line {3}) char {4} executing {5} on {6} object '{7}' Class: {8} BaseClass: {9} -noScriptBlockSuppliedExceptionMessage = No ScriptBlock supplied. -iisAspnetcoreTokenMissingExceptionMessage = IIS ASPNETCORE_TOKEN is missing. -propertiesParameterWithoutNameExceptionMessage = The Properties parameters cannot be used if the Property has no name. -multiTypePropertiesRequireOpenApi31ExceptionMessage = Multi-type properties require OpenApi Version 3.1 or above. -openApiVersionPropertyMandatoryExceptionMessage = OpenApi Version property is mandatory. -webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = The Webhooks feature is not supported in OpenAPI v3.0.x -authenticationMethodDoesNotExistExceptionMessage = Authentication method does not exist: {0} -unsupportedObjectExceptionMessage = Unsupported object -validationOfAnyOfSchemaNotSupportedExceptionMessage = Validation of a schema that includes 'anyof' is not supported. -validationOfOneOfSchemaNotSupportedExceptionMessage = Validation of a schema that includes 'oneof' is not supported. -cannotCreatePropertyWithoutTypeExceptionMessage = Cannot create the property because no type is defined. -headerMustHaveNameInEncodingContextExceptionMessage = Header must have a name when used in an encoding context. -descriptionRequiredExceptionMessage = A Description is required. -openApiDocumentNotCompliantExceptionMessage = OpenAPI document is not compliant. -noComponentInDefinitionExceptionMessage = No component of type {0} named {1} is available in the {2} definition. -methodPathAlreadyDefinedExceptionMessage = [{0}] {1}: Already defined. -methodPathAlreadyDefinedForUrlExceptionMessage = [{0}] {1}: Already defined for {2} -invalidMiddlewareTypeExceptionMessage = One of the Middlewares supplied is an invalid type. Expected either a ScriptBlock or Hashtable, but got: {0} -hashtableMiddlewareNoLogicExceptionMessage = A Hashtable Middleware supplied has no Logic defined. -invalidLogicTypeInHashtableMiddlewareExceptionMessage = A Hashtable Middleware supplied has an invalid Logic type. Expected ScriptBlock, but got: {0} -scopedVariableAlreadyDefinedExceptionMessage = Scoped Variable already defined: {0} -valueForUsingVariableNotFoundExceptionMessage = Value for '`$using:{0}' could not be found. -unlockSecretRequiredExceptionMessage = An 'UnlockSecret' property is required when using Microsoft.PowerShell.SecretStore -unlockSecretButNoScriptBlockExceptionMessage = Unlock secret supplied for custom Secret Vault type, but not Unlock ScriptBlock supplied. -noUnlockScriptBlockForVaultExceptionMessage = No Unlock ScriptBlock supplied for unlocking the vault '{0}' -noSetScriptBlockForVaultExceptionMessage = No Set ScriptBlock supplied for updating/creating secrets in the vault '{0}' -noRemoveScriptBlockForVaultExceptionMessage = No Remove ScriptBlock supplied for removing secrets from the vault '{0}' -invalidSecretValueTypeExceptionMessage = Secret value is of an invalid type. Expected types: String, SecureString, HashTable, Byte[], or PSCredential. But got: {0} -limitValueCannotBeZeroOrLessExceptionMessage = Limit value cannot be 0 or less for {0} -secondsValueCannotBeZeroOrLessExceptionMessage = Seconds value cannot be 0 or less for {0} -failedToCreateOpenSslCertExceptionMessage = Failed to create openssl cert: {0} -certificateThumbprintsNameSupportedOnWindowsExceptionMessage = Certificate Thumbprints/Name are only supported on Windows. -noCertificateFoundExceptionMessage = No certificate could be found in {0}\{1} for '{2}' -runspacePoolFailedToLoadExceptionMessage = {0} RunspacePool failed to load. -noServiceHandlersDefinedExceptionMessage = No Service handlers have been defined. -noSessionToSetOnResponseExceptionMessage = There is no session available to set on the response. -noSessionToCalculateDataHashExceptionMessage = No session available to calculate data hash. -moduleOrVersionNotFoundExceptionMessage = Module or version not found on {0}: {1}@{2} -noSmtpHandlersDefinedExceptionMessage = No SMTP handlers have been defined. -taskTimedOutExceptionMessage = Task has timed out after {0}ms. -verbAlreadyDefinedExceptionMessage = [Verb] {0}: Already defined -verbAlreadyDefinedForUrlExceptionMessage = [Verb] {0}: Already defined for {1} -pathOrScriptBlockRequiredExceptionMessage = A Path or ScriptBlock is required for sourcing the Custom access values. -accessMethodAlreadyDefinedExceptionMessage = Access method already defined: {0} -accessMethodNotExistForMergingExceptionMessage = Access method does not exist for merging: {0} -routeAlreadyContainsCustomAccessExceptionMessage = Route '[{0}] {1}' already contains Custom Access with name '{2}' -accessMethodNotExistExceptionMessage = Access method does not exist: {0} -pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = The PathItems feature is not supported in OpenAPI v3.0.x -nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = A non-empty ScriptBlock is required for the Custom authentication scheme. -oauth2InnerSchemeInvalidExceptionMessage = OAuth2 InnerScheme can only be one of either Basic or Form authentication, but got: {0} -sessionsRequiredForOAuth2WithPKCEExceptionMessage = Sessions are required to use OAuth2 with PKCE -oauth2ClientSecretRequiredExceptionMessage = OAuth2 requires a Client Secret when not using PKCE. -authMethodAlreadyDefinedExceptionMessage = Authentication method already defined: {0} -invalidSchemeForAuthValidatorExceptionMessage = The supplied '{0}' Scheme for the '{1}' authentication validator requires a valid ScriptBlock. -sessionsRequiredForSessionPersistentAuthExceptionMessage = Sessions are required to use session persistent authentication. -oauth2RequiresAuthorizeUrlExceptionMessage = OAuth2 requires an Authorize URL to be supplied -authMethodNotExistForMergingExceptionMessage = Authentication method does not exist for merging: {0} -mergeDefaultAuthNotInListExceptionMessage = The MergeDefault Authentication '{0}' is not in the Authentication list supplied. -defaultAuthNotInListExceptionMessage = The Default Authentication '{0}' is not in the Authentication list supplied. -scriptBlockRequiredForMergingUsersExceptionMessage = A Scriptblock for merging multiple authenticated users into 1 object is required When Valid is All. -noDomainServerNameForWindowsAdAuthExceptionMessage = No domain server name has been supplied for Windows AD authentication -sessionsNotConfiguredExceptionMessage = Sessions have not been configured. -windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = Windows Local Authentication support is for Windows only. -iisAuthSupportIsForWindowsOnlyExceptionMessage = IIS Authentication support is for Windows only. -noAlgorithmInJwtHeaderExceptionMessage = No algorithm supplied in JWT Header. -invalidJwtSuppliedExceptionMessage = Invalid JWT supplied. -invalidJwtHeaderAlgorithmSuppliedExceptionMessage = Invalid JWT header algorithm supplied. -noJwtSignatureForAlgorithmExceptionMessage = No JWT signature supplied for {0}. -expectedNoJwtSignatureSuppliedExceptionMessage = Expected no JWT signature to be supplied. -invalidJwtSignatureSuppliedExceptionMessage = Invalid JWT signature supplied. -jwtExpiredExceptionMessage = The JWT has expired. -jwtNotYetValidExceptionMessage = The JWT is not yet valid for use. -snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = Snapins are only supported on Windows PowerShell. -userFileDoesNotExistExceptionMessage = The user file does not exist: {0} -schemeRequiresValidScriptBlockExceptionMessage = The supplied scheme for the '{0}' authentication validator requires a valid ScriptBlock. -oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = The OAuth2 provider does not support the 'code' response_type. -oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = The OAuth2 provider does not support the 'password' grant_type required by using an InnerScheme. -eventAlreadyRegisteredExceptionMessage = {0} event already registered: {1} -noEventRegisteredExceptionMessage = No {0} event registered: {1} -sessionsRequiredForFlashMessagesExceptionMessage = Sessions are required to use Flash messages. -eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = Event Viewer logging only supported on Windows. -nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = A non-empty ScriptBlock is required for the Custom logging output method. -requestLoggingAlreadyEnabledExceptionMessage = Request Logging has already been enabled. -outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = The supplied output Method for Request Logging requires a valid ScriptBlock. -errorLoggingAlreadyEnabledExceptionMessage = Error Logging has already been enabled. -nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = A non-empty ScriptBlock is required for the logging method. -csrfMiddlewareNotInitializedExceptionMessage = CSRF Middleware has not been initialized. -sessionsRequiredForCsrfExceptionMessage = Sessions are required to use CSRF unless you want to use cookies. -middlewareNoLogicSuppliedExceptionMessage = [Middleware]: No logic supplied in ScriptBlock. -parameterHasNoNameExceptionMessage = The Parameter has no name. Please give this component a name using the 'Name' parameter. -reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = The 'pathItems' reusable component feature is not available in OpenAPI v3.0. -noPropertiesMutuallyExclusiveExceptionMessage = The parameter 'NoProperties' is mutually exclusive with 'Properties', 'MinProperties' and 'MaxProperties' -discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = The parameter 'DiscriminatorMapping' can only be used when 'DiscriminatorProperty' is present. -discriminatorIncompatibleWithAllOfExceptionMessage = The parameter 'Discriminator' is incompatible with 'allOf'. -typeCanOnlyBeAssociatedWithObjectExceptionMessage = Type {0} can only be associated with an Object. -showPodeGuiOnlyAvailableOnWindowsExceptionMessage = Show-PodeGui is currently only available for Windows PowerShell and PowerShell 7+ on Windows. -nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = A Name is required for the endpoint if the RedirectTo parameter is supplied. -clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = Client certificates are only supported on HTTPS endpoints. -explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = The Explicit TLS mode is only supported on SMTPS and TCPS endpoints. -acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = The Acknowledge message is only supported on SMTP and TCP endpoints. -crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = The CRLF message end check is only supported on TCP endpoints. -mustBeRunningWithAdminPrivilegesExceptionMessage = Must be running with administrator privileges to listen on non-localhost addresses. -certificateSuppliedForNonHttpsWssEndpointExceptionMessage = Certificate supplied for non-HTTPS/WSS endpoint. -websocketsNotConfiguredForSignalMessagesExceptionMessage = WebSockets have not been configured to send signal messages. -noPathSuppliedForRouteExceptionMessage = No Path supplied for the Route. -accessRequiresAuthenticationOnRoutesExceptionMessage = Access requires Authentication to be supplied on Routes. -accessMethodDoesNotExistExceptionMessage = Access method does not exist: {0}. -routeParameterNeedsValidScriptblockExceptionMessage = The Route parameter needs a valid, not empty, scriptblock. -noCommandsSuppliedToConvertToRoutesExceptionMessage = No commands supplied to convert to Routes. -nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = A non-empty ScriptBlock is required to create a Page Route. -sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSE can only be configured on requests with an Accept header value of text/event-stream -sseConnectionNameRequiredExceptionMessage = An SSE connection Name is required, either from -Name or `$WebEvent.Sse.Name -sseFailedToBroadcastExceptionMessage = SSE failed to broadcast due to defined SSE broadcast level for {0}: {1} -podeNotInitializedExceptionMessage = Pode has not been initialized. -invalidTaskTypeExceptionMessage = Task type is invalid, expected either [System.Threading.Tasks.Task] or [hashtable] -cannotLockValueTypeExceptionMessage = Cannot lock a [ValueTypes] -cannotLockNullObjectExceptionMessage = Cannot lock an object that is null. -failedToAcquireLockExceptionMessage = Failed to acquire a lock on the object. -cannotUnlockValueTypeExceptionMessage = Cannot unlock a [ValueTypes] -cannotUnlockNullObjectExceptionMessage = Cannot unlock an object that is null. -sessionMiddlewareAlreadyInitializedExceptionMessage = Session Middleware has already been initialized. -customSessionStorageMethodNotImplementedExceptionMessage = The custom session storage does not implement the required '{0}()' method. -secretRequiredForCustomSessionStorageExceptionMessage = A Secret is required when using custom session storage. -noSessionAvailableToSaveExceptionMessage = There is no session available to save. -cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = Cannot supply an interval when the parameter 'Every' is set to None. -cannotSupplyIntervalForQuarterExceptionMessage = Cannot supply interval value for every quarter. -cannotSupplyIntervalForYearExceptionMessage = Cannot supply interval value for every year. -secretVaultAlreadyRegisteredExceptionMessage = A Secret Vault with the name '{0}' has already been registered{1}. -secretVaultUnlockExpiryDateInPastExceptionMessage = Secret Vault unlock expiry date is in the past (UTC): {0} -secretAlreadyMountedExceptionMessage = A Secret with the name '{0}' has already been mounted. -credentialsPassedWildcardForHeadersLiteralExceptionMessage = When Credentials is passed, The * wildcard for Headers will be taken as a literal string and not a wildcard. -wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = The * wildcard for Headers is incompatible with the AutoHeaders switch. -wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = The * wildcard for Methods is incompatible with the AutoMethods switch. -invalidAccessControlMaxAgeDurationExceptionMessage = Invalid Access-Control-Max-Age duration supplied: {0}. Should be greater than 0. -noNameForWebSocketDisconnectExceptionMessage = No Name for a WebSocket to disconnect from supplied. -noNameForWebSocketRemoveExceptionMessage = No Name for a WebSocket to remove supplied. -noNameForWebSocketSendMessageExceptionMessage = No Name for a WebSocket to send message to supplied. -noSecretNamedMountedExceptionMessage = No Secret named '{0}' has been mounted. -noNameForWebSocketResetExceptionMessage = No Name for a WebSocket to reset supplied. -schemaValidationRequiresPowerShell610ExceptionMessage = Schema validation required PowerShell version 6.1.0 or greater. -routeParameterCannotBeNullExceptionMessage = The parameter 'Route' cannot be null. -encodingAttributeOnlyAppliesToMultipartExceptionMessage = The encoding attribute only applies to multipart and application/x-www-form-urlencoded request bodies. -testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = 'Test-PodeOAComponentchema' need to be enabled using 'Enable-PodeOpenApi -EnableSchemaValidation' -openApiComponentSchemaDoesNotExistExceptionMessage = The OpenApi component schema {0} doesn't exist. -openApiParameterRequiresNameExceptionMessage = The OpenApi parameter requires a name to be specified. -openApiLicenseObjectRequiresNameExceptionMessage = The OpenAPI object 'license' required the property 'name'. Use -LicenseName parameter. -parametersValueOrExternalValueMandatoryExceptionMessage = Parameters 'Value' or 'ExternalValue' are mandatory -parametersMutuallyExclusiveExceptionMessage = Parameters '{0}' and '{1}' are mutually exclusive. -maximumConcurrentWebSocketThreadsInvalidExceptionMessage = Maximum concurrent WebSocket threads must be >=1 but got: {0} -maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = Maximum concurrent WebSocket threads cannot be less than the minimum of {0} but got: {1} -alreadyConnectedToWebSocketExceptionMessage = Already connected to websocket with name '{0}' -failedToConnectToWebSocketExceptionMessage = Failed to connect to websocket: {0} -verbNoLogicPassedExceptionMessage = [Verb] {0}: No logic passed -scriptPathDoesNotExistExceptionMessage = The script path does not exist: {0} -failedToImportModuleExceptionMessage = Failed to import module: {0} -modulePathDoesNotExistExceptionMessage = The module path does not exist: {0} -defaultValueNotBooleanOrEnumExceptionMessage = The default value is not a boolean and is not part of the enum. -propertiesTypeObjectAssociationExceptionMessage = Only properties of type Object can be associated with {0}. -invalidContentTypeForSchemaExceptionMessage = Invalid 'content-type' found for schema: {0} -openApiRequestStyleInvalidForParameterExceptionMessage = OpenApi request Style cannot be {0} for a {1} parameter. -pathParameterRequiresRequiredSwitchExceptionMessage = If the parameter location is 'Path', the switch parameter 'Required' is mandatory. -operationIdMustBeUniqueForArrayExceptionMessage = OperationID: {0} has to be unique and cannot be applied to an array. -operationIdMustBeUniqueExceptionMessage = OperationID: {0} has to be unique. -noOpenApiUrlSuppliedExceptionMessage = No OpenAPI URL supplied for {0}. -noTitleSuppliedForPageExceptionMessage = No title supplied for {0} page. -noRoutePathSuppliedForPageExceptionMessage = No route path supplied for {0} page. -swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = This version on Swagger-Editor doesn't support OpenAPI 3.1 -rapidPdfDoesNotSupportOpenApi31ExceptionMessage = The Document tool RapidPdf doesn't support OpenAPI 3.1 -definitionTagNotDefinedExceptionMessage = DefinitionTag {0} does not exist. -scopedVariableNotFoundExceptionMessage = Scoped Variable not found: {0} -noSecretVaultRegisteredExceptionMessage = No Secret Vault with the name '{0}' has been registered. -invalidStrictTransportSecurityDurationExceptionMessage = Invalid Strict-Transport-Security duration supplied: {0}. It should be greater than 0. -durationMustBeZeroOrGreaterExceptionMessage = Duration must be 0 or greater, but got: {0}s -taskAlreadyDefinedExceptionMessage = [Task] {0}: Task already defined. -maximumConcurrentTasksInvalidExceptionMessage = Maximum concurrent tasks must be >=1 but got: {0} -maximumConcurrentTasksLessThanMinimumExceptionMessage = Maximum concurrent tasks cannot be less than the minimum of {0} but got: {1} -taskDoesNotExistExceptionMessage = Task '{0}' does not exist. -cacheStorageNotFoundForRetrieveExceptionMessage = Cache storage with name '{0}' not found when attempting to retrieve cached item '{1}' -cacheStorageNotFoundForSetExceptionMessage = Cache storage with name '{0}' not found when attempting to set cached item '{1}' -cacheStorageNotFoundForExistsExceptionMessage = Cache storage with name '{0}' not found when attempting to check if cached item '{1}' exists. -cacheStorageNotFoundForRemoveExceptionMessage = Cache storage with name '{0}' not found when attempting to remove cached item '{1}' -cacheStorageNotFoundForClearExceptionMessage = Cache storage with name '{0}' not found when attempting to clear the cache. -cacheStorageAlreadyExistsExceptionMessage = Cache Storage with name '{0}' already exists. -pathToIconForGuiDoesNotExistExceptionMessage = Path to the icon for GUI does not exist: {0} -invalidHostnameSuppliedExceptionMessage = Invalid hostname supplied: {0} -endpointAlreadyDefinedExceptionMessage = An endpoint named '{0}' has already been defined. -certificateExpiredExceptionMessage = The certificate '{0}' has expired: {1} -endpointNotDefinedForRedirectingExceptionMessage = An endpoint named '{0}' has not been defined for redirecting. -fileWatcherAlreadyDefinedExceptionMessage = A File Watcher named '{0}' has already been defined. -handlerAlreadyDefinedExceptionMessage = [{0}] {1}: Handler already defined. -maxDaysInvalidExceptionMessage = MaxDays must be 0 or greater, but got: {0} -maxSizeInvalidExceptionMessage = MaxSize must be 0 or greater, but got: {0} -loggingMethodAlreadyDefinedExceptionMessage = Logging method already defined: {0} -loggingMethodRequiresValidScriptBlockExceptionMessage = The supplied output Method for the '{0}' Logging method requires a valid ScriptBlock. -csrfCookieRequiresSecretExceptionMessage = When using cookies for CSRF, a Secret is required. You can either supply a Secret or set the Cookie global secret - (Set-PodeCookieSecret '' -Global) -bodyParserAlreadyDefinedForContentTypeExceptionMessage = A body-parser is already defined for the {0} content-type. -middlewareAlreadyDefinedExceptionMessage = [Middleware] {0}: Middleware already defined. -parameterNotSuppliedInRequestExceptionMessage = A parameter called '{0}' was not supplied in the request or has no data available. -noDataForFileUploadedExceptionMessage = No data for file '{0}' was uploaded in the request. -viewsFolderNameAlreadyExistsExceptionMessage = The Views folder name already exists: {0} -viewsPathDoesNotExistExceptionMessage = The Views path does not exist: {0} -timerAlreadyDefinedExceptionMessage = [Timer] {0}: Timer already defined. -timerParameterMustBeGreaterThanZeroExceptionMessage = [Timer] {0}: {1} must be greater than 0. -timerDoesNotExistExceptionMessage = Timer '{0}' does not exist. -mutexAlreadyExistsExceptionMessage = A mutex with the following name already exists: {0} -noMutexFoundExceptionMessage = No mutex found called '{0}' -failedToAcquireMutexOwnershipExceptionMessage = Failed to acquire mutex ownership. Mutex name: {0} -semaphoreAlreadyExistsExceptionMessage = A semaphore with the following name already exists: {0} -failedToAcquireSemaphoreOwnershipExceptionMessage = Failed to acquire semaphore ownership. Semaphore name: {0} -scheduleAlreadyDefinedExceptionMessage = [Schedule] {0}: Schedule already defined. -scheduleCannotHaveNegativeLimitExceptionMessage = [Schedule] {0}: Cannot have a negative limit. -scheduleEndTimeMustBeInFutureExceptionMessage = [Schedule] {0}: The EndTime value must be in the future. -scheduleStartTimeAfterEndTimeExceptionMessage = [Schedule] {0}: Cannot have a StartTime after the EndTime -maximumConcurrentSchedulesInvalidExceptionMessage = Maximum concurrent schedules must be >=1 but got: {0} -maximumConcurrentSchedulesLessThanMinimumExceptionMessage = Maximum concurrent schedules cannot be less than the minimum of {0} but got: {1} -scheduleDoesNotExistExceptionMessage = Schedule '{0}' does not exist. -suppliedDateBeforeScheduleStartTimeExceptionMessage = Supplied date is before the start time of the schedule at {0} -suppliedDateAfterScheduleEndTimeExceptionMessage = Supplied date is after the end time of the schedule at {0} -noSemaphoreFoundExceptionMessage = No semaphore found called '{0}' -noLogicPassedForRouteExceptionMessage = No logic passed for Route: {0} -noPathSuppliedForStaticRouteExceptionMessage = [{0}]: No Path supplied for Static Route. -sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: The Source path supplied for Static Route does not exist: {2} -noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: No logic passed. -moduleDoesNotContainFunctionExceptionMessage = Module {0} does not contain function {1} to convert to a Route. -pageNameShouldBeAlphaNumericExceptionMessage = The Page name should be a valid AlphaNumeric value: {0} -filesHaveChangedMessage = The following files have changed: -multipleEndpointsForGuiMessage = Multiple endpoints defined, only the first will be used for the GUI. -openingGuiMessage = Opening the GUI. -listeningOnEndpointsMessage = Listening on the following {0} endpoint(s) [{1} thread(s)]: -specificationMessage = Specification -documentationMessage = Documentation -restartingServerMessage = Restarting server... -doneMessage = Done -deprecatedTitleVersionDescriptionWarningMessage = WARNING: Title, Version, and Description on 'Enable-PodeOpenApi' are deprecated. Please use 'Add-PodeOAInfo' instead. -undefinedOpenApiReferencesMessage = Undefined OpenAPI References: -definitionTagMessage = Definition {0}: -openApiGenerationDocumentErrorMessage = OpenAPI generation document error: -infoTitleMandatoryMessage = info.title is mandatory. -infoVersionMandatoryMessage = info.version is mandatory. -missingComponentsMessage = Missing component(s) -openApiInfoMessage = OpenAPI Info: -serverLoopingMessage = Server looping every {0}secs -iisShutdownMessage = (IIS Shutdown) -terminatingMessage = Terminating... -eolPowerShellWarningMessage = [WARNING] Pode {0} has not been tested on PowerShell {1}, as it is EOL. -untestedPowerShellVersionWarningMessage = [WARNING] Pode {0} has not been tested on PowerShell {1}, as it was not available when Pode was released. -'@ \ No newline at end of file +@{ + schemaValidationRequiresPowerShell610ExceptionMessage = 'Schema validation required PowerShell version 6.1.0 or greater.' + pathOrScriptBlockRequiredExceptionMessage = 'A Path or ScriptBlock is required for sourcing the Custom access values.' + operationIdMustBeUniqueForArrayExceptionMessage = 'OperationID: {0} has to be unique and cannot be applied to an array.' + endpointNotDefinedForRedirectingExceptionMessage = "An endpoint named '{0}' has not been defined for redirecting." + filesHaveChangedMessage = 'The following files have changed:' + iisAspnetcoreTokenMissingExceptionMessage = 'IIS ASPNETCORE_TOKEN is missing.' + minValueGreaterThanMaxExceptionMessage = 'Min value for {0} should not be greater than the max value.' + noLogicPassedForRouteExceptionMessage = 'No logic passed for Route: {0}' + scriptPathDoesNotExistExceptionMessage = 'The script path does not exist: {0}' + mutexAlreadyExistsExceptionMessage = 'A mutex with the following name already exists: {0}' + listeningOnEndpointsMessage = 'Listening on the following {0} endpoint(s) [{1} thread(s)]:' + unsupportedFunctionInServerlessContextExceptionMessage = 'The {0} function is not supported in a serverless context.' + expectedNoJwtSignatureSuppliedExceptionMessage = 'Expected no JWT signature to be supplied.' + secretAlreadyMountedExceptionMessage = "A Secret with the name '{0}' has already been mounted." + failedToAcquireLockExceptionMessage = 'Failed to acquire a lock on the object.' + noPathSuppliedForStaticRouteExceptionMessage = '[{0}]: No Path supplied for Static Route.' + invalidHostnameSuppliedExceptionMessage = 'Invalid hostname supplied: {0}' + authMethodAlreadyDefinedExceptionMessage = 'Authentication method already defined: {0}' + csrfCookieRequiresSecretExceptionMessage = "When using cookies for CSRF, a Secret is required. You can either supply a Secret or set the Cookie global secret - (Set-PodeCookieSecret '' -Global)" + nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = 'A non-empty ScriptBlock is required to create a Page Route.' + noPropertiesMutuallyExclusiveExceptionMessage = "The parameter 'NoProperties' is mutually exclusive with 'Properties', 'MinProperties' and 'MaxProperties'" + incompatiblePodeDllExceptionMessage = 'An existing incompatible Pode.DLL version {0} is loaded. Version {1} is required. Open a new Powershell/pwsh session and retry.' + accessMethodDoesNotExistExceptionMessage = 'Access method does not exist: {0}.' + scheduleAlreadyDefinedExceptionMessage = '[Schedule] {0}: Schedule already defined.' + secondsValueCannotBeZeroOrLessExceptionMessage = 'Seconds value cannot be 0 or less for {0}' + pathToLoadNotFoundExceptionMessage = 'Path to load {0} not found: {1}' + failedToImportModuleExceptionMessage = 'Failed to import module: {0}' + endpointNotExistExceptionMessage = "Endpoint with protocol '{0}' and address '{1}' or local address '{2}' does not exist." + terminatingMessage = 'Terminating...' + noCommandsSuppliedToConvertToRoutesExceptionMessage = 'No commands supplied to convert to Routes.' + invalidTaskTypeExceptionMessage = 'Task type is invalid, expected either [System.Threading.Tasks.Task] or [hashtable]' + alreadyConnectedToWebSocketExceptionMessage = "Already connected to websocket with name '{0}'" + crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = 'The CRLF message end check is only supported on TCP endpoints.' + testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = "'Test-PodeOAComponentchema' need to be enabled using 'Enable-PodeOpenApi -EnableSchemaValidation'" + adModuleNotInstalledExceptionMessage = 'Active Directory module is not installed.' + cronExpressionInvalidExceptionMessage = 'Cron expression should only consist of 5 parts: {0}' + noSessionToSetOnResponseExceptionMessage = 'There is no session available to set on the response.' + valueOutOfRangeExceptionMessage = "Value '{0}' for {1} is invalid, should be between {2} and {3}" + loggingMethodAlreadyDefinedExceptionMessage = 'Logging method already defined: {0}' + noSecretForHmac256ExceptionMessage = 'No secret supplied for HMAC256 hash.' + eolPowerShellWarningMessage = '[WARNING] Pode {0} has not been tested on PowerShell {1}, as it is EOL.' + runspacePoolFailedToLoadExceptionMessage = '{0} RunspacePool failed to load.' + noEventRegisteredExceptionMessage = 'No {0} event registered: {1}' + scheduleCannotHaveNegativeLimitExceptionMessage = '[Schedule] {0}: Cannot have a negative limit.' + openApiRequestStyleInvalidForParameterExceptionMessage = 'OpenApi request Style cannot be {0} for a {1} parameter.' + openApiDocumentNotCompliantExceptionMessage = 'OpenAPI document is not compliant.' + taskDoesNotExistExceptionMessage = "Task '{0}' does not exist." + scopedVariableNotFoundExceptionMessage = 'Scoped Variable not found: {0}' + sessionsRequiredForCsrfExceptionMessage = 'Sessions are required to use CSRF unless you want to use cookies.' + nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = 'A non-empty ScriptBlock is required for the logging method.' + credentialsPassedWildcardForHeadersLiteralExceptionMessage = 'When Credentials is passed, The * wildcard for Headers will be taken as a literal string and not a wildcard.' + podeNotInitializedExceptionMessage = 'Pode has not been initialized.' + multipleEndpointsForGuiMessage = 'Multiple endpoints defined, only the first will be used for the GUI.' + operationIdMustBeUniqueExceptionMessage = 'OperationID: {0} has to be unique.' + invalidJsonJwtExceptionMessage = 'Invalid JSON value found in JWT' + noAlgorithmInJwtHeaderExceptionMessage = 'No algorithm supplied in JWT Header.' + openApiVersionPropertyMandatoryExceptionMessage = 'OpenApi Version property is mandatory.' + limitValueCannotBeZeroOrLessExceptionMessage = 'Limit value cannot be 0 or less for {0}' + timerDoesNotExistExceptionMessage = "Timer '{0}' does not exist." + openApiGenerationDocumentErrorMessage = 'OpenAPI generation document error:' + routeAlreadyContainsCustomAccessExceptionMessage = "Route '[{0}] {1}' already contains Custom Access with name '{2}'" + maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = 'Maximum concurrent WebSocket threads cannot be less than the minimum of {0} but got: {1}' + middlewareAlreadyDefinedExceptionMessage = '[Middleware] {0}: Middleware already defined.' + invalidAtomCharacterExceptionMessage = 'Invalid atom character: {0}' + cacheStorageNotFoundForRetrieveExceptionMessage = "Cache storage with name '{0}' not found when attempting to retrieve cached item '{1}'" + headerMustHaveNameInEncodingContextExceptionMessage = 'Header must have a name when used in an encoding context.' + moduleDoesNotContainFunctionExceptionMessage = 'Module {0} does not contain function {1} to convert to a Route.' + pathToIconForGuiDoesNotExistExceptionMessage = 'Path to the icon for GUI does not exist: {0}' + noTitleSuppliedForPageExceptionMessage = 'No title supplied for {0} page.' + certificateSuppliedForNonHttpsWssEndpointExceptionMessage = 'Certificate supplied for non-HTTPS/WSS endpoint.' + cannotLockNullObjectExceptionMessage = 'Cannot lock an object that is null.' + showPodeGuiOnlyAvailableOnWindowsExceptionMessage = 'Show-PodeGui is currently only available for Windows PowerShell and PowerShell 7+ on Windows.' + unlockSecretButNoScriptBlockExceptionMessage = 'Unlock secret supplied for custom Secret Vault type, but not Unlock ScriptBlock supplied.' + invalidIpAddressExceptionMessage = 'The IP address supplied is invalid: {0}' + maxDaysInvalidExceptionMessage = 'MaxDays must be 0 or greater, but got: {0}' + noRemoveScriptBlockForVaultExceptionMessage = "No Remove ScriptBlock supplied for removing secrets from the vault '{0}'" + noSecretExpectedForNoSignatureExceptionMessage = 'Expected no secret to be supplied for no signature.' + noCertificateFoundExceptionMessage = "No certificate could be found in {0}{1} for '{2}'" + minValueInvalidExceptionMessage = "Min value '{0}' for {1} is invalid, should be greater than/equal to {2}" + accessRequiresAuthenticationOnRoutesExceptionMessage = 'Access requires Authentication to be supplied on Routes.' + noSecretForHmac384ExceptionMessage = 'No secret supplied for HMAC384 hash.' + windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = 'Windows Local Authentication support is for Windows only.' + definitionTagNotDefinedExceptionMessage = 'DefinitionTag {0} does not exist.' + noComponentInDefinitionExceptionMessage = 'No component of type {0} named {1} is available in the {2} definition.' + noSmtpHandlersDefinedExceptionMessage = 'No SMTP handlers have been defined.' + sessionMiddlewareAlreadyInitializedExceptionMessage = 'Session Middleware has already been initialized.' + reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = "The 'pathItems' reusable component feature is not available in OpenAPI v3.0." + wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = 'The * wildcard for Headers is incompatible with the AutoHeaders switch.' + noDataForFileUploadedExceptionMessage = "No data for file '{0}' was uploaded in the request." + sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = 'SSE can only be configured on requests with an Accept header value of text/event-stream' + noSessionAvailableToSaveExceptionMessage = 'There is no session available to save.' + pathParameterRequiresRequiredSwitchExceptionMessage = "If the parameter location is 'Path', the switch parameter 'Required' is mandatory." + noOpenApiUrlSuppliedExceptionMessage = 'No OpenAPI URL supplied for {0}.' + maximumConcurrentSchedulesInvalidExceptionMessage = 'Maximum concurrent schedules must be >=1 but got: {0}' + snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = 'Snapins are only supported on Windows PowerShell.' + eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = 'Event Viewer logging only supported on Windows.' + parametersMutuallyExclusiveExceptionMessage = "Parameters '{0}' and '{1}' are mutually exclusive." + pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = 'The PathItems feature is not supported in OpenAPI v3.0.x' + openApiParameterRequiresNameExceptionMessage = 'The OpenApi parameter requires a name to be specified.' + maximumConcurrentTasksLessThanMinimumExceptionMessage = 'Maximum concurrent tasks cannot be less than the minimum of {0} but got: {1}' + noSemaphoreFoundExceptionMessage = "No semaphore found called '{0}'" + singleValueForIntervalExceptionMessage = 'You can only supply a single {0} value when using intervals.' + jwtNotYetValidExceptionMessage = 'The JWT is not yet valid for use.' + verbAlreadyDefinedForUrlExceptionMessage = '[Verb] {0}: Already defined for {1}' + noSecretNamedMountedExceptionMessage = "No Secret named '{0}' has been mounted." + moduleOrVersionNotFoundExceptionMessage = 'Module or version not found on {0}: {1}@{2}' + noScriptBlockSuppliedExceptionMessage = 'No ScriptBlock supplied.' + noSecretVaultRegisteredExceptionMessage = "No Secret Vault with the name '{0}' has been registered." + nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = 'A Name is required for the endpoint if the RedirectTo parameter is supplied.' + openApiLicenseObjectRequiresNameExceptionMessage = "The OpenAPI object 'license' required the property 'name'. Use -LicenseName parameter." + sourcePathDoesNotExistForStaticRouteExceptionMessage = '[{0})] {1}: The Source path supplied for Static Route does not exist: {2}' + noNameForWebSocketDisconnectExceptionMessage = 'No Name for a WebSocket to disconnect from supplied.' + certificateExpiredExceptionMessage = "The certificate '{0}' has expired: {1}" + secretVaultUnlockExpiryDateInPastExceptionMessage = 'Secret Vault unlock expiry date is in the past (UTC): {0}' + invalidExceptionTypeExceptionMessage = 'Exception is of an invalid type, should be either WebException or HttpRequestException, but got: {0}' + invalidSecretValueTypeExceptionMessage = 'Secret value is of an invalid type. Expected types: String, SecureString, HashTable, Byte[], or PSCredential. But got: {0}' + explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = 'The Explicit TLS mode is only supported on SMTPS and TCPS endpoints.' + discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = "The parameter 'DiscriminatorMapping' can only be used when 'DiscriminatorProperty' is present." + scriptErrorExceptionMessage = "Error '{0}' in script {1} {2} (line {3}) char {4} executing {5} on {6} object '{7}' Class: {8} BaseClass: {9}" + cannotSupplyIntervalForQuarterExceptionMessage = 'Cannot supply interval value for every quarter.' + scheduleEndTimeMustBeInFutureExceptionMessage = '[Schedule] {0}: The EndTime value must be in the future.' + invalidJwtSignatureSuppliedExceptionMessage = 'Invalid JWT signature supplied.' + noSetScriptBlockForVaultExceptionMessage = "No Set ScriptBlock supplied for updating/creating secrets in the vault '{0}'" + accessMethodNotExistForMergingExceptionMessage = 'Access method does not exist for merging: {0}' + defaultAuthNotInListExceptionMessage = "The Default Authentication '{0}' is not in the Authentication list supplied." + parameterHasNoNameExceptionMessage = "The Parameter has no name. Please give this component a name using the 'Name' parameter." + methodPathAlreadyDefinedForUrlExceptionMessage = '[{0}] {1}: Already defined for {2}' + fileWatcherAlreadyDefinedExceptionMessage = "A File Watcher named '{0}' has already been defined." + noServiceHandlersDefinedExceptionMessage = 'No Service handlers have been defined.' + secretRequiredForCustomSessionStorageExceptionMessage = 'A Secret is required when using custom session storage.' + secretManagementModuleNotInstalledExceptionMessage = 'Microsoft.PowerShell.SecretManagement module not installed.' + noPathSuppliedForRouteExceptionMessage = 'No Path supplied for the Route.' + validationOfAnyOfSchemaNotSupportedExceptionMessage = "Validation of a schema that includes 'anyof' is not supported." + iisAuthSupportIsForWindowsOnlyExceptionMessage = 'IIS Authentication support is for Windows only.' + oauth2InnerSchemeInvalidExceptionMessage = 'OAuth2 InnerScheme can only be one of either Basic or Form authentication, but got: {0}' + noRoutePathSuppliedForPageExceptionMessage = 'No route path supplied for {0} page.' + cacheStorageNotFoundForExistsExceptionMessage = "Cache storage with name '{0}' not found when attempting to check if cached item '{1}' exists." + handlerAlreadyDefinedExceptionMessage = '[{0}] {1}: Handler already defined.' + sessionsNotConfiguredExceptionMessage = 'Sessions have not been configured.' + propertiesTypeObjectAssociationExceptionMessage = 'Only properties of type Object can be associated with {0}.' + sessionsRequiredForSessionPersistentAuthExceptionMessage = 'Sessions are required to use session persistent authentication.' + invalidPathWildcardOrDirectoryExceptionMessage = 'The Path supplied cannot be a wildcard or a directory: {0}' + accessMethodAlreadyDefinedExceptionMessage = 'Access method already defined: {0}' + parametersValueOrExternalValueMandatoryExceptionMessage = "Parameters 'Value' or 'ExternalValue' are mandatory" + maximumConcurrentTasksInvalidExceptionMessage = 'Maximum concurrent tasks must be >=1 but got: {0}' + cannotCreatePropertyWithoutTypeExceptionMessage = 'Cannot create the property because no type is defined.' + authMethodNotExistForMergingExceptionMessage = 'Authentication method does not exist for merging: {0}' + maxValueInvalidExceptionMessage = "Max value '{0}' for {1} is invalid, should be less than/equal to {2}" + endpointAlreadyDefinedExceptionMessage = "An endpoint named '{0}' has already been defined." + eventAlreadyRegisteredExceptionMessage = '{0} event already registered: {1}' + parameterNotSuppliedInRequestExceptionMessage = "A parameter called '{0}' was not supplied in the request or has no data available." + cacheStorageNotFoundForSetExceptionMessage = "Cache storage with name '{0}' not found when attempting to set cached item '{1}'" + methodPathAlreadyDefinedExceptionMessage = '[{0}] {1}: Already defined.' + errorLoggingAlreadyEnabledExceptionMessage = 'Error Logging has already been enabled.' + valueForUsingVariableNotFoundExceptionMessage = "Value for '`$using:{0}' could not be found." + rapidPdfDoesNotSupportOpenApi31ExceptionMessage = "The Document tool RapidPdf doesn't support OpenAPI 3.1" + oauth2ClientSecretRequiredExceptionMessage = 'OAuth2 requires a Client Secret when not using PKCE.' + invalidBase64JwtExceptionMessage = 'Invalid Base64 encoded value found in JWT' + noSessionToCalculateDataHashExceptionMessage = 'No session available to calculate data hash.' + cacheStorageNotFoundForRemoveExceptionMessage = "Cache storage with name '{0}' not found when attempting to remove cached item '{1}'" + csrfMiddlewareNotInitializedExceptionMessage = 'CSRF Middleware has not been initialized.' + infoTitleMandatoryMessage = 'info.title is mandatory.' + typeCanOnlyBeAssociatedWithObjectExceptionMessage = 'Type {0} can only be associated with an Object.' + userFileDoesNotExistExceptionMessage = 'The user file does not exist: {0}' + routeParameterNeedsValidScriptblockExceptionMessage = 'The Route parameter needs a valid, not empty, scriptblock.' + nextTriggerCalculationErrorExceptionMessage = 'Looks like something went wrong trying to calculate the next trigger datetime: {0}' + cannotLockValueTypeExceptionMessage = 'Cannot lock a [ValueTypes]' + failedToCreateOpenSslCertExceptionMessage = 'Failed to create openssl cert: {0}' + jwtExpiredExceptionMessage = 'The JWT has expired.' + openingGuiMessage = 'Opening the GUI.' + multiTypePropertiesRequireOpenApi31ExceptionMessage = 'Multi-type properties require OpenApi Version 3.1 or above.' + noNameForWebSocketRemoveExceptionMessage = 'No Name for a WebSocket to remove supplied.' + maxSizeInvalidExceptionMessage = 'MaxSize must be 0 or greater, but got: {0}' + iisShutdownMessage = '(IIS Shutdown)' + cannotUnlockValueTypeExceptionMessage = 'Cannot unlock a [ValueTypes]' + noJwtSignatureForAlgorithmExceptionMessage = 'No JWT signature supplied for {0}.' + maximumConcurrentWebSocketThreadsInvalidExceptionMessage = 'Maximum concurrent WebSocket threads must be >=1 but got: {0}' + acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = 'The Acknowledge message is only supported on SMTP and TCP endpoints.' + failedToConnectToUrlExceptionMessage = 'Failed to connect to URL: {0}' + failedToAcquireMutexOwnershipExceptionMessage = 'Failed to acquire mutex ownership. Mutex name: {0}' + sessionsRequiredForOAuth2WithPKCEExceptionMessage = 'Sessions are required to use OAuth2 with PKCE' + failedToConnectToWebSocketExceptionMessage = 'Failed to connect to websocket: {0}' + unsupportedObjectExceptionMessage = 'Unsupported object' + failedToParseAddressExceptionMessage = "Failed to parse '{0}' as a valid IP/Host:Port address" + mustBeRunningWithAdminPrivilegesExceptionMessage = 'Must be running with administrator privileges to listen on non-localhost addresses.' + specificationMessage = 'Specification' + cacheStorageNotFoundForClearExceptionMessage = "Cache storage with name '{0}' not found when attempting to clear the cache." + restartingServerMessage = 'Restarting server...' + cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = "Cannot supply an interval when the parameter 'Every' is set to None." + unsupportedJwtAlgorithmExceptionMessage = 'The JWT algorithm is not currently supported: {0}' + websocketsNotConfiguredForSignalMessagesExceptionMessage = 'WebSockets have not been configured to send signal messages.' + invalidLogicTypeInHashtableMiddlewareExceptionMessage = 'A Hashtable Middleware supplied has an invalid Logic type. Expected ScriptBlock, but got: {0}' + maximumConcurrentSchedulesLessThanMinimumExceptionMessage = 'Maximum concurrent schedules cannot be less than the minimum of {0} but got: {1}' + failedToAcquireSemaphoreOwnershipExceptionMessage = 'Failed to acquire semaphore ownership. Semaphore name: {0}' + propertiesParameterWithoutNameExceptionMessage = 'The Properties parameters cannot be used if the Property has no name.' + customSessionStorageMethodNotImplementedExceptionMessage = "The custom session storage does not implement the required '{0}()' method." + authenticationMethodDoesNotExistExceptionMessage = 'Authentication method does not exist: {0}' + webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = 'The Webhooks feature is not supported in OpenAPI v3.0.x' + invalidContentTypeForSchemaExceptionMessage = "Invalid 'content-type' found for schema: {0}" + noUnlockScriptBlockForVaultExceptionMessage = "No Unlock ScriptBlock supplied for unlocking the vault '{0}'" + definitionTagMessage = 'Definition {0}:' + failedToOpenRunspacePoolExceptionMessage = 'Failed to open RunspacePool: {0}' + verbNoLogicPassedExceptionMessage = '[Verb] {0}: No logic passed' + noMutexFoundExceptionMessage = "No mutex found called '{0}'" + documentationMessage = 'Documentation' + timerAlreadyDefinedExceptionMessage = '[Timer] {0}: Timer already defined.' + invalidPortExceptionMessage = 'The port cannot be negative: {0}' + viewsFolderNameAlreadyExistsExceptionMessage = 'The Views folder name already exists: {0}' + noNameForWebSocketResetExceptionMessage = 'No Name for a WebSocket to reset supplied.' + mergeDefaultAuthNotInListExceptionMessage = "The MergeDefault Authentication '{0}' is not in the Authentication list supplied." + descriptionRequiredExceptionMessage = 'A Description is required.' + pageNameShouldBeAlphaNumericExceptionMessage = 'The Page name should be a valid AlphaNumeric value: {0}' + defaultValueNotBooleanOrEnumExceptionMessage = 'The default value is not a boolean and is not part of the enum.' + openApiComponentSchemaDoesNotExistExceptionMessage = "The OpenApi component schema {0} doesn't exist." + timerParameterMustBeGreaterThanZeroExceptionMessage = '[Timer] {0}: {1} must be greater than 0.' + taskTimedOutExceptionMessage = 'Task has timed out after {0}ms.' + scheduleStartTimeAfterEndTimeExceptionMessage = '[Schedule] {0}: Cannot have a StartTime after the EndTime' + infoVersionMandatoryMessage = 'info.version is mandatory.' + cannotUnlockNullObjectExceptionMessage = 'Cannot unlock an object that is null.' + nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = 'A non-empty ScriptBlock is required for the Custom authentication scheme.' + validationOfOneOfSchemaNotSupportedExceptionMessage = "Validation of a schema that includes 'oneof' is not supported." + routeParameterCannotBeNullExceptionMessage = "The parameter 'Route' cannot be null." + cacheStorageAlreadyExistsExceptionMessage = "Cache Storage with name '{0}' already exists." + loggingMethodRequiresValidScriptBlockExceptionMessage = "The supplied output Method for the '{0}' Logging method requires a valid ScriptBlock." + scopedVariableAlreadyDefinedExceptionMessage = 'Scoped Variable already defined: {0}' + oauth2RequiresAuthorizeUrlExceptionMessage = 'OAuth2 requires an Authorize URL to be supplied' + pathNotExistExceptionMessage = 'Path does not exist: {0}' + noDomainServerNameForWindowsAdAuthExceptionMessage = 'No domain server name has been supplied for Windows AD authentication' + suppliedDateAfterScheduleEndTimeExceptionMessage = 'Supplied date is after the end time of the schedule at {0}' + wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = 'The * wildcard for Methods is incompatible with the AutoMethods switch.' + cannotSupplyIntervalForYearExceptionMessage = 'Cannot supply interval value for every year.' + missingComponentsMessage = 'Missing component(s)' + invalidStrictTransportSecurityDurationExceptionMessage = 'Invalid Strict-Transport-Security duration supplied: {0}. It should be greater than 0.' + noSecretForHmac512ExceptionMessage = 'No secret supplied for HMAC512 hash.' + daysInMonthExceededExceptionMessage = '{0} only has {1} days, but {2} was supplied.' + nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = 'A non-empty ScriptBlock is required for the Custom logging output method.' + encodingAttributeOnlyAppliesToMultipartExceptionMessage = 'The encoding attribute only applies to multipart and application/x-www-form-urlencoded request bodies.' + suppliedDateBeforeScheduleStartTimeExceptionMessage = 'Supplied date is before the start time of the schedule at {0}' + unlockSecretRequiredExceptionMessage = "An 'UnlockSecret' property is required when using Microsoft.PowerShell.SecretStore" + noLogicPassedForMethodRouteExceptionMessage = '[{0}] {1}: No logic passed.' + bodyParserAlreadyDefinedForContentTypeExceptionMessage = 'A body-parser is already defined for the {0} content-type.' + invalidJwtSuppliedExceptionMessage = 'Invalid JWT supplied.' + sessionsRequiredForFlashMessagesExceptionMessage = 'Sessions are required to use Flash messages.' + outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = 'The supplied output Method for Request Logging requires a valid ScriptBlock.' + semaphoreAlreadyExistsExceptionMessage = 'A semaphore with the following name already exists: {0}' + invalidJwtHeaderAlgorithmSuppliedExceptionMessage = 'Invalid JWT header algorithm supplied.' + oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = "The OAuth2 provider does not support the 'password' grant_type required by using an InnerScheme." + invalidAliasFoundExceptionMessage = 'Invalid {0} alias found: {1}' + scheduleDoesNotExistExceptionMessage = "Schedule '{0}' does not exist." + accessMethodNotExistExceptionMessage = 'Access method does not exist: {0}' + oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = "The OAuth2 provider does not support the 'code' response_type." + untestedPowerShellVersionWarningMessage = '[WARNING] Pode {0} has not been tested on PowerShell {1}, as it was not available when Pode was released.' + secretVaultAlreadyRegisteredAutoImportExceptionMessage = "A Secret Vault with the name '{0}' has already been registered while auto-importing Secret Vaults." + schemeRequiresValidScriptBlockExceptionMessage = "The supplied scheme for the '{0}' authentication validator requires a valid ScriptBlock." + serverLoopingMessage = 'Server looping every {0}secs' + certificateThumbprintsNameSupportedOnWindowsExceptionMessage = 'Certificate Thumbprints/Name are only supported on Windows.' + sseConnectionNameRequiredExceptionMessage = "An SSE connection Name is required, either from -Name or `$WebEvent.Sse.Name" + invalidMiddlewareTypeExceptionMessage = 'One of the Middlewares supplied is an invalid type. Expected either a ScriptBlock or Hashtable, but got: {0}' + noSecretForJwtSignatureExceptionMessage = 'No secret supplied for JWT signature.' + modulePathDoesNotExistExceptionMessage = 'The module path does not exist: {0}' + taskAlreadyDefinedExceptionMessage = '[Task] {0}: Task already defined.' + verbAlreadyDefinedExceptionMessage = '[Verb] {0}: Already defined' + clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = 'Client certificates are only supported on HTTPS endpoints.' + endpointNameNotExistExceptionMessage = "Endpoint with name '{0}' does not exist." + middlewareNoLogicSuppliedExceptionMessage = '[Middleware]: No logic supplied in ScriptBlock.' + scriptBlockRequiredForMergingUsersExceptionMessage = 'A Scriptblock for merging multiple authenticated users into 1 object is required When Valid is All.' + secretVaultAlreadyRegisteredExceptionMessage = "A Secret Vault with the name '{0}' has already been registered{1}." + deprecatedTitleVersionDescriptionWarningMessage = "WARNING: Title, Version, and Description on 'Enable-PodeOpenApi' are deprecated. Please use 'Add-PodeOAInfo' instead." + undefinedOpenApiReferencesMessage = 'Undefined OpenAPI References:' + doneMessage = 'Done' + swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = "This version on Swagger-Editor doesn't support OpenAPI 3.1" + durationMustBeZeroOrGreaterExceptionMessage = 'Duration must be 0 or greater, but got: {0}s' + viewsPathDoesNotExistExceptionMessage = 'The Views path does not exist: {0}' + discriminatorIncompatibleWithAllOfExceptionMessage = "The parameter 'Discriminator' is incompatible with 'allOf'." + noNameForWebSocketSendMessageExceptionMessage = 'No Name for a WebSocket to send message to supplied.' + hashtableMiddlewareNoLogicExceptionMessage = 'A Hashtable Middleware supplied has no Logic defined.' + openApiInfoMessage = 'OpenAPI Info:' + invalidSchemeForAuthValidatorExceptionMessage = "The supplied '{0}' Scheme for the '{1}' authentication validator requires a valid ScriptBlock." + sseFailedToBroadcastExceptionMessage = 'SSE failed to broadcast due to defined SSE broadcast level for {0}: {1}' + adModuleWindowsOnlyExceptionMessage = 'Active Directory module only available on Windows.' + requestLoggingAlreadyEnabledExceptionMessage = 'Request Logging has already been enabled.' + invalidAccessControlMaxAgeDurationExceptionMessage = 'Invalid Access-Control-Max-Age duration supplied: {0}. Should be greater than 0.' +} + diff --git a/src/Locales/es/Pode.psd1 b/src/Locales/es/Pode.psd1 index 2f3513626..b5e89f0e3 100644 --- a/src/Locales/es/Pode.psd1 +++ b/src/Locales/es/Pode.psd1 @@ -1,284 +1,285 @@ -ConvertFrom-StringData -StringData @' -adModuleWindowsOnlyExceptionMessage = El módulo de Active Directory solo está disponible en Windows. -adModuleNotInstalledExceptionMessage = El módulo de Active Directory no está instalado. -secretManagementModuleNotInstalledExceptionMessage = El módulo Microsoft.PowerShell.SecretManagement no está instalado. -secretVaultAlreadyRegisteredAutoImportExceptionMessage = Ya se ha registrado un Bóveda Secreta con el nombre '{0}' al importar automáticamente Bóvedas Secretas. -failedToOpenRunspacePoolExceptionMessage = Error al abrir RunspacePool: {0} -cronExpressionInvalidExceptionMessage = La expresión Cron solo debe consistir en 5 partes: {0} -invalidAliasFoundExceptionMessage = Se encontró un alias {0} no válido: {1} -invalidAtomCharacterExceptionMessage = Carácter atómico no válido: {0} -minValueGreaterThanMaxExceptionMessage = El valor mínimo para {0} no debe ser mayor que el valor máximo. -minValueInvalidExceptionMessage = El valor mínimo '{0}' para {1} no es válido, debe ser mayor o igual a {2} -maxValueInvalidExceptionMessage = El valor máximo '{0}' para {1} no es válido, debe ser menor o igual a {2} -valueOutOfRangeExceptionMessage = El valor '{0}' para {1} no es válido, debe estar entre {2} y {3} -daysInMonthExceededExceptionMessage = {0} solo tiene {1} días, pero se suministró {2}. -nextTriggerCalculationErrorExceptionMessage = Parece que algo salió mal al intentar calcular la siguiente fecha y hora del disparador: {0} -incompatiblePodeDllExceptionMessage = Se ha cargado una versión incompatible existente de Pode.DLL {0}. Se requiere la versión {1}. Abra una nueva sesión de Powershell/pwsh e intente de nuevo. -endpointNotExistExceptionMessage = No existe un punto de conexión con el protocolo '{0}' y la dirección '{1}' o la dirección local '{2}'. -endpointNameNotExistExceptionMessage = No existe un punto de conexión con el nombre '{0}'. -failedToConnectToUrlExceptionMessage = Error al conectar con la URL: {0} -failedToParseAddressExceptionMessage = Error al analizar '{0}' como una dirección IP/Host:Puerto válida -invalidIpAddressExceptionMessage = La dirección IP suministrada no es válida: {0} -invalidPortExceptionMessage = El puerto no puede ser negativo: {0} -pathNotExistExceptionMessage = La ruta no existe: {0} -noSecretForHmac256ExceptionMessage = No se suministró ningún secreto para el hash HMAC256. -noSecretForHmac384ExceptionMessage = No se suministró ningún secreto para el hash HMAC384. -noSecretForHmac512ExceptionMessage = No se suministró ningún secreto para el hash HMAC512. -noSecretForJwtSignatureExceptionMessage = No se suministró ningún secreto para la firma JWT. -noSecretExpectedForNoSignatureExceptionMessage = Se esperaba que no se suministrara ningún secreto para ninguna firma. -unsupportedJwtAlgorithmExceptionMessage = El algoritmo JWT actualmente no es compatible: {0} -invalidBase64JwtExceptionMessage = Valor Base64 no válido encontrado en JWT -invalidJsonJwtExceptionMessage = Valor JSON no válido encontrado en JWT -unsupportedFunctionInServerlessContextExceptionMessage = La función {0} no es compatible en un contexto sin servidor. -invalidPathWildcardOrDirectoryExceptionMessage = La ruta suministrada no puede ser un comodín o un directorio: {0} -invalidExceptionTypeExceptionMessage = La excepción es de un tipo no válido, debe ser WebException o HttpRequestException, pero se obtuvo: {0} -pathToLoadNotFoundExceptionMessage = No se encontró la ruta para cargar {0}: {1} -singleValueForIntervalExceptionMessage = Solo puede suministrar un único valor {0} cuando utiliza intervalos. -scriptErrorExceptionMessage = Error '{0}' en el script {1} {2} (línea {3}) carácter {4} al ejecutar {5} en el objeto {6} '{7}' Clase: {8} ClaseBase: {9} -noScriptBlockSuppliedExceptionMessage = No se suministró ningún ScriptBlock. -iisAspnetcoreTokenMissingExceptionMessage = Falta el token IIS ASPNETCORE_TOKEN. -propertiesParameterWithoutNameExceptionMessage = Los parámetros de propiedades no se pueden usar si la propiedad no tiene nombre. -multiTypePropertiesRequireOpenApi31ExceptionMessage = Las propiedades de tipo múltiple requieren OpenApi versión 3.1 o superior. -openApiVersionPropertyMandatoryExceptionMessage = La propiedad de versión OpenApi es obligatoria. -webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = La función de Webhooks no es compatible con OpenAPI v3.0.x -authenticationMethodDoesNotExistExceptionMessage = El método de autenticación no existe: {0} -unsupportedObjectExceptionMessage = Objeto no compatible -validationOfAnyOfSchemaNotSupportedExceptionMessage = La validación de un esquema que incluye 'anyof' no es compatible. -validationOfOneOfSchemaNotSupportedExceptionMessage = La validación de un esquema que incluye 'oneof' no es compatible. -cannotCreatePropertyWithoutTypeExceptionMessage = No se puede crear la propiedad porque no se ha definido ningún tipo. -headerMustHaveNameInEncodingContextExceptionMessage = El encabezado debe tener un nombre cuando se usa en un contexto de codificación. -descriptionRequiredExceptionMessage = Se requiere una descripción. -openApiDocumentNotCompliantExceptionMessage = El documento OpenAPI no cumple con las normas. -noComponentInDefinitionExceptionMessage = No hay componente del tipo {0} llamado {1} disponible en la definición de {2}. -methodPathAlreadyDefinedExceptionMessage = [{0}] {1}: Ya está definido. -methodPathAlreadyDefinedForUrlExceptionMessage = [{0}] {1}: Ya está definido para {2} -invalidMiddlewareTypeExceptionMessage = Uno de los Middlewares suministrados es de un tipo no válido. Se esperaba ScriptBlock o Hashtable, pero se obtuvo: {0} -hashtableMiddlewareNoLogicExceptionMessage = Un Middleware Hashtable suministrado no tiene lógica definida. -invalidLogicTypeInHashtableMiddlewareExceptionMessage = Un Middleware Hashtable suministrado tiene un tipo de lógica no válido. Se esperaba ScriptBlock, pero se obtuvo: {0} -scopedVariableAlreadyDefinedExceptionMessage = La variable con alcance ya está definida: {0} -valueForUsingVariableNotFoundExceptionMessage = No se pudo encontrar el valor para '`$using:{0}'. -unlockSecretRequiredExceptionMessage = Se requiere una propiedad 'UnlockSecret' al usar Microsoft.PowerShell.SecretStore -unlockSecretButNoScriptBlockExceptionMessage = Se suministró un secreto de desbloqueo para el tipo de bóveda secreta personalizada, pero no se suministró ningún ScriptBlock de desbloqueo. -noUnlockScriptBlockForVaultExceptionMessage = No se suministró ningún ScriptBlock de desbloqueo para desbloquear la bóveda '{0}' -noSetScriptBlockForVaultExceptionMessage = No se suministró ningún ScriptBlock de configuración para actualizar/crear secretos en la bóveda '{0}' -noRemoveScriptBlockForVaultExceptionMessage = No se suministró ningún ScriptBlock de eliminación para eliminar secretos de la bóveda '{0}' -invalidSecretValueTypeExceptionMessage = El valor del secreto es de un tipo no válido. Tipos esperados: String, SecureString, HashTable, Byte[], o PSCredential. Pero se obtuvo: {0} -limitValueCannotBeZeroOrLessExceptionMessage = El valor del límite no puede ser 0 o menor para {0} -secondsValueCannotBeZeroOrLessExceptionMessage = El valor en segundos no puede ser 0 o menor para {0} -failedToCreateOpenSslCertExceptionMessage = Error al crear el certificado openssl: {0} -certificateThumbprintsNameSupportedOnWindowsExceptionMessage = Las huellas digitales/nombres de certificados solo son compatibles con Windows. -noCertificateFoundExceptionMessage = No se encontró ningún certificado en {0}\{1} para '{2}' -runspacePoolFailedToLoadExceptionMessage = {0} RunspacePool no se pudo cargar. -noServiceHandlersDefinedExceptionMessage = No se han definido controladores de servicio. -noSessionToSetOnResponseExceptionMessage = No hay ninguna sesión disponible para configurar en la respuesta. -noSessionToCalculateDataHashExceptionMessage = No hay ninguna sesión disponible para calcular el hash de datos. -moduleOrVersionNotFoundExceptionMessage = No se encontró el módulo o la versión en {0}: {1}@{2} -noSmtpHandlersDefinedExceptionMessage = No se han definido controladores SMTP. -taskTimedOutExceptionMessage = La tarea ha agotado el tiempo después de {0}ms. -verbAlreadyDefinedExceptionMessage = [Verbo] {0}: Ya está definido -verbAlreadyDefinedForUrlExceptionMessage = [Verbo] {0}: Ya está definido para {1} -pathOrScriptBlockRequiredExceptionMessage = Se requiere una ruta o un ScriptBlock para obtener los valores de acceso personalizados. -accessMethodAlreadyDefinedExceptionMessage = Método de acceso ya definido: {0} -accessMethodNotExistForMergingExceptionMessage = El método de acceso no existe para fusionarse: {0} -routeAlreadyContainsCustomAccessExceptionMessage = La ruta '[{0}] {1}' ya contiene acceso personalizado con el nombre '{2}' -accessMethodNotExistExceptionMessage = El método de acceso no existe: {0} -pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = La función de elementos de ruta no es compatible con OpenAPI v3.0.x -nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = Se requiere un ScriptBlock no vacío para el esquema de autenticación personalizado. -oauth2InnerSchemeInvalidExceptionMessage = OAuth2 InnerScheme solo puede ser Basic o Form, pero se obtuvo: {0} -sessionsRequiredForOAuth2WithPKCEExceptionMessage = Se requieren sesiones para usar OAuth2 con PKCE. -oauth2ClientSecretRequiredExceptionMessage = OAuth2 requiere un Client Secret cuando no se usa PKCE. -authMethodAlreadyDefinedExceptionMessage = Método de autenticación ya definido: {0} -invalidSchemeForAuthValidatorExceptionMessage = El esquema '{0}' proporcionado para el validador de autenticación '{1}' requiere un ScriptBlock válido. -sessionsRequiredForSessionPersistentAuthExceptionMessage = Se requieren sesiones para usar la autenticación persistente de sesión. -oauth2RequiresAuthorizeUrlExceptionMessage = OAuth2 requiere que se proporcione una URL de autorización. -authMethodNotExistForMergingExceptionMessage = El método de autenticación no existe para la fusión: {0} -mergeDefaultAuthNotInListExceptionMessage = La autenticación MergeDefault '{0}' no está en la lista de autenticación proporcionada. -defaultAuthNotInListExceptionMessage = La autenticación predeterminada '{0}' no está en la lista de autenticación proporcionada. -scriptBlockRequiredForMergingUsersExceptionMessage = Se requiere un ScriptBlock para fusionar múltiples usuarios autenticados en un solo objeto cuando Valid es All. -noDomainServerNameForWindowsAdAuthExceptionMessage = No se ha proporcionado un nombre de servidor de dominio para la autenticación AD de Windows. -sessionsNotConfiguredExceptionMessage = Las sesiones no se han configurado. -windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = El soporte de autenticación local de Windows es solo para Windows. -iisAuthSupportIsForWindowsOnlyExceptionMessage = El soporte de autenticación IIS es solo para Windows. -noAlgorithmInJwtHeaderExceptionMessage = No se proporcionó un algoritmo en el encabezado JWT. -invalidJwtSuppliedExceptionMessage = JWT proporcionado no válido. -invalidJwtHeaderAlgorithmSuppliedExceptionMessage = Algoritmo del encabezado JWT proporcionado no válido. -noJwtSignatureForAlgorithmExceptionMessage = No se proporcionó una firma JWT para {0}. -expectedNoJwtSignatureSuppliedExceptionMessage = No se esperaba que se proporcionara una firma JWT. -invalidJwtSignatureSuppliedExceptionMessage = Firma JWT proporcionada no válida. -jwtExpiredExceptionMessage = El JWT ha expirado. -jwtNotYetValidExceptionMessage = El JWT aún no es válido. -snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = Los Snapins solo son compatibles con Windows PowerShell. -userFileDoesNotExistExceptionMessage = El archivo de usuario no existe: {0} -schemeRequiresValidScriptBlockExceptionMessage = El esquema proporcionado para el validador de autenticación '{0}' requiere un ScriptBlock válido. -oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = El proveedor de OAuth2 no admite el tipo de respuesta 'code'. -oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = El proveedor de OAuth2 no admite el tipo de concesión 'password' requerido al usar un InnerScheme. -eventAlreadyRegisteredExceptionMessage = Evento {0} ya registrado: {1} -noEventRegisteredExceptionMessage = No hay evento {0} registrado: {1} -sessionsRequiredForFlashMessagesExceptionMessage = Se requieren sesiones para usar mensajes Flash. -eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = El registro en el Visor de Eventos solo se admite en Windows. -nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = Se requiere un ScriptBlock no vacío para el método de salida de registro personalizado. -requestLoggingAlreadyEnabledExceptionMessage = El registro de solicitudes ya está habilitado. -outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = El método de salida proporcionado para el registro de solicitudes requiere un ScriptBlock válido. -errorLoggingAlreadyEnabledExceptionMessage = El registro de errores ya está habilitado. -nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = Se requiere un ScriptBlock no vacío para el método de registro. -csrfMiddlewareNotInitializedExceptionMessage = El Middleware CSRF no se ha inicializado. -sessionsRequiredForCsrfExceptionMessage = Se requieren sesiones para usar CSRF a menos que desee usar cookies. -middlewareNoLogicSuppliedExceptionMessage = [Middleware]: No se suministró lógica en el ScriptBlock. -parameterHasNoNameExceptionMessage = El parámetro no tiene nombre. Asigne un nombre a este componente usando el parámetro 'Name'. -reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = La característica del componente reutilizable 'pathItems' no está disponible en OpenAPI v3.0. -noPropertiesMutuallyExclusiveExceptionMessage = El parámetro 'NoProperties' es mutuamente excluyente con 'Properties', 'MinProperties' y 'MaxProperties'. -discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = El parámetro 'DiscriminatorMapping' solo se puede usar cuando está presente la propiedad 'DiscriminatorProperty'. -discriminatorIncompatibleWithAllOfExceptionMessage = El parámetro 'Discriminator' es incompatible con 'allOf'. -typeCanOnlyBeAssociatedWithObjectExceptionMessage = El tipo {0} solo se puede asociar con un Objeto. -showPodeGuiOnlyAvailableOnWindowsExceptionMessage = Show-PodeGui actualmente solo está disponible para Windows PowerShell y PowerShell 7+ en Windows. -nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = Se requiere un nombre para el endpoint si se proporciona el parámetro RedirectTo. -clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = Los certificados de cliente solo son compatibles con endpoints HTTPS. -explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = El modo TLS explícito solo es compatible con endpoints SMTPS y TCPS. -acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = El mensaje de reconocimiento solo es compatible con endpoints SMTP y TCP. -crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = La verificación de final de mensaje CRLF solo es compatible con endpoints TCP. -mustBeRunningWithAdminPrivilegesExceptionMessage = Debe estar ejecutándose con privilegios de administrador para escuchar en direcciones que no sean localhost. -certificateSuppliedForNonHttpsWssEndpointExceptionMessage = Certificado proporcionado para un endpoint que no es HTTPS/WSS. -websocketsNotConfiguredForSignalMessagesExceptionMessage = WebSockets no están configurados para enviar mensajes de señal. -noPathSuppliedForRouteExceptionMessage = No se proporcionó una ruta para la Ruta. -accessRequiresAuthenticationOnRoutesExceptionMessage = El acceso requiere autenticación en las rutas. -accessMethodDoesNotExistExceptionMessage = El método de acceso no existe: {0}. -routeParameterNeedsValidScriptblockExceptionMessage = El parámetro Route necesita un ScriptBlock válido y no vacío. -noCommandsSuppliedToConvertToRoutesExceptionMessage = No se proporcionaron comandos para convertir a Rutas. -nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = Se requiere un ScriptBlock no vacío para crear una Ruta de Página. -sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSE solo se puede configurar en solicitudes con un valor de encabezado Accept de text/event-stream. -sseConnectionNameRequiredExceptionMessage = Se requiere un nombre de conexión SSE, ya sea de -Name o $`$WebEvent.Sse.Name -sseFailedToBroadcastExceptionMessage = SSE no pudo transmitir debido al nivel de transmisión SSE definido para {0}: {1}. -podeNotInitializedExceptionMessage = Pode no se ha inicializado. -invalidTaskTypeExceptionMessage = El tipo de tarea no es válido, se esperaba [System.Threading.Tasks.Task] o [hashtable]. -cannotLockValueTypeExceptionMessage = No se puede bloquear un [ValueTypes]. -cannotLockNullObjectExceptionMessage = No se puede bloquear un objeto nulo. -failedToAcquireLockExceptionMessage = No se pudo adquirir un bloqueo en el objeto. -cannotUnlockValueTypeExceptionMessage = No se puede desbloquear un [ValueTypes]. -cannotUnlockNullObjectExceptionMessage = No se puede desbloquear un objeto nulo. -sessionMiddlewareAlreadyInitializedExceptionMessage = El Middleware de Sesión ya se ha inicializado. -customSessionStorageMethodNotImplementedExceptionMessage = El almacenamiento de sesión personalizado no implementa el método requerido '{0}()'. -secretRequiredForCustomSessionStorageExceptionMessage = Se requiere un secreto cuando se utiliza el almacenamiento de sesión personalizado. -noSessionAvailableToSaveExceptionMessage = No hay sesión disponible para guardar. -cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = No se puede proporcionar un intervalo cuando el parámetro 'Every' está configurado en None. -cannotSupplyIntervalForQuarterExceptionMessage = No se puede proporcionar un valor de intervalo para cada trimestre. -cannotSupplyIntervalForYearExceptionMessage = No se puede proporcionar un valor de intervalo para cada año. -secretVaultAlreadyRegisteredExceptionMessage = Un Cofre de Secretos con el nombre '{0}' ya ha sido registrado{1}. -secretVaultUnlockExpiryDateInPastExceptionMessage = La fecha de expiración para desbloquear el Cofre de Secretos está en el pasado (UTC): {0} -secretAlreadyMountedExceptionMessage = Un Secreto con el nombre '{0}' ya ha sido montado. -credentialsPassedWildcardForHeadersLiteralExceptionMessage = Cuando se pasan las Credenciales, el comodín * para los Encabezados se tomará como una cadena literal y no como un comodín. -wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = El comodín * para los Encabezados es incompatible con el interruptor AutoHeaders. -wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = El comodín * para los Métodos es incompatible con el interruptor AutoMethods. -invalidAccessControlMaxAgeDurationExceptionMessage = Duración inválida para Access-Control-Max-Age proporcionada: {0}. Debe ser mayor que 0. -noNameForWebSocketDisconnectExceptionMessage = No se proporcionó ningún nombre para desconectar el WebSocket. -noNameForWebSocketRemoveExceptionMessage = No se proporcionó ningún nombre para eliminar el WebSocket. -noNameForWebSocketSendMessageExceptionMessage = No se proporcionó ningún nombre para enviar un mensaje al WebSocket. -noSecretNamedMountedExceptionMessage = No se ha montado ningún Secreto con el nombre '{0}'. -noNameForWebSocketResetExceptionMessage = No se proporcionó ningún nombre para restablecer el WebSocket. -schemaValidationRequiresPowerShell610ExceptionMessage = La validación del esquema requiere PowerShell versión 6.1.0 o superior. -routeParameterCannotBeNullExceptionMessage = El parámetro 'Route' no puede ser nulo. -encodingAttributeOnlyAppliesToMultipartExceptionMessage = El atributo de codificación solo se aplica a cuerpos de solicitud multipart y application/x-www-form-urlencoded. -testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = 'Test-PodeOAComponentSchema' necesita ser habilitado usando 'Enable-PodeOpenApi -EnableSchemaValidation' -openApiComponentSchemaDoesNotExistExceptionMessage = El esquema del componente OpenApi {0} no existe. -openApiParameterRequiresNameExceptionMessage = El parámetro OpenApi requiere un nombre especificado. -openApiLicenseObjectRequiresNameExceptionMessage = El objeto OpenAPI 'license' requiere la propiedad 'name'. Use el parámetro -LicenseName. -parametersValueOrExternalValueMandatoryExceptionMessage = Los parámetros 'Value' o 'ExternalValue' son obligatorios. -parametersMutuallyExclusiveExceptionMessage = Los parámetros '{0}' y '{1}' son mutuamente excluyentes. -maximumConcurrentWebSocketThreadsInvalidExceptionMessage = El número máximo de hilos concurrentes de WebSocket debe ser >=1, pero se obtuvo: {0} -maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = El número máximo de hilos concurrentes de WebSocket no puede ser menor que el mínimo de {0}, pero se obtuvo: {1} -alreadyConnectedToWebSocketExceptionMessage = Ya conectado al WebSocket con el nombre '{0}' -failedToConnectToWebSocketExceptionMessage = Error al conectar con el WebSocket: {0} -verbNoLogicPassedExceptionMessage = [Verbo] {0}: No se pasó ninguna lógica -scriptPathDoesNotExistExceptionMessage = La ruta del script no existe: {0} -failedToImportModuleExceptionMessage = Error al importar el módulo: {0} -modulePathDoesNotExistExceptionMessage = La ruta del módulo no existe: {0} -defaultValueNotBooleanOrEnumExceptionMessage = El valor predeterminado no es un booleano y no forma parte del enum. -propertiesTypeObjectAssociationExceptionMessage = Solo las propiedades de tipo Objeto pueden estar asociadas con {0}. -invalidContentTypeForSchemaExceptionMessage = 'content-type' inválido encontrado para el esquema: {0} -openApiRequestStyleInvalidForParameterExceptionMessage = El estilo de la solicitud OpenApi no puede ser {0} para un parámetro {1}. -pathParameterRequiresRequiredSwitchExceptionMessage = Si la ubicación del parámetro es 'Path', el parámetro switch 'Required' es obligatorio. -operationIdMustBeUniqueForArrayExceptionMessage = OperationID: {0} debe ser único y no puede aplicarse a un array. -operationIdMustBeUniqueExceptionMessage = OperationID: {0} debe ser único. -noOpenApiUrlSuppliedExceptionMessage = No se proporcionó URL de OpenAPI para {0}. -noTitleSuppliedForPageExceptionMessage = No se proporcionó título para la página {0}. -noRoutePathSuppliedForPageExceptionMessage = No se proporcionó ruta de acceso para la página {0}. -swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = Esta versión de Swagger-Editor no admite OpenAPI 3.1 -rapidPdfDoesNotSupportOpenApi31ExceptionMessage = La herramienta de documentación RapidPdf no admite OpenAPI 3.1 -definitionTagNotDefinedExceptionMessage = La etiqueta de definición {0} no está definida. -scopedVariableNotFoundExceptionMessage = Variable de alcance no encontrada: {0} -noSecretVaultRegisteredExceptionMessage = No se ha registrado un Cofre de Secretos con el nombre '{0}'. -invalidStrictTransportSecurityDurationExceptionMessage = Duración de Strict-Transport-Security no válida proporcionada: {0}. Debe ser mayor que 0. -durationMustBeZeroOrGreaterExceptionMessage = La duración debe ser igual o mayor a 0, pero se obtuvo: {0}s -taskAlreadyDefinedExceptionMessage = [Tarea] {0}: Tarea ya definida. -maximumConcurrentTasksInvalidExceptionMessage = El número máximo de tareas concurrentes debe ser >=1, pero se obtuvo: {0} -maximumConcurrentTasksLessThanMinimumExceptionMessage = El número máximo de tareas concurrentes no puede ser menor que el mínimo de {0}, pero se obtuvo: {1} -taskDoesNotExistExceptionMessage = La tarea '{0}' no existe. -cacheStorageNotFoundForRetrieveExceptionMessage = No se encontró el almacenamiento en caché con el nombre '{0}' al intentar recuperar el elemento en caché '{1}'. -cacheStorageNotFoundForSetExceptionMessage = No se encontró el almacenamiento en caché con el nombre '{0}' al intentar establecer el elemento en caché '{1}'. -cacheStorageNotFoundForExistsExceptionMessage = No se encontró el almacenamiento en caché con el nombre '{0}' al intentar comprobar si el elemento en caché '{1}' existe. -cacheStorageNotFoundForRemoveExceptionMessage = No se encontró el almacenamiento en caché con el nombre '{0}' al intentar eliminar el elemento en caché '{1}'. -cacheStorageNotFoundForClearExceptionMessage = No se encontró el almacenamiento en caché con el nombre '{0}' al intentar vaciar la caché. -cacheStorageAlreadyExistsExceptionMessage = Ya existe un almacenamiento en caché con el nombre '{0}'. -pathToIconForGuiDoesNotExistExceptionMessage = La ruta del icono para la GUI no existe: {0} -invalidHostnameSuppliedExceptionMessage = Nombre de host no válido proporcionado: {0} -endpointAlreadyDefinedExceptionMessage = Ya se ha definido un punto de conexión llamado '{0}'. -certificateExpiredExceptionMessage = El certificado '{0}' ha expirado: {1} -endpointNotDefinedForRedirectingExceptionMessage = No se ha definido un punto de conexión llamado '{0}' para la redirección. -fileWatcherAlreadyDefinedExceptionMessage = Un Observador de Archivos llamado '{0}' ya ha sido definido. -handlerAlreadyDefinedExceptionMessage = [{0}] {1}: Manejador ya definido. -maxDaysInvalidExceptionMessage = MaxDays debe ser igual o mayor que 0, pero se obtuvo: {0} -maxSizeInvalidExceptionMessage = MaxSize debe ser igual o mayor que 0, pero se obtuvo: {0} -loggingMethodAlreadyDefinedExceptionMessage = Método de registro ya definido: {0} -loggingMethodRequiresValidScriptBlockExceptionMessage = El método de salida proporcionado para el método de registro '{0}' requiere un ScriptBlock válido. -csrfCookieRequiresSecretExceptionMessage = Al usar cookies para CSRF, se requiere un Secreto. Puedes proporcionar un Secreto o establecer el secreto global de la Cookie - (Set-PodeCookieSecret '' -Global) -bodyParserAlreadyDefinedForContentTypeExceptionMessage = Un analizador de cuerpo ya está definido para el tipo de contenido {0}. -middlewareAlreadyDefinedExceptionMessage = [Middleware] {0}: Middleware ya definido. -parameterNotSuppliedInRequestExceptionMessage = No se ha proporcionado un parámetro llamado '{0}' en la solicitud o no hay datos disponibles. -noDataForFileUploadedExceptionMessage = No se han subido datos para el archivo '{0}' en la solicitud. -viewsFolderNameAlreadyExistsExceptionMessage = El nombre de la carpeta Views ya existe: {0} -viewsPathDoesNotExistExceptionMessage = La ruta de las Views no existe: {0} -timerAlreadyDefinedExceptionMessage = [Temporizador] {0}: Temporizador ya definido. -timerParameterMustBeGreaterThanZeroExceptionMessage = [Temporizador] {0}: {1} debe ser mayor que 0. -timerDoesNotExistExceptionMessage = El temporizador '{0}' no existe. -mutexAlreadyExistsExceptionMessage = Ya existe un mutex con el siguiente nombre: {0} -noMutexFoundExceptionMessage = No se encontró ningún mutex llamado '{0}' -failedToAcquireMutexOwnershipExceptionMessage = No se pudo adquirir la propiedad del mutex. Nombre del mutex: {0} -semaphoreAlreadyExistsExceptionMessage = Ya existe un semáforo con el siguiente nombre: {0} -failedToAcquireSemaphoreOwnershipExceptionMessage = No se pudo adquirir la propiedad del semáforo. Nombre del semáforo: {0} -scheduleAlreadyDefinedExceptionMessage = [Horario] {0}: Horario ya definido. -scheduleCannotHaveNegativeLimitExceptionMessage = [Horario] {0}: No puede tener un límite negativo. -scheduleEndTimeMustBeInFutureExceptionMessage = [Horario] {0}: El valor de EndTime debe estar en el futuro. -scheduleStartTimeAfterEndTimeExceptionMessage = [Horario] {0}: No puede tener un 'StartTime' después del 'EndTime' -maximumConcurrentSchedulesInvalidExceptionMessage = Los horarios simultáneos máximos deben ser >=1 pero se obtuvo: {0} -maximumConcurrentSchedulesLessThanMinimumExceptionMessage = Los horarios simultáneos máximos no pueden ser inferiores al mínimo de {0} pero se obtuvo: {1} -scheduleDoesNotExistExceptionMessage = El horario '{0}' no existe. -suppliedDateBeforeScheduleStartTimeExceptionMessage = La fecha proporcionada es anterior a la hora de inicio del horario en {0} -suppliedDateAfterScheduleEndTimeExceptionMessage = La fecha proporcionada es posterior a la hora de finalización del horario en {0} -noSemaphoreFoundExceptionMessage = No se encontró ningún semáforo llamado '{0}' -noLogicPassedForRouteExceptionMessage = No se pasó lógica para la Ruta: {0} -noPathSuppliedForStaticRouteExceptionMessage = [{0}]: No se proporcionó una ruta para la Ruta estática. -sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: La ruta de origen proporcionada para la Ruta estática no existe: {2} -noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: No se pasó lógica. -moduleDoesNotContainFunctionExceptionMessage = El módulo {0} no contiene la función {1} para convertir en una Ruta. -pageNameShouldBeAlphaNumericExceptionMessage = El nombre de la página debe ser un valor alfanumérico válido: {0} -filesHaveChangedMessage = Los siguientes archivos han cambiado: -multipleEndpointsForGuiMessage = Se han definido múltiples puntos de conexión, solo se usará el primero para la GUI. -openingGuiMessage = Abriendo la GUI. -listeningOnEndpointsMessage = Escuchando en los siguientes {0} punto(s) de conexión [{1} hilo(s)]: -specificationMessage = Especificación -documentationMessage = Documentación -restartingServerMessage = Reiniciando el servidor... -doneMessage = Hecho -deprecatedTitleVersionDescriptionWarningMessage = ADVERTENCIA: Título, Versión y Descripción en 'Enable-PodeOpenApi' están obsoletos. Utilice 'Add-PodeOAInfo' en su lugar. -undefinedOpenApiReferencesMessage = Referencias OpenAPI indefinidas: -definitionTagMessage = Definición {0}: -openApiGenerationDocumentErrorMessage = Error en el documento de generación de OpenAPI: -infoTitleMandatoryMessage = info.title es obligatorio. -infoVersionMandatoryMessage = info.version es obligatorio. -missingComponentsMessage = Componente(s) faltante(s) -openApiInfoMessage = Información OpenAPI: -serverLoopingMessage = Bucle del servidor cada {0} segundos -iisShutdownMessage = (Apagado de IIS) -terminatingMessage = Terminando... -eolPowerShellWarningMessage = [ADVERTENCIA] Pode {0} no se ha probado en PowerShell {1}, ya que está en fin de vida. -untestedPowerShellVersionWarningMessage = [ADVERTENCIA] Pode {0} no se ha probado en PowerShell {1}, ya que no estaba disponible cuando se lanzó Pode. -'@ \ No newline at end of file +@{ + schemaValidationRequiresPowerShell610ExceptionMessage = 'La validación del esquema requiere PowerShell versión 6.1.0 o superior.' + pathOrScriptBlockRequiredExceptionMessage = 'Se requiere una ruta o un ScriptBlock para obtener los valores de acceso personalizados.' + operationIdMustBeUniqueForArrayExceptionMessage = 'OperationID: {0} debe ser único y no puede aplicarse a un array.' + endpointNotDefinedForRedirectingExceptionMessage = "No se ha definido un punto de conexión llamado '{0}' para la redirección." + filesHaveChangedMessage = 'Los siguientes archivos han cambiado:' + iisAspnetcoreTokenMissingExceptionMessage = 'Falta el token IIS ASPNETCORE_TOKEN.' + minValueGreaterThanMaxExceptionMessage = 'El valor mínimo para {0} no debe ser mayor que el valor máximo.' + noLogicPassedForRouteExceptionMessage = 'No se pasó lógica para la Ruta: {0}' + scriptPathDoesNotExistExceptionMessage = 'La ruta del script no existe: {0}' + mutexAlreadyExistsExceptionMessage = 'Ya existe un mutex con el siguiente nombre: {0}' + listeningOnEndpointsMessage = 'Escuchando en los siguientes {0} punto(s) de conexión [{1} hilo(s)]:' + unsupportedFunctionInServerlessContextExceptionMessage = 'La función {0} no es compatible en un contexto sin servidor.' + expectedNoJwtSignatureSuppliedExceptionMessage = 'No se esperaba que se proporcionara una firma JWT.' + secretAlreadyMountedExceptionMessage = "Un Secreto con el nombre '{0}' ya ha sido montado." + failedToAcquireLockExceptionMessage = 'No se pudo adquirir un bloqueo en el objeto.' + noPathSuppliedForStaticRouteExceptionMessage = '[{0}]: No se proporcionó una ruta para la Ruta estática.' + invalidHostnameSuppliedExceptionMessage = 'Nombre de host no válido proporcionado: {0}' + authMethodAlreadyDefinedExceptionMessage = 'Método de autenticación ya definido: {0}' + csrfCookieRequiresSecretExceptionMessage = "Al usar cookies para CSRF, se requiere un Secreto. Puedes proporcionar un Secreto o establecer el secreto global de la Cookie - (Set-PodeCookieSecret '' -Global)" + nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = 'Se requiere un ScriptBlock no vacío para crear una Ruta de Página.' + noPropertiesMutuallyExclusiveExceptionMessage = "El parámetro 'NoProperties' es mutuamente excluyente con 'Properties', 'MinProperties' y 'MaxProperties'." + incompatiblePodeDllExceptionMessage = 'Se ha cargado una versión incompatible existente de Pode.DLL {0}. Se requiere la versión {1}. Abra una nueva sesión de Powershell/pwsh e intente de nuevo.' + accessMethodDoesNotExistExceptionMessage = 'El método de acceso no existe: {0}.' + scheduleAlreadyDefinedExceptionMessage = '[Horario] {0}: Horario ya definido.' + secondsValueCannotBeZeroOrLessExceptionMessage = 'El valor en segundos no puede ser 0 o menor para {0}' + pathToLoadNotFoundExceptionMessage = 'No se encontró la ruta para cargar {0}: {1}' + failedToImportModuleExceptionMessage = 'Error al importar el módulo: {0}' + endpointNotExistExceptionMessage = "No existe un punto de conexión con el protocolo '{0}' y la dirección '{1}' o la dirección local '{2}'." + terminatingMessage = 'Terminando...' + noCommandsSuppliedToConvertToRoutesExceptionMessage = 'No se proporcionaron comandos para convertir a Rutas.' + invalidTaskTypeExceptionMessage = 'El tipo de tarea no es válido, se esperaba [System.Threading.Tasks.Task] o [hashtable].' + alreadyConnectedToWebSocketExceptionMessage = "Ya conectado al WebSocket con el nombre '{0}'" + crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = 'La verificación de final de mensaje CRLF solo es compatible con endpoints TCP.' + testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = "'Test-PodeOAComponentSchema' necesita ser habilitado usando 'Enable-PodeOpenApi -EnableSchemaValidation'" + adModuleNotInstalledExceptionMessage = 'El módulo de Active Directory no está instalado.' + cronExpressionInvalidExceptionMessage = 'La expresión Cron solo debe consistir en 5 partes: {0}' + noSessionToSetOnResponseExceptionMessage = 'No hay ninguna sesión disponible para configurar en la respuesta.' + valueOutOfRangeExceptionMessage = "El valor '{0}' para {1} no es válido, debe estar entre {2} y {3}" + loggingMethodAlreadyDefinedExceptionMessage = 'Método de registro ya definido: {0}' + noSecretForHmac256ExceptionMessage = 'No se suministró ningún secreto para el hash HMAC256.' + eolPowerShellWarningMessage = '[ADVERTENCIA] Pode {0} no se ha probado en PowerShell {1}, ya que está en fin de vida.' + runspacePoolFailedToLoadExceptionMessage = '{0} RunspacePool no se pudo cargar.' + noEventRegisteredExceptionMessage = 'No hay evento {0} registrado: {1}' + scheduleCannotHaveNegativeLimitExceptionMessage = '[Horario] {0}: No puede tener un límite negativo.' + openApiRequestStyleInvalidForParameterExceptionMessage = 'El estilo de la solicitud OpenApi no puede ser {0} para un parámetro {1}.' + openApiDocumentNotCompliantExceptionMessage = 'El documento OpenAPI no cumple con las normas.' + taskDoesNotExistExceptionMessage = "La tarea '{0}' no existe." + scopedVariableNotFoundExceptionMessage = 'Variable de alcance no encontrada: {0}' + sessionsRequiredForCsrfExceptionMessage = 'Se requieren sesiones para usar CSRF a menos que desee usar cookies.' + nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = 'Se requiere un ScriptBlock no vacío para el método de registro.' + credentialsPassedWildcardForHeadersLiteralExceptionMessage = 'Cuando se pasan las Credenciales, el comodín * para los Encabezados se tomará como una cadena literal y no como un comodín.' + podeNotInitializedExceptionMessage = 'Pode no se ha inicializado.' + multipleEndpointsForGuiMessage = 'Se han definido múltiples puntos de conexión, solo se usará el primero para la GUI.' + operationIdMustBeUniqueExceptionMessage = 'OperationID: {0} debe ser único.' + invalidJsonJwtExceptionMessage = 'Valor JSON no válido encontrado en JWT' + noAlgorithmInJwtHeaderExceptionMessage = 'No se proporcionó un algoritmo en el encabezado JWT.' + openApiVersionPropertyMandatoryExceptionMessage = 'La propiedad de versión OpenApi es obligatoria.' + limitValueCannotBeZeroOrLessExceptionMessage = 'El valor del límite no puede ser 0 o menor para {0}' + timerDoesNotExistExceptionMessage = "El temporizador '{0}' no existe." + openApiGenerationDocumentErrorMessage = 'Error en el documento de generación de OpenAPI:' + routeAlreadyContainsCustomAccessExceptionMessage = "La ruta '[{0}] {1}' ya contiene acceso personalizado con el nombre '{2}'" + maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = 'El número máximo de hilos concurrentes de WebSocket no puede ser menor que el mínimo de {0}, pero se obtuvo: {1}' + middlewareAlreadyDefinedExceptionMessage = '[Middleware] {0}: Middleware ya definido.' + invalidAtomCharacterExceptionMessage = 'Carácter atómico no válido: {0}' + cacheStorageNotFoundForRetrieveExceptionMessage = "No se encontró el almacenamiento en caché con el nombre '{0}' al intentar recuperar el elemento en caché '{1}'." + headerMustHaveNameInEncodingContextExceptionMessage = 'El encabezado debe tener un nombre cuando se usa en un contexto de codificación.' + moduleDoesNotContainFunctionExceptionMessage = 'El módulo {0} no contiene la función {1} para convertir en una Ruta.' + pathToIconForGuiDoesNotExistExceptionMessage = 'La ruta del icono para la GUI no existe: {0}' + noTitleSuppliedForPageExceptionMessage = 'No se proporcionó título para la página {0}.' + certificateSuppliedForNonHttpsWssEndpointExceptionMessage = 'Certificado proporcionado para un endpoint que no es HTTPS/WSS.' + cannotLockNullObjectExceptionMessage = 'No se puede bloquear un objeto nulo.' + showPodeGuiOnlyAvailableOnWindowsExceptionMessage = 'Show-PodeGui actualmente solo está disponible para Windows PowerShell y PowerShell 7+ en Windows.' + unlockSecretButNoScriptBlockExceptionMessage = 'Se suministró un secreto de desbloqueo para el tipo de bóveda secreta personalizada, pero no se suministró ningún ScriptBlock de desbloqueo.' + invalidIpAddressExceptionMessage = 'La dirección IP suministrada no es válida: {0}' + maxDaysInvalidExceptionMessage = 'MaxDays debe ser igual o mayor que 0, pero se obtuvo: {0}' + noRemoveScriptBlockForVaultExceptionMessage = "No se suministró ningún ScriptBlock de eliminación para eliminar secretos de la bóveda '{0}'" + noSecretExpectedForNoSignatureExceptionMessage = 'Se esperaba que no se suministrara ningún secreto para ninguna firma.' + noCertificateFoundExceptionMessage = "No se encontró ningún certificado en {0}{1} para '{2}'" + minValueInvalidExceptionMessage = "El valor mínimo '{0}' para {1} no es válido, debe ser mayor o igual a {2}" + accessRequiresAuthenticationOnRoutesExceptionMessage = 'El acceso requiere autenticación en las rutas.' + noSecretForHmac384ExceptionMessage = 'No se suministró ningún secreto para el hash HMAC384.' + windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = 'El soporte de autenticación local de Windows es solo para Windows.' + definitionTagNotDefinedExceptionMessage = 'La etiqueta de definición {0} no está definida.' + noComponentInDefinitionExceptionMessage = 'No hay componente del tipo {0} llamado {1} disponible en la definición de {2}.' + noSmtpHandlersDefinedExceptionMessage = 'No se han definido controladores SMTP.' + sessionMiddlewareAlreadyInitializedExceptionMessage = 'El Middleware de Sesión ya se ha inicializado.' + reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = "La característica del componente reutilizable 'pathItems' no está disponible en OpenAPI v3.0." + wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = 'El comodín * para los Encabezados es incompatible con el interruptor AutoHeaders.' + noDataForFileUploadedExceptionMessage = "No se han subido datos para el archivo '{0}' en la solicitud." + sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = 'SSE solo se puede configurar en solicitudes con un valor de encabezado Accept de text/event-stream.' + noSessionAvailableToSaveExceptionMessage = 'No hay sesión disponible para guardar.' + pathParameterRequiresRequiredSwitchExceptionMessage = "Si la ubicación del parámetro es 'Path', el parámetro switch 'Required' es obligatorio." + noOpenApiUrlSuppliedExceptionMessage = 'No se proporcionó URL de OpenAPI para {0}.' + maximumConcurrentSchedulesInvalidExceptionMessage = 'Los horarios simultáneos máximos deben ser >=1 pero se obtuvo: {0}' + snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = 'Los Snapins solo son compatibles con Windows PowerShell.' + eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = 'El registro en el Visor de Eventos solo se admite en Windows.' + parametersMutuallyExclusiveExceptionMessage = "Los parámetros '{0}' y '{1}' son mutuamente excluyentes." + pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = 'La función de elementos de ruta no es compatible con OpenAPI v3.0.x' + openApiParameterRequiresNameExceptionMessage = 'El parámetro OpenApi requiere un nombre especificado.' + maximumConcurrentTasksLessThanMinimumExceptionMessage = 'El número máximo de tareas concurrentes no puede ser menor que el mínimo de {0}, pero se obtuvo: {1}' + noSemaphoreFoundExceptionMessage = "No se encontró ningún semáforo llamado '{0}'" + singleValueForIntervalExceptionMessage = 'Solo puede suministrar un único valor {0} cuando utiliza intervalos.' + jwtNotYetValidExceptionMessage = 'El JWT aún no es válido.' + verbAlreadyDefinedForUrlExceptionMessage = '[Verbo] {0}: Ya está definido para {1}' + noSecretNamedMountedExceptionMessage = "No se ha montado ningún Secreto con el nombre '{0}'." + moduleOrVersionNotFoundExceptionMessage = 'No se encontró el módulo o la versión en {0}: {1}@{2}' + noScriptBlockSuppliedExceptionMessage = 'No se suministró ningún ScriptBlock.' + noSecretVaultRegisteredExceptionMessage = "No se ha registrado un Cofre de Secretos con el nombre '{0}'." + nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = 'Se requiere un nombre para el endpoint si se proporciona el parámetro RedirectTo.' + openApiLicenseObjectRequiresNameExceptionMessage = "El objeto OpenAPI 'license' requiere la propiedad 'name'. Use el parámetro -LicenseName." + sourcePathDoesNotExistForStaticRouteExceptionMessage = '[{0})] {1}: La ruta de origen proporcionada para la Ruta estática no existe: {2}' + noNameForWebSocketDisconnectExceptionMessage = 'No se proporcionó ningún nombre para desconectar el WebSocket.' + certificateExpiredExceptionMessage = "El certificado '{0}' ha expirado: {1}" + secretVaultUnlockExpiryDateInPastExceptionMessage = 'La fecha de expiración para desbloquear el Cofre de Secretos está en el pasado (UTC): {0}' + invalidExceptionTypeExceptionMessage = 'La excepción es de un tipo no válido, debe ser WebException o HttpRequestException, pero se obtuvo: {0}' + invalidSecretValueTypeExceptionMessage = 'El valor del secreto es de un tipo no válido. Tipos esperados: String, SecureString, HashTable, Byte[], o PSCredential. Pero se obtuvo: {0}' + explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = 'El modo TLS explícito solo es compatible con endpoints SMTPS y TCPS.' + discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = "El parámetro 'DiscriminatorMapping' solo se puede usar cuando está presente la propiedad 'DiscriminatorProperty'." + scriptErrorExceptionMessage = "Error '{0}' en el script {1} {2} (línea {3}) carácter {4} al ejecutar {5} en el objeto {6} '{7}' Clase: {8} ClaseBase: {9}" + cannotSupplyIntervalForQuarterExceptionMessage = 'No se puede proporcionar un valor de intervalo para cada trimestre.' + scheduleEndTimeMustBeInFutureExceptionMessage = '[Horario] {0}: El valor de EndTime debe estar en el futuro.' + invalidJwtSignatureSuppliedExceptionMessage = 'Firma JWT proporcionada no válida.' + noSetScriptBlockForVaultExceptionMessage = "No se suministró ningún ScriptBlock de configuración para actualizar/crear secretos en la bóveda '{0}'" + accessMethodNotExistForMergingExceptionMessage = 'El método de acceso no existe para fusionarse: {0}' + defaultAuthNotInListExceptionMessage = "La autenticación predeterminada '{0}' no está en la lista de autenticación proporcionada." + parameterHasNoNameExceptionMessage = "El parámetro no tiene nombre. Asigne un nombre a este componente usando el parámetro 'Name'." + methodPathAlreadyDefinedForUrlExceptionMessage = '[{0}] {1}: Ya está definido para {2}' + fileWatcherAlreadyDefinedExceptionMessage = "Un Observador de Archivos llamado '{0}' ya ha sido definido." + noServiceHandlersDefinedExceptionMessage = 'No se han definido controladores de servicio.' + secretRequiredForCustomSessionStorageExceptionMessage = 'Se requiere un secreto cuando se utiliza el almacenamiento de sesión personalizado.' + secretManagementModuleNotInstalledExceptionMessage = 'El módulo Microsoft.PowerShell.SecretManagement no está instalado.' + noPathSuppliedForRouteExceptionMessage = 'No se proporcionó una ruta para la Ruta.' + validationOfAnyOfSchemaNotSupportedExceptionMessage = "La validación de un esquema que incluye 'anyof' no es compatible." + iisAuthSupportIsForWindowsOnlyExceptionMessage = 'El soporte de autenticación IIS es solo para Windows.' + oauth2InnerSchemeInvalidExceptionMessage = 'OAuth2 InnerScheme solo puede ser Basic o Form, pero se obtuvo: {0}' + noRoutePathSuppliedForPageExceptionMessage = 'No se proporcionó ruta de acceso para la página {0}.' + cacheStorageNotFoundForExistsExceptionMessage = "No se encontró el almacenamiento en caché con el nombre '{0}' al intentar comprobar si el elemento en caché '{1}' existe." + handlerAlreadyDefinedExceptionMessage = '[{0}] {1}: Manejador ya definido.' + sessionsNotConfiguredExceptionMessage = 'Las sesiones no se han configurado.' + propertiesTypeObjectAssociationExceptionMessage = 'Solo las propiedades de tipo Objeto pueden estar asociadas con {0}.' + sessionsRequiredForSessionPersistentAuthExceptionMessage = 'Se requieren sesiones para usar la autenticación persistente de sesión.' + invalidPathWildcardOrDirectoryExceptionMessage = 'La ruta suministrada no puede ser un comodín o un directorio: {0}' + accessMethodAlreadyDefinedExceptionMessage = 'Método de acceso ya definido: {0}' + parametersValueOrExternalValueMandatoryExceptionMessage = "Los parámetros 'Value' o 'ExternalValue' son obligatorios." + maximumConcurrentTasksInvalidExceptionMessage = 'El número máximo de tareas concurrentes debe ser >=1, pero se obtuvo: {0}' + cannotCreatePropertyWithoutTypeExceptionMessage = 'No se puede crear la propiedad porque no se ha definido ningún tipo.' + authMethodNotExistForMergingExceptionMessage = 'El método de autenticación no existe para la fusión: {0}' + maxValueInvalidExceptionMessage = "El valor máximo '{0}' para {1} no es válido, debe ser menor o igual a {2}" + endpointAlreadyDefinedExceptionMessage = "Ya se ha definido un punto de conexión llamado '{0}'." + eventAlreadyRegisteredExceptionMessage = 'Evento {0} ya registrado: {1}' + parameterNotSuppliedInRequestExceptionMessage = "No se ha proporcionado un parámetro llamado '{0}' en la solicitud o no hay datos disponibles." + cacheStorageNotFoundForSetExceptionMessage = "No se encontró el almacenamiento en caché con el nombre '{0}' al intentar establecer el elemento en caché '{1}'." + methodPathAlreadyDefinedExceptionMessage = '[{0}] {1}: Ya está definido.' + errorLoggingAlreadyEnabledExceptionMessage = 'El registro de errores ya está habilitado.' + valueForUsingVariableNotFoundExceptionMessage = "No se pudo encontrar el valor para '`$using:{0}'." + rapidPdfDoesNotSupportOpenApi31ExceptionMessage = 'La herramienta de documentación RapidPdf no admite OpenAPI 3.1' + oauth2ClientSecretRequiredExceptionMessage = 'OAuth2 requiere un Client Secret cuando no se usa PKCE.' + invalidBase64JwtExceptionMessage = 'Valor Base64 no válido encontrado en JWT' + noSessionToCalculateDataHashExceptionMessage = 'No hay ninguna sesión disponible para calcular el hash de datos.' + cacheStorageNotFoundForRemoveExceptionMessage = "No se encontró el almacenamiento en caché con el nombre '{0}' al intentar eliminar el elemento en caché '{1}'." + csrfMiddlewareNotInitializedExceptionMessage = 'El Middleware CSRF no se ha inicializado.' + infoTitleMandatoryMessage = 'info.title es obligatorio.' + typeCanOnlyBeAssociatedWithObjectExceptionMessage = 'El tipo {0} solo se puede asociar con un Objeto.' + userFileDoesNotExistExceptionMessage = 'El archivo de usuario no existe: {0}' + routeParameterNeedsValidScriptblockExceptionMessage = 'El parámetro Route necesita un ScriptBlock válido y no vacío.' + nextTriggerCalculationErrorExceptionMessage = 'Parece que algo salió mal al intentar calcular la siguiente fecha y hora del disparador: {0}' + cannotLockValueTypeExceptionMessage = 'No se puede bloquear un [ValueTypes].' + failedToCreateOpenSslCertExceptionMessage = 'Error al crear el certificado openssl: {0}' + jwtExpiredExceptionMessage = 'El JWT ha expirado.' + openingGuiMessage = 'Abriendo la GUI.' + multiTypePropertiesRequireOpenApi31ExceptionMessage = 'Las propiedades de tipo múltiple requieren OpenApi versión 3.1 o superior.' + noNameForWebSocketRemoveExceptionMessage = 'No se proporcionó ningún nombre para eliminar el WebSocket.' + maxSizeInvalidExceptionMessage = 'MaxSize debe ser igual o mayor que 0, pero se obtuvo: {0}' + iisShutdownMessage = '(Apagado de IIS)' + cannotUnlockValueTypeExceptionMessage = 'No se puede desbloquear un [ValueTypes].' + noJwtSignatureForAlgorithmExceptionMessage = 'No se proporcionó una firma JWT para {0}.' + maximumConcurrentWebSocketThreadsInvalidExceptionMessage = 'El número máximo de hilos concurrentes de WebSocket debe ser >=1, pero se obtuvo: {0}' + acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = 'El mensaje de reconocimiento solo es compatible con endpoints SMTP y TCP.' + failedToConnectToUrlExceptionMessage = 'Error al conectar con la URL: {0}' + failedToAcquireMutexOwnershipExceptionMessage = 'No se pudo adquirir la propiedad del mutex. Nombre del mutex: {0}' + sessionsRequiredForOAuth2WithPKCEExceptionMessage = 'Se requieren sesiones para usar OAuth2 con PKCE.' + failedToConnectToWebSocketExceptionMessage = 'Error al conectar con el WebSocket: {0}' + unsupportedObjectExceptionMessage = 'Objeto no compatible' + failedToParseAddressExceptionMessage = "Error al analizar '{0}' como una dirección IP/Host:Puerto válida" + mustBeRunningWithAdminPrivilegesExceptionMessage = 'Debe estar ejecutándose con privilegios de administrador para escuchar en direcciones que no sean localhost.' + specificationMessage = 'Especificación' + cacheStorageNotFoundForClearExceptionMessage = "No se encontró el almacenamiento en caché con el nombre '{0}' al intentar vaciar la caché." + restartingServerMessage = 'Reiniciando el servidor...' + cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = "No se puede proporcionar un intervalo cuando el parámetro 'Every' está configurado en None." + unsupportedJwtAlgorithmExceptionMessage = 'El algoritmo JWT actualmente no es compatible: {0}' + websocketsNotConfiguredForSignalMessagesExceptionMessage = 'WebSockets no están configurados para enviar mensajes de señal.' + invalidLogicTypeInHashtableMiddlewareExceptionMessage = 'Un Middleware Hashtable suministrado tiene un tipo de lógica no válido. Se esperaba ScriptBlock, pero se obtuvo: {0}' + maximumConcurrentSchedulesLessThanMinimumExceptionMessage = 'Los horarios simultáneos máximos no pueden ser inferiores al mínimo de {0} pero se obtuvo: {1}' + failedToAcquireSemaphoreOwnershipExceptionMessage = 'No se pudo adquirir la propiedad del semáforo. Nombre del semáforo: {0}' + propertiesParameterWithoutNameExceptionMessage = 'Los parámetros de propiedades no se pueden usar si la propiedad no tiene nombre.' + customSessionStorageMethodNotImplementedExceptionMessage = "El almacenamiento de sesión personalizado no implementa el método requerido '{0}()'." + authenticationMethodDoesNotExistExceptionMessage = 'El método de autenticación no existe: {0}' + webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = 'La función de Webhooks no es compatible con OpenAPI v3.0.x' + invalidContentTypeForSchemaExceptionMessage = "'content-type' inválido encontrado para el esquema: {0}" + noUnlockScriptBlockForVaultExceptionMessage = "No se suministró ningún ScriptBlock de desbloqueo para desbloquear la bóveda '{0}'" + definitionTagMessage = 'Definición {0}:' + failedToOpenRunspacePoolExceptionMessage = 'Error al abrir RunspacePool: {0}' + verbNoLogicPassedExceptionMessage = '[Verbo] {0}: No se pasó ninguna lógica' + noMutexFoundExceptionMessage = "No se encontró ningún mutex llamado '{0}'" + documentationMessage = 'Documentación' + timerAlreadyDefinedExceptionMessage = '[Temporizador] {0}: Temporizador ya definido.' + invalidPortExceptionMessage = 'El puerto no puede ser negativo: {0}' + viewsFolderNameAlreadyExistsExceptionMessage = 'El nombre de la carpeta Views ya existe: {0}' + noNameForWebSocketResetExceptionMessage = 'No se proporcionó ningún nombre para restablecer el WebSocket.' + mergeDefaultAuthNotInListExceptionMessage = "La autenticación MergeDefault '{0}' no está en la lista de autenticación proporcionada." + descriptionRequiredExceptionMessage = 'Se requiere una descripción.' + pageNameShouldBeAlphaNumericExceptionMessage = 'El nombre de la página debe ser un valor alfanumérico válido: {0}' + defaultValueNotBooleanOrEnumExceptionMessage = 'El valor predeterminado no es un booleano y no forma parte del enum.' + openApiComponentSchemaDoesNotExistExceptionMessage = 'El esquema del componente OpenApi {0} no existe.' + timerParameterMustBeGreaterThanZeroExceptionMessage = '[Temporizador] {0}: {1} debe ser mayor que 0.' + taskTimedOutExceptionMessage = 'La tarea ha agotado el tiempo después de {0}ms.' + scheduleStartTimeAfterEndTimeExceptionMessage = "[Horario] {0}: No puede tener un 'StartTime' después del 'EndTime'" + infoVersionMandatoryMessage = 'info.version es obligatorio.' + cannotUnlockNullObjectExceptionMessage = 'No se puede desbloquear un objeto nulo.' + nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = 'Se requiere un ScriptBlock no vacío para el esquema de autenticación personalizado.' + validationOfOneOfSchemaNotSupportedExceptionMessage = "La validación de un esquema que incluye 'oneof' no es compatible." + routeParameterCannotBeNullExceptionMessage = "El parámetro 'Route' no puede ser nulo." + cacheStorageAlreadyExistsExceptionMessage = "Ya existe un almacenamiento en caché con el nombre '{0}'." + loggingMethodRequiresValidScriptBlockExceptionMessage = "El método de salida proporcionado para el método de registro '{0}' requiere un ScriptBlock válido." + scopedVariableAlreadyDefinedExceptionMessage = 'La variable con alcance ya está definida: {0}' + oauth2RequiresAuthorizeUrlExceptionMessage = 'OAuth2 requiere que se proporcione una URL de autorización.' + pathNotExistExceptionMessage = 'La ruta no existe: {0}' + noDomainServerNameForWindowsAdAuthExceptionMessage = 'No se ha proporcionado un nombre de servidor de dominio para la autenticación AD de Windows.' + suppliedDateAfterScheduleEndTimeExceptionMessage = 'La fecha proporcionada es posterior a la hora de finalización del horario en {0}' + wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = 'El comodín * para los Métodos es incompatible con el interruptor AutoMethods.' + cannotSupplyIntervalForYearExceptionMessage = 'No se puede proporcionar un valor de intervalo para cada año.' + missingComponentsMessage = 'Componente(s) faltante(s)' + invalidStrictTransportSecurityDurationExceptionMessage = 'Duración de Strict-Transport-Security no válida proporcionada: {0}. Debe ser mayor que 0.' + noSecretForHmac512ExceptionMessage = 'No se suministró ningún secreto para el hash HMAC512.' + daysInMonthExceededExceptionMessage = '{0} solo tiene {1} días, pero se suministró {2}.' + nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = 'Se requiere un ScriptBlock no vacío para el método de salida de registro personalizado.' + encodingAttributeOnlyAppliesToMultipartExceptionMessage = 'El atributo de codificación solo se aplica a cuerpos de solicitud multipart y application/x-www-form-urlencoded.' + suppliedDateBeforeScheduleStartTimeExceptionMessage = 'La fecha proporcionada es anterior a la hora de inicio del horario en {0}' + unlockSecretRequiredExceptionMessage = "Se requiere una propiedad 'UnlockSecret' al usar Microsoft.PowerShell.SecretStore" + noLogicPassedForMethodRouteExceptionMessage = '[{0}] {1}: No se pasó lógica.' + bodyParserAlreadyDefinedForContentTypeExceptionMessage = 'Un analizador de cuerpo ya está definido para el tipo de contenido {0}.' + invalidJwtSuppliedExceptionMessage = 'JWT proporcionado no válido.' + sessionsRequiredForFlashMessagesExceptionMessage = 'Se requieren sesiones para usar mensajes Flash.' + outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = 'El método de salida proporcionado para el registro de solicitudes requiere un ScriptBlock válido.' + semaphoreAlreadyExistsExceptionMessage = 'Ya existe un semáforo con el siguiente nombre: {0}' + invalidJwtHeaderAlgorithmSuppliedExceptionMessage = 'Algoritmo del encabezado JWT proporcionado no válido.' + oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = "El proveedor de OAuth2 no admite el tipo de concesión 'password' requerido al usar un InnerScheme." + invalidAliasFoundExceptionMessage = 'Se encontró un alias {0} no válido: {1}' + scheduleDoesNotExistExceptionMessage = "El horario '{0}' no existe." + accessMethodNotExistExceptionMessage = 'El método de acceso no existe: {0}' + oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = "El proveedor de OAuth2 no admite el tipo de respuesta 'code'." + untestedPowerShellVersionWarningMessage = '[ADVERTENCIA] Pode {0} no se ha probado en PowerShell {1}, ya que no estaba disponible cuando se lanzó Pode.' + secretVaultAlreadyRegisteredAutoImportExceptionMessage = "Ya se ha registrado un Bóveda Secreta con el nombre '{0}' al importar automáticamente Bóvedas Secretas." + schemeRequiresValidScriptBlockExceptionMessage = "El esquema proporcionado para el validador de autenticación '{0}' requiere un ScriptBlock válido." + serverLoopingMessage = 'Bucle del servidor cada {0} segundos' + certificateThumbprintsNameSupportedOnWindowsExceptionMessage = 'Las huellas digitales/nombres de certificados solo son compatibles con Windows.' + sseConnectionNameRequiredExceptionMessage = "Se requiere un nombre de conexión SSE, ya sea de -Name o $`$WebEvent.Sse.Name" + invalidMiddlewareTypeExceptionMessage = 'Uno de los Middlewares suministrados es de un tipo no válido. Se esperaba ScriptBlock o Hashtable, pero se obtuvo: {0}' + noSecretForJwtSignatureExceptionMessage = 'No se suministró ningún secreto para la firma JWT.' + modulePathDoesNotExistExceptionMessage = 'La ruta del módulo no existe: {0}' + taskAlreadyDefinedExceptionMessage = '[Tarea] {0}: Tarea ya definida.' + verbAlreadyDefinedExceptionMessage = '[Verbo] {0}: Ya está definido' + clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = 'Los certificados de cliente solo son compatibles con endpoints HTTPS.' + endpointNameNotExistExceptionMessage = "No existe un punto de conexión con el nombre '{0}'." + middlewareNoLogicSuppliedExceptionMessage = '[Middleware]: No se suministró lógica en el ScriptBlock.' + scriptBlockRequiredForMergingUsersExceptionMessage = 'Se requiere un ScriptBlock para fusionar múltiples usuarios autenticados en un solo objeto cuando Valid es All.' + secretVaultAlreadyRegisteredExceptionMessage = "Un Cofre de Secretos con el nombre '{0}' ya ha sido registrado{1}." + deprecatedTitleVersionDescriptionWarningMessage = "ADVERTENCIA: Título, Versión y Descripción en 'Enable-PodeOpenApi' están obsoletos. Utilice 'Add-PodeOAInfo' en su lugar." + undefinedOpenApiReferencesMessage = 'Referencias OpenAPI indefinidas:' + doneMessage = 'Hecho' + swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = 'Esta versión de Swagger-Editor no admite OpenAPI 3.1' + durationMustBeZeroOrGreaterExceptionMessage = 'La duración debe ser igual o mayor a 0, pero se obtuvo: {0}s' + viewsPathDoesNotExistExceptionMessage = 'La ruta de las Views no existe: {0}' + discriminatorIncompatibleWithAllOfExceptionMessage = "El parámetro 'Discriminator' es incompatible con 'allOf'." + noNameForWebSocketSendMessageExceptionMessage = 'No se proporcionó ningún nombre para enviar un mensaje al WebSocket.' + hashtableMiddlewareNoLogicExceptionMessage = 'Un Middleware Hashtable suministrado no tiene lógica definida.' + openApiInfoMessage = 'Información OpenAPI:' + invalidSchemeForAuthValidatorExceptionMessage = "El esquema '{0}' proporcionado para el validador de autenticación '{1}' requiere un ScriptBlock válido." + sseFailedToBroadcastExceptionMessage = 'SSE no pudo transmitir debido al nivel de transmisión SSE definido para {0}: {1}.' + adModuleWindowsOnlyExceptionMessage = 'El módulo de Active Directory solo está disponible en Windows.' + requestLoggingAlreadyEnabledExceptionMessage = 'El registro de solicitudes ya está habilitado.' + invalidAccessControlMaxAgeDurationExceptionMessage = 'Duración inválida para Access-Control-Max-Age proporcionada: {0}. Debe ser mayor que 0.' +} + diff --git a/src/Locales/fr/Pode.psd1 b/src/Locales/fr/Pode.psd1 index c6c9ebb43..e59d204e6 100644 --- a/src/Locales/fr/Pode.psd1 +++ b/src/Locales/fr/Pode.psd1 @@ -1,284 +1,285 @@ -ConvertFrom-StringData -StringData @' -adModuleWindowsOnlyExceptionMessage = Le module Active Directory est uniquement disponible sur Windows. -adModuleNotInstalledExceptionMessage = Le module Active Directory n'est pas installé. -secretManagementModuleNotInstalledExceptionMessage = Le module Microsoft.PowerShell.SecretManagement n'est pas installé. -secretVaultAlreadyRegisteredAutoImportExceptionMessage = Un coffre-fort secret avec le nom '{0}' a déjà été enregistré lors de l'importation automatique des coffres-forts secrets. -failedToOpenRunspacePoolExceptionMessage = Échec de l'ouverture de RunspacePool : {0} -cronExpressionInvalidExceptionMessage = L'expression Cron doit uniquement comporter 5 parties : {0} -invalidAliasFoundExceptionMessage = Alias {0} non valide trouvé : {1} -invalidAtomCharacterExceptionMessage = Caractère atomique non valide : {0} -minValueGreaterThanMaxExceptionMessage = La valeur minimale pour {0} ne doit pas être supérieure à la valeur maximale. -minValueInvalidExceptionMessage = La valeur minimale '{0}' pour {1} n'est pas valide, elle doit être supérieure ou égale à {2} -maxValueInvalidExceptionMessage = La valeur maximale '{0}' pour {1} n'est pas valide, elle doit être inférieure ou égale à {2} -valueOutOfRangeExceptionMessage = La valeur '{0}' pour {1} n'est pas valide, elle doit être comprise entre {2} et {3} -daysInMonthExceededExceptionMessage = {0} n'a que {1} jours, mais {2} a été fourni. -nextTriggerCalculationErrorExceptionMessage = Il semble que quelque chose ait mal tourné lors de la tentative de calcul de la prochaine date et heure de déclenchement : {0} -incompatiblePodeDllExceptionMessage = Une version incompatible existante de Pode.DLL {0} est chargée. La version {1} est requise. Ouvrez une nouvelle session Powershell/pwsh et réessayez. -endpointNotExistExceptionMessage = Un point de terminaison avec le protocole '{0}' et l'adresse '{1}' ou l'adresse locale '{2}' n'existe pas. -endpointNameNotExistExceptionMessage = Un point de terminaison avec le nom '{0}' n'existe pas. -failedToConnectToUrlExceptionMessage = Échec de la connexion à l'URL : {0} -failedToParseAddressExceptionMessage = Échec de l'analyse de '{0}' en tant qu'adresse IP/Hôte:Port valide -invalidIpAddressExceptionMessage = L'adresse IP fournie n'est pas valide : {0} -invalidPortExceptionMessage = Le port ne peut pas être négatif : {0} -pathNotExistExceptionMessage = Le chemin n'existe pas : {0} -noSecretForHmac256ExceptionMessage = Aucun secret fourni pour le hachage HMAC256. -noSecretForHmac384ExceptionMessage = Aucun secret fourni pour le hachage HMAC384. -noSecretForHmac512ExceptionMessage = Aucun secret fourni pour le hachage HMAC512. -noSecretForJwtSignatureExceptionMessage = Aucun secret fourni pour la signature JWT. -noSecretExpectedForNoSignatureExceptionMessage = Aucun secret attendu pour aucune signature. -unsupportedJwtAlgorithmExceptionMessage = L'algorithme JWT n'est actuellement pas pris en charge : {0} -invalidBase64JwtExceptionMessage = Valeur encodée en Base64 non valide trouvée dans le JWT -invalidJsonJwtExceptionMessage = Valeur JSON non valide trouvée dans le JWT -unsupportedFunctionInServerlessContextExceptionMessage = La fonction {0} n'est pas prise en charge dans un contexte sans serveur. -invalidPathWildcardOrDirectoryExceptionMessage = Le chemin fourni ne peut pas être un caractère générique ou un répertoire : {0} -invalidExceptionTypeExceptionMessage = L'exception est d'un type non valide, doit être soit WebException soit HttpRequestException, mais a obtenu : {0} -pathToLoadNotFoundExceptionMessage = Chemin à charger {0} non trouvé : {1} -singleValueForIntervalExceptionMessage = Vous ne pouvez fournir qu'une seule valeur {0} lorsque vous utilisez des intervalles. -scriptErrorExceptionMessage = Erreur '{0}' dans le script {1} {2} (ligne {3}) char {4} en exécutant {5} sur l'objet {6} '{7}' Classe : {8} ClasseBase : {9} -noScriptBlockSuppliedExceptionMessage = Aucun ScriptBlock fourni. -iisAspnetcoreTokenMissingExceptionMessage = Le jeton IIS ASPNETCORE_TOKEN est manquant. -propertiesParameterWithoutNameExceptionMessage = Les paramètres Properties ne peuvent pas être utilisés si la propriété n'a pas de nom. -multiTypePropertiesRequireOpenApi31ExceptionMessage = Les propriétés multi-types nécessitent OpenApi Version 3.1 ou supérieure. -openApiVersionPropertyMandatoryExceptionMessage = La propriété Version OpenApi est obligatoire. -webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = La fonction Webhooks n'est pas prise en charge dans OpenAPI v3.0.x -authenticationMethodDoesNotExistExceptionMessage = La méthode d'authentification n'existe pas : {0} -unsupportedObjectExceptionMessage = Objet non pris en charge -validationOfAnyOfSchemaNotSupportedExceptionMessage = La validation d'un schéma qui inclut 'anyof' n'est pas prise en charge. -validationOfOneOfSchemaNotSupportedExceptionMessage = La validation d'un schéma qui inclut 'oneof' n'est pas prise en charge. -cannotCreatePropertyWithoutTypeExceptionMessage = Impossible de créer la propriété car aucun type n'est défini. -headerMustHaveNameInEncodingContextExceptionMessage = L'en-tête doit avoir un nom lorsqu'il est utilisé dans un contexte de codage. -descriptionRequiredExceptionMessage = Une description est requise. -openApiDocumentNotCompliantExceptionMessage = Le document OpenAPI n'est pas conforme. -noComponentInDefinitionExceptionMessage = Aucun composant du type {0} nommé {1} n'est disponible dans la définition {2}. -methodPathAlreadyDefinedExceptionMessage = [{0}] {1} : Déjà défini. -methodPathAlreadyDefinedForUrlExceptionMessage = [{0}] {1} : Déjà défini pour {2} -invalidMiddlewareTypeExceptionMessage = Un des Middlewares fournis est d'un type non valide. Attendu ScriptBlock ou Hashtable, mais a obtenu : {0} -hashtableMiddlewareNoLogicExceptionMessage = Un Middleware Hashtable fourni n'a aucune logique définie. -invalidLogicTypeInHashtableMiddlewareExceptionMessage = Un Middleware Hashtable fourni a un type de logique non valide. Attendu ScriptBlock, mais a obtenu : {0} -scopedVariableAlreadyDefinedExceptionMessage = La variable à portée est déjà définie : {0} -valueForUsingVariableNotFoundExceptionMessage = Valeur pour '`$using:{0}' introuvable. -unlockSecretRequiredExceptionMessage = Une propriété 'UnlockSecret' est requise lors de l'utilisation de Microsoft.PowerShell.SecretStore -unlockSecretButNoScriptBlockExceptionMessage = Secret de déverrouillage fourni pour le type de coffre-fort personnalisé, mais aucun ScriptBlock de déverrouillage fourni. -noUnlockScriptBlockForVaultExceptionMessage = Aucun ScriptBlock de déverrouillage fourni pour déverrouiller le coffre '{0}' -noSetScriptBlockForVaultExceptionMessage = Aucun ScriptBlock de configuration fourni pour mettre à jour/créer des secrets dans le coffre '{0}' -noRemoveScriptBlockForVaultExceptionMessage = Aucun ScriptBlock de suppression fourni pour supprimer des secrets du coffre '{0}' -invalidSecretValueTypeExceptionMessage = La valeur du secret est d'un type non valide. Types attendus : String, SecureString, HashTable, Byte[], ou PSCredential. Mais a obtenu : {0} -limitValueCannotBeZeroOrLessExceptionMessage = La valeur de la limite ne peut pas être 0 ou inférieure pour {0} -secondsValueCannotBeZeroOrLessExceptionMessage = La valeur en secondes ne peut pas être 0 ou inférieure pour {0} -failedToCreateOpenSslCertExceptionMessage = Échec de la création du certificat openssl : {0} -certificateThumbprintsNameSupportedOnWindowsExceptionMessage = Les empreintes digitales/Noms de certificat ne sont pris en charge que sous Windows. -noCertificateFoundExceptionMessage = Aucun certificat n'a été trouvé dans {0}\{1} pour '{2}' -runspacePoolFailedToLoadExceptionMessage = {0} RunspacePool n'a pas pu être chargé. -noServiceHandlersDefinedExceptionMessage = Aucun gestionnaire de service défini. -noSessionToSetOnResponseExceptionMessage = Aucune session disponible pour être définie sur la réponse. -noSessionToCalculateDataHashExceptionMessage = Aucune session disponible pour calculer le hachage de données. -moduleOrVersionNotFoundExceptionMessage = Module ou version introuvable sur {0} : {1}@{2} -noSmtpHandlersDefinedExceptionMessage = Aucun gestionnaire SMTP défini. -taskTimedOutExceptionMessage = La tâche a expiré après {0}ms. -verbAlreadyDefinedExceptionMessage = [Verbe] {0} : Déjà défini -verbAlreadyDefinedForUrlExceptionMessage = [Verbe] {0} : Déjà défini pour {1} -pathOrScriptBlockRequiredExceptionMessage = Un chemin ou un ScriptBlock est requis pour obtenir les valeurs d'accès personnalisées. -accessMethodAlreadyDefinedExceptionMessage = Méthode d'accès déjà définie : {0} -accessMethodNotExistForMergingExceptionMessage = La méthode d'accès n'existe pas pour la fusion : {0} -routeAlreadyContainsCustomAccessExceptionMessage = La route '[{0}] {1}' contient déjà un accès personnalisé avec le nom '{2}' -accessMethodNotExistExceptionMessage = La méthode d'accès n'existe pas : {0} -pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = La fonction PathItems n'est pas prise en charge dans OpenAPI v3.0.x -nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = Un ScriptBlock non vide est requis pour le schéma d'authentification personnalisé. -oauth2InnerSchemeInvalidExceptionMessage = Le OAuth2 InnerScheme ne peut être que Basic ou Form, mais obtenu : {0} -sessionsRequiredForOAuth2WithPKCEExceptionMessage = Des sessions sont nécessaires pour utiliser OAuth2 avec PKCE. -oauth2ClientSecretRequiredExceptionMessage = OAuth2 nécessite un Client Secret lorsque PKCE n'est pas utilisé. -authMethodAlreadyDefinedExceptionMessage = Méthode d'authentification déjà définie : {0} -invalidSchemeForAuthValidatorExceptionMessage = Le schéma '{0}' fourni pour le validateur d'authentification '{1}' nécessite un ScriptBlock valide. -sessionsRequiredForSessionPersistentAuthExceptionMessage = Des sessions sont nécessaires pour utiliser l'authentification persistante par session. -oauth2RequiresAuthorizeUrlExceptionMessage = OAuth2 nécessite une URL d'autorisation. -authMethodNotExistForMergingExceptionMessage = La méthode d'authentification n'existe pas pour la fusion : {0} -mergeDefaultAuthNotInListExceptionMessage = L'authentification MergeDefault '{0}' n'est pas dans la liste d'authentification fournie. -defaultAuthNotInListExceptionMessage = L'authentification par défaut '{0}' n'est pas dans la liste d'authentification fournie. -scriptBlockRequiredForMergingUsersExceptionMessage = Un ScriptBlock est requis pour fusionner plusieurs utilisateurs authentifiés en un seul objet lorsque Valid est All. -noDomainServerNameForWindowsAdAuthExceptionMessage = Aucun nom de serveur de domaine n'a été fourni pour l'authentification Windows AD. -sessionsNotConfiguredExceptionMessage = Les sessions n'ont pas été configurées. -windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = Le support de l'authentification locale Windows est uniquement pour Windows. -iisAuthSupportIsForWindowsOnlyExceptionMessage = Le support de l'authentification IIS est uniquement pour Windows. -noAlgorithmInJwtHeaderExceptionMessage = Aucun algorithme fourni dans l'en-tête JWT. -invalidJwtSuppliedExceptionMessage = JWT fourni invalide. -invalidJwtHeaderAlgorithmSuppliedExceptionMessage = Algorithme de l'en-tête JWT fourni invalide. -noJwtSignatureForAlgorithmExceptionMessage = Aucune signature JWT fournie pour {0}. -expectedNoJwtSignatureSuppliedExceptionMessage = Aucune signature JWT n'était attendue. -invalidJwtSignatureSuppliedExceptionMessage = Signature JWT fournie invalide. -jwtExpiredExceptionMessage = Le JWT a expiré. -jwtNotYetValidExceptionMessage = Le JWT n'est pas encore valide pour une utilisation. -snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = Les Snapins sont uniquement pris en charge sur Windows PowerShell. -userFileDoesNotExistExceptionMessage = Le fichier utilisateur n'existe pas : {0} -schemeRequiresValidScriptBlockExceptionMessage = Le schéma fourni pour le validateur d'authentification '{0}' nécessite un ScriptBlock valide. -oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = Le fournisseur OAuth2 ne supporte pas le type de réponse 'code'. -oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = Le fournisseur OAuth2 ne supporte pas le type de subvention 'password' requis par l'utilisation d'un InnerScheme. -eventAlreadyRegisteredExceptionMessage = Événement {0} déjà enregistré : {1} -noEventRegisteredExceptionMessage = Aucun événement {0} enregistré : {1} -sessionsRequiredForFlashMessagesExceptionMessage = Des sessions sont nécessaires pour utiliser les messages Flash. -eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = La journalisation dans le Visualisateur d'événements n'est prise en charge que sous Windows. -nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = Un ScriptBlock non vide est requis pour la méthode de journalisation personnalisée. -requestLoggingAlreadyEnabledExceptionMessage = La journalisation des requêtes est déjà activée. -outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = La méthode de sortie fournie pour la journalisation des requêtes nécessite un ScriptBlock valide. -errorLoggingAlreadyEnabledExceptionMessage = La journalisation des erreurs est déjà activée. -nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = Un ScriptBlock non vide est requis pour la méthode de journalisation. -csrfMiddlewareNotInitializedExceptionMessage = Le Middleware CSRF n'a pas été initialisé. -sessionsRequiredForCsrfExceptionMessage = Des sessions sont nécessaires pour utiliser CSRF sauf si vous souhaitez utiliser des cookies. -middlewareNoLogicSuppliedExceptionMessage = [Middleware] : Aucune logique fournie dans le ScriptBlock. -parameterHasNoNameExceptionMessage = Le paramètre n'a pas de nom. Veuillez donner un nom à ce composant en utilisant le paramètre 'Name'. -reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = La fonctionnalité du composant réutilisable 'pathItems' n'est pas disponible dans OpenAPI v3.0. -noPropertiesMutuallyExclusiveExceptionMessage = Le paramètre 'NoProperties' est mutuellement exclusif avec 'Properties', 'MinProperties' et 'MaxProperties'. -discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = Le paramètre 'DiscriminatorMapping' ne peut être utilisé que lorsque 'DiscriminatorProperty' est présent. -discriminatorIncompatibleWithAllOfExceptionMessage = Le paramètre 'Discriminator' est incompatible avec 'allOf'. -typeCanOnlyBeAssociatedWithObjectExceptionMessage = Le type {0} ne peut être associé qu'à un Objet. -showPodeGuiOnlyAvailableOnWindowsExceptionMessage = Show-PodeGui est actuellement disponible uniquement pour Windows PowerShell et PowerShell 7+ sur Windows. -nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = Un nom est requis pour le point de terminaison si le paramètre RedirectTo est fourni. -clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = Les certificats client ne sont pris en charge que sur les points de terminaison HTTPS. -explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = Le mode TLS explicite n'est pris en charge que sur les points de terminaison SMTPS et TCPS. -acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = Le message de reconnaissance n'est pris en charge que sur les points de terminaison SMTP et TCP. -crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = La vérification de fin de message CRLF n'est prise en charge que sur les points de terminaison TCP. -mustBeRunningWithAdminPrivilegesExceptionMessage = Doit être exécuté avec des privilèges administratifs pour écouter sur des adresses autres que localhost. -certificateSuppliedForNonHttpsWssEndpointExceptionMessage = Certificat fourni pour un point de terminaison non HTTPS/WSS. -websocketsNotConfiguredForSignalMessagesExceptionMessage = Les WebSockets ne sont pas configurés pour envoyer des messages de signal. -noPathSuppliedForRouteExceptionMessage = Aucun chemin fourni pour la route. -accessRequiresAuthenticationOnRoutesExceptionMessage = L'accès nécessite une authentification sur les routes. -accessMethodDoesNotExistExceptionMessage = La méthode d'accès n'existe pas : {0}. -routeParameterNeedsValidScriptblockExceptionMessage = Le paramètre de la route nécessite un ScriptBlock valide et non vide. -noCommandsSuppliedToConvertToRoutesExceptionMessage = Aucune commande fournie pour convertir en routes. -nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = Un ScriptBlock non vide est requis pour créer une route de page. -sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSE ne peut être configuré que sur les requêtes avec une valeur d'en-tête Accept de text/event-stream. -sseConnectionNameRequiredExceptionMessage = Un nom de connexion SSE est requis, soit de -Name soit de $`$WebEvent.Sse.Name -sseFailedToBroadcastExceptionMessage = SSE a échoué à diffuser en raison du niveau de diffusion SSE défini pour {0} : {1}. -podeNotInitializedExceptionMessage = Pode n'a pas été initialisé. -invalidTaskTypeExceptionMessage = Le type de tâche n'est pas valide, attendu [System.Threading.Tasks.Task] ou [hashtable]. -cannotLockValueTypeExceptionMessage = Impossible de verrouiller un [ValueTypes]. -cannotLockNullObjectExceptionMessage = Impossible de verrouiller un objet nul. -failedToAcquireLockExceptionMessage = Impossible d'acquérir un verrou sur l'objet. -cannotUnlockValueTypeExceptionMessage = Impossible de déverrouiller un [ValueTypes]. -cannotUnlockNullObjectExceptionMessage = Impossible de déverrouiller un objet nul. -sessionMiddlewareAlreadyInitializedExceptionMessage = Le Middleware de session a déjà été initialisé. -customSessionStorageMethodNotImplementedExceptionMessage = Le stockage de session personnalisé n'implémente pas la méthode requise '{0}()'. -secretRequiredForCustomSessionStorageExceptionMessage = Un secret est requis lors de l'utilisation d'un stockage de session personnalisé. -noSessionAvailableToSaveExceptionMessage = Aucune session disponible pour sauvegarder. -cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = Impossible de fournir un intervalle lorsque le paramètre 'Every' est défini sur None. -cannotSupplyIntervalForQuarterExceptionMessage = Impossible de fournir une valeur d'intervalle pour chaque trimestre. -cannotSupplyIntervalForYearExceptionMessage = Impossible de fournir une valeur d'intervalle pour chaque année. -secretVaultAlreadyRegisteredExceptionMessage = Un Coffre-Fort de Secrets avec le nom '{0}' a déjà été enregistré{1}. -secretVaultUnlockExpiryDateInPastExceptionMessage = La date d'expiration du déverrouillage du Coffre-Fort de Secrets est dans le passé (UTC) : {0} -secretAlreadyMountedExceptionMessage = Un Secret avec le nom '{0}' a déjà été monté. -credentialsPassedWildcardForHeadersLiteralExceptionMessage = Lorsque des Identifiants sont passés, le caractère générique * pour les En-têtes sera pris comme une chaîne littérale et non comme un caractère générique. -wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = Le caractère générique * pour les En-têtes est incompatible avec le commutateur AutoHeaders. -wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = Le caractère générique * pour les Méthodes est incompatible avec le commutateur AutoMethods. -invalidAccessControlMaxAgeDurationExceptionMessage = Durée Access-Control-Max-Age invalide fournie : {0}. Doit être supérieure à 0. -noNameForWebSocketDisconnectExceptionMessage = Aucun Nom fourni pour déconnecter le WebSocket. -noNameForWebSocketRemoveExceptionMessage = Aucun Nom fourni pour supprimer le WebSocket. -noNameForWebSocketSendMessageExceptionMessage = Aucun Nom fourni pour envoyer un message au WebSocket. -noSecretNamedMountedExceptionMessage = Aucun Secret nommé '{0}' n'a été monté. -noNameForWebSocketResetExceptionMessage = Aucun Nom fourni pour réinitialiser le WebSocket. -schemaValidationRequiresPowerShell610ExceptionMessage = La validation du schéma nécessite PowerShell version 6.1.0 ou supérieure. -routeParameterCannotBeNullExceptionMessage = Le paramètre 'Route' ne peut pas être nul. -encodingAttributeOnlyAppliesToMultipartExceptionMessage = L'attribut d'encodage s'applique uniquement aux corps de requête multipart et application/x-www-form-urlencoded. -testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = 'Test-PodeOAComponentSchema' doit être activé en utilisant 'Enable-PodeOpenApi -EnableSchemaValidation' -openApiComponentSchemaDoesNotExistExceptionMessage = Le schéma du composant OpenApi {0} n'existe pas. -openApiParameterRequiresNameExceptionMessage = Le paramètre OpenApi nécessite un nom spécifié. -openApiLicenseObjectRequiresNameExceptionMessage = L'objet OpenAPI 'license' nécessite la propriété 'name'. Utilisez le paramètre -LicenseName. -parametersValueOrExternalValueMandatoryExceptionMessage = Les paramètres 'Value' ou 'ExternalValue' sont obligatoires. -parametersMutuallyExclusiveExceptionMessage = Les paramètres '{0}' et '{1}' sont mutuellement exclusifs. -maximumConcurrentWebSocketThreadsInvalidExceptionMessage = Le nombre maximum de threads WebSocket simultanés doit être >=1, mais a obtenu : {0} -maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = Le nombre maximum de threads WebSocket simultanés ne peut pas être inférieur au minimum de {0}, mais a obtenu : {1} -alreadyConnectedToWebSocketExceptionMessage = Déjà connecté au WebSocket avec le nom '{0}' -failedToConnectToWebSocketExceptionMessage = Échec de la connexion au WebSocket : {0} -verbNoLogicPassedExceptionMessage = [Verbe] {0} : Aucune logique transmise -scriptPathDoesNotExistExceptionMessage = Le chemin du script n'existe pas : {0} -failedToImportModuleExceptionMessage = Échec de l'importation du module : {0} -modulePathDoesNotExistExceptionMessage = Le chemin du module n'existe pas : {0} -defaultValueNotBooleanOrEnumExceptionMessage = La valeur par défaut n'est pas un booléen et ne fait pas partie de l'énumération. -propertiesTypeObjectAssociationExceptionMessage = Seules les propriétés de type Objet peuvent être associées à {0}. -invalidContentTypeForSchemaExceptionMessage = 'content-type' invalide trouvé pour le schéma : {0} -openApiRequestStyleInvalidForParameterExceptionMessage = Le style de la requête OpenApi ne peut pas être {0} pour un paramètre {1}. -pathParameterRequiresRequiredSwitchExceptionMessage = Si l'emplacement du paramètre est 'Path', le paramètre switch 'Required' est obligatoire. -operationIdMustBeUniqueForArrayExceptionMessage = OperationID : {0} doit être unique et ne peut pas être appliqué à un tableau. -operationIdMustBeUniqueExceptionMessage = OperationID : {0} doit être unique. -noOpenApiUrlSuppliedExceptionMessage = Aucune URL OpenAPI fournie pour {0}. -noTitleSuppliedForPageExceptionMessage = Aucun titre fourni pour la page {0}. -noRoutePathSuppliedForPageExceptionMessage = Aucun chemin de route fourni pour la page {0}. -swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = Cette version de Swagger-Editor ne prend pas en charge OpenAPI 3.1 -rapidPdfDoesNotSupportOpenApi31ExceptionMessage = L'outil de documentation RapidPdf ne prend pas en charge OpenAPI 3.1 -definitionTagNotDefinedExceptionMessage = Tag de définition {0} non défini. -scopedVariableNotFoundExceptionMessage = Variable d'étendue non trouvée : {0} -noSecretVaultRegisteredExceptionMessage = Aucun coffre-fort de secrets enregistré sous le nom '{0}'. -invalidStrictTransportSecurityDurationExceptionMessage = Durée Strict-Transport-Security invalide fournie : {0}. Doit être supérieure à 0. -durationMustBeZeroOrGreaterExceptionMessage = La durée doit être égale ou supérieure à 0, mais a obtenu : {0}s -taskAlreadyDefinedExceptionMessage = [Tâche] {0} : Tâche déjà définie. -maximumConcurrentTasksInvalidExceptionMessage = Le nombre maximum de tâches simultanées doit être >=1, mais a obtenu : {0} -maximumConcurrentTasksLessThanMinimumExceptionMessage = Le nombre maximum de tâches simultanées ne peut pas être inférieur au minimum de {0}, mais a obtenu : {1} -taskDoesNotExistExceptionMessage = La tâche '{0}' n'existe pas. -cacheStorageNotFoundForRetrieveExceptionMessage = Le stockage de cache nommé '{0}' est introuvable lors de la tentative de récupération de l'élément mis en cache '{1}'. -cacheStorageNotFoundForSetExceptionMessage = Le stockage de cache nommé '{0}' est introuvable lors de la tentative de définition de l'élément mis en cache '{1}'. -cacheStorageNotFoundForExistsExceptionMessage = Le stockage de cache nommé '{0}' est introuvable lors de la tentative de vérification de l'existence de l'élément mis en cache '{1}'. -cacheStorageNotFoundForRemoveExceptionMessage = Le stockage de cache nommé '{0}' est introuvable lors de la tentative de suppression de l'élément mis en cache '{1}'. -cacheStorageNotFoundForClearExceptionMessage = Le stockage de cache nommé '{0}' est introuvable lors de la tentative de vider le cache. -cacheStorageAlreadyExistsExceptionMessage = Un stockage de cache nommé '{0}' existe déjà. -pathToIconForGuiDoesNotExistExceptionMessage = Le chemin vers l'icône pour l'interface graphique n'existe pas: {0} -invalidHostnameSuppliedExceptionMessage = Nom d'hôte fourni invalide: {0} -endpointAlreadyDefinedExceptionMessage = Un point de terminaison nommé '{0}' a déjà été défini. -certificateExpiredExceptionMessage = Le certificat '{0}' a expiré: {1} -endpointNotDefinedForRedirectingExceptionMessage = Un point de terminaison nommé '{0}' n'a pas été défini pour la redirection. -fileWatcherAlreadyDefinedExceptionMessage = Un Observateur de fichiers nommé '{0}' a déjà été défini. -handlerAlreadyDefinedExceptionMessage = [{0}] {1}: Handler déjà défini. -maxDaysInvalidExceptionMessage = MaxDays doit être égal ou supérieur à 0, mais a obtenu: {0} -maxSizeInvalidExceptionMessage = MaxSize doit être égal ou supérieur à 0, mais a obtenu: {0} -loggingMethodAlreadyDefinedExceptionMessage = Méthode de journalisation déjà définie: {0} -loggingMethodRequiresValidScriptBlockExceptionMessage = La méthode de sortie fournie pour la méthode de journalisation '{0}' nécessite un ScriptBlock valide. -csrfCookieRequiresSecretExceptionMessage = Lors de l'utilisation de cookies pour CSRF, un Secret est requis. Vous pouvez soit fournir un Secret, soit définir le Secret global du Cookie - (Set-PodeCookieSecret '' -Global) -bodyParserAlreadyDefinedForContentTypeExceptionMessage = Un analyseur de corps est déjà défini pour le type de contenu {0}. -middlewareAlreadyDefinedExceptionMessage = [Middleware] {0}: Middleware déjà défini. -parameterNotSuppliedInRequestExceptionMessage = Un paramètre nommé '{0}' n'a pas été fourni dans la demande ou aucune donnée n'est disponible. -noDataForFileUploadedExceptionMessage = Aucune donnée pour le fichier '{0}' n'a été téléchargée dans la demande. -viewsFolderNameAlreadyExistsExceptionMessage = Le nom du dossier Views existe déjà: {0} -viewsPathDoesNotExistExceptionMessage = Le chemin des Views n'existe pas: {0} -timerAlreadyDefinedExceptionMessage = [Minuteur] {0}: Minuteur déjà défini. -timerParameterMustBeGreaterThanZeroExceptionMessage = [Minuteur] {0}: {1} doit être supérieur à 0. -timerDoesNotExistExceptionMessage = Minuteur '{0}' n'existe pas. -mutexAlreadyExistsExceptionMessage = Un mutex avec le nom suivant existe déjà: {0} -noMutexFoundExceptionMessage = Aucun mutex trouvé appelé '{0}' -failedToAcquireMutexOwnershipExceptionMessage = Échec de l'acquisition de la propriété du mutex. Nom du mutex: {0} -semaphoreAlreadyExistsExceptionMessage = Un sémaphore avec le nom suivant existe déjà: {0} -failedToAcquireSemaphoreOwnershipExceptionMessage = Échec de l'acquisition de la propriété du sémaphore. Nom du sémaphore: {0} -scheduleAlreadyDefinedExceptionMessage = [Calendrier] {0}: Calendrier déjà défini. -scheduleCannotHaveNegativeLimitExceptionMessage = [Calendrier] {0}: Ne peut pas avoir de limite négative. -scheduleEndTimeMustBeInFutureExceptionMessage = [Calendrier] {0}: La valeur de EndTime doit être dans le futur. -scheduleStartTimeAfterEndTimeExceptionMessage = [Calendrier] {0}: Ne peut pas avoir un 'StartTime' après 'EndTime' -maximumConcurrentSchedulesInvalidExceptionMessage = Les calendriers simultanés maximum doivent être >=1 mais obtenu: {0} -maximumConcurrentSchedulesLessThanMinimumExceptionMessage = Les calendriers simultanés maximum ne peuvent pas être inférieurs au minimum de {0} mais obtenu: {1} -scheduleDoesNotExistExceptionMessage = Le calendrier '{0}' n'existe pas. -suppliedDateBeforeScheduleStartTimeExceptionMessage = La date fournie est antérieure à l'heure de début du calendrier à {0} -suppliedDateAfterScheduleEndTimeExceptionMessage = La date fournie est postérieure à l'heure de fin du calendrier à {0} -noSemaphoreFoundExceptionMessage = Aucun sémaphore trouvé appelé '{0}' -noLogicPassedForRouteExceptionMessage = Aucune logique passée pour la Route: {0} -noPathSuppliedForStaticRouteExceptionMessage = [{0}]: Aucun chemin fourni pour la Route statique. -sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: Le chemin source fourni pour la Route statique n'existe pas: {2} -noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: Aucune logique passée. -moduleDoesNotContainFunctionExceptionMessage = Le module {0} ne contient pas la fonction {1} à convertir en une Route. -pageNameShouldBeAlphaNumericExceptionMessage = Le nom de la page doit être une valeur alphanumérique valide: {0} -filesHaveChangedMessage = Les fichiers suivants ont été modifiés : -multipleEndpointsForGuiMessage = Plusieurs points de terminaison définis, seul le premier sera utilisé pour l'interface graphique. -openingGuiMessage = Ouverture de l'interface graphique. -listeningOnEndpointsMessage = Écoute sur les {0} point(s) de terminaison suivant(s) [{1} thread(s)] : -specificationMessage = Spécification -documentationMessage = Documentation -restartingServerMessage = Redémarrage du serveur... -doneMessage = Terminé -deprecatedTitleVersionDescriptionWarningMessage = AVERTISSEMENT : Titre, Version et Description sur 'Enable-PodeOpenApi' sont obsolètes. Veuillez utiliser 'Add-PodeOAInfo' à la place. -undefinedOpenApiReferencesMessage = Références OpenAPI non définies : -definitionTagMessage = Définition {0} : -openApiGenerationDocumentErrorMessage = Erreur de génération du document OpenAPI : -infoTitleMandatoryMessage = info.title est obligatoire. -infoVersionMandatoryMessage = info.version est obligatoire. -missingComponentsMessage = Composant(s) manquant(s) -openApiInfoMessage = Informations OpenAPI : -serverLoopingMessage = Boucle du serveur toutes les {0} secondes -iisShutdownMessage = (Arrêt de l'IIS) -terminatingMessage = Terminaison... -eolPowerShellWarningMessage = [AVERTISSEMENT] Pode {0} n'a pas été testé sur PowerShell {1}, car il est en fin de vie. -untestedPowerShellVersionWarningMessage = [AVERTISSEMENT] Pode {0} n'a pas été testé sur PowerShell {1}, car il n'était pas disponible lors de la sortie de Pode. -'@ \ No newline at end of file +@{ + schemaValidationRequiresPowerShell610ExceptionMessage = 'La validation du schéma nécessite PowerShell version 6.1.0 ou supérieure.' + pathOrScriptBlockRequiredExceptionMessage = "Un chemin ou un ScriptBlock est requis pour obtenir les valeurs d'accès personnalisées." + operationIdMustBeUniqueForArrayExceptionMessage = 'OperationID : {0} doit être unique et ne peut pas être appliqué à un tableau.' + endpointNotDefinedForRedirectingExceptionMessage = "Un point de terminaison nommé '{0}' n'a pas été défini pour la redirection." + filesHaveChangedMessage = 'Les fichiers suivants ont été modifiés :' + iisAspnetcoreTokenMissingExceptionMessage = 'Le jeton IIS ASPNETCORE_TOKEN est manquant.' + minValueGreaterThanMaxExceptionMessage = 'La valeur minimale pour {0} ne doit pas être supérieure à la valeur maximale.' + noLogicPassedForRouteExceptionMessage = 'Aucune logique passée pour la Route: {0}' + scriptPathDoesNotExistExceptionMessage = "Le chemin du script n'existe pas : {0}" + mutexAlreadyExistsExceptionMessage = 'Un mutex avec le nom suivant existe déjà: {0}' + listeningOnEndpointsMessage = 'Écoute sur les {0} point(s) de terminaison suivant(s) [{1} thread(s)] :' + unsupportedFunctionInServerlessContextExceptionMessage = "La fonction {0} n'est pas prise en charge dans un contexte sans serveur." + expectedNoJwtSignatureSuppliedExceptionMessage = "Aucune signature JWT n'était attendue." + secretAlreadyMountedExceptionMessage = "Un Secret avec le nom '{0}' a déjà été monté." + failedToAcquireLockExceptionMessage = "Impossible d'acquérir un verrou sur l'objet." + noPathSuppliedForStaticRouteExceptionMessage = '[{0}]: Aucun chemin fourni pour la Route statique.' + invalidHostnameSuppliedExceptionMessage = "Nom d'hôte fourni invalide: {0}" + authMethodAlreadyDefinedExceptionMessage = "Méthode d'authentification déjà définie : {0}" + csrfCookieRequiresSecretExceptionMessage = "Lors de l'utilisation de cookies pour CSRF, un Secret est requis. Vous pouvez soit fournir un Secret, soit définir le Secret global du Cookie - (Set-PodeCookieSecret '' -Global)" + nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = 'Un ScriptBlock non vide est requis pour créer une route de page.' + noPropertiesMutuallyExclusiveExceptionMessage = "Le paramètre 'NoProperties' est mutuellement exclusif avec 'Properties', 'MinProperties' et 'MaxProperties'." + incompatiblePodeDllExceptionMessage = 'Une version incompatible existante de Pode.DLL {0} est chargée. La version {1} est requise. Ouvrez une nouvelle session Powershell/pwsh et réessayez.' + accessMethodDoesNotExistExceptionMessage = "La méthode d'accès n'existe pas : {0}." + scheduleAlreadyDefinedExceptionMessage = '[Calendrier] {0}: Calendrier déjà défini.' + secondsValueCannotBeZeroOrLessExceptionMessage = 'La valeur en secondes ne peut pas être 0 ou inférieure pour {0}' + pathToLoadNotFoundExceptionMessage = 'Chemin à charger {0} non trouvé : {1}' + failedToImportModuleExceptionMessage = "Échec de l'importation du module : {0}" + endpointNotExistExceptionMessage = "Un point de terminaison avec le protocole '{0}' et l'adresse '{1}' ou l'adresse locale '{2}' n'existe pas." + terminatingMessage = 'Terminaison...' + noCommandsSuppliedToConvertToRoutesExceptionMessage = 'Aucune commande fournie pour convertir en routes.' + invalidTaskTypeExceptionMessage = "Le type de tâche n'est pas valide, attendu [System.Threading.Tasks.Task] ou [hashtable]." + alreadyConnectedToWebSocketExceptionMessage = "Déjà connecté au WebSocket avec le nom '{0}'" + crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = "La vérification de fin de message CRLF n'est prise en charge que sur les points de terminaison TCP." + testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = "'Test-PodeOAComponentSchema' doit être activé en utilisant 'Enable-PodeOpenApi -EnableSchemaValidation'" + adModuleNotInstalledExceptionMessage = "Le module Active Directory n'est pas installé." + cronExpressionInvalidExceptionMessage = "L'expression Cron doit uniquement comporter 5 parties : {0}" + noSessionToSetOnResponseExceptionMessage = 'Aucune session disponible pour être définie sur la réponse.' + valueOutOfRangeExceptionMessage = "La valeur '{0}' pour {1} n'est pas valide, elle doit être comprise entre {2} et {3}" + loggingMethodAlreadyDefinedExceptionMessage = 'Méthode de journalisation déjà définie: {0}' + noSecretForHmac256ExceptionMessage = 'Aucun secret fourni pour le hachage HMAC256.' + eolPowerShellWarningMessage = "[AVERTISSEMENT] Pode {0} n'a pas été testé sur PowerShell {1}, car il est en fin de vie." + runspacePoolFailedToLoadExceptionMessage = "{0} RunspacePool n'a pas pu être chargé." + noEventRegisteredExceptionMessage = 'Aucun événement {0} enregistré : {1}' + scheduleCannotHaveNegativeLimitExceptionMessage = '[Calendrier] {0}: Ne peut pas avoir de limite négative.' + openApiRequestStyleInvalidForParameterExceptionMessage = 'Le style de la requête OpenApi ne peut pas être {0} pour un paramètre {1}.' + openApiDocumentNotCompliantExceptionMessage = "Le document OpenAPI n'est pas conforme." + taskDoesNotExistExceptionMessage = "La tâche '{0}' n'existe pas." + scopedVariableNotFoundExceptionMessage = "Variable d'étendue non trouvée : {0}" + sessionsRequiredForCsrfExceptionMessage = 'Des sessions sont nécessaires pour utiliser CSRF sauf si vous souhaitez utiliser des cookies.' + nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = 'Un ScriptBlock non vide est requis pour la méthode de journalisation.' + credentialsPassedWildcardForHeadersLiteralExceptionMessage = 'Lorsque des Identifiants sont passés, le caractère générique * pour les En-têtes sera pris comme une chaîne littérale et non comme un caractère générique.' + podeNotInitializedExceptionMessage = "Pode n'a pas été initialisé." + multipleEndpointsForGuiMessage = "Plusieurs points de terminaison définis, seul le premier sera utilisé pour l'interface graphique." + operationIdMustBeUniqueExceptionMessage = 'OperationID : {0} doit être unique.' + invalidJsonJwtExceptionMessage = 'Valeur JSON non valide trouvée dans le JWT' + noAlgorithmInJwtHeaderExceptionMessage = "Aucun algorithme fourni dans l'en-tête JWT." + openApiVersionPropertyMandatoryExceptionMessage = 'La propriété Version OpenApi est obligatoire.' + limitValueCannotBeZeroOrLessExceptionMessage = 'La valeur de la limite ne peut pas être 0 ou inférieure pour {0}' + timerDoesNotExistExceptionMessage = "Minuteur '{0}' n'existe pas." + openApiGenerationDocumentErrorMessage = 'Erreur de génération du document OpenAPI :' + routeAlreadyContainsCustomAccessExceptionMessage = "La route '[{0}] {1}' contient déjà un accès personnalisé avec le nom '{2}'" + maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = 'Le nombre maximum de threads WebSocket simultanés ne peut pas être inférieur au minimum de {0}, mais a obtenu : {1}' + middlewareAlreadyDefinedExceptionMessage = '[Middleware] {0}: Middleware déjà défini.' + invalidAtomCharacterExceptionMessage = 'Caractère atomique non valide : {0}' + cacheStorageNotFoundForRetrieveExceptionMessage = "Le stockage de cache nommé '{0}' est introuvable lors de la tentative de récupération de l'élément mis en cache '{1}'." + headerMustHaveNameInEncodingContextExceptionMessage = "L'en-tête doit avoir un nom lorsqu'il est utilisé dans un contexte de codage." + moduleDoesNotContainFunctionExceptionMessage = 'Le module {0} ne contient pas la fonction {1} à convertir en une Route.' + pathToIconForGuiDoesNotExistExceptionMessage = "Le chemin vers l'icône pour l'interface graphique n'existe pas: {0}" + noTitleSuppliedForPageExceptionMessage = 'Aucun titre fourni pour la page {0}.' + certificateSuppliedForNonHttpsWssEndpointExceptionMessage = 'Certificat fourni pour un point de terminaison non HTTPS/WSS.' + cannotLockNullObjectExceptionMessage = 'Impossible de verrouiller un objet nul.' + showPodeGuiOnlyAvailableOnWindowsExceptionMessage = 'Show-PodeGui est actuellement disponible uniquement pour Windows PowerShell et PowerShell 7+ sur Windows.' + unlockSecretButNoScriptBlockExceptionMessage = 'Secret de déverrouillage fourni pour le type de coffre-fort personnalisé, mais aucun ScriptBlock de déverrouillage fourni.' + invalidIpAddressExceptionMessage = "L'adresse IP fournie n'est pas valide : {0}" + maxDaysInvalidExceptionMessage = 'MaxDays doit être égal ou supérieur à 0, mais a obtenu: {0}' + noRemoveScriptBlockForVaultExceptionMessage = "Aucun ScriptBlock de suppression fourni pour supprimer des secrets du coffre '{0}'" + noSecretExpectedForNoSignatureExceptionMessage = 'Aucun secret attendu pour aucune signature.' + noCertificateFoundExceptionMessage = "Aucun certificat n'a été trouvé dans {0}{1} pour '{2}'" + minValueInvalidExceptionMessage = "La valeur minimale '{0}' pour {1} n'est pas valide, elle doit être supérieure ou égale à {2}" + accessRequiresAuthenticationOnRoutesExceptionMessage = "L'accès nécessite une authentification sur les routes." + noSecretForHmac384ExceptionMessage = 'Aucun secret fourni pour le hachage HMAC384.' + windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = "Le support de l'authentification locale Windows est uniquement pour Windows." + definitionTagNotDefinedExceptionMessage = 'Tag de définition {0} non défini.' + noComponentInDefinitionExceptionMessage = "Aucun composant du type {0} nommé {1} n'est disponible dans la définition {2}." + noSmtpHandlersDefinedExceptionMessage = 'Aucun gestionnaire SMTP défini.' + sessionMiddlewareAlreadyInitializedExceptionMessage = 'Le Middleware de session a déjà été initialisé.' + reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = "La fonctionnalité du composant réutilisable 'pathItems' n'est pas disponible dans OpenAPI v3.0." + wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = 'Le caractère générique * pour les En-têtes est incompatible avec le commutateur AutoHeaders.' + noDataForFileUploadedExceptionMessage = "Aucune donnée pour le fichier '{0}' n'a été téléchargée dans la demande." + sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = "SSE ne peut être configuré que sur les requêtes avec une valeur d'en-tête Accept de text/event-stream." + noSessionAvailableToSaveExceptionMessage = 'Aucune session disponible pour sauvegarder.' + pathParameterRequiresRequiredSwitchExceptionMessage = "Si l'emplacement du paramètre est 'Path', le paramètre switch 'Required' est obligatoire." + noOpenApiUrlSuppliedExceptionMessage = 'Aucune URL OpenAPI fournie pour {0}.' + maximumConcurrentSchedulesInvalidExceptionMessage = 'Les calendriers simultanés maximum doivent être >=1 mais obtenu: {0}' + snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = 'Les Snapins sont uniquement pris en charge sur Windows PowerShell.' + eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = "La journalisation dans le Visualisateur d'événements n'est prise en charge que sous Windows." + parametersMutuallyExclusiveExceptionMessage = "Les paramètres '{0}' et '{1}' sont mutuellement exclusifs." + pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = "La fonction PathItems n'est pas prise en charge dans OpenAPI v3.0.x" + openApiParameterRequiresNameExceptionMessage = 'Le paramètre OpenApi nécessite un nom spécifié.' + maximumConcurrentTasksLessThanMinimumExceptionMessage = 'Le nombre maximum de tâches simultanées ne peut pas être inférieur au minimum de {0}, mais a obtenu : {1}' + noSemaphoreFoundExceptionMessage = "Aucun sémaphore trouvé appelé '{0}'" + singleValueForIntervalExceptionMessage = "Vous ne pouvez fournir qu'une seule valeur {0} lorsque vous utilisez des intervalles." + jwtNotYetValidExceptionMessage = "Le JWT n'est pas encore valide pour une utilisation." + verbAlreadyDefinedForUrlExceptionMessage = '[Verbe] {0} : Déjà défini pour {1}' + noSecretNamedMountedExceptionMessage = "Aucun Secret nommé '{0}' n'a été monté." + moduleOrVersionNotFoundExceptionMessage = 'Module ou version introuvable sur {0} : {1}@{2}' + noScriptBlockSuppliedExceptionMessage = 'Aucun ScriptBlock fourni.' + noSecretVaultRegisteredExceptionMessage = "Aucun coffre-fort de secrets enregistré sous le nom '{0}'." + nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = 'Un nom est requis pour le point de terminaison si le paramètre RedirectTo est fourni.' + openApiLicenseObjectRequiresNameExceptionMessage = "L'objet OpenAPI 'license' nécessite la propriété 'name'. Utilisez le paramètre -LicenseName." + sourcePathDoesNotExistForStaticRouteExceptionMessage = "[{0})] {1}: Le chemin source fourni pour la Route statique n'existe pas: {2}" + noNameForWebSocketDisconnectExceptionMessage = 'Aucun Nom fourni pour déconnecter le WebSocket.' + certificateExpiredExceptionMessage = "Le certificat '{0}' a expiré: {1}" + secretVaultUnlockExpiryDateInPastExceptionMessage = "La date d'expiration du déverrouillage du Coffre-Fort de Secrets est dans le passé (UTC) : {0}" + invalidExceptionTypeExceptionMessage = "L'exception est d'un type non valide, doit être soit WebException soit HttpRequestException, mais a obtenu : {0}" + invalidSecretValueTypeExceptionMessage = "La valeur du secret est d'un type non valide. Types attendus : String, SecureString, HashTable, Byte[], ou PSCredential. Mais a obtenu : {0}" + explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = "Le mode TLS explicite n'est pris en charge que sur les points de terminaison SMTPS et TCPS." + discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = "Le paramètre 'DiscriminatorMapping' ne peut être utilisé que lorsque 'DiscriminatorProperty' est présent." + scriptErrorExceptionMessage = "Erreur '{0}' dans le script {1} {2} (ligne {3}) char {4} en exécutant {5} sur l'objet {6} '{7}' Classe : {8} ClasseBase : {9}" + cannotSupplyIntervalForQuarterExceptionMessage = "Impossible de fournir une valeur d'intervalle pour chaque trimestre." + scheduleEndTimeMustBeInFutureExceptionMessage = '[Calendrier] {0}: La valeur de EndTime doit être dans le futur.' + invalidJwtSignatureSuppliedExceptionMessage = 'Signature JWT fournie invalide.' + noSetScriptBlockForVaultExceptionMessage = "Aucun ScriptBlock de configuration fourni pour mettre à jour/créer des secrets dans le coffre '{0}'" + accessMethodNotExistForMergingExceptionMessage = "La méthode d'accès n'existe pas pour la fusion : {0}" + defaultAuthNotInListExceptionMessage = "L'authentification par défaut '{0}' n'est pas dans la liste d'authentification fournie." + parameterHasNoNameExceptionMessage = "Le paramètre n'a pas de nom. Veuillez donner un nom à ce composant en utilisant le paramètre 'Name'." + methodPathAlreadyDefinedForUrlExceptionMessage = '[{0}] {1} : Déjà défini pour {2}' + fileWatcherAlreadyDefinedExceptionMessage = "Un Observateur de fichiers nommé '{0}' a déjà été défini." + noServiceHandlersDefinedExceptionMessage = 'Aucun gestionnaire de service défini.' + secretRequiredForCustomSessionStorageExceptionMessage = "Un secret est requis lors de l'utilisation d'un stockage de session personnalisé." + secretManagementModuleNotInstalledExceptionMessage = "Le module Microsoft.PowerShell.SecretManagement n'est pas installé." + noPathSuppliedForRouteExceptionMessage = 'Aucun chemin fourni pour la route.' + validationOfAnyOfSchemaNotSupportedExceptionMessage = "La validation d'un schéma qui inclut 'anyof' n'est pas prise en charge." + iisAuthSupportIsForWindowsOnlyExceptionMessage = "Le support de l'authentification IIS est uniquement pour Windows." + oauth2InnerSchemeInvalidExceptionMessage = 'Le OAuth2 InnerScheme ne peut être que Basic ou Form, mais obtenu : {0}' + noRoutePathSuppliedForPageExceptionMessage = 'Aucun chemin de route fourni pour la page {0}.' + cacheStorageNotFoundForExistsExceptionMessage = "Le stockage de cache nommé '{0}' est introuvable lors de la tentative de vérification de l'existence de l'élément mis en cache '{1}'." + handlerAlreadyDefinedExceptionMessage = '[{0}] {1}: Handler déjà défini.' + sessionsNotConfiguredExceptionMessage = "Les sessions n'ont pas été configurées." + propertiesTypeObjectAssociationExceptionMessage = 'Seules les propriétés de type Objet peuvent être associées à {0}.' + sessionsRequiredForSessionPersistentAuthExceptionMessage = "Des sessions sont nécessaires pour utiliser l'authentification persistante par session." + invalidPathWildcardOrDirectoryExceptionMessage = 'Le chemin fourni ne peut pas être un caractère générique ou un répertoire : {0}' + accessMethodAlreadyDefinedExceptionMessage = "Méthode d'accès déjà définie : {0}" + parametersValueOrExternalValueMandatoryExceptionMessage = "Les paramètres 'Value' ou 'ExternalValue' sont obligatoires." + maximumConcurrentTasksInvalidExceptionMessage = 'Le nombre maximum de tâches simultanées doit être >=1, mais a obtenu : {0}' + cannotCreatePropertyWithoutTypeExceptionMessage = "Impossible de créer la propriété car aucun type n'est défini." + authMethodNotExistForMergingExceptionMessage = "La méthode d'authentification n'existe pas pour la fusion : {0}" + maxValueInvalidExceptionMessage = "La valeur maximale '{0}' pour {1} n'est pas valide, elle doit être inférieure ou égale à {2}" + endpointAlreadyDefinedExceptionMessage = "Un point de terminaison nommé '{0}' a déjà été défini." + eventAlreadyRegisteredExceptionMessage = 'Événement {0} déjà enregistré : {1}' + parameterNotSuppliedInRequestExceptionMessage = "Un paramètre nommé '{0}' n'a pas été fourni dans la demande ou aucune donnée n'est disponible." + cacheStorageNotFoundForSetExceptionMessage = "Le stockage de cache nommé '{0}' est introuvable lors de la tentative de définition de l'élément mis en cache '{1}'." + methodPathAlreadyDefinedExceptionMessage = '[{0}] {1} : Déjà défini.' + errorLoggingAlreadyEnabledExceptionMessage = 'La journalisation des erreurs est déjà activée.' + valueForUsingVariableNotFoundExceptionMessage = "Valeur pour '`$using:{0}' introuvable." + rapidPdfDoesNotSupportOpenApi31ExceptionMessage = "L'outil de documentation RapidPdf ne prend pas en charge OpenAPI 3.1" + oauth2ClientSecretRequiredExceptionMessage = "OAuth2 nécessite un Client Secret lorsque PKCE n'est pas utilisé." + invalidBase64JwtExceptionMessage = 'Valeur encodée en Base64 non valide trouvée dans le JWT' + noSessionToCalculateDataHashExceptionMessage = 'Aucune session disponible pour calculer le hachage de données.' + cacheStorageNotFoundForRemoveExceptionMessage = "Le stockage de cache nommé '{0}' est introuvable lors de la tentative de suppression de l'élément mis en cache '{1}'." + csrfMiddlewareNotInitializedExceptionMessage = "Le Middleware CSRF n'a pas été initialisé." + infoTitleMandatoryMessage = 'info.title est obligatoire.' + typeCanOnlyBeAssociatedWithObjectExceptionMessage = "Le type {0} ne peut être associé qu'à un Objet." + userFileDoesNotExistExceptionMessage = "Le fichier utilisateur n'existe pas : {0}" + routeParameterNeedsValidScriptblockExceptionMessage = 'Le paramètre de la route nécessite un ScriptBlock valide et non vide.' + nextTriggerCalculationErrorExceptionMessage = 'Il semble que quelque chose ait mal tourné lors de la tentative de calcul de la prochaine date et heure de déclenchement : {0}' + cannotLockValueTypeExceptionMessage = 'Impossible de verrouiller un [ValueTypes].' + failedToCreateOpenSslCertExceptionMessage = 'Échec de la création du certificat openssl : {0}' + jwtExpiredExceptionMessage = 'Le JWT a expiré.' + openingGuiMessage = "Ouverture de l'interface graphique." + multiTypePropertiesRequireOpenApi31ExceptionMessage = 'Les propriétés multi-types nécessitent OpenApi Version 3.1 ou supérieure.' + noNameForWebSocketRemoveExceptionMessage = 'Aucun Nom fourni pour supprimer le WebSocket.' + maxSizeInvalidExceptionMessage = 'MaxSize doit être égal ou supérieur à 0, mais a obtenu: {0}' + iisShutdownMessage = "(Arrêt de l'IIS)" + cannotUnlockValueTypeExceptionMessage = 'Impossible de déverrouiller un [ValueTypes].' + noJwtSignatureForAlgorithmExceptionMessage = 'Aucune signature JWT fournie pour {0}.' + maximumConcurrentWebSocketThreadsInvalidExceptionMessage = 'Le nombre maximum de threads WebSocket simultanés doit être >=1, mais a obtenu : {0}' + acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = "Le message de reconnaissance n'est pris en charge que sur les points de terminaison SMTP et TCP." + failedToConnectToUrlExceptionMessage = "Échec de la connexion à l'URL : {0}" + failedToAcquireMutexOwnershipExceptionMessage = "Échec de l'acquisition de la propriété du mutex. Nom du mutex: {0}" + sessionsRequiredForOAuth2WithPKCEExceptionMessage = 'Des sessions sont nécessaires pour utiliser OAuth2 avec PKCE.' + failedToConnectToWebSocketExceptionMessage = 'Échec de la connexion au WebSocket : {0}' + unsupportedObjectExceptionMessage = 'Objet non pris en charge' + failedToParseAddressExceptionMessage = "Échec de l'analyse de '{0}' en tant qu'adresse IP/Hôte:Port valide" + mustBeRunningWithAdminPrivilegesExceptionMessage = 'Doit être exécuté avec des privilèges administratifs pour écouter sur des adresses autres que localhost.' + specificationMessage = 'Spécification' + cacheStorageNotFoundForClearExceptionMessage = "Le stockage de cache nommé '{0}' est introuvable lors de la tentative de vider le cache." + restartingServerMessage = 'Redémarrage du serveur...' + cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = "Impossible de fournir un intervalle lorsque le paramètre 'Every' est défini sur None." + unsupportedJwtAlgorithmExceptionMessage = "L'algorithme JWT n'est actuellement pas pris en charge : {0}" + websocketsNotConfiguredForSignalMessagesExceptionMessage = 'Les WebSockets ne sont pas configurés pour envoyer des messages de signal.' + invalidLogicTypeInHashtableMiddlewareExceptionMessage = 'Un Middleware Hashtable fourni a un type de logique non valide. Attendu ScriptBlock, mais a obtenu : {0}' + maximumConcurrentSchedulesLessThanMinimumExceptionMessage = 'Les calendriers simultanés maximum ne peuvent pas être inférieurs au minimum de {0} mais obtenu: {1}' + failedToAcquireSemaphoreOwnershipExceptionMessage = "Échec de l'acquisition de la propriété du sémaphore. Nom du sémaphore: {0}" + propertiesParameterWithoutNameExceptionMessage = "Les paramètres Properties ne peuvent pas être utilisés si la propriété n'a pas de nom." + customSessionStorageMethodNotImplementedExceptionMessage = "Le stockage de session personnalisé n'implémente pas la méthode requise '{0}()'." + authenticationMethodDoesNotExistExceptionMessage = "La méthode d'authentification n'existe pas : {0}" + webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = "La fonction Webhooks n'est pas prise en charge dans OpenAPI v3.0.x" + invalidContentTypeForSchemaExceptionMessage = "'content-type' invalide trouvé pour le schéma : {0}" + noUnlockScriptBlockForVaultExceptionMessage = "Aucun ScriptBlock de déverrouillage fourni pour déverrouiller le coffre '{0}'" + definitionTagMessage = 'Définition {0} :' + failedToOpenRunspacePoolExceptionMessage = "Échec de l'ouverture de RunspacePool : {0}" + verbNoLogicPassedExceptionMessage = '[Verbe] {0} : Aucune logique transmise' + noMutexFoundExceptionMessage = "Aucun mutex trouvé appelé '{0}'" + documentationMessage = 'Documentation' + timerAlreadyDefinedExceptionMessage = '[Minuteur] {0}: Minuteur déjà défini.' + invalidPortExceptionMessage = 'Le port ne peut pas être négatif : {0}' + viewsFolderNameAlreadyExistsExceptionMessage = 'Le nom du dossier Views existe déjà: {0}' + noNameForWebSocketResetExceptionMessage = 'Aucun Nom fourni pour réinitialiser le WebSocket.' + mergeDefaultAuthNotInListExceptionMessage = "L'authentification MergeDefault '{0}' n'est pas dans la liste d'authentification fournie." + descriptionRequiredExceptionMessage = 'Une description est requise.' + pageNameShouldBeAlphaNumericExceptionMessage = 'Le nom de la page doit être une valeur alphanumérique valide: {0}' + defaultValueNotBooleanOrEnumExceptionMessage = "La valeur par défaut n'est pas un booléen et ne fait pas partie de l'énumération." + openApiComponentSchemaDoesNotExistExceptionMessage = "Le schéma du composant OpenApi {0} n'existe pas." + timerParameterMustBeGreaterThanZeroExceptionMessage = '[Minuteur] {0}: {1} doit être supérieur à 0.' + taskTimedOutExceptionMessage = 'La tâche a expiré après {0}ms.' + scheduleStartTimeAfterEndTimeExceptionMessage = "[Calendrier] {0}: Ne peut pas avoir un 'StartTime' après 'EndTime'" + infoVersionMandatoryMessage = 'info.version est obligatoire.' + cannotUnlockNullObjectExceptionMessage = 'Impossible de déverrouiller un objet nul.' + nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = "Un ScriptBlock non vide est requis pour le schéma d'authentification personnalisé." + validationOfOneOfSchemaNotSupportedExceptionMessage = "La validation d'un schéma qui inclut 'oneof' n'est pas prise en charge." + routeParameterCannotBeNullExceptionMessage = "Le paramètre 'Route' ne peut pas être nul." + cacheStorageAlreadyExistsExceptionMessage = "Un stockage de cache nommé '{0}' existe déjà." + loggingMethodRequiresValidScriptBlockExceptionMessage = "La méthode de sortie fournie pour la méthode de journalisation '{0}' nécessite un ScriptBlock valide." + scopedVariableAlreadyDefinedExceptionMessage = 'La variable à portée est déjà définie : {0}' + oauth2RequiresAuthorizeUrlExceptionMessage = "OAuth2 nécessite une URL d'autorisation." + pathNotExistExceptionMessage = "Le chemin n'existe pas : {0}" + noDomainServerNameForWindowsAdAuthExceptionMessage = "Aucun nom de serveur de domaine n'a été fourni pour l'authentification Windows AD." + suppliedDateAfterScheduleEndTimeExceptionMessage = "La date fournie est postérieure à l'heure de fin du calendrier à {0}" + wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = 'Le caractère générique * pour les Méthodes est incompatible avec le commutateur AutoMethods.' + cannotSupplyIntervalForYearExceptionMessage = "Impossible de fournir une valeur d'intervalle pour chaque année." + missingComponentsMessage = 'Composant(s) manquant(s)' + invalidStrictTransportSecurityDurationExceptionMessage = 'Durée Strict-Transport-Security invalide fournie : {0}. Doit être supérieure à 0.' + noSecretForHmac512ExceptionMessage = 'Aucun secret fourni pour le hachage HMAC512.' + daysInMonthExceededExceptionMessage = "{0} n'a que {1} jours, mais {2} a été fourni." + nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = 'Un ScriptBlock non vide est requis pour la méthode de journalisation personnalisée.' + encodingAttributeOnlyAppliesToMultipartExceptionMessage = "L'attribut d'encodage s'applique uniquement aux corps de requête multipart et application/x-www-form-urlencoded." + suppliedDateBeforeScheduleStartTimeExceptionMessage = "La date fournie est antérieure à l'heure de début du calendrier à {0}" + unlockSecretRequiredExceptionMessage = "Une propriété 'UnlockSecret' est requise lors de l'utilisation de Microsoft.PowerShell.SecretStore" + noLogicPassedForMethodRouteExceptionMessage = '[{0}] {1}: Aucune logique passée.' + bodyParserAlreadyDefinedForContentTypeExceptionMessage = 'Un analyseur de corps est déjà défini pour le type de contenu {0}.' + invalidJwtSuppliedExceptionMessage = 'JWT fourni invalide.' + sessionsRequiredForFlashMessagesExceptionMessage = 'Des sessions sont nécessaires pour utiliser les messages Flash.' + outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = 'La méthode de sortie fournie pour la journalisation des requêtes nécessite un ScriptBlock valide.' + semaphoreAlreadyExistsExceptionMessage = 'Un sémaphore avec le nom suivant existe déjà: {0}' + invalidJwtHeaderAlgorithmSuppliedExceptionMessage = "Algorithme de l'en-tête JWT fourni invalide." + oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = "Le fournisseur OAuth2 ne supporte pas le type de subvention 'password' requis par l'utilisation d'un InnerScheme." + invalidAliasFoundExceptionMessage = 'Alias {0} non valide trouvé : {1}' + scheduleDoesNotExistExceptionMessage = "Le calendrier '{0}' n'existe pas." + accessMethodNotExistExceptionMessage = "La méthode d'accès n'existe pas : {0}" + oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = "Le fournisseur OAuth2 ne supporte pas le type de réponse 'code'." + untestedPowerShellVersionWarningMessage = "[AVERTISSEMENT] Pode {0} n'a pas été testé sur PowerShell {1}, car il n'était pas disponible lors de la sortie de Pode." + secretVaultAlreadyRegisteredAutoImportExceptionMessage = "Un coffre-fort secret avec le nom '{0}' a déjà été enregistré lors de l'importation automatique des coffres-forts secrets." + schemeRequiresValidScriptBlockExceptionMessage = "Le schéma fourni pour le validateur d'authentification '{0}' nécessite un ScriptBlock valide." + serverLoopingMessage = 'Boucle du serveur toutes les {0} secondes' + certificateThumbprintsNameSupportedOnWindowsExceptionMessage = 'Les empreintes digitales/Noms de certificat ne sont pris en charge que sous Windows.' + sseConnectionNameRequiredExceptionMessage = "Un nom de connexion SSE est requis, soit de -Name soit de $`$WebEvent.Sse.Name" + invalidMiddlewareTypeExceptionMessage = "Un des Middlewares fournis est d'un type non valide. Attendu ScriptBlock ou Hashtable, mais a obtenu : {0}" + noSecretForJwtSignatureExceptionMessage = 'Aucun secret fourni pour la signature JWT.' + modulePathDoesNotExistExceptionMessage = "Le chemin du module n'existe pas : {0}" + taskAlreadyDefinedExceptionMessage = '[Tâche] {0} : Tâche déjà définie.' + verbAlreadyDefinedExceptionMessage = '[Verbe] {0} : Déjà défini' + clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = 'Les certificats client ne sont pris en charge que sur les points de terminaison HTTPS.' + endpointNameNotExistExceptionMessage = "Un point de terminaison avec le nom '{0}' n'existe pas." + middlewareNoLogicSuppliedExceptionMessage = '[Middleware] : Aucune logique fournie dans le ScriptBlock.' + scriptBlockRequiredForMergingUsersExceptionMessage = 'Un ScriptBlock est requis pour fusionner plusieurs utilisateurs authentifiés en un seul objet lorsque Valid est All.' + secretVaultAlreadyRegisteredExceptionMessage = "Un Coffre-Fort de Secrets avec le nom '{0}' a déjà été enregistré{1}." + deprecatedTitleVersionDescriptionWarningMessage = "AVERTISSEMENT : Titre, Version et Description sur 'Enable-PodeOpenApi' sont obsolètes. Veuillez utiliser 'Add-PodeOAInfo' à la place." + undefinedOpenApiReferencesMessage = 'Références OpenAPI non définies :' + doneMessage = 'Terminé' + swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = 'Cette version de Swagger-Editor ne prend pas en charge OpenAPI 3.1' + durationMustBeZeroOrGreaterExceptionMessage = 'La durée doit être égale ou supérieure à 0, mais a obtenu : {0}s' + viewsPathDoesNotExistExceptionMessage = "Le chemin des Views n'existe pas: {0}" + discriminatorIncompatibleWithAllOfExceptionMessage = "Le paramètre 'Discriminator' est incompatible avec 'allOf'." + noNameForWebSocketSendMessageExceptionMessage = 'Aucun Nom fourni pour envoyer un message au WebSocket.' + hashtableMiddlewareNoLogicExceptionMessage = "Un Middleware Hashtable fourni n'a aucune logique définie." + openApiInfoMessage = 'Informations OpenAPI :' + invalidSchemeForAuthValidatorExceptionMessage = "Le schéma '{0}' fourni pour le validateur d'authentification '{1}' nécessite un ScriptBlock valide." + sseFailedToBroadcastExceptionMessage = 'SSE a échoué à diffuser en raison du niveau de diffusion SSE défini pour {0} : {1}.' + adModuleWindowsOnlyExceptionMessage = 'Le module Active Directory est uniquement disponible sur Windows.' + requestLoggingAlreadyEnabledExceptionMessage = 'La journalisation des requêtes est déjà activée.' + invalidAccessControlMaxAgeDurationExceptionMessage = 'Durée Access-Control-Max-Age invalide fournie : {0}. Doit être supérieure à 0.' +} + diff --git a/src/Locales/it/Pode.psd1 b/src/Locales/it/Pode.psd1 index da2d67c0a..d936a6ff0 100644 --- a/src/Locales/it/Pode.psd1 +++ b/src/Locales/it/Pode.psd1 @@ -1,284 +1,285 @@ -ConvertFrom-StringData -StringData @' -adModuleWindowsOnlyExceptionMessage = Il modulo Active Directory è disponibile solo su Windows. -adModuleNotInstalledExceptionMessage = Il modulo Active Directory non è installato. -secretManagementModuleNotInstalledExceptionMessage = Il modulo Microsoft.PowerShell.SecretManagement non è installato. -secretVaultAlreadyRegisteredAutoImportExceptionMessage = Una cassaforte segreta con il nome '{0}' è già stata registrata durante l'importazione automatica delle cassaforti segrete. -failedToOpenRunspacePoolExceptionMessage = Impossibile aprire RunspacePool: {0} -cronExpressionInvalidExceptionMessage = L'espressione Cron dovrebbe essere composta solo da 5 parti: {0} -invalidAliasFoundExceptionMessage = Alias {0} non valido trovato: {1} -invalidAtomCharacterExceptionMessage = Carattere atomo non valido: {0} -minValueGreaterThanMaxExceptionMessage = Il valore minimo per {0} non deve essere maggiore del valore massimo. -minValueInvalidExceptionMessage = Il valore minimo '{0}' per {1} non è valido, dovrebbe essere maggiore o uguale a {2} -maxValueInvalidExceptionMessage = Il valore massimo '{0}' per {1} non è valido, dovrebbe essere minore o uguale a {2} -valueOutOfRangeExceptionMessage = Il valore '{0}' per {1} non è valido, dovrebbe essere compreso tra {2} e {3} -daysInMonthExceededExceptionMessage = {0} ha solo {1} giorni, ma è stato fornito {2}. -nextTriggerCalculationErrorExceptionMessage = Sembra che ci sia stato un errore nel tentativo di calcolare la prossima data e ora del trigger: {0} -incompatiblePodeDllExceptionMessage = È caricata una versione incompatibile esistente di Pode.DLL {0}. È richiesta la versione {1}. Apri una nuova sessione Powershell/pwsh e riprova. -endpointNotExistExceptionMessage = Endpoint con protocollo '{0}' e indirizzo '{1}' o indirizzo locale '{2}' non esiste. -endpointNameNotExistExceptionMessage = Endpoint con nome '{0}' non esiste. -failedToConnectToUrlExceptionMessage = Impossibile connettersi all'URL: {0} -failedToParseAddressExceptionMessage = Impossibile analizzare '{0}' come indirizzo IP/Host:Port valido -invalidIpAddressExceptionMessage = L'indirizzo IP fornito non è valido: {0} -invalidPortExceptionMessage = La porta non può essere negativa: {0} -pathNotExistExceptionMessage = Il percorso non esiste: {0} -noSecretForHmac256ExceptionMessage = Nessun segreto fornito per l'hash HMAC256. -noSecretForHmac384ExceptionMessage = Nessun segreto fornito per l'hash HMAC384. -noSecretForHmac512ExceptionMessage = Nessun segreto fornito per l'hash HMAC512. -noSecretForJwtSignatureExceptionMessage = Nessun segreto fornito per la firma JWT. -noSecretExpectedForNoSignatureExceptionMessage = Non era previsto alcun segreto per nessuna firma. -unsupportedJwtAlgorithmExceptionMessage = L'algoritmo JWT non è attualmente supportato: {0} -invalidBase64JwtExceptionMessage = Valore codificato Base64 non valido trovato in JWT -invalidJsonJwtExceptionMessage = Valore JSON non valido trovato in JWT -unsupportedFunctionInServerlessContextExceptionMessage = La funzione {0} non è supportata in un contesto senza server. -invalidPathWildcardOrDirectoryExceptionMessage = Il percorso fornito non può essere un carattere jolly o una directory: {0} -invalidExceptionTypeExceptionMessage = L'eccezione è di un tipo non valido, dovrebbe essere WebException o HttpRequestException, ma è stato ottenuto: {0} -pathToLoadNotFoundExceptionMessage = Percorso per caricare {0} non trovato: {1} -singleValueForIntervalExceptionMessage = Puoi fornire solo un singolo valore {0} quando si utilizzano gli intervalli. -scriptErrorExceptionMessage = Errore '{0}' nello script {1} {2} (riga {3}) carattere {4} eseguendo {5} su {6} oggetto '{7}' Classe: {8} Classe di base: {9} -noScriptBlockSuppliedExceptionMessage = Nessun ScriptBlock fornito. -iisAspnetcoreTokenMissingExceptionMessage = IIS ASPNETCORE_TOKEN è mancante. -propertiesParameterWithoutNameExceptionMessage = I parametri Properties non possono essere utilizzati se la proprietà non ha un nome. -multiTypePropertiesRequireOpenApi31ExceptionMessage = Le proprietà multi-tipo richiedono OpenApi versione 3.1 o superiore. -openApiVersionPropertyMandatoryExceptionMessage = La proprietà della versione OpenApi è obbligatoria. -webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = La funzionalità Webhooks non è supportata in OpenAPI v3.0.x -authenticationMethodDoesNotExistExceptionMessage = Il metodo di autenticazione non esiste: {0} -unsupportedObjectExceptionMessage = Oggetto non supportato -validationOfAnyOfSchemaNotSupportedExceptionMessage = La validazione di uno schema che include 'anyof' non è supportata. -validationOfOneOfSchemaNotSupportedExceptionMessage = La validazione di uno schema che include 'oneof' non è supportata. -cannotCreatePropertyWithoutTypeExceptionMessage = Impossibile creare la proprietà perché non è definito alcun tipo. -headerMustHaveNameInEncodingContextExceptionMessage = L'intestazione deve avere un nome quando viene utilizzata in un contesto di codifica. -descriptionRequiredExceptionMessage = È necessaria una descrizione. -openApiDocumentNotCompliantExceptionMessage = Il documento OpenAPI non è conforme. -noComponentInDefinitionExceptionMessage = Nessun componente del tipo {0} chiamato {1} è disponibile nella definizione {2}. -methodPathAlreadyDefinedExceptionMessage = [{0}] {1}: Già definito. -methodPathAlreadyDefinedForUrlExceptionMessage = [{0}] {1}: Già definito per {2} -invalidMiddlewareTypeExceptionMessage = Uno dei Middleware forniti è di un tipo non valido. Previsto ScriptBlock o Hashtable, ma ottenuto: {0} -hashtableMiddlewareNoLogicExceptionMessage = Un Middleware di tipo Hashtable fornito non ha una logica definita. -invalidLogicTypeInHashtableMiddlewareExceptionMessage = Un Middleware di tipo Hashtable fornito ha un tipo di logica non valido. Previsto ScriptBlock, ma ottenuto: {0} -scopedVariableAlreadyDefinedExceptionMessage = Variabile con ambito già definita: {0} -valueForUsingVariableNotFoundExceptionMessage = Impossibile trovare il valore per '`$using:{0}'. -unlockSecretRequiredExceptionMessage = È necessaria una proprietà 'UnlockSecret' quando si utilizza Microsoft.PowerShell.SecretStore -unlockSecretButNoScriptBlockExceptionMessage = Segreto di sblocco fornito per tipo di cassaforte segreta personalizzata, ma nessun ScriptBlock di sblocco fornito. -noUnlockScriptBlockForVaultExceptionMessage = Nessun ScriptBlock di sblocco fornito per sbloccare la cassaforte '{0}' -noSetScriptBlockForVaultExceptionMessage = Nessun ScriptBlock fornito per aggiornare/creare segreti nella cassaforte '{0}' -noRemoveScriptBlockForVaultExceptionMessage = Nessun ScriptBlock fornito per rimuovere segreti dalla cassaforte '{0}' -invalidSecretValueTypeExceptionMessage = Il valore segreto è di un tipo non valido. Tipi previsti: String, SecureString, HashTable, Byte[] o PSCredential. Ma ottenuto: {0} -limitValueCannotBeZeroOrLessExceptionMessage = Il valore limite non può essere 0 o inferiore per {0} -secondsValueCannotBeZeroOrLessExceptionMessage = Il valore dei secondi non può essere 0 o inferiore per {0} -failedToCreateOpenSslCertExceptionMessage = Impossibile creare il certificato openssl: {0} -certificateThumbprintsNameSupportedOnWindowsExceptionMessage = Impronte digitali/nome del certificato supportati solo su Windows. -noCertificateFoundExceptionMessage = Nessun certificato trovato in {0}\{1} per '{2}' -runspacePoolFailedToLoadExceptionMessage = Impossibile caricare RunspacePool per {0}. -noServiceHandlersDefinedExceptionMessage = Non sono stati definiti gestori di servizio. -noSessionToSetOnResponseExceptionMessage = Non c'è nessuna sessione disponibile da impostare sulla risposta. -noSessionToCalculateDataHashExceptionMessage = Nessuna sessione disponibile per calcolare l'hash dei dati. -moduleOrVersionNotFoundExceptionMessage = Modulo o versione non trovati su {0}: {1}@{2} -noSmtpHandlersDefinedExceptionMessage = Non sono stati definiti gestori SMTP. -taskTimedOutExceptionMessage = Il compito è scaduto dopo {0}ms. -verbAlreadyDefinedExceptionMessage = [Verbo] {0}: Già definito -verbAlreadyDefinedForUrlExceptionMessage = [Verbo] {0}: Già definito per {1} -pathOrScriptBlockRequiredExceptionMessage = È necessario un percorso o un ScriptBlock per ottenere i valori di accesso personalizzati. -accessMethodAlreadyDefinedExceptionMessage = Metodo di accesso già definito: {0} -accessMethodNotExistForMergingExceptionMessage = Il metodo di accesso non esiste per l'unione: {0} -routeAlreadyContainsCustomAccessExceptionMessage = Il percorso '[{0}] {1}' contiene già un accesso personalizzato con nome '{2}' -accessMethodNotExistExceptionMessage = Il metodo di accesso non esiste: {0} -pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = La funzionalità PathItems non è supportata in OpenAPI v3.0.x -nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = È richiesto uno ScriptBlock non vuoto per lo schema di autenticazione personalizzato. -oauth2InnerSchemeInvalidExceptionMessage = OAuth2 InnerScheme può essere solo uno tra Basic o Form, ma è stato ottenuto: {0} -sessionsRequiredForOAuth2WithPKCEExceptionMessage = Sono necessarie sessioni per utilizzare OAuth2 con PKCE -oauth2ClientSecretRequiredExceptionMessage = OAuth2 richiede un Client Secret quando non si utilizza PKCE. -authMethodAlreadyDefinedExceptionMessage = Metodo di autenticazione già definito: {0} -invalidSchemeForAuthValidatorExceptionMessage = Lo schema '{0}' fornito per il validatore di autenticazione '{1}' richiede uno ScriptBlock valido. -sessionsRequiredForSessionPersistentAuthExceptionMessage = Sono necessarie sessioni per utilizzare l'autenticazione persistente della sessione. -oauth2RequiresAuthorizeUrlExceptionMessage = OAuth2 richiede che venga fornita un'URL di autorizzazione -authMethodNotExistForMergingExceptionMessage = Il metodo di autenticazione non esiste per la fusione: {0} -mergeDefaultAuthNotInListExceptionMessage = L'autenticazione MergeDefault '{0}' non è nella lista di autenticazione fornita. -defaultAuthNotInListExceptionMessage = L'autenticazione predefinita '{0}' non è nella lista di autenticazione fornita. -scriptBlockRequiredForMergingUsersExceptionMessage = È richiesto uno ScriptBlock per unire più utenti autenticati in un unico oggetto quando Valid è All. -noDomainServerNameForWindowsAdAuthExceptionMessage = Non è stato fornito alcun nome di server di dominio per l'autenticazione AD di Windows -sessionsNotConfiguredExceptionMessage = Le sessioni non sono state configurate. -windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = Il supporto per l'autenticazione locale di Windows è solo per Windows. -iisAuthSupportIsForWindowsOnlyExceptionMessage = Il supporto per l'autenticazione IIS è solo per Windows. -noAlgorithmInJwtHeaderExceptionMessage = Nessun algoritmo fornito nell'header JWT. -invalidJwtSuppliedExceptionMessage = JWT fornito non valido. -invalidJwtHeaderAlgorithmSuppliedExceptionMessage = Algoritmo dell'header JWT fornito non valido. -noJwtSignatureForAlgorithmExceptionMessage = Nessuna firma JWT fornita per {0}. -expectedNoJwtSignatureSuppliedExceptionMessage = Si prevedeva che non fosse fornita alcuna firma JWT. -invalidJwtSignatureSuppliedExceptionMessage = Firma JWT fornita non valida. -jwtExpiredExceptionMessage = JWT è scaduto. -jwtNotYetValidExceptionMessage = JWT non è ancora valido per l'uso. -snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = Gli Snapin sono supportati solo su Windows PowerShell. -userFileDoesNotExistExceptionMessage = Il file utente non esiste: {0} -schemeRequiresValidScriptBlockExceptionMessage = Lo schema fornito per il validatore di autenticazione '{0}' richiede uno ScriptBlock valido. -oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = Il provider OAuth2 non supporta il tipo di risposta 'code'. -oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = Il provider OAuth2 non supporta il tipo di concessione 'password' richiesto dall'utilizzo di un InnerScheme. -eventAlreadyRegisteredExceptionMessage = Evento {0} già registrato: {1} -noEventRegisteredExceptionMessage = Nessun evento {0} registrato: {1} -sessionsRequiredForFlashMessagesExceptionMessage = Le sessioni sono necessarie per utilizzare i messaggi Flash. -eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = La registrazione nel Visualizzatore eventi è supportata solo su Windows. -nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = È richiesto uno ScriptBlock non vuoto per il metodo di registrazione personalizzato. -requestLoggingAlreadyEnabledExceptionMessage = La registrazione delle richieste è già abilitata. -outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = Il metodo di output fornito per la registrazione delle richieste richiede uno ScriptBlock valido. -errorLoggingAlreadyEnabledExceptionMessage = La registrazione degli errori è già abilitata. -nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = È richiesto uno ScriptBlock non vuoto per il metodo di registrazione. -csrfMiddlewareNotInitializedExceptionMessage = Il Middleware CSRF non è stato inizializzato. -sessionsRequiredForCsrfExceptionMessage = Le sessioni sono necessarie per utilizzare CSRF a meno che non si vogliano usare i cookie. -middlewareNoLogicSuppliedExceptionMessage = [Middleware]: Nessuna logica fornita nello ScriptBlock. -parameterHasNoNameExceptionMessage = Il parametro non ha un nome. Assegna un nome a questo componente usando il parametro 'Name'. -reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = La funzione del componente riutilizzabile 'pathItems' non è disponibile in OpenAPI v3.0. -noPropertiesMutuallyExclusiveExceptionMessage = Il parametro 'NoProperties' è mutuamente esclusivo con 'Properties', 'MinProperties' e 'MaxProperties'. -discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = Il parametro 'DiscriminatorMapping' può essere utilizzato solo quando è presente 'DiscriminatorProperty'. -discriminatorIncompatibleWithAllOfExceptionMessage = Il parametro 'Discriminator' è incompatibile con 'allOf'. -typeCanOnlyBeAssociatedWithObjectExceptionMessage = Il tipo {0} può essere associato solo a un oggetto. -showPodeGuiOnlyAvailableOnWindowsExceptionMessage = Show-PodeGui è attualmente disponibile solo per Windows PowerShell e PowerShell 7+ su Windows. -nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = È richiesto un nome per l'endpoint se viene fornito il parametro RedirectTo. -clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = I certificati client sono supportati solo sugli endpoint HTTPS. -explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = La modalità TLS esplicita è supportata solo sugli endpoint SMTPS e TCPS. -acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = Il messaggio di conferma è supportato solo sugli endpoint SMTP e TCP. -crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = Il controllo di fine messaggio CRLF è supportato solo sugli endpoint TCP. -mustBeRunningWithAdminPrivilegesExceptionMessage = Deve essere eseguito con privilegi di amministratore per ascoltare gli indirizzi non locali. -certificateSuppliedForNonHttpsWssEndpointExceptionMessage = Certificato fornito per un endpoint non HTTPS/WSS. -websocketsNotConfiguredForSignalMessagesExceptionMessage = I WebSockets non sono configurati per inviare messaggi di segnale. -noPathSuppliedForRouteExceptionMessage = Nessun percorso fornito per la rotta. -accessRequiresAuthenticationOnRoutesExceptionMessage = L'accesso richiede l'autenticazione sulle rotte. -accessMethodDoesNotExistExceptionMessage = Il metodo di accesso non esiste: {0}. -routeParameterNeedsValidScriptblockExceptionMessage = Il parametro della rotta richiede uno ScriptBlock valido e non vuoto. -noCommandsSuppliedToConvertToRoutesExceptionMessage = Nessun comando fornito per convertirlo in rotte. -nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = È richiesto uno ScriptBlock non vuoto per creare una rotta di pagina. -sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSE può essere configurato solo su richieste con un valore di intestazione Accept di text/event-stream. -sseConnectionNameRequiredExceptionMessage = È richiesto un nome di connessione SSE, sia da -Name che da $`$WebEvent.Sse.Name -sseFailedToBroadcastExceptionMessage = SSE non è riuscito a trasmettere a causa del livello di trasmissione SSE definito per {0}: {1}. -podeNotInitializedExceptionMessage = Pode non è stato inizializzato. -invalidTaskTypeExceptionMessage = Il tipo di attività non è valido, previsto [System.Threading.Tasks.Task] o [hashtable]. -cannotLockValueTypeExceptionMessage = Non è possibile bloccare un [ValueTypes]. -cannotLockNullObjectExceptionMessage = Non è possibile bloccare un oggetto nullo. -failedToAcquireLockExceptionMessage = Impossibile acquisire un blocco sull'oggetto. -cannotUnlockValueTypeExceptionMessage = Non è possibile sbloccare un [ValueTypes]. -cannotUnlockNullObjectExceptionMessage = Non è possibile sbloccare un oggetto nullo. -sessionMiddlewareAlreadyInitializedExceptionMessage = Il Middleware della sessione è già stato inizializzato. -customSessionStorageMethodNotImplementedExceptionMessage = L'archiviazione delle sessioni personalizzata non implementa il metodo richiesto '{0}()'. -secretRequiredForCustomSessionStorageExceptionMessage = È necessario un segreto quando si utilizza l'archiviazione delle sessioni personalizzata. -noSessionAvailableToSaveExceptionMessage = Nessuna sessione disponibile per il salvataggio. -cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = Impossibile fornire un intervallo quando il parametro 'Every' è impostato su None. -cannotSupplyIntervalForQuarterExceptionMessage = Impossibile fornire un valore di intervallo per ogni trimestre. -cannotSupplyIntervalForYearExceptionMessage = Impossibile fornire un valore di intervallo per ogni anno. -secretVaultAlreadyRegisteredExceptionMessage = Un Vault dei Segreti con il nome '{0}' è già stato registrato{1}. -secretVaultUnlockExpiryDateInPastExceptionMessage = La data di scadenza per sbloccare il Vault dei Segreti è nel passato (UTC): {0} -secretAlreadyMountedExceptionMessage = Un Segreto con il nome '{0}' è già stato montato. -credentialsPassedWildcardForHeadersLiteralExceptionMessage = Quando vengono passate le Credenziali, il carattere jolly * per le Intestazioni sarà considerato come una stringa letterale e non come un carattere jolly. -wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = Il carattere jolly * per le Intestazioni è incompatibile con l'opzione AutoHeaders. -wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = Il carattere jolly * per i Metodi è incompatibile con l'opzione AutoMethods. -invalidAccessControlMaxAgeDurationExceptionMessage = Durata non valida fornita per Access-Control-Max-Age: {0}. Deve essere maggiore di 0. -noNameForWebSocketDisconnectExceptionMessage = Nessun nome fornito per disconnettere il WebSocket. -noNameForWebSocketRemoveExceptionMessage = Nessun nome fornito per rimuovere il WebSocket. -noNameForWebSocketSendMessageExceptionMessage = Nessun nome fornito per inviare un messaggio al WebSocket. -noSecretNamedMountedExceptionMessage = Nessun Segreto con il nome '{0}' è stato montato. -noNameForWebSocketResetExceptionMessage = Nessun nome fornito per reimpostare il WebSocket. -schemaValidationRequiresPowerShell610ExceptionMessage = La convalida dello schema richiede PowerShell versione 6.1.0 o superiore. -routeParameterCannotBeNullExceptionMessage = Il parametro 'Route' non può essere null. -encodingAttributeOnlyAppliesToMultipartExceptionMessage = L'attributo di codifica si applica solo ai corpi delle richieste multipart e application/x-www-form-urlencoded. -testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = 'Test-PodeOAComponentSchema' deve essere abilitato utilizzando 'Enable-PodeOpenApi -EnableSchemaValidation' -openApiComponentSchemaDoesNotExistExceptionMessage = Lo schema del componente OpenApi {0} non esiste. -openApiParameterRequiresNameExceptionMessage = Il parametro OpenApi richiede un nome specificato. -openApiLicenseObjectRequiresNameExceptionMessage = L'oggetto OpenAPI 'license' richiede la proprietà 'name'. Utilizzare il parametro -LicenseName. -parametersValueOrExternalValueMandatoryExceptionMessage = I parametri 'Value' o 'ExternalValue' sono obbligatori. -parametersMutuallyExclusiveExceptionMessage = I parametri '{0}' e '{1}' sono mutuamente esclusivi. -maximumConcurrentWebSocketThreadsInvalidExceptionMessage = Il numero massimo di thread WebSocket simultanei deve essere >=1, ma è stato ottenuto: {0} -maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = Il numero massimo di thread WebSocket simultanei non può essere inferiore al minimo di {0}, ma è stato ottenuto: {1} -alreadyConnectedToWebSocketExceptionMessage = Già connesso al WebSocket con il nome '{0}' -failedToConnectToWebSocketExceptionMessage = Connessione al WebSocket non riuscita: {0} -verbNoLogicPassedExceptionMessage = [Verbo] {0}: Nessuna logica passata -scriptPathDoesNotExistExceptionMessage = Il percorso dello script non esiste: {0} -failedToImportModuleExceptionMessage = Importazione del modulo non riuscita: {0} -modulePathDoesNotExistExceptionMessage = Il percorso del modulo non esiste: {0} -defaultValueNotBooleanOrEnumExceptionMessage = Il valore predefinito non è un booleano e non fa parte dell'enum. -propertiesTypeObjectAssociationExceptionMessage = Solo le proprietà di tipo Oggetto possono essere associate a {0}. -invalidContentTypeForSchemaExceptionMessage = 'content-type' non valido trovato per lo schema: {0} -openApiRequestStyleInvalidForParameterExceptionMessage = Lo stile della richiesta OpenApi non può essere {0} per un parametro {1}. -pathParameterRequiresRequiredSwitchExceptionMessage = Se la posizione del parametro è 'Path', il parametro switch 'Required' è obbligatorio. -operationIdMustBeUniqueForArrayExceptionMessage = OperationID: {0} deve essere univoco e non può essere applicato a una matrice. -operationIdMustBeUniqueExceptionMessage = OperationID: {0} deve essere univoco. -noOpenApiUrlSuppliedExceptionMessage = Nessun URL OpenAPI fornito per {0}. -noTitleSuppliedForPageExceptionMessage = Nessun titolo fornito per la pagina {0}. -noRoutePathSuppliedForPageExceptionMessage = Nessun percorso di rotta fornito per la pagina {0}. -swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = Questa versione di Swagger-Editor non supporta OpenAPI 3.1 -rapidPdfDoesNotSupportOpenApi31ExceptionMessage = Lo strumento di documentazione RapidPdf non supporta OpenAPI 3.1 -definitionTagNotDefinedExceptionMessage = Tag di definizione {0} non definito. -scopedVariableNotFoundExceptionMessage = Variabile di ambito non trovata: {0} -noSecretVaultRegisteredExceptionMessage = Nessun Vault dei Segreti con il nome '{0}' è stato registrato. -invalidStrictTransportSecurityDurationExceptionMessage = Durata Strict-Transport-Security non valida fornita: {0}. Deve essere maggiore di 0. -durationMustBeZeroOrGreaterExceptionMessage = La durata deve essere 0 o superiore, ma è stato ottenuto: {0}s -taskAlreadyDefinedExceptionMessage = [Attività] {0}: Attività già definita. -maximumConcurrentTasksInvalidExceptionMessage = Il numero massimo di attività simultanee deve essere >=1, ma è stato ottenuto: {0} -maximumConcurrentTasksLessThanMinimumExceptionMessage = Il numero massimo di attività simultanee non può essere inferiore al minimo di {0}, ma è stato ottenuto: {1} -taskDoesNotExistExceptionMessage = L'attività '{0}' non esiste. -cacheStorageNotFoundForRetrieveExceptionMessage = Memoria cache con nome '{0}' non trovata durante il tentativo di recuperare l'elemento memorizzato nella cache '{1}'. -cacheStorageNotFoundForSetExceptionMessage = Memoria cache con nome '{0}' non trovata durante il tentativo di impostare l'elemento memorizzato nella cache '{1}'. -cacheStorageNotFoundForExistsExceptionMessage = Memoria cache con nome '{0}' non trovata durante il tentativo di verificare se l'elemento memorizzato nella cache '{1}' esiste. -cacheStorageNotFoundForRemoveExceptionMessage = Memoria cache con nome '{0}' non trovata durante il tentativo di rimuovere l'elemento memorizzato nella cache '{1}'. -cacheStorageNotFoundForClearExceptionMessage = Memoria cache con nome '{0}' non trovata durante il tentativo di cancellare la cache. -cacheStorageAlreadyExistsExceptionMessage = Memoria cache con nome '{0}' esiste già. -pathToIconForGuiDoesNotExistExceptionMessage = Il percorso dell'icona per la GUI non esiste: {0} -invalidHostnameSuppliedExceptionMessage = Nome host fornito non valido: {0} -endpointAlreadyDefinedExceptionMessage = Un endpoint denominato '{0}' è già stato definito. -certificateExpiredExceptionMessage = Il certificato '{0}' è scaduto: {1} -endpointNotDefinedForRedirectingExceptionMessage = Non è stato definito un endpoint denominato '{0}' per il reindirizzamento. -fileWatcherAlreadyDefinedExceptionMessage = Un File Watcher con il nome '{0}' è già stato definito. -handlerAlreadyDefinedExceptionMessage = [{0}] {1}: Handler già definito. -maxDaysInvalidExceptionMessage = MaxDays deve essere 0 o superiore, ma è stato ottenuto: {0} -maxSizeInvalidExceptionMessage = MaxSize deve essere 0 o superiore, ma è stato ottenuto: {0} -loggingMethodAlreadyDefinedExceptionMessage = Metodo di registrazione già definito: {0} -loggingMethodRequiresValidScriptBlockExceptionMessage = Il metodo di output fornito per il metodo di registrazione '{0}' richiede un ScriptBlock valido. -csrfCookieRequiresSecretExceptionMessage = Quando si usano i cookie per CSRF, è necessario un Segreto. Puoi fornire un Segreto o impostare il segreto globale del Cookie - (Set-PodeCookieSecret '' -Global) -bodyParserAlreadyDefinedForContentTypeExceptionMessage = Un body-parser è già definito per il tipo di contenuto {0}. -middlewareAlreadyDefinedExceptionMessage = [Middleware] {0}: Middleware già definito. -parameterNotSuppliedInRequestExceptionMessage = Un parametro chiamato '{0}' non è stato fornito nella richiesta o non ci sono dati disponibili. -noDataForFileUploadedExceptionMessage = Nessun dato per il file '{0}' è stato caricato nella richiesta. -viewsFolderNameAlreadyExistsExceptionMessage = Il nome della cartella Views esiste già: {0} -viewsPathDoesNotExistExceptionMessage = Il percorso delle Views non esiste: {0} -timerAlreadyDefinedExceptionMessage = [Timer] {0}: Timer già definito. -timerParameterMustBeGreaterThanZeroExceptionMessage = [Timer] {0}: {1} deve essere maggiore di 0. -timerDoesNotExistExceptionMessage = Timer '{0}' non esiste. -mutexAlreadyExistsExceptionMessage = Un mutex con il seguente nome esiste già: {0} -noMutexFoundExceptionMessage = Nessun mutex trovato chiamato '{0}' -failedToAcquireMutexOwnershipExceptionMessage = Impossibile acquisire la proprietà del mutex. Nome del mutex: {0} -semaphoreAlreadyExistsExceptionMessage = Un semaforo con il seguente nome esiste già: {0} -failedToAcquireSemaphoreOwnershipExceptionMessage = Impossibile acquisire la proprietà del semaforo. Nome del semaforo: {0} -scheduleAlreadyDefinedExceptionMessage = [Pianificazione] {0}: Pianificazione già definita. -scheduleCannotHaveNegativeLimitExceptionMessage = [Pianificazione] {0}: Non può avere un limite negativo. -scheduleEndTimeMustBeInFutureExceptionMessage = [Pianificazione] {0}: Il valore di EndTime deve essere nel futuro. -scheduleStartTimeAfterEndTimeExceptionMessage = [Pianificazione] {0}: Non può avere un 'StartTime' dopo 'EndTime' -maximumConcurrentSchedulesInvalidExceptionMessage = I programmi concorrenti massimi devono essere >=1 ma ottenuto: {0} -maximumConcurrentSchedulesLessThanMinimumExceptionMessage = I programmi concorrenti massimi non possono essere inferiori al minimo di {0} ma ottenuto: {1} -scheduleDoesNotExistExceptionMessage = Il programma '{0}' non esiste. -suppliedDateBeforeScheduleStartTimeExceptionMessage = La data fornita è precedente all'ora di inizio del programma a {0} -suppliedDateAfterScheduleEndTimeExceptionMessage = La data fornita è successiva all'ora di fine del programma a {0} -noSemaphoreFoundExceptionMessage = Nessun semaforo trovato chiamato '{0}' -noLogicPassedForRouteExceptionMessage = Nessuna logica passata per la rotta: {0} -noPathSuppliedForStaticRouteExceptionMessage = [{0}]: Nessun percorso fornito per la rotta statica. -sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: Il percorso sorgente fornito per la rotta statica non esiste: {2} -noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: Nessuna logica passata. -moduleDoesNotContainFunctionExceptionMessage = Il modulo {0} non contiene la funzione {1} da convertire in una rotta. -pageNameShouldBeAlphaNumericExceptionMessage = Il nome della pagina dovrebbe essere un valore alfanumerico valido: {0} -filesHaveChangedMessage = I seguenti file sono stati modificati: -multipleEndpointsForGuiMessage = Sono stati definiti più endpoint, solo il primo sarà utilizzato per la GUI. -openingGuiMessage = Apertura della GUI. -listeningOnEndpointsMessage = In ascolto sui seguenti {0} endpoint [{1} thread]: -specificationMessage = Specifica -documentationMessage = Documentazione -restartingServerMessage = Riavvio del server... -doneMessage = Fatto -deprecatedTitleVersionDescriptionWarningMessage = AVVERTENZA: Titolo, Versione e Descrizione su 'Enable-PodeOpenApi' sono deprecati. Si prega di utilizzare 'Add-PodeOAInfo' invece. -undefinedOpenApiReferencesMessage = Riferimenti OpenAPI non definiti: -definitionTagMessage = Definizione {0}: -openApiGenerationDocumentErrorMessage = Errore nella generazione del documento OpenAPI: -infoTitleMandatoryMessage = info.title è obbligatorio. -infoVersionMandatoryMessage = info.version è obbligatorio. -missingComponentsMessage = Componenti mancanti -openApiInfoMessage = Informazioni OpenAPI: -serverLoopingMessage = Ciclo del server ogni {0} secondi -iisShutdownMessage = (Chiusura IIS) -terminatingMessage = Terminazione... -eolPowerShellWarningMessage = [AVVERTENZA] Pode {0} non è stato testato su PowerShell {1}, poiché è EOL. -untestedPowerShellVersionWarningMessage = [AVVERTENZA] Pode {0} non è stato testato su PowerShell {1}, poiché non era disponibile quando Pode è stato rilasciato. -'@ \ No newline at end of file +@{ + schemaValidationRequiresPowerShell610ExceptionMessage = 'La convalida dello schema richiede PowerShell versione 6.1.0 o superiore.' + pathOrScriptBlockRequiredExceptionMessage = 'È necessario un percorso o un ScriptBlock per ottenere i valori di accesso personalizzati.' + operationIdMustBeUniqueForArrayExceptionMessage = 'OperationID: {0} deve essere univoco e non può essere applicato a una matrice.' + endpointNotDefinedForRedirectingExceptionMessage = "Non è stato definito un endpoint denominato '{0}' per il reindirizzamento." + filesHaveChangedMessage = 'I seguenti file sono stati modificati:' + iisAspnetcoreTokenMissingExceptionMessage = 'IIS ASPNETCORE_TOKEN è mancante.' + minValueGreaterThanMaxExceptionMessage = 'Il valore minimo per {0} non deve essere maggiore del valore massimo.' + noLogicPassedForRouteExceptionMessage = 'Nessuna logica passata per la rotta: {0}' + scriptPathDoesNotExistExceptionMessage = 'Il percorso dello script non esiste: {0}' + mutexAlreadyExistsExceptionMessage = 'Un mutex con il seguente nome esiste già: {0}' + listeningOnEndpointsMessage = 'In ascolto sui seguenti {0} endpoint [{1} thread]:' + unsupportedFunctionInServerlessContextExceptionMessage = 'La funzione {0} non è supportata in un contesto senza server.' + expectedNoJwtSignatureSuppliedExceptionMessage = 'Si prevedeva che non fosse fornita alcuna firma JWT.' + secretAlreadyMountedExceptionMessage = "Un Segreto con il nome '{0}' è già stato montato." + failedToAcquireLockExceptionMessage = "Impossibile acquisire un blocco sull'oggetto." + noPathSuppliedForStaticRouteExceptionMessage = '[{0}]: Nessun percorso fornito per la rotta statica.' + invalidHostnameSuppliedExceptionMessage = 'Nome host fornito non valido: {0}' + authMethodAlreadyDefinedExceptionMessage = 'Metodo di autenticazione già definito: {0}' + csrfCookieRequiresSecretExceptionMessage = "Quando si usano i cookie per CSRF, è necessario un Segreto. Puoi fornire un Segreto o impostare il segreto globale del Cookie - (Set-PodeCookieSecret '' -Global)" + nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = 'È richiesto uno ScriptBlock non vuoto per creare una rotta di pagina.' + noPropertiesMutuallyExclusiveExceptionMessage = "Il parametro 'NoProperties' è mutuamente esclusivo con 'Properties', 'MinProperties' e 'MaxProperties'." + incompatiblePodeDllExceptionMessage = 'È caricata una versione incompatibile esistente di Pode.DLL {0}. È richiesta la versione {1}. Apri una nuova sessione Powershell/pwsh e riprova.' + accessMethodDoesNotExistExceptionMessage = 'Il metodo di accesso non esiste: {0}.' + scheduleAlreadyDefinedExceptionMessage = '[Pianificazione] {0}: Pianificazione già definita.' + secondsValueCannotBeZeroOrLessExceptionMessage = 'Il valore dei secondi non può essere 0 o inferiore per {0}' + pathToLoadNotFoundExceptionMessage = 'Percorso per caricare {0} non trovato: {1}' + failedToImportModuleExceptionMessage = 'Importazione del modulo non riuscita: {0}' + endpointNotExistExceptionMessage = "Endpoint con protocollo '{0}' e indirizzo '{1}' o indirizzo locale '{2}' non esiste." + terminatingMessage = 'Terminazione...' + noCommandsSuppliedToConvertToRoutesExceptionMessage = 'Nessun comando fornito per convertirlo in rotte.' + invalidTaskTypeExceptionMessage = 'Il tipo di attività non è valido, previsto [System.Threading.Tasks.Task] o [hashtable].' + alreadyConnectedToWebSocketExceptionMessage = "Già connesso al WebSocket con il nome '{0}'" + crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = 'Il controllo di fine messaggio CRLF è supportato solo sugli endpoint TCP.' + testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = "'Test-PodeOAComponentSchema' deve essere abilitato utilizzando 'Enable-PodeOpenApi -EnableSchemaValidation'" + adModuleNotInstalledExceptionMessage = 'Il modulo Active Directory non è installato.' + cronExpressionInvalidExceptionMessage = "L'espressione Cron dovrebbe essere composta solo da 5 parti: {0}" + noSessionToSetOnResponseExceptionMessage = "Non c'è nessuna sessione disponibile da impostare sulla risposta." + valueOutOfRangeExceptionMessage = "Il valore '{0}' per {1} non è valido, dovrebbe essere compreso tra {2} e {3}" + loggingMethodAlreadyDefinedExceptionMessage = 'Metodo di registrazione già definito: {0}' + noSecretForHmac256ExceptionMessage = "Nessun segreto fornito per l'hash HMAC256." + eolPowerShellWarningMessage = '[AVVERTENZA] Pode {0} non è stato testato su PowerShell {1}, poiché è EOL.' + runspacePoolFailedToLoadExceptionMessage = 'Impossibile caricare RunspacePool per {0}.' + noEventRegisteredExceptionMessage = 'Nessun evento {0} registrato: {1}' + scheduleCannotHaveNegativeLimitExceptionMessage = '[Pianificazione] {0}: Non può avere un limite negativo.' + openApiRequestStyleInvalidForParameterExceptionMessage = 'Lo stile della richiesta OpenApi non può essere {0} per un parametro {1}.' + openApiDocumentNotCompliantExceptionMessage = 'Il documento OpenAPI non è conforme.' + taskDoesNotExistExceptionMessage = "L'attività '{0}' non esiste." + scopedVariableNotFoundExceptionMessage = 'Variabile di ambito non trovata: {0}' + sessionsRequiredForCsrfExceptionMessage = 'Le sessioni sono necessarie per utilizzare CSRF a meno che non si vogliano usare i cookie.' + nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = 'È richiesto uno ScriptBlock non vuoto per il metodo di registrazione.' + credentialsPassedWildcardForHeadersLiteralExceptionMessage = 'Quando vengono passate le Credenziali, il carattere jolly * per le Intestazioni sarà considerato come una stringa letterale e non come un carattere jolly.' + podeNotInitializedExceptionMessage = 'Pode non è stato inizializzato.' + multipleEndpointsForGuiMessage = 'Sono stati definiti più endpoint, solo il primo sarà utilizzato per la GUI.' + operationIdMustBeUniqueExceptionMessage = 'OperationID: {0} deve essere univoco.' + invalidJsonJwtExceptionMessage = 'Valore JSON non valido trovato in JWT' + noAlgorithmInJwtHeaderExceptionMessage = "Nessun algoritmo fornito nell'header JWT." + openApiVersionPropertyMandatoryExceptionMessage = 'La proprietà della versione OpenApi è obbligatoria.' + limitValueCannotBeZeroOrLessExceptionMessage = 'Il valore limite non può essere 0 o inferiore per {0}' + timerDoesNotExistExceptionMessage = "Timer '{0}' non esiste." + openApiGenerationDocumentErrorMessage = 'Errore nella generazione del documento OpenAPI:' + routeAlreadyContainsCustomAccessExceptionMessage = "Il percorso '[{0}] {1}' contiene già un accesso personalizzato con nome '{2}'" + maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = 'Il numero massimo di thread WebSocket simultanei non può essere inferiore al minimo di {0}, ma è stato ottenuto: {1}' + middlewareAlreadyDefinedExceptionMessage = '[Middleware] {0}: Middleware già definito.' + invalidAtomCharacterExceptionMessage = 'Carattere atomo non valido: {0}' + cacheStorageNotFoundForRetrieveExceptionMessage = "Memoria cache con nome '{0}' non trovata durante il tentativo di recuperare l'elemento memorizzato nella cache '{1}'." + headerMustHaveNameInEncodingContextExceptionMessage = "L'intestazione deve avere un nome quando viene utilizzata in un contesto di codifica." + moduleDoesNotContainFunctionExceptionMessage = 'Il modulo {0} non contiene la funzione {1} da convertire in una rotta.' + pathToIconForGuiDoesNotExistExceptionMessage = "Il percorso dell'icona per la GUI non esiste: {0}" + noTitleSuppliedForPageExceptionMessage = 'Nessun titolo fornito per la pagina {0}.' + certificateSuppliedForNonHttpsWssEndpointExceptionMessage = 'Certificato fornito per un endpoint non HTTPS/WSS.' + cannotLockNullObjectExceptionMessage = 'Non è possibile bloccare un oggetto nullo.' + showPodeGuiOnlyAvailableOnWindowsExceptionMessage = 'Show-PodeGui è attualmente disponibile solo per Windows PowerShell e PowerShell 7+ su Windows.' + unlockSecretButNoScriptBlockExceptionMessage = 'Segreto di sblocco fornito per tipo di cassaforte segreta personalizzata, ma nessun ScriptBlock di sblocco fornito.' + invalidIpAddressExceptionMessage = "L'indirizzo IP fornito non è valido: {0}" + maxDaysInvalidExceptionMessage = 'MaxDays deve essere 0 o superiore, ma è stato ottenuto: {0}' + noRemoveScriptBlockForVaultExceptionMessage = "Nessun ScriptBlock fornito per rimuovere segreti dalla cassaforte '{0}'" + noSecretExpectedForNoSignatureExceptionMessage = 'Non era previsto alcun segreto per nessuna firma.' + noCertificateFoundExceptionMessage = "Nessun certificato trovato in {0}{1} per '{2}'" + minValueInvalidExceptionMessage = "Il valore minimo '{0}' per {1} non è valido, dovrebbe essere maggiore o uguale a {2}" + accessRequiresAuthenticationOnRoutesExceptionMessage = "L'accesso richiede l'autenticazione sulle rotte." + noSecretForHmac384ExceptionMessage = "Nessun segreto fornito per l'hash HMAC384." + windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = "Il supporto per l'autenticazione locale di Windows è solo per Windows." + definitionTagNotDefinedExceptionMessage = 'Tag di definizione {0} non definito.' + noComponentInDefinitionExceptionMessage = 'Nessun componente del tipo {0} chiamato {1} è disponibile nella definizione {2}.' + noSmtpHandlersDefinedExceptionMessage = 'Non sono stati definiti gestori SMTP.' + sessionMiddlewareAlreadyInitializedExceptionMessage = 'Il Middleware della sessione è già stato inizializzato.' + reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = "La funzione del componente riutilizzabile 'pathItems' non è disponibile in OpenAPI v3.0." + wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = "Il carattere jolly * per le Intestazioni è incompatibile con l'opzione AutoHeaders." + noDataForFileUploadedExceptionMessage = "Nessun dato per il file '{0}' è stato caricato nella richiesta." + sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = 'SSE può essere configurato solo su richieste con un valore di intestazione Accept di text/event-stream.' + noSessionAvailableToSaveExceptionMessage = 'Nessuna sessione disponibile per il salvataggio.' + pathParameterRequiresRequiredSwitchExceptionMessage = "Se la posizione del parametro è 'Path', il parametro switch 'Required' è obbligatorio." + noOpenApiUrlSuppliedExceptionMessage = 'Nessun URL OpenAPI fornito per {0}.' + maximumConcurrentSchedulesInvalidExceptionMessage = 'I programmi concorrenti massimi devono essere >=1 ma ottenuto: {0}' + snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = 'Gli Snapin sono supportati solo su Windows PowerShell.' + eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = 'La registrazione nel Visualizzatore eventi è supportata solo su Windows.' + parametersMutuallyExclusiveExceptionMessage = "I parametri '{0}' e '{1}' sono mutuamente esclusivi." + pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = 'La funzionalità PathItems non è supportata in OpenAPI v3.0.x' + openApiParameterRequiresNameExceptionMessage = 'Il parametro OpenApi richiede un nome specificato.' + maximumConcurrentTasksLessThanMinimumExceptionMessage = 'Il numero massimo di attività simultanee non può essere inferiore al minimo di {0}, ma è stato ottenuto: {1}' + noSemaphoreFoundExceptionMessage = "Nessun semaforo trovato chiamato '{0}'" + singleValueForIntervalExceptionMessage = 'Puoi fornire solo un singolo valore {0} quando si utilizzano gli intervalli.' + jwtNotYetValidExceptionMessage = "JWT non è ancora valido per l'uso." + verbAlreadyDefinedForUrlExceptionMessage = '[Verbo] {0}: Già definito per {1}' + noSecretNamedMountedExceptionMessage = "Nessun Segreto con il nome '{0}' è stato montato." + moduleOrVersionNotFoundExceptionMessage = 'Modulo o versione non trovati su {0}: {1}@{2}' + noScriptBlockSuppliedExceptionMessage = 'Nessun ScriptBlock fornito.' + noSecretVaultRegisteredExceptionMessage = "Nessun Vault dei Segreti con il nome '{0}' è stato registrato." + nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = "È richiesto un nome per l'endpoint se viene fornito il parametro RedirectTo." + openApiLicenseObjectRequiresNameExceptionMessage = "L'oggetto OpenAPI 'license' richiede la proprietà 'name'. Utilizzare il parametro -LicenseName." + sourcePathDoesNotExistForStaticRouteExceptionMessage = '[{0})] {1}: Il percorso sorgente fornito per la rotta statica non esiste: {2}' + noNameForWebSocketDisconnectExceptionMessage = 'Nessun nome fornito per disconnettere il WebSocket.' + certificateExpiredExceptionMessage = "Il certificato '{0}' è scaduto: {1}" + secretVaultUnlockExpiryDateInPastExceptionMessage = 'La data di scadenza per sbloccare il Vault dei Segreti è nel passato (UTC): {0}' + invalidExceptionTypeExceptionMessage = "L'eccezione è di un tipo non valido, dovrebbe essere WebException o HttpRequestException, ma è stato ottenuto: {0}" + invalidSecretValueTypeExceptionMessage = 'Il valore segreto è di un tipo non valido. Tipi previsti: String, SecureString, HashTable, Byte[] o PSCredential. Ma ottenuto: {0}' + explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = 'La modalità TLS esplicita è supportata solo sugli endpoint SMTPS e TCPS.' + discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = "Il parametro 'DiscriminatorMapping' può essere utilizzato solo quando è presente 'DiscriminatorProperty'." + scriptErrorExceptionMessage = "Errore '{0}' nello script {1} {2} (riga {3}) carattere {4} eseguendo {5} su {6} oggetto '{7}' Classe: {8} Classe di base: {9}" + cannotSupplyIntervalForQuarterExceptionMessage = 'Impossibile fornire un valore di intervallo per ogni trimestre.' + scheduleEndTimeMustBeInFutureExceptionMessage = '[Pianificazione] {0}: Il valore di EndTime deve essere nel futuro.' + invalidJwtSignatureSuppliedExceptionMessage = 'Firma JWT fornita non valida.' + noSetScriptBlockForVaultExceptionMessage = "Nessun ScriptBlock fornito per aggiornare/creare segreti nella cassaforte '{0}'" + accessMethodNotExistForMergingExceptionMessage = "Il metodo di accesso non esiste per l'unione: {0}" + defaultAuthNotInListExceptionMessage = "L'autenticazione predefinita '{0}' non è nella lista di autenticazione fornita." + parameterHasNoNameExceptionMessage = "Il parametro non ha un nome. Assegna un nome a questo componente usando il parametro 'Name'." + methodPathAlreadyDefinedForUrlExceptionMessage = '[{0}] {1}: Già definito per {2}' + fileWatcherAlreadyDefinedExceptionMessage = "Un File Watcher con il nome '{0}' è già stato definito." + noServiceHandlersDefinedExceptionMessage = 'Non sono stati definiti gestori di servizio.' + secretRequiredForCustomSessionStorageExceptionMessage = "È necessario un segreto quando si utilizza l'archiviazione delle sessioni personalizzata." + secretManagementModuleNotInstalledExceptionMessage = 'Il modulo Microsoft.PowerShell.SecretManagement non è installato.' + noPathSuppliedForRouteExceptionMessage = 'Nessun percorso fornito per la rotta.' + validationOfAnyOfSchemaNotSupportedExceptionMessage = "La validazione di uno schema che include 'anyof' non è supportata." + iisAuthSupportIsForWindowsOnlyExceptionMessage = "Il supporto per l'autenticazione IIS è solo per Windows." + oauth2InnerSchemeInvalidExceptionMessage = 'OAuth2 InnerScheme può essere solo uno tra Basic o Form, ma è stato ottenuto: {0}' + noRoutePathSuppliedForPageExceptionMessage = 'Nessun percorso di rotta fornito per la pagina {0}.' + cacheStorageNotFoundForExistsExceptionMessage = "Memoria cache con nome '{0}' non trovata durante il tentativo di verificare se l'elemento memorizzato nella cache '{1}' esiste." + handlerAlreadyDefinedExceptionMessage = '[{0}] {1}: Handler già definito.' + sessionsNotConfiguredExceptionMessage = 'Le sessioni non sono state configurate.' + propertiesTypeObjectAssociationExceptionMessage = 'Solo le proprietà di tipo Oggetto possono essere associate a {0}.' + sessionsRequiredForSessionPersistentAuthExceptionMessage = "Sono necessarie sessioni per utilizzare l'autenticazione persistente della sessione." + invalidPathWildcardOrDirectoryExceptionMessage = 'Il percorso fornito non può essere un carattere jolly o una directory: {0}' + accessMethodAlreadyDefinedExceptionMessage = 'Metodo di accesso già definito: {0}' + parametersValueOrExternalValueMandatoryExceptionMessage = "I parametri 'Value' o 'ExternalValue' sono obbligatori." + maximumConcurrentTasksInvalidExceptionMessage = 'Il numero massimo di attività simultanee deve essere >=1, ma è stato ottenuto: {0}' + cannotCreatePropertyWithoutTypeExceptionMessage = 'Impossibile creare la proprietà perché non è definito alcun tipo.' + authMethodNotExistForMergingExceptionMessage = 'Il metodo di autenticazione non esiste per la fusione: {0}' + maxValueInvalidExceptionMessage = "Il valore massimo '{0}' per {1} non è valido, dovrebbe essere minore o uguale a {2}" + endpointAlreadyDefinedExceptionMessage = "Un endpoint denominato '{0}' è già stato definito." + eventAlreadyRegisteredExceptionMessage = 'Evento {0} già registrato: {1}' + parameterNotSuppliedInRequestExceptionMessage = "Un parametro chiamato '{0}' non è stato fornito nella richiesta o non ci sono dati disponibili." + cacheStorageNotFoundForSetExceptionMessage = "Memoria cache con nome '{0}' non trovata durante il tentativo di impostare l'elemento memorizzato nella cache '{1}'." + methodPathAlreadyDefinedExceptionMessage = '[{0}] {1}: Già definito.' + errorLoggingAlreadyEnabledExceptionMessage = 'La registrazione degli errori è già abilitata.' + valueForUsingVariableNotFoundExceptionMessage = "Impossibile trovare il valore per '`$using:{0}'." + rapidPdfDoesNotSupportOpenApi31ExceptionMessage = 'Lo strumento di documentazione RapidPdf non supporta OpenAPI 3.1' + oauth2ClientSecretRequiredExceptionMessage = 'OAuth2 richiede un Client Secret quando non si utilizza PKCE.' + invalidBase64JwtExceptionMessage = 'Valore codificato Base64 non valido trovato in JWT' + noSessionToCalculateDataHashExceptionMessage = "Nessuna sessione disponibile per calcolare l'hash dei dati." + cacheStorageNotFoundForRemoveExceptionMessage = "Memoria cache con nome '{0}' non trovata durante il tentativo di rimuovere l'elemento memorizzato nella cache '{1}'." + csrfMiddlewareNotInitializedExceptionMessage = 'Il Middleware CSRF non è stato inizializzato.' + infoTitleMandatoryMessage = 'info.title è obbligatorio.' + typeCanOnlyBeAssociatedWithObjectExceptionMessage = 'Il tipo {0} può essere associato solo a un oggetto.' + userFileDoesNotExistExceptionMessage = 'Il file utente non esiste: {0}' + routeParameterNeedsValidScriptblockExceptionMessage = 'Il parametro della rotta richiede uno ScriptBlock valido e non vuoto.' + nextTriggerCalculationErrorExceptionMessage = 'Sembra che ci sia stato un errore nel tentativo di calcolare la prossima data e ora del trigger: {0}' + cannotLockValueTypeExceptionMessage = 'Non è possibile bloccare un [ValueTypes].' + failedToCreateOpenSslCertExceptionMessage = 'Impossibile creare il certificato openssl: {0}' + jwtExpiredExceptionMessage = 'JWT è scaduto.' + openingGuiMessage = 'Apertura della GUI.' + multiTypePropertiesRequireOpenApi31ExceptionMessage = 'Le proprietà multi-tipo richiedono OpenApi versione 3.1 o superiore.' + noNameForWebSocketRemoveExceptionMessage = 'Nessun nome fornito per rimuovere il WebSocket.' + maxSizeInvalidExceptionMessage = 'MaxSize deve essere 0 o superiore, ma è stato ottenuto: {0}' + iisShutdownMessage = '(Chiusura IIS)' + cannotUnlockValueTypeExceptionMessage = 'Non è possibile sbloccare un [ValueTypes].' + noJwtSignatureForAlgorithmExceptionMessage = 'Nessuna firma JWT fornita per {0}.' + maximumConcurrentWebSocketThreadsInvalidExceptionMessage = 'Il numero massimo di thread WebSocket simultanei deve essere >=1, ma è stato ottenuto: {0}' + acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = 'Il messaggio di conferma è supportato solo sugli endpoint SMTP e TCP.' + failedToConnectToUrlExceptionMessage = "Impossibile connettersi all'URL: {0}" + failedToAcquireMutexOwnershipExceptionMessage = 'Impossibile acquisire la proprietà del mutex. Nome del mutex: {0}' + sessionsRequiredForOAuth2WithPKCEExceptionMessage = 'Sono necessarie sessioni per utilizzare OAuth2 con PKCE' + failedToConnectToWebSocketExceptionMessage = 'Connessione al WebSocket non riuscita: {0}' + unsupportedObjectExceptionMessage = 'Oggetto non supportato' + failedToParseAddressExceptionMessage = "Impossibile analizzare '{0}' come indirizzo IP/Host:Port valido" + mustBeRunningWithAdminPrivilegesExceptionMessage = 'Deve essere eseguito con privilegi di amministratore per ascoltare gli indirizzi non locali.' + specificationMessage = 'Specifica' + cacheStorageNotFoundForClearExceptionMessage = "Memoria cache con nome '{0}' non trovata durante il tentativo di cancellare la cache." + restartingServerMessage = 'Riavvio del server...' + cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = "Impossibile fornire un intervallo quando il parametro 'Every' è impostato su None." + unsupportedJwtAlgorithmExceptionMessage = "L'algoritmo JWT non è attualmente supportato: {0}" + websocketsNotConfiguredForSignalMessagesExceptionMessage = 'I WebSockets non sono configurati per inviare messaggi di segnale.' + invalidLogicTypeInHashtableMiddlewareExceptionMessage = 'Un Middleware di tipo Hashtable fornito ha un tipo di logica non valido. Previsto ScriptBlock, ma ottenuto: {0}' + maximumConcurrentSchedulesLessThanMinimumExceptionMessage = 'I programmi concorrenti massimi non possono essere inferiori al minimo di {0} ma ottenuto: {1}' + failedToAcquireSemaphoreOwnershipExceptionMessage = 'Impossibile acquisire la proprietà del semaforo. Nome del semaforo: {0}' + propertiesParameterWithoutNameExceptionMessage = 'I parametri Properties non possono essere utilizzati se la proprietà non ha un nome.' + customSessionStorageMethodNotImplementedExceptionMessage = "L'archiviazione delle sessioni personalizzata non implementa il metodo richiesto '{0}()'." + authenticationMethodDoesNotExistExceptionMessage = 'Il metodo di autenticazione non esiste: {0}' + webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = 'La funzionalità Webhooks non è supportata in OpenAPI v3.0.x' + invalidContentTypeForSchemaExceptionMessage = "'content-type' non valido trovato per lo schema: {0}" + noUnlockScriptBlockForVaultExceptionMessage = "Nessun ScriptBlock di sblocco fornito per sbloccare la cassaforte '{0}'" + definitionTagMessage = 'Definizione {0}:' + failedToOpenRunspacePoolExceptionMessage = 'Impossibile aprire RunspacePool: {0}' + verbNoLogicPassedExceptionMessage = '[Verbo] {0}: Nessuna logica passata' + noMutexFoundExceptionMessage = "Nessun mutex trovato chiamato '{0}'" + documentationMessage = 'Documentazione' + timerAlreadyDefinedExceptionMessage = '[Timer] {0}: Timer già definito.' + invalidPortExceptionMessage = 'La porta non può essere negativa: {0}' + viewsFolderNameAlreadyExistsExceptionMessage = 'Il nome della cartella Views esiste già: {0}' + noNameForWebSocketResetExceptionMessage = 'Nessun nome fornito per reimpostare il WebSocket.' + mergeDefaultAuthNotInListExceptionMessage = "L'autenticazione MergeDefault '{0}' non è nella lista di autenticazione fornita." + descriptionRequiredExceptionMessage = 'È necessaria una descrizione.' + pageNameShouldBeAlphaNumericExceptionMessage = 'Il nome della pagina dovrebbe essere un valore alfanumerico valido: {0}' + defaultValueNotBooleanOrEnumExceptionMessage = "Il valore predefinito non è un booleano e non fa parte dell'enum." + openApiComponentSchemaDoesNotExistExceptionMessage = 'Lo schema del componente OpenApi {0} non esiste.' + timerParameterMustBeGreaterThanZeroExceptionMessage = '[Timer] {0}: {1} deve essere maggiore di 0.' + taskTimedOutExceptionMessage = 'Il compito è scaduto dopo {0}ms.' + scheduleStartTimeAfterEndTimeExceptionMessage = "[Pianificazione] {0}: Non può avere un 'StartTime' dopo 'EndTime'" + infoVersionMandatoryMessage = 'info.version è obbligatorio.' + cannotUnlockNullObjectExceptionMessage = 'Non è possibile sbloccare un oggetto nullo.' + nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = 'È richiesto uno ScriptBlock non vuoto per lo schema di autenticazione personalizzato.' + validationOfOneOfSchemaNotSupportedExceptionMessage = "La validazione di uno schema che include 'oneof' non è supportata." + routeParameterCannotBeNullExceptionMessage = "Il parametro 'Route' non può essere null." + cacheStorageAlreadyExistsExceptionMessage = "Memoria cache con nome '{0}' esiste già." + loggingMethodRequiresValidScriptBlockExceptionMessage = "Il metodo di output fornito per il metodo di registrazione '{0}' richiede un ScriptBlock valido." + scopedVariableAlreadyDefinedExceptionMessage = 'Variabile con ambito già definita: {0}' + oauth2RequiresAuthorizeUrlExceptionMessage = "OAuth2 richiede che venga fornita un'URL di autorizzazione" + pathNotExistExceptionMessage = 'Il percorso non esiste: {0}' + noDomainServerNameForWindowsAdAuthExceptionMessage = "Non è stato fornito alcun nome di server di dominio per l'autenticazione AD di Windows" + suppliedDateAfterScheduleEndTimeExceptionMessage = "La data fornita è successiva all'ora di fine del programma a {0}" + wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = "Il carattere jolly * per i Metodi è incompatibile con l'opzione AutoMethods." + cannotSupplyIntervalForYearExceptionMessage = 'Impossibile fornire un valore di intervallo per ogni anno.' + missingComponentsMessage = 'Componenti mancanti' + invalidStrictTransportSecurityDurationExceptionMessage = 'Durata Strict-Transport-Security non valida fornita: {0}. Deve essere maggiore di 0.' + noSecretForHmac512ExceptionMessage = "Nessun segreto fornito per l'hash HMAC512." + daysInMonthExceededExceptionMessage = '{0} ha solo {1} giorni, ma è stato fornito {2}.' + nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = 'È richiesto uno ScriptBlock non vuoto per il metodo di registrazione personalizzato.' + encodingAttributeOnlyAppliesToMultipartExceptionMessage = "L'attributo di codifica si applica solo ai corpi delle richieste multipart e application/x-www-form-urlencoded." + suppliedDateBeforeScheduleStartTimeExceptionMessage = "La data fornita è precedente all'ora di inizio del programma a {0}" + unlockSecretRequiredExceptionMessage = "È necessaria una proprietà 'UnlockSecret' quando si utilizza Microsoft.PowerShell.SecretStore" + noLogicPassedForMethodRouteExceptionMessage = '[{0}] {1}: Nessuna logica passata.' + bodyParserAlreadyDefinedForContentTypeExceptionMessage = 'Un body-parser è già definito per il tipo di contenuto {0}.' + invalidJwtSuppliedExceptionMessage = 'JWT fornito non valido.' + sessionsRequiredForFlashMessagesExceptionMessage = 'Le sessioni sono necessarie per utilizzare i messaggi Flash.' + outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = 'Il metodo di output fornito per la registrazione delle richieste richiede uno ScriptBlock valido.' + semaphoreAlreadyExistsExceptionMessage = 'Un semaforo con il seguente nome esiste già: {0}' + invalidJwtHeaderAlgorithmSuppliedExceptionMessage = "Algoritmo dell'header JWT fornito non valido." + oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = "Il provider OAuth2 non supporta il tipo di concessione 'password' richiesto dall'utilizzo di un InnerScheme." + invalidAliasFoundExceptionMessage = 'Alias {0} non valido trovato: {1}' + scheduleDoesNotExistExceptionMessage = "Il programma '{0}' non esiste." + accessMethodNotExistExceptionMessage = 'Il metodo di accesso non esiste: {0}' + oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = "Il provider OAuth2 non supporta il tipo di risposta 'code'." + untestedPowerShellVersionWarningMessage = '[AVVERTENZA] Pode {0} non è stato testato su PowerShell {1}, poiché non era disponibile quando Pode è stato rilasciato.' + secretVaultAlreadyRegisteredAutoImportExceptionMessage = "Una cassaforte segreta con il nome '{0}' è già stata registrata durante l'importazione automatica delle cassaforti segrete." + schemeRequiresValidScriptBlockExceptionMessage = "Lo schema fornito per il validatore di autenticazione '{0}' richiede uno ScriptBlock valido." + serverLoopingMessage = 'Ciclo del server ogni {0} secondi' + certificateThumbprintsNameSupportedOnWindowsExceptionMessage = 'Impronte digitali/nome del certificato supportati solo su Windows.' + sseConnectionNameRequiredExceptionMessage = "È richiesto un nome di connessione SSE, sia da -Name che da $`$WebEvent.Sse.Name" + invalidMiddlewareTypeExceptionMessage = 'Uno dei Middleware forniti è di un tipo non valido. Previsto ScriptBlock o Hashtable, ma ottenuto: {0}' + noSecretForJwtSignatureExceptionMessage = 'Nessun segreto fornito per la firma JWT.' + modulePathDoesNotExistExceptionMessage = 'Il percorso del modulo non esiste: {0}' + taskAlreadyDefinedExceptionMessage = '[Attività] {0}: Attività già definita.' + verbAlreadyDefinedExceptionMessage = '[Verbo] {0}: Già definito' + clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = 'I certificati client sono supportati solo sugli endpoint HTTPS.' + endpointNameNotExistExceptionMessage = "Endpoint con nome '{0}' non esiste." + middlewareNoLogicSuppliedExceptionMessage = '[Middleware]: Nessuna logica fornita nello ScriptBlock.' + scriptBlockRequiredForMergingUsersExceptionMessage = 'È richiesto uno ScriptBlock per unire più utenti autenticati in un unico oggetto quando Valid è All.' + secretVaultAlreadyRegisteredExceptionMessage = "Un Vault dei Segreti con il nome '{0}' è già stato registrato{1}." + deprecatedTitleVersionDescriptionWarningMessage = "AVVERTENZA: Titolo, Versione e Descrizione su 'Enable-PodeOpenApi' sono deprecati. Si prega di utilizzare 'Add-PodeOAInfo' invece." + undefinedOpenApiReferencesMessage = 'Riferimenti OpenAPI non definiti:' + doneMessage = 'Fatto' + swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = 'Questa versione di Swagger-Editor non supporta OpenAPI 3.1' + durationMustBeZeroOrGreaterExceptionMessage = 'La durata deve essere 0 o superiore, ma è stato ottenuto: {0}s' + viewsPathDoesNotExistExceptionMessage = 'Il percorso delle Views non esiste: {0}' + discriminatorIncompatibleWithAllOfExceptionMessage = "Il parametro 'Discriminator' è incompatibile con 'allOf'." + noNameForWebSocketSendMessageExceptionMessage = 'Nessun nome fornito per inviare un messaggio al WebSocket.' + hashtableMiddlewareNoLogicExceptionMessage = 'Un Middleware di tipo Hashtable fornito non ha una logica definita.' + openApiInfoMessage = 'Informazioni OpenAPI:' + invalidSchemeForAuthValidatorExceptionMessage = "Lo schema '{0}' fornito per il validatore di autenticazione '{1}' richiede uno ScriptBlock valido." + sseFailedToBroadcastExceptionMessage = 'SSE non è riuscito a trasmettere a causa del livello di trasmissione SSE definito per {0}: {1}.' + adModuleWindowsOnlyExceptionMessage = 'Il modulo Active Directory è disponibile solo su Windows.' + requestLoggingAlreadyEnabledExceptionMessage = 'La registrazione delle richieste è già abilitata.' + invalidAccessControlMaxAgeDurationExceptionMessage = 'Durata non valida fornita per Access-Control-Max-Age: {0}. Deve essere maggiore di 0.' +} + diff --git a/src/Locales/ja/Pode.psd1 b/src/Locales/ja/Pode.psd1 index f84068e7a..bae2cdb4e 100644 --- a/src/Locales/ja/Pode.psd1 +++ b/src/Locales/ja/Pode.psd1 @@ -1,284 +1,285 @@ -ConvertFrom-StringData -StringData @' -adModuleWindowsOnlyExceptionMessage = Active DirectoryモジュールはWindowsでのみ利用可能です。 -adModuleNotInstalledExceptionMessage = Active Directoryモジュールがインストールされていません。 -secretManagementModuleNotInstalledExceptionMessage = Microsoft.PowerShell.SecretManagementモジュールがインストールされていません。 -secretVaultAlreadyRegisteredAutoImportExceptionMessage = シークレットボールト'{0}'は既に登録されています(シークレットボールトの自動インポート中)。 -failedToOpenRunspacePoolExceptionMessage = RunspacePoolのオープンに失敗しました: {0} -cronExpressionInvalidExceptionMessage = Cron式は5つの部分で構成される必要があります: {0} -invalidAliasFoundExceptionMessage = 無効な{0}エイリアスが見つかりました: {1} -invalidAtomCharacterExceptionMessage = 無効なアトム文字: {0} -minValueGreaterThanMaxExceptionMessage = {0}の最小値は最大値を超えることはできません。 -minValueInvalidExceptionMessage = {1}の最小値'{0}'は無効です。{2}以上でなければなりません。 -maxValueInvalidExceptionMessage = {1}の最大値'{0}'は無効です。{2}以下でなければなりません。 -valueOutOfRangeExceptionMessage = {1}の値'{0}'は無効です。{2}から{3}の間でなければなりません。 -daysInMonthExceededExceptionMessage = {0}は{1}日しかありませんが、{2}が指定されました。 -nextTriggerCalculationErrorExceptionMessage = 次のトリガー日時の計算中に問題が発生したようです: {0} -incompatiblePodeDllExceptionMessage = 既存の互換性のないPode.DLLバージョン{0}がロードされています。バージョン{1}が必要です。新しいPowerShell/pwshセッションを開いて再試行してください。 -endpointNotExistExceptionMessage = プロトコル'{0}'、アドレス'{1}'またはローカルアドレス'{2}'のエンドポイントが存在しません。 -endpointNameNotExistExceptionMessage = 名前'{0}'のエンドポイントが存在しません。 -failedToConnectToUrlExceptionMessage = URLへの接続に失敗しました: {0} -failedToParseAddressExceptionMessage = '{0}'を有効なIP/ホスト:ポートアドレスとして解析できませんでした。 -invalidIpAddressExceptionMessage = 提供されたIPアドレスは無効です: {0} -invalidPortExceptionMessage = ポートは負であってはなりません: {0} -pathNotExistExceptionMessage = パスが存在しません: {0} -noSecretForHmac256ExceptionMessage = HMAC256ハッシュに対する秘密が提供されていません。 -noSecretForHmac384ExceptionMessage = HMAC384ハッシュに対する秘密が提供されていません。 -noSecretForHmac512ExceptionMessage = HMAC512ハッシュに対する秘密が提供されていません。 -noSecretForJwtSignatureExceptionMessage = JWT署名に対する秘密が提供されていません。 -noSecretExpectedForNoSignatureExceptionMessage = 署名なしのための秘密が提供されることを期待していませんでした。 -unsupportedJwtAlgorithmExceptionMessage = 現在サポートされていないJWTアルゴリズムです: {0} -invalidBase64JwtExceptionMessage = JWTに無効なBase64エンコード値が見つかりました。 -invalidJsonJwtExceptionMessage = JWTに無効なJSON値が見つかりました。 -unsupportedFunctionInServerlessContextExceptionMessage = サーバーレスコンテキストではサポートされていない関数です: {0} -invalidPathWildcardOrDirectoryExceptionMessage = 指定されたパスはワイルドカードまたはディレクトリにすることはできません: {0} -invalidExceptionTypeExceptionMessage = 例外が無効な型です。WebExceptionまたはHttpRequestExceptionのいずれかである必要がありますが、次の型を取得しました: {0} -pathToLoadNotFoundExceptionMessage = 読み込むパス{0}が見つかりません: {1} -singleValueForIntervalExceptionMessage = インターバルを使用する場合、単一の{0}値しか指定できません。 -scriptErrorExceptionMessage = スクリプト{1} {2}(行{3})のエラー'{0}'(文字{4})が{6}オブジェクト'{7}'の{5}を実行中に発生しました クラス: {8} 基底クラス: {9} -noScriptBlockSuppliedExceptionMessage = ScriptBlockが提供されていません。 -iisAspnetcoreTokenMissingExceptionMessage = IIS ASPNETCORE_TOKENがありません。 -propertiesParameterWithoutNameExceptionMessage = プロパティに名前がない場合、プロパティパラメータは使用できません。 -multiTypePropertiesRequireOpenApi31ExceptionMessage = 複数タイプのプロパティはOpenApiバージョン3.1以上が必要です。 -openApiVersionPropertyMandatoryExceptionMessage = OpenApiバージョンプロパティは必須です。 -webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = Webhooks機能はOpenAPI v3.0.xではサポートされていません。 -authenticationMethodDoesNotExistExceptionMessage = 認証方法が存在しません: {0} -unsupportedObjectExceptionMessage = サポートされていないオブジェクトです。 -validationOfAnyOfSchemaNotSupportedExceptionMessage = 'anyof'を含むスキーマの検証はサポートされていません。 -validationOfOneOfSchemaNotSupportedExceptionMessage = 'oneof'を含むスキーマの検証はサポートされていません。 -cannotCreatePropertyWithoutTypeExceptionMessage = 型が定義されていないため、プロパティを作成できません。 -headerMustHaveNameInEncodingContextExceptionMessage = エンコーディングコンテキストで使用される場合、ヘッダーには名前が必要です。 -descriptionRequiredExceptionMessage = 説明が必要です。 -openApiDocumentNotCompliantExceptionMessage = OpenAPIドキュメントが準拠していません。 -noComponentInDefinitionExceptionMessage = {2}定義に{0}タイプの名前{1}コンポーネントが利用できません。 -methodPathAlreadyDefinedExceptionMessage = [{0}] {1}: 既に定義されています。 -methodPathAlreadyDefinedForUrlExceptionMessage = [{0}] {1}: {2}用に既に定義されています。 -invalidMiddlewareTypeExceptionMessage = 提供されたMiddlewaresの1つが無効な型です。ScriptBlockまたはHashtableのいずれかを期待しましたが、次を取得しました: {0} -hashtableMiddlewareNoLogicExceptionMessage = 提供されたHashtableミドルウェアにロジックが定義されていません。 -invalidLogicTypeInHashtableMiddlewareExceptionMessage = 提供されたHashtableミドルウェアに無効なロジック型があります。ScriptBlockを期待しましたが、次を取得しました: {0} -scopedVariableAlreadyDefinedExceptionMessage = スコープ付き変数が既に定義されています: {0} -valueForUsingVariableNotFoundExceptionMessage = '`$using:{0}'の値が見つかりませんでした。 -unlockSecretRequiredExceptionMessage = Microsoft.PowerShell.SecretStoreを使用する場合、'UnlockSecret'プロパティが必要です。 -unlockSecretButNoScriptBlockExceptionMessage = カスタムシークレットボールトタイプに対してアンロックシークレットが提供されましたが、アンロックスクリプトブロックが提供されていません。 -noUnlockScriptBlockForVaultExceptionMessage = ボールト'{0}'のロック解除に必要なスクリプトブロックが提供されていません。 -noSetScriptBlockForVaultExceptionMessage = ボールト'{0}'のシークレットを更新/作成するためのスクリプトブロックが提供されていません。 -noRemoveScriptBlockForVaultExceptionMessage = ボールト'{0}'のシークレットを削除するためのスクリプトブロックが提供されていません。 -invalidSecretValueTypeExceptionMessage = シークレットの値が無効な型です。期待される型: String、SecureString、HashTable、Byte[]、またはPSCredential。しかし、次を取得しました: {0} -limitValueCannotBeZeroOrLessExceptionMessage = {0}の制限値は0またはそれ以下にすることはできません。 -secondsValueCannotBeZeroOrLessExceptionMessage = {0}の秒数値は0またはそれ以下にすることはできません。 -failedToCreateOpenSslCertExceptionMessage = OpenSSL証明書の作成に失敗しました: {0} -certificateThumbprintsNameSupportedOnWindowsExceptionMessage = Certificate Thumbprints/NameはWindowsでのみサポートされています。 -noCertificateFoundExceptionMessage = '{2}'用の{0}\{1}に証明書が見つかりませんでした。 -runspacePoolFailedToLoadExceptionMessage = {0} RunspacePoolの読み込みに失敗しました。 -noServiceHandlersDefinedExceptionMessage = サービスハンドラが定義されていません。 -noSessionToSetOnResponseExceptionMessage = レスポンスに設定するセッションがありません。 -noSessionToCalculateDataHashExceptionMessage = データハッシュを計算するセッションがありません。 -moduleOrVersionNotFoundExceptionMessage = {0}でモジュールまたはバージョンが見つかりません: {1}@{2} -noSmtpHandlersDefinedExceptionMessage = SMTPハンドラが定義されていません。 -taskTimedOutExceptionMessage = タスクが{0}ミリ秒後にタイムアウトしました。 -verbAlreadyDefinedExceptionMessage = [動詞] {0}: すでに定義されています -verbAlreadyDefinedForUrlExceptionMessage = [動詞] {0}: {1}にすでに定義されています -pathOrScriptBlockRequiredExceptionMessage = カスタムアクセス値のソース化には、パスまたはスクリプトブロックが必要です。 -accessMethodAlreadyDefinedExceptionMessage = アクセス方法はすでに定義されています: {0} -accessMethodNotExistForMergingExceptionMessage = マージするアクセス方法が存在しません: {0} -routeAlreadyContainsCustomAccessExceptionMessage = ルート '[{0}] {1}' はすでに名前 '{2}' のカスタムアクセスを含んでいます -accessMethodNotExistExceptionMessage = アクセス方法が存在しません: {0} -pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = PathItems機能はOpenAPI v3.0.xではサポートされていません。 -nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = カスタム認証スキームには空でないScriptBlockが必要です。 -oauth2InnerSchemeInvalidExceptionMessage = OAuth2 InnerSchemeはBasicまたはFormのいずれかでなければなりませんが、取得したのは: {0} -sessionsRequiredForOAuth2WithPKCEExceptionMessage = PKCEを使用するOAuth2にはセッションが必要です。 -oauth2ClientSecretRequiredExceptionMessage = PKCEを使用しない場合、OAuth2にはクライアントシークレットが必要です。 -authMethodAlreadyDefinedExceptionMessage = 認証方法はすでに定義されています:{0} -invalidSchemeForAuthValidatorExceptionMessage = '{1}'認証バリデーターのために提供された'{0}'スキームには有効なScriptBlockが必要です。 -sessionsRequiredForSessionPersistentAuthExceptionMessage = セッション持続認証を使用するにはセッションが必要です。 -oauth2RequiresAuthorizeUrlExceptionMessage = OAuth2には認可URLの提供が必要です。 -authMethodNotExistForMergingExceptionMessage = マージするための認証方法は存在しません:{0} -mergeDefaultAuthNotInListExceptionMessage = MergeDefault認証'{0}'は提供された認証リストにありません。 -defaultAuthNotInListExceptionMessage = デフォルト認証'{0}'は提供された認証リストにありません。 -scriptBlockRequiredForMergingUsersExceptionMessage = ValidがAllの場合、複数の認証済みユーザーを1つのオブジェクトにマージするためのScriptBlockが必要です。 -noDomainServerNameForWindowsAdAuthExceptionMessage = Windows AD認証用のドメインサーバー名が提供されていません。 -sessionsNotConfiguredExceptionMessage = セッションが構成されていません。 -windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = Windowsローカル認証のサポートはWindowsのみです。 -iisAuthSupportIsForWindowsOnlyExceptionMessage = IIS認証のサポートはWindowsのみです。 -noAlgorithmInJwtHeaderExceptionMessage = JWTヘッダーにアルゴリズムが提供されていません。 -invalidJwtSuppliedExceptionMessage = 無効なJWTが提供されました。 -invalidJwtHeaderAlgorithmSuppliedExceptionMessage = 無効なJWTヘッダーアルゴリズムが提供されました。 -noJwtSignatureForAlgorithmExceptionMessage = {0}のためのJWT署名が提供されていません。 -expectedNoJwtSignatureSuppliedExceptionMessage = 提供されるべきではないJWT署名が予期されました。 -invalidJwtSignatureSuppliedExceptionMessage = 無効なJWT署名が提供されました。 -jwtExpiredExceptionMessage = JWTの有効期限が切れています。 -jwtNotYetValidExceptionMessage = JWTはまだ有効ではありません。 -snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = SnapinsはWindows PowerShellのみでサポートされています。 -userFileDoesNotExistExceptionMessage = ユーザーファイルが存在しません:{0} -schemeRequiresValidScriptBlockExceptionMessage = '{0}'認証バリデーターのために提供されたスキームには有効なScriptBlockが必要です。 -oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = OAuth2プロバイダーは'code' response_typeをサポートしていません。 -oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = OAuth2プロバイダーはInnerSchemeを使用するために必要な'password' grant_typeをサポートしていません。 -eventAlreadyRegisteredExceptionMessage = {0}イベントはすでに登録されています:{1} -noEventRegisteredExceptionMessage = 登録された{0}イベントはありません:{1} -sessionsRequiredForFlashMessagesExceptionMessage = フラッシュメッセージを使用するにはセッションが必要です。 -eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = イベントビューアーロギングはWindowsでのみサポートされています。 -nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = カスタムロギング出力メソッドには空でないScriptBlockが必要です。 -requestLoggingAlreadyEnabledExceptionMessage = リクエストロギングは既に有効になっています。 -outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = リクエストロギングのために提供された出力メソッドには有効なScriptBlockが必要です。 -errorLoggingAlreadyEnabledExceptionMessage = エラーロギングは既に有効になっています。 -nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = ロギングメソッドには空でないScriptBlockが必要です。 -csrfMiddlewareNotInitializedExceptionMessage = CSRFミドルウェアが初期化されていません。 -sessionsRequiredForCsrfExceptionMessage = クッキーを使用しない場合は、CSRFを使用するためにセッションが必要です。 -middlewareNoLogicSuppliedExceptionMessage = [ミドルウェア]: ScriptBlockにロジックが提供されていません。 -parameterHasNoNameExceptionMessage = パラメーターに名前がありません。このコンポーネントに'Name'パラメーターを使用して名前を付けてください。 -reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = OpenAPI v3.0では再利用可能なコンポーネント機能'pathItems'は使用できません。 -noPropertiesMutuallyExclusiveExceptionMessage = パラメーター'NoProperties'は'Properties'、'MinProperties'、および'MaxProperties'と相互排他的です。 -discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = パラメーター'DiscriminatorMapping'は'DiscriminatorProperty'が存在する場合にのみ使用できます。 -discriminatorIncompatibleWithAllOfExceptionMessage = パラメーター'Discriminator'は'allOf'と互換性がありません。 -typeCanOnlyBeAssociatedWithObjectExceptionMessage = タイプ{0}はオブジェクトにのみ関連付けることができます。 -showPodeGuiOnlyAvailableOnWindowsExceptionMessage = Show-PodeGuiは現在、Windows PowerShellおよびWindows上のPowerShell 7+でのみ利用可能です。 -nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = RedirectToパラメーターが提供されている場合、エンドポイントには名前が必要です。 -clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = クライアント証明書はHTTPSエンドポイントでのみサポートされています。 -explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = 明示的なTLSモードはSMTPSおよびTCPSエンドポイントでのみサポートされています。 -acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = 確認メッセージはSMTPおよびTCPエンドポイントでのみサポートされています。 -crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = CRLFメッセージ終了チェックはTCPエンドポイントでのみサポートされています。 -mustBeRunningWithAdminPrivilegesExceptionMessage = ローカルホスト以外のアドレスでリッスンするには管理者権限で実行する必要があります。 -certificateSuppliedForNonHttpsWssEndpointExceptionMessage = HTTPS/WSS以外のエンドポイントに提供された証明書。 -websocketsNotConfiguredForSignalMessagesExceptionMessage = WebSocketsはシグナルメッセージを送信するように構成されていません。 -noPathSuppliedForRouteExceptionMessage = ルートのパスが提供されていません。 -accessRequiresAuthenticationOnRoutesExceptionMessage = アクセスにはルート上の認証が必要です。 -accessMethodDoesNotExistExceptionMessage = アクセスメソッドが存在しません:{0}。 -routeParameterNeedsValidScriptblockExceptionMessage = ルートパラメーターには有効で空でないScriptBlockが必要です。 -noCommandsSuppliedToConvertToRoutesExceptionMessage = ルートに変換するためのコマンドが提供されていません。 -nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = ページルートを作成するには空でないScriptBlockが必要です。 -sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSEはAcceptヘッダー値がtext/event-streamのリクエストでのみ構成できます。 -sseConnectionNameRequiredExceptionMessage = -Nameまたは`$WebEvent.Sse.NameからSSE接続名が必要です。 -sseFailedToBroadcastExceptionMessage = {0}のSSEブロードキャストレベルが定義されているため、SSEのブロードキャストに失敗しました: {1} -podeNotInitializedExceptionMessage = Podeが初期化されていません。 -invalidTaskTypeExceptionMessage = タスクタイプが無効です。予期されるタイプ:[System.Threading.Tasks.Task]または[hashtable] -cannotLockValueTypeExceptionMessage = [ValueTypes]をロックできません。 -cannotLockNullObjectExceptionMessage = nullオブジェクトをロックできません。 -failedToAcquireLockExceptionMessage = オブジェクトのロックを取得できませんでした。 -cannotUnlockValueTypeExceptionMessage = [ValueTypes]のロックを解除できません。 -cannotUnlockNullObjectExceptionMessage = nullオブジェクトのロックを解除できません。 -sessionMiddlewareAlreadyInitializedExceptionMessage = セッションミドルウェアは既に初期化されています。 -customSessionStorageMethodNotImplementedExceptionMessage = カスタムセッションストレージは必要なメソッド'{0}()'を実装していません。 -secretRequiredForCustomSessionStorageExceptionMessage = カスタムセッションストレージを使用する場合、シークレットが必要です。 -noSessionAvailableToSaveExceptionMessage = 保存するためのセッションが利用できません。 -cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = パラメーター'Every'がNoneに設定されている場合、間隔を提供できません。 -cannotSupplyIntervalForQuarterExceptionMessage = 四半期ごとの間隔値を提供できません。 -cannotSupplyIntervalForYearExceptionMessage = 毎年の間隔値を提供できません。 -secretVaultAlreadyRegisteredExceptionMessage = 名前 '{0}' のシークレットボールトは既に登録されています{1}。 -secretVaultUnlockExpiryDateInPastExceptionMessage = シークレットボールトのアンロック有効期限が過去に設定されています (UTC) :{0} -secretAlreadyMountedExceptionMessage = 名前 '{0}' のシークレットは既にマウントされています。 -credentialsPassedWildcardForHeadersLiteralExceptionMessage = 資格情報が渡されると、ヘッダーのワイルドカード * はワイルドカードとしてではなく、リテラル文字列として解釈されます。 -wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = ヘッダーのワイルドカード * は AutoHeaders スイッチと互換性がありません。 -wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = メソッドのワイルドカード * は AutoMethods スイッチと互換性がありません。 -invalidAccessControlMaxAgeDurationExceptionMessage = 無効な Access-Control-Max-Age 期間が提供されました:{0}。0 より大きくする必要があります。 -noNameForWebSocketDisconnectExceptionMessage = 切断する WebSocket の名前が指定されていません。 -noNameForWebSocketRemoveExceptionMessage = 削除する WebSocket の名前が指定されていません。 -noNameForWebSocketSendMessageExceptionMessage = メッセージを送信する WebSocket の名前が指定されていません。 -noSecretNamedMountedExceptionMessage = 名前 '{0}' のシークレットはマウントされていません。 -noNameForWebSocketResetExceptionMessage = リセットする WebSocket の名前が指定されていません。 -schemaValidationRequiresPowerShell610ExceptionMessage = スキーマ検証には PowerShell バージョン 6.1.0 以上が必要です。 -routeParameterCannotBeNullExceptionMessage = パラメータ 'Route' は null ではいけません。 -encodingAttributeOnlyAppliesToMultipartExceptionMessage = エンコーディング属性は、multipart および application/x-www-form-urlencoded リクエストボディにのみ適用されます。 -testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = 'Test-PodeOAComponentSchema' は 'Enable-PodeOpenApi -EnableSchemaValidation' を使用して有効にする必要があります。 -openApiComponentSchemaDoesNotExistExceptionMessage = OpenApi コンポーネントスキーマ {0} は存在しません。 -openApiParameterRequiresNameExceptionMessage = OpenApi パラメータには名前が必要です。 -openApiLicenseObjectRequiresNameExceptionMessage = OpenAPI オブジェクト 'license' には 'name' プロパティが必要です。-LicenseName パラメータを使用してください。 -parametersValueOrExternalValueMandatoryExceptionMessage = パラメータ 'Value' または 'ExternalValue' は必須です。 -parametersMutuallyExclusiveExceptionMessage = パラメータ '{0}' と '{1}' は互いに排他的です。 -maximumConcurrentWebSocketThreadsInvalidExceptionMessage = 最大同時 WebSocket スレッド数は >=1 でなければなりませんが、取得した値は: {0} -maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = 最大同時 WebSocket スレッド数は最小値 {0} より小さくてはいけませんが、取得した値は: {1} -alreadyConnectedToWebSocketExceptionMessage = 名前 '{0}' の WebSocket に既に接続されています -failedToConnectToWebSocketExceptionMessage = WebSocket への接続に失敗しました: {0} -verbNoLogicPassedExceptionMessage = [動詞] {0}: ロジックが渡されていません -scriptPathDoesNotExistExceptionMessage = スクリプトパスが存在しません: {0} -failedToImportModuleExceptionMessage = モジュールのインポートに失敗しました: {0} -modulePathDoesNotExistExceptionMessage = モジュールパスが存在しません: {0} -defaultValueNotBooleanOrEnumExceptionMessage = デフォルト値は boolean ではなく、enum に含まれていません。 -propertiesTypeObjectAssociationExceptionMessage = Object 型のプロパティのみが {0} と関連付けられます。 -invalidContentTypeForSchemaExceptionMessage = スキーマの 'content-type' が無効です: {0} -openApiRequestStyleInvalidForParameterExceptionMessage = OpenApi リクエストのスタイルは {1} パラメータに対して {0} であってはなりません。 -pathParameterRequiresRequiredSwitchExceptionMessage = パラメータの場所が 'Path' の場合、スイッチパラメータ 'Required' は必須です。 -operationIdMustBeUniqueForArrayExceptionMessage = OperationID: {0} は一意でなければならず、配列に適用できません。 -operationIdMustBeUniqueExceptionMessage = OperationID: {0} は一意でなければなりません。 -noOpenApiUrlSuppliedExceptionMessage = {0} 用の OpenAPI URL が提供されていません。 -noTitleSuppliedForPageExceptionMessage = {0} ページのタイトルが提供されていません。 -noRoutePathSuppliedForPageExceptionMessage = {0} ページのルートパスが提供されていません。 -swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = このバージョンの Swagger-Editor は OpenAPI 3.1 をサポートしていません -rapidPdfDoesNotSupportOpenApi31ExceptionMessage = ドキュメントツール RapidPdf は OpenAPI 3.1 をサポートしていません -definitionTagNotDefinedExceptionMessage = 定義タグ {0} が定義されていません。 -scopedVariableNotFoundExceptionMessage = スコープ変数が見つかりません: {0} -noSecretVaultRegisteredExceptionMessage = 名前 '{0}' のシークレットボールトは登録されていません。 -invalidStrictTransportSecurityDurationExceptionMessage = 無効な Strict-Transport-Security 期間が指定されました: {0}。0 より大きい必要があります。 -durationMustBeZeroOrGreaterExceptionMessage = 期間は 0 以上でなければなりませんが、取得した値は: {0}s -taskAlreadyDefinedExceptionMessage = [タスク] {0}: タスクは既に定義されています。 -maximumConcurrentTasksInvalidExceptionMessage = 最大同時タスク数は >=1 でなければなりませんが、取得した値は: {0} -maximumConcurrentTasksLessThanMinimumExceptionMessage = 最大同時タスク数は最小値 {0} より少なくてはいけませんが、取得した値は: {1} -taskDoesNotExistExceptionMessage = タスク '{0}' は存在しません。 -cacheStorageNotFoundForRetrieveExceptionMessage = キャッシュされたアイテム '{1}' を取得しようとしたときに、名前 '{0}' のキャッシュストレージが見つかりません。 -cacheStorageNotFoundForSetExceptionMessage = キャッシュされたアイテム '{1}' を設定しようとしたときに、名前 '{0}' のキャッシュストレージが見つかりません。 -cacheStorageNotFoundForExistsExceptionMessage = キャッシュされたアイテム '{1}' が存在するかどうかを確認しようとしたときに、名前 '{0}' のキャッシュストレージが見つかりません。 -cacheStorageNotFoundForRemoveExceptionMessage = キャッシュされたアイテム '{1}' を削除しようとしたときに、名前 '{0}' のキャッシュストレージが見つかりません。 -cacheStorageNotFoundForClearExceptionMessage = キャッシュをクリアしようとしたときに、名前 '{0}' のキャッシュストレージが見つかりません。 -cacheStorageAlreadyExistsExceptionMessage = 名前 '{0}' のキャッシュストレージは既に存在します。 -pathToIconForGuiDoesNotExistExceptionMessage = GUI用アイコンのパスが存在しません: {0} -invalidHostnameSuppliedExceptionMessage = 無効なホスト名が指定されました: {0} -endpointAlreadyDefinedExceptionMessage = 名前 '{0}' のエンドポイントは既に定義されています。 -certificateExpiredExceptionMessage = 証明書 '{0}' の有効期限が切れています: {1} -endpointNotDefinedForRedirectingExceptionMessage = リダイレクトのために名前 '{0}' のエンドポイントが定義されていません。 -fileWatcherAlreadyDefinedExceptionMessage = 名前 '{0}' のファイルウォッチャーは既に定義されています。 -handlerAlreadyDefinedExceptionMessage = [{0}] {1}: ハンドラは既に定義されています。 -maxDaysInvalidExceptionMessage = MaxDaysは0以上でなければなりませんが、受け取った値は: {0} -maxSizeInvalidExceptionMessage = MaxSizeは0以上でなければなりませんが、受け取った値は: {0} -loggingMethodAlreadyDefinedExceptionMessage = ログ記録方法は既に定義されています: {0} -loggingMethodRequiresValidScriptBlockExceptionMessage = '{0}' ログ記録方法のために提供された出力方法は、有効なScriptBlockが必要です。 -csrfCookieRequiresSecretExceptionMessage = CSRFのためにクッキーを使用する場合、秘密が必要です。秘密を提供するか、クッキーのグローバル秘密を設定してください - (Set-PodeCookieSecret '' -Global) -bodyParserAlreadyDefinedForContentTypeExceptionMessage = {0} コンテンツタイプ用のボディパーサーは既に定義されています。 -middlewareAlreadyDefinedExceptionMessage = [Middleware] {0}: ミドルウェアは既に定義されています。 -parameterNotSuppliedInRequestExceptionMessage = リクエストに '{0}' という名前のパラメータが提供されていないか、データがありません。 -noDataForFileUploadedExceptionMessage = リクエストでアップロードされたファイル '{0}' のデータがありません。 -viewsFolderNameAlreadyExistsExceptionMessage = ビューのフォルダ名は既に存在します: {0} -viewsPathDoesNotExistExceptionMessage = ビューのパスが存在しません: {0} -timerAlreadyDefinedExceptionMessage = [タイマー] {0}: タイマーはすでに定義されています。 -timerParameterMustBeGreaterThanZeroExceptionMessage = [タイマー] {0}: {1} は 0 より大きくなければなりません。 -timerDoesNotExistExceptionMessage = タイマー '{0}' は存在しません。 -mutexAlreadyExistsExceptionMessage = 次の名前のミューテックスはすでに存在します: {0} -noMutexFoundExceptionMessage = 名前 '{0}' のミューテックスが見つかりません -failedToAcquireMutexOwnershipExceptionMessage = ミューテックスの所有権を取得できませんでした。ミューテックス名: {0} -semaphoreAlreadyExistsExceptionMessage = 次の名前のセマフォはすでに存在します: {0} -failedToAcquireSemaphoreOwnershipExceptionMessage = セマフォの所有権を取得できませんでした。セマフォ名: {0} -scheduleAlreadyDefinedExceptionMessage = [スケジュール] {0}: スケジュールはすでに定義されています。 -scheduleCannotHaveNegativeLimitExceptionMessage = [スケジュール] {0}: 負の制限を持つことはできません。 -scheduleEndTimeMustBeInFutureExceptionMessage = [スケジュール] {0}: EndTime 値は未来に設定する必要があります。 -scheduleStartTimeAfterEndTimeExceptionMessage = [スケジュール] {0}: 'StartTime' が 'EndTime' の後であることはできません -maximumConcurrentSchedulesInvalidExceptionMessage = 最大同時スケジュール数は 1 以上でなければなりませんが、受け取った値: {0} -maximumConcurrentSchedulesLessThanMinimumExceptionMessage = 最大同時スケジュール数は最小 {0} 未満にすることはできませんが、受け取った値: {1} -scheduleDoesNotExistExceptionMessage = スケジュール '{0}' は存在しません。 -suppliedDateBeforeScheduleStartTimeExceptionMessage = 提供された日付はスケジュールの開始時間 {0} より前です -suppliedDateAfterScheduleEndTimeExceptionMessage = 提供された日付はスケジュールの終了時間 {0} の後です -noSemaphoreFoundExceptionMessage = 名前 '{0}' のセマフォが見つかりません -noLogicPassedForRouteExceptionMessage = ルートに対してロジックが渡されませんでした: {0} -noPathSuppliedForStaticRouteExceptionMessage = [{0}]: 静的ルートに対して提供されたパスがありません。 -sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: 静的ルートに対して提供されたソースパスが存在しません: {2} -noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: ロジックが渡されませんでした。 -moduleDoesNotContainFunctionExceptionMessage = モジュール {0} にはルートに変換する関数 {1} が含まれていません。 -pageNameShouldBeAlphaNumericExceptionMessage = ページ名は有効な英数字である必要があります: {0} -filesHaveChangedMessage = 次のファイルが変更されました: -multipleEndpointsForGuiMessage = 複数のエンドポイントが定義されていますが、GUIには最初のエンドポイントのみが使用されます。 -openingGuiMessage = GUIを開いています。 -listeningOnEndpointsMessage = 次の {0} エンドポイントでリッスンしています [{1} スレッド]: -specificationMessage = 仕様 -documentationMessage = ドキュメント -restartingServerMessage = サーバーを再起動しています... -doneMessage = 完了 -deprecatedTitleVersionDescriptionWarningMessage = 警告: 'Enable-PodeOpenApi' のタイトル、バージョン、および説明は非推奨です。代わりに 'Add-PodeOAInfo' を使用してください。 -undefinedOpenApiReferencesMessage = 未定義のOpenAPI参照: -definitionTagMessage = 定義 {0}: -openApiGenerationDocumentErrorMessage = OpenAPI生成ドキュメントエラー: -infoTitleMandatoryMessage = info.title は必須です。 -infoVersionMandatoryMessage = info.version は必須です。 -missingComponentsMessage = 欠落しているコンポーネント -openApiInfoMessage = OpenAPI情報: -serverLoopingMessage = サーバーループ間隔 {0}秒 -iisShutdownMessage = (IIS シャットダウン) -terminatingMessage = 終了中... -eolPowerShellWarningMessage = [警告] Pode {0} は、EOLであるPowerShell {1} でテストされていません。 -untestedPowerShellVersionWarningMessage = [警告] Pode {0} はリリース時に利用可能でなかったため、PowerShell {1} でテストされていません。 -'@ \ No newline at end of file +@{ + schemaValidationRequiresPowerShell610ExceptionMessage = 'スキーマ検証には PowerShell バージョン 6.1.0 以上が必要です。' + pathOrScriptBlockRequiredExceptionMessage = 'カスタムアクセス値のソース化には、パスまたはスクリプトブロックが必要です。' + operationIdMustBeUniqueForArrayExceptionMessage = 'OperationID: {0} は一意でなければならず、配列に適用できません。' + endpointNotDefinedForRedirectingExceptionMessage = "リダイレクトのために名前 '{0}' のエンドポイントが定義されていません。" + filesHaveChangedMessage = '次のファイルが変更されました:' + iisAspnetcoreTokenMissingExceptionMessage = 'IIS ASPNETCORE_TOKENがありません。' + minValueGreaterThanMaxExceptionMessage = '{0}の最小値は最大値を超えることはできません。' + noLogicPassedForRouteExceptionMessage = 'ルートに対してロジックが渡されませんでした: {0}' + scriptPathDoesNotExistExceptionMessage = 'スクリプトパスが存在しません: {0}' + mutexAlreadyExistsExceptionMessage = '次の名前のミューテックスはすでに存在します: {0}' + listeningOnEndpointsMessage = '次の {0} エンドポイントでリッスンしています [{1} スレッド]:' + unsupportedFunctionInServerlessContextExceptionMessage = 'サーバーレスコンテキストではサポートされていない関数です: {0}' + expectedNoJwtSignatureSuppliedExceptionMessage = '提供されるべきではないJWT署名が予期されました。' + secretAlreadyMountedExceptionMessage = "名前 '{0}' のシークレットは既にマウントされています。" + failedToAcquireLockExceptionMessage = 'オブジェクトのロックを取得できませんでした。' + noPathSuppliedForStaticRouteExceptionMessage = '[{0}]: 静的ルートに対して提供されたパスがありません。' + invalidHostnameSuppliedExceptionMessage = '無効なホスト名が指定されました: {0}' + authMethodAlreadyDefinedExceptionMessage = '認証方法はすでに定義されています:{0}' + csrfCookieRequiresSecretExceptionMessage = "CSRFのためにクッキーを使用する場合、秘密が必要です。秘密を提供するか、クッキーのグローバル秘密を設定してください - (Set-PodeCookieSecret '' -Global)" + nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = 'ページルートを作成するには空でないScriptBlockが必要です。' + noPropertiesMutuallyExclusiveExceptionMessage = "パラメーター'NoProperties'は'Properties'、'MinProperties'、および'MaxProperties'と相互排他的です。" + incompatiblePodeDllExceptionMessage = '既存の互換性のないPode.DLLバージョン{0}がロードされています。バージョン{1}が必要です。新しいPowerShell/pwshセッションを開いて再試行してください。' + accessMethodDoesNotExistExceptionMessage = 'アクセスメソッドが存在しません:{0}。' + scheduleAlreadyDefinedExceptionMessage = '[スケジュール] {0}: スケジュールはすでに定義されています。' + secondsValueCannotBeZeroOrLessExceptionMessage = '{0}の秒数値は0またはそれ以下にすることはできません。' + pathToLoadNotFoundExceptionMessage = '読み込むパス{0}が見つかりません: {1}' + failedToImportModuleExceptionMessage = 'モジュールのインポートに失敗しました: {0}' + endpointNotExistExceptionMessage = "プロトコル'{0}'、アドレス'{1}'またはローカルアドレス'{2}'のエンドポイントが存在しません。" + terminatingMessage = '終了中...' + noCommandsSuppliedToConvertToRoutesExceptionMessage = 'ルートに変換するためのコマンドが提供されていません。' + invalidTaskTypeExceptionMessage = 'タスクタイプが無効です。予期されるタイプ:[System.Threading.Tasks.Task]または[hashtable]' + alreadyConnectedToWebSocketExceptionMessage = "名前 '{0}' の WebSocket に既に接続されています" + crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = 'CRLFメッセージ終了チェックはTCPエンドポイントでのみサポートされています。' + testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = "'Test-PodeOAComponentSchema' は 'Enable-PodeOpenApi -EnableSchemaValidation' を使用して有効にする必要があります。" + adModuleNotInstalledExceptionMessage = 'Active Directoryモジュールがインストールされていません。' + cronExpressionInvalidExceptionMessage = 'Cron式は5つの部分で構成される必要があります: {0}' + noSessionToSetOnResponseExceptionMessage = 'レスポンスに設定するセッションがありません。' + valueOutOfRangeExceptionMessage = "{1}の値'{0}'は無効です。{2}から{3}の間でなければなりません。" + loggingMethodAlreadyDefinedExceptionMessage = 'ログ記録方法は既に定義されています: {0}' + noSecretForHmac256ExceptionMessage = 'HMAC256ハッシュに対する秘密が提供されていません。' + eolPowerShellWarningMessage = '[警告] Pode {0} は、EOLであるPowerShell {1} でテストされていません。' + runspacePoolFailedToLoadExceptionMessage = '{0} RunspacePoolの読み込みに失敗しました。' + noEventRegisteredExceptionMessage = '登録された{0}イベントはありません:{1}' + scheduleCannotHaveNegativeLimitExceptionMessage = '[スケジュール] {0}: 負の制限を持つことはできません。' + openApiRequestStyleInvalidForParameterExceptionMessage = 'OpenApi リクエストのスタイルは {1} パラメータに対して {0} であってはなりません。' + openApiDocumentNotCompliantExceptionMessage = 'OpenAPIドキュメントが準拠していません。' + taskDoesNotExistExceptionMessage = "タスク '{0}' は存在しません。" + scopedVariableNotFoundExceptionMessage = 'スコープ変数が見つかりません: {0}' + sessionsRequiredForCsrfExceptionMessage = 'クッキーを使用しない場合は、CSRFを使用するためにセッションが必要です。' + nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = 'ロギングメソッドには空でないScriptBlockが必要です。' + credentialsPassedWildcardForHeadersLiteralExceptionMessage = '資格情報が渡されると、ヘッダーのワイルドカード * はワイルドカードとしてではなく、リテラル文字列として解釈されます。' + podeNotInitializedExceptionMessage = 'Podeが初期化されていません。' + multipleEndpointsForGuiMessage = '複数のエンドポイントが定義されていますが、GUIには最初のエンドポイントのみが使用されます。' + operationIdMustBeUniqueExceptionMessage = 'OperationID: {0} は一意でなければなりません。' + invalidJsonJwtExceptionMessage = 'JWTに無効なJSON値が見つかりました。' + noAlgorithmInJwtHeaderExceptionMessage = 'JWTヘッダーにアルゴリズムが提供されていません。' + openApiVersionPropertyMandatoryExceptionMessage = 'OpenApiバージョンプロパティは必須です。' + limitValueCannotBeZeroOrLessExceptionMessage = '{0}の制限値は0またはそれ以下にすることはできません。' + timerDoesNotExistExceptionMessage = "タイマー '{0}' は存在しません。" + openApiGenerationDocumentErrorMessage = 'OpenAPI生成ドキュメントエラー:' + routeAlreadyContainsCustomAccessExceptionMessage = "ルート '[{0}] {1}' はすでに名前 '{2}' のカスタムアクセスを含んでいます" + maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = '最大同時 WebSocket スレッド数は最小値 {0} より小さくてはいけませんが、取得した値は: {1}' + middlewareAlreadyDefinedExceptionMessage = '[Middleware] {0}: ミドルウェアは既に定義されています。' + invalidAtomCharacterExceptionMessage = '無効なアトム文字: {0}' + cacheStorageNotFoundForRetrieveExceptionMessage = "キャッシュされたアイテム '{1}' を取得しようとしたときに、名前 '{0}' のキャッシュストレージが見つかりません。" + headerMustHaveNameInEncodingContextExceptionMessage = 'エンコーディングコンテキストで使用される場合、ヘッダーには名前が必要です。' + moduleDoesNotContainFunctionExceptionMessage = 'モジュール {0} にはルートに変換する関数 {1} が含まれていません。' + pathToIconForGuiDoesNotExistExceptionMessage = 'GUI用アイコンのパスが存在しません: {0}' + noTitleSuppliedForPageExceptionMessage = '{0} ページのタイトルが提供されていません。' + certificateSuppliedForNonHttpsWssEndpointExceptionMessage = 'HTTPS/WSS以外のエンドポイントに提供された証明書。' + cannotLockNullObjectExceptionMessage = 'nullオブジェクトをロックできません。' + showPodeGuiOnlyAvailableOnWindowsExceptionMessage = 'Show-PodeGuiは現在、Windows PowerShellおよびWindows上のPowerShell 7+でのみ利用可能です。' + unlockSecretButNoScriptBlockExceptionMessage = 'カスタムシークレットボールトタイプに対してアンロックシークレットが提供されましたが、アンロックスクリプトブロックが提供されていません。' + invalidIpAddressExceptionMessage = '提供されたIPアドレスは無効です: {0}' + maxDaysInvalidExceptionMessage = 'MaxDaysは0以上でなければなりませんが、受け取った値は: {0}' + noRemoveScriptBlockForVaultExceptionMessage = "ボールト'{0}'のシークレットを削除するためのスクリプトブロックが提供されていません。" + noSecretExpectedForNoSignatureExceptionMessage = '署名なしのための秘密が提供されることを期待していませんでした。' + noCertificateFoundExceptionMessage = "'{2}'用の{0}{1}に証明書が見つかりませんでした。" + minValueInvalidExceptionMessage = "{1}の最小値'{0}'は無効です。{2}以上でなければなりません。" + accessRequiresAuthenticationOnRoutesExceptionMessage = 'アクセスにはルート上の認証が必要です。' + noSecretForHmac384ExceptionMessage = 'HMAC384ハッシュに対する秘密が提供されていません。' + windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = 'Windowsローカル認証のサポートはWindowsのみです。' + definitionTagNotDefinedExceptionMessage = '定義タグ {0} が定義されていません。' + noComponentInDefinitionExceptionMessage = '{2}定義に{0}タイプの名前{1}コンポーネントが利用できません。' + noSmtpHandlersDefinedExceptionMessage = 'SMTPハンドラが定義されていません。' + sessionMiddlewareAlreadyInitializedExceptionMessage = 'セッションミドルウェアは既に初期化されています。' + reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = "OpenAPI v3.0では再利用可能なコンポーネント機能'pathItems'は使用できません。" + wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = 'ヘッダーのワイルドカード * は AutoHeaders スイッチと互換性がありません。' + noDataForFileUploadedExceptionMessage = "リクエストでアップロードされたファイル '{0}' のデータがありません。" + sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = 'SSEはAcceptヘッダー値がtext/event-streamのリクエストでのみ構成できます。' + noSessionAvailableToSaveExceptionMessage = '保存するためのセッションが利用できません。' + pathParameterRequiresRequiredSwitchExceptionMessage = "パラメータの場所が 'Path' の場合、スイッチパラメータ 'Required' は必須です。" + noOpenApiUrlSuppliedExceptionMessage = '{0} 用の OpenAPI URL が提供されていません。' + maximumConcurrentSchedulesInvalidExceptionMessage = '最大同時スケジュール数は 1 以上でなければなりませんが、受け取った値: {0}' + snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = 'SnapinsはWindows PowerShellのみでサポートされています。' + eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = 'イベントビューアーロギングはWindowsでのみサポートされています。' + parametersMutuallyExclusiveExceptionMessage = "パラメータ '{0}' と '{1}' は互いに排他的です。" + pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = 'PathItems機能はOpenAPI v3.0.xではサポートされていません。' + openApiParameterRequiresNameExceptionMessage = 'OpenApi パラメータには名前が必要です。' + maximumConcurrentTasksLessThanMinimumExceptionMessage = '最大同時タスク数は最小値 {0} より少なくてはいけませんが、取得した値は: {1}' + noSemaphoreFoundExceptionMessage = "名前 '{0}' のセマフォが見つかりません" + singleValueForIntervalExceptionMessage = 'インターバルを使用する場合、単一の{0}値しか指定できません。' + jwtNotYetValidExceptionMessage = 'JWTはまだ有効ではありません。' + verbAlreadyDefinedForUrlExceptionMessage = '[動詞] {0}: {1}にすでに定義されています' + noSecretNamedMountedExceptionMessage = "名前 '{0}' のシークレットはマウントされていません。" + moduleOrVersionNotFoundExceptionMessage = '{0}でモジュールまたはバージョンが見つかりません: {1}@{2}' + noScriptBlockSuppliedExceptionMessage = 'ScriptBlockが提供されていません。' + noSecretVaultRegisteredExceptionMessage = "名前 '{0}' のシークレットボールトは登録されていません。" + nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = 'RedirectToパラメーターが提供されている場合、エンドポイントには名前が必要です。' + openApiLicenseObjectRequiresNameExceptionMessage = "OpenAPI オブジェクト 'license' には 'name' プロパティが必要です。-LicenseName パラメータを使用してください。" + sourcePathDoesNotExistForStaticRouteExceptionMessage = '[{0})] {1}: 静的ルートに対して提供されたソースパスが存在しません: {2}' + noNameForWebSocketDisconnectExceptionMessage = '切断する WebSocket の名前が指定されていません。' + certificateExpiredExceptionMessage = "証明書 '{0}' の有効期限が切れています: {1}" + secretVaultUnlockExpiryDateInPastExceptionMessage = 'シークレットボールトのアンロック有効期限が過去に設定されています (UTC) :{0}' + invalidExceptionTypeExceptionMessage = '例外が無効な型です。WebExceptionまたはHttpRequestExceptionのいずれかである必要がありますが、次の型を取得しました: {0}' + invalidSecretValueTypeExceptionMessage = 'シークレットの値が無効な型です。期待される型: String、SecureString、HashTable、Byte[]、またはPSCredential。しかし、次を取得しました: {0}' + explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = '明示的なTLSモードはSMTPSおよびTCPSエンドポイントでのみサポートされています。' + discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = "パラメーター'DiscriminatorMapping'は'DiscriminatorProperty'が存在する場合にのみ使用できます。" + scriptErrorExceptionMessage = "スクリプト{1} {2}(行{3})のエラー'{0}'(文字{4})が{6}オブジェクト'{7}'の{5}を実行中に発生しました クラス: {8} 基底クラス: {9}" + cannotSupplyIntervalForQuarterExceptionMessage = '四半期ごとの間隔値を提供できません。' + scheduleEndTimeMustBeInFutureExceptionMessage = '[スケジュール] {0}: EndTime 値は未来に設定する必要があります。' + invalidJwtSignatureSuppliedExceptionMessage = '無効なJWT署名が提供されました。' + noSetScriptBlockForVaultExceptionMessage = "ボールト'{0}'のシークレットを更新/作成するためのスクリプトブロックが提供されていません。" + accessMethodNotExistForMergingExceptionMessage = 'マージするアクセス方法が存在しません: {0}' + defaultAuthNotInListExceptionMessage = "デフォルト認証'{0}'は提供された認証リストにありません。" + parameterHasNoNameExceptionMessage = "パラメーターに名前がありません。このコンポーネントに'Name'パラメーターを使用して名前を付けてください。" + methodPathAlreadyDefinedForUrlExceptionMessage = '[{0}] {1}: {2}用に既に定義されています。' + fileWatcherAlreadyDefinedExceptionMessage = "名前 '{0}' のファイルウォッチャーは既に定義されています。" + noServiceHandlersDefinedExceptionMessage = 'サービスハンドラが定義されていません。' + secretRequiredForCustomSessionStorageExceptionMessage = 'カスタムセッションストレージを使用する場合、シークレットが必要です。' + secretManagementModuleNotInstalledExceptionMessage = 'Microsoft.PowerShell.SecretManagementモジュールがインストールされていません。' + noPathSuppliedForRouteExceptionMessage = 'ルートのパスが提供されていません。' + validationOfAnyOfSchemaNotSupportedExceptionMessage = "'anyof'を含むスキーマの検証はサポートされていません。" + iisAuthSupportIsForWindowsOnlyExceptionMessage = 'IIS認証のサポートはWindowsのみです。' + oauth2InnerSchemeInvalidExceptionMessage = 'OAuth2 InnerSchemeはBasicまたはFormのいずれかでなければなりませんが、取得したのは: {0}' + noRoutePathSuppliedForPageExceptionMessage = '{0} ページのルートパスが提供されていません。' + cacheStorageNotFoundForExistsExceptionMessage = "キャッシュされたアイテム '{1}' が存在するかどうかを確認しようとしたときに、名前 '{0}' のキャッシュストレージが見つかりません。" + handlerAlreadyDefinedExceptionMessage = '[{0}] {1}: ハンドラは既に定義されています。' + sessionsNotConfiguredExceptionMessage = 'セッションが構成されていません。' + propertiesTypeObjectAssociationExceptionMessage = 'Object 型のプロパティのみが {0} と関連付けられます。' + sessionsRequiredForSessionPersistentAuthExceptionMessage = 'セッション持続認証を使用するにはセッションが必要です。' + invalidPathWildcardOrDirectoryExceptionMessage = '指定されたパスはワイルドカードまたはディレクトリにすることはできません: {0}' + accessMethodAlreadyDefinedExceptionMessage = 'アクセス方法はすでに定義されています: {0}' + parametersValueOrExternalValueMandatoryExceptionMessage = "パラメータ 'Value' または 'ExternalValue' は必須です。" + maximumConcurrentTasksInvalidExceptionMessage = '最大同時タスク数は >=1 でなければなりませんが、取得した値は: {0}' + cannotCreatePropertyWithoutTypeExceptionMessage = '型が定義されていないため、プロパティを作成できません。' + authMethodNotExistForMergingExceptionMessage = 'マージするための認証方法は存在しません:{0}' + maxValueInvalidExceptionMessage = "{1}の最大値'{0}'は無効です。{2}以下でなければなりません。" + endpointAlreadyDefinedExceptionMessage = "名前 '{0}' のエンドポイントは既に定義されています。" + eventAlreadyRegisteredExceptionMessage = '{0}イベントはすでに登録されています:{1}' + parameterNotSuppliedInRequestExceptionMessage = "リクエストに '{0}' という名前のパラメータが提供されていないか、データがありません。" + cacheStorageNotFoundForSetExceptionMessage = "キャッシュされたアイテム '{1}' を設定しようとしたときに、名前 '{0}' のキャッシュストレージが見つかりません。" + methodPathAlreadyDefinedExceptionMessage = '[{0}] {1}: 既に定義されています。' + errorLoggingAlreadyEnabledExceptionMessage = 'エラーロギングは既に有効になっています。' + valueForUsingVariableNotFoundExceptionMessage = "'`$using:{0}'の値が見つかりませんでした。" + rapidPdfDoesNotSupportOpenApi31ExceptionMessage = 'ドキュメントツール RapidPdf は OpenAPI 3.1 をサポートしていません' + oauth2ClientSecretRequiredExceptionMessage = 'PKCEを使用しない場合、OAuth2にはクライアントシークレットが必要です。' + invalidBase64JwtExceptionMessage = 'JWTに無効なBase64エンコード値が見つかりました。' + noSessionToCalculateDataHashExceptionMessage = 'データハッシュを計算するセッションがありません。' + cacheStorageNotFoundForRemoveExceptionMessage = "キャッシュされたアイテム '{1}' を削除しようとしたときに、名前 '{0}' のキャッシュストレージが見つかりません。" + csrfMiddlewareNotInitializedExceptionMessage = 'CSRFミドルウェアが初期化されていません。' + infoTitleMandatoryMessage = 'info.title は必須です。' + typeCanOnlyBeAssociatedWithObjectExceptionMessage = 'タイプ{0}はオブジェクトにのみ関連付けることができます。' + userFileDoesNotExistExceptionMessage = 'ユーザーファイルが存在しません:{0}' + routeParameterNeedsValidScriptblockExceptionMessage = 'ルートパラメーターには有効で空でないScriptBlockが必要です。' + nextTriggerCalculationErrorExceptionMessage = '次のトリガー日時の計算中に問題が発生したようです: {0}' + cannotLockValueTypeExceptionMessage = '[ValueTypes]をロックできません。' + failedToCreateOpenSslCertExceptionMessage = 'OpenSSL証明書の作成に失敗しました: {0}' + jwtExpiredExceptionMessage = 'JWTの有効期限が切れています。' + openingGuiMessage = 'GUIを開いています。' + multiTypePropertiesRequireOpenApi31ExceptionMessage = '複数タイプのプロパティはOpenApiバージョン3.1以上が必要です。' + noNameForWebSocketRemoveExceptionMessage = '削除する WebSocket の名前が指定されていません。' + maxSizeInvalidExceptionMessage = 'MaxSizeは0以上でなければなりませんが、受け取った値は: {0}' + iisShutdownMessage = '(IIS シャットダウン)' + cannotUnlockValueTypeExceptionMessage = '[ValueTypes]のロックを解除できません。' + noJwtSignatureForAlgorithmExceptionMessage = '{0}のためのJWT署名が提供されていません。' + maximumConcurrentWebSocketThreadsInvalidExceptionMessage = '最大同時 WebSocket スレッド数は >=1 でなければなりませんが、取得した値は: {0}' + acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = '確認メッセージはSMTPおよびTCPエンドポイントでのみサポートされています。' + failedToConnectToUrlExceptionMessage = 'URLへの接続に失敗しました: {0}' + failedToAcquireMutexOwnershipExceptionMessage = 'ミューテックスの所有権を取得できませんでした。ミューテックス名: {0}' + sessionsRequiredForOAuth2WithPKCEExceptionMessage = 'PKCEを使用するOAuth2にはセッションが必要です。' + failedToConnectToWebSocketExceptionMessage = 'WebSocket への接続に失敗しました: {0}' + unsupportedObjectExceptionMessage = 'サポートされていないオブジェクトです。' + failedToParseAddressExceptionMessage = "'{0}'を有効なIP/ホスト:ポートアドレスとして解析できませんでした。" + mustBeRunningWithAdminPrivilegesExceptionMessage = 'ローカルホスト以外のアドレスでリッスンするには管理者権限で実行する必要があります。' + specificationMessage = '仕様' + cacheStorageNotFoundForClearExceptionMessage = "キャッシュをクリアしようとしたときに、名前 '{0}' のキャッシュストレージが見つかりません。" + restartingServerMessage = 'サーバーを再起動しています...' + cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = "パラメーター'Every'がNoneに設定されている場合、間隔を提供できません。" + unsupportedJwtAlgorithmExceptionMessage = '現在サポートされていないJWTアルゴリズムです: {0}' + websocketsNotConfiguredForSignalMessagesExceptionMessage = 'WebSocketsはシグナルメッセージを送信するように構成されていません。' + invalidLogicTypeInHashtableMiddlewareExceptionMessage = '提供されたHashtableミドルウェアに無効なロジック型があります。ScriptBlockを期待しましたが、次を取得しました: {0}' + maximumConcurrentSchedulesLessThanMinimumExceptionMessage = '最大同時スケジュール数は最小 {0} 未満にすることはできませんが、受け取った値: {1}' + failedToAcquireSemaphoreOwnershipExceptionMessage = 'セマフォの所有権を取得できませんでした。セマフォ名: {0}' + propertiesParameterWithoutNameExceptionMessage = 'プロパティに名前がない場合、プロパティパラメータは使用できません。' + customSessionStorageMethodNotImplementedExceptionMessage = "カスタムセッションストレージは必要なメソッド'{0}()'を実装していません。" + authenticationMethodDoesNotExistExceptionMessage = '認証方法が存在しません: {0}' + webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = 'Webhooks機能はOpenAPI v3.0.xではサポートされていません。' + invalidContentTypeForSchemaExceptionMessage = "スキーマの 'content-type' が無効です: {0}" + noUnlockScriptBlockForVaultExceptionMessage = "ボールト'{0}'のロック解除に必要なスクリプトブロックが提供されていません。" + definitionTagMessage = '定義 {0}:' + failedToOpenRunspacePoolExceptionMessage = 'RunspacePoolのオープンに失敗しました: {0}' + verbNoLogicPassedExceptionMessage = '[動詞] {0}: ロジックが渡されていません' + noMutexFoundExceptionMessage = "名前 '{0}' のミューテックスが見つかりません" + documentationMessage = 'ドキュメント' + timerAlreadyDefinedExceptionMessage = '[タイマー] {0}: タイマーはすでに定義されています。' + invalidPortExceptionMessage = 'ポートは負であってはなりません: {0}' + viewsFolderNameAlreadyExistsExceptionMessage = 'ビューのフォルダ名は既に存在します: {0}' + noNameForWebSocketResetExceptionMessage = 'リセットする WebSocket の名前が指定されていません。' + mergeDefaultAuthNotInListExceptionMessage = "MergeDefault認証'{0}'は提供された認証リストにありません。" + descriptionRequiredExceptionMessage = '説明が必要です。' + pageNameShouldBeAlphaNumericExceptionMessage = 'ページ名は有効な英数字である必要があります: {0}' + defaultValueNotBooleanOrEnumExceptionMessage = 'デフォルト値は boolean ではなく、enum に含まれていません。' + openApiComponentSchemaDoesNotExistExceptionMessage = 'OpenApi コンポーネントスキーマ {0} は存在しません。' + timerParameterMustBeGreaterThanZeroExceptionMessage = '[タイマー] {0}: {1} は 0 より大きくなければなりません。' + taskTimedOutExceptionMessage = 'タスクが{0}ミリ秒後にタイムアウトしました。' + scheduleStartTimeAfterEndTimeExceptionMessage = "[スケジュール] {0}: 'StartTime' が 'EndTime' の後であることはできません" + infoVersionMandatoryMessage = 'info.version は必須です。' + cannotUnlockNullObjectExceptionMessage = 'nullオブジェクトのロックを解除できません。' + nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = 'カスタム認証スキームには空でないScriptBlockが必要です。' + validationOfOneOfSchemaNotSupportedExceptionMessage = "'oneof'を含むスキーマの検証はサポートされていません。" + routeParameterCannotBeNullExceptionMessage = "パラメータ 'Route' は null ではいけません。" + cacheStorageAlreadyExistsExceptionMessage = "名前 '{0}' のキャッシュストレージは既に存在します。" + loggingMethodRequiresValidScriptBlockExceptionMessage = "'{0}' ログ記録方法のために提供された出力方法は、有効なScriptBlockが必要です。" + scopedVariableAlreadyDefinedExceptionMessage = 'スコープ付き変数が既に定義されています: {0}' + oauth2RequiresAuthorizeUrlExceptionMessage = 'OAuth2には認可URLの提供が必要です。' + pathNotExistExceptionMessage = 'パスが存在しません: {0}' + noDomainServerNameForWindowsAdAuthExceptionMessage = 'Windows AD認証用のドメインサーバー名が提供されていません。' + suppliedDateAfterScheduleEndTimeExceptionMessage = '提供された日付はスケジュールの終了時間 {0} の後です' + wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = 'メソッドのワイルドカード * は AutoMethods スイッチと互換性がありません。' + cannotSupplyIntervalForYearExceptionMessage = '毎年の間隔値を提供できません。' + missingComponentsMessage = '欠落しているコンポーネント' + invalidStrictTransportSecurityDurationExceptionMessage = '無効な Strict-Transport-Security 期間が指定されました: {0}。0 より大きい必要があります。' + noSecretForHmac512ExceptionMessage = 'HMAC512ハッシュに対する秘密が提供されていません。' + daysInMonthExceededExceptionMessage = '{0}は{1}日しかありませんが、{2}が指定されました。' + nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = 'カスタムロギング出力メソッドには空でないScriptBlockが必要です。' + encodingAttributeOnlyAppliesToMultipartExceptionMessage = 'エンコーディング属性は、multipart および application/x-www-form-urlencoded リクエストボディにのみ適用されます。' + suppliedDateBeforeScheduleStartTimeExceptionMessage = '提供された日付はスケジュールの開始時間 {0} より前です' + unlockSecretRequiredExceptionMessage = "Microsoft.PowerShell.SecretStoreを使用する場合、'UnlockSecret'プロパティが必要です。" + noLogicPassedForMethodRouteExceptionMessage = '[{0}] {1}: ロジックが渡されませんでした。' + bodyParserAlreadyDefinedForContentTypeExceptionMessage = '{0} コンテンツタイプ用のボディパーサーは既に定義されています。' + invalidJwtSuppliedExceptionMessage = '無効なJWTが提供されました。' + sessionsRequiredForFlashMessagesExceptionMessage = 'フラッシュメッセージを使用するにはセッションが必要です。' + outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = 'リクエストロギングのために提供された出力メソッドには有効なScriptBlockが必要です。' + semaphoreAlreadyExistsExceptionMessage = '次の名前のセマフォはすでに存在します: {0}' + invalidJwtHeaderAlgorithmSuppliedExceptionMessage = '無効なJWTヘッダーアルゴリズムが提供されました。' + oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = "OAuth2プロバイダーはInnerSchemeを使用するために必要な'password' grant_typeをサポートしていません。" + invalidAliasFoundExceptionMessage = '無効な{0}エイリアスが見つかりました: {1}' + scheduleDoesNotExistExceptionMessage = "スケジュール '{0}' は存在しません。" + accessMethodNotExistExceptionMessage = 'アクセス方法が存在しません: {0}' + oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = "OAuth2プロバイダーは'code' response_typeをサポートしていません。" + untestedPowerShellVersionWarningMessage = '[警告] Pode {0} はリリース時に利用可能でなかったため、PowerShell {1} でテストされていません。' + secretVaultAlreadyRegisteredAutoImportExceptionMessage = "シークレットボールト'{0}'は既に登録されています(シークレットボールトの自動インポート中)。" + schemeRequiresValidScriptBlockExceptionMessage = "'{0}'認証バリデーターのために提供されたスキームには有効なScriptBlockが必要です。" + serverLoopingMessage = 'サーバーループ間隔 {0}秒' + certificateThumbprintsNameSupportedOnWindowsExceptionMessage = 'Certificate Thumbprints/NameはWindowsでのみサポートされています。' + sseConnectionNameRequiredExceptionMessage = "-Nameまたは`$WebEvent.Sse.NameからSSE接続名が必要です。" + invalidMiddlewareTypeExceptionMessage = '提供されたMiddlewaresの1つが無効な型です。ScriptBlockまたはHashtableのいずれかを期待しましたが、次を取得しました: {0}' + noSecretForJwtSignatureExceptionMessage = 'JWT署名に対する秘密が提供されていません。' + modulePathDoesNotExistExceptionMessage = 'モジュールパスが存在しません: {0}' + taskAlreadyDefinedExceptionMessage = '[タスク] {0}: タスクは既に定義されています。' + verbAlreadyDefinedExceptionMessage = '[動詞] {0}: すでに定義されています' + clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = 'クライアント証明書はHTTPSエンドポイントでのみサポートされています。' + endpointNameNotExistExceptionMessage = "名前'{0}'のエンドポイントが存在しません。" + middlewareNoLogicSuppliedExceptionMessage = '[ミドルウェア]: ScriptBlockにロジックが提供されていません。' + scriptBlockRequiredForMergingUsersExceptionMessage = 'ValidがAllの場合、複数の認証済みユーザーを1つのオブジェクトにマージするためのScriptBlockが必要です。' + secretVaultAlreadyRegisteredExceptionMessage = "名前 '{0}' のシークレットボールトは既に登録されています{1}。" + deprecatedTitleVersionDescriptionWarningMessage = "警告: 'Enable-PodeOpenApi' のタイトル、バージョン、および説明は非推奨です。代わりに 'Add-PodeOAInfo' を使用してください。" + undefinedOpenApiReferencesMessage = '未定義のOpenAPI参照:' + doneMessage = '完了' + swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = 'このバージョンの Swagger-Editor は OpenAPI 3.1 をサポートしていません' + durationMustBeZeroOrGreaterExceptionMessage = '期間は 0 以上でなければなりませんが、取得した値は: {0}s' + viewsPathDoesNotExistExceptionMessage = 'ビューのパスが存在しません: {0}' + discriminatorIncompatibleWithAllOfExceptionMessage = "パラメーター'Discriminator'は'allOf'と互換性がありません。" + noNameForWebSocketSendMessageExceptionMessage = 'メッセージを送信する WebSocket の名前が指定されていません。' + hashtableMiddlewareNoLogicExceptionMessage = '提供されたHashtableミドルウェアにロジックが定義されていません。' + openApiInfoMessage = 'OpenAPI情報:' + invalidSchemeForAuthValidatorExceptionMessage = "'{1}'認証バリデーターのために提供された'{0}'スキームには有効なScriptBlockが必要です。" + sseFailedToBroadcastExceptionMessage = '{0}のSSEブロードキャストレベルが定義されているため、SSEのブロードキャストに失敗しました: {1}' + adModuleWindowsOnlyExceptionMessage = 'Active DirectoryモジュールはWindowsでのみ利用可能です。' + requestLoggingAlreadyEnabledExceptionMessage = 'リクエストロギングは既に有効になっています。' + invalidAccessControlMaxAgeDurationExceptionMessage = '無効な Access-Control-Max-Age 期間が提供されました:{0}。0 より大きくする必要があります。' +} + diff --git a/src/Locales/ko/Pode.psd1 b/src/Locales/ko/Pode.psd1 index 5e0cd3176..09f41b455 100644 --- a/src/Locales/ko/Pode.psd1 +++ b/src/Locales/ko/Pode.psd1 @@ -1,284 +1,285 @@ -ConvertFrom-StringData -StringData @' -adModuleWindowsOnlyExceptionMessage = Active Directory 모듈은 Windows에서만 사용할 수 있습니다. -adModuleNotInstalledExceptionMessage = Active Directory 모듈이 설치되지 않았습니다. -secretManagementModuleNotInstalledExceptionMessage = Microsoft.PowerShell.SecretManagement 모듈이 설치되지 않았습니다. -secretVaultAlreadyRegisteredAutoImportExceptionMessage = 이름이 '{0}'인 비밀 금고가 이미 자동으로 가져오는 동안 등록되었습니다. -failedToOpenRunspacePoolExceptionMessage = RunspacePool을 여는 데 실패했습니다: {0} -cronExpressionInvalidExceptionMessage = Cron 표현식은 5개의 부분으로만 구성되어야 합니다: {0} -invalidAliasFoundExceptionMessage = 잘못된 {0} 별칭이 발견되었습니다: {1} -invalidAtomCharacterExceptionMessage = 잘못된 원자 문자: {0} -minValueGreaterThanMaxExceptionMessage = {0}의 최소 값은 최대 값보다 클 수 없습니다. -minValueInvalidExceptionMessage = {1}의 최소 값 '{0}'이(가) 유효하지 않습니다. {2} 이상이어야 합니다. -maxValueInvalidExceptionMessage = {1}의 최대 값 '{0}'이(가) 유효하지 않습니다. {2} 이하여야 합니다. -valueOutOfRangeExceptionMessage = {1}의 값 '{0}'이(가) 유효하지 않습니다. {2}와 {3} 사이여야 합니다. -daysInMonthExceededExceptionMessage = {0}에는 {1}일밖에 없지만 {2}일이 제공되었습니다. -nextTriggerCalculationErrorExceptionMessage = 다음 트리거 날짜 및 시간을 계산하는 중에 문제가 발생한 것 같습니다: {0} -incompatiblePodeDllExceptionMessage = 기존의 호환되지 않는 Pode.DLL 버전 {0}이 로드되었습니다. 버전 {1}이 필요합니다. 새로운 Powershell/pwsh 세션을 열고 다시 시도하세요. -endpointNotExistExceptionMessage = 프로토콜 '{0}' 및 주소 '{1}' 또는 로컬 주소 '{2}'가 있는 엔드포인트가 존재하지 않습니다. -endpointNameNotExistExceptionMessage = 이름이 '{0}'인 엔드포인트가 존재하지 않습니다. -failedToConnectToUrlExceptionMessage = URL에 연결하지 못했습니다: {0} -failedToParseAddressExceptionMessage = '{0}'을(를) 유효한 IP/호스트:포트 주소로 구문 분석하지 못했습니다. -invalidIpAddressExceptionMessage = 제공된 IP 주소가 유효하지 않습니다: {0} -invalidPortExceptionMessage = 포트는 음수일 수 없습니다: {0} -pathNotExistExceptionMessage = 경로가 존재하지 않습니다: {0} -noSecretForHmac256ExceptionMessage = HMAC256 해시를 위한 비밀이 제공되지 않았습니다. -noSecretForHmac384ExceptionMessage = HMAC384 해시를 위한 비밀이 제공되지 않았습니다. -noSecretForHmac512ExceptionMessage = HMAC512 해시를 위한 비밀이 제공되지 않았습니다. -noSecretForJwtSignatureExceptionMessage = JWT 서명을 위한 비밀이 제공되지 않았습니다. -noSecretExpectedForNoSignatureExceptionMessage = 서명이 없는 경우 비밀이 제공되지 않아야 합니다. -unsupportedJwtAlgorithmExceptionMessage = JWT 알고리즘은 현재 지원되지 않습니다: {0} -invalidBase64JwtExceptionMessage = JWT에서 잘못된 Base64 인코딩 값이 발견되었습니다. -invalidJsonJwtExceptionMessage = JWT에서 잘못된 JSON 값이 발견되었습니다. -unsupportedFunctionInServerlessContextExceptionMessage = {0} 함수는 서버리스 컨텍스트에서 지원되지 않습니다. -invalidPathWildcardOrDirectoryExceptionMessage = 제공된 경로는 와일드카드 또는 디렉터리가 될 수 없습니다: {0} -invalidExceptionTypeExceptionMessage = 예외가 잘못된 유형입니다. WebException 또는 HttpRequestException이어야 하지만, 얻은 것은: {0} -pathToLoadNotFoundExceptionMessage = 로드할 경로 {0}을(를) 찾을 수 없습니다: {1} -singleValueForIntervalExceptionMessage = 간격을 사용할 때는 단일 {0} 값을 제공할 수 있습니다. -scriptErrorExceptionMessage = 스크립트 {1} {2} (라인 {3}) 문자 {4}에서 {5}을(를) 실행하는 중에 스크립트 {0} 오류가 발생했습니다. 개체 '{7}' 클래스: {8} 기본 클래스: {9} -noScriptBlockSuppliedExceptionMessage = ScriptBlock이 제공되지 않았습니다. -iisAspnetcoreTokenMissingExceptionMessage = IIS ASPNETCORE_TOKEN이 누락되었습니다. -propertiesParameterWithoutNameExceptionMessage = 속성에 이름이 없으면 Properties 매개변수를 사용할 수 없습니다. -multiTypePropertiesRequireOpenApi31ExceptionMessage = 다중 유형 속성은 OpenApi 버전 3.1 이상이 필요합니다. -openApiVersionPropertyMandatoryExceptionMessage = OpenApi 버전 속성은 필수입니다. -webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = Webhooks 기능은 OpenAPI v3.0.x에서 지원되지 않습니다. -authenticationMethodDoesNotExistExceptionMessage = 인증 방법이 존재하지 않습니다: {0} -unsupportedObjectExceptionMessage = 지원되지 않는 개체 -validationOfAnyOfSchemaNotSupportedExceptionMessage = 'anyof'을 포함하는 스키마의 유효성 검사는 지원되지 않습니다. -validationOfOneOfSchemaNotSupportedExceptionMessage = 'oneof'을 포함하는 스키마의 유효성 검사는 지원되지 않습니다. -cannotCreatePropertyWithoutTypeExceptionMessage = 유형이 정의되지 않았기 때문에 속성을 생성할 수 없습니다. -headerMustHaveNameInEncodingContextExceptionMessage = 인코딩 컨텍스트에서 사용될 때 헤더는 이름이 있어야 합니다. -descriptionRequiredExceptionMessage = 설명이 필요합니다. -openApiDocumentNotCompliantExceptionMessage = OpenAPI 문서는 준수하지 않습니다. -noComponentInDefinitionExceptionMessage = {2} 정의에서 {0} 유형의 {1} 이름의 구성 요소가 없습니다. -methodPathAlreadyDefinedExceptionMessage = [{0}] {1}: 이미 정의되었습니다. -methodPathAlreadyDefinedForUrlExceptionMessage = [{0}] {1}: {2}에 대해 이미 정의되었습니다. -invalidMiddlewareTypeExceptionMessage = 제공된 미들웨어 중 하나가 잘못된 유형입니다. 예상된 유형은 ScriptBlock 또는 Hashtable이지만, 얻은 것은: {0} -hashtableMiddlewareNoLogicExceptionMessage = 제공된 Hashtable 미들웨어에는 정의된 논리가 없습니다. -invalidLogicTypeInHashtableMiddlewareExceptionMessage = 제공된 Hashtable 미들웨어에 잘못된 논리 유형이 있습니다. 예상된 유형은 ScriptBlock이지만, 얻은 것은: {0} -scopedVariableAlreadyDefinedExceptionMessage = 범위 지정 변수가 이미 정의되었습니다: {0} -valueForUsingVariableNotFoundExceptionMessage = '`$using:{0}'에 대한 값을 찾을 수 없습니다. -unlockSecretRequiredExceptionMessage = Microsoft.PowerShell.SecretStore를 사용할 때 'UnlockSecret' 속성이 필요합니다. -unlockSecretButNoScriptBlockExceptionMessage = 사용자 정의 비밀 금고 유형에 대해 제공된 Unlock 비밀이지만, Unlock ScriptBlock이 제공되지 않았습니다. -noUnlockScriptBlockForVaultExceptionMessage = 금고 '{0}'을(를) 해제하는 Unlock ScriptBlock이 제공되지 않았습니다. -noSetScriptBlockForVaultExceptionMessage = 금고 '{0}'에서 비밀을 업데이트/생성하기 위한 Set ScriptBlock이 제공되지 않았습니다. -noRemoveScriptBlockForVaultExceptionMessage = 금고 '{0}'에서 비밀을 제거하기 위한 Remove ScriptBlock이 제공되지 않았습니다. -invalidSecretValueTypeExceptionMessage = 비밀 값이 잘못된 유형입니다. 예상되는 유형: String, SecureString, HashTable, Byte[] 또는 PSCredential. 그러나 얻은 것은: {0} -limitValueCannotBeZeroOrLessExceptionMessage = {0}에 대한 제한 값은 0 이하일 수 없습니다. -secondsValueCannotBeZeroOrLessExceptionMessage = {0}에 대한 초 값은 0 이하일 수 없습니다. -failedToCreateOpenSslCertExceptionMessage = openssl 인증서 생성 실패: {0} -certificateThumbprintsNameSupportedOnWindowsExceptionMessage = 인증서 지문/이름은 Windows에서만 지원됩니다. -noCertificateFoundExceptionMessage = '{2}'에 대한 {0}\{1}에서 인증서를 찾을 수 없습니다. -runspacePoolFailedToLoadExceptionMessage = {0} RunspacePool 로드 실패. -noServiceHandlersDefinedExceptionMessage = 정의된 서비스 핸들러가 없습니다. -noSessionToSetOnResponseExceptionMessage = 응답에 설정할 세션이 없습니다. -noSessionToCalculateDataHashExceptionMessage = 데이터 해시를 계산할 세션이 없습니다. -moduleOrVersionNotFoundExceptionMessage = {0}에서 모듈 또는 버전을 찾을 수 없습니다: {1}@{2} -noSmtpHandlersDefinedExceptionMessage = 정의된 SMTP 핸들러가 없습니다. -taskTimedOutExceptionMessage = 작업이 {0}ms 후에 시간 초과되었습니다. -verbAlreadyDefinedExceptionMessage = [동사] {0}: 이미 정의되었습니다. -verbAlreadyDefinedForUrlExceptionMessage = [동사] {0}: {1}에 대해 이미 정의되었습니다. -pathOrScriptBlockRequiredExceptionMessage = 사용자 지정 액세스 값을 소싱하기 위해 경로 또는 ScriptBlock이 필요합니다. -accessMethodAlreadyDefinedExceptionMessage = 액세스 방법이 이미 정의되었습니다: {0} -accessMethodNotExistForMergingExceptionMessage = 병합을 위한 액세스 방법이 존재하지 않습니다: {0} -routeAlreadyContainsCustomAccessExceptionMessage = 경로 '[{0}] {1}'에 '{2}' 이름의 사용자 지정 액세스가 이미 포함되어 있습니다. -accessMethodNotExistExceptionMessage = 액세스 방법이 존재하지 않습니다: {0} -pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = PathItems 기능은 OpenAPI v3.0.x에서 지원되지 않습니다. -nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = 사용자 정의 인증 스킴에는 비어 있지 않은 ScriptBlock이 필요합니다. -oauth2InnerSchemeInvalidExceptionMessage = OAuth2 InnerScheme은 Basic 또는 Form 인증 중 하나여야 합니다, 그러나 받은 값: {0} -sessionsRequiredForOAuth2WithPKCEExceptionMessage = PKCE를 사용하는 OAuth2에는 세션이 필요합니다. -oauth2ClientSecretRequiredExceptionMessage = PKCE를 사용하지 않을 때 OAuth2에는 클라이언트 비밀이 필요합니다. -authMethodAlreadyDefinedExceptionMessage = 인증 방법이 이미 정의되었습니다: {0} -invalidSchemeForAuthValidatorExceptionMessage = '{1}' 인증 검증기에 제공된 '{0}' 스킴에는 유효한 ScriptBlock이 필요합니다. -sessionsRequiredForSessionPersistentAuthExceptionMessage = 세션 지속 인증을 사용하려면 세션이 필요합니다. -oauth2RequiresAuthorizeUrlExceptionMessage = OAuth2에는 권한 부여 URL이 필요합니다. -authMethodNotExistForMergingExceptionMessage = 병합을 위한 인증 방법이 존재하지 않습니다: {0} -mergeDefaultAuthNotInListExceptionMessage = 병합 기본 인증 '{0}'이(가) 제공된 인증 목록에 없습니다. -defaultAuthNotInListExceptionMessage = 기본 인증 '{0}'이(가) 제공된 인증 목록에 없습니다. -scriptBlockRequiredForMergingUsersExceptionMessage = Valid가 All일 때 여러 인증된 사용자를 하나의 객체로 병합하려면 ScriptBlock이 필요합니다. -noDomainServerNameForWindowsAdAuthExceptionMessage = Windows AD 인증을 위한 도메인 서버 이름이 제공되지 않았습니다. -sessionsNotConfiguredExceptionMessage = 세션이 구성되지 않았습니다. -windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = Windows 로컬 인증 지원은 Windows 전용입니다. -iisAuthSupportIsForWindowsOnlyExceptionMessage = IIS 인증 지원은 Windows 전용입니다. -noAlgorithmInJwtHeaderExceptionMessage = JWT 헤더에 제공된 알고리즘이 없습니다. -invalidJwtSuppliedExceptionMessage = 제공된 JWT가 유효하지 않습니다. -invalidJwtHeaderAlgorithmSuppliedExceptionMessage = 제공된 JWT 헤더 알고리즘이 유효하지 않습니다. -noJwtSignatureForAlgorithmExceptionMessage = {0}에 대한 JWT 서명이 제공되지 않았습니다. -expectedNoJwtSignatureSuppliedExceptionMessage = JWT 서명이 제공되지 않을 것으로 예상되었습니다. -invalidJwtSignatureSuppliedExceptionMessage = 제공된 JWT 서명이 유효하지 않습니다. -jwtExpiredExceptionMessage = JWT가 만료되었습니다. -jwtNotYetValidExceptionMessage = JWT가 아직 유효하지 않습니다. -snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = Snapins는 Windows PowerShell에서만 지원됩니다. -userFileDoesNotExistExceptionMessage = 사용자 파일이 존재하지 않습니다: {0} -schemeRequiresValidScriptBlockExceptionMessage = '{0}' 인증 검증기에 제공된 스킴에는 유효한 ScriptBlock이 필요합니다. -oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = OAuth2 공급자는 'code' 응답 유형을 지원하지 않습니다. -oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = OAuth2 공급자는 InnerScheme을 사용하는 데 필요한 'password' 부여 유형을 지원하지 않습니다. -eventAlreadyRegisteredExceptionMessage = {0} 이벤트가 이미 등록되었습니다: {1} -noEventRegisteredExceptionMessage = 등록된 {0} 이벤트가 없습니다: {1} -sessionsRequiredForFlashMessagesExceptionMessage = 플래시 메시지를 사용하려면 세션이 필요합니다. -eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = 이벤트 뷰어 로깅은 Windows에서만 지원됩니다. -nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = 사용자 정의 로깅 출력 방법에는 비어 있지 않은 ScriptBlock이 필요합니다. -requestLoggingAlreadyEnabledExceptionMessage = 요청 로깅이 이미 활성화되었습니다. -outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = 요청 로깅에 제공된 출력 방법에는 유효한 ScriptBlock이 필요합니다. -errorLoggingAlreadyEnabledExceptionMessage = 오류 로깅이 이미 활성화되었습니다. -nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = 로깅 방법에는 비어 있지 않은 ScriptBlock이 필요합니다. -csrfMiddlewareNotInitializedExceptionMessage = CSRF 미들웨어가 초기화되지 않았습니다. -sessionsRequiredForCsrfExceptionMessage = 쿠키를 사용하지 않으려면 CSRF 사용을 위해 세션이 필요합니다. -middlewareNoLogicSuppliedExceptionMessage = [미들웨어]: ScriptBlock에 로직이 제공되지 않았습니다. -parameterHasNoNameExceptionMessage = 매개변수에 이름이 없습니다. 'Name' 매개변수를 사용하여 이 구성 요소에 이름을 지정하십시오. -reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = OpenAPI v3.0에서는 재사용 가능한 구성 요소 기능 'pathItems'를 사용할 수 없습니다. -noPropertiesMutuallyExclusiveExceptionMessage = 매개변수 'NoProperties'는 'Properties', 'MinProperties' 및 'MaxProperties'와 상호 배타적입니다. -discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = 매개변수 'DiscriminatorMapping'은 'DiscriminatorProperty'가 있을 때만 사용할 수 있습니다. -discriminatorIncompatibleWithAllOfExceptionMessage = 매개변수 'Discriminator'는 'allOf'와 호환되지 않습니다. -typeCanOnlyBeAssociatedWithObjectExceptionMessage = 유형 {0}는 객체와만 연관될 수 있습니다. -showPodeGuiOnlyAvailableOnWindowsExceptionMessage = Show-PodeGui는 현재 Windows PowerShell 및 Windows의 PowerShell 7+에서만 사용할 수 있습니다. -nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = RedirectTo 매개변수가 제공된 경우 엔드포인트에 이름이 필요합니다. -clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = 클라이언트 인증서는 HTTPS 엔드포인트에서만 지원됩니다. -explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = 명시적 TLS 모드는 SMTPS 및 TCPS 엔드포인트에서만 지원됩니다. -acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = 확인 메시지는 SMTP 및 TCP 엔드포인트에서만 지원됩니다. -crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = CRLF 메시지 끝 검사는 TCP 엔드포인트에서만 지원됩니다. -mustBeRunningWithAdminPrivilegesExceptionMessage = 관리자 권한으로 실행되어야 비로소 로컬호스트 주소가 아닌 주소를 청취할 수 있습니다. -certificateSuppliedForNonHttpsWssEndpointExceptionMessage = HTTPS/WSS가 아닌 엔드포인트에 제공된 인증서입니다. -websocketsNotConfiguredForSignalMessagesExceptionMessage = WebSockets가 신호 메시지를 보내도록 구성되지 않았습니다. -noPathSuppliedForRouteExceptionMessage = 경로에 대해 제공된 경로가 없습니다. -accessRequiresAuthenticationOnRoutesExceptionMessage = 경로에 대한 접근은 인증이 필요합니다. -accessMethodDoesNotExistExceptionMessage = 접근 방법이 존재하지 않습니다: {0}. -routeParameterNeedsValidScriptblockExceptionMessage = 경로 매개변수에는 유효하고 비어 있지 않은 ScriptBlock이 필요합니다. -noCommandsSuppliedToConvertToRoutesExceptionMessage = 경로로 변환할 명령이 제공되지 않았습니다. -nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = 페이지 경로를 생성하려면 비어 있지 않은 ScriptBlock이 필요합니다. -sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSE는 Accept 헤더 값이 text/event-stream인 요청에서만 구성할 수 있습니다. -sseConnectionNameRequiredExceptionMessage = -Name 또는 `$WebEvent.Sse.Name에서 SSE 연결 이름이 필요합니다. -sseFailedToBroadcastExceptionMessage = {0}에 대해 정의된 SSE 브로드캐스트 수준으로 인해 SSE 브로드캐스트에 실패했습니다: {1} -podeNotInitializedExceptionMessage = Pode가 초기화되지 않았습니다. -invalidTaskTypeExceptionMessage = 작업 유형이 유효하지 않습니다. 예상된 유형: [System.Threading.Tasks.Task] 또는 [hashtable] -cannotLockValueTypeExceptionMessage = [ValueTypes]를 잠글 수 없습니다. -cannotLockNullObjectExceptionMessage = null 개체를 잠글 수 없습니다. -failedToAcquireLockExceptionMessage = 개체에 대한 잠금을 획득하지 못했습니다. -cannotUnlockValueTypeExceptionMessage = [ValueTypes]를 잠금 해제할 수 없습니다. -cannotUnlockNullObjectExceptionMessage = null 개체를 잠금 해제할 수 없습니다. -sessionMiddlewareAlreadyInitializedExceptionMessage = 세션 미들웨어가 이미 초기화되었습니다. -customSessionStorageMethodNotImplementedExceptionMessage = 사용자 정의 세션 저장소가 필요한 메서드 '{0}()'를 구현하지 않았습니다. -secretRequiredForCustomSessionStorageExceptionMessage = 사용자 정의 세션 저장소를 사용할 때는 비밀이 필요합니다. -noSessionAvailableToSaveExceptionMessage = 저장할 수 있는 세션이 없습니다. -cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = 매개변수 'Every'가 None으로 설정된 경우 간격을 제공할 수 없습니다. -cannotSupplyIntervalForQuarterExceptionMessage = 분기별 간격 값을 제공할 수 없습니다. -cannotSupplyIntervalForYearExceptionMessage = 매년 간격 값을 제공할 수 없습니다. -secretVaultAlreadyRegisteredExceptionMessage = 이름이 '{0}'인 시크릿 금고가 이미 등록되었습니다{1}. -secretVaultUnlockExpiryDateInPastExceptionMessage = 시크릿 금고의 잠금 해제 만료 날짜가 과거입니다 (UTC): {0} -secretAlreadyMountedExceptionMessage = 이름이 '{0}'인 시크릿이 이미 마운트되었습니다. -credentialsPassedWildcardForHeadersLiteralExceptionMessage = 자격 증명이 전달되면, 헤더에 대한 * 와일드카드는 와일드카드가 아닌 리터럴 문자열로 취급됩니다. -wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = 헤더에 대한 * 와일드카드는 AutoHeaders 스위치와 호환되지 않습니다. -wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = 메서드에 대한 * 와일드카드는 AutoMethods 스위치와 호환되지 않습니다. -invalidAccessControlMaxAgeDurationExceptionMessage = 잘못된 Access-Control-Max-Age 기간이 제공되었습니다: {0}. 0보다 커야 합니다. -noNameForWebSocketDisconnectExceptionMessage = 연결을 끊을 WebSocket의 이름이 제공되지 않았습니다. -noNameForWebSocketRemoveExceptionMessage = 제거할 WebSocket의 이름이 제공되지 않았습니다. -noNameForWebSocketSendMessageExceptionMessage = 메시지를 보낼 WebSocket의 이름이 제공되지 않았습니다. -noSecretNamedMountedExceptionMessage = 이름이 '{0}'인 시크릿이 마운트되지 않았습니다. -noNameForWebSocketResetExceptionMessage = 재설정할 WebSocket의 이름이 제공되지 않았습니다. -schemaValidationRequiresPowerShell610ExceptionMessage = 스키마 유효성 검사는 PowerShell 버전 6.1.0 이상이 필요합니다. -routeParameterCannotBeNullExceptionMessage = 'Route' 매개변수는 null일 수 없습니다. -encodingAttributeOnlyAppliesToMultipartExceptionMessage = 인코딩 속성은 multipart 및 application/x-www-form-urlencoded 요청 본문에만 적용됩니다. -testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = 'Test-PodeOAComponentSchema'는 'Enable-PodeOpenApi -EnableSchemaValidation'을 사용하여 활성화해야 합니다. -openApiComponentSchemaDoesNotExistExceptionMessage = OpenApi 구성 요소 스키마 {0}이(가) 존재하지 않습니다. -openApiParameterRequiresNameExceptionMessage = OpenApi 매개변수에는 이름이 필요합니다. -openApiLicenseObjectRequiresNameExceptionMessage = OpenAPI 객체 'license'는 'name' 속성이 필요합니다. -LicenseName 매개변수를 사용하십시오. -parametersValueOrExternalValueMandatoryExceptionMessage = 매개변수 'Value' 또는 'ExternalValue'는 필수입니다. -parametersMutuallyExclusiveExceptionMessage = 매개변수 '{0}'와(과) '{1}'는 상호 배타적입니다. -maximumConcurrentWebSocketThreadsInvalidExceptionMessage = 최대 동시 WebSocket 스레드는 >=1이어야 하지만 받은 값: {0} -maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = 최대 동시 WebSocket 스레드는 최소값 {0}보다 작을 수 없지만 받은 값: {1} -alreadyConnectedToWebSocketExceptionMessage = 이름이 '{0}'인 WebSocket에 이미 연결되어 있습니다. -failedToConnectToWebSocketExceptionMessage = WebSocket에 연결하지 못했습니다: {0} -verbNoLogicPassedExceptionMessage = [동사] {0}: 전달된 로직 없음 -scriptPathDoesNotExistExceptionMessage = 스크립트 경로가 존재하지 않습니다: {0} -failedToImportModuleExceptionMessage = 모듈을 가져오지 못했습니다: {0} -modulePathDoesNotExistExceptionMessage = 모듈 경로가 존재하지 않습니다: {0} -defaultValueNotBooleanOrEnumExceptionMessage = 기본값이 boolean이 아니며 enum에 속하지 않습니다. -propertiesTypeObjectAssociationExceptionMessage = Object 유형의 속성만 {0}와(과) 연결될 수 있습니다. -invalidContentTypeForSchemaExceptionMessage = 스키마에 대해 잘못된 'content-type'이 발견되었습니다: {0} -openApiRequestStyleInvalidForParameterExceptionMessage = OpenApi 요청 스타일은 {1} 매개변수에 대해 {0}일 수 없습니다. -pathParameterRequiresRequiredSwitchExceptionMessage = 매개변수 위치가 'Path'인 경우 'Required' 스위치 매개변수가 필수입니다. -operationIdMustBeUniqueForArrayExceptionMessage = OperationID: {0}은(는) 고유해야 하며 배열에 적용될 수 없습니다. -operationIdMustBeUniqueExceptionMessage = OperationID: {0}은(는) 고유해야 합니다. -noOpenApiUrlSuppliedExceptionMessage = {0}에 대한 OpenAPI URL이 제공되지 않았습니다. -noTitleSuppliedForPageExceptionMessage = {0} 페이지에 대한 제목이 제공되지 않았습니다. -noRoutePathSuppliedForPageExceptionMessage = {0} 페이지에 대한 경로가 제공되지 않았습니다. -swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = 이 버전의 Swagger-Editor는 OpenAPI 3.1을 지원하지 않습니다. -rapidPdfDoesNotSupportOpenApi31ExceptionMessage = 문서 도구 RapidPdf는 OpenAPI 3.1을 지원하지 않습니다. -definitionTagNotDefinedExceptionMessage = 정의 태그 {0}이(가) 정의되지 않았습니다. -scopedVariableNotFoundExceptionMessage = 범위 변수 {0}을(를) 찾을 수 없습니다. -noSecretVaultRegisteredExceptionMessage = 이름이 '{0}'인 비밀 금고가 등록되지 않았습니다. -invalidStrictTransportSecurityDurationExceptionMessage = 잘못된 Strict-Transport-Security 기간이 제공되었습니다: {0}. 0보다 커야 합니다. -durationMustBeZeroOrGreaterExceptionMessage = 기간은 0 이상이어야 하지만 받은 값: {0}s -taskAlreadyDefinedExceptionMessage = [작업] {0}: 작업이 이미 정의되었습니다. -maximumConcurrentTasksInvalidExceptionMessage = 최대 동시 작업 수는 >=1이어야 하지만 받은 값: {0} -maximumConcurrentTasksLessThanMinimumExceptionMessage = 최대 동시 작업 수는 최소값 {0}보다 작을 수 없지만 받은 값: {1} -taskDoesNotExistExceptionMessage = 작업 '{0}'이(가) 존재하지 않습니다. -cacheStorageNotFoundForRetrieveExceptionMessage = 캐시된 항목 '{1}'을(를) 검색하려고 할 때 이름이 '{0}'인 캐시 스토리지를 찾을 수 없습니다. -cacheStorageNotFoundForSetExceptionMessage = 캐시된 항목 '{1}'을(를) 설정하려고 할 때 이름이 '{0}'인 캐시 스토리지를 찾을 수 없습니다. -cacheStorageNotFoundForExistsExceptionMessage = 캐시된 항목 '{1}'이(가) 존재하는지 확인하려고 할 때 이름이 '{0}'인 캐시 스토리지를 찾을 수 없습니다. -cacheStorageNotFoundForRemoveExceptionMessage = 캐시된 항목 '{1}'을(를) 제거하려고 할 때 이름이 '{0}'인 캐시 스토리지를 찾을 수 없습니다. -cacheStorageNotFoundForClearExceptionMessage = 캐시를 지우려고 할 때 이름이 '{0}'인 캐시 스토리지를 찾을 수 없습니다. -cacheStorageAlreadyExistsExceptionMessage = 이름이 '{0}'인 캐시 스토리지가 이미 존재합니다. -pathToIconForGuiDoesNotExistExceptionMessage = GUI용 아이콘의 경로가 존재하지 않습니다: {0} -invalidHostnameSuppliedExceptionMessage = 제공된 호스트 이름이 잘못되었습니다: {0} -endpointAlreadyDefinedExceptionMessage = 이름이 '{0}'인 엔드포인트가 이미 정의되어 있습니다. -certificateExpiredExceptionMessage = 인증서 '{0}'이(가) 만료되었습니다: {1} -endpointNotDefinedForRedirectingExceptionMessage = 리디렉션을 위해 이름이 '{0}'인 엔드포인트가 정의되지 않았습니다. -fileWatcherAlreadyDefinedExceptionMessage = '{0}'라는 이름의 파일 감시자가 이미 정의되었습니다. -handlerAlreadyDefinedExceptionMessage = [{0}] {1}: 핸들러가 이미 정의되었습니다. -maxDaysInvalidExceptionMessage = MaxDays는 0 이상이어야 하지만, 받은 값: {0} -maxSizeInvalidExceptionMessage = MaxSize는 0 이상이어야 하지만, 받은 값: {0} -loggingMethodAlreadyDefinedExceptionMessage = 로깅 방법이 이미 정의되었습니다: {0} -loggingMethodRequiresValidScriptBlockExceptionMessage = '{0}' 로깅 방법에 대한 제공된 출력 방법은 유효한 ScriptBlock이 필요합니다. -csrfCookieRequiresSecretExceptionMessage = CSRF에 대해 쿠키를 사용할 때, 비밀이 필요합니다. 비밀을 제공하거나 전역 비밀 쿠키를 설정하십시오 - (Set-PodeCookieSecret '' -Global) -bodyParserAlreadyDefinedForContentTypeExceptionMessage = {0} 콘텐츠 유형에 대한 바디 파서가 이미 정의되어 있습니다. -middlewareAlreadyDefinedExceptionMessage = [Middleware] {0}: 미들웨어가 이미 정의되었습니다. -parameterNotSuppliedInRequestExceptionMessage = 요청에 '{0}'라는 이름의 매개변수가 제공되지 않았거나 데이터가 없습니다. -noDataForFileUploadedExceptionMessage = 요청에서 업로드된 파일 '{0}'에 대한 데이터가 없습니다. -viewsFolderNameAlreadyExistsExceptionMessage = 뷰 폴더 이름이 이미 존재합니다: {0} -viewsPathDoesNotExistExceptionMessage = 뷰 경로가 존재하지 않습니다: {0} -timerAlreadyDefinedExceptionMessage = [타이머] {0}: 타이머가 이미 정의되어 있습니다. -timerParameterMustBeGreaterThanZeroExceptionMessage = [타이머] {0}: {1}은(는) 0보다 커야 합니다. -timerDoesNotExistExceptionMessage = 타이머 '{0}'이(가) 존재하지 않습니다. -mutexAlreadyExistsExceptionMessage = 이름이 '{0}'인 뮤텍스가 이미 존재합니다. -noMutexFoundExceptionMessage = 이름이 '{0}'인 뮤텍스를 찾을 수 없습니다. -failedToAcquireMutexOwnershipExceptionMessage = 뮤텍스 소유권을 획득하지 못했습니다. 뮤텍스 이름: {0} -semaphoreAlreadyExistsExceptionMessage = 이름이 '{0}'인 세마포어가 이미 존재합니다. -failedToAcquireSemaphoreOwnershipExceptionMessage = 세마포어 소유권을 획득하지 못했습니다. 세마포어 이름: {0} -scheduleAlreadyDefinedExceptionMessage = [스케줄] {0}: 스케줄이 이미 정의되어 있습니다. -scheduleCannotHaveNegativeLimitExceptionMessage = [스케줄] {0}: 음수 한도를 가질 수 없습니다. -scheduleEndTimeMustBeInFutureExceptionMessage = [스케줄] {0}: 종료 시간 값은 미래에 있어야 합니다. -scheduleStartTimeAfterEndTimeExceptionMessage = [스케줄] {0}: 'StartTime'이 'EndTime' 이후일 수 없습니다. -maximumConcurrentSchedulesInvalidExceptionMessage = 최대 동시 스케줄 수는 1 이상이어야 하지만 받은 값: {0} -maximumConcurrentSchedulesLessThanMinimumExceptionMessage = 최대 동시 스케줄 수는 최소 {0}보다 작을 수 없지만 받은 값: {1} -scheduleDoesNotExistExceptionMessage = 스케줄 '{0}'이(가) 존재하지 않습니다. -suppliedDateBeforeScheduleStartTimeExceptionMessage = 제공된 날짜가 스케줄 시작 시간 {0} 이전입니다. -suppliedDateAfterScheduleEndTimeExceptionMessage = 제공된 날짜가 스케줄 종료 시간 {0} 이후입니다. -noSemaphoreFoundExceptionMessage = 이름이 '{0}'인 세마포어를 찾을 수 없습니다. -noLogicPassedForRouteExceptionMessage = 경로에 대한 논리가 전달되지 않았습니다: {0} -noPathSuppliedForStaticRouteExceptionMessage = [{0}]: 정적 경로에 대한 경로가 제공되지 않았습니다. -sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: 정적 경로에 대한 제공된 소스 경로가 존재하지 않습니다: {2} -noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: 논리가 전달되지 않았습니다. -moduleDoesNotContainFunctionExceptionMessage = 모듈 {0}에 경로로 변환할 함수 {1}이(가) 포함되어 있지 않습니다. -pageNameShouldBeAlphaNumericExceptionMessage = 페이지 이름은 유효한 알파벳 숫자 값이어야 합니다: {0} -filesHaveChangedMessage = 다음 파일이 변경되었습니다: -multipleEndpointsForGuiMessage = 여러 엔드포인트가 정의되었으며, GUI에는 첫 번째만 사용됩니다. -openingGuiMessage = GUI 열기. -listeningOnEndpointsMessage = 다음 {0} 엔드포인트에서 수신 중 [{1} 스레드]: -specificationMessage = 사양 -documentationMessage = 문서 -restartingServerMessage = 서버를 재시작 중... -doneMessage = 완료 -deprecatedTitleVersionDescriptionWarningMessage = 경고: 'Enable-PodeOpenApi'의 제목, 버전 및 설명이 더 이상 사용되지 않습니다. 대신 'Add-PodeOAInfo'를 사용하십시오. -undefinedOpenApiReferencesMessage = 정의되지 않은 OpenAPI 참조: -definitionTagMessage = 정의 {0}: -openApiGenerationDocumentErrorMessage = OpenAPI 생성 문서 오류: -infoTitleMandatoryMessage = info.title은 필수 항목입니다. -infoVersionMandatoryMessage = info.version은 필수 항목입니다. -missingComponentsMessage = 누락된 구성 요소 -openApiInfoMessage = OpenAPI 정보: -serverLoopingMessage = 서버 루핑 간격 {0}초 -iisShutdownMessage = (IIS 종료) -terminatingMessage = 종료 중... -eolPowerShellWarningMessage = [경고] Pode {0}은 EOL 상태인 PowerShell {1}에서 테스트되지 않았습니다. -untestedPowerShellVersionWarningMessage = [경고] Pode {0}은 출시 당시 사용 가능하지 않았기 때문에 PowerShell {1}에서 테스트되지 않았습니다. -'@ \ No newline at end of file +@{ + schemaValidationRequiresPowerShell610ExceptionMessage = '스키마 유효성 검사는 PowerShell 버전 6.1.0 이상이 필요합니다.' + pathOrScriptBlockRequiredExceptionMessage = '사용자 지정 액세스 값을 소싱하기 위해 경로 또는 ScriptBlock이 필요합니다.' + operationIdMustBeUniqueForArrayExceptionMessage = 'OperationID: {0}은(는) 고유해야 하며 배열에 적용될 수 없습니다.' + endpointNotDefinedForRedirectingExceptionMessage = "리디렉션을 위해 이름이 '{0}'인 엔드포인트가 정의되지 않았습니다." + filesHaveChangedMessage = '다음 파일이 변경되었습니다:' + iisAspnetcoreTokenMissingExceptionMessage = 'IIS ASPNETCORE_TOKEN이 누락되었습니다.' + minValueGreaterThanMaxExceptionMessage = '{0}의 최소 값은 최대 값보다 클 수 없습니다.' + noLogicPassedForRouteExceptionMessage = '경로에 대한 논리가 전달되지 않았습니다: {0}' + scriptPathDoesNotExistExceptionMessage = '스크립트 경로가 존재하지 않습니다: {0}' + mutexAlreadyExistsExceptionMessage = "이름이 '{0}'인 뮤텍스가 이미 존재합니다." + listeningOnEndpointsMessage = '다음 {0} 엔드포인트에서 수신 중 [{1} 스레드]:' + unsupportedFunctionInServerlessContextExceptionMessage = '{0} 함수는 서버리스 컨텍스트에서 지원되지 않습니다.' + expectedNoJwtSignatureSuppliedExceptionMessage = 'JWT 서명이 제공되지 않을 것으로 예상되었습니다.' + secretAlreadyMountedExceptionMessage = "이름이 '{0}'인 시크릿이 이미 마운트되었습니다." + failedToAcquireLockExceptionMessage = '개체에 대한 잠금을 획득하지 못했습니다.' + noPathSuppliedForStaticRouteExceptionMessage = '[{0}]: 정적 경로에 대한 경로가 제공되지 않았습니다.' + invalidHostnameSuppliedExceptionMessage = '제공된 호스트 이름이 잘못되었습니다: {0}' + authMethodAlreadyDefinedExceptionMessage = '인증 방법이 이미 정의되었습니다: {0}' + csrfCookieRequiresSecretExceptionMessage = "CSRF에 대해 쿠키를 사용할 때, 비밀이 필요합니다. 비밀을 제공하거나 전역 비밀 쿠키를 설정하십시오 - (Set-PodeCookieSecret '' -Global)" + nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = '페이지 경로를 생성하려면 비어 있지 않은 ScriptBlock이 필요합니다.' + noPropertiesMutuallyExclusiveExceptionMessage = "매개변수 'NoProperties'는 'Properties', 'MinProperties' 및 'MaxProperties'와 상호 배타적입니다." + incompatiblePodeDllExceptionMessage = '기존의 호환되지 않는 Pode.DLL 버전 {0}이 로드되었습니다. 버전 {1}이 필요합니다. 새로운 Powershell/pwsh 세션을 열고 다시 시도하세요.' + accessMethodDoesNotExistExceptionMessage = '접근 방법이 존재하지 않습니다: {0}.' + scheduleAlreadyDefinedExceptionMessage = '[스케줄] {0}: 스케줄이 이미 정의되어 있습니다.' + secondsValueCannotBeZeroOrLessExceptionMessage = '{0}에 대한 초 값은 0 이하일 수 없습니다.' + pathToLoadNotFoundExceptionMessage = '로드할 경로 {0}을(를) 찾을 수 없습니다: {1}' + failedToImportModuleExceptionMessage = '모듈을 가져오지 못했습니다: {0}' + endpointNotExistExceptionMessage = "프로토콜 '{0}' 및 주소 '{1}' 또는 로컬 주소 '{2}'가 있는 엔드포인트가 존재하지 않습니다." + terminatingMessage = '종료 중...' + noCommandsSuppliedToConvertToRoutesExceptionMessage = '경로로 변환할 명령이 제공되지 않았습니다.' + invalidTaskTypeExceptionMessage = '작업 유형이 유효하지 않습니다. 예상된 유형: [System.Threading.Tasks.Task] 또는 [hashtable]' + alreadyConnectedToWebSocketExceptionMessage = "이름이 '{0}'인 WebSocket에 이미 연결되어 있습니다." + crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = 'CRLF 메시지 끝 검사는 TCP 엔드포인트에서만 지원됩니다.' + testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = "'Test-PodeOAComponentSchema'는 'Enable-PodeOpenApi -EnableSchemaValidation'을 사용하여 활성화해야 합니다." + adModuleNotInstalledExceptionMessage = 'Active Directory 모듈이 설치되지 않았습니다.' + cronExpressionInvalidExceptionMessage = 'Cron 표현식은 5개의 부분으로만 구성되어야 합니다: {0}' + noSessionToSetOnResponseExceptionMessage = '응답에 설정할 세션이 없습니다.' + valueOutOfRangeExceptionMessage = "{1}의 값 '{0}'이(가) 유효하지 않습니다. {2}와 {3} 사이여야 합니다." + loggingMethodAlreadyDefinedExceptionMessage = '로깅 방법이 이미 정의되었습니다: {0}' + noSecretForHmac256ExceptionMessage = 'HMAC256 해시를 위한 비밀이 제공되지 않았습니다.' + eolPowerShellWarningMessage = '[경고] Pode {0}은 EOL 상태인 PowerShell {1}에서 테스트되지 않았습니다.' + runspacePoolFailedToLoadExceptionMessage = '{0} RunspacePool 로드 실패.' + noEventRegisteredExceptionMessage = '등록된 {0} 이벤트가 없습니다: {1}' + scheduleCannotHaveNegativeLimitExceptionMessage = '[스케줄] {0}: 음수 한도를 가질 수 없습니다.' + openApiRequestStyleInvalidForParameterExceptionMessage = 'OpenApi 요청 스타일은 {1} 매개변수에 대해 {0}일 수 없습니다.' + openApiDocumentNotCompliantExceptionMessage = 'OpenAPI 문서는 준수하지 않습니다.' + taskDoesNotExistExceptionMessage = "작업 '{0}'이(가) 존재하지 않습니다." + scopedVariableNotFoundExceptionMessage = '범위 변수 {0}을(를) 찾을 수 없습니다.' + sessionsRequiredForCsrfExceptionMessage = '쿠키를 사용하지 않으려면 CSRF 사용을 위해 세션이 필요합니다.' + nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = '로깅 방법에는 비어 있지 않은 ScriptBlock이 필요합니다.' + credentialsPassedWildcardForHeadersLiteralExceptionMessage = '자격 증명이 전달되면, 헤더에 대한 * 와일드카드는 와일드카드가 아닌 리터럴 문자열로 취급됩니다.' + podeNotInitializedExceptionMessage = 'Pode가 초기화되지 않았습니다.' + multipleEndpointsForGuiMessage = '여러 엔드포인트가 정의되었으며, GUI에는 첫 번째만 사용됩니다.' + operationIdMustBeUniqueExceptionMessage = 'OperationID: {0}은(는) 고유해야 합니다.' + invalidJsonJwtExceptionMessage = 'JWT에서 잘못된 JSON 값이 발견되었습니다.' + noAlgorithmInJwtHeaderExceptionMessage = 'JWT 헤더에 제공된 알고리즘이 없습니다.' + openApiVersionPropertyMandatoryExceptionMessage = 'OpenApi 버전 속성은 필수입니다.' + limitValueCannotBeZeroOrLessExceptionMessage = '{0}에 대한 제한 값은 0 이하일 수 없습니다.' + timerDoesNotExistExceptionMessage = "타이머 '{0}'이(가) 존재하지 않습니다." + openApiGenerationDocumentErrorMessage = 'OpenAPI 생성 문서 오류:' + routeAlreadyContainsCustomAccessExceptionMessage = "경로 '[{0}] {1}'에 '{2}' 이름의 사용자 지정 액세스가 이미 포함되어 있습니다." + maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = '최대 동시 WebSocket 스레드는 최소값 {0}보다 작을 수 없지만 받은 값: {1}' + middlewareAlreadyDefinedExceptionMessage = '[Middleware] {0}: 미들웨어가 이미 정의되었습니다.' + invalidAtomCharacterExceptionMessage = '잘못된 원자 문자: {0}' + cacheStorageNotFoundForRetrieveExceptionMessage = "캐시된 항목 '{1}'을(를) 검색하려고 할 때 이름이 '{0}'인 캐시 스토리지를 찾을 수 없습니다." + headerMustHaveNameInEncodingContextExceptionMessage = '인코딩 컨텍스트에서 사용될 때 헤더는 이름이 있어야 합니다.' + moduleDoesNotContainFunctionExceptionMessage = '모듈 {0}에 경로로 변환할 함수 {1}이(가) 포함되어 있지 않습니다.' + pathToIconForGuiDoesNotExistExceptionMessage = 'GUI용 아이콘의 경로가 존재하지 않습니다: {0}' + noTitleSuppliedForPageExceptionMessage = '{0} 페이지에 대한 제목이 제공되지 않았습니다.' + certificateSuppliedForNonHttpsWssEndpointExceptionMessage = 'HTTPS/WSS가 아닌 엔드포인트에 제공된 인증서입니다.' + cannotLockNullObjectExceptionMessage = 'null 개체를 잠글 수 없습니다.' + showPodeGuiOnlyAvailableOnWindowsExceptionMessage = 'Show-PodeGui는 현재 Windows PowerShell 및 Windows의 PowerShell 7+에서만 사용할 수 있습니다.' + unlockSecretButNoScriptBlockExceptionMessage = '사용자 정의 비밀 금고 유형에 대해 제공된 Unlock 비밀이지만, Unlock ScriptBlock이 제공되지 않았습니다.' + invalidIpAddressExceptionMessage = '제공된 IP 주소가 유효하지 않습니다: {0}' + maxDaysInvalidExceptionMessage = 'MaxDays는 0 이상이어야 하지만, 받은 값: {0}' + noRemoveScriptBlockForVaultExceptionMessage = "금고 '{0}'에서 비밀을 제거하기 위한 Remove ScriptBlock이 제공되지 않았습니다." + noSecretExpectedForNoSignatureExceptionMessage = '서명이 없는 경우 비밀이 제공되지 않아야 합니다.' + noCertificateFoundExceptionMessage = "'{2}'에 대한 {0}{1}에서 인증서를 찾을 수 없습니다." + minValueInvalidExceptionMessage = "{1}의 최소 값 '{0}'이(가) 유효하지 않습니다. {2} 이상이어야 합니다." + accessRequiresAuthenticationOnRoutesExceptionMessage = '경로에 대한 접근은 인증이 필요합니다.' + noSecretForHmac384ExceptionMessage = 'HMAC384 해시를 위한 비밀이 제공되지 않았습니다.' + windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = 'Windows 로컬 인증 지원은 Windows 전용입니다.' + definitionTagNotDefinedExceptionMessage = '정의 태그 {0}이(가) 정의되지 않았습니다.' + noComponentInDefinitionExceptionMessage = '{2} 정의에서 {0} 유형의 {1} 이름의 구성 요소가 없습니다.' + noSmtpHandlersDefinedExceptionMessage = '정의된 SMTP 핸들러가 없습니다.' + sessionMiddlewareAlreadyInitializedExceptionMessage = '세션 미들웨어가 이미 초기화되었습니다.' + reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = "OpenAPI v3.0에서는 재사용 가능한 구성 요소 기능 'pathItems'를 사용할 수 없습니다." + wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = '헤더에 대한 * 와일드카드는 AutoHeaders 스위치와 호환되지 않습니다.' + noDataForFileUploadedExceptionMessage = "요청에서 업로드된 파일 '{0}'에 대한 데이터가 없습니다." + sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = 'SSE는 Accept 헤더 값이 text/event-stream인 요청에서만 구성할 수 있습니다.' + noSessionAvailableToSaveExceptionMessage = '저장할 수 있는 세션이 없습니다.' + pathParameterRequiresRequiredSwitchExceptionMessage = "매개변수 위치가 'Path'인 경우 'Required' 스위치 매개변수가 필수입니다." + noOpenApiUrlSuppliedExceptionMessage = '{0}에 대한 OpenAPI URL이 제공되지 않았습니다.' + maximumConcurrentSchedulesInvalidExceptionMessage = '최대 동시 스케줄 수는 1 이상이어야 하지만 받은 값: {0}' + snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = 'Snapins는 Windows PowerShell에서만 지원됩니다.' + eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = '이벤트 뷰어 로깅은 Windows에서만 지원됩니다.' + parametersMutuallyExclusiveExceptionMessage = "매개변수 '{0}'와(과) '{1}'는 상호 배타적입니다." + pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = 'PathItems 기능은 OpenAPI v3.0.x에서 지원되지 않습니다.' + openApiParameterRequiresNameExceptionMessage = 'OpenApi 매개변수에는 이름이 필요합니다.' + maximumConcurrentTasksLessThanMinimumExceptionMessage = '최대 동시 작업 수는 최소값 {0}보다 작을 수 없지만 받은 값: {1}' + noSemaphoreFoundExceptionMessage = "이름이 '{0}'인 세마포어를 찾을 수 없습니다." + singleValueForIntervalExceptionMessage = '간격을 사용할 때는 단일 {0} 값을 제공할 수 있습니다.' + jwtNotYetValidExceptionMessage = 'JWT가 아직 유효하지 않습니다.' + verbAlreadyDefinedForUrlExceptionMessage = '[동사] {0}: {1}에 대해 이미 정의되었습니다.' + noSecretNamedMountedExceptionMessage = "이름이 '{0}'인 시크릿이 마운트되지 않았습니다." + moduleOrVersionNotFoundExceptionMessage = '{0}에서 모듈 또는 버전을 찾을 수 없습니다: {1}@{2}' + noScriptBlockSuppliedExceptionMessage = 'ScriptBlock이 제공되지 않았습니다.' + noSecretVaultRegisteredExceptionMessage = "이름이 '{0}'인 비밀 금고가 등록되지 않았습니다." + nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = 'RedirectTo 매개변수가 제공된 경우 엔드포인트에 이름이 필요합니다.' + openApiLicenseObjectRequiresNameExceptionMessage = "OpenAPI 객체 'license'는 'name' 속성이 필요합니다. -LicenseName 매개변수를 사용하십시오." + sourcePathDoesNotExistForStaticRouteExceptionMessage = '[{0})] {1}: 정적 경로에 대한 제공된 소스 경로가 존재하지 않습니다: {2}' + noNameForWebSocketDisconnectExceptionMessage = '연결을 끊을 WebSocket의 이름이 제공되지 않았습니다.' + certificateExpiredExceptionMessage = "인증서 '{0}'이(가) 만료되었습니다: {1}" + secretVaultUnlockExpiryDateInPastExceptionMessage = '시크릿 금고의 잠금 해제 만료 날짜가 과거입니다 (UTC): {0}' + invalidExceptionTypeExceptionMessage = '예외가 잘못된 유형입니다. WebException 또는 HttpRequestException이어야 하지만, 얻은 것은: {0}' + invalidSecretValueTypeExceptionMessage = '비밀 값이 잘못된 유형입니다. 예상되는 유형: String, SecureString, HashTable, Byte[] 또는 PSCredential. 그러나 얻은 것은: {0}' + explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = '명시적 TLS 모드는 SMTPS 및 TCPS 엔드포인트에서만 지원됩니다.' + discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = "매개변수 'DiscriminatorMapping'은 'DiscriminatorProperty'가 있을 때만 사용할 수 있습니다." + scriptErrorExceptionMessage = "스크립트 {1} {2} (라인 {3}) 문자 {4}에서 {5}을(를) 실행하는 중에 스크립트 {0} 오류가 발생했습니다. 개체 '{7}' 클래스: {8} 기본 클래스: {9}" + cannotSupplyIntervalForQuarterExceptionMessage = '분기별 간격 값을 제공할 수 없습니다.' + scheduleEndTimeMustBeInFutureExceptionMessage = '[스케줄] {0}: 종료 시간 값은 미래에 있어야 합니다.' + invalidJwtSignatureSuppliedExceptionMessage = '제공된 JWT 서명이 유효하지 않습니다.' + noSetScriptBlockForVaultExceptionMessage = "금고 '{0}'에서 비밀을 업데이트/생성하기 위한 Set ScriptBlock이 제공되지 않았습니다." + accessMethodNotExistForMergingExceptionMessage = '병합을 위한 액세스 방법이 존재하지 않습니다: {0}' + defaultAuthNotInListExceptionMessage = "기본 인증 '{0}'이(가) 제공된 인증 목록에 없습니다." + parameterHasNoNameExceptionMessage = "매개변수에 이름이 없습니다. 'Name' 매개변수를 사용하여 이 구성 요소에 이름을 지정하십시오." + methodPathAlreadyDefinedForUrlExceptionMessage = '[{0}] {1}: {2}에 대해 이미 정의되었습니다.' + fileWatcherAlreadyDefinedExceptionMessage = "'{0}'라는 이름의 파일 감시자가 이미 정의되었습니다." + noServiceHandlersDefinedExceptionMessage = '정의된 서비스 핸들러가 없습니다.' + secretRequiredForCustomSessionStorageExceptionMessage = '사용자 정의 세션 저장소를 사용할 때는 비밀이 필요합니다.' + secretManagementModuleNotInstalledExceptionMessage = 'Microsoft.PowerShell.SecretManagement 모듈이 설치되지 않았습니다.' + noPathSuppliedForRouteExceptionMessage = '경로에 대해 제공된 경로가 없습니다.' + validationOfAnyOfSchemaNotSupportedExceptionMessage = "'anyof'을 포함하는 스키마의 유효성 검사는 지원되지 않습니다." + iisAuthSupportIsForWindowsOnlyExceptionMessage = 'IIS 인증 지원은 Windows 전용입니다.' + oauth2InnerSchemeInvalidExceptionMessage = 'OAuth2 InnerScheme은 Basic 또는 Form 인증 중 하나여야 합니다, 그러나 받은 값: {0}' + noRoutePathSuppliedForPageExceptionMessage = '{0} 페이지에 대한 경로가 제공되지 않았습니다.' + cacheStorageNotFoundForExistsExceptionMessage = "캐시된 항목 '{1}'이(가) 존재하는지 확인하려고 할 때 이름이 '{0}'인 캐시 스토리지를 찾을 수 없습니다." + handlerAlreadyDefinedExceptionMessage = '[{0}] {1}: 핸들러가 이미 정의되었습니다.' + sessionsNotConfiguredExceptionMessage = '세션이 구성되지 않았습니다.' + propertiesTypeObjectAssociationExceptionMessage = 'Object 유형의 속성만 {0}와(과) 연결될 수 있습니다.' + sessionsRequiredForSessionPersistentAuthExceptionMessage = '세션 지속 인증을 사용하려면 세션이 필요합니다.' + invalidPathWildcardOrDirectoryExceptionMessage = '제공된 경로는 와일드카드 또는 디렉터리가 될 수 없습니다: {0}' + accessMethodAlreadyDefinedExceptionMessage = '액세스 방법이 이미 정의되었습니다: {0}' + parametersValueOrExternalValueMandatoryExceptionMessage = "매개변수 'Value' 또는 'ExternalValue'는 필수입니다." + maximumConcurrentTasksInvalidExceptionMessage = '최대 동시 작업 수는 >=1이어야 하지만 받은 값: {0}' + cannotCreatePropertyWithoutTypeExceptionMessage = '유형이 정의되지 않았기 때문에 속성을 생성할 수 없습니다.' + authMethodNotExistForMergingExceptionMessage = '병합을 위한 인증 방법이 존재하지 않습니다: {0}' + maxValueInvalidExceptionMessage = "{1}의 최대 값 '{0}'이(가) 유효하지 않습니다. {2} 이하여야 합니다." + endpointAlreadyDefinedExceptionMessage = "이름이 '{0}'인 엔드포인트가 이미 정의되어 있습니다." + eventAlreadyRegisteredExceptionMessage = '{0} 이벤트가 이미 등록되었습니다: {1}' + parameterNotSuppliedInRequestExceptionMessage = "요청에 '{0}'라는 이름의 매개변수가 제공되지 않았거나 데이터가 없습니다." + cacheStorageNotFoundForSetExceptionMessage = "캐시된 항목 '{1}'을(를) 설정하려고 할 때 이름이 '{0}'인 캐시 스토리지를 찾을 수 없습니다." + methodPathAlreadyDefinedExceptionMessage = '[{0}] {1}: 이미 정의되었습니다.' + errorLoggingAlreadyEnabledExceptionMessage = '오류 로깅이 이미 활성화되었습니다.' + valueForUsingVariableNotFoundExceptionMessage = "'`$using:{0}'에 대한 값을 찾을 수 없습니다." + rapidPdfDoesNotSupportOpenApi31ExceptionMessage = '문서 도구 RapidPdf는 OpenAPI 3.1을 지원하지 않습니다.' + oauth2ClientSecretRequiredExceptionMessage = 'PKCE를 사용하지 않을 때 OAuth2에는 클라이언트 비밀이 필요합니다.' + invalidBase64JwtExceptionMessage = 'JWT에서 잘못된 Base64 인코딩 값이 발견되었습니다.' + noSessionToCalculateDataHashExceptionMessage = '데이터 해시를 계산할 세션이 없습니다.' + cacheStorageNotFoundForRemoveExceptionMessage = "캐시된 항목 '{1}'을(를) 제거하려고 할 때 이름이 '{0}'인 캐시 스토리지를 찾을 수 없습니다." + csrfMiddlewareNotInitializedExceptionMessage = 'CSRF 미들웨어가 초기화되지 않았습니다.' + infoTitleMandatoryMessage = 'info.title은 필수 항목입니다.' + typeCanOnlyBeAssociatedWithObjectExceptionMessage = '유형 {0}는 객체와만 연관될 수 있습니다.' + userFileDoesNotExistExceptionMessage = '사용자 파일이 존재하지 않습니다: {0}' + routeParameterNeedsValidScriptblockExceptionMessage = '경로 매개변수에는 유효하고 비어 있지 않은 ScriptBlock이 필요합니다.' + nextTriggerCalculationErrorExceptionMessage = '다음 트리거 날짜 및 시간을 계산하는 중에 문제가 발생한 것 같습니다: {0}' + cannotLockValueTypeExceptionMessage = '[ValueTypes]를 잠글 수 없습니다.' + failedToCreateOpenSslCertExceptionMessage = 'openssl 인증서 생성 실패: {0}' + jwtExpiredExceptionMessage = 'JWT가 만료되었습니다.' + openingGuiMessage = 'GUI 열기.' + multiTypePropertiesRequireOpenApi31ExceptionMessage = '다중 유형 속성은 OpenApi 버전 3.1 이상이 필요합니다.' + noNameForWebSocketRemoveExceptionMessage = '제거할 WebSocket의 이름이 제공되지 않았습니다.' + maxSizeInvalidExceptionMessage = 'MaxSize는 0 이상이어야 하지만, 받은 값: {0}' + iisShutdownMessage = '(IIS 종료)' + cannotUnlockValueTypeExceptionMessage = '[ValueTypes]를 잠금 해제할 수 없습니다.' + noJwtSignatureForAlgorithmExceptionMessage = '{0}에 대한 JWT 서명이 제공되지 않았습니다.' + maximumConcurrentWebSocketThreadsInvalidExceptionMessage = '최대 동시 WebSocket 스레드는 >=1이어야 하지만 받은 값: {0}' + acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = '확인 메시지는 SMTP 및 TCP 엔드포인트에서만 지원됩니다.' + failedToConnectToUrlExceptionMessage = 'URL에 연결하지 못했습니다: {0}' + failedToAcquireMutexOwnershipExceptionMessage = '뮤텍스 소유권을 획득하지 못했습니다. 뮤텍스 이름: {0}' + sessionsRequiredForOAuth2WithPKCEExceptionMessage = 'PKCE를 사용하는 OAuth2에는 세션이 필요합니다.' + failedToConnectToWebSocketExceptionMessage = 'WebSocket에 연결하지 못했습니다: {0}' + unsupportedObjectExceptionMessage = '지원되지 않는 개체' + failedToParseAddressExceptionMessage = "'{0}'을(를) 유효한 IP/호스트:포트 주소로 구문 분석하지 못했습니다." + mustBeRunningWithAdminPrivilegesExceptionMessage = '관리자 권한으로 실행되어야 비로소 로컬호스트 주소가 아닌 주소를 청취할 수 있습니다.' + specificationMessage = '사양' + cacheStorageNotFoundForClearExceptionMessage = "캐시를 지우려고 할 때 이름이 '{0}'인 캐시 스토리지를 찾을 수 없습니다." + restartingServerMessage = '서버를 재시작 중...' + cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = "매개변수 'Every'가 None으로 설정된 경우 간격을 제공할 수 없습니다." + unsupportedJwtAlgorithmExceptionMessage = 'JWT 알고리즘은 현재 지원되지 않습니다: {0}' + websocketsNotConfiguredForSignalMessagesExceptionMessage = 'WebSockets가 신호 메시지를 보내도록 구성되지 않았습니다.' + invalidLogicTypeInHashtableMiddlewareExceptionMessage = '제공된 Hashtable 미들웨어에 잘못된 논리 유형이 있습니다. 예상된 유형은 ScriptBlock이지만, 얻은 것은: {0}' + maximumConcurrentSchedulesLessThanMinimumExceptionMessage = '최대 동시 스케줄 수는 최소 {0}보다 작을 수 없지만 받은 값: {1}' + failedToAcquireSemaphoreOwnershipExceptionMessage = '세마포어 소유권을 획득하지 못했습니다. 세마포어 이름: {0}' + propertiesParameterWithoutNameExceptionMessage = '속성에 이름이 없으면 Properties 매개변수를 사용할 수 없습니다.' + customSessionStorageMethodNotImplementedExceptionMessage = "사용자 정의 세션 저장소가 필요한 메서드 '{0}()'를 구현하지 않았습니다." + authenticationMethodDoesNotExistExceptionMessage = '인증 방법이 존재하지 않습니다: {0}' + webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = 'Webhooks 기능은 OpenAPI v3.0.x에서 지원되지 않습니다.' + invalidContentTypeForSchemaExceptionMessage = "스키마에 대해 잘못된 'content-type'이 발견되었습니다: {0}" + noUnlockScriptBlockForVaultExceptionMessage = "금고 '{0}'을(를) 해제하는 Unlock ScriptBlock이 제공되지 않았습니다." + definitionTagMessage = '정의 {0}:' + failedToOpenRunspacePoolExceptionMessage = 'RunspacePool을 여는 데 실패했습니다: {0}' + verbNoLogicPassedExceptionMessage = '[동사] {0}: 전달된 로직 없음' + noMutexFoundExceptionMessage = "이름이 '{0}'인 뮤텍스를 찾을 수 없습니다." + documentationMessage = '문서' + timerAlreadyDefinedExceptionMessage = '[타이머] {0}: 타이머가 이미 정의되어 있습니다.' + invalidPortExceptionMessage = '포트는 음수일 수 없습니다: {0}' + viewsFolderNameAlreadyExistsExceptionMessage = '뷰 폴더 이름이 이미 존재합니다: {0}' + noNameForWebSocketResetExceptionMessage = '재설정할 WebSocket의 이름이 제공되지 않았습니다.' + mergeDefaultAuthNotInListExceptionMessage = "병합 기본 인증 '{0}'이(가) 제공된 인증 목록에 없습니다." + descriptionRequiredExceptionMessage = '설명이 필요합니다.' + pageNameShouldBeAlphaNumericExceptionMessage = '페이지 이름은 유효한 알파벳 숫자 값이어야 합니다: {0}' + defaultValueNotBooleanOrEnumExceptionMessage = '기본값이 boolean이 아니며 enum에 속하지 않습니다.' + openApiComponentSchemaDoesNotExistExceptionMessage = 'OpenApi 구성 요소 스키마 {0}이(가) 존재하지 않습니다.' + timerParameterMustBeGreaterThanZeroExceptionMessage = '[타이머] {0}: {1}은(는) 0보다 커야 합니다.' + taskTimedOutExceptionMessage = '작업이 {0}ms 후에 시간 초과되었습니다.' + scheduleStartTimeAfterEndTimeExceptionMessage = "[스케줄] {0}: 'StartTime'이 'EndTime' 이후일 수 없습니다." + infoVersionMandatoryMessage = 'info.version은 필수 항목입니다.' + cannotUnlockNullObjectExceptionMessage = 'null 개체를 잠금 해제할 수 없습니다.' + nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = '사용자 정의 인증 스킴에는 비어 있지 않은 ScriptBlock이 필요합니다.' + validationOfOneOfSchemaNotSupportedExceptionMessage = "'oneof'을 포함하는 스키마의 유효성 검사는 지원되지 않습니다." + routeParameterCannotBeNullExceptionMessage = "'Route' 매개변수는 null일 수 없습니다." + cacheStorageAlreadyExistsExceptionMessage = "이름이 '{0}'인 캐시 스토리지가 이미 존재합니다." + loggingMethodRequiresValidScriptBlockExceptionMessage = "'{0}' 로깅 방법에 대한 제공된 출력 방법은 유효한 ScriptBlock이 필요합니다." + scopedVariableAlreadyDefinedExceptionMessage = '범위 지정 변수가 이미 정의되었습니다: {0}' + oauth2RequiresAuthorizeUrlExceptionMessage = 'OAuth2에는 권한 부여 URL이 필요합니다.' + pathNotExistExceptionMessage = '경로가 존재하지 않습니다: {0}' + noDomainServerNameForWindowsAdAuthExceptionMessage = 'Windows AD 인증을 위한 도메인 서버 이름이 제공되지 않았습니다.' + suppliedDateAfterScheduleEndTimeExceptionMessage = '제공된 날짜가 스케줄 종료 시간 {0} 이후입니다.' + wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = '메서드에 대한 * 와일드카드는 AutoMethods 스위치와 호환되지 않습니다.' + cannotSupplyIntervalForYearExceptionMessage = '매년 간격 값을 제공할 수 없습니다.' + missingComponentsMessage = '누락된 구성 요소' + invalidStrictTransportSecurityDurationExceptionMessage = '잘못된 Strict-Transport-Security 기간이 제공되었습니다: {0}. 0보다 커야 합니다.' + noSecretForHmac512ExceptionMessage = 'HMAC512 해시를 위한 비밀이 제공되지 않았습니다.' + daysInMonthExceededExceptionMessage = '{0}에는 {1}일밖에 없지만 {2}일이 제공되었습니다.' + nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = '사용자 정의 로깅 출력 방법에는 비어 있지 않은 ScriptBlock이 필요합니다.' + encodingAttributeOnlyAppliesToMultipartExceptionMessage = '인코딩 속성은 multipart 및 application/x-www-form-urlencoded 요청 본문에만 적용됩니다.' + suppliedDateBeforeScheduleStartTimeExceptionMessage = '제공된 날짜가 스케줄 시작 시간 {0} 이전입니다.' + unlockSecretRequiredExceptionMessage = "Microsoft.PowerShell.SecretStore를 사용할 때 'UnlockSecret' 속성이 필요합니다." + noLogicPassedForMethodRouteExceptionMessage = '[{0}] {1}: 논리가 전달되지 않았습니다.' + bodyParserAlreadyDefinedForContentTypeExceptionMessage = '{0} 콘텐츠 유형에 대한 바디 파서가 이미 정의되어 있습니다.' + invalidJwtSuppliedExceptionMessage = '제공된 JWT가 유효하지 않습니다.' + sessionsRequiredForFlashMessagesExceptionMessage = '플래시 메시지를 사용하려면 세션이 필요합니다.' + outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = '요청 로깅에 제공된 출력 방법에는 유효한 ScriptBlock이 필요합니다.' + semaphoreAlreadyExistsExceptionMessage = "이름이 '{0}'인 세마포어가 이미 존재합니다." + invalidJwtHeaderAlgorithmSuppliedExceptionMessage = '제공된 JWT 헤더 알고리즘이 유효하지 않습니다.' + oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = "OAuth2 공급자는 InnerScheme을 사용하는 데 필요한 'password' 부여 유형을 지원하지 않습니다." + invalidAliasFoundExceptionMessage = '잘못된 {0} 별칭이 발견되었습니다: {1}' + scheduleDoesNotExistExceptionMessage = "스케줄 '{0}'이(가) 존재하지 않습니다." + accessMethodNotExistExceptionMessage = '액세스 방법이 존재하지 않습니다: {0}' + oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = "OAuth2 공급자는 'code' 응답 유형을 지원하지 않습니다." + untestedPowerShellVersionWarningMessage = '[경고] Pode {0}은 출시 당시 사용 가능하지 않았기 때문에 PowerShell {1}에서 테스트되지 않았습니다.' + secretVaultAlreadyRegisteredAutoImportExceptionMessage = "이름이 '{0}'인 비밀 금고가 이미 자동으로 가져오는 동안 등록되었습니다." + schemeRequiresValidScriptBlockExceptionMessage = "'{0}' 인증 검증기에 제공된 스킴에는 유효한 ScriptBlock이 필요합니다." + serverLoopingMessage = '서버 루핑 간격 {0}초' + certificateThumbprintsNameSupportedOnWindowsExceptionMessage = '인증서 지문/이름은 Windows에서만 지원됩니다.' + sseConnectionNameRequiredExceptionMessage = "-Name 또는 `$WebEvent.Sse.Name에서 SSE 연결 이름이 필요합니다." + invalidMiddlewareTypeExceptionMessage = '제공된 미들웨어 중 하나가 잘못된 유형입니다. 예상된 유형은 ScriptBlock 또는 Hashtable이지만, 얻은 것은: {0}' + noSecretForJwtSignatureExceptionMessage = 'JWT 서명을 위한 비밀이 제공되지 않았습니다.' + modulePathDoesNotExistExceptionMessage = '모듈 경로가 존재하지 않습니다: {0}' + taskAlreadyDefinedExceptionMessage = '[작업] {0}: 작업이 이미 정의되었습니다.' + verbAlreadyDefinedExceptionMessage = '[동사] {0}: 이미 정의되었습니다.' + clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = '클라이언트 인증서는 HTTPS 엔드포인트에서만 지원됩니다.' + endpointNameNotExistExceptionMessage = "이름이 '{0}'인 엔드포인트가 존재하지 않습니다." + middlewareNoLogicSuppliedExceptionMessage = '[미들웨어]: ScriptBlock에 로직이 제공되지 않았습니다.' + scriptBlockRequiredForMergingUsersExceptionMessage = 'Valid가 All일 때 여러 인증된 사용자를 하나의 객체로 병합하려면 ScriptBlock이 필요합니다.' + secretVaultAlreadyRegisteredExceptionMessage = "이름이 '{0}'인 시크릿 금고가 이미 등록되었습니다{1}." + deprecatedTitleVersionDescriptionWarningMessage = "경고: 'Enable-PodeOpenApi'의 제목, 버전 및 설명이 더 이상 사용되지 않습니다. 대신 'Add-PodeOAInfo'를 사용하십시오." + undefinedOpenApiReferencesMessage = '정의되지 않은 OpenAPI 참조:' + doneMessage = '완료' + swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = '이 버전의 Swagger-Editor는 OpenAPI 3.1을 지원하지 않습니다.' + durationMustBeZeroOrGreaterExceptionMessage = '기간은 0 이상이어야 하지만 받은 값: {0}s' + viewsPathDoesNotExistExceptionMessage = '뷰 경로가 존재하지 않습니다: {0}' + discriminatorIncompatibleWithAllOfExceptionMessage = "매개변수 'Discriminator'는 'allOf'와 호환되지 않습니다." + noNameForWebSocketSendMessageExceptionMessage = '메시지를 보낼 WebSocket의 이름이 제공되지 않았습니다.' + hashtableMiddlewareNoLogicExceptionMessage = '제공된 Hashtable 미들웨어에는 정의된 논리가 없습니다.' + openApiInfoMessage = 'OpenAPI 정보:' + invalidSchemeForAuthValidatorExceptionMessage = "'{1}' 인증 검증기에 제공된 '{0}' 스킴에는 유효한 ScriptBlock이 필요합니다." + sseFailedToBroadcastExceptionMessage = '{0}에 대해 정의된 SSE 브로드캐스트 수준으로 인해 SSE 브로드캐스트에 실패했습니다: {1}' + adModuleWindowsOnlyExceptionMessage = 'Active Directory 모듈은 Windows에서만 사용할 수 있습니다.' + requestLoggingAlreadyEnabledExceptionMessage = '요청 로깅이 이미 활성화되었습니다.' + invalidAccessControlMaxAgeDurationExceptionMessage = '잘못된 Access-Control-Max-Age 기간이 제공되었습니다: {0}. 0보다 커야 합니다.' +} + diff --git a/src/Locales/pl/Pode.psd1 b/src/Locales/pl/Pode.psd1 index 33279d7cd..6033b59b7 100644 --- a/src/Locales/pl/Pode.psd1 +++ b/src/Locales/pl/Pode.psd1 @@ -1,284 +1,285 @@ -ConvertFrom-StringData -StringData @' -adModuleWindowsOnlyExceptionMessage = Moduł Active Directory jest dostępny tylko w systemie Windows. -adModuleNotInstalledExceptionMessage = Moduł Active Directory nie jest zainstalowany. -secretManagementModuleNotInstalledExceptionMessage = Moduł Microsoft.PowerShell.SecretManagement nie jest zainstalowany. -secretVaultAlreadyRegisteredAutoImportExceptionMessage = Skarbiec z nazwą '{0}' został już zarejestrowany podczas automatycznego importowania skarbców. -failedToOpenRunspacePoolExceptionMessage = Nie udało się otworzyć RunspacePool: {0} -cronExpressionInvalidExceptionMessage = Wyrażenie Cron powinno składać się tylko z 5 części: {0} -invalidAliasFoundExceptionMessage = Znaleziono nieprawidłowy alias {0}: {1} -invalidAtomCharacterExceptionMessage = Nieprawidłowy znak atomu: {0} -minValueGreaterThanMaxExceptionMessage = Minimalna wartość dla {0} nie powinna być większa od maksymalnej wartości. -minValueInvalidExceptionMessage = Minimalna wartość '{0}' dla {1} jest nieprawidłowa, powinna być większa lub równa {2} -maxValueInvalidExceptionMessage = Maksymalna wartość '{0}' dla {1} jest nieprawidłowa, powinna być mniejsza lub równa {2} -valueOutOfRangeExceptionMessage = Wartość '{0}' dla {1} jest nieprawidłowa, powinna być pomiędzy {2} a {3} -daysInMonthExceededExceptionMessage = {0} ma tylko {1} dni, ale podano {2}. -nextTriggerCalculationErrorExceptionMessage = Wygląda na to, że coś poszło nie tak przy próbie obliczenia następnej daty i godziny wyzwalacza: {0} -incompatiblePodeDllExceptionMessage = Istnieje niekompatybilna wersja Pode.DLL {0}. Wymagana wersja {1}. Otwórz nową sesję Powershell/pwsh i spróbuj ponownie. -endpointNotExistExceptionMessage = Punkt końcowy z protokołem '{0}' i adresem '{1}' lub adresem lokalnym '{2}' nie istnieje. -endpointNameNotExistExceptionMessage = Punkt końcowy o nazwie '{0}' nie istnieje. -failedToConnectToUrlExceptionMessage = Nie udało się połączyć z URL: {0} -failedToParseAddressExceptionMessage = Nie udało się przeanalizować '{0}' jako poprawnego adresu IP/Host:Port -invalidIpAddressExceptionMessage = Podany adres IP jest nieprawidłowy: {0} -invalidPortExceptionMessage = Port nie może być ujemny: {0} -pathNotExistExceptionMessage = Ścieżka nie istnieje: {0} -noSecretForHmac256ExceptionMessage = Nie podano tajemnicy dla haszowania HMAC256. -noSecretForHmac384ExceptionMessage = Nie podano tajemnicy dla haszowania HMAC384. -noSecretForHmac512ExceptionMessage = Nie podano tajemnicy dla haszowania HMAC512. -noSecretForJwtSignatureExceptionMessage = Nie podano tajemnicy dla podpisu JWT. -noSecretExpectedForNoSignatureExceptionMessage = Nie oczekiwano podania tajemnicy dla braku podpisu. -unsupportedJwtAlgorithmExceptionMessage = Algorytm JWT nie jest obecnie obsługiwany: {0} -invalidBase64JwtExceptionMessage = Nieprawidłowa wartość zakodowana w Base64 znaleziona w JWT -invalidJsonJwtExceptionMessage = Nieprawidłowa wartość JSON znaleziona w JWT -unsupportedFunctionInServerlessContextExceptionMessage = Funkcja {0} nie jest obsługiwana w kontekście bezserwerowym. -invalidPathWildcardOrDirectoryExceptionMessage = Podana ścieżka nie może być symbolem wieloznacznym ani katalogiem: {0} -invalidExceptionTypeExceptionMessage = Wyjątek jest nieprawidłowego typu, powinien być WebException lub HttpRequestException, ale otrzymano: {0} -pathToLoadNotFoundExceptionMessage = Ścieżka do załadowania {0} nie znaleziona: {1} -singleValueForIntervalExceptionMessage = Możesz podać tylko jedną wartość {0} podczas korzystania z interwałów. -scriptErrorExceptionMessage = Błąd '{0}' w skrypcie {1} {2} (linia {3}) znak {4} podczas wykonywania {5} na {6} obiekt '{7}' Klasa: {8} Klasa bazowa: {9} -noScriptBlockSuppliedExceptionMessage = Nie podano ScriptBlock. -iisAspnetcoreTokenMissingExceptionMessage = Brakujący IIS ASPNETCORE_TOKEN. -propertiesParameterWithoutNameExceptionMessage = Parametry Properties nie mogą być używane, jeśli właściwość nie ma nazwy. -multiTypePropertiesRequireOpenApi31ExceptionMessage = Właściwości wielotypowe wymagają wersji OpenApi 3.1 lub wyższej. -openApiVersionPropertyMandatoryExceptionMessage = Właściwość wersji OpenApi jest obowiązkowa. -webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = Funkcja Webhooks nie jest obsługiwana w OpenAPI v3.0.x -authenticationMethodDoesNotExistExceptionMessage = Metoda uwierzytelniania nie istnieje: {0} -unsupportedObjectExceptionMessage = Obiekt nieobsługiwany -validationOfAnyOfSchemaNotSupportedExceptionMessage = Walidacja schematu, który zawiera 'anyof', nie jest obsługiwana. -validationOfOneOfSchemaNotSupportedExceptionMessage = Walidacja schematu, który zawiera 'oneof', nie jest obsługiwana. -cannotCreatePropertyWithoutTypeExceptionMessage = Nie można utworzyć właściwości, ponieważ nie zdefiniowano typu. -headerMustHaveNameInEncodingContextExceptionMessage = Nagłówek musi mieć nazwę, gdy jest używany w kontekście kodowania. -descriptionRequiredExceptionMessage = Wymagany jest opis. -openApiDocumentNotCompliantExceptionMessage = Dokument OpenAPI nie jest zgodny. -noComponentInDefinitionExceptionMessage = Brak komponentu typu {0} o nazwie {1} dostępnego w definicji {2}. -methodPathAlreadyDefinedExceptionMessage = [{0}] {1}: Już zdefiniowane. -methodPathAlreadyDefinedForUrlExceptionMessage = [{0}] {1}: Już zdefiniowane dla {2} -invalidMiddlewareTypeExceptionMessage = Jeden z dostarczonych Middleware jest nieprawidłowego typu. Oczekiwano ScriptBlock lub Hashtable, ale otrzymano: {0} -hashtableMiddlewareNoLogicExceptionMessage = Dostarczone Middleware typu Hashtable nie ma zdefiniowanej logiki. -invalidLogicTypeInHashtableMiddlewareExceptionMessage = Dostarczone Middleware typu Hashtable ma nieprawidłowy typ logiki. Oczekiwano ScriptBlock, ale otrzymano: {0} -scopedVariableAlreadyDefinedExceptionMessage = Zmienna z zakresem już zdefiniowana: {0} -valueForUsingVariableNotFoundExceptionMessage = Nie można znaleźć wartości dla '`$using:{0}'. -unlockSecretRequiredExceptionMessage = Właściwość 'UnlockSecret' jest wymagana przy używaniu Microsoft.PowerShell.SecretStore -unlockSecretButNoScriptBlockExceptionMessage = Podano tajemnicę odblokowania dla niestandardowego typu skarbca, ale nie podano ScriptBlock odblokowania. -noUnlockScriptBlockForVaultExceptionMessage = Nie podano ScriptBlock odblokowania dla odblokowania skarbca '{0}' -noSetScriptBlockForVaultExceptionMessage = Nie podano ScriptBlock dla aktualizacji/tworzenia tajemnic w skarbcu '{0}' -noRemoveScriptBlockForVaultExceptionMessage = Nie podano ScriptBlock dla usuwania tajemnic ze skarbca '{0}' -invalidSecretValueTypeExceptionMessage = Wartość tajemnicy jest nieprawidłowego typu. Oczekiwane typy: String, SecureString, HashTable, Byte[] lub PSCredential. Ale otrzymano: {0} -limitValueCannotBeZeroOrLessExceptionMessage = Wartość limitu nie może być 0 lub mniejsza dla {0} -secondsValueCannotBeZeroOrLessExceptionMessage = Wartość sekund nie może być 0 lub mniejsza dla {0} -failedToCreateOpenSslCertExceptionMessage = Nie udało się utworzyć certyfikatu openssl: {0} -certificateThumbprintsNameSupportedOnWindowsExceptionMessage = Odciski palców/nazwa certyfikatu są obsługiwane tylko w systemie Windows. -noCertificateFoundExceptionMessage = Nie znaleziono certyfikatu w {0}\{1} dla '{2}' -runspacePoolFailedToLoadExceptionMessage = {0} Nie udało się załadować RunspacePool. -noServiceHandlersDefinedExceptionMessage = Nie zdefiniowano żadnych obsługujących usług. -noSessionToSetOnResponseExceptionMessage = Brak dostępnej sesji do ustawienia odpowiedzi. -noSessionToCalculateDataHashExceptionMessage = Brak dostępnej sesji do obliczenia skrótu danych. -moduleOrVersionNotFoundExceptionMessage = Nie znaleziono modułu lub wersji na {0}: {1}@{2} -noSmtpHandlersDefinedExceptionMessage = Nie zdefiniowano żadnych obsługujących SMTP. -taskTimedOutExceptionMessage = Zadanie przekroczyło limit czasu po {0}ms. -verbAlreadyDefinedExceptionMessage = [Czasownik] {0}: Już zdefiniowane -verbAlreadyDefinedForUrlExceptionMessage = [Czasownik] {0}: Już zdefiniowane dla {1} -pathOrScriptBlockRequiredExceptionMessage = Ścieżka lub ScriptBlock są wymagane do pozyskiwania wartości dostępu niestandardowego. -accessMethodAlreadyDefinedExceptionMessage = Metoda dostępu już zdefiniowana: {0} -accessMethodNotExistForMergingExceptionMessage = Metoda dostępu nie istnieje do scalania: {0} -routeAlreadyContainsCustomAccessExceptionMessage = Trasa '[{0}] {1}' już zawiera dostęp niestandardowy z nazwą '{2}' -accessMethodNotExistExceptionMessage = Metoda dostępu nie istnieje: {0} -pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = Funkcja PathItems nie jest obsługiwana w OpenAPI v3.0.x -nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = Dla niestandardowego schematu uwierzytelniania wymagany jest niepusty ScriptBlock. -oauth2InnerSchemeInvalidExceptionMessage = OAuth2 InnerScheme może być tylko jednym z dwóch: Basic lub Form, ale otrzymano: {0} -sessionsRequiredForOAuth2WithPKCEExceptionMessage = Sesje są wymagane do używania OAuth2 z PKCE -oauth2ClientSecretRequiredExceptionMessage = OAuth2 wymaga tajemnicy klienta, gdy nie używa się PKCE. -authMethodAlreadyDefinedExceptionMessage = Metoda uwierzytelniania już zdefiniowana: {0} -invalidSchemeForAuthValidatorExceptionMessage = Dostarczony schemat '{0}' dla walidatora uwierzytelniania '{1}' wymaga ważnego ScriptBlock. -sessionsRequiredForSessionPersistentAuthExceptionMessage = Sesje są wymagane do używania trwałego uwierzytelniania sesji. -oauth2RequiresAuthorizeUrlExceptionMessage = OAuth2 wymaga podania URL autoryzacji -authMethodNotExistForMergingExceptionMessage = Metoda uwierzytelniania nie istnieje dla scalania: {0} -mergeDefaultAuthNotInListExceptionMessage = Uwierzytelnianie MergeDefault '{0}' nie znajduje się na dostarczonej liście uwierzytelniania. -defaultAuthNotInListExceptionMessage = Domyślne uwierzytelnianie '{0}' nie znajduje się na dostarczonej liście uwierzytelniania. -scriptBlockRequiredForMergingUsersExceptionMessage = Wymagany jest ScriptBlock do scalania wielu uwierzytelnionych użytkowników w jeden obiekt, gdy opcja Valid to All. -noDomainServerNameForWindowsAdAuthExceptionMessage = Nie podano nazwy serwera domeny dla uwierzytelniania Windows AD -sessionsNotConfiguredExceptionMessage = Sesje nie zostały skonfigurowane. -windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = Wsparcie lokalnego uwierzytelniania Windows jest tylko dla Windows. -iisAuthSupportIsForWindowsOnlyExceptionMessage = Wsparcie uwierzytelniania IIS jest tylko dla Windows. -noAlgorithmInJwtHeaderExceptionMessage = Brak dostarczonego algorytmu w nagłówku JWT. -invalidJwtSuppliedExceptionMessage = Dostarczono nieprawidłowy JWT. -invalidJwtHeaderAlgorithmSuppliedExceptionMessage = Dostarczono nieprawidłowy algorytm nagłówka JWT. -noJwtSignatureForAlgorithmExceptionMessage = Nie dostarczono podpisu JWT dla {0}. -expectedNoJwtSignatureSuppliedExceptionMessage = Oczekiwano, że nie zostanie dostarczony żaden podpis JWT. -invalidJwtSignatureSuppliedExceptionMessage = Dostarczono nieprawidłowy podpis JWT. -jwtExpiredExceptionMessage = JWT wygasł. -jwtNotYetValidExceptionMessage = JWT jeszcze nie jest ważny. -snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = Snapiny są obsługiwane tylko w Windows PowerShell. -userFileDoesNotExistExceptionMessage = Plik użytkownika nie istnieje: {0} -schemeRequiresValidScriptBlockExceptionMessage = Dostarczony schemat dla walidatora uwierzytelniania '{0}' wymaga ważnego ScriptBlock. -oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = Dostawca OAuth2 nie obsługuje typu odpowiedzi 'code'. -oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = Dostawca OAuth2 nie obsługuje typu 'password' wymaganego przez InnerScheme. -eventAlreadyRegisteredExceptionMessage = Wydarzenie {0} już zarejestrowane: {1} -noEventRegisteredExceptionMessage = Brak zarejestrowanego wydarzenia {0}: {1} -sessionsRequiredForFlashMessagesExceptionMessage = Sesje są wymagane do używania wiadomości Flash. -eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = Rejestrowanie w Podglądzie zdarzeń jest obsługiwane tylko w systemie Windows. -nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = Metoda niestandardowego rejestrowania wymaga niepustego ScriptBlock. -requestLoggingAlreadyEnabledExceptionMessage = Rejestrowanie żądań jest już włączone. -outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = Podana metoda wyjściowa do rejestrowania żądań wymaga prawidłowego ScriptBlock. -errorLoggingAlreadyEnabledExceptionMessage = Rejestrowanie błędów jest już włączone. -nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = Metoda rejestrowania wymaga niepustego ScriptBlock. -csrfMiddlewareNotInitializedExceptionMessage = Middleware CSRF nie został zainicjowany. -sessionsRequiredForCsrfExceptionMessage = Sesje są wymagane do używania CSRF, chyba że chcesz używać ciasteczek. -middlewareNoLogicSuppliedExceptionMessage = [Middleware]: Nie dostarczono logiki w ScriptBlock. -parameterHasNoNameExceptionMessage = Parametr nie ma nazwy. Proszę nadać tej części nazwę za pomocą parametru 'Name'. -reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = Funkcja wielokrotnego użytku 'pathItems' nie jest dostępna w OpenAPI v3.0. -noPropertiesMutuallyExclusiveExceptionMessage = Parametr 'NoProperties' jest wzajemnie wykluczający się z 'Properties', 'MinProperties' i 'MaxProperties'. -discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = Parametr 'DiscriminatorMapping' może być używany tylko wtedy, gdy jest obecna właściwość 'DiscriminatorProperty'. -discriminatorIncompatibleWithAllOfExceptionMessage = Parametr 'Discriminator' jest niezgodny z 'allOf'. -typeCanOnlyBeAssociatedWithObjectExceptionMessage = Typ {0} może być powiązany tylko z obiektem. -showPodeGuiOnlyAvailableOnWindowsExceptionMessage = Show-PodeGui jest obecnie dostępne tylko dla Windows PowerShell i PowerShell 7+ w Windows. -nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = Nazwa jest wymagana dla punktu końcowego, jeśli podano parametr RedirectTo. -clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = Certyfikaty klienta są obsługiwane tylko na punktach końcowych HTTPS. -explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = Tryb TLS Explicity jest obsługiwany tylko na punktach końcowych SMTPS i TCPS. -acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = Komunikat potwierdzenia jest obsługiwany tylko na punktach końcowych SMTP i TCP. -crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = Sprawdzanie końca wiadomości CRLF jest obsługiwane tylko na punktach końcowych TCP. -mustBeRunningWithAdminPrivilegesExceptionMessage = Musisz mieć uprawnienia administratora, aby nasłuchiwać na adresach innych niż localhost. -certificateSuppliedForNonHttpsWssEndpointExceptionMessage = Certyfikat dostarczony dla punktu końcowego innego niż HTTPS/WSS. -websocketsNotConfiguredForSignalMessagesExceptionMessage = WebSockets nie zostały skonfigurowane do wysyłania wiadomości sygnałowych. -noPathSuppliedForRouteExceptionMessage = Nie podano ścieżki dla trasy. -accessRequiresAuthenticationOnRoutesExceptionMessage = Dostęp wymaga uwierzytelnienia na trasach. -accessMethodDoesNotExistExceptionMessage = Metoda dostępu nie istnieje: {0}. -routeParameterNeedsValidScriptblockExceptionMessage = Parametr trasy wymaga prawidłowego, niepustego ScriptBlock. -noCommandsSuppliedToConvertToRoutesExceptionMessage = Nie dostarczono żadnych poleceń do konwersji na trasy. -nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = Aby utworzyć trasę strony, wymagany jest niepusty ScriptBlock. -sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSE można skonfigurować tylko na żądaniach z wartością nagłówka Accept równą text/event-stream. -sseConnectionNameRequiredExceptionMessage = Wymagana jest nazwa połączenia SSE, z -Name lub $`$WebEvent.Sse.Name -sseFailedToBroadcastExceptionMessage = SSE nie udało się przesłać z powodu zdefiniowanego poziomu przesyłania SSE dla {0}: {1} -podeNotInitializedExceptionMessage = Pode nie został zainicjowany. -invalidTaskTypeExceptionMessage = Typ zadania jest nieprawidłowy, oczekiwano [System.Threading.Tasks.Task] lub [hashtable] -cannotLockValueTypeExceptionMessage = Nie można zablokować [ValueTypes]. -cannotLockNullObjectExceptionMessage = Nie można zablokować pustego obiektu. -failedToAcquireLockExceptionMessage = Nie udało się uzyskać blokady na obiekcie. -cannotUnlockValueTypeExceptionMessage = Nie można odblokować [ValueTypes]. -cannotUnlockNullObjectExceptionMessage = Nie można odblokować pustego obiektu. -sessionMiddlewareAlreadyInitializedExceptionMessage = Middleware sesji został już zainicjowany. -customSessionStorageMethodNotImplementedExceptionMessage = Niestandardowe przechowywanie sesji nie implementuje wymaganego ''{0}()'' sposobu. -secretRequiredForCustomSessionStorageExceptionMessage = Podczas korzystania z niestandardowego przechowywania sesji wymagany jest sekret. -noSessionAvailableToSaveExceptionMessage = Brak dostępnej sesji do zapisania. -cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = Nie można dostarczyć interwału, gdy parametr 'Every' jest ustawiony na None. -cannotSupplyIntervalForQuarterExceptionMessage = Nie można dostarczyć wartości interwału dla każdego kwartału. -cannotSupplyIntervalForYearExceptionMessage = Nie można dostarczyć wartości interwału dla każdego roku. -secretVaultAlreadyRegisteredExceptionMessage = Skarbiec tajemnic o nazwie '{0}' został już zarejestrowany{1}. -secretVaultUnlockExpiryDateInPastExceptionMessage = Data wygaśnięcia odblokowania Skarbca tajemnic jest w przeszłości (UTC): {0} -secretAlreadyMountedExceptionMessage = Tajemnica o nazwie '{0}' została już zamontowana. -credentialsPassedWildcardForHeadersLiteralExceptionMessage = Gdy przekazywane są dane uwierzytelniające, symbol wieloznaczny * dla nagłówków będzie traktowany jako dosłowny ciąg znaków, a nie symbol wieloznaczny. -wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = Symbol wieloznaczny * dla nagłówków jest niezgodny z przełącznikiem AutoHeaders. -wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = Symbol wieloznaczny * dla metod jest niezgodny z przełącznikiem AutoMethods. -invalidAccessControlMaxAgeDurationExceptionMessage = Podano nieprawidłowy czas trwania Access-Control-Max-Age: {0}. Powinien być większy niż 0. -noNameForWebSocketDisconnectExceptionMessage = Nie podano nazwy dla rozłączenia WebSocket. -noNameForWebSocketRemoveExceptionMessage = Nie podano nazwy dla usunięcia WebSocket. -noNameForWebSocketSendMessageExceptionMessage = Nie podano nazwy dla wysłania wiadomości do WebSocket. -noSecretNamedMountedExceptionMessage = Nie zamontowano tajemnicy o nazwie '{0}'. -noNameForWebSocketResetExceptionMessage = Nie podano nazwy dla resetowania WebSocket. -schemaValidationRequiresPowerShell610ExceptionMessage = Walidacja schematu wymaga wersji PowerShell 6.1.0 lub nowszej. -routeParameterCannotBeNullExceptionMessage = Parametr 'Route' nie może być pusty. -encodingAttributeOnlyAppliesToMultipartExceptionMessage = Atrybut kodowania dotyczy tylko ciał żądania typu multipart i application/x-www-form-urlencoded. -testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = 'Test-PodeOAComponentSchema' musi być włączony przy użyciu 'Enable-PodeOpenApi -EnableSchemaValidation' -openApiComponentSchemaDoesNotExistExceptionMessage = Schemat komponentu OpenApi {0} nie istnieje. -openApiParameterRequiresNameExceptionMessage = Parametr OpenApi wymaga podania nazwy. -openApiLicenseObjectRequiresNameExceptionMessage = Obiekt OpenAPI 'license' wymaga właściwości 'name'. Użyj parametru -LicenseName. -parametersValueOrExternalValueMandatoryExceptionMessage = Parametry 'Value' lub 'ExternalValue' są obowiązkowe. -parametersMutuallyExclusiveExceptionMessage = Parametry '{0}' i '{1}' są wzajemnie wykluczające się. -maximumConcurrentWebSocketThreadsInvalidExceptionMessage = Maksymalna liczba jednoczesnych wątków WebSocket musi wynosić >=1, ale otrzymano: {0} -maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = Maksymalna liczba jednoczesnych wątków WebSocket nie może być mniejsza niż minimum {0}, ale otrzymano: {1} -alreadyConnectedToWebSocketExceptionMessage = Już połączono z WebSocket o nazwie '{0}' -failedToConnectToWebSocketExceptionMessage = Nie udało się połączyć z WebSocket: {0} -verbNoLogicPassedExceptionMessage = [Czasownik] {0}: Nie przekazano logiki -scriptPathDoesNotExistExceptionMessage = Ścieżka skryptu nie istnieje: {0} -failedToImportModuleExceptionMessage = Nie udało się zaimportować modułu: {0} -modulePathDoesNotExistExceptionMessage = Ścieżka modułu nie istnieje: {0} -defaultValueNotBooleanOrEnumExceptionMessage = Wartość domyślna nie jest typu boolean i nie należy do enum. -propertiesTypeObjectAssociationExceptionMessage = Tylko właściwości typu Object mogą być powiązane z {0}. -invalidContentTypeForSchemaExceptionMessage = Nieprawidłowy 'content-type' znaleziony w schemacie: {0} -openApiRequestStyleInvalidForParameterExceptionMessage = Styl żądania OpenApi nie może być {0} dla parametru {1}. -pathParameterRequiresRequiredSwitchExceptionMessage = Jeśli lokalizacja parametru to 'Path', przełącznik 'Required' jest obowiązkowy. -operationIdMustBeUniqueForArrayExceptionMessage = OperationID: {0} musi być unikalny i nie może być zastosowany do tablicy. -operationIdMustBeUniqueExceptionMessage = OperationID: {0} musi być unikalny. -noOpenApiUrlSuppliedExceptionMessage = Nie dostarczono adresu URL OpenAPI dla {0}. -noTitleSuppliedForPageExceptionMessage = Nie dostarczono tytułu dla strony {0}. -noRoutePathSuppliedForPageExceptionMessage = Nie dostarczono ścieżki trasy dla strony {0}. -swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = Ta wersja Swagger-Editor nie obsługuje OpenAPI 3.1 -rapidPdfDoesNotSupportOpenApi31ExceptionMessage = Narzędzie do dokumentów RapidPdf nie obsługuje OpenAPI 3.1 -definitionTagNotDefinedExceptionMessage = Etykieta definicji {0} nie jest zdefiniowana. -scopedVariableNotFoundExceptionMessage = Nie znaleziono zmiennej zakresu: {0} -noSecretVaultRegisteredExceptionMessage = Nie zarejestrowano Skarbca Tajemnic o nazwie '{0}'. -invalidStrictTransportSecurityDurationExceptionMessage = Nieprawidłowy czas trwania Strict-Transport-Security: {0}. Powinien być większy niż 0. -durationMustBeZeroOrGreaterExceptionMessage = Czas trwania musi wynosić 0 lub więcej, ale otrzymano: {0}s -taskAlreadyDefinedExceptionMessage = [Zadanie] {0}: Zadanie już zdefiniowane. -maximumConcurrentTasksInvalidExceptionMessage = Maksymalna liczba jednoczesnych zadań musi wynosić >=1, ale otrzymano: {0} -maximumConcurrentTasksLessThanMinimumExceptionMessage = Maksymalna liczba jednoczesnych zadań nie może być mniejsza niż minimum {0}, ale otrzymano: {1} -taskDoesNotExistExceptionMessage = Zadanie '{0}' nie istnieje. -cacheStorageNotFoundForRetrieveExceptionMessage = Nie znaleziono magazynu pamięci podręcznej o nazwie '{0}' podczas próby pobrania elementu z pamięci podręcznej '{1}'. -cacheStorageNotFoundForSetExceptionMessage = Nie znaleziono magazynu pamięci podręcznej o nazwie '{0}' podczas próby ustawienia elementu w pamięci podręcznej '{1}'. -cacheStorageNotFoundForExistsExceptionMessage = Nie znaleziono magazynu pamięci podręcznej o nazwie '{0}' podczas próby sprawdzenia, czy element w pamięci podręcznej '{1}' istnieje. -cacheStorageNotFoundForRemoveExceptionMessage = Nie znaleziono magazynu pamięci podręcznej o nazwie '{0}' podczas próby usunięcia elementu z pamięci podręcznej '{1}'. -cacheStorageNotFoundForClearExceptionMessage = Nie znaleziono magazynu pamięci podręcznej o nazwie '{0}' podczas próby wyczyszczenia pamięci podręcznej. -cacheStorageAlreadyExistsExceptionMessage = Magazyn pamięci podręcznej o nazwie '{0}' już istnieje. -pathToIconForGuiDoesNotExistExceptionMessage = Ścieżka do ikony dla GUI nie istnieje: {0} -invalidHostnameSuppliedExceptionMessage = Podano nieprawidłową nazwę hosta: {0} -endpointAlreadyDefinedExceptionMessage = Punkt końcowy o nazwie '{0}' został już zdefiniowany. -certificateExpiredExceptionMessage = Certyfikat '{0}' wygasł: {1} -endpointNotDefinedForRedirectingExceptionMessage = Nie zdefiniowano punktu końcowego o nazwie '{0}' do przekierowania. -fileWatcherAlreadyDefinedExceptionMessage = Obserwator plików o nazwie '{0}' został już zdefiniowany. -handlerAlreadyDefinedExceptionMessage = [{0}] {1}: Handler już zdefiniowany. -maxDaysInvalidExceptionMessage = MaxDays musi wynosić 0 lub więcej, ale otrzymano: {0} -maxSizeInvalidExceptionMessage = MaxSize musi wynosić 0 lub więcej, ale otrzymano: {0} -loggingMethodAlreadyDefinedExceptionMessage = Metoda logowania już zdefiniowana: {0} -loggingMethodRequiresValidScriptBlockExceptionMessage = Dostarczona metoda wyjściowa dla metody logowania '{0}' wymaga poprawnego ScriptBlock. -csrfCookieRequiresSecretExceptionMessage = Podczas używania ciasteczek do CSRF, wymagany jest Sekret. Możesz dostarczyć Sekret lub ustawić globalny sekret dla ciasteczek - (Set-PodeCookieSecret '' -Global) -bodyParserAlreadyDefinedForContentTypeExceptionMessage = Parser treści dla typu zawartości {0} jest już zdefiniowany. -middlewareAlreadyDefinedExceptionMessage = [Middleware] {0}: Middleware już zdefiniowany. -parameterNotSuppliedInRequestExceptionMessage = Parametr o nazwie '{0}' nie został dostarczony w żądaniu lub nie ma dostępnych danych. -noDataForFileUploadedExceptionMessage = Brak danych dla pliku '{0}' przesłanego w żądaniu. -viewsFolderNameAlreadyExistsExceptionMessage = Nazwa folderu Widoków już istnieje: {0} -viewsPathDoesNotExistExceptionMessage = Ścieżka do Widoków nie istnieje: {0} -timerAlreadyDefinedExceptionMessage = [Timer] {0}: Timer już zdefiniowany. -timerParameterMustBeGreaterThanZeroExceptionMessage = [Timer] {0}: {1} musi być większy od 0. -timerDoesNotExistExceptionMessage = Timer '{0}' nie istnieje. -mutexAlreadyExistsExceptionMessage = Muteks o nazwie '{0}' już istnieje. -noMutexFoundExceptionMessage = Nie znaleziono muteksu o nazwie '{0}'. -failedToAcquireMutexOwnershipExceptionMessage = Nie udało się przejąć własności muteksu. Nazwa muteksu: {0} -semaphoreAlreadyExistsExceptionMessage = Semafor o nazwie '{0}' już istnieje. -failedToAcquireSemaphoreOwnershipExceptionMessage = Nie udało się przejąć własności semaforu. Nazwa semaforu: {0} -scheduleAlreadyDefinedExceptionMessage = [Harmonogram] {0}: Harmonogram już zdefiniowany. -scheduleCannotHaveNegativeLimitExceptionMessage = [Harmonogram] {0}: Nie może mieć ujemnego limitu. -scheduleEndTimeMustBeInFutureExceptionMessage = [Harmonogram] {0}: Wartość EndTime musi być w przyszłości. -scheduleStartTimeAfterEndTimeExceptionMessage = [Harmonogram] {0}: Nie może mieć 'StartTime' po 'EndTime'. -maximumConcurrentSchedulesInvalidExceptionMessage = Maksymalna liczba równoczesnych harmonogramów musi wynosić >=1, ale otrzymano: {0} -maximumConcurrentSchedulesLessThanMinimumExceptionMessage = Maksymalna liczba równoczesnych harmonogramów nie może być mniejsza niż minimalna liczba {0}, ale otrzymano: {1} -scheduleDoesNotExistExceptionMessage = Harmonogram '{0}' nie istnieje. -suppliedDateBeforeScheduleStartTimeExceptionMessage = Podana data jest wcześniejsza niż czas rozpoczęcia harmonogramu o {0} -suppliedDateAfterScheduleEndTimeExceptionMessage = Podana data jest późniejsza niż czas zakończenia harmonogramu o {0} -noSemaphoreFoundExceptionMessage = Nie znaleziono semaforu o nazwie '{0}' -noLogicPassedForRouteExceptionMessage = Brak logiki przekazanej dla trasy: {0} -noPathSuppliedForStaticRouteExceptionMessage = [{0}]: Brak dostarczonej ścieżki dla trasy statycznej. -sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: Dostarczona ścieżka źródłowa dla trasy statycznej nie istnieje: {2} -noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: Brak logiki przekazanej. -moduleDoesNotContainFunctionExceptionMessage = Moduł {0} nie zawiera funkcji {1} do konwersji na trasę. -pageNameShouldBeAlphaNumericExceptionMessage = Nazwa strony powinna być poprawną wartością alfanumeryczną: {0} -filesHaveChangedMessage = Następujące pliki zostały zmienione: -multipleEndpointsForGuiMessage = Zdefiniowano wiele punktów końcowych, tylko pierwszy będzie używany dla GUI. -openingGuiMessage = Otwieranie GUI. -listeningOnEndpointsMessage = Nasłuchiwanie na następujących {0} punktach końcowych [{1} wątków]: -specificationMessage = Specyfikacja -documentationMessage = Dokumentacja -restartingServerMessage = Restartowanie serwera... -doneMessage = Gotowe -deprecatedTitleVersionDescriptionWarningMessage = OSTRZEŻENIE: Tytuł, Wersja i Opis w 'Enable-PodeOpenApi' są przestarzałe. Proszę użyć 'Add-PodeOAInfo' zamiast tego. -undefinedOpenApiReferencesMessage = Niezdefiniowane odwołania OpenAPI: -definitionTagMessage = Definicja {0}: -openApiGenerationDocumentErrorMessage = Błąd generowania dokumentu OpenAPI: -infoTitleMandatoryMessage = info.title jest obowiązkowe. -infoVersionMandatoryMessage = info.version jest obowiązkowe. -missingComponentsMessage = Brakujące komponenty -openApiInfoMessage = Informacje OpenAPI: -serverLoopingMessage = Pętla serwera co {0} sekund -iisShutdownMessage = (Zamykanie IIS) -terminatingMessage = Kończenie... -eolPowerShellWarningMessage = [OSTRZEŻENIE] Pode {0} nie był testowany na PowerShell {1}, ponieważ jest to wersja EOL. -untestedPowerShellVersionWarningMessage = [OSTRZEŻENIE] Pode {0} nie był testowany na PowerShell {1}, ponieważ nie był dostępny, gdy Pode został wydany. -'@ \ No newline at end of file +@{ + schemaValidationRequiresPowerShell610ExceptionMessage = 'Walidacja schematu wymaga wersji PowerShell 6.1.0 lub nowszej.' + pathOrScriptBlockRequiredExceptionMessage = 'Ścieżka lub ScriptBlock są wymagane do pozyskiwania wartości dostępu niestandardowego.' + operationIdMustBeUniqueForArrayExceptionMessage = 'OperationID: {0} musi być unikalny i nie może być zastosowany do tablicy.' + endpointNotDefinedForRedirectingExceptionMessage = "Nie zdefiniowano punktu końcowego o nazwie '{0}' do przekierowania." + filesHaveChangedMessage = 'Następujące pliki zostały zmienione:' + iisAspnetcoreTokenMissingExceptionMessage = 'Brakujący IIS ASPNETCORE_TOKEN.' + minValueGreaterThanMaxExceptionMessage = 'Minimalna wartość dla {0} nie powinna być większa od maksymalnej wartości.' + noLogicPassedForRouteExceptionMessage = 'Brak logiki przekazanej dla trasy: {0}' + scriptPathDoesNotExistExceptionMessage = 'Ścieżka skryptu nie istnieje: {0}' + mutexAlreadyExistsExceptionMessage = "Muteks o nazwie '{0}' już istnieje." + listeningOnEndpointsMessage = 'Nasłuchiwanie na następujących {0} punktach końcowych [{1} wątków]:' + unsupportedFunctionInServerlessContextExceptionMessage = 'Funkcja {0} nie jest obsługiwana w kontekście bezserwerowym.' + expectedNoJwtSignatureSuppliedExceptionMessage = 'Oczekiwano, że nie zostanie dostarczony żaden podpis JWT.' + secretAlreadyMountedExceptionMessage = "Tajemnica o nazwie '{0}' została już zamontowana." + failedToAcquireLockExceptionMessage = 'Nie udało się uzyskać blokady na obiekcie.' + noPathSuppliedForStaticRouteExceptionMessage = '[{0}]: Brak dostarczonej ścieżki dla trasy statycznej.' + invalidHostnameSuppliedExceptionMessage = 'Podano nieprawidłową nazwę hosta: {0}' + authMethodAlreadyDefinedExceptionMessage = 'Metoda uwierzytelniania już zdefiniowana: {0}' + csrfCookieRequiresSecretExceptionMessage = "Podczas używania ciasteczek do CSRF, wymagany jest Sekret. Możesz dostarczyć Sekret lub ustawić globalny sekret dla ciasteczek - (Set-PodeCookieSecret '' -Global)" + nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = 'Aby utworzyć trasę strony, wymagany jest niepusty ScriptBlock.' + noPropertiesMutuallyExclusiveExceptionMessage = "Parametr 'NoProperties' jest wzajemnie wykluczający się z 'Properties', 'MinProperties' i 'MaxProperties'." + incompatiblePodeDllExceptionMessage = 'Istnieje niekompatybilna wersja Pode.DLL {0}. Wymagana wersja {1}. Otwórz nową sesję Powershell/pwsh i spróbuj ponownie.' + accessMethodDoesNotExistExceptionMessage = 'Metoda dostępu nie istnieje: {0}.' + scheduleAlreadyDefinedExceptionMessage = '[Harmonogram] {0}: Harmonogram już zdefiniowany.' + secondsValueCannotBeZeroOrLessExceptionMessage = 'Wartość sekund nie może być 0 lub mniejsza dla {0}' + pathToLoadNotFoundExceptionMessage = 'Ścieżka do załadowania {0} nie znaleziona: {1}' + failedToImportModuleExceptionMessage = 'Nie udało się zaimportować modułu: {0}' + endpointNotExistExceptionMessage = "Punkt końcowy z protokołem '{0}' i adresem '{1}' lub adresem lokalnym '{2}' nie istnieje." + terminatingMessage = 'Kończenie...' + noCommandsSuppliedToConvertToRoutesExceptionMessage = 'Nie dostarczono żadnych poleceń do konwersji na trasy.' + invalidTaskTypeExceptionMessage = 'Typ zadania jest nieprawidłowy, oczekiwano [System.Threading.Tasks.Task] lub [hashtable]' + alreadyConnectedToWebSocketExceptionMessage = "Już połączono z WebSocket o nazwie '{0}'" + crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = 'Sprawdzanie końca wiadomości CRLF jest obsługiwane tylko na punktach końcowych TCP.' + testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = "'Test-PodeOAComponentSchema' musi być włączony przy użyciu 'Enable-PodeOpenApi -EnableSchemaValidation'" + adModuleNotInstalledExceptionMessage = 'Moduł Active Directory nie jest zainstalowany.' + cronExpressionInvalidExceptionMessage = 'Wyrażenie Cron powinno składać się tylko z 5 części: {0}' + noSessionToSetOnResponseExceptionMessage = 'Brak dostępnej sesji do ustawienia odpowiedzi.' + valueOutOfRangeExceptionMessage = "Wartość '{0}' dla {1} jest nieprawidłowa, powinna być pomiędzy {2} a {3}" + loggingMethodAlreadyDefinedExceptionMessage = 'Metoda logowania już zdefiniowana: {0}' + noSecretForHmac256ExceptionMessage = 'Nie podano tajemnicy dla haszowania HMAC256.' + eolPowerShellWarningMessage = '[OSTRZEŻENIE] Pode {0} nie był testowany na PowerShell {1}, ponieważ jest to wersja EOL.' + runspacePoolFailedToLoadExceptionMessage = '{0} Nie udało się załadować RunspacePool.' + noEventRegisteredExceptionMessage = 'Brak zarejestrowanego wydarzenia {0}: {1}' + scheduleCannotHaveNegativeLimitExceptionMessage = '[Harmonogram] {0}: Nie może mieć ujemnego limitu.' + openApiRequestStyleInvalidForParameterExceptionMessage = 'Styl żądania OpenApi nie może być {0} dla parametru {1}.' + openApiDocumentNotCompliantExceptionMessage = 'Dokument OpenAPI nie jest zgodny.' + taskDoesNotExistExceptionMessage = "Zadanie '{0}' nie istnieje." + scopedVariableNotFoundExceptionMessage = 'Nie znaleziono zmiennej zakresu: {0}' + sessionsRequiredForCsrfExceptionMessage = 'Sesje są wymagane do używania CSRF, chyba że chcesz używać ciasteczek.' + nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = 'Metoda rejestrowania wymaga niepustego ScriptBlock.' + credentialsPassedWildcardForHeadersLiteralExceptionMessage = 'Gdy przekazywane są dane uwierzytelniające, symbol wieloznaczny * dla nagłówków będzie traktowany jako dosłowny ciąg znaków, a nie symbol wieloznaczny.' + podeNotInitializedExceptionMessage = 'Pode nie został zainicjowany.' + multipleEndpointsForGuiMessage = 'Zdefiniowano wiele punktów końcowych, tylko pierwszy będzie używany dla GUI.' + operationIdMustBeUniqueExceptionMessage = 'OperationID: {0} musi być unikalny.' + invalidJsonJwtExceptionMessage = 'Nieprawidłowa wartość JSON znaleziona w JWT' + noAlgorithmInJwtHeaderExceptionMessage = 'Brak dostarczonego algorytmu w nagłówku JWT.' + openApiVersionPropertyMandatoryExceptionMessage = 'Właściwość wersji OpenApi jest obowiązkowa.' + limitValueCannotBeZeroOrLessExceptionMessage = 'Wartość limitu nie może być 0 lub mniejsza dla {0}' + timerDoesNotExistExceptionMessage = "Timer '{0}' nie istnieje." + openApiGenerationDocumentErrorMessage = 'Błąd generowania dokumentu OpenAPI:' + routeAlreadyContainsCustomAccessExceptionMessage = "Trasa '[{0}] {1}' już zawiera dostęp niestandardowy z nazwą '{2}'" + maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = 'Maksymalna liczba jednoczesnych wątków WebSocket nie może być mniejsza niż minimum {0}, ale otrzymano: {1}' + middlewareAlreadyDefinedExceptionMessage = '[Middleware] {0}: Middleware już zdefiniowany.' + invalidAtomCharacterExceptionMessage = 'Nieprawidłowy znak atomu: {0}' + cacheStorageNotFoundForRetrieveExceptionMessage = "Nie znaleziono magazynu pamięci podręcznej o nazwie '{0}' podczas próby pobrania elementu z pamięci podręcznej '{1}'." + headerMustHaveNameInEncodingContextExceptionMessage = 'Nagłówek musi mieć nazwę, gdy jest używany w kontekście kodowania.' + moduleDoesNotContainFunctionExceptionMessage = 'Moduł {0} nie zawiera funkcji {1} do konwersji na trasę.' + pathToIconForGuiDoesNotExistExceptionMessage = 'Ścieżka do ikony dla GUI nie istnieje: {0}' + noTitleSuppliedForPageExceptionMessage = 'Nie dostarczono tytułu dla strony {0}.' + certificateSuppliedForNonHttpsWssEndpointExceptionMessage = 'Certyfikat dostarczony dla punktu końcowego innego niż HTTPS/WSS.' + cannotLockNullObjectExceptionMessage = 'Nie można zablokować pustego obiektu.' + showPodeGuiOnlyAvailableOnWindowsExceptionMessage = 'Show-PodeGui jest obecnie dostępne tylko dla Windows PowerShell i PowerShell 7+ w Windows.' + unlockSecretButNoScriptBlockExceptionMessage = 'Podano tajemnicę odblokowania dla niestandardowego typu skarbca, ale nie podano ScriptBlock odblokowania.' + invalidIpAddressExceptionMessage = 'Podany adres IP jest nieprawidłowy: {0}' + maxDaysInvalidExceptionMessage = 'MaxDays musi wynosić 0 lub więcej, ale otrzymano: {0}' + noRemoveScriptBlockForVaultExceptionMessage = "Nie podano ScriptBlock dla usuwania tajemnic ze skarbca '{0}'" + noSecretExpectedForNoSignatureExceptionMessage = 'Nie oczekiwano podania tajemnicy dla braku podpisu.' + noCertificateFoundExceptionMessage = "Nie znaleziono certyfikatu w {0}{1} dla '{2}'" + minValueInvalidExceptionMessage = "Minimalna wartość '{0}' dla {1} jest nieprawidłowa, powinna być większa lub równa {2}" + accessRequiresAuthenticationOnRoutesExceptionMessage = 'Dostęp wymaga uwierzytelnienia na trasach.' + noSecretForHmac384ExceptionMessage = 'Nie podano tajemnicy dla haszowania HMAC384.' + windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = 'Wsparcie lokalnego uwierzytelniania Windows jest tylko dla Windows.' + definitionTagNotDefinedExceptionMessage = 'Etykieta definicji {0} nie jest zdefiniowana.' + noComponentInDefinitionExceptionMessage = 'Brak komponentu typu {0} o nazwie {1} dostępnego w definicji {2}.' + noSmtpHandlersDefinedExceptionMessage = 'Nie zdefiniowano żadnych obsługujących SMTP.' + sessionMiddlewareAlreadyInitializedExceptionMessage = 'Middleware sesji został już zainicjowany.' + reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = "Funkcja wielokrotnego użytku 'pathItems' nie jest dostępna w OpenAPI v3.0." + wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = 'Symbol wieloznaczny * dla nagłówków jest niezgodny z przełącznikiem AutoHeaders.' + noDataForFileUploadedExceptionMessage = "Brak danych dla pliku '{0}' przesłanego w żądaniu." + sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = 'SSE można skonfigurować tylko na żądaniach z wartością nagłówka Accept równą text/event-stream.' + noSessionAvailableToSaveExceptionMessage = 'Brak dostępnej sesji do zapisania.' + pathParameterRequiresRequiredSwitchExceptionMessage = "Jeśli lokalizacja parametru to 'Path', przełącznik 'Required' jest obowiązkowy." + noOpenApiUrlSuppliedExceptionMessage = 'Nie dostarczono adresu URL OpenAPI dla {0}.' + maximumConcurrentSchedulesInvalidExceptionMessage = 'Maksymalna liczba równoczesnych harmonogramów musi wynosić >=1, ale otrzymano: {0}' + snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = 'Snapiny są obsługiwane tylko w Windows PowerShell.' + eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = 'Rejestrowanie w Podglądzie zdarzeń jest obsługiwane tylko w systemie Windows.' + parametersMutuallyExclusiveExceptionMessage = "Parametry '{0}' i '{1}' są wzajemnie wykluczające się." + pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = 'Funkcja PathItems nie jest obsługiwana w OpenAPI v3.0.x' + openApiParameterRequiresNameExceptionMessage = 'Parametr OpenApi wymaga podania nazwy.' + maximumConcurrentTasksLessThanMinimumExceptionMessage = 'Maksymalna liczba jednoczesnych zadań nie może być mniejsza niż minimum {0}, ale otrzymano: {1}' + noSemaphoreFoundExceptionMessage = "Nie znaleziono semaforu o nazwie '{0}'" + singleValueForIntervalExceptionMessage = 'Możesz podać tylko jedną wartość {0} podczas korzystania z interwałów.' + jwtNotYetValidExceptionMessage = 'JWT jeszcze nie jest ważny.' + verbAlreadyDefinedForUrlExceptionMessage = '[Czasownik] {0}: Już zdefiniowane dla {1}' + noSecretNamedMountedExceptionMessage = "Nie zamontowano tajemnicy o nazwie '{0}'." + moduleOrVersionNotFoundExceptionMessage = 'Nie znaleziono modułu lub wersji na {0}: {1}@{2}' + noScriptBlockSuppliedExceptionMessage = 'Nie podano ScriptBlock.' + noSecretVaultRegisteredExceptionMessage = "Nie zarejestrowano Skarbca Tajemnic o nazwie '{0}'." + nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = 'Nazwa jest wymagana dla punktu końcowego, jeśli podano parametr RedirectTo.' + openApiLicenseObjectRequiresNameExceptionMessage = "Obiekt OpenAPI 'license' wymaga właściwości 'name'. Użyj parametru -LicenseName." + sourcePathDoesNotExistForStaticRouteExceptionMessage = '[{0})] {1}: Dostarczona ścieżka źródłowa dla trasy statycznej nie istnieje: {2}' + noNameForWebSocketDisconnectExceptionMessage = 'Nie podano nazwy dla rozłączenia WebSocket.' + certificateExpiredExceptionMessage = "Certyfikat '{0}' wygasł: {1}" + secretVaultUnlockExpiryDateInPastExceptionMessage = 'Data wygaśnięcia odblokowania Skarbca tajemnic jest w przeszłości (UTC): {0}' + invalidExceptionTypeExceptionMessage = 'Wyjątek jest nieprawidłowego typu, powinien być WebException lub HttpRequestException, ale otrzymano: {0}' + invalidSecretValueTypeExceptionMessage = 'Wartość tajemnicy jest nieprawidłowego typu. Oczekiwane typy: String, SecureString, HashTable, Byte[] lub PSCredential. Ale otrzymano: {0}' + explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = 'Tryb TLS Explicity jest obsługiwany tylko na punktach końcowych SMTPS i TCPS.' + discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = "Parametr 'DiscriminatorMapping' może być używany tylko wtedy, gdy jest obecna właściwość 'DiscriminatorProperty'." + scriptErrorExceptionMessage = "Błąd '{0}' w skrypcie {1} {2} (linia {3}) znak {4} podczas wykonywania {5} na {6} obiekt '{7}' Klasa: {8} Klasa bazowa: {9}" + cannotSupplyIntervalForQuarterExceptionMessage = 'Nie można dostarczyć wartości interwału dla każdego kwartału.' + scheduleEndTimeMustBeInFutureExceptionMessage = '[Harmonogram] {0}: Wartość EndTime musi być w przyszłości.' + invalidJwtSignatureSuppliedExceptionMessage = 'Dostarczono nieprawidłowy podpis JWT.' + noSetScriptBlockForVaultExceptionMessage = "Nie podano ScriptBlock dla aktualizacji/tworzenia tajemnic w skarbcu '{0}'" + accessMethodNotExistForMergingExceptionMessage = 'Metoda dostępu nie istnieje do scalania: {0}' + defaultAuthNotInListExceptionMessage = "Domyślne uwierzytelnianie '{0}' nie znajduje się na dostarczonej liście uwierzytelniania." + parameterHasNoNameExceptionMessage = "Parametr nie ma nazwy. Proszę nadać tej części nazwę za pomocą parametru 'Name'." + methodPathAlreadyDefinedForUrlExceptionMessage = '[{0}] {1}: Już zdefiniowane dla {2}' + fileWatcherAlreadyDefinedExceptionMessage = "Obserwator plików o nazwie '{0}' został już zdefiniowany." + noServiceHandlersDefinedExceptionMessage = 'Nie zdefiniowano żadnych obsługujących usług.' + secretRequiredForCustomSessionStorageExceptionMessage = 'Podczas korzystania z niestandardowego przechowywania sesji wymagany jest sekret.' + secretManagementModuleNotInstalledExceptionMessage = 'Moduł Microsoft.PowerShell.SecretManagement nie jest zainstalowany.' + noPathSuppliedForRouteExceptionMessage = 'Nie podano ścieżki dla trasy.' + validationOfAnyOfSchemaNotSupportedExceptionMessage = "Walidacja schematu, który zawiera 'anyof', nie jest obsługiwana." + iisAuthSupportIsForWindowsOnlyExceptionMessage = 'Wsparcie uwierzytelniania IIS jest tylko dla Windows.' + oauth2InnerSchemeInvalidExceptionMessage = 'OAuth2 InnerScheme może być tylko jednym z dwóch: Basic lub Form, ale otrzymano: {0}' + noRoutePathSuppliedForPageExceptionMessage = 'Nie dostarczono ścieżki trasy dla strony {0}.' + cacheStorageNotFoundForExistsExceptionMessage = "Nie znaleziono magazynu pamięci podręcznej o nazwie '{0}' podczas próby sprawdzenia, czy element w pamięci podręcznej '{1}' istnieje." + handlerAlreadyDefinedExceptionMessage = '[{0}] {1}: Handler już zdefiniowany.' + sessionsNotConfiguredExceptionMessage = 'Sesje nie zostały skonfigurowane.' + propertiesTypeObjectAssociationExceptionMessage = 'Tylko właściwości typu Object mogą być powiązane z {0}.' + sessionsRequiredForSessionPersistentAuthExceptionMessage = 'Sesje są wymagane do używania trwałego uwierzytelniania sesji.' + invalidPathWildcardOrDirectoryExceptionMessage = 'Podana ścieżka nie może być symbolem wieloznacznym ani katalogiem: {0}' + accessMethodAlreadyDefinedExceptionMessage = 'Metoda dostępu już zdefiniowana: {0}' + parametersValueOrExternalValueMandatoryExceptionMessage = "Parametry 'Value' lub 'ExternalValue' są obowiązkowe." + maximumConcurrentTasksInvalidExceptionMessage = 'Maksymalna liczba jednoczesnych zadań musi wynosić >=1, ale otrzymano: {0}' + cannotCreatePropertyWithoutTypeExceptionMessage = 'Nie można utworzyć właściwości, ponieważ nie zdefiniowano typu.' + authMethodNotExistForMergingExceptionMessage = 'Metoda uwierzytelniania nie istnieje dla scalania: {0}' + maxValueInvalidExceptionMessage = "Maksymalna wartość '{0}' dla {1} jest nieprawidłowa, powinna być mniejsza lub równa {2}" + endpointAlreadyDefinedExceptionMessage = "Punkt końcowy o nazwie '{0}' został już zdefiniowany." + eventAlreadyRegisteredExceptionMessage = 'Wydarzenie {0} już zarejestrowane: {1}' + parameterNotSuppliedInRequestExceptionMessage = "Parametr o nazwie '{0}' nie został dostarczony w żądaniu lub nie ma dostępnych danych." + cacheStorageNotFoundForSetExceptionMessage = "Nie znaleziono magazynu pamięci podręcznej o nazwie '{0}' podczas próby ustawienia elementu w pamięci podręcznej '{1}'." + methodPathAlreadyDefinedExceptionMessage = '[{0}] {1}: Już zdefiniowane.' + errorLoggingAlreadyEnabledExceptionMessage = 'Rejestrowanie błędów jest już włączone.' + valueForUsingVariableNotFoundExceptionMessage = "Nie można znaleźć wartości dla '`$using:{0}'." + rapidPdfDoesNotSupportOpenApi31ExceptionMessage = 'Narzędzie do dokumentów RapidPdf nie obsługuje OpenAPI 3.1' + oauth2ClientSecretRequiredExceptionMessage = 'OAuth2 wymaga tajemnicy klienta, gdy nie używa się PKCE.' + invalidBase64JwtExceptionMessage = 'Nieprawidłowa wartość zakodowana w Base64 znaleziona w JWT' + noSessionToCalculateDataHashExceptionMessage = 'Brak dostępnej sesji do obliczenia skrótu danych.' + cacheStorageNotFoundForRemoveExceptionMessage = "Nie znaleziono magazynu pamięci podręcznej o nazwie '{0}' podczas próby usunięcia elementu z pamięci podręcznej '{1}'." + csrfMiddlewareNotInitializedExceptionMessage = 'Middleware CSRF nie został zainicjowany.' + infoTitleMandatoryMessage = 'info.title jest obowiązkowe.' + typeCanOnlyBeAssociatedWithObjectExceptionMessage = 'Typ {0} może być powiązany tylko z obiektem.' + userFileDoesNotExistExceptionMessage = 'Plik użytkownika nie istnieje: {0}' + routeParameterNeedsValidScriptblockExceptionMessage = 'Parametr trasy wymaga prawidłowego, niepustego ScriptBlock.' + nextTriggerCalculationErrorExceptionMessage = 'Wygląda na to, że coś poszło nie tak przy próbie obliczenia następnej daty i godziny wyzwalacza: {0}' + cannotLockValueTypeExceptionMessage = 'Nie można zablokować [ValueTypes].' + failedToCreateOpenSslCertExceptionMessage = 'Nie udało się utworzyć certyfikatu openssl: {0}' + jwtExpiredExceptionMessage = 'JWT wygasł.' + openingGuiMessage = 'Otwieranie GUI.' + multiTypePropertiesRequireOpenApi31ExceptionMessage = 'Właściwości wielotypowe wymagają wersji OpenApi 3.1 lub wyższej.' + noNameForWebSocketRemoveExceptionMessage = 'Nie podano nazwy dla usunięcia WebSocket.' + maxSizeInvalidExceptionMessage = 'MaxSize musi wynosić 0 lub więcej, ale otrzymano: {0}' + iisShutdownMessage = '(Zamykanie IIS)' + cannotUnlockValueTypeExceptionMessage = 'Nie można odblokować [ValueTypes].' + noJwtSignatureForAlgorithmExceptionMessage = 'Nie dostarczono podpisu JWT dla {0}.' + maximumConcurrentWebSocketThreadsInvalidExceptionMessage = 'Maksymalna liczba jednoczesnych wątków WebSocket musi wynosić >=1, ale otrzymano: {0}' + acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = 'Komunikat potwierdzenia jest obsługiwany tylko na punktach końcowych SMTP i TCP.' + failedToConnectToUrlExceptionMessage = 'Nie udało się połączyć z URL: {0}' + failedToAcquireMutexOwnershipExceptionMessage = 'Nie udało się przejąć własności muteksu. Nazwa muteksu: {0}' + sessionsRequiredForOAuth2WithPKCEExceptionMessage = 'Sesje są wymagane do używania OAuth2 z PKCE' + failedToConnectToWebSocketExceptionMessage = 'Nie udało się połączyć z WebSocket: {0}' + unsupportedObjectExceptionMessage = 'Obiekt nieobsługiwany' + failedToParseAddressExceptionMessage = "Nie udało się przeanalizować '{0}' jako poprawnego adresu IP/Host:Port" + mustBeRunningWithAdminPrivilegesExceptionMessage = 'Musisz mieć uprawnienia administratora, aby nasłuchiwać na adresach innych niż localhost.' + specificationMessage = 'Specyfikacja' + cacheStorageNotFoundForClearExceptionMessage = "Nie znaleziono magazynu pamięci podręcznej o nazwie '{0}' podczas próby wyczyszczenia pamięci podręcznej." + restartingServerMessage = 'Restartowanie serwera...' + cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = "Nie można dostarczyć interwału, gdy parametr 'Every' jest ustawiony na None." + unsupportedJwtAlgorithmExceptionMessage = 'Algorytm JWT nie jest obecnie obsługiwany: {0}' + websocketsNotConfiguredForSignalMessagesExceptionMessage = 'WebSockets nie zostały skonfigurowane do wysyłania wiadomości sygnałowych.' + invalidLogicTypeInHashtableMiddlewareExceptionMessage = 'Dostarczone Middleware typu Hashtable ma nieprawidłowy typ logiki. Oczekiwano ScriptBlock, ale otrzymano: {0}' + maximumConcurrentSchedulesLessThanMinimumExceptionMessage = 'Maksymalna liczba równoczesnych harmonogramów nie może być mniejsza niż minimalna liczba {0}, ale otrzymano: {1}' + failedToAcquireSemaphoreOwnershipExceptionMessage = 'Nie udało się przejąć własności semaforu. Nazwa semaforu: {0}' + propertiesParameterWithoutNameExceptionMessage = 'Parametry Properties nie mogą być używane, jeśli właściwość nie ma nazwy.' + customSessionStorageMethodNotImplementedExceptionMessage = "Niestandardowe przechowywanie sesji nie implementuje wymaganego ''{0}()'' sposobu." + authenticationMethodDoesNotExistExceptionMessage = 'Metoda uwierzytelniania nie istnieje: {0}' + webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = 'Funkcja Webhooks nie jest obsługiwana w OpenAPI v3.0.x' + invalidContentTypeForSchemaExceptionMessage = "Nieprawidłowy 'content-type' znaleziony w schemacie: {0}" + noUnlockScriptBlockForVaultExceptionMessage = "Nie podano ScriptBlock odblokowania dla odblokowania skarbca '{0}'" + definitionTagMessage = 'Definicja {0}:' + failedToOpenRunspacePoolExceptionMessage = 'Nie udało się otworzyć RunspacePool: {0}' + verbNoLogicPassedExceptionMessage = '[Czasownik] {0}: Nie przekazano logiki' + noMutexFoundExceptionMessage = "Nie znaleziono muteksu o nazwie '{0}'." + documentationMessage = 'Dokumentacja' + timerAlreadyDefinedExceptionMessage = '[Timer] {0}: Timer już zdefiniowany.' + invalidPortExceptionMessage = 'Port nie może być ujemny: {0}' + viewsFolderNameAlreadyExistsExceptionMessage = 'Nazwa folderu Widoków już istnieje: {0}' + noNameForWebSocketResetExceptionMessage = 'Nie podano nazwy dla resetowania WebSocket.' + mergeDefaultAuthNotInListExceptionMessage = "Uwierzytelnianie MergeDefault '{0}' nie znajduje się na dostarczonej liście uwierzytelniania." + descriptionRequiredExceptionMessage = 'Wymagany jest opis.' + pageNameShouldBeAlphaNumericExceptionMessage = 'Nazwa strony powinna być poprawną wartością alfanumeryczną: {0}' + defaultValueNotBooleanOrEnumExceptionMessage = 'Wartość domyślna nie jest typu boolean i nie należy do enum.' + openApiComponentSchemaDoesNotExistExceptionMessage = 'Schemat komponentu OpenApi {0} nie istnieje.' + timerParameterMustBeGreaterThanZeroExceptionMessage = '[Timer] {0}: {1} musi być większy od 0.' + taskTimedOutExceptionMessage = 'Zadanie przekroczyło limit czasu po {0}ms.' + scheduleStartTimeAfterEndTimeExceptionMessage = "[Harmonogram] {0}: Nie może mieć 'StartTime' po 'EndTime'." + infoVersionMandatoryMessage = 'info.version jest obowiązkowe.' + cannotUnlockNullObjectExceptionMessage = 'Nie można odblokować pustego obiektu.' + nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = 'Dla niestandardowego schematu uwierzytelniania wymagany jest niepusty ScriptBlock.' + validationOfOneOfSchemaNotSupportedExceptionMessage = "Walidacja schematu, który zawiera 'oneof', nie jest obsługiwana." + routeParameterCannotBeNullExceptionMessage = "Parametr 'Route' nie może być pusty." + cacheStorageAlreadyExistsExceptionMessage = "Magazyn pamięci podręcznej o nazwie '{0}' już istnieje." + loggingMethodRequiresValidScriptBlockExceptionMessage = "Dostarczona metoda wyjściowa dla metody logowania '{0}' wymaga poprawnego ScriptBlock." + scopedVariableAlreadyDefinedExceptionMessage = 'Zmienna z zakresem już zdefiniowana: {0}' + oauth2RequiresAuthorizeUrlExceptionMessage = 'OAuth2 wymaga podania URL autoryzacji' + pathNotExistExceptionMessage = 'Ścieżka nie istnieje: {0}' + noDomainServerNameForWindowsAdAuthExceptionMessage = 'Nie podano nazwy serwera domeny dla uwierzytelniania Windows AD' + suppliedDateAfterScheduleEndTimeExceptionMessage = 'Podana data jest późniejsza niż czas zakończenia harmonogramu o {0}' + wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = 'Symbol wieloznaczny * dla metod jest niezgodny z przełącznikiem AutoMethods.' + cannotSupplyIntervalForYearExceptionMessage = 'Nie można dostarczyć wartości interwału dla każdego roku.' + missingComponentsMessage = 'Brakujące komponenty' + invalidStrictTransportSecurityDurationExceptionMessage = 'Nieprawidłowy czas trwania Strict-Transport-Security: {0}. Powinien być większy niż 0.' + noSecretForHmac512ExceptionMessage = 'Nie podano tajemnicy dla haszowania HMAC512.' + daysInMonthExceededExceptionMessage = '{0} ma tylko {1} dni, ale podano {2}.' + nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = 'Metoda niestandardowego rejestrowania wymaga niepustego ScriptBlock.' + encodingAttributeOnlyAppliesToMultipartExceptionMessage = 'Atrybut kodowania dotyczy tylko ciał żądania typu multipart i application/x-www-form-urlencoded.' + suppliedDateBeforeScheduleStartTimeExceptionMessage = 'Podana data jest wcześniejsza niż czas rozpoczęcia harmonogramu o {0}' + unlockSecretRequiredExceptionMessage = "Właściwość 'UnlockSecret' jest wymagana przy używaniu Microsoft.PowerShell.SecretStore" + noLogicPassedForMethodRouteExceptionMessage = '[{0}] {1}: Brak logiki przekazanej.' + bodyParserAlreadyDefinedForContentTypeExceptionMessage = 'Parser treści dla typu zawartości {0} jest już zdefiniowany.' + invalidJwtSuppliedExceptionMessage = 'Dostarczono nieprawidłowy JWT.' + sessionsRequiredForFlashMessagesExceptionMessage = 'Sesje są wymagane do używania wiadomości Flash.' + outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = 'Podana metoda wyjściowa do rejestrowania żądań wymaga prawidłowego ScriptBlock.' + semaphoreAlreadyExistsExceptionMessage = "Semafor o nazwie '{0}' już istnieje." + invalidJwtHeaderAlgorithmSuppliedExceptionMessage = 'Dostarczono nieprawidłowy algorytm nagłówka JWT.' + oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = "Dostawca OAuth2 nie obsługuje typu 'password' wymaganego przez InnerScheme." + invalidAliasFoundExceptionMessage = 'Znaleziono nieprawidłowy alias {0}: {1}' + scheduleDoesNotExistExceptionMessage = "Harmonogram '{0}' nie istnieje." + accessMethodNotExistExceptionMessage = 'Metoda dostępu nie istnieje: {0}' + oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = "Dostawca OAuth2 nie obsługuje typu odpowiedzi 'code'." + untestedPowerShellVersionWarningMessage = '[OSTRZEŻENIE] Pode {0} nie był testowany na PowerShell {1}, ponieważ nie był dostępny, gdy Pode został wydany.' + secretVaultAlreadyRegisteredAutoImportExceptionMessage = "Skarbiec z nazwą '{0}' został już zarejestrowany podczas automatycznego importowania skarbców." + schemeRequiresValidScriptBlockExceptionMessage = "Dostarczony schemat dla walidatora uwierzytelniania '{0}' wymaga ważnego ScriptBlock." + serverLoopingMessage = 'Pętla serwera co {0} sekund' + certificateThumbprintsNameSupportedOnWindowsExceptionMessage = 'Odciski palców/nazwa certyfikatu są obsługiwane tylko w systemie Windows.' + sseConnectionNameRequiredExceptionMessage = "Wymagana jest nazwa połączenia SSE, z -Name lub $`$WebEvent.Sse.Name" + invalidMiddlewareTypeExceptionMessage = 'Jeden z dostarczonych Middleware jest nieprawidłowego typu. Oczekiwano ScriptBlock lub Hashtable, ale otrzymano: {0}' + noSecretForJwtSignatureExceptionMessage = 'Nie podano tajemnicy dla podpisu JWT.' + modulePathDoesNotExistExceptionMessage = 'Ścieżka modułu nie istnieje: {0}' + taskAlreadyDefinedExceptionMessage = '[Zadanie] {0}: Zadanie już zdefiniowane.' + verbAlreadyDefinedExceptionMessage = '[Czasownik] {0}: Już zdefiniowane' + clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = 'Certyfikaty klienta są obsługiwane tylko na punktach końcowych HTTPS.' + endpointNameNotExistExceptionMessage = "Punkt końcowy o nazwie '{0}' nie istnieje." + middlewareNoLogicSuppliedExceptionMessage = '[Middleware]: Nie dostarczono logiki w ScriptBlock.' + scriptBlockRequiredForMergingUsersExceptionMessage = 'Wymagany jest ScriptBlock do scalania wielu uwierzytelnionych użytkowników w jeden obiekt, gdy opcja Valid to All.' + secretVaultAlreadyRegisteredExceptionMessage = "Skarbiec tajemnic o nazwie '{0}' został już zarejestrowany{1}." + deprecatedTitleVersionDescriptionWarningMessage = "OSTRZEŻENIE: Tytuł, Wersja i Opis w 'Enable-PodeOpenApi' są przestarzałe. Proszę użyć 'Add-PodeOAInfo' zamiast tego." + undefinedOpenApiReferencesMessage = 'Niezdefiniowane odwołania OpenAPI:' + doneMessage = 'Gotowe' + swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = 'Ta wersja Swagger-Editor nie obsługuje OpenAPI 3.1' + durationMustBeZeroOrGreaterExceptionMessage = 'Czas trwania musi wynosić 0 lub więcej, ale otrzymano: {0}s' + viewsPathDoesNotExistExceptionMessage = 'Ścieżka do Widoków nie istnieje: {0}' + discriminatorIncompatibleWithAllOfExceptionMessage = "Parametr 'Discriminator' jest niezgodny z 'allOf'." + noNameForWebSocketSendMessageExceptionMessage = 'Nie podano nazwy dla wysłania wiadomości do WebSocket.' + hashtableMiddlewareNoLogicExceptionMessage = 'Dostarczone Middleware typu Hashtable nie ma zdefiniowanej logiki.' + openApiInfoMessage = 'Informacje OpenAPI:' + invalidSchemeForAuthValidatorExceptionMessage = "Dostarczony schemat '{0}' dla walidatora uwierzytelniania '{1}' wymaga ważnego ScriptBlock." + sseFailedToBroadcastExceptionMessage = 'SSE nie udało się przesłać z powodu zdefiniowanego poziomu przesyłania SSE dla {0}: {1}' + adModuleWindowsOnlyExceptionMessage = 'Moduł Active Directory jest dostępny tylko w systemie Windows.' + requestLoggingAlreadyEnabledExceptionMessage = 'Rejestrowanie żądań jest już włączone.' + invalidAccessControlMaxAgeDurationExceptionMessage = 'Podano nieprawidłowy czas trwania Access-Control-Max-Age: {0}. Powinien być większy niż 0.' +} + diff --git a/src/Locales/pt/Pode.psd1 b/src/Locales/pt/Pode.psd1 index 1d3967d70..a2572da09 100644 --- a/src/Locales/pt/Pode.psd1 +++ b/src/Locales/pt/Pode.psd1 @@ -1,284 +1,285 @@ -ConvertFrom-StringData -StringData @' -adModuleWindowsOnlyExceptionMessage = O módulo Active Directory está disponível apenas no Windows. -adModuleNotInstalledExceptionMessage = O módulo Active Directory não está instalado. -secretManagementModuleNotInstalledExceptionMessage = O módulo Microsoft.PowerShell.SecretManagement não está instalado. -secretVaultAlreadyRegisteredAutoImportExceptionMessage = Um Cofre de Segredos com o nome '{0}' já foi registrado durante a importação automática de Cofres de Segredos. -failedToOpenRunspacePoolExceptionMessage = Falha ao abrir o RunspacePool: {0} -cronExpressionInvalidExceptionMessage = A expressão Cron deve consistir apenas em 5 partes: {0} -invalidAliasFoundExceptionMessage = Alias {0} inválido encontrado: {1} -invalidAtomCharacterExceptionMessage = Caractere atômico inválido: {0} -minValueGreaterThanMaxExceptionMessage = O valor mínimo para {0} não deve ser maior que o valor máximo. -minValueInvalidExceptionMessage = O valor mínimo '{0}' para {1} é inválido, deve ser maior ou igual a {2} -maxValueInvalidExceptionMessage = O valor máximo '{0}' para {1} é inválido, deve ser menor ou igual a {2} -valueOutOfRangeExceptionMessage = O valor '{0}' para {1} é inválido, deve estar entre {2} e {3} -daysInMonthExceededExceptionMessage = {0} tem apenas {1} dias, mas {2} foi fornecido. -nextTriggerCalculationErrorExceptionMessage = Parece que algo deu errado ao tentar calcular a próxima data e hora do gatilho: {0} -incompatiblePodeDllExceptionMessage = Uma versão incompatível existente do Pode.DLL {0} está carregada. É necessária a versão {1}. Abra uma nova sessão do Powershell/pwsh e tente novamente. -endpointNotExistExceptionMessage = O ponto de extremidade com o protocolo '{0}' e endereço '{1}' ou endereço local '{2}' não existe. -endpointNameNotExistExceptionMessage = O ponto de extremidade com o nome '{0}' não existe. -failedToConnectToUrlExceptionMessage = Falha ao conectar ao URL: {0} -failedToParseAddressExceptionMessage = Falha ao analisar '{0}' como um endereço IP/Host:Port válido -invalidIpAddressExceptionMessage = O endereço IP fornecido é inválido: {0} -invalidPortExceptionMessage = A porta não pode ser negativa: {0} -pathNotExistExceptionMessage = O caminho não existe: {0} -noSecretForHmac256ExceptionMessage = Nenhum segredo fornecido para o hash HMAC256. -noSecretForHmac384ExceptionMessage = Nenhum segredo fornecido para o hash HMAC384. -noSecretForHmac512ExceptionMessage = Nenhum segredo fornecido para o hash HMAC512. -noSecretForJwtSignatureExceptionMessage = Nenhum segredo fornecido para a assinatura JWT. -noSecretExpectedForNoSignatureExceptionMessage = Não era esperado nenhum segredo para nenhuma assinatura. -unsupportedJwtAlgorithmExceptionMessage = O algoritmo JWT não é atualmente suportado: {0} -invalidBase64JwtExceptionMessage = Valor codificado Base64 inválido encontrado no JWT -invalidJsonJwtExceptionMessage = Valor JSON inválido encontrado no JWT -unsupportedFunctionInServerlessContextExceptionMessage = A função {0} não é suportada em um contexto serverless. -invalidPathWildcardOrDirectoryExceptionMessage = O caminho fornecido não pode ser um curinga ou um diretório: {0} -invalidExceptionTypeExceptionMessage = A exceção é de um tipo inválido, deve ser WebException ou HttpRequestException, mas foi obtido: {0} -pathToLoadNotFoundExceptionMessage = Caminho para carregar {0} não encontrado: {1} -singleValueForIntervalExceptionMessage = Você pode fornecer apenas um único valor {0} ao usar intervalos. -scriptErrorExceptionMessage = Erro '{0}' no script {1} {2} (linha {3}) caractere {4} executando {5} em {6} objeto '{7}' Classe: {8} ClasseBase: {9} -noScriptBlockSuppliedExceptionMessage = Nenhum ScriptBlock fornecido. -iisAspnetcoreTokenMissingExceptionMessage = IIS ASPNETCORE_TOKEN está ausente. -propertiesParameterWithoutNameExceptionMessage = Os parâmetros Properties não podem ser usados se a propriedade não tiver um nome. -multiTypePropertiesRequireOpenApi31ExceptionMessage = Propriedades de múltiplos tipos requerem a versão 3.1 ou superior do OpenApi. -openApiVersionPropertyMandatoryExceptionMessage = A propriedade da versão do OpenApi é obrigatória. -webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = O recurso Webhooks não é suportado no OpenAPI v3.0.x -authenticationMethodDoesNotExistExceptionMessage = O método de autenticação não existe: {0} -unsupportedObjectExceptionMessage = Objeto não suportado -validationOfAnyOfSchemaNotSupportedExceptionMessage = A validação de um esquema que inclui 'anyof' não é suportada. -validationOfOneOfSchemaNotSupportedExceptionMessage = A validação de um esquema que inclui 'oneof' não é suportada. -cannotCreatePropertyWithoutTypeExceptionMessage = Não é possível criar a propriedade porque nenhum tipo é definido. -headerMustHaveNameInEncodingContextExceptionMessage = O cabeçalho deve ter um nome quando usado em um contexto de codificação. -descriptionRequiredExceptionMessage = É necessária uma descrição. -openApiDocumentNotCompliantExceptionMessage = O documento OpenAPI não está em conformidade. -noComponentInDefinitionExceptionMessage = Nenhum componente do tipo {0} chamado {1} está disponível na definição {2}. -methodPathAlreadyDefinedExceptionMessage = [{0}] {1}: Já definido. -methodPathAlreadyDefinedForUrlExceptionMessage = [{0}] {1}: Já definido para {2} -invalidMiddlewareTypeExceptionMessage = Um dos Middlewares fornecidos é de um tipo inválido. Esperado ScriptBlock ou Hashtable, mas obtido: {0} -hashtableMiddlewareNoLogicExceptionMessage = Um Middleware do tipo Hashtable fornecido não tem lógica definida. -invalidLogicTypeInHashtableMiddlewareExceptionMessage = Um Middleware do tipo Hashtable fornecido tem um tipo de lógica inválido. Esperado ScriptBlock, mas obtido: {0} -scopedVariableAlreadyDefinedExceptionMessage = Variável de escopo já definida: {0} -valueForUsingVariableNotFoundExceptionMessage = Valor para '`$using:{0}' não pôde ser encontrado. -unlockSecretRequiredExceptionMessage = É necessária uma propriedade 'UnlockSecret' ao usar Microsoft.PowerShell.SecretStore -unlockSecretButNoScriptBlockExceptionMessage = Segredo de desbloqueio fornecido para tipo de Cofre Secreto personalizado, mas nenhum ScriptBlock de desbloqueio fornecido. -noUnlockScriptBlockForVaultExceptionMessage = Nenhum ScriptBlock de desbloqueio fornecido para desbloquear o cofre '{0}' -noSetScriptBlockForVaultExceptionMessage = Nenhum ScriptBlock fornecido para atualizar/criar segredos no cofre '{0}' -noRemoveScriptBlockForVaultExceptionMessage = Nenhum ScriptBlock fornecido para remover segredos do cofre '{0}' -invalidSecretValueTypeExceptionMessage = O valor do segredo é de um tipo inválido. Tipos esperados: String, SecureString, HashTable, Byte[] ou PSCredential. Mas obtido: {0} -limitValueCannotBeZeroOrLessExceptionMessage = O valor limite não pode ser 0 ou inferior para {0} -secondsValueCannotBeZeroOrLessExceptionMessage = O valor dos segundos não pode ser 0 ou inferior para {0} -failedToCreateOpenSslCertExceptionMessage = Falha ao criar o certificado openssl: {0} -certificateThumbprintsNameSupportedOnWindowsExceptionMessage = Impressões digitais/nome do certificado são suportados apenas no Windows. -noCertificateFoundExceptionMessage = Nenhum certificado encontrado em {0}\{1} para '{2}' -runspacePoolFailedToLoadExceptionMessage = {0} Falha ao carregar RunspacePool. -noServiceHandlersDefinedExceptionMessage = Nenhum manipulador de serviço definido. -noSessionToSetOnResponseExceptionMessage = Não há sessão disponível para definir na resposta. -noSessionToCalculateDataHashExceptionMessage = Nenhuma sessão disponível para calcular o hash dos dados. -moduleOrVersionNotFoundExceptionMessage = Módulo ou versão não encontrada em {0}: {1}@{2} -noSmtpHandlersDefinedExceptionMessage = Nenhum manipulador SMTP definido. -taskTimedOutExceptionMessage = A tarefa expirou após {0}ms. -verbAlreadyDefinedExceptionMessage = [Verbo] {0}: Já definido -verbAlreadyDefinedForUrlExceptionMessage = [Verbo] {0}: Já definido para {1} -pathOrScriptBlockRequiredExceptionMessage = É necessário um Caminho ou ScriptBlock para obter os valores de acesso personalizados. -accessMethodAlreadyDefinedExceptionMessage = Método de acesso já definido: {0} -accessMethodNotExistForMergingExceptionMessage = O método de acesso não existe para a mesclagem: {0} -routeAlreadyContainsCustomAccessExceptionMessage = A rota '[{0}] {1}' já contém Acesso Personalizado com o nome '{2}' -accessMethodNotExistExceptionMessage = O método de acesso não existe: {0} -pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = O recurso PathItems não é suportado no OpenAPI v3.0.x -nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = É necessário um ScriptBlock não vazio para o esquema de autenticação personalizado. -oauth2InnerSchemeInvalidExceptionMessage = O OAuth2 InnerScheme só pode ser um de autenticação Basic ou Form, mas foi obtido: {0} -sessionsRequiredForOAuth2WithPKCEExceptionMessage = Sessões são necessárias para usar OAuth2 com PKCE -oauth2ClientSecretRequiredExceptionMessage = OAuth2 requer um Client Secret quando não se usa PKCE. -authMethodAlreadyDefinedExceptionMessage = Método de autenticação já definido: {0} -invalidSchemeForAuthValidatorExceptionMessage = O esquema '{0}' fornecido para o validador de autenticação '{1}' requer um ScriptBlock válido. -sessionsRequiredForSessionPersistentAuthExceptionMessage = Sessões são necessárias para usar a autenticação persistente por sessão. -oauth2RequiresAuthorizeUrlExceptionMessage = OAuth2 requer que seja fornecida uma URL de Autorização -authMethodNotExistForMergingExceptionMessage = O método de autenticação não existe para mesclagem: {0} -mergeDefaultAuthNotInListExceptionMessage = A Autenticação MergeDefault '{0}' não está na lista de Autenticação fornecida. -defaultAuthNotInListExceptionMessage = A Autenticação Default '{0}' não está na lista de Autenticação fornecida. -scriptBlockRequiredForMergingUsersExceptionMessage = É necessário um ScriptBlock para mesclar vários usuários autenticados em 1 objeto quando Valid é All. -noDomainServerNameForWindowsAdAuthExceptionMessage = Nenhum nome de servidor de domínio foi fornecido para a autenticação AD do Windows -sessionsNotConfiguredExceptionMessage = As sessões não foram configuradas. -windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = O suporte à Autenticação Local do Windows é apenas para Windows. -iisAuthSupportIsForWindowsOnlyExceptionMessage = O suporte à Autenticação IIS é apenas para Windows. -noAlgorithmInJwtHeaderExceptionMessage = Nenhum algoritmo fornecido no Cabeçalho JWT. -invalidJwtSuppliedExceptionMessage = JWT fornecido inválido. -invalidJwtHeaderAlgorithmSuppliedExceptionMessage = Algoritmo de cabeçalho JWT fornecido inválido. -noJwtSignatureForAlgorithmExceptionMessage = Nenhuma assinatura JWT fornecida para {0}. -expectedNoJwtSignatureSuppliedExceptionMessage = Esperava-se que nenhuma assinatura JWT fosse fornecida. -invalidJwtSignatureSuppliedExceptionMessage = Assinatura JWT fornecida inválida. -jwtExpiredExceptionMessage = O JWT expirou. -jwtNotYetValidExceptionMessage = O JWT ainda não é válido para uso. -snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = Os Snapins são suportados apenas no Windows PowerShell. -userFileDoesNotExistExceptionMessage = O arquivo do usuário não existe: {0} -schemeRequiresValidScriptBlockExceptionMessage = O esquema fornecido para o validador de autenticação '{0}' requer um ScriptBlock válido. -oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = O provedor OAuth2 não suporta o response_type 'code'. -oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = O provedor OAuth2 não suporta o grant_type 'password' necessário ao usar um InnerScheme. -eventAlreadyRegisteredExceptionMessage = Evento {0} já registrado: {1} -noEventRegisteredExceptionMessage = Nenhum evento {0} registrado: {1} -sessionsRequiredForFlashMessagesExceptionMessage = Sessões são necessárias para usar mensagens Flash. -eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = O registro no Visualizador de Eventos é suportado apenas no Windows. -nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = Um ScriptBlock não vazio é necessário para o método de registro personalizado. -requestLoggingAlreadyEnabledExceptionMessage = O registro de solicitações já está habilitado. -outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = O método de saída fornecido para o registro de solicitações requer um ScriptBlock válido. -errorLoggingAlreadyEnabledExceptionMessage = O registro de erros já está habilitado. -nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = Um ScriptBlock não vazio é necessário para o método de registro. -csrfMiddlewareNotInitializedExceptionMessage = O Middleware CSRF não foi inicializado. -sessionsRequiredForCsrfExceptionMessage = Sessões são necessárias para usar CSRF, a menos que você queira usar cookies. -middlewareNoLogicSuppliedExceptionMessage = [Middleware]: Nenhuma lógica fornecida no ScriptBlock. -parameterHasNoNameExceptionMessage = O parâmetro não tem nome. Dê um nome a este componente usando o parâmetro 'Name'. -reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = O recurso de componente reutilizável 'pathItems' não está disponível no OpenAPI v3.0. -noPropertiesMutuallyExclusiveExceptionMessage = O parâmetro 'NoProperties' é mutuamente exclusivo com 'Properties', 'MinProperties' e 'MaxProperties'. -discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = O parâmetro 'DiscriminatorMapping' só pode ser usado quando 'DiscriminatorProperty' está presente. -discriminatorIncompatibleWithAllOfExceptionMessage = O parâmetro 'Discriminator' é incompatível com 'allOf'. -typeCanOnlyBeAssociatedWithObjectExceptionMessage = O tipo {0} só pode ser associado a um Objeto. -showPodeGuiOnlyAvailableOnWindowsExceptionMessage = Show-PodeGui está atualmente disponível apenas para Windows PowerShell e PowerShell 7+ no Windows. -nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = Um nome é necessário para o endpoint se o parâmetro RedirectTo for fornecido. -clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = Certificados de cliente são suportados apenas em endpoints HTTPS. -explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = O modo TLS explícito é suportado apenas em endpoints SMTPS e TCPS. -acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = A mensagem de reconhecimento é suportada apenas em endpoints SMTP e TCP. -crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = A verificação de fim de mensagem CRLF é suportada apenas em endpoints TCP. -mustBeRunningWithAdminPrivilegesExceptionMessage = Deve estar sendo executado com privilégios de administrador para escutar endereços que não sejam localhost. -certificateSuppliedForNonHttpsWssEndpointExceptionMessage = Certificado fornecido para endpoint que não é HTTPS/WSS. -websocketsNotConfiguredForSignalMessagesExceptionMessage = WebSockets não estão configurados para enviar mensagens de sinal. -noPathSuppliedForRouteExceptionMessage = Nenhum caminho fornecido para a Rota. -accessRequiresAuthenticationOnRoutesExceptionMessage = O acesso requer autenticação nas rotas. -accessMethodDoesNotExistExceptionMessage = O método de acesso não existe: {0}. -routeParameterNeedsValidScriptblockExceptionMessage = O parâmetro da Rota precisa de um ScriptBlock válido e não vazio. -noCommandsSuppliedToConvertToRoutesExceptionMessage = Nenhum comando fornecido para converter em Rotas. -nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = Um ScriptBlock não vazio é necessário para criar uma Rota de Página. -sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSE só pode ser configurado em solicitações com um valor de cabeçalho Accept de text/event-stream. -sseConnectionNameRequiredExceptionMessage = Um nome de conexão SSE é necessário, seja de -Name ou `$WebEvent.Sse.Name. -sseFailedToBroadcastExceptionMessage = SSE falhou em transmitir devido ao nível de transmissão SSE definido para {0}: {1}. -podeNotInitializedExceptionMessage = Pode não foi inicializado. -invalidTaskTypeExceptionMessage = O tipo de tarefa é inválido, esperado [System.Threading.Tasks.Task] ou [hashtable]. -cannotLockValueTypeExceptionMessage = Não é possível bloquear um [ValueTypes]. -cannotLockNullObjectExceptionMessage = Não é possível bloquear um objeto nulo. -failedToAcquireLockExceptionMessage = Falha ao adquirir um bloqueio no objeto. -cannotUnlockValueTypeExceptionMessage = Não é possível desbloquear um [ValueTypes]. -cannotUnlockNullObjectExceptionMessage = Não é possível desbloquear um objeto nulo. -sessionMiddlewareAlreadyInitializedExceptionMessage = O Middleware de Sessão já foi inicializado. -customSessionStorageMethodNotImplementedExceptionMessage = O armazenamento de sessão personalizado não implementa o método requerido '{0}()'. -secretRequiredForCustomSessionStorageExceptionMessage = Um segredo é necessário ao usar armazenamento de sessão personalizado. -noSessionAvailableToSaveExceptionMessage = Não há sessão disponível para salvar. -cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = Não é possível fornecer um intervalo quando o parâmetro 'Every' está definido como None. -cannotSupplyIntervalForQuarterExceptionMessage = Não é possível fornecer um valor de intervalo para cada trimestre. -cannotSupplyIntervalForYearExceptionMessage = Não é possível fornecer um valor de intervalo para cada ano. -secretVaultAlreadyRegisteredExceptionMessage = Um Cofre de Segredos com o nome '{0}' já foi registrado{1}. -secretVaultUnlockExpiryDateInPastExceptionMessage = A data de expiração de desbloqueio do Cofre de Segredos está no passado (UTC): {0} -secretAlreadyMountedExceptionMessage = Um Segredo com o nome '{0}' já foi montado. -credentialsPassedWildcardForHeadersLiteralExceptionMessage = Quando as Credenciais são passadas, o caractere curinga * para os Cabeçalhos será interpretado como uma string literal e não como um caractere curinga. -wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = O caractere curinga * para os Cabeçalhos é incompatível com a chave AutoHeaders. -wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = O caractere curinga * para os Métodos é incompatível com a chave AutoMethods. -invalidAccessControlMaxAgeDurationExceptionMessage = Duração inválida fornecida para Access-Control-Max-Age: {0}. Deve ser maior que 0. -noNameForWebSocketDisconnectExceptionMessage = Nenhum nome fornecido para desconectar do WebSocket. -noNameForWebSocketRemoveExceptionMessage = Nenhum nome fornecido para remover o WebSocket. -noNameForWebSocketSendMessageExceptionMessage = Nenhum nome fornecido para enviar mensagem ao WebSocket. -noSecretNamedMountedExceptionMessage = Nenhum Segredo com o nome '{0}' foi montado. -noNameForWebSocketResetExceptionMessage = Nenhum nome fornecido para redefinir o WebSocket. -schemaValidationRequiresPowerShell610ExceptionMessage = A validação do esquema requer a versão 6.1.0 ou superior do PowerShell. -routeParameterCannotBeNullExceptionMessage = O parâmetro 'Route' não pode ser nulo. -encodingAttributeOnlyAppliesToMultipartExceptionMessage = O atributo de codificação só se aplica a corpos de solicitação multipart e application/x-www-form-urlencoded. -testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = 'Test-PodeOAComponentSchema' precisa ser habilitado usando 'Enable-PodeOpenApi -EnableSchemaValidation' -openApiComponentSchemaDoesNotExistExceptionMessage = O esquema do componente OpenApi {0} não existe. -openApiParameterRequiresNameExceptionMessage = O parâmetro OpenApi requer um nome especificado. -openApiLicenseObjectRequiresNameExceptionMessage = O objeto OpenAPI 'license' requer a propriedade 'name'. Use o parâmetro -LicenseName. -parametersValueOrExternalValueMandatoryExceptionMessage = Os parâmetros 'Value' ou 'ExternalValue' são obrigatórios. -parametersMutuallyExclusiveExceptionMessage = Os parâmetros '{0}' e '{1}' são mutuamente exclusivos. -maximumConcurrentWebSocketThreadsInvalidExceptionMessage = O número máximo de threads concorrentes do WebSocket deve ser >=1, mas foi obtido: {0} -maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = O número máximo de threads concorrentes do WebSocket não pode ser menor que o mínimo de {0}, mas foi obtido: {1} -alreadyConnectedToWebSocketExceptionMessage = Já conectado ao websocket com o nome '{0}' -failedToConnectToWebSocketExceptionMessage = Falha ao conectar ao websocket: {0} -verbNoLogicPassedExceptionMessage = [Verbo] {0}: Nenhuma lógica passada -scriptPathDoesNotExistExceptionMessage = O caminho do script não existe: {0} -failedToImportModuleExceptionMessage = Falha ao importar módulo: {0} -modulePathDoesNotExistExceptionMessage = O caminho do módulo não existe: {0} -defaultValueNotBooleanOrEnumExceptionMessage = O valor padrão não é booleano e não faz parte do enum. -propertiesTypeObjectAssociationExceptionMessage = Apenas propriedades do tipo Objeto podem ser associadas com {0}. -invalidContentTypeForSchemaExceptionMessage = 'content-type' inválido encontrado para o esquema: {0} -openApiRequestStyleInvalidForParameterExceptionMessage = O estilo da solicitação OpenApi não pode ser {0} para um parâmetro {1}. -pathParameterRequiresRequiredSwitchExceptionMessage = Se a localização do parâmetro for 'Path', o parâmetro de switch 'Required' é obrigatório. -operationIdMustBeUniqueForArrayExceptionMessage = OperationID: {0} deve ser único e não pode ser aplicado a uma matriz. -operationIdMustBeUniqueExceptionMessage = OperationID: {0} deve ser único. -noOpenApiUrlSuppliedExceptionMessage = Nenhuma URL do OpenAPI fornecida para {0}. -noTitleSuppliedForPageExceptionMessage = Nenhum título fornecido para a página {0}. -noRoutePathSuppliedForPageExceptionMessage = Nenhum caminho de rota fornecido para a página {0}. -swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = Esta versão do Swagger-Editor não suporta OpenAPI 3.1 -rapidPdfDoesNotSupportOpenApi31ExceptionMessage = A ferramenta de documentos RapidPdf não suporta OpenAPI 3.1 -definitionTagNotDefinedExceptionMessage = A tag de definição {0} não existe. -scopedVariableNotFoundExceptionMessage = Variável de escopo não encontrada: {0} -noSecretVaultRegisteredExceptionMessage = Nenhum Cofre de Segredos com o nome '{0}' foi registrado. -invalidStrictTransportSecurityDurationExceptionMessage = Duração inválida fornecida para Strict-Transport-Security: {0}. Deve ser maior que 0. -durationMustBeZeroOrGreaterExceptionMessage = A duração deve ser 0 ou maior, mas foi obtido: {0}s -taskAlreadyDefinedExceptionMessage = [Tarefa] {0}: Tarefa já definida. -maximumConcurrentTasksInvalidExceptionMessage = O número máximo de tarefas concorrentes deve ser >=1, mas foi obtido: {0} -maximumConcurrentTasksLessThanMinimumExceptionMessage = O número máximo de tarefas concorrentes não pode ser menor que o mínimo de {0}, mas foi obtido: {1} -taskDoesNotExistExceptionMessage = A tarefa '{0}' não existe. -cacheStorageNotFoundForRetrieveExceptionMessage = Armazenamento em cache com o nome '{0}' não encontrado ao tentar recuperar o item em cache '{1}'. -cacheStorageNotFoundForSetExceptionMessage = Armazenamento em cache com o nome '{0}' não encontrado ao tentar definir o item em cache '{1}'. -cacheStorageNotFoundForExistsExceptionMessage = Armazenamento em cache com o nome '{0}' não encontrado ao tentar verificar se o item em cache '{1}' existe. -cacheStorageNotFoundForRemoveExceptionMessage = Armazenamento em cache com o nome '{0}' não encontrado ao tentar remover o item em cache '{1}'. -cacheStorageNotFoundForClearExceptionMessage = Armazenamento em cache com o nome '{0}' não encontrado ao tentar limpar o cache. -cacheStorageAlreadyExistsExceptionMessage = Armazenamento em cache com o nome '{0}' já existe. -pathToIconForGuiDoesNotExistExceptionMessage = O caminho para o ícone da interface gráfica não existe: {0} -invalidHostnameSuppliedExceptionMessage = Nome de host fornecido inválido: {0} -endpointAlreadyDefinedExceptionMessage = Um ponto de extremidade chamado '{0}' já foi definido. -certificateExpiredExceptionMessage = O certificado '{0}' expirou: {1} -endpointNotDefinedForRedirectingExceptionMessage = Não foi definido um ponto de extremidade chamado '{0}' para redirecionamento. -fileWatcherAlreadyDefinedExceptionMessage = Um Observador de Arquivos chamado '{0}' já foi definido. -handlerAlreadyDefinedExceptionMessage = [{0}] {1}: Manipulador já definido. -maxDaysInvalidExceptionMessage = MaxDays deve ser igual ou maior que 0, mas foi obtido: {0} -maxSizeInvalidExceptionMessage = MaxSize deve ser igual ou maior que 0, mas foi obtido: {0} -loggingMethodAlreadyDefinedExceptionMessage = Método de registro já definido: {0} -loggingMethodRequiresValidScriptBlockExceptionMessage = O método de saída fornecido para o método de registro '{0}' requer um ScriptBlock válido. -csrfCookieRequiresSecretExceptionMessage = Ao usar cookies para CSRF, é necessário um Segredo. Você pode fornecer um Segredo ou definir o segredo global do Cookie - (Set-PodeCookieSecret '' -Global) -bodyParserAlreadyDefinedForContentTypeExceptionMessage = Um body-parser já está definido para o tipo de conteúdo {0}. -middlewareAlreadyDefinedExceptionMessage = [Middleware] {0}: Middleware já definido. -parameterNotSuppliedInRequestExceptionMessage = Um parâmetro chamado '{0}' não foi fornecido na solicitação ou não há dados disponíveis. -noDataForFileUploadedExceptionMessage = Nenhum dado para o arquivo '{0}' foi enviado na solicitação. -viewsFolderNameAlreadyExistsExceptionMessage = O nome da pasta Views já existe: {0} -viewsPathDoesNotExistExceptionMessage = O caminho das Views não existe: {0} -timerAlreadyDefinedExceptionMessage = [Temporizador] {0}: Temporizador já definido. -timerParameterMustBeGreaterThanZeroExceptionMessage = [Temporizador] {0}: {1} deve ser maior que 0. -timerDoesNotExistExceptionMessage = O temporizador '{0}' não existe. -mutexAlreadyExistsExceptionMessage = Já existe um mutex com o seguinte nome: {0} -noMutexFoundExceptionMessage = Nenhum mutex encontrado chamado '{0}' -failedToAcquireMutexOwnershipExceptionMessage = Falha ao adquirir a propriedade do mutex. Nome do mutex: {0} -semaphoreAlreadyExistsExceptionMessage = Já existe um semáforo com o seguinte nome: {0} -failedToAcquireSemaphoreOwnershipExceptionMessage = Falha ao adquirir a propriedade do semáforo. Nome do semáforo: {0} -scheduleAlreadyDefinedExceptionMessage = [Agenda] {0}: Agenda já definida. -scheduleCannotHaveNegativeLimitExceptionMessage = [Agenda] {0}: Não pode ter um limite negativo. -scheduleEndTimeMustBeInFutureExceptionMessage = [Agenda] {0}: O valor de EndTime deve estar no futuro. -scheduleStartTimeAfterEndTimeExceptionMessage = [Agenda] {0}: Não pode ter um 'StartTime' após o 'EndTime' -maximumConcurrentSchedulesInvalidExceptionMessage = As agendas simultâneas máximas devem ser >=1, mas obtidas: {0} -maximumConcurrentSchedulesLessThanMinimumExceptionMessage = As agendas simultâneas máximas não podem ser inferiores ao mínimo de {0}, mas obtidas: {1} -scheduleDoesNotExistExceptionMessage = A agenda '{0}' não existe. -suppliedDateBeforeScheduleStartTimeExceptionMessage = A data fornecida é anterior ao horário de início da agenda em {0} -suppliedDateAfterScheduleEndTimeExceptionMessage = A data fornecida é posterior ao horário de término da agenda em {0} -noSemaphoreFoundExceptionMessage = Nenhum semáforo encontrado chamado '{0}' -noLogicPassedForRouteExceptionMessage = Nenhuma lógica passada para a Rota: {0} -noPathSuppliedForStaticRouteExceptionMessage = [{0}]: Nenhum caminho fornecido para a Rota Estática. -sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: O caminho de origem fornecido para a Rota Estática não existe: {2} -noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: Nenhuma lógica passada. -moduleDoesNotContainFunctionExceptionMessage = O módulo {0} não contém a função {1} para converter em uma Rota. -pageNameShouldBeAlphaNumericExceptionMessage = O nome da página deve ser um valor alfanumérico válido: {0} -filesHaveChangedMessage = Os seguintes arquivos foram alterados: -multipleEndpointsForGuiMessage = Múltiplos endpoints definidos, apenas o primeiro será usado para a GUI. -openingGuiMessage = Abrindo a GUI. -listeningOnEndpointsMessage = Ouvindo nos seguintes {0} endpoint(s) [{1} thread(s)]: -specificationMessage = Especificação -documentationMessage = Documentação -restartingServerMessage = Reiniciando o servidor... -doneMessage = Concluído -deprecatedTitleVersionDescriptionWarningMessage = AVISO: Título, Versão e Descrição em 'Enable-PodeOpenApi' estão obsoletos. Utilize 'Add-PodeOAInfo' em vez disso. -undefinedOpenApiReferencesMessage = Referências OpenAPI indefinidas: -definitionTagMessage = Definição {0}: -openApiGenerationDocumentErrorMessage = Erro no documento de geração do OpenAPI: -infoTitleMandatoryMessage = info.title é obrigatório. -infoVersionMandatoryMessage = info.version é obrigatório. -missingComponentsMessage = Componente(s) ausente(s) -openApiInfoMessage = Informações OpenAPI: -serverLoopingMessage = Looping do servidor a cada {0} segundos -iisShutdownMessage = (Desligamento do IIS) -terminatingMessage = Terminando... -eolPowerShellWarningMessage = [AVISO] Pode {0} não foi testado no PowerShell {1}, pois está em EOL. -untestedPowerShellVersionWarningMessage = [AVISO] Pode {0} não foi testado no PowerShell {1}, pois não estava disponível quando o Pode foi lançado. -'@ \ No newline at end of file +@{ + schemaValidationRequiresPowerShell610ExceptionMessage = 'A validação do esquema requer a versão 6.1.0 ou superior do PowerShell.' + pathOrScriptBlockRequiredExceptionMessage = 'É necessário um Caminho ou ScriptBlock para obter os valores de acesso personalizados.' + operationIdMustBeUniqueForArrayExceptionMessage = 'OperationID: {0} deve ser único e não pode ser aplicado a uma matriz.' + endpointNotDefinedForRedirectingExceptionMessage = "Não foi definido um ponto de extremidade chamado '{0}' para redirecionamento." + filesHaveChangedMessage = 'Os seguintes arquivos foram alterados:' + iisAspnetcoreTokenMissingExceptionMessage = 'IIS ASPNETCORE_TOKEN está ausente.' + minValueGreaterThanMaxExceptionMessage = 'O valor mínimo para {0} não deve ser maior que o valor máximo.' + noLogicPassedForRouteExceptionMessage = 'Nenhuma lógica passada para a Rota: {0}' + scriptPathDoesNotExistExceptionMessage = 'O caminho do script não existe: {0}' + mutexAlreadyExistsExceptionMessage = 'Já existe um mutex com o seguinte nome: {0}' + listeningOnEndpointsMessage = 'Ouvindo nos seguintes {0} endpoint(s) [{1} thread(s)]:' + unsupportedFunctionInServerlessContextExceptionMessage = 'A função {0} não é suportada em um contexto serverless.' + expectedNoJwtSignatureSuppliedExceptionMessage = 'Esperava-se que nenhuma assinatura JWT fosse fornecida.' + secretAlreadyMountedExceptionMessage = "Um Segredo com o nome '{0}' já foi montado." + failedToAcquireLockExceptionMessage = 'Falha ao adquirir um bloqueio no objeto.' + noPathSuppliedForStaticRouteExceptionMessage = '[{0}]: Nenhum caminho fornecido para a Rota Estática.' + invalidHostnameSuppliedExceptionMessage = 'Nome de host fornecido inválido: {0}' + authMethodAlreadyDefinedExceptionMessage = 'Método de autenticação já definido: {0}' + csrfCookieRequiresSecretExceptionMessage = "Ao usar cookies para CSRF, é necessário um Segredo. Você pode fornecer um Segredo ou definir o segredo global do Cookie - (Set-PodeCookieSecret '' -Global)" + nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = 'Um ScriptBlock não vazio é necessário para criar uma Rota de Página.' + noPropertiesMutuallyExclusiveExceptionMessage = "O parâmetro 'NoProperties' é mutuamente exclusivo com 'Properties', 'MinProperties' e 'MaxProperties'." + incompatiblePodeDllExceptionMessage = 'Uma versão incompatível existente do Pode.DLL {0} está carregada. É necessária a versão {1}. Abra uma nova sessão do Powershell/pwsh e tente novamente.' + accessMethodDoesNotExistExceptionMessage = 'O método de acesso não existe: {0}.' + scheduleAlreadyDefinedExceptionMessage = '[Agenda] {0}: Agenda já definida.' + secondsValueCannotBeZeroOrLessExceptionMessage = 'O valor dos segundos não pode ser 0 ou inferior para {0}' + pathToLoadNotFoundExceptionMessage = 'Caminho para carregar {0} não encontrado: {1}' + failedToImportModuleExceptionMessage = 'Falha ao importar módulo: {0}' + endpointNotExistExceptionMessage = "O ponto de extremidade com o protocolo '{0}' e endereço '{1}' ou endereço local '{2}' não existe." + terminatingMessage = 'Terminando...' + noCommandsSuppliedToConvertToRoutesExceptionMessage = 'Nenhum comando fornecido para converter em Rotas.' + invalidTaskTypeExceptionMessage = 'O tipo de tarefa é inválido, esperado [System.Threading.Tasks.Task] ou [hashtable].' + alreadyConnectedToWebSocketExceptionMessage = "Já conectado ao websocket com o nome '{0}'" + crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = 'A verificação de fim de mensagem CRLF é suportada apenas em endpoints TCP.' + testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = "'Test-PodeOAComponentSchema' precisa ser habilitado usando 'Enable-PodeOpenApi -EnableSchemaValidation'" + adModuleNotInstalledExceptionMessage = 'O módulo Active Directory não está instalado.' + cronExpressionInvalidExceptionMessage = 'A expressão Cron deve consistir apenas em 5 partes: {0}' + noSessionToSetOnResponseExceptionMessage = 'Não há sessão disponível para definir na resposta.' + valueOutOfRangeExceptionMessage = "O valor '{0}' para {1} é inválido, deve estar entre {2} e {3}" + loggingMethodAlreadyDefinedExceptionMessage = 'Método de registro já definido: {0}' + noSecretForHmac256ExceptionMessage = 'Nenhum segredo fornecido para o hash HMAC256.' + eolPowerShellWarningMessage = '[AVISO] Pode {0} não foi testado no PowerShell {1}, pois está em EOL.' + runspacePoolFailedToLoadExceptionMessage = '{0} Falha ao carregar RunspacePool.' + noEventRegisteredExceptionMessage = 'Nenhum evento {0} registrado: {1}' + scheduleCannotHaveNegativeLimitExceptionMessage = '[Agenda] {0}: Não pode ter um limite negativo.' + openApiRequestStyleInvalidForParameterExceptionMessage = 'O estilo da solicitação OpenApi não pode ser {0} para um parâmetro {1}.' + openApiDocumentNotCompliantExceptionMessage = 'O documento OpenAPI não está em conformidade.' + taskDoesNotExistExceptionMessage = "A tarefa '{0}' não existe." + scopedVariableNotFoundExceptionMessage = 'Variável de escopo não encontrada: {0}' + sessionsRequiredForCsrfExceptionMessage = 'Sessões são necessárias para usar CSRF, a menos que você queira usar cookies.' + nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = 'Um ScriptBlock não vazio é necessário para o método de registro.' + credentialsPassedWildcardForHeadersLiteralExceptionMessage = 'Quando as Credenciais são passadas, o caractere curinga * para os Cabeçalhos será interpretado como uma string literal e não como um caractere curinga.' + podeNotInitializedExceptionMessage = 'Pode não foi inicializado.' + multipleEndpointsForGuiMessage = 'Múltiplos endpoints definidos, apenas o primeiro será usado para a GUI.' + operationIdMustBeUniqueExceptionMessage = 'OperationID: {0} deve ser único.' + invalidJsonJwtExceptionMessage = 'Valor JSON inválido encontrado no JWT' + noAlgorithmInJwtHeaderExceptionMessage = 'Nenhum algoritmo fornecido no Cabeçalho JWT.' + openApiVersionPropertyMandatoryExceptionMessage = 'A propriedade da versão do OpenApi é obrigatória.' + limitValueCannotBeZeroOrLessExceptionMessage = 'O valor limite não pode ser 0 ou inferior para {0}' + timerDoesNotExistExceptionMessage = "O temporizador '{0}' não existe." + openApiGenerationDocumentErrorMessage = 'Erro no documento de geração do OpenAPI:' + routeAlreadyContainsCustomAccessExceptionMessage = "A rota '[{0}] {1}' já contém Acesso Personalizado com o nome '{2}'" + maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = 'O número máximo de threads concorrentes do WebSocket não pode ser menor que o mínimo de {0}, mas foi obtido: {1}' + middlewareAlreadyDefinedExceptionMessage = '[Middleware] {0}: Middleware já definido.' + invalidAtomCharacterExceptionMessage = 'Caractere atômico inválido: {0}' + cacheStorageNotFoundForRetrieveExceptionMessage = "Armazenamento em cache com o nome '{0}' não encontrado ao tentar recuperar o item em cache '{1}'." + headerMustHaveNameInEncodingContextExceptionMessage = 'O cabeçalho deve ter um nome quando usado em um contexto de codificação.' + moduleDoesNotContainFunctionExceptionMessage = 'O módulo {0} não contém a função {1} para converter em uma Rota.' + pathToIconForGuiDoesNotExistExceptionMessage = 'O caminho para o ícone da interface gráfica não existe: {0}' + noTitleSuppliedForPageExceptionMessage = 'Nenhum título fornecido para a página {0}.' + certificateSuppliedForNonHttpsWssEndpointExceptionMessage = 'Certificado fornecido para endpoint que não é HTTPS/WSS.' + cannotLockNullObjectExceptionMessage = 'Não é possível bloquear um objeto nulo.' + showPodeGuiOnlyAvailableOnWindowsExceptionMessage = 'Show-PodeGui está atualmente disponível apenas para Windows PowerShell e PowerShell 7+ no Windows.' + unlockSecretButNoScriptBlockExceptionMessage = 'Segredo de desbloqueio fornecido para tipo de Cofre Secreto personalizado, mas nenhum ScriptBlock de desbloqueio fornecido.' + invalidIpAddressExceptionMessage = 'O endereço IP fornecido é inválido: {0}' + maxDaysInvalidExceptionMessage = 'MaxDays deve ser igual ou maior que 0, mas foi obtido: {0}' + noRemoveScriptBlockForVaultExceptionMessage = "Nenhum ScriptBlock fornecido para remover segredos do cofre '{0}'" + noSecretExpectedForNoSignatureExceptionMessage = 'Não era esperado nenhum segredo para nenhuma assinatura.' + noCertificateFoundExceptionMessage = "Nenhum certificado encontrado em {0}{1} para '{2}'" + minValueInvalidExceptionMessage = "O valor mínimo '{0}' para {1} é inválido, deve ser maior ou igual a {2}" + accessRequiresAuthenticationOnRoutesExceptionMessage = 'O acesso requer autenticação nas rotas.' + noSecretForHmac384ExceptionMessage = 'Nenhum segredo fornecido para o hash HMAC384.' + windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = 'O suporte à Autenticação Local do Windows é apenas para Windows.' + definitionTagNotDefinedExceptionMessage = 'A tag de definição {0} não existe.' + noComponentInDefinitionExceptionMessage = 'Nenhum componente do tipo {0} chamado {1} está disponível na definição {2}.' + noSmtpHandlersDefinedExceptionMessage = 'Nenhum manipulador SMTP definido.' + sessionMiddlewareAlreadyInitializedExceptionMessage = 'O Middleware de Sessão já foi inicializado.' + reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = "O recurso de componente reutilizável 'pathItems' não está disponível no OpenAPI v3.0." + wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = 'O caractere curinga * para os Cabeçalhos é incompatível com a chave AutoHeaders.' + noDataForFileUploadedExceptionMessage = "Nenhum dado para o arquivo '{0}' foi enviado na solicitação." + sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = 'SSE só pode ser configurado em solicitações com um valor de cabeçalho Accept de text/event-stream.' + noSessionAvailableToSaveExceptionMessage = 'Não há sessão disponível para salvar.' + pathParameterRequiresRequiredSwitchExceptionMessage = "Se a localização do parâmetro for 'Path', o parâmetro de switch 'Required' é obrigatório." + noOpenApiUrlSuppliedExceptionMessage = 'Nenhuma URL do OpenAPI fornecida para {0}.' + maximumConcurrentSchedulesInvalidExceptionMessage = 'As agendas simultâneas máximas devem ser >=1, mas obtidas: {0}' + snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = 'Os Snapins são suportados apenas no Windows PowerShell.' + eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = 'O registro no Visualizador de Eventos é suportado apenas no Windows.' + parametersMutuallyExclusiveExceptionMessage = "Os parâmetros '{0}' e '{1}' são mutuamente exclusivos." + pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = 'O recurso PathItems não é suportado no OpenAPI v3.0.x' + openApiParameterRequiresNameExceptionMessage = 'O parâmetro OpenApi requer um nome especificado.' + maximumConcurrentTasksLessThanMinimumExceptionMessage = 'O número máximo de tarefas concorrentes não pode ser menor que o mínimo de {0}, mas foi obtido: {1}' + noSemaphoreFoundExceptionMessage = "Nenhum semáforo encontrado chamado '{0}'" + singleValueForIntervalExceptionMessage = 'Você pode fornecer apenas um único valor {0} ao usar intervalos.' + jwtNotYetValidExceptionMessage = 'O JWT ainda não é válido para uso.' + verbAlreadyDefinedForUrlExceptionMessage = '[Verbo] {0}: Já definido para {1}' + noSecretNamedMountedExceptionMessage = "Nenhum Segredo com o nome '{0}' foi montado." + moduleOrVersionNotFoundExceptionMessage = 'Módulo ou versão não encontrada em {0}: {1}@{2}' + noScriptBlockSuppliedExceptionMessage = 'Nenhum ScriptBlock fornecido.' + noSecretVaultRegisteredExceptionMessage = "Nenhum Cofre de Segredos com o nome '{0}' foi registrado." + nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = 'Um nome é necessário para o endpoint se o parâmetro RedirectTo for fornecido.' + openApiLicenseObjectRequiresNameExceptionMessage = "O objeto OpenAPI 'license' requer a propriedade 'name'. Use o parâmetro -LicenseName." + sourcePathDoesNotExistForStaticRouteExceptionMessage = '[{0})] {1}: O caminho de origem fornecido para a Rota Estática não existe: {2}' + noNameForWebSocketDisconnectExceptionMessage = 'Nenhum nome fornecido para desconectar do WebSocket.' + certificateExpiredExceptionMessage = "O certificado '{0}' expirou: {1}" + secretVaultUnlockExpiryDateInPastExceptionMessage = 'A data de expiração de desbloqueio do Cofre de Segredos está no passado (UTC): {0}' + invalidExceptionTypeExceptionMessage = 'A exceção é de um tipo inválido, deve ser WebException ou HttpRequestException, mas foi obtido: {0}' + invalidSecretValueTypeExceptionMessage = 'O valor do segredo é de um tipo inválido. Tipos esperados: String, SecureString, HashTable, Byte[] ou PSCredential. Mas obtido: {0}' + explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = 'O modo TLS explícito é suportado apenas em endpoints SMTPS e TCPS.' + discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = "O parâmetro 'DiscriminatorMapping' só pode ser usado quando 'DiscriminatorProperty' está presente." + scriptErrorExceptionMessage = "Erro '{0}' no script {1} {2} (linha {3}) caractere {4} executando {5} em {6} objeto '{7}' Classe: {8} ClasseBase: {9}" + cannotSupplyIntervalForQuarterExceptionMessage = 'Não é possível fornecer um valor de intervalo para cada trimestre.' + scheduleEndTimeMustBeInFutureExceptionMessage = '[Agenda] {0}: O valor de EndTime deve estar no futuro.' + invalidJwtSignatureSuppliedExceptionMessage = 'Assinatura JWT fornecida inválida.' + noSetScriptBlockForVaultExceptionMessage = "Nenhum ScriptBlock fornecido para atualizar/criar segredos no cofre '{0}'" + accessMethodNotExistForMergingExceptionMessage = 'O método de acesso não existe para a mesclagem: {0}' + defaultAuthNotInListExceptionMessage = "A Autenticação Default '{0}' não está na lista de Autenticação fornecida." + parameterHasNoNameExceptionMessage = "O parâmetro não tem nome. Dê um nome a este componente usando o parâmetro 'Name'." + methodPathAlreadyDefinedForUrlExceptionMessage = '[{0}] {1}: Já definido para {2}' + fileWatcherAlreadyDefinedExceptionMessage = "Um Observador de Arquivos chamado '{0}' já foi definido." + noServiceHandlersDefinedExceptionMessage = 'Nenhum manipulador de serviço definido.' + secretRequiredForCustomSessionStorageExceptionMessage = 'Um segredo é necessário ao usar armazenamento de sessão personalizado.' + secretManagementModuleNotInstalledExceptionMessage = 'O módulo Microsoft.PowerShell.SecretManagement não está instalado.' + noPathSuppliedForRouteExceptionMessage = 'Nenhum caminho fornecido para a Rota.' + validationOfAnyOfSchemaNotSupportedExceptionMessage = "A validação de um esquema que inclui 'anyof' não é suportada." + iisAuthSupportIsForWindowsOnlyExceptionMessage = 'O suporte à Autenticação IIS é apenas para Windows.' + oauth2InnerSchemeInvalidExceptionMessage = 'O OAuth2 InnerScheme só pode ser um de autenticação Basic ou Form, mas foi obtido: {0}' + noRoutePathSuppliedForPageExceptionMessage = 'Nenhum caminho de rota fornecido para a página {0}.' + cacheStorageNotFoundForExistsExceptionMessage = "Armazenamento em cache com o nome '{0}' não encontrado ao tentar verificar se o item em cache '{1}' existe." + handlerAlreadyDefinedExceptionMessage = '[{0}] {1}: Manipulador já definido.' + sessionsNotConfiguredExceptionMessage = 'As sessões não foram configuradas.' + propertiesTypeObjectAssociationExceptionMessage = 'Apenas propriedades do tipo Objeto podem ser associadas com {0}.' + sessionsRequiredForSessionPersistentAuthExceptionMessage = 'Sessões são necessárias para usar a autenticação persistente por sessão.' + invalidPathWildcardOrDirectoryExceptionMessage = 'O caminho fornecido não pode ser um curinga ou um diretório: {0}' + accessMethodAlreadyDefinedExceptionMessage = 'Método de acesso já definido: {0}' + parametersValueOrExternalValueMandatoryExceptionMessage = "Os parâmetros 'Value' ou 'ExternalValue' são obrigatórios." + maximumConcurrentTasksInvalidExceptionMessage = 'O número máximo de tarefas concorrentes deve ser >=1, mas foi obtido: {0}' + cannotCreatePropertyWithoutTypeExceptionMessage = 'Não é possível criar a propriedade porque nenhum tipo é definido.' + authMethodNotExistForMergingExceptionMessage = 'O método de autenticação não existe para mesclagem: {0}' + maxValueInvalidExceptionMessage = "O valor máximo '{0}' para {1} é inválido, deve ser menor ou igual a {2}" + endpointAlreadyDefinedExceptionMessage = "Um ponto de extremidade chamado '{0}' já foi definido." + eventAlreadyRegisteredExceptionMessage = 'Evento {0} já registrado: {1}' + parameterNotSuppliedInRequestExceptionMessage = "Um parâmetro chamado '{0}' não foi fornecido na solicitação ou não há dados disponíveis." + cacheStorageNotFoundForSetExceptionMessage = "Armazenamento em cache com o nome '{0}' não encontrado ao tentar definir o item em cache '{1}'." + methodPathAlreadyDefinedExceptionMessage = '[{0}] {1}: Já definido.' + errorLoggingAlreadyEnabledExceptionMessage = 'O registro de erros já está habilitado.' + valueForUsingVariableNotFoundExceptionMessage = "Valor para '`$using:{0}' não pôde ser encontrado." + rapidPdfDoesNotSupportOpenApi31ExceptionMessage = 'A ferramenta de documentos RapidPdf não suporta OpenAPI 3.1' + oauth2ClientSecretRequiredExceptionMessage = 'OAuth2 requer um Client Secret quando não se usa PKCE.' + invalidBase64JwtExceptionMessage = 'Valor codificado Base64 inválido encontrado no JWT' + noSessionToCalculateDataHashExceptionMessage = 'Nenhuma sessão disponível para calcular o hash dos dados.' + cacheStorageNotFoundForRemoveExceptionMessage = "Armazenamento em cache com o nome '{0}' não encontrado ao tentar remover o item em cache '{1}'." + csrfMiddlewareNotInitializedExceptionMessage = 'O Middleware CSRF não foi inicializado.' + infoTitleMandatoryMessage = 'info.title é obrigatório.' + typeCanOnlyBeAssociatedWithObjectExceptionMessage = 'O tipo {0} só pode ser associado a um Objeto.' + userFileDoesNotExistExceptionMessage = 'O arquivo do usuário não existe: {0}' + routeParameterNeedsValidScriptblockExceptionMessage = 'O parâmetro da Rota precisa de um ScriptBlock válido e não vazio.' + nextTriggerCalculationErrorExceptionMessage = 'Parece que algo deu errado ao tentar calcular a próxima data e hora do gatilho: {0}' + cannotLockValueTypeExceptionMessage = 'Não é possível bloquear um [ValueTypes].' + failedToCreateOpenSslCertExceptionMessage = 'Falha ao criar o certificado openssl: {0}' + jwtExpiredExceptionMessage = 'O JWT expirou.' + openingGuiMessage = 'Abrindo a GUI.' + multiTypePropertiesRequireOpenApi31ExceptionMessage = 'Propriedades de múltiplos tipos requerem a versão 3.1 ou superior do OpenApi.' + noNameForWebSocketRemoveExceptionMessage = 'Nenhum nome fornecido para remover o WebSocket.' + maxSizeInvalidExceptionMessage = 'MaxSize deve ser igual ou maior que 0, mas foi obtido: {0}' + iisShutdownMessage = '(Desligamento do IIS)' + cannotUnlockValueTypeExceptionMessage = 'Não é possível desbloquear um [ValueTypes].' + noJwtSignatureForAlgorithmExceptionMessage = 'Nenhuma assinatura JWT fornecida para {0}.' + maximumConcurrentWebSocketThreadsInvalidExceptionMessage = 'O número máximo de threads concorrentes do WebSocket deve ser >=1, mas foi obtido: {0}' + acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = 'A mensagem de reconhecimento é suportada apenas em endpoints SMTP e TCP.' + failedToConnectToUrlExceptionMessage = 'Falha ao conectar ao URL: {0}' + failedToAcquireMutexOwnershipExceptionMessage = 'Falha ao adquirir a propriedade do mutex. Nome do mutex: {0}' + sessionsRequiredForOAuth2WithPKCEExceptionMessage = 'Sessões são necessárias para usar OAuth2 com PKCE' + failedToConnectToWebSocketExceptionMessage = 'Falha ao conectar ao websocket: {0}' + unsupportedObjectExceptionMessage = 'Objeto não suportado' + failedToParseAddressExceptionMessage = "Falha ao analisar '{0}' como um endereço IP/Host:Port válido" + mustBeRunningWithAdminPrivilegesExceptionMessage = 'Deve estar sendo executado com privilégios de administrador para escutar endereços que não sejam localhost.' + specificationMessage = 'Especificação' + cacheStorageNotFoundForClearExceptionMessage = "Armazenamento em cache com o nome '{0}' não encontrado ao tentar limpar o cache." + restartingServerMessage = 'Reiniciando o servidor...' + cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = "Não é possível fornecer um intervalo quando o parâmetro 'Every' está definido como None." + unsupportedJwtAlgorithmExceptionMessage = 'O algoritmo JWT não é atualmente suportado: {0}' + websocketsNotConfiguredForSignalMessagesExceptionMessage = 'WebSockets não estão configurados para enviar mensagens de sinal.' + invalidLogicTypeInHashtableMiddlewareExceptionMessage = 'Um Middleware do tipo Hashtable fornecido tem um tipo de lógica inválido. Esperado ScriptBlock, mas obtido: {0}' + maximumConcurrentSchedulesLessThanMinimumExceptionMessage = 'As agendas simultâneas máximas não podem ser inferiores ao mínimo de {0}, mas obtidas: {1}' + failedToAcquireSemaphoreOwnershipExceptionMessage = 'Falha ao adquirir a propriedade do semáforo. Nome do semáforo: {0}' + propertiesParameterWithoutNameExceptionMessage = 'Os parâmetros Properties não podem ser usados se a propriedade não tiver um nome.' + customSessionStorageMethodNotImplementedExceptionMessage = "O armazenamento de sessão personalizado não implementa o método requerido '{0}()'." + authenticationMethodDoesNotExistExceptionMessage = 'O método de autenticação não existe: {0}' + webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = 'O recurso Webhooks não é suportado no OpenAPI v3.0.x' + invalidContentTypeForSchemaExceptionMessage = "'content-type' inválido encontrado para o esquema: {0}" + noUnlockScriptBlockForVaultExceptionMessage = "Nenhum ScriptBlock de desbloqueio fornecido para desbloquear o cofre '{0}'" + definitionTagMessage = 'Definição {0}:' + failedToOpenRunspacePoolExceptionMessage = 'Falha ao abrir o RunspacePool: {0}' + verbNoLogicPassedExceptionMessage = '[Verbo] {0}: Nenhuma lógica passada' + noMutexFoundExceptionMessage = "Nenhum mutex encontrado chamado '{0}'" + documentationMessage = 'Documentação' + timerAlreadyDefinedExceptionMessage = '[Temporizador] {0}: Temporizador já definido.' + invalidPortExceptionMessage = 'A porta não pode ser negativa: {0}' + viewsFolderNameAlreadyExistsExceptionMessage = 'O nome da pasta Views já existe: {0}' + noNameForWebSocketResetExceptionMessage = 'Nenhum nome fornecido para redefinir o WebSocket.' + mergeDefaultAuthNotInListExceptionMessage = "A Autenticação MergeDefault '{0}' não está na lista de Autenticação fornecida." + descriptionRequiredExceptionMessage = 'É necessária uma descrição.' + pageNameShouldBeAlphaNumericExceptionMessage = 'O nome da página deve ser um valor alfanumérico válido: {0}' + defaultValueNotBooleanOrEnumExceptionMessage = 'O valor padrão não é booleano e não faz parte do enum.' + openApiComponentSchemaDoesNotExistExceptionMessage = 'O esquema do componente OpenApi {0} não existe.' + timerParameterMustBeGreaterThanZeroExceptionMessage = '[Temporizador] {0}: {1} deve ser maior que 0.' + taskTimedOutExceptionMessage = 'A tarefa expirou após {0}ms.' + scheduleStartTimeAfterEndTimeExceptionMessage = "[Agenda] {0}: Não pode ter um 'StartTime' após o 'EndTime'" + infoVersionMandatoryMessage = 'info.version é obrigatório.' + cannotUnlockNullObjectExceptionMessage = 'Não é possível desbloquear um objeto nulo.' + nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = 'É necessário um ScriptBlock não vazio para o esquema de autenticação personalizado.' + validationOfOneOfSchemaNotSupportedExceptionMessage = "A validação de um esquema que inclui 'oneof' não é suportada." + routeParameterCannotBeNullExceptionMessage = "O parâmetro 'Route' não pode ser nulo." + cacheStorageAlreadyExistsExceptionMessage = "Armazenamento em cache com o nome '{0}' já existe." + loggingMethodRequiresValidScriptBlockExceptionMessage = "O método de saída fornecido para o método de registro '{0}' requer um ScriptBlock válido." + scopedVariableAlreadyDefinedExceptionMessage = 'Variável de escopo já definida: {0}' + oauth2RequiresAuthorizeUrlExceptionMessage = 'OAuth2 requer que seja fornecida uma URL de Autorização' + pathNotExistExceptionMessage = 'O caminho não existe: {0}' + noDomainServerNameForWindowsAdAuthExceptionMessage = 'Nenhum nome de servidor de domínio foi fornecido para a autenticação AD do Windows' + suppliedDateAfterScheduleEndTimeExceptionMessage = 'A data fornecida é posterior ao horário de término da agenda em {0}' + wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = 'O caractere curinga * para os Métodos é incompatível com a chave AutoMethods.' + cannotSupplyIntervalForYearExceptionMessage = 'Não é possível fornecer um valor de intervalo para cada ano.' + missingComponentsMessage = 'Componente(s) ausente(s)' + invalidStrictTransportSecurityDurationExceptionMessage = 'Duração inválida fornecida para Strict-Transport-Security: {0}. Deve ser maior que 0.' + noSecretForHmac512ExceptionMessage = 'Nenhum segredo fornecido para o hash HMAC512.' + daysInMonthExceededExceptionMessage = '{0} tem apenas {1} dias, mas {2} foi fornecido.' + nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = 'Um ScriptBlock não vazio é necessário para o método de registro personalizado.' + encodingAttributeOnlyAppliesToMultipartExceptionMessage = 'O atributo de codificação só se aplica a corpos de solicitação multipart e application/x-www-form-urlencoded.' + suppliedDateBeforeScheduleStartTimeExceptionMessage = 'A data fornecida é anterior ao horário de início da agenda em {0}' + unlockSecretRequiredExceptionMessage = "É necessária uma propriedade 'UnlockSecret' ao usar Microsoft.PowerShell.SecretStore" + noLogicPassedForMethodRouteExceptionMessage = '[{0}] {1}: Nenhuma lógica passada.' + bodyParserAlreadyDefinedForContentTypeExceptionMessage = 'Um body-parser já está definido para o tipo de conteúdo {0}.' + invalidJwtSuppliedExceptionMessage = 'JWT fornecido inválido.' + sessionsRequiredForFlashMessagesExceptionMessage = 'Sessões são necessárias para usar mensagens Flash.' + outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = 'O método de saída fornecido para o registro de solicitações requer um ScriptBlock válido.' + semaphoreAlreadyExistsExceptionMessage = 'Já existe um semáforo com o seguinte nome: {0}' + invalidJwtHeaderAlgorithmSuppliedExceptionMessage = 'Algoritmo de cabeçalho JWT fornecido inválido.' + oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = "O provedor OAuth2 não suporta o grant_type 'password' necessário ao usar um InnerScheme." + invalidAliasFoundExceptionMessage = 'Alias {0} inválido encontrado: {1}' + scheduleDoesNotExistExceptionMessage = "A agenda '{0}' não existe." + accessMethodNotExistExceptionMessage = 'O método de acesso não existe: {0}' + oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = "O provedor OAuth2 não suporta o response_type 'code'." + untestedPowerShellVersionWarningMessage = '[AVISO] Pode {0} não foi testado no PowerShell {1}, pois não estava disponível quando o Pode foi lançado.' + secretVaultAlreadyRegisteredAutoImportExceptionMessage = "Um Cofre de Segredos com o nome '{0}' já foi registrado durante a importação automática de Cofres de Segredos." + schemeRequiresValidScriptBlockExceptionMessage = "O esquema fornecido para o validador de autenticação '{0}' requer um ScriptBlock válido." + serverLoopingMessage = 'Looping do servidor a cada {0} segundos' + certificateThumbprintsNameSupportedOnWindowsExceptionMessage = 'Impressões digitais/nome do certificado são suportados apenas no Windows.' + sseConnectionNameRequiredExceptionMessage = "Um nome de conexão SSE é necessário, seja de -Name ou `$WebEvent.Sse.Name." + invalidMiddlewareTypeExceptionMessage = 'Um dos Middlewares fornecidos é de um tipo inválido. Esperado ScriptBlock ou Hashtable, mas obtido: {0}' + noSecretForJwtSignatureExceptionMessage = 'Nenhum segredo fornecido para a assinatura JWT.' + modulePathDoesNotExistExceptionMessage = 'O caminho do módulo não existe: {0}' + taskAlreadyDefinedExceptionMessage = '[Tarefa] {0}: Tarefa já definida.' + verbAlreadyDefinedExceptionMessage = '[Verbo] {0}: Já definido' + clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = 'Certificados de cliente são suportados apenas em endpoints HTTPS.' + endpointNameNotExistExceptionMessage = "O ponto de extremidade com o nome '{0}' não existe." + middlewareNoLogicSuppliedExceptionMessage = '[Middleware]: Nenhuma lógica fornecida no ScriptBlock.' + scriptBlockRequiredForMergingUsersExceptionMessage = 'É necessário um ScriptBlock para mesclar vários usuários autenticados em 1 objeto quando Valid é All.' + secretVaultAlreadyRegisteredExceptionMessage = "Um Cofre de Segredos com o nome '{0}' já foi registrado{1}." + deprecatedTitleVersionDescriptionWarningMessage = "AVISO: Título, Versão e Descrição em 'Enable-PodeOpenApi' estão obsoletos. Utilize 'Add-PodeOAInfo' em vez disso." + undefinedOpenApiReferencesMessage = 'Referências OpenAPI indefinidas:' + doneMessage = 'Concluído' + swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = 'Esta versão do Swagger-Editor não suporta OpenAPI 3.1' + durationMustBeZeroOrGreaterExceptionMessage = 'A duração deve ser 0 ou maior, mas foi obtido: {0}s' + viewsPathDoesNotExistExceptionMessage = 'O caminho das Views não existe: {0}' + discriminatorIncompatibleWithAllOfExceptionMessage = "O parâmetro 'Discriminator' é incompatível com 'allOf'." + noNameForWebSocketSendMessageExceptionMessage = 'Nenhum nome fornecido para enviar mensagem ao WebSocket.' + hashtableMiddlewareNoLogicExceptionMessage = 'Um Middleware do tipo Hashtable fornecido não tem lógica definida.' + openApiInfoMessage = 'Informações OpenAPI:' + invalidSchemeForAuthValidatorExceptionMessage = "O esquema '{0}' fornecido para o validador de autenticação '{1}' requer um ScriptBlock válido." + sseFailedToBroadcastExceptionMessage = 'SSE falhou em transmitir devido ao nível de transmissão SSE definido para {0}: {1}.' + adModuleWindowsOnlyExceptionMessage = 'O módulo Active Directory está disponível apenas no Windows.' + requestLoggingAlreadyEnabledExceptionMessage = 'O registro de solicitações já está habilitado.' + invalidAccessControlMaxAgeDurationExceptionMessage = 'Duração inválida fornecida para Access-Control-Max-Age: {0}. Deve ser maior que 0.' +} + diff --git a/src/Locales/zn/Pode.psd1 b/src/Locales/zn/Pode.psd1 index 77cc0d6aa..0d90180bb 100644 --- a/src/Locales/zn/Pode.psd1 +++ b/src/Locales/zn/Pode.psd1 @@ -1,284 +1,285 @@ -ConvertFrom-StringData -StringData @' -adModuleWindowsOnlyExceptionMessage = 仅支持 Windows 的 Active Directory 模块。 -adModuleNotInstalledExceptionMessage = 未安装 Active Directory 模块。 -secretManagementModuleNotInstalledExceptionMessage = 未安装 Microsoft.PowerShell.SecretManagement 模块。 -secretVaultAlreadyRegisteredAutoImportExceptionMessage = 已经注册了名称为 '{0}' 的秘密保险库,同时正在自动导入秘密保险库。 -failedToOpenRunspacePoolExceptionMessage = 打开 RunspacePool 失败: {0} -cronExpressionInvalidExceptionMessage = Cron 表达式应仅包含 5 个部分: {0} -invalidAliasFoundExceptionMessage = 找到了无效的 {0} 别名: {1} -invalidAtomCharacterExceptionMessage = 无效的原子字符: {0} -minValueGreaterThanMaxExceptionMessage = {0} 的最小值不应大于最大值。 -minValueInvalidExceptionMessage = {1} 的最小值 '{0}' 无效,应大于或等于 {2} -maxValueInvalidExceptionMessage = {1} 的最大值 '{0}' 无效,应小于或等于 {2} -valueOutOfRangeExceptionMessage = {1} 的值 '{0}' 无效,应在 {2} 和 {3} 之间 -daysInMonthExceededExceptionMessage = {0} 仅有 {1} 天,但提供了 {2} 天。 -nextTriggerCalculationErrorExceptionMessage = 似乎在尝试计算下一个触发器日期时间时出现了问题: {0} -incompatiblePodeDllExceptionMessage = 已加载存在不兼容的 Pode.DLL 版本 {0}。需要版本 {1}。请打开新的 Powershell/pwsh 会话并重试。 -endpointNotExistExceptionMessage = 具有协议 '{0}' 和地址 '{1}' 或本地地址 '{2}' 的端点不存在。 -endpointNameNotExistExceptionMessage = 名为 '{0}' 的端点不存在。 -failedToConnectToUrlExceptionMessage = 连接到 URL 失败: {0} -failedToParseAddressExceptionMessage = 无法将 '{0}' 解析为有效的 IP/主机:端口地址 -invalidIpAddressExceptionMessage = 提供的 IP 地址无效: {0} -invalidPortExceptionMessage = 端口不能为负数: {0} -pathNotExistExceptionMessage = 路径不存在: {0} -noSecretForHmac256ExceptionMessage = 未提供 HMAC256 哈希的密钥。 -noSecretForHmac384ExceptionMessage = 未提供 HMAC384 哈希的密钥。 -noSecretForHmac512ExceptionMessage = 未提供 HMAC512 哈希的密钥。 -noSecretForJwtSignatureExceptionMessage = 未提供 JWT 签名的密钥。 -noSecretExpectedForNoSignatureExceptionMessage = 预期未提供签名的密钥。 -unsupportedJwtAlgorithmExceptionMessage = 当前不支持的 JWT 算法: {0} -invalidBase64JwtExceptionMessage = 在 JWT 中找到无效的 Base64 编码值 -invalidJsonJwtExceptionMessage = 在 JWT 中找到无效的 JSON 值 -unsupportedFunctionInServerlessContextExceptionMessage = 不支持在无服务器上下文中使用 {0} 函数。 -invalidPathWildcardOrDirectoryExceptionMessage = 提供的路径不能是通配符或目录: {0} -invalidExceptionTypeExceptionMessage = 异常类型无效,应为 WebException 或 HttpRequestException, 但得到了: {0} -pathToLoadNotFoundExceptionMessage = 未找到要加载的路径 {0}: {1} -singleValueForIntervalExceptionMessage = 当使用间隔时,只能提供单个 {0} 值。 -scriptErrorExceptionMessage = 脚本 '{0}' 在 {1} {2} (第 {3} 行) 第 {4} 个字符处执行 {5} 对象 '{7}' 的错误。类: {8} 基类: {9} -noScriptBlockSuppliedExceptionMessage = 未提供脚本块。 -iisAspnetcoreTokenMissingExceptionMessage = 缺少 IIS ASPNETCORE_TOKEN。 -propertiesParameterWithoutNameExceptionMessage = 如果属性没有名称,则不能使用 Properties 参数。 -multiTypePropertiesRequireOpenApi31ExceptionMessage = 多类型属性需要 OpenApi 版本 3.1 或更高版本。 -openApiVersionPropertyMandatoryExceptionMessage = OpenApi 版本属性是必需的。 -webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = 在 OpenAPI v3.0.x 中不支持 Webhooks 功能 -authenticationMethodDoesNotExistExceptionMessage = 认证方法不存在: {0} -unsupportedObjectExceptionMessage = 不支持的对象 -validationOfAnyOfSchemaNotSupportedExceptionMessage = 不支持包含 'anyof' 的模式的验证。 -validationOfOneOfSchemaNotSupportedExceptionMessage = 不支持包含 'oneof' 的模式的验证。 -cannotCreatePropertyWithoutTypeExceptionMessage = 无法创建属性,因为未定义类型。 -headerMustHaveNameInEncodingContextExceptionMessage = 在编码上下文中使用时,标头必须有名称。 -descriptionRequiredExceptionMessage = 描述是必需的。 -openApiDocumentNotCompliantExceptionMessage = OpenAPI 文档不符合规范。 -noComponentInDefinitionExceptionMessage = 定义中没有类型为 {0} 名称为 {1} 的组件。 -methodPathAlreadyDefinedExceptionMessage = [{0}] {1}: 已经定义。 -methodPathAlreadyDefinedForUrlExceptionMessage = [{0}] {1}: 已经为 {2} 定义。 -invalidMiddlewareTypeExceptionMessage = 提供的中间件之一是无效的类型。期望是 ScriptBlock 或 Hashtable, 但得到了: {0} -hashtableMiddlewareNoLogicExceptionMessage = 提供的 Hashtable 中间件没有定义逻辑。 -invalidLogicTypeInHashtableMiddlewareExceptionMessage = 提供的 Hashtable 中间件具有无效的逻辑类型。期望是 ScriptBlockm, 但得到了: {0} -scopedVariableAlreadyDefinedExceptionMessage = 已经定义了作用域变量: {0} -valueForUsingVariableNotFoundExceptionMessage = 未找到 '`$using:{0}' 的值。 -unlockSecretRequiredExceptionMessage = 使用 Microsoft.PowerShell.SecretStore 时需要 'UnlockSecret' 属性。 -unlockSecretButNoScriptBlockExceptionMessage = 为自定义秘密保险库类型提供了解锁密钥,但未提供解锁 ScriptBlock。 -noUnlockScriptBlockForVaultExceptionMessage = 未为解锁保险库 '{0}' 提供解锁 ScriptBlock。 -noSetScriptBlockForVaultExceptionMessage = 未为更新/创建保险库 '{0}' 中的秘密提供设置 ScriptBlock。 -noRemoveScriptBlockForVaultExceptionMessage = 未为从保险库 '{0}' 中删除秘密提供删除 ScriptBlock。 -invalidSecretValueTypeExceptionMessage = 密钥值是无效的类型。期望类型: 字符串、SecureString、HashTable、Byte[] 或 PSCredential。但得到了: {0} -limitValueCannotBeZeroOrLessExceptionMessage = {0} 的限制值不能为 0 或更小。 -secondsValueCannotBeZeroOrLessExceptionMessage = {0} 的秒数值不能为 0 或更小。 -failedToCreateOpenSslCertExceptionMessage = 创建 openssl 证书失败: {0} -certificateThumbprintsNameSupportedOnWindowsExceptionMessage = 证书指纹/名称仅在 Windows 上受支持。 -noCertificateFoundExceptionMessage = 在 {0}\{1} 中找不到证书 '{2}'。 -runspacePoolFailedToLoadExceptionMessage = {0} RunspacePool 加载失败。 -noServiceHandlersDefinedExceptionMessage = 未定义服务处理程序。 -noSessionToSetOnResponseExceptionMessage = 没有可用的会话来设置响应。 -noSessionToCalculateDataHashExceptionMessage = 没有可用的会话来计算数据哈希。 -moduleOrVersionNotFoundExceptionMessage = 在 {0} 上找不到模块或版本: {1}@{2} -noSmtpHandlersDefinedExceptionMessage = 未定义 SMTP 处理程序。 -taskTimedOutExceptionMessage = 任务在 {0} 毫秒后超时。 -verbAlreadyDefinedExceptionMessage = [Verb] {0}: 已经定义 -verbAlreadyDefinedForUrlExceptionMessage = [Verb] {0}: 已经为 {1} 定义 -pathOrScriptBlockRequiredExceptionMessage = 对于源自自定义访问值,需要路径或 ScriptBlock。 -accessMethodAlreadyDefinedExceptionMessage = 访问方法已经定义: {0} -accessMethodNotExistForMergingExceptionMessage = 合并时访问方法不存在: {0} -routeAlreadyContainsCustomAccessExceptionMessage = 路由 '[{0}] {1}' 已经包含名称为 '{2}' 的自定义访问。 -accessMethodNotExistExceptionMessage = 访问方法不存在: {0} -pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = 在 OpenAPI v3.0.x 中不支持 PathItems 功能。 -nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = 自定义身份验证方案需要一个非空的 ScriptBlock。 -oauth2InnerSchemeInvalidExceptionMessage = OAuth2 InnerScheme 只能是 Basic 或 Form 身份验证,但得到:{0} -sessionsRequiredForOAuth2WithPKCEExceptionMessage = 使用 PKCE 时需要会话来使用 OAuth2 -oauth2ClientSecretRequiredExceptionMessage = 不使用 PKCE 时, OAuth2 需要一个客户端密钥。 -authMethodAlreadyDefinedExceptionMessage = 身份验证方法已定义:{0} -invalidSchemeForAuthValidatorExceptionMessage = 提供的 '{0}' 方案用于 '{1}' 身份验证验证器,需要一个有效的 ScriptBlock。 -sessionsRequiredForSessionPersistentAuthExceptionMessage = 使用会话持久性身份验证需要会话。 -oauth2RequiresAuthorizeUrlExceptionMessage = OAuth2 需要提供授权 URL -authMethodNotExistForMergingExceptionMessage = 合并时身份验证方法不存在:{0} -mergeDefaultAuthNotInListExceptionMessage = MergeDefault 身份验证 '{0}' 不在提供的身份验证列表中。 -defaultAuthNotInListExceptionMessage = 默认身份验证 '{0}' 不在提供的身份验证列表中。 -scriptBlockRequiredForMergingUsersExceptionMessage = 当 Valid 是 All 时,需要一个 ScriptBlock 来将多个经过身份验证的用户合并为一个对象。 -noDomainServerNameForWindowsAdAuthExceptionMessage = 没有为 Windows AD 身份验证提供域服务器名称 -sessionsNotConfiguredExceptionMessage = 会话尚未配置。 -windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = Windows 本地身份验证支持仅适用于 Windows。 -iisAuthSupportIsForWindowsOnlyExceptionMessage = IIS 身份验证支持仅适用于 Windows。 -noAlgorithmInJwtHeaderExceptionMessage = JWT 头中未提供算法。 -invalidJwtSuppliedExceptionMessage = 提供的 JWT 无效。 -invalidJwtHeaderAlgorithmSuppliedExceptionMessage = 提供的 JWT 头算法无效。 -noJwtSignatureForAlgorithmExceptionMessage = 没有为 {0} 提供 JWT 签名。 -expectedNoJwtSignatureSuppliedExceptionMessage = 预期不提供 JWT 签名。 -invalidJwtSignatureSuppliedExceptionMessage = 提供的 JWT 签名无效。 -jwtExpiredExceptionMessage = JWT 已过期。 -jwtNotYetValidExceptionMessage = JWT 尚未有效。 -snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = Snapins 仅支持 Windows PowerShell。 -userFileDoesNotExistExceptionMessage = 用户文件不存在:{0} -schemeRequiresValidScriptBlockExceptionMessage = 提供的方案用于 '{0}' 身份验证验证器,需要一个有效的 ScriptBlock。 -oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = OAuth2 提供程序不支持 'code' response_type。 -oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = OAuth2 提供程序不支持使用 InnerScheme 所需的 'password' grant_type。 -eventAlreadyRegisteredExceptionMessage = {0} 事件已注册:{1} -noEventRegisteredExceptionMessage = 没有注册的 {0} 事件:{1} -sessionsRequiredForFlashMessagesExceptionMessage = 使用闪存消息需要会话。 -eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = 事件查看器日志记录仅支持Windows。 -nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = 自定义日志输出方法需要非空的ScriptBlock。 -requestLoggingAlreadyEnabledExceptionMessage = 请求日志记录已启用。 -outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = 请求日志记录提供的输出方法需要有效的ScriptBlock。 -errorLoggingAlreadyEnabledExceptionMessage = 错误日志记录已启用。 -nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = 日志记录方法需要非空的ScriptBlock。 -csrfMiddlewareNotInitializedExceptionMessage = CSRF中间件未初始化。 -sessionsRequiredForCsrfExceptionMessage = 使用CSRF需要会话, 除非您想使用Cookie。 -middlewareNoLogicSuppliedExceptionMessage = [中间件]: ScriptBlock中未提供逻辑。 -parameterHasNoNameExceptionMessage = 参数没有名称。请使用'Name'参数为此组件命名。 -reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = OpenAPI v3.0中不支持可重用组件功能'pathItems'。 -noPropertiesMutuallyExclusiveExceptionMessage = 参数'NoProperties'与'Properties'、'MinProperties'和'MaxProperties'互斥。 -discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = 参数'DiscriminatorMapping'只能在存在'DiscriminatorProperty'时使用。 -discriminatorIncompatibleWithAllOfExceptionMessage = 参数'Discriminator'与'allOf'不兼容。 -typeCanOnlyBeAssociatedWithObjectExceptionMessage = 类型{0}只能与对象关联。 -showPodeGuiOnlyAvailableOnWindowsExceptionMessage = Show-PodeGui目前仅适用于Windows PowerShell和Windows上的PowerShell 7+。 -nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = 如果提供了RedirectTo参数, 则需要为端点指定名称。 -clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = 客户端证书仅支持HTTPS端点。 -explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = 显式TLS模式仅支持SMTPS和TCPS端点。 -acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = 确认消息仅支持SMTP和TCP端点。 -crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = CRLF消息结束检查仅支持TCP端点。 -mustBeRunningWithAdminPrivilegesExceptionMessage = 必须以管理员权限运行才能监听非本地主机地址。 -certificateSuppliedForNonHttpsWssEndpointExceptionMessage = 为非HTTPS/WSS端点提供的证书。 -websocketsNotConfiguredForSignalMessagesExceptionMessage = WebSockets未配置为发送信号消息。 -noPathSuppliedForRouteExceptionMessage = 未为路由提供路径。 -accessRequiresAuthenticationOnRoutesExceptionMessage = 访问需要在路由上进行身份验证。 -accessMethodDoesNotExistExceptionMessage = 访问方法不存在:{0}。 -routeParameterNeedsValidScriptblockExceptionMessage = 路由参数需要有效且非空的ScriptBlock。 -noCommandsSuppliedToConvertToRoutesExceptionMessage = 未提供要转换为路由的命令。 -nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = 创建页面路由需要非空的ScriptBlock。 -sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = SSE只能在Accept标头值为text/event-stream的请求上配置。 -sseConnectionNameRequiredExceptionMessage = 需要SSE连接名称, 可以从-Name或`$WebEvent.Sse.Name获取。 -sseFailedToBroadcastExceptionMessage = 由于为{0}定义的SSE广播级别, SSE广播失败: {1} -podeNotInitializedExceptionMessage = Pode未初始化。 -invalidTaskTypeExceptionMessage = 任务类型无效,预期类型为[System.Threading.Tasks.Task]或[hashtable]。 -cannotLockValueTypeExceptionMessage = 无法锁定[ValueTypes]。 -cannotLockNullObjectExceptionMessage = 无法锁定空对象。 -failedToAcquireLockExceptionMessage = 未能获取对象的锁。 -cannotUnlockValueTypeExceptionMessage = 无法解锁[ValueTypes]。 -cannotUnlockNullObjectExceptionMessage = 无法解锁空对象。 -sessionMiddlewareAlreadyInitializedExceptionMessage = 会话中间件已初始化。 -customSessionStorageMethodNotImplementedExceptionMessage = 自定义会话存储未实现所需的方法'{0}()'。 -secretRequiredForCustomSessionStorageExceptionMessage = 使用自定义会话存储时需要一个密钥。 -noSessionAvailableToSaveExceptionMessage = 没有可保存的会话。 -cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = 当参数'Every'设置为None时, 无法提供间隔。 -cannotSupplyIntervalForQuarterExceptionMessage = 无法为每季度提供间隔值。 -cannotSupplyIntervalForYearExceptionMessage = 无法为每年提供间隔值。 -secretVaultAlreadyRegisteredExceptionMessage = 名为“{0}”的秘密保险库已注册{1}。 -secretVaultUnlockExpiryDateInPastExceptionMessage = 秘密保险库的解锁到期日期已过 (UTC) :{0} -secretAlreadyMountedExceptionMessage = 名为“{0}”的秘密已挂载。 -credentialsPassedWildcardForHeadersLiteralExceptionMessage = 传递凭据时,标头的通配符 * 将被视为文字字符串,而不是通配符。 -wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = 标头的通配符 * 与 AutoHeaders 开关不兼容。 -wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = 方法的通配符 * 与 AutoMethods 开关不兼容。 -invalidAccessControlMaxAgeDurationExceptionMessage = 提供的 Access-Control-Max-Age 时长无效:{0}。应大于 0。 -noNameForWebSocketDisconnectExceptionMessage = 没有提供断开连接的 WebSocket 的名称。 -noNameForWebSocketRemoveExceptionMessage = 没有提供要删除的 WebSocket 的名称。 -noNameForWebSocketSendMessageExceptionMessage = 没有提供要发送消息的 WebSocket 的名称。 -noSecretNamedMountedExceptionMessage = 没有挂载名为“{0}”的秘密。 -noNameForWebSocketResetExceptionMessage = 没有提供要重置的 WebSocket 的名称。 -schemaValidationRequiresPowerShell610ExceptionMessage = 架构验证需要 PowerShell 版本 6.1.0 或更高版本。 -routeParameterCannotBeNullExceptionMessage = 参数 'Route' 不能为空。 -encodingAttributeOnlyAppliesToMultipartExceptionMessage = 编码属性仅适用于 multipart 和 application/x-www-form-urlencoded 请求体。 -testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = 必须使用 'Enable-PodeOpenApi -EnableSchemaValidation' 启用 'Test-PodeOAComponentSchema'。 -openApiComponentSchemaDoesNotExistExceptionMessage = OpenApi 组件架构 {0} 不存在。 -openApiParameterRequiresNameExceptionMessage = OpenApi 参数需要指定名称。 -openApiLicenseObjectRequiresNameExceptionMessage = OpenAPI 对象 'license' 需要属性 'name'。请使用 -LicenseName 参数。 -parametersValueOrExternalValueMandatoryExceptionMessage = 参数 'Value' 或 'ExternalValue' 是必需的。 -parametersMutuallyExclusiveExceptionMessage = 参数 '{0}' 和 '{1}' 是互斥的。 -maximumConcurrentWebSocketThreadsInvalidExceptionMessage = 最大并发 WebSocket 线程数必须 >=1, 但获得: {0} -maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = 最大并发 WebSocket 线程数不能小于最小值 {0},但获得: {1} -alreadyConnectedToWebSocketExceptionMessage = 已连接到名为 '{0}' 的 WebSocket -failedToConnectToWebSocketExceptionMessage = 连接到 WebSocket 失败: {0} -verbNoLogicPassedExceptionMessage = [动词] {0}: 未传递逻辑 -scriptPathDoesNotExistExceptionMessage = 脚本路径不存在: {0} -failedToImportModuleExceptionMessage = 导入模块失败: {0} -modulePathDoesNotExistExceptionMessage = 模块路径不存在: {0} -defaultValueNotBooleanOrEnumExceptionMessage = 默认值不是布尔值且不属于枚举。 -propertiesTypeObjectAssociationExceptionMessage = 只有 Object 类型的属性可以与 {0} 关联。 -invalidContentTypeForSchemaExceptionMessage = 架构中发现无效的 'content-type': {0} -openApiRequestStyleInvalidForParameterExceptionMessage = OpenApi 请求样式不能为 {0},适用于 {1} 参数。 -pathParameterRequiresRequiredSwitchExceptionMessage = 如果参数位置是 'Path',则 'Required' 开关参数是必需的。 -operationIdMustBeUniqueForArrayExceptionMessage = 操作ID: {0} 必须唯一,不能应用于数组。 -operationIdMustBeUniqueExceptionMessage = 操作ID: {0} 必须唯一。 -noOpenApiUrlSuppliedExceptionMessage = 未提供 {0} 的 OpenAPI URL。 -noTitleSuppliedForPageExceptionMessage = 未提供 {0} 页面的标题。 -noRoutePathSuppliedForPageExceptionMessage = 未提供 {0} 页面的路由路径。 -swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = 此版本的 Swagger-Editor 不支持 OpenAPI 3.1 -rapidPdfDoesNotSupportOpenApi31ExceptionMessage = 文档工具 RapidPdf 不支持 OpenAPI 3.1 -definitionTagNotDefinedExceptionMessage = 定义标签 {0} 未定义。 -scopedVariableNotFoundExceptionMessage = 未找到范围变量: {0} -noSecretVaultRegisteredExceptionMessage = 未注册名为 '{0}' 的秘密保险库。 -invalidStrictTransportSecurityDurationExceptionMessage = 提供的严格传输安全持续时间无效: {0}。应大于 0。 -durationMustBeZeroOrGreaterExceptionMessage = 持续时间必须为 0 或更大,但获得: {0}s -taskAlreadyDefinedExceptionMessage = [任务] {0}: 任务已定义。 -maximumConcurrentTasksInvalidExceptionMessage = 最大并发任务数必须 >=1,但获得: {0} -maximumConcurrentTasksLessThanMinimumExceptionMessage = 最大并发任务数不能小于最小值 {0},但获得: {1} -taskDoesNotExistExceptionMessage = 任务 '{0}' 不存在。 -cacheStorageNotFoundForRetrieveExceptionMessage = 尝试检索缓存项 '{1}' 时,找不到名为 '{0}' 的缓存存储。 -cacheStorageNotFoundForSetExceptionMessage = 尝试设置缓存项 '{1}' 时,找不到名为 '{0}' 的缓存存储。 -cacheStorageNotFoundForExistsExceptionMessage = 尝试检查缓存项 '{1}' 是否存在时,找不到名为 '{0}' 的缓存存储。 -cacheStorageNotFoundForRemoveExceptionMessage = 尝试删除缓存项 '{1}' 时,找不到名为 '{0}' 的缓存存储。 -cacheStorageNotFoundForClearExceptionMessage = 尝试清除缓存时,找不到名为 '{0}' 的缓存存储。 -cacheStorageAlreadyExistsExceptionMessage = 名为 '{0}' 的缓存存储已存在。 -pathToIconForGuiDoesNotExistExceptionMessage = GUI 图标的路径不存在: {0} -invalidHostnameSuppliedExceptionMessage = 提供的主机名无效: {0} -endpointAlreadyDefinedExceptionMessage = 名为 '{0}' 的端点已定义。 -certificateExpiredExceptionMessage = 证书 '{0}' 已过期: {1} -endpointNotDefinedForRedirectingExceptionMessage = 未定义用于重定向的名为 '{0}' 的端点。 -fileWatcherAlreadyDefinedExceptionMessage = 名为 '{0}' 的文件监视器已定义。 -handlerAlreadyDefinedExceptionMessage = [{0}] {1}: 处理程序已定义。 -maxDaysInvalidExceptionMessage = MaxDays 必须大于或等于 0,但得到: {0} -maxSizeInvalidExceptionMessage = MaxSize 必须大于或等于 0,但得到: {0} -loggingMethodAlreadyDefinedExceptionMessage = 日志记录方法已定义: {0} -loggingMethodRequiresValidScriptBlockExceptionMessage = 为 '{0}' 日志记录方法提供的输出方法需要有效的 ScriptBlock。 -csrfCookieRequiresSecretExceptionMessage = 使用 CSRF 的 Cookie 时,需要一个密钥。您可以提供一个密钥或设置全局 Cookie 密钥 - (Set-PodeCookieSecret '' -Global) -bodyParserAlreadyDefinedForContentTypeExceptionMessage = 已为 {0} 内容类型定义了一个 body-parser。 -middlewareAlreadyDefinedExceptionMessage = [Middleware] {0}: 中间件已定义。 -parameterNotSuppliedInRequestExceptionMessage = 请求中未提供名为 '{0}' 的参数或没有可用数据。 -noDataForFileUploadedExceptionMessage = 请求中未上传文件 '{0}' 的数据。 -viewsFolderNameAlreadyExistsExceptionMessage = 视图文件夹名称已存在: {0} -viewsPathDoesNotExistExceptionMessage = 视图路径不存在: {0} -timerAlreadyDefinedExceptionMessage = [计时器] {0}: 计时器已定义。 -timerParameterMustBeGreaterThanZeroExceptionMessage = [计时器] {0}: {1} 必须大于 0。 -timerDoesNotExistExceptionMessage = 计时器 '{0}' 不存在。 -mutexAlreadyExistsExceptionMessage = 名为 '{0}' 的互斥量已存在。 -noMutexFoundExceptionMessage = 找不到名为 '{0}' 的互斥量 -failedToAcquireMutexOwnershipExceptionMessage = 未能获得互斥量的所有权。互斥量名称: {0} -semaphoreAlreadyExistsExceptionMessage = 名为 '{0}' 的信号量已存在。 -failedToAcquireSemaphoreOwnershipExceptionMessage = 未能获得信号量的所有权。信号量名称: {0} -scheduleAlreadyDefinedExceptionMessage = [计划] {0}: 计划已定义。 -scheduleCannotHaveNegativeLimitExceptionMessage = [计划] {0}: 不能有负数限制。 -scheduleEndTimeMustBeInFutureExceptionMessage = [计划] {0}: EndTime 值必须在将来。 -scheduleStartTimeAfterEndTimeExceptionMessage = [计划] {0}: 'StartTime' 不能在 'EndTime' 之后 -maximumConcurrentSchedulesInvalidExceptionMessage = 最大并发计划数必须 >=1,但得到: {0} -maximumConcurrentSchedulesLessThanMinimumExceptionMessage = 最大并发计划数不能小于最小值 {0},但得到: {1} -scheduleDoesNotExistExceptionMessage = 计划 '{0}' 不存在。 -suppliedDateBeforeScheduleStartTimeExceptionMessage = 提供的日期早于计划的开始时间 {0} -suppliedDateAfterScheduleEndTimeExceptionMessage = 提供的日期晚于计划的结束时间 {0} -noSemaphoreFoundExceptionMessage = 找不到名为 '{0}' 的信号量 -noLogicPassedForRouteExceptionMessage = 没有为路径传递逻辑: {0} -noPathSuppliedForStaticRouteExceptionMessage = [{0}]: 没有为静态路径提供路径。 -sourcePathDoesNotExistForStaticRouteExceptionMessage = [{0})] {1}: 为静态路径提供的源路径不存在: {2} -noLogicPassedForMethodRouteExceptionMessage = [{0}] {1}: 没有传递逻辑。 -moduleDoesNotContainFunctionExceptionMessage = 模块 {0} 不包含要转换为路径的函数 {1}。 -pageNameShouldBeAlphaNumericExceptionMessage = 页面名称应为有效的字母数字值: {0} -filesHaveChangedMessage = 以下文件已更改: -multipleEndpointsForGuiMessage = 定义了多个端点,仅第一个将用于 GUI。 -openingGuiMessage = 正在打开 GUI。 -listeningOnEndpointsMessage = 正在监听以下 {0} 个端点 [{1} 个线程]: -specificationMessage = 规格 -documentationMessage = 文档 -restartingServerMessage = 正在重启服务器... -doneMessage = 完成 -deprecatedTitleVersionDescriptionWarningMessage = 警告: 'Enable-PodeOpenApi' 的标题、版本和描述已被弃用。请改用 'Add-PodeOAInfo'。 -undefinedOpenApiReferencesMessage = 未定义的 OpenAPI 引用: -definitionTagMessage = 定义 {0}: -openApiGenerationDocumentErrorMessage = OpenAPI 生成文档错误: -infoTitleMandatoryMessage = info.title 是必填项。 -infoVersionMandatoryMessage = info.version 是必填项。 -missingComponentsMessage = 缺少的组件 -openApiInfoMessage = OpenAPI 信息: -serverLoopingMessage = 服务器每 {0} 秒循环一次 -iisShutdownMessage = (IIS 关闭) -terminatingMessage = 正在终止... -eolPowerShellWarningMessage = [警告] Pode {0} 未在 PowerShell {1} 上测试,因为它已达到 EOL。 -untestedPowerShellVersionWarningMessage = [警告] Pode {0} 未在 PowerShell {1} 上测试,因为 Pode 发布时该版本不可用。 -'@ \ No newline at end of file +@{ + schemaValidationRequiresPowerShell610ExceptionMessage = '架构验证需要 PowerShell 版本 6.1.0 或更高版本。' + pathOrScriptBlockRequiredExceptionMessage = '对于源自自定义访问值,需要路径或 ScriptBlock。' + operationIdMustBeUniqueForArrayExceptionMessage = '操作ID: {0} 必须唯一,不能应用于数组。' + endpointNotDefinedForRedirectingExceptionMessage = "未定义用于重定向的名为 '{0}' 的端点。" + filesHaveChangedMessage = '以下文件已更改:' + iisAspnetcoreTokenMissingExceptionMessage = '缺少 IIS ASPNETCORE_TOKEN。' + minValueGreaterThanMaxExceptionMessage = '{0} 的最小值不应大于最大值。' + noLogicPassedForRouteExceptionMessage = '没有为路径传递逻辑: {0}' + scriptPathDoesNotExistExceptionMessage = '脚本路径不存在: {0}' + mutexAlreadyExistsExceptionMessage = "名为 '{0}' 的互斥量已存在。" + listeningOnEndpointsMessage = '正在监听以下 {0} 个端点 [{1} 个线程]:' + unsupportedFunctionInServerlessContextExceptionMessage = '不支持在无服务器上下文中使用 {0} 函数。' + expectedNoJwtSignatureSuppliedExceptionMessage = '预期不提供 JWT 签名。' + secretAlreadyMountedExceptionMessage = "名为'{0}'的秘密已挂载。" + failedToAcquireLockExceptionMessage = '未能获取对象的锁。' + noPathSuppliedForStaticRouteExceptionMessage = '[{0}]: 没有为静态路径提供路径。' + invalidHostnameSuppliedExceptionMessage = '提供的主机名无效: {0}' + authMethodAlreadyDefinedExceptionMessage = '身份验证方法已定义:{0}' + csrfCookieRequiresSecretExceptionMessage = "使用 CSRF 的 Cookie 时,需要一个密钥。您可以提供一个密钥或设置全局 Cookie 密钥 - (Set-PodeCookieSecret '' -Global)" + nonEmptyScriptBlockRequiredForPageRouteExceptionMessage = '创建页面路由需要非空的ScriptBlock。' + noPropertiesMutuallyExclusiveExceptionMessage = "参数'NoProperties'与'Properties'、'MinProperties'和'MaxProperties'互斥。" + incompatiblePodeDllExceptionMessage = '已加载存在不兼容的 Pode.DLL 版本 {0}。需要版本 {1}。请打开新的 Powershell/pwsh 会话并重试。' + accessMethodDoesNotExistExceptionMessage = '访问方法不存在:{0}。' + scheduleAlreadyDefinedExceptionMessage = '[计划] {0}: 计划已定义。' + secondsValueCannotBeZeroOrLessExceptionMessage = '{0} 的秒数值不能为 0 或更小。' + pathToLoadNotFoundExceptionMessage = '未找到要加载的路径 {0}: {1}' + failedToImportModuleExceptionMessage = '导入模块失败: {0}' + endpointNotExistExceptionMessage = "具有协议 '{0}' 和地址 '{1}' 或本地地址 '{2}' 的端点不存在。" + terminatingMessage = '正在终止...' + noCommandsSuppliedToConvertToRoutesExceptionMessage = '未提供要转换为路由的命令。' + invalidTaskTypeExceptionMessage = '任务类型无效,预期类型为[System.Threading.Tasks.Task]或[hashtable]。' + alreadyConnectedToWebSocketExceptionMessage = "已连接到名为 '{0}' 的 WebSocket" + crlfMessageEndCheckOnlySupportedOnTcpEndpointsExceptionMessage = 'CRLF消息结束检查仅支持TCP端点。' + testPodeOAComponentSchemaNeedToBeEnabledExceptionMessage = "必须使用 'Enable-PodeOpenApi -EnableSchemaValidation' 启用 'Test-PodeOAComponentSchema'。" + adModuleNotInstalledExceptionMessage = '未安装 Active Directory 模块。' + cronExpressionInvalidExceptionMessage = 'Cron 表达式应仅包含 5 个部分: {0}' + noSessionToSetOnResponseExceptionMessage = '没有可用的会话来设置响应。' + valueOutOfRangeExceptionMessage = "{1} 的值 '{0}' 无效,应在 {2} 和 {3} 之间" + loggingMethodAlreadyDefinedExceptionMessage = '日志记录方法已定义: {0}' + noSecretForHmac256ExceptionMessage = '未提供 HMAC256 哈希的密钥。' + eolPowerShellWarningMessage = '[警告] Pode {0} 未在 PowerShell {1} 上测试,因为它已达到 EOL。' + runspacePoolFailedToLoadExceptionMessage = '{0} RunspacePool 加载失败。' + noEventRegisteredExceptionMessage = '没有注册的 {0} 事件:{1}' + scheduleCannotHaveNegativeLimitExceptionMessage = '[计划] {0}: 不能有负数限制。' + openApiRequestStyleInvalidForParameterExceptionMessage = 'OpenApi 请求样式不能为 {0},适用于 {1} 参数。' + openApiDocumentNotCompliantExceptionMessage = 'OpenAPI 文档不符合规范。' + taskDoesNotExistExceptionMessage = "任务 '{0}' 不存在。" + scopedVariableNotFoundExceptionMessage = '未找到范围变量: {0}' + sessionsRequiredForCsrfExceptionMessage = '使用CSRF需要会话, 除非您想使用Cookie。' + nonEmptyScriptBlockRequiredForLoggingMethodExceptionMessage = '日志记录方法需要非空的ScriptBlock。' + credentialsPassedWildcardForHeadersLiteralExceptionMessage = '传递凭据时,标头的通配符 * 将被视为文字字符串,而不是通配符。' + podeNotInitializedExceptionMessage = 'Pode未初始化。' + multipleEndpointsForGuiMessage = '定义了多个端点,仅第一个将用于 GUI。' + operationIdMustBeUniqueExceptionMessage = '操作ID: {0} 必须唯一。' + invalidJsonJwtExceptionMessage = '在 JWT 中找到无效的 JSON 值' + noAlgorithmInJwtHeaderExceptionMessage = 'JWT 头中未提供算法。' + openApiVersionPropertyMandatoryExceptionMessage = 'OpenApi 版本属性是必需的。' + limitValueCannotBeZeroOrLessExceptionMessage = '{0} 的限制值不能为 0 或更小。' + timerDoesNotExistExceptionMessage = "计时器 '{0}' 不存在。" + openApiGenerationDocumentErrorMessage = 'OpenAPI 生成文档错误:' + routeAlreadyContainsCustomAccessExceptionMessage = "路由 '[{0}] {1}' 已经包含名称为 '{2}' 的自定义访问。" + maximumConcurrentWebSocketThreadsLessThanMinimumExceptionMessage = '最大并发 WebSocket 线程数不能小于最小值 {0},但获得: {1}' + middlewareAlreadyDefinedExceptionMessage = '[Middleware] {0}: 中间件已定义。' + invalidAtomCharacterExceptionMessage = '无效的原子字符: {0}' + cacheStorageNotFoundForRetrieveExceptionMessage = "尝试检索缓存项 '{1}' 时,找不到名为 '{0}' 的缓存存储。" + headerMustHaveNameInEncodingContextExceptionMessage = '在编码上下文中使用时,标头必须有名称。' + moduleDoesNotContainFunctionExceptionMessage = '模块 {0} 不包含要转换为路径的函数 {1}。' + pathToIconForGuiDoesNotExistExceptionMessage = 'GUI 图标的路径不存在: {0}' + noTitleSuppliedForPageExceptionMessage = '未提供 {0} 页面的标题。' + certificateSuppliedForNonHttpsWssEndpointExceptionMessage = '为非HTTPS/WSS端点提供的证书。' + cannotLockNullObjectExceptionMessage = '无法锁定空对象。' + showPodeGuiOnlyAvailableOnWindowsExceptionMessage = 'Show-PodeGui目前仅适用于Windows PowerShell和Windows上的PowerShell 7+。' + unlockSecretButNoScriptBlockExceptionMessage = '为自定义秘密保险库类型提供了解锁密钥,但未提供解锁 ScriptBlock。' + invalidIpAddressExceptionMessage = '提供的 IP 地址无效: {0}' + maxDaysInvalidExceptionMessage = 'MaxDays 必须大于或等于 0, 但得到: {0}' + noRemoveScriptBlockForVaultExceptionMessage = "未为从保险库 '{0}' 中删除秘密提供删除 ScriptBlock。" + noSecretExpectedForNoSignatureExceptionMessage = '预期未提供签名的密钥。' + noCertificateFoundExceptionMessage = "在 {0}{1} 中找不到证书 '{2}'。" + minValueInvalidExceptionMessage = "{1} 的最小值 '{0}' 无效,应大于或等于 {2}" + accessRequiresAuthenticationOnRoutesExceptionMessage = '访问需要在路由上进行身份验证。' + noSecretForHmac384ExceptionMessage = '未提供 HMAC384 哈希的密钥。' + windowsLocalAuthSupportIsForWindowsOnlyExceptionMessage = 'Windows 本地身份验证支持仅适用于 Windows。' + definitionTagNotDefinedExceptionMessage = '定义标签 {0} 未定义。' + noComponentInDefinitionExceptionMessage = '定义中没有类型为 {0} 名称为 {1} 的组件。' + noSmtpHandlersDefinedExceptionMessage = '未定义 SMTP 处理程序。' + sessionMiddlewareAlreadyInitializedExceptionMessage = '会话中间件已初始化。' + reusableComponentPathItemsNotAvailableInOpenApi30ExceptionMessage = "OpenAPI v3.0中不支持可重用组件功能'pathItems'。" + wildcardHeadersIncompatibleWithAutoHeadersExceptionMessage = '标头的通配符 * 与 AutoHeaders 开关不兼容。' + noDataForFileUploadedExceptionMessage = "请求中未上传文件 '{0}' 的数据。" + sseOnlyConfiguredOnEventStreamAcceptHeaderExceptionMessage = 'SSE只能在Accept标头值为text/event-stream的请求上配置。' + noSessionAvailableToSaveExceptionMessage = '没有可保存的会话。' + pathParameterRequiresRequiredSwitchExceptionMessage = "如果参数位置是 'Path',则 'Required' 开关参数是必需的。" + noOpenApiUrlSuppliedExceptionMessage = '未提供 {0} 的 OpenAPI URL。' + maximumConcurrentSchedulesInvalidExceptionMessage = '最大并发计划数必须 >=1, 但得到: {0}' + snapinsSupportedOnWindowsPowershellOnlyExceptionMessage = 'Snapins 仅支持 Windows PowerShell。' + eventViewerLoggingSupportedOnWindowsOnlyExceptionMessage = '事件查看器日志记录仅支持Windows。' + parametersMutuallyExclusiveExceptionMessage = "参数 '{0}' 和 '{1}' 是互斥的。" + pathItemsFeatureNotSupportedInOpenApi30ExceptionMessage = '在 OpenAPI v3.0.x 中不支持 PathItems 功能。' + openApiParameterRequiresNameExceptionMessage = 'OpenApi 参数需要指定名称。' + maximumConcurrentTasksLessThanMinimumExceptionMessage = '最大并发任务数不能小于最小值 {0},但获得: {1}' + noSemaphoreFoundExceptionMessage = "找不到名为 '{0}' 的信号量" + singleValueForIntervalExceptionMessage = '当使用间隔时,只能提供单个 {0} 值。' + jwtNotYetValidExceptionMessage = 'JWT 尚未有效。' + verbAlreadyDefinedForUrlExceptionMessage = '[Verb] {0}: 已经为 {1} 定义' + noSecretNamedMountedExceptionMessage = "没有挂载名为'{0}'的秘密。" + moduleOrVersionNotFoundExceptionMessage = '在 {0} 上找不到模块或版本: {1}@{2}' + noScriptBlockSuppliedExceptionMessage = '未提供脚本块。' + noSecretVaultRegisteredExceptionMessage = "未注册名为 '{0}' 的秘密保险库。" + nameRequiredForEndpointIfRedirectToSuppliedExceptionMessage = '如果提供了RedirectTo参数, 则需要为端点指定名称。' + openApiLicenseObjectRequiresNameExceptionMessage = "OpenAPI 对象 'license' 需要属性 'name'。请使用 -LicenseName 参数。" + sourcePathDoesNotExistForStaticRouteExceptionMessage = '[{0})] {1}: 为静态路径提供的源路径不存在: {2}' + noNameForWebSocketDisconnectExceptionMessage = '没有提供断开连接的 WebSocket 的名称。' + certificateExpiredExceptionMessage = "证书 '{0}' 已过期: {1}" + secretVaultUnlockExpiryDateInPastExceptionMessage = '秘密保险库的解锁到期日期已过 (UTC) :{0}' + invalidExceptionTypeExceptionMessage = '异常类型无效,应为 WebException 或 HttpRequestException, 但得到了: {0}' + invalidSecretValueTypeExceptionMessage = '密钥值是无效的类型。期望类型: 字符串、SecureString、HashTable、Byte[] 或 PSCredential。但得到了: {0}' + explicitTlsModeOnlySupportedOnSmtpsTcpsEndpointsExceptionMessage = '显式TLS模式仅支持SMTPS和TCPS端点。' + discriminatorMappingRequiresDiscriminatorPropertyExceptionMessage = "参数'DiscriminatorMapping'只能在存在'DiscriminatorProperty'时使用。" + scriptErrorExceptionMessage = "脚本 '{0}' 在 {1} {2} (第 {3} 行) 第 {4} 个字符处执行 {5} 对象 '{7}' 的错误。类: {8} 基类: {9}" + cannotSupplyIntervalForQuarterExceptionMessage = '无法为每季度提供间隔值。' + scheduleEndTimeMustBeInFutureExceptionMessage = '[计划] {0}: EndTime 值必须在将来。' + invalidJwtSignatureSuppliedExceptionMessage = '提供的 JWT 签名无效。' + noSetScriptBlockForVaultExceptionMessage = "未为更新/创建保险库 '{0}' 中的秘密提供设置 ScriptBlock。" + accessMethodNotExistForMergingExceptionMessage = '合并时访问方法不存在: {0}' + defaultAuthNotInListExceptionMessage = "默认身份验证 '{0}' 不在提供的身份验证列表中。" + parameterHasNoNameExceptionMessage = "参数没有名称。请使用'Name'参数为此组件命名。" + methodPathAlreadyDefinedForUrlExceptionMessage = '[{0}] {1}: 已经为 {2} 定义。' + fileWatcherAlreadyDefinedExceptionMessage = "名为 '{0}' 的文件监视器已定义。" + noServiceHandlersDefinedExceptionMessage = '未定义服务处理程序。' + secretRequiredForCustomSessionStorageExceptionMessage = '使用自定义会话存储时需要一个密钥。' + secretManagementModuleNotInstalledExceptionMessage = '未安装 Microsoft.PowerShell.SecretManagement 模块。' + noPathSuppliedForRouteExceptionMessage = '未为路由提供路径。' + validationOfAnyOfSchemaNotSupportedExceptionMessage = "不支持包含 'anyof' 的模式的验证。" + iisAuthSupportIsForWindowsOnlyExceptionMessage = 'IIS 身份验证支持仅适用于 Windows。' + oauth2InnerSchemeInvalidExceptionMessage = 'OAuth2 InnerScheme 只能是 Basic 或 Form 身份验证,但得到:{0}' + noRoutePathSuppliedForPageExceptionMessage = '未提供 {0} 页面的路由路径。' + cacheStorageNotFoundForExistsExceptionMessage = "尝试检查缓存项 '{1}' 是否存在时,找不到名为 '{0}' 的缓存存储。" + handlerAlreadyDefinedExceptionMessage = '[{0}] {1}: 处理程序已定义。' + sessionsNotConfiguredExceptionMessage = '会话尚未配置。' + propertiesTypeObjectAssociationExceptionMessage = '只有 Object 类型的属性可以与 {0} 关联。' + sessionsRequiredForSessionPersistentAuthExceptionMessage = '使用会话持久性身份验证需要会话。' + invalidPathWildcardOrDirectoryExceptionMessage = '提供的路径不能是通配符或目录: {0}' + accessMethodAlreadyDefinedExceptionMessage = '访问方法已经定义: {0}' + parametersValueOrExternalValueMandatoryExceptionMessage = "参数 'Value' 或 'ExternalValue' 是必需的。" + maximumConcurrentTasksInvalidExceptionMessage = '最大并发任务数必须 >=1, 但获得: {0}' + cannotCreatePropertyWithoutTypeExceptionMessage = '无法创建属性,因为未定义类型。' + authMethodNotExistForMergingExceptionMessage = '合并时身份验证方法不存在:{0}' + maxValueInvalidExceptionMessage = "{1} 的最大值 '{0}' 无效,应小于或等于 {2}" + endpointAlreadyDefinedExceptionMessage = "名为 '{0}' 的端点已定义。" + eventAlreadyRegisteredExceptionMessage = '{0} 事件已注册:{1}' + parameterNotSuppliedInRequestExceptionMessage = "请求中未提供名为 '{0}' 的参数或没有可用数据。" + cacheStorageNotFoundForSetExceptionMessage = "尝试设置缓存项 '{1}' 时,找不到名为 '{0}' 的缓存存储。" + methodPathAlreadyDefinedExceptionMessage = '[{0}] {1}: 已经定义。' + errorLoggingAlreadyEnabledExceptionMessage = '错误日志记录已启用。' + valueForUsingVariableNotFoundExceptionMessage = "未找到 '`$using:{0}' 的值。" + rapidPdfDoesNotSupportOpenApi31ExceptionMessage = '文档工具 RapidPdf 不支持 OpenAPI 3.1' + oauth2ClientSecretRequiredExceptionMessage = '不使用 PKCE 时, OAuth2 需要一个客户端密钥。' + invalidBase64JwtExceptionMessage = '在 JWT 中找到无效的 Base64 编码值' + noSessionToCalculateDataHashExceptionMessage = '没有可用的会话来计算数据哈希。' + cacheStorageNotFoundForRemoveExceptionMessage = "尝试删除缓存项 '{1}' 时,找不到名为 '{0}' 的缓存存储。" + csrfMiddlewareNotInitializedExceptionMessage = 'CSRF中间件未初始化。' + infoTitleMandatoryMessage = 'info.title 是必填项。' + typeCanOnlyBeAssociatedWithObjectExceptionMessage = '类型{0}只能与对象关联。' + userFileDoesNotExistExceptionMessage = '用户文件不存在:{0}' + routeParameterNeedsValidScriptblockExceptionMessage = '路由参数需要有效且非空的ScriptBlock。' + nextTriggerCalculationErrorExceptionMessage = '似乎在尝试计算下一个触发器日期时间时出现了问题: {0}' + cannotLockValueTypeExceptionMessage = '无法锁定[ValueTypes]。' + failedToCreateOpenSslCertExceptionMessage = '创建 openssl 证书失败: {0}' + jwtExpiredExceptionMessage = 'JWT 已过期。' + openingGuiMessage = '正在打开 GUI。' + multiTypePropertiesRequireOpenApi31ExceptionMessage = '多类型属性需要 OpenApi 版本 3.1 或更高版本。' + noNameForWebSocketRemoveExceptionMessage = '没有提供要删除的 WebSocket 的名称。' + maxSizeInvalidExceptionMessage = 'MaxSize 必须大于或等于 0,但得到: {0}' + iisShutdownMessage = '(IIS 关闭)' + cannotUnlockValueTypeExceptionMessage = '无法解锁[ValueTypes]。' + noJwtSignatureForAlgorithmExceptionMessage = '没有为 {0} 提供 JWT 签名。' + maximumConcurrentWebSocketThreadsInvalidExceptionMessage = '最大并发 WebSocket 线程数必须 >=1, 但获得: {0}' + acknowledgeMessageOnlySupportedOnSmtpTcpEndpointsExceptionMessage = '确认消息仅支持SMTP和TCP端点。' + failedToConnectToUrlExceptionMessage = '连接到 URL 失败: {0}' + failedToAcquireMutexOwnershipExceptionMessage = '未能获得互斥量的所有权。互斥量名称: {0}' + sessionsRequiredForOAuth2WithPKCEExceptionMessage = '使用 PKCE 时需要会话来使用 OAuth2' + failedToConnectToWebSocketExceptionMessage = '连接到 WebSocket 失败: {0}' + unsupportedObjectExceptionMessage = '不支持的对象' + failedToParseAddressExceptionMessage = "无法将 '{0}' 解析为有效的 IP/主机:端口地址" + mustBeRunningWithAdminPrivilegesExceptionMessage = '必须以管理员权限运行才能监听非本地主机地址。' + specificationMessage = '规格' + cacheStorageNotFoundForClearExceptionMessage = "尝试清除缓存时,找不到名为 '{0}' 的缓存存储。" + restartingServerMessage = '正在重启服务器...' + cannotSupplyIntervalWhenEveryIsNoneExceptionMessage = "当参数'Every'设置为None时, 无法提供间隔。" + unsupportedJwtAlgorithmExceptionMessage = '当前不支持的 JWT 算法: {0}' + websocketsNotConfiguredForSignalMessagesExceptionMessage = 'WebSockets未配置为发送信号消息。' + invalidLogicTypeInHashtableMiddlewareExceptionMessage = '提供的 Hashtable 中间件具有无效的逻辑类型。期望是 ScriptBlockm, 但得到了: {0}' + maximumConcurrentSchedulesLessThanMinimumExceptionMessage = '最大并发计划数不能小于最小值 {0},但得到: {1}' + failedToAcquireSemaphoreOwnershipExceptionMessage = '未能获得信号量的所有权。信号量名称: {0}' + propertiesParameterWithoutNameExceptionMessage = '如果属性没有名称,则不能使用 Properties 参数。' + customSessionStorageMethodNotImplementedExceptionMessage = "自定义会话存储未实现所需的方法'{0}()'。" + authenticationMethodDoesNotExistExceptionMessage = '认证方法不存在: {0}' + webhooksFeatureNotSupportedInOpenApi30ExceptionMessage = '在 OpenAPI v3.0.x 中不支持 Webhooks 功能' + invalidContentTypeForSchemaExceptionMessage = "架构中发现无效的 'content-type': {0}" + noUnlockScriptBlockForVaultExceptionMessage = "未为解锁保险库 '{0}' 提供解锁 ScriptBlock。" + definitionTagMessage = '定义 {0}:' + failedToOpenRunspacePoolExceptionMessage = '打开 RunspacePool 失败: {0}' + verbNoLogicPassedExceptionMessage = '[动词] {0}: 未传递逻辑' + noMutexFoundExceptionMessage = "找不到名为 '{0}' 的互斥量" + documentationMessage = '文档' + timerAlreadyDefinedExceptionMessage = '[计时器] {0}: 计时器已定义。' + invalidPortExceptionMessage = '端口不能为负数: {0}' + viewsFolderNameAlreadyExistsExceptionMessage = '视图文件夹名称已存在: {0}' + noNameForWebSocketResetExceptionMessage = '没有提供要重置的 WebSocket 的名称。' + mergeDefaultAuthNotInListExceptionMessage = "MergeDefault 身份验证 '{0}' 不在提供的身份验证列表中。" + descriptionRequiredExceptionMessage = '描述是必需的。' + pageNameShouldBeAlphaNumericExceptionMessage = '页面名称应为有效的字母数字值: {0}' + defaultValueNotBooleanOrEnumExceptionMessage = '默认值不是布尔值且不属于枚举。' + openApiComponentSchemaDoesNotExistExceptionMessage = 'OpenApi 组件架构 {0} 不存在。' + timerParameterMustBeGreaterThanZeroExceptionMessage = '[计时器] {0}: {1} 必须大于 0。' + taskTimedOutExceptionMessage = '任务在 {0} 毫秒后超时。' + scheduleStartTimeAfterEndTimeExceptionMessage = "[计划] {0}: 'StartTime' 不能在 'EndTime' 之后" + infoVersionMandatoryMessage = 'info.version 是必填项。' + cannotUnlockNullObjectExceptionMessage = '无法解锁空对象。' + nonEmptyScriptBlockRequiredForCustomAuthExceptionMessage = '自定义身份验证方案需要一个非空的 ScriptBlock。' + validationOfOneOfSchemaNotSupportedExceptionMessage = "不支持包含 'oneof' 的模式的验证。" + routeParameterCannotBeNullExceptionMessage = "参数 'Route' 不能为空。" + cacheStorageAlreadyExistsExceptionMessage = "名为 '{0}' 的缓存存储已存在。" + loggingMethodRequiresValidScriptBlockExceptionMessage = "为 '{0}' 日志记录方法提供的输出方法需要有效的 ScriptBlock。" + scopedVariableAlreadyDefinedExceptionMessage = '已经定义了作用域变量: {0}' + oauth2RequiresAuthorizeUrlExceptionMessage = 'OAuth2 需要提供授权 URL' + pathNotExistExceptionMessage = '路径不存在: {0}' + noDomainServerNameForWindowsAdAuthExceptionMessage = '没有为 Windows AD 身份验证提供域服务器名称' + suppliedDateAfterScheduleEndTimeExceptionMessage = '提供的日期晚于计划的结束时间 {0}' + wildcardMethodsIncompatibleWithAutoMethodsExceptionMessage = '方法的通配符 * 与 AutoMethods 开关不兼容。' + cannotSupplyIntervalForYearExceptionMessage = '无法为每年提供间隔值。' + missingComponentsMessage = '缺少的组件' + invalidStrictTransportSecurityDurationExceptionMessage = '提供的严格传输安全持续时间无效: {0}。应大于 0。' + noSecretForHmac512ExceptionMessage = '未提供 HMAC512 哈希的密钥。' + daysInMonthExceededExceptionMessage = '{0} 仅有 {1} 天,但提供了 {2} 天。' + nonEmptyScriptBlockRequiredForCustomLoggingExceptionMessage = '自定义日志输出方法需要非空的ScriptBlock。' + encodingAttributeOnlyAppliesToMultipartExceptionMessage = '编码属性仅适用于 multipart 和 application/x-www-form-urlencoded 请求体。' + suppliedDateBeforeScheduleStartTimeExceptionMessage = '提供的日期早于计划的开始时间 {0}' + unlockSecretRequiredExceptionMessage = "使用 Microsoft.PowerShell.SecretStore 时需要 'UnlockSecret' 属性。" + noLogicPassedForMethodRouteExceptionMessage = '[{0}] {1}: 没有传递逻辑。' + bodyParserAlreadyDefinedForContentTypeExceptionMessage = '已为 {0} 内容类型定义了一个 body-parser。' + invalidJwtSuppliedExceptionMessage = '提供的 JWT 无效。' + sessionsRequiredForFlashMessagesExceptionMessage = '使用闪存消息需要会话。' + outputMethodRequiresValidScriptBlockForRequestLoggingExceptionMessage = '请求日志记录提供的输出方法需要有效的ScriptBlock。' + semaphoreAlreadyExistsExceptionMessage = "名为 '{0}' 的信号量已存在。" + invalidJwtHeaderAlgorithmSuppliedExceptionMessage = '提供的 JWT 头算法无效。' + oauth2ProviderDoesNotSupportPasswordGrantTypeExceptionMessage = "OAuth2 提供程序不支持使用 InnerScheme 所需的 'password' grant_type。" + invalidAliasFoundExceptionMessage = '找到了无效的 {0} 别名: {1}' + scheduleDoesNotExistExceptionMessage = "计划 '{0}' 不存在。" + accessMethodNotExistExceptionMessage = '访问方法不存在: {0}' + oauth2ProviderDoesNotSupportCodeResponseTypeExceptionMessage = "OAuth2 提供程序不支持 'code' response_type。" + untestedPowerShellVersionWarningMessage = '[警告] Pode {0} 未在 PowerShell {1} 上测试,因为 Pode 发布时该版本不可用。' + secretVaultAlreadyRegisteredAutoImportExceptionMessage = "已经注册了名称为 '{0}' 的秘密保险库,同时正在自动导入秘密保险库。" + schemeRequiresValidScriptBlockExceptionMessage = "提供的方案用于 '{0}' 身份验证验证器,需要一个有效的 ScriptBlock。" + serverLoopingMessage = '服务器每 {0} 秒循环一次' + certificateThumbprintsNameSupportedOnWindowsExceptionMessage = '证书指纹/名称仅在 Windows 上受支持。' + sseConnectionNameRequiredExceptionMessage = "需要SSE连接名称, 可以从-Name或`$WebEvent.Sse.Name获取。" + invalidMiddlewareTypeExceptionMessage = '提供的中间件之一是无效的类型。期望是 ScriptBlock 或 Hashtable, 但得到了: {0}' + noSecretForJwtSignatureExceptionMessage = '未提供 JWT 签名的密钥。' + modulePathDoesNotExistExceptionMessage = '模块路径不存在: {0}' + taskAlreadyDefinedExceptionMessage = '[任务] {0}: 任务已定义。' + verbAlreadyDefinedExceptionMessage = '[Verb] {0}: 已经定义' + clientCertificatesOnlySupportedOnHttpsEndpointsExceptionMessage = '客户端证书仅支持HTTPS端点。' + endpointNameNotExistExceptionMessage = "名为 '{0}' 的端点不存在。" + middlewareNoLogicSuppliedExceptionMessage = '[中间件]: ScriptBlock中未提供逻辑。' + scriptBlockRequiredForMergingUsersExceptionMessage = '当 Valid 是 All 时,需要一个 ScriptBlock 来将多个经过身份验证的用户合并为一个对象。' + secretVaultAlreadyRegisteredExceptionMessage = "名为'{0}'的秘密保险库已注册{1}。" + deprecatedTitleVersionDescriptionWarningMessage = "警告: 'Enable-PodeOpenApi' 的标题、版本和描述已被弃用。请改用 'Add-PodeOAInfo'。" + undefinedOpenApiReferencesMessage = '未定义的 OpenAPI 引用:' + doneMessage = '完成' + swaggerEditorDoesNotSupportOpenApi31ExceptionMessage = '此版本的 Swagger-Editor 不支持 OpenAPI 3.1' + durationMustBeZeroOrGreaterExceptionMessage = '持续时间必须为 0 或更大,但获得: {0}s' + viewsPathDoesNotExistExceptionMessage = '视图路径不存在: {0}' + discriminatorIncompatibleWithAllOfExceptionMessage = "参数'Discriminator'与'allOf'不兼容。" + noNameForWebSocketSendMessageExceptionMessage = '没有提供要发送消息的 WebSocket 的名称。' + hashtableMiddlewareNoLogicExceptionMessage = '提供的 Hashtable 中间件没有定义逻辑。' + openApiInfoMessage = 'OpenAPI 信息:' + invalidSchemeForAuthValidatorExceptionMessage = "提供的 '{0}' 方案用于 '{1}' 身份验证验证器,需要一个有效的 ScriptBlock。" + sseFailedToBroadcastExceptionMessage = '由于为{0}定义的SSE广播级别, SSE广播失败: {1}' + adModuleWindowsOnlyExceptionMessage = '仅支持 Windows 的 Active Directory 模块。' + requestLoggingAlreadyEnabledExceptionMessage = '请求日志记录已启用。' + invalidAccessControlMaxAgeDurationExceptionMessage = '提供的 Access-Control-Max-Age 时长无效:{0}。应大于 0。' +} + diff --git a/tests/unit/Localization.Tests.ps1 b/tests/unit/Localization.Tests.ps1 index 0c44f77b1..9ef3fdcea 100644 --- a/tests/unit/Localization.Tests.ps1 +++ b/tests/unit/Localization.Tests.ps1 @@ -28,19 +28,15 @@ Describe 'Localization Check' { $path = $PSCommandPath $src = (Split-Path -Parent -Path $path) -ireplace '[\\/]tests[\\/]unit', '/src' + # All language directories $localizationDir = "$src/Locales" - # Path to the English localization file - $englishFilePath = "$localizationDir/en/Pode.psd1" - $podeFileContent = Get-Content -Path $englishFilePath -Raw - # Execute the content and assign the result to a variable - $localizationMessages = Invoke-Expression $podeFileContent + $localizationMessages = Import-LocalizedData -FileName 'Pode.psd1' -BaseDirectory $localizationDir -UICulture 'en' $global:localizationKeys = $localizationMessages.Keys # Discover all language directories $languageDirs = Get-ChildItem -Path $localizationDir -Directory | Where-Object { $_.Name -ne 'en' } - # Get all source code files recursively from the specified directory $sourceFiles = Get-ChildItem -Path $src -Recurse -Include *.ps1, *.psm1 @@ -56,11 +52,12 @@ Describe 'Localization Check' { it 'Language resource file exist' { Test-Path -Path "$($_.FullName)/Pode.psd1" | Should -BeTrue } - $podeFileContent = Get-Content -Path "$($_.FullName)/Pode.psd1" -Raw - $global:content = Invoke-Expression $podeFileContent + + $global:content = Import-LocalizedData -FileName 'Pode.psd1' -BaseDirectory $localizationDir -UICulture $_.Name it 'Number of entry equal to the [en]' { $global:content.Keys.Count | Should -be $global:localizationKeys.Count } + It -ForEach ($global:localizationKeys) -Name 'Resource File contain <_>' { foreach ($key in $global:localizationKeys) { $global:content.Keys -contains $_ | Should -BeTrue From 4d098b26ba5d5b019f7b2fe1127e44e1f016c7d2 Mon Sep 17 00:00:00 2001 From: mdaneri Date: Thu, 6 Jun 2024 11:17:53 -0700 Subject: [PATCH 20/67] Delete Convert-HashtableToPsd1.ps1 --- Convert-HashtableToPsd1.ps1 | 39 ------------------------------------- 1 file changed, 39 deletions(-) delete mode 100644 Convert-HashtableToPsd1.ps1 diff --git a/Convert-HashtableToPsd1.ps1 b/Convert-HashtableToPsd1.ps1 deleted file mode 100644 index 138dcddda..000000000 --- a/Convert-HashtableToPsd1.ps1 +++ /dev/null @@ -1,39 +0,0 @@ - -param ( - [Parameter(Mandatory = $false)] - [string]$Path = 'c:\Users\m_dan\Documents\GitHub\Pode\src\Locales' -) - - - -function Convert-HashTable { - param ( - [Parameter(Mandatory = $true)] - [hashtable]$hashtable - ) - - - $sb = New-Object System.Text.StringBuilder - $sb.AppendLine('@{') | Out-Null - - foreach ($key in $hashtable.Keys) { - $value = $hashtable[$key] - $sb.AppendLine(" $key = `"$value`"") | Out-Null - } - - $sb.AppendLine('}') | Out-Null - return $sb.ToString() -} - -$languageDirs = Get-ChildItem -Path $Path -Directory -foreach ($item in $languageDirs) { - $fullName = Join-Path -Path $item.FullName -ChildPath 'Pode.psd1' - - $PodeFileContent = Get-content $fullName -raw - $value = Invoke-Expression $podeFileContent - - - $result = Convert-HashTable -hashtable $value - Move-Item -path $fullName -destination "$fullName.old" - Set-Content -Path $fullName -Value $result -} \ No newline at end of file From d00ef81b9517d62b3b5de60015b87c64801e2335 Mon Sep 17 00:00:00 2001 From: mdaneri Date: Fri, 7 Jun 2024 16:11:52 -0700 Subject: [PATCH 21/67] file browsing i18n support --- .../public/string_performance_test.html | 100 ++++++ src/Misc/default-file-browsing.html.pode | 295 ++++++++++++++---- 2 files changed, 331 insertions(+), 64 deletions(-) create mode 100644 examples/FileBrowser/public/string_performance_test.html diff --git a/examples/FileBrowser/public/string_performance_test.html b/examples/FileBrowser/public/string_performance_test.html new file mode 100644 index 000000000..1b3423e1b --- /dev/null +++ b/examples/FileBrowser/public/string_performance_test.html @@ -0,0 +1,100 @@ + + + + + + + String Interpolation Performance Test + + + +

String Interpolation Performance Test

+ +
+ + + + + \ No newline at end of file diff --git a/src/Misc/default-file-browsing.html.pode b/src/Misc/default-file-browsing.html.pode index 2c5c6103b..45a95ef21 100644 --- a/src/Misc/default-file-browsing.html.pode +++ b/src/Misc/default-file-browsing.html.pode @@ -6,7 +6,7 @@